ppsspp-qt-1.14.4-bp155.1.6 >  A dkDI%z |U4T+8s,i|}.4=JsՖ7SgDA:\ 4mGABX{ Rvǥ>j~x`0WA_k7= sϨo椽}|k)o6\cHp1Fo>ABuSh綼9 Dն6/j'sг*x֓φfQ-%.`?*Lޏuז9:wA^b@^aUĮJvq^6gݯvW֊}Qk2QCtŞk+氣Q+ 7SИg"A 1ܘ[̕rW+~X8SY0ߚe$~MX>`=[8](+R3/UlJJrՂ.o+{c6)mb7HeB3IOE7na <|Y3?t<5#10FxE(0d51c3170bd485ae78910baacddd2768e957620e546940ba08a59a0a15fb27a3ed3bb24a537af95fc9dd428ee95bbc522e8c006cJpdkDI%z mL[Rٴ*nб3BUpbř&$Q6PMjnI֊ =6ћGh8uD}G'bA#3C\r[Of}9ZȘ=z0ŬENgb{f;. Ѓ=+hMeɬ[@(چ#I 1a~RسD؋`WBxlܧaphN]+ ,FGភǶ4!*YOCaK rg1T L}\;x#Kca2E'[5f$5?̞%䖖țZkxA-4֍*\gQ} iKTYt6[Z>m,BZ. NAP(ǑZd#j^۲%gmov` oDK;dA.oY!( |lN~ c&1^Б:2\QplzUI|@_ٛ.>p> ? d   /TXdh    0 5 <PiRLRR(l8t9:>F G H I X Y \ ] ,^ hb c yd e f l u v w $x 8y LOz     Cppsspp-qt1.14.4bp155.1.6PPSSPP Qt backendPPSSPP build using the Qt frameworkdkCwildcard2SUSE Linux Enterprise 15 SP5openSUSEGPL-2.0-or-laterhttps://bugs.opensuse.orgSystem/Emulators/Otherhttps://www.ppsspp.orglinuxx86_64ң0M큤A큤dkBdkCIdkBdkCgc44630240714cbdd3889d00d7a3dc1b14a2a51c2212eb45cfed4058936f4bc0187913a5c48412555eb70829ad9a1476de1839f477c03e06fa7d6f1116b66b5f404b238509441247fd3a84e7833dde4c9587a2f3181eacffd9332071e20d407010ff265754cbb2e0d3b674f90a79ef5bbaa1f7f1075aec9f5e241524520e5049farootrootrootrootrootrootrootrootrootrootppsspp-1.14.4-bp155.1.6.src.rpmapplication()application(ppsspp-qt.desktop)ppsspp-qtppsspp-qt(x86-64)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    ld-linux-x86-64.so.2()(64bit)ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)libGLEW.so.2.2()(64bit)libOpenGL.so.0()(64bit)libQt5Core.so.5()(64bit)libQt5Core.so.5(Qt_5)(64bit)libQt5Core.so.5(Qt_5.15)(64bit)libQt5Gui.so.5()(64bit)libQt5Gui.so.5(Qt_5)(64bit)libQt5Multimedia.so.5()(64bit)libQt5Multimedia.so.5(Qt_5)(64bit)libQt5OpenGL.so.5()(64bit)libQt5OpenGL.so.5(Qt_5)(64bit)libQt5Widgets.so.5()(64bit)libQt5Widgets.so.5(Qt_5)(64bit)libSDL2-2.0.so.0()(64bit)libSDL2-2.0.so.0(SUSE_2.0.7)(64bit)libavcodec.so.57()(64bit)libavcodec.so.57(LIBAVCODEC_57)(64bit)libavformat.so.57()(64bit)libavformat.so.57(LIBAVFORMAT_57)(64bit)libavutil.so.55()(64bit)libavutil.so.55(LIBAVUTIL_55)(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.11)(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.15)(64bit)libc.so.6(GLIBC_2.16)(64bit)libc.so.6(GLIBC_2.17)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.28)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.6)(64bit)libc.so.6(GLIBC_2.7)(64bit)libc.so.6(GLIBC_2.8)(64bit)libdl.so.2()(64bit)libdl.so.2(GLIBC_2.2.5)(64bit)libgcc_s.so.1()(64bit)libgcc_s.so.1(GCC_3.0)(64bit)libm.so.6()(64bit)libm.so.6(GLIBC_2.2.5)(64bit)libm.so.6(GLIBC_2.27)(64bit)libm.so.6(GLIBC_2.29)(64bit)libpng16.so.16()(64bit)libpng16.so.16(PNG16_0)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.12)(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libpthread.so.0(GLIBC_2.3.2)(64bit)libpthread.so.0(GLIBC_2.3.3)(64bit)librt.so.1()(64bit)librt.so.1(GLIBC_2.2.5)(64bit)libstdc++.so.6()(64bit)libstdc++.so.6(CXXABI_1.3)(64bit)libstdc++.so.6(CXXABI_1.3.2)(64bit)libstdc++.so.6(CXXABI_1.3.5)(64bit)libstdc++.so.6(CXXABI_1.3.8)(64bit)libstdc++.so.6(CXXABI_1.3.9)(64bit)libstdc++.so.6(GLIBCXX_3.4)(64bit)libstdc++.so.6(GLIBCXX_3.4.11)(64bit)libstdc++.so.6(GLIBCXX_3.4.14)(64bit)libstdc++.so.6(GLIBCXX_3.4.15)(64bit)libstdc++.so.6(GLIBCXX_3.4.18)(64bit)libstdc++.so.6(GLIBCXX_3.4.19)(64bit)libstdc++.so.6(GLIBCXX_3.4.20)(64bit)libstdc++.so.6(GLIBCXX_3.4.21)(64bit)libstdc++.so.6(GLIBCXX_3.4.22)(64bit)libstdc++.so.6(GLIBCXX_3.4.30)(64bit)libstdc++.so.6(GLIBCXX_3.4.9)(64bit)libswresample.so.2()(64bit)libswresample.so.2(LIBSWRESAMPLE_2)(64bit)libswscale.so.4()(64bit)libswscale.so.4(LIBSWSCALE_4)(64bit)libz.so.1()(64bit)libz.so.1(ZLIB_1.2.3.3)(64bit)ppsspp-commonrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3cctc~ @c~ @czcp@cgc^g@cU,cK@cBc9}@c0Bc'@cc@c Xc@bb@bbbb@b=bbkb%b@bwbs@bnv@bjb^@bRb@Qb9@b7@b-b$@bgb-@ba@ar@a}a7aC@a@aY@aa*@a@aao@a4aa@aa~@auJauJan@aim@aba`2a^@aY@aV@aP`aD@a0a/k@a/k@a.a+va+v`~@`@`@` @``8`*b@`)`%@`!'`@`>`` a@_9_@_^4^a^@^Ǿ^@^@^^v^^h^g@^b;@^ZR@^F^AE^=Q@^4^)^!^@^ @^^,^C]f@]@]Y]*]@]ƪ@]@]@]]5@]@]]L@]]@]]]]]]v>]o@]k]fl]L]Ew@]1]-@]+@]%@] @]]]R]]@]\\F@\@\\P\\@\\@\Z@\@\\@\+@\6\B@\M\}@\{\y\v{\q5\o@\n\k\j@\iL\g@\f\^\]o@\X)@\T4\I\G\A\4\3?@\1\/J\,\(@\(@\&@\ @\x\\@\@\2\@\@\\>@\\\ `\\\@\&@[[@[@[[[@[[T@[[k@[k@[[@[@[0[@[ݍ[<@[[G[Ѱ@[ͻ[$@[[[@[[R@[@[][i@[t[#@[[@[@[:@[[[[ @[[[@[s["@[[@[[@[~[z@[ug@[qr[p!@[p!@[h8@[e@[^[]@[Tq[M@[E@[D[A[?Y[8@[6@[3|@[0@[.6@[.6@[*A[(@[&M@[$[#@["X[d@[[@[o[@[[{@[)[[5@[[@[ @[ L@[ZZz@ZZ4@ZZZ?Z@ZZK@ZZ@ZZZZmZZy@Z'Z'Z@Z؄ZZԐ@Z@Z@ZЛZJ@Z̧@Z̧@ZȲZȲZa@ZZZlZ@ZZ@Z@Z@ZZ2@ZZ@Z@Z=Z=Z=ZI@ZZ@Z`@ZZ@ZkZ@Z%ZZ1@Z@ZAndreas Stieger Andreas Stieger meissner@suse.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.comLuigi Baldoni pousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.comGuillaume GARDET guillaume.gardet@opensuse.orgMichel Normand pousaduarte@gmail.comCarsten Ziepke pousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.comopensuse-packaging@opensuse.orgopensuse-packaging@opensuse.orgopensuse-packaging@opensuse.orgpousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.com- ppsspp 1.14.4: * Graphics fixes in Burnout Dominator, Kurohyou, Ratchet & Clank, Outrun, Ridge Racer, Spongebob: Yellow Avenger, Cars: Race-o-Rama, Hunter x Hunter, many others * Performance improvements: Killzone now runs at playable speed, Juiced 2 performance fixed, lighting ubershader optimization * Many software renderer improvements, both performance and accuracy. * Some input handling fixes, IR interpreter fixes, and so much more.- Fix build on Factory: Does not build with FFmpeg 5.0 yet- switch to stable tarball for next Leap and to fix build - package license files correctly - change -common package to noarch - add constraints file to require 6 GB disk for build- Update to version 1.13.2~git20221123: * Test fix * Cleanup * Wording tweaks, add scroll view * Move post-processing settings to DisplayLayoutScreen * Enable game backgrounds on more screens * OpenXR - Aspect ratio of menu background fixed * Rework the display layout editor to ditch the preview thing. * OpenXR - 2D stereo condition fixed * Add transparent background to the existing Display Layout Editor. * Pause menu background: Remove complicated transparency tricks, instead draw game as part of background. * Kernel: Respect partition param in heap funcs. * D3D11: Remove unused hack USE flag. * Move AsyncImageFileView to Common, which required some more shuffling around of stuff. * Extract the Vulkan descriptor binding cleanup from #16345 * Test crashfix * Centralize ClearCacheNextFrame * Libretro fixes * Only check for display resized in emuscreen-under-pause-screen, not the other changes. * Some minor "centralization" * Split up the GPU config change notifications * One more refactoring step * Refactor: Split up updating the display and render size. * Forgot to commit this in PR #16404 * softgpu: Fix compile hazard while running. * softgpu: Correct WX-exclusive platform hazards. * jit: Add more reasonable estimates for RX protect. * jit: Protect against write over-estimates. * Fix resizing issue. Took some refactoring. * Make the pause screen "transparent" * OpenXR - 3rd party controller support fixed * softgpu: Throw away all inverted polygons. * GE Debugger: Correct texture address corruption. * Orient Save State / Load State buttons horizontally * Debugger: Combine mem info on duplicates. * irjit: Consistently check vec4 safety. * irjit: Allow VV2Op SIMD with exact overlap. * irjit: Correct VV2Op SIMD check. * GPU: Prefer raster for depth blit if supported. * Typo fixed * OpenXR - Cursor aspect ratio * OpenXR - Accept scrolling from both controllers * OpenXR - Camera adjust issues resolved * OpenXR - Force PSP menu aspect ratio * OpenXR - Better dialog support * OpenXR - Allow higher 2D canvas distance * OpenXR - Use axis integration for camera adjust only * OpenXR - Use mouse control only * OpenXR - Support axis * OpenXR - Support camera adjust using joystick * Update zh_TW.ini * Update zh_TW.ini * Update zh_TW.ini * interp: Support memory breakpoints too. * interp: Centralize memory size handling. * interp: Allow breakpoints in release mode. * interp: Allow resume from breakpoint. * Debugger: Keep flag for any breakpoints. * Twinbee Portable: Add config flag to avoid the system languages the game doesn't work with * softgpu: Use threads on self-render if safe. * UI: Show standard back button on touch layout. * softgpu: Fix off-by-one rendering after half-pixel. * softgpu: Avoid splitting rectangles for fog. * softgpu: Correct tex on fogged rectangles. * GPU: Automatically reduce depth range on == test. * GPU: Remove unused GPU_USE flag. * GPU: Centralize more GPU_USE flags, like depth. * GPU: Add a small error-compensation to depth clip. * Vulkan: Mark Adreno bug resolved on recent driver. * Vulkan: Correct alpha in Adreno workaround. * GPU: Convert alphamask to FF/00 for 5551. * UI: Avoid enum/float comparisons. * VR: Remove unnecessary deprecated header. * SaveState: Switch from deprecated is_pod. * GPU: Correct Marvel copy hook size check. * GPU: Hook US version of Marvel Alliance upload. * OpenXR - Freezing on Pico 4 fixed * OpenXR - Test mirroring over 30 various games * OpenXR - Get all mirroring variants * Revert "OpenXR - Disable range culling properly" * GPU: Correct equal depth checks. * OpenXR - View matrix identity check breaking several games fixed * OpenXR - Don't get mirroring from identity matrix * OpenXR - Do not apply head rotation on identity matrix * GPU: Correct vertex decoder in software transform. * Mpeg: Correct YUV order from decode. * Mpeg: Fix ConvertToYuv420 return value. * GPU: Avoid enabling depth test pointlessly. * GPU: Prefer scaling depth to 16-bit if using 24. * GPU: Avoid clears for non-simple depth values. * TexCache: Cleanup BGRA flag dirtying. * Fix GLSL compilation issues on really old Adreno drivers. * GPU: Avoid self memcpy(). * OpenGL ES: Crash as early as possible if things are bad * Update zh_TW.ini * Space added * TexCache: Correct 16->32 for CLUT4 with shift. * TexCache: Fix 16->32 colors with CLUT start pos. * TexCache: Align expandClut buffer, cleanup sizes. * Restore parallel GLSL builds * Lift length limit on Android logging * Log source code for failed pipeline creations * Avoid drawing with failed-to-create pipelines * Make Mailbox handle null values. Fixes hang. * Output shader descriptions directly in the source code * Improve VkResult logging * Warning fix in VR code * OpenXR - Disable range culling properly * OpenXR - Allow more extreme camera adjusts * OpenXR - GTA Liberty city stereo fixed * Properly buildfix GL/VR again * OpenXR - Camera sliders removed from settings * Fix sky plane fix (broke in my last VR refactor) * OpenXR - Camera adjustment using PSP keys * OpenXR - Keep status of PSP keys * Restore assert * Experiment (Vulkan): Temporarily disable GLSL parallel compilation on Android. For #16341 investigation. * Disable remaining false positive. * Turn off boundSecondaryIsInputAttachment_ when we don't have one. * Vulkan: Use the very same view as input attachment and color attachment, not just the same image * Update zh_TW.ini * Update zh_CN.ini * Remove unnecessary assert * OpenXR - Move configs out of VRRenderer * OpenXR - Move matrix calculation out of VRRenderer * OpenXR - Simplify projection matrix creation * OpenXR - Matrix indexing fixed * OpenXR - Get rid of separate projection matrices * OpenXR - Get rid of ovrMatrix4f structure * Partially rescue translation by copying from Hack Settings * Setting should be reported * Blind libretro fix * Android fix * Blind Qt fix * lang: Remove obsolete keys, add new untranslated ones :( * Change "Simulate block transfer" to "Skip GPU Readbacks". Group the speed hacks together * Change "Rendering Mode" to just a "Skip buffer effects" checkbox. Reuse translations. * libretro fix, more games * GPU: Correct softgpu curve issue. * GPU: Always skin in decode for software transform. * softgpu: Always use software skinning. * GPU: Purify vertTypeIsSkinningEnabled(). * Windows ARM/ARM64 buildfix * Remove now-unused lang keys * Change the "Retain changed textures" option into a compat.ini option. * GPU: Use skinned position always in bounding check. * GPU: Cleanup GetVertTypeID() usage. * Linking fix for normal Android devices * UWP build fix. Had to reshuffle some stuff and compile some Vulkan files. * Add a dynamic loader for OpenXR so the VR code can link. Make it all build on Windows. * Typo fix * Make a lot more code VR build for all platforms * Fix type of predictedDisplayTime * 6dof fix * Rename 6DOF_PRECISE to HAS_UNIT_SCALE * Remove ugly float conversion hacks from VR config * Finish previous buildfix... * Upgrade gradle, specify NDK version in android/build.gradle * Yet another gradle upgrade * Comment fixes (feedback) * Fix parsing ampersands in server listings for streaming * Drop some D3D11 screen rotation support (was only used on Windows Phone) * VK/D3D11: Move the rarely used "u_rotation" uniform to the frame uniform buffer. * Switch RenderPassType to be a "proper" bitfield enum. * Support Android file intents with up to 3 dots in path * Code formatting fixed * OpenXR - Get platform flags in runtime * OpenXR - Introduce platform flags * OpenXR - Fix ifdef ANDROID * OpenXR - Add an option to disable 72Hz update * OpenXR - Enable camera movement and stereo in flatscreen mode * [Libretro] Update core options to v2 + add a few new ones * Build: Use Makefile for libretro. * Build: Enable libzip on libretro. * GE Debugger: Respect unchanged VRAM each frame. * GE Debugger: Try harder to identify unchanged VRAM. * GE Debugger: Dump textures only if possibly used. * GE Debugger: Restrict marking of dirty VRAM better. * Vulkan: Fix descriptor set binding in geometry shader generator. Should fix #16315 * OpenXR - Settings code cleanup * Replacement: Avoid issues with c++14 data(). * UI: Install textures as a zip if supported. * OpenXR - Enable stereo for Split/Second * OpenXR - Workaround for not working inputbox * Memory initialization fixed * OpenXR - Let users set the movement length * OpenXR - Option to disable controller mapping * OpenXR - Map controller motions on keys * irjit: Correct prefix validation. * interp: Correct dprefix accuracy for vrot. * irjit: Fix unordered float compares. * Replacement: Don't double count memory usage. * Replacement: Allow use of textures.zip for Android. * Replacement: Lock around shared data access. * Replacement: Cache file data across cache keys. * Replacement: Log only missing explicit filenames. * Replacement: Decimate aggressively with high usage. * Replacement: Reduce IO checks on startup. * Replacement: Avoid needless exists check per tex. * interp: Correct vscl/vmscl t prefix handling. * irjit: Handle vrot overlap more correctly. * SaveState: Restore replacements in only one place. * Debugger: Allow currently-invalid memory reference. * Debugger: Fix input.analog.send validation. * UWP: Avoid some float conversion warnings. * Windows: Avoid compile param conflict warning. * Draw: Correct ambiguous comparison overload. * typo fixed * OpenXR - Stereo support for Outrun 2006 added * OpenXR - Add new virtual key for camera adjust * OpenXR - Camera side adjust added * OpenXR - Camera height adjust added * OpenXR - Do not process key actions during camera adjust * Vulkan: Log additional queue command. * armips: Update to latest. * headless: Update tests. * Vulkan: Fixes validation errors with "null" textures * Address feedback * OpenXR - Allow updating camera in realtime * OpenXR - Make VR camera parameters floating numbers * Need to request the proper type of uniform buffer descriptors. * Add some extra checking for valid stereo shader. * Actually bind a global uniform buffer, too. Not yet used. * Vulkan: Reserve descriptor set 0 for frame-global data, move everything else to set 1 * jit: Reduce some include pollution. * Update zh_TW.ini * Update zh_TW.ini * Fix UB * Format string fix * Shadergen fix for OpenGL * Crashfix in settings menu (Android only, for whatever reason) * Fix validation issue with clears, remove redundant code * Clean up GPU_Vulkan::BuildReportingInfo a bit * Improve compatibility checks for stereo rendering. * Fix for stereo with textureProj (emulated projection). * Fix depal texture binding bug * Name more image views. Very useful with a little patch to the Vulkan debug layers. * Fix rendering in non-stereo mode * Pass shadergen tests * Address feedback * Stereo now works through shader depal too * Fix more cases, GTA works now. * Use arrays more consistently. * Always use array textures for framebuffers in Vulkan for simplicity. * wip * Minor shaderwriter refactor * Stereo on mobile fixes * Some refactoring of framebuffer views, layer issues, more work. * More work. Things are starting to work now. * Add a couple of stereo display shaders, add infrastructure, compile stereo pipelines * Non-stereo bugfix * Start stereo postshader work * More multiview work * Misc multiview hackery * thin3d: Replace hint at future MRT support with basic multi layer support * Update zh_TW.ini * OpenXR - Lego Star Wars III stereo support added * OpenXR - 6DoF and stereo in Lego Star Wars II fixed * Build: Fix Android/macOS ccache. * Build: Update deprecated actions. * headless: Update tests. * GE Debugger: Correct UV display with prescale. * Minor ShaderWriter refactor, prep for later changes * GE Debugger: Allow reading tex on D3D11. * Vulkan: Use v2 feature checks, and add check for multiview features. * Testfix * Minor refactor of ShaderWriter flags. Extracted from the stereo PR * softgpu: Better approximate slope mip level mode (#16276) * x86jit: Correct vh2f NAN handling (#16275) * headless: Update tests. * VR: Always pass the bounding box check. * GPU: Account for scissor/viewport in bound test. * GPU: Respect depth clamp in bounding box check. * GPU: Allow/use indices in bounding box check. * GPU: Correct large morph vertex advance. * GPU: Consume cycles in bounding box check. * GPU: Correct bounding box for larger counts. * GE Debugger: List verts on bounding box command. * Make it possible to specify extensions for Vulkan in the ShaderWriter * Remove duplicate line in libretro makefile. * OpenXR - Wrong condition removed (#16271) * OpenXR - Refactor compatvr.ini file (#16270) * Apply Kyria's updates to tr_TR (Turkish) translation * Minor refactoring in PresentationCommon * PresentationCommon: Use refcounts to simplify shader module management * Vulkan: Fix frame ordering issue with postprocessing shaders * GPU: Respect matrix and reverse flag w/o normals. * softgpu: Multiply prev normal by world matrix. * softgpu: Respect negate normal flag without norm. * Update zh_TW.ini * Update zh_CN.ini * OpenXR - Camera distance adjust added * OpenXR - Rearrange VR settings * Update zh_CN.ini * Some more codestyle cleanup * Change wrap_mode to clamp for bicubic upscaler * Libretro buildfix attempt again * Remove "attachment" parameter from BindFramebufferAsTexture everywhere. * Libretro buildfix attempt * Vulkan: Correct some enum switch warnings. * Kernel: Fix reported StopThread error. * headless: Update passing tests. * headless: Fix crash running some tests on Vulkan. * headless: Allow screenshot to not be 512x272. * SDL: fix glew on wayland by ignore glx * OpenXR - Use only the first projection matrix in frame for mirroing detection * OpenXR - Ensure scene analyze is called the same way as before * Build/warning fix * Remove newly added dependencies on PPSSPP * Don't use PPSSPP-specific stuff in Common/VR for now. * Buildfixes * Android non-gradle buildfix * CMakeLists.txt fix * Make as much as possible of the VR code build on all platforms * Use GPU "use" flags to replace IsVRBuild in the renderer. It remains elsewhere. * Reorder the GPU USE flags a bit * OpenXR - Move VR passes count calculation * OpenXR - Reduce uniform calls * OpenXR - Simplify projection matrix analyze * OpenXR - Get rid of VR tweaks * OpenXR - Move matrix composing out of VR tweaks * Two more renames to make things read better * Rename GPU_SUPPORTS_ to GPU_USE_ * Rename gstate_c.Supports to gstate_c.Use * GPU: Replace logic ops with blend for simple cases. * softgpu: Correct linear interp for uneven positions. * softgpu: Correct drawing outside TL of rectangle. * softgpu: Make triangle fan rect detection generic. * OpenXR - Add VR mode for stereo flat screen rendering * Savedata: Update filelist on file erasure. * Kernel: Stop reporting invalid semaphore names. * Kernel: Stop reporting invalid mutex names. * Code cleanup, optional param renamed: "recreate" -> "remove" * Fix save states * OOP * know unknown in sceMp4Create * Add draft mp4msv module * Kernel: Add reason to reported stop error. * Windows: Improve reporting of WASAPI errors. * Io: Fail open earlier from ms0: w/ no access flags. * jit: Run invalidates immediately. * jit: Consistently check range on invalidate. * jit: Ignore zero byte icache invalidates. * D3D9: Correct scissor state cache in Draw. * headless: Update tests. * softgpu: Cull a triangle with all negative w. * softgpu: Fix crash on screenshot w/o display. * Removed the bugged part of hle.func.scan + new comments * Vulkan: fix wayland swapchain size 1x1 * typo * OpenXR - Ensure the app gets unloaded when killed by OS * OpenXR - Disable VUlkan for now * Revert "Vulkan: Create depth/stencil buffers on demand" * Add ShaderId utility function to be used for some sanity checking. * Add simple way to add debug annotation in the middle of the command stream. Vulkan-only. * OpenXR - Create VR framebuffer for Vulkan * OpenXR - Hookup VR API into Vulkan * Comments updated, default value for parameter "recreate" set to false * Added optional parameter to hle.func.scan, improved code of hle.func.removeRange * GPU: Respect stencil state in shader blend. * Followup to #16205, fix one more instance of the problem. * Removes the option, autodetect instead - only enable if the GPU doesn't support bitwise ops. * ArmJit: Save/restore downcount where needed, we missed a few cases. * Revert "Disables "ForceCheck" on jit invalidation on ARM32, introduced in #16194" * Touchpad/mousewheel scrolling acted very weirdly on Mac due to 0 deltas. Make it work better. * Disables "ForceCheck" on jit invalidation on ARM32, introduced in #16194 * Warning fixes * GE Debugger: Display if tex is framebuf. * GE Debugger: Use a modern GL context. * GE Debugger: Remove ancient unecessary GL calls. * GE Debugger: Normalize framebuffer texture preview. * GE Debugger: Centralize current fb tex fetch code. * D3D9: Remove block transfer code overrides. * D3D9: Implement CopyFramebufferToMemorySync(). * Vulkan: Fix initial depth copy w/o existing depth. * MIPS: Fix non standard layout offsets. * GLES: Add debug readback of stencil data. * GLES: Refactor depth pipeline create. * GPU: Rename stencil write pipeline. * GLES: Allow stencil texturing if supported. * it_IT - Italian localization: Apply giona888's latest changes * Experimentally revert "Delete some misguided FPU control code, that we definitely don't want" * Comment about VR uniforms * Don't use fragmentShaderInt32Support as a replacement for checking for bitwiseOps * Don't expand alphaColorRef to 128 bytes on backends where we don't need to. * glslang: Set a missing resource limit. Avoids spurious errors in shader unit test * Revert "Revert "Loader: Validate offsets and truncation in ELF."" * Update elfSize to uncompressed elf size when needed. Fixes infinite loading in Wipeout. * Revert "Loader: Validate offsets and truncation in ELF." * Track min and max GPU time, init time, render CPU time. * Delete some misguided FPU control code, that we definitely don't want * Vulkan (trivial): Fix numDraws stat when merging render passes. Shorten a name. * GLES: Simplify, enable debug depth readback. * GLES: Use Draw for depth readback shader. * GLES: Enable EXT_depth_clamp where supported. * GLES: Refactor depth shader download. * GLES: Depth download cleanup. * Windows: Retain log console on graphics restart. * jit: Defer invalidations made while running. * GE Debugger: Reset on shutdown. * Loader: Get rid of overalloc on module exec. * Loader: Validate offsets and truncation in ELF. * D3D11: Correct depth readback. * Savedata: Cache SFO data during processing. * Savedata: Skip and defer texture exist check. * Savedata: Combine file info and dir listing calls. * Io: Provide directory existence with listing. * Android: Differentiate empty dir from failure. * Savedata: Reduce some duplicate file info lookups. * Font: Reduce internal font loading IO. * Io: Defer GetFileInfo() until it's needed. * Io: Reduce operations inside GetFileInfo(). * Module: Cleanup file read pattern. * GPU: Rename readback and buffer write operations. * D3D9: Correct depth readback. * Depal from dynamic CLUT: When detecting bounds, be more conservative. * Vulkan: Create depth/stencil buffers on demand * Fix depal bounds with dynamic CLUT. Fixes lens flare glitches in Ridge Racer * Remote API: hle.func.removeRange added * GLES: Hook up depth download. * Vulkan: Disable geometry shaders for Mali <= 18. * GPU: Correct sizing account on block transfer. * GPU: Hook Gods Eater Burst avatar read. * GPU: Consider depth buffers in block transfer. * Jpeg: Cleanup debug dump file access. * Jpeg: Encode and decode YCbCr as 2x2. * Jpeg: Correct some logging of return types. * Debugger: Fix off-by-one in func scanning. * GPU: Refuse to set fb_address == z_address. * GPU: Ignore depth when masked and ALWAYS. * GLES: Use GL_LUMINANCE on GLES for indexed tex. * D3D9: Add simple rendered CLUT handling. * D3D9: Correct sampler states for binding 1+. * Jpeg: Correct colorspace conversion funcs. * Jpeg: Decode buffers using configured stride. * Jpeg: Improve error handling for YCbCr decode. * Jpeg: Retain previous width/height. * OpenXR - Revision of VR rendering * Jpeg: Improve timing/errors for GetOutputInfo. * Psmf: Fix save states. * Jpeg: Play it safe with load/unload handling. * Jpeg: Validate CreateMJpeg() parameters. * Jpeg: Cleanup Init/Finish error checks. * Fix as @hrydgard suggest * Typo fix, thanks iota97 * Shader uniforms (VK/D3D11): Fix issue where we could overwrite the fourth component padding. * GPU: Clip against neg Z even w/o cull support. * GPU: Verify generated shader buffer length. * GPU: Optimize clip distances needed. * Vulkan: Correct clamped Z clip when clipping neg Z. * Vulkan: Avoid max_vertices=12 if unnecessary. * Vulkan: Clip clamped depth in geometry shader. * Forget remove the include * Store crc change to u32 * Reporting: Always report hleReportDebug. * Reporting: Avoid accessing ticks before start. * Vulkan: Generate indices in clipping. * Compat: Remove DisableRangeCulling. * Vulkan: Clip to neg z in the geometry shader. * Improve Freedesktop integration * Move scalable icon install from `${prefix}/share/pixmaps` (`pixmaps` has been deprecated long time ago) to `${prefix}/share/icons/hicolor/scalable/apps` * Add `Keywords`, `Categories`, and `MimeType` keys to `.desktop` file * Add shared MIME-info on [`application/x-compressed-iso`](https://en.wikipedia.org/wiki/.CSO "Compressed ISO") MIME type * Try to build fix * Fix Kurohyou again. See #9576 * GPU: Skip matching a framebuf for RAM. * GPU: Use flags to fix triggered upload/download. * Add crc record to psmfplayer * Add crc record into mpeg module * Add crc calculation in loading module * Vertex decoder: Add fallback for non-SSE4.1 * Fix another crash with non-buffered rendering * More libretro buildfix, thanks stuken * Attempt to fix libretro build * Fix validation error with the GPU profiler * Improve Vulkan profiler (show framebuffer tag for render passes) * Fixed syntax accessing method reviewed by Unknown W. Brackets * softgpu: Minor opt, ignore unused z_stride. * GPU: Normalize framebuf addresses. * GE Debugger: Ignore mirrors for target in record. * GE Debugger: Correct mask in target breakpoints. * GPU: Mask away unused bits in framebuf/zbuf ptr. * Vulkan: Cleanup unused geometry shader vars. * Vulkan: Allow configuring geometry shaders on/off. * Vulkan: Block geometry shaders on older Mali. * Vulkan: Use geo clip distance only where supported. * Vulkan: Enable geo shader for culling. * Vulkan: Correct geometry shader culling. * Vulkan: Cull in geoshader, hack to on for now. * Vulkan: Basic geoshader code generation. * Vulkan: Update shader cache format for geo shaders. * Vulkan: Add geometry shader ID tracking. * Vulkan: Clean up shader module tag. * GPU: Add dirtying for geo shader state. * UI: Prevent rendering during reboot. * assets/lang: translate some key phrases in pl_PL.ini * headless: Update tests. * GE Debugger: Fix memcpy/memset recording. * GE Debugger: Record the Edram translation value. * Ge: Report and save Edram translation value. * Debugger: Fix game.reset by adding a reboot status. * Build: Ignore no symbols link warning. * Build: Fix debug build on Windows 32-bit. * Tighten up some color format checks with displays and copies * GPU: Add geometry path for shader writer. * unittest: Cleanup stage/glsl version. * Draw: Add COLOR1 semantic. * ES2 crash fix: Don't draw depth if lacking fragment shader depth write. * Build: Raise macOS/iOS min version for c++17. * armips: Use native std::filesystem on Windows/UWP. * armips: Also update UWP and ARM64, etc. * armips: Update to UTF-8/c++17 armips. * Core: Remove disallowed register. * Build: Update zstd to latest dev. * armips: Update to latest. * Better readability and optimization insertion into container by replacing 'insert' -> 'emplace', 'push_back' -> 'emplace_back' * Fixed bug and memleaks * Code readability, vec reserve() and remove excess c_str() * Correct cleaning string and remove unused vars * GE Debugger: Correct rounded coords in vertex list. * softjit: Fix dst blend shift. * softgpu: Avoid projecting textures in common case. * GPU: Fix missed dirtying when fast loading tgen. * GPU: Restore matrices with dirtying. * Use compat.ini to avoid readbacks in Silent Hill: Shattered Memories as well. * Remove redundant call to SetMenu * Add hidden ini file setting that you can use to hide the menu bar. * Typo fix * Update README.md * OpenXR - Add README.md about the SDK * Update the Vulkan debug names when reassigning depth buffers. * Add Silent Hill: Origins to compatibility setting BlockTransferAllowCreateFB. * If a framebuffer starts using a different depth buffer than before, re-point. * Quiet the Vulkan miniprofiler (for texture uploads etc) a bit * softgpu: Correct matrix value update wrapping. * Ge: Move matrix reading into GPU. * GLES: Fix colortest/logicop uint/int conversion. * Debugger: Add API to scan memory for funcs. * Debugger: Fix doc typo for disasm/assemble names. * OpenXR - Fix FBO colors on Pico * OpenXR - Fix the build on Quest * OpenXR - Support for Pico controllers * Vulkan: Better debug names for RENDER passes. * Remove alpha ignore in xbrz texture shaders. * OpenXR - Initialization on Pico fixed * OpenXR - Code formatting * Forget remove unused include * Change to mpegLibVersion * Better bit scrambling when computing draw call IDs for vertex cache. * softgpu: Handle rectangle texture projection. * softgpu: Implement triangle texture projection. * softgpu: Expand texture coords to include q. * softgpu: Split clippos out of rasterization vert. * GPU: Correct flat normal projection mapping. * GPU: Correct normalized zero normal proj map. * softgpu: Save last tc/normal in vertex reading. * Fix color test. * Add compatibility flag for loading pixels on framebuffer create using nearest filtering * Mpeg: Correct Au update size. * GPU: Apply color test mask as a uint. * GPU: Consistently use uvec3 for colortest. * ivec->uvec, comment fix * ShaderUniforms: cleanup, put every "4-float" on a line for clarity * Shuffle constants around, squeezing them into gaps. Saves another 16 bytes. * Fragment shader uniforms: Pack color mask in 32 bits instead of expand to 128 bits. * Fold the "materialUpdate" flag into the light ubershader part. * Add some recent flags to FragmentShaderDesc * Remove suspicious dirty flag * Prepare for dynamic mat update * Minor debugger fix * Always do the vertex shader part of the fog computation. * GPU: Fix SSE4 Vec3f normalize. * Oops! Also, testfix * Fix light ubershader for D3D11 and OpenGL, GLES unsigned/signed stuff * Experiment: Generate "Ubershaders" that can handle all lighting configurations * Replace faulty layout transition deduplication algorithm. * Vulkan: Add debug names to our command buffers, so you can see which one errored in validation * Minor cleanup in TinySet * Trying to improve sceMpegAvcDecodeYCbCr * (UWP) Remove expandedResources * Remove debug log. Add some new debug log though, unrelated to this PR, for fb clut + fb texture. Plus a couple asserts. * OpenXR - Pico specific code refactor * softgpu: Avoid waiting for a thread to drain. * softgpu: Increase queued prims. * softgpu: Fix triangle strip with partial rects. * softgpu: Simply 5551 blending fast path. * softpu: Refactor out 5551 fast path checks. * softgpu: Avoid fast path in another wrong case. * D3D9: Allow INTZ depth buffers more correctly. * Vulkan: Avoid allocating depth images for stuff like temp copies, depal buffers etc. * Bump the shader cache version * Vulkan: Don't compile pipeline variants that don't make sense given their flags. * OpenXR - Initialize Pico subsystems * OpenXR - Disable performance extension on Pico * OpenXR - Support multiple loaders * GE Debugger: Add option to track pixel in preview. * OpenXR - Add manifest for Pico * OpenXR - Rename Quest build variant * GE Debugger: Copy images optionally with alpha. * GE Debugger: Add a direct copy for preview images. * OpenXR - PreprocessStep function implemented * OpenXR - Simplify skyplane detection in GTA * OpenXR - Get rid of an ugly if condition * GPU: Cleanup unused CheckAlpha() funcs. * softjit: Skip reading dst pixel where blended out. * softgpu: Optimize rectangle sampling/blending. * softgpu: Ignore a needless color test case. * GE Debugger: Tag frame dump replay VRAM writes. * GE Debugger: Fix small tex/clut recopying. * HLE: Fix bad logging without latestSyscall. * Vulkan: Avoid crash on two backbuffer steps. * Remove ill-formed asserts * More tweaks, fix crash on exit (double-join thread) * Small tweak * Can't seem to get around this condition variable... Oh well. * Readback fix * Greatly simplify the thread synchronization. * Flatten the Run function, to make it easier to reorganize. * Make functions private that should be private * Fix assertion issue when playing Cars over public adhoc server. * Best practices layer warning: Don't pass in unused clear values. (probably zero impact, heh). * Handle depth buffer write-after-write hazards in the queue runner * Fix leak of shader modules from thin3d. * Another uninitialized variable (VAI minihash/hash) * Make valgrind happy * Fix memory leak (of Promise objects) in VK pipeline wrappers * Add Burnout Dominator to list of games that require buffered rendering * GPU: Upload depth only on first usage. * softgpu: Fix self-render detect in Ridge Racer. * softgpu: Cache reused indexed verts. * softgpu: Skip matrix multiply for fog factor calc. * softgpu: Remove unnecessary state param. * Texture/Framebuffer match: Ignore stride if texHeight == 1. Fixes Ridge Racer lens flares. * Use Unknown's idea from #16081 instead of the UploadDepthForCLUTTexture compat.ini flag. * Fix Vulkan regression of #16075 due to silly typo. * Fix corruption of Ridge Racer speedometers with AutoMaxQuality enabled. * Cleanup logic * Fix for render pass merge * If depth or stencil are cleared in a renderpass, set the pipeline flag. * Vulkan: Don't have renderpasses store/load depth buffers when we don't use them * Preserve depth buffer on framebuffer resize, if has been used. * More lenient heuristic for uploading depth buffers. Still behind compat flag. See #11100 * Minor cleanups around dirtying of render state * softgpu: Avoid unnecessary flushing for curves. * GLES: Avoid resizing tessellation data textures. * GPU: Correct neg normal for hwtess texgen. * GE Debugger: Default auto flush enabled. * GPU: Use hardware tess params for texgen. * Dirty more state after depal * Don't try to replace or scale CLUT8-on-GPU textures. * Shouldn't 'floor' there * CLUTs can be loaded from small rectangular textures. Need to linearize. * OpenXR - Stereo mirroring fixed, disable stereo when no world scale defined * Vulkan: Avoid crash in headless on finish. * Kernel: Match index lookup behavior for tls. * GPU: Simplify depth clamped clip planes. * GPU: Clip clamped depth accounting for perspective. * GPU: Account for w properly in lines, fixing width. * softgpu: Narrow blend check for fast path further. * headless: Use display buf for compare screenshot. * GPU: Correct display framebuffer reading. * softgpu: Fix display framebuffer read. * Fix BGRA issue on D3D with GPU CLUT textures * softgpu: Correct clear rect off by one issues. * OpenXR - Compile fix * UI: Fix controller autoconf list result. * headless: Update tests. * Kernel: Disallow partitions 8/10 to match tests. * OpenXR - Support for all headset's IPDs fixed * Kernel: Allow volatile for MsgPipe buffers. * Kernel: Allow volatile for Tlspl objects. * Throw in assorted warning fixes * Kernel: Allow kernel/volatile VPLs as well. * Submit main command buffer before acquire. Fix sync bug. * When taking screenshots, make sure that the readback command happens on the right cmdbuf. * Kernel: Allow allocating FPLs in volatile memory. * Minor code cleanups (hasBegun is now redundant, for example) * Rewrite some present logic for slightly more clarity. Fixes bad logic and a minor race condition. * Various refactoring * Unify depth texture and framebuffer fetch checks * Unify range culling detection * Start unifying setting of the GPU feature flags, now that thin3d has feature detection. * Kernel: Load volatile memblocks from save states. * Kernel: Check sceKernelAllocPartitionMemory args. * Kernel: Fix save states for volatile memory alloc. * GE Debugger: Include rendered CLUTs in frame dumps. * Address feedback * Vulkan: Remove the useThread bool entirely. * Start moving stuff out to VulkanFrameData.cpp * softgpu: Skip flushing on no change. * softgpu: Skip more triangles with equal verts. * Windows: Normalize paths for OpenDirectory(). * GE Debugger: Save current clut in frame dumps. * HLE: sceKernelAllocPartitionMemory volatile memory support (partition 5) * Gamedata: Cleanup install request args/validate. * Fix the UI setting "Buffer graphics commands". Was off by 1. * GPU: Clip depth properly when also clamping. * GLES: Support more clip distances. * softgpu: Correct line early z checks. * GE Debugger: Allow search by state name. * GE Debugger: Show time spent stepping. * softgpu: Fix s8 primitives in throughmode. * headless: Add some new and passing tests. * GPU: Fix crash on imm vert triangles. * softgpu: Correct secondary color on imm verts. * softgpu: Fix state/continuation for imm prims. * softgpu: Support fog and color1 on imm verts. * softgpu: Refactor imm draws to bypass vert read. * softgpu: Simplify vertex reading. * softgpu: Simplify vertex range culling. * softgpu: Explicitly flush on sync and output. * GPU: Minor cleanup of unnecessary virtual. * Quick GE debugger stepping fix, after the recent vulkan swapchain acquire change * Update pspautotest submodule * Update ffmpeg submodule (no big news, just readme updates and a gcc buildfix) * Consider the Adreno and Mali stencil-discard bugs the same. Use the better check from the Mali bug. * Show GPU device ID in system information if available. * headless: Benchmark a test or frame dump. * headless: Add option for MSE pass threshold. * headless: Switch screenshot error to MSE. * Headless: Small cleanup of options handling. * softgpu: Run early Z tests in fast rect path. * UI: Fix some logic dependent on screen tags. * Remove assert (this happens when playing framedumps) * Finish the switch to late acquire, moving the swapchain responsibility to the queue runner. * RunSteps cleanup * Move FrameData out of VulkanRenderManager * Move back buffer rendering to a separate "present" command buffer * Remove splitSubmit setting. Now we submit init commands before the acquire. * Flag shader blending as broken on Adreno for now. * Need to have input attachments in the descriptor pool. * Remove logspam * Show render pass types in GPU profiler * Use subpass dependencies to implement shader framebuffer read in Vulkan. * Add two more extensions to device extension lookup * Careful with min filtering of framebuffer textures only if auto max quality is on. * Increase log level of ppsspp version * Ah, need to enable the Mali workaround for Outrun's water, too. * Logic op fix, min filter fix. Also remove some unnecessary indentation. Fixes the water on Adreno (no logic) * Log the screen tag when logging scissor errors. * Add tags to all our UI screens. Useful to debug UI problems. * Fix const pointer conversion error for RISC-V * D3D9 crashfix (flare doesn't render correctly though) * Copy the texels directly in LoadCLUT * Small simplification * Address feedback, change roles of the two dynamic clut fbos to eliminate the need for state (see next commit) * Seems Need for Speed: Shift has exactly the same lens flare, enable the same compat settings. * OpenXR - Better variable/methods naming * OpenGL and D3D11 fixes * OpenXR - Add code comments * Log improvements * Ridge Racer fix * Get depal-from-dynamic-CLUT working * Set texcache entry status flag if CLUT needs to be dynamic * Add way to bind cached textures to a DrawContext * Allow binding "native" texture objects to thin3d * Start implementing ApplyTextureDepal * Cleanup in ge_constants.h, add virtual CLUT8 buffer format * OpenGL fix * Comment * Force low resolution for effects in Burnout Dominator. Fixes lens flare at high res * Enable depth uploads on render-to-clut-buffer. Esoteric but needed for #11100. Compat flag for now. * Enable DownloadCLUT and ShaderBitmask for Burnout Dominator * Detect the CLUT8/8888 situation * Buffer copy matching workaround * OpenXR - Ensure the head pose is locked during frame rendering * OpenXR - Vulkan support in progress * Switch multiple bools as parameters to DecodeTextureLevel to a flags enum. * Fix regression in Tantalus games. See #15914 * GE Debugger: Allow fb copies while stepping. * GPU: Fix simulating logicop with blend and shader. * OpenXR - Move skyplane compat flag into compatvr.ini * Unify CLUT texture size at 512 to reduce complexity. Worth the extra bytes. * Extract function GetReinterpretPipeline * Savedata: Return errors more correctly on load. * softgpu: Force correct alignment on 32-bit. * Common: Fix some type compare warnings on 32-bit. * softgpu: Remove mostly unused screen offset state. * softgpu: Cache texture bufws at 16 bit. * softgpu: Reduce size of VertexData texture coords. * OpenXR - Initial work on Vulkan support * Non-buffered rendering crashfix * OpenXR - Refactor variable name * OpenXR - Crash when using 3D stereo fixed * OpenXR - Requested header change in compatvr.ini * OpenXR - Use per game stereo separation file * Address feedback * Better shader compile logging * Don't start blending in the shader just because there's bitmasks, if blend is disabled. * Debug-name shader modules with their shader desc strings * softgpu: Ignore stencil test mask in ALWAYS mode. * softgpu: Include early Z in func description. * softgpu: Detect longer strips of rectangles. * softgpu: Detect full triangles as rectangles. * softgpu: Refactor triangle cull processing. * softgpu: Store vertex colors as packed RGBA8. * softgpu: Enable early Z tests a bit more often. * softgpu: Reduce some minor bin item field sizes. * README: Move some older releases to history. * GE Debugger: Add some constants to expressions. * GE Debugger: Add fields to register expressions. * Add Rewrite to DrawSyncEatCycles hack, softlocks without it * GE Debugger: Eval breakpoints as if register set. * GE Debugger: Provide addrs in breakpoint conds. * Remove CLUT matching case that shouldn't be there yet. * softgpu: Switch vert continue buffer to members. * softjit: Implement accurate fog color blending. * softgpu: Correct accuracy of fog calculation. * softgpu: Restrict sprite fast path to throughmode. * Shadergen issues found by the test * Switch more texture matching calculations to use bytes for matching. * Texture/framebuffer matching: Do margin check in bytes. * Add ShaderDepalMode enum, use in shader ID. Replaces smoothed bit. * Implement shader depal for D3D11. * DownloadFramebufferForCLUT: Apply the fix mentioned in #8590 * CLUT download: Replace the broken block transfer check with a new compat flag. * vertexjit: Use consistent skinInDecode. * softgpu: Check depth test early on simple stencil. * softgpu: Clamp/wrap textures at 512 pixels. * GE Debugger: Correct confusing block transfer size. * D3D11: Prevent crash on larger textures. * TexCache: Allow valid bufw sizes. * Vulkan: Avoid crash if large texture attempted. * GE Debugger: Fix crash on bp before list running. * GE Debugger: Fix crash stepping with large tex. * softgpu: Avoid calling unordered coords tl/br. * softgpu: Avoid over-aggressive rect conversion. * GE Debugger: Fix logging of texture size. * softgpu: Allow almost flat rectangles to go fast. * softgpu: Refactor duplicate rectangle compat check. * Add logging for LoadCLUT from framebuffer. See #15923 . Logs nicely in Burnout Dominator. * GE Debugger: Correct cond break removal warnings. * Vulkan: Wake compile thread when enqueued. * Update version to 1.13.2 * Update README.md for v1.13.2 * CI: make indentation in tarball.yml consistent * CI: also upload release source tarball on tag push * GPU: Dirty params when converting viewport state. * softgpu: Correct morph weight updates. * Add Emulator to Categories in ppsspp.desktop.in * Vulkan: Declare gl_Position as invariant. See #11583 * readme link * D3D9: Correct viewport offset sign. * D3D11: Correct viewport offset sign handling. * Remove a per-audio-frame allocation in sceAudio * Initialize a bunch of Dialog structs * Font: Correct uninitialized values. * Atrac: Avoid accessing uninitialized stream status. * Atrac: Avoid an uninitialized value. * softgpu: Correct bad munmap() size. * atrac3: Apply the overallocation workaround in a couple more places. Fixes #15788 . * Atrac3+: Allocate some extra bytes for the data buffer to workaround decoder bug. * atrac3: Apply the overallocation workaround in a couple more places. Fixes #15788 . * Warning fix * atrac3: Allocate some extra bytes for the data buffer to workaround decoder bug. * OpenXR - Compile fix * OpenXR - Do not mashup Common/GPU * OpenXR - Refactor * Match FragmentShaderFlags definition with the other PR. * Some more debug names to vulkan objects * UI: Resize after visiting developer settings. * GPU: Make NotifyConfigChanged() calls consistent. * Build: Another attempt to fix libretro. * Fix compiler warnings * Assorted cleanup * Fix for desc struct * Vulkan: Improve tagging of pipelines for debugging purposes * Extend lifetime of ShaderModule objects since we might need to recreate pipelines for different render passes * Fix pipeline lifetime issue, misc. * Correct merging of render passes. However, we have lifetime issues. * Lifetime fixes, cleanups * Fix shader caching. * Also create renderpass variants on demand * Create framebuffer variants on demand * Split each renderpass/framebuffer into multiple "compatibility classes" (RenderPassType). * Another attempt at fixing libretro, this time the win build failed * OpenXR - Use fog color to replace the sky * OpenXR - Refactor VR compat integration * GE Debugger: Show imm prim flag detail in disasm. * GPU: Handle more flags on imm prim command. * softgpu: Use vertType prim override for flags. * GPU: Allow usage of texturing in immediate verts. * GPU: Handle immediate prims more accurately. * GE Debugger: Count imm prims as prims. * softgpu: Fix immediate rendering crash. * GPU: Fix crash on overlap copy w/o cur target. * GPU: Fix CanDepalettize() missing false paths. * Build: Add additional zstd file for libretro. * d3d9: Correct decode of 16-bit textures. * Add Lubos to credits list * GE Debugger: Add more missing GE disasm. * softgpu: Implement matrix data wrap-around. * Ge: Read matrix num/data back like hardware. * Build: Include all zstd files in libretro. * GE Debugger: Add conditions to cmd breakpoints. * GE Debugger: Add address breakpoint conditions. * GE Debugger: Allow expressions for goto address. * Remove impossible check * Buildfix, warn fixes while at it * NFS speed effect: Improve framebuffer choice logging, tighten up stride checks. * Correct libretro buildfix (hopefully) * OpenXR - Config for stereo separation added * GE Debugger: Add a table of register metadata. * OpenXR - Stereo matrices fixed * libretro build fix, see #15968 * Remove reference to non-existent file from Common.vcxproj * The Darkstalkers subpixel check should be == 0. Fixes #14953 again * OpenXR - Fixing FOV better * Fix for ARM 32-bit. * Fix case problem in libretro make file, see #15964 * Remove the assembly implementation of 4x4 matrix mul, in favor of intrinsics. * Disable BlueToAlpha mode when logic op is present. Re-enable for Outrun and DiRT. * Vulkan: Update to latest VMA. * Build: Update xxhash to v0.8.1. * Build: Update to zstd v1.5.3. * Build: Split ppsspp_common out for Android bins. * Water effect fix #2: If ForceLowerResolutionForEffects, don't upscale textures participating in small-resolution passes. * Water effect fix #1: Force "Lower resolution for effects" on in Outrun and DiRT 2 * Fix "Lower resolution for effects" in Ratchet & Clank. Bad option for this game though. * Fix the new logic-op-in-shader on OpenGL and D3D11 * OpenXR - Mismatch in stereo and normal uniform fixed * OpenXR - Do not include lens projection in nonVR builds * OpenXR - Split projection matrix for color and depth buffer * Shader unit test fix * Preserve alpha in shader logic op emulation. Include logic op in check for packUnorm4x8. * OpenXR - Mismatched call order fixed * OpenXR - Multipass rendering fixed * OpenXR - Stereo without multiview added * Turn on logic ops in shader when shader bitmasking is used. * Shader bit setup and code generation for logic-ops-in-shader * UI: Only force ASCII messages if they're ASCII. * headless: Fix startup on latest Android versions. * arm64jit: Handle branch/jump in branch delay slots. * x86jit: Refactor and fix jump in branch delay slot. * irjit: Handle branch/jump in branch delay slots. * Fix dialog rendering (PPGe). Fixes #15954 * spaces->tabs * Fix GLES check * Additional cleanup * Add log functions to state structs * Move the computation of simulate-logic shader type earlier * Some more renaming and refactoring, extracted from a future PR * Channel mask refactor * Correct LogicOp API support detection * Minor refactor with pipelines in QueueRunner (makes more information available for easier debugging) * Don't parallelize shader compiles in debug mode, sync in debug allocator kills performance. * interp: Handle jumps in branch delay slots better. * softgpu: Correct texture check in fastpath. * softgpu: Validate alpha test properly for fastpath. * softgpu: Avoid rect fast path with subpixel offset. * Kernel: Use PSPPointer for status objects. * Io: Use PSPPointer instead of struct temps. * Font: Remove needless ReadStruct(). * Ge: Switch from ReadStruct to PSPPointer. * Psmf: Use PSPPointer instead of WriteStruct. * Net: Remove usage of Memory::WriteStruct(). * HLE: Remove misc usage of WriteStruct(). * PPGe: Cleanup memory writes for clarity. * Fix lying comment, log level reduction * Promise: Add SpawnEmpty (couldn't come up with a better name), fix bug with multiple waiters * Switch Vulkan pipelines to use promises for synchronization * VS 2022 warning fix * More buildfixing * Buildfix * Buildfix * Fix silly logic, fixes the shader leak. * Work towards finding the leak * Don't block on shader creation until it's time to create the pipeline. * Use shader module promises as keys in pipeline cache instead of the actual shader modules. * Create shader modules (and compile GLSL) on worker threads * minor sv translation fix * Use promises to hold shader modules, for later asyncification * Remove confusing resetFramebufferRead flag from secondary framebuffer binding * Remove setting "Disable slower framebuffer effects" * Remove unused function * langtool: Run fmt, remove wrong comments * langtool: Add easy command to remove a key. * unitest: Correct wrong free, initialize data. * vertexjit: Update unit test, oops. * Avoid recomputing the shaderblend setup in ComputeFragmentShaderID. * Small steps * Some reordering * More renaming * Plumb the computed pipeline state into ComputeFragmentShaderID. * Some renaming. Store the BlendState/MaskState. * OpenXR - FBO intialization better * vertexjit: Remove unused ReadUV() cases. * vertexjit: Remove unused ReadPos() cases. * vertexjit: Clamp through float pos during decode. * Replacement: Fix reload of replaced textures. * Replacement: Detect OOM even with replacements. * Vulkan: Prevent saving tex during replace load. * Revert "Merge pull request #15930 from sum2012/kernel-minor" * compile fix * OpenXR - Viewport init better * OpenXR - Emulate mouse cursor * Fix image format when dumping textures. * Fix texture saving for Vulkan * Display paths with backslashes on Windows. Show texture path when saving. * Shrink VkRenderData from 88 to 64 bytes. * Another buildfix attempt * libretro buildfix * Remove allocation from the heaviest MemBlockInfo path (BlockTransfer). Required some refactoring. * Remove a per-audio-frame allocation in sceAudio * Shrink the DeferredDrawcall struct, because why not. Assorted cleanup * Shrink the TransitionRequest struct, use TinySet * TinySet bugfix, add "append" * fbtex matching: Shrink the matching struct, use TinySet instead of vector to avoid an allocation. * Stricter checks for negative framebuffer offsets. Fixes #15937 * Merge GetFramebufferCandidates and GetBestCandidateIndex into one function. * Much faster framebuffer matching (no more ToString every time there's more than 1 candidate, etc). * Rename Slow Framebuf effects to Shader Blending (might remove). Reassign readbacks to BlockTransferGPU. * KillZone: Fix margin detection on the title screen, fixing some glitches. Need more fixes though to fix the shimmer effect. * Extract the split code to a function * Quicker way to update the through projection matrix with the split framebuffer offset * Cleanup (more to do, though) * Allow signed texture offsets on framebuffers * Offset the draws properly. Now just some texel clamping left to fix * Check X coordinate of through-mode drawcalls to figure out which of the splits to render to * Force clearing framebuffer for GTA games * Tweak ForceMax60Fps to work for Killzone * Split the framebuffer in Killzone, with a compatibility flag. * Small tweak in texture matching. Fixes #15927 * Fix sceKernelUnlockMutex timing * Remove "DisableReadbacks" compat flag. MotoGP no longer needs it after BlockTransferAllowCreateFB was added. * Fix race condition in replacement texture loading * Implement shader blending for D3D9 * Clean up mip size calculations * GE Debugger: Improve display list disasm. * Address feedback * Add support for reading depth buffers to the PackFramebufferSync function. * OpenXR - Multiview refactor to make it optional * Add another stat, for self-tex * Remove the reinterpret compat flag, now always on * Fix OpenGL bug when framebuffer fetch is available. Add two new stats. * Better framebuffer checks, remove all ways that framebuffer formats can change. * Use better pattern for enum switches * Some Vulkan renderpass load/store optimizations. * Depal: Set scissor tightly around processed area. * OpenXR - Compile fix * OpenXR - Swapchain acquiring fixed * UI: Validate UI scissor inside bounds. * GPU: Make Spongebob hack checks more readable. * GPU: Recheck depth/stencil after Spongebob hack. * GPU: Add a way to defer dirty rechecks. * GPU: Fix possible shift truncation. * Update the Spongebob workaround check to work with MX vs ATV: Reflex. See #15907 * riscv: Add a simple unit test. * OpenXR - Flag to easily disable multiview shaders added * OpenXR - Keep using GLES2 headers for now * More spongebob check tweaks, assert fix * Remove irrelevant stencil state checks * Address additional feedback, thanks! * Safer spongebob depth inverse check, includes color check and depth func * Unify the spongebob depth inverse check * riscv: Emit compressed instructions. * riscv: Improve sign reduce/immediate readability. * riscv: Emit ADD/SUB/etc. for ADDW/SUBW/etc. on R32. * riscv: Include an LI helper in the emitter. * Comments and fixes * Block transfer bug fix * OpenGL graphics fixes * Comment fixes * Reinterpret is the proper fix for God of War's shadows. * OpenXR - Dummy integration compile fix * OpenXR - OPENXR ifdef removal * Fix UV offsets in 16->32 reinterpret. Better, but something is still not quite right. * GL bugfix, log cleanup * Enable reinterprets and create-buffer-on-copy for the Tantalus games * Fix problem matching framebuffers for reinterpret * Logging improvements * Remove some old logging that's not very interesting anymore * OpenXR - Enable performance mode * Log improvement * When cloning framebuffers for reinterpret, adjust width according to bpp * Framebuffer texture matching: Remove heuristics other than seqCount * Accept color textures as reinterpretable between 32 and 16-bit formats * Implement the stencil/alpha reverse trick for all backends * Fix bug in reinterpret float impl * Comment fix, cleanup * Minor D3D11 refactoring * Fix Katamari * Bugfix, better logging * Quick hack to widen the depal texture if 0x200000 swizzle is needed * More successful swizzle impl. Not perfect * Unsuccessful swizzle implementation * wip * Initial implementation of 32/16-bit color reinterpret blits. * Refactor reinterpret to prepare for 16/32-bit * Prepare for 16/32 reinterpret * Detect need for 16<->32-bit reinterprets * Work in bytes in the framebuffer matching algorithm for block copies, avoid margins * Finish the depal refactoring. * Fix shader compilation error in depth->565 * riscv: Emit CSR manipulation instructions. * riscv: Validate FixupBranch usage better. * riscv: Emit float instructions. * riscv: Emit atomic operations. * riscv: Emit mul/div instructions. * riscv: Emit fence and 64-bit instructions. * riscv: Emit 32-bit 3-op instructions, validate GPR. * riscv: Emit 32-bit load/store and imm ops. * riscv: Emit standard B/U/J type ops. * riscv: Add initial emitter shell. * Remove support for framebuffers changing stride (already unreachable). * Revert minimum stride * Add missing terminator to VR settings array. Better logging. * More comment fixes, cleanups * Comments * Comment updates * Merge the two find FindTransferFramebuffer* methods * Additional renaming * Rename variables to make the two functions match * Split up FindTransferFramebuffers * Assert removed * Tighten the check a bit more * Reorder some parameters. Detect buffers in stride gaps. * Remove unused function decl * Fix smoothed CLUT lookups. Shouldn't go beyond the mask's reach. * Add floating point version of reinterpret shaders * Fix BlueToAlpha together with reinterpret. Add back fake reinterpret for now. * Reimplement texture format reinterpretation * Fix smoothed depal on GLES. Don't enable filtering if not using. * Fix checks for depth texture support, GLES syntax errors * OpenGL: Fix regular depal (shader depal still worked) that broke recently * Remove duplicate uniform queries * Fix wrong width/height values being stored in thin3d textures * Drive-by texture slot management cleanup * OSD: Scale large multiline messages to fit better on screen (like shader logging) * GPU: More consistently clear ptrs on DeviceLost(). * GPU: Correct Draw2D::DeviceRestore(). * GE Debugger: Fix bad read on step at start of VRAM. * GE Debugger: Add separate step based on vsync. * GPU: Centralize SetDisplayFramebuffer(). * GE Debugger: Record 1 flip if no display calls. * Vulkan: Very minor chnages after checking Best Practices with new validation layer * Use Draw2D for depal shaders (except the actual blit, for now) * Break out Draw2D in a class * Switch reinterpret shaders over to the Draw2D framework. * More Draw2D refactoring * Small Draw2D refactor * Rename VirtualFramebuffer->format to fb_format to line up with fb_address and fb_stride (fundamental parameters) * Rename fmt->fb_format * D3D9: Correct viewport offset sign. * D3D11: Correct viewport offset sign handling. * Copy color from overlapping framebuffers on bind, under certain conditions. * Implement smoothed depal for the "old" depal path as well. * Better checks for smoothed depal * Remove SmoothedDepal compat setting, instead detect the ramp directly. * Special case depal lookups for Test Drive's strange usage. * More renaming. Fix shader view for Vulkan * DepalettizeCommon -> TextureShaderCommon. Simplifications. * Convert TextureShaderApplier to a member function in DepalCache. * Simplify depal shader apply code a bit. * Replacement: Read files only within time budget. * Replacement: Be more consistent about base level. * Vulkan: Cleanup minor logging. * Config: Default PSP model to SLIM on all platforms. * Linux: Consider Vulkan if OpenGL init fails. * GLES: Correct preview of mip levels > 0. * GPU: Share CLUTs if no extended CLUT. * Headless: Set softgpu config flag. * Headless: Fix comparison for oversized buffers. * UI: Show return address for exec crashes. * Core: Show exception on misaligned jump. * irjit: Validate alignment in slow memory mode. * irjit: Add constructs for validing mem access. * More D3D9 work on depth textures. Something still missing. * Address more feedback, cleanup scale parameter * Remove leftover resolutionScale depal config parameter * Compatibility check * Use a DX9-compatible method to pass texwidth and height. the effect doesn't work on DX9 yet though. * Fixes for D3D11 * Remove debug code, cleanup * Fix glitch when changing render resolution * Really not sure how we can detect whether a depth deswizzle is needed :( Hopefully temporary flag... * Texture bind channel fix. Still need to figure out a way to decide to swizzle or not. * Fix graphics in Ratchet & Clank. WIP * Fix naming of temp fbos to be in PSP pixels * Allow binding depth as 565 by going through depal. * softgpu: Correct morph weight updates. * softgpu: Flush on transfer to pending tex read. * softgpu: Restrict CLUT to proper size. * GE Debugger: Include extended CLUT in frame dumps. * GPU: Restrict mip CLUT enhancement a bit. * GE Debugger: Correct 16-bit CLUT display. * GPU: Correct depal CLUT texture for 5551/565. * GPU: Purify ConvertViewportAndScissor(). * GPU: Dirty params when converting viewport state. * Address feedback to PR #15858 * Restore the clearing optimization, avoiding unnecessary depth copies * Fix deferred-depth for bezier/spline. Move updating of last_frame_depth_render to GPUCommon. * Minor fixes. Everything seems fine now. * Implement copying color to depth on load. However, weird stuff is happening.. * Extract depth copies to CopyToDepthFromOverlappingFramebuffers * Remove the color-to-depth mode * Defer depth copies until depth buffer is actually used. * Texture bind channel fix * More consistent handling of lack of depth texture support. Small log improvement. * Fix bug in framebuffer matching where the wrong format was checked for depth matching. Fixes #15867 * Update ko_KR.ini * OpenXR - Step closer to identify multiview FBO issue * OpenXR - Use OpenGL ES 3 and ensure FBO pair calls * OpenXR - Initialization errors fixed * Update ko_KR.ini * Update ko_KR.ini * Update ko_KR.ini * OpenXR - Multiview in progress * Initialize a bunch of Dialog structs * Fix dependency of RISC-V targets on common JIT code * Update ko_KR.ini * Bias towards the most recently written framebuffer * Remove restrictions on VRAM addresses for depth and color * Always attempt to match both depth and color * Pre-reject DXT formats, Misc * Show seqCount in candidate list * Stride fix in matching * Framebuffer matching simplification * OpenXR - Multiview uniforms working * OpenXR - Refactor display framerate * Fix the raster depth blit again, which I recently broke. * Typo fix * Silverfall: Add the US game ID too * Add Silverfall to [AtracLoopHack]. At least we're gathering a good list of test cases once we have an idea for a real fix... * Use sequence numbers instead of a tracking array for depth buffers * Revise comments according to feedback * Oops, remove wrong comments * Comment updates * Clean up and comment framebuffer struct better, add bind sequence numbers * After recording a GE dump, open an explorer window pointing at the file * Remove the DX9 namespace, for consistency with the other backends * Vulkan: Restore a minor old forgotten optimization * More removing redundant stuff * OpenXR - Disable multiview for now * Add a newline to "Leaving main" message. * Refactor 2D pipeline creation * OpenXR - GL and OXR logging added * OpenXR - Resuming renderer fixed, haptics support added * Minor cleanup in reinterpret * Rely on refcounting for stencil upload shader modules * thin3d: Properly AddRef and Release shader modules from the pipeline in backends that need it * add bin and elf to picker as they now work * Remove some unused code in FramebufferManagerD3D11.cpp/h * remove storage fileloader and storage folderbrowser * Remove deprecated function (mostly) * Remove some unnecessary bool returns. * Move out the reinterpret stuff to ReinterpretFramebuffer.cpp. Draw2D refactor. * Assorted minor cleanup * Revert "Pause the debugger on TRANSFERSTART (treat that as a prim)" * remove unneeded switch case as un broken cases fall through * OpenXR - Recenter changes pitch of the 2D screens * OpenXR - Ensure PSP aspect ratio for 2D content * OpenXR - Option to set canvas distance added * OpenXR - 2D mode hack mappable (using screen keycode) * GPU: Avoid using depth buffers for blending. * GE Debugger: Fix crash on 0 count prim. * GE Debugger: Correct base accounting in playback. * GPU: Skip fb create upload when clearing. * GE Debugger: Save tab configuration. * GE Debugger: Cleanup duplicate dlist redraws. * GE Debugger: Correct tab updating for right panel. * GE Debugger: Actually allow swapping tabs. * GE Debugger: Add context menu to control tabs. * OpenXR - Integrate multiview into system * GE Debugger: Show/hide tabs if empty. * GE Debugger: Track tabs per panel. * OpenXR - Config for stereoscopic vision added * OpenXR - Default config values fixed * OpenXR - Unused parameter removed * OpenXR - VR renderer adjustments * OpenXR - Framebuffer multiview used * Move the display list view to its own column on the right * Add plain Create method to CtrlDisplayListView * Pause the debugger on TRANSFERSTART (treat that as a prim) * Add a second set of tabs to the Windows GE debugger. Also reorder stuff. * oop * oop * oop * Use compat.ini instead * Add atrac hack setting * Net: Cleanup initialization syntax. * GLES: Correct some variable shadowing. * libpng: Correct func pointer type warning. * Global: Cleanup some unreferenced warnings. * Font: Fix bad memory read on invalid font data. * Assign value to version where appropriate * Font: Correct uninitialized values. * Atrac: Avoid accessing uninitialized stream status. * OpenXR - Support for multiple projection matrices in the scene * OpenXR - Rotation mirroring fixed in a few games * Update * A better way to get property * Build: Correct ccache keys. * Atrac: Avoid an uninitialized value. * softgpu: Ensure TCs are initialized. * softgpu: Correct bad munmap() size. * x86jit: Avoid an instruction form Valgrind hates. * Headless: Correct bad pointer without gfx context. * Core: Correct shutdown on late init failure. * Try to fix shader compilation error on Adreno reported by Lubos * OpenXR - Remove OPENXR ifdef from UI * OpenXR - Better detecting of 2D menus * Debugger: Bump GE dump version to ignore bad flag. * Debugger: Correct GE frame dump VRAM dirty flag. * Debugger: Fix crash on bad request. * GPU: Avoid stencil force pass when writing depth. * GPU: Write stencil fail to alpha is RGB masked. * Fix feature checks * Enable framebuffer depth blits through raster. Fixes games like Jeanne D'Arc on D3D9. * Some enum renaming, move RasterChannel to GPU.h. * Careful with mipmaps on old OpenGL ES. Lost this check in the refactor, made it clearer than before at least. * Texcoord attrs must be called a_texcoord0, this should be fixed. Oh well. * Convert depal shaders to use the ShaderWriter. Add tests for depal shaders. * Cleanup * OpenXR - Detect 3D content better * Warning fix * Remove BGRA color swap in depal for D3D, no longer needed (and breaks Simpsons) * Update zh_CN.ini * Headless: Cleanup unused/leak warnings. * OpenXR - Detecting UI mode improved * Change indentation to tabs. * UI: Show better warning on MAC reset. * Lang: Fix some mismatched lang keys. * Build: Remove no-format. * Common: Avoid format warning with log timestamp. * GLES: Correct alpha check for depal framebuffers. * Add -Wformat (see issue #15792), no idea if ok. * Oops, this iOS check was still required. * More framebuffer blit fixes. * Improve the NPOT check * Forgot these... * Make GLQueueRunner/RenderManager aware of device caps, use it to check for NPOT and some other stuff * Remove optimization in BlitUsingRaster that shouldn't have been there (redundant, lacked feature check) * Reimplement bicubic upscaling. * GLES: Correct semantic name for Draw2D. * GPU: Clarify new framebuf stencil upload. * Dialog: Add missing header for MSVC 2017. * GPU: Skip alpha stencil upload when safe. * GPU: Cleanup remnants of GLES-only stencil upload. * Fixed infinite loop and crash which could occur when using "Import from cheat.db". * Fix feature check for wrapping of non-pow-2 textures * Feature detection fix on old GL, more compiler warning fixing * D3D9: Fix a lot of stuff * More cleanup, fixes. * More cleanup * Buildfixes * Lock out shaderDepal from D3D for now, will implement later. * Feature detection fixes * Delete all the duplicate implementations of ApplyTextureFramebuffer * Remove Vulkan2D * Move the depal cache instance ownership to TextureCacheCommon * Compiles on Vulkan, but doesn't yet work. * Switch over D3D9 as well. Buggy, will debug after unification * Works with D3D11, except the depth texturing case * Simplify * Fixy fix * D3D11 prep * Move the TextureShaderApplier out to DepalettizeCommon * Move more stuff to Common * OpenGL: Fix shader depal too. * Move to Common * Mostly works for OpenGL. * Port the OpenGL depal path to thin3d * Fix some compiler warnings * ShaderWriter: Fix GLSL 1.0 output * Fix corrupted colors when using software upscaling with OpenGL. * Use safe_string when printing %s with Memory::GetCharPointer. * Prefer using "%04x" over "%04hx". * State handling reordering in D3D11 and D3D9 backends. * Fix logging warning issue. * Update /lang/ru_RU.ini * OpenXR - 72Hz support added * OpenXR - Unused variable removed * OpenXR - HUD is enabled based on gstate * Fix include issue. * Updated copyright's year. * Replace the dummy PSN name with Nickname on sceNpInit. * Moving sceNpMatching2-stuff to sceNp2.cpp/h. PS: Register_sceNpMatching2 not being added to HLETables because currently the callback didn't work properly yet and could crash the game. * Implement NP Signin Dialog (faked signin) * Updated NP Library PS: Some of registered modules should probably moved to a separate files (ie. sceNp2.cpp). * Added a FunctionWrapper used by sceNpService * UWP: Fix missing font file causing missing text fields. Fixes #15771 * Delete more unused code * Fixes, state invalidation * Delete unused stuff in all backends * Remove the D3D9 and Vulkan BlitFramebuffer functions * Replace D3D11's BlitFramebuffer with the common one * Convert FramebufferBlit from the GL backend to use thin3d * D3D11: Remove more custom drawing * Fix upscaling in Vulkan. Fixes #15779 * OpenXR - Forgotten file added * OpenXR - Introduce VR tweaks * UWP buildfix * Reimplement filtering in DrawActiveTexture * Delete the OpenGL implementation of DrawActiveTexture. * Delete the Vulkan implementation of DrawActiveTexture, fixups to shader gen * Delete the D3D9 impl of DrawActiveTexture * Move to common (todo: merge with above) * Convert the D3D11 DrawActiveTexture to thin3d * Draw2D * Need a separate cap bit for stencil blits to prevent misuse on D3D9 * Cleanup and testfixes * Unit test, comment * Rebind the framebuffer only if we're in the blit path. * Bufferless path for D3D11/Vulkan * Get D3D shaders to build (though not working correctly) * Switch to ShaderWriter. Works in OpenGL * Unify stencil buffer upload using Draw. Only OpenGL tested yet (shaders need adaptation). * Implement DrawUP for D3D11 * OpenXR - HUD support added * GLES: FramebufferBlit: Don't blit if the target is the current framebuffer. * Clean up blit/copy feature detection. Don't need fast GPU flags for these. * Fix crash in shader upscaling. This variable shadowed the one that now lives in Common. * OpenXR - Estimate world unit scale * OpenXR - Head orientation in some games fixed * OpenXR - Refactor the common math methods * Use BlueToAlpha in more games instead of ReinterpretFramebuffers/ShaderColorBitmask * Fix Vulkan as well * Fix for D3D11 and GL, but not Vulkan for some weird reason * Avoid upscaling textures used for color-to-depth. * Disable texture filtering when drawing color into depth * D3D9 fix * OpenGL fix * D3D11 fix * Implement color-to-depth for Vulkan, start implementing for D3D11 * Add logging for some non-traditional uses of framebuffers. * Fix small breakage in Vulkan texture decoder * Fix Macross glitches. * Vulkan: Don't try to auto-mipmap 3D textures in max quality filter mode * OpenXR - 6DoF head movement support added * Fixes UWP building issue after Retargeting Solution to a different SDK version. PS: This won't work when selecting the "latest installed version" tho, so a specific version need to be selected when retargeting. * OpenXR - Renderer support for axis mirror added * OpenXR - Use a build variant instead of a module * CI: fix tag regex to match also shorter tags like v1.13 * Address feedback * Check for color/Z clashes * Track depth buffers separately from framebuffers to track previous use for copies * Give the mip bias its own uniform flag. * Possible flicker fix for Macross * Revert mistaken change in D3D9 fragment shader gen * Support 3D textures in OpenGL ES, add feature check * Testfix, cleanup * Implement 3D texturing in the OpenGL backend too. Assorted fixes. * Remove some dead code * Implement 3D textures for D3D9 as well * Implement 3D textures for D3D11 * Some safety checks to avoid bad combinations, probably not really needed in practice. * Quick attempt at fixing the Macross glitch * Fix the mip bias to take the texture depth and sampling offset into account. * Implement new discovery of a larger CLUT than we thought, plus non-shared CLUTs for 8-bit indices. * Initial implementation of 3D texturing through equal-size mips (see #6357) * CI: make indentation in tarball.yml consistent * Reporting: Disable when debugger methods used. * GPU: Small scaling variable cleanup. * CI: also upload release source tarball on tag push * Revert debug change * Unify the GLES LoadTextureLevel with the D3D ones. * Prepare to convert the GLES functions too * Share LoadTextureLevel between the two D3D backends. * Cleanup * Part 2 of the above * D3D: Part 1 of breaking out the API stuff * libretro buildfix * UWP buildfix * Simplify CPU upscaling code * Vulkan stencil fixes * Make the D3D9 backend handle stencil state in more similar ways to the others. * More thin3d d3d11 fixes * thin3d: Make writeMask and compareMask dynamic in all backends. D3D11 needs emulation. * thin3d: Remove dual sided stencil, not supported by all backends anyway * Remove some indentation * Use PrepareBuildTexture from the Vulkan backend too * Change from maxLevel to levelsToLoad, for better readability. Cleanup. * Define texture loading plan semantics better, pre-port some from Vulkan * Vulkan: One step closer to using PrepareBuildTexture * Update PrepareBuildTexture * Use PrepareBuildTexture from DX9 backend * Use PrepareBuildTexture from D3D11 backend * Break out the preparation part of BuildTexture from GLES * Additional cleanup * Get the GLES BuildTexture slightly closer * Make the BuildTexture of DX9 and D3D11 backends more similar * Remove indentation, useless code * Remove the DX API access from LoadTextureLevel * Remove fake-mipmap logic from LoadTextureLevel * Minor code simplification * Remove unused parameters to some conversion functions * Remove unused useBGRA parameter * Remove the ReplacedTextureFormat enum * Remove support for 16-bit replacement texture formats * Update ru_RU.ini * readme link * Windows: Add a simple window message to get the base pointer. * Update assets/lang/ru_RU.ini * OpenXR - Switching between 2D/VR fixed * Update version for 1.13.1 * Update README.md for 1.13.1 * Replacement: Cleanup leak on replacement reload. * Replacement: Clear cache on disable. * irjit: Correct another PurgeTemps case. * irjit: Clarify PurgeTemps, guard a couple ops. * Add confirmation dialog when generating a new Mac address * OpenXR - VR settings added, better UI detection * better pt-pt translation * Fix bug in blue-to-alpha - alpha blending could be on when it shouldn't be. * Reporting: Avoid crash if socket connect fails. * Some zero init, add a null check in TextureReplacer. See #15730 * OpenXR - Move VR folder under Common * OpenXR - Static added to global variables * OpenXR - Version info refactor * OpenXR - Integrate SYSPROP_HAS_FILE_BROWSER * OpenXR - Automatically switch between fullscreen/VR * Update version for 1.13 release * README.md update for the 1.13 release * Simple hack to hide the search button in settings on small screens. Needs a better solution. * OpenXR - FoV fix for Quest 1 * OpenXR - Basic look around implementation * Build: Update to NDK r21e. * Switch to using the D3D9 state cache in thin3d, to avoid confusion * Clarity improvement in dx state cache stencil func * Remove unnecessary complexity from the D3D9 state cache * Remove bool that was always true in state mapping. * irjit: Correct initialization warning. * irjit: Add test for double clobber in #15713. * Headless: Ignore __testcompare.png in tree. * irjit: Simplify more arithmetic to Movs. * irjit: Add tests for IR passes. * OpenXR - Enable 6DoF mode when in game * Revert the x-offset bpp fix temporarily. * Add GPU stat for number of depth copies per frame * OpenXR - Code formatting fixed * OpenXR - Disable HW scaler on VR headsets * OpenXR - Default device config added * OpenXR - Hide unsupported menus * OpenXR - VR code formatting fixed * OpenXR - Finalize VR renderer interface * Libretro fix * Windows fixes * Remove unnecessary parameters from MakePixelsTexture * Delete some unused code. * Separate logging for GetPointer/GetPointerWrite * Split GetPointer into two versions, to help with const correctness * OpenXR - Pragma once instead of ifdefs * Allows "merging" render targets that overlap on the Y access. Fixes #7295 (Juiced 2) * OpenXR - Code formatting header removal * OpenXR - Code formatting global variables * OpenXR - Code formatting { * OpenXR - Button repeating implemented * OpenXR - Controller mapping better * irjit: Prevent corruption on purge temps pass. * Add UWP Platform to Issue Templates * (UWP) Update Dummy Manifest * (UWP) Remove Reference to Deleted File. * (UWP) Delete Old Key * (UWP) Building Improvements * Remove redundant file from packages. * Prevent Dummy file from appearing in packages. * Revert "(UWP) Small Building Tweaks." * Remove a redundant mutex lock in logging. * Remove redundant file from package. * Prevent dummy file from being in the package. * Main screen: Display .ppdmp filenames on buttons in grid mode * Remove log noise * Mali driver bug workaround for driver 32+. * OpenXR - Hacky mapping to make the games playable * OpenXR - UI controls integrated * OpenXR - UI scale/resolution fixed * OpenXR - Input class added * Osk: Allow upper/lower for all keyboards. * Debugger: Update to latest web debugger. * Debugger: Fix SVG content-type for proper display. * Use the recent Clone Wars fix for Star Wars: Force Unleashed too * OpenXR - Rendering UI fixed * OpenXR - Rendering into VR framebuffer works * OpenXR - Dummy rendering working * Update zh_CN.ini * Add a simple compat flag to workaround the Clone Wars issue, #12949 * Apply leoxxx's spacing changes in zh_TW.ini * Update zh_CN.ini * Update zh_CN.ini * Add Zettai Zetsumei Toshi 3 bypass for softlock on character select screen * zh_CN translation: Apply spacing rules according to leoxx. See #15660 * Io: Correct access field on dir listings. * Config: Keep recentIsos lock owned by Config. * langtool: Add command move-key to move a line globally from one section to another. Update deps * Update zh_TW.ini * Update zh_CN.ini * Add files via upload * compat.ini for Mali stencil bug: Add the Suikoden game too * OpenXR - Initial version of VR renderer added * Mali workaround - add compat.ini entry for Mahou Shoujo Nanoha A's Portable. * Config: Cleanup recent on a thread. * Config: Move recent ISOs access to accessors. * Io: Show message if files are outside valid ISO. * irjit: Allow unaligned loads by default. * UI: Reduce IO for texture ini on dev settings. * Improve comment, variable name * Vulkan fragment shaders: Don't opportunistically emit "layout (early_fragment_tests)" * Slightly improve logging of failed block device reads * Fixes Kenka Bancho too. * Tweak the Mali stencil-test workaround to work for Surf's Up. See #15016 * Dynamic update * Remove unmotivated check preventing texture ini creation on mobile. (#15647) * Common: add explicit for BSDs after 3ed74350129c * OpenXR - VR mode initialization added * Fix comment * Double quote * Be explicit on the possibility of failure * Use hashtag for RGBA format * OpenXR - VR framebuffer class added * OpenXR - Hide options which are not relevant for VR * OpenXR - SDK added * Change theme endianess * Update zh_CN.ini (#15657) * Add check that makes PPSSPP work on Xbox through the debugger * Replace Win32 file IO with UWP safe variants and add support for getting drives to UWP build (#15652) * OpenXR - Quest target into Android Studio project added * compat.ini: Add R-Type games to IntraVRAMBlockTransferAllowCreateFB. * Compat: Fix backwards check. * UI: Add small deadzone for analog speed. * UI: Clamp analog speed to 0 on opposite value. * Update zh_CN.ini * Update zh_TW.ini * UI: Reset views when analog speed mapped. * UI: Allow cancel from analog speed mapping. * Change comment based on new findings. * UWP: Skip pad name lookup. * UI: Add analog speed limit mapping. * Core: Track names of connected pad devices. * interp: Fix constant typo. * Compat: Add setting to skip compat flags. * Reporting: Log when vertex count truncated. * Updated wiki page key in all translation INIs. * Remove left over * Change hack names and edit comments based on feedback. * Improve the vortex hack to make it safe and slow it down * Test hack that breaks the vortex timer, it's still wrong * Add 30 fps version as an option, doesn't suffer from softlock * oops * Updated text on AdHoc wiki page button. * Updated "Use original port" tip message. * Add Fixed60FPShack for GOW, should work smoother than the ForceMax60FPS. Also more stable than it's CWCheat version, unfortunately because of that, still causes softlock in GOW:GOS vortex stage. * Disable ForceMax60FPS for GOW:GOS to avoid softlock * Show a tip message when enabling "UPnP use original port" option. * Update zh_TW.ini * Update zh_CN.ini * Update th_TH.ini * Hide Hostname progressView when not showing any message to get a better view of the list. * Slightly reduce Hostname progressView's margin as it took too much space. * Added psp.gameplayer.club public Adhoc Server. * Additional game IDs for The Simpsons Game * Apply the mali workaround for The Simpsons Game. * Merge pull request #15629 from Halo-Michael/lang * Add ARM64_NEON compile arch flag * ffmpeg: fix compile bug * Mask some part of public IP in the logs for security reason. * Update zh_CN.ini * More translation key * Add numpad enter as a confirm * Update all * Remove driver version check for Mali stencil/discard bug. See #13833 * Update eng lang * Oops, revert debugging commit * Workaround for strange driver hang on Raspberry Pi 3. * Keep ye olde else case * Avoid including signal.h from CommonFuncs.h * Allow to repeat a "single" button * Out of performance paranoia, limit the Mali workaround to known affected games * Work around the Mali stencil discard bug the same way as the Adreno one. * Show detected GPU driver bugs in system info * Increase the difficulty of the GPU driver test * Build: Use cinttypes not inttypes.h. * Update zh_TW.ini * Update zh_CN.ini * Update gamecontrollerdb.txt * Update zh_CN.ini * Update zh_TW.ini * Fix-ja_jp.ini * Fix-ja_jp.ini * Small struct layout optimization (stencil is never more than 8 bits, can sneak in next to the load actions) * Rename Vulkan attachment operation variables. Prep for supporting specifying store op. * Inline the CoreParameters accessor (eliminates a function call for each access) * Shaun White Snowboarding: Use compat flag to eliminate a readback per frame * Echochrome lines: Remove UV offsets, avoid reading the destination (much better codegen) * Update zh_CN.ini * Update zh_TW.ini * Update zh_CN.ini * Add centered line drawing for Echochrome. * Take the absolute value when measuring pixel size for line expansion. * Bump gradle again, .gitignore update for VS 2022 * Add TODO to see if we can make better choices of time sources * add additional rescaps * fix indentation * add runFullTrust, broadFileSystemAccess and expandedResources rescaps * Add guard * Update zh_CN.ini * Add search on SDL * Update id_ID.ini * Update zh_CN.ini * Small Change * Update zh_TW.ini * Update * Indonesian Translation Update * Fix commending wrong lines * GLES: Fix sw transform flip in skip buffer mode. * Update defaultshaders.ini * Add files via upload * Update upscale_spline36.fsh * Return by copy * Log missing lines on shutdown, update lang files * Fix CpuCore select * Merge update into master * Savedata: Allow no key when not using SECURE modes. * Osk: Fix fullscreen check. * UI: Abandon focus movement on returning from pause. * Update zh_CN.ini * Config: Don't save --fullscreen unless changed. * Fix themes as well * Postshader: Avoid treating directories as files. * Update th_TH.ini * Update zh_TW.ini * GPU: Fix skip buffer effects rendering. * GPU: Hook Sol Trigger func to flush texture. * Crash: Recover from unaligned CPU access. * Update pt_BR.ini * Add files via upload * Update zh_CN.ini * Detects connection establishment to AdhocServer by combining select and getpeername to increase accuracy. * We might be missing this in the past. * Fix sceNetAdhocPtpConnect issue on Windows (ie. Tales of VS) due to getpeername on Windows can return a success when the other side haven't Accepted the connection yet. * Fix sceNetAdhocPtpConnect issue on non-Windows (ie. Taiko no Tatsujin Portable DX on Linux) due to select can flags an unconnected socket as writeable & readable on Linux. * Added a note regarding SO_NOSIGPIPE * Avoid compilation warning * Avoid a possibility of fatal signal on non-Windows * Added a note regarding select on Linux. * (libretro) Add option to detect and notifiy frontend of internal frame rate changes (60 <-> 30 <-> 20 fps, etc.) + restore 'Duplicate Frames in 30 Hz Games' core option * Update zh_CN.ini * Limit minimum timeout to [0, 100, 200, ..., 5000] * Fix missing GPU and run tools * For Libretro -DUSE_DISCORD=1 is not added in CMakeLists.txt * Let port offset cover the entire range in steps of 1k * Remove options for network chat, since these only work for standalone * Make MAC address configurable and randomize when not set * Fix update of chat screen position * Disable UPnP by default * Correct indentation and some strings * Expose networking options in libretro core * Unused lang tool * Update Russian translation * Display: Ignore lagsync when auto frameskip on. * Tweak -latomic preconditions in CMakeLists.txt. See comments on 14e9aab96e111 * softgpu: Correct stencil debugging. * softgpu: Fix viewport flag clean/dirty. * Lang: Remove some duplicate lines in German. * uptated German Translation * Enable -latomic on Linux. Fixes build on Raspberry Pi 3b for me. * Update .gitignore * Replacement: Allow texture dump without replace. * Fix shader blending regression (Vulkan) * libkirk: Set Segher Boessenkool's original copyright notice * Fix discrepancy in how the LMODE flag is calculated between VS and FS * Vulkan: Correct size for tex mip level readback. * Vulkan: Fix depth transition barrier. * Remove the rather problematic limit on framebuffer copies * Remove log output * Combine barriers before blits/copies * Convert some barriers to use the new barrier framework. * Add utility class VulkanBarrier * Combine renderpass "pretransitions" for barriers. * Vulkan: Follow sampler best practices with auto max quality. * Bump vulkan headers to SDK 1.3.211 * Bump gradle * Better default control config for the Retroid handheld Android console * Convert the blueToAlpha bool to a usageFlag. KEEP instead of CLEAR for depth during reinterpret. * Oops, gotta update the cached framebuffer format in the other drawing paths too * Finish BlueToAlpha functionality * BlueToAlpha hack to avoid clearing the envmap in split/second :( * Add option to redirect blue to alpha if 565 mode is rendered and mask is 0x0FFFFF. * Move framebufFormat to gstate_c, so we can override it * Dirty more state after reinterpret * Minor cleanups in framebuffer manager * Detect ISO files from file contents if extensions are wrong. * Allow to set InternalScreenRotation per game * Logs unimplemented syscalls as error * Partially fixes SenseMe app (will need HTTP/HTTPS support to be fully working) * Vero4k doesn't report its NEON support - so check for underlying Arm Cortex-A53. * GLES: Reverse alphamask when comparing to CLUT. * Simplify alphasum checking for DXT textures, and fix a regression * Make the existing ReinterpretFramebuffers/ShaderColorBitmask path work for Split/Second * Fix lazy loading of metadata * UWP: Fix loading the default theme. * Fix regression with CLUT16 textures. See #12188 * Minor cleanups * Fix mip level bug in Vulkan texture cache. * Make UI a bit more descriptive * Add key bind to hotswap internal screen rotation * Fix checks for the "fake mipmap" situation. * UI: Prevent save textures if not replacing. * Vulkan: Save textures using a memory copy. * Replacement: Avoid recheck saving within 5s. * Replacement: Move IO checks to saving thread. * Vulkan: Allow saving const tex levels. * Add the slow comment to one more place * Save textures on background tasks when texture dumping is enabled. * Fix hang when choosing "Skip" in first-time init. Warning fix, comment add. * Disable the compat.ini workaround for Crash Team Racing. Reported by Panderner to not be needed anymore. * Add contributed data about a couple of prototypes to auto-expand memory to 64MB * UWP crashfix - serialize accesses to each loader * Crashfix * Fix typo and optimize locking pattern in Event, make it the same as LimitedWaitable. * Buildfix * Try a clang pragma to avoid overeager auto-vectorization * Buildfixing, correct NEON type usage * SIMD-optimize CheckMask16 / CopyAndSumMask16 * Delete a lot of specialized alpha checking code. * Address feedback * One more NEON optimization * Quick NEON optimization of CheckMask32 * SSE optimize a common case for video * Yet another bugfix * Debug log (remove before merge) * Bugfixes, handle the rest of the cases * Simplification and some cleanup * Remove redundant line * Fix DeIndexTexture * Comments * AND together colors while decoding, and then check against fullAlphaMask. * Fix some NEON code that had bad compile-time checks (and some didn't compile) * ARM32: Remove a lot of non-NEON fallback paths * Always use the stable quick tex hash. Doesn't actually make a difference except on new CPU archs. * Remove more function defines * Merge separate NEON functions into the normal functions. * Avoid creating a fileloader during shutdown. * Make the number of threads flexible in the threadmanager test. Increase to 9, just because. * Replacement: Avoid potential destructor crash. * ThreadManager: Improve waitable destruction. * Fix race condition in LimitedWaitable between Notify and Wait * Fix misuses of cond.wait (should return true when you want to stop waiting!) * OK, this does crash * Time the stress test * Add a scheduling stress test to TestThreadManager.cpp. * Bump Android target version to 12L. * Gradle bump * Net: Ignore SIGPIPE errors on POSIX systems. * Switch: Fix GL build typo. * NetAdhoc: Fix warning. * Switch: Avoid loading Vulkan. * Detect number of cores in build script * Allow to change atlas per theme * Increase the timeout when the connection to the AdhocServer is already in progress, avoids cutting off the connection if it took longer than expected but almost completed. * Added a function to get SO_ERROR on a socket. * Updated getLocalIp function to detects local IP better. * Use the most recent posix socket id during blocking simulation, since there is a possibility for the socket id to changes after recreated. * Recreate the socket before attempting to connect again after ECONNREFUSED/ENETUNREACH error, since reusing the socket only works on Windows. * Caches IP-specific Port Offset to avoid recalculating them. * Use reference when possible to avoid copying. * Initialize some socket-related structs to avoid unexpected behavior. (May fix Unknown Source Port issue) * Shouldn't return as soon as possible when a blocking PtpConnect is getting ECONNREFUSED error, since it should be treated as ETIMEDOUT on non-Windows platform * Ignore disconnected error on PtpFlush. Fixes disconnection issue on some games (ie. R-Type Command) * Debugger: Keep separate tag dirty for RAM. * Debugger: Fast path write tag lookup. * softgpu: Combine memcpy into single. * Debugger: Improve tag on copies. * softgpu: Avoid unnecessary clearMode checks. * Manual generate Android APK * Add a check to the elf loader, preventing a crash on bad module info addr * softgpu: Plug bad leak of bin queue data. * softgpu: Reduce memory usage on 32-bit. * softgpu: Enure aligned bin queues. * softgpu: Avoid some unaligned access on x86_32. * Loaders: Fix 64-bit conversion warnings on 32-bit. * Global: Fix some int/size_t conversion warnings. * Fix grid align * Add version to game screen * Short circuit the texture replacement code * Don't track small wide-stride block transfers * softgpu: Fix build with basic logging. * Windows: Correct root vol handling for UNC paths. * Windows: Create SYSTEM directory early. * Show game crashed * GLES: Remove old invalidation code. * GLES: Add asserts for correct blend usage. * GLES: Use EXT not GLES3 for dualsrc blend support. * Debugger: Track unchanged VRAM to avoid copy. * Also delete vulkan_funcs.hpp, oops * Debugger: Improve drawing range in softgpu. * softgpu: Use region as a second scissor. * softgpu: Correct accounting for pixel center. * samplerjit: Correct nearest negative texture clamp. * softgpu: Directly implement rectangle drawing. * softgpu: Prepare dedicated rectangle path. * softgpu: Cleanup some now unused state. * softgpu: Remove incorrect offsetting for X/Y. * softgpu: Use a const for subpixel screenpos factor. * softgpu: Remove offset from screenpos. * Upgrade to Vulkan 1.3 headers (and remove the .hpp files) * Gradle upgrade again. Remove some redundant version checks * Allow to set default background color in a theme * Fix live update * Make the untextured uniform buffer the same size. * Disable darkening background, also allow to over saturate up to 2 * Add UI Tint/Saturation settings * samplerjit: Fix non-SSE4 bugs in jit. * samplerjit: Fix non-AVX three-op shift. * Unhide "Cache ISO in RAM" on ARM platform. Not the right block level. We should probably check for available RAM instead. * More fixes for themes * Merge item and button style, remove hightlighed and few other fixes * Fix disabled bg * Allow translation * Add themes to assets * GE Debugger: Highlight changed matrix values. * GE Debugger: Highlight changed state values. * GE Debugger: Track last gstate on stepping. * Debugger: Allow custom draw and generic lists. * Debugger: Avoid scroll on breakpoint add. * Debugger: Cleanup some header pollution. * softgpu: Track dirty vs really dirty per buffer. * softgpu: Allow tri -> rect in transform. * softgpu: Turn more tri strips into rects. * softgpu: Combine tris to rects with ignored z too. * softgpu: Cleanup todos on perspective correctness. * softgpu: Avoid modifying source vertex data. * Adress feedback * remove more prebuilt stuff and huge rapidjson testsuite (unused) * also delete pre-built ffmpeg windows libraries * Keep comment up to date * fix version string generation * fix version number display * try 2: remove pre-built ffmpeg and vulkan libraries * remove pre-built ffmpeg and vulkan libraries * fix mime type of xz tarball * rename action title * rename to tarball.yml * use recursive submodules and checkoutv2 * Forgot pragma, silly me * Allow custom UI themes * GE Debugger: Avoid crash on Step Draw with flush. * Debugger: Improve memory search result draw speed. * Debugger: Search scratchpad/ram/vram consistently. * CI: add github action to build source release tarball with submodules * GE Debugger: Correct icon list cleanup on shutdown. * Add missing Config.h include * GE Debugger: Optimize slab lookup. * GE Debugger: Skip overhead without breakpoints. * Generate dockerfile in GHA * Vulkan: Avoid crash on double DeviceLost. * Android: Correct truncation behavior. * GE Debugger: Add filter to skip prim calls. * Debugger: Avoid write tag lookup on small alloc. * Debugger: Use detailed meminfo with breakpoints. * GE Debugger: Allow modify/breakpoint on matrix. * GE Debugger: Cleanup right click on state. * GE Debugger: Allow setting secondary values. * GE Debugger: Add breakpoint icon in state. * GE Debugger: Cleanup vertex list redraw. * GE Debugger: Flush downcount when changing lists. * GE Debugger: Reduce playback command noise. * samplerjit: Precalculate DXT1/3/5 offsets. * Delete pauth_tool, useless since pauth keys known * samplerjit: Reduce DXT5 decode code size a bit. * samplerjit: Optimize DXT calc using BMI2. * samplerjit: Avoid RCX gymanstics with BMI2. * samplerjit: Decode colors with BMI2. * softjit: Use PEXT to downsample colors. * softjit: Use BMI2 to speed up dst color loads. * softjit: Use BMI to simplify some masking. * x86jit: Use BMI2 for variable shifts. * softgpu: Avoid flush on END. * Remove double flush in GE_CMD_END * GPUCommon: Remove misleading flag FLUSHBEFORE. * HLE: Fix some type convert warnings. * Global: Reduce includes of common headers. * Global: Fix some type conversion warnings. * Common: Remove some unused files. * Core: Skip stats reset while stepping. * Display: Account for stepping time in graphs. * Display: Move core counters/stats to HW file. * Display: Move listeners to separate HW file. * Headless: Improve total test time on Windows. * Headless: Improve test init time. * Debugger: Encourage better meminfo accounting. * Build: Fix Windows unit tests. * Kernel: Adjust timings of LwMutex and EventFlag. * Build: Ignore nullable completeness on Android. * UI: Cleanup some reference warnings. * samplerjit: Fix non-shared CLUT on Linux. * samplerjit: Validate compile in a unit test. * samplerjit: Correct level lookup in nearest. * samplerjit: Fix reg corruption in DXT funcs. * samplerjit: Compile sampler funcs together. * softjit: Add tests for compile success. * Common: Avoid assert hang in CI. * softjit: Fix stencil bug running out of regs. * Build: Enable ccache for GitHub Actions. * Build: Run unit tests after build. * Headless: Remove stack corruption workaround. * Headless: Add flag to run failing tests. * unittest: Skip D3D shader compile on non-Windows. * unittest: Correct Windows-specific Path tests. * softgpu: Skip new CLUT if identical. * unittest: Use more consistent output executable. * unittest: Correct failing unit test. * samplerjit: Reduce register waste. * samplerjit: Avoid frac uv transfer to gen regs. * Added another attempt to detect GETIFADDRS availability, which is more common on newer OS * We might be missing the SIOCGIFADDR * Added logs for error within SIOCGIFCONF section. * Change a confusing variable naming * Expose 2xBRZ texture filter option. * Mp3: Delay low level init. * Mp3: Output PCM data using even/odd buffer slot. * Mp3: Allow decode with NULL out pointer. * Mp3: Cleanup AuCtx constructor. * Kernel: Fail threads with invalid priority. * UWP buildfix * Quick hack attempt around build failures * Rtc: Fix day of week stack bounds issue. * Savedata: Fix indeterminate timing of field update. * Ge: Fix sceGeBreak error case. * softgpu: Cull no-pos and through s8 pos verts. * softgpu: Fix cull in throughmode. * Vulkan: Add support for listing all the available surface formats in system info. * samplerjit: Reduce transfers in nearest texel calc. * samplerjit: Better vectorize UV linear calc. * samplerjit: Reuse XMM reg for sizes. * softgpu: Fix pixel ID for invalid blend factors. * softjit: Fix src blend factor handling. * GE Debugger: Allow GPU stepping while CPU stepping. * GPU: Allow relative jumps and calls. * GPU: Log and report when region1 is non-zero. * Common: Fix conversion of 4444 to BGRA. * softgpu: Correct clear mode dither. * softgpu: Correct simple rectangles with mipmaps. * samplerjit: Optimize texenv blending a bit. * softgpu: Correct UV rotation for transformed rects. * softgpu: Reuse transform state. * softgpu: Add dirty flags for rasterization state. * softgpu: Use dirty flags for render overlap checks. * softgpu: Fix state race on screen offset. * softgpu: Add a table and initial dirty flags. * GE Debugger: Add option to auto flush. * GE Debugger: Cut down on primary buttons. * GE Debugger: Add a menu to the GE debugger window. * samplerjit: Oops, forgot about 64 unpack. * samplerjit: Fix Linux stack corruption. * Build: Fix some minor warnings. * Headless: Return an exit code on test failure. * Common: Print assert failures to stderr. * softgpu: Define constexpr var for older C++. * x86jit: Check CALL dist for safe memory funcs. * samplerjit: Fix some Linux register issues. * Headless: Fix font tests on Linux. * Build: Speed up macOS actions build a bit. * Headless: Update passing tests. * Clean up hardware tasseletion setting * Show the software rendering option on all platforms * softgpu: Avoid flush texturing from stride. * softgpu: Flush framebuf only on change. * softgpu: Remove bin asserts. * softgpu: Use persistent bin task state. * softgpu: Pack vertexdata a bit better. * Reducing MatchingEvents processing delays. Fixes timing issue on a few games (Super Pocket Tennis, Thrillville Off the Rails, Lord of Arcana, Gundam: Senjou No Kizuna Portable, StarWars The Force Unleashed) * Report sceNetAdhocMatchingInit to find out a list of games that use AdhocMatching library to be tested with. * Discard HELLO Events when in the middle of Joining * Updated notifyMatchingHandler comments * Updated MatchingArgs comment * Added comment related to EVENT_HELLO * samplerjit: Reduce prolog/epilog spill. * softjit: Simplify constant writes. * softjit: Centralize some common funcs from sampler. * softjit: Switch to constant pool. * samplerjit: Simplify AVX shift-copies. * UI: Reset ZIP install errors for new ZIPs. * softgpu: Guide more SSE light factor handling. * softgpu: Simplify mask check. * softgpu: Reduce copying during clipping. * Debugger: Fix crash in software renderer. * softgpu: Fix block transfer flush detection. * softgpu: Use SSE in lighting param computation. * softgpu: Precompute some of screen space multiply. * softpu: Premultiply matrix transforms. * softgpu: Precompute state for vertex transform. * softgpu: Correct texsize flush annotation. * softgpu: Heuristic to avoid over-draining. * softgpu: Reduce wasted memory. * softgpu: Precompute lighting parameters. * softgpu: Tune some queue sizes for perf. * softgpu: Expose flush reasons/times in debug stats. * softgpu: Reduce flushing for smaller textures. * softgpu: Flush block xfer only on overlap too. * softgpu: Decorate some stats for flushes. * softgpu: Avoid texture/CLUT flush unless overlap. * softgpu: Flush on offset changes. * softgpu: Track CLUTs as states for binning. * softgpu: Allow binning across prim calls. * softgpu: Fix alpha blend with one/zero. * softgpu: Correct dither matrix lookup. * softgpu: Correct logic op state update. * softgpu: Fix off-by-one size limit on bin queues. * softgpu: Tune queue push/pop to reduce overhead. * Debugger: Avoid flushing meminfo on write lookup. * softgpu: Use cached state for screen offset. * softgpu: Cache CLUT params in sampler state. * softgpu: Move texenv color into sampler state. * softgpu: Move tex size to cached state. * softgpu: Remove z from DrawingCoords. * softgpu: Move c++ tex func to sampler. * softgpu: Use cached sampler state outside jit. * softgpu: Cache line drawing state. * softgpu: Use cached state for clear write mask. * softgpu: Move fixed blend factor to draw pix state. * softgpu: Cache colortest params in draw pix state. * softgpu: Cache alpha/stencil test masks in state. * softgpu: Cache logicOp in draw pixel state. * softgpu: Use cached write mask in draw pixel. * softgpu: Cache minz/maxz in draw pixel state. * softgpu: Cache strides in draw pixel state. * softgpu: Cache fog color draw pixel state. * softgpu: Remove disable of cached pixel state. * softgpu: Avoid double calculating screenpos. * softgpu: Cleanup push/pop atomic handling. * softgpu: Remove old task. * softgpu: Stop storing model pos. * softgpu: Stop storing normal/worldnormal/worldpos. * softgpu: Enqueue batches of prims when binning. * softgpu: Adjust binning thresholds. * softgpu: Avoid thread ordering hazard. * softgpu: Move threading into BinManager. * softgpu: Handle scissor/range in BinManager. * softgpu: Add class to manage and enqueue for bins. * Fix buffer overflow issue on GameMode. * GameMode Scheduler should only runs when there are active Master. * Prevent creating another GameMode Master, since we don't support more than one Master data, and there is no ID related to Master. * Fix an issue where more than one GameMode Scheduler can be scheduled. * Fix an issue where sceNetAdhocGameModeCreateReplica blocked current thread for initial sync while Master data hasn't been created yet. * Debugger: Cache list PC for softgpu tagging. * softgpu: Centralize more prim drawing state. * Updated sceNetAdhocGameModeUpdateReplica (Fix Bomberman Panic Bomber) * Fix invalid argument issue of sceNetAdhocPtpAccept on Bomberman Panic Bomber. * softgpu: Move tex filter setting check to state. * softgpu: Move texture addresses to prim state. * softgpu: Prepare more state per prim call. * softgpu: Use func IDs instead of gstate more. * softgpu: Compute func IDs once per batch of verts. * Avoid confusion for translator * Add files via upload * Vulkan: Avoid crash on bad shader. * softgpu: Output normals to GE debugger. * Use System_GetPropertyInt to report the keyboard layout * UI: Mention SDL in the credits when it's being used alongside Qt * Update pt_BR.ini * softgpu: Correct decal doubling without alpha. * samplerjit: Skip processing alpha if unused. * Add files via upload * samplerjit: Fix alpha for 565 in linear lookup. * softgpu: Skip threading when rendering to self. * softgpu: Draw top left of rectangles first. * GPU: Allow gcc/clang/icc runtime SSE4 usage. * UI: Use comparison screenshot as frame dump icon. * Headless: Fix compare of smaller buffers. * softgpu: Use some SSE4 in triangle interpolation. * softgpu: Limit minX/maxX per line. * softgpu: Avoid rsqrt path for normals. * softgpu: Clarify internal matrix multiply usage. * Remove QWEmct from credits as requested * softgpu: Retain floats in diffuse/specular. * softgpu: Cleanup -NAN and diffuse factor. * softgpu: Correct NAN spotlight exponent/direction. * softgpu: Correct handling of NAN attenuation. * softgpu: More closely match PSP light rounding. * softgpu: Reuse SSE/NEON matrix code. * softgpu: Use common SIMD matrix multiplies. * softgpu: Separate calculation of S/T. * UI: Fix some sign/size comparison warnings. * samplerjit: Fix standard bufw check. * samplerjit: Fix DXT compilation. * samplerjit: Correct linear compile failure. * softgpu: Correct mirroring in fastpath+nearest. * softgpu: Improve usage of SSE for lighting. * softjit: Keep mip S/T calc in SIMD. * softjit: Use RIP access in color/depth off. * softjit: Optimize depth range checks. * softjit: Add describes here too. * samplerjit: Remove old linear nearest paths. * samplerjit: Avoid gather if overread could crash. * samplerjit: Use VPGATHERDD for all types. * samplerjit: Apply gather lookup to all CLUT4. * samplerjit: Use VPGATHERDD for simple CLUT4 loads. * samplerjit: Avoid a couple more copies in AVX. * softgpu: Skip sample lookup if masked. * softgpu: Stop specializing on miplevels. * softgpu: Separately profile verts and lighting. * samplerjit: Use nearest func in fast path too. * softjit: Avoid const temp registers. * sofjit: Correctly poison memory. * softjit: Small bloom optimization. * softjit: Optimize common case bloom blending. * softgpu: Add code for tracking GPU writes. * samplerjit: Decode colors in parallel. * softgpu: Reduce interpolation if not needed. * samplerjit: Implement nearest in jit. * samplerjit: Refactor and reuse constant pool. * samplerjit: Update nearest args, temp disable jit. * softjit: Small optimizations. * samplerjit: Create a separate fetch func. * samplerjit: Refactor sampler ID calculation. * softgpu: Correct off-by-one scissor mask. * softgpu: Cleanup min/max tri range handling. * GPU: Avoid spline crashes on bad data. * softgpu: Skip processing scissored triangles. * samplerjit: Correct wrong bufw at mip levels. * samplerjit: Oops, fix Linux mipmap handling. * PPGe: Disable dither in UI drawing. * softjit: Fix regcache error when clearing. * GPU: Fix bone matrix CALL opt corruption. * Debugger: Correct delayed symbol listbox updates. * samplerjit: Tiny dependency optimizations. * samplerjit: Small AVX optimization to modulate. * softgpu: Skip zero size triangles. * samplerjit: Use SSSE3/SSE4 in linear filtering. * x64jit: Add AVX2-only instructions. * x64jit: Add AVX-only instructions. * x64jit: Add AVX/AVX2 encodings. * samplerjit: Pass funcs as an argument. * samplerjit: Add an alternate profiling method. * samplerjit: Correct level lookup offset. * samplerjit: Minor SSE4 optimizations. * samplerjit: Set stackArgPos_ early. * samplerjit: Move texture function into jit. * samplerjit: Lookup both mip tex values. * samplerjit: Use regcache for linear filtering. * samplerjit: Calculate mip level U/V/offsets. * samplerjit: Take texptr/bufw as arrays. * samplerjit: Handle mipmap width/height in S/T calc. * samplerjit: Move S/T calculation into jit. * samplerjit: Add more bits for S/T, skip multiply. * softgpu: Correct non-SSE T clamp. * softgpu: Reduce mipmap fraction to 4 bits. * softgpu: Correct nearest filtering too. * softgpu: Remove no longer possible report. * softgpu: Make linear filtering more accurate. * samplerjit: Handle unswizzled offsets too. * samplerjit: Calculate texel byte offset as vector. * samplerjit: Blend linear using integers. * samplerjit: Accumulate results in an XMM. * samplerjit: Pass u/v coords as vector. * Debugger: Don't try to hash invalid RAM. * Missing stdarg.h include * Vulkan: Update profiler formatting for this. * Make the Vulkan GPU log profiler a runtime developer setting. * Add format string support to Vulkan log-profiler * jit: Use a hash for invalidate/clear all. * Vulkan: Disable profiler by default again. * Improve the check for "slow" GPUs (with regards to tex scaling). See #15238 * Path: Check for PSP case insensitively. * Vulkan: Be more restrictive about texture upscaling on "slow" devices. * GPU: Remove explicit rect/line depth cull. * Fix text wrapping on PromptScreen by improving the layout * Vulkan: Don't generate mipmaps for huge textures (probably menu backgrounds). Other minor fixes. * Oops, accidentally enabled the logging GPU profiler by default. * Address feedback (preserve alpha-ignoring equality checks) * Minor fixes * Turn video upscaling off. * Optimize the xBRZ texture scaling shaders by 30% on Adreno, less on Mali * Add hardcoded bool toggle for upscaling video, fix log, remove a comment, minor opt * fmt * Add a 2x2 downsampled version of 4xBRZ as 2xBRZ (save memory bandwidth) * Make a copy of tex_4xbrz * Debugger: Debounce updates to disasm text. * Debugger: Never wait inactive on window update. * Debugger: Remove double debug window updates. * Debugger: Debounce list control updates. * Debugger: Fix crash on ill-timed breakpoint update. * Debugger: Debounce redraws using timers. * Bump gradle version again * Fixes when profiler is disabled. * Switch to macros to easily disable the new profiling. Add missing scope * Add a simple GPU profiler to profile individual events, rather than full passes. * Build: Correct AppleClang warning handling. * softjit: Fix a function arg template warning. * softjit: Fix an enum type comparion error. * Build: Avoid compiler flag warning. * Build: Fix some format truncation warnings. * interp: Correct vrndf2 range. * Vulkan: Ignore VMA nullability warnings. * UI: Clarify error message. * Build: Remove old-style android/assets/. * softjit: Skip a common case CMP. * softjit: Throw away regs allocated in conditionals. * Split the atlas into three, well two, but two different cases for the fonts. * Name uniform buffers, add more asserts. Used this to track down the bug fixed in the previous commit. * Fix an ordering issue causing us to hit some asserts * Vulkan: Document lifetime for desc set pool. * Vulkan: Fix use-after-free on shutdown. * Vulkan: Use new desc sets in Draw and VulkanUtil. * Vulkan: Refactor common desc pool handling. * Vulkan: Avoid desc set error in tests. * samplerjit: Fix DXT1/DXT5 register releasing. * Vulkan is strict about scissor rect, so let's clamp centrally. * FramebufferManagerCommon: Fix some issues where currentRenderVfb_ could get out of sync. * Fix Tekken 5 Dark Resurrection Multiplayer * ThreadManager: Check for exchange failure. * Updated GetPtpStat * Updated GetPdpStat * Added a note regarding FIONREAD behavior on different platforms. * Discard PDP packets from an IP that can't be resolved to Player's MAC address (simple version) to prevent confusing the game, since the source MAC won't be updated and may contains invalid MAC. Added TODO to handle unresolvable packets properly. * Added another returned error code on PdpCreate * Allow Sending PDP to non-existing MAC address (except invalid mac address). Fixes an issue on NBA Ballers Rebound where players unable to enter Multiplayer Menu again after getting connection issue. * Vulkan: More scissor dimension checks. See #15207 * Vulkan: Correct the max level to generate mipmap calculation * Very minor logging improvement * Detect and specify the max available Vulkan version, up to 1.2. * (libretro) Force enable g_Config.bRenderDuplicateFrames + minor audio buffer tweaks * Use system headers when building with system miniupnpc * ThreadManager: Use separate pool for IO blocking. * ThreadManager: Make TaskType a property of a Task. * Android: Optimize content URI exists check. * softgpu: Correct alpha on add + invalid texfuncs. * softgpu: Match texenv blend texfunc accurately. * softgpu: Make decal tex func more accurate. * softgpu: Correct accuracy on fast path modulate. * softgpu: Correct accuracy of MODULATE texfunc. * (Libretro) Reimplement audio - * Move audio callback to the main thread (fixes the longstanding hang issues when using OpenGL) * 64ms on desktop isn't enough due to excess buffering going on in this emulator. Set default to 128ms instead. * Different audio approach is necessary due to the following: it sets a fixed framerate of 60, then sends either too many or too few audio samples per frame in order to force the frontend to run at the correct speed (.e.g. making the frontend run in slow motion for games that run at 30fps) - this is undesirable for libretro, we want a consistent amount of audio samples per batch. See further comments in libretro.cpp for more information * softgpu: Template away uncommon mip usage. * softgpu: Remove useless switch by UV gen mode. * softgpu: Avoid texlevel check when maxlevel is 0. * softgpu: Keep arguments in vectors for sampling. * Debugger: Reduce meminfo block check hazard. * Debugger: Speed up GetFunctionSize(). * samplerjit: Refactor nearest using reg cache. * Common: Correct shm_open() call. * Psmf: Check for invalid stream/EP map entry counts. * Vulkan: Cleanup pipeline var shadowing. * softjit: Make it an error to unlock a temp. * softjit: Get rid of pointless AGE00 tests. * softjit: Normalize some stencil test patterns. * softjit: Avoid tests for greater than 0. * softjit: Reduce ditherMatrix to 8-bit. * softjit: Oops, correct allocation typo. * Update Tagalog (tg_PH) with new translations by Gamemulatorer. Fixes #15189 * Display the graphics API on logoscreen on more platforms * ext: Update vulkan headers * ext: Allow use system glew with system ffmpeg (macOS) * ext: Support building with system miniUPnPc * cmake: Generate git-version.cpp in the build dir * ext/SPIRV-Cross-build: Update cmake version * softjit: Fix locked stencil reg. * headless: Enable softgpu jit for tests. * softjit: Centralize argument register allocation. * softjit: Fix fog typo causing locking bug. * jit: Lock around changes to the jit pointer. * softjit: Fix PixelFuncID arg on non-Windows x64. * Math3D: Allow construction from NEON vectors. * sofjit: Move common types to reg cache header. * softjit: Rename reg cache so it can be reused. * softjit: Cleanup, add other arch types to regcache. * softjit: Disallow use of register after unlock. * softjit: Simplify regcache usage as purpose only. * samplerjit: Allow disabling linear too, oops. * softjit: Decide stack offset on compile. * softjit: Ensure all regs are released. * softjit: Manage args in the register cache. * softjit: Fix disabled cache. * ThreadManager: Protect against teardown hang/leak. * ThreadManager: Lock notify on global queue add. * ThreadManager: Use atomic task optimistically. * SDL: Respect inflight frames setting in GL. * jit: More atomically update pointer. * Make CRT animation speed configurable * softjit: Reduce jit pool size a bit. * softjit: Precalculate write mask and dither. * softjit: Log any failed compiles. * softjit: Keep color 16-bit when useful. * softjit: Optimize common blend inverse alpha case. * softjit: Add alpha blending factors. * softjit: Cache zero vector to avoid recreating. * softjit: Prefer easier to refill regs. * softjit: Minor tweak to reg order for XCHG. * softjit: Implement min/max/absdiff blending. * softjit: Use SSE4.1 for fog and dither a bit. * softjit: Fix dithering bug. * softjit: Optimize typical alpha/depth test. * softjit: Apply logic ops. * softjit: Apply color write mask. * softjit: Refactor color conv to dedicated funcs. * softjit: Add config setting to enable/disable. * softjit: Initial color write. * softjit: Add dithering. * softjit: Keep x and y args for dither. * softjit: Depth and stencil testing. * softjit: Optimize some imm sizes. * softjit: Add helpers to get framebuf offsets. * softjit: Add levels of register locking. * softjit: Add color test. * softjit: Add alpha test. * softjit: Initial depthrange, fog. * softjit: Add register cache for softjit. * softjit: Switch to the __vectorcall convention. * softjit: Add stubbed DrawPixel for x64. * softgpu: Correct alpha blend subtract on negative. * softgpu: Use KEEP for any invalid stencil ops. * vertexjit: Optimize 5551 read a bit on x86/x64. * sofgpu: Disable alpha blend for invalid equations. * softgpu: Accurately alpha blend. * softgpu: Use 0 alpha for 565 alpha blending. * softgpu: Correct tagging of vertexjit. * softgpu: Fix stencil DECR on 5551. * softgpu: Use ALWAYS for alpha/depth test in clear. * Add review suggestion. * Destroy backbuffer when shutting down vulkan conext. * PPGe: Prevent special ampersand handling. * Build with correct preprocessor flag * Remove the old allocator visualizer. Keep the setting but hide it. Other feedback * Buildfixes * Fix bugs in deletion. Delete redundant functions. * Switch framebuffers to use VMA for allocation as well * Convert the PushBuffer to use VMA. * Change the PushBuffer API a bit to not take explicit memory types. * Remove the VulkanDeviceAllocator * More integration, use VMA in VulkanTexture * Start integrating VMA * Add VMA to ext/ (AMD's Vulkan Memory Allocator) * Minor refactor * Comment improvement, restore accidental deletion * Add a hidden setting to turn off the shader cache, for shader compile performance work * softgpu: Fix PixelFuncID size. * Vulkan: Add a single background thread for pipeline creation * VulkanRenderManager: Add deferred pipeline creation (to get it off the CPU thread) * softgpu: Add func to tersely name pixel funcs. * softgpu: Template draw pixel on fb format. * softgpu: Move draw pixel code to separate file. * Vulkan: Fix crash on shutdown after device lost. * softgpu: Clamp and round fog by mantissa bits. * softgpu: Confirm mask doesn't hit stencil REPLACE. * softgpu: Force off alpha blend if uselessly on. * softgpu: Specialize sprite based on pixel func ID. * softgpu: Use pixel func ID to draw pixels. * softgpu: Add func to calculate pixel func ID. * Threading: Remove a level of indirection from Promise and Mailbox. * On desktop, change an empty current directory to "/" on startup. * Prevent chat menu touch to fall throght * Fix crash on close content after cached GPU pointer cleanup. * UI: Switch to font texture for debug stats. * softgpu: Clear by dividing out subpixel first. * softgpu: Add some comments and cleanup. * softgpu: Tune thread minimums better. * sfotgpu: Use threads to apply clears. * softgpu: Combine sliced rectangles. * softgpu: Split out rectangle path for combining. * softgpu: Fixup range cull for fans and fast path. * softgpu: Fast path rectangles as fans. * softgpu: Use range loops for sprite fast path. * Vulkan: Don't cache vulkan_ with draw context. * GPU: Cleanup some extra pointers in fb managers. * softgpu: Check flat z in fast path. * softgpu: Fast path triangles without textures. * Debugger: Fix crash on stepping/break. * softgpu: Fix leaked range flag on cull. * Add shortcut for content_uri and native paths in CleanRecent. Saves 150ms. * Also delay-load the VFPU dialog, just because * Windows debugger: Load the dialogs on demand. * Common: UWP buildfix. * Buildfix * Use the "new" API SetThreadDescription to set thread names on Windows. * Last update (id_ID.ini) * Minor fixes * Update id_ID.ini * Update es_LA.ini * Update zh_CN.ini * Update id_ID.ini * Id * id_ID.ini * Display: Prevent lock around listener calls. * Update *id_ID.ini* and some fixes * On Android 11 and later, let's not fallback to OpenGL at all. * Add tip to Lazy texture caching button. Replaces #14183 * softgpu: Correct scissor for pixel centers. * Headless: Generate a difference highlighting png. * Headless: Move screenshot compare to class. * Headless: Fix ppdmp compare. * Remove ARM Mali blacklisting for 4xBRZ, works now * Remove unused variable * Comment fix, remove assert * Remove support for 16-bit textures from the upscaling shader, to shorten it for benefit of mobile GPUs * Fix edge conditions in 4xXBZR * Speed up the 4xBRZ upscaler with 16x and the MMPX one with 4x by not doing redundant work * Switch texture scaling shaders to a fixed scale model, preparing for the next change. * Remove the copy-compute-shader path * SDL: Read assets from Resources on macOS like on iOS * UI: Support a second texture for just fonts. * Fix DPAD size calculation- Update to version 1.13.2~git20221119: * Orient Save State / Load State buttons horizontally * Debugger: Combine mem info on duplicates. * irjit: Consistently check vec4 safety. * irjit: Allow VV2Op SIMD with exact overlap. * irjit: Correct VV2Op SIMD check. * GPU: Prefer raster for depth blit if supported. * Typo fixed * OpenXR - Cursor aspect ratio * OpenXR - Accept scrolling from both controllers * OpenXR - Camera adjust issues resolved * OpenXR - Force PSP menu aspect ratio * OpenXR - Better dialog support * OpenXR - Allow higher 2D canvas distance * OpenXR - Use axis integration for camera adjust only * OpenXR - Use mouse control only * OpenXR - Support axis * OpenXR - Support camera adjust using joystick * Update zh_TW.ini * Update zh_TW.ini * Update zh_TW.ini * interp: Support memory breakpoints too. * interp: Centralize memory size handling. * interp: Allow breakpoints in release mode. * interp: Allow resume from breakpoint. * Debugger: Keep flag for any breakpoints. * Twinbee Portable: Add config flag to avoid the system languages the game doesn't work with * softgpu: Use threads on self-render if safe. * UI: Show standard back button on touch layout. * softgpu: Fix off-by-one rendering after half-pixel. * softgpu: Avoid splitting rectangles for fog. * softgpu: Correct tex on fogged rectangles. * GPU: Automatically reduce depth range on == test. * GPU: Remove unused GPU_USE flag. * GPU: Centralize more GPU_USE flags, like depth. * GPU: Add a small error-compensation to depth clip. * Vulkan: Mark Adreno bug resolved on recent driver. * Vulkan: Correct alpha in Adreno workaround. * GPU: Convert alphamask to FF/00 for 5551. * Fix grid align- Update to version 1.13.2~git20221112: * UI: Avoid enum/float comparisons. * VR: Remove unnecessary deprecated header. * SaveState: Switch from deprecated is_pod. * GPU: Correct Marvel copy hook size check. * GPU: Hook US version of Marvel Alliance upload. * OpenXR - Freezing on Pico 4 fixed * OpenXR - Test mirroring over 30 various games * OpenXR - Get all mirroring variants * Revert "OpenXR - Disable range culling properly" * GPU: Correct equal depth checks. * OpenXR - View matrix identity check breaking several games fixed * OpenXR - Don't get mirroring from identity matrix * OpenXR - Do not apply head rotation on identity matrix * GPU: Correct vertex decoder in software transform. * Mpeg: Correct YUV order from decode. * Mpeg: Fix ConvertToYuv420 return value. * GPU: Avoid enabling depth test pointlessly. * GPU: Prefer scaling depth to 16-bit if using 24. * GPU: Avoid clears for non-simple depth values. * TexCache: Cleanup BGRA flag dirtying. * Fix GLSL compilation issues on really old Adreno drivers. * GPU: Avoid self memcpy(). * OpenGL ES: Crash as early as possible if things are bad * Update zh_TW.ini * Space added * TexCache: Correct 16->32 for CLUT4 with shift. * TexCache: Fix 16->32 colors with CLUT start pos. * TexCache: Align expandClut buffer, cleanup sizes. * Restore parallel GLSL builds * Lift length limit on Android logging * Log source code for failed pipeline creations * Avoid drawing with failed-to-create pipelines * Make Mailbox handle null values. Fixes hang. * Output shader descriptions directly in the source code * Improve VkResult logging * Warning fix in VR code * OpenXR - Disable range culling properly * OpenXR - Allow more extreme camera adjusts * OpenXR - GTA Liberty city stereo fixed * Properly buildfix GL/VR again * OpenXR - Camera sliders removed from settings * Fix sky plane fix (broke in my last VR refactor) * OpenXR - Camera adjustment using PSP keys * OpenXR - Keep status of PSP keys * Restore assert * Experiment (Vulkan): Temporarily disable GLSL parallel compilation on Android. For #16341 investigation. * Disable remaining false positive. * Turn off boundSecondaryIsInputAttachment_ when we don't have one. * Vulkan: Use the very same view as input attachment and color attachment, not just the same image * Update zh_TW.ini * Update zh_CN.ini * Remove unnecessary assert * OpenXR - Move configs out of VRRenderer * OpenXR - Move matrix calculation out of VRRenderer * OpenXR - Simplify projection matrix creation * OpenXR - Matrix indexing fixed * OpenXR - Get rid of separate projection matrices * OpenXR - Get rid of ovrMatrix4f structure * Partially rescue translation by copying from Hack Settings * Setting should be reported * Blind libretro fix * Android fix * Blind Qt fix * lang: Remove obsolete keys, add new untranslated ones :( * Change "Simulate block transfer" to "Skip GPU Readbacks". Group the speed hacks together * Change "Rendering Mode" to just a "Skip buffer effects" checkbox. Reuse translations. * libretro fix, more games * GPU: Correct softgpu curve issue. * GPU: Always skin in decode for software transform. * softgpu: Always use software skinning. * GPU: Purify vertTypeIsSkinningEnabled(). * Windows ARM/ARM64 buildfix * Remove now-unused lang keys * Change the "Retain changed textures" option into a compat.ini option. * GPU: Use skinned position always in bounding check. * GPU: Cleanup GetVertTypeID() usage. * Linking fix for normal Android devices * UWP build fix. Had to reshuffle some stuff and compile some Vulkan files. * Add a dynamic loader for OpenXR so the VR code can link. Make it all build on Windows. * Typo fix * Make a lot more code VR build for all platforms * Fix type of predictedDisplayTime * 6dof fix * Rename 6DOF_PRECISE to HAS_UNIT_SCALE * Remove ugly float conversion hacks from VR config * Finish previous buildfix... * Upgrade gradle, specify NDK version in android/build.gradle * Yet another gradle upgrade- Update to version 1.13.2~git20221105: * Comment fixes (feedback) * Fix parsing ampersands in server listings for streaming * Drop some D3D11 screen rotation support (was only used on Windows Phone) * VK/D3D11: Move the rarely used "u_rotation" uniform to the frame uniform buffer. * Switch RenderPassType to be a "proper" bitfield enum. * Support Android file intents with up to 3 dots in path * Code formatting fixed * OpenXR - Get platform flags in runtime * OpenXR - Introduce platform flags * OpenXR - Fix ifdef ANDROID * OpenXR - Add an option to disable 72Hz update * OpenXR - Enable camera movement and stereo in flatscreen mode * [Libretro] Update core options to v2 + add a few new ones * Build: Use Makefile for libretro. * Build: Enable libzip on libretro. * GE Debugger: Respect unchanged VRAM each frame. * GE Debugger: Try harder to identify unchanged VRAM. * GE Debugger: Dump textures only if possibly used. * GE Debugger: Restrict marking of dirty VRAM better. * Vulkan: Fix descriptor set binding in geometry shader generator. Should fix #16315 * OpenXR - Settings code cleanup * Replacement: Avoid issues with c++14 data(). * UI: Install textures as a zip if supported. * OpenXR - Enable stereo for Split/Second * OpenXR - Workaround for not working inputbox * Memory initialization fixed * OpenXR - Let users set the movement length * OpenXR - Option to disable controller mapping * OpenXR - Map controller motions on keys * irjit: Correct prefix validation. * interp: Correct dprefix accuracy for vrot. * irjit: Fix unordered float compares. * Replacement: Don't double count memory usage. * Replacement: Allow use of textures.zip for Android. * Replacement: Lock around shared data access. * Replacement: Cache file data across cache keys. * Replacement: Log only missing explicit filenames. * Replacement: Decimate aggressively with high usage. * Replacement: Reduce IO checks on startup. * Replacement: Avoid needless exists check per tex. * interp: Correct vscl/vmscl t prefix handling. * irjit: Handle vrot overlap more correctly. * SaveState: Restore replacements in only one place. * Debugger: Allow currently-invalid memory reference. * Debugger: Fix input.analog.send validation. * UWP: Avoid some float conversion warnings. * Windows: Avoid compile param conflict warning. * Draw: Correct ambiguous comparison overload. * typo fixed * OpenXR - Add new virtual key for camera adjust * OpenXR - Camera side adjust added * OpenXR - Camera height adjust added * OpenXR - Do not process key actions during camera adjust * OpenXR - Allow updating camera in realtime * OpenXR - Make VR camera parameters floating numbers * Update zh_TW.ini * Update zh_TW.ini * Update zh_TW.ini- Update to version 1.13.2~git20221029: * OpenXR - Stereo support for Outrun 2006 added * Vulkan: Log additional queue command. * armips: Update to latest. * headless: Update tests. * Vulkan: Fixes validation errors with "null" textures * Address feedback * Need to request the proper type of uniform buffer descriptors. * Add some extra checking for valid stereo shader. * Actually bind a global uniform buffer, too. Not yet used. * Vulkan: Reserve descriptor set 0 for frame-global data, move everything else to set 1 * jit: Reduce some include pollution. * Fix UB * Format string fix * Shadergen fix for OpenGL * Crashfix in settings menu (Android only, for whatever reason) * Fix validation issue with clears, remove redundant code * Clean up GPU_Vulkan::BuildReportingInfo a bit * Improve compatibility checks for stereo rendering. * Fix for stereo with textureProj (emulated projection). * Fix depal texture binding bug * Name more image views. Very useful with a little patch to the Vulkan debug layers. * Fix rendering in non-stereo mode * Pass shadergen tests * Address feedback * Stereo now works through shader depal too * Fix more cases, GTA works now. * Use arrays more consistently. * Always use array textures for framebuffers in Vulkan for simplicity. * wip * Minor shaderwriter refactor * Stereo on mobile fixes * Some refactoring of framebuffer views, layer issues, more work. * More work. Things are starting to work now. * Add a couple of stereo display shaders, add infrastructure, compile stereo pipelines * Non-stereo bugfix * Start stereo postshader work * More multiview work * Misc multiview hackery * thin3d: Replace hint at future MRT support with basic multi layer support * OpenXR - Lego Star Wars III stereo support added * OpenXR - 6DoF and stereo in Lego Star Wars II fixed * Build: Fix Android/macOS ccache. * Build: Update deprecated actions. * headless: Update tests. * GE Debugger: Correct UV display with prescale. * Minor ShaderWriter refactor, prep for later changes * GE Debugger: Allow reading tex on D3D11. * Vulkan: Use v2 feature checks, and add check for multiview features. * Testfix * Minor refactor of ShaderWriter flags. Extracted from the stereo PR * softgpu: Better approximate slope mip level mode (#16276) * x86jit: Correct vh2f NAN handling (#16275) * headless: Update tests. * VR: Always pass the bounding box check. * GPU: Account for scissor/viewport in bound test. * GPU: Respect depth clamp in bounding box check. * GPU: Allow/use indices in bounding box check. * GPU: Correct large morph vertex advance. * GPU: Consume cycles in bounding box check. * GPU: Correct bounding box for larger counts. * GE Debugger: List verts on bounding box command.- Update to version 1.13.2~git20221022: * Make it possible to specify extensions for Vulkan in the ShaderWriter * Remove duplicate line in libretro makefile. * OpenXR - Wrong condition removed (#16271) * OpenXR - Refactor compatvr.ini file (#16270) * Apply Kyria's updates to tr_TR (Turkish) translation * Minor refactoring in PresentationCommon * PresentationCommon: Use refcounts to simplify shader module management * Vulkan: Fix frame ordering issue with postprocessing shaders * GPU: Respect matrix and reverse flag w/o normals. * softgpu: Multiply prev normal by world matrix. * softgpu: Respect negate normal flag without norm. * Update zh_TW.ini * Update zh_CN.ini * OpenXR - Camera distance adjust added * OpenXR - Rearrange VR settings * Update zh_CN.ini * Some more codestyle cleanup * Change wrap_mode to clamp for bicubic upscaler * Libretro buildfix attempt again * Remove "attachment" parameter from BindFramebufferAsTexture everywhere. * Libretro buildfix attempt * Vulkan: Correct some enum switch warnings. * Kernel: Fix reported StopThread error. * headless: Update passing tests. * headless: Fix crash running some tests on Vulkan. * headless: Allow screenshot to not be 512x272. * SDL: fix glew on wayland by ignore glx * OpenXR - Use only the first projection matrix in frame for mirroing detection * OpenXR - Ensure scene analyze is called the same way as before * Build/warning fix * Remove newly added dependencies on PPSSPP * Don't use PPSSPP-specific stuff in Common/VR for now. * Buildfixes * Android non-gradle buildfix * CMakeLists.txt fix * Make as much as possible of the VR code build on all platforms * Use GPU "use" flags to replace IsVRBuild in the renderer. It remains elsewhere. * Reorder the GPU USE flags a bit * OpenXR - Move VR passes count calculation * OpenXR - Reduce uniform calls * OpenXR - Simplify projection matrix analyze * OpenXR - Get rid of VR tweaks * OpenXR - Move matrix composing out of VR tweaks * Two more renames to make things read better * Rename GPU_SUPPORTS_ to GPU_USE_ * Rename gstate_c.Supports to gstate_c.Use * GPU: Replace logic ops with blend for simple cases. * softgpu: Correct linear interp for uneven positions. * softgpu: Correct drawing outside TL of rectangle. * softgpu: Make triangle fan rect detection generic. * OpenXR - Add VR mode for stereo flat screen rendering * Savedata: Update filelist on file erasure. * Kernel: Stop reporting invalid semaphore names. * Kernel: Stop reporting invalid mutex names. * Code cleanup, optional param renamed: "recreate" -> "remove" * Fix save states * OOP * know unknown in sceMp4Create * Add draft mp4msv module * Kernel: Add reason to reported stop error. * Windows: Improve reporting of WASAPI errors. * Io: Fail open earlier from ms0: w/ no access flags. * jit: Run invalidates immediately. * jit: Consistently check range on invalidate. * jit: Ignore zero byte icache invalidates. * Removed the bugged part of hle.func.scan + new comments * OpenXR - Disable VUlkan for now * OpenXR - Create VR framebuffer for Vulkan * OpenXR - Hookup VR API into Vulkan * Comments updated, default value for parameter "recreate" set to false * Added optional parameter to hle.func.scan, improved code of hle.func.removeRange * OpenXR - Vulkan support in progress * OpenXR - Initial work on Vulkan support- Update to version 1.13.2~git20221015: * D3D9: Correct scissor state cache in Draw. * headless: Update tests. * softgpu: Cull a triangle with all negative w. * softgpu: Fix crash on screenshot w/o display. * Vulkan: fix wayland swapchain size 1x1 * typo * OpenXR - Ensure the app gets unloaded when killed by OS * Revert "Vulkan: Create depth/stencil buffers on demand" * Add ShaderId utility function to be used for some sanity checking. * Add simple way to add debug annotation in the middle of the command stream. Vulkan-only. * GPU: Respect stencil state in shader blend. * Followup to #16205, fix one more instance of the problem. * Removes the option, autodetect instead - only enable if the GPU doesn't support bitwise ops. * ArmJit: Save/restore downcount where needed, we missed a few cases. * Revert "Disables "ForceCheck" on jit invalidation on ARM32, introduced in #16194" * Touchpad/mousewheel scrolling acted very weirdly on Mac due to 0 deltas. Make it work better. * Disables "ForceCheck" on jit invalidation on ARM32, introduced in #16194 * Warning fixes * GE Debugger: Display if tex is framebuf. * GE Debugger: Use a modern GL context. * GE Debugger: Remove ancient unecessary GL calls. * GE Debugger: Normalize framebuffer texture preview. * GE Debugger: Centralize current fb tex fetch code. * D3D9: Remove block transfer code overrides. * D3D9: Implement CopyFramebufferToMemorySync(). * Vulkan: Fix initial depth copy w/o existing depth. * MIPS: Fix non standard layout offsets. * GLES: Add debug readback of stencil data. * GLES: Refactor depth pipeline create. * GPU: Rename stencil write pipeline. * GLES: Allow stencil texturing if supported. * it_IT - Italian localization: Apply giona888's latest changes * Experimentally revert "Delete some misguided FPU control code, that we definitely don't want" * Comment about VR uniforms * Don't use fragmentShaderInt32Support as a replacement for checking for bitwiseOps * Don't expand alphaColorRef to 128 bytes on backends where we don't need to. * glslang: Set a missing resource limit. Avoids spurious errors in shader unit test * Revert "Revert "Loader: Validate offsets and truncation in ELF."" * Update elfSize to uncompressed elf size when needed. Fixes infinite loading in Wipeout. * Revert "Loader: Validate offsets and truncation in ELF." * Track min and max GPU time, init time, render CPU time. * Delete some misguided FPU control code, that we definitely don't want * Vulkan (trivial): Fix numDraws stat when merging render passes. Shorten a name. * GLES: Simplify, enable debug depth readback. * GLES: Use Draw for depth readback shader. * GLES: Enable EXT_depth_clamp where supported. * GLES: Refactor depth shader download. * GLES: Depth download cleanup. * Windows: Retain log console on graphics restart. * jit: Defer invalidations made while running. * GE Debugger: Reset on shutdown. * Loader: Get rid of overalloc on module exec. * Loader: Validate offsets and truncation in ELF. * D3D11: Correct depth readback. * Savedata: Cache SFO data during processing. * Savedata: Skip and defer texture exist check. * Savedata: Combine file info and dir listing calls. * Io: Provide directory existence with listing. * Android: Differentiate empty dir from failure. * Savedata: Reduce some duplicate file info lookups. * Font: Reduce internal font loading IO. * Io: Defer GetFileInfo() until it's needed. * Io: Reduce operations inside GetFileInfo(). * Module: Cleanup file read pattern. * GPU: Rename readback and buffer write operations. * D3D9: Correct depth readback. * Depal from dynamic CLUT: When detecting bounds, be more conservative. * Vulkan: Create depth/stencil buffers on demand * Fix depal bounds with dynamic CLUT. Fixes lens flare glitches in Ridge Racer * Remote API: hle.func.removeRange added * GLES: Hook up depth download. * Vulkan: Disable geometry shaders for Mali <= 18. * GPU: Correct sizing account on block transfer. * GPU: Hook Gods Eater Burst avatar read. * GPU: Consider depth buffers in block transfer. * Jpeg: Cleanup debug dump file access. * Jpeg: Encode and decode YCbCr as 2x2. * Jpeg: Correct some logging of return types. * Debugger: Fix off-by-one in func scanning. * GPU: Refuse to set fb_address == z_address. * GPU: Ignore depth when masked and ALWAYS. * GLES: Use GL_LUMINANCE on GLES for indexed tex. * D3D9: Add simple rendered CLUT handling. * D3D9: Correct sampler states for binding 1+. * Jpeg: Correct colorspace conversion funcs. * Jpeg: Decode buffers using configured stride. * Jpeg: Improve error handling for YCbCr decode. * Jpeg: Retain previous width/height. * Jpeg: Improve timing/errors for GetOutputInfo. * Jpeg: Play it safe with load/unload handling. * Jpeg: Validate CreateMJpeg() parameters. * Jpeg: Cleanup Init/Finish error checks. * Fix assertion issue when playing Cars over public adhoc server.- Update to version 1.13.2~git20221008: * OpenXR - Revision of VR rendering * Psmf: Fix save states. * Fix as @hrydgard suggest * Typo fix, thanks iota97 * Shader uniforms (VK/D3D11): Fix issue where we could overwrite the fourth component padding. * GPU: Clip against neg Z even w/o cull support. * GPU: Verify generated shader buffer length. * GPU: Optimize clip distances needed. * Vulkan: Correct clamped Z clip when clipping neg Z. * Vulkan: Avoid max_vertices=12 if unnecessary. * Vulkan: Clip clamped depth in geometry shader. * Forget remove the include * Store crc change to u32 * Reporting: Always report hleReportDebug. * Reporting: Avoid accessing ticks before start. * Vulkan: Generate indices in clipping. * Compat: Remove DisableRangeCulling. * Vulkan: Clip to neg z in the geometry shader. * Improve Freedesktop integration * Move scalable icon install from `${prefix}/share/pixmaps` (`pixmaps` has been deprecated long time ago) to `${prefix}/share/icons/hicolor/scalable/apps` * Add `Keywords`, `Categories`, and `MimeType` keys to `.desktop` file * Add shared MIME-info on [`application/x-compressed-iso`](https://en.wikipedia.org/wiki/.CSO "Compressed ISO") MIME type * Try to build fix * Fix Kurohyou again. See #9576 * GPU: Skip matching a framebuf for RAM. * GPU: Use flags to fix triggered upload/download. * Add crc record to psmfplayer * Add crc record into mpeg module * Add crc calculation in loading module * Vertex decoder: Add fallback for non-SSE4.1 * Fix another crash with non-buffered rendering * More libretro buildfix, thanks stuken * Attempt to fix libretro build * Fix validation error with the GPU profiler * Improve Vulkan profiler (show framebuffer tag for render passes) * Fixed syntax accessing method reviewed by Unknown W. Brackets * softgpu: Minor opt, ignore unused z_stride. * GPU: Normalize framebuf addresses. * GE Debugger: Ignore mirrors for target in record. * GE Debugger: Correct mask in target breakpoints. * GPU: Mask away unused bits in framebuf/zbuf ptr. * Vulkan: Cleanup unused geometry shader vars. * Vulkan: Allow configuring geometry shaders on/off. * Vulkan: Block geometry shaders on older Mali. * Vulkan: Use geo clip distance only where supported. * Vulkan: Enable geo shader for culling. * Vulkan: Correct geometry shader culling. * Vulkan: Cull in geoshader, hack to on for now. * Vulkan: Basic geoshader code generation. * Vulkan: Update shader cache format for geo shaders. * Vulkan: Add geometry shader ID tracking. * Vulkan: Clean up shader module tag. * GPU: Add dirtying for geo shader state. * UI: Prevent rendering during reboot. * assets/lang: translate some key phrases in pl_PL.ini * headless: Update tests. * GE Debugger: Fix memcpy/memset recording. * GE Debugger: Record the Edram translation value. * Ge: Report and save Edram translation value. * Debugger: Fix game.reset by adding a reboot status. * Build: Ignore no symbols link warning. * Build: Fix debug build on Windows 32-bit. * Tighten up some color format checks with displays and copies * Better readability and optimization insertion into container by replacing 'insert' -> 'emplace', 'push_back' -> 'emplace_back' * Fixed bug and memleaks * Code readability, vec reserve() and remove excess c_str() * Correct cleaning string and remove unused vars * Forget remove unused include * Change to mpegLibVersion * Trying to improve sceMpegAvcDecodeYCbCr- Update to version 1.13.2~git20221001: * GPU: Add geometry path for shader writer. * unittest: Cleanup stage/glsl version. * Draw: Add COLOR1 semantic. * ES2 crash fix: Don't draw depth if lacking fragment shader depth write. * Build: Raise macOS/iOS min version for c++17. * armips: Use native std::filesystem on Windows/UWP. * armips: Also update UWP and ARM64, etc. * armips: Update to UTF-8/c++17 armips. * Core: Remove disallowed register. * Build: Update zstd to latest dev. * armips: Update to latest. * GE Debugger: Correct rounded coords in vertex list. * softjit: Fix dst blend shift. * softgpu: Avoid projecting textures in common case. * GPU: Fix missed dirtying when fast loading tgen. * GPU: Restore matrices with dirtying. * Use compat.ini to avoid readbacks in Silent Hill: Shattered Memories as well. * Remove redundant call to SetMenu * Add hidden ini file setting that you can use to hide the menu bar. * Typo fix * Update README.md * OpenXR - Add README.md about the SDK * Update the Vulkan debug names when reassigning depth buffers. * Add Silent Hill: Origins to compatibility setting BlockTransferAllowCreateFB. * If a framebuffer starts using a different depth buffer than before, re-point. * Quiet the Vulkan miniprofiler (for texture uploads etc) a bit * softgpu: Correct matrix value update wrapping. * Ge: Move matrix reading into GPU. * GLES: Fix colortest/logicop uint/int conversion. * Debugger: Add API to scan memory for funcs. * Debugger: Fix doc typo for disasm/assemble names. * OpenXR - Fix FBO colors on Pico * OpenXR - Fix the build on Quest * OpenXR - Support for Pico controllers * Vulkan: Better debug names for RENDER passes. * Remove alpha ignore in xbrz texture shaders. * OpenXR - Initialization on Pico fixed * OpenXR - Code formatting * Better bit scrambling when computing draw call IDs for vertex cache. * softgpu: Handle rectangle texture projection. * softgpu: Implement triangle texture projection. * softgpu: Expand texture coords to include q. * softgpu: Split clippos out of rasterization vert. * GPU: Correct flat normal projection mapping. * GPU: Correct normalized zero normal proj map. * softgpu: Save last tc/normal in vertex reading. * Fix color test. * Add compatibility flag for loading pixels on framebuffer create using nearest filtering * Mpeg: Correct Au update size. * GPU: Apply color test mask as a uint. * GPU: Consistently use uvec3 for colortest. * ivec->uvec, comment fix * ShaderUniforms: cleanup, put every "4-float" on a line for clarity * Shuffle constants around, squeezing them into gaps. Saves another 16 bytes. * Fragment shader uniforms: Pack color mask in 32 bits instead of expand to 128 bits. * Fold the "materialUpdate" flag into the light ubershader part. * Add some recent flags to FragmentShaderDesc * Remove suspicious dirty flag * Prepare for dynamic mat update * Minor debugger fix * Always do the vertex shader part of the fog computation. * GPU: Fix SSE4 Vec3f normalize. * Oops! Also, testfix * Fix light ubershader for D3D11 and OpenGL, GLES unsigned/signed stuff * Experiment: Generate "Ubershaders" that can handle all lighting configurations * Replace faulty layout transition deduplication algorithm. * Vulkan: Add debug names to our command buffers, so you can see which one errored in validation * Minor cleanup in TinySet * (UWP) Remove expandedResources * Remove debug log. Add some new debug log though, unrelated to this PR, for fb clut + fb texture. Plus a couple asserts. * OpenXR - Pico specific code refactor * softgpu: Avoid waiting for a thread to drain. * softgpu: Increase queued prims. * softgpu: Fix triangle strip with partial rects. * softgpu: Simply 5551 blending fast path. * softpu: Refactor out 5551 fast path checks. * softgpu: Avoid fast path in another wrong case. * D3D9: Allow INTZ depth buffers more correctly. * Vulkan: Avoid allocating depth images for stuff like temp copies, depal buffers etc. * Bump the shader cache version * Vulkan: Don't compile pipeline variants that don't make sense given their flags. * OpenXR - Initialize Pico subsystems * OpenXR - Disable performance extension on Pico * OpenXR - Support multiple loaders * OpenXR - Add manifest for Pico * OpenXR - Rename Quest build variant- Update to version 1.13.2~git20220924: * GE Debugger: Add option to track pixel in preview. * GE Debugger: Copy images optionally with alpha. * GE Debugger: Add a direct copy for preview images. * OpenXR - PreprocessStep function implemented * OpenXR - Simplify skyplane detection in GTA * OpenXR - Get rid of an ugly if condition * GPU: Cleanup unused CheckAlpha() funcs. * softjit: Skip reading dst pixel where blended out. * softgpu: Optimize rectangle sampling/blending. * softgpu: Ignore a needless color test case. * GE Debugger: Tag frame dump replay VRAM writes. * GE Debugger: Fix small tex/clut recopying. * HLE: Fix bad logging without latestSyscall. * Vulkan: Avoid crash on two backbuffer steps. * Remove ill-formed asserts * More tweaks, fix crash on exit (double-join thread) * Small tweak * Can't seem to get around this condition variable... Oh well. * Readback fix * Greatly simplify the thread synchronization. * Flatten the Run function, to make it easier to reorganize. * Make functions private that should be private * Best practices layer warning: Don't pass in unused clear values. (probably zero impact, heh). * Handle depth buffer write-after-write hazards in the queue runner * Fix leak of shader modules from thin3d. * Another uninitialized variable (VAI minihash/hash) * Make valgrind happy * Fix memory leak (of Promise objects) in VK pipeline wrappers * Add Burnout Dominator to list of games that require buffered rendering * GPU: Upload depth only on first usage. * softgpu: Fix self-render detect in Ridge Racer. * softgpu: Cache reused indexed verts. * softgpu: Skip matrix multiply for fog factor calc. * softgpu: Remove unnecessary state param. * Texture/Framebuffer match: Ignore stride if texHeight == 1. Fixes Ridge Racer lens flares. * Use Unknown's idea from #16081 instead of the UploadDepthForCLUTTexture compat.ini flag. * Fix Vulkan regression of #16075 due to silly typo. * Fix corruption of Ridge Racer speedometers with AutoMaxQuality enabled. * Cleanup logic * Fix for render pass merge * If depth or stencil are cleared in a renderpass, set the pipeline flag. * Vulkan: Don't have renderpasses store/load depth buffers when we don't use them * Preserve depth buffer on framebuffer resize, if has been used. * More lenient heuristic for uploading depth buffers. Still behind compat flag. See #11100 * Minor cleanups around dirtying of render state * softgpu: Avoid unnecessary flushing for curves. * GLES: Avoid resizing tessellation data textures. * GPU: Correct neg normal for hwtess texgen. * GE Debugger: Default auto flush enabled. * GPU: Use hardware tess params for texgen. * Dirty more state after depal * Don't try to replace or scale CLUT8-on-GPU textures. * Shouldn't 'floor' there * CLUTs can be loaded from small rectangular textures. Need to linearize. * OpenXR - Stereo mirroring fixed, disable stereo when no world scale defined * Vulkan: Avoid crash in headless on finish. * Kernel: Match index lookup behavior for tls. * GPU: Simplify depth clamped clip planes. * GPU: Clip clamped depth accounting for perspective. * GPU: Account for w properly in lines, fixing width. * softgpu: Narrow blend check for fast path further. * headless: Use display buf for compare screenshot. * GPU: Correct display framebuffer reading. * softgpu: Fix display framebuffer read. * Fix BGRA issue on D3D with GPU CLUT textures * softgpu: Correct clear rect off by one issues. * OpenXR - Compile fix * UI: Fix controller autoconf list result. * headless: Update tests. * Kernel: Disallow partitions 8/10 to match tests. * OpenXR - Support for all headset's IPDs fixed * Kernel: Allow volatile for MsgPipe buffers. * Kernel: Allow volatile for Tlspl objects. * Throw in assorted warning fixes * Kernel: Allow kernel/volatile VPLs as well. * Submit main command buffer before acquire. Fix sync bug. * When taking screenshots, make sure that the readback command happens on the right cmdbuf. * Kernel: Allow allocating FPLs in volatile memory. * Minor code cleanups (hasBegun is now redundant, for example) * Rewrite some present logic for slightly more clarity. Fixes bad logic and a minor race condition. * Various refactoring * Unify depth texture and framebuffer fetch checks * Unify range culling detection * Start unifying setting of the GPU feature flags, now that thin3d has feature detection. * Kernel: Load volatile memblocks from save states. * Kernel: Check sceKernelAllocPartitionMemory args. * Kernel: Fix save states for volatile memory alloc. * GE Debugger: Include rendered CLUTs in frame dumps. * Address feedback * Vulkan: Remove the useThread bool entirely. * Start moving stuff out to VulkanFrameData.cpp * softgpu: Skip flushing on no change. * softgpu: Skip more triangles with equal verts. * Windows: Normalize paths for OpenDirectory(). * GE Debugger: Save current clut in frame dumps. * HLE: sceKernelAllocPartitionMemory volatile memory support (partition 5) * Gamedata: Cleanup install request args/validate. * Fix the UI setting "Buffer graphics commands". Was off by 1. * GPU: Clip depth properly when also clamping. * GLES: Support more clip distances. * softgpu: Correct line early z checks. * GE Debugger: Allow search by state name. * GE Debugger: Show time spent stepping. * softgpu: Fix s8 primitives in throughmode. * headless: Add some new and passing tests. * GPU: Fix crash on imm vert triangles. * softgpu: Correct secondary color on imm verts. * softgpu: Fix state/continuation for imm prims. * softgpu: Support fog and color1 on imm verts. * softgpu: Refactor imm draws to bypass vert read. * softgpu: Simplify vertex reading. * softgpu: Simplify vertex range culling. * softgpu: Explicitly flush on sync and output. * GPU: Minor cleanup of unnecessary virtual. * Quick GE debugger stepping fix, after the recent vulkan swapchain acquire change * Update pspautotest submodule * Update ffmpeg submodule (no big news, just readme updates and a gcc buildfix) * Consider the Adreno and Mali stencil-discard bugs the same. Use the better check from the Mali bug. * Show GPU device ID in system information if available. * OpenXR - Move skyplane compat flag into compatvr.ini * OpenXR - Refactor variable name * OpenXR - Compile fix * OpenXR - Do not mashup Common/GPU * OpenXR - Refactor * OpenXR - Use fog color to replace the sky * OpenXR - Refactor VR compat integration * Force clearing framebuffer for GTA games- Update to version 1.13.2~git20220917: * headless: Benchmark a test or frame dump. * headless: Add option for MSE pass threshold. * headless: Switch screenshot error to MSE. * Headless: Small cleanup of options handling. * softgpu: Run early Z tests in fast rect path. * UI: Fix some logic dependent on screen tags. * Remove assert (this happens when playing framedumps) * Finish the switch to late acquire, moving the swapchain responsibility to the queue runner. * RunSteps cleanup * Move FrameData out of VulkanRenderManager * Move back buffer rendering to a separate "present" command buffer * Remove splitSubmit setting. Now we submit init commands before the acquire. * Flag shader blending as broken on Adreno for now. * Need to have input attachments in the descriptor pool. * Remove logspam * Show render pass types in GPU profiler * Use subpass dependencies to implement shader framebuffer read in Vulkan. * Add two more extensions to device extension lookup * Careful with min filtering of framebuffer textures only if auto max quality is on. * Increase log level of ppsspp version * Ah, need to enable the Mali workaround for Outrun's water, too. * Logic op fix, min filter fix. Also remove some unnecessary indentation. Fixes the water on Adreno (no logic) * Log the screen tag when logging scissor errors. * Add tags to all our UI screens. Useful to debug UI problems. * Fix const pointer conversion error for RISC-V * D3D9 crashfix (flare doesn't render correctly though) * Copy the texels directly in LoadCLUT * Small simplification * Address feedback, change roles of the two dynamic clut fbos to eliminate the need for state (see next commit) * Seems Need for Speed: Shift has exactly the same lens flare, enable the same compat settings. * OpenXR - Better variable/methods naming * OpenGL and D3D11 fixes * OpenXR - Add code comments * Log improvements * Ridge Racer fix * Get depal-from-dynamic-CLUT working * Set texcache entry status flag if CLUT needs to be dynamic * Add way to bind cached textures to a DrawContext * Allow binding "native" texture objects to thin3d * Start implementing ApplyTextureDepal * Cleanup in ge_constants.h, add virtual CLUT8 buffer format * OpenGL fix * Comment * Force low resolution for effects in Burnout Dominator. Fixes lens flare at high res * Enable depth uploads on render-to-clut-buffer. Esoteric but needed for #11100. Compat flag for now. * Enable DownloadCLUT and ShaderBitmask for Burnout Dominator * Detect the CLUT8/8888 situation * Buffer copy matching workaround * OpenXR - Ensure the head pose is locked during frame rendering * Switch multiple bools as parameters to DecodeTextureLevel to a flags enum. * Fix regression in Tantalus games. See #15914 * GE Debugger: Allow fb copies while stepping. * GPU: Fix simulating logicop with blend and shader. * Unify CLUT texture size at 512 to reduce complexity. Worth the extra bytes. * Extract function GetReinterpretPipeline * Savedata: Return errors more correctly on load. * softgpu: Force correct alignment on 32-bit. * Common: Fix some type compare warnings on 32-bit. * softgpu: Remove mostly unused screen offset state. * softgpu: Cache texture bufws at 16 bit. * softgpu: Reduce size of VertexData texture coords. * Non-buffered rendering crashfix * OpenXR - Crash when using 3D stereo fixed * OpenXR - Requested header change in compatvr.ini * OpenXR - Use per game stereo separation file * Address feedback * Better shader compile logging * Don't start blending in the shader just because there's bitmasks, if blend is disabled. * Debug-name shader modules with their shader desc strings * softgpu: Ignore stencil test mask in ALWAYS mode. * softgpu: Include early Z in func description. * softgpu: Detect longer strips of rectangles. * softgpu: Detect full triangles as rectangles. * softgpu: Refactor triangle cull processing. * softgpu: Store vertex colors as packed RGBA8. * softgpu: Enable early Z tests a bit more often. * softgpu: Reduce some minor bin item field sizes. * README: Move some older releases to history. * GE Debugger: Add some constants to expressions. * GE Debugger: Add fields to register expressions. * Add Rewrite to DrawSyncEatCycles hack, softlocks without it * GE Debugger: Eval breakpoints as if register set. * GE Debugger: Provide addrs in breakpoint conds. * Remove CLUT matching case that shouldn't be there yet. * softgpu: Switch vert continue buffer to members. * softjit: Implement accurate fog color blending. * softgpu: Correct accuracy of fog calculation. * softgpu: Restrict sprite fast path to throughmode. * Shadergen issues found by the test * Switch more texture matching calculations to use bytes for matching. * Texture/framebuffer matching: Do margin check in bytes. * Add ShaderDepalMode enum, use in shader ID. Replaces smoothed bit. * Implement shader depal for D3D11. * DownloadFramebufferForCLUT: Apply the fix mentioned in #8590 * CLUT download: Replace the broken block transfer check with a new compat flag. * vertexjit: Use consistent skinInDecode. * softgpu: Check depth test early on simple stencil. * softgpu: Clamp/wrap textures at 512 pixels. * GE Debugger: Correct confusing block transfer size. * D3D11: Prevent crash on larger textures. * TexCache: Allow valid bufw sizes. * Vulkan: Avoid crash if large texture attempted. * GE Debugger: Fix crash on bp before list running. * GE Debugger: Fix crash stepping with large tex. * softgpu: Avoid calling unordered coords tl/br. * softgpu: Avoid over-aggressive rect conversion. * GE Debugger: Fix logging of texture size. * softgpu: Allow almost flat rectangles to go fast. * softgpu: Refactor duplicate rectangle compat check.- Update to version 1.13.2~git20220910: * Add logging for LoadCLUT from framebuffer. See #15923 . Logs nicely in Burnout Dominator. * GE Debugger: Correct cond break removal warnings. * Vulkan: Wake compile thread when enqueued. * Update version to 1.13.2 * Update README.md for v1.13.2 * CI: make indentation in tarball.yml consistent * CI: also upload release source tarball on tag push * GPU: Dirty params when converting viewport state. * softgpu: Correct morph weight updates. * Add Emulator to Categories in ppsspp.desktop.in * Vulkan: Declare gl_Position as invariant. See #11583 * readme link * D3D9: Correct viewport offset sign. * D3D11: Correct viewport offset sign handling. * Remove a per-audio-frame allocation in sceAudio * Initialize a bunch of Dialog structs * Font: Correct uninitialized values. * Atrac: Avoid accessing uninitialized stream status. * Atrac: Avoid an uninitialized value. * softgpu: Correct bad munmap() size. * atrac3: Apply the overallocation workaround in a couple more places. Fixes #15788 . * Atrac3+: Allocate some extra bytes for the data buffer to workaround decoder bug. * atrac3: Apply the overallocation workaround in a couple more places. Fixes #15788 . * Warning fix * atrac3: Allocate some extra bytes for the data buffer to workaround decoder bug. * Match FragmentShaderFlags definition with the other PR. * Some more debug names to vulkan objects * UI: Resize after visiting developer settings. * GPU: Make NotifyConfigChanged() calls consistent. * Build: Another attempt to fix libretro. * Fix compiler warnings * Assorted cleanup * Fix for desc struct * Vulkan: Improve tagging of pipelines for debugging purposes * Extend lifetime of ShaderModule objects since we might need to recreate pipelines for different render passes * Fix pipeline lifetime issue, misc. * Correct merging of render passes. However, we have lifetime issues. * Lifetime fixes, cleanups * Fix shader caching. * Also create renderpass variants on demand * Create framebuffer variants on demand * Split each renderpass/framebuffer into multiple "compatibility classes" (RenderPassType). * Another attempt at fixing libretro, this time the win build failed * GE Debugger: Show imm prim flag detail in disasm. * GPU: Handle more flags on imm prim command. * softgpu: Use vertType prim override for flags. * GPU: Allow usage of texturing in immediate verts. * GPU: Handle immediate prims more accurately. * GE Debugger: Count imm prims as prims. * softgpu: Fix immediate rendering crash. * GPU: Fix crash on overlap copy w/o cur target. * GPU: Fix CanDepalettize() missing false paths. * Build: Add additional zstd file for libretro. * d3d9: Correct decode of 16-bit textures. * Add Lubos to credits list * GE Debugger: Add more missing GE disasm. * softgpu: Implement matrix data wrap-around. * Ge: Read matrix num/data back like hardware. * Build: Include all zstd files in libretro. * GE Debugger: Add conditions to cmd breakpoints. * GE Debugger: Add address breakpoint conditions. * GE Debugger: Allow expressions for goto address. * Remove impossible check * Buildfix, warn fixes while at it * NFS speed effect: Improve framebuffer choice logging, tighten up stride checks. * Correct libretro buildfix (hopefully) * OpenXR - Config for stereo separation added * GE Debugger: Add a table of register metadata. * OpenXR - Stereo matrices fixed * libretro build fix, see #15968 * Remove reference to non-existent file from Common.vcxproj * The Darkstalkers subpixel check should be == 0. Fixes #14953 again * OpenXR - Fixing FOV better * Fix for ARM 32-bit. * Fix case problem in libretro make file, see #15964 * Remove the assembly implementation of 4x4 matrix mul, in favor of intrinsics. * Disable BlueToAlpha mode when logic op is present. Re-enable for Outrun and DiRT. * Vulkan: Update to latest VMA. * Build: Update xxhash to v0.8.1. * Build: Update to zstd v1.5.3. * Build: Split ppsspp_common out for Android bins. * Water effect fix #2: If ForceLowerResolutionForEffects, don't upscale textures participating in small-resolution passes. * Water effect fix #1: Force "Lower resolution for effects" on in Outrun and DiRT 2 * Fix "Lower resolution for effects" in Ratchet & Clank. Bad option for this game though. * Fix the new logic-op-in-shader on OpenGL and D3D11 * OpenXR - Mismatch in stereo and normal uniform fixed * OpenXR - Do not include lens projection in nonVR builds * OpenXR - Split projection matrix for color and depth buffer * Shader unit test fix * Preserve alpha in shader logic op emulation. Include logic op in check for packUnorm4x8. * OpenXR - Mismatched call order fixed * OpenXR - Multipass rendering fixed * OpenXR - Stereo without multiview added * Turn on logic ops in shader when shader bitmasking is used. * Shader bit setup and code generation for logic-ops-in-shader * headless: Fix startup on latest Android versions. * arm64jit: Handle branch/jump in branch delay slots. * x86jit: Refactor and fix jump in branch delay slot. * irjit: Handle branch/jump in branch delay slots. * OpenXR - FBO intialization better * compile fix * OpenXR - Viewport init better * OpenXR - Emulate mouse cursor * OpenXR - Multiview refactor to make it optional * OpenXR - Compile fix * OpenXR - Swapchain acquiring fixed * OpenXR - Flag to easily disable multiview shaders added * OpenXR - Keep using GLES2 headers for now * OpenXR - Dummy integration compile fix * OpenXR - OPENXR ifdef removal * OpenXR - Enable performance mode * Assert removed * OpenXR - Step closer to identify multiview FBO issue * OpenXR - Use OpenGL ES 3 and ensure FBO pair calls * OpenXR - Initialization errors fixed * OpenXR - Multiview in progress * OpenXR - Multiview uniforms working * OpenXR - Disable multiview for now * OpenXR - GL and OXR logging added * OpenXR - Integrate multiview into system * OpenXR - Config for stereoscopic vision added * OpenXR - Unused parameter removed * OpenXR - VR renderer adjustments * OpenXR - Framebuffer multiview used- Update to version 1.13.1~git20220904: * UI: Only force ASCII messages if they're ASCII. * Fix dialog rendering (PPGe). Fixes #15954 * spaces->tabs * Fix GLES check * Additional cleanup * Add log functions to state structs * Move the computation of simulate-logic shader type earlier * Some more renaming and refactoring, extracted from a future PR * Channel mask refactor * Correct LogicOp API support detection * Minor refactor with pipelines in QueueRunner (makes more information available for easier debugging) * Don't parallelize shader compiles in debug mode, sync in debug allocator kills performance. * interp: Handle jumps in branch delay slots better. * softgpu: Correct texture check in fastpath. * softgpu: Validate alpha test properly for fastpath. * softgpu: Avoid rect fast path with subpixel offset. * Kernel: Use PSPPointer for status objects. * Io: Use PSPPointer instead of struct temps. * Font: Remove needless ReadStruct(). * Ge: Switch from ReadStruct to PSPPointer. * Psmf: Use PSPPointer instead of WriteStruct. * Net: Remove usage of Memory::WriteStruct(). * HLE: Remove misc usage of WriteStruct(). * PPGe: Cleanup memory writes for clarity. * Fix lying comment, log level reduction * Promise: Add SpawnEmpty (couldn't come up with a better name), fix bug with multiple waiters * Switch Vulkan pipelines to use promises for synchronization * VS 2022 warning fix * More buildfixing * Buildfix * Buildfix * Fix silly logic, fixes the shader leak. * Work towards finding the leak * Don't block on shader creation until it's time to create the pipeline. * Use shader module promises as keys in pipeline cache instead of the actual shader modules. * Create shader modules (and compile GLSL) on worker threads * minor sv translation fix * Use promises to hold shader modules, for later asyncification * Remove confusing resetFramebufferRead flag from secondary framebuffer binding * Remove setting "Disable slower framebuffer effects" * Remove unused function * langtool: Run fmt, remove wrong comments * langtool: Add easy command to remove a key. * unitest: Correct wrong free, initialize data. * vertexjit: Update unit test, oops. * Avoid recomputing the shaderblend setup in ComputeFragmentShaderID. * Small steps * Some reordering * More renaming * Plumb the computed pipeline state into ComputeFragmentShaderID. * Some renaming. Store the BlendState/MaskState. * vertexjit: Remove unused ReadUV() cases. * vertexjit: Remove unused ReadPos() cases. * vertexjit: Clamp through float pos during decode. * Replacement: Fix reload of replaced textures. * Replacement: Detect OOM even with replacements. * Vulkan: Prevent saving tex during replace load. * Revert "Merge pull request #15930 from sum2012/kernel-minor" * Fix image format when dumping textures. * Fix texture saving for Vulkan * Display paths with backslashes on Windows. Show texture path when saving. * Shrink VkRenderData from 88 to 64 bytes. * Another buildfix attempt * libretro buildfix * Remove allocation from the heaviest MemBlockInfo path (BlockTransfer). Required some refactoring. * Remove a per-audio-frame allocation in sceAudio * Shrink the DeferredDrawcall struct, because why not. Assorted cleanup * Shrink the TransitionRequest struct, use TinySet * TinySet bugfix, add "append" * fbtex matching: Shrink the matching struct, use TinySet instead of vector to avoid an allocation. * Stricter checks for negative framebuffer offsets. Fixes #15937 * Merge GetFramebufferCandidates and GetBestCandidateIndex into one function. * Much faster framebuffer matching (no more ToString every time there's more than 1 candidate, etc). * Rename Slow Framebuf effects to Shader Blending (might remove). Reassign readbacks to BlockTransferGPU. * KillZone: Fix margin detection on the title screen, fixing some glitches. Need more fixes though to fix the shimmer effect. * Extract the split code to a function * Quicker way to update the through projection matrix with the split framebuffer offset * Cleanup (more to do, though) * Allow signed texture offsets on framebuffers * Offset the draws properly. Now just some texel clamping left to fix * Check X coordinate of through-mode drawcalls to figure out which of the splits to render to * Tweak ForceMax60Fps to work for Killzone * Split the framebuffer in Killzone, with a compatibility flag. * Small tweak in texture matching. Fixes #15927 * Fix sceKernelUnlockMutex timing * Remove "DisableReadbacks" compat flag. MotoGP no longer needs it after BlockTransferAllowCreateFB was added. * Fix race condition in replacement texture loading * Implement shader blending for D3D9 * Clean up mip size calculations * GE Debugger: Improve display list disasm. * Address feedback * Add support for reading depth buffers to the PackFramebufferSync function. * Add another stat, for self-tex * Remove the reinterpret compat flag, now always on * Fix OpenGL bug when framebuffer fetch is available. Add two new stats. * Better framebuffer checks, remove all ways that framebuffer formats can change. * Use better pattern for enum switches * Some Vulkan renderpass load/store optimizations. * Depal: Set scissor tightly around processed area. * UI: Validate UI scissor inside bounds. * GPU: Make Spongebob hack checks more readable. * GPU: Recheck depth/stencil after Spongebob hack. * GPU: Add a way to defer dirty rechecks. * GPU: Fix possible shift truncation. * Update the Spongebob workaround check to work with MX vs ATV: Reflex. See #15907 * riscv: Add a simple unit test. * More spongebob check tweaks, assert fix * Remove irrelevant stencil state checks * Address additional feedback, thanks! * Safer spongebob depth inverse check, includes color check and depth func * Unify the spongebob depth inverse check * riscv: Emit compressed instructions. * riscv: Improve sign reduce/immediate readability. * riscv: Emit ADD/SUB/etc. for ADDW/SUBW/etc. on R32. * riscv: Include an LI helper in the emitter. * Comments and fixes * Block transfer bug fix * OpenGL graphics fixes * Comment fixes * Reinterpret is the proper fix for God of War's shadows. * Fix UV offsets in 16->32 reinterpret. Better, but something is still not quite right. * GL bugfix, log cleanup * Enable reinterprets and create-buffer-on-copy for the Tantalus games * Fix problem matching framebuffers for reinterpret * Logging improvements * Remove some old logging that's not very interesting anymore * Log improvement * When cloning framebuffers for reinterpret, adjust width according to bpp * Framebuffer texture matching: Remove heuristics other than seqCount * Accept color textures as reinterpretable between 32 and 16-bit formats * Implement the stencil/alpha reverse trick for all backends * Fix bug in reinterpret float impl * Comment fix, cleanup * Minor D3D11 refactoring * Fix Katamari * Bugfix, better logging * Quick hack to widen the depal texture if 0x200000 swizzle is needed * More successful swizzle impl. Not perfect * Unsuccessful swizzle implementation * wip * Initial implementation of 32/16-bit color reinterpret blits. * Refactor reinterpret to prepare for 16/32-bit * Prepare for 16/32 reinterpret * Detect need for 16<->32-bit reinterprets * Work in bytes in the framebuffer matching algorithm for block copies, avoid margins- Update to version 1.13.1~git20220826: * Finish the depal refactoring. * Fix shader compilation error in depth->565 * riscv: Emit CSR manipulation instructions. * riscv: Validate FixupBranch usage better. * riscv: Emit float instructions. * riscv: Emit atomic operations. * riscv: Emit mul/div instructions. * riscv: Emit fence and 64-bit instructions. * riscv: Emit 32-bit 3-op instructions, validate GPR. * riscv: Emit 32-bit load/store and imm ops. * riscv: Emit standard B/U/J type ops. * riscv: Add initial emitter shell. * Remove support for framebuffers changing stride (already unreachable). * Revert minimum stride * Add missing terminator to VR settings array. Better logging. * More comment fixes, cleanups * Comments * Comment updates * Merge the two find FindTransferFramebuffer* methods * Additional renaming * Rename variables to make the two functions match * Split up FindTransferFramebuffers * Tighten the check a bit more * Reorder some parameters. Detect buffers in stride gaps. * Remove unused function decl * Fix smoothed CLUT lookups. Shouldn't go beyond the mask's reach. * Add floating point version of reinterpret shaders * Fix BlueToAlpha together with reinterpret. Add back fake reinterpret for now. * Reimplement texture format reinterpretation * Fix smoothed depal on GLES. Don't enable filtering if not using. * Fix checks for depth texture support, GLES syntax errors * OpenGL: Fix regular depal (shader depal still worked) that broke recently * Remove duplicate uniform queries * Fix wrong width/height values being stored in thin3d textures * Drive-by texture slot management cleanup * OSD: Scale large multiline messages to fit better on screen (like shader logging) * GPU: More consistently clear ptrs on DeviceLost(). * GPU: Correct Draw2D::DeviceRestore(). * GE Debugger: Fix bad read on step at start of VRAM. * GE Debugger: Add separate step based on vsync. * GPU: Centralize SetDisplayFramebuffer(). * GE Debugger: Record 1 flip if no display calls. * Vulkan: Very minor chnages after checking Best Practices with new validation layer * Use Draw2D for depal shaders (except the actual blit, for now) * Break out Draw2D in a class * Switch reinterpret shaders over to the Draw2D framework. * More Draw2D refactoring * Small Draw2D refactor * Rename VirtualFramebuffer->format to fb_format to line up with fb_address and fb_stride (fundamental parameters) * Rename fmt->fb_format * D3D9: Correct viewport offset sign. * D3D11: Correct viewport offset sign handling. * Copy color from overlapping framebuffers on bind, under certain conditions. * Implement smoothed depal for the "old" depal path as well. * Better checks for smoothed depal * Remove SmoothedDepal compat setting, instead detect the ramp directly. * Special case depal lookups for Test Drive's strange usage. * More renaming. Fix shader view for Vulkan * DepalettizeCommon -> TextureShaderCommon. Simplifications. * Convert TextureShaderApplier to a member function in DepalCache. * Simplify depal shader apply code a bit. * Replacement: Read files only within time budget. * Replacement: Be more consistent about base level. * Vulkan: Cleanup minor logging. * Config: Default PSP model to SLIM on all platforms. * Linux: Consider Vulkan if OpenGL init fails. * GLES: Correct preview of mip levels > 0. * GPU: Share CLUTs if no extended CLUT. * Headless: Set softgpu config flag. * Headless: Fix comparison for oversized buffers. * UI: Show return address for exec crashes. * Core: Show exception on misaligned jump. * irjit: Validate alignment in slow memory mode. * irjit: Add constructs for validing mem access. * More D3D9 work on depth textures. Something still missing. * Address more feedback, cleanup scale parameter * Remove leftover resolutionScale depal config parameter * Compatibility check * Use a DX9-compatible method to pass texwidth and height. the effect doesn't work on DX9 yet though. * Fixes for D3D11 * Remove debug code, cleanup * Fix glitch when changing render resolution * Really not sure how we can detect whether a depth deswizzle is needed :( Hopefully temporary flag... * Texture bind channel fix. Still need to figure out a way to decide to swizzle or not. * Fix graphics in Ratchet & Clank. WIP * Fix naming of temp fbos to be in PSP pixels * Allow binding depth as 565 by going through depal. * softgpu: Correct morph weight updates. * softgpu: Flush on transfer to pending tex read. * softgpu: Restrict CLUT to proper size. * GE Debugger: Include extended CLUT in frame dumps. * GPU: Restrict mip CLUT enhancement a bit. * GE Debugger: Correct 16-bit CLUT display. * GPU: Correct depal CLUT texture for 5551/565. * GPU: Purify ConvertViewportAndScissor(). * GPU: Dirty params when converting viewport state. * OpenXR - Refactor display framerate * OpenXR - Resuming renderer fixed, haptics support added * OpenXR - Recenter changes pitch of the 2D screens * OpenXR - Ensure PSP aspect ratio for 2D content * OpenXR - Option to set canvas distance added * OpenXR - 2D mode hack mappable (using screen keycode) * OpenXR - Default config values fixed * OpenXR - Support for multiple projection matrices in the scene * OpenXR - Rotation mirroring fixed in a few games * OpenXR - Remove OPENXR ifdef from UI * OpenXR - Better detecting of 2D menus * OpenXR - Detect 3D content better * OpenXR - Detecting UI mode improved * OpenXR - 72Hz support added * OpenXR - Unused variable removed * OpenXR - HUD is enabled based on gstate * OpenXR - Forgotten file added * OpenXR - Introduce VR tweaks * OpenXR - HUD support added * OpenXR - Estimate world unit scale * OpenXR - Head orientation in some games fixed * OpenXR - Refactor the common math methods * OpenXR - 6DoF head movement support added * OpenXR - Renderer support for axis mirror added * OpenXR - Switching between 2D/VR fixed * OpenXR - VR settings added, better UI detection * OpenXR - Automatically switch between fullscreen/VR * OpenXR - FoV fix for Quest 1 * OpenXR - Basic look around implementation * OpenXR - Enable 6DoF mode when in game- Update to version 1.13.1~git20220820: * Address feedback to PR #15858 * Restore the clearing optimization, avoiding unnecessary depth copies * Fix deferred-depth for bezier/spline. Move updating of last_frame_depth_render to GPUCommon. * Minor fixes. Everything seems fine now. * Implement copying color to depth on load. However, weird stuff is happening.. * Extract depth copies to CopyToDepthFromOverlappingFramebuffers * Remove the color-to-depth mode * Defer depth copies until depth buffer is actually used. * Texture bind channel fix * More consistent handling of lack of depth texture support. Small log improvement. * Fix bug in framebuffer matching where the wrong format was checked for depth matching. Fixes #15867 * Update ko_KR.ini * Update ko_KR.ini * Update ko_KR.ini * Update ko_KR.ini * Initialize a bunch of Dialog structs * Fix dependency of RISC-V targets on common JIT code * Update ko_KR.ini * Bias towards the most recently written framebuffer * Remove restrictions on VRAM addresses for depth and color * Always attempt to match both depth and color * Pre-reject DXT formats, Misc * Show seqCount in candidate list * Stride fix in matching * Framebuffer matching simplification * Fix the raster depth blit again, which I recently broke. * Typo fix * Silverfall: Add the US game ID too * Add Silverfall to [AtracLoopHack]. At least we're gathering a good list of test cases once we have an idea for a real fix... * Use sequence numbers instead of a tracking array for depth buffers * Revise comments according to feedback * Oops, remove wrong comments * Comment updates * Clean up and comment framebuffer struct better, add bind sequence numbers * After recording a GE dump, open an explorer window pointing at the file * Remove the DX9 namespace, for consistency with the other backends * Vulkan: Restore a minor old forgotten optimization * More removing redundant stuff * Add a newline to "Leaving main" message. * Refactor 2D pipeline creation * Minor cleanup in reinterpret * Rely on refcounting for stencil upload shader modules * thin3d: Properly AddRef and Release shader modules from the pipeline in backends that need it * add bin and elf to picker as they now work * Remove some unused code in FramebufferManagerD3D11.cpp/h * remove storage fileloader and storage folderbrowser * Remove deprecated function (mostly) * Remove some unnecessary bool returns. * Move out the reinterpret stuff to ReinterpretFramebuffer.cpp. Draw2D refactor. * Assorted minor cleanup * Revert "Pause the debugger on TRANSFERSTART (treat that as a prim)" * remove unneeded switch case as un broken cases fall through * GPU: Avoid using depth buffers for blending. * GE Debugger: Fix crash on 0 count prim. * GE Debugger: Correct base accounting in playback. * GPU: Skip fb create upload when clearing. * GE Debugger: Save tab configuration. * GE Debugger: Cleanup duplicate dlist redraws. * GE Debugger: Correct tab updating for right panel. * GE Debugger: Actually allow swapping tabs. * GE Debugger: Add context menu to control tabs. * GE Debugger: Show/hide tabs if empty. * GE Debugger: Track tabs per panel. * Move the display list view to its own column on the right * Add plain Create method to CtrlDisplayListView * Pause the debugger on TRANSFERSTART (treat that as a prim) * Add a second set of tabs to the Windows GE debugger. Also reorder stuff. * oop * oop * oop * Use compat.ini instead * Add atrac hack setting * Net: Cleanup initialization syntax. * GLES: Correct some variable shadowing. * libpng: Correct func pointer type warning. * Global: Cleanup some unreferenced warnings. * Font: Fix bad memory read on invalid font data. * Assign value to version where appropriate * Update * A better way to get property * Merge update into master- Update to version 1.13.1~git20220813: * Font: Correct uninitialized values. * Atrac: Avoid accessing uninitialized stream status. * Build: Correct ccache keys. * Atrac: Avoid an uninitialized value. * softgpu: Ensure TCs are initialized. * softgpu: Correct bad munmap() size. * x86jit: Avoid an instruction form Valgrind hates. * Headless: Correct bad pointer without gfx context. * Core: Correct shutdown on late init failure. * Try to fix shader compilation error on Adreno reported by Lubos * Debugger: Bump GE dump version to ignore bad flag. * Debugger: Correct GE frame dump VRAM dirty flag. * Debugger: Fix crash on bad request. * GPU: Avoid stencil force pass when writing depth. * GPU: Write stencil fail to alpha is RGB masked. * Fix feature checks * Enable framebuffer depth blits through raster. Fixes games like Jeanne D'Arc on D3D9. * Some enum renaming, move RasterChannel to GPU.h. * Careful with mipmaps on old OpenGL ES. Lost this check in the refactor, made it clearer than before at least. * Texcoord attrs must be called a_texcoord0, this should be fixed. Oh well. * Convert depal shaders to use the ShaderWriter. Add tests for depal shaders. * Cleanup * Warning fix * Remove BGRA color swap in depal for D3D, no longer needed (and breaks Simpsons) * Update zh_CN.ini * Headless: Cleanup unused/leak warnings. * Change indentation to tabs. * UI: Show better warning on MAC reset. * Lang: Fix some mismatched lang keys. * Build: Remove no-format. * Common: Avoid format warning with log timestamp. * GLES: Correct alpha check for depal framebuffers. * Add -Wformat (see issue #15792), no idea if ok. * Oops, this iOS check was still required. * More framebuffer blit fixes. * Improve the NPOT check * Forgot these... * Make GLQueueRunner/RenderManager aware of device caps, use it to check for NPOT and some other stuff * Remove optimization in BlitUsingRaster that shouldn't have been there (redundant, lacked feature check) * Reimplement bicubic upscaling. * GLES: Correct semantic name for Draw2D. * GPU: Clarify new framebuf stencil upload. * Dialog: Add missing header for MSVC 2017. * GPU: Skip alpha stencil upload when safe. * GPU: Cleanup remnants of GLES-only stencil upload. * Fixed infinite loop and crash which could occur when using "Import from cheat.db".- Update to version 1.13.1~git20220807: * Fix feature check for wrapping of non-pow-2 textures * Feature detection fix on old GL, more compiler warning fixing * D3D9: Fix a lot of stuff * More cleanup, fixes. * More cleanup * Buildfixes * Lock out shaderDepal from D3D for now, will implement later. * Feature detection fixes * Delete all the duplicate implementations of ApplyTextureFramebuffer * Remove Vulkan2D * Move the depal cache instance ownership to TextureCacheCommon * Compiles on Vulkan, but doesn't yet work. * Switch over D3D9 as well. Buggy, will debug after unification * Works with D3D11, except the depth texturing case * Simplify * Fixy fix * D3D11 prep * Move the TextureShaderApplier out to DepalettizeCommon * Move more stuff to Common * OpenGL: Fix shader depal too. * Move to Common * Mostly works for OpenGL. * Port the OpenGL depal path to thin3d * Fix some compiler warnings * ShaderWriter: Fix GLSL 1.0 output * Fix corrupted colors when using software upscaling with OpenGL. * Use safe_string when printing %s with Memory::GetCharPointer. * Prefer using "%04x" over "%04hx". * State handling reordering in D3D11 and D3D9 backends. * Fix logging warning issue. * Update /lang/ru_RU.ini * Fix include issue. * Updated copyright's year. * Replace the dummy PSN name with Nickname on sceNpInit. * Moving sceNpMatching2-stuff to sceNp2.cpp/h. PS: Register_sceNpMatching2 not being added to HLETables because currently the callback didn't work properly yet and could crash the game. * Implement NP Signin Dialog (faked signin) * Updated NP Library PS: Some of registered modules should probably moved to a separate files (ie. sceNp2.cpp). * Added a FunctionWrapper used by sceNpService * UWP: Fix missing font file causing missing text fields. Fixes #15771 * Delete more unused code * Fixes, state invalidation * Delete unused stuff in all backends * Remove the D3D9 and Vulkan BlitFramebuffer functions * Replace D3D11's BlitFramebuffer with the common one * Convert FramebufferBlit from the GL backend to use thin3d * D3D11: Remove more custom drawing * Fix upscaling in Vulkan. Fixes #15779 * UWP buildfix * Reimplement filtering in DrawActiveTexture * Delete the OpenGL implementation of DrawActiveTexture. * Delete the Vulkan implementation of DrawActiveTexture, fixups to shader gen * Delete the D3D9 impl of DrawActiveTexture * Move to common (todo: merge with above) * Convert the D3D11 DrawActiveTexture to thin3d * Draw2D * Need a separate cap bit for stencil blits to prevent misuse on D3D9 * Cleanup and testfixes * Unit test, comment * Rebind the framebuffer only if we're in the blit path. * Bufferless path for D3D11/Vulkan * Get D3D shaders to build (though not working correctly) * Switch to ShaderWriter. Works in OpenGL * Unify stencil buffer upload using Draw. Only OpenGL tested yet (shaders need adaptation). * Implement DrawUP for D3D11 * GLES: FramebufferBlit: Don't blit if the target is the current framebuffer. * Clean up blit/copy feature detection. Don't need fast GPU flags for these. * Fix crash in shader upscaling. This variable shadowed the one that now lives in Common. * Use BlueToAlpha in more games instead of ReinterpretFramebuffers/ShaderColorBitmask * Fix Vulkan as well * Fix for D3D11 and GL, but not Vulkan for some weird reason * Avoid upscaling textures used for color-to-depth. * Disable texture filtering when drawing color into depth * D3D9 fix * OpenGL fix * D3D11 fix * Implement color-to-depth for Vulkan, start implementing for D3D11 * Add logging for some non-traditional uses of framebuffers. * Fix small breakage in Vulkan texture decoder * Fix Macross glitches. * Vulkan: Don't try to auto-mipmap 3D textures in max quality filter mode * Fixes UWP building issue after Retargeting Solution to a different SDK version. PS: This won't work when selecting the "latest installed version" tho, so a specific version need to be selected when retargeting. * OpenXR - Use a build variant instead of a module * CI: fix tag regex to match also shorter tags like v1.13 * Address feedback * Check for color/Z clashes * Track depth buffers separately from framebuffers to track previous use for copies * Give the mip bias its own uniform flag. * Possible flicker fix for Macross * Revert mistaken change in D3D9 fragment shader gen * Support 3D textures in OpenGL ES, add feature check * Testfix, cleanup * Implement 3D texturing in the OpenGL backend too. Assorted fixes. * Remove some dead code * Implement 3D textures for D3D9 as well * Implement 3D textures for D3D11 * Some safety checks to avoid bad combinations, probably not really needed in practice. * Quick attempt at fixing the Macross glitch * Fix the mip bias to take the texture depth and sampling offset into account. * Implement new discovery of a larger CLUT than we thought, plus non-shared CLUTs for 8-bit indices. * Initial implementation of 3D texturing through equal-size mips (see #6357) * CI: make indentation in tarball.yml consistent * Reporting: Disable when debugger methods used. * GPU: Small scaling variable cleanup. * CI: also upload release source tarball on tag push * Revert debug change * Unify the GLES LoadTextureLevel with the D3D ones. * Prepare to convert the GLES functions too * Share LoadTextureLevel between the two D3D backends. * Cleanup * Part 2 of the above * D3D: Part 1 of breaking out the API stuff * libretro buildfix * UWP buildfix * Simplify CPU upscaling code * Vulkan stencil fixes * Make the D3D9 backend handle stencil state in more similar ways to the others. * More thin3d d3d11 fixes * thin3d: Make writeMask and compareMask dynamic in all backends. D3D11 needs emulation. * thin3d: Remove dual sided stencil, not supported by all backends anyway * Remove some indentation * Use PrepareBuildTexture from the Vulkan backend too * Change from maxLevel to levelsToLoad, for better readability. Cleanup. * Define texture loading plan semantics better, pre-port some from Vulkan * Vulkan: One step closer to using PrepareBuildTexture * Update PrepareBuildTexture * Use PrepareBuildTexture from DX9 backend * Use PrepareBuildTexture from D3D11 backend * Break out the preparation part of BuildTexture from GLES * Additional cleanup * Get the GLES BuildTexture slightly closer * Make the BuildTexture of DX9 and D3D11 backends more similar * Remove indentation, useless code * Remove the DX API access from LoadTextureLevel * Remove fake-mipmap logic from LoadTextureLevel * Minor code simplification * Remove unused parameters to some conversion functions * Remove unused useBGRA parameter * Remove the ReplacedTextureFormat enum * Remove support for 16-bit replacement texture formats * Update ru_RU.ini * readme link * Windows: Add a simple window message to get the base pointer. * Update assets/lang/ru_RU.ini * Update version for 1.13.1 * Update README.md for 1.13.1 * Replacement: Cleanup leak on replacement reload. * Replacement: Clear cache on disable. * irjit: Correct another PurgeTemps case. * irjit: Clarify PurgeTemps, guard a couple ops. * Add confirmation dialog when generating a new Mac address * better pt-pt translation * Fix bug in blue-to-alpha - alpha blending could be on when it shouldn't be. * Reporting: Avoid crash if socket connect fails. * Some zero init, add a null check in TextureReplacer. See #15730 * OpenXR - Move VR folder under Common * OpenXR - Static added to global variables * OpenXR - Version info refactor * OpenXR - Integrate SYSPROP_HAS_FILE_BROWSER * Update version for 1.13 release * README.md update for the 1.13 release * Simple hack to hide the search button in settings on small screens. Needs a better solution. * Build: Update to NDK r21e. * Switch to using the D3D9 state cache in thin3d, to avoid confusion * Clarity improvement in dx state cache stencil func * Remove unnecessary complexity from the D3D9 state cache * Remove bool that was always true in state mapping. * irjit: Correct initialization warning. * irjit: Add test for double clobber in #15713. * Headless: Ignore __testcompare.png in tree. * irjit: Simplify more arithmetic to Movs. * irjit: Add tests for IR passes. * Revert the x-offset bpp fix temporarily. * Add GPU stat for number of depth copies per frame * OpenXR - Code formatting fixed * OpenXR - Disable HW scaler on VR headsets * OpenXR - Default device config added * OpenXR - Hide unsupported menus * OpenXR - VR code formatting fixed * OpenXR - Finalize VR renderer interface * Libretro fix * Windows fixes * Remove unnecessary parameters from MakePixelsTexture * Delete some unused code. * Separate logging for GetPointer/GetPointerWrite * Split GetPointer into two versions, to help with const correctness * OpenXR - Pragma once instead of ifdefs * Allows "merging" render targets that overlap on the Y access. Fixes #7295 (Juiced 2) * OpenXR - Code formatting header removal * OpenXR - Code formatting global variables * OpenXR - Code formatting { * OpenXR - Button repeating implemented * OpenXR - Controller mapping better * irjit: Prevent corruption on purge temps pass. * Add UWP Platform to Issue Templates * (UWP) Update Dummy Manifest * (UWP) Remove Reference to Deleted File. * (UWP) Delete Old Key * (UWP) Building Improvements * Remove redundant file from packages. * Prevent Dummy file from appearing in packages. * Remove a redundant mutex lock in logging. * Main screen: Display .ppdmp filenames on buttons in grid mode * Remove log noise * Mali driver bug workaround for driver 32+. * OpenXR - Hacky mapping to make the games playable * OpenXR - UI controls integrated * OpenXR - UI scale/resolution fixed * OpenXR - Input class added * OpenXR - Rendering UI fixed * OpenXR - Rendering into VR framebuffer works * OpenXR - Dummy rendering working * OpenXR - Initial version of VR renderer added * OpenXR - VR mode initialization added * OpenXR - VR framebuffer class added * OpenXR - Hide options which are not relevant for VR * OpenXR - SDK added * OpenXR - Quest target into Android Studio project added- Update to version 1.12.3~git20220717: * Osk: Allow upper/lower for all keyboards. * Debugger: Update to latest web debugger. * Debugger: Fix SVG content-type for proper display. * Use the recent Clone Wars fix for Star Wars: Force Unleashed too * Update zh_CN.ini * Add a simple compat flag to workaround the Clone Wars issue, #12949 * Apply leoxxx's spacing changes in zh_TW.ini * Update zh_CN.ini * Update zh_CN.ini * Add Zettai Zetsumei Toshi 3 bypass for softlock on character select screen * zh_CN translation: Apply spacing rules according to leoxx. See #15660 * Io: Correct access field on dir listings. * Config: Keep recentIsos lock owned by Config. * langtool: Add command move-key to move a line globally from one section to another. Update deps * Update zh_TW.ini * Update zh_CN.ini * Add files via upload * compat.ini for Mali stencil bug: Add the Suikoden game too * Mali workaround - add compat.ini entry for Mahou Shoujo Nanoha A's Portable. * Config: Cleanup recent on a thread. * Config: Move recent ISOs access to accessors. * Io: Show message if files are outside valid ISO. * irjit: Allow unaligned loads by default. * UI: Reduce IO for texture ini on dev settings. * Improve comment, variable name * Vulkan fragment shaders: Don't opportunistically emit "layout (early_fragment_tests)" * Slightly improve logging of failed block device reads * Fixes Kenka Bancho too. * Tweak the Mali stencil-test workaround to work for Surf's Up. See #15016 * Dynamic update- Update to version 1.12.3~git20220710: * Remove unmotivated check preventing texture ini creation on mobile. (#15647) * Common: add explicit for BSDs after 3ed74350129c * Fix comment * Double quote * Be explicit on the possibility of failure * Use hashtag for RGBA format * Change theme endianess * Update zh_CN.ini (#15657) * Add check that makes PPSSPP work on Xbox through the debugger * Replace Win32 file IO with UWP safe variants and add support for getting drives to UWP build (#15652) * compat.ini: Add R-Type games to IntraVRAMBlockTransferAllowCreateFB. * Compat: Fix backwards check. * UI: Add small deadzone for analog speed. * UI: Clamp analog speed to 0 on opposite value. * Update zh_CN.ini * Update zh_TW.ini * UI: Reset views when analog speed mapped. * UI: Allow cancel from analog speed mapping. * Change comment based on new findings. * UWP: Skip pad name lookup. * UI: Add analog speed limit mapping. * Core: Track names of connected pad devices. * interp: Fix constant typo. * Compat: Add setting to skip compat flags. * Reporting: Log when vertex count truncated. * Updated wiki page key in all translation INIs. * Remove left over * Change hack names and edit comments based on feedback. * Improve the vortex hack to make it safe and slow it down * Test hack that breaks the vortex timer, it's still wrong * Add 30 fps version as an option, doesn't suffer from softlock * oops * Updated text on AdHoc wiki page button. * Updated "Use original port" tip message. * Add Fixed60FPShack for GOW, should work smoother than the ForceMax60FPS. Also more stable than it's CWCheat version, unfortunately because of that, still causes softlock in GOW:GOS vortex stage. * Disable ForceMax60FPS for GOW:GOS to avoid softlock * Show a tip message when enabling "UPnP use original port" option. * Update zh_TW.ini * Update zh_CN.ini * Update th_TH.ini * Hide Hostname progressView when not showing any message to get a better view of the list. * Slightly reduce Hostname progressView's margin as it took too much space. * Added psp.gameplayer.club public Adhoc Server. * Additional game IDs for The Simpsons Game * Apply the mali workaround for The Simpsons Game. * Merge pull request #15629 from Halo-Michael/lang * Add ARM64_NEON compile arch flag * ffmpeg: fix compile bug * Mask some part of public IP in the logs for security reason. * Update zh_CN.ini * More translation key * Add numpad enter as a confirm * Update all * Remove driver version check for Mali stencil/discard bug. See #13833 * Update eng lang * Oops, revert debugging commit * Workaround for strange driver hang on Raspberry Pi 3. * Keep ye olde else case * Avoid including signal.h from CommonFuncs.h * Allow to repeat a "single" button- Update to version 1.12.3~git20220618: * Out of performance paranoia, limit the Mali workaround to known affected games * Work around the Mali stencil discard bug the same way as the Adreno one. * Show detected GPU driver bugs in system info * Increase the difficulty of the GPU driver test * Build: Use cinttypes not inttypes.h. * Update zh_TW.ini * Update zh_CN.ini * Update gamecontrollerdb.txt * Update zh_CN.ini * Update zh_TW.ini- Update to version 1.12.3~git20220612: * Fix-ja_jp.ini * Fix-ja_jp.ini * Small struct layout optimization (stencil is never more than 8 bits, can sneak in next to the load actions) * Rename Vulkan attachment operation variables. Prep for supporting specifying store op. * Inline the CoreParameters accessor (eliminates a function call for each access) * Shaun White Snowboarding: Use compat flag to eliminate a readback per frame * Echochrome lines: Remove UV offsets, avoid reading the destination (much better codegen) * Update zh_CN.ini * Update zh_TW.ini * Update zh_CN.ini * Add centered line drawing for Echochrome. * Take the absolute value when measuring pixel size for line expansion. * Bump gradle again, .gitignore update for VS 2022 * Add TODO to see if we can make better choices of time sources * add additional rescaps * fix indentation * add runFullTrust, broadFileSystemAccess and expandedResources rescaps * Add guard * Update zh_CN.ini * Add search on SDL- Update to version 1.12.3~git20220607: * Update id_ID.ini * Update zh_CN.ini * Small Change * Update zh_TW.ini * Update * Indonesian Translation Update * Fix commending wrong lines * GLES: Fix sw transform flip in skip buffer mode. * Update defaultshaders.ini * Add files via upload * Update upscale_spline36.fsh * Return by copy * Log missing lines on shutdown, update lang files- Update to version 1.12.3~git20220530: * Fix CpuCore select * Savedata: Allow no key when not using SECURE modes. * Osk: Fix fullscreen check. * UI: Abandon focus movement on returning from pause. * Update zh_CN.ini * Config: Don't save --fullscreen unless changed. * Fix themes as well * Postshader: Avoid treating directories as files. * Update th_TH.ini- Update to version 1.12.3~git20220525: * Update zh_TW.ini * GPU: Fix skip buffer effects rendering. * GPU: Hook Sol Trigger func to flush texture. * Crash: Recover from unaligned CPU access.- Update to version 1.12.3~git20220519: * Update pt_BR.ini * Add files via upload * Update zh_CN.ini * Detects connection establishment to AdhocServer by combining select and getpeername to increase accuracy. * We might be missing this in the past. * Fix sceNetAdhocPtpConnect issue on Windows (ie. Tales of VS) due to getpeername on Windows can return a success when the other side haven't Accepted the connection yet. * Fix sceNetAdhocPtpConnect issue on non-Windows (ie. Taiko no Tatsujin Portable DX on Linux) due to select can flags an unconnected socket as writeable & readable on Linux. * Added a note regarding SO_NOSIGPIPE * Avoid compilation warning * Avoid a possibility of fatal signal on non-Windows * Added a note regarding select on Linux. * (libretro) Add option to detect and notifiy frontend of internal frame rate changes (60 <-> 30 <-> 20 fps, etc.) + restore 'Duplicate Frames in 30 Hz Games' core option * Update zh_CN.ini * Limit minimum timeout to [0, 100, 200, ..., 5000] * Fix missing GPU and run tools * For Libretro -DUSE_DISCORD=1 is not added in CMakeLists.txt * Let port offset cover the entire range in steps of 1k * Remove options for network chat, since these only work for standalone * Make MAC address configurable and randomize when not set * Fix update of chat screen position * Disable UPnP by default * Correct indentation and some strings * Expose networking options in libretro core * Display: Ignore lagsync when auto frameskip on.- Update to version 1.12.3~git20220512: * Unused lang tool * Update Russian translation * Tweak -latomic preconditions in CMakeLists.txt. See comments on 14e9aab96e111 * softgpu: Correct stencil debugging. * softgpu: Fix viewport flag clean/dirty. * Lang: Remove some duplicate lines in German. * uptated German Translation- Update to version 1.12.3~git20220507: * Enable -latomic on Linux. Fixes build on Raspberry Pi 3b for me. * Update .gitignore- Update to version 1.12.3~git20220503: * Replacement: Allow texture dump without replace. * Fix shader blending regression (Vulkan) * libkirk: Set Segher Boessenkool's original copyright notice * Fix discrepancy in how the LMODE flag is calculated between VS and FS * Vulkan: Correct size for tex mip level readback. * Vulkan: Fix depth transition barrier. * Remove the rather problematic limit on framebuffer copies * Remove log output * Combine barriers before blits/copies * Convert some barriers to use the new barrier framework. * Add utility class VulkanBarrier * Combine renderpass "pretransitions" for barriers. * Vulkan: Follow sampler best practices with auto max quality. * Bump vulkan headers to SDK 1.3.211 * Bump gradle * Convert the blueToAlpha bool to a usageFlag. KEEP instead of CLEAR for depth during reinterpret. * Oops, gotta update the cached framebuffer format in the other drawing paths too * Finish BlueToAlpha functionality * BlueToAlpha hack to avoid clearing the envmap in split/second :( * Add option to redirect blue to alpha if 565 mode is rendered and mask is 0x0FFFFF. * Move framebufFormat to gstate_c, so we can override it * Dirty more state after reinterpret * Minor cleanups in framebuffer manager- Update to version 1.12.3~git20220430: * Better default control config for the Retroid handheld Android console * Detect ISO files from file contents if extensions are wrong. * Allow to set InternalScreenRotation per game * Fix lazy loading of metadata- Update to version 1.12.3~git20220427: * Logs unimplemented syscalls as error * Partially fixes SenseMe app (will need HTTP/HTTPS support to be fully working) * Vero4k doesn't report its NEON support - so check for underlying Arm Cortex-A53. * GLES: Reverse alphamask when comparing to CLUT. * Simplify alphasum checking for DXT textures, and fix a regression * Make the existing ReinterpretFramebuffers/ShaderColorBitmask path work for Split/Second * UWP: Fix loading the default theme. * Fix regression with CLUT16 textures. See #12188 * Minor cleanups * Fix mip level bug in Vulkan texture cache. * Make UI a bit more descriptive * Add key bind to hotswap internal screen rotation * Fix checks for the "fake mipmap" situation. * Allow to change atlas per theme- Update to version 1.12.3~git20220418: * UI: Prevent save textures if not replacing. * Vulkan: Save textures using a memory copy. * Replacement: Avoid recheck saving within 5s. * Replacement: Move IO checks to saving thread. * Vulkan: Allow saving const tex levels. * Add the slow comment to one more place * Save textures on background tasks when texture dumping is enabled. * Fix hang when choosing "Skip" in first-time init. Warning fix, comment add. * Disable the compat.ini workaround for Crash Team Racing. Reported by Panderner to not be needed anymore. * Add contributed data about a couple of prototypes to auto-expand memory to 64MB * UWP crashfix - serialize accesses to each loader * Crashfix * Fix typo and optimize locking pattern in Event, make it the same as LimitedWaitable. * Buildfix * Try a clang pragma to avoid overeager auto-vectorization * Buildfixing, correct NEON type usage * SIMD-optimize CheckMask16 / CopyAndSumMask16 * Delete a lot of specialized alpha checking code. * Address feedback * One more NEON optimization * Quick NEON optimization of CheckMask32 * SSE optimize a common case for video * Yet another bugfix * Debug log (remove before merge) * Bugfixes, handle the rest of the cases * Simplification and some cleanup * Remove redundant line * Fix DeIndexTexture * Comments * AND together colors while decoding, and then check against fullAlphaMask. * Fix some NEON code that had bad compile-time checks (and some didn't compile) * ARM32: Remove a lot of non-NEON fallback paths * Always use the stable quick tex hash. Doesn't actually make a difference except on new CPU archs. * Remove more function defines * Merge separate NEON functions into the normal functions. * Avoid creating a fileloader during shutdown. * Make the number of threads flexible in the threadmanager test. Increase to 9, just because. * Replacement: Avoid potential destructor crash. * ThreadManager: Improve waitable destruction.- Update to version 1.12.3~git20220409: * Fix race condition in LimitedWaitable between Notify and Wait * Fix misuses of cond.wait (should return true when you want to stop waiting!) * OK, this does crash * Time the stress test * Add a scheduling stress test to TestThreadManager.cpp. * Bump Android target version to 12L. * Gradle bump * Net: Ignore SIGPIPE errors on POSIX systems. * Switch: Fix GL build typo. * NetAdhoc: Fix warning. * Switch: Avoid loading Vulkan. * Detect number of cores in build script- Update to version 1.12.3~git20220324: * Increase the timeout when the connection to the AdhocServer is already in progress, avoids cutting off the connection if it took longer than expected but almost completed. * Added a function to get SO_ERROR on a socket. * Updated getLocalIp function to detects local IP better. * Use the most recent posix socket id during blocking simulation, since there is a possibility for the socket id to changes after recreated. * Recreate the socket before attempting to connect again after ECONNREFUSED/ENETUNREACH error, since reusing the socket only works on Windows. * Caches IP-specific Port Offset to avoid recalculating them. * Use reference when possible to avoid copying. * Initialize some socket-related structs to avoid unexpected behavior. (May fix Unknown Source Port issue) * Shouldn't return as soon as possible when a blocking PtpConnect is getting ECONNREFUSED error, since it should be treated as ETIMEDOUT on non-Windows platform * Ignore disconnected error on PtpFlush. Fixes disconnection issue on some games (ie. R-Type Command)- Update to version 1.12.3~git20220320: * Debugger: Keep separate tag dirty for RAM. * Debugger: Fast path write tag lookup. * softgpu: Combine memcpy into single. * Debugger: Improve tag on copies. * softgpu: Avoid unnecessary clearMode checks. * Manual generate Android APK- Update to version 1.12.3~git20220313: * Add a check to the elf loader, preventing a crash on bad module info addr * softgpu: Plug bad leak of bin queue data. * softgpu: Reduce memory usage on 32-bit. * softgpu: Enure aligned bin queues. * softgpu: Avoid some unaligned access on x86_32. * Loaders: Fix 64-bit conversion warnings on 32-bit. * Global: Fix some int/size_t conversion warnings.- Update to version 1.12.3~git20220311: * Add version to game screen * Short circuit the texture replacement code * Don't track small wide-stride block transfers- Update to version 1.12.3~git20220305: * softgpu: Fix build with basic logging. * Windows: Correct root vol handling for UNC paths. * Windows: Create SYSTEM directory early.- Update to version 1.12.3~git20220224: * Show game crashed * GLES: Remove old invalidation code. * GLES: Add asserts for correct blend usage. * GLES: Use EXT not GLES3 for dualsrc blend support. * Debugger: Track unchanged VRAM to avoid copy. * Also delete vulkan_funcs.hpp, oops * Debugger: Improve drawing range in softgpu. * softgpu: Use region as a second scissor. * softgpu: Correct accounting for pixel center. * samplerjit: Correct nearest negative texture clamp. * softgpu: Directly implement rectangle drawing. * softgpu: Prepare dedicated rectangle path. * softgpu: Cleanup some now unused state. * softgpu: Remove incorrect offsetting for X/Y. * softgpu: Use a const for subpixel screenpos factor. * softgpu: Remove offset from screenpos. * Upgrade to Vulkan 1.3 headers (and remove the .hpp files)- Update to version 1.12.3~git20220219: * Gradle upgrade again. Remove some redundant version checks * Allow to set default background color in a theme * Fix live update * Make the untextured uniform buffer the same size. * Disable darkening background, also allow to over saturate up to 2 * Add UI Tint/Saturation settings * samplerjit: Fix non-SSE4 bugs in jit. * samplerjit: Fix non-AVX three-op shift. * Unhide "Cache ISO in RAM" on ARM platform. Not the right block level. We should probably check for available RAM instead. * More fixes for themes * Merge item and button style, remove hightlighed and few other fixes * Fix disabled bg * Allow translation * Add themes to assets * GE Debugger: Highlight changed matrix values. * GE Debugger: Highlight changed state values. * GE Debugger: Track last gstate on stepping. * Debugger: Allow custom draw and generic lists. * Debugger: Avoid scroll on breakpoint add. * Debugger: Cleanup some header pollution. * softgpu: Track dirty vs really dirty per buffer. * softgpu: Allow tri -> rect in transform. * softgpu: Turn more tri strips into rects. * softgpu: Combine tris to rects with ignored z too. * softgpu: Cleanup todos on perspective correctness. * softgpu: Avoid modifying source vertex data. * Adress feedback * remove more prebuilt stuff and huge rapidjson testsuite (unused) * also delete pre-built ffmpeg windows libraries * fix version string generation * fix version number display * try 2: remove pre-built ffmpeg and vulkan libraries * remove pre-built ffmpeg and vulkan libraries * fix mime type of xz tarball * rename action title * rename to tarball.yml * use recursive submodules and checkoutv2 * Forgot pragma, silly me * Allow custom UI themes * CI: add github action to build source release tarball with submodules- Update to version 1.12.3~git20220211: * Keep comment up to date * GE Debugger: Avoid crash on Step Draw with flush. * Debugger: Improve memory search result draw speed. * Debugger: Search scratchpad/ram/vram consistently. * GE Debugger: Correct icon list cleanup on shutdown. * Add missing Config.h include * GE Debugger: Optimize slab lookup. * GE Debugger: Skip overhead without breakpoints. * Generate dockerfile in GHA * Vulkan: Avoid crash on double DeviceLost. * Android: Correct truncation behavior. * GE Debugger: Add filter to skip prim calls.- Update to version 1.12.3~git20220206: * Debugger: Avoid write tag lookup on small alloc. * Debugger: Use detailed meminfo with breakpoints. * GE Debugger: Allow modify/breakpoint on matrix. * GE Debugger: Cleanup right click on state. * GE Debugger: Allow setting secondary values. * GE Debugger: Add breakpoint icon in state. * GE Debugger: Cleanup vertex list redraw. * GE Debugger: Flush downcount when changing lists. * GE Debugger: Reduce playback command noise. * samplerjit: Precalculate DXT1/3/5 offsets. * Delete pauth_tool, useless since pauth keys known * samplerjit: Reduce DXT5 decode code size a bit.- Update to version 1.12.3~git20220201: * samplerjit: Optimize DXT calc using BMI2. * samplerjit: Avoid RCX gymanstics with BMI2. * samplerjit: Decode colors with BMI2. * softjit: Use PEXT to downsample colors. * softjit: Use BMI2 to speed up dst color loads. * softjit: Use BMI to simplify some masking. * x86jit: Use BMI2 for variable shifts. * softgpu: Avoid flush on END. * Remove double flush in GE_CMD_END * GPUCommon: Remove misleading flag FLUSHBEFORE. * HLE: Fix some type convert warnings. * Global: Reduce includes of common headers. * Global: Fix some type conversion warnings. * Common: Remove some unused files. * Core: Skip stats reset while stepping. * Display: Account for stepping time in graphs. * Display: Move core counters/stats to HW file. * Display: Move listeners to separate HW file. * Headless: Improve total test time on Windows. * Headless: Improve test init time. * Debugger: Encourage better meminfo accounting. * Build: Fix Windows unit tests. * Kernel: Adjust timings of LwMutex and EventFlag. * Build: Ignore nullable completeness on Android. * UI: Cleanup some reference warnings. * samplerjit: Fix non-shared CLUT on Linux. * samplerjit: Validate compile in a unit test. * samplerjit: Correct level lookup in nearest. * samplerjit: Fix reg corruption in DXT funcs. * samplerjit: Compile sampler funcs together. * softjit: Add tests for compile success. * Common: Avoid assert hang in CI. * softjit: Fix stencil bug running out of regs. * Build: Enable ccache for GitHub Actions.- Update to version 1.12.3~git20220130: * Build: Run unit tests after build. * Headless: Remove stack corruption workaround. * Headless: Add flag to run failing tests. * unittest: Skip D3D shader compile on non-Windows. * unittest: Correct Windows-specific Path tests. * softgpu: Skip new CLUT if identical. * unittest: Use more consistent output executable. * unittest: Correct failing unit test. * samplerjit: Reduce register waste. * samplerjit: Avoid frac uv transfer to gen regs. * Added another attempt to detect GETIFADDRS availability, which is more common on newer OS * We might be missing the SIOCGIFADDR * Added logs for error within SIOCGIFCONF section. * Change a confusing variable naming * Expose 2xBRZ texture filter option. * Mp3: Delay low level init. * Mp3: Output PCM data using even/odd buffer slot. * Mp3: Allow decode with NULL out pointer. * Mp3: Cleanup AuCtx constructor. * Kernel: Fail threads with invalid priority. * UWP buildfix * Quick hack attempt around build failures * Vulkan: Add support for listing all the available surface formats in system info.- Update to version 1.12.3~git20220126: * Rtc: Fix day of week stack bounds issue. * Savedata: Fix indeterminate timing of field update. * Ge: Fix sceGeBreak error case. * softgpu: Cull no-pos and through s8 pos verts. * softgpu: Fix cull in throughmode. * samplerjit: Reduce transfers in nearest texel calc. * samplerjit: Better vectorize UV linear calc. * samplerjit: Reuse XMM reg for sizes. * softgpu: Fix pixel ID for invalid blend factors. * softjit: Fix src blend factor handling. * GE Debugger: Allow GPU stepping while CPU stepping. * GPU: Allow relative jumps and calls. * GPU: Log and report when region1 is non-zero. * Common: Fix conversion of 4444 to BGRA. * softgpu: Correct clear mode dither. * softgpu: Correct simple rectangles with mipmaps. * samplerjit: Optimize texenv blending a bit. * softgpu: Correct UV rotation for transformed rects. * softgpu: Reuse transform state. * softgpu: Add dirty flags for rasterization state. * softgpu: Use dirty flags for render overlap checks. * softgpu: Fix state race on screen offset. * softgpu: Add a table and initial dirty flags.- Update to version 1.12.3~git20220123: * GE Debugger: Add option to auto flush. * GE Debugger: Cut down on primary buttons. * GE Debugger: Add a menu to the GE debugger window. * samplerjit: Oops, forgot about 64 unpack. * samplerjit: Fix Linux stack corruption. * Build: Fix some minor warnings. * Headless: Return an exit code on test failure. * Common: Print assert failures to stderr. * softgpu: Define constexpr var for older C++. * x86jit: Check CALL dist for safe memory funcs. * samplerjit: Fix some Linux register issues. * Headless: Fix font tests on Linux. * Build: Speed up macOS actions build a bit. * Headless: Update passing tests. * Clean up hardware tasseletion setting * Show the software rendering option on all platforms * softgpu: Avoid flush texturing from stride. * softgpu: Flush framebuf only on change. * softgpu: Remove bin asserts. * softgpu: Use persistent bin task state. * softgpu: Pack vertexdata a bit better. * Reducing MatchingEvents processing delays. Fixes timing issue on a few games (Super Pocket Tennis, Thrillville Off the Rails, Lord of Arcana, Gundam: Senjou No Kizuna Portable, StarWars The Force Unleashed) * Report sceNetAdhocMatchingInit to find out a list of games that use AdhocMatching library to be tested with. * Discard HELLO Events when in the middle of Joining * Updated notifyMatchingHandler comments * Updated MatchingArgs comment * Added comment related to EVENT_HELLO * samplerjit: Reduce prolog/epilog spill. * softjit: Simplify constant writes. * softjit: Centralize some common funcs from sampler. * softjit: Switch to constant pool. * samplerjit: Simplify AVX shift-copies. * UI: Reset ZIP install errors for new ZIPs. * softgpu: Guide more SSE light factor handling. * softgpu: Simplify mask check. * softgpu: Reduce copying during clipping. * Debugger: Fix crash in software renderer. * softgpu: Fix block transfer flush detection. * softgpu: Use SSE in lighting param computation. * softgpu: Precompute some of screen space multiply. * softpu: Premultiply matrix transforms. * softgpu: Precompute state for vertex transform. * softgpu: Correct texsize flush annotation. * softgpu: Heuristic to avoid over-draining. * softgpu: Reduce wasted memory. * softgpu: Precompute lighting parameters. * softgpu: Tune some queue sizes for perf. * softgpu: Expose flush reasons/times in debug stats. * softgpu: Reduce flushing for smaller textures. * softgpu: Flush block xfer only on overlap too. * softgpu: Decorate some stats for flushes. * softgpu: Avoid texture/CLUT flush unless overlap. * softgpu: Flush on offset changes. * softgpu: Track CLUTs as states for binning. * softgpu: Allow binning across prim calls. * softgpu: Fix alpha blend with one/zero. * softgpu: Correct dither matrix lookup. * softgpu: Correct logic op state update. * softgpu: Fix off-by-one size limit on bin queues. * softgpu: Tune queue push/pop to reduce overhead. * Debugger: Avoid flushing meminfo on write lookup. * softgpu: Use cached state for screen offset. * softgpu: Cache CLUT params in sampler state. * softgpu: Move texenv color into sampler state. * softgpu: Move tex size to cached state. * softgpu: Remove z from DrawingCoords. * softgpu: Move c++ tex func to sampler. * softgpu: Use cached sampler state outside jit. * softgpu: Cache line drawing state. * softgpu: Use cached state for clear write mask. * softgpu: Move fixed blend factor to draw pix state. * softgpu: Cache colortest params in draw pix state. * softgpu: Cache alpha/stencil test masks in state. * softgpu: Cache logicOp in draw pixel state. * softgpu: Use cached write mask in draw pixel. * softgpu: Cache minz/maxz in draw pixel state. * softgpu: Cache strides in draw pixel state. * softgpu: Cache fog color draw pixel state. * softgpu: Remove disable of cached pixel state. * softgpu: Avoid double calculating screenpos. * softgpu: Cleanup push/pop atomic handling. * softgpu: Remove old task. * softgpu: Stop storing model pos. * softgpu: Stop storing normal/worldnormal/worldpos. * softgpu: Enqueue batches of prims when binning. * softgpu: Adjust binning thresholds. * softgpu: Avoid thread ordering hazard. * softgpu: Move threading into BinManager. * softgpu: Handle scissor/range in BinManager. * softgpu: Add class to manage and enqueue for bins. * Fix buffer overflow issue on GameMode. * GameMode Scheduler should only runs when there are active Master. * Prevent creating another GameMode Master, since we don't support more than one Master data, and there is no ID related to Master. * Fix an issue where more than one GameMode Scheduler can be scheduled. * Fix an issue where sceNetAdhocGameModeCreateReplica blocked current thread for initial sync while Master data hasn't been created yet. * Debugger: Cache list PC for softgpu tagging. * softgpu: Centralize more prim drawing state. * Updated sceNetAdhocGameModeUpdateReplica (Fix Bomberman Panic Bomber) * Fix invalid argument issue of sceNetAdhocPtpAccept on Bomberman Panic Bomber. * softgpu: Move tex filter setting check to state. * softgpu: Move texture addresses to prim state. * softgpu: Prepare more state per prim call. * softgpu: Use func IDs instead of gstate more. * softgpu: Compute func IDs once per batch of verts. * Avoid confusion for translator * Add files via upload * Vulkan: Avoid crash on bad shader. * softgpu: Output normals to GE debugger. * Use System_GetPropertyInt to report the keyboard layout * UI: Mention SDL in the credits when it's being used alongside Qt * Update pt_BR.ini * softgpu: Correct decal doubling without alpha. * samplerjit: Skip processing alpha if unused. * Add files via upload * samplerjit: Fix alpha for 565 in linear lookup.- Update to version 1.12.3~git20220109: * softgpu: Skip threading when rendering to self. * softgpu: Draw top left of rectangles first. * GPU: Allow gcc/clang/icc runtime SSE4 usage. * UI: Use comparison screenshot as frame dump icon. * Headless: Fix compare of smaller buffers. * softgpu: Use some SSE4 in triangle interpolation. * softgpu: Limit minX/maxX per line. * softgpu: Avoid rsqrt path for normals. * softgpu: Clarify internal matrix multiply usage. * Remove QWEmct from credits as requested * softgpu: Retain floats in diffuse/specular. * softgpu: Cleanup -NAN and diffuse factor. * softgpu: Correct NAN spotlight exponent/direction. * softgpu: Correct handling of NAN attenuation. * softgpu: More closely match PSP light rounding. * softgpu: Reuse SSE/NEON matrix code. * softgpu: Use common SIMD matrix multiplies. * softgpu: Separate calculation of S/T. * UI: Fix some sign/size comparison warnings. * samplerjit: Fix standard bufw check. * samplerjit: Fix DXT compilation. * samplerjit: Correct linear compile failure. * softgpu: Correct mirroring in fastpath+nearest. * softgpu: Improve usage of SSE for lighting. * softjit: Keep mip S/T calc in SIMD. * softjit: Use RIP access in color/depth off. * softjit: Optimize depth range checks. * softjit: Add describes here too. * samplerjit: Remove old linear nearest paths. * samplerjit: Avoid gather if overread could crash. * samplerjit: Use VPGATHERDD for all types. * samplerjit: Apply gather lookup to all CLUT4. * samplerjit: Use VPGATHERDD for simple CLUT4 loads. * samplerjit: Avoid a couple more copies in AVX. * softgpu: Skip sample lookup if masked. * softgpu: Stop specializing on miplevels. * softgpu: Separately profile verts and lighting. * samplerjit: Use nearest func in fast path too. * softjit: Avoid const temp registers. * sofjit: Correctly poison memory. * softjit: Small bloom optimization. * softjit: Optimize common case bloom blending. * softgpu: Add code for tracking GPU writes. * samplerjit: Decode colors in parallel. * softgpu: Reduce interpolation if not needed. * samplerjit: Implement nearest in jit. * samplerjit: Refactor and reuse constant pool. * samplerjit: Update nearest args, temp disable jit. * softjit: Small optimizations. * samplerjit: Create a separate fetch func. * samplerjit: Refactor sampler ID calculation. * softgpu: Correct off-by-one scissor mask. * softgpu: Cleanup min/max tri range handling. * GPU: Avoid spline crashes on bad data. * softgpu: Skip processing scissored triangles. * samplerjit: Correct wrong bufw at mip levels. * samplerjit: Oops, fix Linux mipmap handling. * PPGe: Disable dither in UI drawing. * softjit: Fix regcache error when clearing. * GPU: Fix bone matrix CALL opt corruption. * Debugger: Correct delayed symbol listbox updates. * samplerjit: Tiny dependency optimizations. * samplerjit: Small AVX optimization to modulate. * softgpu: Skip zero size triangles. * samplerjit: Use SSSE3/SSE4 in linear filtering. * x64jit: Add AVX2-only instructions. * x64jit: Add AVX-only instructions. * x64jit: Add AVX/AVX2 encodings. * samplerjit: Pass funcs as an argument. * samplerjit: Add an alternate profiling method. * samplerjit: Correct level lookup offset. * samplerjit: Minor SSE4 optimizations. * samplerjit: Set stackArgPos_ early. * samplerjit: Move texture function into jit. * samplerjit: Lookup both mip tex values. * samplerjit: Use regcache for linear filtering. * samplerjit: Calculate mip level U/V/offsets. * samplerjit: Take texptr/bufw as arrays. * samplerjit: Handle mipmap width/height in S/T calc. * samplerjit: Move S/T calculation into jit. * samplerjit: Add more bits for S/T, skip multiply. * softgpu: Correct non-SSE T clamp. * softgpu: Reduce mipmap fraction to 4 bits. * softgpu: Correct nearest filtering too. * softgpu: Remove no longer possible report. * softgpu: Make linear filtering more accurate. * samplerjit: Handle unswizzled offsets too. * samplerjit: Calculate texel byte offset as vector. * samplerjit: Blend linear using integers. * samplerjit: Accumulate results in an XMM. * samplerjit: Pass u/v coords as vector.- Update to version 1.12.3~git20211221: * Debugger: Don't try to hash invalid RAM. * Missing stdarg.h include * Vulkan: Update profiler formatting for this. * Make the Vulkan GPU log profiler a runtime developer setting. * Add format string support to Vulkan log-profiler * jit: Use a hash for invalidate/clear all. * Vulkan: Disable profiler by default again.- Update to version 1.12.3~git20211218: * Improve the check for "slow" GPUs (with regards to tex scaling). See #15238 * Path: Check for PSP case insensitively. * Vulkan: Be more restrictive about texture upscaling on "slow" devices.- Update to version 1.12.3~git20211214: * GPU: Remove explicit rect/line depth cull. * Fix text wrapping on PromptScreen by improving the layout * Vulkan: Don't generate mipmaps for huge textures (probably menu backgrounds). Other minor fixes. * Oops, accidentally enabled the logging GPU profiler by default. * Address feedback (preserve alpha-ignoring equality checks) * Minor fixes * Turn video upscaling off. * Optimize the xBRZ texture scaling shaders by 30% on Adreno, less on Mali * Add hardcoded bool toggle for upscaling video, fix log, remove a comment, minor opt * fmt * Add a 2x2 downsampled version of 4xBRZ as 2xBRZ (save memory bandwidth) * Make a copy of tex_4xbrz * Debugger: Debounce updates to disasm text. * Debugger: Never wait inactive on window update. * Debugger: Remove double debug window updates. * Debugger: Debounce list control updates. * Debugger: Fix crash on ill-timed breakpoint update. * Debugger: Debounce redraws using timers. * Bump gradle version again * Fixes when profiler is disabled. * Switch to macros to easily disable the new profiling. Add missing scope * Add a simple GPU profiler to profile individual events, rather than full passes. * Build: Correct AppleClang warning handling. * softjit: Fix a function arg template warning. * softjit: Fix an enum type comparion error. * Build: Avoid compiler flag warning. * Build: Fix some format truncation warnings. * interp: Correct vrndf2 range. * Vulkan: Ignore VMA nullability warnings. * UI: Clarify error message. * Build: Remove old-style android/assets/. * Split the atlas into three, well two, but two different cases for the fonts.- Update to version 1.12.3~git20211211: * softjit: Skip a common case CMP. * softjit: Throw away regs allocated in conditionals. * Name uniform buffers, add more asserts. Used this to track down the bug fixed in the previous commit. * Fix an ordering issue causing us to hit some asserts * Vulkan: Document lifetime for desc set pool. * Vulkan: Fix use-after-free on shutdown. * Vulkan: Use new desc sets in Draw and VulkanUtil. * Vulkan: Refactor common desc pool handling. * Vulkan: Avoid desc set error in tests. * samplerjit: Fix DXT1/DXT5 register releasing. * Vulkan is strict about scissor rect, so let's clamp centrally. * FramebufferManagerCommon: Fix some issues where currentRenderVfb_ could get out of sync. * Fix Tekken 5 Dark Resurrection Multiplayer * ThreadManager: Check for exchange failure. * Updated GetPtpStat * Updated GetPdpStat * Added a note regarding FIONREAD behavior on different platforms. * Discard PDP packets from an IP that can't be resolved to Player's MAC address (simple version) to prevent confusing the game, since the source MAC won't be updated and may contains invalid MAC. Added TODO to handle unresolvable packets properly. * Added another returned error code on PdpCreate * Allow Sending PDP to non-existing MAC address (except invalid mac address). Fixes an issue on NBA Ballers Rebound where players unable to enter Multiplayer Menu again after getting connection issue. * Vulkan: More scissor dimension checks. See #15207 * Vulkan: Correct the max level to generate mipmap calculation * Very minor logging improvement * Detect and specify the max available Vulkan version, up to 1.2. * (libretro) Force enable g_Config.bRenderDuplicateFrames + minor audio buffer tweaks * Use system headers when building with system miniupnpc * ThreadManager: Use separate pool for IO blocking. * ThreadManager: Make TaskType a property of a Task. * Android: Optimize content URI exists check. * softgpu: Correct alpha on add + invalid texfuncs. * softgpu: Match texenv blend texfunc accurately. * softgpu: Make decal tex func more accurate. * softgpu: Correct accuracy on fast path modulate. * softgpu: Correct accuracy of MODULATE texfunc. * (Libretro) Reimplement audio - * Move audio callback to the main thread (fixes the longstanding hang issues when using OpenGL) * 64ms on desktop isn't enough due to excess buffering going on in this emulator. Set default to 128ms instead. * Different audio approach is necessary due to the following: it sets a fixed framerate of 60, then sends either too many or too few audio samples per frame in order to force the frontend to run at the correct speed (.e.g. making the frontend run in slow motion for games that run at 30fps) - this is undesirable for libretro, we want a consistent amount of audio samples per batch. See further comments in libretro.cpp for more information * softgpu: Template away uncommon mip usage. * softgpu: Remove useless switch by UV gen mode. * softgpu: Avoid texlevel check when maxlevel is 0. * softgpu: Keep arguments in vectors for sampling. * Debugger: Reduce meminfo block check hazard. * Debugger: Speed up GetFunctionSize(). * samplerjit: Refactor nearest using reg cache. * Make CRT animation speed configurable- Update to version 1.12.3~git20211204: * Common: Correct shm_open() call. * Psmf: Check for invalid stream/EP map entry counts. * Vulkan: Cleanup pipeline var shadowing. * softjit: Make it an error to unlock a temp. * softjit: Get rid of pointless AGE00 tests. * softjit: Normalize some stencil test patterns. * softjit: Avoid tests for greater than 0. * softjit: Reduce ditherMatrix to 8-bit. * softjit: Oops, correct allocation typo. * Update Tagalog (tg_PH) with new translations by Gamemulatorer. Fixes #15189 * Display the graphics API on logoscreen on more platforms * ext: Update vulkan headers * ext: Allow use system glew with system ffmpeg (macOS) * ext: Support building with system miniUPnPc * cmake: Generate git-version.cpp in the build dir * ext/SPIRV-Cross-build: Update cmake version * softjit: Fix locked stencil reg. * headless: Enable softgpu jit for tests. * softjit: Centralize argument register allocation. * softjit: Fix fog typo causing locking bug. * jit: Lock around changes to the jit pointer. * softjit: Fix PixelFuncID arg on non-Windows x64. * Math3D: Allow construction from NEON vectors. * sofjit: Move common types to reg cache header. * softjit: Rename reg cache so it can be reused. * softjit: Cleanup, add other arch types to regcache. * softjit: Disallow use of register after unlock. * softjit: Simplify regcache usage as purpose only. * samplerjit: Allow disabling linear too, oops. * softjit: Decide stack offset on compile. * softjit: Ensure all regs are released. * softjit: Manage args in the register cache. * softjit: Fix disabled cache. * ThreadManager: Protect against teardown hang/leak. * ThreadManager: Lock notify on global queue add. * ThreadManager: Use atomic task optimistically. * jit: More atomically update pointer. * softjit: Reduce jit pool size a bit. * softjit: Precalculate write mask and dither. * softjit: Log any failed compiles. * softjit: Keep color 16-bit when useful. * softjit: Optimize common blend inverse alpha case. * softjit: Add alpha blending factors. * softjit: Cache zero vector to avoid recreating. * softjit: Prefer easier to refill regs. * softjit: Minor tweak to reg order for XCHG. * softjit: Implement min/max/absdiff blending. * softjit: Use SSE4.1 for fog and dither a bit. * softjit: Fix dithering bug. * softjit: Optimize typical alpha/depth test. * softjit: Apply logic ops. * softjit: Apply color write mask. * softjit: Refactor color conv to dedicated funcs. * softjit: Add config setting to enable/disable. * softjit: Initial color write. * softjit: Add dithering. * softjit: Keep x and y args for dither. * softjit: Depth and stencil testing. * softjit: Optimize some imm sizes. * softjit: Add helpers to get framebuf offsets. * softjit: Add levels of register locking. * softjit: Add color test. * softjit: Add alpha test. * softjit: Initial depthrange, fog. * softjit: Add register cache for softjit. * softjit: Switch to the __vectorcall convention. * softjit: Add stubbed DrawPixel for x64. * PPGe: Prevent special ampersand handling.- Update to version 1.12.3~git20211127: * SDL: Respect inflight frames setting in GL. * softgpu: Correct alpha blend subtract on negative. * softgpu: Use KEEP for any invalid stencil ops. * vertexjit: Optimize 5551 read a bit on x86/x64. * sofgpu: Disable alpha blend for invalid equations. * softgpu: Accurately alpha blend. * softgpu: Use 0 alpha for 565 alpha blending. * softgpu: Correct tagging of vertexjit. * softgpu: Fix stencil DECR on 5551. * softgpu: Use ALWAYS for alpha/depth test in clear. * Add review suggestion. * Destroy backbuffer when shutting down vulkan conext. * Build with correct preprocessor flag * Remove the old allocator visualizer. Keep the setting but hide it. Other feedback * Buildfixes * Fix bugs in deletion. Delete redundant functions. * Switch framebuffers to use VMA for allocation as well * Convert the PushBuffer to use VMA. * Change the PushBuffer API a bit to not take explicit memory types. * Remove the VulkanDeviceAllocator * More integration, use VMA in VulkanTexture * Start integrating VMA * Add VMA to ext/ (AMD's Vulkan Memory Allocator) * Minor refactor * Comment improvement, restore accidental deletion * Add a hidden setting to turn off the shader cache, for shader compile performance work * softgpu: Fix PixelFuncID size. * Vulkan: Add a single background thread for pipeline creation * VulkanRenderManager: Add deferred pipeline creation (to get it off the CPU thread) * softgpu: Add func to tersely name pixel funcs. * softgpu: Template draw pixel on fb format. * softgpu: Move draw pixel code to separate file. * Vulkan: Fix crash on shutdown after device lost. * softgpu: Clamp and round fog by mantissa bits. * softgpu: Confirm mask doesn't hit stencil REPLACE. * softgpu: Force off alpha blend if uselessly on. * softgpu: Specialize sprite based on pixel func ID. * softgpu: Use pixel func ID to draw pixels. * softgpu: Add func to calculate pixel func ID.- Update to version 1.12.3~git20211120: * Threading: Remove a level of indirection from Promise and Mailbox. * On desktop, change an empty current directory to "/" on startup. * Prevent chat menu touch to fall throght * Fix crash on close content after cached GPU pointer cleanup. * Fix DPAD size calculation- Update to version 1.12.3~git20211115: * UI: Switch to font texture for debug stats. * softgpu: Clear by dividing out subpixel first. * softgpu: Add some comments and cleanup. * softgpu: Tune thread minimums better. * sfotgpu: Use threads to apply clears. * softgpu: Combine sliced rectangles. * softgpu: Split out rectangle path for combining. * softgpu: Fixup range cull for fans and fast path. * softgpu: Fast path rectangles as fans. * softgpu: Use range loops for sprite fast path. * Vulkan: Don't cache vulkan_ with draw context. * GPU: Cleanup some extra pointers in fb managers. * softgpu: Check flat z in fast path. * softgpu: Fast path triangles without textures. * Debugger: Fix crash on stepping/break. * softgpu: Fix leaked range flag on cull.- Update to version 1.12.3~git20211114: * Add shortcut for content_uri and native paths in CleanRecent. Saves 150ms. * Also delay-load the VFPU dialog, just because * Windows debugger: Load the dialogs on demand. * Common: UWP buildfix. * Buildfix * Use the "new" API SetThreadDescription to set thread names on Windows. * Last update (id_ID.ini) * Minor fixes * Update id_ID.ini * Update es_LA.ini * Update zh_CN.ini * Update id_ID.ini * Id * id_ID.ini * Display: Prevent lock around listener calls. * Update *id_ID.ini* and some fixes * On Android 11 and later, let's not fallback to OpenGL at all. * Add tip to Lazy texture caching button. Replaces #14183 * softgpu: Correct scissor for pixel centers. * Headless: Generate a difference highlighting png. * Headless: Move screenshot compare to class. * Headless: Fix ppdmp compare. * Remove ARM Mali blacklisting for 4xBRZ, works now * Remove unused variable * Comment fix, remove assert * Remove support for 16-bit textures from the upscaling shader, to shorten it for benefit of mobile GPUs * Fix edge conditions in 4xXBZR * Speed up the 4xBRZ upscaler with 16x and the MMPX one with 4x by not doing redundant work * Switch texture scaling shaders to a fixed scale model, preparing for the next change. * Remove the copy-compute-shader path * SDL: Read assets from Resources on macOS like on iOS * UI: Support a second texture for just fonts.- Update to version 1.12.3~git20211106: * GLES: Explicitly enable ARB_cull_distance. * Update (id_ID.ini) translation * Update CMakeLists.txt * Update CMakeLists.txt & zh_CN.ini * softgpu: Fix depth cull in softgpu. * softgpu: Clip full weighted Z without truncating. * Remove the vertex cache from the OpenGL backend. * softgpu: Improve accuracy of line drawing. * Headless: Indicate HAS_DISPLAY=0. * GE Debugger: Record until some drawing. * Fix zimtool compilation. * GPU: Sort line verts to correct bias. * New update translation id_ID.ini * Update id_ID.ini * Build: Add missing bundle identifier to macOS builds * Lang: Fix some Indonesian strings. * Lang: Fix CRC value formatting in id_ID and pt_BR. * Lang: Indonesian translation. * GPU: Keep diagonal lines the same width. * Vulkan: Remove wide line handling. * GPU: Expand lines to triangles. * GPU: Correct point width/height. * Vulkan: Disable large points feature. * GPU: Expand points into triangles for higher res. * GPU: Refactor out rectangle expansion. * GPU: Skip cull for lines and points. * vmulq_laneq_f32 not supported on ARM32 * GPU: Cleanup comments on swtranform cull. * Optimize the rotation a bit (limit to VK/D3D11, mat2 instead of mat4) * NEON/SSE-optimize some matrix multiplications used by software transform * Sneak in a gradle bump * Don't forget to check for bufferedRendering before enabling screen rotation in the shader. * GPU: Implement cull behavior in sw transform. * GPU: Rename pos/uv w for clarity. * GPU: Correct w on immediate prim. * GPU: Remove buggy rectangle culling. * D3D11: Fix fog in software transform. * GPU: Correct software transform projection. * GPU: Add fog separately for swtransform verts. * GPU: Restore rotation handling in sw transform. * GPU: Process proj matrix in sw transform. * GPU: Set projection matrix per backend. * GPU: Update viewport params before sw transform. * GPU: Move swtransform flippedY to params.- Update to version 1.12.3~git20211029: * Build: allow using system zstd library * GPU: Fix missing newline in shader. * Make sure to not leave cull distance uninitialized in other paths, if we do write to it in some path. * GLES: Skip assert if no buffer. * Fix analog resize * Replacement: Allow starting a texture at budget. * Replacement: Correct budget on later frames. * Replacement: Add ini setting to disable pop-in. * Replacement: Tweak some thread safety. * Replacement: Ensurely orderly stop on reset. * Replacement: Use a thread to load tex replacements. * Replacement: Avoid rebuild until ready. * Replacement: Avoid clash with X define. * Replacement: Centralize lookup logic. * Replacement: Delay load texture data. * Replacement: Purge old cached decoded textures. * Replacement: Add structure for delayed loading.- Update to version 1.12.3~git20211024: * Debugger: Add reason to cpu.stepping event. * Debugger: Track reason for entering stepping.- Update to version 1.12.3~git20211023: * GPU: Allow range cull on Mali/etc. * Core: Fix unused variable warning. * Update ffmpeg submodule with new linux arm64 build compiled with -pic * GPU: Enable new guardband culling again. * Compat: Ignore DisableRangeCulling with clip/cull. * Path: Avoid adding a double slash from root. * Adhoc: Drop useless pointer check * Update Italian (it_IT) translation, thanks Vecna * macOS: Correct open memstick with space. * UI: Correct filtering message without keyboard. * UI: Add more keyboard sysprop checks. * libretro: Expose bool system properties. * UI: Add a sysprop for if the device has a keyboard. * UI: Add search filtering to settings. * UI: Add a way to disable tabs in tab strips. * UI: Add game settings tabs in a consistent way. * Debugger: Add APIs for GPU stats. * Core: Allow forcing debug statistics collection. * Display: Allow threadsafe listeners. * Debugger: Add initial GPU stats shell. * UI: Add button to show memstick folder. * Windows: Switch to preferred file selection method. * macOS: Allow opening game folder. * Qt: Allow opening game folder. * We don't use primitiveRestart for anything, let's not enable it. It has costs on some hardware. * More best-practices adjustments * Ran the "Vulkan best practices" layer, fixed some stuff.- Update to version 1.12.3~git20211019: * Update version to 1.12.3 * Update README.md for 1.12.3 * CwCheat: Remove assert on TempAR type codes. Seems weird that we had this. * HLE: Add a few syscall names. * Update Turkish translation (tr_TR), thanks Kishira Darken. * compat.ini: Add Valkyrie Profile: Lenneth to [MpegAvcWarmUp], works around ending crash. * GPU: Blit framebuf depth on create too. * GPU: Refactor framebuffer depth blit for reuse. * GPU: Fix matrix uvgen in software transform. * Windows: Pause from menu shouldn't affect Break. * GLES: Re-enable vertex cache. * Io: Remove setting to disable I/O on thread. * Reporting: Require I/O on thread to be on. * UI: Remove I/O on thread setting. * lang: Cleanup outdated translation key. * Display: Remove frameskip fast-forward mode. * GLES: Support GL_APPLE_clip_distance too. * GPU: Support clip and cull distances separately. * GPU: Move Z/W equal hack to bugs from supports. * GPU: Split clip and cull caps. * iOS: Buildfix bad GLES headers. * D3D11: Support vertex clip/cull planes. * D3D11: Correct clearing samplers. * Vulkan: Cull verts fully outside depth. * UI: Clear textures on Begin. * GLES: Enable/disable clip distance 0. * GLES: Check clip/cull distance support. * Vulkan: Use clip distance only if supported. * Vulkan: Add negative Z clipping. * GPU: Correct depth handling for guardband. * GPU: Verify throughmode for clears/rects. * GPU: Cull rectangles more when depth clamp off. * GPU: Cull rectangles outside valid Z. * Update target Android version from 11 to 12. (API 30 to 31).- Update to version 1.12.2~git20211013: * Common: Remove MakeUnique.h. * Retraducción * Clear legacy flags * Fix macOS 10.8~10.15 run compatibility * Audio: Correct protection against time skew. * Update version to 1.12.2 * Update README.md for 1.12.2 * Add input device debug info to touchscreen test screen * compat.ini: Add DBZ Tenkaichi Tag Team to [ClearToRam], see issue #14283 * Android: Prioritize PAD devices.- Update to version 1.12.1~git20211009: * Audio: Protect against time skew. * Audio: Cleanup buffer wrap code. * Update version for 1.12.1 * Update README.md for 1.12.1- Update to version 1.12~git20211008: * Consistent sampler modes in UI to make Mali happy * Fix an assortment of minor VK barrier bugs in mostly texture upload * Mip generation: Transition the correct mipmap after blit. * More checks in ParamSFO reader. Only problem left is that the strings are null terminated and can walk off the buffer. * Replaced textures: Don't leak handles on failure, check allocation success * UI: Disable focus movement on game start. * compat.ini: Add Street Riders to [DisableRangeCulling]. * compat.ini: Add NOVA to [DisableRangeCulling]. * Debugger: Keep pop up menus to ContextMenu only. * Debugger: Centralize context menu handling. * UI: Delay between successive mapping in controls. * Draw: Atomically release objects. * Set texture clamp mode for UI drawing. Fixes #14977, hopefully without breaking anything else.. * Add link to Chinese multiplayer wiki page. * Paper over a race condition slightly better. Really need to redo sync here. * Add sanity check to DirectoryFileHandle::Read * Avoid throwing exceptions on bad post shader float parameters * Sanity check string lengths in save state code * Add some basic sanity checks to ParamSFO reader (could add more) * Android: Catch some exceptions- Update to version 1.12~git20211007: * Debugger: Fix submenu offsets from removing unused. * Vulkan: Handle desc set allocation failure better. * Update AndroidManifest.xml for 1.12 * Fix brackets * Add missing link * More tweaks * Force texture scaling away from the old Auto setting. Some Swedish translation. * KAGE-008's Spanish update * UI: Keep buttons at bottom for savedata. * UI: Add scroll to savedata viewer for long descs. * README: Cleanup duplicates and improve tense. * Windows: Remove UI for auto texture scaling. * Qt: Remove auto texture scaling option. * libretro: Remove auto texture scaling option. * Vulkan: Rework mipmap generation and its image barrier/layout handling. * Fix a couple of typo * Update script to remove old link * Remove the "Auto" texture scale factor. It's a performance trap and not really useful. * Move some old news to history.md * Update script to be more flexible * README.md updates, reorg * Update README.md for 1.12 * Workaround to prevent some games from not retrying to connect on non-Windows system. This will also make a more cross-platform behavior on Windows/Linux/BSD * Minor changes * Remove deprecated jcenter() from build.gradle, replace with mavenCentral() * Hide "What's This"? button on Android TV - no browser anyway * Config: Correct cardboard setting ini load. * Fix bug in deleting of directories in memory stick move. Also improve progress reporting. * Fix small mistake in Choice layout with image * Show text on the Browse button * Minor warning fix * Force off the VSync setting on Android (it wasn't actually used right). * Add 4k support to uwp version on xbox * Display: Avoid skipping flips at 60 FPS. * Update zh_CN.ini * Windows: Update copyright year. * Debugger: Implement goto in disasm for memory view. * Windows: Remove some unused constants. * Windows: Remove some old and outdated files. * An attempt to implement AdhocDiscover (can only Cancel the progress for now)- Update to version 1.11.3~git20211002: * compat.ini: Add Field Commander to MpegAvcWarmUp.- Update to version 1.11.3~git20211001: * compat.ini: Add Digimon World Re:Digitize to DisableRangeCulling * softgpu: Allow end coordinate at bounds. * softgpu: Avoid fast path for clamp/wrap cases. * compat.ini: Add Megaman Maverick Hunter X to IntraVRAM... and RequireBlockTransfer. * Set compat.ini option DisableFirstFrameReadback for Socom Fireteam Bravo 3. See #11814 * Add a crude way to blacklist post/texture shaders from certain vendors. * Increase few column width for long translation, make control binding a bit taller * Updated translation * UI: Fix Game ID with insets on left side. * oops need to typecast metasocket * Changing most frequently used global vars to atomic to avoid possible multi-threading issue on friendFinder thread which communicates with AdhocServer in background. PS: There are more global vars being used here (too many actually), so we should find a better approach in the future (ie. using PSPThread instead). * Fix threading issue when exiting PPSSPP due to unjoined AdhocServer thread when AdhocServer failed to bind the socket and exited the thread early. * Prevent some games (ie. DBZ SB2) from repeatedly trying to Disconnect Adhocctl when not connected to AdhocServer. * UI: Remove scroll to top on size change. * UI: Keep scroll position on async load. * UI: Have scroll views directly remember their pos. * UI: Cleanup another header misuse. * UI: Use a proper view for touch control borders. * UI: Allow touch control editor buttons to grow. * Remove .s suffix from vwbn disassembly * UI: Allow cancel mapped to a letter in chat. * Debugger: Add web debugger to build packaging. * Debugger: Add web debugger in assets. * Debugger: Serve local web debugger from assets. * UI: Fix game installer extension check. * UI: Fix measuring width constrained choices. * http: Fix timeout mid request. * Update zh_CN.ini * Update zh_CN.ini * Update zh_CN.ini * Update zh_CN.ini * Instance: add missing include after 1bace5558340- Update to version 1.11.3~git20210926: * Android: Create default folders in custom path. * UI: Handle newlines after ellipsis. * UI: Cleanup ellipsis more. * UI: Correct text wrap with shy or Unicode spaces. * UI: Add unit tests for text wrapping. * UI: Cleanup more ellipsis cases, refactor. * Fix disassembly of vcst * UI: Cleanup double ellipsis issues. * Windows: Improve rect measurement precision. * UI: Avoid math on calculated value width. * Android: Improve precision on text measure. * Fix disassembly of vmfvc and vmtvc * Fix text wrap edge case * UI: Grow chat button based on text width. * UI: Shrink value for all choice variants. * UI: Shrink value display if needed. * UI: Measure width of choice with values properly. * UI: Asynchronously update size and dates on sort. * UI: Cache save size on save buttons. * UI: Reduce IO in savedata manager sorting. * More ForceMax60FPS tweaks.. * Fix possible race condition issue when sending AdhocMatching data * Temporary fix to avoid a crash that happened due to trying to logs a syscall's argument when being Logged from another thread (AdhocMatchingInput thread) * Fix possible crash issue * Update zh_CN.ini * Don't need these strings anymore. Sorry those who spent time translating them :) * Use the structopt crate to add some nice subcommands to langtool. * Add vscode settings file for langtool (format-on-save, etc). * Split langtool into multiple source file. * Remove unused string and update en_US translation * Use icon rather than string for combo key setup * Also add the strings to the other languages. * Add some strings from th_TH to en_US that were missing in the latter * Update th_TH.ini * Fix Translation to Japanese. * Update zh_CN.ini * Update zh_CN.ini * Update zh_CN.ini * And another one * Fix another couple of translation mistakes from the big fixup * Fix another couple of translation screwups * lang: Remove outdated string * Use langtool to sync missing strings from en_US to all the other language files. * langtool: have functions both to delete and comment out unused lines. * Fix mistakes in en_US.ini * More fixes to langtool * Add permission to shm_open * Do not resolve Pro Adhoc Server address when WLAN is turned off * Update zh_CN.ini * Update zh_CN.ini * Fix dpad analog overlap interaction * Fix race condition issue on AdhocMatching * Add a bunch more missing strings to en_US.ini * Remove outdated string * Add a LOT of missing strings to en_US.ini, auto-found by checking thai against English. Thanks Saramagrean. Part 1/2 * langtool: Automatically comment out lines that are not present in en_US.ini. * Use langtool to automatically add missing MemStick section to lots of language inis. * langtool: Fix clippy warnings * langtool: Ignore comments when syncing lines * Remove unused string * Remove misplaced left-to-right-mark character in ar_AE.ini. * compat.ini ForceMax60Fps updates, thanks Gamemulatorer * Update zh_CN.ini * Compat: Remove duplicate entries. * Don't process the README.md * Handle BOM * Add little langtool for copying missing language ini strings * Remove superfluous line from ja_JP.ini * Fix another translation key string * Fix and add some translation strings * Update th_TH.ini * Add italian translation * Move the What's this? translation to the Memstick section * UI: Add a bit of reporting in failure cases. * UI: Use OK instead of Confirm. * Fix typo * Revert a wrong change to Thai * Add Swedish translation of Memstick screen * Remove (GB) suffix from "Memory Stick size", it's now shown as a unit. * Preparations for translating MemStickScreen and related strings. * Browse -> OK. Align buttons. * More tweaks (spacing) * Style fix * Tweaks * Show the path to access PSP data through USB in the settings screen. * Remove "Change" from "Change Memory Stick Folder". Easier to read. * SEO optimization * Undo debug hack * Add image support to UI::Choice. * Show the explanation below each point. * Implement the new MemStick screen experience (rough cut) * New settings icon for later. Derived from the Material Design one. * Radio button assets * Make a little info icon for later. Not in atlas yet. * Always show Help button on memstick screen * Use the new icons * Shrink the folder icons slightly. Not updating atlas right now. * Fix the look of buttons with images. Use one. * Didn't mean to push this * Move the memstick options higher on the System tab. Other minor tweaks * Show the logo screen before the memstick screen on first boot with scoped storage * Some file move process tweaks * Add Help button to MemstickScreen, pointing at a guide on the website. * MemstickScreen: Shrink the right column to leave more space * HLE: Detect video buffer copies. * TexCache: Avoid hashing videos at all in lazy mode. * TexCache: Prevent lazy cache on video textures. * Fix garbled log output in Xcode terminal * Handle Xcode-specific debug arguments on startup * Remove accidental duplicate file * Keep tracks of the sender/source port on GameMode for further communication, in case it was remapped by router or ISP for some reason. * Shows a warning when detecting a different sender/source port on GameMode. * Minor change to AdhocMatching's senderport type * vertexjit: Correct morph flag alpha check assert. * Replacement: Fix a mistake in ZIM texture loading. * Square shape for combo button. Additional shapes (folder_open, warning) too. * Common: Use 0 as unknown size in GetFileSize(). * Fix atlas tool on linux * Keeping track the source port of received data on AdhocMatching to be used for further communication, in the case the port was re-mapped for some reason. * Show a warning if other players detected to have their port being re-mapped, where communication with them might have an issue. * Don't ignores unknown sender/source port, due to a possibility of port re-mapping done by router or ISP the source port might be different. * Minor change to AdhocMatching logging * Little fix to logo screen- Update to version 1.11.3~git20210917: * Try to workaround git tag fetch failure * Update SDL and try faster commit history fetch * Dialog: Allow termination of access thread at ret. * Silence submodule fetch error screaming * Switch to submodules and fix release version generation * Drop bundled SDL2 for macOS * Dialog: Try to recover on double init, report. * Include macOS name in the zip archive * Fix git describe not fetching version tag * Qt as well * Fix chat here position * Fix jumpy resolve while typing * UI: Oops, remove silly mistake. * Windows: Disable auto-enable chat on Ctrl-C. * UI: When enabling chat, recreate views. * GPU: Default vertex cache to off. * Vulkan: Fix faster alt speed with vsync. * Vulkan: Skip flips, not draw, for vsync unthrottle. * Net: Fix various chat threading hazards. * UI: Decouple new chat display and tracking logic. * UI: Track chat log changes more clearly. * Fix freezing issue during GameMode initialization on some games (ie. Hammerin' Hero) * Unix: Use shm_open in case not /dev/shm/. * Fix Socket error 10014 on Windows when hosting a game of Vulcanus Seek and Destroy * Android: Fix UI background on scoped storage. * UI: Correct enable reporting setting resetting. * Font: Cleanup logging for invalid pointers. * Core: Fix some minor gcc warnings. * headless: Fix some Python warnings. * Allow drag over touch DPAD and avoid analog drag to trigger other button * Vulkan: Only force 32-bit if needed. * Vulkan: Expand 16-bit textures to generate mips. * UI: Update flags more correctly in chat. * UI: Cleanup input box for chat. * UI: Move the chat message box to just a view. * UI: Allow UI keys on emuscreen of focused. * TexCache: Correct confusing red/blue var names. * softgpu: Implement DXT5 in samplerx86. * it_IT translation update, thanks giona. * Add FAT support for macOS with automatic GitHub releases * softgpu: Implement DXT3 in samplerx86. * softgpu: Implement DXT1 decoding in samplerx86. * Update libMoltenVK.dylib to support M1 chips * softgpu: Decode DXT texels directly. * TexCache: Correct DXT5 alpha calculation. * Savedata: Respect IO timing method setting. * Edit psp screen a bit * Fix setting info on multi choice * Android: Avoid crash without ext dir. * Auto-fix case of manually specified paths. * Move FixPathCase to Common/File/Path * Fix weird linker problem * Remove another redundant check, comment fixes * SFO return value fix, oops * Wire inflight frames config setting to render managers. * Optimize away a couple of existence checks * Optimize ReadPSPFile (which should probably be replaced with ReadEntireFile anyway) * Minor gradle upgrade, why not * Optimize MetaFileSystem::ReadEntireFile * Feedback * Log the duration of directory size computations too * Add back the dir listing logging. Add hack to avoid confusing Wipeout :( * Fix the Android recursive size computation and hook it up. * Add metafilesystem hook to add optimized implementations of compute recursive directory size * Add untested function Android_ComputeRecursiveDirectorySize * Fix another GetFileInfo loop (GetFilesInDir now does return sizes) * Io: Assume a write may have happened on resume. * Io: Cache SAVEDATA usage between writes. * Cleanup * Also hide SHADERS directory from games * Optimize install data size calculation. * Optimize savedata size calculation * Cleanup * Hide directories games should not know about from them. * VK mip gen: Could end up with a zero dimension in the lowest mipmap, prevent that. * Vulkan: MSVC 2017 buildfix. * UI: Fix non-Android build error. * Add back the ability to manually specify a folder, on Android 9 and earlier. * Hide the folder selector for memstick directory on Android 9 and earlier. * Draw bullet points as circles for a consistent look regardless of system font. * Minor polish to MemStickScreen * Decouple Vulkan context object destruction from retroarch's ContextDestroy call * softgpu: Clip only on -Z, cull if entirely outside. * softgpu: Correct guardband cull behavior. * Support ScrollView for focus position * Moving Background * Vulkan scissor fix (validation errors). * Fix a couple sort comparators for the savedata screen * Keep track of focus position * Fix wave on different dps * More shortcut fixes * Set a couple flags on the ShortcutIntent * Avoid calling into C++ when creating game shortcuts. Use scoped storage-compatible file chooser when possible. * Valiant attempt to fix queryGameName * Fix error message * ThreadManager cleanups * Implement support for new file chooser on Android 11+. * Expose texture shader core option. * Add some antialiasing * Wave animation * Expose new texture filtering option and fix runtime changing texture upscale mode * Double binding fix * No longer need to specify build tools version, gradle now has a default. * Fix typo (and maybe a bug). * Round the location of single-pixel lines to the nearest pixel. * Bezier/Spline: Fix logical error (must flush buffered data before we modify submitType). * VK: Only autogenerate mipmaps for R8G8B8A8 format textures. * Add info check * Don't show CRC button when we can't get it * softgpu: Prevent pixel gaps when drawing sprites. * libretro: Fix typo. * Reporting: Calculate CRC for PSN games. * Core: Use FileBlockDevice for PBPs without an ISO. * libretro: Fix defaults for texture_scaling_level and inflight_frames * Review style fixes. * Expose inflight frames as core option. * Fix capitalization in core option labels. * Move core initialization code out of retro_load_game method * Do not fast forward by default. * Do not skip SwapBuffer() when skipDrawReason set. * softgpu: Avoid overflow infinite loop. * Fix windows menus for the new tex filtering options. * Add new texture filtering "Auto Max Quality" that tweaks texture filtering for best quality. * Update gradle again. * Fix opacity * Configurable analog head size- Update to version 1.11.3~git20210902: * interp: Prevent crash on bad lv.q or sv.q addr.- Update to version 1.11.3~git20210901: * Don't add VIRTKEY_TOGGLE_FULLSCREE in custom key list on mobile device- Update to version 1.11.3~git20210901: * Remove old ouya joystick prompt pngs from source_assets * UI: Fix save state scrollview height.- Update to version 1.11.3~git20210830: * [Libretro] Small core options cleanup + create a new git-version.cpp instead of appending stuff in it * Reuse translation for combo button as well * Reuse translation * Support virutal button in touch gesture * UI: Fix scrollview focus scroll before relayout. * UI: Fix refocus on no control change. * UI: Restore focus on PSP view as well. * UI: Refocus better on control mapping change. * UI: Fix focus persistence in control mapping. * UI: Handle WRAP_CONTENT in flexible scroll views. * UI: Allow scoll views to have specific height. * UI: Fix grids in ScrollViews and adjust gravity. * Handle vertex shader generation failures better. * Basic mappable gesture- Update to version 1.11.3~git20210829: * Debugger: Avoid infinite loop in disasm API. * KeyMap: Simplify UI updates. * UI: Try to keep button visible while mapping. * UI: Allow binding all typically buttons in a row. * UI: Allow rebinding the analog from PSP view. * UI: Allow mapping buttons from visual PSP display. * UI: Add a screen to visualize PSP controls.- Update to version 1.11.3~git20210829: * Increase the range of cardboard setting sliders to 150%. See #14768 * Hack the math better in cardboard VR mode, to avoid issues with very wide aspect ratios. * Experiment: Remove probably-redundant motionevent class check * No R2 on xbox controllers, remove redundant mapping. * Nonsensical to use the Shield pad map for Shield TV. * Tweak defaults some more (no L2 on xbox pads..). Minor code cleanup. * Common: Reduce some log levels. * Add additional autoconf layout for xbox pads on Android. Revert the normal pad layout. * Move keymap defaults to a separate file. Not exactly a clean separation though. * Android: More strict identification of keyboard events. * Fix bug with device IDs on Android, causing the on-screen back button to be misinterpreted. * Update th_TH.ini * Savedata: Use PARAM.SFO constant properly. * Debugger: Fix breakpoints on delay slots. * gason: Allow tagged pointers. * http: Specify expected mime types in downloads. * http: Add Accept header as a parameter in requests. * Store: Display the error code in case of error downloading the json. * Keyboard/gamepad navigation: Change the formula for scoring neighbors. * Fix navigating the analog stick calibration screen with just a gamepad * Bugfix * Android: Remove the old limitation of 3 registered input devices. * Auto-default Sony Bravia TVs to OpenGL. * Don't default to Vulkan on any 32-bit Android devices. * GameScreen: Minor logic cleanup, remove Calculate CRC button when not needed. * Remove unintended whitespace changes * Rename namespace to PPSSPP_VK, remove indentation * Make touch layout accurate * Prevent dlopen collisions between ppsspp_libretro.so and libvulkan.so * Allow no chat button and make quickchat settings disabled when chat is not enabled * Fix action button size * Improve touch control layout screen * Fix some comments and a string * Fix some bad translations (used Google Translate...) * Update translations for Unthrottle to Fast-forward * Rename Unthrottle to Fast-forward globally * Fix string comparison for hiding "Unknown" CPU name * (Libretro) Switch back to earlier base_width/base_height values * Set base_width/base_height to sane dimensions (480x272) * Dialog: Lock volatile when the access thread runs. * Ge: Add measured minimal timing for sceGeDrawSync. * HLE: Ignore flip time in syscall stats. * Dialog: Prevent reschedule on shutdown start. * Clean up a string from translations * Fix append mode through OpenCFile, fixing cheat import on scoped storage. * Dialog: Avoid crash with hacked dialog start. * Store: Make description focusable. * UI: Fix typo in using My Documents for data. * Change ffmpeg include headers priority to avoid collission with system ffmpeg * Fix layout opacity * Bump maxrecent default to 60. Don't show CPU name if we don't have one. * If it's a TV and VIRTKEY_PAUSE is not mapped to a pad control, pause on app switch. * Auto-pause on app switch. Will be made conditional in the next commit. * Cleanup * Improve default pad mapping for Android. Hide irrelevant options on Android TV. * Fix some old bugs where we overrode the device ID to 0 wrongly for back button * Narrow the mapping UI, making it a bit less uncomfortable to use. * Scoped storage: recognize "wt" and "rt" modes. Should fix the cheat.db issue * Cleanup * Fix savestate undo consistency * UI: Fix enable/disable of reporting outside game. * UI: Fix reset of alt speed options in settings. * Update ja_Jp.ini for Reverb volume * Thread: set names on BSDs after 062566b67cb0 * Thread: unbreak on BSDs after 50d9d7ea6f2a * Update ja_JP.ini * Sas: Add option to control reverb volume. * Do not call methods on gpu if it is null. Fixes #13412 (sans video rewind). (#14674) * Scoped storage japanese translation fix * UI: Use a UIState for exceptions. * SaveState: Allow loading save state in exception. * UI: Show a reset button on the crash screen. * Core: Ensure exception is reset on reset. * Fix Translation lang ja_JP.ini(File change) * UI: Avoid reselecting on page up at top. * UI: Refactor to reuse distance logic. * UI: Handle focus on page up/down. * UI: Change focus with home/end. * UI: Track page up/down and home/end as focus moves. * libpng: Patch out 100% opaque optimization. * GPU: Use an empty vertex buf for reinterpret. * Headless: Cleanup extraneous output. * Font: Match stingy selection per test. * Font: Limit max references to fonts. * Font: Delay only on first open of internal font. * Font: Reuse alloc when reopening internal fonts. * Windows: Avoid deprecated functions. * SaveState: Validate size matches measured. * Update th_TH.ini * Undo last save * Allow to disable right analog diagonal * Fix some mis-handling of single file URI. Fixes the Load... button. * Propagate errors from file identification upwards better. * If in legacy storage mode from an earlier install, we still might need to ask for permission. * Only pop up the config save error after main and settings screens. * SaveState: Show a warning if saved after savestate. * SaveState: Use default ZSTD compress level. * SaveState: Ask to include xxhash in frames. * SaveState: Add const for save compression. * Tweaks * Improve translatability of memstick screen * Wording fixes for PPSSPP Gold. * Fix indentation * Buildfix, bugfix * A bunch of small scoped storage UX improvements. * Address feedback * Minor improvements on Android 9/10. Let the user reset to root of storage. * Correct the cutoff for scoped storage. Android 9,10 (API 28,29) shouldn't use it. * Handle an empty path in the game browser. * When changing the PSP folder, move the files in a nice background process, showing progress. * Indentation fix * UI message cleanup * Address feedback * Android 28 was the wrong cutoff for oldschool permissions, 29 is correct. * Delete some left-behind lines * Basic flow of setting up and moving the PSP directory works now. * Get the new setup flow going, with a confirmation dialog etc. * Work on the new experience * Enable scoped storage enforcement on Android 11+. * Allow to invert context dimension for combo button * Add ULES00581 to compat.ini for MTX JIT hack * Use horizontal layout * Retraduciendo el archivo * Savestate load undo * D3D11: Use right state in flush before output. * Add savestate undo UI * cmake: use vendor-neutral GL implementation when available; fallback to legacy GL * Update libretro.cpp * GitHub: Update link for translation contribution. * GitHub: Switch to issue form templates. * Make tap to customize translatable * fix overlinking of OpenGL libraries * sceNetAdhoc: fix format specifier for debug log * Update es_ES.ini * Fix get CPU & CPU Brand * Fix ABI * Fix copied mips bugs * Add in bit length check * temporary riscv define fix * No CPU part for RISC-V * RISC-V CPU detect * Clean up unused event * Fix silly filesystem mounting bug introduced in #14638 * Add a missing java function (fix a little merge mistake) * Trim username on join as well * Detect CwCheat file UTF-8 BOM sequence and ignore it * Accept numpad enter as well * Fix further issues when the memstick dir is the PSP dir * Less "Fd x for content URI" logspam * Scoped storage: Make the home button simply go to the root of the current directory tree. * Two more functions * Convert four more functions to allow for error codes. * Change one storage function to use an error code. * Workaround for the /PSP path thing. Needs testing. * Add and hook up Android_MoveFile * Error code support preparations * Couple of minor things, crashfix on deserialization failure * Add support for FILE_APPEND. * Fix English language mapping after recent i18n additions. * Cleanup the ownership model in MetaFileSystem. * Fix lastModified, speed up Android_FileExists. Add Android_CopyFile (unused) * Use a simpler method that actually works to get free storage space from content URI. * Use a DocumentsContract query for single-file GetFileInfo too. * Greatly speed up content URI file listings by using DocumentContract queries. * log fix * OpenGL: Accept "AMD" as a vendor string for, well, AMD. * Fix for new bug in GetDirListing, oops * Forgot to pass the flags to GetFilesInDir to mimic the old behavior * Fix multiple issues preventing in-game saves from working. * Refactor DirectoryFileSystem::GetDirListing to use GetFilesInDir. * Fix assorted path issues * Remove unnecessary slash conversion * Add quick method to check file existence by content URI. * Fix date/time display for savestates * Add handling for Android content URIs to VFSReadFile, fixing savestate thumbnails. * Assorted directory fixes * Add ability to rename content URI files, fixing saving save states. * Hack around #14628. The icon is distorted but at least no crash. * Buildfix * Make GetFilesInDir fully-featured enough to use in DirectoryFileSystem * Warning fix * Just some variable initialization * better formatting * Need strtoull for 64-bit ulongs. * Add i18n inifile load on libretro startup * Audio settings: Move microphone list to the bottom. * Implement the option for auto audio devices switching for Windows too * BlockTransferAllowCreateFB: Remove Ys Seven (thanks LunaMoo). * Add contents of the assets/lang submodule to the main repo. * Remove lang from gitmodules * Added JIT hack for MTX MotoTrax EU (ported from US) * Add support for the PS5 DualSense controller * Better protection against broken viewports. * Revert "Make sure we don't try to set a negative viewport size." * Sort file listings from Android Content URIs. May help #14607 * Update assets/lang * Fix bug in homebrew store with files with "." in their names. * Unify the Vulkan format definitions / swizzles * Make the "Running Slow" warning a bit more lenient. * Update UI atlas * Customizable touch control (rebased with label) * Turn off all 16-bit formats if B5G6R5 format is not available. * Change the default port offset (#14599) * Revert "Merge pull request #14588 from hrydgard/vk-correct-565-format" * Minor cleanup * PathBrowser: Load all types of path asynchronously. Helps with slow scoped storage listings :/ * Path browser: Move special handling of Windows root directory to GetFilesInDir. * Minor cleanup * UWP buildfix * Reorder servers in GameSettingsScreen.cpp * Change default server in Config.cpp * WASAPI: Survive switching to a mono device. Fixes #14591 * HLSL depal simplification * Address feedback * Android buildfix * Implement basic depth texturing for OpenGL, requires depth clamp for now. * Support depth clamping in OpenGL where available. * Minor tweaks * Change some names, add scroll view for analog settings * Analog calibration: Tweak defaults, add reset buttton * Move the raw input data display to the touchscreen tester. Put the output to the left next to the controls. * Move auto-rotation code to ControlMapper so it can be checked using the new screen * Move the setting up a bit * Replace the "Test Analogs" screen with a new screen that lets you directly try the settings. * Hide the calls to ConvertAnalogStick inside ControlMapper. * Move the internal screen rotation compensation to after value mapping. * Merge __CtrlSetAnalogX/Y into one function. Always called together. * Move the joystick deadzone processing until after all the mapping. * Avoid a name collision from previous commit, to be safe. * Buildfix * Break out EmuScreen's key/axis inputs to ControlMapper.cpp/h * Disable analog stick deduplication (#14590) * Revert removal of Teardown call * Fix black screen on multiple libretro content loads. * Vulkan: Use the mandatory-support RGB565 format and not the opposite one. * Somewhat improved error checking in MemArena. * Avoid crash on early input events. * Refactor and unify analog input settings * Fix some Japanese characters position. * [Libretro] Fix analog left direction for FFT * Re-target to merged upstream changes * Swap submodule repo to fork * Include FakeJit in RISC-V build * UWP: Add a missing bounds check from TextDrawerWin32::DrawStringBitmap * Updated Logs on sceNetAdhocDiscover to find more info on games that use AdhocDiscover. * Update CMakeLists.txt * Minor changes to Wrapped Port detection. * Making sure not to get random port when original port is not zero. * Show the returned error code on sceNetAdhocctlCreate/Connect/Join on Debug Log * Implement thread debug id with the syscall instead of gettid(). * Add some PPSSPP's Japanese keyboard * An attempt at cleaning up the checks in ThreadUtil * Fix some Japanese characters position. * Store the OpenSL error in a global to avoid "No context" * Remove asserts from OpenSL init. Expose error inside audio settings * Try a slightly rougher fix for libretro builds * Possible fix for reported problem with gettid() in libretro * Android: Fix logical CPU count. * Core: Correct relocation error check. * Mailbox: Address feedback * Minor cleanups * Address feedback (except the mailbox refcount) * Make use of hyperthreading for worker threads. Still cap to 16 workers. * typo, unnecessary * Untested libretro fixes, misc * un-revert zstd * atomic include buildfix * Draw: Use constants for texture slots. * Simplifiy WaitableCounter. Fixes it on Mac/ARM. * Unittest buildfixes on mac * Kill the pesky goto * ParallelLoop: A bit smarter straggler handling. * Make the minimum items per thread explicit. Found some bugs, optional arguments are evil. * Autodetect number of threads (remove setting). Fix some bugs. * Postshader: Add uniform for delta since last frame. * Postshader: Let shaders use the previous frame. * Postshader: Correct sampler binding translation. * Draw: Assert sampler bindings are in valid ranges. * Font: Prevent a crash on invalid data. * Additional android buildfix * Android.mk buildfix * Fix memory leak * Change the policy for number of threads * Code cleanup * Remove experimental unused stuff. * Rename setCurrentThreadName to SetCurrentThreadName * Fix a way the threadmanager could get stuck. * Get rid of Executor.cpp/h. * Get rid of the PrioritizedWorkQueue. Instead just queue tasks on the ThreadManager. * GameInfoCache: Don't expose the workqueue. Was unused anyway. * Implement new thread manager, port stuff to it. * Minor cleanup * iOS: don't add a slash to the save path. * Io: Correct CreateFullPath() on Linux. * Io: Correct file open error code. * Default to something for now. * Reducing HLE delays on Adhoc-related syscalls that can be called more than once on a single frame. * Reducing HLE delays on socket-related syscalls since we are using real network which already have it's own overhead. * Minor changes to Adhoc's Verbose Logs returning error code. * Address more feedback * Only log slow file listings * Address more feedback, warning fix * Address a bunch of the feedback * Revert "Turn on scoped storage, for the purposes of testing on this branch." * Cleanup, layout fix on memory stick screen, reorder some settings * Split out AndroidStorage.cpp from android/jni/app-android.cpp, move to Common * Simple attempt at libretro buildfix, comment fix * UWP and Android buildfixes * Add missing files that .gitignore ignored... * Fix File::GetFileInfo for Content URIs. Can now load homebrew. * Add content URI support to LocalFileLoader, remove ContentUriFileLoader * Can now install to but not run homebrew from content uri * Add support for writing to file. Basics work now (having memstick on a content path) * Rewrite CreateFullPath to be agnostic of path format. * wip * Cleanup. Add a way to get very early log output on Android. * Route DirectoryFileSystem::Open to Android storage. * Remove more special casing of content URIs * Remove now-unnecessary special cases in PathBrowser * Remove CreateDirIn, not useful enough to keep. * Android content URI support in Path. * Remove AndroidStorageFileSystem. Not useful. * Delete a couple unused constructors of IOFile * Convert GetFileSize to use Path * Start work on supporting Android Content URIs in the FileUtil API. * Assorted plumbing. * More work on AndroidStorageFileSystem.cpp. Fix current directory getting reset. * Implement a "FileSystem" that wraps Android content storage. So far unused. * Implement file filters for Android in PathBrowser * Start experimenting with DocumentsContract (the thing DocumentFile wraps) * Android: Get things playable on scoped storage. Things work except the built-in file browser. * Turn on scoped storage, for the purposes of testing on this branch. * GPU: Clamp DXT texture memory bound. * Io: Don't confuse kernel object with meta handle. * Io: Allow opening tty0: for output. * Reporting: Move message report interface to Common. * Global: Tether wildcard git ignore rules. * Build: Disable NEON png on non-Android too. * Update .gitlab-ci.yml * Transform labels to lower case for armips * Disable NEON optimizations for libpng17 as a try to fix android texture replacement. * Tools: Correct AtlasTool in release builds. * iOS: Guard extended button selector access. * Debugger: Expose API to reset game. * Debugger: Fix websocket read silly mistake. * Debugger: Add replay execute/flush APIs. * Create GameMode's socket after Master and all Replicas have been created so we will know the largest buffer size. * UI: Correct screenshot paths. * Remove the ability to have multiple search paths for config. * Config: Remove the use of multiple search paths. * Remove createdPath_ from Config.cpp/h, seems pretty useless. * iOS: Correct Path assignment on init. * Rename g_Config.externalDirectory to defaultCurrentDirectory - since that's what it was. * Replay: Properly load RTC time on load file. * Debugger: Add stub API for replay functionality. * Update for translation. * Change github link * Update GameSettingsScreen.cpp * Add CRC32 calc * First pass on using Display KHR, needs proper init flags * Code style fix * Rewording * Little improvement * Improve tilt masking * Auto switch option * Allow tilt input on Z instead of X- Update to version 1.11.3~git20210527: * Common: Zero initialize readlink buffer. * Fix crash in HTTPServer when processing invalid request * Buildfix (debug mode) * Fix UI import cheat crash. * compat.ini: Disable range culling for Star Wars: Lethal Alliance. See #11551 * UI: Move to ScreenManager for mapping. * UI: Ignore duplicate axis events. * GibHub: Prompt build command in issue template. * Replacement: Validate ZIMs are 8888. * Tools: Make ZimTool able to use ZSTD/specify level. * Replacement: Allow loading ZIMs for replacements.- Update to version 1.11.3~git20210522: * Add gamecontrollerdb.txt entry for Switch controller. * SDL: Ignore commas in joystick names.- Update to version 1.11.3~git20210517: * Fix FixPathCase bug when constructing the full path. Swap the append order for / and the path component. * http: Show a more standard browser for remote. * http: Improve navigating up within http:// paths. * http: Fix remote disc browsing. * Update to libpng v1.7.0beta90. * Update zstd to 1.5.0. * Reporting: Cancel requests on shutdown.- Update to version 1.11.3~git20210516: * Show Port Offset value too when detecting Data coming from incorrect port. * Fix possible crash issue on blocking socket implementation. * Common: Prevent non_path IOFile usage. * Common: Use Path for GetExeDirectory(). * VFS: Use Path for DirectoryAssetReader. * Common: Use Path for GetFileSize(). * Config: Move data path settings to Paths. * Common: Remove File funcs redundant with Path. * Common: Remove File::GetFilename(). * SaveState: Use Path instead of strings. * UI: Correct fallback to screenshots for icons. * Debugger: Simplify symbol map filename build. * Common: Cleanup some Path constructions. * http: Use Path for the download file. * headless: Correct tests. * Revert gradle update (investigating build server issue) * Fix ZipAssetReader file listing. Fixes post shaders on Android * Fix crash in homebrew store after installing game * Fix path bug installing homebrew * Minor error message improvement * UWP iso-loading fix * GameManager: Base isDir off of zipped file name. * Additional feedback. * Remove unused function GetHostPath from filesystems * Address additional feedback * Address all the easy feedback. Some is left. * Clean up PathBrowser a bit * It never ends... * Use Path for fullName in dirlisting. Bugfixes. * Change Copy, Rename to use Path. Remove std::string version of Exists(). * Change parameter of DeleteDir and friends to Path * Load IniFile from Path * Introduce Path, start using it all over the place. * Update gradle again, for Android Studio 4.2 * CPUDetect: Ensure we never get zero cores. * Common: Fix read of special files with fake size. * FileUtil: check for errors after a fread() in ReadFileToString() * CPUDetect: saturate lower bound of CPU count to 1 * CPUDetect: prevent a divide-by-zero when ParseCPUList() fails * Common: Fix dir listing extension filter. * Common: Correct ReadFileToString() with no size. * UWP: Order includes, avoid file attrs to buildfix. * Update libzip to 1.7.3. * Common: Remove OpenCPPFile(). * CPUDetect: Avoid usage of OpenCPPFile(). * Common: Cleanup AssetReader extension filter. * Common: Update path browser extension handling. * Loaders: Look for PSP/GAME/ not /PSP/GAME/. * Loaders: Avoid fileToStart compare with "". * headless: Avoid empty string compares for mountIso. * Loaders: Remove fileLoader->Extension(). * Loaders: Rename Path() to GetPath(). * Cheats: Avoid OpenCPPFile for cheat import. * Cheats: Parse files using C files for Path compat. * headless: Avoid C++ files for Path support. * Windows: Avoid C++ files for consistency. * Core: Fix virtual disc index reading. * Common: Use C FILE for log file output. * Core: Remove some uses of OpenCPPFile. * Core: Leave delay slot when re-entering jit. * Ctrl: Apply analog limiter to real sticks too. * GPU: Minor cleanup duplicate header/conditions. * GPU: Correctly initialize HW tessellation support. * http: Add progress to missing request. * http: Skip processing response body for void. * Store: Retain cancel/speed on resize or switch. * Store: Show a rough speed indicator. * http: Always use/require progress in requests. * http: Always use non-blocking in http. * http: Remove timeoutless requests. * http: Separate out net buffer code from formatting. * Draw: Centralize funcs in ColorConv. * Draw: Optimize GL A1R5G5B5 conversion. * Common: Move ColorConv to a more appropriate place. * UWP: Ignore _CRT_SECURE_NO_WARNINGS in UI. * Common: Cleanup some logging warnings. * Usb: Stub sceUsbstorBootSetCapacity(). * http: Set a more useful user agent. * GameInfoCache: Don't expose the workqueue. * Common: Capitalize setCurrentThreadName(). * Common: Cleanup some mismatched indentation. * Common: Cleanup HTTPServer indentation. * Common: Get rid of Executor.cpp/h. * Core: Fix vrot cos(2) typo. * Savedata: Eat less cycles in savedata init. * Core: Correct thread dependency in relocations. * Common: FileUtil rename buildfix. * Common: UWP buildfix. * Buildfix, and more renaming while we're at it. * Buildfixes * Delete unused function, rename two more. * Merge GetFileInfo/GetFileDetails into GetFileInfo * Rename a couple of functions. * Move remaining FileUtil functions into the File namespace. * Compat: Remove single/double sincos path. * Windows: Reduce focus juggling on game start. * UI: Change background when dangerous settings on. * UI: Show cheats and plugins on exceptions. * Core: Special case 1/-1 for cosine. * Core: Strip off lower bits of sin/cos results. * Core: Switch to double precision VFPU sin/cos. * Core: Apply custom narrowing before VFPU sin/cos. * Core: Cleanup VFPU float bit handling. * unittest: Fix jit harness init. * Update assets/lang * Debugger: Try harder to validate UTF-8. * MemMap: Map 0xC0000000 into virtual memory. * MemMap: Cleanup memory mirror pointers. * Update version to 1.11.3 * GPU: Dirty texparams when cropping a self-copy. * Only consider the actual PPGe texture in kernel ram reliable.- Update to version 1.11.2~git20210422: * Debugger: Show string in status bar for li, etc. * Io: Prevent error on bad handle for DevType(). * Debugger: Prompt with previous search string. * Debugger: Mark ELF sections as suballocations. * Core: Correct ValidSize outside scratchpad. * Replacing the inconvenient prefix string for indentation with indent number. * Fix missing hex string at the last row when data size is a multiple of 16 bytes * GE Debugger: Keep dump generation deterministic. * Buildfixes * Update our miniupnp fork to upstream. * Reporting: Avoid generated homebrew IDs. * Oops * Don't even bother checking touch.id == 0 for closing popup windows. It's fine to close with any touch. * Remove now-redundant back button * Change pointer ID allocation on iOS. Fixes part of #14240 * UI: Load BG image properly on init. * Io: Calculate memory stick size on a thread. * Module: Speed up module unload. * Core: Init memory on multiple threads. * Module: Process relocations on threads. * Module: Process relocations using unchecked reads. * GE Debugger: Thread dedupe pushbuf lookups. * Common: Set a min size on threadpool work chunks. * Common: Allow threadpool size up to 16. * Umd: Fix thread wakeup. * Fix defaults for io threading and vertex cache * Remove duplicate from hardcoded settings * whitespace nit * Reorder core options * Further core options and defaults * Add defaults and core options * SaveState: Use memmove for the copy. * SaveState: Use SIMD to copy RAM faster. * SaveState: Copy RAM using threads. * Fix libretro build * jit: Increase the cycle cost of div.s. * jit: Increase the cycle cost of VFPU ops. * jit: Count delay slot cycles separately. * An attempt to detects getifaddrs availability properly * Changing warning log to info log on GetIPList * Added additional includes for GetIPList to work on Linux/Unix * Added warning log for testing purpose on GetIPList function * Rtc: Cleanup and simplify date struct handling. * Build: Recompress pngs using better zlib. * UI: Compress atlas metadata. * UI: Compress zim files with zstd. * UI: Load/save compressed atlas metadata. * UI: Add zstd to ZIM compression handling. * GE Debugger: Use zstd for save states. * SaveState: Switch to zstd. * Build: Add libzstd to build. * Enable save encryption to bring libreto in line with standalone configuration defaults. * UI: Remove extern global for UI message. * GPU: Stop using Off as terminator for postshaders. * Reporting: Add more info to libstubend error. * Module: Add a missing error return case. * Kernel: Define most reported missing kernel funcs. * GLES: Always use fragColor0 on GL 3.0+. * Reporting: Log more data about sceIoChStat(). * GPU: Avoid switch on uint. * Shaders: Set vert shaders to mediump by default. * GLES: Handle GLSL 1.30/1.40 better. * Dialog: Reset last status more consistently. * Dialog: Lock volatile on thread. * Dialog: Use a thread to init dialogs too. * Utility: Add a helper for the active dialog. * Utility: Update logging to new syntax for dialogs. * Utility: Move dialog classes to heap. * Debugger: Add APIs to set/list/search mem tags. * UI: Show more detailed load error messages. * GPU: Preconvert light vecs to Vec3f. * Disable spvremapper from glslang by default, we don't use it. * UI: Oops, prioritize PIC1, not PIC0. * Debugger: Provide memory mapping ranges. * Debugger: Return detail for breakpoints in macros. * Debugger: Add simple API to control tagging detail. * Update glslang_UWP.vcxproj * Forgot to return on invalid address, and moving reusable code out of HLE to prevent generating confusing logs * Ooops wrong way to do random range * minor fix * Randomize signal strength between 1%~99% since games like MGS:PW are using signal strength to determine the strength of the recruit * Fix stuck issue when scanning AP for Recruit on MGS:PW * UI: Don't include symbols in recent games anim. * UI: Centralize BG pic choosing a bit. * UI: Add BG animation for recent games. * UI: Flip Y analog direction based on config. * Windows: Normalize left and right analog stick. * UI: Log analog movement at a lower treshold. * Debugger: Maintain atrac data source info. * Debugger: Note atrac/sas reads from memory more. * Debugger: Tag savedata load and info. * Debugger: Memcheck and tag loading savedata to RAM. * Deflt: Correct available input length. * Deflt: Trigger memchecks / log source of writes. * Deflt: Cleanup and refactor to one common func. * Debugger: Note writes from debugger. * Dmac: Invalidate source data before copy. * Debugger: Include src tag in Memory::Memcpy. * Debugger: Include framebuffer in framebuf pack tag. * Debugger: Note GPU block transfer src as well. * Debugger: Include source tag in memcpys. * Debugger: Include filename in file IO memory tags. * Debugger: Make memory tags longer. * Debugger: Add menu to jump to begin/end of alloc. * Fix crashing issue when leaving a multiplayer game room #14337 * revert filename prefix for reducehashranges * Prevent flooding the logs with repeated attempts of Adding/Removing port mapping due to failure in the middle of UPnP initialization, as it needs to be reinitialized. * Attempts to reconnect to Adhoc Server only when Creating/Joining/Connecting to a group or Scanning for groups, instead of on 2 seconds interval. * Shows PSP error code as hex to be easier to find * Show the socket error code when failed to connect to adhoc server * Use a function to check for loopback address * UI: Fix savedata screen sorting. * fix: cleaned up my comment * feat: reduceHash configuration * Set ent_top/ent_size/stub_top/stub_size of SceModule * yet another gradle update * Fix Window size issue #14317 * PPGe: Remove ENTR hack, fix string concat. * Savedata: Always write the file list to the SFO. * Windows: Avoid segfault if memory except on boot. * Core: Limit scan for functions to end of valid RAM. * Core: Unbreak ValidSize limits. * PPGe: Interpret invalid UTF-8 sequences better. * PPGe: Apply overlong handling to wrapped text too. * Add missing rule in .gitlab-ci.yml * (Libretro/Gitlab) Add osx x64 target * Update .gitlab-ci.yml * Update lang submodule * Add a setting for choosing background animation. * Build: Simplify by always including FakeCPUDetect. * Build: Remove "fake" vertex decoder jit. * Add missing -DWITH_UPNP in a couple more places. * Windows: Enable UPNP again after 14304 * UTF-8 PPGe: Remove overlong encodings. Work around a weird issue in Ratchet & Clank. See issue #14297 * Fix build with USE_MINIUPNPC=OFF * VertexDecoderFake: Fix build * CMake: Fix build when ENABLE_SPVREMAPPER=OFF * CMake: Don't include X11 headers when compiling for FBDEV * Disable range culling in Asphalt 2. See #14299 * Module: Correctly handle modules with -1 entry. * Debugger: Ignore small memory info by default. * Fix performance regression from failing to optimize the new mem tracker.. * GitHub: Add multiple issue templates w/checklists. * Fix character's Side Space ltn0.pgf/ltn4.pgf * Android: Fix "Load..." to allow all file types. Change backported from PR #14232 * Fix FlatOut Head On multiplayer. * Debugger: Fix save state compat for slab info. * Debugger: Add header for strlen. * Further std::string removal * Remove static assert on struct size, we don't really care that much. * Buildfix * Remove std::string from memblockinfo * Additional indentation fix (forgot to save file) * Indentation fixes * Android: Add a dependency on the AndroidX appcompat library. * Fix Teenage Mutant Ninja Turtles Multiplayer. Alternatively, changing NET_SHUTDOWN_DELAY_US to 501000 usec or more will also works. * Warning fix, memleak fix * SDL: Fix use after free on shutdown * Only do the workaround in #14273 in Vulkan. May help #14280 * Some homebrew like Triple Triad tries to load flash0:/kd/pspnet*.prx. We better just lie. * Couple warning fixes. * GLSL vulkan: Specify the precision of function arguments. Works around #14269 * Work around crash in texture replacement. See #14252 * PipelineManagerVulkan: Log shader source when pipeline creation fails. * Fix bug in vertex shader generator. See #14260. * Switch: Workaround several missing toolchain defs. * Switch: Disable multi-instance tracking. * Allow polygon upscaling in Boku no Natsuyasumi series via IntraVRAMBlockTransferAllowCreateFB hack. * Update assets/lang * UI: Add search to savedata manager. * UI: Fix L/R tab navigation. * Build: Remove force include CMake line. * GPU: Ignore replacements for framebufs. * Build: More consistently avoid _M_ defines. * Build: Remove old ARM define. * Build: Remove MIPS define. * Build: Remove IOS define. * Build: Explicitly include ppsspp_config.h. * SaveState: Automatically fix duplicate event types. * Fix double space again * Fix typo * Module: Avoid logging bad pointers when no nids. * PPGe: Reload atlas on load state if different. * Only remove tha CMake line for Apple. * iOS: Try a different JIT detection method, thanks Halo-Michael. * Time to remove this line in CMakeLists.txt now. * Tweak to jit detection based on feedback to #14201 * Windows: Stop using 1234 default unused paths. * UI: Wrap long info items. * Core: Handle Disc ID a bit more consistently. * Core: Use homebrew disc IDs/titles when available. * Removing TCPNoDelay option from Networking Settings and always enable it to improve response time. * Replacing the deprecated gethostbyname function with getaddrinfo function to prevent getting deprecated warnings * Making sure there are no warnings related to deprecated inet_ntoa function * Mpeg: Allow full use of the buffer queue. * GPU: Dirty texparams when cropping a self-copy. * Windows: Add missing header for menu. * GPU: Normalize zero consistently in hw transform. * GE Debugger: Correct powered diffuse display. * GPU: Normalize 0 to 1 always in software lighting. * GPU: Look up replaced filtering options. * Replacement: Read in texture filtering overrides. * Windows: Setting for standard/debugger shortcuts. * Dialog: Use dialog type header more consistently. * Comment cleanup, allow file picker as far back as KitKat. * Address feedback, remove probably-misleading comment (had already fixed it). * Dialog: Respect accessThread priority on shutdown. * Screenshot: Provide common params properly. * HLE: Correct helper thread arg handling. * Dialog: Track type id on dialog class. * Savedata: Eat cycles in savedata shutdown start. * Fix exit "race", add persistable permissions * Android: Implement opening ISOs through a file picker and Storage Access Framework * Add a Storage tab to System Information. * mipsjit: Correct inheritance/compilation. * jit: Avoid using mips identifier directly. * UI: Require buttons always have text. * UI: Expose lists better in descriptions. * UI: Omit invisible views from viewgroup describe. * UI: Lock only if mutating views. * UI: Add text description for all views. * UI: Rename Describe() method for logging. * sceKernelFindModuleByName:Add delay for Fake module * Umd: Disallow waiting on status that can't occur. * Umd: Wake waiting threads on eject/insert. * Umd: Delay common wait drive stat funcs. - Disabled tests as per upstream suggestion - Exclude s390x from build as big endian architecture- Update to version 1.11.2~git20210224: * SaveState: Fix Snappy build error on older clang. * GPU: Revert stencil discard workaround change. * GPU: Update SPIRV-Cross to 2021-01-15. * Fix Size & Position jpn0.pgf/ltn0.pgf/ltn2.pgf/ltn4.pgf/ltn6.pgf * SaveState: Avoid some warnings in Snappy. * SaveState: Update to Snappy 453942b. * GPU: Use stencil discard workaround w/o depth test. * Mpeg: Correct stream buffer wrapping, cleanup. * (libretro) Fix static makefile * Don't even try the hack on iOS 14.4 * Add iOS version detection, turn off JIT on bootup if >= 14.3. * UnitTest: call InitVFPUSinCos() to set vfpu_* function pointers * CMake: enable testing * CMake: add TestShaderGenerators source back to unitTest * Mpeg: Set low latency flag for video decode. * SaveState: Delay restart handling until end frame. * SaveState: Start new events at end properly. * glslang: Update to latest glslang. * Making sure the port is bound to an interface when using bind with INADDR_ANY. Seems to fix #14130 * Minor changes. * Minor AdhocMatching changes. * Making sure src_addr and addrlen args of recvfrom is being set correctly upon use. * Shows a warning on Screen when detecting AdhocMatching data coming from an incorrect port, progressing any further may ended with connection issue. Players will need to wait until the port detected correctly before progressing any further (may takes a few more seconds) * Shows a warning log when bound port is shifted to negative port (may cause port issue when wrapped to 1024 or lower on android) * Hook open season * TexCache: Check for videos rendered as slices. * Module: Block a few network modules already HLE'd. * Debugger: Keep char *s for memchecks. * Mpeg: Assume 29.97 if bad frame rate returned. * Mpeg: Prevent sending flush packets to decode. * Atrac: Update to latest FFmpeg packet pump. * Update the discord-rpc submodule to the latest version. * iOS: Undo app ID change. * iOS: Fix multitouch tracking. * GPU: Rotate screenshot framebuffer per display. * Only consider the actual PPGe texture in kernel ram reliable. * SDL: Init profiler on SDL/Qt. * GPU: Correct more vertex/index endian swaps. * HLE: Swap endian in matrix multiply replacement. * Global: Correct many endian types and casts. * UWP: Disable SDLChecks, which error on deprecated. * Windows: Stop ignoring all deprecated warnings. * Windows: Run OSK/chat input box asynchronously. * Mpeg: Remove request_probe usage in newer FFmpeg. * Mpeg: Update videos to latest FFmpeg packet pump. * Mpeg: Clarify fallback problems. * Mpeg: Correct stream detection in newer FFmpeg. * Audiocodec: Update to latest FFmpeg packet pump. * Mpeg: Use direct pts value checks in newer FFmpeg. * AVI: Update to latest FFmpeg packet pump. * AVI: Avoid deprecated ffmpeg context usage. * Mpeg: Remove deprecated codec register calls. * libretro: Always use CONTINUOUS flipping. * TestVertexJit: fmodf() definition requires math.h * UnitTest: test that the function pointer for vfpu_sincos() is non-null * Fix "Enable chat" in Linux Qt build * Windows: Reduce camera state locks. * UI: Divert background only on change. * UI: Correct tweens repeatedly finishing. * UI: Use atomic to check for events. * UI: Avoid PathBrowser lock with no remote files. * Draw: Auto ref/release bound textures/samplers. * Windows: Enable chat when selecting Enable Chat. * Io: Allow early cancel of CRC calculation. * Reporting: Block for CRC calc on shutdown. * UI: Show CRC on game screen if calculated. * GPU: Prevent memory fault when no framebuf yet. * UI: Add button to show CRC on feedback screen. * Dialog: Unlock volatile without Update call. * CMake: use vendor GL implementations by setting CMP0072 to NEW * GPU: Remove clear framebuf on first use speedhack. * UI: Consider chat for visible UI. * UI: Make chatButton_ a member of EmuScreen. * UI: Avoid audio locks where possible. * Turn funcreplacments on in libretro builds. See #12322 * Debugger: Prevent thread errors on mem alloc info. * Debugger: Correct crash with no alloc tag. * Debugger: Correct merging fragmented blocks. * Debugger: Update status on scroll down. * Debugger: Fix memory lookup in mirrors/uncached. * Debugger: Show memory tag info in status bar. * Debugger: Extend tag background on select too. * Debugger: Highlight memory ranges in memory view. * Debugger: Reorganize memory view painting. * Debugger: Ignore unmarked mem block info in find. * Debugger: Add initial UI for mem info type. * Debugger: Correct search by empty string. * Debugger: Optimize linear marking. * Debugger: Track slabs by end, not size. * Debugger: Defer memory map calculations. * Debugger: Speed up lookup using an index. * GPU: Cleanup comment. * Debugger: Track ticks of allocation/write/etc. * Debugger: Track texture usage too. * Debugger: Mark framebuffers as VRAM allocations. * Debugger: Notate Memcpys directly as well. * Debugger: Notate memset tags directly. * Debugger: Track memory allocations and writes. * Debugger: Specifically tag relocations. * Debugger: Notate more cases of memory clears. * Debugger: Log access reason on memory breakpoint. * Debugger: Add more metadata for memory usage. * Mpeg: Correct incorrect upload size return. * Rename the FuncReplacements setting to effectively reset it for everyone. * libretro: Always use SKIP_FLIP. * Display: Change default unthrottle mode on non-Win. * Dialog: Clear volatile memory on unlock. * Usb: Implement state waits. * Experimenally turn off the debug symbols again - see if this helps the buildbot * Debugger: Cleanup swprintf() usage. * GPU: Correct some field shadowing. * Windows: Prevent some virtual dtor warnings. * Global: Cleanup class init order warnings. * Windows: Correct some variable init warnings. * D3D11: Fail if uniform buffer create fails. * Global: Remove some unused variables. * Windows: Remove unused file. * Thread: Log error waiting already waiting thread. * Thread: Log error when delaying a waiting thread. * Audio: Avoid left shift when resampling. * SaveState: Load misaligned wide strings properly. * SaveState: Make event restoring more obvious.- Update to version 1.11.2~git20210215: * Headless: Add test paths for CMake on Windows. * CMake: Correct headless build on Windows. * CMake: Correct build on Windows. * Update gradle. Enable automatic debug symbol upload for release builds. * libretro: Remove "Unsafe FuncReplacements" option. See #12322 * Fix many symbols on jpn0.pgf. * Windows: Fix some const type conversion warnings. * Windows: Make InputDevice destructor virtual. * GPU: Fix a type comparison warning. * Windows: Use CommonWindows more consistently. * Windows: Fix some format warnings. * Windows: Add some missing override specifiers. * Common: Include unistd.h before ctime on mingw. * Common: Fix AVX check on mingw/lower targets. * Build: Use ws2_32 and iphlpapi names directly. * Windows: Fix improper case or missing includes. * Debugger: Invalidate when using memory APIs. * Debugger: Option to skip mem hacks in memory dump. * mipsjit: Fix basic compilation. * Jit: Fix compilation of FakeJit. * Savedata: Show save icons with proper aspect ratio. * Savedata: Show corrupted data more clearly. * PPGe: Decimate early if kernel alloc fails. * GPU: Force texture invalidation for ZHP minimap. * Sas: Minor clenaup. * CoreTiming: Ensure we never idle into the past. * Common: Maintain C++11 support in sign extend. * Common: Sign extend w/func not chained casts. * Vertex cache minihash: Round up the starting address to a multiple of 4. * jpge.cpp: Remove malloc.h include * Update ext/jpge * Dialog: Simulate volatile memory lock behavior. * Dialog: Manage status only through accessors. * Power: expose volatile memory lock/unlock funcs. * HLE: Hook Worms text render copy func. * Vulkan: Remove #10097 hack for newer AMD drivers.- Update to version 1.11.2~git20210214: * Update version to 1.11.2 * compat.ini: GachiTora requires block transfer * Android: Ensure shutdown waits for render. * Build: Cache Qt during Actions run. * Build: Allow on actions test branch. * Don't assert on invalid format in CwCheat. * Io: Truncate reads/writes to valid memory. * Update lang submodule * Add some checks trying to prevent creation of 0 sized textures. * GPU: Force reinterpret off without copy image. * Revert (partially) "compat.ini: Add Split/Second to [ReinterpretFramebuffers]. See #13957" * Some GLSL compilers are very particular about the sign of shift operands..- Update to version 1.11.1~git20210211: * Update version to 1.11.1 * Slight simplification in LogoScreen * Update README.md for 1.11.1 * Fix lobby issue on The Warriors, probably also fix similar issue on other games too. * Update zh_CN and zh_TW * Windows recvfrom doesn't support MSG_TRUNC, so we're using dummy buffer with max size as alternative for peeking actual size of the next pending message. * Fix frozen (0 FPS) issue on Kao Challengers and Asterix & Obelix XX (probably also fix other games from the same developer with similar issue) https://github.com/hrydgard/ppsspp/issues/14103 * Assorted paranoid cleanups, inspired by #14082 * Remove a completely unnecessary check in BackgroundAudio.cpp that caused glitching at 44.1khz. * Update lang submodule (it_IT updates) * SaveState: Prevent crash on bad cookie marker. * Rename the new warmup variable from #14091 * Only allow sceMpegGetAvcAu warmup for God Eater Series * Remove now-redundant check * GL: Call CreateDeviceObjects *after* updating render_. * Buildfix * Cause the correct type of exception. Never ignore EXEC_ADDR exceptions. * Handle exec addr errors better - don't let IgnoreBadMemoryAccesses skip dispatcher exceptions. * Add more games to ReportSmallMemStick * PPGe: Decimate text images properly.- Update to version 1.11~git20210207: * Update version to 1.11 * Do the title screen animation by accumulator instead, to avoid a long first frame breaking it. * Update lang,pspautotests submodules * Run the link script, fixups * Run the link script * Removing hleDelayResult from internal adhoc functions to prevent waking up thread that supposed to be blocked by the outer HLE. * Updated some Logs to help finding the location of the call to debug. * PPGe: Clear text allocations on shutdown. * PPGe: Fallback to atlas text on alloc fail. * Debugger: Populate funcs if disassembly open early. * Fix jpn0.pgf characters position. * Fix possible race condition issue. * Moving hleDelayResult from internal function of SetSocketAlert to prevent waking up HLE-blocked thread * Minor renaming * We don't really need to allocate a buffer when using MSG_TRUNC on recvfrom * More stuff in README.md * More from unknown and sum2012 * List fixed games. Thanks sum2012 * Address initial feedback by iota97 * Update README.md for 1.11- Update to version 1.10.3~git20210205: * Windows: Prevent crash on null symbol map. * Core: Reset state properly on CPU init failure. * Make a couple of UI animations refresh rate independent * UI: Correct developer tools test run. * Updated PdpStat to prevent rcv_sb_cc from exceeding the buffer size arg (since we use larger buffer size to prevent micro stutters or disconnection issue due to too many dropped packets with small buffer size). TODO: May need to improve it to be able to calculate the correct size if there are multiple datagram messages * Fix possible lock issue during AdhocMatchingStart * (.gitlab-ci.yml) Add linux-i686 and windows-i686 targets (+ prevent creation of 'null' file when building Windows libretro cores)- Update to version 1.10.3~git20210201: * Updated PdpStat and PtpStat * vertexjit: Only save extra regs on x64. * Core: Assert debug stats remain positive. * vertexjit: Correct saved registers on x64. * Core: Maintain frame dump disc ID in SFO. * Loaders: Prevent errors on 0 byte reads. * Have the flat shading workaround obey the driver workarounds checkbox * Fix minor rendering glitch in PPSSPP's menus on iOS * Add checkbox to enable/disable driver bug workarounds. * Add a new command in developer tools to list and load framedumps from framedump.ppsspp.org/repro/ * Framedump test screen. Downloads a list of framedumps.- Update to version 1.10.3~git20210131: * Ge: Restore saved context when ending a list. * Ge: Improve some logging and memchecks. * Mpeg:Only allow firmware >= 6 for warmup * Vulkan: Fix image layout issues after compute shader uploads. * Io: Consistently use LE values of ISO entries. * Only force the log level if it set via an argv * jit: Be very clear on sign extension. * Core: Correct branch analysis truncation. * Fix Apple gpu detection * Attempt to fix #14022 * Fix logging flags * x64Emitter: Fix unaligned store UBSAN errors * Fix left shift of negative value in MIPSCodeUtils * Minimize the Adreno shader compiler bug repro test * Fix connection issue on Dynasty Warriors (Shin Sangoku Musou) games when playing with more than 2 players. * jit: Make branch shift more obvious. * Fix alignment issues in ISOFileSystem * Fix Russian characters ltn8~15.pgf * CMake: Fix UBSAN link error * CMake: Rename USE_ADDRESS_SANITIZER to USE_ASAN * CMake: Add USE_UBSAN * Try to build fix on non-windows * Mpeg:Only allow firmware >= 3 for warmup * (.gitlab-ci.yml) Add windows-x64 target * FindFFmpeg: Fix a few issues * gitlab ci change requested by m4xw * Fix Greek characters ltn0~7.pgf * Specify MaxScale=2 for the new MMPX texture scaling shader * Vulkan: Allow tex shaders to specify a max scale. * Vulkan: Add MMPX upscaling texture shader. * Remove duplicates from ThreadManForKernel * Mp3: Correct logging for init. * Updated GameMode initial data sync, in case remote players aren't listening yet when sending initial data (fix Pocket Pool) * Mp3: Always keep sample rate from original mp3. * Add back XCode TARGETED_DEVICE_FAMILY config line * Mp3: Allow decode without pcm pointer. * Mp3: Correct error handling for newer sdk versions. * GLES: Remove direct khrplatform.h header include. * Add header information * sceMp3Init:Add layerBits and versionBits information * Don't allow ForcedFirstConnect hack when using PtpConnect within PtpOpen to prevent returning result from blocking PtpConnect instead of result of PtpOpen. * Reporting: Expose CRC queue methods for other uses. * D3D9: Don't allow separate alpha clears. * GPU: Respect stencil write mask for 5551 buffers. * GE: Better naming of render passes for color reinterpret * Io: Don't allow async close while async busy. * Fix duplicate shader version in the flat shader test * OpenGL fragment shader gen: Fix precision inconsistency for v_color0/1.- Update to version 1.10.3~git20210124: * Fix returned error code on PtpSend and PtpRecv when socket is not connected yet. * Do PtpConnect internally during PtpOpen, since some games (ie. The Warriors) seems to do PtpSend immediately after PtpOpen without trying to PtpConnect first. * Fix Greek characters & Roman numbers & all balance on jpn0.pgf * Resample only in 32000Hz * Plugins: Enable by default. * compat.ini: Add Split/Second to [ReinterpretFramebuffers]. See #13957 * PPGe: Scale down by worst of window/internal res. * build fix * Some marks position fixed on jpn0.pgf * Fix Russian (Cyrillic alphabet) on jpn0.pgf. * Resample all mp3 * Oops! I misstook uploading jpn0.pgf. * PGF Fixed Bold & Italic property and camouflage the Font name. * Kernel: Adjust sceKernelGetThreadExitStatus timing. * Debugger: Include all press states for convenience. * Debugger: Broadcast ctrl input events. * Debugger: Add API to trigger buttons. * Compat: Enable reinterpret for Kingdom Hearts. * Vulkan: Prevent scaling shader leak. * GPU: Fix safe size checks when rect offscreen. * Headless: Default to PNG for ppdmp tests. * Headless: Simplify executing a ppdmp via headless. * Headless: Disable http disk cache. * Headless: Allow PNGs and http:// for screenshot. * Headless: Read expected file as a FileLoader. * Headless: Allow screenshot compare without backend. * GL FB readback: Only use "inout" if we actually want to read from the fb. * More GPU test improvements * Compat: Note that 3 LEGO games those are require Buffered rendering * Add texture to flat shaded test. * Adds two new tests to GPU driver test screen: Adreno shader logic test and flat shading * CMake fixes and new --ios-xcode ./b.sh command. * There's little reason to build at O3, so let's just not. Changing to O2. * Vulkan: Delete only created swapchain images. * SoftGPU: Fix sprite provoking vertex in fast path. * Module: Keep the state for each import. * Headless: Allow connecting the web debugger. * Compat: Note that Gradius requires block transfer. * Remove re-test each month * Module: Keep HI16/LO16 in a temp state object. * Module: Reverse a single HI16/LO16 pair correctly. * Fix Stuck issue on some games (Dissidia 012, Full Auto 2, etc) when Failed to connect to Adhoc Server (faked success) * VK: Re-apply the old Adreno driver bug workaround. Fixes #13910. * Make sure we don't try to set a negative viewport size. * Update Template * Enable BlockTransferAllowCreateFB for Gradius Collection * PGF Re-Fixed Euro Characters * irjit: Update clobber flag on inst swap. * irjit: Add disable flag for simplify passes. * Android: Add NEON/SSE funcs into Headless/UnitTest. * Build: Validate unittest/headless on Android. * Android: Fix headless and unittest build. * Fix copy/paste typo causing crash getting tempdirs if an env var had no value * GPU: Correct shader gen with weights as floats. * FixPGF for Euro Characters.(Balance emphasis) * UI: Cleanup Windows header in MainScreen.cpp. * http: Prevent Windows header leak from HTTPClient. * Windows: Handle fullscreen message consistently. * irjit: Fix mtv for INF4. * irjit: Correct flags for SetCtrlVFPUReg. * jit: Fix conditional disable flags. * Improve some i18n things * Enable using the folder browser on Android to select SD card through a gross hack. * Add a file picker (WIP) * Use the same logic of game setting for main menu full screen, add other system * Manually tighten up the layout a bit in the top right corner * Add a fullscreen toggle button to the main screen (Windows-only for now) * Try another method for getting SD card storage paths (env vars). * Reducing AdhocMatching events delay to prevent matchingEvents from piling up on Lord of Arcana. * Send AdhocMatching Data from within HLE whenever possible instead of through matchingEvent Thread. * Prevent access violation when running out of userMemory due to piling up AdhocMatching events. * Add game ID for russian version of Tron Evolution * Add 3 games to ForceMax60FPS * Add more error checking in SD storage detection * add assets to ubuntu build artifact * UI: Prevent self-powerdown check on load new game. * Core: Properly stop on abrupt shutdown. * Android: Minor cleanup. * Remove redundant method from PathBrowser.cpp * Fixes for SD card detection on slightly older devices. * UI tweaks * Use hacky methods to retrieve SD card directory if available. * Add home button on all platforms * Add some new icons. * Fix adding extra new line on checkbox change * Save on game start * iOS: Change iOS 13 check. * Savedata: Reduce some noisy logging. * cmake: Silence warning. * Adding games to RequireBufferedRendering that cause black screen when not enabled * Compat.ini cleanup to add missing IDs and remove unused ones from latest version * Add Missing game IDs for Tekken 6 * Initialize/Deinitialize the shader translation system once globally. * Savedata: Prevent garbage bleeding into save icons. * Revert "Bleach Soul Carnival. Disable the "First Frame Readback" compat setting." * Never pass a null into QueueDeleteImageView (got a report of that). * UI: Use "Details" for upgrade outside Win/Android. * SaveState: Allow rewind on mobile. * Postshader: Improve error reporting. * Bleach Soul Carnival. Disable the "First Frame Readback" compat setting. * GPU: Be careful with color write mask precision. * GPU: Ignore color write mask if unusable. * Windows: Prevent hang on shutdown. * D3D11: Avoid crash if debug/info queue unavailable. * Build: Include Windows ARM64 in builds too. * headless: Fix Windows ARM64 build. * Windows: Fix miniupnpc build on ARM64. * iOS: Expose iOS 12.1+/13/14 buttons. * UWP: Don't try compiling samplerjit. * Build: Run software backend for tests. * GPU: Remove NULL GPU. * Headless: Always use at least software rendering. * SoftGPU: Allow rendering with no backend at all. * UWP: Allow software renderer. * SoftGPU: Update PPGe draw context. * Readme script update * Psmf: Fix a potential leak on shutdown. * GPU: Correct some incorrect deallocations. * Common: Correct some formatting type mismatches. * http: Ignore signals on recv() too. * http: Cleanup excessive logging. * Android: Remove old NDK profiler. * Common: Fix logging shutdown race condition. * Debugger: Fix some type conversion warnings. * Windows: Fix some type conversion warnings. * Net: Remove static declarations from h file. * Build: Remove Travis in favor of GitHub Actions. * Build: Reference test as file on failure. * Build: Auto skip on documentation only changes. * Build: Disable fast fail to see all build errors. * Build: Skip SDL2 dependency for mobile platforms. * Build: Include PPSSPPSDL on macOS for debugging. * Build: Run tests on Linux and macOS. * Build: Install specific Android NDK. * Build: Install SDL2 dependency. * Build: Ensure yml use tabs. * Build: Add CMake to GitHub Actions. * Build: Enable graphics tests. * Build: Explicitly depend on miniupnpc. * Build: Add test execution. * Build: Add GitHub Actions workflow. * Headless: Add specific GitHub Actions logging. * Headless: Cleanup TeamCity handling in test.py. * Euro characters Fixed in jpn0.pgf. * Ipega PG-9118 modified: assets/gamecontrollerdb.txt * If we are reporting a small memstick size, but data is bigger, lie. * Debugger: Correct a type error. * Debugger: Cleanup some syntax. * Debugger: Add helper to read strings. * Debugger: Add API to read/write chunks of memory. * Debugger: Cleanup memory.read/write validation. * http: Prevent assert on bad websocket data. * Corrects the calculation of the return value when the callback of RingbufferPut returns a negative value. * Using MSG_TRUNC along with MSG_PEEK as a precaution of a possible buffer overflow when peeking recv buffer. * Revert "Merge pull request #13807 from unknownbrackets/ios-buttons" * An attempt to add BlockTransferAllowCreateFB for Naruto Shippuden: Ultimate Ninja Impact * Instance: add missing headers more POSIX systems * FileSystems: add missing header * Linux: ignore missing MAP_NORESERVE on FreeBSD * Split the DepthRangeHack compat setting into itself and DisableRangeCulling * http: Treat buffer full flush correctly. * http: Wait less time for IPv6 if IPv4 succeeds. * Fix layout problem on crash screen. Fixes #13808 * Fixed an issue where sometimes a player unable to join a host on Warriors Orochi 2 (should also fix similar issue on other games that use PDP/UDP on Windows) * Close the port immediately when closing a socket. * iOS: Expose iOS 12.1+ buttons. * Revert "Cleaner exit on Windows. Will hopefully help #13325" * Typo * Fix Grand Theft Auto - Vice City Stories * Mpeg: Add warm up staff * Android: Fix text color in dialogs by just inheriting from the DeviceDefault theme. * UWP StorageFileLoader: Remove some excessive logging. * Temporary workaround for Wipeout Pure lens flare flicker. * UWP: Work around another race condition in StorageFileLoader. * UWP: Fix dialog rendering (PPGe). * UWP: Make the home button say "Home" instead of "Browse...". * Forget this one HLE_KERNEL_SYSCALL * Add some ThreadManForKernel nis * Folder browsing on main screen: Prevent navigating "up" when you can't. * UWP: Make the home button say "Home" instead of "Browse...". * PathBrowser: Show simplified version of paths under the memstick dir. * Fix navigation upwards from a pinned game streaming folder. Fixes #13224. * Update ffmpeg submodule to a named (identical) commit, to not confuse some buildbots * Postprocessing shader, GL: Fix shader version bug. Fixes #13779 * UWP buildfix * D3D11: Avoid the debug layer hazard tracker after blits. * Cleaner exit on Windows. Will hopefully help #13325 * Misc logging improvements * Crash screen: Add a very dangerous and inaccurate "Resume" function. * Further improvements to crash screen * Hide touch controls on bluescreen * Fix bluescreen layout on notched phones * Improvements to crash screen. * Fix synchronization bug in StorageFileLoader.cpp (wrong mutex) * XAudioBackend: Limit the number of queued buffers properly. * Reformat and do minor cleanups in UWP/XAudioSoundStream * Linux: Properly avoid committing address space for large mmap(). * Fix PGF a figure. * Fixed "jpn0/kr0/ltn0,2,4,6 * Add stack value in scempeg and scepsmf from jpcsp * Add an iOS-only utility in devtools to copy savestates to memstick root. * Fix background idle animation on iOS when task switching * Apple driver bug workaround. See issue #13451 * Fix check for Android version in whether to display "ignore camera notch when centering" Fixes #13774 * GL: Detect Apple GPUs as a category * Minor cleanups * VK: Restore the ARM Mali Z hack that got lost in the refactor somehow. * Some cleanups in GL feature and shader language detection. * ARM64 buildfix * Minor refactor in sceUtility.cpp, making future changes easier. * Android: Enable fullscreen ("Immersive mode") by default. * Fix regression in Dream Club Portable. Fixes, for OpenGL, #6497 * Minor comment. * Don't display data info as new data when saving done. * Fixes incorrect date of savedata. * Turn off vertex range culling in bezier/spline calls. * Call g_Config.Save() first thing in MainScreen::OnExit. Workaround for #13286 * Assorted drive-by code cleanup * thin3d: Add a way to query the current render target for debugging. * Fix DiRT 2's car reflections. * cmake: Enable the install target for non-linux unix systems. * Use system time format on savedata aswell * Nassau's new fonts. Replaces #13753 * Change the typo * Fix loader * Bundle libMoltenVK * Another Ghosts'n'Goblins game ID. * Specify Target * Add more games to RequireBufferedRendering * Avoid potential crash without storage permissions. * Add games that requires buffered rendering * Do not use x86 for other machine * cmake: Add a desktop file. * cmake: Add an install target. * Use the double precision sincos for Hitman RBA 1 too. See #13706 * Add missing header in Logmanager.h * Fix headers in MIPSCPUDetect. * sz must be longer than target string * Remove superfluous variable from uniform buffer * Why not iOS? * Safer hack to build on M1. * CMakeLists.txt fixes for M1. It sets cpu arch to "arm64", not "aarch64" * M1: Correctly detect core count. * Cleaner way to flush the instruction cache on Mac ARM64 * Mark ARM64 Macs as needing WX-exclusive memory protection * Fix a crash if JIT space failed to allocate * Fix GPU driver test screen * Make universal binary version of ffmpeg work. (#13457) * D3D11: Fix shader module leak in thin3d. * Fixed a PlayStation typo (#13729) * Switch to nassau-tk's latest Korean font. See issue #13190 * Respect stage in BindFramebufferAsColorTexture(). * Change ltn x font (#13721) * Fix Ghosts & Goblins for older backends too. * Two more Ghosts & Goblins game IDs for compat.ini * Better debug names for BlitFramebuffer operations. * Enable color reinterpret for Ultimate Ghosts & Goblins * Need to take renderArea into account when merging render passes. * Update lang submodule * Correctly handle stuffing data of pack header. * Build fixes * Fixes state. * Writes target buffer address in multiple times. * Turn off the MacOS and iOS Travis jobs, they seem to have stopped working. * Only use double precision sincos in Hitman Reborn Battle Arena 2. See #12900 * Partially revert "VFPU: Compute sines and cosines in double precision." * Try to implement some related funcs. * Remember game list scroll * Update jpn0.pgf * Guess at a fix for #13698 - sceKernelThreadGetExitStatus probably takes some cycles. * Clean up. * Mpeg:Checks autual available space before putting data. * Implements sceUsbCamGetMicDataLength. * libretro: Remove VertexShaderGeneratorHLSL from Makefile.common. Fixes #13696 * Clean up psp_color shader * Update jpn0.pgf (manually merged from commit #13683) * Update lang submodule * Add developer setting "Show on screen messages". Uncheck to hide them. * Translation: Fix issue #13685 * Translation: Fix issues #13686 and #13687 * Adreno/OpenGL: Limit shader depal to 6xx series GPUs. Should help #13668. * Modified "ltn0/1/2/3/4/5/6/7 .pgf" * Makes a distinction between blocking and non blocking modes. * Changes the way of reading microphone data. * Fix some wrong asserts (we don't use ) * Fix mistake. * Better GLSL version handling. Now specify the latest version supported by the device. * Updated socket's send buffer size as an attempt to fix PSP2i unable to enter dungeon when using RadminVPN issue #13648 * Change socket's MSS based on PSP_ADHOC_PTP_MSS * Making use TCP_QUICKACK (or it's alternative) along with TCP_NODELAY * Fix crash when drag-dropping texture packs. Fixes the main part of #13614 . * Fix scale in FramebufferCommon::GetFramebuffer. Fixes #13644 * Clears didn't always properly set the RenderArea. Should help #13664 * Corrects the number of added packets returned by sceMpegRingbufferPut, especially if callback is called multiple times. * Fix crash in sceusbmic on load old staus then save again * Makes video streams amount meet the expectation of sceMpegRegistStream() not only the mpegheader. * Reads all packets to ringbuffer. * Fix crash on save state. Fixes #13658 * Fix Star Ocean stencil issue with OpenGL. Fixes #13746 * OpenGL: Assorted shader-depal bugfixes and regression fixes. * Fix check for when to generate packUnorm4x8 replacements * OpenGL: Detect Adreno model number * Update gamecontrollerdb.txt * Expose the "Lower resolution for effects" setting in libretro. Fixes #11099 * Don't try to texture from depth if not supported by backend. Works around #13621 * More consistent use of GLSL precision modifiers, now use them in Vulkan too. * Fix bug in the new color writemask code, failing to limit it to Outrun properly. Fixes #13650. * Outrun on OpenGL: Fix weird purple highlight seen on some devices * Fix task switching issue with reinterpret. Fixes #13649 * Minor cleanup in GL backend, fixes #13647 * D3D11: Fix writing to SV_Depth. Fixes #13641 * Linker fix - need to move init_resources along. * Mpeg:Revert part of https://github.com/hrydgard/ppsspp/commit/fa59be7e5db1526d07de75f6d7c14b94e98809e6 * On GLES3, GL_EXT_shader_framebuffer_fetch works a little differently. * Remove support for NV_shader_framebuffer_fetch extension, very old and rare. * Reorganize the end of the fragment shader generator. * Remove ForceGL2 flag. Add comments... hm. * Move ShaderTranslation.cpp/h to Common/GPU. * Fix crashes on exit (Vulkan). Should help #13223 * Fix HLSL shader gen issue * Temporarily disable GL frame-init error checks, see #13639 * Get shader color write masking going on all backends. * Fix AuCheckStreamDataNeeded function * Unrelated warning fixes * Fix some comments * Fix some comments, rename a function. * More work on detangling the concepts and making things make more sense. * ShaderBlend and FramebufferRead are separate concepts. Reflect that in naming. * Simplify shader blend logic in FragmentShaderGenerator.cpp * Address feedback. * Add compat flag for reinterpret shader, also disable on platforms that can't support it yet * Fix reinterpret shader for D3D11 * Cleanup reinterpret shader resources in FramebufferManagerCommon::DeviceLost(). * More work on reinterpret. Get Vulkan running * Reinterpret the data when binding a framebuffer with a different 16-bit format. * Reinterpret code runs, no idea if it works * More shadergen work * More reinterpret shader gen and test work. * Forgot a line in caa960ee8e * Unify FramebufferManager::BindFramebufferAsColorTexture * Start unifying BindFramebufferAsColorTexture * Reorganize the DeviceLost code a little. FramebufferManagerCommon now sees it. * Remove some accidentally added lines * GLSL ES compilers can be very picky about uint/int. Fixes #13628 - for real this time hopefully * Oops, what happened there.. * Some GL error logging improvements * Fix GLSL version detection bug. Fixes #13631 * Fix bugs caused by 44ec286ba4 * Fix off by one * Move shader language feature detection to the draw context. * Framebuffer: Keep the render scale factor around, no need to recompute it. * Partially revert "Remove remnants of an old, no longer applicable readback optimization" * Buildfix * Remove colorDepth property of framebuffers. They're all 8888. * Remove remnants of an old, no longer applicable readback optimization * Fix bug in framebuffer naming * Inline "OptimizeDownloadRange" to make the code more readable * Merge the two ShaderStage enums * Show an error on screen if a shader fails to compile. * Merge the two ShaderLanguage enums. * Move ShaderWriter to Common/GPU, along with some stuff from ShaderCommon.h. * Retry the masked memory experiment on iOS. Turns out it was the shader generator bug that broke things. * GLSL ES: Extensions must go first. Fixes #13620 * Disable masked memory on iOS again. The cure was worse than the disease apparently. * Partially revert "Clarify some logic, improve framebuffer names" * GPU: Correct shader blend equations. * Fix Starting multiplayer issue on DBZ Team Tag * Reducing the delay on GetPeerInfo * Enable masked memory addressing on iOS * Fix/workaround ARM64 with the MASKED_PSP_MEMORY build flag. * Fix a bad check, causing masked memory to fail on non-32-bit platforms even if desired. * Bugfix last commit * Apparently only MSVC can handle the ambiguity. * Buildfix the rest of the platforms * GEDebugger: Use utf-8 internally. * ShaderWriter, a replacement for the sprintf WRITE macro. * Safety, comments * Clarify some logic, improve framebuffer names * Fix vertex shader generator bug. Got caught by the new test * Move the generic vertex shader generator into GPU/Common and rename it. * Delete the HLSL shader generator, switch to the newly generic one. * Another hlsl compatibility fix * Share the uniform buffer declarations between D3D11 and VK. * Fix remaining differences between generated shaders * Start working on getting tess to match * Fix through mode differences * Make the lighting code match * Make the hardware skinning code match * More HLSL work. Some vertex shaders are starting to pass. * Vertex shader merge work * Oops, seems I screwed those #version statements up worse. * Fix #version statement for GLES 2.0 vertex shaders * Fix #version statement in GLES 2 fragment shaders * Remove a redundant bit from vertex shader IDs. * Fix an old inconsistency between D3D9 and D3D11 projection matrices. * Remove inPrefix. HLSL shaders gets slightly longer but probably no biggie. * Fix silly issue in vertex shader gen * UWP buildfix * Move the now-renamed fragment shader generator to GPU/Common. * Just some cleanups that get to tag along * Fragment shader gen: Remove unnecessary allocations * Cleanup * Check for a couple additional GL extensions * Remove the HLSL fragment shader generator. The GLSL one can now do its job. * Switch D3D9 too to the glsl shader generator * Switch D3D11 over to use the GLSL fragment shader generator * Misc cleanup * Minor D3D9 fixes * Test parsing of generated OpenGL shaders too (by using glslang). * Get D3D9 fragment shader generation to parity * HLSL fix * More D3D9 fixes. * Set up the test for D3D9, start fixing stuff. * Evolve the HLSL and GLSL fragment shader generators even closer together. * Change fragment shader output to work the same in GLSL and HLSL. * Make discard work the same way in the HLSL shader generator. * Start adding HLSL support to the GLSL shader generator. * wip * HLSL: Use #define to switch to glsl-like vector types. * Fix loading old savestates. * Modified "ltn0/2/4/6 .pgf" * When stops and unloads self module, make sure that the thread is properly deleted. * Fix significant FPS drops on Hitman Reborn Battle Arena 2 * Updated Blocking simulation of AdhocSocket (especially PdpRecv) * Updated Minimum Timeout workaround settings to use 0 as default (no override) * Remove support for D3D11_level_9 (previously only really used for Windows Phone, probably). * Blocks current thread to synchronize initial GameMode data. Fixes desync issue when GameMode multiplayer mission is being started. * Moving socket creation from AdhocMatchingCreate to AdhocMatchingStart. (Fixes Dissidia 012 unable to see any room issue) * Fixed an issue with AdhocMatching where there is a possibility that some data didn't get sent upon AdhocMatchingStop causing Joined players to get timeout. (Fixed Star Wars: The Force Unleashed) * Implementing Adhocctl Busy state to prevent getting kicked out from Adhoc Server on games that tries to leave the group multiple times in a row. Also Updated Adhocctl behavior. * Updated GameMode API (Fixed Pocket Pool) * Prevent memory leaks when clearing AdhocMatching events. * Fixed unable to see game room issue on Air Conflicts - Aces Of World War 2, should also fix other games with similar issue (due to invalid group mode) * Added delay result to SetSocketAlert for other threads that use the socket to trigger the alert. * Socket alerts can be triggered regardless of the nonblocking flag * Do not clear socket alert flag after signaled. * Prevent Scanning issue after reconnected to AdhocServer, also Updated logging to showing the error code on sceNetAdhocctlScan * Updated validity checking of mac address on PdpCreate, PtpListen, and PtpOpen * Updated Loggings and return value of PdpSend and PdpRecv * Added hleEatMicro (may not be accurate tho) on PdpSend, PdpRecv, and GetPeerInfo. * Updated error code on sceNetGetLocalEtherAddr * Prevent memory leaks when attempting to play GameMode multiplayer again after loading from SaveState in the middle of GameMode multiplayer. * Prevent Port leaks after loading SaveState in the middle of multiplayer resulting to "port in use" error on the next attempt to play multiplayer. * Fix checks for fragment test cache in GLES fragment shader generator * Modified "ltn1/3/5/7 .pgf" * Log the return value. * Fixes mistake. * IMP sceKernelFindModuleByUID and sceKernelFindModuleByName. * SaveState:Don't register the event during Dostate. * Modified "ltn1/3/5/7 .pgf" * Somehow forgot to delete VertexShaderGeneratorVulkan.cpp * Change jpn0 font (#13588) * Use splat3(x) liberally (converts to vec3(x) on GLES, vec3(x,x,x) on D3D) * Complete the vertex shader merge, deleting the Vulkan-specific vertex shader generator. * Additional fixes * More tess fixes * Initial work on fixing tess * Fix additional minor differences * Fix more vertex shader differences * Bridge more vertex shader differences * Time for the vertex shaders. Set up a test, start eliminating differences. * [Android] Retrieve isMicStarted from AndroidAudio state * [Android] Start recording immediately after asking for permission * [Android] Audio record using OpenSL * Fixes savesate for usbmic. * Revert "Android gradle update" * Completes the merge, deleting the Vulkan-specific fragment shader generator. * Fix more tiny differences. The fragment shader generators now match! * Fix additional differences * Fix minute differences between the shader generators found by the new tester * Hack up a test comparing Vulkan fragment haders generated by the GL GLSL generator to the ones generated by the Vulkan generator. * OpenGL: Share the shader version detection. * Cleanup * GLES: Read compat params first, emit code later. * More splat3 * Revert "Try my theory about memory mirrors on iOS 14. See #13451" * Android gradle update * Fix a section of the translatable message * SwicthUMD:Only update Switch UMD item of Windows menu instead of entire UI. * Try my theory about memory mirrors on iOS 14. See #13451 * Remove an unmotivated ifdef. Additional cleanup * OpenGL: Allow texture wrapping on framebuffers if supported * Prepare for more GLSL testing * Rename shader generator functions, a bit of moving around and adding an errorString param. * Add brute force shader generator tester. Tests D3D11 and Vulkan shaders. * Vulkan: remove array indexing for light parameters to match the other backends * Rename vk uniforms to match the other backends * Update gitlab ci for libretro to use cmake * Io: Track initial free space for compat flag. * Headless: Define consistent memstick size. * Psmf: Cleanup logging. * Psmf: Handle older states for delayed state change. * Address feedback about recent changes * Don't need to connect if AdhocServer IP is the same with this instance localhost IP and having AdhocServer disabled * Updated Loggings and return value on PtpSend, PtpFlush, and PtpRecv. * Show a warning just in case an abnormal situation occurred. * Fix disconnection issue due to timeout on blocking PTP Socket * Added Connection Refused error code on PtpConnect * Fixed disconnection issue when multiplayer game started on Shaun White Snowboarding, and improved multiplayer performance on games that use GameMode. * Updated Adhocctl timings based on the timestamp on JPCSP + prx files * DoState. * PsmfPlayer:The status will not be changed until the delay result is finished. * Io: Account for free space on the host device. * Qt: Remove Qt-specific screenshot path. * Error handling fixes * D3D11: Implement depth texturing. Fixes, for D3D11, #6411. * Set up depth buffers to be bound as shader resource views * Libretro: set Memory Stick Size config value. fixes #13552. * OpenGL: Disable auto invalidation of framebuffers, it has somehow broken * retro ci fix * oops, wrong filename * Removing the workaround that was used to fix Gran Turismo in the past but no longer needed. Since zero mac address is an invalid mac we should return an error. * Updated AdhocPollSocket timeout checking. * Increasing Adhocctl timeout to 5 seconds (with side effects of longer freezes when detecting disconnected players), to prevent failure to connect to AdhocServer on time due to some unknown reason where sometimes it tooks more than 2 seconds for Adhocctl Init to connect to AdhocServer on localhost (normally only 10 ms), and sometimes it tooks more than 1 seconds for built-in AdhocServer to be ready (normally only 1 ms) * Make all the Comp_Cache implementations the same. * Add libretro CI. * Prevent AdhocServer Pings from spamming Debug Log * Fix disconnection issue when joining multiplayer on Capcom Puzzle World * 2nd or more instance of PPSSPP should only bind it's own localhost IP for Adhoc Server. Fixes Capcom Classics Collection Remix multiplayer on multiple-instance. * More buildfixes * Removed unused texel info * Added new vertex shader file naturalA.vsh * Removed unnecessary vertex coords * Replaced shader vertex file for naturalA * Libretro: add SYSPROP_DISPLAY_SAFE_INSET* properties. fixes screen frame size. * Yet another one * Another missing header buildfix * Minor cleanups related to #13527 * Add missing include in URL.h * VS 2017 buildfix hack - these parameters are new to Windows. * libretro: Fix screen size problem in Vulkan. * Get Vulkan going again with libretro. Rendering is the wrong size and crashes on exit, but it's a start. * Libretro/VK: Add a README for debugging, so I don't forget. Minor cleanups. * Added 1 new NID of OpenPSID Service, also added Init & Shutdown function * No need to call video_cb if there is no image * fixed issue with: [libretro ERROR] [G3D] glewInit() failed- Exclude aarch64 and %arm as it never built due to openGL vs openGL ES issue.- Use again system ffmpeg - Update to version 1.10.3~git20201014: * Fix text issue in God Eater Burst. Forgot that games can allocate texture in volatile memory too. * Vulkan: fix stack overflow. * libkirk: fix buffer overflow. * Fix a couple of issues with #13477, found by aliaspider. * VK: Whenever safely possible, shrink the render area. * Fix OpenGL crash introduced in #13536 * Fix GPU profile display on notched screens * compat.ini: Add ID for European version of Car Jack Streets * Track and accumulate pipeline flags for render passes. * Bugfix * VK: Separate layout transitions from renderpasses again. * Remove the USE_GENERAL_LAYOUT_FOR* debug defines. * VK: Copy depth buffer if we can't blit. Some GPUs can't blit to depth. * Workaround for date bug in Car Jack Streets. * Fixed timeout issue due to the latest CoreTiming::GetGlobalTimeUsScaled() have a possibility to get smaller number than the previous one. * Added some network-related missing error codes. * Create a safer variant of BlockTransferAllowCreateFB, enable for FF Type 0 * Fix additional snappy warnings. * Warning fixes. * Avoid a division in time_now_d(). Minor optimizations. * VFPU: Compute sines and cosines in double precision. * Make Qt apply fullscreen change from UI as well * Make --windowed available on all platform and make sure to trigger resize * Add an option to the in-game dev menu to reset counts on limited logging * Change jpn0.pgf for a new one generated by nassau-tk * Update gradle, assets/lang * Prevent sceNetAdhocctlGetGameModeInfo from spamming Warn/Info Log on Street Supremacy * Added socom.cc as an alternative Public Adhoc Server, just because they have statistic web page for players to find out which games are being played and how many players are there. * Minor changes. * Return early to reduce indentation on AdhocMatching code * Updated AdhocPollSocket implementation to fix Bleach Heat the Soul 7, Fate Unlimited Codes, Carnage Heart EXA * Prevent getting too many Kernel Errors in the log during a Shutdown cleanups due to kernelObjects already cleared. * Prevent Dissidia 012 from opening too many ports when failed to connect continuously. * Making the workaround that fix Gundam vs Gundam Next Plus to be optional as it can improve connectivity on other games over high latency networks, and fix GvG Next Plus properly. * Updated AdhocSocket struct, and an attempt to reduce stutters by increasing the send buffer a little bit. * Fix Falcom games (ie. Ys vs. Sora no Kiseki, Vantage Master Portable) * Removing ETIMEDOUT from non-blocking socket's error checks * Updated GameMode implementation to fix Bomberman, also improved performance on BattleZone. (+1 squashed commits) * Fix NetconfDialog timings to get a better message transitions. * Fix Apctl and Adhocctl state change timings to works properly. Which fix the stuck MessageBox on Naruto Shippuden Ultimate Ninja Heroes 3 and .hack//Link properly. * Removing the workaround that fix the stuck MessageBox on Naruto Shippuden Ultimate Ninja Heroes 3 and .hack//Link but having a side effect of 0.5 second lag * Fix a recent bug in XinputDevice.h * Sets the maximum memory stick size to 32GB like a Memory Stick Duo. * Savedata:Skips non-directories in LISTALLDELETE mode. * Simulates memory stick size to get fixed free space. * SDL: Apply patch from issue #13516, fixing issue with Wacom tablets with readonly flags set. * SDL: Implement multitouch support * Buildfix - remove more Qt-specific code in TextureReplacer * Also report a smaller memstick for Street Fighter Alpha 3 MAX (see #10462) * Add compat.ini setting to work around memstick size math problem in Harry Potter - Goblet of Fire * Fix libretro makefile build * Add some recent contributors to the credits list. * Delete useless Qt-specific path in TextureReplacer * Vulkan: Automatically generate mipmaps for replacement textures. * Cap the global thread pool at 16 threads. * Remove Timer.cpp/h. Move various collections into Common/Data/Collections. * Fix Qt build by simply moving the offending file to the native project. No idea why Qt include paths only work there. * Buildfix linux * Windows: Remove the native project. * Complete the eradication of D3DX9 compiler loader * Move text rendering to Common. * Move most GPU things to Common. * KeyMap fix (libretro) * Libretro buildfixes * Move fileutil, net, image loaders, ui to Common. (#13506) * SaveData:Displays all saves like a PSP for LISTALLDELETE mode. * iOS buildfix * Mac/ios buildfix * Move NativeApp.h to Common/System, split into NativeApp.h and System.h * Move Display.cpp/h to Common. * Move the profiler to Common * Common.h shouldn't include Log.h. * Move math and some file and data conversion files out from native to Common. * iOS buildfix attempt * Move native/util, native/data and native/i18 to Common/Data. * Fixed missing cstring include. * Move input utilities from native to Common/Input. * Savedata:Corrects the performances when the data is broken. * Move threading utils from native to Common * Savedata:Supports empty file name for save/load/delete. * Savedata:Improves the deleting functions. * Libretro buildfix * Windows: Correct some stdafx.h paths. * Adnroid: Add back arm32 files for libpng. * Android: Fix include paths. * Global: Add back arm files for libpng. * Merge ext/native/ext/... directly into ext. * ByteSwap.h results in a file name collision on some systems with byteswap.h. Fix this by merging it into BitSet.h. * Additional UWP buildfix * UWP buildfix * retro buildfix * Buildfixes * Remove some TLS. * Remove unnecessary use of thread local storage * Remove some color util functions * Move buffer.cpp/h from base to Common * Buildfixes * Finish getting rid of basictypes.h * Merge base/basictypes.h into Common/Common.h (mostly). * Merge ext/native/stringutil.cpp/h into Common/StringUtils.cpp/h. * Remove old define for thread local storage * We no longer use TCHAR. * Remove our usage of ssize_t * Delete more useless math code * Delete unused math code * Delete more old detritus * Delete some unused string functions * Very minor optimization (divisions by constants are faster unsigned) * Delete unused backtrace.cpp * TimeUtil.cpp cleanup * Fix issue with duplicate texture dumps. * Add PSP color shader * SDL: Adjust locale parsing for Ubuntu. * Core: Fix memory size check. * fix #13471 * glcore context switching * Don't cache time in a variable. * Enable BlockTransferAllowCreateFB for Burnout Dominator. * Some GPU code cleanup. Disable some unnecessary reporting. * More cleanup * Cleanup * IndexGenerator::AddStrip: Avoid the fallback by writing a few extra indices if necessary. * Also optimize IndexGenerator::AddStrip for ARM NEON. * Buildfix * SSE-optimize IndexGenerator::AddStrip. Shaves about half a percent from GoW. * Speed up game start under Windows by not filling the symbol listbox until the disasm window is opened. * Windows debugger: Clean out old remains of multi-cpu support * Reduce string allocations in Vulkan memory allocator * Revert a bad optimization in word wrapper * An attempt to improve connection stability. * Fixed returned error code on sceNetAdhocctlDelHandler * Minor fix to sceNetAdhocctlGetPeerInfo * Added more info on some sceNet logs * Prevent sceNetGetMallocStat from spamming debug log on some games. * Remove some reporting that's normally just the result of garbage-as-display-list-execution. * Remove an allocation in the word wrapper. * Fix slowdowns due to careless use of auto * Mark the PPGe font texture as reliable to avoid hashing it. * Minor optimization in wrap_text.cpp * Fixed PdpStat and PtpStat info * Fixed returned error code of sceNetAdhocctlDisconnect * Quick fix for #13459 * Fix regression where Gran Turismo ended up recreating the framebuffer on every frame in the menu. * Update submodule ffmpeg to master * Remove unused lastBoundTexture from Vulkan * Comment fixes. Minor tweak. * Cleanups in/around BlitFramebufferDepth * Remove redundant bind on GL texture build. Improve dirtying of texture state. * Remove dirtying of TEXTURE_PARAMS from ForgetLastTexture, not its responsibility. * Set the texture dirty flags when binding a new framebuffer. * Added alerted flags info on AdhocSocket to be used on PollSocket * GPU debug stats: Show how many bytes of texture data we hash per frame * Simplify NotifyFrameBuffer - only needs one call for both "channels" now. * Share GPUS stats formatting code between the backends (easier to add new stats) * Have to invalidate "lastBoundTexture" when binding framebuffers as texture. * Remove some unnecessary function parameters, improve some comments. * Using REPORT_ONCE to report some of GameMode HLE existance. * Implementing Adhoc GameMode HLE * Minor changes to adhoc timestamps * A couple of D3D11 fixes. * Fixed crash issue when creating/connecting to a null group name. * Minor improvement to gl_debug_log.h * Fix bug in GLES texture filter setup * The new asserts found something. * Unify BlitFramebufferDepth. * Make the implementations of CopyFramebufferDepth more similar. * Unify some GPU_SUPPORT* bits * FPURegCache: The invariant checking is very slow in debug mode. Let's only turn it on when we need it. * More asserts * Use system date format on savestate as well * Buildfix * Help the compiler out a little bit in IndexGenerator::AddStrip. * Some header include cleanup * Add missing asserts after some VK resource creation functions * Don't over-invalidate textures when a framebuffer is created or modified. * Sneak in a fix for a limited memory leak in Vulkan vertex cache * Delete TexCacheEntries that get replaced by a framebuffer * Fix bug in new framebuffer code, reducing unnecessary texture invalidations. * Check whether there may be more than one save file names by mode. * Cache 60 FPS requirement * Fix an issue of major performance drops when using accepted PTP Sockets. * More moves * Also move video filtering override. * Move overrides to the end of GetSamplingParams * Switch to a returned value and rename these functions. * Unify/centralize SetFramebufferSamplingParams. Some include cleanup. * Make the signature of all the SetFramebufferSamplingParams the same * Workarounds for D3D9's very limited mip level control. * TextureCacheGLES: Also share the same sampler calculation for GLES. * TextureCacheDX9: Use the already centralized sampler setup code from D3D11/Vulkan. * Comment fix * Making sure the are no compiler warnings on adhoc code on android * Prevent Client side from forever re-trying to connect to Exited Host on Shin Sangoku Musou Multi Raid 2 * Improve readability of the boolean expression mess in GetSamplingParams * User chain support * Linux: Use MAP_NORESERVE when finding a memory base pointer. See #13187 * TextureCacheCommon::UpdateSamplingParams no longer takes a TexCacheEntry * Always use a linear filter for video, unless forcing NEAREST filtering. * Texfilter: Rewrite some checks in GetSamplingParams to be faster and more understandable. * Remove some outdated debugging code (SetDebugTexture) * Fix libretro OSX build * MemMap: Check for MAP_FAILED in mmap call. * Fix GetCurrentTextureDebug * Try unknown's workaround for clang code gen bug. See #13187. * Further simplify framebuffer matching. * SaveState: Update to latest Snappy v1.1.8. * x64: Fix stack alignment in vertex decoder, just because. * Optimize a couple more single color conversion functions * Optimize the DarkStalkers software rendering path a little more. * Show how many times we evaluate framebuffers per frame in debug statistics. * Re-fix BOF III - accidentally lost the texaddr offset * Mostly fix Katamari by boosting fbs from the same frame * Decouple framebuffers from texcache entries entirely. * Update symbol list of disassembly window when loadexec. * Don't read data more than data size of pgd files. * Remove fbCache_ from TextureCacheCommon.cpp. * Make SetColorUpdated static, reorder some fields * Minor cleanups in CaptureDevice * Fix Failed to Bind already used port issue on Android (and probably linux too). This should fix Dynasty Warrior Strikeforce and Shin Sangoku Musou Multi Raid 2 * Avoid getting Fatal signal 6 (SIGABRT) on linux/android when losing connectivity to the Adhoc Server. * Allows reusing the same port for PtpListen and PtpOpen. This fixes Shin Sangoku Musou Multi Raid 2, and probably other games with similar issue (ie. Dynasty Warrior Strikeforce) * Clients shouldn't try to detects timeout of other clients, because most of the time the client side doesn't have timeout information given, better wait for the host to tells them if a client got disconnected. * Sleep a bit longer, especially when PPSSPP paused. * Prevent spamming the log too much on some games * Fixed sceNetAdhocMatchingGetMembers error return value * Add option for the clear-fb-on-first-use speedhack. See #13295 * Resolve Adhoc Server DNS early and cache it so we don't need to resolve it again later. * Stop waiting for connection on Exit to Menu to prevent causing lags. * Combining PDP and PTP socket's array into a union array. Fixes Hot Shots Tennis that doesn't works well with socketId > 255 * softgpu: Correct cull handling for sprites. * Headless: Setup logman earlier. * GPU: Allow culling in through mode. * Plugins: Schedule plugins before game thread. * Plugins: Oops, typo. * Plugins: Support for loading game-specific plugins. * Module: Split out module start to use externally. * Simulate blocking PtpFlush * Allows blocking socket simulation on multiple threads simultaneously * Making use Adhoc SocketAlert Flags to stop/abort blocking sockets * Fixed return value when using Automatic Wlan Channel. Fixes Ridge Racer 2 and Warriors Orochi 2 * Changing default Wlan Channel to 11 on Automatic to be the same with real PSP * Prevent sceNetGetMallocStat from spamming Info Logs * TexCache: Correct detaching textures. * Net: Fix memory corruption on save old state. * Net: Correct save state from old loaded state. * TexCache: Rename "Invalid" attach to "Inexact". * TexCache: Always apply detach matches if found. * GE Debugger: Include game ID inside dump file. * Debugger: Add formats to breakpoint logging. * Fixed SceNetAdhocctlParameter structure * Added some more info in Debug Log to help debugging * Added another HexData printing with offset and ASCII contents to help dumping some data in the logs * Fixed an issue where the 1st line showing 17 bytes of data instead of 16 bytes like the rest of the lines * Ignore SIGPIPE error on certain system (ie. Linux) * An attempt to implement AdhocSocketAlert * Oops forgot to replace these numbers with const on adhoc socket reindexing PR * Imp sceKernelFindModuleByName * Reindexing PDP and PTP socket using const/var instead of using confusing raw numbers * Fix crash issue due to out of bound when indexing PDP socket * Add draft sceKernelFindModuleByUID (#13380) * Fix Phantasy Star Portable 2 Timeout issue * Fix multiplayer on Valhalla Knights 2 * Fix AdhocMatching P2P Mode. This fix Bleach Heat the Soul 7 * Fix crash in Digimon Adventures. * Minor changes to make sure the output struct/arg have similar value to the one from prx file (based on Kingdom Hearts BBS) * Don't allocate PSP's Memory during DoState * Fix communication issue with Adhoc Server where ping to the Adhoc Server sometimes getting socket error 10053 and disconnected from Adhoc Server * Fix possible stalled thread when PPSSPP closed down * An attempt to reduce the lags/stutters during multiplayer caused by improper blocking behavior. * Increasing the shutdown delay so that there will be at least one "4=sceUtilityNetconfGetStatus()" after "0=sceUtilityNetconfShutdownStart()" instead of directly to "0=sceUtilityNetconfGetStatus()" (just like what happen when using utility.prx file with KHBBS on JPCSP) * An attempt to differentiate adhoc connect, create, and join. * Oops we already have local mac stored in context, no longer need to getLocalMac again * Fix connection issue on games using AdhocMatching due to sometimes events are removed prematurely before being processed. This fix Gran Turismo where some peers could permanently be in "busy data" state. * Fixed possible crash issue due to lingering leftover callback events from previous multiplayer session. * Avoid using hleLog during a Shutdown * An attempt to sort AdhocMatching Member List in order to make a consistent list on all players (based on Host). Also fixed some disconnection issue on other players when a player is leaving the room on Gran Turismo and Patapon 3. * An attempt to make PDP and PTP ID to be unique so they can be polled properly together without getting conflicted ID. This fixes Gran Turismo. * An attempt to fix sceNetAdhocPollSocket to works properly. This fixes one of the multiplayer mode on Bleach Heat the Soul 7 * Making sure the 1st 2-bits on the 1st byte of MAC address' OUI are zero to prevent issue with some games (ie. Gran Turismo) * Default to P2P/Parent's MAC address if the target MAC on sceNetAdhocMatchingSendData is 00:00:00:00:00:00 (need to confirm whether this is correct or an error should be returned instead) * Ignores the 1st byte of MAC address when comparing, since there might be games (ie. Gran Turismo) that tries to tamper/change the 1st byte during multiplayer upon use. * Use >= 0x03080000 instead of 0x0307FFFF * Add a check in sceKernelTerminateThread * Look in the mirrors or not depending on whether the texture's address is in the mirrors (detected as a depth texture). * When going the other way, there can be multiple textures that need updating. * Partially fix Katamari (flicker due to choice of the wrong depth buffer still happening). * Reschedule after resuming thread from suspend. * Oops, crashfix for late change * Add some ONCE-reporting of multiple candidate situations * Forgot the if, oops. * Shrink the "Cardboard VR Off" button. * Test Drive: Allow virtual framebuffer copies. This eliminates the hyper expensive readbacks. * Apply the scoring model when creating/updating framebuffers too. * Switch framebuffer matching to a scoring model. * Extract AttachFramebufferToEntry function * GE dump loading: Try to use the correct GameID so compat.ini flags apply. * Add a check in sceKernelTerminateDeleteThread * Remove wrong assert. Should fix #13354 * cmake: Remove outdated ARMV7 define. * Global: Remove ARM64 define. * GPU: Avoid compile error if ARM64=1 specified. * TexCache: Try to avoid wrong texcache usage. * TexCache: Improve quicktexhash by ~1-4% on NEON. * Only clear when initializating kernelMemory and userMemory. * Virtual framebuffer copies: Make a more informed guess on appropriate pixel format. * Actually clear memory when initializating. * Delete an unused buffer, saving 0.5MB of RAM. * GPU: Remove ReliableHash aliases. * GPU: Hash CLUT using XXH3 with replacements off. * irjit: Switch to XXH3. * GPU: Switch vertex/lookup hashes to XXH3. * GPU: Remove neon xxhash implementation. * Vulkan: Type comparison warning fix. * unittest: Fix build on Android. * Common: Update to latest xxhash. * Net: Reduce PortManager log noise. * Throw in a minor simplification in depal. * Address feedback from #13341. * Fix final subpass dependency for depth * Correctly update image layout to the final one after a render pass. * Log validation errors normally as well as using OutputDebugString. * Improve LogSteps further. Break out PreprocessSteps. * Naming fix, better names for temp fbos * VulkanRenderManager: Improve logging. LogSteps output is much better. * Fix longstanding depth/stencil view issue in Vulkan. Cleans up validation. * Vulkan: Minor fix for depth/stencil pretransitions. Used DEPTH_ATTACHMENT_OPTIMAL by mistake in barrier. * AspectMask fix * Vulkan: Silly typo fix in barrier * Exception: Don't trust sigaltstack(). * SavedataParam: Be careful with const char* to string. Might help #13187 * Update lang submodule * http: Avoid logging errors for would block. * TexCache: Force recreate texture on detach. * Framebuffer manager refactor step 1: Split ApplyFramebuffer into Match and Apply steps. * Framebuffer matching: Don't try to match depth buffers with color if the swizzle bits don't indicate it. * Debugger: Check for no texture before debug bind. * GPU: Properly detect clears. * Quick Vulkan crashfix * Some minor logging improvements that get to tag along the previous commit * More explicit invalidation of any cached state in Thin3D. Fixes #13307 * UI: Use standard text wrapping for chat messages. * UI: Allow text to use native fonts. * UI: Split chat lines using Unicode. * GPU: Fix some case warnings. * Kernel: Avoid two different Heap structs. * Avoid using getaddrinfo during initialization as it could blocked the thread if there is no network * Audiocodec: Fix warning on older clang. * native: Minor header cleanup. * Windows: Show instance counter only with peers. * Net: Use locking consistently for instance counter. * Improve JPEG file detection (mainly for background image use) * Small mistake in sceKernelExitDeleteThread * Add a check in sceKernelExitDeleteThread * GL: Re-enable mipmaps for thin3d textures. * Windows: Make the instance counter go by 1, 2, 3. * Windows: Auto-enable GL validation (debug messages) in debug builds * More work on GL state leaks. Some things really need a redesign. * Net: Simplify local IP lookup. * Net: Cut down on local IP aliasing. * Use ppsspp error name * oop * Fix sceKernelExitThread * Add support for the 8Bitdo SF30/SN30 Pro controllers on SDL. See #13034 * Log the first 100 block transfers instead of just the first one. Should make it easier to spot interesting things without hacking the log code. * Some logging improvements. Show more coordinates for block transfers, etc. * Software renderer clipper: Don't clip on the sides. Fixes #4845 and should fix #7124 for the SW renderer. * Global: Unbreak build. * Buildfix * More Log.h cleanup. * Move MsgHandler into Log.cpp/h * More cleanup of Log.h, move AndroidAssert into MsgHandler.cpp/h. * First step of cleaning up Log.h. Plus a few other bits and bobs. * Fix undesired re-builds after runnning CMake * Buildfixes * Address feedback. * Switch to PPSSPP's assert functions (don't use the system's) * Fix newlines in logging before the manager is initialized. * Buildfix * Remove time_now() - time_now_d() is the replacement. Absolute time values can't be stored reliably in floats. * Android.mk fix * Update .editorconfig to match the encoding of the resource files. * Move timeutil to Common. (Experiment to see how much work it is to move these). * Address feedback * UWP buildfix * Vulkan: Fix tex upscaling 4444 swizzling. * Debugger: Oops, fix comment typos. * Finally delete base/logging.cpp/h. Carefully preserve behaviour on Android. * Fix build of ZimTool/AtlasTool. Had to break the ugly backwards dependency from LogManager to g_Config. * Getting really close to getting rid of base/logging.h now. * Even more base/logging.h removal and fixes * More base/logging.h cleanup * Remove base/logging.h in a whole lot more places. * Remove base/logging from a lot more files in native * Remove base/logging.h from a whole bunch of files in native * Remove base/logging from UI and more * Remove most instances of base/logging.h from Common, Core, GPU, more * Replace base/logging.h in VulkanContext and parts of native * Remove ELOG/ILOG/WLOG from the Android C++ code (mostly) * Recategorize some logging, in preparation for what's to come. * Fix menu navigation from axis in linux * Fix build with clang-cl * Fix SSE detection with clang-cl * Fix Windows/CMake build with Visual Studio * Shows AdHoc and Access Point Connecting... Dialog * Making sure std::min/max are not overridden by windows header's min/max * Moving reused adhoc function out of sceNet function to prevent getting extra SCENET log * An attempt to simulate a fake PSN authentication on Patapon 3 * Renaming sceNp* NIDs functions to their proper function names. * Really no need to call clear() in the constructor for AudioChannel. * Disable the instance counter in libretro builds. * Fix some minor issues found by address-sanitizer on Linux * UninstallExceptionHandler: Zero-initialize some structs. I've seen some weird crashes on the free() on Android. * Minor logging improvements * Global: Buildfix for parsers. * Global: Move string number parse to text/parsers. * Global: Reduce ini_file header complexity. * Global: Make stringutil includes more explicit. * Move Section out of IniFile so it can be forward declared. Unlocked further improvements to build speed. * Can't avoid sstream in ini_file.h, it seems. * Buildfix * Remove sstream from stringutil.h. See #13267 * libretro: Buildfix. * SaveState: Rename ChunkFile files to Serialize. * Global: Remove some unused header code. * SaveState: Split out Do types to reduce headers. * Audio: Avoid exposing fixed size queue in header. * SaveState: Add header to other makefiles. * Global: Remove unnecessary includes. * UI: Fix an override warning. * Audiocodec: Silence a known warning. * Global: Cut down on file/string includes. * HLE: Fix some missing error logging. * SaveState: Split Do() into a separate header. * Address feedback * Minor: Initialize a struct. Decrease logging in sceMt19937. * Remove partial comment * Vulkan: Implement depth texturing through depal. * Some fixes * Vulkan/generic: Initial prep for depth texturing * Optimize value conversion in (unused) depth readback. * These convenience overloads don't work in 32-bit builds, remove them. * Set debug names for more framebuffers and textures * Allow passing in an object name tag when creating framebuffers * Vulkan: Start adding object names for easier validation debugging * (Libretro) Buildfix for Windows * Remove double disable function on frame duplication * Enable pixel depth rounding for Nayuta no Kiseki. See issue #8744. * Logging improvement * Remove some unnecessary reporting. * Fix issue where after a backend change restart, the new instance was considered secondary. * Fix #13251 for D3D11. The remaining issue in #7124 should be fixed. * Expand the viewport to cover the scissor region, if it doesn't. Fixes #4845 (bloom in Dante's Inferno). * Viewport state conversion: Move the pixel scaling to after the overage clipping. * Remove the LARGE_VIEWPORTS separate path. The fewer paths the better, all need to work anyway. * Also correct the allocated size. * Correct the alignment size when allocate memory at a position. * UI sound fix * Be a little more aggressive discarding non matching framebuffers when texturing. Enable create framebuffer from copy, fixing #12345 * Texture from framebuffer: Logging improvements * Clarify, but don't yet remove, a perf hack for ES devices. Remove a unused sync parameter from readbacks. * Improve logging of unknown syscall imports. * Rename FramebufferDX9.cpp/h to FramebufferManagerDX9.cpp/h * Rename FramebufferVulkan.cpp/h to FramebufferManagerVulkan.cpp/h * Rename FramebufferCommon.cpp/h to FramebufferManagerCommon.cpp/h for consistency * Move a line to a better place * Expose SYSPROP_SYSTEMVERSION to Libretro Android core. This fixes crashes with targetSdk 29. * Fix Android Libretro build issues. * Fix texture upscaling and per game setting fix/cleanup * Off by default * Add a setting. Various tweaks to sound triggering. * Add a couple of more sounds. Rename some vars. * Hook up a couple more sounds. Unfortunately clickable back buttons now play both back and confirm sounds... * Hook up the first UI sound, make it play. * Read in WAV files for UI sounds * Initial sound effects * BackgroundAudio: Switch to a heap allocated buffer. * Consolidate BackgroundAudio.cpp into a class * libretro buildfix * SaveState: On section version failure, log out the name of the bad section. * Vulkan debug log: Remove some old exclusions, add a new one (for an old issue) * Minor logging improvements * Fix error in sceUsbMic savestate handling (need to accept old savestates without the section) * Fix crashes issue due to 0 is a valid index to types_, using invalid index like -1 should give a better/clearer stack trace * Save&Restore PSP Thread IDs to prevent using the wrong Thread ID after loading from save state, also making sure DoState have default value * UI: Simplify on/off for hardware tex scaling. * Vulkan: Allow custom texture upscaling shaders. * UI: Add setting for texture upload shader. * Lowering minVer of AfterAdhocMipsCall section. * Rearranged network's After PSPAction creation/registration so that newer one have higher value to prevent network's callbacks triggering the wrong after action after loading from old save state. * Update Vulkan headers to the latest, just to keep up. * Add some comments and const-correctness, and a pointer type fix, to the "semaphore" crypto stuff. * Reorganized Networking UI (#13232) * Init parameters in __UsbMicInit to avoid incorrect initial state when you exit to menu from ingame. * Patapon 3 Fix (#13231) * Imp sceUtilsBufferCopyWithRange and sceUtilsBufferCopyByPollingWithRange (#13206) * minor fix * BuildFix * Also partly implement in sceUsbCam. * Flush audio buffer when a transmission is completed. * Do state. * Use UTF-8 code page to get the device names. * Add basic Microphone support on Windows. * Fix alpha channel handling in xBRZ texture filter shader * Add two Kernel_Library's nids (#13218) * Added a fake thread to process Apctl Request Events into Apctl State Changes * Fix some lint warnings, and a "toast" on graphics init failure (instead of previous crashes) * Android: Reduce asserts during startup. * Some renaming and cleanup in the Android audio code * Android: Can't call AlertDialog.Builder.setOnDismissListener before JELLYBEAN_MR1 * GL: Add some paranoid checks. Remove a useless option. * Forgetting "return true" fooled the optimizer into crashing. Fixes #13215. * oop * Add two SysMemForKernel's nids * Add two ThreadManForKernel 's nids * Remove unnecessary vector from thin3d_gl texture handling. * Remove wrong comment * Don't trust the messy error checking in EmuScreen with figuring out what to do with zip files. * Reduce use of multi-byte char switches.. saw this go wrong when stepping!?! * ExceptionHandler uninstall: Don't crash if no exception handler already installed. * Add some threadman's nids * Added more stub for some unimplemented sceNetApctl* functions * Add two ModuleMgrForKernel's nids * Debugger: Add memory.read_*, memory write_* * Attempt to fix an issue when the 3rd player joined causing problem to other players on Patapon 3 (this may also affects other games that use AdhocMatching) * Added more info to AdhocMatching Logs to get a better insight * UI: Fix consistency in vsync setting for iOS. * Locking before changing peer linked list order, just to be safe. * (Libretro Windows) Buildfix * Added target/destination IP & port of sceNetAdhocPtpConnect in the log to get better insight * Fix some logs text * Fix an issue where a player got disconnected when another player tries to join. This should affects games that use AdhocMatching such as Patapon 3 * Small perf optimization in debug mode (surprisingly expensive to do a vector lookup here). * Libretro: Update minimum windows version to Vista. Committed on behalf of twinaphex * D3D11 - don't forget to unbind secondary texture when we need to unbind. * Just to be safe since SO_MAX_MSG_SIZE may not be available on all platform and forcing the definition to what windows use might be a bad idea. * Making mac2str function easier/cleaner/safer to use for logging purpose * Do UPnP stuff on it's own thread to prevent causing stutters/lags during multiplayer game due to blocking socket behavior on miniUPnP * Provides quick IP fill on Adhoc Server IP address setting to makes player's life easier :) * Need to make sure already connected to Adhoc Server before Creating/Joining a group. (Fix GTA VCS failed to join a group and unable to see any room) * Reconnect to Adhoc Server when disconnected while still having the AdhocCtl Inited (ie. due to timeout or network failure) so players doesn't need to reset the game to reconnect. * Fix issue when loading save state created from previous test version * Correct a crash on a missing kernel object. * Fix timeout comparison * Minor fixes * Fix possible crash issue during Networking Cleanup * Fixed PortManager fallback Cleanup issue when exiting PPSSPP due to early WSACleanup * Added an option to Disable Nagle Algorithm (Enable TCP No Delay) * Fixed UPnP port opened by PPSSPP detection, and Updated PortManager to be compliant to general purpose usage * Added a UPnP option to use original port for external port instead of using the shifted port by port offset, to be compatible with real PSP or other PSP emulators * Further libretro buildfix * Making sure there are no warnings on adhoc code when building on android studio * Fixed GvG Next Plus, Phantasy Star Portable 2, and some minor changes * libretro buildfix? * Attempt to fix compilation error on Linux * Fix Blinking game room issue on NFS Most Wanted, this will also fix lobby issue on Ridge Racer 2, Naruto Kizuna Drive, etc. * Backport Mac/iOS buildfix from a later commit * Use the alloc size from real PSP for FONT_OPEN_INTERNAL_STINGY mode. the * Added UI to change WLAN Channel. * An attempt to fix socket's behavior inconsistencies across platforms. * Implement ANR2ME's solution for miniupnpcstring.h * Oops * Create an Android.mk for miniupnp * Windows: Run the upnp string gen script regardless of architecture, and in UWP. * Update the gradle version again. * Add PortManager.cpp to Android.mk * Switch to my miniupnpc fork with a UWP fix * UWP: Unify linker options * Set up Windows UWP project for miniupnpc. * MiniUPNPC: Windows: Try to fix build on VS 2017, add more platforms. * Fix UPnP error detection * Added UPnP Support * Windows: Add command to load up a new identical instance of PPSSPP. * Temporary buildfix * Warning fixes * Backport a macOS buildfix from later * Fix Local IP detection on non-Windows system * Making sure Adhoc codes doesn't have compilation warnings * Enabling KeepAlive on sockets * Increasing the extra delays on Adhoc's callbacks just to be on the safe side, also decreasing the default network's timeout to be noticed sooner * making sure there are no alignment warnings related to member of packed struct on android * Improved multiplayer stability regardless of I/O Timing method * Fix i18n type * Improved multiplayer compatibility on some games (ie. GTA VCS, Naruto Ultimate Ninja Heroes 3, DBZ Shin Budokai 2, Power Stone Collection, .hack//Link, etc) * Another buildfix * Buildfix * Separate each AdhocMatching callback's buffer, since callback aren't immediately executed thus using shared memory address may corrupt previous data * Making sure adhoc callbacks runs on AdhocThread * Silence secondary instances. * PSP kernel: Improve logging when accessing bad kernel object handles. * Make the instance counter global and initialized at startup. * Remove some _XBOX stuff * Apply a few lines from "Added UPnP support", removing extra WSA calls. * Make PPSSPP_ID persistent every reset/changing game thus have persistent localhost IP * Excluding Android from multiple-instance feature because i'm too lazy to learn ashmem :D * Oops forgot to change this also for multiple-instance to work properly * Support multiple instance of localhost Multiplayer on 1 PC * Prevent reporting a bad memory access just because Tekken creates a mutex with a null name. * sceMpegAvcCsc: added range validity tests. * Buildfix * Third part of getting rid of PanicAlert * Step 2 of removing PanicAlert * Step 1 of removing PanicAlert * Remove category from _assert_msg_ functions. We don't filter these by category anyway. * Fix a bug in crashhandler where we could end up disassembling far too much. * EditorConfig: Separate indent style for libretro. * Display: Allow unthrottle to skip only flipping. * Support full VSync control in SDL OpenGL. * Improve some logging, and print the line number from PanicAlerts. * Update lang submodule * Eliminate an unnecessary global g_Vulkan. * Windows/Vulkan: Don't destroy the surface during resize, no need. * More buildfixes * Buildfix * SDL: Avoid destroying the surface on resize. * Cleanup log output on swapchain/surface recreation. * Buildfix. Checking _POSIX_VERSION is not recommended anyway. * Crash: Show disassembly of the instruction causing the crash, and the symbol name. * Split the fault handling from MemMap.cpp to MemFault.cpp. * Update README following unknows markup way * Savedata: Correct AM/PM and time/date settings. * Travis: Don't update python3. * Fix * (Libretro) Buildfix - add missing file x64Analyzer.cpp * Windows ARM fix, cleanup * Refactor MachineContext.h to reduce ifdefs elsewhere. * There's no sigcontext on 64-bit iOS either, apparently. * Yet another iOS buildfix attempt * Another iOS buildfix attempt * Various platform buildfixes * Make fastmem memory exceptions report the exceptions to Core correctly. * iOS buildfix attempt * HandleFault: Add missing nullcheck * Try USE_SIGACTION_ON_APPLE on IOS. * MachineContext, Linux/Android: Try to support android-x86 (32-bit) * Add x64Analyzer to Android.mk. Some minor cleanup * More info on crash screen * Exceptions: A bit more consistency in callback registeration. * Mac/Linux buildfixes * Draw a minimal crash dump on the emu screen after a crash (if bIgnoreBadMemAccess is false). * ARM/ARM64 instruction analysis, hook up to handler * Skip bad reads/writes by the guest executable. * Simple exception handler so we can ignore accesses that happen within the PSP memory space. * Switch to a fence instead for readbacks. Some sources suggest this is better than idling a queue or device. * Readback: Downgrade from vkWaitDeviceIdle to vkWaitQueueIdle. Probably effectively pretty much the same. * Osk: Draw shadows on all the letters. * MsgDialog: Show better error messages. * MsgDialog: Allow text to be wider. * MsgDialog: Add scrollbar when message is long. * PPGe: Draw nicer drop shadows. * PPGe: Handle text shadows more consistently. * Vulkan: Buildfix. * Vulkan: Make sure textures/samplers are unbound at the end of PresentationCommon::CopyToOutput. * Revert "Disable a new compiler warning that doesn't do us much good" * (Libretro) Add MSVC 2019 target * Change libretro.cpp to confirm to libretro code formatting conventions * Disable a new compiler warning that doesn't do us much good * (Libretro) Add optimal input read codepath - bitmasks * Remove irrelevant comment * Move the Vulkan swapchain out-of-date checking to the vkQueuePresentKHR call. * GLES: Invalidate framebuffers bound DONT_CARE. * Kernel: Check thread switch PC in release. * jit: Add some basic checks in armjit/arm64jit. * x86jit: Trigger exec exceptions. * irjit: Add jump crash checks. * UI: Allow non-ascii on crash dump screen. * Core: Track exception on bad jumps. * Core: Reset exception info on resume/reset. * Kernel: Add a bit more thread info on crash. * Add custom GLEW - interfaces with libretro get_proc_address - we need this for compatibility with DRM/KMS and Wayland contexts - otherwise we're limited to GLX context * Travis: Use the default macOS image. * Update v1.10.3 readme link * Expose more information on the crash screen (current kernel thread) * Address some feedback * Draw a minimal crash dump on the emu screen after a caught crash. * Formalize "core excpetions" as a concept * Some code reformatting/renaming * Centralize handling of memory exceptions a bit * Split CORE_ERROR into CORE_BOOT_ERROR and CORE_RUNTIME_ERROR * Update version for 1.10.3 * Update lang submodule * Update README for 1.10.3 * Travis: Disable OSX/iOS until we can fix them * Touch control layout screen: Make the expanded click zone around the controls symmetrical. * Kernel: Add a little paranoia check on chained mipscalls. * Fix decimal part * Touch control layout: Make dragging a lot less "jumpy" * TouchControlLayoutScreen: Reorder functions in the file to make more sense. * Refactor TouchControlLayoutScreen - break out the actual editor into a separate view. * (Libretro) Makefile build fixes * (Libretro) Buildfixes * Change wording of camera notch ignore setting * Update version for 1.10.2 * Update README.md for 1.10.2 * Add some paranoid checks in AfterMatchingMipsCall::run(). * Add automated script for link on readme * Android: Add option to ignore camera notches when sizing the display. * Remove unnecessary logging of preview formats * Link PR and issues in README * Screen: Unlock the inputLock_ mutex slightly earlier in processFinishDialog * Revert "Remove the I/O on Thread option - treat it as always on." * http: Check cancel flag more often. * Sneak in some paranoia in InstallZipScreen.cpp (another one from #13057) * Check that we actually got a preview size. * CameraHelper: Do a better job of choosing an appropriate preview size. * Add a try/catch to Android camera device listing. Might help #13091 and the issue seen in #13057. * Change default rendering resolution on Linux to auto * Fix radio button in "Window size" menu * Update submodule URL * Fix reliability of the CMake generated version * README.md update * Update version to 1.10.1 * Update README, lang submodule for 1.10.1 * SaveState: Prevent edge case on old save state. * SaveState: Make sure to default init net data. * Add some excessive null checks to GameScreen::render(), might fix the crash seen in #13057 * Disable the "Duplicate frames" feature if frameskip != 0. Works around / Fixes #13068 * Some paranoid checks in PPGeDraw. Might help the crash seen in #13047. * Downloader: Join threads in CancelAll * D3D9: Fix a sign mistake generating the projection matrix. Fixes #13063 * Different handling of Download lifetimes. Might help an issue from #13057 (1.10 crash mysteries) * cmake: don't install bundled glslang * Qt: unbreak build without SDL * TextureDecoder: Fix misuse of NEON on all armv7 * Vulkan: Correct secondary texture binding in Draw. * Draw: Allow 2 textures bound in Vulkan. * GPU: Add sampler1 for postshader orig source. * Draw: Fix textures and samplers at an offset. * Draw: Use uniform locs for GLES, add samplers. * GPU: Alternate FBOs for chained postshaders. * GPU: Avoid immediate postshader FBO recreate. * Android: Request stable layout and update on focus. * GLES: Use debug groups for render steps. * GLES: Avoid duplicate state resets. * GLES: Delay buffer use in vertex cache. * GLES: Fix disabled vertex cache code. * GPU: Try a bit harder to determine safe size. * Vulkan: Match safe size behavior on all backends. * Io: Fix LBN timing for virtual discs. * Io: Cleanup access bits for files. * Headless: Handle umd mapping with block devices. * Io: Open sce_lbn references and whole ISO faster. * Io: Account for OpenAsync timing. * Io: Fail without fd on bad device in OpenAsync. * Io: Improve non-async open timing. * Io: Track whether the game is on a UMD or storage. * Io: Simulate VFAT bug only when simulating FAT32. * Io: Improve timing of sceIoOpen(). * Io: Cleanup sceIoOpen errors and logging. * Windows: Make init crash warnings more generic.- Add Excludearch for PowerPC- Update to version 1.10~git20200627: * Update version number to 1.10. This required changing the Android version code pattern, but should be ok. * Update lang submodule again * Archive changelog for older versions * Add https://github.com/hrydgard/ppsspp/issues/11974 * Update lang submodule * Partly clean up SDL resize code, should help #11974 * Enable Vulkan validation in SDL debug builds * Update Lang * Minor style * Update readme for v1.10 * Logging improvements and warning fixes. * Finish the Linux part of this change * Vulkan: Recreate the swapchain if we get too many "out of date" frames. * Buildfixes * Move the responsibility to register the debugutils callback to the VulkanContext. We only use one anyway. * Simplify the validation interface code, bugfixes * Vulkan: Remove support for the old VK_EXT_debug_report extension * Update lang and pspautotests submodules * oop * oop * Fix by @unknownbrackets * oop * Add a sceOpenPSID_driver nid * Add sysclib_strncmp,sysclib_memmove * Reuse some already translated strings * ColorConv: Fix typo introduced in #12882, fixing #13014 * More README updates * More README.md updates * Don't forget rpi4 * Incorporate unknownbrackets' suggestions for the README.md update. * iota97's suggested README.md items. * Android: Fix odd screen centering with insets. * Update lang submodule. * Update README.md for 1.10.0. * Real support Code Geass: Lost Colors chinese patched version * Some work in sceKernelPartitionTotalFreeMemSize,sceKernelPartitionMaxFreeMemSize * Add Kurok (homebrew with a distinctive GameID to compat.ini ForceMax60FPS. Fixes #13025 * Add some ThreadManForKernel nids * Change to @unknownbrackets logic * oop * Add sysclib_strstr * Link to buildbot builds of PPSSPP * Add sceKernelStdout * Kill the log as @hrydgard suggest * Reduce sysclib_memcpy log level * Real support "Hatsune Miku Project Diva Extend" chinese version * Fix logging as @unknownbrackets suggest * Wrap sceKernelUnloadModule in ModuleMgrForKernel * Wrap some SysMemForKernel * Forget HLE_KERNEL_SYSCALL flag * Wrap sceKernelExitVSHKernel * Warp some ThreadManForKernel * Fix some bugs and style for #12994 * rudimentary serch function added for the memory dialog * Code style fix * Revert "Repeat of the experimental commit, was too fast for the build bot." * Repeat of the experimental commit, was too fast for the build bot. * Revert "Experimental commit: Bump up scratchpad size so that Android will act like Windows in #10196 (Spider-Man 3)" * Experimental commit: Bump up scratchpad size so that Android will act like Windows in #10196 (Spider-Man 3) * VFPU interpreter: Improve some error messages, after seeing a bad one in #10196. * We need to check for renderpass change and dirty here too. What a mess.. * Annotate calls to RebindFramebuffer with their cause. * Vulkan DrawEngine: Move the renderstep changed check until after the last place where it can change. * Disable range culling for MGS:PW and MGS:PO. See #12348 * Typo fix. Will hopefully help #12992. * Have DisplayLayoutScreen implemented insets manually. Gave up refactoring it. * Handle insets correctly for the in-game final screen blit. * Minor refactor in PresentationCommon (combine loose coordinates to a struct) * VulkanQueueRunner: Fix some uninitialized struct members (not sure if it has any effect) * oop * Remove log as @unknownbrackets suggest * add raspberry pi 64 bit build files * Experimentally enable pixel-depth-rounding for Tales of Phantasia, tries to work around an Exynos driver bug. * Time to update gradle again (Android Studio 4.0 was released) * Fix minor bug in StereoResampler debug display * UWP: Fix safe insets. * Vulkan: Ensure depth/stencil load match on Mali. * Vulkan: Trivially kill more empty steps. * Travis: Build UWP also. * UWP: Link ChatScreen. * UWP: Stub new inputbox system func. * UWP: Buildfix for controller vibration. * UWP: Add libpng17 include path. * UWP: Include TextDrawer in main MSVC project. * UWP: Fix TextDrawer with latest changes. * Thread: Default to kernel threads from kernel. * GPU: Don't allow step id to decrease at a sync. * Vulkan: Correct viewport flag reset on rebind. * GE Debugger: Fix alignment in GE dumps. * Do a similar thing for D3D (let the backend handle the dirtying). * OpenGL/Vulkan: Rework the contract around dynamic state. Removes some ugly dirtying from the GL render manager. * UI: Lock around removal from dispatch queue. * Remove all those "GLES reset the blend state" comments. * GLRenderManager: Removes some redundant dirtying. Preserves blend state (color mask) across clears. * Vulkan: After binding a new framebuffer, we always need to dirty the viewport/scissor state. * DarkStalkers: Handle the "normal" screen stretch too, not just "wide", to avoid a surprising performance drop. * Exclude a couple more commands from re-execution in ReapplyGfxState. See * GPU: Don't reapply LoadClut each frame. * PPGe: Left align messages in dialogs. * Windows: Workaround for custom build step error. * Windows: Avoid calling git describe 3 times. * SDL: Try to continue if EGL init fails. * Windows: Move git-version update to build event. * Global: Add more other platforms to MSVC project. * Support chain * Memory reading CWCheat * Add postprocessing CWCHEAT- Add QT5Multimedia as build requirement. Fix building of the Qt frontend. - Add %define _lto_cflags %{nil} to spec file. Fix building for Tumbleweed.- Update to version 1.9.3~git20200523: * Headless: Fix flash0/font path. * Debugger: Avoid symbol map if deleted. * Debugger: Don't break during startup. * Android: Buildfix. * GPU: Never set safe size larger than the buffer.- Update to version 1.9.3~git20200522: * [Camera/V4L] Add support for jpeg and multiple buffers * Windows: Ask for a specific device on failure. * Windows: Avoid WASAPI init for a bad format. * Windows: Avoid crash for a mono output format. * Ge: Check stack depth based on args struct size. * GPU: Ignore viewport for scissor of 481. * Vulkan: Label render passes in RenderDoc/etc. * Vulkan: Cleanup some duplicate code. * Correct an issue where reformat didn't work if no renderpass was active due to the use of clear. * Remove a redundant framebuffer bind in CopyDisplayToOutput * Add a name tag for all render steps (GL/Vulkan). Helps with debugging and should be cheap enough (a single pointer per "step"). * Move the check from #12908 into the firmware version check. * Vulkan: Avoid stencilAction != depthAction. * Vulkan: Check driver version for Adreno 5xx bug. * Vulkan: Move Harvest Moon fix to Draw::Bugs. * Vulkan: Stencil initialization: Use the adreno path for Mali as well. * Fix a case of pointer truncation in Vulkan on 32-bit. Fixes #12932 * Vulkan crashfix (pNext was uninitialized)- Update to version 1.9.3~git20200519: * Vulkan: Fix leak and remove extra allocator. * Vulkan: Create FB compatible pipelines in Draw. * Vulkan: Expand logging of render steps a bit. * D3D9: Avoid clearing color on stencil upload. * GPU: Avoid unnecessary clear on stencil upload. * Revert "Experimental commit that effectively reverts the Vulkan part of #12882." * Experimental commit that effectively reverts the Vulkan part of #12882. * Fix the Windows 32-bit build. * Track scissors like we track viewports (bugfix?). * Show "debug build" on the splash screen, in debug builds. * Vulkan: Switch the framebuffer-rebind-to-clear on reformat to, well, a normal clear instead. * Vulkan: Verify scissor as well. * Vulkan: Add asserts to catch no viewport render. * UI: Take reporting screenshot at frame end. * Vulkan validation: Switch to the new Khronos validation layer shipping with recent SDKs. * Vulkan: Stop merge at clear/touched read only. * Vulkan: Make merge pass a bit easier to read. * GLES: Fix invalidation of backbuffer. * Vulkan: Generalize dependency tracking. * GLES: Add dependency tracking for render passes. * GPU: Centralize framebuffer download. * Buildfix * Remove the Audio Resampling setting (now always on). Having it off is not useful because it'll never sync up perfectly over time. * Revert the loop check in StereoResampler, new one could accidentally keep looping when underrun severely (like if emulation stopped). * Add more debug info in scePsmfPlayerStart * Make the IsValidPBP DISC_ID check a bit more lenient. Fixes an issue where some homebrew would no longer show in the list. * Fix homebrew store button to work even after changing grid layouts (it lost its click handler) * Fix a crash bug in homebrew store * Remove our custom atomics code entirely. * Convert atomic code in core and ConsoleListener to use C++ atomics * Reduce the SDL audio buffer size, 2048 is a bit excessive. Port the changes to the Qt SDL code. * StereoResampler: Make sure the target buffer size is large enough, taking SYSPROP_AUDIO_FRAMES_PER_BUFFER into account. * Rename things to make more sense. * StereoResampler: Use C++ atomics * Add some vaguely interesting stats * SDL: If we get an audio device with a different freq than 44100, that's actually OK. * arm64jit: Track writable and non-writable pointers. * Mp4: Cleanup some parameters. * cmake: Fix rpi4 build on newer gcc. * GPU: Fix an overflow loading old save states. * GLES: Specify buffer type just to be safe. * arm64jit: Minor cleanup. * GPU: Allow each shader in chain to have settings. * UI: Translate shader setting names. * GPU: Keep last output size in chained postshaders. * GPU: Prevent infinite loops in postshader chains. * GPU: Force nearest only for the upscaling filter. * GPU: Move calculating render res to presentation. * GPU: Allow postshaders to have parents. * GPU: Update postshader uniforms for each. * GPU: Process all postshader pipelines. * GPU: Cleanup a comment, we use shorts now. * GPU: Move things around to be per postshader. * Simplify how to get the debug stats from StereoResampler * Fix comment * Qt fix * Only show frames per buffer if the number is available through sysinfo * Oops, need to pass an (invalid) slot number in headless too. * SDL: Show the actually used sample rate in system info. * oop * Fix "Improved compatibility of sceGeListEnQueue: verify that stackDepth < 256" * Display the savestate slot number when saving and loading state through shortcuts. * Very minor optimization in PresentationCommon (don't upload the indices every frame). * Fix per game setting and pack setting in vec4 * Use map for settings * Post shader setting uniform * Thin3D: use 16-bit indices. Fixes #12898. * GPU: Oops, don't skip copy if stride different. * Fix DarkStalkers after the just-merged refactoring. * Draw: Small optimization to callback. * Libretro: Add libpng17 to include flags. * GPU: Take A off RGB565 conversion funcs. * GPU: Use texclamp for postshader/present draw. * GPU: Centralize DestroyAllFBOs(). * GPU: Cleanup presentation flipping a bit. * D3D11: Allow pixel shader uniforms in Draw. * GPU: Cleanup skip buffer texture draws. * GPU: Simplify direct render when skipping buffers. * softgpu: Fix postshader on 5551. * D3D9: Attempt PS/VS 3.0 if it doesn't work with 2. * GPU: Use postshader for direct VRAM draws again. * GPU: Use a texture directly for MakePixelTexture. * softgpu: Avoid RB swizzle when using a postshader. * Vulkan: Allow frag shader UBO reads. * Vulkan: Correct missing offsets in Draw. * Vulkan: Correct postshader sampler binding. * Draw: Actually use the index offset parameter. * softgpu: Enable postshader support. * GLES: Fix reuse of vertex data buffer. * GPU: Cleanup leftover postshader stuff. * UI: Allow postshaders on D3D9. * GPU: Move post shader handling to new class. * D3D9: Enable postprocessing of post shaders. * Draw: Enable backwards compat on D3D11 shaders. * Draw: Add more uniform types. * Draw: Allow specifying a tag on shaders. * GPU: Move a bit more to new display approach. * softgpu: Allow display rotation. * softgpu: Allow configuring Google Cardboard. * GPU: Move cardboard/etc. to PresentationCommon. * Vulkan: Fix Draw usage of framebuffers. * GPU: Split FramebufferCommon into two classes. * softgpu: Fix texture overlap. * GPU: Handle buffer overhead in postshader uniforms. * Android: Oops, fix start with space in filename. * Global: Add some defs for MSVC highlighting. * Temporarily disable YuGiOh save fix (experiment in issue #7914) * Improved compatibility of sceGeListEnQueue: verify that stackDepth < 256 * D3D11: Better set current texture to null first, otherwise we can run into another issue. * Fix a comment * D3D11: Fix a bind ordering issue in depal (only a problem with debug layer enabled) * ColorConv: Fix a few conversions that missed the lower bits of each component. * Vulkan: Don't merge render passes where the second one begins with a clear. * Android: Avoid multiple resizes in a row. * UI: Add more options to touch test screen. * UI: Return to game settings after restart. * Windows: Fix GL reinit on backend switch. * Android: Move a bit more size handling. * Android: Reassert sustained perf when going ingame. * Android: Refactor size maintenance to own class. * GPU: Minor lighting cleanup in software transform. * GPU: Split up software transform into phases. * Windows: Add safety checks to WASAPI code. * GLES: Add safety handling for offset depal. * GPU: Calc framebuf offset with right params. * GPU: Avoid a texture offset change in sw transform. * GLES: Simplify the framebuf offset detection. * Vulkan: Framebuffer manager: Use an allocator for "MakePixelTexture" images. * compat.ini: Turn on ForceUMDDelay for Innocent Life. See issue #2830. * iOS/macOS : set bundle version * iOS : File association * compat.ini: Set ForceMax60FPS for Super Monkey Ball Adventures. See #7674. * Make PPSSPP visible in OUYA launcher * Fix: touchscreen evens on upcomming SDL2 versions which includes the same functionality but inside the library * And another mumbo jumbo game (#12857) * Enable ForceMax60FPS for games published by MumboJumbo. See issue #12857 * Vulkan: Discard negative width/height framebuffer blits. Will likely help #12531. * Address additional feedback from Unknown, finally * Assorted fixes (build and crash) * Use PPSSPP's kernel interface to retrieve Heap objects * Address Unknown's feedback * Change to info log * Attempt to make save status * Fix crash in sceKernelDeleteHeap * Attempt to build fix non-windows * remove comment * Try to Implement SysMemForKernel * Move SysMemForKernel to sceKernelMemory * oop * Wrap some SysMemForKernel's nids * Update dialog on Android 10 * iOS Share PPSSPP * Travis: Handle new package versions better. * PPGe: Remove half-pixel offset. * http: Fix thread join on enable/disable. * "Unify" the credits screen. Fixes #12844. * Android: Don't cache env in text drawer. * Update gradle again * GLES: Disable range culling on old Tegras, they seem to misbehave (see issue #12838). * update VS projects * D3D11: Always use accurate depth. * Windows: Send resize when adjusting render mode. * Add "Switch UMD" menu point to Linux version * Improve code readability * Implement PPSSPP specific cheats: * Update more Linux version menu points to correspond to Windows ones * Remove leftovers * Add "Record" menu group to Linux version * TextureReplacer: Generate a default value in the ini files for ignoreMipmap. * Add "Enable chat" menu point to Linux version * Auto rotate over a square * Fixes (stage 3) * Update TextureReplacer.h * Update TextureReplacer.cpp * Fixes (stage 2) * #8714 Unified resolution scaling for all platforms. * Add option to prevent Mipmaps from being dumped * Fixes (stage 1) * Turn on [ForceMax60FPS] for "Fat Princess: Fistful of Cake". Benefits loading times etc. * Update "File" menu to match Windows version * Update "Emulation" menu to match Windows version * Update "Debug" menu to match Windows version * Update "Options" menu to match Windows version * Update "Help" menu to match Windows version * UI: Respect insets with on-device debug stats. * GE Debugger: Prevent crash when stopping execution. * GLES: Update shader uniforms after apply state. * Cheats: Fix use in homebrew on start. * Cheats: Cleanup global usage. * UI: Cleanup old specialized checkbox. * UI: Monitor cheat file changes on cheat editor. * UI: Update cheat file more safely. * UI: Use standard back and checkbox in cheats UI. * UI: Prevent changing memstick path in game. * u8_clamp clean up * Squash commit- Update to version 1.9.3~git20200409: * Travis: Cache macOS python build as a bottle. * Audio: Remove latency setting. * GLES: Re-enable non-float depal shader path. * Update gradle again * x86jit: Force INF * 0 to +NAN.- Update to version 1.9.3~git20200406: * Windows: Prevent applying -1 as inset space. * Windows: Ensure we resize after hw transform swap. * Headless: Fix compile on Android. * UI: Small cleanup in touch control layout editor. * UI: General cleanup in layout editor. * UI: Prevent drag drift in layout editor. * UI: Make display layout editor support 1x PSP. * Fix SDK requirements of Atlas and Zim tools. * Net: Correct pool allocation. * GPU: Track HW tess at start of frame too. * GPU: Reset hw transform once per frame. * GPU: Move hw transform decision to draw engine. * GPU: Update uniforms w/ consistent render mode too. * GPU: Use consistent buffered rendering state. * Setting the width and height to 0 made the frameskip unusable on lakka/libretro with a XU4 with a MALI GPU T628. The result was that bad flickering happened when in frameskip mode. Once it reached 60fps, no flickering, below that flickering. This change fixes the flickering and calls video_cb with the correct height and width. * Travis: build libretro android- Update to version 1.9.3~git20200403: * libretro: Fix Android builds * Mouse 4 as back in menu navigation * android: include path fix- Update to version 1.9.3~git20200402: * Android: Change the display length for "toast" message to Toast.LENGTH_LONG * Touch layout clean up * UI: Properly clamp control positioning in edit. * [iOS] Notch support * Additional rendering fixes for notch * Fix landscape/reverse landscape cutout padding issue, see #12779 * Update the lang submodule * Support drawing around notches on Android displays. Fixes #12261 * Target Android SDK 29. * Vulkan: Pick shaders after calling ConvertStateToVulkanKey because it may end up disabling shader blending * Fix duplicate translation ID * PPGe: Slightly reduce the font size, might help #12764 * Windows: Show a message when failing over backend. * Back to ERROR * Remove outdated code that reset the logenabled flags on non-Windows. Fixes #12291 * Minor log improvement in BlockDevices.cpp * Rember cheat scroll position * HLE: Oops, make sure we don't deadbeef mips calls. * macOS: Fix build * SaveState: Correct compat load with OSK changes. * PPGe: Fix dialog button positioning. * UI: Prevent stretching game icons on detail. * Do not apply sensibility of deadzone skip * Fix translation things * Enable chat input for SDL * Skip deadzone option on tilt * HLE: Fix some misleading logging. * Windows: Fix strange build error. * UI: Translate HAT and left analog the same way. * Use 2 different button for CW and CCW * Core: Add argmask for threadhacks to prevent crash. * GPU: Treat negative light exp same as 0. * Android: Reassert immersive after input dialog. * cmake: Improve building with the system libpng. * Osk: Correct UCS2 conversion. * Auto rotating analog * Camera: Fix missing return warning. * Remove some more uint16_t * More correctly handle UCS2 encoding. * Address feedback * Support a few more wstring functions on non-windows platforms, due to the armips assembler. * Text input: Clearly use 16-bit chars like the PSP, don't rely on wchar_t. * PPGe: Avoid crash with missing metadata. * HLE: Make calling mips funcs simpler. * GPU: Assume a scissor of 481x273 is a mistake. * Io: Apply VFAT hack only to dirs <= 8 chars long. * UI: Allow startup without UI assets. * UI: Avoid crash when atlas metadata is missing. * UI: Avoid cached booleans for simple globals. * UI: Disable render dup frames where it can't work. * Font: Prevent crash on game exit. * Android: Fix dismiss of OSK dialog. * Reporting: Log SceIoChstat calls. * GPU: Avoid divide by zero in garbage displaylist. * GPU: Fix memory corruption with bufw > w. * Add more assets directory paths. * Correcting return value of some mipscalls without after action. * Qt: Correct DPI accounting in font rendering. * cmake: Disable discord-rpc for libretro builds. * Fix the logic around postEffectRequiresFlip so duplicateFrames doesn't require a post shader. * Vpl: Correct allocation order when splitting block. * Core: Use full memory for ELF files. * Reset the useAllocCallbacks on font init. * Buildfix. * Display: Update latched fbaddr on immediate update. * Fix states. * No need to manually decide pending or not for mipscalls. * Net: Stub network sign-in dialog. * Net: Support NETCONF_CONNECT_APNET_LAST request. * NetAdhoc: Match init/term behavior better. * Net: Better simulate sceWlanGetEtherAddr timing. * Net: Handle memory allocation better. * Add option to improve frame pacing through duplicate frames if framerate is below 60hz. * UI: Rebind the backbuffer when drawing UI. * Switch: Add EGL interface. * Kernel: Rename conflicting kernel object names. * Font:alloc/free memory for font file and char bitmap. * Vulkan: Blacklist on Switch. * Core: Add some libnx calls for Switch. * Core: Use a lock for i18n categories.- Update to version 1.9.3~git20200311: * PPGe: Clear unused parts of text image buffers. * PPGe: Correct double spacing in some save text. * libretro makefile fix * Camera: Simplify an expression. * Core: Quiet some warnings. * Android: Delay TextDrawer init in PPGe. * PPGe: Show ellipsis for overly long lines. * PPGe: Use TextDrawer for save UI if available. * PPGe: Make some of the API internal only. * PPGe: Support 8-bit text bitmaps from TextDrawer. * PPGe: Allow overriding text drawer DPI scale. * Qt: Cleanup differences in text hashing. * UI: Refactor TextDrawer to provide bitmaps too. * UI: Minor cleanups to chat UI code. * Fix capitalization of mfreadwrite.h include- Update to version 1.9.3~git20200310: * Windows: Warn if Windows Firewall blocks PPSSPP. * http: Show more detailed status when scanning. * http: Correct new thread executor. * Android: Enable native keyboard for OSK. * softgpu: Correct clear/solid rect BR corner. * Android: Fix upside-down joystick navigation (due to an old sin). * New heuristic for getting rid of unnecessary "antialias-lines". * THe proposed Hive Sweeper fix in #11025 looks right, let's just commit it. * Possible fix for libretro build issue. (blind commit, untested) * Osk: Prevent adding highlighted char past limit. * Core: Avoid shadowing a define. * Io: Correct some error handling for OpenFile(). * Android: Avoid translation conflict in translation. * UI: Move Camera settings lower in Graphics. * Android: Process input prompts more clearly. * UI: Make System_InputBox API asynchronous. * Vulkan: Track down another one of those minor resource leaks. * Module: Reinit gpu only on runtime module load. * Android: Reload game config on storage permission. * Android: Ensure we forget the shortcut on next run. * Update lang submodule * UI: Temporary solution to the layout issue: Remove the gear button from the recent screen. * Vulkan: Ensure scaling happens in cached RAM. * Headless: Prevent crash running graphics tests. * Vulkan: Fix minor vulkan resource leak if inflight frames isn't max. * UI: Simple joystick navigation. Fixes #10996. * Comment fix * Also move out the global stuff from view.cpp/h to root.cpp/h * UI: Break out the hierarchy functions into ui/root.cpp/h * Minor cleanups * UI: Ignore invalid PBPs in game browser. * Tweaked chatbox a little bit * Fix chat color formatting * Fix building errors * Update ab.cmd * group chat options and set enabled ptr * Bug fix * Quick Chat * Add virtual key for opening chat * Rebased and fix the update scroll * build fix * chat screen & chat button position and hide ui on show chat * remove pointer and using update() should fix random crash (thanks Uknown) * Add translation of "You're in Offline Mode" * Build fix for Linux QT * Add support OSK for windows * Android chat empty after : fix * pointer and scroll fix * cmake buildfix * Windows CTRL + C Hotkey * Add New Chat Counter * Android Chat Support * Oops it still random crashed destructor do the fix well * pointer fix random crash & better substring logic * Add translation * Enable chat box * PPSSPP early chat feature rebranched- Update to version 1.9.3~git20200305: * Let's wait 5 frames * Fix wheel up/down and additional mouse button * Android: Fix glslang include path. * Force Polar's Puzzles to use accurate UMD timing. Should help #12677 * Add the glslang include path in another place * http: Avoid detach() in webserver code. * Core: Bring over some file related Switch changes. * Another attempt * Fix atlas tool build on linux * Also try to fix the legacy Android build. * CMake buildfix * Update the glslang submodule, fix the build afterwards. * Better smoothing and added missing break on MOUSE_WHEEL * Fix excessive scroll * Warning fix. * Attempt to replace 0 frame width with valid frame width.(sceMpegAvcCsc) * UI fix * GPU: Restart when changing inflight frames setting. * Fix weight * Move clear game list to new menu * Update lang submodule * GPU: Use old frame when presenting a skip. * Address some feedback, thanks unknown * Fix toggle * GPU: Allow choosing number of inflight frames. * Vulkan: Allow alt speed above 60 with vsync. * Rebase on master * GPU: Add setting to control inflight frame usage. * Warning fixes * Vulkan: Support devices that don't properly support 16-bit texture (like MoltenVK). * Fix bug in atlas gen. * Switch all images to dynamic lookup in the atlas by string ID. * Get rid of atlas tables. * Update atlas building scripts * Modify atlas generator to output binary metadata * D3D9: Allow vsync change at runtime. * D3D11: Respect vsync setting. * Vulkan: Present using FIFO for vsync. * GPU: Centralize vsync interval logic. * UI: Respect resize flag during graphics init. * Debugger: Stop remote server in full shutdown. * Remove support for "lowmem" UI atlas. Had to regenerate unfortunately. * And 2017 again... * Delete unused support for ETC1 texture compression * And fix it on 2019... * Recreate the VS projects in 2017 * Code cleanup * More VS2017 compat * Reformat the atlastool/zimtool source, fix warnings. * Atlastool/zimtool: Try not to require VS 2019. * Atlastool/zimtool: Make it easy to build these on Windows (prebuilt submodule) * Log shader contents to VERBOSE instead of DEBUG. * Update gradle again * ScanForFunctions: Drastically speed up by only trying to insert the newly found functions into the symbol map. * Rename func. * Check whether the audio is actually played in psmf player * Rename rapid fire touch control * Add toggle flag to combo button * Fixes * Switch mode only if needed * SDL analog mouse input- Update to version 1.9.3~git20200226: * Better align and spacing of UI element * Better UI for game version in list view * Toggle mute button * Go for Abbanon approach * Scale font down a bit * Improve stability on non-jailbroken devices * Add a option for game ID+version as well * Show region on game selection screen * Kernel: Delay better in sceKernelReferThreadStatus. * UI: Separate sleep time in frame time graph. * UI: Show refresh rate on more platforms. * UI: Correct refresh rate display. * HLE: Replace Motorstorm pixel read func.- Update to version 1.9.3~git20200212: * UWP: Update "certificate thumbprint" to one that works * Fix linking issue in the UWP build (add camera files to project) * Add some reference line * Framegraph in devmenu- Update to version 1.9.3~git20200210: * macOS permissions * QT Api for Camera (Linux/macOS) * Core: Use a shared_ptr for i18n categories.- Update to version 1.9.3~git20200207: * HttpClient/Buffer: Just some tweaks/sanity checks * libretro: android: ios: Add stub camera functionality * libretro: android: Do not build in the standalone UI * Modify Info.plist automatically * NativeApp: add System_GetPropertyFloat all the places * Qt/macOS: enable HiDPI ( retina display ) support * Remove unused import. * Use System_GetPropertyInt(SYSPROP_SYSTEMVERSION to retrieve version. * Use ASharedMemory api instead of direct access to /dev/ashmem which is deprecated. * compat.ini: Workaround for timing problem in Hot Wheels, see #12604. * Rapid fire touch control * DX9: Simplify some expressions * GPU: Only GL uses a flipped buffer in non-buffered, reflect that in the SW transform code. * Apply viewport before SoftwareTransform so flipping can be checked * OpenGL: Call ApplyDrawState before SoftwareTransform * DrawEngineDX9: Rename lookup table, cleanup- Update to version 1.9.3~git20200127: * Add new listeners in addition to those present which are deprecated * Core: Future proof CSO support a bit. * Location: add HDOP; change speed to km/h; change altitude from geoid to sea level * Do not stop camera if unnecessary * Android satellites info * Common/Hashmaps.h: add missing include * Update macOS system name * Add camera/location support for iOS * Don't shut down camera when exiting games,also re-enumerating devices if * SDL app icon * Avoid divison by 0 * Remove extra newline * Snap resize- Update to version 1.9.3~git20200121: * Partial workaround for #12588. Cameras are now gone from settings though after playing one game... * D3D11: Fix mistake in UI vertex shader for non-textured geometry. Fixes #12587. * Add support for iOS ( completely untested ) * Initial support for vulkan on macOS ( MoltenVK ) * Revert "Android EGL config: Always require 8888, stencil if version >= ICS"- Update to version 1.9.3~git20200116: * Add camera support for linux (V4L2) * Add DEFLATE and MD5 to HLE module blacklist. Replaces #12576, fixes #12570 * Flush other UI element draw before changing to noTex * Fix line rendering in texmode * Render grid * BuildFix2 * Oops * Improve compatibility. * BuildFix * Add camera support for windows.- Update to version 1.9.3~git20200114: * Add another game controller mapping. Fixes #10679 * Loader: If the module range is bad, don't get stuck trying to scan for functions. * Update lang submodule- Update to version 1.9.3~git20200112: * Async I/O: Don't delay on close. Fixes #12549 (MGS:PW crash). * Warning fix * Upload new Gold icon for Windows * PRX Decryption: add pauth decryption * PRX Decryption: add missing decryption keys * PRX Decryption: add support for gzip compressed executables * PRX Decryption: add support for type 0/1/2/5/6 decryption * Windows: Mark PPSSPP as long path aware. * Windows: Make TEMP dir detection long path aware. * Windows: Allow long path for sys directory. * Windows: Support long My Documents paths. * Windows: Allow longer paths in browse for folder. * Windows: Make memory dump long path friendly. * Windows: Allow read only files in load dialog. * Windows: Make open/save dialogs long path aware. * Windows: Resolve module/full paths for long paths.- Update to version 1.9.3~git20200105: * Don't check auAddr. * Check invalid address in sceMpegAtracDecode. * Update submodules assets/lang, ffmpeg * Add headbar icon to Qt * Qt: don't return dangling pointer * Don't use the MAP_32BIT flag on any platform. * Mac: MAP_32BIT is no longer supported in Catalina and breaks. We don't need it anymore anyway. Fixes #12495. * Io: Correct async priority default on async open. * Oops. * fix * Io: Return a better error code for sceIoCancel. * Io: Update async priority more correctly. * Change async priority to current thread'priority if priority = -1. * minor fix * Avoid thread queue out of range by a offset. * Move umd replace to loaders.- Update to version 1.9.3~git20200101: * compat.ini: Add Japanese Game ID for DarkStalkers (Vampire Chronicles) * SDL: Ignore audio switch events in first second.- Update to version 1.9.3~git20191226: * Io: Allow adjusting default async thread priority. * Io: Correct leak on save state. * Just return error if current directory not be setted. * SoftGPU: Convert from 16-bit if unsupported. * Hide "Control" label on top * Disabled grid size if snap is disabled * Fix * Touch controll grid snap * Don't ignore SCE_KERNEL_ERROR_NOCWD in many cases. * IO:Re-grab SCE_KERNEL_ERROR_NOCWD. * IO:Add an extra delay to simulate umd delay in file seek whence.- Update to version 1.9.3~git20191218: * Update build.gradle.. again.- Update to version 1.9.3~git20191201: * vulkan: The GPU profiler could end up writing massive amounts of text, fix some bugs around that. * vulkan: ApplyRenderPassMerge; Add copy / blit destinations to touched buffers. * Vulkan: Enable renderpass merging for all games (was introduced in 1.9 for GoW games). A number of other games can also benefit.- Update to version 1.9.3~git20191126: * Update lang submodule- Update to version 1.9.3~git20191118: * Do not assert in Discord::Shutdown- Update to version 1.9.3~git20191110: * Update CMakeLists.txt- Update to version 1.9.3~git20191108: * Make style more consistent- Update to version 1.9.3~git20191105: * libretro buildfix * Update libretro.cpp * Remove the I/O on Thread option - treat it as always on. * Yet another gradle update- Update to version 1.9.3~git20191103: * Fix vcrs disassembly- Update to version 1.9.3~git20191030: * Oops * Isolate most of the softgpu specialization code to RasterizerRectangle. * Fix a backwards check * Remove unused textureswizzle support (we use shaders instead). Universally support presenting 5551 format directly. * Hack around most of the problems with the save/load dialog. Software stretch gets enabled in non-wide mode, so wallpapers work at a cost of speed. * Scissor fix * Even more speed. * More speed * Buildfix * Further specialization. * More specialization work. * DarkStalkers: Fix display on OpenGL ES. * DarkStalkers: Fix display in the D3D backends. Still broken in OpenGL. * Darkstalkers: Gross hack to avoid the game's own stretch, and present the raw buffer instead for a sharper image. * More darkstalkers work * Detect sprite drawing (1:1 texture mapping), run a simpler function without the triangle state tracking. * SoftGPU: Detect through-mode rectangles from triangle strips * Software renderer: Use hardware color conversion on Vulkan in 5551 16-bit mode * Start slowly migrating from macros * Add a compat.ini flag for software rendering, use it to force on in Darkstalkers- Update to version 1.9.3~git20191025: * Buildfix * Also rename the config setting to make sure it starts out off. * Cardboard VR: Add an on-screen VR OFF button. Enable Cardboard on iOS. * Revert "Remove Google Cardboard support. Fixes #11668" * Update lang submodule, adding Croatian, thanks to HilmBrala * Text drawing fixes * Correct the wrong GL DataFormat enums * GL: remove another unused format * Reduce GL texture format support to the ES minimum. We have to handle these anyway so let's only have one path. * OpenGL dataformat cleanup - pass Draw::DataFormat to the GLRenderManager.- Update to version 1.9.3~git20191022: * Fix the build - there's a Vec3 name collision, fixed it using a namespace. * Vulkan+SoftwareRenderer: Fix screen rotation on Android.- Update to version 1.9.3~git20191020: * Io: Consistently use error codes with OpenFile(). * Io: Return error code for write attempt to UMD. * Io: Change async thread priority if running. * Io: Destroy async threads on reset.- Update to version 1.9.3~git20191020: * Vulkan: Add checks so we don't try to write NULL objects to a descriptor set. * Change Bloom Hack aggressive detection to include GOW games bloom.- Update to version 1.9.3~git20191017: * Use old jit enablement method if clean method fails- Update to version 1.9.3~git20191015: * Fix fork logic * Replace horrible hack with less horrible hack * Fix name collision on iOS build * Move the viewport clamping back to rendermanager to avoid a struct copy in the common case. * Fix misplaced break * Vulkan: Move viewport/scissor rotation to the QueueRunner instead of RenderManager. Add some checks. * Vulkan blend factor: Bugfix and minor optimization * Update last commit to use IsValidRange instead of IsValidAddress. * Code analysis: Skip invalid code sections. May help #12414. * UI: Better way of showing game/savedata images. Fixes #12408 * WASAPI: Discovered by chance that pwstrDeviceId can be null. Treating it as a new device.- Update to version 1.9.3~git20191008: * SDL: Switch audio device when plugged in. * SDL: Add UI to reset audio device at runtime. * SDL: Use a configurable output device. * SDL: Use SDL2 audio API for output. * cmake: Ignore if madbundle.sh fails. * cmake: Remove old qmake options. * [iOS] Resolve SDK 13 Generation * Move window to center * MainScreen: Prevent grid game buttons from becoming too wide if the png has the wrong dimensions. * Vulkan: Always write gl_PointSize, fixes #12364. Remove unnecessary predeclaration of gl_Position. * Android: Setup UI callback earlier if possible. * UI: Allow pinning remote ISO paths. * UI: Handle remote browsing asynchronously. * UI: Cleanup browse button check. * UI: Allow remote paths to be pinned. * http: Use relative paths for remote isos. * http: Don't treat http:// as a relative path. * 1.9.3 commit * Android: Finally fix our display sizing problems for good, hopefully. * Android: Preparation for future cutout (notch) support * Increase max aspect to 2.4. Fixes #12349 * Logging improvements * Android: Setup UI callback before settings change. * Fixes * Make use of OnSystemUiVisibilityChangeListener to check whether navbar is hidden. Affects DPI calculations. * Vulkan: Compile compute shaders only if enabled. * Vulkan: Add a setting for hardware scaling. * Vulkan: Initial 16-bit texture shader decode. * Vulkan: Add 4xbrz texture shader. * Make the barrier a bit more focused. Up some limits. * Need a barrier on Mali. Strange that validation didn't warn... * In the computeUpload path, use a shader intrinsic to unpack the color. * Fix build error on 64-bit android * Vulkan: Check coherent bit. * Also experiment with a "copy shader" that just does raw data manipulation into GPU local memory, then copies to image from there. * Use a plain compute shader for RGBA8888 texture uploads, as a proof of concept. * Vulkan: Add simple manager for compute shaders that upload data to images. * SaveState: Handle compression thread better. * UI: Join downloads on destruct. * UI: Cleanup install threads from UI thread. * Io: Join loading/manager threads more explicitly. * http: Ensure webserver shutdown on exit. * Core: Avoid detach for game loading thread. * http: Avoid detaching threads, join instead. * Reporting: Use a single message posting thread. * Switch: Configure base paths. * Switch: Cleanup some includes. * Switch: Disable IPv6. * Switch: Add basic defines for checks/reporting. * Vulkan GPU profiler: Measure the CPU time spent on the render thread recording command buffers. * Io: Correct result on async file not found. * Io: Wait async thread on IO completion. * Io: Cleanup some logging. * Io: Check callbacks in sceIoWaitAsyncCB(). * Io: Handle open async in a thread. * Io: Use async for read/write/seek/ioctl. * Io: Prepare HLE thread handling for async. * Psmf: Cleanup finishThread save state handling. * Io: Cleanup some error handling. * Io: Store sceIoChangeAsyncPriority value. * Psmf: Use kernel memory for helper thread stack.- Update to version 1.9.2~git20191003: * Improve the touchscreen test screen with some numbers.- Update to version 1.9.2~git20191003: * Upgrade gradle version again * SDL: ensure swap interval is set correctly for SDL2 kmsdrm driver * Touchscreen: Apply weihouya's fix, add a touchscreen test screen. See #12381. * Don't assert if Discord not shut down properly. Possible workaround for #12140.- Update to version 1.9.2~git20190929: * UI: Stop caching the draw context in coreParam. * UI: Minor assert fix. * GPU: Generate normals for curves with lighting. * Core: Fix memory range guard check. * Workaround for a crash found in #12358 on older devices * Fix nasty race condition with menu background audio. Fixes #12365 * Add a comment. See issue #12365 * Assorted cleanup * Blind attempt at fixing an OpenSL ES crash * Add memory range checks to a few little-used sysclib functions. Might help #12359. * Fix crash in Zip UI. Make another crash happen earlier. * Fix crash in zip handling * Symbolic commit for 1.9.2. Making another submission attempt to Google play so have to increment the version. * Debugger: reset step counter on game stop. * Listed additional UMD serials for GTA titles * Symbolic commit for 1.9.1. * Symbolic 1.9.0 commit * Android: Fix crashes on Android versions < 11 due to mCameraHelper being null * Silence a few warnings. * Update lang submodule * Vulkan: Update API headers. * Refer to AkiraJkr's new issue * Add patch note about MGS:PW as suggested by AkiraJkr * Additional README updates * More readme updates * README.md: Lunamoo's additions * More README.md updates * Update README.md a bit more * Update README.md for 1.9.0- Update to version 1.8.0~git20190923: * Update default adhoc server to one that works * Another fix for AnalogTestScreen rendering (it broke again somehow?) * Case fix for previous commit * Hacky workaround for #12339 (Amazon FireStick 4k issue) * Android audio: Turns out the initial queue operation queued up too little data anyway (sizeof on dynamic buffer.. sigh). * Remove some legacy * Android OpenSL: Fix bug where we should have enqueued two buffers on startup. * Vulkan: Fix shutdown crash accidentally caused by #12324 * Fix issue preventing video to work correctly in Digimon. Fixes #12186 * Remove some logging, add a comment. * We had an old fallback to the EGL GL loop in the Vulkan init. Remove it. * Don't let a delayed config load mess with the GPU backend option. Fixes #12284. * Vulkan: Just some extra logging. * Vulkan: Clear caches when deleting shaders.- Update to version 1.8.0~git20190909: * Fix a comment * Vulkan: Slim down and rename the Mali hack. * Vulkan ARM mali Z hack: Modify the matrix instead of the shader. * Workaround ARM Mali depth hardware bug. Fixes #11937 * Update lang submodule * Improve Mali driver version detection- Update to version 1.8.0~git20190904: * Vulkan: Move scissor/viewport rotation into the VulkanRenderManager. Fixes #12303. * Analog test screen: Fix drawing of the X marks * Create a default keymap for the MOQI:I7S gamer phone (with builtin controls) * Windows: Kill the mouse wheel release timer after it's used to prevent spamming keyup events. * Remove an old special case * Android: Be slightly more aggressive at defaulting to Vulkan (from Android 8.1 / 27) * Android: Remove the popup message when falling back to OpenGL. Fixes #12284 . * Vulkan/PowerVR: Make another blind fix attempt for #12296. Can't find my PowerVR device :/ * Bump up the descriptor pool size for the UI. Should fix #12299. * Vulkan: Even more logging in VulkanMayBeAvailable. * SDL: Add back a couple of lines that should have been copied, not deleted. Thanks [Unknown] * Vulkan: Prepare for adding a second init path for VulkanContext.- Update to version 1.8.0~git20190901: * Attempt to work around the PowerVR bug again (pretransform undid the old workaround in landscape). See #12276 * Linux: Port the proper memory base finding over to MemArenaPosix.cpp. * SDL/Vulkan: Fix scale problems when maximizing/restoring the window. * Oops, fix the last commit, it got a little restrictive. * VulkanMaybeAvailable: Bail earlier in some cases where there's no surface extension. * [iOS] Resolve Cmake warning- Update to version 1.8.0~git20190826: * (Libretro) Buildfix - update Makefile.common * Remove deleted GE dumps from Recent. Fixes a part of #11904 (the recent list wasn't updated properly). * sceUsbCam: Fix some bugs my last commits introduced. * MJPEG in sceJpeg: Notify the framebuffer manager that there's been a picture written to memory. Fixes part of #8521 * Improve some logging (%08x for addresses) * sceUsbCam: Heap-allocate the buffer. * http: Remove web server restart handling. * http: Show recent games in same order. * http: Improve EBOOT.PBP handling. * [Android] Fix code style * [Android] Updates for camera * Missed this in the last commit, sigh * Improve an assert message that AkiraJkr saw. Fix a silly bug in the last commit. * Default to Vulkan on Android Pie or later. Fixes #12228. * Android: Update the gradle version again. * Fix display of memory view window on high-DPI displays. Fixes #11913. * Revert "GPU: Download CLUTs when loading at 256 stride." * SasAudio: Cap the cycle estimate at 1200 to prevent crackling in FFT. Fixes #9956. * Add a few more checks. * Vulkan profiling vis bugfix: Restore font scale after drawing. * Vulkan: Prevent some bad merging of renderpasses. Thanks Unknown for writing it up. * Stop renderpass merging at readbacks. * Minor optimization * Vulkan: Automatically merge render passes to the same target when possible. * Improve renderpass profiling descriptions a little * Vulkan: Profile individual render passes/steps. * Get rid of numQueries * Vulkan: Disable some bad validation. Things are right and work fine. * Decided to end the practice of #ifdefs in Config.h. Led to bizarre miscompilations when reading config with inconsistent ifdefs set. * Bugfixes to VK gpu profiling. Properly get the valid bits. * Vulkan: Implement basic integrated GPU profiling. * removed the sceUsbMic checks * Add sceUsbMic.cpp/h to the UWP project * Update PowerSaveModeReceiver (again) * Fixes delete button for downloaded games from homebrew store in UWP * UI: Fix crash with no buttons in popup. * UI: Validate address entered in settings. * configure QT to get a higher version for opengl * IO: Use TextEdit for hostnames on more platforms. * UI: Cleanup hostname entry to use a dialog. * UI: Make IP/hostname dialog more generic. * UI: Respect loop info for menu music. * Core: Fix a format type error. * iOS: Ignore gl3stubInit() on iOS, to avoid warnings. * Vulkan: Check default case with an assert. * GPU: Avoid some unused var/func warnings. * Android: Get our base pointer in a saner way than YOLO, if possible. Should help #12249. * Simplify openIniFile to use ShellExecute so .ini files get opened in an associated text editor * More extreme paranoia in VulkanMaybeAvailable * Vulkan: Re-enable the blacklist. * Vulkan: On Android, only try to load libvulkan.so, not libvulkan.so.1. Plus more paranoia. * VulkanMayBeAvailable: Add more logging, disable blacklist check for testing (see #12093) * Vulkan loader: Fix the SHIELD Tablet blacklist string. * Rename "Immersive Mode" to Full Screen. We can reuse the FullScreen translation from desktop. Fixes #12229 * Update PowerSaveModeReceiver * Cleanup * Android: NativeApp.Init: Log the device name. * Vulkan: Simple blacklist of device names that are not allowed to check for Vulkan. Will help #12093. * Typo fix * Minor code cleanup * Micro-optimize the Vulkan loader: Load more device-specific function pointers to avoid a bounce in the device loader, reorder things a little. * Vulkan: Reduce the amount of redundant stencil parameter sets * Vulkan: Image views: The driver is probably smart enough to recognize a no-swizzle, but let's use the proper method. * MakeUnique.h in the CMakeLists.txt * Init GlobalThreadPool in a thread safe manner * Start as many worker threads as actually used (used to start more) * Store std::thread in worker thread class by value and explicitly start it up, and don't use shared_ptr in thread pools * Cleanup mutex usage in worker threads * Remove 'started' bool from worker threads, as fixes for spurious wakeups made it obsolete * Handle spurious wakeups on worker thread condition variables properly * Use move semantics for worker thread functors * Clean up ThreadPool and WorkerThread constructors with C++11 features, * Add MakeUnique.h so make_unique is available without C++14 * Windows: Allow write-only files to be read later. * WASAPI: Add some missing error checks. May help #12081? (but will result in silence) * Apply the same Mali range culling "fix" in OpenGL. * Vulkan: Set all four coordinates to NaN instead of just W. Fixes range culling on ARM. Fixes #11999. * Set DrawSyncEatCycles for Patapon 2, recommended by pamford45- Update to version 1.8.0~git20190808: * Vulkan: Add missing barrier when rendering to a target that's already in COLOR_OPTIMAL layout. * Some changes and asserts. * Vulkan: Improve the Metal Gear Acid 2 performance hack. * Move NKCodeFrom*.h into the relevant platform folders * Address feedback * VFPU-Int: Add a few fast-paths to ReadMatrix/WriteMatrix. Should gain back part of the speed lost in #12217 * Buildfix (oops) * Memchecks: Avoid taking the mutex lock if no memchecks active. Possible minor speedup in GoW and other block-copy-heavy games. * Compat: Add more Tekken game IDs to leg shake fix. * Compat: Option to use accurate dotprod for VMMUL. * interp: Implement software inverse square root. * interp: Oops, fix vdot bug with subnormals. * interp: Implement software sqrt to match PSP. * interp: Use vfpu_dot for vdet as well. * interp: Use software dot in vcrsp/vqmul. * interp: Fix adding infinity in software dot. * interp: Handle rounding in software dot. * interp: Correct INF * 0 during dot. * interp: Use an integer multiply for dots. * interp: Handle NaN better in vfpu_dot. * interp: Use vfpu_dot for vavg, vfad, vhdp. * interp: Use software dot for better accuracy. * Fix the indirect postprocessing path. Fixes #12133 (but see the issue for a secondary bug). * Update lang submodule * sceUsbMic- Update to version 1.8.0~git20190801: * Workaround for DJ Max Portable's clumsy copy protection. Fixes #9477. * Vulkan: Actually fix #12202, an array was out of scope where it was used, causing garbage flags. * Vulkan: Using VK_DEPENDENCY_BY_REGION on the backbuffer subpass causes tearing, let's not do it. Fixes #12202. * Move WM_MOUSEWHEEL back to WndProc to fix wheel events not working in Win 7. * libretro: don't fail on missing SDL * GPU: Allow upload to temp resized framebuf. * Add Hori Fighting Stick VX to gamecontrollerdb.txt * UI: Support zip files with deep folder structures. * Android: Disable building HLSL support in glslang, works around #12105 * Add a little reminder to self with a link to an interesting article. * Upgrade gradle again * Make things clear for people that never saw real PSP. * Add right analog for touch controls.- Update to version 1.8.0~git20190718: * Config: Specify/save game title on load too.- Update to version 1.8.0~git20190716: * UI: Fix zip leak in error case. * UI: Allow custom button to toggle fullscreen. * Replace mouse control with device ID mouse check for threshold. * Reduce in-game axis bind threshold for mouse control. * Update all values for mouse axis. * UI: Allow installing texture packs from zips. * Replacement: Allow region-specific settings. * UI: Fix type comparison warning. * Config: Don't save empty sections. * Config: Add game name to game-specific inis. * Ignore mouse mappings for UI- Update to version 1.8.0~git20190714: * Address review feedback, thanks unknownbrackets * More GameManager improvements. * Fix build error on non-windows * Pre-check the contents of ZIP files before allowing install. * GameManager: Actually allow installing ISOs from zip files. Refactor. * Start refactoring GameManager zip handling to easier support ISOs in zips- Update to version 1.8.0~git20190708: * interp: Correct vsbn instruction. * Kernel: Shutdown when module load fails. * GPU: Forget pause signal on new list. * Experimentally revert a small part of #12094, ios external display support, that seemed to break exit. See #12140. * cmake: Automatically detect raspberrypi 4. * GPU: Download CLUTs when loading at 256 stride. * Travis: Build Windows on Travis too. * SDL: Use whatever display SDL gives us for EGL. * Replay: Attempt to ignore reads in PSP/GAME. * Replay: Add file header handling. * Travis: Update to NDK r18b. * Travis: Update config to reduce timeout errors.- Update to version 1.8.0~git20190705: * [Libretro] Fix some default config values -iAltSpeedVolume -iFirmwareVersion -iPSPModel Fixes #12144 * Audio: Quick SRC resampling experiment. * Audio: Track SRC frequency. * Audio: Correct sceAudioChRelease return value. * Audio: Improve error messages for sample counts.- Update to version 1.8.0~git20190703: * Simplify synchronization model in InputDevice.cpp - replaced volatile flags/mutex/condition variable with joining on thread and one atomic flag * Remove KeyboardDevice which was essentially useless * Support falling back to xinput9_1_0.dll if neither xinput1_4.dll or xinput1_3.dll are present. This can happen on a Windows XP, Vista or 7 PC without DirectX End-User Runtimes installed. * Windows: Properly check for hidden files when enumerating files * Windows: Fix an exit crash by not destroying the window in CGEDebugger destructor - this window (and displayList) have already been destroyed and freed at that point- Update to version 1.8.0~git20190702: * Update lang submodule * Remove Google Cardboard support. Fixes #11668 * Windows: Fix Vulkan out of process check.- Update to version 1.8.0~git20190629: * Enable right analog stick for libretro- Update to version 1.8.0~git20190627: * Windows: Fix leak on folder browse. * Comment some confusing code * Warning fix * Android: Add DPAD_CENTER as an accept button. Fixes menu navigation on Mi Box and Shield Remote. * UWP: Fix overscan on Xbox One * Update lang, pspautotest submodules * Vulkan: An additional check during init. May help #12131 * For the non-vulkan backends, zero display rotation settings just to be sure. * GE Debugger: Split playback into a separate file. * GE Debugger: Cache decompressed frame commands. * fix indent * GLES: Update proj matrix on viewport change. * GPU: Improve a 5551 stencil emulation case. * Debugger: Fix subtexture readback crash. * UI: Add a note for HTML link parsing. * Audio: Add volume for alternate speed. * http: Support redirects for load URL too. * http: Support relative redirects too. * http: Support redirects for downloads. * SaveState: Fail load on decompression error. * UI: Clear queued events on Event destruct. * Audio: Better errors on Output2/SRC reserve. * Audio: Correct errors on Output2/SRC release. * Debugger: Fix connection in Firefox. * Travis: Fix build cache for macOS/iOS. * Common: Fix some unused ident and case warnings. * Travis: Install python3 via brew. * Address feedback, delete some unused code. * Core: Keep number on setting for translated. * Core: Ignore case of GPU backend setting. * Core: Save GPU backend as identifier. * Core: Allow for disabling graphics backends. * Core: Use readable names for failed backends. * Don't ask for TRANSFER_DST for swapchain surface. No reason to. * Avoid rotating the image when DrawActiveTexture is used for other things than drawing to the backbuffer. * Fix the 270 degree rotation case * Vulkan: Apply the desired pretransform when drawing to the backbuffer. * Vulkan: Log supported pretransforms. * Disable external display by default * Fix invalid mode on iPad Pro 2018 * Ignore mute switch when connected to external display * Fix shutdown because of Discord deinitializer * Simple dpi scaling * Fix overscan compensation (Hack) * Do some clean up * Fix iPhone won’t switch to external display * Auto switch between internal and external display * Show root view controller on external display- Update to version 1.8.0~git20190620: * Buildfix for cmake builds * Update SPIRV-Cross * Upgrade glslang to latest * Vulkan: Upgrade to latest headers * Fix mouse scroll by releasing with a delay using timer(16ms) Also moved WM_MOUSEWHEEL to DisplayProc where it works fine now. * Fix some further static analysis warnings * Fix a bunch of inconsequential uninitialized variables * Fix static analysis warning about access outside array (d[ins] = s[ins * 4] * t[0]) * interp: Fix dumb mistake in vtfm.- Update to version 1.8.0~git20190614: * Implement and test clz32, use it in the MIPS interpreter cores.- Update to version 1.8.0~git20190611: * Fix build error * SDL: Adjust EGL config choice heuristics.- Update to version 1.8.0~git20190609: * UWP: white space fix * fix unintended line removal from rpi platform * UWP: Full screen support, config save fix * TextDrawerUWP: oops, forgot to release the objects used. * adding arm64 platform to libretro makefile * UWP: fix prebuild commands * UWP: fix && in English UI labels * TextDrawerUWP based on DirectWrite * UWP: enable SYSPROP_LANGREGION * UWP: project filiter update, add assets to other architectures * Update submodules lang, pspautotests * libretro: Add SpvPostProcess.cpp to the static makefiles * Revert "ARM64 vmmul experiment: Disable if S and T matrices overlap." * UWP: fix prebuild commands * ARM64 vmmov experiment: Reduce precision by using FMUL+FADD instead of FMADD. May help #12082 and thus also #11179 and #9843. * ARM64 vmmul experiment: Disable if S and T matrices overlap. * Add space to new setting name * Fix avi dump via render buffer instead, with an option to use output buffer since recording with post process effects will often be desirable. * JIT: Split VFPU_MTX disable options. To help with #9843 * arm64jit: Tweak matrix vfpu overlap detect, etc. * armjit: Fix avoidLoad handling for fpu regs. * arm64jit: Fix avoidLoad handling for fpu regs. * GPU: Correct Danganronpa hack. * Windows: Fix some warnings. * Fix minor oversight * Style fix * JitDisable: Add option to disable regalloc across instructions (flush after every instruction) * Silence robocopy error codes * Edited version of #12031, without the ISO/CSO ability. * Oops, tab fix to previous commit * Add d3d9_d3dcompiler_loader to libretro's makefile. Probably helps #12071 * Update lang submodule * Improve WordWrapper: * Block savestates OSM when video frames are dumped. Also make the dump messages shorter, especially dump start since it will be recorded. * Fix avi dump feature by using output buffer.- Update to version 1.8.0~git20190527: * GLES: Use fragColor0 in GLSL 3.30 float path. * Windows: Add ResolvePath fallback if symlink fails. * SoftGPU: Implement dithering. * Fix spurious unit test failure.- Update to version 1.8.0~git20190523: * Improved Show in Folder: * Update gradle yet again * Vain attempt to make the Windows buildbot happy, after LunaMoo's comment in #12052 * Oops, this was left for debugging. * VS2017: Add hack to automatically select the newest installed Windows 10 SDK. VS2019 already does this by default if you specify 10.0. * Compat: The Transformers games perform much better with Force 60fps. * Qt: Implement clipboard support * SDL: Implement clipboard support- Update to version 1.8.0~git20190516: * D3D11 init: Release pFactory at the appropriate place. * D3D11: Also properly check for the no-adapters case. * Add a missing error check to the D3D11 device creation. May help #12039? * Remove base/arch.h * Windows: Workaround buildbot failure. * Fix d3d11_loader on x86 * Use D3DCompiler_47.dll for D3D9 context.- Update to version 1.8.0~git20190513: * ArmCPUDetect: close the registry key when finish * fix git-version-gen on normal commits (without tag) * UWP: Use default (latest) toolset and remove dependency to 16299 SDK * Proper device type detection for UWP * UWP Window resizing support * Fix typo which disabled GEDebugger * Remove the related #include * Android: Display measurement fixes * Delete 2 unused i18n category pointer declarations * Add CPU string in Windows ARM * Fix issue with D3D9 vs UWP * Spacing fix * Oops, fix the D3D9 fallback * Oops, missed these two * Assorted warning fixes * Clean up some more ifdefs * Remove DbgNew.h forced include in ARM debug builds, doesn't work for some reason. * Add WindowsSDKDesktopARM64Support to vcxproj files * Fix #12023, accidental disabling of the GL backend on non-Windows ARM platform caused by #12013. * Revert "Remove default SDK version from project files" * UWP: Update the temporary-key with a new one generated by dominater01 * Remote ISO: Fix bugs from issue #12018 and probably #12019 * Game server: Reject bad URLs * Add Test Drive Unlimited to depthRangeHack to disable range culling * Report: Add Windows ARM identifiers * update ppsspp-ffmpeg to current master * Toolchain for nvidia jetson linker tegra lib. * Update lang and ffmpeg submodules * Fix D3D11 context on Windows ARM Debug * Remove unnecessary ifdefs * Fix UnixTests and HeadlessHost on ARM * Update ffmpeg to support Windows ARM64 * UWP: add missing files for ARM64 * Update UWP project files for ARM64 * Update .gitignore * Fix a crash on DirextX 11 with Feature Level <= 9_3 hardware * Update ppsspp_config.h for Windows ARM * Disable features not available on Windows ARM32/ARM64 * Fix ssize_t in libzip for Windows ARM64 * Add Crash() for Windows ARM64 * Enable ArmCPUDetect on Windows Desktop * Fix GetWindowsSystemArchitecture() * Fix neon headers for MSVC ARM64 * Update Visual Studio project files for Windows ARM32/ARM64 * Enable PNG screenshots for all platforms * UI: Make the screenshot key configurable. * Mp3: Set as inited only after success. * Mp3: Correct seek to specific frame. * Mp3: Fix ID3 tag handling. * Mp3: Properly flush the buffer on reset. * Mp3: Always output data in decode, except at end. * Mp3: Use a vector for the temp buffer. * Mp3: Correct delay on decode. * Mp3: Loop correctly from an offset. * Mp3: Reset sum decoded on loop. * Mp3: Correct sum decoded sample count. * Mp3: Return total frame count in sceMp3GetFrameNum. * Mp3: Fix loop func errors, clamp to -1. * Remove some unused code. * Add missing variable reset fixes #12002 * Remove default SDK version from project files * Fix VS2019 builds and remove _xp dependency (drops Win XP support, allows latest SDK etc.) * Hopefully fix the annoying LR. * Remove "sound speed hack". * Mp3: Correct sceMp3GetMaxOutputSample. * Mp3: Fix errors for a bunch of init getters. * Mp3: Detect offset headers, reject invalid data. * Mp3: Apply offset to stream read buffer. * Mp3: Align CheckStreamDataNeeded with InfoToAdd. * Mp3: Don't change buffer accounting until add. * Mp3: Fix errors on sceMp3NotifyAddStreamData. * Band-Aid for libretro Savestate load Proper would be using PPSSPP's Queue. This will need frontend extensions to do it sanely. Fixes #11429 (mitigate for now) * Mp3: Improve handle releasing behavior. * Mp3: Better errors in sceMp3GetInfoToAddStreamData. * Mp3: Allow allocating two mp3 handles. * Mp3: Fail to reserve if resource not inited. * Mp3: Better match resched on resource init/term. * Update gradle stuff again * Fix typo again * Oops, got these backwards. * Update ffmpeg and lang submodules * Fix typo * Masked PSP Memory support for the AArch64 Dynarec * Power: Match reschedule timing better. * Power: Correct hz on update and improve resched. * Added IO Timing Method option. * Update controller data base ps3 clone controller * GPU: Improve non dual source stencil replace.- Update to version 1.8.0~git20190404: * interp: Handle vtfm/vhtfm prefixes properly. * interp: Correct prefixes on vfad and vavg.- Update to version 1.8.0~git20190402: * interp: Cleanup prefix/size in vcrsp/vqmul. * interp: Handle invalid swizzle for vmin/vmax. * interp: Correct vwbn and vlgb size behavior. * interp: Better prefixes for vdiv/similar ops. * interp: Correct prefixes on vdot/vhdp. * interp: Handle prefixes on matrix init ops. * interp: Correct vsgn out of swizzle bounds. * interp: Handle vsgn prefixing. * Jit: Ignore high bit in vmfvc/vmtvc. * interp: Ignore high bit in vmfvc/vmtvc. * interp: Handle invalid swizzle in vsge/vslt. * interp: Implement vcrs prefixes and sizes. * interp: Correct simple vmov variant prefixing. * interp: Correct vdet prefix handling. * interp: Correct prefixes in vsrt ops. * interp: Correct prefixes for vsbn/vsbz. * interp: Cleanup vsocp size handling. * interp: Correct size handling for vi2x ops. * interp: Correct swizzle on vx2i ops. * interp: Don't write lane 2 on single colorconv. * interp: Correct some negative invalid zero cases. * interp: Force vscmp result of invalid to zero. * interp: Correct vfim for -inf and similar. * interp: Correct vmfvc register behavior. * interp: Handle wrong sizes of vf2h/vh2f. * interp: Correct vrnd prefix handling. * interp: Match actual vdiv prefix handling. * interp: Mask moves to vfpu ctrl. * interp: Handle NAN more correctly in vscmp. * interp: Handle flush prefixes slightly better. * interp: Handle prefixes for Vmmov/Vmmul/Vmscl. * interp: Handle vrot prefixes mostly correctly. * interp: Use a helper to generate prefix consts. * interp: Properly apply mask on single lane ops. * interp: Generate constants using prefixes. * interp: Correct vscl prefix handling. * interp: Fix vbfy prefix handling. * interp: Mask value in vpfxd. * interp: Confirm vi2f/vf2i prefix handling. * interp: Apply T prefix to D in vcmov. * interp: Correct behavior for matrixes with size=1. * interp: Handle abs/neg on nan values better. * IR: Use interp for unhandled prefix cases.- Update to version 1.8.0~git20190327: * Disables iOS exit animation to prevent freezing. Selective PTRACE sys call.- Update to version 1.8.0~git20190326: * Address feedback from #11936 (support memory types without CACHED as a backup) * Add texture dump/replace hotkeys. * Vulkan: Request cached memory for readbacks. First try coherent too but also support non-coherent cached memory.- Update to version 1.8.0~git20190325: * TexCache: Align bufw properly even for VRAM. * Debugger: Prevent saving a -1 sized func. * Vulkan validation: INFO level has gotten too spammy, turn it off. * Fix invalid argument string for kuKernelLoadModule. Fixes #11895. * MSVC project files: Fix silly search/replace error from #11883 * IR: Correct vmmul optimizations. * Android: Allow less common sample rates. * Kernel: Kernel threads can beget kernel threads. * SDL: Make it clear Vulkan check is not an error. * cmake: Automatically disable Wayland for Raspbian. * SDL: Fix compile error when not using FBDEV. * http: Fix warning on compare in url decode.- Update to version 1.8.0~git20190322: * UI: Allow deletion of GE dumps from UI. * Update lang (with ES spelling error fix, etc). Fixes #11912- Update to version 1.8.0~git20190318: * GPU: Respect stencil write mask on clear. * SoftGPU: Apply color doubling only to RGB. * Vulkan: Narrow down buffer usage flags a little bit. * Windows: Change FP model to Precise. See #11384 * UI: Pass touch/button releases to all screens.- Update to version 1.8.0~git20190317: * UI: Avoid using game info cache in savedata sort.- Update to version 1.8.0~git20190314: * Finish up the fix attempt for #11882 * Correctly handle memory types in VulkanPushBuffer. Should help #11882. * Update the version number in AndroidManifest.xml (pretty sure we don't really still need to do this, but whatever). * Update the lang submodule * Add last minute fix mention * Update README.md for 1.8.0. * Android (and libretro): Turn off -ffast-math. Fixes #11880. * Revert "Temporary commit to get CalcCullRange logging into a buildbot build" * Temporary commit to get CalcCullRange logging into a buildbot build * On game load error screens, print the filename. May help diagnose issues from screenshots of the error (commonly sent by end-users) * Vulkan subpass dependencies: Handle VK_IMAGE_LAYOUT_UNDEFINED without debug-asserting. * Fix apparent bug in #11094, fixes #11878 and likely #11798 * Fix a VK validation failure when opening the homebrew menu * Survive pipeline creation failure on Vulkan. Makes Burnout playable on Pocophone... Sigh. * Update to a new gradle version again- Update to version 1.7.5~git20190311: * sceFontLib: Don't call the callback if double-free. Should fix one part of #6627 * GLES: Fix stencil buffer upload at > 1x PSP.- Update to version 1.7.5~git20190304: * UI: Update more browser links to https://. * Windows: Link to https://. * Windows: Clear help menu correctly.- Update to version 1.7.5~git20190303: * DPI fixes in the old Win32 debugger. Fixes #11856. * Update gamecontrollerdb.txt * Hori Minipad S * GLES: Correct cull range offset in unbuffered. * GPU: Handle cull range properly drawing at offset. * Add the other gameIDs for euro tony hawk * Hardcode the cheats that work around the Tony Hawk jit issues. Temporary, horrible hack working around #3854.- Update to version 1.7.5~git20190301: * Use MSG_NOSIGNAL for some more send() calls. Didn't fix anything though. * UWP: Restore the Load button. Fixes #11855. * compat: Enable 60fps limit and warning for wrong clock freq for Tekken 6. * Remove old resolution hackery that didn't fix anything.- Update to version 1.7.5~git20190227: * Fix some minor things found looking at Valgrind output * Add missing line to SDL EGL init (no way this path could have worked anywhere?) * EGL errors should cause us to bail. Also downweight alpha in the EGL config chooser. See #11839 * Silence a compiler warning, fix an uninitialized variable * Disable vertex range culling when the depthrange hack is enabled. Temporary workaround for #11576. * Ignore DisableAccurateDepth on Adreno as well. Fixes #11557 * Disable more texcoord math on terrible-precision PowerVR (it's really awful). Fixes #9189. * EGL: Avoid HDR mode. Uses unknownbrackets' changes from #11839. * Better place for CloseHandle * Found the handle leak! Doh. * Avoid trying to create a FileLoader for empty filenames * Rename the lag sync config ini setting to reset it for all users. See #10195. * Back out wrong change. Leaving better error handling for later. * VulkanImage: Fix issue where we'd try to free dedicated allocations from the allocator_ instead of Vulkan directly. * interp: Implement vsbz and vlgb. * Jit: Correct VFPU prefix eating flags. * interp: Correctly handle vsocp prefixes. * Jit: Correct vocp prefix handling.- Update to version 1.7.5~git20190223: * Travis: Remove old clang cache workaround. * Android: Default screen rotation to auto landscape for new users. Fixes #11832 * Make window resize work with Vulkan. Seems more stable now. * Bundle libSDL inside app on macOS, fixes #11830 * Log why the config is being saved (we seem to do it a bit much at times) * SDL/Qt: At least quit properly when switching backends * Disable GLEW on macOS * Linux: Draw the graphics API on the splash screen, like most other platforms. * ARM/ARM64: Ignore invalid immediate addresses in delay slots, which may be conditional.- Update to version 1.7.5~git20190222: * Fix postprocessing shader support on macOS * interp: Correct vocp prefix handling.- Update to version 1.7.5~git20190221: * Add more games to RequireBlockTransfer. Plus, for whatever reason we seem to have a separate compat.ini for UWP, update it. * PPGe: Correct text wrap without height. * Add a large number of missing Game IDs to compat.ini. May help various Phantasy Star and SOCOM issues, in particular. * Another GOW game ID. See #11815 * compat.ini: More IDs to lists of games requiring default CPU freq and buffered rendering. * A lot more GoW game IDs. * Followup to last commit: Also add IDs for GOW demos. * Fix one instance of #11815. Hope there aren't a lot more missed GOW IDs. * Android: Allow using custom storage paths. * Core: Remove some now unused variables.- Update to version 1.7.5~git20190219: * Core: Fix lag sync on game start / after pause. * Update pspautotests submodule, not that it matters, just for convenience.- Update to version 1.7.5~git20190218: * SDL: Allow PauseWhenMinimized to work. * Qt: Cleanup indentation. * Windows: Hide accelerators when they are disabled. * Qt: Correct text bind on first draw of string. * Windows: Browse for folder like Qt. * Qt: Correct Browse... handling for multithreaded. * Qt: Re-enable Load button to browse for file. * SDL: Force fullscreen desktop for USING_FBDEV. * SDL: Prevent mouse capture on macbook trackpad. * Savedata: Truncate detail if it's too long.- Update to version 1.7.5~git20190216: * Windows: Detect Vulkan in separate process.- Update to version 1.7.5~git20190216: * GPU: Better typesafety for shader bits.- Update to version 1.7.5~git20190214: * Enable BlockTransferAllowCreateFB for Ys Seven as discussed in #11669 * CwCheat warning fixes * Update pspautotest submodule * add controllers * Lie about success of loading flash0:/kd/audiocodec_260.prx, just like we already lie about audiocodec.prx. * GLES: Disable range culling on VideoCore/Vivante. * Android: Update gradle to 3.3.1 * OpenGL: Disable the mapped buffer strategy for Adreno (Qualcomm). * Android: Add some logging * GPU: Correct depth clamp range in range cull. * Fix issue where too long filenames could wreck the Install Zip dialog layout. * Naruto 3: Probably a better fix for the video hang issue.- Update to version 1.7.5~git20190209: * Make "Show FPS Counter" in the Windows menu actually show fps, not just speed * Gate fewer effects behind "Disable slow framebuffer effects". * Only gate really expensive block transfers behind the setting. * The block transfer setting should not affect clearing memory behind a render target, especially since that's already gated behind a compat flag.- Update to version 1.7.5~git20190207: * Update lang * VK code cleanup: Just a little helper for handling dedicated allocation for images. * Disable vertex range culling on old NVIDIA. Should help #11638 * Detect PCI device ID where available (not in GL?) * Add missing break statement fixing bizarre language menu issue from #7929 * Enable the FPS limit for F1 2006, too. * Partially revert #10456 (avoid limit FPS without a clear). * Remove iForceMaxEmulatedFPS and replace with a compat setting for the two games that really need it. * Qt: Apply suggested keyboard shortcut fix. Fixes #11735. * Qt: Remove keyboard shortcut for buffered rendering. Mitigates #11725 although not a proper fix. * Compat: Force realistic UMD timing for F1 2006. Fixes #9193 but not the game, since there's also #11177. * Remove unused API, assorted cleanup. * Further improve VK extension loading. Switch to VK_EXT_debug_utils (but fallback to VK_EXT_debug_report if only that is available). * Update glslang to latest version * Add code to enable a couple more extensions I anticipate using eventually. * Properly use VK_KHR_dedicated_allocation to make some drivers extra happy * Minor refactor of physical device property/feature detection, to allow for more extension use. * More Vulkan validation fixes * Android .nomedia: Don't hide everything under PSP, too harsh. * To avoid strange images in Android gallery, pre-create TEXTURES with a .nomedia, and add .nomedia to the PSP directory.- Update to version 1.7.5~git20190204: * Vulkan: Fix typo, bump shader cache version. * Fix checkbox bug introduced in #11758. Fixes #11761. * Add simple UI for JIT feature disable flags * Reporting: Disable when jit flags are disabled. * UI: Add bitfield checkbox. * Jit: Respect flags for jit types and features. * Core: Add flags to disable jit features.- Update to version 1.7.5~git20190131: * VK: Load the dedicated allocation extension properly (but don't use it yet). * VK: Minor cleanup, turn off unfinished and probably wrong use of dedicated allocation feature * Load a function from VK_EXT_external_memory_host * Update Vulkan headers to SDK 1.1.97 * Reorder stuff to make the compiler happy. * Minor cleanup * Improve the check for Vulkan to check for surface extensions first. * If we lose the Vulkan device, recommend the user to switch to Direct3D11. * Fix silly mistake editing the vulkan image code * Also buildfix for libretro * Remove some unnecessary vkDestroyImage calls. * Fix SDL build * Better handling of swap chain size, add PowerVR hack. Fixes #11743 * Fixes for issues found by Vulkan validation layers, including a common non-harmful perf warning (doesn't fix all cases, but does fix the most common one). * DeleteDirRecursively: Don't leak the find handle on failure (win32) * CMakeLists: fix EGL detection for ARM devices- Update to version 1.7.5~git20190123: * Additional logging * VK device allocator: Support separate memory type per slab. * Fix for weird Xbox B button behavior, see #10948. A simpler change was tested to work by Ruler.- Update to version 1.7.5~git20190122: * Update armips submodule with bugfix. Also lang.- Update to version 1.7.5~git20190116: * Update build-x64.cmd * Added " guards to if not exists * Update to latest gradle, update lang submodule.- Update to version 1.7.5~git20190108: * Remove usage of deprecated function readdir_r (and ugly Blackberry hack diren_large) * Qt: Temporary workaround for #11721 - simply remove the load button (you can still load games from the Games tab)- Update to version 1.7.5~git20190106: * Address feedback * Try to support Qt keyboard input directly. Partially fixes #11653 (nickname crash on mac)- Update to version 1.7.5~git20190106: * Check that allocations in SplineCommon succeed. Attempt at #11660 but not optimistic. * Remove the duplicate * Update Launch Screen.storyboard * Typo * Removed the premade picture * Changing it to import some logo files on the iOS port. * Removing a now unused file. * Added a check to the pointer for memcpy- Update to version 1.7.5~git20190103: * GLES: Detect Vivante GPU, disable vertex range culling- Update to version 1.7.5~git20190102: * Update lang submodule * I don't know why i included it there haha * The new Launch Screen ( to include the logo ) * A new logo file * Configure CMake to include the new logo- Update to version 1.7.5~git20181230: * UI: Check for step debugging on unthrottle.- Update to version 1.7.5~git20181229: * http: Correct typo.- Update to version 1.7.5~git20181227: * http: Report errors reading discs. * Loaders: Refactor chaining to avoid dup code. * http: Add timeout on no response. * Update lang submodule * GLES: Remove FBO_UNUSABLE bug check. * GLES: Move some vendor bug checks to Draw. * GLES: Remove spurious semicolons in shaders. * GLES: Correct fragment precision check. * GLES: Specify glsl version precisely in depal. * GPU: Move dual source blending bug check to Draw. * Vulkan: Limit stencil workaround to Adreno 5xx. * GPU: Track draw in shader manager.- Update to version 1.7.5~git20181223: * GE Debugger: Minor fix step count dialog. * [spline/bezier]Remove unused stuff. * Avoid breaking any alpha-stencil emulation in Adreno bug workaround * Vulkan/adreno: Apply workaround for Harvest Moon issue #10421- Update to version 1.7.5~git20181222: * http: Check for available discs before connecting. * http: Parse port in ipv6 addresses.- Update to version 1.7.5~git20181220: * Minor tweak to the test * GE Debugger: Improve step count dialog. * GE Debugger: Add step count dialog.- Update to version 1.7.5~git20181220: * Update lang * Don't leak the new pipelines * This should finally repro one of the Adreno bugs- Update to version 1.7.5~git20181219: * Android EGL config: Always require 8888, stencil if version >= ICS * Android EGL: Add logging of depth and stencil bits * GPU driver test: Add a third test with depth completely disabled, and rename the others to match. * Display some important information on GPU test screen to make screenshots more useful * Build system updates * Finish up the test * thin3d: Make the stencil ref value dynamic state (all APIs support this directly). * Write rough framework for GPU discard test screen- Update to version 1.7.5~git20181219: * Delete some unused DNS code, just because. * GLES: Simplify depth download shader. * Fix bug in #11681 * Add check for GL_FRAGMENT_PRECISION_HIGH for GLES in stencil code. * thin3d: Remove unused shader language support * Fix ridiculous bug in thin3d.h. Only worked by accidental matchup between shader IDs.. * GLES: Download depth values via shader. * GLES: Move depth packing code to dedicated file. * GLES: Actually support depthless FBOs. * GLES: Use depth textures where possible.- Update to version 1.7.5~git20181218: * Additional raw string shaders * Remove unused and unfinished SPIRV disassembler * Use raw strings for more shaders * ActivateTopScissor doesn't belong in UIContext::Begin. * Remove no-op DrawBuffer::End()- Update to version 1.7.5~git20181217: * TWo warning fixes- Update to version 1.7.5~git20181217: * SoftGPU: Fix crash on garbage index data. * SoftGPU: Respect stencil write mask on test fail. * GPU: Fix curve breakage due to cull flipping.- Update to version 1.7.5~git20181215: * Remove the DisableShaderCache setting, rename the other * VK: Add INI options to disable some vendor checks, and to disable the shader cache.- Update to version 1.7.5~git20181214: * Oops, x2 * Remove outdated TrueColor setting. * Remove "Timer Hack" setting. Untested, probably low usage and unclear utility. * Remove the "Disable stencil test" hack. Doesn't seem to serve much purpose anymore. * Disable precompiled header for all configurations of Armips * Disable SDL check with armips dependency * Update UWP port- Update to version 1.7.5~git20181211: * GE Debugger: Fix dump replay ticks accounting. * Windows: Hide Vulkan/D3D11 if not available. * Revert 6fd1c0e3d and eba6c00 which experimentally disabled dual src on Adreno. * Just make the optimized (non-release) android build debuggable. * Attempt to improve Discord Rich Presence * Update to 1.7.5, update lang * cmake: Fix CMP0077 policy warnings. * cmake: Remove the unused RASPBIAN define. * GL: Realized we need another sanity check in the readback code * Have to increment the build number due to a mistake, so make it 1.7.4 * Update readme for 1.7.3 * 1.7.3 * Revert "Android: Fix Vulkan immersive startup." * VK: Fix sometimes-missing images in GameScreen. Can't load textures from update(). (should probably make that possible though.. later). * Attempt to fix the last very common issue of #11493 by being paranoid * VK: Add extra safety checks around font texture creation. Motivated by some Play crashes. * Core: Fix spurious error on Linux/Unix paths. * Coldbird server moved, so change the default. * ManagedTexture: CreateTextureFromFileData should not return a ManagedTexture object if it fails. * Comply with new Google Play policy that is not happy with "Support PPSSPP" leading to the PPSSPP Gold app in Play * Windows: Check for devices on Windows events only.- Update to version 1.7.1~git20181207: * Disable "Edit & Continue" with VS debug mode.- Update to version 1.7.1~git20181203: * SDL: Allow toggling fullscreen for GLES2 on desktops.- Update to version 1.7.1~git20181203: * GPU: Ignore light params for shade mapping. * Bump shader caches * GE Debugger: Allow relative prim counts. * Vulkan: Avoid using Vulkan by default. * Vulkan: Avoid OpKill workaround with no stencil. * GPU: Avoid stencil emulation if possible. * GPU: Dirty stencil on stencil mask change. * GPU: Avoid a missing virtual destructor warning. * GE Debugger: Allow jumping to a specific prim. * GE Debugger: Track a counter of prims.- Update to version 1.7.1~git20181201: * Madcatz Fightpad SFvTekken / Hori Mini Wired 4 * Io: Ensure sign extension for error codes. * Update lang again * Headless: Fix compare for 16-bit output. * Headless: Allow startup using NULL core. * GPU: Force use of indexes on cull mode flip.- Update to version 1.7.1~git20181130: * Update lang * GPU: Maintain a bit more state in inner-prim loop. * GPU: Properly flip cull on simple triangle lists.- Update to version 1.7.1~git20181129: * Windows: Define menu item text in menu only. * Windows: Translate all items by id, not position.- Update to version 1.7.1~git20181128: * Use compat setting instead * fix ifdef vs if defined * Avoid possible compile error: conflicting defs * yugioh save fix tool- Update to version 1.7.1~git20181126: * SoftGPU: Calculate texcoords in transform. * GPU: Correctly flush on cull mode change.- Update to version 1.7.1~git20181125: * UI: Allow sorting saves by date too. * SaveState: Retry failed state screenshots. * Attempt to fix glsl depal error reported in #11588 (ATI/AMD) * D3D11: Correct shader bounds apply. * D3D9: Correct shader bounds apply. * D3D11: Allow shader blend to self. * GL: Realized we need another sanity check in the readback code- Update to version 1.7.1~git20181123: * SoftGPU: Oops, properly apply pixel mask in 16-bit. * GE Debugger: Fix display of raw normals. * GPU: Use provoking normal for lighting with flat. * SoftGPU: Correct clipping for flat shading. * VK: Fix sometimes-missing images in GameScreen. Can't load textures from update(). (should probably make that possible though.. later). * GLES: Fix render-to-self detection. * GPU: Correct specular exponent zero. * GPU: Skip specular on negative diffuse factor. * GPU: Correct powered diffuse with exp=0. * GPU: Handle spot light with 0 exp or length. * GPU: Skip specular on powered diffuse. * Reporting: Ignore link error with bad shaders. * Attempt to fix the last very common issue of #11493 by being paranoid * VK: Workaround for validation bug (will be fixed in the next Vulkan SDK) * Assert even in release mode if preset shaders fail to compile. This is just to help track down a Play crash. * VK: Add extra safety checks around font texture creation. Motivated by some Play crashes. * SoftGPU: Fix pixel mask on rectangle clear. * handle cullface, help to #10597- Update to version 1.7.1~git20181120: * Coldbird server moved, so change the default.- Update to version 1.7.1~git20181119: * ManagedTexture: CreateTextureFromFileData should not return a ManagedTexture object if it fails. * SoftGPU: Cleanup lighting code a bit.- Update to version 1.7.1~git20181118: * GE Debugger: Support record for more render types. * GE Debugger: Avoid writing 0 sized packets. * GPU: Correct shade mapping with 0,0,0 light pos. * SoftGPU: Normalize 0,0,0 as 0,0,1 for shade map. * GPU: Fix shade mapping in soft transform. * GE Debugger: Fix display event record timing. * GE Debugger: Avoid overwriting in softgpu playback. * GE Debugger: Preserve VRAM textures in dumps. * Vulkan: Allow pre-transition from undefined. * GE Debugger: Fix type conversion warning. * GE Debugger: Fix handling for framebuf changes. * GE Debugger: Record block transfer too. * Core: Fix spurious error on Linux/Unix paths. * Debugger: Prevent invalid address on syscall.- Update to version 1.7.1~git20181113: * [spline/bezier]Unify SubmitSpline/Bezier.- Update to version 1.7.1~git20181112: * Take care of most cases of render-to-virtual-readback-buffer, I think. * Support virtual readbacks for detected-memcpy framebuffer copies, delete MotoGP hack. * Add compat flag to allow virtual framebuffer readbacks (auto-create fb from readback destination). Does not yet work outside VRAM but should fix Digimon Adventure. * No need for fb_normalized_address * Get rid of MaskedEqual * Only mask away Z mirrors if inside VRAM * Remove constraint that virtual framebuffers have to represent VRAM.- Update to version 1.7.1~git20181111: * New spline stuff seems to need bigger storage buffer pools- Update to version 1.7.1~git20181111: * UI: Fix incorrect 3D API. * Discord: Attempt to explicitly cleanup on exit. * Discord: Add cmake option to disable.- Update to version 1.7.1~git20181108: * F-droid lite version - create stubs for Moga Controller * GPU: Dirty frag shader on depth write. * Io: Add missing error code on file open. * CMake: Fix linking X11 when using EGL and not fbdev- Update to version 1.7.1~git20181106: * CMake: Link against OpenGL when using EGL but not GLES2 * CMake: Allow disabling Wayland support with USE_WAYLAND_WSI- Update to version 1.7.1~git20181105: * Framebuffer blit: Clip src rectangle as well- Update to version 1.7.1~git20181104: * Move comments in function to be more relevant * TexCache: Round DXT5 alpha up. * TexCache: In DXT3, don't swizzle alpha. * TexCache: Respect color order in DXT3/5. * TexCache: Mix DXT colors using 2/3 not 3/8. * TexCache: Decode DXT1 zero alpha as black. * TexCache: Don't swizzle DXT1 colors. * Fixes for Unknown * Update lang * Comply with new Google Play policy that is not happy with "Support PPSSPP" leading to the PPSSPP Gold app in Play * Fix database comments ending the cheat import. * MRFIXIT2001: This patch adds a second frameskip setting, one for setting the # of frames to skip, one for setting the % of frames to skip based off fps * GLES: Fix to delete subimage data since #11447. * [spline/bezier]minor fix * [spline/bezier]Reduce static buffers. Get rid of the spline buffer using half of the vertex buffer. * [spline/bezier]minor fix * [spline/bezier]minor fix * [spline/bezier]Get rid of duplication call of Flush(). * [spline/bezier]Surround with namespace Spline. * [spline/bezier]Remove comment. * [spline/bezier]Improve basic spline/bezier structures. * [spline/bezier]oops * [spline/bezier]minor fix(referenced to c1f0e981). * [spline/bezier]Fix GLES texture resolution of HW tess to real 2D to avoid huge width in FF4CC mist dragon morphing. * [spline/bezier]Instanced rendering for B-Spline is very slow when using weak GPU, so disabled it and simplify the shaders. Add changing the quality of HW tessellation. * [spline/bezier]Fix to build for Android(clang). * [spline/bezier]Modify ControlPoints and fix VertexPreview. * [spline/bezier]Put the control points stuffs all in one structure. * [spline/bezier]Modify the weights cache variables to a template variable. * Math3D: Something wrong with hand simd optimization in vec2, so it causes very slow down. However, compiler optimization is faster enough, so removed it. * [spline/bezier]Put the output buffers all in one structure. * [spline/bezier]Improve TemplateParameterDispatcher class macro to a real class. * [spline/bezier]Extract an if-check in the hot loops to the template parameter. * [spline/bezier]Expand loops in the shaders. * [spline/bezier]Precalculate weights in the shaders using the outer product. * [spline/bezier]Sharing textures to avoid heavily textures creation/deletion in one frame. At least, it occurs about 1000 and very slow down in Pursuit Force. * [spline/bezier]Fix around vertex type flags. * [spline/bezier]Improve shader uniforms a bit. * [spline/bezier]Reduce multiplications in the shaders from 16 to 4. * [spline/bezier]Get rid of wasted if-checks at Graphics Processors. * [spline/bezier]Move whole tessellation logic in the shaders into a subroutine. * [spline/bezier]Fix spline weights calculation and get rid of using next patch position in hwtess. * [spline/bezier]Unify hardware tessellation of bezier and spline. * [spline/bezier]Improve hwtess to use cached weights. * [spline/bezier]Unify software tessellation of bezier and spline. * [spline/bezier]Improve HW tess on Opengl to combine 3 textures into a single texture and use it. * thin3d: Add support for texture subimage to GLRender. * [spline/bezier]Fix to build for GE debugger. * [spline/bezier]minor cleanup * [spline/bezier]Fix about quality. * [spline/bezier]Improve template parameter dispatch method. * [spline/bezier]Improve spline tessellation using same as bezier tessellation method.(performance improvements, at least 10 FPS or more) * [spline/bezier]Fix normal generation flag and some minor stuffs. * [spline/bezier]Improve tessellator more generic. * [spline/bezier]Improve bezier tesselator more. * [spline/bezier]minor cleanup * [spline/bezier]Fix bezier texcoord generation. * [spline/bezier]Improve bezier tessellator more. * [spline/bezier]Improve bezier tessellator. * [spline/bezier]Implement weights cache system. * [spline/bezier]Make a spline weights calculation class and precalculate all spline weights at the beginning. * [spline/bezier]minor fix * [spline/bezier]minor fix * [spline/bezier]Make a bezier weights calculation class and precalculate all bezier weights at the beginning. * [spline/bezier]Improve bezier weights calculation. * [spline/bezier]Move bezier patch loops into the function and pre-convert control-points. * [spline/bezier]Move SIMD optimization of vector operations to Math3D.h. Needs rebuild to avoid a dialog confirmation on Visual Studio. * [spline/bezier]Use real tessellation in low-quality with "fixed to 2" tessellation factor. * [spline/bezier]Pre-convert control-points for the accumulation of SIMD optimization, and avoid conversion in hot loops. * Fix namespace Vec2f. * Modify IndexConverter class to functor. * [spline/bezier]minor fix * [spline/bezier]Make a function to build indices. * [spline/bezier]minor cleanup * [spline/bezier]Improve the logic of copying control-points. * [spline/bezier]Make a function to copy control points. * [spline/bezier]minor fix * [spline/bezier]minor fix * [spline/bezier]minor fix * [spline/bezier]minor fix * [spline/bezier]minor fix * [spline/bezier]Managing buffer allocation. * [spline/bezier]Add spline derivative calculation for normal generation. * [spline/bezier]Get rid of divisions in spline weights calculation.- Update to version 1.7.1~git20181102: * Fix libretro Windows build * Libretro d3d11 build fix * Add texture replacement option * add texture filtering core option * Squash of a few libretro makeile fixes * Core: Format CMakeLists.txt consistently. * Qt: Add GLES defines if USING_GLES2.- Update to version 1.7.1~git20181102: * Windows: Check for devices on Windows events only. * Core: Wait for background CPU load on exit. * GLES: Correct invalid scissor handling. * GLES: Add disabled code to run GLES on desktop. * GLES: Detect ARB aniso and cull distance. * Update OpenGL Extension * Fix whitespace * Readability improvements * Implement drawing of offset scale * Implement saner making space for offsets * Make space for offsets (dirty implementation)- Update to version 1.7.1~git20181101: * Update AndroidManifest.xml to 1.7.1 * Update README for 1.7.1 * Update lang yet again * GPU: Cancel shader preload on shutdown/lost. * GLES: Skip freeing program if not allocated. * Vulkan: Wait for GPU ready on shutdown.- Update to version 1.7~git20181030: * Update lang submodule * Savedata: Write only one secure entry. * Address feedback, thanks! * Make more lines translatable in credits * Improve sanity checks for framebuffer readbacks * native: enable backtrace on some BSDs * Update AndroidManifest.xml for 1.7.0 * On older Android versions, densityDpi can't change and is thus not present in the Configuration objects. * Update lang submodule again * Minor README update * Update lang submodule- Update to version 1.6.3~git20181025: * Update lang submodule * Just fix some gradle build warnings. It's using platform 16 anyway (but somehow it all still works back on -9) * Update lang * Update README.md for 1.7.0- Update to version 1.6.3~git20181022: * Yet another try at taking care of the GPD crashes in #11063. * Disable triangle range culling on D3D9 on Intel. Should fix #11477 * GL: Also skip gl calls in ThreadEnd during shutdown on Android. May help #11063 * Turn off gl debug logging again * Fix issue where skipGLCalls_ wasn't respected. May help #11063 * Revert two accidental minor changes * Workaround for bad int behaviour on Adreno / GLES. (no problems in Vulkan). * Fix minor bug in natural.vsh, which caused a gl_error that I ran into when tracing another bug- Update to version 1.6.3~git20181017: * Fix undefined MSG_NOSIGNAL * Ignore SIGPIPE signal receiving data to avoid crash * Added 8Bitdo SN30 Pro (Switch Profile) controller- Update to version 1.6.3~git20181011: * Oh, another gradle update. Why not. * Vulkan validation: Fix issue where we forgot to transition image mip levels past 0 away from TRANSFER_DST_OPTIMAL during creation. * Make sure to save the config while changing backends using the menu bar. Should help #11465- Update to version 1.6.3~git20181009: * Windows: Detect DirectInput devices after launch. * Disable CheckFailedGPUBackends() in debug builds, for convenience * Android: Fix Vulkan immersive startup. * Android: Avoid race on surface destroyed. * Android: Consistently use version constants. * http: Allow pbp and ppdmp files too. * Display: Resched interrupt before vblank threads. * GPU: Reduce log noise while stepping.- Update to version 1.6.3~git20181007: * Instead of the last commit, don't enable the dual src extension at all on Adreno.- Update to version 1.6.3~git20181006: * Experimental commit trying to solve #10421: Blacklist dual src blending on Adreno/Vulkan * Address additional comments. * Avoid calling any GL calls during shutdown on Android. Should help #11063 * Use androidgitversion version 0.4.5 * Remove duplicate library; use the existing one * Disable Android HW scale on TV type devices. * Android build: Enable AAPT2- Update to version 1.6.3~git20181004: * Replacement: Show a warning for bad texture names. * Replacement: Note filename restrictions in ini. * Replacement: Refactor ini template generation. * UI: Implement a glowing border touch control style.- Update to version 1.6.3~git20181003: * Vulkan: Apply Themaister's patch, removing illegal pre-transitions of swapchain images. Fixes #11417 * GE Debugger:Step to curved surface.- Update to version 1.6.3~git20181001: * Windows: Support WASAPI default device switching. * Windows: Support non-extensible float in WASAPI. * Listen to WASAPI events * Cleanup: Split out the WASAPI code into its own file. * Remove redundant minSdkVersion and targetSdkVersion settings from AndroidManifest.xml * UI: Ask for restart when changing graphics device. * Windows: Oops, backwards. * Windows: Detect Windows 10 using kernel32.dll.- Update to version 1.6.3~git20180929: * Core: Report disc read errors to the user. * Android: Update deps; Cannot reproduce #11420 * Android: Remove obsolete files: eclipse * Reduce the number of build variants- Update to version 1.6.3~git20180925: * Fix: prevent linkage error if EGL and GLES is not in one big blob- Update to version 1.6.3~git20180925: * GLES: Properly parse GL extension names. * GPU: Fix a shader unit typo. * Patch up small UI bug on credits screen.- Update to version 1.6.3~git20180924: * Update ffmpeg submodule- Update to version 1.6.3~git20180923: * Update assets/lang submodule * UI: Maintain aspect better on screenshots. * UI: Keep report image at right aspect ratio. * GPU: Dirty more correctly for cullrange params.- Update to version 1.6.3~git20180921: * GLES: Refactor out duplicate code. * GPU: Cleanup outdated flushbefore code. * GE Debugger: Fix tex preview race condition. * GPU: Correct handling of large viewport scaling. * Fix: should close on spec #11404- Update to version 1.6.3~git20180919: * D3D11: Enable depth clamping. * Android: Buildfix for CMake 3.6.- Update to version 1.6.3~git20180918: * Throw in very minor fix (apply readonly to buffer used in tesselation). * Vulkan: Only apply the depth workaround on Qualcomm devices (adreno) * Fix small and scary Vulkan bug (leftover from skinning-removal revert) * UI: Fix occassional issue starting second game. * GPU: Refactor cull range calculation together. * Vulkan: Avoid depth clamp with clip range. * Add: some helpers to compile on ODROID-XU4/XU3 * Vulkan: Implement verex range culling. * D3D9: Implement vertex range culling. * GLES: Implement vertex range culling. * Android: Don't use "hw scaling" on modern devices by default. * Add some links to Discord where appropriate. * Add: allow touch screen events on fullscreen- Update to version 1.6.3~git20180914: * Add TSX Extension * Add some extension * x86: Use OS for cores on Mac OS X too. * x86: Use OS to detect core count.- Update to version 1.6.3~git20180912: * Add: -ffast-math compiler option to anything other then Intel * GPU: Handle bad fog params as large signed vals. * SoftGPU: Support fog on 3D rectangles. * GPU: Apply fog before color test. * GPU: Clamp after color doubling. * GPU: Apply color test after doubling. * SoftGPU: Preserve stencil inside logic op func. * SoftGPU: Avoid extra lookup of old stencil. * D3D11: Fix pow(0, 0) lighting handling. * GPU: Clean up some shader id flag usage.- Update to version 1.6.3~git20180909: * D3D9: Set alpha mask reference in uniforms. * D3D11: Split color test out by component. * TexCache: Fix texture alignment in GLES. * Mpeg: Avoid reading outside available bytes. * Add: Touchscreen event support for SDL2 * Replacement: Cut down on parsing for large inis.- Update to version 1.6.3~git20180907: * Core: Reset working graphics backend on restart. * Core: Don't consider graphics failed on shutdown.- Update to version 1.6.3~git20180906: * Core: Log more on graphics backend failures.- Update to version 1.6.3~git20180905: * Debugger: Fix crash in softgpu with no texaddr yet. * UI: Automatically forget pinned deleted paths. * Core: Add flag to prevent graphics cycling. * Core: Track graphics startup failures and cycle.- Update to version 1.6.3~git20180903: * Android: Buildfix for CMake.- Update to version 1.6.3~git20180902: * TexCache: Optimize DXT5 alpha lerp. * Core: More consistently use directory constants. * Android: Add .nomedia files to system and textures. * TexCache: Avoid masking out alpha for DXT3/DXT5. * TexCache: Optimize DXT3/DXT5 decode to single pass. * UI: Fix state screenshot size on pause screen. * Savedata: Show confirm save without faded icon. * Add: Get user-preferred locale from OS (linux only)- Update to version 1.6.3~git20180902: * Core: Match up NOEN define usage a bit more. * Qt: Buildfix with removed debugger methods. * UI: Move debugger checkbox outside texture area. * Debugger: Add an event for GE dump recording. * Debugger: Refactor to allow simpler broadcasting. * Debugger: Prevent record with no commands. * GE Debugger: Refactor out stepping callback. * GE Debugger: Factor out host calls some.- Update to version 1.6.3~git20180901: * UI: Load post shader names on non-Windows early. * GPU: Clear alpha more consistently from 565. * Set a minimum of 1x1 for Android text bitmap measurement. * Add: EGL info for GLES on Linux * glslang options for vulkan * Debugger: Fix texture readback in GLES. * TexCache: Keep maxSeenV on clut variants in sync.- Update to version 1.6.3~git20180826: * Untested attempt to fix ios/mac discord * Allow choosing to use the system snappy or not. * GPU: Fix typo with wrong type. * UI: Use a larger buffer for realpath(). * Android: When using the hardware scaler, round the size to divisible by 4. Might help #11151 * Enable Discord integration for Mac and Linux.- Update to version 1.6.3~git20180826: * Update gradle version again * add BTP-BD2F joystick gamecontroller map * Ge: Keep jump/call optim when fast memory on. * Ge: Avoid executing invalid pointers. * GPU: Download safe size on next create, too. * GPU: Fix texture handling on framebuf detach. * GPU: Apply logic op in more cases. * GPU: Refactor logic op simulation for better reuse. * SoftGPU: Apply pixel mask for clears. * Headless: Fix graphics compare tests.- Update to version 1.6.3~git20180823: * Core: Fix logging of SCEGE category. * UI: Delay game config/discord until game info load.- Update to version 1.6.3~git20180818: * GLES: Fix direct shader depal on GLES. * Windows: Correctly buildfix Windows XP.- Update to version 1.6.3~git20180815: * Add sceUsbAcc stubs, improves EyePet(fixes endless loop on boot) * Harmonize some VS project settings. * Properly fix the iterator bug, oops. * Fix crash bug when cleaning duplicates of recent files * Revert some of the sln and vcxproj changes, hoping to appease Travis * Discord: Translated some messages * Don't forget to update the other build systems and try to fix the builds. * Basic Discord presence integration. * Add submodules, namespace json to prepare for the addition of rapidjson (sigh)- Update to version 1.6.3~git20180813: * Io: Fallback to long/full path on Windows XP. * Io: Linux buildfix. * GLES: Enable shader depal with Vulkan fixes. * Io: Prevent cur/parent dir in listing of root. * UI: Resolve symlinks when adding things to recent.- Update to version 1.6.3~git20180812: * Update README.md with discord link- Update to version 1.6.3~git20180812: * Savedata: Also validate icon/subdata size. * Savedata: Use size, not bufSize, for icons. * Savedata: Return error when bufSize is too small. * Savedata: Return error codes on WRITEDATA/MAKEDATA. * GE Debugger: Rename depth clamp more places. * SoftGPU: Oops, correct rounding to make sense.- Update to version 1.6.3~git20180806: * SoftGPU: Fix some minor rounding on viewport cull. * GE Debugger: Arrange matrices properly. * SoftGPU: Always clip, without special neg z case. * SoftGPU: Drop verts only when depth not clamped. * GE Debugger: Fix preview crash. * GPU: Rename clipping flag to depth clamp. * Update glslang again. Might fix #11276- Update to version 1.6.3~git20180801: * add libretro hooks for memory pointers to allow usage of new retroarch cheat code searching and rumble-on-memory change features- Update to version 1.6.3~git20180730: * GPU: Optimize > 0 alpha test using discard rules. * Headless: Fix graphics tests for Vulkan/Direct3D. * GPU: Restrict alpha test to zero for dest blend.- Update to version 1.6.3~git20180729: * Savedata: Reset data size when retrying hash. * OpenGL: Fix bug where we could end up calling glUniformMatrix without a bound program. Found by GL debug callback on NV. * GPU: Allow skipping discard when write disabled. * GLES: Avoid discard when we can blend. * Vulkan: Avoid discard when we can blend.- Update to version 1.6.3~git20180721: * Be extra careful about never ever binding null textures when drawing backgrounds. See #11243- Update to version 1.6.3~git20180716: * Update SPIRV-Cross to a fresher version. * Vulkan validation: Ignore the depthreplacing error for now * Update glslang to latest as of 2016-06-26 * Reduce the estimated transform cost of an additional light from 10 to 7 cycles, see #5530.- Update to version 1.6.3~git20180711: * Debugger: Add force resume/kill thread API. * Debugger: Add backtrace API. * Debugger: Add function symbol add/remove API. * Debugger: Add APIs for texture and CLUT.- Update to version 1.6.3~git20180709: * max res x2- Update to version 1.6.3~git20180707: * Just a quick fix for a typo made in last big rewrite of cheat engine.- Update to version 1.6.3~git20180705: * Don't cut below 2 * SaveState: Fix stale state threshold.- Update to version 1.6.3~git20180701: * Debugger: Update to latest armips. * Savedata: Use file hash to validate hash mode. * GLES: Include shader compile status in log/report. * GLES: Specify unsigned shift for Adreno bug. * GLES: Read compile/link errors consistently.- Update to version 1.6.3~git20180629: * GPU: Use hw tess only for hw transform. * GPU: Use HW transform for flat spline/bezier.- Update to version 1.6.3~git20180627: * Made X11-Vulkan default. Provided explanatory toolchain file as overriding is more complex. * Changed cmake option to exclude X11 rather than Vulkan itself. * Added Vulkan disable and forced CPU detection options * Restore the vertexCount to 32-bit, needed in some tesselation situations * GE Debugger:Fix indices memory allocation of bezier. * [spline/bezier]Modify D3D11 hwtess texture buffer to structured shader buffer. * Moved from using enum to enum class * Update AndroidManifest.xml * Update build.gradle * Update gradle-wrapper.properties * Update build.gradle * Added "oldest save" and "slots 1-5" as options for "auto load savestate" * [spline/bezier]Fix tex coords.- Update to version 1.6.3~git20180625: * Savedata: Upgrade secureVersion by default. * Savedata: Map secureVersion modes correctly. * Savedata: Add validation on secureVersion param. * Savedata: Return result codes from Save/Load. * Vulkan: Assert on some creates failing. * thin3d: Cleanup some unused/uninitialized warnings. * UI: Keep rendering UI even while stepping. * UI: Disable stepping on unthrottle touch button. * UI: Fix leak in control visibility screen. * UI: Make touch control visibility more consistent. * UI: Sort touch control visibility better. * UI: Show custom speed toggle buttons. * UI: Refactor touch control config handling. * Core: Allow toggle between 2 custom speeds. * UI: Make sliders able to show disabled. * Core: More consistently use config enums. * Core: Move config enums to separate file. * UI: Add a virtkey for holding alt speed.- Update to version 1.6.3~git20180623: * Debugger: Use Break instead of Stop. * Windows: Separate Pause and Break actions.- Update to version 1.6.3~git20180623: * UI: Interpret "unthrottle" to mean leave stepping. * CoreTiming: Reset CPU mhz on reset. * SaveState: Initialize some memory that is saved. * http: Don't crash on unclean client disconnect.- Update to version 1.6.3~git20180620: * Vulkan: Workaround Adreno discard bug. (#11197)- Update to version 1.6.3~git20180619: * Make HideSaveWarnings global (#11196) * Android: Allow desktop GL if available. * Android: Fix C++ EGL code path with threaded GLES. * GLES: Cut down on use of USING_GLES2. * Vulkan: Workaround stencil upload bug on Adreno. * GLES: Add missing semantics for stencil upload. * GLES: Cleanup stencil upload w/h handling. * native: Avoid an absolute value error. * Jpeg: Avoid signed shift warnings. * GPU: Avoid a switch case warning. * Vulkan: Fix some missing switch warnings. * GPU: Remove some unused fields. * Debugger: Fix some format warnings in udis86. * http: Check fread() result to avoid warning. * Debugger: Update to latest armips. * SDL: Avoid alpha on Mali/ARM devices using GLES. * SDL: Buildfixes for EGL lookup. * SDL: Allow more EGL configs. * GLES: Restore stencil/depth readback for debugger. * Debugger: Add some docs for new APIs. * Debugger: Add APIs to retrieve render image. * Debugger: Allow GPU actions while stepping. * GPU: Screenshot output in BGRA if that's native. * thin3d: Fix requesting BGRA buffers. * http: Discard output buffer on disconnect.- Update to version 1.6.3~git20180616: * Added Gioteck VX2 detection- Update to version 1.6.3~git20180616: * SaveState: Show only after 4 hours. * SaveState: Use latest version if initial missing. * SaveState: Add a setting to ignore warnings. * SaveState: Show warning on old / long use state. * UI: Show warning when in a temporary dir. * UI: Make button padding configurable.- Update to version 1.6.3~git20180615: * GLES: Use accurate GLSL ver in postshader convert.- Update to version 1.6.3~git20180614: * MediaEngine: adjust for AVStream.codec deprecation * GE Debugger: Stall less liberally on GE dump exec. * GE Debugger: Use a class for dump execution. * GE Debugger: Fix asserts when reading debug tex. * GE Debugger: Prevent hang on shutdown.- Update to version 1.6.3~git20180610: * SDL: Start with window hidden. * SDL: Use UpdateScreenScale(). * Qt: Allow for larger screen sizes. * Qt: Toggle fullscreen like on all other platforms. * Qt: Return correct refresh rate. * triangles * fx * triangle fan * cullmode fallback * flush back cull mode * handle cull mode by indices, improve performance for GVGNP, refer to #10172- Update to version 1.6.3~git20180610: * Vulkan: Properly transition stencil/depth for read. * Debugger: Prevent infinite loop on dead socket. * Debugger: Fix bounds warnings in debug mode.- Update to version 1.6.3~git20180609: * Qt: Use Roboto Condensed like on other platforms. * Qt: Remove bundled assets reader. * Debugger: Ignore invalid branches. * Debugger: Add func name and data symbol to disasm. * Debugger: Allow conditions on threadID/moduleID. * Debugger: Allow stepping based on thread. * Debugger: Avoid some lock ordering issues. * Debugger: Add HLE API funcs. * Debugger: Add debug interfaces for threads. * Debugger: Use a lock for memory reallocs. * Debugger: Add some missing memory locks. * Debugger: Add memory breakpoint management. * Debugger: Initial breakpoint APIs. * Debugger: Disasm search API. * Debugger: Avoid asserts in disassembly. * Debugger: Add thread safety to breakpoints. * Debugger: Fix resume not skipping breakpoints. * Debugger: Include assembler API. * Debugger: Poll frequently after stepping. * json: Optimize writing a bit. * Debugger: Use fragments for long chunks. * Debugger: Add stepping to WebSocket API. * Debugger: Add cpu.evaluate method. * Debugger: Prevent crazy disasm range. * Debugger: Add additional encoding/symbol info. * Debugger: Initial disasm API. * Debugger: Lock during startup/shutdown. * Debugger: Add version event for future proofing. * Debugger: Include PC and ticks in stepping events. * Debugger: Add current game info. * Log: Use a separate field for the timestamp. * Debugger: Disconnect on shutdown/disable. * Debugger: Add checkbox to enable remote debugger. * Debugger: Add config for remote debugger on start. * Debugger: Use a counter when entering stepping. * Debugger: Allow pinging current status. * Debugger: Name the WebSocket debugger thread. * Debugger: Add cpu.stepping and cpu.resume. * Debugger: Reorganize state handling. * Debugger: Cleanup, add initial API docs. * Debugger: Allow setting regs to inf/nan. * Debugger: Improve JSON number parsing. * Debugger: Initial register get/set APIs. * Debugger: Minor cleanup in MIPSDebugInterface. * Debugger: Synchronize error events using tickets. * Debugger: Organize WebSocket event handling. * Debugger: Serve a simple log listener WebSocket.- Update to version 1.6.3~git20180608: * Add missing include * net: Use WSAAddressToString for Windows XP. * http: Move web server to core and use flags. * thread: Add a simple thread executor. * http: Correct WebSocket close when code missing. * http: Use a buffer for WebSocket output. * http: Allow selecting a WebSocket subprotocol. * http: Allow fragmented data for WebSocket. * http: Add a simple WebSocket server class. * http: Add some operations to avoid blocking.- Update to version 1.6.3~git20180607: * jit: Remove unused breakpoint code. * armjit: Enable breakpoints. * arm64jit: Enable breakpoints. * Debugger: Run memory breakpoints on mobile. * Core: Remove sleep on stepping. * Core: Wake up inactive waits on game exit. * Debugger: Fix initialization issues. * Core: Process stepping on other platforms. * Core: Refactor stepping and locking. * json: Switch to gason instead of vjson. * json: Avoid encoding inf/nan in JSON. * json: Be precise by default. * json: Fix formatting of nested arrays/objects. * json: Allow formatting read json back to writer. * json: Actually include in build. * json: Escape strings in the json writer. * Debugger: Add assembler to build. * net: Listen on ipv6 and ipv4. * net: Support local ipv6 formatting. * net: Support ipv6 lookups. * Core: Remove some unused coreState funcs. * UI: Use UISTATE_PAUSEMENU while game still running. * Debugger: Consistently handle invalid addresses. * Debugger: Add mutexing to disassembly manager. * Debugger: Lock startup/shutdown for threadsafety. * Debugger: Track a counter when entering stepping. * Debugger: Allow multiple clients more properly. * GLES: Removed unused skip copy code. * GPU: Use unordered_map for tempFBOs. * GPU: Minor framebuffer code cleanup. * D3D9: Reuse BGRA conversion code. * D3D9: Use an unordered_map for offscreen. * thin3d: Convert BGRA8888 to RGB888 for screenshots. * GPU: Remove some unused code. * GPU: Dirty tex when clearing or rendering to self. * SDL: Fix EGL build.- Update to version 1.6.3~git20180606: * UI: Quit sorting when done. * UI: Add option to sort saves by size. * Sas: Correct calculation of VAG end. * Sas: Correct delay in playing samples. * GE Debugger: Cleaned repetition in spline preview. * GE Debugger: Show bezier/spline in preview. * Qt Debugger: Remove texture viewer. * Qt Debugger: Remove memory viewer. * Qt Debugger: Remove display list debugger. * Qt Debugger: Remove disassembly. * Qt Debugger: Remove VFPU dialog. * Qt: Fix build on Mac. * Qt: Mark git-version.cpp to skip automoc. * Qt: Load texture replacement images. * Reporting: Fix typo. * Reporting: Provide suggestions on negative reports. * UI: Show compat rating radios next to each other. * Headless: Default memory stick inserted. * Ctrl: Always mark non-user buttons released. * GPU: Use software transform for flat shading. * GPU: Correct sw flat shading color on Vulkan/D3D. * D3D9: Implement flat shading via state. * D3D11: Implement flat shading in shader. * Rename device choice config options as requested. * D3D11: Allow the user to select rendering device. * If there are multiple Vulkan devices, show a setting to allow the user to choose. * SDL: Move EGL init code into SDLGLGraphicsContext. * SDL: Use fullscreen for mobile/GLES. * SDL: Properly try multiple GL versions. * Update to 1.6.3 * Android: Reformat Java files. * cityhash: disable SSE 4.2 optimization on x86 * Update default firmware version to 6.60. * Savedata: Respect secureVersion parameter. * OpenGL: Similar to NvOptimusEnablement, use AmdPowerXPressRequestHighPerformance.- Update to version 1.6.2~git20180604: * Update lang submodule again- Update to version 1.6.2~git20180604: * save cache before clear- Update to version 1.6.2~git20180602: * UI: Reinit UI texture during game when used. * Fix a GL error when taking a screenshot in non-buffered. May help #11056 * Vulkan image readback: Fix a couple scary cases of wrong argument order in image transitions, leading to transitioning 0 mips * Better return the right pointer. * When creating temp framebuffers for download, size them using bufferWidth/Height instead of width/height. * Never bind a NULL image view in Vulkan no matter what.- Update to version 1.6.2~git20180601: * Update lang submodule * fx depal int precision for opengl es- Update to version 1.6.2~git20180531: * D3D11: Fix crash on screenshot. * Update to 1.6.2 * Fix another of these pesky GL task switching bugs. * More (disabled by default) gl error logging.. * Add a missing virtual destructor, fix a warning- Update to version 1.6.1~git20180529: * sprintf->snprintf. Don't think any of these are likely overflows though. * Thin3D: Handle binding a null texture better. * GLES: Properly restore the pointer to the render manager in more places- Update to version 1.6.1~git20180528: * Update to 1.6.1 * Vulkan: Update shaders/state when dirty properly. * Vulkan: Don't merge render passes if read from. * Minor cleanup * GLES: Refresh the draw context in DrawEngineGLES on DeviceRestore. How did we miss this? * More paranoia from Google Play * Add some paranoid checks guided by stack traces from Google Play * Change some log levels to verbose * Check for a valid screen manager in NativeIsAtTopLevel- Update to version 1.6~git20180526: * Update version to 1.6 in AndroidManifest.xml * Update lang * Android immersive mode: Fix display size stretch and touch screen inaccuracy when toggling immersive mode * Android: In v21 and later, make the navigation bar black using styles.xml * Improve README for 1.6 * Update README.md for 1.6- Update to version 1.5.4~git20180521: * SaveState: Fix rename when undo disabled. * Core: Shutdown properly on load failure.- Update to version 1.5.4~git20180514: * GLES shader depal fix. Again, this is disabled by default so should not affect anything. * Minor code simplification- Update to version 1.5.4~git20180513: * GLES depal (currently disabled): Use high int precision. * Always specify GLSL version 450 when compiling Vulkan shaders. * Let's try to update the sustainedperformancemode in yet another place... See #11018- Update to version 1.5.4~git20180510: * Another directory, plus no need to use c_str * Create vital directories on Android storage permission grant. Should help #11020- Update to version 1.5.4~git20180510: * Allow showing version only for Qt * Allow showing version only for SDL- Update to version 1.5.4~git20180510: * Win32: Not really appropriate to call exit() on a bad filename. Fixes #11030 * Call updateSustainedPerformanceMode from surfaceChanged as well. May help #11018- Update to version 1.5.4~git20180509: * Display: Prevent delaying flips inside interrupts. * Io: Prevent error when file locked for writing. * Android: Only keep the screen bright ingame. * Call updateSustainedPerformanceMode on app focus changes. Should help #11018 * Update to the current gradle version, 4.4- Update to version 1.5.4~git20180507: * Minor optimization * Shader depal (VUlkan): Apply a half-texel offset when bilinear filtering, fixing #11008 * Io: Cleanup file not found error codes. * D3D11: Use a dedicated slot for the depal texture. * GPU: Prevent temp FBOs from overwriting each other.- Update to version 1.5.4~git20180505: * Correct compatibility server link.- Update to version 1.5.4~git20180504: * Buildfix. * Update lang submodule * Fix regression caused by the new depal code for Vulkan. Fixes #10993 * softgpu: remove RIP addressing from SamplerX86- Update to version 1.5.4~git20180503: * D3D11 CopyFBToMemory: Clamp rect to fb size. Last-minute style fix, should really debug where the bad parameters came from. * Windows: If neither OpenGL nor D3D9 is available, offer an escape route into D3D11. * Vulkan: Leave removed commands in render passes. * Vulkan: Keep state on Clear cmds when used later.- Update to version 1.5.4~git20180503: * Vulkan: Discard draws immediately before clear.- Update to version 1.5.4~git20180502: * Revert "Limit the flip delay in the other direction to try to work around #10763."- Update to version 1.5.4~git20180430: * UI: Cleaning loading handling and use tags.- Update to version 1.5.4~git20180429: * Android: Properly reset home on config reload. * thin3d: Report unsupported format conversion. * GLES: Fix game screenshots. * Vulkan: Fix use-after-free crash on shutdown. * Savedata: Report secureVersion param usage.- Update to version 1.5.4~git20180429: * Remove misleading log * Limit the flip delay in the other direction to try to work around #10763.- Restore SDL build- Update to version 1.5.4~git20180422: * Depal: Reapply texture when bounds change.- Update to version 1.5.4~git20180422: * README: Add more to the issue template. * README: Cleanup and move some out to history. * Android: Add missing graphics shutdown calls.- Update to version 1.5.4~git20180421: * Fix build with ffmpeg 4.0- Update to version 1.5.4~git20180421: * Update UWP.vcxproj * Fixed Certification and img issues- Update to version 1.5.4~git20180420: * Oops, meant to commit this. * Disable the loading state string display, creates too much translation work for 1.6 * Android: Buildfix.- Update to version 1.5.4~git20180418: * Conditionally revert "Remove the bad orientation hack. Seems the Nexus 5X bug is fixed."- Update to version 1.5.4~git20180417: * Replay: Skip recording virtual disc reads.- Update to version 1.5.4~git20180415: * add support for File app on iOS 11- Update to version 1.5.4~git20180414: * Vulkan: Fix shutdown crash when device lost called. * Android: Avoid overload shadowing. * GLES: GlPushBuffer was a little too friendly. * Vulkan: Fix cache file error handling warnings. * Vulkan: Fix a log formatting issue.- Update to version 1.5.4~git20180414: * Fix glitch in MGS: Acid perf hack. yeah, slippery slope.. * Shader depal: fix bilinear filter coord * Implement shader depal for GL as well, but disabled by default. * Let's try it on SR2 as well. * Add a queue processing hack for Sonic Rivals too. Now it's fast. * Vulkan: Semi-gross hack that massively improves the perf of MGS2:Acid. * Fix various bugs. * Shader depal: Implement bilinear filtering. * Implement shader depal for Vulkan. See #10908. Bilinear filter not yet implemented.- Update to version 1.5.4~git20180413: * Just add some constants for the GL texture slots. * Vulkan/D3D11: Make some space in the base uniform buffer by consolidating the spline parameters into one variable.- Update to version 1.5.4~git20180412: * Avoid some GL errors on older devices * GL: Add a lot of conditional error checks (normally not enabled) * Some comment fixes and cleanup. * Don't forget to dirty some state after depal. May help #10906 ? * Replay: Fix a silly typo applying analog. * Android: Do the same file_offset_bits checks for pread64 as before. Should help #10901 * Temporary workaround for another IR interpreter crash. See #10897 * IR Interpreter: Add some missing instruction metadata. May help part of #10897- Update to version 1.5.4~git20180410: * Update lang submodule (restore software skinning option) * Buildfix.- Update to version 1.5.4~git20180410: * Inner interpreter safety check - in hw skinning mode, we need to flush if any part of the vertex format changes. * Remove some obsolete checks - software skinning is now supported even if morphcount isn't 1. * Revert "Start removing support for hardware skinning." * Revert "VertexLoader: Remove now-unused weights translation code" * Revert "Oops, fix hardware tess in Vulkan (after removing hw skinning, we need to adjust the binding number)" * Revert "Remove further remains of hardware skinning." * Revert "Remove gstate_c.deferredVertTypeDirty" * Revert "Comment fixes, reindentation." * Fix DecFmt bug * Revert "Further cleanup after the removal of hardware skinning." * Revert "Remove some remains of software skinning" * Module: Fix function hashing typo. * UI: Assert on invalid permission status. * Android: End GLES renderer after emu thread join. * GLES: Defrag using deleter off render thread. * Use tabs for indentation * fix “crash on exit” * allow padding specification, remove NSLog * add updated Obj-C version of SubtleVolume * Android: Avoid pread64 for > 2GB offsets. * Replay: Handle long button presses correctly. * Replay: Initial file handling and control funcs. * Replay: Track replay of file operations. * Replay: Prep side data structure. * Replay: Initial structure for replay functionality.- Update to version 1.5.4~git20180407: * UWP: Fix (or patch up...) a race condition in StorageFileLoader. Might help #10882, fixes some other freezes. * UWP: Remove the rendering backend picker. Fixes #10883, sort of. * UWP buildfix * Update lang submodule * Vulkan: Ease off on the allocator "slab pressure" if texture scaling is enabled.`- Update to version 1.5.4~git20180407: * Vulkan: Increase base slab allocation size. * Vulkan: Report old allocations when enabled. * Vulkan: Add tags to UI textures too. * Vulkan: Track tags on emu textures. * Vulkan: Allow reusing memory more aggressively. * Vulkan: Decimate when there are many slabs. * Vulkan: Add code to track allocator usage info. * Assorted cleanups. Don't assert on no clear mask.- Update to version 1.5.4~git20180405: * Vulkan: Remove the wrapper struct around VulkanTexture- Update to version 1.5.4~git20180405: * Fixes to in-game GPU shutdown/switching. Fixes #10860 * Fix issue in TextureCacheGLES::DeviceRestore * Auto unregister push buffer on deletion. * Auto register new push buffers on creation * Move pushbuffer deletion to the render manager. * Also take control over Begin/End * Minor refactoring moving creation/deletion of GLPushBuffer to GLRenderManager * OpenGL debug log: Filter out some buffer mapping info from the NV driver * More GL shutdown fixes. Partially fixes #10868- Update to version 1.5.4~git20180404: * arm64jit: Fix reg size in jr delay slot path. * Change to int to allow higher supersampling scale. * Add SSAA flag for post process shaders, enforces 2x auto resolution, to be used with blurry effects Also includes a perf. friendly example using simplified gauss filter- Update to version 1.5.4~git20180403: * GPU: Fix s8 norm with skin and morph. * Add "--pause-menu-exit" option.- Update to version 1.5.4~git20180402: * Android: Fix initial start from shortcut. * GLES: Show post-shader compile errors to user. * Vulkan: Show post-shader compile errors to user. * GLES: Show post-shader translate errors to user. * jit: Apply hasSetRounding at compile time. * arm64jit: Update rounding mode on thread switch.- Update to version 1.5.4~git20180401: * arm64jit: Fix a case of R() on unmapped. * arm64jit: Update some comments.- Update to version 1.5.4~git20180329: * Oops, fix mistake in #10834- Update to version 1.5.4~git20180329: * Include renderpass definition in Vulkan shader cache entries, should make it more effective again. * When binding a framebuffer to a texcache entry, delete its texture. Should help #10823- Update to version 1.5.4~git20180329: * Libretro needs core staticly linked even on Android * Fix libretro compile for gles platforms * OpenGL: Fix texture wrapping of render targets.- Update to version 1.5.4~git20180327: * Android: Properly restore screenshots on the Pause screen on task switching away and back. * GCC buildfix (can't use things without definitions in templates). * Make sure the renderpass cache hashmap is never accessed from the main thread at runtime. Should help #10811- Update to version 1.5.4~git20180327: * Fixed the new shader error on OpenGL ES (#10799) * Libretro: update Makefiles. * Libretro: style nits. * Libretro: set cache_context to true, fixes GL and D3D11 context reset. * Libretro: msvc build fix. * TexCache: unit test the quick tex hash. * Libretro: add experimental D3D11 support. * Libretro: update libretro.h * Headless: Quick update to use render thread. * SDL: Fix shutdown ordering. * SDL: Use wstrings in Windows API calls. * Libretro: Declare TARGET_ARCH for ARM before the include flags * libretro: msvc build fix.- Update to version 1.5.4~git20180326: * Don't leave "reduceHash_" uninitialized. Probably won't help #10796 though.. * Don't forget to initialize.. fixes #10802- Update to version 1.5.4~git20180325: * Headless: Add simple GL thread handling. * Quick try on fixing new shader for mobiles that are less forgiving. * PPSSPPSDL: Throttle refresh rate when in menu. Fixes #10445 * Remove the bad orientation hack. Seems the Nexus 5X bug is fixed. * Show chosen postshader display name properly, plus some additional bugfixes. Fixes #10790 * Android: Have haptic feedback ignore the global setting, but default to off. * Remove the last remains of the idea that textures can be efficiently updated instead of recreated. Accidentally fixes #10697 somehow.- Update to version 1.5.4~git20180325: * When listing post-shaders, use the "name" specified in the ini as default, when looking up translations. * Redirect the user to download the D3D9 runtime if D3D9 is not available and they don't want to switch to OpenGL. * Fix updating light constants when light type changes (we handle dir/pos lights differently). Fixes #10132 * Added new Natural Colors PP shader (removed blur) (#10782) * GPU: Count clears during frameskip.- Update to version 1.5.4~git20180324: * Remove "experimental" tag from Hardware Tessellation- Update to version 1.5.4~git20180324: * Remove some unnecessary logging. Fixes #10753 * nits. * Android: Reload the config after getting storage permission, and ask immediately. Should help #10670 * remove all usage of __LIBRETRO__ * Libretro port. * add missing include. * Windows/Vulkan: use the width and height arguments in ReinitSurface when provided.- Update to version 1.5.4~git20180324: * set _WIN32_WINNT to 0x0601 in stdafx.h * Android: Prevent a text bitmap size from becoming 0 on '\r\n'. Fixes #10764 (unless there are more platforms where it's broken...) * Win32 textdrawer: Fix rare crash affecting Patapon 2 in savedata manager. See 10764. * fix most write-strings warning. * remove unnecessary NULL assignment. * fix mingw and msvc cmake builds. * prevent reads of uninitialized memory. * vulkan: perform delete callbacks first since they can also queue deletes. * add missing inclues. * fix return value / plug leak. * prevent use-after-free. * fix va_list reuse without a va_copy. * SaveState: Default undo slots off on mobile. * SaveState: Show undos in save data manager. * SaveState: Keep an undo for each slot by default.- Update to version 1.5.4~git20180321: * Revert "Update glslang to the latest version" to fix #10748 * Enable FlushInstructionCache on UWP, it's been allowed finally. * Landscape Auto for Android * Map SDL controller's `back` button to Sony DualShock 4 V2's share button- Update to version 1.5.4~git20180319: * Android: Restore auto screen orientation. * Buildfix * Vulkan: Improve handling of shader compile failures (don't crash) * Vulkan: Workaround for bug in Adreno shader compiler affecting color tests.- Update to version 1.5.4~git20180319: * Delete some mistaken logging code * Minor improvement in pipeline-to-string (debug) * Vulkan: De-duplicate pipelines when storing cache * Vulkan: Minor logic fixes in the transition elimination * Vulkan: Use finalLayout to optimize away barriers before framebuffer copies. * Vulkan: Get rid of more explicit barriers by merging the finalLayout color transitions into renderpasses. * Add a super focused workaround for the Mali bug, see #10723 * Vulkan: Fix a barrier to be more permissive, there's no outstanding writes from the GPU to wait for. * Merge framebuffer layout pre-transitions into render pass subpass dependencies. * Vulkan Clear-renderpass merging: If a copy step is found that reads from the affected buffer, don't merge the clear into the later renderpass. * Shrink the vertexCount field in DeferredDrawCall to the 16 bits required. * Inner interpreter: Add support for the Gran Turismo hack. * Add another SDL game controller config, fixing #10724 * Pass new vulkan validation layers. Fix math in FindTransferFramebuffers. * Module: Clarify insertSymbols usage. * Module: Hash functions only once during loading. * Maybe slightly safer vulkan detection code. Might help #10732 * Vulkan: Load shaders/pipelines on thread. * OpenGL task switching fix * Do more detailed checks for Vulkan availability. Should hopefully solve #10729. * Remove some unused tracking of whether lighting is used by a shader * Update Vulkan headers to 1.1. Might as well keep up. * Bump GL shader cache version * Don't allow wrapping on framebuffer textures. Fixes GTA on old NV Shield * Update glslang to the latest version * Implement pipeline/shader cache for Vulkan, to avoid shader compile stutters on second and subsequent runs. * Remove some remains of software skinning * Vulkan pipeline: Merge a few property fields to a flags field. * Update lang submodule * Vulkan: Fix bug where we didn't always reset dynamic state after readbacks. * Oops, remove logging * Vulkan: Also check for empty clearing renderpasses later in the frame. * If the first renderpass is an empty clear, merge it into the next one that touches the same framebuffer. Works around #10723 in Wipeout.- Update to version 1.5.4~git20180315: * Vulkan: Add a (disabled) facility to force image layouts to GENERAL, for debugging barrier issues- Update to version 1.5.4~git20180314: * GL: Fix bug where we could crash if a readback happened at the same time as a buffer expansion. * Fix a typo extra " in some header- Update to version 1.5.4~git20180313: * Tiny unification of code. Save the GL shader cache a bit less often. * Fix the loading status. Prettify the loading screen by putting the status and spinner along the bottom edge. * UI: Show more detailed loading status. * Fix crash happening with glGetFloatv on GPDXD devices * Fix VSync on Windows. Should fix #10711 * Sort Vulkan function pointers by use. Might save us a cacheline or two during command submission..- Update to version 1.5.4~git20180312: * Combine the lightAngle and spotCoef float uniforms into one float2. Saves 64 bytes from the light uniform buffer, making it an even 512.- Update to version 1.5.4~git20180311: * Let's not do immediate flips in non-buffered. Should help #10395 * Fixes to vulkan restart logic on Android. Should help #10696- Update to version 1.5.4~git20180308: * Fix #10692 (crash when starting games from command line). Throw in some minor Vulkan fixes as well.- Update to version 1.5.4~git20180305: * MOVUPS to be safe. * Minor simplification in X86/X64 vertex decoder jit * Optimize the "inner interpreter" for God of War character drawing. Speeds the games up by 4% or so. * Move the vertTypeID calculation out of DrawEngine. Need to shorten SubmitPrim as much as possible.- Update to version 1.5.4~git20180305: * Oops, fix hardware tess in Vulkan (after removing hw skinning, we need to adjust the binding number) * Fix indentation mistake, minor cleanup. * Further cleanup after the removal of hardware skinning. * Comment fixes, reindentation. * Remove gstate_c.deferredVertTypeDirty * Remove further remains of hardware skinning. Fixes #10661 * VertexLoader: Remove now-unused weights translation code * Start removing support for hardware skinning. * Remove checks that disabled software skinning if there was morph. * Add necessary decode functions to support morph+skin * Small refactoring in VertexDecoderCommon * Minor cleanup * GLES: Support more buffer mapping strategies. * GLES: Fix force alignment on buffer map. * GL: Use AllocateAlignedMemory to make sure localMemory is always aligned. Fixes #10666 * GLES: Buffer handling cleanup.- Update to version 1.5.4~git20180303: * Qt: Set window title asynchronously. Should fix #10674 * Split out QtHost.h from HostTypes.h * Android: Fix fallback from Vulkan to GL.- Update to version 1.5.4~git20180302: * Turn off the inner interpreter when stepping in the GE debugger. Fix comment. * Fix custom UI backgrounds again by initializing lazily (turned out to be the cause of #10662)- Update to version 1.5.4~git20180301: * Buildfix, warning fixes * Some error handling and assert improvements, trying to understand #10662- Update to version 1.5.4~git20180301: * D3D9/D3D11: Fix GPU feature detection. Enforce accurate depth on nVidia as well, they no longer seem to support reverse depth so it's needed as a workaround. Fixes #10655 * inner interpreter: support skipping regular nops * Qt: Don't call SDL_PumpEvents from the emu thread. Fixes #10660 * b.sh: Add --qtbrew as a shortcut to use a Qt installed by homebrew. * Fix something found by -fsanitize=undefined * Buildfix, oops * GL: Fix depal issue where we forgot to set vp/scissor properly. Update some asserts. * Don't use the inner interpreter when debug recording * Execute_Prim: Add a smaller "inner interpreter" to avoid going back to the runloop during long sequences of PRIM commands.- Update to version 1.5.4~git20180228: * GL: Filter away redundant glEnable/Disable(GL_STENCIL_TEST) * Add an extra check to FindTransferFramebuffers to avoid misdetecting fb blits that end up out of bounds when we perform them. * Add comment trying to clarify shutdown of GPU_GLES, restore the wipe, minor tweaks. Should help #10652 * UWP buildfix? * Minor code/logging cleanups.- Update to version 1.5.4~git20180226: * GL: Don't wait-for-idle when shutting down the PSP GPU, it's the wrong place. Should fix #10652 * Remove duplicate declaration of GPUCommon::CmdFunc * Avoid the most common virtual call when possible. * Unify FramebufferDirty()/FramebufferReallyDirty() for the hw backends * Unify FastRunLoop for the hardware backends. * Unify UpdateCmdInfo * GPU: Unify command table (cmdInfo_) * Virtualize CheckGPUFeatures * Unify DispatchSubmitPrim as much as possible * Unify Execute_LoadClut * Unify Execute_Prim * Unify all the DrawEngine::SubmitPrim- Update to version 1.5.4~git20180226: * Improve a bunch of Vulkan copy-rect asserts by adding more debug info * Minor naming and init cleanups in VulkanTexture * Some log level changes.- Update to version 1.5.4~git20180226: * GLES: Disable buffer mapping for non-NVIDIA. * Vulkan: Remove the old method of uploading images. * Try to be more consistent when initializing vulkan structs. * Follow the spec rules about errors when allocating from descriptor pools * Extract RecreateDescriptorPool()- Update to version 1.5.4~git20180225: * Buildfixes * Separate T3DCreate* into its own header to avoid including Windows.h etc in some cases.- Update to version 1.5.4~git20180224: * Vulkan: Need to count allocated descsets per frame separately from the map, since tess isn't even in-frame cached. * Vulkan: Dynamically grow descriptor pools as needed. Should help #10641 and similar issues. * GLES: Fix texture scaling.- Update to version 1.5.4~git20180222: * iOS: fix hang on exit- Update to version 1.5.4~git20180219: * Qt: Remove old texture debug API. * GLES: Fix unpack misalignment, Qt debugger freeing. * GLES: Properly free when upscaling textures.- Update to version 1.5.4~git20180218: * TexCache: Decimate aggressively with many variants. * TexCache: Decimate CLUT variants more often.- Update to version 1.5.4~git20180213: * Fix issue with Vulkan task switching and resolution changes on Android.- Update to version 1.5.4~git20180212: * Postprocessing: Fix bug where scissor cut off the image if render resolution > display resolution * GL: Need to recompile postshaders on Resized() (which is a bit of a misnomer) * Oops, didn't mean to update the submodules backwards (remains from a bisect) * Whitelist mapbuffer usage to NVIDIA only (should maybe add Qualcomm too), it's murder on Mali * GLES: Fix shutdown while stepping. * GLES: iOS buildfix. * GLES: Android buildfix. * GLES: Use buffer storage and explicit flush. * GLES: Free localMemory later. * GLES: Use buffer range mapping where appropriate. * GLES: Use mapped device memory when possible. * Cheats: Fix a debug assertion. * iOS: Attempt to fix shutdown race condition. * GLES: Prevent race condition on shutdown. * GLES: Wait for queue idle properly.- Update to version 1.5.4~git20180211: * GLES: Use aligned memory for textures. * Global: Fix some type comparison/shadow warnings. * Tiny change to work around internal compiler error (!) in 32-bit builds with latest MSVC update * GLES: Prevent crash on screenshot without buffers. * Windows: Allow GL thread on graphics restart. * Windows: Prevent shutdown lag for non-GL. * SDL: Apply shutdown race condition fix. * Android: Fix race condition on shutdown. * Windows: Trigger StopThread() on shutdown. * GL: Fix clearing alpha on stencil uploads. * SDL: Fix issue with vulkan-to-opengl fallback * Windows: Consistently shutdown the main thread after exiting the message loop. * Improve assert messages in VulkanRenderManager (minor) * For some reason we use DrawActiveTexture in the GL stencil stuff, don't want to disable stencil unconditionally.. * Fix another way the scissor test could accidentally get disabled * Remove the confusing "DisableState" across the codebase * GL: Set a plain render state in DrawActiveTexture, without relying on the caller having called DisableState * Add a simple spinner to the game load screen to not look frozen. * Minor Qt cleanup, force OpenGL since we don't yet support Vulkan in Qt * Buildfix * gl-render-manager: Oops, fix scissor tests after clears * Avoid causing a gl error on startup on core contexts. * Another go at the deleter problem. Still not feeling 100% good about how this works.. but it does seem to work fine. * Get rid of an unused codepath (gl rendering is now always threaded) * GL render manager: Fix bug when setting texture sampler if the wrong GL texture slot is active. Will likely help #10583 * GLES: Fix minor memory leak * Qt: Fix emuthread management to exit cleanly without hanging * Cleanup the Windows thread stuff to work like the other platforms. Not quite perfect yet. * Android: Fix emuthread management to exit cleanly without hanging. Helps with task switching on Android. * SDL: Fix emuthread management to exit cleanly without hanging. * Add an option to use the system libzip, to please grumpy package maintainers. * Always use the bundled libzip to avoid compatibility issues. Should fix #10575 * Noticed that the UWP build has been broken for some time, fix it. * Fix another Qt memory leak * Qt: Prevent some race conditions on shutdown by deleting emugl. * Fix further memory leaks * Move SDLGLGraphicsContext.h to the correct location. Minor cleanup * Minor cleanups * Split the SDL graphics contexts into their own files. * SDL: NativeInitGraphics/NativeShutdownGraphics should run on the emu thread. * Qt: Some cleanup and fixes. Still not working correctly with gl-render-manager. * Temporarily disable symbols on Qt, crashes strangely. * Warning fixes * Fix some memory leaks * Revert "Simpler way to deal with the GL deleter" * gl-render-manager: Use properly scaled scissor rectangle, oops. Fixes higher resolutions. * gl-render-manager: Fix postprocessing shaders. Fixes #10566. Live switching is broken though for some reason. * gl-render-manager: Support scissored clears, as used by the GL backend. Fixes GT. * b.sh: Add a build option for address sanitizer. When enabled, we turn on some compatibility options to make it work right.- Update to version 1.5.4~git20180131: * Rough fix for threaded GL for Qt. * Simpler way to deal with the GL deleter * Minor: Make the Vulkan allocator debug visualizer slightly better looking by adding a border. * Buildfixes * Avoid linking error on MacOSX. * Include order fix. Darn X11 headers. * Debug visualization for the Vulkan memory allocator. Shows some interesting behaviour. * Fix readback color conversion * Fix some accidental extra-indentation * Don't crash on missing readback formats. * Enough JNI/threading hackery to get it to run on Android! Broken readbacks make it crash alot though. * Work towards threaded GL on Android. Now TextDrawer barfs on wrong JNI context. * another whitespace fix * one more whitespace fix * whitespace cleanup * disable the iOS thread before shutting down * use GLRenderManager on iOS * SDL: Oops, only start the emu thread for GLES. * Core: Set thread names when possible. * GLES: Fix segfault on GL 2.x. * SDL: Allow running GL on thread. * GLES: Handle glGetString() on GL thread. * GPU: Fix shader blending recopying. * GLES: Correct shader blending. * GLES: Run ThreadFrame until frame complete. * GLES: Fix race crash on shutdown. * GLES: Reintroduce out of memory checks. * GLES: Re-enable texture scaling. * GLES: Add TODO note for shader blend texture. * GLES: Use linear for high-res FBO tex copies. * GLES: Report errors for link failures. * GLES: Keep the GLRShader desc around. * GLES: Avoid using failed depal shaders if possible. * D3D11: Remove potentially misleading rebind func. * GLES: Skip blend reset after stencil upload. * GLES: Reset blend state on clear. * Reintroduce check for GE_LOGIC_COPY * ES2 buildfix - glGetTexImage is not available * gl-render-manager: Fix updating sampler modes when texturing from framebuffer * gl-render-manager: Fix HW tesselation. Remove 1D texture support, likely no benefit. * GLES: Avoid a shutdown race condition. * Debugger: Fix texture preview in GLES. * GLES: Actually stop the thread on shutdown. * Vulkan: Fix alpha clear on stencil upload. * GLES: Consistently reset state on new steps. * GLES: Fix intra-buffer block transfers. * gl-render-manager: Implement logic ops * GLES: Accept a color mask for clears. * GLES: Prevent writing to gutter in readback. * Vulkan: Correct zero stencil upload fast path. * Vulkan: Fix stencil-only clear for stencil upload. * GLES: Document stencil clearing bug. * GLES: Move stencil upload state into render pass. * GLES: Ensure stencil upload clear in render pass. * GLES: Bind texture on MakePixelTexture(). * More work on shutdown, still hanging though. * Fix for deletes, add some debugging stuff * gl-render-manager: Now threaded mode seems to work fine (and fast!). Shutdown doesn't, though, and there are stability issues. * OpenGL: Now run GL on a secondary thread. Sync issues remain. * Fix use-after-free in shader error reporting * TODOs and indentations * StencilBufferGLES: Move SetNoBlendAndMask to the right places. * Fix goof with the stencil buffer drawing * GL render manager: Improve shader error reporting. * Minor fixes, indentation and comments * Vulkan: Use push_back instead of resize(+1) * Truncate the '\n' from GL debug strings before logging them. * iOS buildfix * Move GL sampler state tracking into GLRenderManager/QueueRunner. * More state dirtying, a comment * Fix terrible drawing glitches when we do sync readbacks. * Assorted cleanup * Rip out async readbacks from FramebufferManagerGLES. They should be implemented in GLQueueRunner, differently. * Remove the old CPU threading remains, start redesigning interfaces. * GL render manager: Simple implementation of synchronous framebuffer readbacks. * Remove viewport flipping where it's not needed * GL render manager: Add some more dirty tracking. * GL render manager: Merge BindInputLayout into BindVertexBuffer. * Fix bug, works on Android now. Don't reuse textures. * Run the depal stuff, seems a bit broken. Add some state filtering. * Scissor fix * Fix showing savestate screenshots (needed mips) * Make sure we set GL_TEXTURE_MAX_LEVEL somewhere. * Fix some texture memory bugs (yeah need to make copies..) * gl-render-manager: Need to actually bind newly created textures. * GL render manager: Various fixes and cleanup including a buffered rendering fix, rect primitive fix * Start moving the framebuffer stuff over to the render manager * Fix more gl-render-manager problems * Kill off the GL state cache * Delete the gl name cache (might resurrect it on the GLQueueRunner side if needed later). Other cleanup and fixes. * Initial texture work. Bugfix indexed drawing * More GLRenderManager * Start messing with the draw engine... * Finish the shader manager (almost) * PushBuffer added. Thin3d works now on top of GLRenderManager, except framebuffers. * Fix clears and textures. Things still broken due to memory overwrites. * First garbage graphics output! * Even more gl-render-manager * More gl-render-manager * More work on gl-render-manager * Begin implementing GLQueueRunner and GLRenderManager * Additional header cleanup * Split Android graphics context implementations into their own files. * Windows: Fix loading files with a long path. * Revert "EditorConfig: Workaround MSVC2017 bug." * Windows: Use sufficient buffer for config file paths. * Windows: Fix a small memory leak. * Experimenally try a new gamecontrollerdb.txt line for 360 wireless receiver on linux. See #10181 * Allow up to 10x window size on Windows. * Windows: Fix extracting UMD block data. * Add taptic feedback on virtual buttons * Don't prevent use of make's long options * Update Inno installer * Check for Vulkan Xlib/Wayland surface support before enabling * Update lang submodule * IR: This optimization is safe when all three regs are consecutive, so avoid disabling it unnecessarily. * Minor cleanup * Use more accurate words * irjit: Remove Comp_ITypeMemLR. * Use more specific words when applicable * GPU: Improve some bezier logging. * irjit: Improve multiple lwr in a row. * irjit: Swap moves when it may allow clobbering. * irjit: Convert lwr and friends to easier code. * irjit: Combine lwl/lwr and swl/swr, like before. * irjit: Handle Left/Right ops in passes. * irjit: Add dedicated ops for lwl/swl and friends. * irjit: Optimize out temp lhs copies.- Update to version 1.5.4~git20180108: * irjit: Skip preloading blocks with jump to 0. * irjit: For debug, return the best block at addr. * irjit: Allow precompiling funcs at start. * jit: Add interface to precompile functions.- Update to version 1.5.4~git20180105: * irjit: Add a safety check for block num overflow. * irjit: Enable more debug UI for block selection. * irjit: Calculate bloat statistics. * Cleanup GetBlockNumberFromStartAddress * Fix that weird unordered compare mode, hopefully * IR: More fixes. Still something wrong with VFPU compares (not caused by this PR). * require iOS 8, add a launch screen * On Linux, can't even include nmmintrin without explicitly enabling SSE 4.2 support. * IR interpreter: Add some braces to allow variable declaration in the switch cases. * Add some more SIMD support to IR interpreter. Mostly just because, but also serves as implementation reference for later code generation backends. * IRInterpreter: Fix bugs in floating point truncation functions * Fix running the CPU test from the UI. * Show IR disassembly in JIT Compare screen * IR Interpreter: Add missing break; to switch case IROp::FSign. * irjit: Encode downcount directly as a constant. * irjit: Embed constant inside IRInst. * Minor fix for previous commit. * irjit: Fix swr typo. * VertexDecoderCommon: A few more cases. * IR Interpreter: Add a comment, minor cleanup, minor SSE stuff. * VertexDecoderCommon: Avoid reading the destination during vertex decode, might be some kind of memory that's not good to read from... * Module: Avoid scanning stubs if possible. * Module: Scan modules with no sections at all. * Module: Correct detection of executable sections. * UI: Fade in loading much slower to avoid flicker. * UI: Actually offset text shadow. * UI: Show PIC1 while loading. * Core: Asynchronously load the main ELF. * irjit: Properly account for delay slots in size. * iOS: ViewController cleanups - delete unused code and properties * iOS: call PROFILE_INIT so we don't crash with USE_PROFILER * iOS: Nix iosCanUseJit and targetIsJailbroken. Move NativeInit call to main so it can take cmd line args. * Remove references to AudioEngine, which isn't used anyway * HLE: Reset latestSyscall on save state load. * irjit: Implement lwl/lwr/swl/swr. * irjit: Add options for compile/optimize steps. * irjit: Add extra temps to make lwl/swl/etc. easier. * irjit: Cleanup some invalid op handling. * arm64jit: Avoid spilling an extra reg for lwl/lwr. * jit: Report blocks with uneaten VFPU prefixes. * Logging: Use AndroidLogger for all mobile devices. * nil out sharedViewController in case bindDefaultFBO is called again * iOS: convert all obj-c source code to ARC * iOS: fix a reference counting bug that may have caused ViewController to never be deallocated * Modernize property syntax and don't use viewDidUnload (deprecated in iOS 6) * Create AppDelegate the standard way instead of in PPSSPPUIApplication init * irjit: Speed up icache block invalidation. * Change iOSCoreAudio from cpp to mm. Explicitly activate the audio session. Always set the same mDataByteSize. * Add AVFoundation to linked frameworks on iOS * Handle iOS audio session interruptions by reinitializing audio * add an include for PPSSPP_PLATFORM * fix cmake when building for iOS in a path with spaces * Fix build on iOS (only iOS 9 and up support thread_local) * Stencil copy: Avoid clearing the depth buffer. * Remove outdated comment. * Oops, forgot these. * Complete the separation of depth and stencil renderpass flags * Start separating depth and stencil renderpass actions, only internally in the Vulkan code so far. * Vulkan: Create renderpass objects on demand. Just a refactoring to prepare for some later features/optimizations. * Vulkan: Use VK_KHR_DEDICATED_ALLOCATION for frame buffers for minor speedup on some GPUs. Check for the debug report extension before enabling it. * Typo fix * Add a bit of logging to try to figure out #10477 * arm64jit: Negate in ADDI2R/SUBI2R as well. * Debugger: Fix hang when viewing invalid RAM. * arm64jit: Statically allocate ra as well. * Profiler: Show the slowest thread's categories. * Profiler: Fix cat display on small screens. * Profiler: Separately track texture hashing. * arm64jit: Free up W23 for static alloc. * arm64jit: Cleanup method names, temp discard. * UI: Fix dev menu scroll on small screens. * UI: Only default focus visible things. * arm64jit: Enable safe memory for lwl/lwr. * arm64jit: Avoid arithmetic movs. * arm64jit: Fix spilling for more than one temp reg. * arm64jit: Use TBZ/TBNZ for vfpu branch as well. * arm64jit: Use TBZ/TBNZ for fp branches. * arm64jit: Use CBZ/CBNZ for zero compare branches. * arm64jit: Handle more imm compare cases. * arm64jit: Use CMN for CMPI2R if possible. * arm64jit: Avoid temporary on variable shift. * arm64jit: Reuse code in I2R funcs. * Dual source blend: Remove bad #ifdef that killed dual src code on Android... oops. Re-enable on nVidia Shield TV/Tablet. Fixes #10136 properly. * arm64jit: Oops, properly init temp locked flag. * UI: Check existance outside of game info lock. * UI: Use atomic flags in game info cache. * arm64jit: Remove unnecessary address masking. * HLE: Replace starocean framebuf clear func. * GPU: Track stats on uploads. * arm64jit: Avoid flushing when mapping as pointer. * arm64jit: Jit lwl/lwr with proper temp regs. * arm64jit: Fix and enable imm lwl/lwr. * arm64jit: Allow ANDI2R/etc. with zero. * arm64jit: Attempt to reuse imms on sw/etc. * x86jit: Fix safemem on WX exclusive. * jit: Skip unlinking blocks on clear. * arm64jit: Autodetect pointerify support. * arm64jit: Allow reg ptr offsets when unaligned. * arm64jit: Allow ARMREG_AS_PTR to be dirty. * arm64jit: Use reg sum for LDR/STR. * arm64jit: Fix an integer truncation warning. * arm64jit: Reprotect fixed code after icache flush. * arm64jit: Remove buggy icache invalidate. * arm64jit: Avoid MOVK elsewhere without pointerify. * arm64jit: Allow static alloc without pointerify. * arm64jit: Skip storing spilled but not dirty. * arm64jit: Only adjust pointers if pointerified. * arm64jit: Allow disabling pointerification. * Module: Reload imports later in save state load. * Android cmake buildfix * GPU: Reset context version on init. * UI: Trigger view recreate on static sized screens. * Display: Avoid limiting FPS without a clear. * Debugger: Defer active symbol updates. * Vulkan: Allow full depth range with depth clamp. * Vulkan: Use depth clamping, where available. * GPU: Match GE saved context better. * Vulkan: Fix fragment depth rounding. * Qt: Fix OpenGL init. * GPU: Reset GPUBackend on graphics init. * GPU: Remove duplicate BACKEND constants. * Check for Wayland headers in CMake * Remove VULKAN_STATIC * Support Vulkan on any Unix * Add support for Vulkan on Wayland * GPU: Avoid memory corruption on bone matrix > 96. * UI: Remove auto-download options. * GPU: Remove FBO auto-download hack. * irjit: Allow continuing from mips break. * GPU: Add quick method for debugging. * UI: Fix graphics API display on start. * Windows: Track minimize as lost focus. * GPU: Reduce depth blits when not updated. * Software: Execute bounding box tests. * Vulkan: Decimate the texture allocator. * GLES: Allow dual src blend on newer Intel. * GE Debugger: Allow enable/disable of prim preview. * GE Debugger: Keep prim preview on pan/zoom. * GE Debugger: Fix preview when zooming. * GE Debugger: Fix some crashes while stepping. * GE Debugger: Save with alpha for PNGs. * GPU: Cleanup some feature flags usage. * GLES: Improve HW tess requirements validation. * Core: Allow more formats for screenshot. * GE Debugger: Allow image export from previews. * Core: Refactor screenshot saving. * Android cmake fix * SDL: unbreak on more non-Vulkan platforms * GLES: Reduce conversion buf size if possible. * GLES: Avoid buffer on GLES2 for h=1 / CLUT. * Vulkan: Cleanup unused code. * GLES: Pack without stride where possible. * SDL: Fix OpenGL init again. Fixes #10424 * Build Vulkan on all platforms, won't be used if not supported. * Get Vulkan going on Linux * Statically link a vulkan loader on Linux. Use to to init vulkan on X11. Unfortunately, it's broken. * Cleanups in PCMain.cpp * WIP vulkan on linux stuff * SDL: really try lower GL profiles & add GLES context support * Vulkan: Fix bug where we'd do the initial layout transition for an image before binding memory to it. Should help the issue uncovered in #10413 * Add missing includes. Remove some more unnecessary #ifdef _DEBUG checks - the debugger is supposed to work in release mode too. * CMakeLists: relocate EGL library name detection * Move QtMain.cpp and PCMain.cpp to more sensible locations. Native isn't standalone anymore... * Remove more obsolete ifdefs * Some ifdef cleanup. * Get rid of the old custom "Event" sync primitive. * Win32: Use the standard thread APIs to manage the emu thread. * Avoid including platform-specific headers in VulkanContext.h * Implement warning when trying to play Ghost of Sparta with a modified CPU clock, as suggested by unknownbrackets in #7411 * Update vulkan headers, add linux .so loader lib for easy builds, like Sascha does. * Fix annoying name clashes (Status is in X11 headers..) * Just some log cleanup * Fix typo causing #10408 * Another buildfix, sigh. Also extend the safe region a little bit to the thing from a couple commits ago. * Add a tiny bit of safety margin to the RipAccessible check. Should be enough for 128-bit SSE data. * Update lang submodule * Oops, buildfix * Move vulkan debug callback out from WindowsVulkanContext into a file that can be shared with other platforms later. * UI: Properly center storage perm prompt. * UI: Use less space with recent + need storage. * UI: Allow skipping transitions on set current tab. * UI: Fix AnchorLayout size when wrapping content. * UI: Pass UNSPECIFIED through on scroll views. * UI: Give ItemHeaders intrinsic size. * UI: Add flex pressure to tab content. * Update bounds in NativeResized as well to fix glitches on layout screens that use it. * Improve very small display on very large surface, And change some variables to constants. * Limit smallest zoom to match it's slider and well. * Respect sticky edge by center option and make it stick from smaller range * Stick display to edges of the screen/window size * Improve display layout editor for zooming into corners, also limit the scale to 10 to match slider. * GPU: Rename GPUBackend setting to apply default. * GPU: Default to Vulkan if possible. * http: Allow sharing automatically on PPSSPP start. * UI: Always clip tab contents. * UI: Clip scissor to screen. * UI: Transition tab strips on select. * UI: Allow negative left/right for anchor layouts. * UI: Add tween for translating anchor offsets. * Windows: Fix UI text measurements with &. * UI: Reset transitions after too long a time. * UI: Translate API on start screen. * UI: Allow translating system info. * Another driver version check change, should help Galaxy A5 2017 on issue #10361 * Force AccurateDepth on, on older Mali drivers which don't handle reverse Z viewports. Should help #10361 * Make a minor correction to Vulkan driver version display. * Store: Maintain icon aspect ratio. * Store: Highlight active item, reselect on resize. * Store: Wrap item descriptions on small screens. * UI: Transition button and item focus/presses. * UI: Add an event for tween finish. * UI: Add delay to tweens. * UI: Show a few more flags in build config. * UI: Show extensions at full width. * And yet another case of the same problem as the previous commit. * Fix another case where we trusted std::move to clear the origin, which is not guaranteed. * Tweak logging and asserts in VulkanDeviceMemory::Destroy * Don't hold the lock when processing messages, only when taking them off the queue. Fixes #10383 * Display: Only reapply state on load. * Display: Reset cycle counter on load state. * UI: Always apply tweens after restore. * UI: Add threadsafety to cache item file loaders. * Loaders: Depriorize disc streaming queue items. * GLES device lost/store fixes * Apply a fix to the ARM64 emitter ported over from Dolphin * Add a comment, revert a reporting change. * UI: Cancel loaders on shutdown. * Loaders: Add cancelation to all file loaders. * UI: Reset touch controls after config load. * UI: Persist tween data on view recreate. * Add missing IF statement for instance rendering check.. * Minor uniform cleanup * Try to fix build with the old Android build system too... * SPIRV-Cross should build on Android now, so remove another platform check. * Use glslang to translate GLSL 1.x postshaders to GLSL 3.0 or later to appease strict GL Core drivers. Should fix #10362 * Update travis config to use NDK 16b * Also update Application.mk for the old build system. * From NDK 16, libc++ is out of beta and gnustl will be deprecated soon, so switch. * Fix another little inconsistency (two uniforms were merged for bad reasons) * Clean up a small inconsistency * Rework GL lost-device to work more like Vulkan. Gets rid of gl_lost manager etc. * Recreate views after boot is done, to workaround #10360 . Not the best solution.. * Vulkan: Add facility to auto-generate mipmap levels. Not yet used. * Vulkan: Show samplers in "shader debug" * Avoid multiple flips per frame, fixes immediate flip for God of War * Add mitigation for games like GTA that never call sceDisplaySetFramebuf * Flip immediately if that's OK. This can save up to a frame of graphics latency, in games that display "immediately" instead of latched. * UI: Show loading message while shaders preload. * fixup! UI: Ensure tweens always complete. * GLES: Avoid hanging while precompiling shaders. * System: Allow GPU to have delayed loading. * UI: Apply tweens on Update(). * UI: Reorganize EmuScreen so it renders on loading. * UI: Ensure tweens always complete. * UI: Add a simple tween class. * UI: Add colorBlend() helper. * Display: Correct max FPS limiting skew. * Windows: Request a core profile by default. * SDL: Use core profile, fixing old Mac GL issues. * arm64: Use LDRUH instead of two LDRBs. * Savedata: Show icon for new saves more often.- Update to version 1.5.4~git20171205: * v1.5.4 * Try to fix iOS builds on the Travis buildbot. #10254 * Replacement: Break the mip loading loop if a level is wrong. Also shrink the log output. * Reject texture replacement mipmaps of the wrong size * Just some debug output for future decisions * Update submodule lang * Also disable dualsrc blend on Tegra K1. Should help #10208 * Missing -lEGL when -DUSING_EGL=ON * Android: Warn if PPSSPP fails to save the config file. * RIFF: Add check for truncated files, cleanup a little more. * Try to protect against bad data in RIFF files (used for menu background audio only) * Even more cleanup of RIFFReader * Kill off more unused code in RIFFReader * Remove write support from chunk_file, rename to RIFFReader * Reformat chunk_file. Don't usually reformat whole files, but this was too ugly to work on :P * GE Record: After recording a frame, log the filename of the output file. * Disable "Accurate Depth" in Burnout games, they have trouble with it on Mali (Z-fighting...) * Vulkan: Allow shutdown with init commands. * Android: Fix race condition on lock/unlock. * Android: Reset immersive after native dialogs. * Vulkan: Swap in more forceful asserts. * Global: Silence some unused declaration warnings. * UI: Fix some virtual override warnings. * Windows: Stop input poll before emu shutdown. * UI: When stepping, clear on initial load. * Android: Fix crash on shutdown/restart. * UI: Fix D3D9 half-pixel offset at 1x. * Clip block transfer destinations. Should fix crash in #10011. Stats: Invent some sort of usage metric for device memory allocators. * Revert "Fix memory-scan bug in VulkanDeviceAllocator that probably causes some fragmentation." * Fix memory-scan bug in VulkanDeviceAllocator that probably causes some fragmentation. * Shutdown fix. * Fix bugs in VulkanImage allocator support * Add another assert, which gets hit.. Hm. Something is wrong.. * Change some Crash() to asserts in VulkanDeviceAllocator * Use a VulkanDeviceAllocator for thin3d textures. Many devices have a hard limit on the total number of allocs and it's unnecessary to have the UI put pressure on that. * Vulkan: Only call EndCreate on the texture if it actually exists.. Though not having one would be bad. * UI: Send prompt results even on back/cancel. * D3D11: Change state caches to DenseHashMaps. * Hashmaps: Fix missing maintain calls in non-GLES. * Fix a use-after-free in sceKernelTerminateDeleteThread * Android: Render text with newlines properly. * UI: Wrap text properly with explicit newlines. * UI: Clean up some unused code and flags. * Hashmaps: Another cleanup. * UI: Avoid pushing a screen on top of itself. * UI: Cleanup common message handling. * UI: Avoid navigation with an active dialog. * UI: Send messages to dialog parents by default. * Hashmaps: Reset count on clear. * GLES: Log shader cache filesize error better. * GPU: Minor cleanup. * Hashmaps: Reset state when growing. * Hashmaps: Change some crashes to asserts. * GLES: Validate shader cache filesize on preload. * GPU: Use more typesafe shader IDs. * GPU: Annotate free shader ID bits. * Update AndroidManifest.xml to 1.5.3.0, just in case anyone is still using the old build system where this isn't automatic. * Update lang * Fix bug in Vulkan non-buffered where clears could extend outside the frame, since Vulkan clears do not respect scissors. * Vulkan: Remove misguided assert about backbuffer clearing mode. * Reporting: Oops, fix module load log line. * Add hotkey to toggle audio and video dumping together in sync. * Add a github issue template. Let's see if this works. * Reporting: Use a different link message on preload. * GPU: Add missing shader id to short desc. * Improve reporting for imm buffer exceeded. Reset the immCount_ every frame to avoid getting "stuck" permanently in case some garbage is executed.. * Try a silly workaround for an otherwise unexplainable crash seen in Google Play Console * Reporting: Don't report with locked CPU speed. * Reporting: Improve bezier/spline morph/skin data. * Try to help Mali 400 shader reg alloc by reusing variables. It's still commonly reported. * Comment, minor cleanup * Reporting: Improve no pos verts message. * Reporting: Skip reporting reused depthbuffers. * Module: Cleanup magic number. * Reporting: Remove unused code. * Reporting: Stop reporting module load versions. * Adhoc: Remove incorrect thread create param. * Reporting: Disallow feedback for fake game ids. * Buildfix, oops * Vulkan: Fix crash bug when post processing shaders failed to compile. * Clean up all the FBOs in DestroyAllFBOs. Missing any can have bad consequences after app switching on Android/Vulkan where we recreate stuff. * Checks and paranoia in response to a crash report.. * Check for HW-transform and through when loading GL shader cache. * Minor cleanup. Add a debug assert in shader ID calculation * Oops:] * Despam a sceDmacMemcpy report. Happens in Naruto Shippuden: Ultimate Impact, accordint to reports.- Update to version 1.5.2~git20171201: * Clear postprocess confusion in d3d9 backend by hiding the option:] * Vulkan: Report more info on texture from target. * GPU: Try to avoid FB download without an FBO. * GLES: Report shader errors with shader desc. * Add some debug asserts, useful for debugging shader mismatches locally (though haven't found any..) * Module: Stop reporting bad magic numbers. * Memory::Memset: IsValidRange is a better solution. * Fix minor discrepancy in shader ID calculation, I don't think this will fix anything though. Bumping shader cache version and doing minor cleanup too. * Avoid wrapping when shifting down the audio after scaling by a 20-bit value. Fixes #9967 * Add sanity check in Memory::Memset * Still seeing asserts in this function, weakening remaining to debug-only.. but these really shouldn't trigger. * DX9: Revert a bad optimization, hopefully fixing #10205. Vulkan: Add a missing check.- Update to version 1.5.2~git20171130: * Add some comments. * Oops;p, I always mess this up. * Change some other substr used with cheats and smuggle a fix for another problem * Change str.substr(x, 1) == "y" to str[x] == 'y' * Fix a cheat menu crash with invalid cheat name. Also stop #comments from being removed by cheat menu. * VKRFramebufer: Just some checks to be slightly safer in case creation failed.. * Fix UI crash when keyboard navigating out of popup list. * Can't call functions through known-nil pointers, even if they don't touch local data - LLVM's optimizer might have done something stupid. * Fix a java exception around the GPS stuff * Vulkan: Avoid duplicate image pre-transitions (actually eliminated later anyway, but a small saving) * Vulkan transitions after render: Add a missing case that seems like it could be common? * Avoid an assert in ARM64 emitter, seen in Google Play crash logs * Move pushbuffer map/unmap to the .cpp file to avoid inlining (for stack traces) * Crash in a more appropriate place if missing a drawcontext (happens on really weak devices only) * Fix another possible Vulkan shutdown bug * Loosen up some asserts that seem to trigger unexpectedly... need investigation. * Crash reports from 5% rollout of 1.5: Make some asserts dbg_asserts for now, try to fix an issue with framebuffers when postproc is enabled. * Try to get androidgitversion to behave. It thinks the build is dirty when it's not. * Add privacy policy link to app, as required by Google Play since we use the CAMERA permission now. * Update AndroidManifest.xml to 1.5.0 * Update lang submodule- Update to version 1.4.2~git20171128: * Readme for 1.5: Small rewording * Coldbird's up and running again, restore the proAdhoc default. See issue #9984 * More README updates * More 1.5 README fixes * Update the README for 1.5. * Fix a text overdraw problem on the title screen on very small displays. * Fix the fix for Thrillville. See #7459 * Add ability to simulate a few kinds of Vulkan initialization failures, to test the GL fallback. * Minor error checking improvement * Android: Call setDisplayParameters early with the display w/h in pixels. Without this, was defaulting to 1x rendering on S8 which is silly. * Windows: Avoid UWP for desktop api family. * UI: Fix alphaMul clamping. * Kernel: Fix delete thread null check. * Global: Fix some warnings. * Windows: Fix error formatting with % signs. * GPU: Fix block transfer write breakpoint. * Just reduce some log levels * Unbreak save states, fix other minor issues from review * Fix some comments * Add safety check. * Hack that converts immediate draws to through-mode draws. This won't work correctly in all cases - but it's enough for Thrillville which uses it to clear only. Works around #7459. * Process immediate draw commands. Not yet sending to graphics backends. * Fix D3D11 push buffer overflow * Fix the prefix problems on ARM 32-bit as well. * Core: report Debian GNU/kFreeBSD separately * Common: implement GetExeDirectory on NetBSD * ARM64 JIT: Fix additional VFPU prefix problems * Fix JIT bug in ARM64. Fixes #10183 * Vulkan vertex cache: Fix memory leak * Fix _assert_ on Android to assert properly * Revert "Temporary hack (see #10163): Ignore the VK_ERROR_INITIALIZATION_FAILED from vkQueueSubmit." * Temporary hack (see #10163): Ignore the VK_ERROR_INITIALIZATION_FAILED from vkQueueSubmit. * UI: Minor pause screen cleanup. * UI: Draw actual, not aligned, text width. * UI: Clear font bitmap after aligning size. * When drawing text using our truetype backends, round coordinates to pixels. Fixes #10180 * Fix text width measurement on Android when there are spaces at the start/end of the string (bounds doesn't handle that). Fixes 10174 * Get rid of collision-prone font cache keys. Stress the font cache a little less on slider dialogs. * Yet another buildfix, sorry :/ * Oops, android buildfix * ARM buildfix * Allow loading graphics dumps (*.ppdmp) through the regular UI. * Add a hidden debug option [Graphics]GfxDebugSplitSubmit to try to narrow down some Vulkan issues, see #10163. Also improve some asserts. * Make our release mode asserts actually fire properly in release mode again... * Android: Use __android_log_assert facility to get pretty message-asserts into crash dumps. * Fix gl scissor rect issue. Fixes #10119 * Cleanup GPU vendor detection a bit, use it to avoid the issue mentioned in #9545 * Add a missing break that would explain the odd AUTO mipmap test results on D3D11 and Vulkan... * Disable the DisableAccurateDepth compat flag on AMD/Vulkan, see #9545. Ugh. * Android: Fix #9697 where we'd hang if we lacked permission and got a filename as a command. * Android: Update to gradle 3.0.1 * Workarounds for issue with "accurate depth". See #9545, #10087 * Update armips to latest. See #10161 * The UNKNOWN(3) mip selection mode seems to act like CONST. Keep that working. * Fix message asserts on Android. Add more of them to check things in Vulkan code. * Refactor: Unify DecodeVerts and move ComputeNumVertsToDecode to Common * Vulkan: Break apart DecodeVerts * GL: Compute "availableUniform" when generating shaders instead of by querying. * GL: Compute the attrMask while generating the vshader instead of querying. * Move aniso to the sampler cache key. * Disable anisotropic filtering in headless, screws up mipmap test * Cleanups * Fix headless to work better in vulkan mode * Make test.py python3-compatible, print out command lines better. * Attempt to unbreak D3D9 mipmapping (still disabling SLOPE mode) * Buildfix, update comments slightly * Share UpdateSamplingParams between D3D11 and Vulkan. Support lod bias in Vulkan. * Properly zero samplercache keys before filling them out. * Mipmaps: Disable LOD bias in slope mode as that's not how it works.- Update to version 1.4.2~git20171118: * Remove trailing whitespace from CMakeLists.txt * Vulkan: Fix stencil clears to a specific value. Should help #10150 * Silence travis gcc version errors.- Update to version 1.4.2~git20171117: * Remove wrong comments * GPU: Advance the vertex pointer after BBOX vertices are sent. Fixes #6554, finally! * Win32: Improvements to vulkan init error handling * Temporarily turn off Vulkan threading on AMD, see issue #10097. * Vulkan: Forgot to enable our various depth rounding features. * Vulkan: Flush at display list waits. Fixes #10095 * Minor cleanup, and more terrifying orientation hackery * Android: When creating shortcuts, put the file path in data, not in Extras. * Fix the "vulkan not found" message on android. Fixes #10034 * Make remoteiso_subdir and server editable on Android. Fixes #10142. Really need a better mechanism for these fields. * Workaround orientation bug in Android when unlocking the screen. * Unify RebindFramebuffer, mostly. * Vulkan: Fix bug where shader blend texture overwrote normal texture binding. Fixes #10135 * Update .gitignore for libretro builds. * Fix headless to work better in vulkan mode * Make test.py python3-compatible, print out command lines better. * Vulkan screenshots: Fix R/G swap bug. Thanks unknown. * Make sure the device supports transfers from swapchain images when taking screenshots. * Windows/Vulkan: implement screenshots. Something is iffy with the red/blue swap though... * Vulkan: Dual Src blending strikes again! Disable it on nVidia X1 (Shield TV) due to driver bugs, sigh. * Vulkan: Show the preferred depth-stencil format in the feature list. * Just more accurate feature flags for Vulkan. * Headless: Prevent segfaults with Vulkan. * Headless: Fix crash with null GPU. * Links from the UI: Change from http:// to https:// wherever possible. * Add missing ID for CTTR compat hack. * Fix Memory Leak :D * spaces->underscores:) * Fixes problem switching between non-through triangles and rects. Helps a small part of #6554 * More duplicate code removal * Small changes. Thx [Unknown] * Change KernelTimeNow to KernelTimeNowFormatted and return nice timestamp. * Requested changes. * Blah;p. Buildfix. * Fix linux build. * Add an option to allow resetting video/audio dump on save/load state. * Use gameID and emulated timestamp for Avi/Wav dump filenames. * Fix texture conversion. * Vulkan: Use optimal alignment for texture uploads. May help stutter in #10105 ? * Kill off more unused duplicate code * Oops * Delete unused duplicate functions * Fix annoying little flicker when starting a game. * Vulkan shader view (debug): Add a simple textural representation (incomplete) of pipelines * Vulkan: Make sure to clear the pipeline key to avoid padding bytes causing us to allocate duplicate pipelines. * D3D11: Similarly to the last vulkan commit, don't create lots of dupe vertex input layouts * Vulkan: Fix bug where we ended up creating duplicate pipelines even if vertices decoded to the same format, if they were created from different formats. * DevScreens: In shader viewer tabs, show the number of each shader type. * Unify Execute_Bezier and Execute_Spline * Minor cleanup, fix a comment. * Vulkan: Minor validation error fix * Nitpicking! Correct minor version for non Nvidia. * Win32: Add (debug) to window title in debug builds * Fix driver version display on Vulkan. Enable dualsrc blend on newer AMD drivers. Fixes #10109 * SoftGPU: Oops, fix silly typo. * Vulkan: Remove experimental warning. * Vulkan: Cut down on asserts during init. * TexCache: Add NEON alpha checks for Vulkan. * TexCache: Simplify CheckAlpha funcs and SIMD. * TexCache: Check alpha before scaling. * TexCache: Remove simple 0/1 alpha check. * Vulkan: Avoid checking texture alpha after scale. * Fix bug where readback buffers would be created too small sometimes. Should help #10098 * Vulkan: Tweak stencil value from clears. * Vulkan: When deriving stencilref from color, don't forget to update the value.- Update to version 1.4.2~git20171112: * UI: Typo fix. * Buildfixes for Android * Vulkan: Implement post-processing. The Vulkan backend is now "feature-complete", and GL is now legacy :P * Vulkan: Speed up and simplify hardware tesselation by using storage buffers. * hwtess: Shrink Vulkan UV textures * Make the interface to hw tess slightly more flexible. * Vulkan: Use a device allocator for tesselation data textures. Add comment about better solutions. * Vulkan: Support wide lines if available on the GPU. * Vulkan readback: Resize the readback buffer dynamically as necessary. * SoftGPU: Add a clear mode fast path. * Debugger: Prevent clear while stepping. * SoftGPU: Thread by width for wide polygons. * SoftGPU: Fix crash when stride is 0. * Vulkan hw tess: Assorted minor fixes. Works on Mali now. * Vulkan hw tess: Use pushbuffers instead of temp images to upload data. * Vulkan hw tess: Don't reuse the same dynamic texture for multiple draws, not safe. * Remove unused pointer. * Vulkan: Noticed a framebuffer refcount leak, and changed my mind regarding those :) Let's do it this way instead. * Reduce a ERROR_LOG_REPORT to a warning (vfpu branches in delay slots) * SaveState: Avoid clearing shaders in all backends. * D3D11: Clear input layouts on shader clear. * D3D11: Avoid clearing shaders on load state. * SaveState: Fix use-after-resize iterator. * Vulkan: Enable the "accurate depth" codepath, using the same formula as D3D9. * Android: Cleaner way to avoid double-resizing the backbuffer. * Fix blackscreen when resolution is set to auto. Fixes #10081 * Experimenally disable dual source blending on AMD too for Vulkan, see #10065 * MotoGP: Compat hack to disable framebuffer readbacks. * Buildfix 32-bit * Ditch a silly vertex count limit that only makes sense for GLES, so move it there. * Fix race condition. * Fix a few more device-loss bugs. * Avoid double-initializing the Vulkan backbuffer on startup. * Logging improvements, avoid resetting the Android text drawer unnecessarily * More minor vulkan fixes and cleanups. Don't actually call "Resized" if the size stays the same. * Change Android logging ID from "NativeApp" to "PPSSPP" * More logging and tweaking * Vulkan: Remove duplicate depalShaderCache, fix a number of instances where we didn't use the deleter properly. * Keep the draw context up to date in a bunch of places. More logging. * Vulkan: Improve init/shutdown logging on Android. Fix a bug where we'd not run InitDeviceObjects on GPU_Vulkan sometimes. * Fix some ports * Upgrade glslang to a fresh version (used to compile Vulkan shaders). Might help #10065 ?) * Ooops * Vulkan: Disable dual source blending on Intel GPUs, fixes #10074. * Show textual names of Vulkan GPU vendors * Improve Vulkan device selection mechanism to prefer discrete GPUs * Cleanup gradle output. * Cheats: Fix pointer command count offset. * Cheats: Clamp pointer command data to avail. * Fix 0x6 code types * Vulkan: Apply simple workaround for Mali driver bug (see #10070), and minor cleanup. * Fix some minor things found by running Sizer on PPSSPP * Cheats: Enable for any non-zero number. * Disable lwl/lwr on ARM64 JIT again. Seems b9b2656e9313 broke things, see #10020 * Count readbacks in a frame and show in GPU debug stats. * Cheats: Split parsing and execution. * Try harder to free up memory from the Android native font rendering system. Might help #10069 * Vulkan: If acquiring a frame fails (happens sometimes during window resize), skip swapping the frame. Should help #10063 * Vulkan: Wait for orderly thread stop on resize. * Vulkan: Fix deadlock on resize. * Vulkan: Some error handling improvement. Might get us a clue for #10065 * Vulkan: The validation layers don't like zero-size blits. * Vulkan: Better way to make sure we bind the backbuffer at some point. * Vulkan: Convert depth format on readback. * Vulkan: Show textures in GE debugger. * Vulkan: Add texture image readback. * Vulkan: Fix non-16 bit indexed drawing. * Vulkan: Allow clearing the backbuffer to any color. * D3D11: Show FBO-as-texture in GE debugger. * TexCache: Warning fix. * Use W^X on OpenBSD. * Don't use "threadsafe events" for Ge stuff. * Vulkan: Fix leak in WipeQueue(). * Turn on multithreaded vulkan * Remove/deprecate GPU tick sync * Get rid of GPUCommon's "Internal" functions. * Delete ProcessEvent and the GPUEvent enum * Delete GPUCommon::ScheduleEvent * Get rid of a bunch of sync stuff that's no longer needed. * Get rid of the sync around curTickEst * Delete the mutex in GPUCommon. * Vulkan: Fix framebuffer leak. * Remove the setting to run the display list interpreter on a separate thread. * Vulkan: Correct logicop dirtying. * Vulkan multithread: Fix race condition. * TexCache: Detect textures in FBO gutters. * GPU: Properly Release() FBOs. * SaveState: Correct free on error and uncomp format. * SaveState: Use malloc to avoid Android OOM crash. * Vulkan: Make sure backbuffer is bound for UI. * Vulkan: Resignal unexecuted fences on thread stop. * Vulkan: Wait for queue idle in DestroyBackbuffers. * GPU: Restore initial readback on output. * Vulkan: Refcount framebuffer deletes. * Vulkan: Account inside frame from push side. * Add missing Google Maven repository * Buildfix again. Should fix #10046 this time. * Unify a little bit of depal code. * Vulkan: Fix bug in depal causing Sonic Rivals to be grayscale. * Minor depal state dirtying fix * Add include. Will hopefully help #10046 * Cleanups and fixes around Vulkan stencil upload. thx unknown * Should be bufferWidth here, not width. Thanks unknown. * Vulkan: Fix a comment. * Vulkan: Allow sync when using threading. * Vulkan: Fix out-of-sync frames on threading. * Vulkan: Trigger condvar only at frame end. * Vulkan: Fix segfault on swapchain fail. * Fix issue in framebuffer size calculation when viewport is bogus in through mode. Fixes #10043. * Tiny cleanups. * Vulkan: Minor fixes. * Stop leaking framebuffers on shutdown. Fix other shutdown issues. * Minor optimization. * Remove some code duplication * Vulkan: Implement stencil upload (for Star Ocean).- Update to version 1.4.2~git20171101: * Small fix for a bad block transfer in Soul Calibur * Fix bug in Vulkan's vertex shader generator, causing stretched characters in Jeanne D'arc. * DenseHashMap: Speed up clearing. Became more important since I had to disable keeping descriptor sets around between frames. * Complete a comment. * Vulkan: Fix colors for low-bpp depal (actually fixing the shadows of ff-type0) * Make VulkanTexture "immutable". * Add some disabled code to submit "init" command buffers separately to the queue for debugging. * Always recreate DrawPixelsTex to avoid inter-frame races. * Use the global curFrame counter. No need for a vector for pushing cmdbufs. * Add a QueueRunner logging facility. Set up a subpass dependency for the backbuffer pass. * Add and update some comments. * Vulkan: Make backbuffer transitions part of backbuffer render pass. Optimize depth buffer memory operations. * Decimate descriptors every frame until I find a better solution. Fixes flicker in videos in several games. * Remove disabling of validation warning. It works. * Vulkan: Fix depal and shader blending. * Vulkan depal code now passes validation, but produces black. * Implement the rest of Vulkan framebuffer depal. Not yet working though. * Some reorganization. Start implementing framebuffer depal for Vulkan. * Delete superfluous bind of temporary render target on creation. * Implement GetFramebufferAPITexture for Vulkan- Update to version 1.4.2~git20171029: * Share the conversion code between vulkan and D3D, fixing the missing format thing. * Color-convert directly during the readback, saves a copy. Like we already do in D3D11. * Revert most of the last commit - will do it differently. * Use the CPU color conversion from GLES for readbacks in Vulkan (and D3D11). Fix bug. * Fix Vulkan framebuffer readbacks, as long as they're in R8G8B8A8. * Vulkan: Rough untested implementation of synchronous readbacks. * VulkanRenderManager: Split out BeginFrame and EndFrame from Run * Comment cleanup * Refactor: Split out VulkanQueueRunner from VulkanRenderManager * Forgot to update the Android target version here to 26. * Another buildfix * Fix integer overflow affecting very large draw calls * More buildfixes, warning fix, memory leak fix * 32-bit android buildfix attempt * Bump descriptor set limits, which became insufficient with the addition of tesselation (should really use separate big desc layouts for them) * Remove misguided hack. * Warning fixes * Remove a bad check making us use the wrong way to copy depth buffers. Add a cap so we can try to unify BlitFramebufferDepth later. * Assorted fixes * Fix (some) crashes on blits. Validation issues remain. * Forgot to add the CMakeLists.txt change to the last commit. * Warning fixes, CMakeLists.txt/Android.mk fixes * Fix some resource leaks and excessive logging in VulkanRenderManager * Clean out some obsolete code * VulkanRenderManager: BindPipeline should really be its own command. Tighten up some image transitions. * Improve synchronization, though there are very weird issues. Possibly need to run the swap chain from the thread that created it? * Avoid re-binding pipelines. * Let's try a mutex. Doesn't completely solve the problem though.. * Make sure not to begin and end the init command buffer on different threads. * Vulkan: Don't forget to specify stencil load op in render passes * This makes a little more sense, but still hangs (frameAvailable = true while stuck on condvar) * Synchronization is HARD. need a rethink, methinks. * Move the VulkanRenderManager stuff to thin3d, fits in better there. * Rendering basics now works. * A multitude of fixes. The UI now works correctly, though of course ingame still broken. * It builds! With some shortcuts, of course. * Use RenderManager for thin3d stuff * Initial work on render queue manager- Update to version 1.4.2~git20171026: * Update gradle files to Android Studio 3.0 defaults.- Update to version 1.4.2~git20171024: * Automatically scroll textboxes when the caret ends up outside. Fixes #10026 . * Fix issue with caret position in text boxes caused by a bad hash function. Fletcher is 2-bytes-at-a-time and thus very inappropriate for short strings. * Can't use the camera stuff on Android versions before 11. Fixes #10029.- Update to version 1.4.2~git20171023: * Separate -Bsymbolic Shared linker flag * Ops typo * Better path fix x86_64 android- Update to version 1.4.2~git20171022: * Comment and typo fixes. * Vulkan: Fix silly mistake in blend constant checks, thanks Unknown.- Update to version 1.4.2~git20171021: * Bit more Vulkan barrier cleanup. * Various Vulkan image transition fixes and related * More work towards passing 1.61 Vulkan validation layers * Initial work on passing the latest Vulkan validation checks. * Don't call functions in asserts, they get compiled out in release... * Allow D3D9 context creation to bail if shader compilation fails (D3D9 runtime not installed). * Have GetFramebufferDimensions return the backbuffer size for null in all backends. * Another minor cleanup (DescribeCodePtr) * Unify and move around code to cleanup some debug accessors * Unify GetFramebufferList() (trivial) * Unify DownloadFramebufferForClut * Remove more dummy code from Vulkan backend. * Unify FlushBeforeCopy. Remove old dummy methods from Vulkan framebuffer manager. * Add some safety checks. Fix some inadvertent Y-flips (bit hacky). * Unify some more framebuffer functions. Leave the GL stuff alone for now due to async. * Unify (well, almost) GetOutputFramebuffer (D3D11/GL) * Unify GetDepthBuffer/GetStencilBuffer in GL/D3D11- Update to version 1.4.2~git20171017: * Minor refactoring of framebuffer readbacks. * Start moving PACK_ALIGNMENT into SafeGLReadPixels * Minor OpenGL refactor. * More format support in thin3d GL * Move GL readback to a Thin3D abstraction * Get rid of BindFramebufferForRead * D3D11: Move to CopyFramebufferToSync where easily possible. * Unify GetFramebuffer in GLES and D3D11. * D3D11: Fix a bug, add depth/stencil support to CopyFramebufferToMemorySync * Will fix Android-x86_64 cmake * restructure some flags x86_64 android * Re-enable gradle x86_64 android build * Address review comments. * Buildfix * Remove comment, add check. * RPI: use new vendor graphics library names * Add a controller profile for X360 controllers on RPI, fixes issue #10019 * Update lang submodule- Update to version 1.4.2~git20171015: * Windows: Fix over/under write for multibyte chars. * Savedata: Handle disk full properly in GETSIZE. * Gamedata: Fix savestates for data install. * OSK: Limit allowed keyboards based on input mask.- Update to version 1.4.2~git20171011: * UWP buildfix. See comments in #9575- Update to version 1.4.2~git20171009: * Extra safety when switching GPU backends, fix possible Vulkan shutdown issue. Should help #10005- Update to version 1.4.2~git20171004: * Added default control pad mapping for control pads not found in SDL's game controller database file. * Fix savestates from before 1.4.2-420. Fixes #9998. Unfortunately this also breaks states between 420 and 468, so please save normally before upgrading if you were using one of those. * Add ini-only "Savedata Upgrade" setting.- Update to version 1.4.2~git20171002: * Add additional button defines. * Finish making extra psp keys mappable. * Remove unnecessary ifdef. Thanks Bracket-. See #9548 comments. * Oops, forgot this one. * Fix typo causing Y axis in joystick tester not to be mirrored correctly if backwards. Should fix #9300 * Add Horipad One config. * gamecontrollerdb.txt: Add 8Bitdo NES30 Pro mappings for Linux * Reorder SDL init a bit, allowing us to read the fullscreen option early enough to fix #9086 * Vulkan: If there are no GPUs available, fail properly instead of asserting.- Update to version 1.4.2~git20170928: * Fix the build on the buildbot by avoiding fancy new Java features. Fixes #9979 * Don't default to coldbird adhoc server, it doesn't run anymore (?)- Update to version 1.4.2~git20170923: * GLES: Add OpenGL 3.x core profile support. * GLSL: Set extension flags for elided core exts. * GLES: Android buildfix. * GLES: Allow hwtess for GL 3.1 w/o shader4. * Update lang submodule- Update to version 1.4.2~git20170921: * Headless: Add support for SDL. * GPU: Reset shader state on shader reset. * Headless: Reduce some duplication. * Headless: Oops, call SDL_Init().- Update to version 1.4.2~git20170914: * add support for smart keyboard * map '`' to back instad of esc * forget to modify cmakelists * GPU: Dirty viewport on RT width/height change. * Add uniform to make post process aware of videos. And an example effect ~ subtle AA in-game/heavy smoothing for videos.- Update to version 1.4.2~git20170903: * Add Sony PS3 controller mappings- Update to version 1.4.2~git20170901: * Integrate sceUsbGps and sceUsbCam with Android * Integrate sceUsbGps and sceUsbCam with Android - 2 * More mingw patches * More mingw patches pt. 2 * Simplify this conditional * PACK should be defined different for Win32 based on whether we compile with Mingw or MSVC * Revert "PACK should be defined different for Win32 based on whether" * Get rid of ugly alignment macros and some other cruft, we now have alignas(16) from C++11 * Remove snprintf compatibility hacks for MSVC versions before 2015 * Remove Globals.h * Buildfix * Linux buildfix * mingw patches- Update to version 1.4.2~git20170830: * Assorted cleanup of Vulkan init code. Show Vulkan extensions in system info. * Separate VulkanContext::CreateDevice into ChooseDevice and CreateDevice to give an opportunity to enable extensions. * Buildfix * Minor cleanups * Fix bug in vulkan init. Add some sanity checks to GL shader cache loading. * Add a hack to override the default framebuffer on non-iOS, to unblock the new RetroArch port attempt (#9936) * Fix a PIC compliance bug in the VFPU. Comment other cases properly (for easy searching). * apple buildfix * Patches to make it possible to compile with mingw, pt. 1 * Removed MSVC check * Change this to _MSC_VER * Remove this too - we will use UNICODE and _UNICODE defines for mingw build * SafeMem: Remove the "far" optimization that saves 3 bytes sometimes but is really dangerous and not worth the complexity.- Update to version 1.4.2~git20170825: * Another couple of control mappings, see #9825 * Fix possible crash when loading GL shader caches. Should help #9930.- Update to version 1.4.2~git20170824: * Bump the GL shader cache version- Update to version 1.4.2~git20170821: * Make keys names translatable in pop-up * Reuse some already translated strings * Add a new translation category for the remote ISO feature * Oops, forgot this one * Implement vertex caching for Vulkan. * Vulkan vertex cache: Fix bug with "pure prim" draws (where we avoid the index buffer) * Make FLAG_FLUSHBEFORE a no-op, move flushes into the execution functions. * Fastpath in fastrunloop when diff=0. Remove need for Execute for UV scale/offset. * Minor cleanups * Buildfix for X86 Android * Crashfix on older devices * Vulkan: Add code (disabled) to be able to run with more in-flight frames. Only improves performance marginally and needs more testing. * FRAGMENT_SHADER needs to be marked dirty if shademode changes. Fixes #9904. * Make control mapping pop-up title translatable * Make dev menu pop-up title translatable * Fixed invalid preprocessor directive * ARM: Delete obsolete comments and check * More vulkan microoptimizations. Add more profiler scopes. * Vulkan: Fix some inefficient command pool usage, might also fix a race condition * Vulkan: Fix bug sometimes causing the wrong renderpass to be ended at exit, causing crashes. * Add hooks for Marvel video copy func. * Replace the most critical unordered_maps and maps with two new maps: FastHashMap and PrehashMap. * SIMD-optimize some data conv routines used in uniform updates. * Include Hashmaps.h in CMakeLists.txt. * Maintain the hashmap from time to time. Fix a bug in count reset on grow. * Optimize uniform uploads for D3D9 and GL as well. * Buildfix * 32-bit buildfix * And yet another buildfix. * Minor optimizations (use the new hashmap in a few more places) * ... And also for the vertex decoder (DenseHashMap) * Switch over the GL shader manager to the new hashmaps. * Buildfix * Fix some missing dirty flags (affects FS_BIT_LMODE) * Keeping descriptorsets around between frames can cause problems if we run out.. Try to prevent that. Need a better method than this though. * Linux buildfix * GPU: Consider bbox failed with zero verts. * GPU: Fix alignment on signal jump/call. * This might not always be 16-byte aligned.- Update to version 1.4.2~git20170816: * Simple micro-optimization in AdvanceVerts * Can't dirty VERTEXSHADER_STATE before the flush in Execute_VertexTypeSkinning, causes obscure bugs when software skinning is enabled * NEON-optimize bone matrix loads * Vulkan: More minor optimization (avoid pipeline cache lookups when possible) * NEON-optimize CLUT loads * Neon-optimize the audio s32->s16 packing function * Initial work on supporting sustained perf mode * Cleaner Vulkan shutdown * Add controller entries from gabomdq/SDL_GameControllerDB * Oops, forgot to update NativeQueryConfig, thanks unknown * Spacing- Update to version 1.4.2~git20170815: * Ensure everything is dirty on frame start. * All: Only convert blend state if "dirty" * All: Only convert depth stencil state if dirty * All: Only convert raster state if dirty * Dirty RASTER_STATE when switching between rect and non-rect primitives (culling) * All: Only convert viewportscissor state if dirty * Dirty viewport state on framebuf resize. * Add some missing VIEWPORTSCISSOR dirtying. * D3D11: Make better use of the dirty flags to avoid state calls * All: Only recompute the vertex shader ID when dirty * Dirty vertexshader state on hw bezier/spline. * Dirty things on stencil buffer upload. * Dirty-flag the fragment shader ID. * Add some missing fragment shader state changes. * Dirty on various framebuf state helpers. * Oops, broke Vulkan in the rebase somehow. Fixed. * Use dirty-flags more in Vulkan state setting * Dirty-track the current pipeline to avoid many vkBindPipeline calls. * Fix minor blendstate oversight, restore a disabled optimization * Vulkan: Fix some more state dirtying issues.- Update to version 1.4.2~git20170808: * Common: fix MAP_32BIT after 9f24203ef8f6 * Windows: Use system API to toggle fullscreen. * GPU: Correct 1080p/720p crop for ultrawide/similar. * Windows: Support multi-display full screen. * Core: Handle 20-bit volumes in SIMD optimizations. * GLES: Set target w/h in buffered rendering. * Update submodule lang * Make a state object for the Android audio wrapper * Make the OpenSL wrapper an object too, to make sure it's always initialized the same. * Minor GPU disassembler update * Android: Turn off resizability until we can properly fix the sizing logic. Helps #9866 * Android: Fix scaling issue on configuration changes. Why was that division by 2 there?? * Turn g_dpi into a float, because why not * Separate X and Y dpi_scale * Re-enable resizing the window on Android, change onConfigurationChanged flags * More splitting of dpi vars * updateDisplayMetrics was a poorly defined method, removed it. * Consolidate DPI/sizing handling on Android * Buildfixes * Another buildfix * Review fixes, thanks unknown * Android: Add some missing codepaths when using Vulkan, might fix audio/controller issues on task switching * Format string fixes in DPI logging * Misc cleanup * Always shut down audio, regardless of why the task is being destroyed. Might help #9771 * Disable codepath that requires vibration permission which we don't have * Make some decls private * Android: Fix bug where the surface size could be wrong after task switching and automatic recreation * Reset the UI state properly in NativeInit. Fixes #9771 * Disable the x86-64 Android build until it can be debugged. Works around #9814 (all such devices can run the x86 build instead) * Strip spaces from pasted IP addresses. Helps #9795. Fix accidental typo * Fix space stripping in a few more string input methods. Helps #9795 * Update lang, add language name for Laotian- Update to version 1.4.2~git20170724: * Update lang submodule- Update to version 1.4.2~git20170713: * Vulkan debug mode: In case of missing validation layers, warn, don't error out.- Update to version 1.4.2~git20170710: * x64: Use context register to access saved_flags * X64 vertex decoder: Use relative memory accesses when loading matrices. * X86/X64: We have the context register loaded, let's use it more. * X64/X86: Even more use of the context register * Remove more RIP addressing * Buildfix attempt * Some code cleanup. More work towards removing RIP addressing * More RIP removal * Move mscxr_temp to MIPSState * Remove RIP access from some matrix ops, SafeMem * Move another couple of temps into MIPSState * Move tempValues into MIPSState * More RIP elimination * Guess what? More RIP elimination (but keep the fast path too) * Surprise! More. Making many commits for easier bisects. * Access FPU temps through CTXREG * More RIP removal. Also add some comments to make it easy to just search for "M(&" to find remaining offenders. * Get rid of sincostemp global. Solution not tested on linux yet. * Remove some rip addressing in vertex decoder * Get rid of remaining RIP addressing in vertex decoder * X64: Fix bug in a case in the MOVQ emitter : rex byte should be after the 0x66 prefix * x64: Enable non-RIP addressing for FPU registers * vminmax_sreg only needs a single element * Replace vminmax_sreg with mips->temp * RegCacheFPU * Workaround * Fix software skinning * Buildfix for platforms with standards-compliant offsetof (no dynamic indexing allowed)k * 32-bit fixes * Delete some unnecessary loads. These loads are done properly inside trigCallHelper. * x86-64: Linux ABI fix * Turning off the "close memory finder" lets us find more RIP addressing... * More RIP elimination * More RIP addressing in software skinning.. * More RIP fixes * x64: Fix coreState rip checks. * x64: Avoid clobbering jr dest in cases. * Update gamecontrollerdb.txt- Update to version 1.4.2~git20170703: * Fix Windows XP support in LocalFileLoader * D3D11: Fix texture scaling with blank first half. * GPU: Clean up some GLES3 defaults. * UI: Show slow message based on refresh rate. * Minor debugging feature: Show vertex normals in GE debugger * Don't use stat64 unless we need to * Fix build with NDK 15. This does force us to make do with 32-bit file sizes...- Update to version 1.4.2~git20170627: * Fix running slow message , it's always show when game run stable above 98% speed * Oops * Add credit developer * Add 1 line * Fixes * Fixes- Update to version 1.4.2~git20170624: * Make the Loader API thread-safe * Also support atomic windows readAt * Add conservative locking arond Caching/HTTP FLs * Remove use of C file api in LocalFileLoader * Add a note about thread-safety req in FileLoader * Fix windows build * Core: Windows buildfix. * Core: Buildfix.- Update to version 1.4.2~git20170618: * GE Debugger: Buildfix for BSD.- Update to version 1.4.2~git20170613: * Apply a hack to simulate USB created files.- Update to version 1.4.2~git20170609: * Fix UWP build * D3D11: Fix Star Ocean again (wasn't clearing stencil properly) * Port a small simplification to D3D9- Update to version 1.4.2~git20170608: * Warning fix * Start sketching native text rendering for Android * Fix assorted JNI issues, the calls work now. * Font rendering code runs but it sure ain't right * It works! * Fix vertical positioning, eliminate double-& * Buildfix buildbot * Address comments, make things closer to the Win32 code. Things work better. * Fix some comments * Buildfix qt * We are already shipping Roboto-Condensed.ttf, let's use it * Implemented sceUtilityGetSystemParamInt * Format fix * Fix get/set confusion * Fix minor overallocation during elf loading * Refuse to load truncated ~PSP files. * ELF loading potential out-of-bounds fix * GE Debugger: Gah, fix some pointer size errors. * SoftGPU: Avoid some compile warnings. * UI: Add some missing overrides. * Build: Include Roboto in buildscripts. * Core: Set cwd for non-ms0:/ games on boot. * sceVaudio: Fix typo in constant name.- Update to version 1.4.2~git20170605: * GPU: Refactor common frame dumping code. * Core: Refactor repeating disc id homebrew code. * GE Debugger: Initial structure for GE data dumping. * GE Debugger: Implement basic recording. * GE Debugger: Record memcpy/memset too. * GE Debugger: Simple framework to load dumps. * GE Debugger: Oops, emit transfer/clut cmds. * GE Debugger: Start a module/thread for dump runs. * GPU: Add a debug method to grab list tick wait. * GE Debugger: Initial GE dump replay. * GE Debugger: Oops, don't record if not active. * GE Debugger: Record init state and display buf. * GE Debugger: Clear after replay finished. * GE Debugger: Fix matrix dumping. * GE Debugger: Wait to get the right display buf. * GE Debugger: Load commands more directly. * GE Debugger: Fix memmem and cleanup. * GE Debugger: Implement memory transfer commands. * GE Debugger: Fix recording in softgpu. * GE Debugger: Fix clut command recording. * GE Debugger: Align texture/vertex/etc. data. * GE Debugger: Allocate replay memory smarter. * Jit: Fix syscall outside delay slot. * GE Debugger: Fix replay FPS. * GE Debugger: Run replay using stalling. * GE Debugger: Compress GE dumps. * GE Debugger: Add record button. * GE Debugger: Reduce memory allocation. * GPU: Stall properly on matrix data. * GE Debugger: Add some comments and cleanup. * GE Debugger: Pass filename into dump replay. * GE Debugger: Fix replay timing drift. * Patch unusual way of checking for firmware version.- Update to version 1.4.2~git20170604: * Add "ignoreAddress" to texture replacement. * Expose XXHASH for Texture Replacement * Disable ignoreAddress on quick hash and inform the user about it. * Add reduceHash option, to hash 50% of texture when it's otherwise unreliable. * Fix jpeg's with width not matching psp buffer size. * Needs to be square! O.o * Initialize pspWidth and increase the max size. * UI: Fix Take Screenshot support. * SoftGPU: Support Take Screenshot partially. * GLES: Copy only depth in BlitFramebufferDepth. * Vulkan: Allow blit/copy of depth or stencil only. * SoftGPU: Fix separate mip cluts in linear jit. * Implement software skinning for the Vulkan backend. Fixes #9753 * Fixes for D3D11 postprocessing * UI: Translate AVI start/stop strings. * Some unification in DrawEngine * Unify DecodeVertsStep * Unify ComputeMiniHash * Unify transformed arrays * Unify SetupVertexDecoder * UI: Fix fade-out when editing touch controls. * UI: Enable mouse settings only if checked. * UI: Allow texture ini create only within game. * UI: Remove padding hack for setting info message. * UI: Fix text wrap when kerning adjusts spaces. * UI: Make some tooltips less technical. * Fix reported null pointer error in the Java code * Split TextDrawer into interface and implementation. * Split out DrawTextWin32 into its own file, to be further split later. * Split out the Qt font drawer in its own file.- Update to version 1.4.2~git20170601: * SoftGPU: Move sampler code to a dedicated file. * SoftGPU: Stub a jit for texel fetch. * SoftGPU: Implement basic jit structure. * SoftGPU: Refactor out texture format logic. * SoftGPU: Jit texel fetch for non-clut/non-swizzle. * SoftGPU: Stop calling bufw pixels bytes. * SoftGPU: Jit swizzled texel lookup. * SoftGPU: Jit CLUT lookup. * SoftGPU: Jit 16 bit texel decode. * SoftGPU: Expose jit cache for profiling. * SoftGPU: Reduce overhead in sampler jit. * SoftGPU: Specialize CLUT4 jit. * SoftGPU: Implement separate CLUT in samplerjit. * SoftGPU: Reduce sampler id fuzz. * SoftGPU: Jit the linear sampling too. * SoftGPU: Support separate mip CLUTs with linear. * SoftGPU: Correct linear filter rounding issue. * Android: Just like on Windows, prompt to restart when changing graphics backend. * Simplify some cwc detection code, respect _C2 as activation. * Remove unnecessary \ / conversion. * Vulkan: Fix minor bug when clearing the back buffer (loaded stencil for no reason) * Delete obsolete function ClearBuffer * Fix scaling post-shaders on OpenGL. See #9742 * Update glslang submodule * Update lang submodule * Update submodule SPIRV-Cross, remove workarounds that are no longer needed * Remove obsolete workaround. * Implement sceJpegDecodeMJpeg & sceJpegDecodeMJpegSuccessively * UI: Start a render pass while stepping. * Vulkan: Increment engine version. * GLES: Fix startup crash on desktop OpenGL < 4. * GPU: Block mipmap autogen for matching size. * GPU: Fix negative mip levels with const workaround. * Vulkan: Fix Cardboard rendering. * Fix crash on macOS. Fixes #9751- Update to version 1.4.2~git20170530: * Android: Fallback to OpenGL if Vulkan fails to init. * Only show the Vulkan setting if Vulkan might be available. * For now, only check for vulkan availability on Windows and Android. * Fix a bunch of emu features for Homebrew by better identification. * Try using first screenshot as an icon if no icon is present. * Add savestates to the list(with automatic rename) * Add new format to CWC as well, don't think it's worth auto-rename. * Add matching title for savestates. Cosmetic ~ for savestate manager. * Oops, missed this one:]. * Corrections, some %i->%d around other code as well. * Oops. * Postprocessing fix after the Vulkan refactor. Should help #9742.- Update to version 1.4.2~git20170530: * Reporting: Add compat description to UI. * Reporting: Default better when perfect selected. * Separate BeginFrame from BeginSurfaceRenderPass * Start work on separating frame from backbuffer renderpass * BindBackBufferAsRenderTarget is now replaced with BindFramebufferAsRT(nullptr) * Draw overlays at the proper time in the frame. * Start refactoring things to be more vulkan-friendly * Thin3D GL: Avoid using external functions internally. * Remove some unnecessary framebuffer binding * Use vulkan-style clear-on-bind when switching render targets. Not optimally used yet. * Further steps towards Vulkan framebuffer support * Silence a perf warning * Further steps towards Vulkan framebuffer support * Vulkan backend: Fix various issues, can almost run in buffered now (except the final blit) * Buffered rendering is starting to work, though still kinda broken. * Vulkan: Use suboptimal clears instead of no clears in buffered * Vulkan: Fix binding framebuffers as textures * Add a way to query the current renderpass (for debug checks) * Fix a number of bugs and stuff affecting Vulkan on Mali * Increase the number of sampler/image descriptors further. * Clearing fix, drawpixels fix/hack * Don't forget to initialize logicop.. * Vulkan: Some barrier optimization * Address a bunch of review comments. * Fix more review comments. * Vulkan: Implement depth buffer copies. Not sure all the barriers are right.. * Vulkan: Implement BlitFramebuffer- Update to version 1.4.2~git20170527: * Android: Fix minor typo.- Update to version 1.4.2.0~git20170527: * added ps1controller mapping in gamecontrollerdb for Linux * Remove the Mipmap setting. One step forward for #8171 * Remove "Always Depth Write" setting. One step forward for #8171 * Make extra sure that asserts arrive in the Android log. * Show the Android "board name" in system information. * Don't erase and rewrite the dispatcher when the cache is cleared. Fixes #9708 * Buildfix * Update README for 1.4.2 * Strncpy doesn't terminate correctly, switch to truncate_cpy. * Switch strncpy to truncate_cpy in a bunch of places. * Buildfix, oops * Should probably stick to the old way here. * SoftGPU: Correct mipmaps for points. * SoftGPU: Support UVGen for points and lines. * SoftGPU: Stop calling bufw pixels bytes. * GPU: Cleanup some gstate accesses. * Slightly speed up booting when there are symbols to load. * Update to v1.4.2- Update to version 1.4.1.0~git20170524: * SoftGPU: Make sure transformunit.buf is properly aligned. Helps part of #9718 * Some constification in ElfReader, sanity checks in sceKernelMutex. Might help #9718 a little bit, though probably not the Elf issue (and if the workarea pointer is bad, it's not likely the game will limp along for much longer) * Fix crash when pressing F12 in software mode. * thin3d gles: Unbind buffers after drawing. Fixes #9715 * Use InitMemoryForGamePBP also for homebrew(PSP_PBP_DIRECTORY). * Throw in a few more checks in ElfReader * Reset (through renaming) and hide the software rendering setting on Android. Only show it if it's already enabled. * Typo fix, MOBILE_DEVICE- Update to version 1.4.1.0~git20170524: * Init rtcBaseTime.tv_usec to 0 * D3D9: Correct half-pixel offset.- Update to version 1.4.1.0~git20170523: * Update readme for 1.4.1, which will be released soon * README: Add mention of framebuffer blit fix * Update version to 1.4.1- Update to version 1.4.0~git20170521: * Add sceKernelLoadExec_28D0D249. * Don't use partial-restart unless debugger is present.- Update to version 1.4.0~git20170521: * Quick hack to enable analog stick sensitivity on non-windows platforms. * Make sure the analog sensitivity defaults correctly on non-Windows * Windows: Avoid input race condition on GPU switch. * SoftGPU: Use vertexjit for submitted primitives. * SoftGPU: Fix rendering when using Direct3D 9.- Update to version 1.4.0~git20170519: * gradle: Add a "flavor dimension" to make Android Studio 3.0 happy * Remove unused methods * Minor GameInfo memory handling improvements. Still not great. * When what we need is a shared_ptr, we should just go ahead and use one. * More paranoia * Found a suspicious hang report that makes me think this mutex should be recursive. * Many reported ANRs were from homebrew installs. Make sure installs run on the background thread. * Prevent a deadlock between View::eventMutex_ and ScreenManager::inputMutex_ by locking here so the reverse lock order can't happen. * Move up Software Rendering to Rendering where it belongs. Makes it easier to turn it off if enabled by accident. Also warn if used and it runs slow. * Since we know from #9601 that e9d5eb694b is wrong, at least make it more specific. * Really no need to hold eventMutex_ while dispatching events, only when interacting with the queue. Might fix further deadlocks (see #9698) * Update gpu_features.cpp * Typo fix- Update to version 1.4.0~git20170517: * Update gpu_features.cpp * Update buildassets.sh * Update copyrelease.sh- Update to version 1.4.0~git20170516: * Update ab.cmd * Update gradle plugin version * Remove slowness warning if software renderer is enabled, it'll show on almost everything. * Update ab.sh- Update to version 1.4.0~git20170515: * GPU: Consistently bias const mip levels. * GPU: Flush on mipmap slope change. * SoftGPU: Multiply S/T early via SIMD. * SoftGPU: Improve wsum recip SIMD. * Fix typo in VertexDecoder * SoftGPU: Correct texturing for pixel centers. * SoftGPU: Correct rendering for pixel centers. * SoftGPU: Match GLES lighting better, use floats. * SoftGPU: Correct fog for rectangles. * SoftGPU: Don't wrap negative positions. * D3D11: Fix initialization of mipmaps. * GE Debugger: Fix bias display for auto mip mode. * SoftGPU: Fix texture vertex preview in debugger. * SoftGPU: Avoid rcp due to precision issues. * SoftGPU: Quick hack to fix scissor w/2x2 pixels. * SoftGPU: Implement lines in transform mode. * SoftGPU: Support flat shading for lines. * SoftGPU: Bias bottom right side of line drawing. * SoftGPU: Implement simple mipmapping for lines. * SoftGPU: Implement pretend antialias. * SoftGPU: Clip lines entirely outside early.- Update to version 1.4.0~git20170509: * Update lang- Update to version 1.4.0~git20170509: * x86: More optimal 4444 in vertexjit. * x86: Minor memory copy perf improvement. * x86: Minor optimization for s16 through positions. * SoftGPU: Apply clamp/wrap in through. * SoftGPU: Improve texcoord rounding. * SoftGPU: Refactor mask calculation and use SSE. * SoftGPU: Fix separate mipmap cluts. * SoftGPU: Process mipmaps in texturing. * SoftGPU: Round screencoords. * SoftGPU: Calculate mip level based on float bits. * UI: Enable some settings for software rendering.- Update to version 1.4.0~git20170507: * UnitTest: Correct vertex and jit tests. * GPU: Remove now-unused vertex decoder funcs. * arm: Jit throughmode 16-bit texcoords. * Work towards a clean vulkan shutdown. * More vulkan fixes * More vulkan shutdown fixes * Vulkan: Remove obsolete warning suppressions. Increase descriptor pool sizes. * Windows debug builds: Only break on Vulkan validation warnings if a debugger is attached.- Update to version 1.4.0~git20170505: * Fix to partial restarts (when switching backends), plus misc. Helps #9666 * Oops again.. sigh * Windows: Initialize WindowsHost in EmuThread.- Update to version 1.4.0~git20170505: * Handle alt+tab and drop down menu when mouse is confined and game is running- Update to version 1.4.0~git20170504: * Experiment (#9647): Wipe RawInput buffers * Experiment (#9647): Prevent NaN values from getting into the UI system through TouchInput * Add a constructor to GestureDetector, to see if that fixes initialization * Also memset.- Update to version 1.4.0~git20170501: * Windows: Fix minor leak in disassembly UI. * UI: Make GPU events more consistent. * D3D11: Free swapchain on graphics reset. * Minor OCD fix;]. * Fix "copy type" pointer cwc * UI: Allow choosing bgs (android) * Remove blank line * Windows: Simplify host shutdown. * Core: Cleanup MAC address handling. * UI: Fix crash on item select with hidden items. * System: Use a separate API for bool props. * Windows: Init with OpenGL 4.5 if possible. * SoftGPU: Implement CONTINUE prim type. * Arg, gcc buildfix. * Add some paranoid checks around touch IDs that probably won't help #9647 * Oops * Fix: in some extreme case on-screen touch controls get stuck on iOS- Update to version 1.4.0~git20170427: * Mouse Control(Windows only for now) * Try on a nicer mapping workaround. * Polish the new workaround, seems to be nice and simple. * Add Tip to inform user how to use mouse control. * Handle more mouse buttons(middle, 4, 5) * Add an option to trap mouse within window/display area. * Fix ALT key mapping.- Update to version 1.4.0~git20170425: * GPU: Rebuild FBOs when they now have storage. * Core: Fix PPGe text drawing with missing icon. * GPU: Attempt recreate of FBOs if failed. * Core: Fix log spam in debug mode. * GPU: Consistently use useBufferedRendering_. * GPU: Centralize fb resize, move to begin of frame. * GPU: Fix black screen on buffered render enable.- Update to version 1.4.0~git20170424: * Fix postprocess shader submenu.- Update to version 1.4.0~git20170423: * Headless: Fix DirectX11 support on Windows. * Headless: Enable mipmaps. * GPU: Correct const mip 0 detection. * D3D11: Approximate AUTO/CONST mip bias. * D3D9: Disable mips when mip filtering disabled. * D3D9: Support AUTO mip bias and approximate CONST. * Vulkan: NULL initialize some handles. * GLES: Support AUTO and CONST mip bias. * SoftGPU: Use texture bufw in bytes. * SoftGPU: Rasterize triangles in chunks of 4 pixels. * SoftGPU: Interpolate through texturing better. * GLES: Avoid MIN/MAX LOD without LOD control flag. * SoftGPU: Grab 4 S/T coords in non-through too.- Update to version 1.4~git20170421: * Windows: Fix buffer overflow on load. * Headless: Fix graphics tests. * IR: Cleanup some invalid ops.- Update to version 1.4.0~git20170418: * UI: Proxy devmenu keypress through an event.- Update to version 1.4.0~git20170417: * Linux: add another PS3 controller GUID- Update to version 1.4.0~git20170416: * Vulkan: Detect swapchain init failure. * Add a restarting flag to NativeInit/NativeShutdown. * Windows: Avoid restarting completely on GPU change. * Core: Remove bRestartRequired config hack. * EditorConfig: Workaround MSVC2017 bug. * SoftGPU: Correct negative coord handling. * SoftGPU: Fix crash on matrix load. * SoftGPU: Force render res to 1x. * SoftGPU: Use common spline/bezier rendering. * SoftGPU: Fix indices starting after 0. * SoftGPU: Simplify index conversion. * SoftGPU: Remove old spline handling code.- Update to version 1.4.0~git20170415: * Remove unused parameter to DestroyAllFBOs(). * Destroy FBOs only on actual resize.- Update to version 1.4.0~git20170414: * Disable pause button when not using touch. Remove per-game status from some settings which shouldn't be per-game.- Update to version 1.4.0~git20170413: * Update lang submodule * UI: Respect the pause button display setting.- Update to version 1.4.0~git20170412: * Windows: Fix mismatch on multitouch finger up. * Windows: Cleanup type conversion in touch. * Fix framebuffer size flopping back and forth. * Fix largest framebuf size in throughmode.- Update to version 1.4.0~git20170411: * Fix issues with software GPU on D3D11- Update to version 1.4.0~git20170410: * Update lang * Track flags to reduce unnecessary VRAM zeroing. * Cleanup 16-bit VRAM clearing. * Skip downloads of cleared VRAM. * Linux: Added support for Hidromancer gamepad device driver- Update to version 1.4.0~git20170409: * Windows: Make the window positioning code slightly saner and more straightforward. * Switch back to using CXSCREEN/CYSCREEN for centering instead of the virtual screen. * Typo fix * When not resetting Y position, clamp Y to 0 early. See #9563 * When resetting Y, make sure we don't end up outside the screen. See #9563 * SaveState: Correct crash on rewind usage.- Update to version 1.4.20170407: * Fix out-of-bounds framebuffer blit on color bind. * QtMain: Renamed mis-named variable assets_dir to external_dir * Use the root of the memstick as a tempdir for downloads. Should help #8711- Update to version 1.4.20170406: * Further fixes to #9554 * Make the gesture detector treat all touches fully individually. Fixes issues with last commit. * Windows: Fix check state after menu translate. * Allow using any touchId to scroll. Should help #9554. * Restore calls to UpdateUI from sceUmd, now that it's faster. * Fix XInput polling in UWP apps. Should help #9555 * Touch on Windows Desktop: Apply the DPI scale *after* ScreenToClient. * Minor cleanup with GOLD define - only use it in System_GetPropertyInt * Operator precedence fix in ifdef * Remove unused code * Make scroll gesture detector compatible with other touches than #0. Should help #9554. * Remove unnecessary disable-buildtime-git-version-creation.patch- Update to latest git snapshot * use qt buildwildcard2 16847512311.14.4-bp155.1.61.14.4-bp155.1.6ppsspp-qtppsspp-qtppsspp-qt.desktopppsspp-qtLICENSE.TXT/usr/bin//usr/lib/ppsspp//usr/share/applications//usr/share/licenses//usr/share/licenses/ppsspp-qt/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.opensuse.org/openSUSE:Backports:SLE-15-SP5/standard/894fb29295889fefc178eff12ddaf110-ppssppcpioxz5x86_64-suse-linuxPOSIX shell script, ASCII text executableELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=1a1f4004ad244f98d2c071a29d638cf0f4ef1f1d, for GNU/Linux 3.2.0, strippedASCII textdirectoryMMRLRRHR(R&R5RR.RJRRR RR+R*R,R0R3R2R1RBR:RER>R9R;RAR8R@RDR?RFRCR>+H#N`?Q(KhOym$Q^0rB2oI9ROw{_-m}#|՝jiVB=Q Ox?<_E|NR(,'A$:J\;~l;pj'4U^לTm.'C 3dB6FSE.wH^mx(q<'R7s]&(3?`XU yuWʲ wou͓Z2 . Eѭ<E!4O\~xV=Z}ewS]KNp`u2 R8Rlf{Q&x$~Z;W|1~ktD0|= H7sŝWR( {r߰ECLfH ,XW|u~z!rW ()*>'Y ׏&& @r2 䌍w/mjc6P=FWIX<@}ƷL:2F%O\7 if?bN`trtq!1t=|h:Í@|dFw@z5dP7쇪O׆1IO"~:>sjPg蝫k-Zc,}\AwB;wosGpԠbs 7`h]v/2ܚ^0+[Φ'hWpcte%sAse%cq$ etE ewY5 $,PbچfkW(Wәԋ7>Lf!#ߏ,6k[{N!%CڨÄƟWOMm'G`:`4r^`FB`rp&MQ3R墫yáx|;vئnM$~X:GXNko`*NjzWŵ>~f6蚄Γ J:UEWRa|`ysGX@f¿̬㊛{o;;c܀ިTtoe xJѻ]:tKGy)(,IkJp189jDy86H8S =-#DS86[1D^~y^ ;tĸgB ֊ 7k-4[3sG&2dyD6\K ;[y_ɥշƁ=..k5v g ?诉X u_u'(`dpׯ5|`#o}7OUhq& AW 8ļ[h7 xCdQAmh+*{E*C32%OI5hWDŽ/BfBb<)WY"D`Y6G;p_m&FZzV ‰ŕˇq1T9@d;Chb<ɆW@* wUR}>& ΥqO./~w؋ʺ- "UˣDb9\*'qdʳKg*0ѧB~=^Ҭ[8]p|D"%h MpBӀ3>4 )Wo+-3}wL&0Avzc tQo\`ulA" ^q>d̡9֕Rdp'7hD&(]PCGDb%mQ.Z>3~Z|aVX~~F#\:+V^(8E+95"o4+WʢjcG+`OF1s? )tz~w0% CO6R0Fn, CeCL69kF 7bYa2C};(*E'Tir\ PN=ڿv2sZU3=㖕C%f8 F/%&o>EtCTyf{c -9櫹{smT]),eQѩ11 ^~ͲB$66ߡi7t ꏖuw!泰!>er<}P.`i ?ɕ"ؔ.Bܔ&AmJńzk OBp^ \iTHN+`HJNd&2Vpk'Bl0e!`/2T'&5#۟ 'UpB_iY"'2eA/ Fqx~P4K:b^vĮ_8e͙_D.@(˗-IL$6O\r?ek- 4Yz.KٲYe3:pzO'At .rj X}\= q|N#:lBTQg\ _iF *C!"l%a4R9W5HNm*oU^s=8o\1s^kӥrҘHSlm}j!9+Jk87~ t}w8ӒHKPˀ׈>i;Pc64DSؗFE]7) Mb Sxۻ̞Y 4!O0ۢ4x[Rz5ֹ"uR~oDNYTcZ*v,Πg3` . }sCfܾIoL.k`9UiZ-o/zan]4.\(Dw6ًu`]$ P xT>#&;ū%4-=0(1 q <(cb{ 3Frֱo65x{*Y"8;u*6,.\Y(LS9dsHiGb~g 7fbY>Q'ʁ_sQ_rEƄ )PhҪ%Sъb>l=b@"Dܰc-݉_>'B ^y+0|K# UbZdk좫,”u3zxoxƷRuCRIx.GE vM۷e x>f.)[eIӹh%îc3NInI<3˨gxY=g{NF饿Gk(=}?woLg a~h_S5Z8nZ|g:I9lEIb]8ԓQ.?gVozz??c>3te&0k{$;I"HC9@XjdOxiP_%;4aKif>$ZIY #Jo[x.<~tY,p飤(%[Fd%ji{B}H{"kA6z8߈y!T#|}!ܼ?r!?-d;w+\ѷMOLI wSF@ϰ%c4pr{?rW<4b.w^ʟ?F*Vl4IPa:gubҭ:2yYf5a} "o6܋Ŋxy(E 2 #؁JxeR3Yt=`Ni*e 2+#iԢ;%!5|q@F`j*DX)gmIPCFY/?Giwՙ2jДQFQ//|°HNr%/jոS.Ԙ,y/q٣4";V]?MF dq[0=n²śDξ:orm!" Iv.?"|[3;\>Pr1$DϰP)%`%õ d1LCtIS.R@X'؂T{ +$"[Ɍ~m2#qu6tvv:)):CP{Zl>luAn M4 Sۑ\\K/T?G <t 2-~z҂$|:i/2>V >4ltg*-Jk4u5m|㎠Lj\Mشy-&eG;c’ ^hZ}a-Ó~-+FHE~o㨉P]+HrڍV4tGھOIJ敐;8*\T nf(jS[ c'%~AB[z4 Lr &kx{|&n!^='Vz LX- BʣV58I䉝d- ;<' ]\D'<+{&ÎSm#itKIsW!Ug 'ΣSX4W5_BUٛ9ClG(>Rtcyπ8Q}w PW\gTjU#^qw`C_@E<$aW4NZqF&(=S/ꝋ= %n U94 Mb)vuPHݷ+ qmy;oۧC+?릘&_L$W $*!.`pJg<,su%:iXh[-+9M^ EKGwYpsLةp B?Xy^%{*؃0+0H~t`5Bg㔨=C,QP{h1֥[avо`k/V+u 쮩9m/ՏO 3 i07:kvckt_ƳP թ !=V^[OמgDv 89f#U= '@.Fe']x$`/gL9_\zǻ||+B0iޏ{b֓Z!BNSiV1_V'I$KMQ,r)| qȾS:&y-H_|G ᛏ$eܨKb[gC s^[yw+ƋHfw SxSzz0lQ C ŤI +h-m򻇲I D2PlC0M/a4(x6¢žL=6T͜q{z0 ۼ `] 0iiR]cr -Eؔiw,=+BHzfH`KMxfrUg3JyOhc~uf>ɶW\tl 5 TNhN@&4T4d#c2ݡϦ w 7+:5,kmof62'7K{g=(}vXIU:2x*D({۟9f'\(J6d^۶Je+%%($#,lN~qMb#0TҪ\ '$ .Ar)'Ԩug` iOXI N/(IX,ڎExM! n;)ڀRD>TG -jRng AHf́qh鴐? JsMM6V 4,'EP9g3'- n279_TRd.Kar{() :~J; ր wJᣄXVI8t.̣T8Fsl{ FI8b!!+.=ť{;nV=ck|Ëmz0x/SAQ}}dQC&&;2ѧ/}Ⱥh`*[Ѳ,Kh-uA eZԓr " =9 k)76Tw;-7c.I$" A}9,eNt[u= FŽ4{ #C Q\ouUX{ar8>'X"ƹiZ̞3f2X]:;{taj";O64c@..БYU%@mab8m~܈l %J}4Q]tɈ|HЀn\b0x5r ? nH|?`2C y%X8Vh o ;n*RoUlL%/2 srZ2#h>UeUΈ Xdz7si5r,#}e (0K!;!p(z u#T0ⲏa'( 4v=s5HpEL7LLԔޡ_4C Z~WnfVcxcY"W0 x.f{Z^/ld^ ,=A-Kq DbRt`JUǁbQ? nxe.Ǘ۔V$2K0W "%+2A6^o".x(*H):v~z|I EQ3):%G%sK5EdCgF.,\S@ =VmiHC!:?xbU:Y[ͤ e5K4EfUZȶldv|1)p%'l'i͆:319ϜǙ0,lFRa%U(`tQoΉQR^w] kEɥKv(d8]>S"2ޜQM__ x!x_٨n"!N@o_F.IOjd_츹4<|&[=4cL1seB1L`\?`3E/'zPa s? Emse2Y> ݈Hd(;cCJRs Os'-sbz, r=@%:L%m?k^l|)T6QEvU:UWV)R*^^;D*mR4G)3 a" $1aFt?Li(6S8ۉQD|9(wēa&^p܌_L7nЃ o\xv,0YMYԻe^xk~Wu's >qv {=+v)V۪u;q;yÌQ=SM/)ޏXZCMH4fhYBBoBb~%~I=3\8P]agMȊ ]. ic"5,d3O$@5gp½wq] LkM:F᷁3DWv P]*$J{`h!¼`\[Q{Y@d;m IcԲn%?%uOTi,ߏS51 $L 1iQst`\ADaC}AѮn?ꢀLQKڅn:\\_N\lU8ύ#rOxj;=0淵~w;\~ ctft/ơ7? %{Ei&}rj,> ~|eiv+0G57~e Lj@Cݽ0pJ3{OQu&;g ɷ'# 3Y%߻!?(%_ۖPBni0~8q Z0۫ᮺd)@*T ±7r()>K)OV5[1(&Cd#!( +h&tGwxgs]ѭj(1tm7|چ[rR[q jld,)wih],u15 jxYV$ oG[`jV^U(j*_SL0r7iҡwq]0)WvCzOpи2oЉġm2qt觬{( Ϙ6AzoTqeewXqjf}Tt*@}̚'MM}d%~͢Rtl'q)#7R2p=Ŗ5-7ㄔ,nu$7wr·g1 ^~8Y[o7Yi M44sTͳIqW-X}a.pnX=Nf:T݊Ixe պGm q{U93Sb|*Vb):(k.?GSbik/HzL x8!;FT BIPOw2PUl*ʛ\<9%WAtNsOg^K"sixC=k 0` xZ}Jôw~bf/xဟ(H.OS qʇkG2'J'\<*h,?]MD>BO&#ֵGn9Tak@%'gjVz\[rS3ACY5C'%ԣ9/-v 'i)N8?#CX%w`ԛ. -͢PDD;$*xⳔ([폣kՑ5t_:27 ̕1HGG?az-''*8T!cAMdzs;wreyc٥lQs $ ܙ7&m U TWѼk7KB'*?'[hW'ȿ>؄wս5'2ت&L9,o'7@IRW"+seMZETWwG[u~> qha>Z?4)p㫲gBڏ nzN aO h>~ + <͊A9 =䩆G`?BEASz^0eƕC ]r+t'3/Pdqz.L[yVA%+Nd_E CB)GePxĦ}<c6e̶c"3ץ_t$V\yb|m xqL|YSٱm,V4 Tԃ'?):8QV%J.L޵7hȱ F?r,t5`l *ב%%r6ϛ32RFJ$- [) L(AuGhU ,{IĀ9L|f˴atQ&X\y3J]1U>۴B{ %2{8 uPN]rXB+<4F}rC9$-|~ϙT0} 5U'_li+ y7ҋUߖ0-A K짓e DKVZDFe--n'Ғ2T+ˈo3cq-5l7 )NE.^G[,\c6'k3 u-]s7DՈRIFne |BP΃PCDn<#'p+'4*j2C&T_m6?TA"=7߂"}l }UzvD4A $3pdͭ)m1:QsyM~qʝFncX᫞_s1JĮ$0Q`NT+>"P [/oܓUw3kv.(sEf.O@X<^u&$?u-9|G+ KEQtmzӴtn%tv0|p٠%njh8/Ҝ#D15Ie2{!vu` #j4i:좼*ܾR`aK+7yDGWcXs;\O*EqϥEA;H^BeΗמM=.^o %ۍ2:jQɽvTP{#:׷LA9˺@Jwp`p暷d*X%5+j؈ЊiӉ7&V**QރفݛgzƛuHwnM5!ÏuZB g0a2b~W+@}gn1&k9)b#ruuVrMTR hNp)~V 6V Ve,wsnjWY}kv%p *ԗ!L0TFG}/ HY@4]IjrC[2MQ6#[B# D2Rdqp )e`c9%3Zk&~Q&EgR%"KDKԿtD㪋[TjI;?9\Ӗ{ '3}#bC:olF LzX1uD'T4Q{+$o˨ }l)tˢ.\X<.'۳UfeVfYm͆is'ڜ9"}ť!KbS["^`nTD&PI礨lo0qK D6;ձ& _,kVfXBR yazj|D 2|*_S GZm pÕӏT+M.kJ9}Ai~xA7}Ct*#3-:>u)7B[H} 7u^q/0[Cyt ʞr1 ynY" $J[ v= 9NVWOnZL.I'[};OZK0оʂtU`3v* b068dX:_fJk$Ԯr܅-+sX7bntǀjOƪ~mdKx.eE!kͭV/%L,G =(۩M]'=L.fL0@{2t:mM>pY1GI?.kţ|[|~0MUdCXfI(?`EM ڗf73)Bc-qrq?d;Cbx=i k4aVur6;i%015u* \v1 {Sh. ·(wY .nI6{x9{epj$J!zaϩ%$ XHfR**D&x]§c.i[/Dhhщ"ݪ)-V0c!bi7ThE Xh?S@Y{a\oY nY$|_5`fni[V]䡁IɿIrέم>DkQŲ;yt{ETOer0[AkR\*ёMK rK;H[1хa=W%DY3٣݈PkKQPzQ%jYFfRٔb]7Љ Y@}e:5}*x+z+lT77|'A|Q jrlसQ!}6\Yg텆5KʿV4\,x Ӥnȁ.Fua%o%&6a8`?TTiyRvBHD#DmeR ҆`A*`i١ )KsZ`8S3}cT5 `9Hw4t Ġډ\+C^͌(2W3XN"_֣J4b-.0%n`7 ( xf fi- FEhGQ l-U9"m{jF}BUm< XZ),hzzp_QT.r|-| <}3nFT99rbwPRɌTԖ$}2pGS DJxd?lv P+Vdt=t4 j71dلT[AeوJd=sXJu RgR~?a ߛUѤYb<-YziM eb~d 1_ՏA2dlNRZDW@nP: ]zdw.*B%7zl=ڟYyz%vqh u‚9>lBۮ[tz,-&|T*WJ k05Hc,dѝew(ˊfE_!%پd~5YSXҤݫI ^==gqEg6Apڸê ՊX|37sXcvz@-3܅Bg=ۺuC`foFKMos PuH~K,)o pTjPL=ahHY:::4HKeߚx[FOgsNT 7P*3(4״lс:z7*:+K?ȹ9huӥ)]`Y@wtRxE ώ2K'5j_[Д)71@D=:bR.@7 )ꔉYM w^: <;z`G3pԛH5sr_kTZxN066KcyM߶'!-=u)gF=2j wsN36ds L"ꨊN4.վnshᵲ0Hw:S^6shžWtH9夈DžaV{(g'N<%*;2^1YDvi:͝hc(C;3\bۆ˔,x+Fz972SDR6kthE٧Z4~*z=?*S{6d9^0xJ4F']SM MD /dYt"NTC>wmf=ťB#Ay2P#vt<끢mF.XeʙyYjW6j}G=dDK)n'٘U4oݴhl9-~q}XQaBkw^npTδcR8&&>?-8/wA]vνtA%3m+ U {"t{p8!wCxrJ%4"xCtܒ5K/xk vH)ܕybjxz8:r37\ǃ=7.EӲw,_s)}_1O 7ͮ+J$!~qvaW0)FF`c w^]qȟc'caʙ p䅏))/fuT48fJeno;oƠ2FΉ٘+)֨r<-Bm VqU񕄛p.1ʚ;f~dNdӣ*޼C:ĥO L*zmf{=Ɣ|Dm=R[dfD)=2AEfJ8\%GKXeOh.ɘd5mC˲(-##ޜN!Q:4 !R{0Ys@=$>n>EC9(}L#RIQPQiUgB8<-v@uߡ 0 44`P]-y,pQk<u&勌/~JYN|rQ*g !DTNS)>m#) uTɢv?p{`wA㮓l;xē} WҴ-;"CBGCL鬁w(nO|ѫuTAQ$WydݑeQ 0V#u]9=+CA֚穏3+RءYlHbJ 1v-"Ľ褎P]-- ^d~:}l^eRl&LZz w-U(n1SY;zr&6OǩbɢiR sĩ9T7]މgɞ@pa 1@lsf歈uY#w}; ߌAny<^MbOVaWvZe"Os윫B[Z]}bD4լGR+>1.}2Y A7ɀ8ޅ^R^\驣c9urkPiFIFȪIxHl ^ dP`~yV]4b*[7l[mgN`ۤΐ #ͦ kXܠmYB,Lf _TYU(O;0|d(' A&,‚۝A> Iv8H] o}m6XPWPZ;/5*1ZDY{9 NQȫa=ABC Txpo82-ڨwd=vrb'gR!]}JO:4UC!%du]yZ,(\=R ~rÿ~<]N}( DϚ*j]mmS < Pva1&qQ,4qLeGLy?;Ph{tuڥ)waDgy]f"xw7^Gʌ^+GrZ LF3x9|]^&cf/~^[],DvMMzS>if=e'w+ϿmJwڲ{3-'RǷrJґz󇃶pE]v6+2RfԽʯ(Wd:ag:!ptWݦĂepksQ>,(N ]v¬=o~-FMDS^/y fS;g*u.0.}11LoqLzlx G q:t.o(V*> *+yqw3c܂_$3{+6`0[;c4]1~ 9Q4BK<-0QG$R$v*:,xqM[riD;14/73n a1[:K;DIޠ Ů2P\nlՏlh¶VCZE9I5⢒lC7%GςƄnJ5c$ox0j)& j@̸9B4G֖;? 0HmT˓a1i[|8u3) $ m )IiD̀7mE ăMWiȷ׸IPܨW,TZ3F}Hcf7}hf\ &0 V)Q%V# %;&B6:zUG7Hz@E ( ׏{“p~%`BX<)llYaZz\ĻǮKD3$.Ť4"RHm{-V^d8dҖg|IhV}.ufԴ٭-r&C " =pqA{᜖406kY&Gk+I +Ä}GK)FXމ#~ɘ 8lPuaJ#na$pXV^ǿ3HE6)^8WѦU~7^ baZ /V'̷K[ e#4)x:[{cA?J+Bȭ㏗zHB[jE#MQy.vif$QG?a j ι= 4jvIZbjN^,l 2{PAΔZESЈa:݀+//-. Ф3/=FQ8ڪ\ M ՛n难:N4n|fzOޡ}%X- iA4c{N3 %A f/h!CvaS;WlwmSq &Eq;kKJtDMX{^ԶKO~C,Q;$d:Qi9ơ!Vg4 _Tz9CG(~!@M RxS!aޞ:PI.u'k !˼з@b$k E v%Gh;3@uw3@w kn\)top0(m ō}6uV?x #3Kny"a?I($^=esbuʍ,Y)&;aŗk'Z ?;m~3˺{ \Jʅ gch 8w7PF+,wuK{K=Q$[j㑒0Y& Ee+~ 7inx\Šu{|`; ?eznHH5XT_pNG-(N3,iFIdE{9B]O=x-MvhB.ߠOhKs|A'ӄr8VxV<]u:LVٳoSH*,r7vZ'3g,e & gdK7|Ooڶ['S#YZn9*=mXzW ȧ*eX`Lrϧ-U7lSY{M" e#-Ҟk8[3G:X7j@Vժ  HhޖJ*!UA-P/6#^٠!, UQA;Kی%m@Iz(Socw@'cLS/.LͤL n%·3pخE;ej I:Y䄹pѪge9kdȰݺ?s/ĭkSC0bF/! :6k3j럑Z?:Y3h[au;_2!BJՐP(RL}׊)hnP RL~La&`LDՖ"jlJ]?9Z_y0 )>{׈!h>;RIk{za|ҡǰJ{7*BCG5?$$tl(?8rhSD_Ld76' R%_Ǎ\,Xӭ7U˔0(Xdhe[B4wEdQ ( \ʈ"GKSx ̪?C^{Km!9 YÏ\shD:uR7l_Bő!>[օs^1io{<f39_2RF};5wE i jKlViޗǡ &nV&(v_ݐG`.މJZpTЯ1Ntg*cYm gԸ(~W ڭW\hSA̰IШ깹4hA;s/Mq-3O[UxZt>c it8kRշG# UgG'}c(;>rM}2jR؍E)DXjk/I;151\' i6a<Zg1Ju (e;Ύz/$deObtVMjzh0 RB/z;|19i PW/1V={$&72m#_| VMq Ưw}tص>'Hݦ5Rs7lb&Y`6{Efa/B~\ 42CNr0ѯH0d$E4'mCuYcטA]-'JDG0 (D@n Ӳ3opdUa4Y}ArE o1\jM0jm$bYDdKL_œX[=~D]2ϳAV*=Ä7f Uя?B خoU?:$މ\ (-G0ő-2Ջg, uշ;*EjiSMa:y6Zh8ӰHX2C6&]4]nG'^Wx],zAE:Rl :sZ=k[w?ј3n { _JNqW-,g k~dox(8{F;߻%;Rެ#ӺWN UEb1 D|ﹺZs% (y8dBUӊ7mVY1bW$I&j{\G$'d ļq:7}fe^ӕiKrV USakW>661ܽ[~GLhY*u*iCHUOy-k/Y+O@/ #uo1ϵ&|dD;,l,ɌuʳōjfrKDbXi(r[D5CvfzQ'e>~Ʉ5 %=̼A`,}Iv>R5?+B$|: vӒ`g`An7b]`07ô~t|af5Ëzۡi_WH ~CC~ϊj#Be5jkn͜: ,&C#\`Z+]{EK44?$ZrxxԁXO4zҝ/{=^͹_Ht|$eAN VՑ'xT8T3yv9Ea:uEEW؞YSg Xai(_TQύ ualI@J88UO| ,^>gna 9d!Uk}bv>Hѓ_wS(kzSO8^&YVQ>nkƙV؏WؓR[f0)ؽU 6j~gO{`cY6a1o>_N=j/YhJ܇y|%hJ3ԒzVeْ=0 SQ7W ޗ 5h57Y/rfH_U#A29"` >Ka*TU3/ N`*͑)Bm^nWIk8U?g e%8 7} I3+کgNj'١#*&mG,gcά5D%Vو -p^[0n LsmX3]:#@5lvjI #NPndCaX~TE0%oX~e;^Q1 VG,X+ߍX# )aܗ3hzW96mx g)4p;3fBKzhqsC=~q*s ɓ"&ǑA=⠞xU6F(&XlR ރ Q:b9pQΗЏf, * iu{VE\K/?̓_dCl,gQ_}~bϦe}GzG%:.* OѶj#1.HY0o)RKʁGГ_9"YMg1O:#,/LTPP.(_%3`J>.X_: E)uK& <;!JϱP(Ch#X4;S~#Utˊ>cQwk?%O}dVĞ]n:Afך:{+ϰq0aqs;۫R;q!m32*hlMJKƏ{C;9=}ڍtF홍vM QUo+Qtp))i; 7z"Fb]X?DDٶvlӂ;[4{8|tQ`ꕅ3\NrE4ޞa'p]Wk?;VT<}SZ m2._DCU" ^CwmEA _D ye)*h$t9IV^Cy5^F[}``oh}NGP!B/9) LЧ)Mо xNNF- HOUڕǣZHZy|ALN1z,n/ߋQ *QqgJ&o S aDLjV/LH]RB,7%W,Z˳[j @BdJfq\Ζ&s%߀vZh-$RA?-ڗB?J2`l 44. ь3і bS-lvw#@16Ҹnq0V1e}=oF?}綴hǾW9'D7'Zpj5lKφv`9/#Vgq0U(뺓?+*MZ/?̡;~ pI%yX@m#, +HޯPKʑD(}q_\1-ʙ+juKy',2c"l8TMAX_%Oшj(5 SPk[I!SM"dڹ5 gTkEcG|k zMY7H]J}:*Sf}4j[99S.BP!}4(9D&0][/ѦnF=o{ x8Q 8dVw-e:2wMQ.@9/V MD" #5xY4%G:Sd)³cL0EҦtD&=g˥ƢApDq,gwq^rtKGn ͗bzl_~$W;G>z_W\cc-(Ƀ<$[V/D6ӢA^OSb ޸Kui?('4lg F4 k_hRX$"l7aFuvkD4&vck>2Jя"?ZmMVǃ Ċ6եawLqۣDO;Z&hZD>欋AˊJ5c&e*I5վ8*'TCIE+=ܬ'o6Vnͳvw!y%ҿ! >V~dFn;**(Y ;!# ϣ&Q N$en sp־m{C&񺈁NɌ3YuOe3nȔ dx>+3*[Q}*cHq@lhHҷwSܻ 3Qu}flfNQ#2amw'NG<" I =mXun{^þyȢfM1Io(72| E5'bx[8)?ڡ;+ NUF]J9fHMhk{-2ŒMF_PqcAOviCݔ`02,\G-5Y+3 $$>GwSKyV -No;!% kY1^p崧_&=Bvn!&}PT_[~ˁPz_Ën;? {mҲ*&+*[SJp;gT bc9Doq,=NjK!َ 'gʤiøG78ώ<#U&7}r/E{ރUR8a!\g/*ViG6W;:9l.v%ܪLtiS%&H\g ̎!M G&BaI ZR5'Q?B|.=i$R$#{ c%dU-v'յ/q;.X- bgx6cZVgd=aO $B"V3>0Xd|`thf;$prn.(i~N[zBwuZ\& J {P YQ=i@p 3<q %qZG!зiB?Tg4jP-lNWH"pT ̌)c@_!@me R; Lv!]ym`_cP\dXA8ޅԲ{`z6:jt'VHSx˓x&/:~tZG2ڜXpĶt-ǂZws)!?B‘d^W:c5 = \"J8/C.`%?Q1Il$iMƽG˺Oߜ!q|.y{X~-OPa͸ gYC6:T 58WAKQp$?&MGf Ʃ2;N3k),4ѡFl wkhXEFݧf|qz| 2#MM.*A T!lUPL+$Z O7ٲW;FVKsZX)mKF Sȇ.\!%+@ %&m?_9j.sd`\A)qP{ @)cwchb ':`uU:7 |R7Zoo<͹RggDҿtˀLKԔuL+Y5 4Kx/p!B> {3}0Ikq|q_^8DFr0z#Ӥp]Lr#(Veu;g+x ]LbOxn_l((Z‹:b] Bp7zM!Yo#3ep[-RK<)o`=6*?eAuۍ7`Ҩb 4rդ7QJ y7 %Qd-N]vgT3hDB>Qcj DLă>)p`ďNF SFW%w=c<&]rAeо0hN9;Η _ļ{f1&4x{qHן&b}1m }t?b϶B8uo?K(Qb_E ?Kiu XÒ4WבWXǐp%݆ g!QjM@]N!^-St4C"ps&˚?^pa l"RT٪ IvbbVP}5L}Bnfim.A`- L3 )d);R)8jG/͌T5QUi^$^wLhV.P.X9_c#g'~Y,)dE8O}:|\|m/ nPN_癏d}X^L.dy]8I4V2ZA0OWlsZY/quLr qt߫n Ƒ10!>;d7wnhŀA Z Di ;B;5_=?KaOAj~hbDR w]ZEWR G\;=r{F;0o8v.": Pv .l5H ?_%<2^32Ld,9UsVs53ͩ.Ĩ:).=ugUŴ:,] rFdAu*ؠe'R~EZ>d~- !["d(20 Jzf閶/V[,܆y4\h2<$9N)DGì,>!]iB6̓{"*!j6dSS~Ė{Xb1VzVsWxSs4F;՟B<rAu-f.=@RL Y3֠#=| t J wmwƇ=pVa.yZ>=WreR Iy(5\a4 H5[ŷad{o}kYyec*-րWeRUU#@JS { ;J𓑕2w+]RMiˮ_'S~.:l< pёUȇ?ĮL-,.]bї+a9n}m"N<<s'lB~Ը?e-WVo0Æ 2dd~T-mXKotؙ}>^+jNj;J[a1/p/Z=mUEp^/u%74WaQ>8?ⅇX'(aW7$.C1"5pn9,0gj(]ӓ U[)wcɺ]>pT1aаN=ϏTbH1\XB6Bl#'3,8HvY?5(ul:_>dݨIjbȈ2,Y}&愀lE znȯ>HNIA5~y)dxt:ZqZ;i<Ȍqyq^3B`]؜^R2]nS͈AsrPz p(\..j:P꺉<_Jۊ50hDC`yz"gFƊirzeigQ;Yw@3Qw:h^-4*"il{*3PLC6aSwƫ410&ɟT*BI',qxeށPQ=:<|;OLR eT8 &^}U|,V J` q|$M*)sǎ j$dbvƟ- RC\J:ʯql^qxYVÐ-#M>E֒jn.vgAEI!{T*Q>&6 w\tWe’F{&V1=2eDOh`t1bJmj: p2&*"2Iq]NlY=W(" e2'%y72#cjtҒ&kpgB6u@qpî/aXn} rd9pc-|h},:.ve4 yI^qYj l~q4Ky_r]Ф^ _ J xZb"B=bFU&Q'Z.`mȧl*j̋׸;7M!8ϕ6;#֠\Bkp&}G7+ jNH[ %M5 ~Xq |Etj8Y{F5 { MK&pX.Vѐt|yY' f'(g'orAcnbm 4RL.Fe_`LQҍ"e<'s&ڸҘwe>Gg#yh=sJqoTfz]JL:b֢1Aס APO&qX#W?Vm1sNrg .F?[ٛG^Qx*Ԋ$ŭ9_;.usp%v=1e~ҧW.TFc _ONf8=iM4mxEQ۸\1*\OM_ >vcA(EA탷#&""EGG~u;A%>o]D~lN6`g"{y{D虿 ڿǧۇط:@poRkbwX&ܓa'EÓj2RL@ @`$q GB,8.v5V6/R;rE ;[И GB)¡,||$WsQBG1XԚB2 xBepBm7~|Kwi j<'l:d% C0J}SvdilY@bm/9-,pO4X /M㔚0ζvEpᱶjG|MnDYg+PO5QAGɉߖփiF g}Pp {k0ɱN [yʍM}!]+[jQj fUaTYslvfA)#8=P{ЫH-q+K)w?$MãKZOI=h̐@TL7dm'.cmO(5ѹl(faM,WH!dgnT4×Bي We9KP˷4ׅy]C͒e=#`\MG;zbDA%/iZ EtQ#l}wٮ,;1tm|U Z2z<΅v`7,9/X̓H˯˩8!My ۿםrwMUݠ3_i1V/pΝE?yp!۶c6ҬѢ80MZzkF0Bɱy  9Ė©4VnirWŮ+eeXa#LZUS~=(=$lo&|w^ә.p"bȸL<;g;BP8v\i7";auڞ-B *_#&lCgTQt]  Hu`'[u4%l:Q6Q޼gn0H6@b ob[U@EqhnG.[|JM Ox[45)M,Nxƒ̨C3aj8өD^ JH\GIM-hڤ) MBMɝXśX(1;|\"S,KnX4i4Nn۴EJKK؜z,=_)4_Ggc,T "2F0T$OY΢Dی7t'UQ"X'b2rgmQȽeg[7S\J )ٯP1䄩aJˈ,.WE+5:+q?0U0l;Shvhm^U9"FlV]7-Zx x9)7 1yy%ÎSJ WMYpJNb_ӣgkrk|T{ejI.a[eed\&]sE441')RG7 Da*0R^!oފ8\ZIu%ڍDž| KP_&}C%\vS@5$pJ!~x-enGz"_k6'ƵѴĩr p['mz1u'&Ry#a|H6_q5#Hq0(5Ij*zoq@<$.)/ȕc=T&`3nJuI6uJvJ%^ `==brdn9k;_MsR'8ɟm%.<(iş?aP2^S,̢)p8яU h&6fúP4tYT!I::L qYܥ[Sb~3}_O]EW.Q+M$`Ĩ I\~D'JA(B3 8_۔*Whp8Ł'ap,h5t^4SY4Rr"5"vmN"B gIz}?2p@qy xX; UMq_N5ܲ?讍HQX =QI[IioK.3f'V}snfA~ѨUwc1ކ w%q?NTSM~乢ZFK8ыwbu'e3P7cIYNej4 qDuE4$ʲqs؁I:L 4 ُq;`*B= nv AYcA{ڕyF/xk}dd-pJ@Uƭ)~ mL\MMFua_'E9M `oxήrc)]xFC$^CUd#ӎ5E d<."<,wO@FU61j d:%ű4Q {>ŎB͡c!H&tC[4ҡeM꘣؄ZR E]6$ή< nI&6*4o껌u+tY;*/ezIy,py2. [I*@}et){DIT,|ҋ`M.Di z*fWFYp< I7XLwRfjÊB .ٻbk)8‹~AjhpbD[[GH8hMjnO"ã2Ӣ :72ɑ{A9-<^K)fy3`B*s<8TeGX VqURT0|Ӧ{4CU HBRT+3IHfeVqRS{eKpb?&7Y\G!}R,'|jnq0=b#L_ 3sXM g/ 1;*u*(.i޷.Y݋{|q}tTmϽfgَv&ȘAe(u2._Ae}ʁڹvVa8=vM3T@r<}$cIn1ҧM޾hlSܟa[V}*O-QR UqVTY5&w2ꬓ6IbI [_d]jOӱ|BnOhe'xE$P!'UA~8.t :/w  wC0.X-&긨 )tP i J Z;ms[bB)|̀EsnN_ya ΰ9wXдkJTٻ M>*dlPr2vax%2u3V;p&̩ƕĹ 8m~H468%ٲo+_ER W1CM~5H6 DF~I0HNJc5Z)g$ԎEތEHo^} h{  7Q>o-;+ ;cP7j vncVbt$ZM[KA3t#^BYbzc퐨wk%S?r/wNn} WGIIժ=K~y U Z#"A~Jp{3"u7iN_ܐ1mN%=br H熥,ΗW, p[|hNO hYh𗱿3znb*y**w0Bg;|_ї,}m6wۯxͅik .h]]O#{|Z@Xf)bǞ<)BBZk MV*6Y8M`CPKC[3uaΆ {opoAh2*Á{3ƫ'PjF16[Ih`~V AOn'A3F֎5u5Kj]Dl;hʑ 4]DsA?aNj'Ȭ \ -tJhևEf'FILFLq)Wܥ4Ȍ"TKnUd3$Fjޕ2`_") e܆͔+AEȶx"P~n%n-d "zzHKF ]3g8QT@5"SVk3įkI+>RgUWz8" >}r.ORݺG/x$:6MOQ.O`/%0"9E`ɏr;~H~jkmhx{|T <Ŝ+/$y6RYœ9 CYf"| LƘڠ3r_,t12ߣTT?ʼ𳞑nkcmJ,'f`{ ZH'Qq|At"\:!~|O^ TNceu y *1r(,U44Bκ/X?J`uR## ս#F=188]f?ZV[ B~#6\LZp:N'G.4ȹ3iDᩂu9gfv~6%Π&2'!W[i@L܁6N'Nu/ۋy=XjGp礍x0;"R+bD iĎYܯIBiJ,GDCG?ăx7nzhy]X]930dC=AE;%6?&.xow(ңhnjeiT[NE$VT'3ՎA,~xvQcȬlF`rYH2DPyͫKC7$LJo]v,eh|>Dp¿>k+7pԿU+mex..=NjaZ6%?koHboZFM?ƒ~J!|]@BQyuwYJ/hGNTXi>[Ŕ0z=~ eBP^C14Т7u+PcI!0Y+K Am:5 f.Rq;6a{Z:0?m+M(sҺ&T`zPxOq0Od;-1vLpTSxrnJt{k2&v{0X޸x=n<] ]M@G!T"ʨ4r1,+ǽ$2$"\dNW-|c2f[A C`=&t+N9SYm^?+3rzA9n"LЪlr3ydGzmrJM_2B~0gVJ7{Id- cn 'ڔ@C$V }x<'qz0!a&jJ셠QX-"\AW=x9mX`bn반Nr;mq̚w; ?Mʥsdhjv$!Xn}EW٭kL/H4|}9<=)xaхru- EN#3eQ]a~iA煤VU4Xs3ͻ}grL :8tk+30] 5ͤnƝ|:θ,^*.nTzpYG_;FO}Qhq:.bqm~åLdR .}tr/tiojsJ`k ݜ TsrU{M!Dm|RVUak[I+!#gp6`&/[Y{(j@ l u͊S[wV)S)z"4.  \$%<KP7ah ]Xl!A)r~n.3}f kd n)aJB)Rv/̃`۶liFtpOYy%p8Yz9a|6J54i󤮢:``6z>_M*FBk$E<' *u5RúA~-l!nRWoF_2̟(o_Bv 1V1\d$.*!]5{LaRʧ}YLA=>jnX2i$ |5 x 3 BҼpʨb?;Lw<2t0Z'AP@VZTrWa ^{g|% P|r i|>BK pxQlYTBQnȾ?ZX4=ts "um?}o;E Klc:Cƪ[y5l(k Ij r3L>*~+ue;ZȔD#G`PmBU=.H~Qc 2!flw,Ua$hԃ z[ÐF`RPV"5R"Ճ==P2{6+хU_e_Bk]/1V 祿dSP@O ?Y1[4w>Yꛊ쌬 MI9`ݤ W"[WG),Hi(\Ǡ?!9wϔAAtH:X]^=CKod !]3wcաY"j% RM-5 %OZ?IP 4ڃ2iiWyKU/_;ЍtF"Y8)텗SuFPPH3,/"D%Hѡ=% 4EI6_P;Qj>:9nkϽ'褥Lt!H>=IFd Qn#p)QoǶ_ .^%t2zdim^TsApW2oMH|T%W.nzX%p,sAyX$'%TQS8h\nȝRv'9X_z2ϲ ]~,\BscqGҖA[ .`/o*$q<c(ZɵǤ#,,S|nWnt` 6J-A@q}cjj΃#"GkS/FO͸$,c.ȫG)VGO6-ڷqx%Yt^r0"~R201|Á\7!Zxj> PUf,Nõ@|b$W*e(M0E\wP<@o&ʉTi͍zƵL_0=Tّw Eٹ[6^r4qP{?8@},9XS_ ;U}`XEy"T{"GaT‡[2&>aMd12l<3ˁ0&̉K_Ro]>/:}#bazkKRd\1kho{CM dX2VO=y~ A̝f;~b1ҷ$.׬Rj9{1N*ߥ5C\i~C@5ݵvVV_F^'fSe̴Qo/p B.T}4ނuX@9b;2M<6lZLgJKàYXXf'#%^y";lr-ntT;w{V|VM!Gb;8g?,߀blO5.1V֑Nxi} &[d%{|\3mCt7V5F2%aC ]$S7a=0ԖhMcJH%Lv:HqKO4lf_UIn[qRKL`1-tmB;.֖ٻDH՘}$*tV|]_uR8wuB+ѳe۳i~U@:(wKJ};  =ٌ3Xh&̾(ys !D}M¸pݫ/@|6(3`df}\#)2Ꮗ&޴\$v2ÅDf׀d쥿47Zf"]7X'ygၒ唾 KpතW?ﴩ~UEk)颬 <(4O9t`3jZ~T"TH(N40#Kcj p բEC]1w$#aSiq>1pCޞ^ Ş h ċ>E=Kqϻ'|a@b8ڔ.Dd)rB J(6KRc&@>+ *<fʙUnM_xo!ǽD4P ’o}5xLFb:݈KI'9Alwyg{>tTu|Bkj#&͵4Fh6lhjVPaKB-U ):Nꣽ ⺹C0y8a1NChg-h Y'dDGsZ~^Z{@YWV0ɇ)nD6+bJU1EDF]=a?I>w99 i1GDVC4fTh§[im''P46uťq|rNc![dл׈@:̯g2,rXF'RLv~l@P,3> 5[Z2m$?J7BJv,}vuؖ╛R9iA/؊:7Uf_^4{HԌ C\*/PI&#JL:v [SzA7E8GinI]fL@{;J-lΊhufoK/R~ oFU/C=ʇ(}^I{$Rt&/p3Jn7fL9 Oψx0isLF $!n0PFDb ,g5uvdۑt9 ?XǏ!ls wt(Zn D͞ J#Qf^ Ә g~Jc9+58Ts"N-~@Lx_|mUKTKn\,-RIf?Je=)xH\5\ʍ!E <'[~$EE2zAQ򖑆b۟a'SDH HOo\?s~}&JӺuPY R<9 aO3U%^$~r$ו"V3HLC5I`Z8ۘjE=#%w@ b༑e\R% !Dx.%B(dwՒy"eSW?T%Ѣo0(k}qESؿƆb'R =)_r.)9?直&-klлPo̥٠EKU[-fw!R k,-$^I\x k(Lc:Oq7h9 iH'ݰ7|}sd\%o>dPQNk,-QSRFp"D&wsn8gw>.MkY :ܩ)68ՒzkxD:V Q?sj3jfҔ=ܜ!Mg jP.br'''V{1w'ij:P68LJҔB=ΐ]_=2LâޚLa!]x=l\^>ʠP:VvP0WcN˽Ks^5  yD+Ӹ`e섿Q@%AWΩ:l,COi[; [x(e&y_@"r҇sا5[d=`MmR/K &E>3PXI$Ҽ!D~ue?sf!G+xmN=3=i%Qg,T ߢZֈWl(% *T Jxvyw-DUF!Cm%C흳7.!3ٹ1#T*akvHV*Ư|G0ږ6y` a'[D=vTgP:-"FE?SvT*t'oBuf.JzYUI3 Kx}C%;fID*;o0H]Lk7C>Vh5֗ؗyܕ~jf]H[8-r B AO/>,pPd9'g`(^d#& {"GlYO \Ӫ)MGj?T6q-'@A5@@_xY!q"VE”RN|vsXV2ķ|m"^6\D01S^p1qBWx<^ ܭ]4^},vLw'횿ˑ5Wu JY.hDv\v 6hѯF#u`Z†cuJ}QFU #V X$'L8P|;si(m?v0o%HC7)uK\ڟfyw@s qfJoiDO1̹ޟg3Auq7I %U2 2yFTZCeQ|heYKňԱH h;gd?67nl@,"1 y$3|Mֹ6`__fBRA0 ObB-٬` >crw3BbDN\{u@[ Q&A 'XET͊%{r۫~w_ A=Ɇ3v{}%ѿ_s ~3[J䗄v' rXuտ[ "w;GE{Cc,4ZS<3bb'ϏLD,S+ |nKdQWNO 4ʔo} f3|(V.6( RH`&Q󥀛KN>ZNc8h 82-mÚG's ntƚsؖ_cBuQFHzNzzxDJ'2k.y,^bJ׿ʐ57rT3!y7Dd `PЬP؊00g.6j,I&xg3<":& b/SQtTj{芳PL ~.wlί/[V~OKl])9˵~.T-E (Zt˛ 9^\$/YX1lj !J!yp31cCЪEA>dgl "-o *͟WrC {JIG=.m*_oiVh1GKtN䉟M."N>U,ޟ,HfFEhMqz'p ;pi٭Mfn/=$/#^')'-V-m VP`nTa瞅9%f}4v`[sZ3c!/k:tGPVgKP6;wuCM/k _w61VUf?nJѼaeX~o͸wsW[;APrBj`z%e8m2RlUSIOH'J:Ma4i,䐅XVf$L$Bz@e06 ev. ׽޽/FՈ͏0wDx-k n.zm;V8\>xw2wV!b0[Y*Z[A҂sUiZe?;$2C@?+0)J As$jOv`FaCZ+ ?n1LFgo1<~F,oJ0*hdGDfT-.PTٓM?HZP=ISy\ ]e+f~ߺ`_M <~^qkͨzKj2[v)Ne䖝A0 Tn[Vthuqe?6G( @%\RlDslRi#I" /d: ƷЬ],?%O) jb`)G{‘ٖz"NR`J}LLzE[aw%8f5E6|@.CR{z8+ƞ?MŎݜGwBU I~ݘUuA#F?u$-DW8j6e7f)\&mvoe Rz̩t fgȻ xA֟MC̭ azQ$bP_՝DJyV!w,ָx 9_#)Oc?DG|ivg mcI)ҳfgkL)@1& p# ۷~H-`@ cÈ\ºc0"2i(%t >ù&^$Yo[Uu`,&c|6mp[kjRlu6("h:ۯ:C٪5b⮪sE7j?'r|OcCQjR DQYOz &8C\KyB.fgJ*bAέג~ LTz{GY:[\tnlmf*;멗_/5 x&m X N_ݯˉ) |XpdX$ؐ@=*GB,Ӥȧ ,q *ʯ6"2JlO1&5]5>.*9YMF15FƟ%e>ҭ4G(3T ٹYTI-'ND$-}BI W7q=H@`3r;mQh@-f?T;o[Z_&8exqi`tA I{.KRY0 #ٯ%+ Y=B`b--KAYɯVY ~W۾5eHϗ|&U3=^eEDWPg]46Md+#z)A5>YE8Y[>?l[Iם1ԗtZǫ3.aNN0(Cptl7#/0 *jR|?s,Gf bě4Uqdg"38,ڃE4RU#2;O`ֈ}W~HW8 gm"^8q'#f~~g-!*3R^,9ئuN&W,OP~[!+ ]ڋDo\!DTpOd q+{ hD/I! yf*HT晩a Dp?6Y[OY~NB' T7_k)ǻL_JDAՙ'rdbx0whcg~*`˳:sLT?e|2+/Q/BwYw @  ޺E>>_;H#(vQB@Ccl15bE 6[p?25YSI mIwk72qfO~A4װ-G9ZTIx-Rk򄆧 Nፕ>|{Tc` >6f6:Z<5 ;^tCʯ]1R@0-CO^eXq&(|P0/x \ުh&NY0:68=F*! V&D6Dp9} ~:)%0^#׉ax޽4սmpB@a7|+p;u4F5N%A8C̎%2'/Sz]GwV>>b}UM-- }%POi2BW"%$o+J>'<9! W"Et#NkS~{ܿ#K:[HxldEl?f@~!i;S!HYhwghp15X^vQ%$tLY'" X0qEv(=(%lқ .BDlAJ@mq^QgZWp8R?ɬ/weȓ qp;.LM擁1=^ Ok6B$}wqv76BYME;W/̺BRQkߌ&r>JڂJn5$ ^.A7af$ngòPJuwtIʜPe$]]`[fCY)c'k B< "|O~ OG! QZx&M-PG(cYo1DU}dNz28,^ՅְOT Nlc͖ J <VWdHf \QrѢvpxӉ[ w`IwR!VU1}oR$ rDْ*mSyP&R/ Ӱ-? i+yey>1h718yibvzeRx?]cQo0Xe8 0/zU"ӬǏ/rfio (ZiNp!]z$dѻo#LV=,qQn+R8=m1xX\`Oҵ96}%vE  OFuvɪ(!u߸m>\pBd0oKfK9˷ąE 2{A?ϣKD JD1LJǭ*g4}ȍncX/([moEMuڬT;5Po;U$=6>ŹзXCN/#GMB2ʓ,pr=Qzφ+Uy#GMk^!a nqX{d#DR+ `&JkTkf]J>gX㴜S_:uvC!=P:s ALs! xRwė_zRbj$nEk@]$; cJF+A(G$qjʖ5`(^g+R7gH(JOZ\V^Di%]?_l0iv ; tYcU'~kETX|w̺Hv5KGXq!v~jv^3uQW 7 !:01%%& hĞ#7[/V؇J˗~1Da>=pbha@* +*#;Ⲫ٢`2 /ы+ujSi7(˽@ "g%Pm[pU o0#K!PQ*ɝ\R4Lr5hh$Kf5Y,pjQ j~߳CaO/`}Lp#+.r_¬$RM~J 9>vl<ƁiQaw X|B 3=Zf炀yerO6R⮦cg_OXMXψv?6;e9wqdt=L[g0<ށD:B0\01-ơY27< X ƫ,|Aa@בZHID7 }O3Vp^ *J'X?<'z$ZL?J%wd`Kj5Рlo K^d9->X+#\BRf|w3e<< ̻yPJHr%}!s&4gL(<sɣ0M7پw~E !p6?_ͧq^@&{Cm"7tuqصVpQTQz'OU?L+}UHtw#SVgSư9x eߛٱ$S-Izki՝-'c9ءe}yע ;g$xm\N"|=a՝f.L8ÃxR׋?Ѧ†hhl(ѳMj\?c jbu&fŀTFUanPxy*ѫ> yWL_.{Fx=EFRJ1o ,icE(Fz*! ½įiKy 355mAs٧$7Pju3iM{N2ېGQ ;%y߈PirF$۠/`TLae mqģuB0erk )!a#=^J̅!(d"X)[͒.aź-ȺY/&?32eWO)De}|z"*T7Ǝ7 ǽ%8xCf<@ Nǩa]4W% Fh@J5;Usqx6Xe@ ^3Zsj$Aͬ?z#U-]Gl5Kv`@#MJ@&{k _1zGS(З\|%Co!Ӓs9 "S3[sڪRo[1]! |7൯,ž\n w7uh-M\ly<:Rq` lB$Mӝ#QHdj1k 8 Ȣ $l͋τ錌uv) <͙wJ\z(X?7G0mްvehM{:p̀g7:D&.v}&cDT|-$(B"x羭e(@hK/t~RNSܛJ;GHhAHB!‰63^L;^Ƶa^QtM!hzr1!CSi@I·$&LP'frb_>ѡW-Ef㼂zWBt.3MwiCF6/nJ-`z~4I1J\zܡ@u{ʒT YC48*(P`.Z ڈUh;W >&n)n|"SCc QI<LK1&uC-c1#sh6SÞ2Q*4ΓAE [ǎps$&g<鯫Y?Łs6o۵?wYfc}<тC<3#A!ځ ww`y,!E.Q2?p?y'lT58 ږKZ_"R HJjyPJ \0Ov4~M1ޡ` ^hkg"7`dr !=odL6[>n'ƛt]ց94~inzFϫXÖTU+G#k /1s\` H30:kCZ)^spD2zcnZɑ~ I5B xf3(3}O($c56QSUz,i"l~}xcdtUCq*!>-: 'b1ZmY%iDRKT\z1DN7Ⱦ[t˭J BA>-,^uR~ t(|޿kA4)buף6z#( Y𿒇dAzԮ9.e}w-š8S2^iPsz.ˣST8Pdtgaz'F) 8Ҵ@b ;p=lhHЕ>yk 3&/EަbBG#C=-EIHru'JL,z۸-Op ARQsшקuh作qӐ4Z*<:z=K=Q[.pGg(l RI}y,t e{\eO8Z4e(T,޲Q!n-.^u) ?k#mNYX2Id5%]꿄;{i D[i0▶3E!Gn%)Xqlf=)TěkqgiM蹂]Wo0={fJw n$|b<]ÀJi أ U:n HEEV3G%[U+|R6oT]'D#_{ LMt †٣Ex󅹸 IA?]n;z6~< jא H0}0^y!MŌ`uRpv*y8Dq%+ȗ:h#0}0'zuÒH5U8܂փ_EOqKBTaEE)@ +`!BQB1a,~k~G@4Y"|s1 pƵA)0-4O29cl{;"{Jh<@IBl6 Y{'fY4K8Հ+^\-[Lb%XkS-p4ŧ #P.7kBӗG{C0mA^W0+Czo>Ap =8G])@PjQc,j.(]DZcۯąĒGx\|kǂXG.n,o~ bVd~c0c$x1)dAͱm\Tцϴk'&:{cyΰ.~hJA:0ۛA_.B>307NdXuk3ܘ:pgRmhER a֬MGUWI!سYm=u;nc.bN B[,mV+Αp h~lx@@F{+m K0߅i 5̦Wr+$i;}$H jx^ފ,bT5)D+pÐL"BWRum[!|kRGE ,.WuwwXCw#ڨdʹYÒ? 1ZJUe5i#JV;2٭ 94zM?#.8ynw8Y|Md^uR^/ՆZ0eBS&TP@"W".dpU-;߂ri/ om(@.G8w()kX ZxXGѷZOA}zTfg}^xm2xBL׬U{Iro8DHn#|Hg71Qِ(KOJ ۘ)h@F dksbea ֯$e# CZ{zyΑs=|*\?f Pz P\]>K(bk /$M"Z~>FWˇ㢙 !J`Σv]hN aH|Y87|D-xyL7<% <"f&d:'l)QRy`眽ٹD86v6[%<@ Ai"0jߦڿB*^gӡ( QtkRg_1C{ sM׺ág)7^Ko_jb2xp akmT3\WH.oq$%Cd$=yWP] Vok+˗qK\ >3VxkMDjK4\++)r:G xBŲ24?"ڐUJX#T^:*Oj/^3l`KdzeɶPGmvF۾\攑g|䶅9y2NWNx0$Z/%hѕza̖8>W\{!4|%ď] mܑ9Z+gܹDv5yM 4|"ɱpIZxЊĤlBujC}6T+.Ů]1{ݪzQ=ZzUNREas;j y ʐƕWKnEz5; >17nG|[)FXl}2Gzu95mgPs_cn+Zr_va1rS=`V$Ug !k'ttM$fd߾ZtV[RO756U]܍c@KIa;b>s\A``7< H̖UedX>O=I"r9R*)- x.rb=6{ P[i: OaLD6>u>,>X'&U8jZ20̹#{quLnrr_W"U<SEU/85ۡetEoɞ;>prc-Xfp:]iGdeu.7+qv?n*RuQq;=D~`k,nhb:’ȗ}cu* I+>IduvG3"NpAs=W\Qڕ[eK<0;ѶV.j.FZ Ow j$0*roWK UW;`54'yܙN!Ű?f.3@iFqA@ЁPqyMvAK'%C;E~9bOG,O;{קisf:|1-|,Q^6؛RΌ VNLFRA_.ݍF" Jj%I}-'mmiZh{)H{hvq:Ƿ`y ,=OMER]nP bQ;- @Oob+w3^8];g0;1YmyE_(RƎm1 'ђ˞ؘ7a`1QSwpFy\J؊K"`O}zM c~(s<'n^ L˜&zvH.F_%@r@ĥT,[!UNMϞ`}J/#0"-GX i}\Oak(u!ͅxUksU' 9MG$FḬ`?:I{઒Ee1v@ا0ր$sS72R`+^0E'[Ί=)ɰOʬ1f*O=~FD:Wc`81 "#,t'7n'0o0kcFHOb<@!Y j 8Cgq0|힠mAj`A`hv~%CA{Cݏ`C3:'+u4XE-¨ˆ .3Ͽ1>imshы}2?@81r^N֭f=Dԭ߳6JChm-;7 @b#x.yJ(zV"UYЫj+XE[ivLrܞge+DI&ۉ4&ܒ+4u}scNA?u?$4>8p2_ }S9 2=B([Ki{"vkX^'=CH {` c`/)U3\AHkL&LBgĵ@ Q >ngó˷̶.Sjl t3`dJs*eu/|8_Lw닶f|q!ɦ@BM=9۹ȱ ^#L!cӞ2k&g~m#]-uʫ^nSQʧVOfUn$d;ltTv^d P7$ةf @k 5LdFK*6#&+f# 5&Ѐe"_2]>4ȭ$}i[~Q[IE0ύMG:1N ӿ}U"7?/uR 4iV$6sgRTuQh4@΅]VKˎͶDGG2S[D &xB="]b-f˻k`9R1 \#04 jv)sTRK3,HV]gR(O` :BuoAqj/xS$E2L&6#U RGAd7.JཔOEaɰ0Rl,G+jgƹA#s& h} N狨?եi=ʷ%H&Hɥ4EP{4քMCdɼzj%e&*r$mwtow'r}^C֥7o}ySh(AMa?+O'z GEhbU{%x'KpoiCv[zcnzm_ơ<"̀8glDq<9,䪦 ]S `Ecd*p]o뢇HI˴B&ÃTMk"\?8]SiF,ej^ <{s+#*42: anԵ51CqC5}[+ ؉yFaB E?ss"t3^鋿>uě\'hlL A?ig [pF-oK}u\K\?XÙM}]:FuX0  ,& ޘR>5 ċWoFkVT?8ryA[)ZYma,Z*, 2߷]qQHYMgmEk]evF 7̕, (,$V5vF=I&^H; ac*xv? |Vj S@OMG`]#vfA1<愴͇UVLrBvMsH"dM~C9ȏx}RԅþB֯!+7*OMÖVP\ gb%L݀xAEL1;l'Rl9i/B36Q ҍ! p=q);Y3(M/DL`QBd?2_}D6We:KTFxÁ'Sq밣/\ˀaXMwqGYlNP a_ :}n'!%xb3]eBẹe8/%՘Mi] ;-0AAawܹxFb|U ʅ["~FJb<AV,>fMn*C abTC)K,.S GU *&+G w*>V^J^mؘ Ρ,y"wD>Tuc(4|ܞTEUG~A`y@DFyCSٌt'l7@cǹ>BU#e628:\{rdFr@H'$ҤUt^D9V?I\i8n6 gyoJ7g_ATWRvؘ|*7 ZjvTXZ9`LpuMӥ|9KbWZTҞXdCJ-2UL؆~04$J()Y^[ `FV|gxu0GN8)ՋmǫfJlu 5F0p /@O#SLǜIÕH@>DfKFIWW(8N$B}HIii2J1+o2~98ȰJF$ ' 8| s;FZ䴬a~OT90<("D7ݬ@pa- 7¦ӝgkXӃC|$_=WDljW~yӸuMp~: 4#D%4 ^u5?R~6r?V|z\KvB˅zN/&35PGKЋ=Tjl`blHqvsjeiԿWwߘJRtEOyLVyRQk1WY #Y䞢tܚoiS%5z&5wМ-G54J\C,dgAO<:1CYC呑&T_JkY52PRF" ^ NM![7 ǮpW+s䊲@2pjiGMѶ!_OYXu@UQV!f;[!X]7KC1oV#3Ak@ojXrW:RYJz -qd>G-#U#ӊ6qZ]+LRrb#p5T\ʐ!3/F|U7GM7djɪ*+@닩՞`cv-w[ [,FX}hB&r)'HsM*qyi`ֆv?>I>ڟV)db Wn6eD%=^@BLf@V\^ۍQ8iYq 8&.ÎLbHvZ%K78>%~Gm\I4t [EB?@y2r *pb}EZ)4P,sWe%&2lijJ&27r/@j ]s_,6 =sqQS@FđZ a&zFSgaSaݼm$pPgg'!gFw'Е #6IqM  E8Sr2n9x^#Mj&Bh\+?)L>|Y \ݩ/ umOKn6ZRvg(3,- G%`Jk}zʈ5{-*3G5/jHޱbӘZ]L.jS/,S54Bi^_ԈY*g5 )^ZǴ˝4.6zc2TeFF 2g|^R}Ev|I5lLҥ&-Sڗ]"Ze5w i1,x2*p%*~1 3ȋ' M5>{dBq\¸? 91EGbj>^#[}$lH>ֶH6$e57AFѺ (* qfTbQqŭʣ#Ny`Bb惯$7/;%;l>SiTA >Oz%]v\ ǖ`s> "" %:{$im~'=IxUg@bV᝜.'66ta ,^0uvҋ#slPS.y# Ի|xo_܌OZ VNJ>5[7mPzlG4`3J|!b|vTDIQ"7?/mW0{7qdm578n*f*uƠC{Bo1%RFA_y._s~$0A[ε^*Pt.˩^M6Be ܳ-я` lA =B*jAڪo`̆H-˽Q<*KֵST_|3/orͯ9;l[wR]4eeI{l^MߵqFsG&r31*B*ČR}/?^BZAbpO tGHyk?խy3 [m. zՄ;eU((NN8, Ajwڍ 쵧sB}66U;j!•Mw/M:x;$>KgH:to-:ey0wrH{ҐNje#_ܙZm%ʻQ8.4DTM l1ѽ`N'晋B4T.b"#oe{Os'RpLV#[wXy!k2IuJhIiH۩Ua4`ٗtA ,Aofm||-q%-=u/]-D=" n#S0_, ?%M+tKl§Z/7,efJ P)$FO|=tyX%XRvP#Z(-}ʉ{hbR9 @i5Jw14䖲 Sj$?HQ' >Ϡ)K*[[3CS&o%w5QvNYÙc-\z\WXz"h˅>/%)Ih]SD8~˧;{^M8@RR;IWЀ)X"m븐+g+ڄ;Stý>j'UlKI_TltCzs?/),7haU/!M!tMNXX:'00b~mgi#>̻[cnsL\525cH'ml*~gwS_ ~P %.[VѮoLlokAGomE~d*0Ăw^v]CC8F z4Drj} rK~,Y$KNwt›pEȘB^Cm}p+.$VYó@MO4,kr0oůx!0-VS1KXLQ!Gσ>_*VO932ylraArlŢlLM׻>q|gY6FR u:]1XD@PDw&wU_?vCռ?EHl)N\t%"j0k6"2tA4^m\u9EJ;n=5!ib8d0sO*%^aΫ@- cc P6VO IP@-@lO6kf+xKn2*#H%tZ/zDZQ WRɷH2b(ټ(krEړL~.J MKpCh]i :2=EItةTπy_) XґO|۵̲߮ Au_OCv*1$CH/@مY׾e|.6=߹{ret3/psAx<2>W2|D8傥"rcLy!*0ogmS>k*9G£)'/+xycVu !"Ì49b1(*X9's`S y['{Z):PR`7VPK!}º6OmXEu;gxMtgVq=H=(Jx&: Gt4@Y [ CSg*- Bfq${lx[Nu5߫58D]oPVωi1믿F~A0%uKas!2kq6g, HWlϕMߗHQmvoBdVfY9cJhK`Z2`hb~] q@O!HR^™g|ui;À4AHe08uߴ,iKau=ExQ^Xƴ\0KuRd^jB58L#阈G&>pη+VҝNZ7qG`loO^*lj$LʝT+^ru/iKazIpYW)dƜ( )Iaj(lғvIF90Wd1QT&I۹w$S*=K5R^WIĬ엪WuБ~}G_eBIO7椒3)QT7LJ&"2@]*X=$'WJQe~WɌwdtM#! S!_.=DT@,5̶ӥ4D avF }vgg @f*.SuˋIK L"&OsHcEIUdh@U{\#Z}i穩1 B6BX"˶>涿Ω q~Y>m9踆(K6M-$2 qE|D2iq_p=7S aZ,ݒ.y-^OY7b;u3N7RdouNzhpCK"Pd>"9},$agkI CF#F|D0Y"=x/gxiK#|A }y#x|@,Ɵ,DVUiߜtI|79[p"l.:,UU/}^&L>!ksĨ]ޱVU[BCF+=Rhl}i fT|crh]WzN󳛂#U`O[usUi2-d) d 2)e\d`uጌYׯb`nD ZQci/PzJbDP : ːRu^.aYg}$oF3ڭu(jV.IĆKKhH NkP5rT\Kig}a-SK֫|/q8۰~KԒbcOZj ,ƹdgs$^#1s x]*߽-&;VO,dcp(%寊ue@W>vDjGRbcT\\|#۷*]^ݎnirr33F4R JpI3yYPޟȝ@bAeDb/bb $銝 W:8z\;TmIٳJ [A-盺+|ÙY.g\݈IdDG&ƴ¸3ՑZlPa׽n&QoiL-M3v{|$u(PR !u]gSXu;47.%t4 4äjY^]`G 7h;C'3-/|2W7&f5yBzm)uv Su~8A)RQx1i]1fY:ZF΃;-I(34Hxba}"EMwѡ1Gg&;XYyRa9%Qc:H?Qn:"U0DuPtA97SE |(G_5r וB_i2`d-*-m֫#C(wcUu\@v zM,'KV9Pk[>4QeׇJrL[euNW]4ipe?F7vFA%KɧG u1(i x1 XD VPLj5P8nP#ũIf?-Ǻ6 %SC1}t~ =vہeR[#x GpBu0DLTa~|oyY8ddHdPrio֞F'|i yEN~E '^-PXm/Tы${79wGy>.6Q2Q WQӜO [(bt%j h:=6¼%nMd`Z-CSҍgH<,zlPB!۾̒N;&?Nl*/5iz*0XDbItu/bX8U!$U#F}4n0х{]{R*ED\ٖ 1e88o^b5#df{^t-S]rѕˮw)!WI"~r.ݢ_SLo!~Hx"}K ̥ ɄB{%KJ^r.xr*k ѷѿWvvjIq֋pgY? `L{)߁hz |LӶ I>^:+,t51q @Qmڧ}q]Wq9XCLZ0;fr;(qnAKbpO@Q@~K 44uFFֺGӥAdSjE^"gş|@@۔-!۱ݜ1P6_UM2Io>Wiqė\,^/΄zfGԞ+CP6؝ cw0X'heUoSbβU _DV;׆>;3+r>,ӂ/<.w԰ bB%4C ^Me2WQ*Nt -P}a/g9h , 37 h`౰4X0vaJ_ T7[Y@HѝH}F}ꁝS+В>I(DwUࠢwqOMiҟ_N$4 gJ*Qki %tZ 7boy1MGreLYL&tPގ_[d&ېиL 0,==Od5|z7B,s….u>?p6՚?JrҪR0hMn1BC Ӫ eY7o mg0L* WpB35"KM2+-fzr헸~YT,̦p<Ҩ5kǣ봳±jpyJmf^ e?+JVӽ~)_sT ݇y.]{MCr;T FT05SSʗ@FpHQޗoBdyϗ}'ǰ;rjw)?jK ۰},'S|3ä]5p!sֵ&V0?5{>SG174e'=ǶmSZIwJ$6UVM: @S%RQ,c^BffOKI^LM%yzEY*F2;inCzaa0{_*jdWzJ6y\GG]O΁N,SWGU?}%ysoLS4ib\;5kLWt Q^- ?6 R_%_äaw1r2n\9 }z|쥚&8mB IJLB`XY0''W@h,e`u |ЫQ ʗ-SN 7f.x4 #Gw]V1q.<2LߚDm{|MA:u)?wsi1/m& ڷfKyة6uf3cGf-ZMgCd]tnLo5qcr5we~ȶ3~7oySAaRf*Wx 4c:$[ډT桅-(f|=VR^u"cN\$3X>]#-xB"C YFQ:7t<xH;0ZfXr[*SO cCD~s !"PgM}Ciykث-@ _SCx1N;]ҏbMaMBm0@:T>7^ԙPp3=Ew%c.:x_|[A~oH$qH0jwlDPi{sN \`[odlU<\:}$0oB|V/܎16=wFX|c> /_MkErP-_A8F{ȡs~:ϳ/jM@csdBo.HYC Iq/ *e 6nv}I'}ӌ""0FhhmfF2IF+yQ^Ah9^"Ȇ#uo'Bڑ%l;0(n8-/5G?U8E#X"Ո#t|u*x!Lh._AHп5Ÿ n>VKδş.!Uw쁍X7 Է3{)v6tD\r|PJsk{;ͯi`4+0Q0 #w:GM΃%lBcr[p|t-b v8q4[.X.L:4Vrͬ'+qQJC9o-hM.m[M*oFK$ā}gP&MNZ`uɺ \eWHS.Z KȨΫBg<bNk_7|_NmR:DUf\0Kiۘ4O4XnsL|GYpo%H.\ڱ_YevE4l9Sc]~.$9 %翅:66Uohm-\ Tc- c_~0se*"!I4J ѷMwps\jH`+"4N#`Bvk2dfe8d`C3s`כ3?([av"EM-2 .X#-:SiI2l>)Bq4v؅լ?N֑abq p9X'RktU%xw%}:oY۠MҌ(YJmK[6wl0ᴃLm<he[`o~d4 OᎡIbn{zLY$>gQ0H +"ģzX+ j-ōOYVL:>nԑEHf-mؑ#_7/ƾCNd&lae nyɀa4͆k -ktoZ}?y@HNAÄ^`M?zy*⧗ ٦{8 An{x 3\NZ-(rߋ{R0ɗXUZ5Ks}9 [d6De彷;u`o JDZ)UY\=χ<:*w x"ȇA P34<83jX&ޏ&Q6;MO+F IB F&}en,tqo{j؟;tj3U a̋3BV^D=~;m&rs }[Bli6mߕԤ ?sVK}Z\msmsl;Ozgl)*wmWN^K? 7 F(gp i\bQ 54ߒ2P!m&51J 9{%"0|IPHn\{Ɋ"f43+ B>'Tc`ߛ+Pz]™no:<=D#/~LTOpT=!`4T4 GGr"vKz]0'|B .BP"~^PIuUػt>1;wy[(Oi ֌7ts8_ #_gOT-\+kֳ|GNoYxy)Tʑ֧D%mAsf[lJ*Z$oHaz~vEo]f0Tn /ɥ]7 f&XGES7$;[b0fFJ"ހ7ee&5Fd/L%yUߤW8Y`fWGOiS}h19D1WO\gLK (a_Nׅ^/@J]XtAI?7b>U-pCe;G,cH4ԥҟ vg]}YKvHo& оǑ# Œq HC9ִox{Dž*R5gX@GB^0^++bÒ8;lPoO?vr a4Rh@K__⚲6gz(p>4TpfFݘ^bB.rJ}'֔N^ǎ[ t3!{{eehWtiT#5'D9E(WZ9Q5 z![0Yoݥ>`rYBnck <Ѡ[\T]7Q^N.# gkJB!ݑٕϣiշ՛ݫsw986Úr{dNHBpBTeyF@ ӱ;NUUN샳tˇ3FBD'mI֟DceI=n1t]m?uھ0k,;7kbG>,ltܿk\'E|+ =FIeZbw:?"tUTcLbR6ЊB0f|DTA2^5) v݋`Nih6,2(5o׀V/H] 6ɒ's?=ubE& yB]?el?%7_GP}!옻UԀGܩVH P7 ( DsvR9US$ ߫Z^t66b_&w/Lu#LAhFo<ɏ%JF<+@uCZR[=]z2~5ὕ?- #֛R\eҠ$ >K$ga] WE遦W` mZ!kp`$Jj!)ʧYOPfN7h{P 4(I*.ȱv(v=؋b1ρƦ;O(O^;u]”|SJB !=,4Ƌ\_"FQM]tGH>Ԉm44)!a+shJ:BCC*jߛO+>eIdTh_2 >6=TI;,X`}gl8pO9.i5E] Z3vƏL=2/!,:b.o`ղ-/}@O^CxDloŮXMIV/_\ +Ln{G:z;kɒz.-9hf(W5Ç' H6ld_j&EoLx&5KC H[s;DAk.n$U`{f3(Ptȶ!C3PZ)вR˶ 8 ~o253ޛ>+geS9u8kBy3IВ <` c#k{ hվmBXRdI佈Aqn1↑:w қ8z`zB3q 'H?r2wt$ + eXK;,Fc}ok6l!oW}e-eMRXD쪖![rWۊtB/kܑdKޡRQ=ӹ)-fs͞]b*a;C;v޵3.BmW+^Jqm;agRTf~ˊ&|%nln2C//G@NXN =q N|96q Qi\e}:EFW)%cJ0W_kzt~& Hr~ 1 ӻ}]B'MzkjD#t^g4ڂ'?^*9v tQyTR,)p*X_BD(CݑMFU+7>@gK) ^[ 0| +|l>b*Ѯ~WerB WرJ@C끕~/Jzf ݞTh[|=ϲԹ˥p;W iԷ4ui'.qepaܳ';t mKbNYRY@*"cJmRTVz27D<;;ɳ;UJ5e6`peAhNF2K9y'ћ[u*sWҠaq9@nDxH%1)d!vŦS޿"5OM߲3g~R,hS{c1?V`Dՠz3"ܝs Eɗj\ fE8jAqXsЖY(Př>TSemvՂ$cvMx4YR1UoKa6-dFwfGMOn.I L(%"')Эc2`8y[K8/9@IqP,8jD.$V:~mKAlFh \C]_)4H=6; ۍLXA>\:~їWi{[Pon }BX۲xnujSe3ݚXҾXbE (z%s|H}mApq0Řn(1. lBZԆ74O )rkY,k֢6)Ŕg6b[R=r1쵭j8V[nd-J5h t:w41SMyiZNo,=Z]ttŏW5>NA7W(겝G7ʷ4ix*Dt5F.EȗX&~>}7'EQ%=cchŧ%} V4 =E?Zt5ct#f6<c?r@J(DXILs@ބ^G'IN׌JwH¿NA@KOc]ewتi&ï}To1j@9'~q2Dk"~QU)sƲ,dV2wB\*'_U@exZkPAڇ9>zV*  O9@7`鎇^aC]l*eg/-U5  7u7/I1H m2ckd_ 2 G(Ÿxxt 6 _az-,E M˶D3*S,k&HL9?0LB#7I9y?x Q3e:)I>c`'kd6JBz&7,;5Je<Ҵx>7hHʵdR*`*-Qu8uh @tB4ϹellrGQkeA5tI):Xg . ʌޖm=:+b}s'a5X(>3@J$_ۢ :3 `Y^x>.2=? KF;`%RprtUɃ6Df0Q |h<'rH[ms$L1RUYf (Y'Čfт0Ն4(]<˚ڥ{pjqZ>׋0+M#簭C0Mb~ PDKص<R2 6bN~~[\no"Sc$߈i*ODj "炽0oFmx#]3b0S4˿`|C\gkޜ~A uvV a/0Ha(Jr-TF19l{,1hr.%2E>>;[CZ3h/)$oEiT/&m/h̄T ^㍌k|"8d8O⋍uKTeT*;㗗˂"<%F!f* 0&ۥo #f+k) N̯_]?Ͽ*Y9mظ1àvԈG|Kݗ2t}=Tc RW]YAL^NZQn~]N/ƅj/^k_ue2, Y]pdbJtS.n$C{=dy)ߤ p >ʚ .!#tq8aI9&w]O]U$LGmMjPʑ8V Bm]SR+_WY&HPf4F:]_b rG*CZ1_V3u>_y/+t˩y2lտӧ#c[6%wjKuJ}׏/]R+@jydIJ溂ˉ< yԔ}Ts4Cr5欸BX7EW쉿 "f1o%rȪ@e܆dV(#Y8PC@S+jmϬoY6р+C޻U!T矪'#\5mFlYI>١ު`F6r6]j̆)P^H{[Ais%Z=h*'׾3s0wP.Lٸ鮧*niU?mOI&Ӧ>2ydgp#6M,2l6&EtTFkǒu/ 7u)KlqI )7ǃԽ2-{PKXjN‘v rKP!{ ަcT*v^:hrh9hBu(qz0 L8ړn۴8:Ql[$,~jBm77ſ_SGzRW3&ʾffU~NJj5ߞWV~m"BhA3̙3A4lS`,5݃FVm= Hv]ݤ S)<̮:䵺 EgڂWl1h"23]mP M|"Q֗;jTWr5 Nƻ9/M߻װ*E$$)ƺw_nUiHSJ@BL.O?bZrq/CK#9ųXփxa0)r DM9|d˪ͅAi K"Csdq:<,S'8xŒ_u47c ]g>3n=o.RVN6xNl 2KEdMgwi]*Ǡ%Q=4ň|H1's! "7o| MF=,.z)iZ'T 5ЬydI>M/L{CcURs7 x$'-Qk\rmmzPdm'!VvMoxJZ,y@B'6Jh1-L9.(Oi5(XJ`sh7$6dL*lϙ]7ց9OuKjJ+&lFH?vb ׳1ʒM44 xvr%Swßn e Hr*-)=GZO~;+΢?yiuP  4H[X, L?*u34hH=URTe0*6z&}d%arHݗ ]l ~(U(5<"^ -wK L'w*M~w➔%.}ɯP}OnNG\1{miG:_&H: ьuRzSU?-G\շlu Ϳ7dfl.2(RP{x(/[ }ӷ Ǟ^մ:X /}*SDg}q6"#pd!QWq3J8r$|"ArKMզ$^w=ƢGnm"/f7lmĴ U*Ph/HܸXr|1߻̌c4pyeKfv 4 "nڿBQ9NW {p {!ym"S;tg{ѹ4H{D~=pQ1d(@Ll٠pU8u:PŨCҶKc?1kOR5N5Ds8Hx `E=By,;[ά(^KЂj*o:y|OA!L]ӟ#k]jWA*Yj(zFp԰(q6vIDyòC^,³_zDèihؐdz_OEWa3`X(EF5>?5XG-Sb:aSˍI$zkgsݥv0$Gu)l}ST+qZ5DIۆ@=0bwq5&L)IIj]#J}uE~T. =dPdO&a#hq ?g ]1lzeH4ƒB N="8ߴJWFfHZ[;W1JbL/!َ>G2p{0#K\MLI.@ˣp`:p'ГLT0 Y iyȥ\3P['Ehy$ֱٖrZn D{~ZBkUsxgb5WQ ipL>I̓_FR3/.vn5 5W-҇yZpd,tUk։-PR|oRMϵaLD7auJsb(1/lp<~SȚW=I$#؏'dp?ק`rcI B0%0ҁ]<#'5 V aR5Z&\<ܫ"3eU&RqT hK!QG=@~⅘L, Ɵ8''xAI.C \u-Uf5th@_lWL&H.J܂q ey HZ7ThgݧyˏM7}Q1l0uEO9;bȩ隉 ee} 2I` ""n /nՔcG08luJl2sdׇWPc/5T,EWxIt4ݴ(U!bknrVp#ၡ!gD*ѩIv?4ڧ (dd3me/nssЮIj@š-[dSuG`=."o`)Jdj$Ǒo@)g1(+K>]5(l:vfuwi 4]kmw=J岤|HUaE c"Ya'̶九3ɓm.E@Jp衆teWh9Nñin+&Xs0 PT/j?*^ߥ|(El1T8W] ,;qrlD Z:9';l,؞G 3 @½,6J6gC]K_VhcrYp=_KlM@  2(p]UA}N3UHB&f?t;P>մ5,6: ][g.ۺ H^T*hl=YQscӠ\"=yٔ_=0[Fy' ]Xn]|7W$ J;Bc:]^(9-ggXp}`_2濕,)C*?s"bV <X'"3JvȤjU0E9̦é$Б Tڸpc"}z'5}۷x'cOFP`Np+5BƪUO1t!? n $th(1I+::.(j dLy 7ȁNB[0|#4y v\ W<AA=ܓhՍN>/SdoLE >k?c4X9o6j>Djh{O6^.̟&T SNd'7jPY5ʧde@PGL*L%̥#[6Bd H\T#H]:)6:QAEb%&1U7ŸMwtpˊd˧M[oDn~uP{}CeÍ/3 k .(k٘FJ6}WqH%Liإ&cA(_i1\4(j%Tsc2\el }j\H<.v~íhg!? z*\PjcԬx,+$u:0[cuټh|7]wЗ۷= =RX373M 4-6ZU[ +jxضK$ tc,3 sT5(i>n%Qڦ+"uEX؈iXⱪxAƑLh썞MC_6YOq5s>3A`ꚇ7ך9@PMe,?H_-12(,R1v: p5Igp=. %K'[h؂RL ԗt2";0yxK;s3fT) vU[<6q yԫ΍bLo051R9A+f5$3 &8f~ DŨz|T6c_'ecyPo~jeCD鸷A2f.5" 4MQa qfSغ]hIxC#OKLvC߫&t6x " 3V [1V嶈ⅪL>XҼ;^'BeKxy30Fj퐒q.`m06t0Ё^JMț.sR@,a#ө߷Q4E`yʼɘ^I%>1PRlF+ u.'gkuw[|/`>Uc_֔kq֭0#eh&ƴttv++B_N>9H&y$:9@G͛>6:7=^w^kVHв]ӷhi @Q0.7b"yC3“q?Au›|IO ˻toYk$Dk^5fel09Q\IDS?NtǔU"ñ?%q9M 22<[}Y:iTnUs47Y{~.Oʸ<(EHBWtF &We.FR[Xw}w8F@u`n=EAdK}B XaEAkp(1G< DӁB"L>&w͆C i(n1Ǣ}f±L=o/҂Y* ڝ S,; Ap{9BBF 7_<uR 2h Z->M{k'$S] @PVǵilJ-L.`U0S?8ccwϘm *Du^Z2v!+B2zWhXK6M9Gr;"ȻWJY9nr oxX ̌82N! ؑ[- Aje>+ gu4*r>@q:^XQ VS/&PBjݢu4⯮DϊKU>A1ld{@vYxd9XT,jN19iU,+h);1lkNUMɣ 7b`Mc|nKFbSc+rMV3h%6vYjKƒG_P5Z! !JT,اT ͼd&:{{ ž78VRͻ*x\şR9"a [@RJz o>eT %EdH(s|`?47|'~ 1HI$})͆}D20MI>!AnȱK wrf#O4U3GM%^f ]%QRoE 4- mO#xΝ hwNq߄-jsSj?~1ZT'ѻ/cjq 4_&fvYs"ڝgc]SHH!P$KAoKg>S6@5wk ml!J?1xHSX̤B$hM2.h@v6Aw( 5F290(l ^DN8 XpV&,2Ĕ 12 ԣalu4ҀW/Η؞<עRH)z&wCdz N1ȝu7pIqfX3c[0W` *)\ʬ44.=@۟JѫџMޭb$|cP)01/aפ'().5ęl"&'Ƥy9enLCY ӼAꂤ$ͻcy* rߗl/F‘V#N,X+٪3wPj#Φp%9r-:IЀ%==HxX' ՘S%{<"wO_0(z qNVHMt'kGW`Ǐ<ǎ_imϤOx(Kc-wό]` Q6f,=W:^REȇ> `H E|ȅZGz&jH\輅֤^smčd-od+Ǘ Ym) ra"{PT \O4}JBL8'Sc?n^q@BI՞s#!|'F,pbLbm]L?2m7[Z峊SpZ`-Z\0x+Q I *- :%Cڸ0g0Tq:#՛NHn%@[àiHAdי6QY4|Ku=(F&:yaOi.2rAHmc߳~jõIӿ(,xFWId'w+|XKK{#{D?b+>FIzZu5V@7eε h+8*=gj!׹vP|BS~ ~+(_2Sx7Zihiҝfe@~ ou^.mvJ&F8K&Ȕjg.{3aMz`cugrEbi ,NR[x^x{yc-؁bb5fg\$ZɗTrշqMiOG&%[j i:8vDBEN%^.CbôFdO/,s)mAc*y\y6 |uUAʊwyJ,wFm(p^}$L2͠Z%8ˉ #ܺԉϟ|ݨ`>^RN )AZ,NwRbn("7~)CV"= }|'%)4щ|N81h,,t(ZPNNtGܯ'2xo[ _3m63xa7"Jo ~9;∤2U۵іjR\Tfё7iPyFU!7M7X6mQ:-UF8& BjmEI=4/ xGIjl^3SXm!A@hX5mFl=@54@!CMLf^z`Z6)P;f-6Xx(w1s|g@g\PV"["Q8vl=8fбY4F^ 1Gnq>ޘjۥlVͪ<,l4 b7"K,<҈|p㱛?"C/EsYƑLl2\@M8ZW ݛ 1PIc9VX+̃i{AZA $b cLa+c;~&gaDrH">vb34h6D]Ąl%W.R;Z/T|V=RK]9a:B@\ogjL^t= ^6u֧DZcN߽bY^Ur>:BQ)e3!c++fZLuH ul/AlEvmvCq o4_>kj}1׉B6fz^ݟl2H>1CUTlWP~V<~3lXg,>7~[C@t{ @u`EXZww/,=x)zXZuƝ9(fFM;־wt Mdv'QRF3/D׭nqT"Fhs|+5JJV'6\2}!{uBݢ6V׎Xq܈h =*Nf To\||VR-"x1g%Ύt&5L߅| 6^r1@iװ˧1[{=T_IªJ^ǡKZlyӧ{?R[SGHjdAd'F[<CG:v׼4X2~I\# bC ge} π;ȷ^k3آq,}kUΦȦI%J6cPۏ+B@^L,}UdOsQQ~@ʫW˘t(9`/=;ٕ%"ƴC%t#xNN0nԵ>0_Ye}U趡ـu5U5 蹱J:=Z{`Ck1x %+gsp{1|S'HZ 9NU|v 7)FV|PaF;#'O w<"2cA]G:-mz5Z- ^c-^g{Oj u7;ͭJ$^`G$.>Q˜: a::{*CpzT=޼˱P}ZyU#jpF*9/Qyϗ=/S*q~`ŧKuES~'ZYx޵2Kh(jC;IKWhK]p2RynB7ۃh Ʒ|R?l7eJ?CTf=NPíO+!b6ZqLd4$ZN24+Ez).p8[IY_u{ r1- ٟؑ@MMٯ#UJz+Bvn"/b /X~'Ri*Hdv۠&iqtobdP8 8WnՙiW ,R Cf, +<D; 쐘|46σ`v2b ³^z ;/ n꒓$1|x^P k{2t/|e$S8|99I&0Umf\{ϐrcjeg/ oK䭨 V.Ɓh^ p}O~"9Xhju I&[_  Plr JM38[^FhQ1 XZ15ͺ[߅u#>ыQ2}s2@Dꎚrs:RF-3p|gʄ*zPD^=<sAy8轕]S[ʀ3Y}u?Knt<1p&YN?Lw)gN.JQp0`DK"y!yb>''C7GБ Ȑ3x]na5 ];WSK#tql%hj|\qQAPMsXkv s{cZӳb3 :5zΆ~M&`?9IԜ8^Rn >0prjyRP7 )3(k>Ĝu@^F"[{z'X [UJi*+JcZ%[LjfQCa}䎸g >wǎg z{~W1a}K`b̈́S Z~ZմNר؂sdj/-5,nl_XgS}r23 ydQ/ȾB>t١~a:sƱ웬Kuf11 {:ІQY$.[f"8Lyk-H JP4 6]B X9l4Ywؤ*V&Ž{عNdgّˢSPβ&Ta&kTt*O4h{›:#mĈm[LzSERP6i쓓*΀l^&T=/&7? ?5i6*84VY5VQ3y6CgC[Bs' 4Q0nrQz͒ +VJ]:4p!~Yrc>B IHaHe9ugFTN(vO VF6LI!,1_@_sg+C3N ɰxУ[C1W/9},d=Wƭikl4;<R-a_>d_y |]9a9(јU =ϑ,Hƀn ۽r6g+TkLu4ѕg^D p,Z1UN) =ş^8c{SϜI W뀽5{t7#+2rBro Yz݂'v 6PEk:"H}nd Kўq0(AY GaXy2o<7Yx晡R|Ub /<﹧u$zh~dJE;s kG~0 Ƌ#9D!tE^ ~$wp𬂓E#Ξ[忐 "K#TQM @O3m ?Uy͉U?xf?< /ρ0hON;B:=M?A gҗeFw@dݿ*~!PsK>k 4߬9q-iu3Lu$`y=x<6&M~c΍P)<+~3W!! ^“ 5vyD o9!4~'N%LI5RZ0i"'yׇa;Aܵx4"? ,&RQGတ'ѓQ:e DqB|̟P {6չ-6sX !4 "Mx" PEE_3! Fq (7pr=- %U'3V`WYRoX]tS: vz>K"A,#=TS)xe&pɮs~Lظ4d'u^XJ,N^\V1a6[S&q@.շ۶<[=e+FQ7VdR31p[ Oo߬QJ])cyTVTS 9j&(GԾe6X W^eIX*LdHi62?BdNS?G)Wk%LjFh.Jĝhi+vՐ(-Eۚ~@}O"pG4dO蚝=ip+"eLQ:6FI|V4xWpHY 80BXTV=[M]H>dD]fw>NDƴcqYgⴇNJV|^tZc!H?U|[֖bmFnƫ87l;¿jACV8~߸cWQUFwHMe%z${aNbX@2-~`1&ye7Hk 0h.BXHNvSrNRZd-[oXl9L(߭4o .eIv!o cvVKaM-sKr;a9xr:frƌY 7esS82\CXE։K? ZRSkR%@Ĕ`bfAh}!4rsQV-g؅ەRla޾LeBG/<'E {tU '2B{∥Xd h|po_@so ^2= sV$=ҎL?ndgd2dŹmgaҔG9.& Rwf_:&(8_O[<|} *m&CMWHBa+Ô õ ]sX~hfAh`/'p=7^k6vdmZAYO$Jڎ tP by܂tW{[EF䫬_2˷ry+}=|٭S:'۟*̍t5?M-/ƾ;>m(OC<غ#C.uδEXӋt0lǑoeڋ8Bx",1@F7鎒i#xkḾ7ĭ `*zoK{5fR- =m1yR"pBbo:ڰڽ.[oZl&]Ag* -*J)ˡbU\ Jt5@X՝H+9ݖL :FnW̧rؕ3^8L7쏐e'B SD53fa $s/u^sgV]zy9_6)Z!T tTkeo#uZܟ BnxSEw`(Zj@<ײkDGiLƼ ~:B ꃠO֮pՋ?C[IMfMZs-v<$}e%d$Ir%/OڄSWp؇;q`DU U~ːJ&z+7 )IkxOE QM?YW&EkB!5XMqQ$_IJ[|Y ֺ4(аvWAܞmD 4"91-z>H⫼P tJP! iҭHZjVi<=֋I+HlIe%Hn+`+>+:){XoxߵƦŪoGl{%u,9mgQadvXq\jZ9V2,KZ7šG0aD޳/Q񀙙jH g3ykF'H7H6f'&f qk>7@|8@:ay*|/B{piV &L9Ǫ$jnu96.Ҕ:zMW H aZԄeP62QU[E?\ 4?!WzO[͝~LⳂUД달(icό/pHI͊FՔ !&]+.6t5n=j-w274-~wDt1&t1SиCCLC(A TKi kzO+e;4fž[ `6hu=a;tWt-2S'-k?6?8;rbE$ݑFIBK}Nb (榴#4V'e&^R+ИRY;MD :y7 @c ѕ}!L"蒷X1%2#Wݲ`vAJ$ '2uHa:S65 G" ϢTs\G؇*?hQ{k֕`^uk YCOs NfR O[5/!l Nd\>`TW%<7Ok8˿Eˋ`vI t9aG/% u;2cuM>skսrLoa@o)"l.H~^d&?0!5j@nl=ZqdHm!{"4H_.Y]`&2:?`Ue9V|=b֥z0' 2239>P{qiu𗢳P렵z`-d?Җ.ņXm!fw0}'z0J5ۋʇ͋H)lc#jh!1_l炟- K+ȟhh_9v4td E*B,qa&#"}瞮 k=9!ܴfD7k_Ŭ*P^[IHq '2 "t7FPOOyG5F=ܸTNO\fCYXW g,H ϵʯFx  nԳ8-6F'mkb@Ӡ9ƏU̿Qdոj=B'J׬w_Z"q׵)rw8R-g< Va-;Ot^y]\1P$Sn(xB] تf|1 : z1V7=:<.k֘Ҿ.YXVw!bZmԚV^`8NU.R=dUwyTG(o3Ic.Ӄ U i΂Qɧ;Eqgܨ0>Q]QRZ]uWm(`dˮ+f#ݭW:Gl['2{ ˮOR}8 56x׽;$9xN>55I"[n ((s[(,Mv/T<㊣2E }b%b$ZL;&̨EubdRѨzkîDT瞷IFJ` |,/E 3xO=L ]mVJ`N ,"1#vO>ND:ČpߡWP38 ,i®‹phItZ Ngqo. ;Z:)s~c^ !ƢԿ'n9pm{=D)f kҬ OP όͶ/q1t73/3CРl1ԄG(?^'[9ֺU ˵r %$NVJF˲|+.)6"t=]l2X_Ⳑ<n1t*@injM8n-z4b됍n*CEbФRY&/WA_AZn-;nBvRy@9 Ruk%$8B6l#E}f Vᏸe}a0K\EBWD/ aU@ k46O-_{eV42jߌkjѐ1q7YnlȍԆAi0uG[l֨XS[cfRa.hJ<`&?nOFT]F iNfNNLxWv ߐbMx5PȴlsJ#ޯc)AaN{]1.&s]K)hSͪr뀙ghTÀaxb &}9cn Rw$BتAEb.#2իlH} BY9XziMݛ^W<_|erLe8UD_ԫ84>;JJfra>U:懌,dWUUq v(C¼ݿķ;AN99?̊L <$>iD/W ;Ѭ[ y/HD(bGx.qǤ:I{G%yOHmΏQRQЀ$l1 $>r-~rtVM'Jl&],KY"6Z, TYw1yRAdgpyk4; ^Kf0%Is|).^KTY znWL?L(B@kNdF6OY>Q:o:<[H ~aбhz>Ctf r&OfQdT~[W)Ƿ.0FG{E-r܉r?pZT,aIȨt~s :[ٯ-L3?14L8F\o/(d? 4;i(9%.&yt $&o/rYn*?w]1:n RRPbYOb oؐ y!%$h$/ 5~ fqL<m`: Ay;,Zfj{B"G0?3ЉI;{9}@jp;F iH:|zwre5ͥXZ]^*AOMX=սX^.3l  PҩaB(J(`I9@@lI"ht͕+Qz뫰6>trt٫bA5HדO/aL^?]c4B\'MW)c ~m[yGSqΜydsN /lsTb_~!A\*v ~Ȃ^uC5o/O, Jݶ/a :Pi"Kʴ $Qs}eE}=:u`bZ'qzՙؗ7S'\܉Н]yޗB~̅\\* 3ɸb,prӵͼßw@K/%US @Xat@*.6̢%뢢h[/U] [ŵ $uwFW+Ow?Xj=Mּݏg,̸熖`J2C+3nx7 &fqId$JtF}5qK,.T_)VD8S!z'5+1zͶ<ByK8?8y<sM%f(QY/\94q;V*J^ZDWK9~Lc\S+Z}aux:oVplܛE\I9P- hsmG9]rWdCNW(F]QVPOőF{/ªSq|Zg2~Tm:s2躿w D5LZĩj:IoI\x|mRN΃^ߖLAV)ړ٢B_ ,h5C*q+;n.)Sg&Yu=9\4DO6<* \ ZүJτjXq%9,.C{;1C[%dfTbl"V3nwIHGxx7ȭDz԰1̎K_C0ɰKG v+{ռ$0mG@[ݲ<ˋ|B.dLfeM)kf&l9ψEEC|@vrt98Ƚ)0Y.QNuYx!cQz>桅3]{0_D 78,@,/Ka8.E*7MI sV%g Y_li+2_n1b ]pyy1[Ѡgu{xm)%[^Ӿ2pg-Y+߅TR搬6~H$ǐ*jnT :_\[=EmںQu.V>4֍:$b,#-PD1DҴ6#qS36vd+ltM!e<Ҙ~l/./k:c끧+i75\]b> K1J|]yQpPw`H .8ol{DЫ ?5, zei/]##lVE9;{S`Q"*` cW= G ){͠r meh}] ;͸sTћ.GJhOdYRy =mA0W;]31_'@ni_ɼ8jD] ؖg盲ǜǼ}j+uԜ3:7N})k҂ 1l@)buޗ-4D͕xo\|vM|mUSWBh^L8.}a`hK:T )z]61.'iB\t2KolDw~˧4eĥ\d?_+tDFaA@- 5j/))zJY- 7rA32bl:B7/ x4r+|Q' OZSd=_ф93WLeIS⢕x,҉ Λ,<8e eP ij >˟d"a R[c3N/#%MWفfxf CgbבSW3R cـ-%^?(s$k]wٝ(%~+yt8/Sʝڎ# Ʃ?\ 05T1Iڂ=[oHA|^A b,k(sD䜼cf񑳡: |[ "[ j/ݫ ֻܹ& *MP=9 t/Ed 8rc CG%چ'axW7MYV<}U*Qŀcy㵕2g&#arqnff}%2wa~*R)t]q_tG(4<[61`Bzf_ΕF 3>Uޒ"r$tʮ>k$h/qNmKCg+f٫ v叅p [\7O-oҘSKmc9nJ-RRܞp GDߙ009}z\B?RC g! LvX=4"1S5M#\}kqog~ ae=68BNQ>>t,ka(&I5$XhM`ۣ}_g_aWB3?j=7kjԿi.gk$RY^pLfil9 X6ms}.*? gi6(3+:gʸDR^Vxq /N2gDn{j-t D:Cs/N Y!=ޑLəf0zqf̈́)+M}qylV'ȒǂP'-4uryΒwҥ_ yK:Ž"- GE_%<1qu'6$VҷJt#$V+r 9O>BɲW8 G0 uۼDQQ; H!vD!2C]=llh}M>TK+jxM&&%8oijK"ف`3+&zR*Nʘ)HH%+ 뼂!fWClajR7^Y9 kX1Uo/jݕү@U18{N/J6$BWt{uͽFʊ'Pt$AT 1lBwb?[M\WHX$"zp"Uv-,[?:gtp6=+'$ڬ#\dM94eg# M $ۇ1?2~ʈO0Sȴ;9U2BRSѮq6W!Pw&jHSSGѵ >2dnsܘ2k o/9%wt*0z##Pp Ik0=B(#!"$B͡Kqpk-&[28 X ~؅w/B|9?8_~eO: o , T㸅;-'dljXb;8Cl[gR0 i7`61zrϽY qUU!w.j@Qh3ʝCNd(Xl6ʫ/g$ ,v\Dst<v y9(A}BD'q崪‚ W2,hOW9*sqbE*𳤝+yše1:W&X7V$]Z1j2ibŝ34`ɷ(eTPWxNIAMC{H,Qfy8P ݐvة!Oq73^6"MfېPI1t,>t1m(5ddY=}u_OapXW*tG~ؖT;G{-8ڃSÃ늜"Z>3Dٕ7IS=>~q!fXhw Kʏ]75T`XޝyS (RF `JegN}JB^}5-:LdVwXRO6Y>oxæN|sb+巭ހ7Sv`lA&%$& zCDuܳ =Oa ced{൲GLJ{#" YtHG~(" Wɦ֣o^Z5 Cq{/YneP)p@)֢TTTkև5AF>-ifER1p'귀*9 2"PR pJ޽YˣN!ki*ǭacdbՏ͊*?=,3 ϨŔhoaFWlI!VkNZۉB~Ƥ 8 I2`IL!xן"3ӝO3!#?FO!-Z팸(068?8c7Y )-dgʔVyVb=[lIV-"Y(˺Y TxUax0Y޼H2+#EG6 _ *B[;:>/$_ f7+9.譕mi55K>4n ?+KVXh.3m KXol_Lw#W?.[A dcSvEJP$ufm tjzaT CеnSo;H&*ôA_W2P1u>P–>u#n :g5;XEMWnSZé*XztrOCp]Je[8:ƿ7[ fu]wۢ6Q,IPHgݍGEX w`xd\Ty>N!6JDL3D@Z>AA}{a/:7n UD.}INqYDvS/J,5a7OzaWSJ)tp0SFd®ͯ7u~mLiHn2 JjK`٬c VdZ|ANsQnlrўԯOByM(=-S澂s ^p55>Ϝ\(-v'-7Ȉ-b;Gs+YIm'IsYTj@Pύi{ *c>]VOy Hu R^KZ-/qₜkkw+[sHx^;;:TFfc(:,vh! Vؒ=}{3݅s)[ Ht$qUzvːz % Zs% lihjl-mCAzK4t2"FA~;6bbEM/-戔 qa97L~|祈Gly>iS,7yꢜTgr2pLW\H:2 7Sޞ2$1wݕ8]D `K6c,Õ*Pu>Ab"Iܒ_] Z 9/Aڢn /F`N*#_[j9KN5A(.7 >xQ`7T<`!v 0=*wPuTamA,Z^`*B짚+-~PC {(tf7e,Dhf66 THWxeɓ+hNGnbrLzxq=;5;N%'뾋jZy&AU*9-E+]rbkdM'J5Ӎ6θLzlNw?Dh:3⌞@K3F7mT)1P5JԖpcl$W5+vN-&$/L% N- j |YO]pWp8sϧN9v{_P3-GHtE}юjL;RrUkSLÀ:SS:7]WLW9ֵ8Dzof9n5JP*F/fvH^{m"adf*#,EU $Ra:}hL=;&5'ai1gT <PK%* e/_;0 lw fQ`"j{|ONt "n\6d0Ag!?)Gj=mL o([ /tBbY t8sPPt}Mt Cɀu% 9*Zj?[p ?+Їv}ޱyi"0H}8u Z*j(OOJѥhxQLN2YD%c_|Q!Ӕ4Sux±"gbY:o 1+/ׅoxҮ U`7Bp%Zml}q9eԼz6wFkrfB<&{݃@(*!=g;;<~qoObzCoz(m30hk룃w,uucW82!n֑m3}5(*L4="%U =2pJTPh$3>X"~P'#:gO?~%<3As2siջCIO `fQk G#k҃w;y4qB (\coqU揄JMex5[1#AM"'$ !.UJ4 ]d5kon ǝ<.Էalw54UpCYčJ]xQ*2,(^Gtn$y>oIq!/ P:Rv}D=(]UD BHpx3MߪpIV8I`Ó/[[}!*mƫ~ {KG?sklY0~|ŤWK=,/{xMM5 $۶s7վak@zw)%5ݘ^!%H/Wb ]4x[._Qv;/M{`>,›O9;##x %q%Wj}h ״ֵ{fD4Rn$ꅒ{ [Ѱ𱋉ZuTc`Nv]0CUh q*BP4kj}^["P`PHkQA_Ve]} ߆׫pKŅ[tfTcE):fi]'ըE'\a'؈ H,f0c y#̢#6uGdݷt6Ib22FؕR_f݋SJcQv ld>6JKW[dcQ0P@V ѭSP%M c풷\hn 4:ЋEiH]r;M OH)[Q N]pU&1N`6e 찻7QM@0}x$gҋυGUk '.v[nJ4djDo1yܭ;Dthb:,nyPd%B-\?\'bQS57 ~GQ1vm14ސ䫨zsjpOL9ܿ=LD`~C_Q%uɾ:_HkxJ\{A}BJTJPs$u?KZ >Qx#zFh;9PoB A,Wo.n11E 66xT*%yc!\y4E26܏~NTWVlίnnnA((-ѶUw[ 'o-JSZ$NPA )YW١!:$T?2ܒi, Axѭ/t#?ϝQz| >hg. 0گMل`ZoRǕ <a*^9j#V_HY]ԇa9zҊe`0yS!)ɤӢA#zl-?/?.'5"±0+-ӈ2=WY:@ʺSg8 mdOs}c63H0(lWl{@LkꔖKmjQ~["75w?(NR)4f7K:#ݺ21t싈RaQ=tm.$\qXW0s?A3fr/9ԐW:'  ҷZ].>Jх y{iӼӮ濤_%e*ulGh]|쨐wvj vt~E|ލi;6S[TY?3nf?T䃃7Gĸ, :ո1).A]'y;Q] rucwZe8cqHX֫:kʃxaR?-%|F0j„YK^u*a%& uϻZiՂv]aV!FY9Z /=]PjӐ(K^eaQ `$uEO-0;?jK2K 3a [?5Kކpwuw6h΍&{(Doψamoje"-PWE`'F @[E YQJxYxI!G:]e?yBPo:{[PߩI$"sCCu[-M2@]7Bq ӼZ+CpUxu MKﲁ},e!cSKǞ:OV+mMj`,*O!;Pҗd y**J\Hne40"b-Huba jKTtQ0'[B-j| (drB"L[7.?kp&^j ' us<t/i+q(1E鄰93!%rgd kS+~א88Se?+Gtm6U8nHqֳ2|eQ@,mOah&AVU6H; @(iD>rl/;V`{逑D7>0 J2jNٗ9MNseBG3PqJ?*vaA2' "|SZ}?w%7+h[Qnzi6\  y=]Rdz'lQ xYiй 8 >N"NXRSx{eEpPN91g1zh& NxtΎL*in4zdnm5t| TJg杮nAiٳ`-dJr8PyEat[%= )5ھ|2+PY =yC%h쯷;v.&7 8M2>=ʇJ1 ա C\]!Љ%FD!:FxK+!0/Sڻc蘆ցCيu^6ˇBYewk?O.iqp+w 3$U0|c=BP_(|A~iU÷E޾N R+5QWݍ"NBYxH;^ݹ*$PL~j76]?^+?XnRta(r'l-C1\e[c{SI2+v 3@^Ѷ=Y"s0/BՄ@fRvŦU1S[v >'iSc[0S$)rN/(!+SSؔ!jh=Lzu kQ+G~;, xRN7y޹HPGJw{@Y/Kcưy}oˀ*#0 eӵkSٌ(Mx7HdZ7\S>З={\U;D1[6bR-(G 6S:٩_g^?L_l>j.;k/Sr >} 1'sW M6wfH]%Z$=i,>w)B'Fv f"#̍) , AuJaS)\H ]6E ,W&SA a_C2`GUq˾znxo_Njt}c6ΉNړ;/*֍! FmgHټ K Z1~PK6[wT}UkP{0k4/,b9M#xz!u'gı GHF7p^427MqZ_lF&3/kLDADfDV7p#נAOtf[oSE3$@ |˜~B OK-,{!Cyk<*V+QcGDd_%ڢQ-֗f?yT+QȽly>:lqex.ѽ %t_BO6V[eu$ qe#y 1ڗDAVdkt?Ј]*~R'9*u]pg:%qsƷ`1m5::oS0VpȪ^`E?xom5R[\4.0 Y: آ.F85K(|Mvgv}1zU6 71 CdNPC^e )@#ҚU$>ihiQmH^ׯ9iע\Kz"'rҫu~5wJ XkПʠ*GL?W;LJV4 Y/ķGfS\L޾l=f pV#+@Pמ,vtB2pCh-( AevdTR.$Y|4Sƿ=_,Txǐ_v@աԨ{V't ;  p]yr$ r@=z?o덻vnICٯ=*7!E.ҁ DxfxBTg Jd2?~ލ'Ù IW?ST>z'kA=8Uݺ&HuiH27"βbo&Xʡ M6b6䢋Ne1/׵:W_4]ٚcbդ}} /l=S `>)kk# eJjNOAŚ0J kR)UTs(\j,9  ?Cr}+ Yw_̵+;x|X#yI^]ٞp *qci>b':9Xḙ\3+FdtƑql2,YFeC{~h3GAW~>Ϗ+螋x%c{mYcIǘkU 7MG M?9|-+ujF6N HȩzfAP?zy0cR3Of C-ZBF %32wHIpoQiv/) jvGi&ð,ug^ˆb ]dՉ7wҜ,PG ɭtoqcqsYwS7WnJG,_}O9GӶ9 KӞ<_?HO} -6w%ԍj(WoPuez'o˧01`}cvJ=R\QgdJӏI5δi YK!*|{^|4iD'o ֎HPQ ~lEV4]wNT)R8GXL4L+359]t,xSF9nMڷ<@iK6d΁La F\)bn9*uffJo7|.wqΪKO"Zw(P(k67nd2v+ GZϬNCCii;L݌zTh9ۿPj_wvi&eKDhE|Z gQnfHkUwNՏ@jAF":/&ï^. ITj![-|gI RvİDs p1 ĹūJ1y\&u1'5{e?9̂}f5:T1N BAbD03\% _jԓqa w_陨 mvUtLψPu>(zb)ටbe>gB͒&TNFƄuR[TX0Yp7Q'RTJ'/^Tfe^XJUDSq$5.;v- dϞ&jٴuQ8T""g^pEi zˣY#RhB|si׉z ?fPu;lD5t]!.EI`M<,dhB;|n6=q'7=Ayr-en*H"`#{sgg~ܚ,o}i&V+}N\n6g9@zEBKcŲᡑJ Q,]dD騄311WXt9HNm@mTkdwӼX2-bKL;I BT؀z7ov̐Q Y0m4A%£_gNյ=!Fh1 TG{UaWv1xrdi{Lݡ؉Lj~>9Q8Xաm||(Rt[ ;+S8Ao[m{"Ia>_!@/Q4g_:wW Yxc<ځf|rA'F uĸLc\&`{-xbvt냚zP8q#nTm>7XJˍv<@V/:ۺ K.FJIOr(>%_0 As%Gѽ{;v##Hrӥ7 A? M Vb^ d:`F}5ϟn1]QT0> qx9KybSZC XY'R1.9N&LvBF-=_Cl}´(@hzCa (bHf]sTܟ =A]_/ZG0aBDӆX(yu Pnb2^(E@nq3M^3x[Bf7wsf 6&>52cٺ\N)t< lW1FF_4dx&6mFB=[%6ׇ*S&*u p^JxQc$ޅPr{Yk maQGh%1ϾQ? L{U:@^j.S8%xΒn[)I0K ܟhn Ǣ㮡Ǧ  ZbQ'Aѱ.Anp- k_ÅB:{-k@XS%R8?yty+oS^gQ2Dea&mwGXt }LG x3Y ^ќ?i31 Utiu BaFO@zMFKȰ4",#շcR ;E I3 z]ehx]q]8K@810)|˒ Kng&6f/^3巆Lw`[0|-ѳ[=`l"I#硢3+:aD1'pFh^E콒߻>`WzZIUC4ÓFӈ]caHKKk'8T-o>!bHeFtŘ\pP{. mz=26/GâAn=G]r˦oJU7#*Q-&sӜwlF߰{s$Zpi[D%Ѣ@p ipW`F#m _ 'nt'{gK~s@vg1c|:!'Ji5@:Dy֩.MVQ>  QL{W| lM ůd'鷴<'U$#TѝH٥ӡ;OB]ctP4YX'>9w5|| {R( A%yo`k72j C  `D%a y-U-aźEP⽖P{}Y}39;KLϷ@"Ln6^\MN-b,hm[+I[;Rww I-R45Z-}I7ˆNg z/y 'Ӱ$ra?M̮?iذuma7>dcF`XvXgqgFY [%-tU3F[ {n 1@W[yv01f#jɖvʳau-QIN/f]g\F(Pe}&h<^24| Ƣiĸ91ƕ0{a%jlb'b:V˔9k9[ICޑm9,I mZ JVui34mr^@ĉT̃ ՃK1mnK;%ɡgf!<̏8;yYQd b܍&yy^ )TN !( TǛq0(-B6 e֩/FY}M@-4gwxt풰!쭐M &/zh(MKؗ]kFzѮ,|\KM>]&Qs`3"h[h=}uI O@ ^<7xrQ.1}Юs cto\wi]{/YGߍaѫT < T5A1 ]%K?nk~v7'Đ2aDqf"[ HuagP}`σr@l'EwImu^A.k= 8_&)PLrL{=0OvA M{mdE2ꋣ욕1m$.RFqjZ\]DEk)j:Ih}\ A#TcO\\l"$ }Ln*"Pe5\GXMi;YE ,,Z}U &ʁ4roX ~Өʬ-f69\s̲yڠ+A¢w\Ϊc=Pp,bCe p.)6ҫ]9dM7CK!DVOܨ;yT~}UuRray۶D*LFM\?h.Mܼ j.&wH=,~"hxK5CV^QX(1j_wtIX*Cz&P {14Ȕ0dG_A#>+F(j!S`<:΁q/Mun `H,[:skwf[70<_ש0M8@iwY&7>%Q6Vhj+h-& \n ېnJK$_iTgbh}N%Y6P']@A e#{TkR&o$xSM+-X|A0o~U9MtqL" ^ \o1eԩ6/n5=*6gԣYEï^:n`WpI]TU-zc<6h6t SDN]їV3jz>6n7iϰW?=v㠷'#q.1t9vT*V@KED"b^/HJm|Xc7Χڐ33'y%WBmaeR6>Plzlu@#[F.KӪ tL<Ķ.^]=.Ixk-m!Q+w<󤃄;_7p<Iq] Le^ bgwgɫn^?vURFL ͈g\I~ 07Yseꡌwu4iTl#8 <g7wD;sPe&E ^/6NO8ӭSGO3`G5+VtF,رe!b3mA[NDhۯ{/¢ŀ7u`AT;QqG_@Ag"d+eF[jc}qG&4U=R[h?&pq%Up*~rƫP lDwo8S״;ntfs[rڟ1r89?E! CSqKKyd8 l9X1@ gE$ivf:ωTYRu"#cTm6CQd15t|$ԕz:_3!'RAl[}/7 P  եh;=9zȡ+ TE]mLABZ E墎gFr#OFƩPPƟ|ÉG3׃ Tf쾉] _+[τ%99zUyu|B,'MJM\PI;V}x'ʗ٬OvA%#[3h_<+irWtA^h毮9 f)hs3o%Y2XCk%D÷HLUun#/z4=ˡ<5Ds}wТ\ωr (<[8oFZjGq3w!1~%>;HG~IN+or֞nڠ$g꟢s>#H5j D/He^1S4\GHEjJ.J!jb'Kj0}s ,-4ϣ l|jgñf}i9d`7Pj _ѽK&-j&҇E&^Mp""=ԱI3_ON$~N5/Y6Ca[wKf^QU$WҗUt;,p~1lM"̩i(I1. 9 =(+Gb#اIi!ƫr愞˛B/:\ dV$}B {Ҹ0*!(^EcqO9a$yuu;ffH/99Ɠ /͘D<˨a)T&򾊑;s&%ʑ~# ƦlA>KEd]>|R8jh=nlHjZ}&&_uN/z A=Y]IL({ bH6P}ѵuNJ B:K'-x0M! .ڍ{9o/ʷL38ldեn'# LՈ\x]oF, kR@TRRI`d2b>-+߱g9Zq:q0fxj5UكUpb]zu`D@bQo}Bғ%i07B|e` /K3[IJ VS&T^X FΎ}S 9~N[69 P. Nkle}P^C=djG̓50lv? $>\x +t=w '&UUX%>=}`kTҽ{6Q2Δ|fdgsPX-=9>JfSǯHJo㲔.-a`lDk?wЀn8 SG\uWV8m@|hRc,(aLQdM pc i$-~LL%CMiL|}>nya)dC[g 詫ϸ<\[^{_%1j~@F׆]ZB,sX׮+\SKg{i-71q`K񰂪`ksƈ{)lP?4+ȱ8O&N#-DZxOM?pTam;&w۳m.(FkF[th}:F :zffIb8ER@n$!vQʬP2[W5Z2'i\&n)9D[zO1?8 j%mUOL2ȿ8jbs|}8ZͩC/%XVFXa}y:D^‚E`}EUfOpε˔ˮK ` MI/8C_V@$tP`gDcI.)L'1&.>,U:UD:נ6pKC7ٕ!jaى㴹z)0L9%wq%I(ƼgaC͏+y .ߚ,1 !^4e4oWoUuml}U|󻨢G[ԥ6w{W IodXV|yeEv1_OU2C ]_\wP,5PA 2-@!,wK8䧣3az|ٰFT>N*YKP"|!rm)tyՓ 'ҸtވgbV֚] e(嶝øjXZ{iF8a}m( #Em1D ߎ'KEQo|SC5$g#$+S𠠆M'}h1:[K좃Z>\빻aAagF کXiPyklCW%K0+I۩p(vcyJ,Z|Gw.JzX ;=cךKMm\eV\TAzE7MmCQ@VtT׮Ic;67u UbݙL5jHrIC%@!-MT|u;Ž6U )M#C x %bg/M8zXDJ&YR &^`; NJh/2yhZpEfeXUiM|okz0DjA教Щsv֏PɄ$B9DK2P[/+MԱFη [mo\Wm퐿vx1d"D9$f YI&{ah85o=qX5PN);s kh]=F`XYi6tZPY]j1UŬk W6R(Gaփ\tb- V!5py5]:ݝ 7JQ}:JJ1#+Yot]5Ohnog>֓kQ3V |)QUXtz'gFx(AdN88+W)׊_U{CH"(c6?H JxZ2rj'FL 0"n Y2OJlYa}Cßx̛FGKd 2W=4Ö[c҅DS˖Rchy>Qn 8?yjy|}ujsb̎OܡOp"S¾MtOѰMt`,0Vw :RAMEƐa'5܎ѸRLSS|=ƨ=wsC8 fW&9>` _u#r3SKrZI z&apT0M5u$g?¨+O} s_*:+bWbFQ6B,ͯnb;혦%IF#M: ʲ^9栞{l+%>道u^^ ;_@”ngu-։ZU "y*@G;c<{CÑl {ukGI+A3$ilAd`G:{HɂKBVnh9d-|G'f!Uv g/fc{yWR(XnՅ>9X. d3CV<׶&q0%q2H*Tn1o[άQ.rZŵj DxtfS2e^e ԨمEI¼HOAl;I/Og ^=ż:^c`Vاjp#wkkJV[5E7Jٚr5Axh 'mQ}_$'B2f`y?M E(#erR-]֟V\;zD.h9҇qYt*COuV$աD,ꡊ(k1] (!)K#~cqyz&魛WSS>y74 i=mREwW~$~!д BD.UԻb9rwY2 Z>ŰJ&k@)kOZbV8ߑ',H ꣱cKS'.;O>/R=EKƇ8:=Cyaw"ѱB'%?u3ԡvǡEف^GV2 =Ͳ>ܡ]WrWjnGNNY'ЀpǨOYT͗CL_d\Z-Uv OKoѧ zɞv77EGxPk=2@S:BY:z%APAa='m<'-ΊG@J HV\++@{!t;kȶl,B@/FV no޲ ds">elGr zľvGmYs@-VwaR,UB{41^piR #kHMϒald^-j׽);+~ Q17b [^MlywHM `n&qR3lh5C_9;Vx(iUz ]*"by0E{T?sPCſư'Ƭ,چ_<0;vaA5GI;LMy&4oў9hb^fqbUt kc&SNȌOF`Gxl? W]).(Kʭr+-/^ӀO_*5?^mϴ?5Y[h"h?4Hy(ԲmdX^y||-߆.#KI-'\qRHe<[]'L7YG1!?L YyV72zph=$nm. ?X{KsJSk{J6R6GM4~H=ZxgĭސN0=$Y/ʔb{\YS0;bw'ŒԜ8:z'q8K2_#P)ծbw2!Ջn>!pVO*f2aJ`+/`Eّ+nL>#b<* v3pB_~X G [h?\f{CaDkѿ}hO/S^$xq.]t + Y;,eK[HwY0 lR!WVPCRV3'Dl#(%Ķԩ&e[QC56ܾa:e]!2CkiOlK;(Yw9-\""/D1Jf8?cyӶMxb23jkof۴lf]: /~kwwrj@m68qy6&2 08M DIz ^,N2hD9 hk^! 07"} ! 3’5[5%sd6HS m0J &sy܃4._;D#^$phDJHL84# ,ȅ@LZ}f߻nZV) `Sz y BT4no<.M@Ѓcx큊> M qIMoT{<:fZ3ewy$¢Ttۢ:43@bvd8v<[) IL:2A*D'n@; 'T9V| jQXC40-bDNw qϢ%Sx2x-mepG9C'Lr3*aikwn2pfoVN9WS?¹YBl,a1̋<# T=2|nauAr90w̻??^[|, Cހ2ab5u ;mSYg-xAkSwAgC =-t@H;]벊 ?" Js@UHY9P:rs#xoZ9!?\;$egؠs6:& EQY# ցa4H@Fd#nZZ71!=ON9nCW_eVD xeʬyG|~Mz`` p>opBHkp^m$1ڏ`6$@L`zՓk<|Z(~y=LdHcPp5%pcn8WZmFG(ǘQ$ u@IƉ\d: q9'sJKc]݉urTq "'&$l]xmhw'a YLT ίpnim=Aeb4h+f8zl'vz PGݯ?=@*}5S{O>ҷ+b)iZ%WքnA 6Z?$ F,rm!KhC[S9HsTv:ƷieqhlxCP(*ލ:K2YH<8bz"؜"`8ٌCTeZ{Vi> fռF:JϽ{*k8q"V yN&y<<y7TSNJg2}zTJ``]V}SauDeq[!5 7hJ[P5LWfsm܋&Ȭ%u̱XO9Ӊ( `h.^j}-jȎYR_92*e0mΪu}Ő $o&"'#yXR#?Z``6$Δ}{Y rI&0^9X=5X*pY`́xNtE w%M#A{Bb6*ښ]~ $_ד_>>rۑhR>,懐zcKgȆs!qRͮnE/!^}q-;9O~XG0@Lp ܩjā7gmBF̓n~}M6$?`Ό<c1Kx77tz$x6& ]RUM -^ɲюGEW*biRqj@w3:2 cm0Q藽x'JuYX] \jp#3\ʟr>h"Q %1AtuGǂ$fo?_ٖE)/!hyS*[5`鹷 }Od')4ƭ)xx5h@1JNFANo e7t6XK5_` rT{?hRk6)+\K6˩ h7 qJx;g /OJ\xLR㰫,"m Oc_tp .UsgޯvV?:6ZYe7.ݙswIm?\.`ԉhKrϏ2:= i σ=8 W}x3=rL h2*?wXpϳ?JBqHJt\=~\ȆN -+n!}u,*wY^& B-S{8UJg&X董 +ef]#/qo} ?\VwBئ*)~d_7QsN;Uن.E* !r T_tM_YJ#PI;&GÌf>\~b ~t`y]PB.b T-RD c _ʎ(Iqq2^JJV\sS|bdxsWJT؉k>[v4E&CA`Vld7 y ۷ҝYP^m)NP*|6.Nuf/p2E)Z96٨DZj%$mG*a:MvzY˘ѥRn/П^U"J=`W"Ȇ\n{;:f> =(4|ZIگiVH"ΧP^Q76g Z~ ڡy nYcIѶptg{WF v)*bVԴf48W߫ac>S}ty!g~Z`^ i&{gU@_%[gX! FsɘX4zؖ/.hο#ҳJx#Qƥ*?Xn}?mh v~}d43*NIN%&zU4W馋 |1xISxz~(s[}wi Y3a-֢^ѧ}NToGvH@k#)S|"$f|.ø1\/s16pz{<Є|o7PE/J0;I9/p 6 mM\Sv06z.yrNǬ:oʞ:~$A1S6Qv*.Pt-;$TG1ʬx5%*i_Zx@J]$M \eS (= "x煯+CBCC ΃\|v!ѬeeߋH?c֬7 loDvrTNDqx آ m.mEZb٤xW~XL3yC5ԯS&,0a#jw;%ew!7 =rPg 1_Xrq*Ļo7̳,`7LM(|)1eluPtU.ZB"לP^BxsVar`Uޙ_FJsߎ-ʀ nx6*Abqx++IBP`}V[YY=cIn-.k. cb@625駿׍&޵?Yj`zr\3cԠks6S#6/i)cۗ鎛w"8qWem|D']望~-[!٥e]Cp@O dhy+]<C$ DTy9F KJK].p嫆<)erƐS2?^96Q Q6g^'yAa%T]cYr`_8Ͼ̼nX'Vg]O+ 5"t@8ƚ-J7>F Y#vSxĺE87DH:I \X,Ή?ҹ'9ɗ B!->[+^$+"} )125AXDGےkKthxG_.龌mܳY(Bg@t9p5jCAz`T9`%ҰEz|\bOLPrKzI֘].hsڅ^Lʟu in%wT kwH<9ssezQ'T+S9y"yLx0 ABh:,\Ljb4#:e0R?{縴t m0ܮ*H5 %RhD{;eL|Sn}FRtT*+)tUL ۅM֫1mZ2MO8[W`:?W}>Y T"4MIDR5)Ž;xXy4zlQq<\?p4Y:Vkpc-7jtFFq HS_ UQ_kš\ð[ +(5AK7)#ĉI\v6EvɡF_8i} GBNF6*G6Ddzew4n2L∔oʹ_ jv JyԝUF=%7wqb 6LU'|’_oB:o6^[e)ƏNqΨ.j= hqoE\Du)OYW xӃoນor4BKֺrB2V9;ΖB߫3[H{peu1.$Xc~b-&dL@ty-jT"u>}2#KC]Ȣ^v]WM$~ ^FF;.+yv*ރBxA؟~jWBA\,)*}%-n Pc6O[_vi5e@w'DNLe!0)~p}hQr+mǛr&-C.?vhW6}RzԚ@zF@<vD\+VT8$>B# (=T?6ۖ?1)~>V"ÍH@&ܪs =4g\ִk͈(B~Q<5p?ЋYt J_iC#9\N53'9ýO*ơj'y̶!=5:0GϨ'\C?dK]vЃX <8%s)Xrx?h=Z)e:I!NbPq]w 4Vݸ=nz>Z>T,b|+[i4ݕJ4KH|#W:2{}1 INEzp|bNO=2ˋ=iK>:.li2,-X} aZXoٝˊ8ݚSIx*[^f+ʛݱh'&PidI# ̸x Ǘ*75"ImLo+ 3BM=<.F|^j-iU"Mj'ۋRUA0A#3ZQS+co&▙}rߞM$݊$>DX٤[ yM${aG(Cg|ALZ&^qW^s4vg &Tg8U$ Ň]>R:OYgpUa~#܁]^ $^ %uVkj铩4#aL1FэY$v.`q*..mT4]S/ ֜ڴwrǔجxK)Pkލʹ7' cz +ua |NYQQ_gV& ;^eeĞ;e(_ Hڀ )}M5|l WߦĮɢkdh+^(0GZNXNQ|K.=(TZMT$GJS?|W/'R/|#x1]Gk':xPU5so4\Jdt\vG~CUBmzpjv\Q;q.Lj0XzЎl'sǐ=1is&t[hkS"ޏejcLz3 gX0(D(um淍![^ri*ؑ02` >cl`M$t 'Ua7iYgvtj,< ?W:n }lp̌VLr9Q͙K-r2ƱlH *98e5߀v L΂܄dK (jc i'T(ge⌫ 6l>ќVwʐ(ż1 ݶ ~i!WS]22*i3Z[:tHl.;I*P}I mԏF׉tI/CwZR%HdPD#*-n%;N'i.0֍g jzR?CK!1pʛ$SBH{-A/F_lߞq-#Uc\Փ$_O*M3LZ\܌*{`U-mJE]k$©G92~>9]rҮ()vbS5 9N>XP2q__JICx󘴧ZM77ܓ-t%?JzWU42R+r1h6w94_6`n=lA }qtyv|u#"STtk4@ qVYά%K&$MTtx +79(hV$;J C&y &֢[a`RZs7;VDmH)el4MAGWR")u99\{E!hgt` D[bm$kAh:eWh.Gsq 0c5Pqm7iSLj|*bX ao=zj< S*Z"T5"@u9Rg${SRQ`V/" ڧ">pqi[5~TNUIbGz% o_cA.|ioY?f57/klO SVHZE}*^nV>LT֥;pTClp3"cx-FLlV[7 'who^sxoW)@δg) +S%޳(7@Vw/Sp$VR|;&*&o-$l 9i<&bz,%ʼnKBj6/^ኊ^Z6T܃kY;KSI#ȃ$lCÛLư:A(VzO= 1Nz:R!ɦD:~xuU]PmfPK-̽!n'[|iBc룢kQǟ'>+y[fڲM'1Sdaiq&T"-c6Bcz@%\,M{f/ }äȹs^6~ҸFSCpO װ:+B݀,v KAbpμ7Gz_G$cVׯ!A AݫqUE+cw)Y~릦oGTD~Cj^`Ak#{S'M֔", 0!QJ!E"b ;ZXz&#"@IX 0O?قA)dQ t⣣0ةsv(@nPoE'EYt>a#s!urHB. eIڌ-Q1]ֵ! ̾XJeͯlc欦ߘG036G^XX$kM+O$Eڽ '35-=njs|N餡@].hT*Ʌ`%l.x0Q#( ^/>mz^;wxPvI 9FtaQş~NieۡBQ |E跤!h'M ZsL_"i?jş+C$]:G1"%/*}+5GԾ@.Q]w BԀ >v,!?bNhɽnu =iRf'&cVl #?Q!kZn*]U8 ;6b<:M9|saʒ? ʵs,h&][e= W{Evge9ЉX۟ha_gh4%"wM'/+zinqYJz-bY uON JJ҈s ޟwBstiOx߲`frG-DM{'3ѹ C?iNɟHO*(4\X#./CS3|29̲{D5k6BQ _n:3z |5g \ _Jk+d(aFA\+חѴc2=#~Sw^.gw[rpwc.Oq(/(˃/n~xFCZU@eJ5S~Q#؆Y/(Kb~|$2pNcKW&М Al#|Rc{Ϙ r6ofCHTچc..gѵ}KanF*D"0ҷ.`>^'a-(xe`%$1{8]9m_%iBM0ۍ•1rfʜ|?B!lLR4^H2bCCAxH)vHW-} ]74)_ ߬5;)0yаSzԟYd`γ,/ofuH8tM5/I څJ=7,J&t<綼7(bee,ͶĽܤ>Hb p7HPD -IxXS% .+4$33k暌§({]ƈGf8GJI.$ +ic84XeԈ3}{&ڴUHʑo^w4IOqLH1FJҔVbKO,SK+zhsēT ܂=e;;{΁86B;\ăE(CbW@kj7Wj#{)s [#*I :Ri岪ǒɄpH2#h;bQYN//~nRJdc;Cg]$ 7:S f YM+ (-vn g!1JbH6q磱)/1cjq3e6JEmFΊ|xO8RQKGα1G詗Kc&:3Q3HZж=f@s)Ct`]$W!}H LhK]bk& HS|T9fΩ ]Dbauq-9}oX~&䧋yf7#M,< wJsgפ־|ZFV"Kl Q00'dɮwss3ȫ6帅$^7% wy ^z3".M*VR{ѫ:RiCđw]v슾-8 x 1&4U䙘Nx'=1)n ɦ6<}VjUSP?vXI+@ۈQ±fIf<-^  `wC: S7V0e7UG*Xd!ݾ=yݜgE#*U g-(W!}UbuئߏZ~DZ-3|ӛҍcma-6NIrKH۫o6ˌٗSaYy?!HAJ팕GYt=U$QѲc?lg=2 DP MǨXnǝ9@B_85>)K\ rj \RvovΣTu>Nj=*'bK=PZ\n/h "GԑAu&_.ciL ةT}e[>VNZFV\;bTJG t*bBث[boowjK-A,s J6;6vdxhth\BB]\0LK~/SvӯA/(`7螧rSa"^fD"Hc b p5 L u@/4jV)܈xVߝ nX>:\Cm':v%q&G?pQMIK绷0&]4Z ;:7@ƛ{*%ᤦyԜ`Q2`5R4/EXʳmY=I-C vIsKtvVKEr5@EKJ/p; -Fu}7UY qS"Sp҆B{pM!1l@>d=!Wf#\mS؀IQM9͝ep[׮zlu EVF"ړɃ$Wba10yHɴ:>٭V卬ޫC,e4 T 3KJgj CG)EcV'oS f_C%jD-o PDX3uoCǡ2{Y#WIR(5uMᎲ-B`̈́r5UR3cM%1PTynrbD=Ax>*@_]U^dfЋ\[({u!AT5[y'r:r'a9~¡1Z]fxSkfh$*8shӼ~Htަb+.[2W9Dc#Dubr-g)DL @[h8q0R phvl6})[М TruO yBP>˾v&`'pIV!p vѫ* HhavYW1:+|TS=9 {JfNa364E9 Ok}=/vZ࿲Tӎi 9Dżf-ƪVERwbQZ0_TY-eQjy?t~͓աJ6a - c"'5 5p 9e$t$h4lDb߫r& uK8LJT`fĭ?yɴo\c 0dF 7!7=A?d/L1,It.wIkf½&\ Pzaoaͻ~Qc- 3]Lem<&sNH7BM辻R.9."u+Dgw t^gb ÏڲрJ F<]M\if?p>::^;]ȋ5+=tǯn.Hǐ. Η2⺭'O#u!0. sa|ypr)(V=%dlYK'VxBME|cGC `9cPEX.nHudC-[qvyOXKK N3"Qk"cG_lvJu@~n%lrOi]-Y~E(&;NJhv1F6laN-:ہjgûlZzC*Ɛ쯄vN 31c,. {-=/cD90g!lSx=b`..2q]G4bТ)3k&Xm.с̌WM8`'* i&Ad9^Jl"]7a[Uk ͢-`2&-#uꕍgLZxa #Ȭ,ҪȥO Qae3rZ,i/bNɈ{oOπҠV&Oqᅣ*aDj\Wc28=Z3{XdLw`ZJԧ%I٥QŷI<OBNDaH;s_⟨|#1Y7CZ$0[@GlH\ _SJ%+i+lJHr*_G,Ʊ6OT4S;o*"45=gY"߁Z'4hoi0 y?oӬU.#g'iC<.p4hXpV}ldˌ^' Z5KRЖ/d jS-u vaKz x،_]"XD~ wWN'B5 1iL-,&yaEL;<K_-,3֞-./Ao N~F]#*Bϵ_UqLNdŘeӔQe_̰.H´s'#ީzbq^abeS?:-8'!k` iREJ*VoT$\P^.D 3r m+gfX5ʗjT؆Z,_} oa6tgpil0ڱ!W8Rn ѷKǤ֊ѧP0j"Ma_k^dd>%fHT\˛M} mU{rX%8/%ɢ6Z”_BjòREBtAd/h"[rwU3לFS@]٪ c =@TW|m4ƶ8X~ֻ4u}9}GAP-9{mz2,^EXPIHrwr\B@M$* C.ftlj#3O+xTx(eOx%s Zz? J@oYa3I$@0:~lVz*\S'1óAloyúal# zRV`A@բ{w%yVO&z~k3 xvX#'iuBt+#\^-8rfq^VgxZo-?>! t|Mh?f8c`| ɒ/VQWCqHd.Ȩ ۨ&+OV -yW::܎b4$Y֑U ZZ(k0;xOFʲr'%3CIhRC` O"R7曷RT{LEWcqn=Pύyې!=&vM0`Y!jۣ7%Z]f+X`nu+LTk@ėdB"͘F]Wծ-(݊2nHUkJA dپ26>WUׯeܜ8ͨ<8W?Ͷ=Ę<gl Sh p`b- D&NKzl2ގj 7{Z;/N r7[孝7ej:(QЏhb4@7MSWғ+Gvڄ[UƋAJ(F& Zyz2qCxS;1 ѪhyLdnˍZӡC+ZHh|VWi%rFxppP份GY 9l=%Bc`W-y\E4R|㢅o#O43ʠc&M'2n"h8~_k[`P eR _yP60~$<~F5bLoU;Wb3^z!ce1xj3edPHEQ;uXZƂj6,qy(n7M\Ql1SܖmYNcj: qHv-9{\isz;%~z/]QwgpV,O?gV8 ;o2@CNpP/_j7!],7jbs<.yH-bu@,^9 m'xKe]{b\J67&kq$_N:zM;eV>}9q,ۖfϜ83&nD[ ~!|'c8y(XJu6Gb;[>pKX,%FK5yu(`zDX*_,FaJ16#ӫ+!@WG nVoC~K3Xq XnY>u~{c^̽1Yf6(oAcJPda4)7aIGhߜ]=TwJcK-E 8PbEWs^X;GZ?k"Ċ+ɋR~~}dl\ՋBVkIJq%,slSVeaFda<'1ʀ ЍҒGqV/ @&SLFG,_h;ʔ0^s1*}O%Ib˝A [JQכsRl%Uv} xL2zm{7}ɶDEjt {iZĶ9b7o=N g7Ԓ_/P-dĔ&҆Uن22^}<Ӕ$6+Jʝnn ߉ZEmڤT)v)BorJm'ZfsU7q>sa'ay=^kWa\N+6 !l<RbH=݊C&rx:d5( }UŢH"֔sC- /N&宼_T]%`_Mɗ)v|~l$G>zcs#zHQTN/V7kKe_7IQX(  3vce|v bXH2PHϲbQб&H@j)yl c]ȉ?hnPEY¹\H n3+ꘉP`sЃy#^2|HWg)-]ݻ,E]\92-.]㝻Eval}kݑ-\ۇ#)A- Kr}cy wE11X 6ھpSA(I } a7ͭ!Of2hu ty8x:+h1UW4G$9il#2ԐTbd [ŵՊ禕/KOҋhPa}ZG#鈽ݓU4}6y|Ga6:HPZfw[.C^f'f?HdI$Y[~ĥ,ͫO R'#n~A.W0'%~0QcZ˦ wd\ ]'|t_a2IU An}簉t (\MeU(:4 _T )~*Jz@h栾E9'ʁsE 8C[ fOtZZW4T]ha7I'/y#=G ?.8l/+4pCwŇQ7y <|(E" C=81<ަNA*_V'z\sMhLȦr0ˣblhPr$-H$a ɂ_ b.1e4h!& GSrn9)N {6YN&aG>*" 9`F_r5|kIW$X]ϊ;.ߌ#ni46u6&#[{T$Xa)ӍoX3)xЧ~w?sOt-1@)o@Kj"0_q*P[&C$Z9}ϲ3w!&W:w5"cJ` |l2)7k$3֡)K…IME4|^2w[qA/ݪlimH$HA&mse?˨>вMcrDTgN)!9aZ=\j D| [ƼKG.p.LM!Jn-D . Tp%㬛f8,CsPr?Dd=;~Ԧc0|UѿtY9qd~Fp5,i6)qJ䡤;GB"V2pH>vVg$L=gb$KsT 1ZE!UיvgVuO`\-4q sUպ?Ȧ\xYYͲ.IaEH@L5l_7>CKk`.*.g<|dM6+bM6cZ `PFGo\=e &"OXh?E8Lknw,`7W= ~@(6>xb>OӞp`-OiPƻ`;1(Iʸmg(8n+*JEdtN_, :0(iƴw(D%)Z t|+NR)O;tXk緊cD p.d'إ . mg0ƀlrTWTu0B}V>oA .J^JL{lvY;|Yvd+#grCoN51F]6fP@XOވ 鿬>K:Q)[IHju*{"rŅ-ps8jȼ5RJ!5^( |!y^jBdIlݕː?L0]GhJteFO zwoj )#~6Yvc.p-܏YiS]abn{} A=҈C MJ+Pߎ q+>/Ŝnq3~/@g4 =IouƄS&â A1tnNPjaJo~. 󍏝x o)a4 `]\*Pr2ܲ ;֋HJ/k6I04B=5%南Ps6Vn `o~Lvsӳ?"5v@ 9ݣ9kȡ,"8n#Zw 顩@/lh MȲ7 (Y-mD" Q 0j{ 0>Wu yiSU[Az[h_K=]I7|j/ +5D+ڲ0ݦVSaV\†dGU~":HnB#Ic}62  JDNPH|ͽ7GM8^PR4]Zf' :g.X_M$t{'i,Ho'.Ӹ hУ=Kl 5|_h0x)낣,'/zJl9ʜ?PuN w \>|"MDXwwLv{N%yWBLZO3.k`1bGR2W\ AJJ&::e̋D'ofG0B\@(<f/_g)]&To(@J[[V m;zjƍJOB [,}&?74Ҍz N Rki3UX5` w97^GO"bЙ3j'.X,rrT Z2~kh@,C]b$nbKCGT ,$l`hfNa(:mqx8;0abM7 K5{˫M^Y0Yo ̩,1R S1?[ h_@#^ْK)kK?bnpV% V#*)k7qd؇V#.' f\QAP%E|I6%-3S1=$,J.W_׍Cv{ mZl!9ttk:?{>ȄPp8=kD4b7)V>GZ!(D]K5.i'$6KҢ^Y KF?$'sI4W;gebTة*YU>Ab5p{)?AݰAͮA/#rLr]ҵ Ԟ'AWxَ/v}_G֏\}p3IeX \!.e{A6@?nHwb`y wCoֆ@ZT8H٬~NUڥްԭTCŇ}kIiU ]"0&8=Np",]qHgQņ)+M5ƅh$VUsj5Y#L\؎)eMz2&hnGƭ0w#;㖕xA`Y jbr:vwrTW0z%j yv~yl8ZCԆN&Τ!G~(3<[>-ӄ/?/>=lpΪ hj[mkS Y*zp.֟7W hy0#/tn$ovʛWJ@սFb `x/Oex3I(21l4ܜKV,瑛6Yje%Tq$tb }!,L`f ~'Ę~ sfXUݛU=Km5LwffY)#t߭Fw`Ր'CS oA7qērG8ACdžQ$7Պz+ԠڨgmUoxd=45A%p '+a/TkԀuWc]z9ӝ!&dhS{L\b0KʵXcJ=H0 o McdpHbUoXA$ɚaAV/n$9=XN˪M 6یYh%NS+0LQ:kpj(W RX\8՚_YU|EY OC2+lKhK}C},HuD[:id3=N MR˒yӢ=!@hdмR&YS%rm+wCtͲm򨖚7"l|FZ9L_ 8ț]Srdζa9L~1Ɂ{eJ .oGg4(RvXHV.-˂iV^BZ _~]Gm!]nե|YZiQҏp,jvKɸ XyIC֣gzxڿ߉=ZHlj&(-X0x /KmKͤ~53F/x[>E`A9ngɺ03ԭ؎7j('->V'GP~IE )1+B=(j=fօINC6[~lq{uxJ}SA*':&tlsz=7R_m%4.C= EV5[kA0F‘uFYDMJGH* Olg2we?T{~=U7IirwE wh ҃O9g%9)Q&vHJݸ>wUܗժ6ㇻ8$T貳+>ۄEިgd9JS"Ԭ:IKeMlO;D7iqn,+os: teL {mvE! :q(pƗ\o*7Pd} ԅ*{'RdN!}zSTO Tr0q)^DLf/#(stEF"AkW7ƾ *+I(^N1Q{hCwMi*$(1>, 0,Yv810؁Az K 6dovBcL1uvCҍ5͟O]&tQo8!W̓]wP5Ƨж-l3F^vd3Q\R/@ g@r69ѩRqCOSQ]vw?]|-9)7/N^>|)E< d_(<$NƠڮmvi$;2Ap4zokh{I{O:WOwY3ؠJty6CRZǷ%E(# O~tzTL Gg~U,V@݁e߮?'uV!XR|XݚY9$px i%To૨`^#As|{dzB^h eo^e&(ßOݬUd%=\Lj|V޺"Y2"o(o!IpJ@d^J|etXfb@'qHa0D#q PSwF[!Y vD}ݩ]>iё?NǙ +ΌHW?Q@=|㬛C|߅V~e΄ :?%Wg x\? 1A| USrr4?7_/[bn,\E#sD9Mc긖TkhF0`mm[#/9Dg87[-\t;*+Ewlhg= On ]y\7{|c>*=3zwV.J3ݠ!g4T}_`Nm%d^ߤ@{x(;|{(iueB)P(5_,WmG 譱Uxo9?|cRI`3iD?yQTxyʶE &fbh]]H nj팔w!-)KtC/$qᬌ͕RsMuJ$M;$66`Q&҄dt"B*Ʀ%Ш53H.)j/IfQG0޽~ ۊ/DlkHHkM v,6h(ۣ%ejZޣg.?zZ O-$cse_iCpHag^ VinH_3qO"dyN-:DAQiIw>~y»C\-^L!_m.߇R`6K|)Kt|?d\iW^Qlֻrh0[ܡMyjS`fܞB9Fŝn˰eMQ$͜p8xrJ7'Sf;L$' |=7x8w5ORH;,kh.eSг?Z#DBsF4$f?~A9ܴn\ǭ3^ h2#HotA0 *+DF@>qq{ю_Tj4-Pf?ї8=Eg׉z+!*p^YܓeFoH1dU||xfjrᡞa[ 7}uG`[atrZc^Z(Aɺ3%va+PBX*x/2dSMX e|2Aivb0 Ey_}Y \R *`+ *-CTNi}pq;n歇j P}3bV(9)NIB)20 39,H\ɢâ$}b2Eb^Ow3i"0eU̯.|(b8). Rl$x|P*Zg7,jwTV9XsB흝<&IPexTLّ߱ )<:? [O72yi(&z1ew]=x\Ү_b'3"ʡrW .8 fs,A:u+^6)l=y }Y;'tTfEPnTU |mqFP(֐I'pk O=7I];Ur~uqBcƜ@|u\e+Te2`*Nn4{k4y5*f/h}`-7fiº ? 3ŠvDÞ]r= @`ύ3qpz>MXE*N"hp_ePn#^EZQ%mjuq]1,hr73C4|Rf^ƙĩo}[-RiHѠt$NءLRP%oI`7#Խ:XӇ-#])Va\4,̂܅, fH$V[8%{aUꆦݟc~XVĬ11J,zXVQ8 38?n! Ƙx o&%M?X[~0VPwh%U-@ ypDyp=ysZ[sW0 b @'i GV<ՑY^;SQI">]Fծ'! גucnkKN }3c/[ȧ$<*R%8}uxHAa^&S*tq.;+ D9΄/_icuɯhJ=ק(&8\ZV|3U~^WqyMe`s?J\SuIi)cW|_)WȠɘI}(ړ};BUjS][>˒xr207F͠K)˚ fҥK9Q|[{2/ 3.7䞥MCuΊ} ^ΩS;ΙԬ[b0tk`v:<` Qc^r'R"X8o!-"qBt G[=9\ ~>6Ȭx7m" ''W٫Z$E%0}Kv'nFw.lHu:!],Ktl@p) x,aJHiN`;D\E̬(CNE)-d|~Sv }[\DƮ9Xnvj &Gم~.[ǑrS(B 3Jx#  Vdd4mX KY8D#!'&k,n? 17`zNSU&^V'S8ךC^1 ;8pS5x,qu6Ɉk!/.[+#8^D?=2DZ nwseu^M\+"J+V6A!)O%mp+m.l.bA@gk*@]aAA*o ӕqL j+}VeSBjqzVlXS_$IfN{=oB/ B (5δM('8ØXH _8{^Q7uY/KLI+YɃo?=ҍd#'}0i䩭ׁ\Þ̶-p"8J(hʆݪBӢRvC%F-iO%q[}9gS/D_F\3+Z^~-P)kJ)n~t_PA2q1^-&暹 vkB΄;g+kOMUĹ4hRl[ɵ T6}; `$]鰭938T5jPL3DT01ۥp!%5!4\41w Q^!Aٻue[%2e*:6 b#a33I::TbΒ_jiYV =?4Ӟq*Q(8@m)rj&ɻ SȸB3JXZjCEG8Z/āA"Û<:X܀w?% ug[x%H4o4;uV<g?!X4$Niʨ-S?oq_ᖶqʄF( t}~5?dpGM7 0Uӆm ziQ&Bo%q1tV]sMg2g F|1S U>K; ^mBC)e븿 eE=+P=~,L7騺:Xa! 8\ykJ7F 1Bv\I1C}<%Ak~;5~. JÌ'6nU'/_94 Illm[+x.\B5IiGj|GvSMca;GrslųȤdLD1)བྷw*+Wa*H1=޷MtNWu%Y9$psV1 րnYJ|6zrϞ9#ʔGS#_A=Si3;H $箭3aL;Y(#򜒄NYa3<اsQa-2VsI﬍ׁׄZ}˨*ilG} 7:^ʱeDf8֚bϝ ܍+i #gwԘtd7qE)g^4"&7eee"օȏ͏=lRVA=_-ju!GMyب ot`x C jWm\[L}ECvo _ԑ͆s=JNO1'f`ݔpS&Yc1ssXWBQBژio'7v0]WZhCڹ tvnbeM\-D=|yJZA!R!x[TEC0! y'Mi^!TS+2t2dv{F,o=ւ[KF +u8#OS9- WALD8X@_6I~X,3 rZ\ȏ+? ?C9YZ] rTܰEԞ6)=^>hN0Є&?_/^Z+^aPEA wر4险:!dya= _C0PUg(*E05jc"9uŝ3B ٥HMPk[饑pm"nnH$Ok OGnbk~Ǩʆ9"q2 rmQ9ϰOYl [BJ,=@ㄧܸ0Wj6_%6ʬ<y3n9XJ2!K$eB 9լcz50~J|2& I0xlyKsT}ѲAYѨ!/ ML}ډBkvW9w ZO» [ S0yn{~)o{ CGKc9B0/ 4F $kk ɟ9#qR ߛeT̸=z]5jRDM X- a /?1=)ָ]3N0ҦRi=I@ aFjA{SNhm3`Fp] =: f#]? KZqQn3m:} vwV`pr=p(̽jFgڍH=.5"$&eRC/1 > :=Z \o-NnҍtDЌ}u-B@I/I+߶J匱,U-~~(\3Rg?G+ČswIр79ϥ:^4]ښəaslH&MkHTqg+b#ԊXRJ~ޣ4uxP%Q+m1{8 -lP\4Krq%2L<棚V.TBj$34zDjLɊ{ [dI>+|j[/vIO[O5||>ab&3`:x?[eH?Gŷ.XIB[TfBЋ@}'L A=IT길XZwzau NfVDC^LO@>$nV^\kW ]lp"*[Q~1%(*G AOz3 ܖ|1_|#&\PLNw/϶Uv'(x͋ԓ| ^R#^sw[h[ލC426ьsd6A1ڔM'Iv͢1JT7 Y !RD tO6uED {j Wݜ[ [wP6鷌 f `Ҹ$KZ.5v2{6y( D˓ 037scyޣ+plJ:ʗ;4G\h6FѿA|Hƅ&䓯,80 ^pkL$3vs7}/x(?d5KO*r<5"B\" 䶏DRO-vJtU\sn1!dzۦ;|vbO{kuvI2(`0$i cAKg{N%.ĶX5Toʪ ?@^R[{Oja,7ؘ8IfX#՝9#w6'!MG:/u| gT7ڀ )0W2vGb KfK%1C;4t_j{9fT Ɣ`Std{2-snZ/ljHYWxaϙ LB{889ތbzAHQ4SQ"ŇTk쭰uH R}껴EB3K! 9(DAA'^Y\.F˂3C ;6CSo=9ۑ{L_| #JF-1c`|E$jď$20BK?4=4MSeCڇU_ݐ\E#Aĭ];g `S"jw"1Wɺk36aRgml ?ըlr.OX!zfQ5ڏ,R!,ЃJlfDR;|Eע1≋ (oT.yӢB&YEL9IXjtw)lKo`_؄W&$}v_vTJ|lM=LғC>\d+ժrtaSqLb#BM?; ?AW]78vKm( ۃew$oK(  Uj M`FnS^7nuܬUJ_ ƾ.3͉s_is(37a?ԅ6cׄ#3?b B||l_0<9[g㠕Uy16UL[mI-dZto',v`3ťݰ..gI-V1U?5Z`f,g>ls{ve߾?(ӭ,v fa՛f q)8`+>@7)aT w? yPbs+CpYT%\^c_^X54z*Wś1s:&?cFgozMD2ux/CxāH]!30k{=c1R9J;ӳ7=t[Ѝ?Xy0? {HW} 7^cꤩ F֗.q#n#XZ<0He*Iu\&)Hj-GV5SX= S_ )֯U*:S)UrQJjM)j6?/Fc%"ި&8S:z5XǗ}2[2;낷k O0F[ t&?XIűK?;{%bP(8iO #w ®~4q h[] yPQ9:تgJYCA/p}ϭ[iv.Ϋ=X+͹_XCX,J%}&v B?3рZԖo S ; GݛLqΨ]yA;VLu*Cv~}nnq$яhpDz[3VX 9C9Eփ\{Dx{6>ŸߖFQ!zvzZZRg!TbO>|bԔ:E *uv^84ԭǥm~"Lj_2+ xaXmw^jʹ4 #q,e:|v>88"&E iO/ $KÃ>q;! *;&rXӃ:SJl{ rhԉzG%?#Kڭg !N[5M }f|nM4ܭ2hUܼ`M HKGs.%͵Q<3@n\?##-Redy~' #6(Rwo5fBb/|~h:5iuEsGNϼ$B&pcPV7K>)-Iu m7/VVJ"]ϗFCvXZ <^_L> IwPۨg O@%9Q # -u4 ՟k''rj™fyppXTY)@F$ؽ3w ˶2ݨWTOZmU;]кCdTÊo2L9!=ޱH[ I0-LF~bzQJ" ҹYUZUɤTVGL~{i?Hľaw!'8WtmuVs끃"0M)RZpQ)F hü!|'0n1"N=԰s)#V*0c*O s܆%wӛQѬW~EOp'J3>0zod!Z)0Vy sTXsyw$LV1g%: ":6}nm\Eo '%܁WmDҕ0WBƨq7ӥE]ZlJ98Lfj_H8p ,f9*~uK۶W|mG fHŁ*}T8U2L !UilP}Z$FYYl>mO%SGNZhW+=av(&y\33(8_f6ҤK5r!C,|kP8l>njK<"b~=tO$93XgrLXiI0"WݛOo7fJ7هc=FUWΓKys@#*PAI<\S/Dm#\j3#1Om.!aU"N<ڐ5V ȇրY2#9tϖ@\(A->"6nriLâý2X)dLbtTo~%7ei\U6[I ؼ)u\:m4a!h>@vПpf?|af5®;=j-dնa6Ԯ\G WO ʀإA<ŷ:hs{Bb=NT8FP~/&c`b=ǰ5LOd̏wσ6@lU7VhaHz;fܕ=[؝EDXI ;ꮥ}IYf+/pI_`uQ%SP/arqjHM6~DZ9Q/UtGri*'kl1uw*+7zLife]d]gna+nRbQG^`nv! 21z^l0":1.5srS![L;φC QAإG,a':3 TV:i}btP(,XO4:~bDܩv&q .r]Ϯ<$;(M@|gVE!~(]4v fNE8[jn(bCv.lbϴpCo$lA-.`Glp±Qbsil!6zE4Ϥ2>`f(h4ig"89"w5 q6KH+ˎϐ*S&LV\?كx(Ik- HF am_ZJ n 4A_T#Su`ܨ`@Z4XA5;Ys6J*ύKpm Eӊd5xq81w,cT6m" ] g󯌂ϧ1Y˵(:< 5bE5Wת+n´baZHkL tvUi[2Pi=7v &-Q(L6q؛Cx+|$,:F.񲖸憘~LzY@Pc#F/xgp DklU5wsϖĖꠑRzxb {ȕPz]P^$%Yo:9MR6\c7sY.QBjѡ(B]+Qo7lW }uŮ1ô EqKI'+08*"%D}G@iCF(]%}c+YziTb3pX7~'^0jcߝ(6 .t4Lqá>=sgWA/Q42E-< Qo|h sDԭSYNJ~e >d4iŞ}XԶ$6$^♞/\щs0jtYA&0|6ZU ({)#꨺ذ sJA\Z,z8Y]1n_+b4'5$56w}xI._0FC[4Zd`X,}&hC\1x %Ub$Fmyž#6Ϩbxx[:Cc$X 44ZɶLūֶf|6FT|5 Zr2֤r/Up3pf?B>GK'6mVD!bLw ڲwj$yNU7%(1n1._`OouIA1I۸ѩ/'4Lyp/0o@l_r_4{DzpG_aga5Ę>c^s""eb E_G`KDJzra6"0."!#BɅ-CS G&w^7NEh /C'W8[>}ozu0i/H>,+؅zP)K-љ0E cXgFflٳIOܫnBBc.ci6}һb4UTUmUqȮSώo*cBXlK\;ˆJdH=LX| d>4ۮ OU X}(r?484- JCQzoUpU^j43`eM,vh#R'CAq`ЀC44@I(\'O;1kN]Uxxު/,x NUcϷȨ_7 @0eQ%Pg,8E84e?S`?SnIzX~lY*gKvXvoQ|qTMZc&`da(iп ?n"Pr~#]ji o԰tlDu_('cP4K%L,Q1kb qyoEDVEXC D7gٓnȶ3.QK5(2.6^5YvăwnXMMuȐz'(5p'%B@PVoD̳7Ȟ0F9f.2IGCi]kN>5پiJAEt)ORw]-@C6Cz XqZz&ՏMA|8`Bg kF1 Yxv4PG!)``hO eI*{6Gĕ8RJ'b&6r/j{F!CF wcwW$:|+4!]VOח~0c@#g >LrB@i)Wۖ t1rcV@xUd c2`QCy6=X(nyXkDGw'Ǐm(go qʔs 9>ث_K8}x=_#dزYm#@o֭b#j\kր +?N^$tW 4s(c{ em4cu}2S`q=3|UQ%zi 0*jFYiiE,WuP0-Ԡi$oD6OhEX+*D Y`DžW- D,1UA|܃be쬕WVڴy-Mrp:/G%\_!9>ٕ^"/8G66K6j -z&aX yY Ǝ J3dCphzekPڻ6ylMK1(cxA=ZO?/]`K),Pzb'?LC.d=Ȕ|+uIvqQ00- z_ׇiFgM)d(@ccu:]?"vzsqfJ)epЭ6%|X Aak+KxJ)n)χc:H' JupCeR;g]Oِ*B?6BB C_Rs%?rXLXC" vT%XM r0M6& q=zVI +wSrmbLUkc讋$F@AZmMx%֍H{W%/D8vr_ax-\2vh2҃~ﳻ+hC= 2ks(o?#q.iN t+_A:y ͆w/c;e)~ - |-Oc(ʹa@Bio] *o-~L?*O?k)U7JLZe ,ZyPbzB}T_we:}q[dp :@Eb PB#~®Ej+Mvr L c:LͰP?uBE'Э)'X#]?,:a@`sg.ʗwy 2 l 53ԉ xNI"0Ї ]ߠ̏CpJ;=-vfC8HMd'1Z< Wj$ŏDȸW ׭ `Oɓ^ڲ*L L":7c S {s^@=GD{BP1/((G34yw>:cd7]UK Fd)!5C>  Yl$phY{ ]}gƀ ʜg$>3vCKDâJYԦFXkMފpU'aoma8T~HCL#|&9[-WrEt ^n퀦E7#7bdgeRkÒD^[+x\6:Lbw5yhS۾/E$|!pІNYH"s=9=XA9du; 9]nx0&{PnW!oxavW# η{Lkr-(F7f!EݣAxȸmcB2\v2cz1 5!V!I&mS.PltN PG"M0?\-vIM_3] }Xț`o d6 1olxKq&jH[Q(&MorwʂShbs: wۖ}Qpkr_ZR>_/T am *9 L]P]É0IsPGwFIP:}`…"-ŞZ {΋2M: ^ig,iX=kH$zYU z|~rws`C?H6(Vx9JY=˂c)U(*$CO(gGm:WH+Gf|uZJ$G8]Xg[늻kŦ?KҸ%'֖j鰭x\ YVS, 524R~<1 B)0Fx&>7Xgnwb*Q ]NQu I:1?G~F# ɔl[2_#[v7ږ;@;ƩDaɐIne1Y>Qa%1PVTb 86I#6]KCJ&$ <"Si9Wuݕ!ՏUDvhg4.P @EY媪p,;(p/JQ|:>T9@y ]IojЉ{q}F&ޭ&פ'B8L{E pp͎5zПBkl"NX>NׂyS.w44VBiWm݃s.ruOݛլct#◛B^ ޾evT{K̥"V;㕂۹p bI &QOԈ4oVIᷰHfr=|1&rZFhiU)oX+.z9̓GRxxf{pVrNY)$eZOIlJY^tɅP/wA kGoXH=xO~9Cӓqe‰tB/bOD+P*QM@' ˱رzj{E-s1FV\m'=?*7@r@=h`4p[ćco9O:R]!U\8AԩR3ˏA z@~x:{]Y6rDEG8vrW._ߒb䥡`FI̜ e2ԉtQmT_IjI;1/imM^!USH! pzTQ1 | J\ S.ޮ5,;jT;\m+l r 0LdIuyAkoHɲӸTkdʖ}ٱ-</=;kgH FI7ӟbCR's^e 彺…#9擕hQ+F%iw(½h A$Cb;:]2t?@?rZ4ڎS+'I݁d@F˟TE57wQ~wG eahA=H>q jJCibӥYrzHT3?u<ԍ$`!\_󫬼1ӏ2'Ksj*)Lr . PܡPknQd:1#>8v 9FR2ƼNWjx&*`ձL}d^KC1М9N3 L=;}Lq,Wt Ú孅WV!G'K$I+,^[UysS:ꀗ o1]$r a7%Q|њB}2L3fU?cˆf22O0%,X)"Do+ 햰`b²P5ܤ?J3V  K§3R#=C y|,*Q(قh1:Ëv`Umg6hWjOcA϶k!C ڐmoF6P0u{x4AlgXDnG,@5M E|Cꭦm40 M6 kc!QC|T`ah g{Dq֫iꄆs 3n [EW=qumKȪ#$լR%cI37cT_ʷ)x:5%< F[*b2٬9jb0@Du !A N\_@Ŷi2**/xdC^=뿀05 Èa%s~Gbid=>Q- !M+){Y^5D<>pBY#$7xxNޓt(U<_egWV#'$]7u{(s]WFn$IL-dwToH.v+ ,FZY1o4/Tܳ &țxӍ7GemjZ|O]ϑ}>&ElhAFUSE J#S*yʣ}_9r3LO|=0 Ȯ!rS%dqomd;FgV~[͓ش 6!nt7I-*xAꗗ@mM $z :\-+@*ɾ5a̻ \SWVn"R-CE3dXr+@3 0(HN%۝ߕ 2$B=2}aM?e\PZQVsS"5n82B (9xKgEPZN m$_l4]oֿsĿ4V'8/r ZÁ:yU!}άQ}8uvQ.\xfZlꓢwda$O6 bBE {GN=&{ g\+B*(H =7Sc'`,Z74X\ªTu y[p4 lCTqwAk?7Ll>M%N Ux`=0']%FNU[ #sϽi~׮ =ƺo 4M7| H=(ڊ1JE .A?)**rN SA+@N+@iBKѤ_llD˜"=pAF(!V'1E@̔E;+0yqQJ it %y9[@uxL Q ܜԉ- ړ!GdeLJޮ 8 𮷸-Lʓlt 7x}pn TJʦo5@X(3}zM`a $w2q+[`7 tK7dWhbe.NmVF'$ܛɤ h,.BduZ\aKA,)Poʷ/دP\"ݡvWǾՁ0^g džh J&o_{v4rcey5m_oo-XHH/ߍZFHw놡]}+2 k&̭ ME$9{1*/AI Fi.p"IBDCc I[j[z`<]Iu_g*r.* ƖOAAjA?E/gRMl6xqi f ؎bU{FLPO2@W$6+HEۂuE62]rm!#7@7pF 4[>%LږeڮdD׆h8vZNI]VIcƧ5ƣE]u:_t\Ƙ?{*b~n ZٜQ^(7'Z,m>{!0u]A+ n)@/i#D1 nd#ey&Q<]LߘXr6ŽXz-LH~=!& T9 C3i}#]򎵐 עTYɅ4*i bQ pQ]|\Ba῔JMoF8 ``|:"/ryV$pwr'q.Yو ;7RhW=z˛\Y.@*G X$&'d30D@+fy!tCozW/ھz&wM:M+#!2 g;b7.re2*dԔ# 43| BCZVo2`ɕs2ۚHOlዎWF)-.`|&6ݶ\~[tH! >qd"<~(F3Սl2~7R !ʒnw^v"0oP+mHs>"Kmkޮ&y }63%|"jU jjmT+JIequ%H^5=>#ZG".ҹnPU& <|8Y3!*T4Uuj Ľ*e:@?M?11egH+|,;*b!S<pEiσx鍙@J#VЈg~⢅%^=KFWrY]u]հ{gM}gB*Yi ]M_|z FU'7}z$<„8M7_>%]XH ڱBz7)].E%3!BaZFeVꁍ޹?`?GH<>|Q8kSF6;a(7 te^L N X2& OWoR Noz֚vuC,_jKMbx$E,vC1F͖cthhMwqmkK*ENoꡎ1W @^j#ei9v,oT?h)>ބ3XE2Ikuf&dѯ-Tճ ~5.vE +>ŗq_ׄD-F1C1q dhzL*]꼤\pwm{J}Jݪ1e)˩!}eNg6?.hs%'18ZDT͚ \Zџwu8 ]Q}n8qөU:gHDn?`]%>еؒܮ ϊ&`yHF)`m*z2"o"IZChI0RK[D iJ}Kğ=LQzu6g/e>8^˝oSpe+!OZ%R;mt'+>ZؓI{[b3N5k ߷&z|;6<̴$S8BP䝀/d)O_H?-í&!0u˛ gSxbb8,(;T~e?ٓ{j;lIF}1*7~{ m Y=v u)gq(\$wd~~Í]4#0 W` h'HS|:-뀚Q#^P E~dt[%[WKvlyh#2od 2:U$iYa'xx5dqX ȩU pd!O,Y>$i\rDT3GA6[siayƣ<2quIS'';U]AN>/kl T?*0~5 [I18,eC}O ){!V'DV5[C ՈSwh1äUg=c&vGË~A_wBuyU"Br(jzF4u1U`_Nהgإi9ibO=3U*y!:u9C:Cm7.:kwLKª >w.Y+&pUCO qɽZW3m'FhRm{mt o(>۲eOMl̫ۼM_c u*#1ϓ_(دch_ u8~ad@)6u-4t(ۭ\w[N¡ g4~jv?m) 1Q `Bi(I$?dIy? (Ϳ۠QOq)6L&]x©dS(Tk,? 9+69 S:rZ@ߙ[vQ&^"$uG zr(gXe%tLǒʛڶ.*uD]Fn>56mn!,1=WU?JQJJϾ֤9)9$= &>.ZN[]-Obְ:VV@4ϨQkyF+grߴ;8Zqr\+!J5oh6]O!vSY, ,֋zS84dl(eXxȘ|jܒ &v m^ "G%Le*K(x.R.5R/Ծ;gfnl`ֆ>~6)c`v~Ϥ.>X kpl0mGjx3J#γP¾Bl_ل**M e6 F;WAd2MdLK95^NJK@5E71ة7Z鸩 \^ODD?A1"-_8;ݘɋۙRj1O7ujh+o|^vr:TWN;|| mc$6 7ݙ"73.ճ}Xr SKWcUDXϕɛp+GE@9vƫD5R 2Pw3l-35U]/ObVbâ[옾=Q:Uu^dwORlQF;j6ét*D}ڥe;8qvg܅I-tI j eȵ6KÛ=b-LNT-1I}O* c 7Q}Mጘ !l'C'GF,qfrN_"[;KjHH_SrҔypU_YMx8>a~/йjH`l" I!g}VnAÀ"Bp]#i ៤&EAo|&aܾl* x\{sgr ~%\CGbԵC]=\![w\|aͱ~pd^tF/}mk@W%(^\iԩ_یwdE,-bvSKї70UEal܌ oA1ӡU:Jg/ԯWB|K|oXc1<ԹڻQzH,bN/ؼ~[?`f@Z;xQC^K! k%LY]&[L {ɘvhoDv]ծ)5lv0Hո. TQWJyWU`θ.nGsjzivyGjW!0:( Jw q\%##dm 5rfLUEᆀ2!4jkgۥPp7:!C e(D~ײJ&jL*׍$ 3i;[N;MdZ&؛x'jy4s,}4f^44'4h Z XK&(10Bd@z/5$v1ؙ̰ @ "nPi DSfOFDz+$huHe0˟?4\!.Owqg9O n&~߱.v1]$6qlU|3PrM^os_nmWI]a8=U'?ZTDSi\rttx ȯhՐCPQr|QHB\#xQg7U@/2 ̠Gc@I|7U\M77֘T2TaG6/Zg`g^,FBᶫ6O=)sP٥Oěr \רwUtDPƒ<y 1[ۀ`G 6 3d MƤ;5ĕɬfߤ2{JSiyDnYjJ V}km%BG,g$V8<ȱ,+ZFCA`Gz ݔdr᩠P ;!QYK9oe쁺eaQp6ѹ\E?PS:gǼ\7OTΠbҵM_[+|z#^%MS11%NRxH >W8!'X ((,me \goJtͣWM|Zh! -4֔+اyc#w}e31,X7̀P`KʩtRyݦ6+'NL|k)C~x搭7ysʉgDC'w@   ,]2Fb K3Dn^}П(O4-ΓzM🴵O!j6hG˲jGVG}jF@{xE Û5LK3S0ŵֱ]c?eG97?цòpE7AwCN*akQ&.TgV^6`zCK+jjWQ}+ulVL 0 ͢nXbUshڲoPPpK߇<# X 1%\2zI+1!bI !=;u,oB\jFgxÔ<״/2$ZU爟i?֙D Ll/vMFyk[W(K/>v>0Ytj|<\X1AпKba]v_~u3ٵrM\̘4GeZ(\p*@AqpfAdB-hhekqHmCȱIK{vp]XJ^]רRf lA"@1J"$VMv''X$&2U|Єmmh\}S s_-QIjgb)N9(H&>e~L*6C%m<ߔkxL,4E3SscӸVrj8})kp9y3`.`gP5aWo5@)KJ1-}/جi: ay1|ԈgVVL  zdYoLJ쪻&Z]:y+NhY_ϝk~}ÃG>:JظQO.&ϘXx `kGh 'I#T\6c9 4 Wf#\$S0_7Gpn;e623=[UcifT9+d;BoG.ܲޡ?{A Ry*;ڞ*/&@X]([_OSrB6}u~-VIF>&%-5lpB).':$i|=!ug=Pj 9 Jb0V>$B !@пH痏Dz=&u }4Wǵ")UpuutYta=L & SE/͓RBTECЌ{.[) (3r"(OtwV{^ 95XP%K FI60@nלƽe0궼!tW|dcڥ ""eX[F1u 'ab{XC@d:5W KduM;t/m^`ga@I2']v;7V!nϩ)K]˹gM/3zz4oť 4N{Nb<>N.VzQ8q͵H/xf%Tn0 X?A]a[ZdZ4\$\y`θۄHF;hR[\s ƅ\b >b9|<+R=!Ijj_u}Ƹa> wndzP*~a;nμsV爊.KFW }jrÞ ~&wgݓtNw&NwG+xBn`Ձau4pLUs>#f;.'.Tg;}v[6844 /MbfXq!gk#C&B5j&2NT\=C$Fkb3i6Ȑ%+M,cr_9ґcD}ɕMOVvn*םºTȐE5M7͝,XJ0'|K0)GG?ZQ` p>_H"TZbʲ'.  l "}umd$Td%]YH! ftS]NP`[MB$߁n> uNdS+N?@V)8!箟*ҴH,h,n֢DAeqMՇ~HzlR.[xeNj9%\ s(Ϋq#|~-ds)7V@Kd?+Y;!g%_+TH^fujQOՐjY!\_oxA9!篌 ΗɅő[ 'o$rMWgpeB'--}lNķ7ȏ m$.vE ԃy')R6:Axk(adoߠRÑc"]$TV`B@b嵽:rBs㞏W `*KҳU,rO9DwU@ZӽPhxInAضCp OQGZԡyb"k\o/y|C2q€?3mS[ٹ=Oq;)wEg?ZeIw)Hšaaq=샠iEb&(S?SNGP.Ȭpš閙b .jM_JP<+.dCHb`;JIn:T(7q} H)*H`Ĕ <6%1`SK˼ Nd/*3(*ShnrCxi6:hcŹK)iyQ=8s 5t<MH]B>"1&Jl5Uv|qh8׉d0}kXj;nޢny^} ׷sz!"zE`ެOװs,.Tp;!"(Mp[ L5[< ?.5ܝr`(Vp/ٱ\S|: Л \rL{Pψu j-RrKE4rr"ꪽڕӑdX !&&oho-TZPgu¨$lS>epB Z n2b8@hgIe٨b+N } y|8Ŋ{s>T%m/ay"<|AvtӻVB9YMj D/_{lr2dyGmi\G4URCAUq=@B/{UcOnB(j77@C8۫oFdigFp:[wG3t#RD8GIf ji|a >5J?y/X t7^>I?s,QcOIlWP. zӟxH$ ^Nj 9)I 066KᠨKws)A%#'OXܪW=Qaā~/#Cʶzw-\U*Q R/tլrL{ZBIwņaF= }:GM򵼘s8AIRE|Tvtq0(l^d~DB66ޡ':*FZw mq`;r(@p҃Ďf >7njw-ކR{w;\{csƖ t'DǥC-㩳w$<{g7^PZTNr=q4mYt7 d=ٮNgG.E¶2S}C@{WV?t3CVչNqqAˏ,W;XhPBE +XNh.򰙦NYE?&p ƶ^q"/DS8.?% Βt{iL)cN?1%6h9)x[>Bvҋ#l1S&vD̈᪼3{qG eE=Ov!,|[*<:tK~ٓje*Yoy&%!/7' o*3x9yגW_$6GoB#zCkF&' P̿砩qKtظWfftqW?3g_{Ce}ytS!]3z|7K2-ej$2oi+/7 sըQڻR;q!-\ߡt0Q-x4 4|%Rɯ(A,W\k{Զz3=ԫ6xoC>Ék.&I iyySGr K^.ЊmTPz#Z> "0H@=9\O $zYbg@D/ cC,4m )i'=D&ClN>ͬ$Pi"'Dٹ4[FJr,o`nHPW886T,slxrLW MWԪ3ZZ\|m\,/J"d|lr/lw5([OAi_pPZ(X>f.`R&`-V—Bi!]:\#$r@̉rEq?nXnhZ24HsO'`H2C4'(i4 $ !q ,j;B}ߵḲ {qfh>K, Ei I:}֘ *\Q*Dc?M r+яX](~юx؇e2 ˜lMd2#  z[hmjXgzq})+=`_p:{.Ӛ,f Z* s-Tk5iu\LD?fՇsZDXv$긝ᆳ nJVFfq?_p"E515C`萛CH4[b"NTZ^&K D4;+WO$j\XX[c@=>H@ =<֏'RuˏZg] E|u(he֫Tu?]| ~xm2I3 % ◆S t9k9>ZS (`osl' P5d"ӏ5h4 zh9$Q!2xZaCکڴkW'Y ='>Pv쒍wy#I&\&dPCGtyΎMZdID|w^ $v7v,4vuXHT aTv"6Nt52>d]QY(,zPD_" {lO${W+˶:A-OA)R^.?Y"s&ϝ8@ au7'Ϟsn9E'|\P y4zBdSL`be2tS3,7+CF<)+@|iW/rЖ2/FJ~0&ka@t.#R*ۻ*, .TI@-aI4JGa:?-M~5>F@`kUA@>#w`-u (1ӵq'QAEOG)y; 3.[7-|_\yV I|\'fjLf޷*7m GWttl W>$yziuĄ13jҰ+鐑I('J h`E UDuk!F[8FWf;*UV7 2"3%Zt#3{ͳHL܍A\FuU=SlLrxuCjgYvT_7o~hcrѹߙBtAҒaoYW\4ǫUIڦ+ޯl^CE)<=ˑCATLVtC$~-hxj29+dI }m~Zq9^&tG9mV'QhMEɁhl25yҽ>ѶÂep.U4)1S;dNRN~vso+ CYZ%[V[I_LI b@ `߀9CAP]0i;3"{@줪 16eGu^95i⚪ffQAԫdiJ`Ӈw-Hvf&X+EX[IEuSqX!ڃ5rA1aJYL@N:a;ќzpEgNSNg!쥎!ZmPxbC|xU/flw;ޙ b`ԃu 8%?x8y[;* 4,^QD@RoƏB8mUseW8"/r5Pǜ@E˿K _"(<#:A 7buUgx i?Dwb -+h5^-~@9ZֆԲ:[hӹ"@#Z GIBsyozt_!XzEح _qsH&m‡9b9G?S,q{| iwM"N5ƻRX``6;{o!"^ ѹʘ&'&sw)k6C[T !Оq0sO?P#ۀm$}{Qq^]G)Np9\HцS_BQ0l'#/(Qdh(7w1PZ5 rE=`if3AQR VoۮJ&͸v6ŃdNYׁpn1~CqX!ƊPr :㭨Nd:7ߺIn3+qf89u' >05=AQ֬g۰R|= Eɰ^Ϝ]K|S=Mg|(xF@t(8+.1i84[ Cg)`Ha4Vgn*C$ U!hqbJW1$4f)΋0הn0Í<=uo0f |FIvN󑬌0ի4:g KR\90>q/YB%=d47gOZeŞ@hN<?V ZN`mY<%&ڝt+[KPmʻ$d;b yeN+HEk;uF@[[k~9ϙ1Y27Kv%7l<2 6f)(̔C(CAӁ{=wL_pV =ʟpL(IbkV&17@иu f:Zł*`cB2N^P; {T򺘗;O0ms-;Pg Foz9D"XsF}$Jޓ;]ijk?JžXD!9^wF"u*‽iO <,CZEN:"URӫ~;_Lg;& auo _HPUC@c8,ϻLꗂ":tc\[1!NJEWERdN,:Hjiۺ1&.jP 1 f>>ngue >hAieJTT&"M8EOoWFx_VzLj!Ο d!GM86KgP\Uo{p;n߿)ZQ:T=d" Ѵ2?!,ɵ0,iEL^Ojg2r?={;}بZO;zmST6pa =oNF`sTw_.]E#=;tf g6GiiL>'0LKå֧GqZ4/Xb%)НD"dZppYxU_》lIoC8v#|;?=8vz<بf7zf++\@]=9 o7,pZ>sE&Sǩt-!t] ړx%ܭ^@uL*^bh8/KfC tɸuf%=G"L8 SΐktY\j_ d{Mpd]f;rDG򾂺J˨3y z`Mޫpal?ݺ\ohH]RoP6.{2X7" ]hvrQdxv܅JT0KYf@zҳ;G-ÆІF.H,@F~n !@YZT'퍶L@.!W O<y "U/傊iu%`}0_ ևTu[Z$S!B3zp2NvHi%'t &oBr8VL./ǒi+@1czYoIⲍ w:o/9n\}f?åֽ~ ?qGMꑇ%rt|<iGpMis*mi/\GW{#w{\Gj<'qK)+C JVO"DS7ׄjn0o#tAf*d]R΍NP73璉[U\t']'6bwf!&3!B,L^/ݶ7T@*hR/Yi1@E]aO, zQ GI^JX'S  ⨉l(8V3ړzDx".ʷ!T.R tOQctZרyfWϛM-l|T<|#U&. ^~(DBj޵jV ;Exp7?^{qӦqp"Um ~ ȀSI0l($g'FP/(QB8`3x~$QP!9I%Z)hO\vkdU$65BpB jC^ BlLsaZ[vMXd)~v9S v\8Q?ALr{ ^9JiFp!H'54^,&'MX!gj\C/{Dx%:(G15!V~>?︳ә&ɋ-MMNUy}=֊`^ 8M2ͧ< #Ν,>)-~Aۄ0и+WSa{~ -G L @ҽ DAj2hP\>h2 RV:` ,PSMJ_:LBRSYo$薔W6J Jzu%Ks2ozwi +Czy -)] 8rmܫ5\a,x[uz V!Z>ˢ5vju[pW z'W~[oag0!}?` <&s~neK"a Mi5Ai٪lX0XE'RxmeO$*o2xLn/=޽ }Lo~A~Eм_Ndp1X8xXpd4EoY2Z#qDD?~2b4T@2L#,+jJGQsJov XNm+V[Y=3X1]hO ]& LRA1! yhWxSn.SbQ[^^ѨVpG\n۪y#:7C Zk~#1ܽL!<8H%)8%m,uAxR mCcS0πLLƭ++i.??Stml]-HGzH/d#ڞY̼z֚9B6h>E#T:z% u|#oa5Jn2*'kBb ! ;jƪ}!7EA`"I ^DyK#fc"b!'1m&]pYu/Z:MK5[y( # ܫfdDvXWv{gٽ=5T]Κ5ê KX[t^ qAlpMMm(&C`:q LBo5uLv]->YB}ia%h/䐥?&EbV=2wvUWB^Lꃛy+O8faɢdxqH^2(hp8`׈eWJ vm4EL26u+RwAW"}!7;s$MlB\%Jpfi4 UD8;BޠйN>b;a8POg0%$S~]٣E 5h(oע>, Wm 23irQ.W0#2kA 8^*|κ^$ĩE4>LJA&ŒzPd"}ilzrM ,]?ZͬZ[8S@1[R= {Kb2҈аQZV>UQh=ۣDy>Gn!|Zn5͑Q úX8'aI_ ˑ! ?1L됃J WYIF!+yl0ɟmq;|#U0X7Ӗ =y$ȯۊxm_'ܷ6;6Ԥ.QHPD;Gd9l& #cgOlr /T e3fcL }!z[${Jqhr&M4豷 fю<~xwߗ"ݓх9B6l+<3=. 0xR 0ضw˓UOkx~>y 6I-9sm20TؽRQ[ ҫt[3{ f-v|xhR AJ2ܬѫjLlJ|z;ײh׸Pv7mMo]$p6ʢWC4BT,w $SsIYBGs:-HV抜̷{dm~(# XZ,bg&S^賶|T"%K{!?9xl.n#A\o5wdgBMS@@'Px!/c@5.ڬ8kt s}& >} km xIL5#RО;Bٛ<$mE`ti~_Sdc56$T:gmI~HH~@ڜ19H qa)e~ {:d 4}UVjsW+9r'Q Q[2r$L\T# umwdž% ;ǐ5@C>&sとcAb-7N0XyBK[雐e7/ L JР`M_xA\Bta5W&=yRuwi @=nUQЍJ%K?ɴ3Idmb3rp Cfɇ@R$B_eY)BK?+HSuWOƱSn:ZNTZ2}<BG!&Ú0Q5}Z@H]-jgg_-n5qC]TN0yŶNSLs߫ws"5e){FPڴsYf s==7CU^,U- R0WbxbWNSVۄ}k87ToX",7Zd5j+E !صCZ~T+:+Orݏ'%؇tgĺLUY{(xJ=6|Q;XƮ\!ԇZU`+=c,,PԦgJ+&}!<=89&]G(J1]C6]Y$.:$"Ew6p ΉbEQean>(T )|#W Ls8T*i=+c3^Z'00Vo+PTE$C'0F*gpA{P4wőcE!`#r/^uBc1= MN,ѝ%z𚉵HN\ P` PdmXN09{4R,YC{L&ON 6I!._6'aCt5ĘN!Te*Km*E mbã9f'pSG:X,~|v atA\X!L(ȯAB?0ČECt2pмWύħj ǫB'h=4ӌL(Ұ$GUB5b.ɿĦ#sxL|gđugӚwU* cJcgɊs ;YbQ4MBAMRZ²y1}| /DqR鑀|&Nw+f7^mre4zϿۦ~XG1uA⊇2Vtbz^ҐoZ߲~Dp-ces&c\ͼ BsJ' o9JBv bWHƖ}Iϧ|gvT`6LCD_q<͛D6R8j"d^sHIr̺sGݑh#3hS@C=X@b5AotG=7m 5 8?`hTke&W- f9!W7шf "śrxIy/𕨛~.x B&UGC[k_HR>5lrJ7^5997WpUio*эHCB'u}(`F>#o?P7SŁ}Y U6ļbh,-`e_ $$6| lA9=^ٞh|Bd UB<>k$Y7]P{*ȳǘyWw򅆺i4Ll̪+3qVd  |ABcD"Wa "rWXqy<(y n]`U,j6ՠ^oGc-Y{%IkL`1!yhA6"m:<1ŇY?.PAs PϛMQvşQǸIttQm[cDbL2n-ۆ b`z~ -ڪլ {;`&o^kq8k1r yꮜ=r{\kD#}@!jU*cJV|IY.Ke$6׮; 6,S*K8.U:'Ӹ0~Ո\~`-~oh*U?]4~4^#6n&8H^WK y૲|>r_X % %:aF :w|'*߄8"%h_AXH\"d YhRED7U>A"Ļ%Af#յPfL©v~^>æxC%o^}$;({Q-A;%f)!!DfDŢf၉S⥠ ":WlKF5P׭}HǨ3[qRϼjF%to4V%vO%q]1:C< N&9I[2i`X#P @Y?U*[%Cu)8_5δ4&_^1TxToK|dHx๰}{z_=:sjv!/izwK>Ź́fWiKVfGm= KP|A})ǂXL˘H< 7>y{ci_fpTVK$ܑ)X6Q/6otYZZu"׃\gL wh*q6%#CSکRi)jڇBPt$`}!7E%]E@i*Lb(Ap:BTD4Lx޾`}9}\.`$cAG[AtS2޷]OF O%]eȊL!r>mMˣWbאfEAM!=3RC$gYAZZ t,o:onP x@@}ef&jF<\FWujA9fѫHp]/ S]XI?4r `-N=m I.|1@~0XSݖ|<IE.^~P_s07xUXl)KPkB'Q0gΎX~o*+9ݺ8LY0Fd]u xjFa xb4%%1~ q *cW&`+P]+1)[ᾙqW?ߞc-q@Bq:\4rH "^妩uƠO"f\bdK9f+5@Ql%ۘ|u7]}@5_v6,oE7J-ɿL@ַ!sG 藶k=p39\j&v"[ |*ߧN9k\QξL7ܱ~תtA38Y}um ZVW N>Yz6 QӮIῚ*_ܾB% RRڢ Dy+uK5j2hKi^Nyu/4O97$&u?P?b#[ AmЋQ1;XwߙȯJ+FFVrݬ%PGg*6q;t\4a!܄ Y L2aOvfϭ 56GEN:*\^ ώL,OU+Ks9׸9vkF"`ӇE.dSO"JT::)\T`+z"y@ ʞꨒYfftq 7 w{he !KaۄmtKf8 9l͑Q ωJ- ]OK1>@bz;PX]&${6_X42FUG %ٵZ#&q88!jlh 9iGμԦ^$q5CnD.W%"j~ g *,)t 1TTd(W˼p|,oWZ8j2 |`C8aW|"|~mـpȆn^'e`o$Y%GLoLdf%S\-KNа(yͨ(;`,**O*+!P^~f41u~$U~K[Cl)Bu|ޱ2\ԗWM(@y"і#@R/u4s~I*8Sәt3˩exNI.]۵4]8̑NS-r.3OGŧW꒲Ae|CPY¾<2No`J\mw' 0* d;;5u8"폎B"! O1rT=uM oխRpbkXBkk!D ̕.*I_nԚ2[m3:[:̢b%/e5@&Ѽ&D a{1׬DW+_F"]{4 lx;WNhw}**-A[K%+;kfqB=eA GtRDw w#nh{)Xn (0M>#bvu)LgJ|(ƀyJa7b``sWFL@㧔AV"YWhֺ jqy-,BSڛ:52HJFަMD;E8K~ ~ӅbZץxBO~3钎6˜lk'Mo3Qݑ;Wi_]lOSf(L&~+~67#A&pTJ5E *5@T`2@Ot:@vIӜjsdvf0d(TV5Z".kU"4,_Z"EK.҃C}kJl=`c?Aă-қJZsRW%t99Ő9zAO}u14l,_ΐ {Zi1ی6ĵ򱆒ޕTljdI T״c4Bܥ [PK)F|HzB{.$_KOg*7@ӗ=,H|p5)RД?-Bb%V*YRKWоjE7aBpVedKRsgV6{SRa L!Tq4JjIH"Ηܱ"$ uݾe HF.V^2d (57W@G}J nÕ|58c@\mZA'"0(?c|"GjJF3kAO)?}3tOH?ð<¼ۖ/'H B:Gǀ]i:0 pݬlQJt kIibsSppj ÞW)gt%EyMAtBHZuu[tK .(ҵ*%J7vΐ1>()Va:(ˋ%͈q#{ɔQ@,;Rw>_O]m|z7lI'stñ~xx Lq^ȧ;Rw1ZiB=+Re RWCifFC-ETF[QIi7 q Wi&ѝZ%6'g?X~d[/LԱ҈bG٠$f뀉YŠK%v*$#rGU 6xt܃L,_<qՌ84cL5Wu8ݨ7$85ݼ?_˛0bk3aW8TF@on^3[5 X興֩ /2%>nRX~;XJJ>uEYm>lfe腵NZU<{1iCDD¥B "\;`,<%CF {.a)rCxv4QcY{]cI̜9hFwe#M _^&&(E7.͟jn 5Vƅl*Sl=T5h ω1?޹@z\Gc+.nPXϷηddÜMi{/yUWZʟ8߲1@am^aCXρdomd6JG~I'u"R6ߚUm#h 9+*47%1eU >*^]3T絅+'JvyP4-eB[<5< (yvZ'@b^?v覱bnM1+zM DWQ,eyeڦV$5D*1dH-h݊eviC @\b^Adߦ z>c`3??URVFr{:;4Fqqjы).}iz fKp0Y \*j\Jd^Θ .TEFSy|ĕɢ=W_/k~%rM`X2" -LYGF>٣6,@c2$u[jbZkj:bEP)f vFT7v/ME~\BVzhP,cW4پ»+c_׺(5'1JEdDo6F# ;(x~9>?P؇I! bsso^Y%bwJ*IRFV/wƋ,Alp7%mRDMX|0* I$mb{Y$c 9]+U 5?#+R0%*!YV nɠ%,_j0bZ,mV!CO.}nXs|z 4۷&\mby+3VMв ɜjCDX6ު۬~DںZD#`/?+jX51_` %ez]:Z}Gr\'$+?]\_cbHҥ{#鬥3@~)!o2A`7P FJt3Riq0WՓ<xݽ#Ѳo}oK)"PO%|O)[_V96_gG`ϋbN]`JQ, a"5nۮ$-IlŴ>81&J3.#y^s˷X{>go$jZbkvql(ϋ(}{3 8儐g膼eP$yI ȰdS7o-,lcU*eG-RGlfr%莩\vV(^n0 -(O )-S!FQWYmf-lAIL (E=<珱+P $ PC蚇3D">]ߦf}M`^%AS ߥ]]572ڗ俠Dd{hYdT|}岩*.I., cbb>i_c^n q0ڵ6cŏBFbjZ:l8$kvSU8 rАP$HJ=^F49js_O݂`zͨd<9Gp/8AM?;C2Ō c9ډAn#&IbEqk$Ry:\H,]@$)Y`Ď~s5|G~DU 14K7_| [e:pGdo:VHG%<۵m_X.9gĹ/5vV3Gn;FXഭJ,,мeVP6-(JGGt!H<̽҆ fᣍQo9%(,@󲧈t`?_=3FhPu;pcespiø m<#?[ Xc£)r8J83$pw:U]qӨe()D5.놇#U{?g2BW(Egղ68o(t*@QUPC~].\ͤVYgo6C1nC!^ N&::f|r%]piߗcCpUz< _Ōj ݪzb㵪/%Mj܌eұfP?Ki036iBd "t^3jW0JkA>;o_^ޥ$g&ff_#`7 =E;(d6m8hX k;:gu @T 'tqf(e5lX/phoO# AfqQk9(k8Y@ooIZ}5x) v{5YΎMg6e{!X5 blRk)E8l9lAQߚNqԿ1ဪ4n ܛ /Yn!N'{V}KJh"lehʚGoBL Ow;>u$4vZL<1:ޤ,j1]U iuj$ Vmi\Y#> r 1jg\B ~:8QCK\Y% uٹr F%60ް,3\-a :$S~/Ew8B+[j+/.( ȧ8r^T!~jSPT]Ǐ9+&̶jdCic3$BXJwV , ku؄1OT"#ꕐ#LΪ8j9x#@$q$54Eæ5M D>XgzG`QEnzPɬ84`X!CZkE/6#xCVkmJ"^pE`H)eLt#ϝ,٪ !3'ؤ+x6F.EPu0LuY qs*LexA ;gQ;Gi>bnZIҳv%Izc>MۜuI5#OAyOP_s-, |YZWdH,NNmJ%\&}"#V 8vp*Tl xJ/ B+= @|\c۩,pϋgʄ.ۿþdI~Xz_bۿܤ_I߆Mcq٢Ho7c'i=N(Qav_liVjto${M?d+235,p9~VV R@CIdrRFVдO47g*US(2WɊ6/eCIC`8arĿNGIG(]ˁLS Ml-3`kHg{4s"0s9ʹ V[&lv%F;yrKtr*kJ lHdT `F?! ZV,/ r:!M_^>dۓaOJ_ J^8ԦKyW#Y&Fh=Z pjT`gRzR=ۗҀRV]% IU:Ue v7ƽ+/QQڵ,V)tHi?.dM2gA(iΏ_1ekH kQ9"5$xtKTas VmMHlM$"8NC91G}b,єu87ųY Èjg#h(Cj}6>n G[^-TW=em :7S#~%(K%|epJV uRu䡪Ga[* P u)(ET:Jo&6&a@$TD T(܉ow*&L3#1T*hl1Z)4` H ([V.3vW'iYf[im̻"(Vd<.=-.ڹ߼U:}6JDG 3ҥvDJL0T0+5[+NenjWHT};]PD/͓ =^8I>F>r9weԎD׊2\ -wwv/g(kn]u 7[am %-q/`\&-%mt>!-Svf*=k9NO]f֟4f ͳJ!vm;P<@S6- ^3?Bm7_H@'LZG1D,^j)t?Wھ/UϿ("HK "?@Tb;\/"1tv|,sgBBOMNJX.c 꽪fr_|U`GWZ]I O$G*M0r>0hrDǙHg̀t[ i'q,"~<9g"O9)QQ&u&Ok^+0RK<E4wZrM`W̓WH"sl9ǐ_Myțd!"[ќ5=4lZi%v/OXkr3۪(-5y?˅vR4k j08ێ7FBo[tK3Bln<~MВ8vՠmc~naHp64ihJ` ڃrrrS@[)<\/QhfWSL+]0.rDIRwhQA&J{i`dQaZғFͼ_H<'Y!ӞT9_@QCv:@9*vxnB;;I!aIF H~Kay˫wrK`^$=Y zld G"Lu3 l^DrZψ~GYlz*Dv2md[1I YFQJh_jNai DtEC$b|mApToӿ-36q,DÀ6#"Wu6#͘V(\׽>2Yio ppJ\HCc\S!Ń"cGl@X%gZВilQ9GHQTxK$s'QcsD䗢FZcuGogv%e5> Z`ۊJ(m\SGoG2cJ &?xDNE\-]0ֺ霴k6~+`wWv^ԪY"*XaX7n#L;0:qXHg[9Ҟ,I1wڮVi;o;ڨ+I O6Nhn.-$*Kl7&~bc֦-kW;41N.X6`B<mWeERXݽ߃B֑* cp1fr~ ayL$*.;Ԩы؛9/:6o1;Ͽ2{L%7`k&le\!j$"T!ep ~5j$踸dʍwPςmSޟWwXxΆ&ozw0'3Ŵ.@/4b7:rfWM^!gө=f0Fb @"lIRH"CG jìZY> ʌ6&}l} v5Y=B2ō:n4ҨJl3o!_2Q)x.}?Jgc7d8^#- ] 4G.;{,Ndg'!{l%qq$!| xγ~:acvURZ] ԻB5@T2j:L+ fBWj<*H E?>\oꉉuu:hZ8 nEtgQm LydI:RŊ)(r&T<4uR2AO6;ּ?G{6:.6jd:[6ZSbCC*wEAW CJ_!Wuh7[7i ,M4/ءxd[,ΤU{oxfYd ZV6kJ#Q-^3;5$E L:>$3nOf|%}<hyMnOZ k#We!]6y",XdnwzZ-;4uJl pV=hE +_!u]9v4)y/vUZBT¢Q?  R8+נj*#zJiyBNF{90Q}2qbdSTAGYJ_?qͪt%zbHSP+^ڌ0`Q䗚K'ȺPv$`;p] ;iUHcS.tsՂ"/~vܑdSxY{~)?eK ro"_D_jp^ 0Clk V5oS%c6Cc31Y`SB5yݪ-E3$isiQ.@,+*y11{Lx \2k|.Ұѭ m(JSOgT#=U{F&4 f˘,<͝\& C dE0 ~Mywu- Çہ8ڄv RId@-vSI^dԊ8V2ϩiv,Q[0$ÿAY]D%oKT밆isڙt `AJgu9𦲭хPţNoiBw lF+HB6*?nGXKWݦ3M:k (:UԉZw.d>"G$H] 3p) 2?vՆG[ĽOYC(iek.?t$fZbթ. O>6 .XDnS.$ږ u_~V+7V~3L1Ju1GZE5]%2f8bY<OPY+s )1$ A)@vZ6ڋ-fr|!dKQ@<3\pd!E=ô~.Cݍ~ad ZNAej|ks+>[\hw_bE/'SeQ@G!\'sNO|0,]V{ΛJ);_^Xy*lSI~/Ԡ)Z:jPz۬cGt%@"= ec{£? ڐy 'șTx;ی1㤜&hlCHf>8,;*|z:tOѵ4nD+N-ɬ ;%+Xɧ"q H@F"Z RKEr6[X!~ Zu~@VЬvL6GT*;~ I6Fn$hUTΦh`vG0Q sxn=ۖ\XUگKG>mDegG`J%QW<쏋9џҐì\xmk N[wІD R$5Ďoنy;ׄD}X@CRurCjA| Xn0ӮqXErSC֜~Q3Nj~B&͆<{۱oab% 5셤ҷL5:n84>%~̦Yp,e:2 ^ $͓\{U!RaJE sy([niKF`QI oOו?rr'l,ʕbE9(`٠u[SH6oYcU`tL|*^K*BJ5Y"z34OoMNc6>7|s ).w˲!_p8ONg0wbYH qPj#+*Pڊț?BOJanvaޤYAXqG4UB~6 j_΄3Cqߓ](Q7 .:Í%0u ʖLTw=Lb* aO|ǓI?"gEh7x$& {G"vTvpq@Ttߩfv,;B>AP+%-7eXUZ彫(H8ُթ AxWgd<Z/(?*Aʂ8)oĜۻ;iAahOYw< wSs _S0n1:vNj8F mN"Bdf5 KBƬJa X47 W q#0SAr.;J,vO93@D^syMM1%K~YX6/Gm]X9 Q}] ֜"iy>e 9;.m@cViQ%#:~~_n:8BfB\D&ZilSu<ֈq~F$O}lq*o&w(wUt>Fq[7!-Z}MzYV҃t ku~Ӎ,OW;QFBEv%~h'@_fd릐j3/n,%Z/ ` rCP76Be'ͮ-жS8j&U=\ѓ0 >l0fK%ߴ0{^.;~ ?2VqV$gIxq+qنyc!L7o_yQcJ 5\ZRAk S3jݷѻϔ#+Kv݈UB#HA3cTl/ʛ&zy*ݽK}SZ){kpIud?тVKL/h2u:FI_E_á|6Nu/dX;`D@F=b#Ahp(MuOl6K-ơ ΂@DIb'k~B(cWEYVA$5M8kuβ}G$4ݟgHH)Z}'NǞ깆vS ~'YXB+/-VU\5 k1+&-dfƉl]hO[HU1W@DrqJ !:at&$BeBRUDƭLamwX呦-'؏#cx13{(b_ Fp7|jh9ҋ]xKye ?p5d[f{-E#&̉h ocT,$W#τD{2INf%@р3bu}dVKl(H'8Jox fo(&GMaSp9Otނs!ˠ%r7.H$yWYR8hHbd1N\(KIŻFol WC 2իv&]ݤa^hsJKm9@*sz Q9ȆК=f&&y+%2DqO}ɇ$iKy2yzG ED:wg;قLTaj'|жU7b փԣS[%xma˚>qtUW43:Ǡd[/ M_uWcR]r86v&~G_EJ4u]?2iOVpww`\# gR1`&Քn<̱^)ῶ-Ü/΋.C0Ԅbhokrj+)(J쎔&3dȣ,a|KQ:P&wAL\K#މ?,˪H -5DdV-`-U;`uXRW *atl&Eg S4 (D+Xqڇkj5OzS`.& j'ϗ|ҍZ^C<9uR- fRh2^+B]LH2H_D9nwa VUdÉ 82lxihuo&ϞbW@ }Y}\T "±bNl&"Y /Wr4@=#O#^6òA5Y8 4s/Lf6u,BbN.XEW~0nvBݗsSM)sDdSJUPGzO;_lDFDL>a᭽zٮQ#jA&^mU8^Pd/Tٌ')[4O6;.мVB1ylRcy{Hlf:+3Wp ( #ԚR% 4{]ѡӸTTJA}-ζ44aHgg8n_sj/@ J'`cQ@:]%Ӥ ۻ[=~6Ѕee9kdVTM;L1"ZTYUρfHa[_kOeيf{ysa2r^F|)z+5 fJ#ym?sN'c2zʚS(☮;};Vɂ 3$~tf6r xG#+TϘo˄N"MoAt۬#xl7$=~cmDLc-`rJ){f5"bcts`&G0=ReWG#zn%hpͰԅ= so5Q=hOj*UTӨXXOwf΃#@[?U̧DcƩuVKr9[B<`HDoTeA5 BSNuIhn]'HcjyK^͞yq vbQd\`Lʧ\jF^RG XG5@V(GTOc֥7Ηvmrg"\=3K@s:~E UvK`'ΫBzQ!{( _mm msfVZ=M T26Q>Z жB]ȧcɊ+jV I68=ar)IJ5pcQGߺ4qk}`L78}ʼCSmt;LVmI)U&[G״x\ƹPRk6bfB\gv\%6d %eQ]؊$th;?AP:0RYFxЯ.j /H>uĚ٨1nt,Qy O$ȸ*3KuؤMЅ %n֮*7vwq94ԏmb z|s|2z-'d2##=E$]^չӷ'-z, Ξv@Kפ'1//U}b<02eڦ,QտO}yd%]cV+cAs[P'qv:+Yws[Q44,&(%zfKn.+3y".BEvnQbfſ'-ހ5 ku =6C 1ZBjG0j1N5{(زSV^PvNjڡCMb;[-g~ơg]vrm-eO1 ( z3=_/;[6iz.`)AZ9m9Bn 7:N99*Bޔz&?L&"8`pV??CO||6>c9/XXCIBqGy4LRHnc`Iw\&O*KwJɿ5䓎p R)iSM),9c՛&kl<,]KOv" .TBLY |3vHw_oF>8*]|>^&56aBN^]T#e05UqC5:E{DMOnN1&Elm{0N h{qwoV9W=—3l ᭼;__ er_x`@`=F&ΡS[ZD߀ڄ-L; !jwE ls-^89q9o22tCkR\7 -QF |eK/G&Q;7>f#H^&PSfi 2:^4qߣDrmJU*a~XgSǦ\% ܒP)Ij?m 7-`d|NFi9|g{0Q|(*w:HYH;]ot*;*W^Nȋ#GW"~Y$^_eER(dؗLMώ'ꀟZR~Q&oʰ#a{`欺Fx*GdIK{{v vdSc2CU[+8ZZcSSIaq }Ax}}a|Mt)牆*!2 /d!Agls`#F|ý%F" -Tiz~nlOg|6TKTMJ0OQ1s׺{Q?yp$UM`j5[A/}dUX6oWTYɌ5 U$?H5[ trK %ٳֹuI2^SD*t oxll53-󙷀ݘS&oΞYy=\0TBN؉x.~_*),ujӶ+k6M%SM#`k²V:S_4[:$Ftizҡ_ РPg\.t3udG{f9YHG ,0tz)ݱ}Hnb7<q?H8ثܲq]#oH _ni07 v (# jnR)WpzLCFDZ l٦XԅAνQh=\r !I,.8~y5̛S|]xXmPk7O𔽋v3fQںzOkɕ؈[nӘUw;& ەCpՉ:CwKJ6#NYVӐn0VXWUŽ#\,YL#G)w>1Xq<Ѥqw8M)"tT~W'W[՞mlit$Lh]UC8$fBZۗߵX@rIa.'ߴo8KIy e.u(}sZ&"Nf4X*Y(`Eʱ,!븇2Ѣ15,a ěoP?nk=h|>߻'>uA%I#2.fYr}d 3Fz`(l+Kb%;YZMe>񾋿j7~5w۝usai)f4' 0 aYBazXȠ(>Wj_<Ќ "xHY809UllBL;DDۄ>\#93P2w5mNl|*ҭ=ALkAչ+#dCkM/xwtiSI/!{;ct:[F&)Hl@>,ARrVܗz=؛y:x k;%g˱1 k4|[luJ9g؋V/3/ diUgp^c pPw+JReѕv.)| +66h7la[e%l(C v4G(=dFȂt`u|>Fҹ?" rof?XR)`M`G.ȢAuzg2woQ.2.jS9.?)iX!r" JUc}G \TEBGID<ν44Q̰#XH fݐZûy{M=t~"dZ4A(:z쮈N|5lx{ʝhx3,/Np*_`"uܻ⨈*"lz2ؓ0K*hZX\H8< M!ӍLfyP a'_/IcNsC~ŋ̇0(Fx!dC~j{Ig8DzԤƫh9MiЫ`T@Z0n9ʅH T):O?ב^: Jv4"[M<\cA2Mki'yÁ 1EƜSWj1RK+8\[1S|($[Nq4bTzu`%rv{2HЯ@y3*?Q> LCy6}3$ 5ʞ4wi+l3|h&ЬuI۾zEʕM>jxX 5#Atx݉ Hb'ZؿL/.97$wpü$We%S6&\N_εAs;^!LmSP&+ڬZ$cъwXR R<E5MгR u.~I%E1Z]Qld!\ehkȍc I(EUEEDt]_$jg@8:%ѷ)8=V:IzYy}lY'2QEjP{rY#+ Dg^T!kYʳWBmLV}MZLO D_u)HR.D%Kqe7pjC(!emd"')Ddjq҈X =$C+؂6"6HCwW(LR'm@DDT8~ ]aO-+GkM8ϦlSN?1RhloE=)}$6nm8xGY<I;Cârau2OʤAߎ`NzRх.Gdu}7wu!0b3fޗ ds[c1>#B/ F0ˑ偵ՊdKں(,t UT77۾ K^|P6Ɛ1  ~Խo|Dp2aW&DӇ,'",Ω#13kW*yhS2˨{ː,I*l^Nm\lC(`} sOp}ݘςC<@o{گb4/0 UU$о+%d6f5юmIJb HwDFtdxl`~"ߎLXߓ|A13SnҦ-̹F"vI 8cg|}Zy},ꔒT9r :b>В 9c0.6Vɚ`;^/%8A(j9qmT{j,;9į[,V;Do}?BT6&sM@mb| o #!Fzpj+/O`ӒʬnP{3i}m(l8'= d ٴh">Wۡ"5=Fe:Zx*OD8T2oldjqgӺ/Or>2G<9Ssg|D]um&8 vBh3čy Ai RV2ZA4AdQ[G Ȣh7@B7{1Ħ1^aq}nXmw}d*w^jK{!>qEx0@ME]^$Ӎʖf<̑mK|;Yn-W@[3̥P&/erWW QG{,c8%VyYbL.rtOo #Re,&P:T:p1*}~8I$.:iLR˘MBm$d:ƻ+[ԖE(z`aljY4Siwˆ~5Ҕ1(v\k@V갊]j;lC9:&)A纮E%P:zBc^wĨ(2:I0Uٮd_f> Zbǝ,=L7̥ 5 Ki,ܢgޟP}S^`?2Zx[3͡^ ⶛ WW )4}Q@nCh_ c-QR47U)Sw >O/F_: Ch$\ZC%:Yb-ѝRQjF.W BPk1G_in'*E?zLҟ椨Z[89p!D{{,UkV|h_-"lTsEi<ȁ\<0>׸,=* PVUVb TDwIɨOƻ :B*C9VP;mFФb*mzJQosCf"Gkepٙ0Grvfjbdr 50C>C4|񿘵 IL2`PEˤR6{f@_u4}jI'柟c B1Nem2 Sx1(/i4qBW;eyxB*)u "f)s2h%/s;I:-gxE#հ;-ʫ>uGLt q` 25P%>vZ5&Hߌ߷MBװiT`kΖ)ΔDY2SDmw-*@BJҬZWq[rw}Еy+4c4UgỳoQH!m-/.h8[q.I ~=& 0!:h⟗TM*1~۲}=5jS\H 资`oou;P!': <jsBFoDy =?`2Io"3ya\ʜe*Me6@C) x/Ŏ]pg:ڽPÿ7"oV$ K.=Lh.188Lͧʴ#܆' '%k8iYfqБRRIFթn.mė?&`Cqt˃SR0 qI׈A܋B}6j% "nj{/tY3]Jf'i^MjY?y~-} 9D+_/k!SJUCI5a𓗵q-R.롥E1CS<yhޕAl_:E}'5&TV f lެ$4Ic1Xg1G.9NNg7X9:R$,s`)^I *gBމ:tQ?ءE͢J 鮶R?0AN 5q/-rDF\1]~sjMf12=F0a cLo/$Pqb RN#vw mcC{ƹҶ%XTY]-aչݦZŖ|Sal4 !kYz-_Q'>kN5Q]wYJzzNaZu7;nFsi:{&?v~MH&ʨRT,6`3X接Rsfmwd3\Ii "@@+*-eY^o1sL l(}Ll:#gk:jcfe;ڏk0JTn Nd)9Nli.pthm]01eufL.F3-w~>'t#!~svi|(s!v ǧL1G1[$Cc6 9"m5NԸN I qlaf<6]0Q߶%}GcUq2ܮ-^z*k?e0p0Ol#$C48:B`l҆Tc,(gJ0ofŢ|HF_xW C60b 'l o*HBH`KjYHz/Q/,.F~ ~Yiy=(tGh6gnZk,'lFoC2tǗ\c;;X~zo|џڵ7^\}QJ-hB.> 5'-(e USuX܀m0RH(Hh&PMڊ,B#§R.s&Xr[Ԏ5Q:qn5/4tGsõV gjML*#7Bw%ҡygN7Doa9b<Ex^Ao`?ic=F {y)ڇub㥂E;z)b˧6U1_@A2(T̍6mW9MUAujb!5ЙiČ6lpX (' Zon%Y˽'՘B!兗U\)q"N;RA,Ѩ4im"iX\$Ov׿sG¯LB#jT/\dBB_H %jx L~$|3OVaZvlDNB[F(Ԉ[w`I A~G&Zjy~j/Kj2W u#""mŌ&ab+˙$.50|'[m+|l>Fwϣi*H6@m{2 >]l>x2*DD<K+êsS= LˋE[Bú-1"1\wݕ"-Ź]C0q=%SOЀZh d|num,$=ޠ Nb I׷ ~zAYm:ÅWjo^Y$ilzW ȟf}ȇ?g-/TTʕC+N0L?1eJ< =$R gIjp+G5(td%b饃[rx06m"8"=tBlőPBSȘVWjm7ةz+wqoj,)߬:4N֙ҵ?P|̶Г2!ʇ~47ʱWfnr?l=w߁Ѷ6N0~U[MPUENEjz⠂N#M!IBP#$Ȥq[p #F=C\J Fm^tH=e|~~P_5"wGjLZ1g=HV|N\`:MݼG`{CsԮ>f]> ]0:٤,˦/;JJ'|F@)6uXl Y:O[VV?IJʙڙ'2U~ueB.Hc/ 8k: :j?3|đT¤n:YiOD=dA#5#I,/FY.Ò]*,,jaǟFA!s)Jl(ٺ_aFÎHm[nI Ϥ^8_A8\iӣJ1l1eظM20 n+ŧtLr6JN}{BM) U-dg #Ўu <M1 ;L7ى`F_pZY,ĕސJեm,x  p:jE$l/RWM#,VEERό ^nr">,A59O.#Ai`&lߢbV){zQL=Yl4R;ImJsh\\v׿pb)%2 |8b8p TCR,4xvʅ$ Nf] z^-&G܏v"%~Lu1\h=a Ryz x'*{в!~ Sp: I<?<^&ΓH kwnNCe,.Ozh3u݋UY}v5҉^^SVօ$Q}&}I-` l05HB)e]KInҗRNUy;b[\w"+9G@\-'WIy_j+,8?p;[b̂PݱnhJ=IF,+=ӝV#$T7ICCVn}SE?yF*/a1rjg\7㘢q{ Vθ$[w {ײh&Fsa)lfl#^Ċrɋ\׵PH 53k gm+QlJ\imb偯"wޔ$OSÜ% An[<#b 5&NT]>PٍoGr,H$drŔ3mJ 10¦Itϒ+ Eav%v=(2Yܚ ;FVG3: i9x̮<kڶR{8@޺ XX'"WHV xMXhadۏƤVEݰݻȞdS2gz:~ļOh7. CsIea п| 7^Y+-o/`[ZO!$ RjMnR1AiBm:3K}KiidߛH2L}OF SJ:lIY <'O sȨV+qۼ(^Amy_uNBK 3n HQÌJ^ m\{3ja<2+E3SM*êq6zm&X4s-ԕZ&ҹxьoËZ`:p\j7rBx|^{>6Tq~5?_Kt$Sd3 bm!4i1OcjbKTH~ɷu}p^d䴌Nw:eC ֕~vkQ3㖟l1k1e=`d$٪G (}Jy6EkBc3P cZS$VE{%j6Ȧ V@R񗖫t]F;E2Tw>"'>l ǯ/¾76|T8p({Ս"yC {,I0&E6lȺݓkC.¢*fP Ha| h<0 5"ӌ}>4!1ϕbG>I`Ep~R@ˬ-)hmUocfTR0<~m @WC:JkE*y0.k5|q[S5۷fNXbIē51'ӕ?+8k=?/SX,4z[zP/+U'$1 n&I!L>\%5dt*Dd^low#U&y(< $$d>AuyKEg!&WiYgTQW 4/JG*_I,t˳\I۞~O:DcOhw<ƨkJ"]of4:CY|@)=KA&ęwwO _yY 8 \\4/a+U+4Sy7f> ``v: ׉a Y!|`<2b纙OPPJcjIJH̟,+Q]GtP.xN/!}abx􉬺ѓ(epΤa>eaiq?H6ad?+7=H# 61h:Ц\M*-!:T^38|Wjl )O$R?phC=M_xkO%Bv!ffTOxŖfXT |y a#MM!ڌGd ڕH-+C6s%@5 EwO Oo\M⨕P7.&_5C>=Tx(,mM]\fJIM@BY~7;PR`ܥ0$ÏvdY4밌&%8, Op3C׬Zit%6:̂s+R0i7msi?}#<~)YP0qt9GݗgQCJ薥"[!2hUD)ڳbcqr4FrUtW!VZƤ; kW`kPPKCD"p~ٞ9g.! a!zi LMdÒ溯Dv~h+Z^0;daT gSzaDkR`xrKmR!!EN>D, yl;YYikb) AmnIH@iߖD F܁D K+z+!2AFAz2H,YN0,=Đ lxĜ>Q < g\cc Y=.֟/kĀՉ˅˚ :llyhzՕD1E8ow͚.US_.FrkfN4<~wg Ål ȂIa Rſ;Z+$ABCLbM&99 4`muq9vRsT=7]n mv+Q_0ʹBkmZ0Oo_67[WI,oj`t5\T͑RW"L|T)t"ܸfk9RX,՜r3^/JBx/Zd#V3zL\Yo\@Ѕ˯/վѹ$B}EqQpʽ_f9NKo{CBhz!cʒeIڳbw?E1]EcǻMS'nZ_qc0atFeJ7*p )-F֗degq8V zJ,7 w;4K]|-g 6FMA2JKs$-7qgQG~0w0+bq.|x})M 1>SUxޛ64LKy1)YtTB4\Y0$q5K?DEJnе ہdA"ۧ"٧L x~d)BF| sXĻOB;j*&Blե_|lY1Isꂉ}W;冐WtP6"(+z yPty2w2 dW9|Q<ΪX ?$֤+J/awRz7E.k I x,1}*GWptx==Xј=JrV%mz\o/S>w;IPxD3HX\p߭q9Xڲewo~s@Zv9`FۼEnOJ׭_:ͼ]6q'{Sr,=v^>Kp;NSDz2jd@]4[2!%5$v!0BuJSyx'tpE*Ge aO1 8wKiRI2$o=W9Kl%BM!6}Wfhд,L-?)e-|РAtcOZ F@k35CV"?%8) cgTjֆ&TÆbRC כȢ?X;FT޶LlI$#pP.BzBAy4 `]3ZPC)m?4A+_d4Pp!ڠ"MZ/oT+?bzF<vaBª2Ss!w)k K^$fI`w x=m+$%E.Ңf|D'HWh=Q|Y>U7`5G6Xɺ|p(wZƸ ;H-d &!J ítwk0Ē+a=dEZƈK}.RdenO.%0qiomәPֶ N6k/ KfOYG0`C@yٸH#s0|.9oLrCԏb{Wոa6Ʃ56raRtCM~[W ?-V-o3^~2f!:a4H H E)i!U+MKĞ 6RU "S"enIh9k&VweN#_kԀO,oΏh 4ฦZ E~Hڨe#w6\=^sQ/n@"i sz#.6P/R0iUqj+#;q37M|@[Wan tƜ$qn<(,A m?*검 Ouj<5Sҹ'^my`qa\z~$I@> QK4DRϧg[L p"+B̾}fI4g<,V㰎kꍍ@)6F*LMaC.aWx~i"&af~A!|&WWGWGQS33~ Vq ܀׶%Mj(Uz؇(#qݹ %@),Ŕ3'+ԗƺdu7h:UTU ljRpgPjЅL+*.;s%DQ[e7tJ70mrcYZ 2G5u+x9ј$/w_D?z㔏*3ǼJ?5i0G5we*<(Rː0C`W8#5 ̪F*qÅ]r5FʄT<62XI9!Yo\oNR jm!rH[ \@,/hwnGv`Ω =h5w^u(|3$D֐qjDGЋkIp:[`"92|GҦTQ6>!c8 )sQEQdwq1ϴP[XP__kS[}l ݨ'fBZ*BeN_As0DT'rL^&k0;A9{=}?i>أYd7yG{Kc>ppeşXnn)`3Ցy] e݋C/- F0Eȏ}!V2+RBkI' i.X콖fS"31K>5S.3{8Nu9<{- SP5_ 6WyԊvbcVT8{?6" jo?5;tt=SX&m\',ࠡq{;jQm 0r7 LM\x.eroۇ3iɅOLƈţ7bJ(gr}%k ǹ.Mc;@escJ+8"TJ_ og۩L ~盺X˧:P63 ҰNcUDyXD.VܓY21zℲ"6$ CY/aR EEcFMCJ6>-p#${Mkx#WIs-T06g29I$YT.gs`?AA,BS%ySnU=]sO}Pь赲u$.3b1T,.[y>2!Z~g!2bNӹ ˯l;&>\qMֽF_2C \A۞69GasW}^ҍh .{v1zX$Ўd`[~t8x0K5`_@r|)OO<8Ek;XX6x\:~T Y),7Nz,wIE(KT[wAV5cdDzz(R̊3f>ݬ>j ;[5P899vɾǔ*z'UߢFv߫٣ݶ{N89=0˙CQY[%iCV?KW 1h` K$rV?<7X}MØSa1'9Szj?_XN=)ܫ2߀~ %z2ЏF|U9.r-wͪwz ,ZVtn_FqZb=-q2C>VҲyz=^dOD8د=/YCP+&|m{7zʤokg>+Z@m0a`дGPst4t`H82ܳNݰ!X騁2!WTi6ʰ7~3(+iB9q̕Mq=o똏1 "L@{}gtV8AsF -jPFd{ұ1|CUJqKzC7? 7? R/\ v_=*]eSd&SUw|y&&5m}k[t d:Q~~[Vtu?[ڕʌ}=0LBl}tf>KG<hs}Dz'E gèm,JrMŵt۩3rw$gs? aʻo0FK'#Ӌ4o;A%Ys+7prR-ST( l dSj>MwQ0 |{[0\S;c,B|\@W[iC`Su޹>MtYY:$y*)4@Ivl'ζb3O &VnJ lsMմDY Vp. ɩ66h E[v5t%.+:LKb[ Xj {QD%7VTpl4,tpK.e.ťhҴx;m& /1HXm߄8! "QmT5V6FNNiQgI?v?D5Q,8z7^}Ο$ٱɋ]}$<3(U%uA"'B2<:&C%I-VhSouvN;A߰6oxf)yYּŠKdWHdl͘F@ZJdVQ(18 Z,6(K8c>Ҏ? F^ @'5Ly(-gaQuZktYo&$EQAye@3"7K*PAz#$J}5Z@ V ;Ud}Q֊څ]J$ {,Jj`%Zz9?.ݧ+O>IRBqȠ!/ OQۨ*q]7Řz`v뤩ey(bDH6t ^ol dgxeĻX#7gSC|fJpCC8V MCYo*Us:'kwʨ-0xEdT*&%jU}Li3l$P+v S:D*oܞ'ËMZ 睇&-R?>YFp,E{ʂذ@97CVYӘ7.6}/݆a7fRr ;2f2)mPv0+ɳzu_mE[)v|)Ҋ1cEe1 fgJ?1vXE9Zb!tnHAҶC} 8 H)J#7cUl5JW;1|f~x @]66F=ӎǚ4lIh:n?5Vt4J}fN|&9['$ktcNpP9RDO \ތ=ű"J('Ě'TWVdym69agTuxϣ+*s\PG@C!&yqQ9 v~cەVdױ m~pe2 -J3_E1!J4: Çc%S/ƍAY9(rD$G~P qyO*sLz *y/\}ku¦^  |)^zv#:[ n$rSԖw6T~5KjJ[<ğ:B_ g}A Ty@MQA8-mh/b1s$8[0д_YA][ҝ hF(ܚRۗeU~44sƈcf) >]+QKjmn_4G-ޅ3VDxb/[3GDb}^1<=Z`B 0(lW#MMWxcTJzaSAc^3SKTIY!q웚q\gKL/i kIz4$wWJkV>l Sn4RRGb9Y1-zubS܍H+Q~ k8t1'fk#uꨨOYnYFYIDף ugh*kB(ě&uy MvU_JӳB7W"Ykt\B&Mvz) xV' %ҽplw=9&MU')a-~6> &Z:fP~bQۓ/$N]1ɓҾ@d%UBbx᫐YѼȃgn?"n ՘H/cفܚn%µL*(2_rꈷvq9@ (5;d%K{|$GdOvNkkzTyڟIZkcoR3-䇣~/%.7Pxތ)ma#$[- c}7t*۩PX|֏ ְF2q^f?UksRT&f72'燨M.NXX"8|&޳ FQqƛy@Jq š%OS=.Aa' ,~*Йb?T~E9h1zŝEODφG+mSj?z\J~' ]LJ̍"z8LY.otOk3W Sc0Z {@Ѷھ?CRvl"ǚYAveD/-v4 Ͻ٫j|ײksl'Cu>QvoL*OLjr- )FbA#*ܯ3](*Uc=R2<~\:٤y:p2EՍ(N<h5kpJFzl@ suC;zBQjDžbU5Jrml[So@9,P--/UjFan ԧh61 (h|֠T7֦!cs rd襜 v:`-ML fTq?h&3 m^''޵$WA)wN!^^LX<&4 7v2c|qȼR-e0,`󝸶eLz@TZ|.&^,YvG=:06̛E2Ip7Mjyx’ c>: q,z_ s6DTfӎZq() |m<T*GVj hNԫ^@2Uhf8KHi"MK |k\.Dwazes84&hr)I pdx,æA(2v>iR)\8NEVUggJR(ͷ錏k陙\5?j/Xsmv >xtRo]|$= "lZaF}9V4uKתx2dyu:ex3H%!.WrH9PTs_&کxd!R;Lm/i,Q'!j\{b~Qno ۲4ɾgsK9f?m9m!: mz80h`w{m5bjk&uJyRjxGLZE d9_(*LgI S) dQ"{,/Cq+^2f=;}iǦ'p ]|m`&;Z~u1Vt&l5 7p-g#5>kq3i~K '__>qOH)N,5khre;,lqm`1%ΥаBtE^-kaٕ۴MlumG\ f  |ܻ)-՜T@4;̑c-.?<K?7*[ ۺN"gr3uj&]EnfJc:,۝cXK}dj1F[ɏ 17h `+c;K/oN|[kvXittAg!~#ѦNۦQB؄\ԧ{Ł;IΧiI}T _֏+\"FhldGJ#ANsE gT==&21/1H %_,LoKU"Hߧؕ|lcq:}{ y)mK7y؝v3vkTAˮt59]AL;".BcI@ZwP?p,FFԔ8͒.|L@2k@=YO8p marxMJWz>շ4H$^0:m,@˘>v$פ)>&'=Z@*5+Kk- #we9pEA*kە11nzP>e.g r;XJyžԻBT8&y.o{NLնΞ6@m:a`ۆ.|bjl< Uʿ+|0@M7s6f2*t [ G ɣOEdJRܔphlj!Y N;F|VD6U1;J6鋷<&s iIZf]@9 -2r(}L/b 2-Oz`X |=ԪK~sGߖmojlD@G:1h؞K*]3xT5`iG2SPa$]iF^7W^GֲLTh\1P`{ƕfCx7֨eĶCն#E"m5r(c?c3H{X%.$8mW*̮MeV+amHq'~fSqFǫ)4ETT(MWoc]F?]Eǘ,ļi l nwz0a aC;O|ft9}5;X&B=.a&K $k|*Z|8V~SNP۝M~ ċ6/ Yi* |\b=:TQP FM) /U&;Yg,h$"t !5capyMVdTPeHOʢVR]aƄy(G%X$[H6$fz'@-/j23,Dط#o -@ uߥqt@5R~M'nxT߫E4]+&(`g 2%D+@lTZC&'M/YAṂdF($O(|gD0)@S(PeŘmDq_3 + EI_ kCQjEԑ+*mTW%LF bl<@_=® 9Gt5%C/]'TD>A">i+<\C2l:w`MQ,I/044ےw0ɪ`ğ(|xWk /W+曪o9*H|'?jlSDh]a5sEz~#Q6]a\kFݞD5}IUI PH3a:u60Vu#zV ݚc9R~ S N5AUt,)k;UcYEжk{ 0ܣE0k'eUZs)nCDyY2zK~Aȏ"l+5˒>ģJRo:ߣP$RPWv-.@1'܏xV̛"9?#@˫SNdvZC$VO D7f޺lM3qֹn-N`1VzVb inԹ$㚷7Ũut(Cc}onsĔ rI*0;?+MQ8ip7v [=Zn€kT!"8EA)S## 05UO/˖ӘB7eB4}Y;LſYk˃9r ˮ}q͛p74^R59Z;JQY,Խsp}.deߙ{oǍ9!}m\%ODdXeSճj2[4eXjOj)wYk#0(gKĠ]Paq~aY,3/-DXpX$)}8j)fהn8[oUa86@&*.SCb7k{;hv>*&(QEjgjCVՓW z_?EV (*yHJIBFmxv#8ŘOo䗔U`QP$2ۊXbba-nR+r.,3jtJ?Eh-m=q./,UPXL$uD@JKnj+8 Y#t1aH#%}k\~*e πBv46@EBdMJQ_3uH9aX>._6$>|}Q&("԰ari1$Z xIanWD/`6T(A?Ϫ>`nHܾspQL}eK^&:4;DNJ&x0w| ,AЊu E :a,]BZ'_x!qG]X^FȨ"'/-54ycJ|jFGF\Ǣd'0@*qS:)ɹrn.nC;P  ȽJ dM< c˭L&vfA)T,Lb (g@ƒQbfd8,. .4Y!f<|1pRQ˼ßU/sv^Qz:ԵXGFOLfMӖ#}ʍb) \E+2^vJ6H#S k֣弁}rcO8e{~ͩ(a:sq#s^}a))}\<6L j²r FJk$ةu2L':fi{km!GӀ74pwUHѭ{@#S6MmEpL{$ub4Ϡ4_WKO,0 fϥ4>>Je z[+p' Y j䈛")~>pΞtsa]'Kǵϩx(EUoeO}&e ː\1~ٳ([?jK 3GNQc(a!3$Cd8X)Ч#H5@;nv &UpēW*G=puz^Z C1{ޡ( xd6XsGY(?h"*IYJ0:F*bQ<% {ֽ2wwxB#a [:-ߛuNa@p^̢ʔ7|Va'Xl-*=!WЩn<ݹOhߠkGiǁG0s)~O8}O14!Sє"9G E'3]5i JqKZQ[z SqH%tw&(XN*s ɴ}q^@-&>3Q)*\WiUO0VOu*.E ÎaĐG-Z й٥EnXr3I/T KSޓo9MAC-E mNgWhƮ C6񷒌o]/LRo FN؋HzVR6%kU;Էii d&/Hc+c$ηTi$XBK2 CQ) s->(2iߤ_TER^/ǿt@2Bysؼtq >vt0dTW? 㯀NJNh\Majܧ2ʻ`X%>gL謈xA< 6h<%Ŏfv+h24dIbRMvf6ctzMq鰩nG\UQHnU,7&*ep@ui#,0^iR֦i:!T u)esJ7 QK(Ŋ7)/9e >rɾs]VЃnj]̤Rr_FP9GoJ?a$Jhp5& $%]i0)SrK H(7 fɏvC\nj v*@z"5G ű+߭A(@SJ HFWa t ,e,0lq_!dΕ}i Vyzp%그Q!'IXV܈M!;~uw(eɪ7zz$'>VugS&nf1xq3F&n #>:F]VۀN6c;mqY7?[vnn6*HF߆*$@Y`PJEH`dSt,XkKMZU#FmK$mj=:/yo ' Mk͠&nL2iQ _A{gbK)jp69L?x_9@P4hwf5p9bJP8mnsF;Waq<mnsEݗ]GW =?d@SYKaB@צG"Uc)אa,?4m6~/byx}y]5#>Tm]?mQฦc!N8dåp8ʇ[ \:>bP  YEs?˽]AkBбzAŲj*-ø#6Caj8g8O*h>δ;o =Lv!`޾oxIu=#yxY]4}6\7{SrI9ܭ ƞ-})-"x<D%:[y +|#}iY`9UC~,(Y2 ؑ=\e6Dc=RYԣ4e#`ggi>Ð3'lKIV[q&S(h}&T.CQ _=/JSKBdSNbMQ3RIG-n-!Ƿ <<ϐb^k!7 ruk\L]#6P&k^MuTś|ƯkoM#D(!Q 8I3{9IB.Z+/]-sa˱|ǎMlp嚖j;&ߣǣ +]+kfK4[%$Kf@7R`Q՚9SN1:raYf Ć<3 ڿEvKgWlx33 X1\+ 1n9W#?~{($Mфz/4enŬ:M X@H %5JIÞSHM[+B~Wφ$P){1?^XÂr|Bމƹ Y"ͦf~SJ(7:{9`eu܌l89!E . vUC166 jPPKb2i[رffXT1q:hЯ$8|Q*_VdorU ͚LX9R˩ƾ%h}oM "#^`q]рbNl> ({տ -P4Xx\fY ߄)vUir`.l $ixWo ؙp&yóB9/1IRQ?SE ::c Bu8]3Xe!*DQ<W9>(#t3w嶜K jҾy[ r o})P妳zwW-v2vj_BQ۰v9͏wjG9b 9KCao<>Y_veLW<;3@+Ӑhn!3hf\k‰F5"isR-pMAHwzQiL+/l;b ru.#+ o%.VM‡1׎ L6`zA/~KAhrgƕZbCOin z&~:s{hql0 emh!kKt_Xp(Dõ"gEI$]c΂ g4ы2<+}үd-E,.&m*xZ.nFy:MsqGr+ \t8Gv4cTBVTT-%\&Ȥe ެfٹ/&XW;&۳:,=R:lN@$$N9<Y-@bȚ,%[@הv<DZdg騀W^RX.֥~O@xxg] 8MfNd<:4;ĎUU@*mmc_nE`oc5]^TYWn/v@Y>U_0s%OڰʔYTY{3 |_~3AK8;5N:~7"A$UC BcemV+~KYOҰ6hĖyĦx=L z.[q:"}.a3ug`H0o|n4 'azg2 Z۬t`Ptj~DZ7:])f$Ǎ*R)X #:8'wRrM₧4[MSjû<ɗo # 1AdxGX`wkeb_b_QZŁOsJ=) JilAr,dOZZcd6Lj+|2,<< ,-˞{mݵyWAG›2y+v}S =K[k9Bq-𮁗5.oǠScfe)c B妽48~J1pVȰnAF *=K}׼.?J*13=͏Jte5DgFz ]GKqHf|Ae   _M%R>Pz^o_7u>vfk96@!xE A8*p0cyhlM6~w-^u!>pJn<=$TQ)K#|#xbőVA~Be%u Je_ +]nu0P"o@Rb._2L 7Y aC /ܻp|$A+Z 9YӖX g(4ñַ;U!MxPsSOp#[rXgry2Ȇ)D#2(,;*YK4rPCjTz LmkT@F1G؊}rVʪ<l 0fƺ=Z?ӭ J bԻH 6ׁ&@ K1~@qKӊ&eLf7M7=]])#TV8?PK𥦒FcLI nk2<IYj( C,4fZY%t:+MB,%2Zqz"2գ5<06:hxCcE;cM(>6]jqҡ0=b4w%"m7MqAw cK.զXzjB:\\zK8ݶ-dMZ:| D\.SNttyW/;"dDQg[fח܄]fGMȺW-n)Pp6υ+qwj8Em=굉I .#Chtx\BC9Ɨ>ix6M:]"ҿfSFNþ G)K[L^ eXdB@wSR^\N e'4!X7fYu^ԗ1z}m+?@Y ecX|bd5dΉl衾&*,oēY^Qj%3e2cQ.aSNԯmu=#+cW SM/#]e Ҵ0U2D<>_lmzh éƯF%g:}8l15ղ+g&xHĶ8X 0 5}3?'`P`W~mӥYY03Bc~ PפYUcir[bh )V)]og9O)r4{ ~S%we,J)ڝpЋu`D>j8P_'RWD1Dl CƺA͚-y-4WX׭6Ux5<ȯQiT=S?}Y~~KQH!Sj`n|,dfDA#oA.[jaɴB<7Y43n[D|{}揾)vE㚄[Msc<]xLblsyZew9uAfՆR9C~>rh|t.ƅղ~&gkgM0|m'sҽ|B( AqHCMxx,-ՀNC,3-yi2 3gf䵶HI9jb@] :4!Л͎/h[_H{ޘxv,&yf6e1 t_Dn=!3t58_B7c&l}7_FRH‘i &@kTXr]W--h{/^U__sUυ?#j@M4[VP{#GYٺ-Auvgٜ_(SFY&JP|mĊ.,ӮiP\?>kTT#bZ55/K=ڋ7Rg27Vyx3moI|;.hU ^1xzxmjt:B=VX`[A&oaO1]S5EuTy%ej=7Bo{$Ҋք MU~,BÍ<^U]D< 3_ncGc*c8XRtq.$:s0(1bVJq x:L-^9X03޽DS#X8EiLS|TztYn)|{n,48O`S,,6 =;ktL :F;fbI?QDHݼ'r̦\yźt |p7-䯛G@,42[u}؂~פAD>8XH(pCCM%uvWh1`A-1a`~'g W 8 ޹+#Ѥ*s`ns?NKA/z<{aqON] GSR"y4Å۱'i3OL: ֑t[s'0dCs9W/ZpȂWj!;-H%SGq̐i'Cp\$/Iǒ}?֌<V0!ǥ&jzKbI/$íEl7,?| a=mg9J>q=]~NubY1 wԚYfZ_G}ּ낦29HѿEAw'˙Y#fbn~X1}ϸM7sکjP)E="7Os8[~xs./Xe\j<񐵡ժmf|h''mM<:&p"*czA3c@̤mG* f+GeX~}& T^mO`d Ъ+:M},PVEY`5YûzJu?~;. T~+ lڜe]uxY y@ނ\%P? uðӷvOuR>N]0I""%Bb5윰MOJ (`ȣT`㡖Ahq7=4bjkuvz5Lٰri"]Tx? b!ihb1r.&s?j2 t&b#Ⱥt?4z+Aǒp`aXBRCHQ(lЊ_4] = FԹeF eYfmC ([:Y>S^XV^T Ba Ǭ<ӈ-bn&h%;qQR=@$L\x2Rrz\,˷g5`xp-n3wմϻhP"0*.dVb@Еnt+%w6`b3l"G H7t ,p5^f I.͞K|~hx ,#kxO-puT?7St@r H8s|1rt燐BS,h 4F$vQ3"uPVc]_fdK) Qw?jW;^f=)VF$wyF]k\8隈wqz(iPC,jU¤pS|O8lygasf -3(39g-Dʇ 7gyӵ,E| 4*|G~9!#s噟ᕙ-vk_FV8u&xH5+V7\)3zX#iW3z@wYfҞY)p8%Ž$.]L ٛI#tdWqY;}K? Z7XwaNؾ9n~1#"1 pr ^LGuKC'<:R&1|m+kǑ$(uZ4h&Y1j8j,Z+ {UxitDCInc-r>SIlucz*0 _~G]bSp,S!=O -3siǒ][euqɎAx|K,{;<.mDAh^l+tIqA6۳$,{ R+;+8oR;ܠ۝I'[t'*}vyuREOwhF3D~>E]hҰhEB=Ãט.H&dfĝ+]h_۽An>?PN# k.[Y*>d4)`VW`#Cmmff3[:Kt fVzXE_Z|'_ԹVmfi>bYORznAKr5O?w&>WY y/F}f&g'2|>jq]luHpQ iE7.Ʉ):_?I޷޵v 0uE0 }"$>Ldp$c{{glT= 1 uGA=/l\ysG="[ Y4w!Squ!&Ӆ|Aߑk5k1 Y- ީEp.[< jX,[e›\uS gfX#z&Jzeܐgzsދ+~WxPC8wbZ&i'>ْ@+!nǯ|>X@9૯9C/57gNӒebB L*ro.fE7#wƠv\Xt{W_މ#>_09s[7'ǐ'7[f*9,0eP& hwdDc^b׎[VAGHk6HYէTh#՚/$YG*zy&ʖPGz 9VU?e7•$ QSNYW&7|*`*P~'y7r4!챐)]بݎH䡉x DëH~Kۂw;/* f5/3 uU9%C80+Dcb{ ϑO]F~jmMNI v5yQv|\M?0X&-ؿɯa G[\|qҹ@'TiԸODt,7ՕT"0J; ]gcsBk}/Ү,KhbGZe$uUxᾟMDI۝?>'T-d|=C<>@LHƀ$Zbcqڻ^,Kpr0m}e^N*BӉ<-Lz{%4ϟt<" ! eLَL1j קe) jI=޽<_wVW*BӬW' x57LEFȗVEx1ƴCbvE.!&쨒/΍l @ +&.jC^QDKClˆq$t C8ƻc4eO6N4h9sy,sҨyB2q#siĢH!x9xH7\R쵼Ҹ4=ZܲO[z7i>=0 w\tBE(3砿@ ֙ C Rz0a&圽qHG% pηuڎ ~\:]ǯgy(_y ,:@ׇv(`v':@6v=z,qP( =_BPpycd}`yml 1d"'[%:YE̺gk %1 6N dDy1֠m#ZcNĘgjܮNRǞk@HUVfR.[ L۔4VN}`طm8Ŷ[ ' ]@k8?t9Љ['T(<(3⺚u"7e3`/-O(Ť4>fCy2/' ';F9-IWT%ЗY+~Her2rg))͏Wg6bヮnI:i?GƈapmԳ/z 52ynΨi{=u߼0ݗ( ي^ĺȽ,H7)~J*f_B>ӘI`옹*׌+v T$KcfH{zbIwm(kQ:G˕٢e̟m)E{Ҫ+2+.sKH m4ڔ f7~YNtMl&/ zϙ4$XlgU1DD˄ ]3Yo,Kίp-PR5oU+ * UꉷtpJ]\k;[JhY;<䙗<A\Sȃ”x41T\ҷ:I,@͐,.|vno}69ӟ(5Txל[ EaI8n QBM%)V?7itM`Ԟ%!]=Wn}E 5(^> ,$yU8w}d\3rϊ`vٕ.|pI4>/x:?[h zHەJM/;ȮJ۲uؗhٌG Um saA/=1sw59A*B-3]}jc9y&;v<]Gw m6xI3Q|JH)n $qY)8m&`cbWe4{雹f4OT^ÈRf_8U1cg7BDU%&g0J7JF؂SNZEXYrt\dB t"EfTgJoqzwE S{9z1JnC&mjyJwti2Cɩx<X&)˦+ء@h*,j`WG ;~%%y>Uٜ.|Eyb-n+(6oV,v}-&T8RIo//Tb~_uUKNDe,[[8h-6N[8u b`N9stvR>e+ʜ`\7{Dv πή#^3Kwxk(S'hϒ=5 Nc![f`U^YǯNR 6c^bjO/(/ +)QT/iUt~1ggrbeD8?qVdoDk޽O&.aS]W31vnUC}q-_ll+qwDBKTE͕Nד~K~혥]jbhaSE!" mg>rsYZ%g^ ;E@=77-;)DFaƥGQ\+%ȹ8Wh~mGN)TʐB^HpoSP܉'ԤW6/z$q|*qC$6[0īqZuk`wɤ <&$:R'۱ByiJ"w**e4MT{jI=ey67!=js,jd^%x˸y+x|.M4^kgǻӸ}$bDP)4ͻjyXj{V;B })ruz\FV z'zr&ȋsf>эlu-MRP}1 Nخ+vӠj0_`iٿEQ#:˳s>)A5< z!>3`x/Bg%6gPTս_? %W!q72Z&ީ/H'βqTS؃[Z{OZmv6g1M #sqce&$zy+h>xgL CѬ_3#o1Hl?x` ɛRê|m*Y?:g>B\pX4NYZ piCTsg,G[o%en=^B -Ɲ P"'sW  xY:),}3Sػ  +tƿ95]ohF=LCz+4AKʞai39:SS}xܯ.Ă?)RE||z]Dz+0]~u~633r&@;SvEU鑙n.ld4SH5bP~,~ao% j d`FA<'6ffJ 3S5K%n+e_ HT j>J9]1qŝ$_89|ۉt5ŔӨGp+zCⳳ}(wgaL*'"PuXe,M!D:rO^Zo;Yz[{5#3 N`+hox -%+>n_~s xPF6 ~uų#crJjdޙyӪcbtBDqъJ̈́C08L:2:^`<k:dM5cw"p<2Rja5!\Uu =P^k7`hm,Y'ɪR2|Bngڢ%}gk|D!SuRgL#6ou-Λ9ye.iTX@pMH~wEeKZ6*9u#_[_>~v!\IeIǐuߦQ;t\/vLfϝ| &| ; 2KsEdVf=k> iR/C.CѩE&_e}_Q`D}V_U9jr#1R G 8:˨ ?t;7D[Eb|)C,ev$̎Y&x5p0*\WESCO % ڣ4&  Ǘ |=^fPN}. _,37Lb%PcZݛG(&9Gaçˣ*Sȓw0 kz?x| ЁRia?yMOaжʹi@ V͓M)qmZLry%̣46Ni3WYMPdO}WxI>FͿRi^]z*ٛdaL>F^l72)Gu !2 @0OqCM-}B RU,~XP+5+vh ^SX]Mp բbLwnM#ZJ-8ʪǞ]Gv>\N)fgyhj9W6ahNFa)^TMjLg1P4DHhI&+i/Kgז+g* ܂kIż=aY1dah xW*+x^o?\bdp?l-FU2vKUcòW<&vL1E#+AŇŋJWe][ܥW5F!$.w#m6/M2e^xf(L7 8O=%"mc3|Ӑ`io!"e?ڣ+V11luw<{'yn0\[Ǿf* ޴O^ud u9Ɯ)8GAwm.:lC8?$ /A3TER*K[M8QI晀ō}_0Jn[(ŬE?6R/K `!9R#&ܾ=0d_Jīiݕ&0Fk6p(^F؋q=ޅOLWƯ@/8^ nOeo7)Fvvޗ`^÷2]ۗԌF.a&Y#T /H6ѺS1t^n侘+J"05 nzb2 'D1!فDvٹ$\?$, VN:8wY ?McfaO: Ig*+]xD Am}!~BʱB?Q:M G*gb3* +6oD%w޽!uhRUiT +{m^'i NjP)̓UFf_/6߫)0/t:T Y|+I" Iy%]cj2e(wW}6olL%E#'򼲽U=Z%.SD^9#Is)z  OqӜdeƐ)V̑?lfjM/.r \*p5HC{L_jN3R=5.yZa5L'r$Hz3@-j4l1fNm36:_@Mek\]zὰgurPؤ[V{4&u$?m76]aDUz%`dRQ.zX󓫚)O1wF:{<ߧ5^kdž!#*Gfn33aP>ٸ /YnG@ ybfd!PDH;7!zbIKoBa|]`>^d__xLOZt/N ? eT&C΅k>cPPvF1s&BGb稇fr\횖 }7P:>{ x;)HɡwFJ&۠@1 Ou-S Lzķ7℩?{J z 0=A,_Y.=V J,S&6)'G.4 : {@/,*?iG¸U( »P3U[vVԜԘXld 62ǧT5c\lj7O].+sEqd'ۅ5L/n?$jnFaF=UlSfVSF@# tgqhjYy|S K{|Z]yX>9gcxbGa )avM>s8@qιC+672AڸT3[ԮRf|Fڹ-2=~dnXcFPWAX=uI8zverLE{b67OE{JA३eJH`jObl{S[B@@Q/mT[7&)%&l&Н͋nḌ R1 PMh4ue􌄵_RjS4빶{ݱMT4XjXNN^Q% <=Y=G!;R7s ҡleMpm*E  K~_nעnpm_8pUy2fM SP-°->~V/4jef*LJTGtB4xeֿw9Or[mqߡka!:`o^ofyfm|drw~au3N%l"rnEc#1ry>6W"v~=A{^tX43~zEρĂ\'sD!Is_1؎+d:U=^.ePDF[nU 4#{ diGwA#X_օ|-nDKN gzS@">F+]YMj?̜U"A5\('kB`HjΥ:DMOt(} o(à) JoGvrNw fܥ6h!XDf)0Llܺw,灟:) 4cIz,MծC徸9&Z]/^',髀 =΂쥶PI[`fU`8 OYH>,dӜϔefN\"S%u B"Cpppa޷ڲCZ( 7;VDZ U%+ަ׭C7fs-q&BAz>TSYVsccy!K^,i#]{"Cb(Lb;ae)a`üޤ4Um{,6uB\dómu]a$dZmT4lyUzEuZ_'qm~K/]E0 m:tHp7 zdNl6I.lg^u!`9t}@kNg/u)ʱOԏIPh8$uZM^[bCӘdQA6}Z'DŽ*i!C'ըC@R Yxt,3Wm(Y9]wcDπ y`*2zV{{LCj [@P.EN9 Q0W_7]gtʌ6n8\7aݧ}Wy\FkuC)lpT;zلCc;cp0 4/+1 ek?툠+/(ȟ4\[7B厩z9,ҭ#!ڌWBm;< $f F &OzzY.(k]Ewړ{*ܒϩ0b)ݵ1%5^:ng`z`nDҮ1h>xu(amF qNwz 3c%VD8C,-[Y7Wʛ }u+W p8W#gn4Uן1m뵗Q l1OuAgVV;?EDsuYͽ5jI3K9K^r#(L _bsyqW#\dxFF1l.pǥ>~o\Xlr!FTįl2pH%sS&(θW;G`F3RBdw;qn"ՅEz؁߫7pn29΅3o^c%4x@CO;^*Զᢐ1[t3zo #\@,ӝAmeĸȌeuEWGTd}p㻍F>;͍zαq<\Ў; +")vRz S+תYQ]Z0f_]-(cK "KxQYk캘^Ըwd.5z/D(L%g'q #/;V*Kʰ^IOn?9 bg]/]H;zo"!t(K}B*؞~޿ Z=Enf tH\=_2 &xT=t}h}0;zZN4j!Z/뽋$b7;uȀ9WF)JFQwfd핪 neQ涶>^,SllURc*z%re*NW7.e6Ԑ7]k/A3pzz7pm< q-HGE#`,W(: 0j_l094˦F"08}NQ"%|*LpG2W:TyE#m ^r;3܇5 pzcͥ6F6p\i?!%)C])T Tù;]!"pN>}rWN%VIED1W{]z+1I`@~֔[љJ~jTӌo`_HH8mE.j 0 |(adm7 %]n;D˯K>EqxAMٟڹh ?xf ]Z\p\{SB tQpŧ=@Q5dD|N,-dE|ڳ7S`2N^ C_“p)`j|.s*+M0XM`Wځ|"oi&ɻSm'Ɔ F ;Ue S3 TuK>Ѡ2ݷ}oXk>YGÀtGni=~Fi 1 ~B}FUŒ&`B8Jm:z7fKkRK! Xð!^|Q9F_͈wC>}g;1U9z[4mnKU;8%{jdJMXz^<ժ*WXKqr*+ y@j CU#y 9y[2iY1' @ܤP niIôMepc;a:ӻ(-8d"$1 sH S{%6 v8%PyBOs,:¥*{dkr;h 'z#qd+vKq3f(Ӊ#cChiƄmNzA 天5nnzpk,8) =#g ū埻˭Vߗ,_"HY3uBhVsp2H2PtK-B5jE^w)N][,kĩlIc 5 (s–uF"dz3;*IȮ]M$K)R;0 ;(<q"c=9i'\Kr_$)?R##pxmF29M0.YOrZO#i9fm`t2gEk 5.djt6l[Q:- /JQ3GR5GOY,sn5:/~EqͰW*DݓE޴rLM2XImaݔJakzo`%/s9Vl BHL90wGbW`4@M ôR(9&z8 +1u܉HrVu-{iPPN?LmA$.P.-)t(5\3^1P[x=R I ]C7ZkYfCm ֐@a.+̫1H9@FL3֋Dfi.!D89^VnòK ؤ}B+L^yz7)!Zq?~JBCW’\=\*Y%F6CX݌mB:WWg HWn!@jVewqK8O 0yhW`!:C!n~f 07xDYt.nv@wL#}5<ҒG7>Z Yϕx@FŦINۗ`_p9 $$.F2k D|ػYtD; J_5μ@|nV\h9af]J:_7!.ɝTF쾄߉m8 5sQ/ jzrV"\9=ц: &8;8g#6Hϩ`32fE ˓AFOGKR6Vkr`?ϫ a5J;=IL6<]aJBaKۙzLT@2g#X²~y,ĨEN$ {FA: WR+ns鑨8޶MׁYΪsHlltqathLdmgʆƱp2wiڳfa&3Mh*9اęY%OZM !:f5:^2.]@AՀ(;Ś_|*|^\bׄFņ3l'\ߚ}}1z̴ZjuKc>?|a6n(>U`&%Zt;fjvKzpDkusd_|M%Ǚ8/U L%eQ>F|_3(:PBҨiE͏5dwk"i>ygwۻTto$l?V+ >(bL70\^qe/.RQ SFߟ^b[*x ẍ́6n;DسN\qǻa P oPqc/ KzesJ-](L4#ĥktO Aԁ#.Z|혿U}inj'zzL bͭ鵝T%JkANEa7dQ)]]`(EY׮f+nm }Y% "-e6N:],NVRa/p.~%Aʘuq9>x@C̖xLzױT@L36P@Ǒg\S@ͭur˜*$iF#drħ<>1oՠQ/CbV ]I)On+绢U;LhF #WƷPm|jL!ppvgmsHڃI^SX+pܹI5 ^7X l~T^=\Ear*iH"|T?g4;$/9;o_a%iIa d)@Q]i,t~ Yt/q{&.t6r7Tbk7Oۣdk&DUpqRa>]1Tƞy>㪨.$V͊[ܙ!C^vFDurhϽ<r>yzY4mDa.m~I E&ҡތ :RV~W=m^JUvH PVKX9,QB}OI 8B J{ wNPa>'MO+vaoc,F  (}(cHno/E}-wD{ɹv Q^$, eK%~Fz8X7w2~\!F9lx@^cmjFH|N"}, koFFV1`p=)$<\ʲQ}?YZº=cNńf_""W9ޣjB#6Ex4OpH(犤>(d+c1r[')MJq4{(,jʮX-ē#SjƖPֆeY *L]|?P`)`bOMQ؊׾<e,?N #Bj\0Nۭ"\H8 KDC6OK0?mLbU+\sSa'̨QJADvfb~Mg>O}jh\\0fw5ldόqu<%~o#eGr˹#{>!ɑ.EA3`苐ŵ(Gm}[wsZaD*a#D>Gs'4,+PYH/TCX)wb-f->bp]TPp6cd)L|`s^HDaj m-܏ E9Mw~\/?hwt4ͼ>FM9ȱ}md!bM$x a xkR8)n/|AH6K~ei]Fej'$ Y^S`Cu1R+nCpcM??邑z$%[0E]\ hЩ`-" 5}LF6f?6ZY Sۍ׹͸|糴 ֛]fW|"Hg構|,v-ꏱK-7ɇ 5lBDLT$i%,0 nuS?wca/n3TeӸht˩ *" {sUPZlԽ숸vW@Ww,Y??QA3hCĮڟɳo3A^y歚|t6V:<ڹB*ymYa7nbUUpRuQ4(r,.lp{kq7̒jSirOAG H%'TuD-; ;Jآi0[K "aI8>èچ>_.X 8Uԩ5槤mR baRpJ_`_׆8Q { .k@ :Ғxnr,撓g' p[?%e0SSGٶ:GRrnN|ivMxRqwgŔi ޏm(]e9(mA-!v"TVNl۔e5b+No]EbH^O٨uuFb#:~ F 4 N͔֜zOBBpa &˥`GG⤞|/ T;'~Up5_d ޸6M}Hq|~/> (srl1ϑ̊V]%311>02X= _pi3}okfN10UpТVl{/?B3>οehȥ+P4XMŕ\MIqaz`Ж<`fD θUuɅ$d64:_dU Z ir+xR rIo{@Mg㓓xT6= 3%}Yf[e7} +?XeYk`i^U{+PLiX00p<__b!|Zg'P[ o6wg[spYi3Cazs_賢cҕuB/4@Fpz$lU],;S(W&ӗnZh9Av~g"y&DOΎsBI_~Qkd~ba\P} m2As#rI(CE G 1$Y-sYAXHUz%D8n>|`2O)"Þ  ; \\+\'~Tz$D;ٌmfk_i,O9m]f J--uW텘 bqQu[ RY5>3/qYg௠Q[{7)LҪoya NE:LRd#C,[pLUNj[qM@ Ep2$>clc @X;e 3+;aVeUvg+^$<:it`(`tVj-}EQ%i57I⣩o7fF{p"Ap&ZHb~607 #: vKᱹCڼR8,f|-ȿ5/҇ 5YƾPu4ڀx0G&sd}ϫv1]` b/C4 !Ih bpxטʐxAҁ},8!1Tj77 0T+/!8"`^V]k6h g 'XyBR+ʓcOΣ+KRQjj#Ľq5ʕG bK} s[)݊Y?2Ez>NC1;j]˓2{3we1hKЁRU}s87~)-.ѓK@tð$邟dF؋(!~(S[G`"=YӔX+}GBΒ ZeLd{u_ In.l +A=J5& Zd5J$9ӊB#>Hi[`!dF<Vp f㒟9_B5pXڨ/okQaYzE󌮂E l[:sE}Lݐ`c_xR)jac;^[e7SRo8xAzW|uT LK&F=j }YXz5*;W Y ׄos4C&]@hHV҈!PlewR _np =pR@r,|cu~[ C0h,ߖ0 yPNR߻5UL/"~Ғ^%H/.3OV~뉋4rCU% ryg olD6\݌.\.A$:L[w 3EC ZE>B+ϕh/LRW(ߛ<(q%a&:lA>&r}_h].5J?(4AhI\hi_{^aj:h 99Pe/A.rmvjtyKN :=)7$Z/'NEӃt俶rx+fy VWT(_QJݑ.j6cFHbdH>FPm;'s՞򙚏ϲ<6#!x\%/f6n抒H? %zVN2|jpQGJ6 /tڴ šLH6>&Ce FFB{ݹ"}h 6żx:3=s1(3{uM8`˴Pu8/q[b:BWãkõoT5ѩՑ\ڭO-_8)2Éf6ȁ+ ު6A6">o.{  f$׹$CmHChu"?AcLVt gLV0RFҎ81 JtEm>h;K\%`VVDP$ *bޗFe#Rn@t>4rTv]mu .WkiSw-aB. .QF`3)Pkg^~v#|}H D_1S' k h~YtB/:gMD?KL"WZtʛe9z6;uFb\ ;08*ML1e`=6Qěa(G[{qYGG{ӬzmcᙁnB 9wƺ*a#RAf=lc-!$ԎH..\dg[ NPع1ۭ.U3tv/3U(DGt k<-v) qd"^y/sNJHK?'p D8%xCqt3'YeM6.I1hj=z25 n^DdXȮJ \Quk" ;iHrj~2YN,;ZQ8/PC#*?XSSX缳5Į15gETQ- _Id/e.'R%k),-篹zu(] Yg=숻ϑmcHWf ~Sᅪzа׎W4`,0V> L VAV3elJ"bBre#څ SRoM r-_;*|LW a%:,.+7?'O W3&I)|pr-f遛Hnd#|38ˍCYR1n0݀*_R X\ hmc 144LJEB8tC8CVE:wQ+ݰԓ_vdp-Ui0֍ Է䅨gnVWaZ&x'lyA|ӄW5Jz /S '@{ym\}<b5I(},ViNS 9d/KRJ|rvE5?c;}`>ƿ;@"lyC,.$*HPBD&vB7(|vE1LR{:7?-3_姖7rwQ=5#no* mžW3cX}"aҫ#OTRZ=6)}> حiJoS^OAh]jRt &=*k=`h&༾gԔNt تˢFC $NezM5ܱ?O<.. W(kD8;ڀ#G%[%]s[NB1)buXzHЌޡ ,O~az<~qW.Ho?TE:"[w]i-7yPjA?Q%6ok^e[5M'[u5|YזX)h!PR"ߐgřy1'^g?A}y&nN,ÕjR:lsr?vB0luIP iQ8ӏ@-m7wБpa[0h*D Cp;%09tv(mtnqQ3|q>{;VnZG*nS]s6ݡ2*iZ'iEkZiZ!xwҞ|B @}:Xx@"pVn ]:_;C9ȩk 9(C׼0篺J+eSPۜ;7hا E Y#Tln<ܰ]F+@ClۿuymS DiZ?UYQDq~ vL#1PgjpI'-ETO1('UE"eOF\( J۲~Ӛo K$3iFg(p Z2 -H4^Up'Zǯ !FkK8uZQZ<|Su+9X4DX(^xxmNݍDړ>M %2X&h&LO6GHbIgy"XNW6uJӒ[qj\Kjr?8V ex g;7, 4l>X4glBe\'k Cn)Nq1wSE T#񤔛vm>:3-*Y Lle)b@Bۻ õEB9hrB*a5#d}:VKM9$m+HvgD8ƍ@1l(SCŧkv6m,[9M|Aƽh軌`Vpyٓ7 "Cl"fCgf9RVȺ'QJ{Yb}؈x? ~>0Frߐ4b?PDy !qi! +Ƌ7{/!yyԛm}=>92n쩂y$ic՛xy.YGޝUQny>Tae;a_rSɫ}}n.. Y}꬞NH=_?IqNA|P+3̏[8u^l`k#e?@ظ?igvJs%Y(n\h.~T.[NrzSӁ = @68THEWIL7d0?ZlWo`d}+qƒyBBXbq8=q=pBy 1M/S/{?2ȫh~[E1D0/DžKp9u61^ ~^\tVc,F}Fhiۙs`wMrjeJSKwNP+(՟5Ҷy^aArA׹ 71>GK[nc 5+9Sl "U[| : ]r^3p2:7wbҢL|N.V}.oܿm9|(ѻ7|M-e\B&@S/+).rs[@cPx{=ke(hℯ*,ˊ?P=$gaDf֌3ֵ,$}wDY5䖙5Wfh&6X{hRG~1aWJUϒxNkT`z*l .)IZUJ"XpNcǡ|XkhBEf$ĬG{x?Ir|IPa 6Oys] tM4eΒ6gU2F![qȫ [8 ݚ Ӄ0tFB*:N)ar/c[kRj! [d]ީf7-f(Jic+;e9@,! 6[+^Kޕ?|v DnwFA؎5_ uޙMW TA0`0FK :{׽יN 9(B9@4Z:_$ii)f̰lH"2enu"&tFԍԽ$ïtRAXy: <&)H\5:2$+Ҩt&*L%uD2I6 24!WȆԎla(ز*%ukЪ^OLqQ7OEqjc8ɸdœ^1#юQۍKc5DSC-i,ٮbǿ7mrXeS9,BһI!~-zfLc2On՘h0fZN. A,$1 spd^C`/4.XǤW,F##863sg$uB)h)^E޽Ypr/\&zS(_xƓQ|A}-s 躓8@ 8oܣB6i{0Kt+t|FՋsAw:(^k|v)Fq>x`[4~%(R# .k8+u~>Vc"#⛂9GAGd'{08:\QLrKv&; {1F'-hw!#&Wml1r ӮV ?K ^y);~bЌ4ٻr{v@8Fnjf n1ſx'`2\kՃPd:QweU]RSOJvJb؝qu繖]$Swr},8?uk5/vKz#PXƏ N>M\Lͮ1ð"ӵΊ5X#g$ Qs\0K۹¥r)E rvפEd#FQ"BE,bZ#r'R#Sd-o487|]M'nh[NxmyG`g3+杌˿ ASlv`AwI|EOR/9n)G4u- aU-jНԟϝC96>OGVj*#,ۆYAVV/f-&vށ 8Eu2m|Cqj$K\9S5~ù X3˜cF,hC"п9(jG]i! ?b2ճzӞegޮ~U:VM3jo:HzzMmJig4ݼ;W'za0pή(oS;*"(\mr}8 @Аݷm + 6ų)wNn%# p͔A$C9ޏg w5x3,¡g9SCvTkإOM+*kV{v DpP"s|]Rv=b)<3xwƠ\ g;-+SO ݕ@kcL{Fex+XTS!~ϲ*6i7y{[R,bXl_7ڡ= S> [H1{cU@HY7H3hn}UChec=E]""d ̒O~QE W G Vb! Ly!zk[Ԁߍ4B jo 1#U=ڬZGB#{mVJ&ը. VS[ MCޓ~@wX M5{X Mgޑ\}-n$ϯl&V+iY- ofkˏʲrkCBhHVI@!-x<kp[Ž3r:Àe ܙtuzh.og}-Q+i0H4fGy$aă۹" V7{N5D tKzm|v2[F$(;&y pB ?&a6y}Zdl0*T_tW/@15 Awi_$ ˮDCLX"sj9гg_"w^3ܼB4@pVM>Z*wwPD]IMС8&3(VПq;$T3XƦ0]7K"ҫY VMCYf|6$& 6OWe^ʦ/`[x΀rOju,3mteszPvH$w6H dMwNER=p6MZTC(bG@YzLJ-`5ŕ ~;4.ߩ[.fz6/qk`KUcA /r̘YW^?"@&2VOmʡ`y:)*.ŏP{wO:D&/dLl%^9HъjCo ';(IJB񝂷;ۂDM)()ŝ{u[,su~C%bf@x54[i]%F\*+Ԕ񎡮NWz8"6%#gGOlF\"Y/A}L/6"-Pme0 f: Xv\MJ^uȉ`q <.;7cđ&A<c3Q@gGXBy)V͓-#uhA8}9ZߺS(7cH%OJ[`\4RڋDt_pXHM[Y) G{\t|gRL bH5Nب:I5RwH 9è;twhlr Ďd*(b8ڊ,Ϋ+%y П(4s<(~yPtqt^FpN&+Z FƼy9~䠮XIqMlq =-U&ɛ9ݳ&:Ey[01,@_GD!=56{E_=3 Pr] [zl`"_hWͶg)؜>%a [r)3ߧs/u[e`Sߑszv1>a%)ti5k#Շ=I+*26 Hn`{:hXYN Y"1MHktn|J^5:(ӯJty _KcwTd[} x6W\y[_'IAiEZlh~0یЗ?g6C5sF E'p]=H 3nr_g1vIgd`ji,}#Q@ay`oGfsˍִ %V3V}57m'$]P}M4X TUt[I4bE|ֶ= YRX́Y]붳]e=MvchVN,ӛ9SIo + 4U*"(= EuZx0Y_+B`1k^|'7;4T6I)$@ DyɂRDC0`W; :cwtqy\>@_> u\͒@A6>=&H 3kʨ,W3:cB,»o4IﮇF4 O*LFcqJ=m<)ic(%%idɲn[4>A.Zi% 8bY]^kz 5jbC>6c:| LT.i6מub)! [#lУN5 AL+e7*-%Pd P6'Э#4DR$2 綂{":5N7GWpUHM%nEo ren%?eCY{*43iWl81_?Z|52⩑ГITݷ_ l}l=*HYbj]@-X%aᷩO{"-VP+C,t؎;;X'~q)Aq|1fMn $Yhf?ٟY,; oѧ?B2'\n#bI`H0b0ֵ.@|%rwL}LJMC\nX鸰8aq&}/&-m7Tۍ~M\WJYېj5/`ٵppuBQz6պ6Y3CY IG% 8&ujMU4g5l-t2Ah. ]L̩u#zٷw&BtQ_X?O, MLR/(Gn3D?2^,y@I1JD>\y#nHH`BCF<7_`=ܝ{HA%=Ej{L~JtS!yFhӝ90 ŷR<_lBq|>5%heeu}k̴ 1 B[oؿ ,P*sv-cjH\uX`Q]2_o0f]$ʭ(#e3>7Ho],4T'aKwV7 \XT;|{NETc?uƣYHK|I>GKe]ssX~[^5/H^o-y vۓe7Tia㋰Y,2ES[?4P>Pߧ<;Ȣ{Ru]>7:&@ 4C e;y>ï 0wS/G 9@1_Fuc:Omk]䘋50[ڃTD٧62af<[oX@=.`iH_Ҫ"e`3t^<w|}>XlposeE +KlirTsiԝtA{|{/ScʙTIvME0d }AhH|`xĻzb֝C֏`.Dp?F3qëX]Șnfwwd:LkZ1ԙv\}VT"]r>a2\*Sy ")sU1 4|6_Ay QsPsV}Amk*j8]Bro2!_ij&1Q_L̒am0;nh{hщS~4憇)s,H=?QR`{tf&ڍvHeOJ/%`N|kfJEڜ{4v.*:2]WK JՖ‹EbmH5,tk(Q Mag^XjObbm*rH"'oO. KNFa)-!|®$7V[ al&=&pfIc_Cy j8OvTjK.0fecQx|"zpP77anS0E;J`96a~x- ٚ y$CxWSVn& c8R˛;{l 2bbꛧDpM%/5E1z%nR}I֞;D܅/ߤyX,7_(J%At9{bVU,1B3\xjӝZSq,{XXTVM5V2"M)gsʞ O[O Sf۬L>Bds6W48+X!8Ic%3Q6:1,Dxqm;=#?IP6ńl@G3ZLO0%/ nOn.M/CcSЌyS`{WMIf.N"gC-8sY`!5QKzY[+L$AooO`1$28rB%iWv=aŸ0AW!`Xg`+SNS:md*>Ldx 3KVmuWɷVUąy?o`{ZIUZDJ! >EESX\9 RsYHV<횽 o؊,q&˲+'k ?(}mK&: GzIZJ[))aVbRG@VᨱU@*4ٵWe`%MxCc5g!L+rȃCގrЮL?<| Ib=bYĝWgC{׌鍕R-7cKDUƖVќe&Zu58" l;;l5Fd"*SǀmÐR{-%uozBuRNO 4M`-4=uŪ/#-&щVJ/9*2޾iҚ^'}}x+G:;NRi=0 W;/]nz8OH>E*uG4F<7٦K[/`C '/s\s_xsx,SQ!Ul.v:*6g|c =c4:Ey yfd![t +jZ 𦰳ē5`4Ŵ#9ޤЗopPb bKYO6sL&na7:ym74^z`3mN֫ }8QؔcTTv&F;j%oy֔=ɐj`q$ɞO66K7形WDS$U?ʡPPNi?L{_ IZEKS9\YQ.-5`휫 vn익C4jZqI H8<ִ>52a~ou8g|!~?5L x/H,B!ȌҼ¢\CY> bJV}u>~6 B&VC4aIPdͧ:@&Ҳe(&5,@ 07W/cpMgr>M6`/J:,+|c4B^DC ?\E b^k"H+=O#?M˃SM3ól>ZKs!ʹ'Kn1Mˀ#%UMc(0^6v$ ٷS'|Rjxzs|o8Ǘ|ֱ hStpdwZ*nNɁNEgsTsGhڛ`<"DTeJ^kL|؉mW-Mq$ L5nm5 68a [$jxJu Au#7;o>ppFmˉľ׷ٮh)h `-)Kqm/`^Z&_Bk]$~BN7]z#ˬ,cŨ#T:=Ζ39WiMV`Rv7%~eAB2֤c9P+RH#7ٷ"mk'td)͗pu|*}A| fN5q76qXvl"&~jN9΁ `},-`Wb4xJQ'5=\TW*L7?gB;[$ ^:wF6;ݝ숤Ȩfы5w !, R56 + œɎ;8鼢 yhg:eQ[ \8@َꅷ6c fr[hG `37?Fc^-~n\`"b251^"H.ɱ?6zt@[8 u I.HɑtqvyFa{'BMq@vN( c??ȅpOh"dLU껁h5C">B FLݔ\uS>aqќ6ʉ {72iЋ0ri4ޔBx,ySU#z~ pƏ\4Eriyn@oZhTC;nNP`Nq\S U?+?z x:.tZОN 5k ~@Kh g6߀CgsUczn$ il±_ h4&[msշSbGHU_+Y _K^?6cR5J:)!;Gx6j:4P@27HB 3x+ԤxBtUj7xs㬲+JA_h )gKmwlYiBAN$` 뚂s(TlNnq .ҔeԸ`aEݭ<1 ?.,[=/ WN%#ȧ@'.u=<-t O@9&-Ū~A&UwuEذ9 Tt]úO'MH J cAX[q jC `XfֻZ9iG6:cEE(w n)oz 3Ӎ ϱ8r.) v9J`Qj.Spa8ў{."b!dg@lGQ4_(8*Q.ˠOuAWYsBk'riȉuof gh lB=Av&)4zUW9 +˴m֦xtrcR^Wb NnX Dk@(_oKLhWT7%[DAB4 uUb-U>S_q:pVW|Vr-#s_F|Y\fQ ؤjg#;G^1N3BB6ֈ *Nw?@ϨkeMt83lG{p!-s祘TG{a:%t}!$(.Ue,n4Dݛ 41.Rŕa|!֭t@3qoNd#L aMWwSkyNp.VB(I , ͩk"FsB wK)"( ͒_k qJ]N߶/`AW!A[66A 81}A-M!M/mbrO) $^MLTGO-5A{pN}O.xbU=]|it츈r|FZL `ELi{< ˰T'ɠ#zL Ԃ+"k_Ai~<"mK&MYy W_BP_.p:o1|_Szb]|U٢YE'3!2VQ սU zVG+f>4<.W+WkwܱUM}Zt Be$ٛjd/!+w%ƻϟj ϱ<[(6(E?.S i?L0]I D30Nj<͛b~)-/S#M'JObc=ܼkc֨?8vs؁Rt8%)G'gJg}2S[q}nw e+s& 1 mz#jDs3iY+E1Q¦W=:nT?U%;7oN )N ݲၩTp"PŹUoB~}Nă4X %2@s $? (#`Yٔ'*+-Z+at$'릢@VQj\CԈ3N@DP j,U@c6wzmK21 !tBkyk5Xc#x5D߇wmTf,9c& %@c%vE1,0il0T60rЁc&9n2t>plt+\nyd`.VL>|xfHPTT@RnSP,~oD`wα]zxA} í+_md +d6Yr|Hpxm4OJ, kb5,_-epsxiq >\"m<%4s[te5$΂gė.aϖvHA[ޒ|k6%.S!,XWx@z1>5Ԇ'g/_bk:` mZ"K/m/%Y9s%ʶ7$oc%4lIJxV \'X۳* 7$uWP8QO9G#ӷs<nqk=Z:MTWQu&?GxCR洙ye:g6#]1HOZ IKlϒO>}ւ }DDg R$}[#ǿ̇a0 쿫> L6 QKmp+PY`?mj]0-ug֎Cy2aAYė 45per z) Q] IDBL=*rcj{.H2NA^47>8,h2r̖~>"PPb`ښzL_J|>3CI] 0GQQ2ƫ' 7N/氚@)ZL"yBz2}U>ˆny$͕&cg{ k4뒉DPFf;т 낸I4̄CAP=Ɉ0SN|ǥVVF Edp**#M4 0hKX69Op"me2<SlXG0CzȦY\%C=_ nN~sxM_iJ͗lIĬ[p:hcsAΑ)nͼ|J<5M՞cyXlW6 h/H'COp0 7 f($m.@#EfXGj ,t>9OAM`|-ЗTF)K~ص ccH%8am1s ej+x˰N(.c@1԰oH8ڢ˪0.sى_5z2dEJz"s|AI}Nm$-ꠟ1|Tݒ!^#G<(UR1 8^ ,T3rId]nk#M__"ںb~DjVPP*pёh!ӶyRmAka|X f o=I QpH$iG*%o9EECx\H]8IH AO] Y5cOeݩ ڄHAM*7e9zOkfTr3nҡ5a2|FӿŁ x5ҼYV//@pw"<~3mKdNVFb44խ ]kw`z;yӫ%f)QIc俻E<9e^Zx@!Xl2r8W{}|x6(rws@WPG2v}&ŮFۚG"-S4dcʧԦ47)FJ5B6=I8/XoJT/{Pai͝]njq?R3E Yg1K{ 6GDnyq x<]QT&1߇G#Mл=P4ReK}nALYO-<{K4O zBσIVQ$/l_N1f@Xf5 ` hTnd7A~97>;}e Tuw|̿V}%U}Kn51ƞjCQuR S}0׊izPyxhӭݮ7tuZ%OKuZ>v4]lsi8 55!Priq#e|o an1.tWodU1f25VA5>.2,QGis KT:~jΘ=@-ibxp󻌋?N*<_=B/ {]|#-Ss/xsgh";YV]Mf۞ ` fUۼb`xGF Jf~Ccy  ]1([ۦp/d=@,1̿RL.}%62<8jȧDžrҘ|YI%vFl=œS W];aRwz6%,4U0Mt!A-_k7UЙ~Ip>[29;~GEFY0rh > .{5X~hL0h&Xi(8<# r}zMޒFx`rEܚAQPdA,E4F$ciLmŽb(u:,یoTqSo눷 B[ Vns"$O|%6{/-ov)`uT#-~JxnF%Bag.w89d/$O( @0bKn(MgIso1%HBxvlv I3F.W2U($dӗgxyc_PVsM*o ? Q @7B)g ] Vpxl-"L01.GM|^'msIȇ:xzloy>,~B5(d'׊o ɰf_Tf5USu-++ lo ]r d飇\kN#ޛ@o)ZT{KݐTy*y[cWs4RgHHt^kQyLY߸mҗw@s4aWpTRfJA#Z es Qŏ)a'p L im!HL挕D5\7a]_R7~^g0kSwf=n8,y:hUBZr"_K)k&EN\^oBC3(/J\E#tm$3{z,_Rұ%Ď{6: ^.m3T7 Խs8ty͖Zu kiŋtm[z#eۥd~DiBJ}ܟ/0MeF gp 003ͻ^D;o7_Lev25Vۍ̝4.W='0y"ib-`<洎w?RP  6-V;G:hpA]rНi|K/[>5*!g]\M엫v{U \5O6OMKؓ/zI?Y/ @(of#\ؖAScs4ryj" nḣs-MHg+Ҿvr61ô+a,U><$d!:! 7yy0p/j05BlxeGSguȔU:#فQOf/N`:"WqGfS7!q_`-khTBMWKz vtx@&f!t9hudƊ_ne7jgi>r(kE{'{mS5KNJV=[c<7]x02YdÏjH.SL@뻛) GJp249zs؛M.'Gl6::k;T ΖVE[)5ytmx{\('ۉbZgI:,: AY54[L0zq@gQmj ]8 (H!/QφQHJ..@-de {kYѥwfOUk8vm%UM6V4ƘuEx`ft*O%of-{kY+4D݆g]9c+!PcЭ".$B580CO/&lJ$@x,hj($vxoIΌu%>fcq\yًShœ d.N-eqθ*CAf2 ʝ,qyp9۲tAY6RN. '>=Jʀ]&gYUgJ3@~Uz-vohO9=wGJ#F,QQ m)C$S52;bV3ZON($yJ3>@_Iq&{[YNp>DMfuXF[oZ1ҋLX`Pvc/ lwU߰(j6\0!{Sg7Yvkll[˒;Ŕ o`q%mjkUH$a IJ׏Ȋ%yPֶ\f#v虘09h1of\ڵ[;OjAȲ"FIVd& Igق@G(=QHSQ2j۪6z6_G"R n@g(ה8J'W^q_@zdӪ@-WN@Y+2}|F67xڟl7&fl1Ŗk9͟4;8,3?j+xY%ǜ0z-e`EUĘ) %fnzOj.`f:ۺ@&8`{e83&Ҋ8i9th7swTɬR;lΆ$FZs%?[rSM&eR[{&:Sp{ڤ2X)4m9/ktjP<=0hוv9Â~:ɰZNJNxx3ĥf|UT(\}WGAXL>wB_%{+澴XP1GQtZB0oPA+kORmr94#"zZ)5]/b G㇜釒ȲΌc~_4Ldp#ؑ_蜣jzЈ &=z:,6=>6P$oO.Wd]d ّkF%68jJ+0YdA-y^-[9  |; 2z>ln:cCVސ_rnWt^@ =3nU q.4V($XO2 JRڢHC?%iSg耒|٨ 8%[+ ߎ{c>!'(`(NN2 \a"Ie0J^kCQΌsԣUu)>O6wvCҽC8=fY̬]̾u9EEiׅԳwв,Z'xǸఽ,Iq'WͅAG@\QA|B9G .f \ߎj#e5֋ϱ?(+[QG9Fٍy%ʽtrM=Ɂyl'n.V.:"PT߮o|#% _ĔeQ w8lL b7Jj݀Wb <9VZ1pxf)$N/Sc呄%^x=.8C2^̷w,B -7%eJ!(ј{ #gC15 ZO쿹,,R&C?6yb̤Ύ#cAH3yH{)xH1V*GBJs!Rpe  2m}AMUX?;'pFrAm  v%IX4l 5$5=.cl*#iH4< J.l8t1s&lkv4n:+r$LѦ=.Thۅ?O{4ȔFMd= *xt}1x(!F%ycvǐ>jjDŻv)-*!,&HqoxA}L!՘)vxIŋ3q]p.'plUᾙ;hɕ1vbĿt7w~cm[״J"^4@'D~FJo5JER?rEQW]oj}|cʯ Z+&.BX+w/)ʈwfIٔCY./{T ^w+d;n'H1-|:>>p#7#9Q9ņ c 6᷅ \( x4dZd&S[[S$6l;M䚌#s08E-j#"7Ũl#jmӴg+ķbw"-Pxj`S xo=]UKKrĿkѿϤJe.zޣ(>BbR0_E*/-UԟU/|$y&ފ.!N/ۇn<&e] UPi5 z2Հ@ {z<2FX6XagPY1U.%܄O0qS>̏<4B?0^"NQ Yek%+~?ĉe;–wvRdț;3v.$J9" цҘf` ebb1qRma6_`3hT u~k ӴsҊee:/DYU|Ny0 D@U-Y*~ KqlXܮ O3P~,&\vc!T;߆fPifSR ݮ3K5wY|tiLZSR΅ThŢQFL3 ͺ킡.:>Ȓ׭ cy,ŭzLsOAOvC&Ii | \%3:qZ@jt#;^9ڑ<2P3 sUƧ cF Ud*`䀫x;E*R!P!<6ݒ3?H6Vi. ԛzN 6 b:{Pi 1OSqg,#C( /w4SD;(K|si)GSbҮp27hz2NcDN+tSUa~b'̏U)$q0Qw.#?R7,'y{:PvT Q;\} -DnFI|wl@ [ܳ}~li@d*3OOn(Ǝ-CW%p LZ}g̷)FO[}1q!k_ͦ:8ڷg(riP5j _Km_XȎ )= 1DGPbGُ5(Kz[ [?l0,$b vf 1f=E={,>l- ,UE% 6IʃrDm&^wux3nQpyլZp`^L1CxSLgMiY*Dk.fvgy BTZu%BE XF.ǃ/H8ً)]%.b +Bt9Ƃk^BbS4?-Sz>ϭN{673&{'1G(TC/Ո` h: ;@dW:K3-ޑ*jXqZ%7BTe̝<H `l5ʍ>[ѕ AmX6m~36O5yd ±+ǥ^QhO^|0l^oO^,{wTLKʟ''iBw @,(xḮ+ooTvBaj+Alm(JaL=5ZZQL੾1o#wIbҲx2w,kaH;w^Yh4|^& TX$I.)gI{w9nQDZ`i#333Mo=R w/j %5=|۱HA WDIF^̓1TBLgT/Yi>~!?07-s7>aeYU#RڷP,إz)}2 ]#:HI :Q_rd󿜩x@xꯓ&7*U1;6vUs7OI[aD5޽G}mooA*Gˉ5 6#Xjam!i:|j}*HaQ%|ȶg(/vQ3tܕj{Зy3&@P΀2u[J ¡ EMB Z'ER[̉Xx?MTc:1@)SjǨdM($ قr //#ǸI3E]*8;N&F6MW"!_ۄڸA g>NViib*Iaİf%Q8DF3| N\o=BS;`yCm'n7 z =gc.2Q ̍B)ziz-ȂkLOd;+mfGaBV-/ kRW>,YYzbaTjСᜧ\KĘ^IOH~Hls[>؀oس ݆f,J-8\2#8|ҋovCqi(ѝP[t5j$QظVP }د(\'MlgvɯG} P7 ۤAgyp(>jq_VM֏Yzsfd~y\+(sU_O{+*k0fizs;+3_s1Pr. JC]v^c5(!(v0襴 EdSuscM=jI~pKQ*eGX]}rM gzTV&BN}E>ޓ\lh=@>gzOe`F=>/+iGr"/³Cתi0![pطU+aܢy0jnzNf?SR>kynvmN) Jd9FZ-0%iz{!-dCCq@R91<)\*UP:םQO2[. D g;j5 g\;ꓩ&mh-~zl>=98as *i*% ;/3^z]gDq;%TOݛ;LR%$ x;;y]x̰$Q͙nRCc8?, 3NAC;=aB=_UJ {{7eP5$n+J41&[= Hے)jBBGYqT0̯qߑBzmi[^]DǂfB8\+NTֶz. rT\*#s ޒt;%zԧ[f@DP36)07r"Qs>N㬫[|ͤh V.E$J%r!ў)1Mb)ࣈy0H}mKfpubTQohb2P!.ͯ[HA =RW*C^oA:3-Z'e`iay%KjQp6A=^Kp2v?,16& D )dq~Z(?ZS>i݄OR_%r{`?/u更13C@u{ѯ3%3R흥^7D@VÏHVqJy,d}huT`_?bxp=fp:7K@RqU__޹d97~7V@Sz\+aEZ Dx;?X0} b,JtLĽg[4[h7L]Q̈e?1NRasO~ċJ-[F6HS"ug7Nr:Eۡ;,+E^"Fo`$NArc5U'Mɖ]Z|$]\ [LE k=6@I.6v% ?UON~r_-MӚB5`> s(b)#*;]1\ K~|L3 9 ܛ7GOkN%!8*^_v6F x̑>k1 FA;&R:aK&E'i J\2 Yd@s$9;A/qIљe}'o5ɢۉ7RK@6Bb(n~o?DWLe4o 3LJTۧ?OƂ)AiJ(3gZ_f8oU_u浏'_ɮ)Zu1QzrziT | Q{ = O=Ym-\a9+%W'kޡ3u0c;$uuKXp 1F89g$HfŻ3xi}j jfjQH1zJ,4C'F*s쇈LdRJ>O~l*c+BM%" =PMkl- /V!eUk@ăi" Vf:%yԛ^!qhb{LVy5*cj:58`c .{&BQ2;jxmjpe~K.* :,p~p םlN5`҆ AR'Hf|@v5w-1>b % P!%6Eo7]|X6=K e}3M}g/0mG 9@Jf/7v\f2J}ٗP} u6? qN<(;YOVUQx54:`[?&!{~d;qm?WI}A9>fblT89*4nټF1d!8jio9W";ѩ3>^2:Y5Wwx=~ uP9Ĕ<>W"lZF50x $bݩ  R%QQs[>6g t8'_"bVkRj:v*Dl'0Rώ: Orf.yYY}cvY?:0]$cDT,k{4~& 71CA7VTlЕ܉Elڶ%l^Ie/ZNP$XΰxKXhuxaYnFuI2q(^ ח3zE 6'#~4}cޣO`T]2 }儜|=Ul_kzeIpey" Хj^Dƴ4u"%'%w)XxYU0޻x:&1 {삡oC,&wG V/vNs|nR2 {%AJSuaX|qJ}PF1t&^=GHC3m\UPjհ+UM"y8[8/&d>]b0|<q:)? `5S#B֎.(0hK ~/r@nerqȒW◂Sk8vt]:4>C3FG4pc'K4{nS:;#rL- kꢩͿSi̽bĮӝd٨ }í} QaF$<odaο-7:pyoIB~^ѷbcUw(pH"#qKgqY9N@7' cJ+{ywj ) 3Zeɞ|H_F盵:F|8puWQ\:[3'jPW~NqHI%! H{$F*('1}DT™r+-npڻ_lta:fxG+>/X7]MƧ_SMEJ$K|&`E'58nԉ#~Q <&I$@SZ(/3EI?o^& ~+6=3Z1FPXW&9h:V_ qSڈBAuJi5Sl \U=!𦆮([ot?W~ J&!{=(&@K%B{0f"Yyvm`/n#rϴd:Q%}կYLC7)K蝴KubMI,v'V1h=B9.DjCnBnFA*X/{eg(t;1Zt'f<_f0,s1 @ V JnnZ;b3 &8yЂ[5]ӈ2YDڧKjgc- :.J rKXXN@D(KLeɅyYG>"Ɋl~ \1Pyk_B\ͅs9:K];ǨVhfh& 9u]M> ב2 Z1,ۿ;jƌB}獆՗Y=>+%npDOu,"p2pڈ$Qi?:t݃-9XqpJ)@N;1[@ ^CO84:Zv8qq;  g%r;UȆP2ʰbX@(CUɑb{c@O sj6zܡ|%C({C&a;PTP,WxCYH+N.Or⣗{@NMT|nJW}n.JjP}은xeŔ;&xr`G4WAl}~(FVv84 f1Īwmf6d=QWNd' L}jr.cpT2ͯa<>'Lf.Ssw pio+ G8 #BFp~kتg KH\NxeR,͋sߧb16Zދ;rBҖve"ef2DIh^dR0c\)bkA\g&49ӾO-BZ ?^8Z;k>{t[|vٚ)1\}ҺGI\ ppez`r]9Wl ɳp8h GV"i$>hQ *,2n"(1r`B&|A|])"KT,T MoZ;%ރ."bE^mIƫG`z@0ՠϷTjLįX-"=M^yՈwqͅ|_u-EOmV"Is Te3ADڃs?&l&qo,1IvEK-s2~^ˉQiHɟdLHu`KVc!2= ^W6MӉ?YIzuiq%{S77&p2W7k?QWn7*Ny?D=,:nSË-E@2vq^SSSuBM^8$or_cHd`OܙѱmR2L3 PF}{^GV_yQ4%Ѭ]4)S0bL}A/jm ܈04lӃKIQ7|br8t}얭va ?^;D>?!-]I0 ^G`zTй8LPY.)ohqv|ȀKjZthɃ<ϘeI՚;qh+Gp3Hʔ*t@'F*ͯYn ND&ՇKx>PE,]e#)p"sޤUJ)e 8 w~AƼSHykx^\5w|u-rdVeG&`?;[v8Bvfg,7`69ZQ2*`: $?+(C4$ۇ_BEr711cXK`X[kkbMFv^6H -7}9,q;5b`'5ɿ v+(qA5y ?qx]#%_L\A'\, oo ɞ\]|kإ1)wgp "9%-%7uXN,vmv9P([Pl,k5ElHSvhrtL4jiLJfwDgk=?)=* vd_hȃn2If%PϿ-g.!J 8">!UN'NQ444.3y ;yΛhi"TiplU0B-wm}`!nFBXd弍o=\᎖pt`>|Ly%-8"`ɽv<%M#VJ4Z4/OD H*c-}N6c5Riֽelgܛ/8˴ )e .WR\D#sHc+l';Vqy_'ƗU2 m:!$Iw]9.ICt!:I%p4*C {۩3)b`{Z4Ó2_Aq1 uq Df=lOOGFbBx&S"beҽidх[bUv&rBJa#tłMoIAXQ }эC3,iyk y.p4: )9U1㧩m8rͱժ:giӫQ@4j iZ9ׄƙ/"L[zV*uY(#[/!; ('%qLb14Y, GOn¦@Za PŦֽKլqۧCB`3wIGGg źq}~^| 2 35No;~sη1yo1*꿕,m[?sŏ4RzǬ4?joVBddV%<x4C.(ŏ-y=k65![y\aH#J]4'H+Kv+@oܐ1;*v"'l={|>VjeҔ \o\BDǤ '/c?5h+~9LWy;urBF&Vyʪb!9]Wf+f1Q1;Uv@9"ZP?A&0埑2vT̚*]"b#+/]BVpN Fi=+3t ݎsY-#;x_ ^ZLmU=-wNICxY%|B@;xFKKrG'>u 7!4 ָPf=mdɡFzaKOBNrиgF=jJd o1(4mLH,rpNpgYfeIU)G MiooscdW=K̿sz*"H,iQ}@gFxaC}bsbf)Z ەH:߃ZU% .r'$>s3֏&jR~=g/X-!) Q&<>00ǂŁ$1 rMʎ$qS~w/lExS%2mUF%D[{EFl;Mf+C .ߠnG!jYWp`e2^,Yt78#XSmh#՟f:0kIM<<% ]31tig9=YxE|.\]o܂4ɠEyQ#YYrh8|5M}Q]!t^ ԎwuS)v֒%Ԏ@Lh\bx< uz! ?ժ hDs;8͔RIZhOKw> RGѪ 7YfxPG=5 :p&z6e$QwSSgGRȰVG]S}jK/1bLS?w>Wuu7.Z޼ B֙%4ҜS2[8udH.I;(RmkƵcvH!8F0[{ۑ tz8%=xMDm%YyPWt ̺RL_P?>X5!5 _%.f# o|+Ie_ i=@ a smjb?>nI;d7f=R]s'XnpF),9\M9Q79n=BiXj$Zo'/ppE[RE<Yo+뚟1o>0ce2ygռؘhJ(+i!oQ8:IZ2|u]S=<ݙa3ww鏱Z=o?KG*91{aF50:Gi[h K}W3"mX' @{~Z\ZiگƅRi+~Z_ߣ*=Ч2m5-'Z*"?kynzf!:)nbc G'|Uqfvl dx qd9,+ YT/5wKT'ajT!Br#3g4cLY 1npNUSDf 9ڇ-Bj &Yز'B>jAU7c(MV<@w|.EĊﻒ#(QM.ǔj-Ubref }s5}P +VL= |c=r aÌgl?%giEO!W/:8r- UæFU&=M\ESeuNn= ėWf3xyt'ǃJ3c&(<ݡ~9tsy)Ό6p@T1uЧGK3:M [p5p۬!:VkHa5EoYeB4ӏN\{ ;1FPë;f@/ƏܣULm‡XUI%4Z]}Zu (W^W>xMLhn̔Gb4`MEc%L}[Y6)ȓŖ54^-*>Ƀ .mկ]4( O$t \gkpZdx~c"%f`f[U1&L4S:evD/e=H_5YFgM0FelWwHVFu:@v ˊ濾O{lk4 w>v`W1{dASy(E Xx1F6RzRxB;Nk{ian@Gaùy؈?p<)S V ֎@oFO0'VFqUSP'-.c|.4> E#OZӬ]JsPcDQ:1٥\pG&dm̖$-(J ]Ud.4@~P"mXG~_Hj8#~Ҿx5>3—Pm^yO]鰾*!3KƻgW+JҮwŎG. p_pMMFcq&b Q[8 }>3TQO)A"R`ۄ{mV bG!;XK%׋m8bn!3^VUbe})ۚb-ޘM 8 xɁ*G@mCOz͈qg~AoCDe"&\mx\֐c. {|\Mϱ_SFeQ;ήfȭ8h 9ڔmԑa@T\S ?{rJKJqыG$5<WЧ5ay[s1AusCY 5H<81~%|4P,Ca]|cdHĹˈ4PX4 ^>O#*).*U Zoͱzȱrڰ|[t^ &1P-c0k#^F̙F.V|Tp/ Z øTXmDZ yQT,SQSyk@ɘɎpV~ * ŋ"ゎ`1Y$5GX `L!9/-_(4u GܓՎvoPyl|X Hr'UfK0q U0@qfиhzwc=*S۴b"Փ[8Uou8$uWB~ކm_u׃ 6H%0X+_b%80xaRD\GKOC[Ub+SմX@lKwg]SRzY\6TwQ^[a й=k~g<.~8ue $֜jF%IVU,xur +8@m]"zdg听C/ϐ^@mjgǞRMH&D fւ߽v(斆>+kn8ܩrT@@G6蠛ގ#Dv8[Fw!baLO=<[[xT-Ӄ!.M<7vUsm8ޤQ!FV_BB-)cGGAl_H= r.`5ORS˫?ޢl0͙^02eK8B(wÔb2_I$$ U#bCQlHJ.YꞪr A:qu.UvvP>,0 ,2^Vu⯉gj/ۆbL۞ړg(ǒ+|᮱-P5rrRk - O<*3^kj=i&+2:3zyA/3[P3$[3ULN;)4ŵ,dj#r--yOVb ׅ 7P0gZob^ sbu6Cϩ+STj|!St f_O+C'=J:ƫ>1/"|Gzgً#Go;H}imۡ[duV4l#vQ|I;Pp5g)%Q)g 3}p@Wl,C=?d̎W2D'۞֞w"5$l R _НL{Q4$:$MUZ?~ /O"A3kͅ[.2s/<΁?,L]sl=d R~$SWYգT.:hN^ 5q`\ pb}7x.8#%P_YM'uxs[k . (Lv_ktpAV'P>xy 3 Ht_e7Բϫ(c_$D1>9`9Gh /J^2\cԎ+3YEҧs!l^,e}[U0 lP"PFn{_|68sV҄ݱM|f("򓛴SٽnLEcUӖH3WBw3L4kn1X _l&:W͊+#hq#mkv@x =ShWHױ,Ց*f}.){Y9Ļ Z(KF\ո`WDB^>"-܈r> xo{حSu'2SŪTzc\R?`QbR3=,SaS㪗^I炻+\ڤq6X=\9Puh%Ի4.wnWǴ6w<_ê @3kOA>ȄC/9Lj#SldC/h˺=5jpo{:3Ka33TBcՏ*1Aa` 7s'hRʅ0V5I)d2pP2:taPHG8ڷ X :1#$8P— w%/}]L>絻B M^@e JHtD6yD~Y$=yqɯ`m?}t2AIa2-N\uJ#–>CAWL%2O6Z~N-@vsR]mǵ^*t"&Z G~lSY>=v"u_:wUdw;uT.[Eb8x z%7w RT:Ζ'GSr{6$\]ynBx6ܿ}~[Fď9 GJ((PTo}ژc/H7dђp)!sN?kH G(:.9!XBQƪ '(izHɴ0HHN;Uu-:\/c6`p Z g[rCU΍ЍVϑd##By͞ph4$nќd۔NK2ov)ۘ0a.iT2mAd/eTya> 'Sk@s-ln}2a*oA8% A09<W,$āಘ3!hE de_@'ьX86:z6(T! )9c8HQ b_EZ:45PU|!ITq oVo(s(!.[xZ֖HhVqrC'k`t-B Ȑl.?<K! + zA;[ {7k |%} E>,*Z0Vo9kɪW9B?Í-Uu[XCGGN/pc>-XSUT(&Pp`21/ ˯[~ՇUs2 r̷i;f# 2QLkw^({5%S|K{nIs.,Gkmčk. shpZIL~&C\a'A\psR,!MIYT3z d. aI\Fvt}# =x_zzY( 1v$sBNwcSʨe% D)o"~jRbX~Tċ7Y_? dQi:>R8Nr싶R+y /ȞnGӐ{ H ;yr_A AY#+=`?Sy/~V欆vQ9 H5 O!f^^A:JWOߟbӹi ~.,|*J&^FvΩ'S+v*nnl8z(t dqy 2i/2!ևgeϮcJtLE8{WGN.nZLVD6@6վiwK vyKDpzK/)3!Y ؚ\[€`+55Mӭk Gw,eNM^=rHsmjP}\AO3;'%]ʫpX-Cg<ϑ(EEz!}t2` 6y,߰i\vo3`/89 ᕜ߯ddN?ו )E{ <%N2]&3] s^pVvr?T XMO/`}+!d}W.2㫠=?e7Fu MV-GzGKw,>2:NÑEMC Bm 듊t,m{bEƒ](JQm ,@%s%L>ӎI;3$ 9Q>^=ᥩRf8XX{b'ڷQY-{`j봤@>5ޚ'7Sk>t4Nxc>XKrOu|ѷ6OOIx h=M9 ]pz˙AI+B7c0ȯFz(˛sdSqqz-z.`΍R-$ՒXNk`%SLa#$-\7Y\ dw&U'H=5_ [%1` &`Y_5$B4D$\0'jpm}$'BW1 6<cb屿gBPXL{qiʘdQ,mya,QDj9练zn{K' Cc/d3WXY"d,m_FܪxH a޵OyD"DV <Ŗ ߘh>m&OzTzm}I2 HRڛy27bO|Dp~uat:9FX!g=~-gtc 8vdibAlC -+oCfMwWxeJ׉4,SQXvn5ގAa!hVATvNYbw pjȷnXI dH=l_nL c@"^^e T, psSb52iZʙߡ t9FdqTwt`vhBIk3)vʀK[nQ`?;JK>f+Y]pcɞ_agQ{f }BFx/в(.GSPK,xns8"-?aCͩA{yj*hS54BS@2-=43 8uRv.s1l62tAb]&;:"[Hw 9)6,^X%K. w"ՔX\ggt/k^nPG'3K]2P}_pᇷ8 lr?Rh1wb.=4[j[Q׋јKS|NǐݲlLBtiOr+|b,-ZS1",Pޘ?ߊ Ḇ=q]$2Čo~-LB2mVx'_$%\3dŜ9,*gpz0[ZOyr5J  "pLM tCx[b@7U)@?Z3 }C|o"J/۲WlBGOZD hKS%Ѓy A?i;-C>d`.Vy`l'ю6]V ǁ'@% HάwY9v=r}{*N]7Y"qJvwYda[(&30[+yuk0A.3$d'rB[ޝA6R6q!i(B= NI8N/=ÇJHOѧờom@6>i!|sF7$Kc/n_^%^۱DCya+G0Jvg~ƺ-4g \qG @{i,ʄ6S[qdz8(:#3~!JQ~IOh@U0l-ѡؽ _W"Z^ f# h$*s׌ܾ睾y,;mpkD^ǖŠ^홝/0LtrSzz卯siU ղ;^[)5pe /`W>Y(C;Juako8&*f)oKDdd:% ]<6r€3ǤtnRJ;e聝EݥHPOWEaUCwsB0U0؟Pŷ WHm@1ȅuo>&68$ﵣqxp%_e g5 ui$qv %UJj5#*K(p%BCPP(~̂tp ق0F8|1a-)پ~4܁/ pMw`47y=X% 7~: 4!S$|2'`OP(q&ޙ2a׹FqX:(x mEN,zie6H rm.2yh>y;u#ʎw"D ~U9gCL_H\F..f<߿_>‘鋬0'>ID(Zr q,p5INs+pRHgEFx`S0Ykj/[fT]j]O׹!( |iѫv+Qf+or.\L4K̟7sЋGXl*,8f owiڶů.@ MɜX],L| 4\WnAhץ4O2)2fmG|{~Ӆ3euըp> MgjvQos-g"DžV9s fʗ>/Э\ a&%< XM FP{&-a`5"F!>oSI8W)yP)bgۛ[}c Mbxth>"*S´m<+!l&bBtoױ~R|Z]u+:/ca~wpob_Sf5 {jx=iLQj9؞*+I<Y|?3^$e88AO" ['X.4 ~84V$ʹoܒc)A`VJ영eAEԁd>j'Tk -)iOsߣ{C}T<°9sD= MƟbFx pK`׿C@,d=؆Ǒ(?.ha/`\VJh2l[}%LQ"GhʡwKMX@1`9E=uy#N]+A_h@%9SO$u*ZeԿBz59b'/&k5Ӣ41 ##9W=K EYTWFX.e2UJ;>˝IDkRHRjgGf+BIX7Wbnf24B"C!2ޠch K |d1֖(𒼦!/9VìMg*9\?qv݁)JE;Pc.-/ތ!fp|3mI wdZc%fsAfX6g{tLW cb!q Îcªt^:-fKqe{%`Ԏ\y`ҁ{/.AnXx`OIb6ވ:p΋ҡj)~$ xUipq{[0Jn#"h!$#@{Y a:T 2; /~1QY7&,(tA:!y{vɠd*&u8E<إ<(Z~YKބo,rʧ=G/9%ns?ꂗҙ<ȣ`47(f1Obqh| &XBvy{ۇf'1U[r[VS(Jx=ݻX ;)bfK(g0ia,ۓڶUrD‘jf,R\\Ի-],%2n͎Vprr9d 8HNhY1deuߒqe/7Jx]HZKHk7^t_I}V3뢾e3wJZ _`Ѫ= 383Lف94 3ɩmՂ,xB3,sKynw]P Bf_a[ƚh&?]cC.DvhDP|X*JJ9;؏$Vk^F99'ۭ qDwU |O19KR9QPS6-8VJy|Kg#@ im\rr/OuFh}vs|+p,tFzNlzHX|1CZ v3(BxOn,5LJK nUjn'|!WDL\5\4SjW~\[))*J# m%qۻ&ݚWMeOdfgfcC%l:Wŀ}0*\A4(q<SkjH1X&$Av3jw;-ٌ*YwEI ވrQ^0UW{o9%F%S'SG7H^w-!PO ľ5rb3,Q%a2!J0U헋ҟ#-vrk?Ȣ8Y%gXeE|v _jɕa^ y/^ J OloYWhxgM]ΪOw,oܚmIǸx?KrǶusJ_W g`lZ7`1k0#?7?7&sydc0:ifݎ^kkrκ٭cAO^Ap,%^LFjCi. iR]<R‹JDbT-aۍL\.vjgx&zCipxoPkj#@e(=T,>saK[fF&#V<ڍÈ;qڧ~Q]BL>ΥN9GY8%YHuʣlI{sEH|sX,UPx`8ԼHbbiӹ"tz':s*Nr(L]e$aP;=uF_|)MFA+ZzgUTt #lHSJ%HPB>jDq?(I^oǭo6QXL[ rၾ f3-X+ݭQݦDt<]|jfwzTkp<-G1й3 EoN;pX 4?B?H0f=RZtf]ru-Y|-`c'pvch@-)(Nlϑ fÔ6"ć9I\ck;F‰N @~VN ?M?rEMJ`w56?elq Ny1+:h8_ pflSz*U6k҂ ƽNzZݰ&WXq8[c k],E_]Rw3X9q&R1y.T Ku+$`4#PҔ[k5e`AV{ .m7dH JgRk+/qL\Uu3W;!j^{Xxz=||NLbf;H0ӣ۝C{OJSB*&seNJ;'"?E49oL{ONm#]x<{HWLHy|ؘT,3w_n̨VNhYm<%7*a4`:BWLۼQGJNCdzsO+.9(bǭw A*p+oS+[;xYcп ?P2N{p}6˗ }|{R+<>(=bN( -|cnUwBȩp,=q0(Ohc}F00),Wᷖ=`F>> `X% {Pd 0̻Җd*R,4yWV _F?рs‚oI)éFs=AZ79Vq0bI lu6V1gvW\U9p$+|4LdnU tp.aoѣJ,F}p&DNA%r`P\]'Dʅi.tا{9Xa,E!s̮2B00cWlsO4'=Eu I/yf|~[aӮ,_j@s`S,QV`AKܸ׷s)[7v-jw U4 4M>%Im%cĸ_RI-Rv~Bf8-4| kVtΒMZqm jA: =`lL-"B m}93 j4=yַsJ&7T1%?zin6K%1<̦iLDn!m~x^Hdpvdjh(k0BѺ؁ǻÎRXLtx.Ʒ 1!>bw5*ZCFbTeۀ.]WySi_1BZr^{9o4^(.=s A]hT&.eUD٬&<25-L˰?#xZU[AJ>`):NTe9v7XK_[{k-~Ί^%${"Wy2V_uTs'D߅Mlo)MRzƗ|tE@[爿ZErate4\3ѿke)*Sg t1]Ʉg%fsݭBOiRx5МcܓGZ?C۬SjLs5 Xp:0FV5IV`B%mZ2"tV2?]eJ^( XÔ /Cd`ge6Օ:it?5V]kF3NfGb!UB*:tOD+ #ۅ&q|pb|n]re@N)QY(STB4y`IƵ(gi{ϟ +85[R[w!x.`7-QAZFNd`@lG=.+hqW΅iX "(| ;s48v?4nP/BI^0ڲ{X85m$z:IB]$kZETQ@]uiT8@غ|fhc݆$B ](r $g֖͛(1߲3[.'вĦ%P#  ~Tu1&m&<ۋOn:"j%#Cb@jXB? W#f\428,JNgʣRjG_HEXcnt)03OmeKބ?ۍ^G1.8B)ҫگT7&6;?`ayQ ,$EMg\Q!\[rBBHOeDH]n\Ƹ^T;W@J)l3Yl:ӭ$[{ ~J!j*VT\mu&-(i!29x AZb9Z]) Ҹ*iO&*rƲ3lgM>尭7NIOz,[N Ee527뉫FqC0qYk*+%z) @qK4Akj|eXP5x;PxapٍJaO \I~ͬηjDYf[vgsk.E) ! j ElE^ 挵qGI@n# ㌎p2.Y&]4swtwh}jQ{ V%$;/*;_BZVPҋwR6?Di2{Fre=bQyõ}{ޟ&o܊4_p$o@9p j즍k`/a5V"zFqM?ugvs4[:XK'4ꢤL+ AYi9d8j2| 9@+-?jK.q$$ީy:&8t,d̖5N`m(|z0**/a4\aY/7ĂTJnH*ϰ1a RK;jh|u/ktcNn)| B"^YD:|\½V|9![7b^s#YAYY;(|巄Rho߉X;&lXE8^U^vfo+J]›;W[v`d%Т}ҶaxHBtZ(<OP L=brQ,иDY{|B\|D|Ky=W#_}X$lQ?SN IrU]U)p!?c7`(1,G  _m胫(%*X/c)9*/Aw]>6Fg#$/I4:PLz{sY|=ea|H˽E@MtLwTyrr=_dRATTN ,xbfmKLM~aO/ X1˺S垾PȨ :J|b7}.D]`ibhB>HYHmK/1 vf]m.7*D?e2`(1)l Ft(tEZ+A :s[Wg!a"I9\vU&jyrBdV>dd҈9fUgM3Y'Gl"r--^lXN t ȄXT\!9fb3B=ŤPkSGQ-mpַ7Ca6>H`nT XNb8JMy5?ԷjP (y- hI]SgfvR6w8PȻnVwwUmX c(7zҙ7eXΆq eyY[ mI`Q2ML 84|pFn 5ꗞ|C%I=q*\Y֠_sKzr2 VpM)ғZWZʢ:!vg, T;Eo,E$)go$o ׊ڳ% 3ݗA)Sў }Y[6PAECv)R~樿U6ַ +S| . pj>ygl`FvJ:N np$(Aqv#[f]i9Wo?z:se^;L"kSjB{קR5vԺ1QY/D-(g`fѴ 3n)_&Kou $E=`p0Avp8]w߆2Bkn|Hw~N̪'J F|gk;JFtҾ:#I'qXQc7r=]y)c/ی W߻&T:eUx΃uR"t]åJj vOkUzl@"M]q2@,A P&{N|RqeCdcu칰>9|m8cM:Ay<V0J~_N6Σ~8HQvՌ8/[.D:qOۋ#|93'X0M68xpEss7ttb`ϴt2 &f:; -Cɭ%\r_m4S0=l6jWeZx9)&pS#^KDR9RNb`S"7vڥN-t P(꿐}cM4-Ǩ)TY[̣UȽ>32ׯ N5Q3nU#@|] V<°>0ݗ@qewؗӰW ?&ZORftzIcwo82aIM`HȦv2%A[U~I[J-؉5+P|(,|*;%|KT7i'hU KH/:܊u _Z"!,Ux'^(gQ^)yl/mӮ+*&‘>.%] ޼^Y$OL&nx,+; ny[njC5V9|)_>VO8y0.^)dyulzDy}`:G i߂Ol bz8j`\_l$M=QBա HJyߞDkt "dw-,Б >`SǒjSZtNZ[Nщ$N:v*+2Rz=,pU%es B.f0/S:.^BB׽&_q} Hm&01N5?O@&nz &ҡ˺ig F"D46sc|*:'8N?#:8BYTo ;8tZK~ nd#*9zft%χB=/H=E*wo[ I+ +a= vnLVvF%*kw3_,Qqg/LOӦe8TcjrS}R B=ZG8f3Rl= mԗྂh2.4,ɛ;b!cbF`nWtb Hin̄S[axO6 *"IE~诪 1y|t!_WY"GM*؍cZyXSaLZ.fχz1ĠiFʐQfT I!q!=O;Ɣ-=8KQ/hh#pgd` Fr8,/Ӹ +JŠ 퓣q DfcFvFo3:_t5'KTE6cbߛ,uE=-3,z@Vjcu2󐰛pVG@=wu.lL1Ņktk!(@~LFDzƄi&Ђo'c[Rʂ( >14|NAE}n( uCB}øuM mzБ ـ"_ d`YFErĚ^wAuXFP8/G#2o,bUۏm)yDi{ wwھf$DΛ&lاGy n5n3 ZMVݒ?K>$S ' ,nxd@Q&kϦFFT$BquAu2ǔ୰x<1 / w3 < $\|xu  mDf:|$%̖e:@IOr1eh 9&py*iy*ˏ+~&-Z 'թǖ E߶ -M/&GGa1cm,oFNAD$$H f+K|,,^zKkpt鎙cĿ-J.|WSc4գ4hHԤv 97$ہ2EPmYX[ յ(QD"$"/v5a) nUcsd'Ŧ/rނ6E sGe&(i0H :5/N])J)s =[U 9S9go=Azq2l!gn UI7&Ʋ_~O`0F7h/(Dʀ€-tDԧt,d YJ`o' 1K@EvcqNq؛C#~(e=I2p#@Nv`7D߼sa|uƛG+aq$@810Rcm<l6f|ODGP1s=C7'\7͐:l:iCЕLeٳ(tށpg}uE,l̀3܎Hcb:> ͎ȗTMȸhf|R* M|zw_iUʋb >^_?Lq8A\҉Ngxil$]H!獷2rTNq%1{ik HF\$幋Q2.nUc1 BHe \BRbR$]̗Ad! _Šуt¸pqDPՓI?sh@iNcL"*I7^,ВnŁvwC(_/;d¯se(]Wx3oEDPկG$(9tjRe~A2?kSІ2#L dV{(k5!Nu/%Sfl }JJxuR<M$9HOw dq@-$J", ŚACXXe FU+Xҧz#H(M ZEԷSRɮ$QG&:ݍvFFxFG yٜ?(N#P?<%HqeD+bv(')ZteHN (z qcRTT~.oIQME{9^ 9FĄMueoz"p 9t35aF0"]TH#q _F{twf[ohLXH5Xjݤ}!lj Pl(I}Rif-؀:sg}M'3 w;Dr׹f1d`ꨂmg1poLJ >Lo Z+֕|ZV6ƣ,er ݢdQ !ah93,ӄİdIo?#fetxRgJ :}B t њFԄeG|3<3?M>qrOQjЄ29%ޗ1-~i)?=2dQ)Ppւ dTq5b7ݦ=>K1TMcL9¥0Px/:ܨq6eNKe7pfdĽvkymW[% P0!Ziڴ"0+e]._=L!k?حh \wE C?6C?XdgVEAJh@XBb$!y'ԫpe"5% @؛ڬQJ<"1b {FN!+5MR}}~LWrЮ c`"Η/6q45Gg0E|Zp`v:545*ۡ΀jGGv8CxCd";g4rLLĨ|`;ac%L JxMOX{ZP7FՑ[Bմ$WIyʼn6՗#\2 OpLt4C?R[þc0MkhXZ}jjHskSzMNXuA,q4늧Cxf\ۺNXyd=;]R10[P玜ZPv  '.+6~]g?2f o \p.ϫt\>Q=oG`d7&W*%"Cv4U [?}K_5$~}Y".L${so%`% *W7I\$o*1!3FEVܨ8Tc鴡;QczO"c-" .i8?}RQ+0A^snxqɬ0JR4FR?B[332\gOe qṊ^iG*vNw%d,3U[S˪NU8 躭_GtϼڍUH"Eutpt_}uRy_W%NYt&'"IW0 =tA㰪mBa ՞YdO Y% FS.O%=g?<t*&1vnsۤ: m2W9#=$R{Z)p8a$$uOڭ/: @I |ahb} [FL>e(p*sUP_Zc2cCH~Ţ:)T ƕB3e7DH/#qx@f9C\*rtQ˻LC Pwx{E&@В޴Qysy07TS"2sc ],, {&Zn]n=+t}";OީFT="WJ"WFgW(~!IbHKܽ) Vދ(K;@] (GKE2X=M[]Qɝ#PE%;Go}^k}^6sw; { a;X 'J&ygTvq6q[)g4?3Pl7IirΝ$p,a,_j Q#[=\Zթ mkv};D+>®O78.n(nW#۪ m%hOpδΕ~> t1\UE9,H{no߹+*7g2tkU-'!*qYp5~yԈ~*|U|>ڦ|TK?h hRė(xGQyX# Wپh̋!\#BfP0՜xW-m4*o.`zYbb`cdu]f90v&(|d<`LC+"CקXK>ݜ,ICђ7oͽ7wYLnE1( w=r)f|+v sFSkjĉLpˉ5Պl y3U VCW}3"ϠS ȭS <|ALĒz0-KV}iTnrmۑx<>ڇXi_Ѷn)K:eT4eG~+/bu `v[sIG¥eRd}ܳ SLG1(qh_3 Lxi Ĩ.r<3@`J(ZM}oF_/ LR5ħOOa6k$ ʳ滣B2 0ѕ8b|,-/VVt ?웠 }DpQx}OWwMWUx_ڶTA{gbz҄}H&#WηGŜRT(qD[(cb7J@qCuY '"$DmXlb\8+֟qgOt I!gdAAM(dc4/HӫP D prRŵ0{ʵ T Ȉ!z-MEuY芌eɷf^9rZ2aq4Z] , 2lPߓ ;8D7RYy8lˢ˓ۀX} Pf/ KG)No\6CL#_IqT @  Q(cdw6Y4)'8`z6r~@sۺ9&p}0])JW{$˥;< a;x6#Kp˴KzU^uKSrinly$Tg $d1 0pGP OiHdƟ3$C*e/ᲕR8a5`-tl0KC80:e4_O`,r!73^fq8 {#$2 Q<XYd)GU:@t]}t;Q.i2:UkE:FC4yAXf{沲='呖 hhs8ERAEn>PIebZJRʓ0O_BL jH(ED=-@A:KZ 5M1_n)|xQ:3[C\?<;O_2xJ!"ܝ/|J&ib4sFi9tG_#Yv+f8f=7;,h4x{a)²9x41Z v@?zj1*&˙;9bQbWsg¨vZL ,%֟6mt-PV|{v>m{$-]1 S^cj2, g7xVI1G"Ie pAc1ːFCeRX9#Clh`;6Ew锤nva ԙlQe/$Sːhlނ P SbB/ꊡ)1 VU3=^PI)*8 R_k @AA'-9ҫlrHYUqQ6VH!`v HDTJ.MI(]ǮzlYρm#ڈ|PɮAX(8R]缺Aߍ;F)\%P#{>p*fJ!zX\ Ahc[$kksE!eshB?A9"kHNCr6пYgwW\x@T?͞4B`ZaI;MÆitF8#:$8,9*ԟ E YQc0zR̓>`޼e4q8ʓ9/hHĭfDgɣ6 .|AYȢ׃iCSr=kQ2 U*!`t>չ88Փ"pNX`IlјER&i|S mQ1ऍN;7RH\lb^n:^=bkL#.5OdZ:cy/Y3C;5B#z"-.rW@%͍mW!р# 4u4m# Jse:8 Wn3"~KjsQ/Bo$oa# vUaV]bEC~5Mrg+u/oQ4-2(}wJ%jy{:y$<ؒUN*9 y|VR/d7${m%NlL WpyЅ꛳gά2)t%fɮI>'2"y|do]oĘv@V̈gvc%Yw݆v{_A5G/AqώmK]B)t%"ux11== G>үZ)2s Έa](uK?FX^ dQusJ#'Ru<] M?$m00ͷǿYcO 2n`@A7 )A!dk"os5m_#VтL;kjhVMOg7)W/1=37, wB;6ՋRwda0LAOWRz7KZmTO>xSmoѝr^P|!5Fbƃy| *dO(v. ܗvvpސDz>Hgc~:> }s%n>WjBDO7H._Ii(¼?&Pc4d8o_sػhnmA:ωN; t{Y|cq\bk-P')ˈմ |z:i1(wf%7f 4y.ͥQ]޶^G-#_Vvބ4^{#:}x(!{&';2ϯKP~axD\(h 8cΘ 7z}3xxaeO!]*hg\XU/ RI 1ܴa*3ފ}R~.`ՙDT)#GC#]sBoZ臚'įK H֒ՃTj=u(l0X\Fp>!]4Quk`vi" gRrnUp(f7w T 'pK$4ٲ՚GkQbڕFw~;^,sT 5q6;$(>ĖU?M-76Ј(ɺOw`pb'Wp6A]jLUojk \rf {4q^DJ?\~|ڹm!#V@{j)f#D:XDA[?EqNhށq$l.l#N%SYAYABeBXolbD *nj}\)\Yis f9* 0)S0bX ''S={G: }w􄷎ooԪ[8]pv$<>Ue ]FTn;56Mhd+Ʀ%NjN{Q<U>EUʆί q25Kl֓ݴT(ȴcOVR0 v@y?H4t~d]. s&kHZ퀞B'U^䏅~^S_=:+Q1.dΞY\XЊ(FH+ŜtH74YI+YиOKRsYυ_HٙDRloquw! *Ketx2 w{2|,_Sd:л2dг}UF7ڥ1L-=tdٺޖ3Ɂ^}h5PPt (`rR6, C8//| %o`,`YKYgfá }ԉac@TxJhpCGHtoK(恳l| A91X_j) ˜uEG_QP"Z.ޣ`ޑUv/w^{4<p1[%ʶ<'el ɩm9·Mf1JMqn w=%bSөD j 5N3?\%s턀,AHU(SneCcˈKo҆tWh.vB*M!ŸtQ !j@u.^b iIֲw>`[HAk?l@|Wn]^3BK~"nNGm][GWkt1ǁoO\]K}Xk [3iRX_&XfPHMʏnd$yTPt $B0K5"7J2@AV _QM#˵߱qq[W;IR C_s*MC"@:G:r/3eƫa>.Mw)=xy6f&Og-A\ :Zr5+7wv`{/gЊa*Ѿ{ L|w4yx>XPùO*Yފ-&<6qYџ' +Hߐ uN Zk$QdMA8.k&WV>$ȸzCUNjX0nE.} J3fPjWN aN rK c6GyaN%N8{(rS,Mem:%W tء nZ(>=4^9,qN k:(wWPwTr՛['sR]%6'ϞIі]a0&p)I5ͦ5^zSU_ )sf{ֺ1.d59>M578P4Jy:q}{֯fF-Un:I)Of^sl0BuHz&ve/ b;S R@ca 4\Θ貉}@\SR_Xx*|S#% iH@:NLm$@[(<4,_?QybY::xbY-j5tH޻x(lLniz mJO]u4E Ͽ+,ISCD8d펠PwMo&U>qq[nys\7s{oKx@}.j&͉^7ΞͳsӀg6RqwxG2K߈'=HE_ql.lF&x]Sq/0,Nљ^g_TRoq:8"3ObN&QEKLuɸs5fij'Ió݆Uc#r#O5n|Z3E&W ?V\H7'`%Vc(f~Og;ATA)Qgv;K\8%o9`ӧswdTTלg0X}QMF7nGS<+Q?zFg.}vmgk)QgDMn橢T5àj аZ&݅hHlmCcI[rdʏy.W3 ][:? xQH /nr|_= '_k5S.i՗Ӓ jˮ$PqHXxnqTa x`YPaa@bwTXfBcFHM G>f"RNY:bf`SxʗW<%1ǒZm@zJS^A$ɟ-5' IF:~r%XP7p`Ԍ"3k*j㐯$4(ߧyǮ}"39oxC5R}fYD9ֱHA(a@*>թg? 6kA4~oj̉i~~b8Q;zy*0ru0ㅁq;7FKr EW2c\l,F@'#% eD-[ETZQp?*, QZE<ϱ7 yE,)αUsh[J#$PM40ښ7lQHʏ?B4qQ^0 4f6zK~t}ՋdMXOf`Pb"y^ Ei0Rl@xhX "3YB$ ]Pҍyp\Qfư\hXM^2{2s4M5ixFi%"QsSGEm=QqZ哸Yi Aaz*\{o֧F*LX x+"<T? Y _-teMec. > Fw. ec}/kH "Lv(eHOϥ19@Vi:eI'%DHl VGxrUf>a޵$C~IH'"r[m ~ k|j`1 7ʣRHC.ݹ8"p>Eyo졕 4TDcgӰJ)P~CTv!">ȴ :m3 Jؼod8AsTRu=22 &"fv]A^D{N\N Q~~q]ԗ^SJT1BOL*@]Sd%` ^4Gˣ){Iz( E8Wŗ9َ`Z/ O"8U\i@Iq \z_svHPT53,^F5z,udn b3?+W/ Ҟ~b5$k\|c>#kC8f5B䬦5]5$T~(eNf xɽl.E#Dj~y!A4*˱oN!o 0]\)"4Lfo^0ۊ˧zM,F~&DǞwZ?q"@9xvYi~ug,@GuڄIǿr5Q[YP,b#ejdhs]Ji  7ԙ{=>F-+ jZL[;K1Fs@%ƽNI- f$Sytέ$:ZY %* 8!2QLL7<먓=km9s`"ț%`r[v?UZn ww4P 0y̸XiY$I Z@ːRoA0`@br;owL־. 6g@+XFzK8gv((!=߹|Oh\S\+H;,6v`uYtI]n ]La؝zqemCe2s;Ap4n]TYG"!>(6C𹿗LԟA/v6 KK;1IE}mF r-Kk3Ib0XvWῳl>n/E'_ ` ₘcq[1)a: eS.|`h/`&=QƗ55Pn)!~ nJ'6ʸSwe8:̾(H_4V .4MK_cl͉Чp91Es5J6=us*tڋuW '(bqpˀ$;rѯRA :vi&"p=>R)wFKH#r8g8%>gflTPR';KЁGvo l^¶]5eD hk܀X[ y`ba郬;27ͤ*ѣpG Q?PigurJPV楅3h>#iPxHoA3ՎR=E}W#ϨoѺwpψ6FyXYYGjJ8VRi#;Ի-R, ZjšV?L)=gӝ%v)aM䙵zOEy^*r:\?;*YhH*\ i n#Q\" fɬ4Zy<.`LF 5 3Pq./ѱjp%:ڹ\%,k_lL * \{.+Μ8 v/bg?!2PХ+fYW&7W1x\WS 1nE0IP.kҼ`n 26.41 )0{1EQ{R9TI_TBiG܉ 22>.f:DS|B'Kρݭc9'$yV-nʿlJw Y`!]3F<ȗD/YQ[7'Nj0(i+8SkAP*?sg 1D %ןܜVbrzO}a&FŦ@KFpz".~ypc̬x(4\5 / 3*+wHosyǁ. ВQ|0D8bv m*V>B N6%N♺arAm4:!˻%0J#*3}U2{yhXN4qf{mJUN\:φhxo"|N)(pkH=CW.[<  PCR78B$L;bda=+Lo)G\^AkDjF+Yy]_Fl,1Y !O#ZR ݰX3i1Y6i+_?* o]G~)2L}jQHW ^nQg]-""7 N Mg1xyacjYΘ2q@!W7 T*'yYMY"J N]T5D"9DEn?/9F,G1*ĎoY/Fl o\E4ְSCCz?/b:HP֖- (EWEߞs inlmM>53գׁGEb&}#BL uE`%>R#KN)!,YA,vaKؿ,qbY&F"INq(JA^m}V]`-B'87Chn浟&NUƕ|TL!7+Ln6S)7Y=9>UtIX~];0ѱp}:u3(V~=|6_W;`.7$b,n+JB%q$WCm,Y(xiQӏ'kAi >#k 0zELʾb=^d[rF܂;+&j 5緳HP;6)feu4I{W%.&> dԑOV0^.b-Wc "|4cBN홎%Ʉ¬:؆朏$@yLYo;qݟq]578W %Z*k6dYa8/o!RAo_:#&Fj -AX:Z֣340q>CU&Z,il g($)I.CU2Cr|j3(& Q̽n27lw&ۀ^5j!gW_B.haHzssa>0UJ~ e! ɣ5 _JwmoJO.gLlۧJ*\ߺTk=j*6Q?.~}"8]p }90q+x3*8ɻ?&\TD xEg&aJBl,3Е;TޠorRd`M i=we0Y#W&X&\'.Uǧӽf6dyŔ T5̻ի5seLF|fOO$S&.nl*'7̻m$HM2KXR.ޏf_]dEgԑ 7tאK0B<Țjb-S8m\^y :Z]mw|W@ ܮ|o;+[+! GsqW_tLF,5:6 - Cka**jN‰ - Upom,U$cDjeHe:(={MJey&d'm2zWClnE?bx ~r[&77)oKjI?7o)pʙ}UX_  Yބqҁx׭(f*LlC25 `ndOA.#ħib5Eh_ l•Er\)[zp!YI~}v"9t@sI?5:^*K^2Akp1S8s%)‚ظ >-m`dƛTG >ЊK%b^҆/t8'N=(MM+J? | G0s^? nθqE:n9_+(KFc\[<@Q&oq&E9fFx +iҧu [t0"߫zb2H%il#fO}8\,VhWԝCmn`F{~Xӈ {ך 0)Fpҿi< ] F(ҿa=%eLnpkL\lΒs (,2"4‰'NqAѪ+h.Ve rT`}wuGIpgأ{!\B{ MXaAJé~oq#d~t7dP6. ?x5B"M{A"m9R3(\Q@eFxyw؊ t4JeXln #/9,CQx1(;+`plmTUP[m_'N[xvKVͰ'vX7wCFq[63yhk~}Qrn:&ݪ">MWP㉂%JA+ h).O|"j}ȹ]b9Ky"14TY(\o TEY %ivzgr_&^1Igrɐ.PIUa88mɣf n|A7QWvTsa']WmJ\ _V/2z' r`n@Ǔ9TK1c;aYvXw&)&  iXD{:X |#M o? u%ہ hlϣ~Us*>P q;I]$VSƎgW ' 8\1 iVS2Z\-g_36Os/wTy<9'?Jm8KK ٙS&h!1LImMEivjC>6>ٓ̚;l3Ӝ,"wυo]b0df:t7 dՏN`s>ƴ!m|!urxV&PHGK݉Ƣ lan-3"z3a5Pxi-F~<_f +\G\OIWlKf<'OB} $\aR/u6O|!7: -"+Q_pf2dZ_Rl=W%-=_bW5&-;Yh0˓ `G]YEgD%.}y&M Y&= |.(1}!v{Q޴[i[?bkR"-{/~ZzU Hځ345akd 27 3G3,pÌ XDh$u{PJUvj۬TV5wQQ-\S[NAVؤ$HvDVjr [z'4O,/âq65B1Q4֭~a\8лSؐ Q}PE[}w.lRZ6l1[\}ՙ!7 U- eWqPF~P!4%xku/!=R1J\1/C5.B~4MVYn°*рwKYB0+*y;of[ߣ>!U7dOΖ0/nsl =?TQ}ԞXՒWO67f. ’~5|:Ehwk ɇ%#)ϭ qbJb.A+rrG&م*-Ώ3yDHnb3KtrPQw 8Ď(j#ę}6csHsxmI1[wyexJNPBѦ !.9SZCTlPԧj 6)^ _)rWZLhpPOάjZAC]Ә30}}vՓ$Sj~PU kBFnX VدO5lG"@/BP';OJmiQu)xT#e kY*Y2cpg6ұAS^`u0XVx%6ɝvz z"ʰ0XR>;uM2*Dh]!\xh z\L(Nupk$6XeTKͿjh#XRf`KYSmwګUatC=}<{)gwOCkaiw6&eA1NX!zܪ\_;9gT/WRS;.n{vS%|b,wF Zl.8s.munũ/qs*g׬0+6uRRK,PH:&g~[/GEREa=4r꺆xiIJ_ atP lN${7Q:@e⡭hQ))s6S/fKd1VʺAY>DMN1^X"k<XS Wu+hD{W1Q4Vݖ:5'ɭ$H1v[`N%ȭLRϗ K+_mGk-9ٝT%O)՚<6k , `ë H@9^&MV#!+lz-[9f|@- `H`OWpO{=N`߽7,/LrMno/s~-XwBܷHȤt1v* }"Iri]gBOBtnU0b.`ӡk#,JtSM3/YW :ipr\(P/gmp[|@5 8ikc <찘4{}U`tcO(me (<ܼP4t=6vg mwGG 2BI'p=*< 2-omK{ 8>y+̫g4i7E{!++K,[M6pҖ ag[F~ʛ`ŘC zed'Ch}+G`Smr/]S'71iJ A/QCxd NM* ~m:y^V5l @JUKA^w#"_ik&Q{x:mS^2ֵ83fÿXی2w=ӹ,ILp+ 0+NRv[!m#'w&Eks]&< 9&[)]N`cGwA't-_#L zMb[ "YB5 $?&^WI?!pNfDM҉\eۆӯˠ.lpPz<|3=gLcVS춸&hO'_Q~.,Ϊ6hBУm0/N"t0"nma()-#iUbHTDzg[/W`8Aďl ~~鵦kxMLtX`i SѝײHK`nbj~44R&Yl{q[[V0Z:"^V:mM +D~P^ ;:(gP 8•C9JXGH6qJ.{wiu hmOƿq6 avqMcBp oDT&mX]/hY s~zGȥE1k "ܺy<LIn ^ -""?e1\CQ^<7ٱCKAr6(o>;]; Bіr?AGYOIiVAV1vgCyù.gXƉ$X~WUsp?e6StnoWh}ryRKE|6om#?kq]T (Hl6'Т]~/ &NYWej&_7ѝ3 b+\鍨b~jmv=dX )eutC5Yqe%m4z:'UkWxbIe f\(6$N][ 9X̪\udU4L>}v@c  U2/r^-Q`$YA[ԯvS; C%^m.KǢg˒FNzp:b3vg47AqWX˕٥e;R½L|> ~N_zsag|=a4pXf102:Z4a }ȣm EO(ʴi{C660*FnEMG!8 t =70Ei͐Y@Y@`ALMP-vpxq7uqCL$Cu.{`Mg,2Ն'_&mv@$dw՘!oo\ɖZTƵ*V<aSH8swlwCl*IU" ?PMc&8Qzf *9,ԪPU^EpS2()vN*HlVz4ͧ= ׳3umSr*yVԅxFd[8Vtdө8۹Ɲ+3uN E(H7+o(Z2&p!kLf=iC_*)hsZbOGQdӲ;g`ELՊےFC],Rl)1 #}@hF 꺶RucPE<A1EbO+Cی pa*GQ, 9ichv)?n\\]4 ?-EpcxoE_<8SļşɥHrhX[KWPP1MR?8M$ҪPݟ|YW*%Q4:ggoLcD[`"mNkM8&( X}T1~W*m;&Js~k8uUuJn)8CwpJpD-#9W|u\[dQ #ܩTb}ؼxC 0#}$?f~dfp^ЇCa(AJj\zbZt|OmZ4 @&"UuDz^W%T//3Q"n@ 8m4~G.3|]ɉleCh>7ϻvuUi10NVK>+8FH'c*O|pQX?H2kѵX&j%uGabҳr\X3g=cfQ:LoK eŌz,x1S|nV4۝fk-yj%z>xUMWQ쫔xZ?;<7O^nIb>2 w|7ē O7n E4X\Unhuӿ"dZ[~P߱c7E<Mkfa{!72jtjhZu BlJcz{Tk't~9!t4=hoVCMO)Cхmj11\5ҳ6I3Qky#rd7|`.X$"v'\_jmlf F1 GӮ!TrPp֜kub)O;J(O+<?;1=WbU{۵׏CX^p闚^ϗ`EٛA-]h*Ok6/FoE9mCInFLLN[OK6=h6!ƊHq=B@'Wh|}&֕2 K3=,souZT@tuwe>*D1WP&ѲWbj/Ɍ_{iM-~~̕(z V *,njSkU+ׯ^PIkxqOƩ ܅ٱ6+KHHAB"YinЯǶCF!!^|PZ;,/h~&oIOz{{r9;cN$~y9˧m~1c"/A䢔 =_F_*lb8BB,@f$}c#ZҰD)z nZG6z;bl>cwvi4nRVy &^CK_ID W/IWa[`#w]8Y-昭jt-[8S߽VԐ- ``mC,L]0ٟBdHzhۃdqr:ń&RO'Nkv[TU$󷟎 6٭o8k7>_`)4dte%)(=baoVRE(Lps;Fu0 7kv .ϵ/o) KbN0 ߢ˟ZDy#WDrjX8K4)U*hվQKUHku| 1m>#GWY麵4::c)㾦 8y+-v qSpKT|"qd< ℊƉ2'6u6q0%2ҥǶ|g<١fžz`]U%CW.9x3@OJo 8E/Y*۹9;q+ąA'hthc j.$Ǜշڒ1-Ǜ{@lp\sCef))>ںFuv8= (&|ݓ|,Jx"4J@Яʴ=o9nZ Bu!W-s6}mFz.Pez\=iFÒ~{0*T7^ Sd,LSL||/l*PYI~8`L5/X5%o5!+"8lW2n<ՙ^-K2 uPV#b DN{x w7*2F\{A!ɣV7eñ5/~qTJ{Ea~1]k-ՑoSTtգI-l@tv:~ ?8еIRAڼ h~ެ冼}"-H _pϩ674bf̍%<Ә~GS&7wp8QRoU}؝c( go"pLEуP]6LS[ `rrVqQ|`'?ES.*)ZR꜃w r)oTGMX9 klV.C'.HUV;\' J!O%;2H=AU+CA1'U!Q,dy!Ӡ$cX5V4w=Rmz}šBa鱤 ۧkfVOE>|!ȳ)/,]/>׽K3R˲ƾ)e_POg[riT]W}ǔ>RYR,L3ډY( k5 Yx}Ѵ@YeidgUd0z+xC]8jБ,fMޢ%GJA{)ګ %<$Ą"jZWm%tjt=9 ^HJH|5+(&q8!j:Mpzg7ĕ4Ρ2QT&w8t[Sc%`V 6o䞕è[$ H1tYfA_8>R1De,9ܪI!/M%; \+y@m1c4~ֽ詴3;Rhȡ'ܙݔ<ĞO+v(XT!ioZ?ߜger-_X9ZHJZG|E&ֈhwmP*6c=7ZV7GEMbbk.Q_mD{hp8oM)Ma>ي+X=.X+g |Sn Q,R4*cH00ԉd{3*qQжՏ4T./v$5i~/0麗B~qRV0^IIn|+?lk}azipUIPcVg!Dgn5:sh VPbdڅX|`+?qe >1'FNvV"ʼn\`JbT}7p]rNJj XuX(\Գ=6fN \M!]f{@7LBQΕT/-[3" w-BU j!B;nF \({VrU4aun YQZĔ &EW)ps6'6=#gɴD@@14#P=TFuZGNyre1rwU;h[U촻wm*+Bæ 6$h[O!dMD%/3;py1̏Whu4 OOY/$AHd.9#غ@B8͜8VewH1òmyycϝTC +C{ߥΒ~:MZ6dPixqK燎c)qA[Z)37DG['[Tan1h&Rג.*.^U_4e>K&!,ʕ5@Nn^tܐ]fNbJQf5gl2,ns=qn_fh&6v|c74 ")3v`T%XJ_djbvx~N?_֋,f6vth>|A,5C0{#H4nNK^)Y[T ?mZۀ uqc5-!J%*ucF mT\ȳY/+HR3;oW{ԇlb\Mf[~%'/}$aUd%qlv\԰[o>0ˠpv&;e#Y du/*.O PqLRsfbrT@mQg8hZ0)\ FJAPH{VܴQ>ǗOݢN;o]l/j|ַbѮ*Mh+gRnpVֱj{2)ou6XUWoN[N( ~)MaO|/jnڻSѻ%.)  ɨg20C $~Y?OwM|~!T1f) ,`&~ӭh Ctz73=5 +AŇeW6>C''L st@T[vAsڠ؂:`gmdG"%E Z:X%-b؃̟4 l[utLxT&BVn;yu6]cf+SpG)s;iu.|,p*'m9y/!b&[J[q0QC.V% &_>.(Xr@)'` ،iU'A_NӮXDLyG9Jr{ ic沩5S8g>pD(=a]ïwé\'N?G]+ J+xbֽ-c-/"AX`7rW o*֟hQXD8eaAvpjFg>QPѥY%h6Dr5))`Qt eE@%BUq_-'dLM:5:>9~2?}qkC3h^(d##:yHeV_gDVp5Y$a6u ZF H/g~p `0? pq,Gۗ L ;%7=;pY:${Jk39o_W`Xg7ܓ.2.)µ7Ԃ&Z :}jxSVzMy u_eۊ|~n- 8A2ք0 l.N3L䛱,u=Jٮ[l{.J+58Zx-?y=C-ksj(k瘇ihR+!G2qCtTcQCz1B[q1\c~+ UD}q Eq}p86y\:i?п0>`P49/Roy0h yrC(IdHdJQ[:@{W$zaÏ?:r6!.Kܝb] ӲY;3Җrt k2}/ S)*᫾忨-G͜5\)r)B^ZJ."zT]:/> "mX~D }7prˍIҹc;`ӭ!mOJ35~}HָN}anF0E+wFt :s~,x@_y4!ݽYZ7Fz?C| ~L[ڃ((uen)yי|gq<&MВGqZw~ӝshᓔ=>ꋅߋ$7<01`oh)nm+ay[Li&ĸgLJ͛q[gWtfMY@Hux >;`!?\9o@-cT&WyhEL&g`4xǀcQOp$/>C%{Gjg'>{۰t#āY./ŕa5.^u {`gf ۂAЌ (d";I#HgS;WDKkS0VRd@;؎GKfA *R I R{vSg  v 9.n4Ng;-w$d-$w7\ccX)a(`QhUH= 搮O5洔=, H~YD=ڥ*2\_"_ \Ag{ֈpU׏W\8Q x=2N5+Y4,$N0]1`'H`a;fEWdUKF''1ˏ?liHj.oHONjB+}Ⱥ)s&\]Hvns#\H7#ࠫ%B<-& 7@7d;+մ)iNZ.9հ]'VOxL he"~)LHUz6ۖjb~i@* 5-3 JhY"(JhzkL%B4ifbYQq5V}3ub+nEXZt|AޤDm,e)->pGFhb |/?O$X$x Kl15_pj"7i,#(nwJ!Yb3ټCȈ$x"6BCg˛wNlF-gR-ЧgDMDsY\̜_ q7/эzfNBƓƳpa]JC8KUE="_:!{ë7y41A.o](̛'g@lHb&7%QORdni3lᛥf4^ }gs$*P{a]$+ Ћquܕ7bN ӂucY@ YeX4r p^;+XpX8 a(|Jͺ+1zyzIؐBjJE$XC@5>\0q)㠟x'+4Rq"= !~zſ.ϕA9}]FpzHIݪ\gBg?UԍkT2,io ٓT}'try5W_iP: }D{숆R&Jn)gc h -1k7ۏL+eSE p.e'-ғ-ȩCmXɂcI ݻwB$X_<(ӱ54OXc`/bE; T{h 4:ǡ f0`~L+ewl3+SC%M@EpyL|1Y;V3ad(tRb\; ivrކBz*=D`P*wE@ߗU $)X5-a`TRڀ!!,} FD4Rfܸd3uPd4U3{J8'(,޳(n֗V<Ǿ:/zSE=d1=MOG+?]z3 ؓL-0RT9_FnΉ/yqld9'lP|T>~Sc\H!<|吶it7 3#>O*/Ly>Sc(C (/kޒ|R\ee@F5w^;z뺾{D1bIՊDR*+'֜J>Q+@-%ކ=Wb[ }*DW:sY';oBPLvр:}B3=}v`Yݵ8IJiԳ5Dz^{ n ,Bq!­kQev!H7Vp/)Ux_PHiЖF(Ѹ䃏ѭi\+!u8ŌxZ:ycP݋)%deLxzЛ/&Qʹ'#n r o`f--f[!o"`T.ʞPL㕄_-4p6(5*\&8 jlϷɵ1(:1yTiA"d]O+0cلۂRF3#tZ>5fR:n鲻aqTx ^31H_LB7|uhZyڴ#:R27X=،F~!~.3*YJ+K/*?-pC"ᤨWa~W,Uizoc'y$g:kGƷ+ b7ىB%9`bBT51Frt)2>/n`WyA^q}p6XV^u ;i=[ר2W{qO'bVa%(;@wЉcnґ2q4I}u҇ A!|+za(06Y= #d{t]Zi6_M]qUϷ_!hP}BPAa}Qx ftz'r(dsE_'|Tɬž-էa2Zʱ&,ko݄tD`mp<@pLLX/ir0 lܖ }HM_HF|N8K6"w) \ci;oCjݕʌw㩺^9vLu`#Z,E{]j0׾'.c&ph%̫$ ObPBk9ekh_`5zx8KrTz7/YYhHYhp x DG0g rS~w%uˢ=L-z-`z)UsۦTq?([{8^`n=@+F/(gR??lÜ|U38oV%GRr\IR^g32VQ )0IvI1KmyІtŢyj^E28xnbǶ+-|A%*B~یBe MWΝeö | 8 K,@UaN0jгfՔ$[$8;= ~yqk-E;=匎2ڄ9(-?#~N\-_WCCYHuKHS#w24CP:hdNm"U+Yv%\`xxPp;p1/BƠ>cxC"DRRu_L2ӄhl}6PǬ):U"x扙tKRQK\5otg');h|mCf/{.Y7 Z,Ԙ'MKؽeyr,g2_gI՛xȠ8Z F{s9ٙI4&Hw*x3m،ݙS\ٞf ,.LQq`l}YY +Td@.dLt@2HAK_~XxSNtʐĔİ#])gQspžumj HyHYDM`x|gt~qd+'Bl^]i̐7B"P7EE$rOct48Ua'|$XzN_<6 l-*Vr\VC" 2%0;f 1wd>RW2H#jT&GE@Y҂u +1&,k[t^|:4@g# 2grh7աT$YaX}1zU/q"%r$:|A6?0*1ChIi*F-jQX;:HǺnuYso8 @/]_6R0W) r<'f+I ;b3mTYJ'?Ǝ276j,N2*g:"% ;V_~;']tͺpJYY-#ԸPsV Hc}5Vei{aQUՁG. <)qVU0=9Ў ddIPb:R2V#$#٥xDJ쯯Ǡr<S2ŗqІeZ{$q;d~Pʐ`>6ݫ\?CL=FCJ"[!G6>>Ԫfۖdut؟v}H`_g1}}\âD;4&-z|Ŋ֞K~,P2ϋ &Z7rzsqMh}Nl`: B̀@C kz];P?<])7Aچs` }Ff+]7((|6,&V ?g11uj{c2-M^@ tϪbl.p2{l{Y l] 7C1HqMGsIac*+=5)KC,_VA!\;%:hN]&YmbV/Pg*c_3|elFAٞޟ6W'Y!Ň#gd{㮦,P<Œ:wm ;22&K&,|YAuK祥pDR OqLnE '5W[j.?kRmN7/8V8 X?(z0`04)jK4|\~}о[4Bn!)8[]90c)h,'3|-mw}pe/qx *>v_f)ּޜ,s8W pieB//.=]n'9 T.C?*$F45ώ!dmJJUJgQ7 p(C]0}*)$@9TvVk"D$3y><+.ـ(%*)'~9+MbDk*0$)|o=uGJf@.٦ر_l/"K|BT_Ts/ 4>\^ _y#sؠMJ2&cq ]ng@C%8~ Ă+= n6GSRӄEu|5\ZhKłg 9"rY =Rfyb^+ZLCjtѳ6w;'X3M ys0Yʭr3Q|]SpYF쭳gymE#aYm!lls~I[@W^- x ԍCyKdPydi.rQR&44%N4ND|M()Vw/9}RckN xv0R%Ylfĭb5/]Bu|ãz=Wevpٛ{P?6\UsZ'pwp[pi vD"XjSؐ}7?}ks u\ԋ'Ւ@&)」^Qs]6ChL2+n/U{?jd+!Vݺ1!gǂ1w|5E*ߛѸ8X.TG'?l^g3 @0:E4;gd/qMmdzr/Fc:c)1r? %8N{6:]5+: @'X] g>Qq O{ ~"?/?؃Dž>Ar#CS}6 U,F](h wζpځ; "BZ&%\/!"6 jg@2U/eP[+ً.KTi{b)h܊ >@Ω i;fȋMa GMWIAqxkRۏ3Av=@ #7} H\#%L:uDal>Tr>eL/i73gdga!#MW93$bwSz8jߩiNMӦy'1n .a״Pr$W^biH5*ጙ>kJO0=*tZ$"{mx78K> zİk@10ҩ_#G$j^wWgon/z{  I X,f?T{bB4"oIF!@Xr]denϰ[q@[ R9E{@D?C@CP:򿞭U}/05AԲQ'%f 6K&vp? {rDO 5g|h(^6+Kܼ`T6IWH"|Րae, (>4(m'JM\ac'酺 @bzC*tj&v,,e?b^*xlKeSу2XM+sbZU^3$R"$g)Xr)rz*|B:iI_! &n ;M }\}sxW(f)g|0U:;nX~GF `FF?GA- @zqρ\#Cg{S1e? y"^QPbF+VH@]ArBՊR70X}e+J|"m>  IB6=\Ī&̞΁׻Y5&[ 3,*1* 2UCewX!ϞKUƹ՚ć#D㸓Rر 牧\Gls`hP3Qb._dYwE ZQD('&L'o--eI: ),jK%RUO/=n5\͑}"vӞDaƲJV`*qv?H̎Fw׭W\USJs^?ӉzӜ96|{=l9&esKpՒ\i⭡(Zlr4G8'%]F6 4F3pfi !] ^ Oo}2dch\a, %+;]Ul뵛{0ȍBx%1L|N`vmq&lU%.>Y_D%'4swov\|G3;y?qh cGUqzud: QT&X&47F4扡^We?-:BÃ~rung׉d;unx[b헄`C3=ͮPYjٕ+#j5e4i Yu>S0LNSC#MP]25]$`uIaIib]o/1ڳ9c_f} N%}?RdEmMMXhtz~E7i2qH4hG:i~;A3 zj5>g@KPoCQj] ^ud@Lix=3" ^  gC [RD~[ng[pyo;Wr0;)pL;&RMxxqTȪgI7kUBwaEG} `*LwOŊ p}f ZX:q$M@}XjV? V5 JjTUL@:"(2THf$=&٤JO.c£{U1 혫R><-m(8&anUZ;̎vobѬg-o*)]7]םEa1+Ԏƛ=&Тe.FaRF%<`i:Kޗ 5~$1'.X<2KoMY)zTĔ׮P?vS44AiqL +tkɚP:e™4g-yo}=ofUݳabo $PZn]H f8d^ul$b+2VHDYjb@fl^ȗ!A]CA8,ca o1Ii⚕JZćd0>Vqs 1{վIsa5H7.Tm쪶XObdL z@(E 7X2|; V(Nen_ZС TgxsZ1@2V 1mm1!g k/wEی9S= $J‹!kèfx {=oAGkE% K0Mk)# -1 JC>Qólm8o9Hň tI9˟=TAJQP#xtptH`w~FB zv4]yR:tbaZ+jT~ X/$ i*,"$„2~!bLBlnѰ;.i67xipino]к *+= +]*6ƐՉb']n'Y^;T%+KW5 !F_à= *3k7TjjuܩrKISv').5/$S<;]N8~%I%Xw }i;OYx_xQ!WTokL`hxW?}m*jC|dsǭktpŁ,cܮf[+HkJ-pZ]ǜ) m%7fIa4m̬"ǎ.wSv[ЛeU.g03_8dcq+f[ oAE`Z- "F8IDOX|`W<练]gM]4R${uuTʄ2s2Oڏ)]VYŀKh攟9tf5%xn) T^ wQѷ=˱^r`!F~whɼ!Td ?[ou^lR{_@g%BnNq3wEl W0~!w#4]fq¦e|֌Y^T|+J㚈s3.]{Vl_^" ɲ[[;(8}މfВ#眢\t.d9ݦ<)0=4vw|G1+YRs6`v&so'#[2$;pڜ ^\/jjj<~ ^dTE YE<7AjpS44y93L80*$g ƞ㒰׮6||`़mT9~lٺx G&P=@֎ pap[S\ v./οոZeL-_Yᜀ%o8ogX B6LI-E@+9*Ee&dfM᪖!d5 u=-r)9ݼN `.]th:92-nT4K6TI+Q%҇,Nmd+EP"_ҤF+-KjUN{9q o<ɁD&O{ ^qZL}TPd@o-4+4J@uMos/ǰrs?RGǁYԻ Piw^_/C:dg(mӑJE>^e%̫W|.DKyx'm u}zl >4-͜/8{Ԩ@NZžK]q',N8Ćtb* 1-Z&TDŽHӷͲI?H^]֡T/C9-%m>&zyC\Ӯ|J@h9&7_z=l_sh hd3^d KJk_~1b( ,\%8T`d eE| KrO#fqbb X "rp}7-IpFBt#bS|<{;;JQF^R}Q/p9u!V9VUth-[z-j׉ɩIݽ߾9Lry=NMڶ_!w~2.`CH2KHUW&>wwb( }=:o__"=$pq1,k!ܔ $=>l0㞜SuBT͚ht⁀S[k8|F^_.]a!:QIP"?R&Rx&\"a;qa<*h$jŬ)tCFLl6^_"`HEl3EgBvV$ހ*/}[eՉL&wZ \^ hWfiUU!J~[uj ax#iǿ}TQ%+PҜnʚug$*zg!`0d7ԂAW`,q!գEB2sF u3/=0g #/u" 5quw%P`RsNՂYe $XԈ )o泬_E}E+''no}o?@ qx&=eP*.*Ta0Ly+or(U8d28K:]RF8easmI\b䢃\*H7t]!Qe~:>?" u)Sk-Zw:xKc~t@=H+"Hd61jL֓O:GUK0ϝ'@Nlc44MMT Sjpo3\[n<1R˾ChI`7w_ 6c&xTH-I8KMץF(Ps[>mmB9vہQx#Ne3ABjs2QL)d(OnAKI$݂Q @ݕoф4`v~g府i0j,NODI. KNT%eٳih&_oBbL6y h=D'tqюD`\G6>/Ц7 H@ʤx[{o͈\l l:onr 7M{`܎>\oW3XI/D[&B^ڀ7 86ʸH7nnG[Sp d[*3tlQB=5;5F;Eo 5;l,6-p3@WƾLIY>]f%|p< <5@G L;hhބ eX^@VLJJ)yyU? A?Њ#5DWGXZ*Ep@݂!= ;uߛ0Sk͆ŏ܄\kkP/hL<*v_iy{7y(Sm WIlu  +fA@!C$co _y,5m.~8 E@9Mo03N;rlKK 71u )1Tmo($ ԄE:zb}2pQS{[+ܷߐ=u>6:`䎻KÚi%Tl\\.L>d@ôT\F8&%)H3;hO>f6^ 5Y*n.p9A4 } L %+ hacIӇFs6Hc_nj;f/ԙ㰭Q.I2KWG^@-{)K3p:5DP]"uO`Z Сfx@` (ք"ο?25֚YC20T/oͶg9qo;po.`ZМU gma{MjMVkXz¥9K~?RیV2O/]l/W}kxH7U u$ ^l Oj# pfP?|k:8ޥX0۩Hh>IV s8:'J p1* +YpL>-?`tF%fL[~k2J|\#W?ݨWxQGE8hq {;E/e{~ul&=ܼ]`f u7MH$}.x7}BnrMV䢓ވ(H |,6x9y4 1š"؉8l?հw=+Ԫ+>ՁV|E107 </{ؤO)[ud yO zcSawNz@)2K< Q#r@zuG8*4nX@rA6֯MqW ^fmJRx%,4<IͬWNmvfcT\2j,ɉ69QqLhnHߣRMfK[ɵsG32lܠ|H[Ҁ0jo6}l+j̈́v[oD&?õp T"RPxM >lW:"uRӬ\eFTL*{MuەC!~zc(qQYW``5UB2B lUi!ٲW Y˦ZQwa^w߸WAM=rP1` u ήξ^ٝ,/?#0pEbot܍wM6{hFSt#h78뇛0Ǎ%uZK ;DU !ՔV"b7>Zj(7y~E@kg gs[<^Xŝ-}ӉVpY X xv&K2. ?!A0tm|Q71,#>THw!$.펟JbwBl$3ër!qzR]BI96 LfQ!AP;q`ߔti*U ֒ґdiwk5 wP?Ciw')%d&883*u͛Uݘ \YL HLJ({ӚD`ָtя-_B~:xAcf;Z*x?oN~! ovLS_'>i<0yf-\Q;1Vg>c Ta,nkj׎۴pZC=#.\ k $D_c=>>^d~!#֋ŏ%޽ՋjCH(t~>#ȇi ND%-΋j܉o'hF aP̝ј0XM"Xჵ-JEX֩`Owa44R-*=/W6ؒx׺?Ru]ˁ EZP,mm4M;ɣ#Wɬ]>/ȣ ؄s{.281]؅h ,mF] <_QGu@HBv(EԀ"K*n/UU:ӯHz%zi<HZ#X 9hͿ<{ɌqWuڨ}K&Е$[Dt-$=bMzi-#m(Ϭ^ɡH|e?UkG.2hXp珮o J2 KN؃3#4$dDlpuiŢ`[=)OcgFD Y4š|3l?ݢp"Zlx\I@о}@/v >p`#ҠQ $ũ~\1#OUZ8!خ gV;trbC֣+vo)9|/n,p>YR:o$Lb 7WW3G3$M3dk:W4Jԧ=T &D+aݮܩ[3Ս59&je>A6K<,3zqW +S&n܆)*ucL~3˸Tܯczp豦[X5ݙ'6hFip)4e~9@-7ؒVҚQwk[l.H3*B˾<7w۫B`|}"(2-`/?Ko`Գ;[@ x\8w1=@H Gq7 tRÌDĩ3885pߥ`luE+k*I)J]E1+ԑ>*ܚ/p-BCV`1VzNyX:'醬П.LmYð\:=< l9Z7Z  !?]=QdSw+N^de㗒C.l_Q{2^#"o@V4㭵8 I # DIrܼrUn,!{)C[ ϩ#-OME/X&mI y(~&R+cQ/F佧``(ì'$H*S*lƄ#!/yC,FR kY[׽c@-E|HΌ S{Z: |;k3V<~>x4X& a͞Yxzq<_*̔]mco-Y+z}+##6&M*6dԉSah=}4^ |hqyEm'hoRрd_)9QIz0LuG6+TzNiAi|,,0]F݆DVw(,mq 8K4k\10>#cׄrTzJz)D7{ut@|o.șɉuG#h}nu>x ~+fM;Ɏ\:0{PnmyASS^e5CMӓ9ܯҠݿ_^$OwXW"'c t9:=mhuќk{v[˵HHFmb;wvt_|XN)?\nbSȖػ|}&@ S]ЅVA5ͫIY~ƹoOj"{/\TzYf8[#(-mtA;}8To~ʁѭ̇* 23FNC ^:`7y$)8-$  "eד:!Cq3)/"-8mKC94|ƠN0 ؿ[[y'uyv uq$ n~gjiq3GO?NE9T*uo7w eh,Ҳ/%LY1m/sҝEG֬<RrUs'*܁QdՄ)k#A-@㾭,_0ӈ*!"{e/온%aĝ2ʰ0 }T?x1b@KtϟGLk1NGoWUS':֏Tw6X1֞HYU]ݫl4sJ*|ECt;KFk+_8O=ɥ$4c luuRD]JwF9H8Uk5E(5$%K''ۗ]$DxC^ \ЛT[edم6/A$OJ0c "z,vWQ)YTt|w#OLdkTЁ`'b"~hqkHr" ^HU(]M*( [nٶJS0viӑRa=?,iQK\ҧ|0gsl)˛'xgQH]hBJ @ zT|U;{0c F 'k *tp΅ v[8P;?8 ;()mȅw', U`VLՐkܲ`4,ʪK Ui]fM]Po{ǢO@1@pB+=gWxX4 p^A(ܢжՍݏ%Y/9M^W-0 xSK2[Mf"nhm?[񻱢AO+ќ+@4{ﳭݵ̏Nj{b)˫4l)_*c> m"}`^^N>Dߙ/}UtIrS)5~/MVYVD¥$mfVS潸nbs%áܴ/"չmBqhEcHؚeG^k\Gmu, y%%~{uyP{_v Fj&φ ?2wAb#%euW0T\KP`tɄᝣLo̼-h/sZ[7n])/ PJ_vUT%V\|5+*^mq8֨G 3x4 &mf$~Q@ opƠ(gq(".WJDUf#c-k !. -^/ E8M2ɶTMvx嚘rʀ.ppzZ+34g㼥7Vہ O|V>nII7+cwTM:1Ks󡃌Y[]{=q˳1N+')9 4j9toGyʷIB6íhhcsp4"yU4 \k6WQ~?*ŬPQHP}RY4}6(+0tGwRIJ@>:Z9Zܙ#6:EXH'kȹ.@j3\nĶP_eѷf<%7y?-a~;>DºѤEy_aCYfƉa̡aI,,/8/}W?e?5U@Qlϥg!C؛y&bzcm &1ZQIdwo$^ ݩivGs>ed=) X" *Ev& KkmS1J'}kY.NE _g V $3ms]uzG=k߉u˫fKBpݰ XUDͷE0o]B*L}_ "g;nklP]zYWr0b;S`E##kVB<dEK25eyH|'iľpv`&goyU;#848rߩX3%yvZ l,'s"8j`1mίZ+b<쯎za}H|킈M׉yXNhd¾<9mѹLt-pe@ߙ%ܯJ{$r/(&kM](bYFw2\Oa_׽`Ćx!n:L*/M\a]6_6ΜwC] 3-r素9mC:fn#;+H V;üm#Vs?촷Xx5RaK3x a3sCIbɛAMh'wׄqd_`#Z 7Jg ċ]70Sg]k |DA>[;$t^x·B)G(1UR|/A'>{z0=ߪ eg,:vnU@=m }J Ɇyn4x65,URi"YBBNp Sl "]..:.) *^y{GGjE;"#̊Zo#z`{mƯ܌?<:miS( 8)S1sNY_Ewp&.oHVj+/WN U}K:N3&Ky/'.~.Ը*#IB!˸r qO@Td8Vc=)^L_ȋS/Z_Vt:&'OYq$2Y asOlyj4˼?<AEίEL{b b֋@e*; ~B+ogQcӴMR17U}U\2[òS{bJmQofq\r cJ{dK1'0ݷJf@׏PX^aC rj@rzyR]Nhgazn8btO ]Akq6}BwD`Gsްˠ3,\PPO^\Bint{$™Dϸ'<'lG6ُ W '1p[hLS o9Pd~u,jXG,D= M,rF7G9jb(Q B4dSl ..я.D~!Ylq{ `Z|xm flI"B }F\^$!_ bBkv8ێTߘJpC^mYXDX{]41 rN ȉ5Uj jUo2 _K7'0ؘ}8N-_>N*o4l}-T !'AE,<(!yTv[Fa&׳vzYӒ7W'M^ѻ,}b#OevNy' 7SWv-iO}!٣N?'h9wlZiLY?7¢H nQΠs*20zYr_J R;M Pzf[Y"Rїu:EP;Xɔ:dd\Z˥[sXh ¦jBg)ʘq=S_3A}VC 71!ޠ/GX?Z '[&@L?7]{SJ%_[ENZgYWې285.穌>v^XŔշ\M% ;cݑ UEo%5 nN\c[rʌkb{d kCrL(ܹ(;^npjd?5tiD; "`@FR#[I'pՐuZ@Zڂ0(l%ȷL!n0>j_2Ri ;b +?{gUy6\% `Ƅxf蚢cClrec{Q22OcbO>b_ybjpſEJ>[f+13٨6ɻZ_:H;31M#B1}Uq(|-I JT-8GDyr$/R'npG&rKb ŷS OC%t*x_$ ]PT#SŽ=ȁ̭mS#ف:g"mB%.߹.TF:n<=MgEh@ko~"K LjX{+Vjs!_&2"Ih#MŌ hqitUa8/5JIz0bH:-緒tAr,:\̏:Ke8;H%  $#\w2M`aEnsW낦a".28*Ҷ?~:b!4(⎥a2uR +v$`7䊵.I**nzf4a.Hf瑼ְ7߈lSgbӳ v Oۄ 5HΥ0SB&1$8g։Y6p;kCO{az- aox3Z#'];⠻ViF"1נ>هU?ZPˌ[5huv-p9X(1Tc,z;eT$f[TkU!u`;蚷c +|*E8E9^M}_ "fes5ڼ]mm"^J K1R.J7w9ɋj #7[:mmVJS6H;uWLwO{o:;кBN^* qX=rvT鹠jb_5KXŷ56o̫T 2Wr#2TGE#ˁ#M8BIuA;P>:a0]Q0"jЭ~9F9I@Ʌ8u_#—EnDK8J+9c85$-yr+tF8\v>ȗnnEP$i 觬pfNTo}ecga|U8sEWpk![{7* 9YCtTc%3UwzEص W!czĨLd˙;?Y]y67pml8ɽwh؊շY|`o]m6qdxՐ\n@ؚ%Deߒ:v3RCASkDR<Hj0,gaz 14c"?[Lx\ ^ K7 J) ΌY aig8e`b퍕:XJtRc򅳏k)B#S̕LO*2Z q)}DefT=FMx"+C QɊUee7vMo5n +Rjn" ߝ. <k9['7GfF2*}/EoMoүsSu-grB~-/-C6JPWmbtIdZ) ן+oU^yNUy,ɸ ι`%dIzsް1ƭ|f6x*n!J<*nWf 747̓+xo"+:O#8HSw??9:$=e\:'Z7uЄ!GkǏ+oZPqy iTΞL܈)ZIL&!q$ylqv8 T$9~!izŀ،!ha8o7#ate}8·BCt0x[+`m->p5$;E)w~Vp~?U.ܦYy7dRc.cYʑtKJ`5?E { +t 7@9q.q1BGN.&vJ=* tIn%M!ةef!G†E{aƜk. qZ`F;3%hML]cƋӀXh|蜈 f\pR1@ҝOi<<3e϶zh/P#0vv1LycM 2 ~;1(8z Ϊ%i2f;Q%Z$"ԝ͂׷Ȼorхt>4.pK=|u.RLWҙ7h67j^t/8U7+h\Б@1yl7XYnQ`=^"2_6ƶyRRW3]bScL?n闝 nyuɷW `JRch=kg:~޹_l&5a3Ct~+%ϖٺ ll~)#r@H( jUFG|Uݱ^}AF/{įna ,%2YcϷqa 7ڽG5?F ? ONOQ!".%=(|m:吲LfSdCLv/Zy̚:vA%L&[Z\&K4[0s?Dv LM,@Q{ /PRa3U B̠A\JL K2gwwb&b,"L) )e{ʼk@]j1lH+UONJf`mvoŒ,C`M%2nw]ۖ_;ο֣$T WğH2Xߏ5()mm鯳6\?:CPAEQ{!)̡!v43,cA /*ږ[Ck28R1K~4?ܜ&F FA>#LT=ltI_żp*+^nމ}QЌ=tw L4-0[J^$ua3bN0ةH ^NKk0;Lf]?/G] ozMT}"yeH]?☓G(ĬrHk}lrNO" ͈.XM0e1uu.!ufFlSroP33ResOlQ<3PɒP.D_-G(&f|;nd ΧИwU`zgXXjyLUWd{h n}|݂ԕJGXA&+٢n kƘntAwF顳b }<8wB rS&K;y c zL&;bZS >q%b<06זA+:9<<'FdkJ E^k^=G^XҏM " v|GZ͔7U2eBKDCI/]l%@D9&~<cS2z-qop4(?qhtܙ}I|"ՍpC•P~nxb.w^_c7N(b|F&ȥnr,2ff.ih_hcBC,Q< x;0M Cm11kx=죇F oV|*\kk}>0XH+D11FCst{9=M&1:>Fl2#T?jV=;_kv3ԄeLT+euy9" UG=LТ19p]1~qo`{O%?S7@N X]o1m\`;'Z(Eb.7@ 2MyYP\8 Ġ8N l'VMk@T[Ű<; J.bq*S$2Q ̲)}{'d}[圪E,^J_Lr.}D&Do#ت_D( "<< 諳nfpB4XIRܓ E] …'~˟:qy/޹ft~_}ͧ8kN۳IJjfRc'Gfqu;2-Aw"?:Lnjg$jVU&k3wrץXk\xe2F`^!)SB31i@lqp9uX^VPp"%Gl:^"tufWF6x㹳`8U wɢ8XFv C`\R|䋤W-m ڥƩS|Z=\3IpXenXn،]q̘yayY$*4N݄K̸!yJ{QgV6u{Mc ~YpHp244"a0մ ~VNX/2~ Vel[ElZYf4+'Js^IGmùM"ETF[)^Vs # "SRB?4/ < w/_5cY9_iꉗcۣrTY؀/8F81h $Y ps1B բ1-:0Il+KWK: W;~y*HVn3H(ެ& ;JnJĵ ~jn+he±~By}AKBяM0yfVSfc:D"Z q7dz+Rje6gu~9OpD4 @$L 6a +fzc>[o&Gz~ C1ٻ- TC-6pi4O4 ɧ%~S`UK<^whPT8xü)5 j(ܪh闾M2m/]Ս'ꍻ{i@@xЏjљ;co8 3 1 /쎃uei`]0מ>CŒ@KO71H^_ڷǐJ[c,egGi;Í8#M=Q(O\;[D[A2% >Bg+AҮj 7C{iL8_WzLɕEghKTP6F>=4-uY+ I_Z cȓ i|*';X&O\zI٭6Ίߦ5}$r?Of%;AܭϳMG$b_~\O%Q\t!5}M~ I$7\ֳ <oQ| my?m ['oc?E]4Sf_cf@ 1\DE_O>j]U>v-x-n{!~#@.ݥm0T8 M-+!w 6иk4.eeX OUj SWOõU |^og Ti|VHٵgݙ*P^;;$‘XbTh2<[od̐!|x'g]W>38ZkQ@@.κp4c|cӭe2h?ofzj8)jA1poiyX3q ޒ qު%Z_)] 2pW!C2]q B/]^5"z7>LZ`z0q&#8 Y4C V1_]lh>&#bl=PIaZ?Cx$0WK=uA$r:hmnvsݖ|EhuDr׬.NWZmmN.2V8-a41ۧ*uL=|f kb j%TTv%&X@:V=@5v&|d6ۛ%أm3ߢ/t>=9P'|P]cuJ@~Jus_e\~Ia%N~S;N{1a7vVTxV`S#K5`)72H `j4sTuS)Wْ%J(#]VZ.,DžQk bSUsKw!K.[@y3K]?'Vzi A2$UbnHg: E\=%L@06}(l4hXg6 ]^$4RnK~) N MXy;N&w+~4ܷQIZ4ba7z@rnĤ*GF] P@T/ 2H.`9ͤ* ZB\d*x /_D*#4moLEE̊$鍩P!DV֍7Ek-Z)'l28+;2vj8E p ha%PVGPkfepRS!L_ u5QcUY( ǣdmi`?^}δx2#u2;]fKZ *AuWA]K:M@lÚguFDMuA 48vmh,bvj*fEs,Ӽg t9vFm9RDŶtvS޺D; FKfiKv$ &` j2>? Z,⹥ˁP*:R߼t`ka7^o 4I}3/1g޴{? rxV2RwL6~̩j(}"Be ĵSg~&*yL= C|Q |P&zȘ)ZS;kv}zRj3*3C,95_ e%yH!h}w;6oq*-*G)u`j]ť1m Cﮍ biF4ђ3c8X#vp0o~ Fq=|Ẽ␣#;AZcr16.h^[9d3Hn?pղP`TŪ3@r0bd;HuDY[\=zS}xqNRm:K“. (hXcO|=VqnL~оl^m}f3 I`ы5Њ?Ql vM۴ _oW{Ue粕_[.`U#NC Nq#`^fAě>YFqy`9o4xQPeΤc)XGkCK6IB&~ѧQ87]7WBc+uNK\xr!SWi%&ԝ%%k:F9df}L#!72"\=Wxg I>=}YHq|1`zKC%]\ e)+誏lk80`ȽOfow.r#CV.8u'h3'_s;[yb `Xn B" ͪ:7XT~,3ħ]om =N*hryD W{([ /hs-yt#W'b%<,Rgz/xҠqL4onN䊜'3@W2(FLK,HuJ-KIRoZwM:o;q }So^Jͬ,_[K:k+~&^K{ǐR&yOdʣOMO  5H_p J0R"2>\cO.&@R1׾=xDX50;%K}kpݻt>wzvN~MDQ1qUqrtS+YOJGchHQLtLY}(S~0OTFt=ׁ&&ϕӄ_ŏ yQlQu %`2 S%I{=67mC LRZ`9py=a9ǟ}a1ӸfL'\⸷U/8,q\h"<I:>l걳}hgE<|y"{W1Vx# )$矱@P L ٙ}F|2AAsUHODJo,RNu?'eQGa/xJ{ۆ~*^+r kLura1 ~Ml웒݅w-nv+j+cT.)7v G7U4`#NȄdj!xnYʙppdM5UCw^A0S~|(%Y>zsp){x^d6GC_ lCieX, !$t`xx\a$,_C|/%6qYKR^cOV79"oLW#ڄquDcxŐ׾^~љ_IaRbyEIg`%(Jbkf`3#7ϕ𥶤l/t"+_F6} `rgM}0)]r$&ʬҳV01F~׹9b3Q aQQCH] L3z sVd@}w鍚xg.kuQ@T(^Jo97΋/tK:ʜ|g_8ӧN@ ߓpOCilF+˳lWI*~[ |כ9,-빫U-y.;\{j' _6ƨp 4.24q3|bp k{ _v'B5 $Jfy9 KhMo>HR Eif|#7tKķHͲ~M@iQC0;W.2k&9^vP(!O6aSFN"I`9U<pʈ\^۬ *,/蕅NiA[{[bq+Lx^f z]Ai%oMNQߤJG@ Fi ~ ,X.pŋ> X Ou^ZHy$,+f!FQ f]|-ݿF+78/ CjaY)/0B2eN^.WP(MATms?/څQ}y>QHBoG҄zU#.I=vioن0N!El(mj~ܷF;qA9l.D%v1)eQEƑ3K[29NU\Vr7]LjlSm.cg8.v`}SIeu>T9KS}b?^-.40.q((q\7< ?&ߞ I_6M\v{Q(Gs0|Aʤl,#);` ڕƋ#QvS2&deQg@o XM>ATlOb7ޙJ/?.ImmǣԻ٢/n{>$j'%d{PmFHhО*_OЙ[3yaxϽür^_rnPNJcRv1 G; l0,{XgµgÙEu ٕO;02hN 2y҈ UnxەL:qAҙ}xqO?!fқ'i$)F=rC7 3kdu澮9'%(|bU&>r>qDER")٘8 ^Bd> \][#FxcyK2(*yg ƙu,)X\rOڐ%ߦ1=y59l(r_IE 99W2ȟLVk+Vp=~YAF!>q㝽4,Ha<wqSӈ5R&gjro`J.Fq2S KL/O8ߡjrw-L*do0o:c1Βl Yvktr 7m|=q7M) J>j*AJwQ ЛJ `oj˖o0rWaCڕIO )-&>YL?c;b1MCX@_J_F;rMf2 #p<,sCje fU% \`a-sIj* `l\+j$ )wOG OBJHO^  5%o\tgB9xgʔXҙ|f pci;}q(6^ָ' - [WyC'FO(.|O5Y1_ȦГGgj?3|kOuƚ$tlya's(;"簋Ż~6!vVNzj99|x=rѢnMWW@iR 4rFhK]}qpb䈮ѕ)uvcN/l<=MP-Wbk#N s O͛/ Y`=>y1}:3\~s.|وEM)4)Yx깤y` 2y_LLIKZl&sMNt1쏼 jWҹ_od tp%zj0̉skW ;YP.>r4{|ȃ+nU#}Q~GFh$gdVѶ Aۧõ /hjsk 4a ^kr{䈺f_h4@k x'i" {̼W:ؼ S9h0}.o#IM1 ?`1efup6(sKiȆA$9Le}xNrtLw{WCH;^V:-"qbH[ߕ% q/at[9nrw/w/oy]6Yqn W]+N e_ t5h|? Tc : )9@"-+g5yKLj+0!txΤP,CVHDS#>ƒ[>/@vś(lPو%'X'ŕUغiodzWg5sxDN;u %ۣH'`n= ͝T˕b /]n?x#h`^o(݌ ;foJw}2olн)-`=$ɋ3o}Ȋ%ۦHԝ(dڥyn. (/aXSJ9è;gI")]pH5TDgl}Le˯pxUDž> îxݫS6F3+כ]Q`Av>AHYc*U[m,=>棢 OC*DZH S݈?TDOx9A1j?3'A!CQ*"+ݠ-QY@wAZ7 QCT Q9蒬4+̱?*uh髈Cd;L0됯&~Xx?l|(ߎ=a7;|\G+EIؖ^ũXVC$^}sf,Ss[1J8CX%͉s~>\S~IZe^T-lisTB/"vgm w.> Խ ,t(0Io2hy~gEt}R4+)7~N^Hd$ Bź]G3w+l1!O0Ϡ6΄nf6#<7^wNƀG\G9lcBz Bh;G!㝎:'JЏoƅ4RPY@`*)u%n Vs ^Έ;By4(!y`I#E]nfj R K{${MtKS[kh; y=\<3S+":":ѓ(?HmPLkV);OBo I?dZ=b |hEGbE H|'Mqx j_R9m|%0=׮_ZۜSݷ#YYvsP/-1'k sU=N&;6»L6=t(@جJ8=CGso TnwaH}ڄ:xrc(Nz*Ē[r>pҬ8E?M6wQ=AmVhm$@-KGc[e.x;/U"*"]Hd91o('4=n@4l1#2u㨡T$C=0O+|x! ԗ<#Z@[l,T\9Fed>eRӦڍ3qXB&8?)3XebGd9QpR\8lM㳺*m3EA  cfjXc"oG:B0m'[OHH2TrPQ K TG/VLtZ-RA'ӜF" 31$b&y'q !2l>s'='i6HC˻-`Ros, $1i!̾N~L:߿Wab9u }ֵW8ZC#3|7'F Nh]|LnоNu"ZtI(_߯eShP kiơR/"| [1Q:g3]I.G[RT8QK%c@>uf/2=2-TɃyFp/? [01'kEZɇe{YnCe7zf@at"Y1Xsg5 ajZcCqJ_])׸]'^!,E`ir5pX/%߆ $ENrup ءI(Ccy}I9J{r'b :hlk.5ͻroamBw&A-<Ȉ>`j,-/mg`v4uۀ.A?\.`3q-Wʊ !*Yrt޼ m@ε~Ě/ -4(!RLaK7g+^xݑͲ;>v}=3q1lRWZ eLz`r4ivܠ{EnGwVܶWÇw͢?'#MnJo+馾BpC?G+dPɔ1{O _^1x~*yl#Qg#˲)htZz[.2>X7ĘXoW=Y&)I qc Kޢ&W C'O­~.L8Onk2ʐa?p4:qm`EƠt뗯9ji>أiO^BdzzAmA%XygU8(`W!ʠx#6C41g<ń]'ǒ۹6m$ĿӶ;+q|HY ,X]Tz1LuNZ]rB؂ޡ ԟ._$q&v]a9pVn{}))^ ad|kjjNxCoQM DgiѲ@J7 B=-~ڳ*Mg&i4_:!8L Rqx|NK3*l=* "7MŜqKl^Pu1EqM04ZklKfy2>o"9T&ĥp:AۨbJ9&'&cM)Zn 7P9`W[a">P6_kP#۟tʬ _lC4h0佔7?Dn98nf2^Ub)"qiӼFѼU|v9*u>ąJxоG qic/F=e|x%#Xz+n΁9"b=P~tͱ3ep2Q~CRu`BZE@m19^]!6ie"$lt >faՒ~]fLһ%ԗQaM?n-@U#d~D2ѵ'$| s!($.TkLiȺq]O:&3 &@Ե rk*g \-kiez_eiԃ?ln痩b)ZB4!'MFS?1xs|5FsNDwP'! ;/=S̘S%nb\sGgɔ,;=Ta0e*qך7L!}D]_ USc}YKְgsuVt * He8̆ G {$?҄ j@ɘXUoqTVѤR-Gֲ'? щk.p$܋{{(PMiyC} .4)%-G5wyݡCq<\--,ggObxG `ۈuɸJzOeL4ӓTmK<7v&n+ZC3Q5x`YXȔpv776~ lXې'些Zï\/=FYP.3d4d -~&6b5a * uX#ehD5A0w 1/"h>̃0VU6$xMRcSFhDupɕrH=1Dd9mݗZn^Pwn$CzG/3A< 4i<P=J"ef_C:\~%z1zv>l3u1L20SQS'}Zp x5̹M(yB˱zkxt.翈 K@E3.c|WPcTVw؟w𙚛߃2a1YZ*iG.[;J;n \EDSFgZ L  f^G<- Pz0~L\^(ZFdH6u®V7)h6aI8m}Fްv/cԁqTÐ&Wzٴo+z#0R`ҹ;\ YPYWS}]' ϋ.bAz ɠ🻺vmzD[&2͓ȶ!}Å +~'u^Q 0 T_5ԟ[1u7PFbslМE봤œN 75nx;b?xa#;4qgE_ 갇 k|xyFW DS*ze1 \v5:x=D˘kKQd-W[0Wc9u0hqoY4roÖleR Ft# 7|rH.H.mmQ@;XNOKa?|baX hwIA.WbÎ ѐ{)8V⬪UAkЖ4S,/#NL00 KY:4ցgSlb۠b9\SDZBM S%֓:,ʕنfnTwq*FqݹM),Z@ҕ%b9W6te>a2Sv뷄k297[ aJ:4Ja+8KU%kvͫH<14k^iIc@+բ秘"U3 ?є~ ׀S2m̕!8kVGFK#X )W۪g̘J9/f}%Dɪ93ǐ\v'VNjj9V7Iź]O%j1ҥXKMϔF &\sۑy_ ӝ`mPВ5i5?r[!xR¨u$OTgg˔of/ p&̗{ 7~P~u>̑bEݍLNuAɓi\394'wQ1:} Bݓ( ?3hA?'$_-"[o(Ɵ+O@i{y9iD으5ddU9(ۯd[jO`X\6) WDM'SKss6*dϡ.Mu>uXjl㤀61=cey`;o2ɏ\kp9W5%j/NFAa"tTbpv6 1!rZ=8{DEu±p8.i[ESӉ<ݩpu8B8],$&M*<sGIe nv;;1z6rrD:<=)q=wZ6! D[.A6 ji6!15d"bKm;KU<2tF6`UbZ #/)zJUž~?WaF)FdAP1T,2*O `X5RKj+@thݗۏ͑Ѡgj.隆;^ĻVe?ϋnáW?m+?[o q'|1 %Y*揚Wo"u)8'ӚKt]s)|-qQ$ vQegbj Ȓlpz6E)˻.}+6-J4L.ĄecgSc !c+HݶWCvU"=z 귣CS;KS 2T27VF;l@T+{ۛYs"7D_SOTj׭cz)h\U8"/ wpNFu"4MP4_9i~ɮnw3+V4 T5{-5<<'"ݑi{8t>:} Y gLDu{?*ԩ1#7:څ2l>'^@8vT0brvN3]Gׯ8ybr{)P>QAÔ`< JOl"$NO%GICo2u=fs5$Dgc](Y^H p"]9 ^ J' C˜0;6bf];E{b Ф1IG1zƭœtfO LSuid-:7N^ 1&k%XP,{1e?)TTM#<k} &09dY1I)9H-9-A~䰱yVvUjfq+ho,Ie1!K6 w \`94mųb-GA~s.]5bڝs3ÔL#^s>ؕh_zi cBK@&E|6dzKFjllN*q݈PDu{b%Bqlor4sDp7tÙ veSC׉Vs&;4dOެO⥈v>\J/7ѐYVLp7UernxzF|$]wxmVP1aU`\Ro}+-H_GDsIĎ ?WVh;d}J2\1L m܀i)8(ouX.ULҋë'5ZZ& HaK.JWPs _!t4>A$ޥ^=`?Ј.fmZRUk|@9˓Q}z7~`^})MV*X ⁼AT'l4+|AU[/( Wfǩt d{hC傆/D׸B P/HP}O?C4(McP66FlT,QQd !U{X pGa'Qv԰oX*n-+_P%Մ2G1`܅rh*f1!L 6*Tˌu @lQk-y)PSlNY'w(t`=@-RD 3OYX>h:w1K}dx0se~o7{œyRp'$h`-quEjbOjl {z2d&7z{rAABde3"8W;U&-?ߩ_7~KRyp]RR)?~s;ym|HgnQ}TB Bpb;L8 &?Hx3qV^' r6:/Ň,"3XgD-ޏZNϗGdyq.]Xl+j<$;Ld!sG," c?)3Sæ&M <'1PB2x7sPwQ}gT_pfy3\R'ɝ@h 0F֢_6yh@\3Z?mU~ q"9̈\ 1ŤB:BGpgRwHuV`vwٴ]vL%Y\maȬD FW`WeaWn}*CZÂJ[QOHWJY̫)rbl*ۋ(nsͻ܆'#~ۡa osrQɏ^^)<7 A@#=A4U{Q#q\dMIñr0mS!0!`&>z Ⰱ`0_b@v_ypa˰`pLje!OȚ[Pu%0z\FȬ%U ci>v+`,#M\H0 Kww,"Pyc"K(d}k-[9$;h2ޑl^LL9GE1l0AV!o87dQD aJ5DtT1n ֒Iݩ.ؽ `(s:1c?,r8X=JtTuB*V*sN_B L$/dm3ܶ(+KR ¸120n>]NqzF$#m1&Jn!o ;р ANAsz*3wTm_)Qo ,) oH*2Rn.J8|RAh9h^4ZU:bc|odv>a4'V HI-Uavca/撖w@~!ׁ()k(W fF%!-:=wqdWB+]=#vH/η-b/{D(Q9$ʖy%|oYS3]#pj{ gɀ⁶zCsO՗ZVKPCP`jmk+о IE=No'xtms2ϼ-~2nuRƝJAKQRM' ++Py!S"1S&Εv{edS%GЀu$ea$[ɯ¶qGSt}_4( <3cyOl{rTk/% zW#;֏c:mqrQUYg,sQGYx2ɶ툢x #(wxIt5nĸ_¼FԗGF0nuQ%9^Y3㪰- ;|s8,=m-q} 6(>޸ch]#>OaT ~mvhp}b^PN휔W@h`YVf.&U55YOȁm|r!Jٗ># ZUcHO \:IU]?'IL=y%u^j_@h7DŽȗEC1l cƠHf|f5>l]&]J*QpTs,cBH+N3XSDOI!1)cOot8pjHPq ҤIƽzwz/=}@'cZn1ޓ`)FƃF#"/w왵IXlrY4P™.A35s,#dėl%q!g;a[ 7!݌€.= V4 Ůu[@Ri o| mxE~v0$Q!~ ^NOb0Ƅ%}/17|~@m8?/OsL(̫F$lB7Q&V5_A!'UPa< 1T-~_ja9 HAm_O:LPbNY h>^s =w] ,d9ZȖiy6/ 1aVө  |5%JpDf]v:1_0X޽3ۣpH~R0O: ?̱ iNݠNPvؒn"W_oܧ9S1 E ^v^~1 ph#!df ,۲[ω&ie͑eW \9+cfdIxh7wrty8KO|N@>:ܥe$$Q+'C}uL_*A8@:\¬XBa;@;O[zPGl2i?-=`v FA8$eY!s3C~g?\T"NYko&<8gNh$QVs)-n݁kqѷܛhqf9 ,.^Td<+^ JhɁ_n1:i"*Mα7I~ۘ4B Ee,Ԟ.:'_ev~&8D|jpUs1/Jt`  X&ԽX8 1hi۫䤅pV/>좻4rRC/FA*V г֋Xl@`yD\I#[>$T 16p>]]LfqL"mВ)G#Hpgg^%? b5Ұ6h$Ys3;*LX=TKI62͢/&VD$h{}$Nm4֔gNXQ끨%f8:_!.?@tޘ;i=]7?xk Wd FC=\EAq%-E@,M- đ$Z)Q 4Le=Kޝǵ}p4W-5y6b; fp4x-Tn[AoՁPVv]N1&ރy,l 7*xټ 'N:̒2*~R4'vl,-(xR|Q0JG{$>Z$(G|W(=[P캐!d6Pi= =W^4dE\hp_Qw<[!NMo=BxnAū5hdrljJ1K/ g ¨a_vbǶrM=-Iwj -A@n/;z_ej2TSuȪ >$[V1jQ  Njw):fWԚGt"RpvՈg?["9BZ "Jr5cJl"F#j &Z_Fە6fMW?m 2$[|NK=DoGԲSoveޖgy(BѽMi~l |Zz-UkNuns2"6`O[=C=c9>X|Ē[1ϥ I=E]/4ZR ~/G * @zPDIyF*8(R^U.!'#^1R݂D[xT@[x諄mˎ3ڝ/2>sag;qP^Uu/H sS~^bI(#*n߿9uox#d rU)m?$vg+m+‹zB;ؒSG/+8wW]H0o8~ZgyZoeyt1=P tCdlʇk-ľTԱU-`fx vj:5 δ!7d')U֬}%L'ixNLE~DvkX\:̑tY'ph+ܰtTah&!/gFYyd@?~gr;qܵ_Pys?$}ȾW4Ș!빔yLIofq[hY 8jǩVkdDiJR,8U\dޱIH"%o\Vp-|2G7Z@\ jE2ҷaA :@J bDBq> C~ #Mo>Va䗺*=4bЅ6ЗY-whR( dϔ9Ф/ n0iiK|=){;hX;%bLY#s,Y^*rn Y=XDžO>2Ju_=FN'L=Z. XxhGT :.b\~Qqcav'!~DL8'lC+qX-KMsU5ǎ˒;{T rUĂЗp6Xdz]ܮҸ"WY9;ۯЍycԄjhrgoK,A?p@QLQ>4"vp@>ȎXjbz?5%Jű-nV o?c>W? <G6{,p1p%-E7 n;ӏ޼+c;pFَO1L 'NPj}ٟp;XBj7,QC#kH>,d6P)V'`FX .ێ[ 砟 8τX=pG@ 7r+qImi~9٠,4X=|0 Chq3S|[/#Fs0-œY 4XjO`Wq"6I+GG>GQ~ARCQ +dPG_)M=P898n \~%&U\|=* T#+⼔Gת_@2q\@\˟`ыbblU ݴ@2z?lzjVI WkGU/1>)_?N7X #ǒ+&Ai0Bzkۂ/ղ ;|U1cy0B%LHC2CD #RLof3cSh!<đsRXn􀍍!s|KʰevT1&QCé3[{W?)e@b a_5"#)UC>T VbSu.W/%5HN}3,%b1sݷ՚. <:4B5,Wf ' = JHI_ˊ /u@I=#mR쬁_y@pN5&;Z("M [k`CMl}Ч;,dw,gҊ=42>b?&-jMŃ>kOw4 XOZet 7|rMgWvs{1H moZd560CAbEkEgQJ@f7EQ*)лڍ>9ڜj#KWZ)k}Fr$0 wZ#FUoܪЦOlL|[#j?#( cch r=<'!D#GKGHE?&e 7#qskhhGd2ؼ/dj#"DnjØ -\!Zq-/s; THQ hKF,q4~  J2܅3 qZ?kћսY03>JlvwS!`74o:56KGl.8x]i3rV l:Ɠ,^BP}4rLo+ X>Cv_=i7-V։ߍ ީ(@Ya`&V2uj l|2u_0EoS޸m=RJ+i`, rgb7RײRFwȾ.Q:hqܮ$K;lteA%h!AîJTvE ? e5dD b[4RyBx2A'J5}.fǽP. 6}Ω8"8xh8X̏,.W$Z.!HGIݧRsd ң2HXj 0TB#_}ب_?y[4%FhߍDGpЏ™/0Aiʵ)Bz)/Ba54]1zzIO#dણ<"DJSatB2k{5HE9kPŻwV\ Am;UW%!vpo5}!rY tۡ'C)V3s ]V-"\YCdK%yBM+,uKY G[ԏ>0Z`\+4[xk?"sThpՈfM=`!D\5f/> e~9j0lJ p=v٥ &=HӋ4P$=ݪTKV[UJX≝7JjCoS=&R|ѕzc)}5ƘuY&l5E*H_ڍʎ@Y{4,"ڃ A]9A$Xk+v Py0%hLnP GT`F*s e{qPZIe~afF)& 1Hr(LQ[D-Fh}(ЖS/Cۤ$;S7j{*.1.ŌJP0 ہtg!$ rۣ?oP:p]Rk0ҴWR&'gHҾc ~ y!նC yqSsH7]-}@$f Lɥ`uMw3#S|HE!(srgQ"czWXe)NC*5d Cawr_.j*BO'd]xȜG{b>ؽTޠ`n٦ShoUч~ɰ(6<]N iF&W7`G%^h[΃vI%,I7H$ƮD 1ڞm+VZGLӁلo!G-Mry[M#XsuRN0ɋbRb;hF{d#/D~UODzO iD8qʶ\Lzel zN7E!ZrXX#ܬu;[bsS\πzf~@2OM K9dsjUm/}jpWGiiQ廱8;Ź#WUL2,mPXf?fFFHeA{c|L*ԓXLUD_֢:`V+ .;OV2k·Jy-AoƖdoC [.Pkf3fVԘ"pP|)d"9cw4/ea/8&{:M͂-&~o^ϴ owpZK*Ip`UC{Uj*һQaҥ I]p]m[5d*U6x,1؛TBĦҩE]xV|-(]!:abw$[@߯g1@|GF{-2S0\#eb'LH2vZ,xXٵͰSިHRXl+Cuwi< N'<+0 Yզ4)Q;Ąd_g|a I>8c9`M>Uլ2 FM~WQU ZH(Ś` 5q-lS;.\J=#mYyE E6IOAFyFUB ;"q@U!VU&5` *JE~8R7?2b_~ȫT@\X4ӉwYi0RJⷻ.xšn,>f_0P4\V ;43#w U;B'~KE?3y 9Ql9X "?kOKA9tˊu$s*sn>[ N(SCK9eoъyAڝn*\*#)2:{J%]G?e0HK='a>&g@r'~P ֖x XKb4p`Cc M\Hsg m =T&m&XPxn1V;akaj4-Bl*Tp$tDPè-ebA?x4SGߩi uDW"/}@ $L3\N!\!ކtl,%=/,ѫp΢f ǹ$I/'QB6d) DRcnyǥzmafQ`<h*Y h␽YfI!2)[}r@q,U }sgK˟{h>d-=Vz@f^W8&0q/zϢ:'\n=neK 1̫Q,5qSX%)fi nE!0rvO騍U-&>Cc`v!Ѭ>vHE_^ď^1f1=ipQLJ@}Kp/f_=CtlbX^1/=BZ#=311ہt0b߉v6 CplcJ&[۽ZEImhҏO<͈L~Gʮ̠_-tzE6g>pCW~rT(JLr^g6*ibq/Y8GT 4,i@;k7AqL3<\᡹5v7p4Qil8Ux)y8P=愉+-]WxcoO;Dcm :.-"[hOʲ g a:jd. 7&1?@"wP`\(ÁXv&3%=~;ALև8C΢ఎHbxl Q֬PڻZio_d_moTr\$mPP "H2nQ8zf1rU&0iTouv7nqKĊ{RqZP|Ց-2'Ja;~}gsjC UTF-dem"48w?YOFF58ֆ> VV!B^D pϣ<[Y3`,Pc a+燦.oA%%+Ra&Scվ!mw% M)"5n'0-()tq4J$"zE =JL"fGdB5Teqg@N`d n* &lS6f/czfM^Zt WFE(IK<«vl~ 3. 24򿏾N{oj$ㄜ٪PlU+%A=Իu o $-$`5P~l) ԪFD5{IBT:K|`jYxrh8málZ"0ȦSD},\*4<1)Kg\_JXlw9zz8i,$|T0WW]]= \4!L=.[sI*c+yJq tpnDЎn-EV BŨF~]h÷alơo0x јO(CL$hg bɮ(2̪/]IgVs& xǑR\#f,kyhޟ"H<ūӽ 1 <)2[z KcuG+Rٿ!*ܕ+ xDD,Jɓu^l//Z)k*ʗHgu߹;g- ؖ| U1gް6p3۟2,nvJNGӜ)vƿbb'-K"|8Ԝ*$/3=( BnUe\  B4yC0s$to+k]1W.S&P-so~$DoMSbp7n-K{)pJt; v 1ilh;~74ŻJ& [x-$rZhE hZ;3\d؏>25n ͥOg=l- "˫El1\"ÇT744)8a:ֽcɮsT$lXج%`EzO"f(?7>R|xdl}.@C9o27۱ݕu@:WI/N)xM4{ Ǵ>[YPgL1n~1;thg*,`&5Nb̦<`オGD2m:Ը6@eDGAcM 4GLTn 0E^s7_#Lk8MK7Yh~g?zFRaʿH Sq1)3;q_kO^.h:,ECNʛ̓'yE/*JҌ2[ɲ9H;GS%DݨU%TO aQlҊ?nܭww]ݺxM{!갇l) |ԮTMh{Ъb"e qȡ|'KHdWj;5 Ikڴ@榌|x\ ͂|Q"ijN^r+*a[fU{1rKz@fs()LQv,,4ݧ61ѷN IR Św>Z,^-rۗlBfˇCǧ yJvsGVȣ~&9 @SS< ?W=Ѿ2`hݾCCS&)@+AU$$)"pQ~utk*BA{=QH&1HCϷ}ysWG&̷pڷ^:>ρs?֜mav4ځcW' 6"!8 9Sxk/djNoFp*7pK9]ݲ{^A{B$Ϸt|W#6)51eȴky$ ܳ-w}{~BQ{DE  S濂 |_EVcȅ'i_մ zyʳdI).*j,tc{LZ*QLtdΠ O!YPk̈t.5ai|NKhِk-xOeb/_|)/`UpZ׻UC< j=0K*;y3oGG|M&wR|obE_SR{PyؽYJg)pga52W+h=$:a&EߠVk02>dk7vѳMx7MuLyh`m3Z XQf~d9J-aLV &f8EOeh1DL@kPMeBɋ̷p,/ph3AtEPMDKKXmj킆GQ͓V̕h yc7Qxf.FW^ltNi2ҭ<`BLzu6Ch? G\@zT|d*mp" ^ MlCƐ?1u3y\ aP~ C_DH86-ퟞ~}%N2NѤ3xkjlZ$7h;5&3JrCȌOd2Cu:ƀmGibo{jJ!}9,w\Mfmg,k۟g@Ma7[|/9 ld3k*s,14tm[B GՈgRY9H"Qd`z\ÐzVuոiJo&V(3M&dU`9X,|LE-Ыgz~eْ0mmydHGw=(tDM XÁ.ceI"o!̢$t+`ږCHHJKn3][%یҢh#&T8UJEdR]2P׌lX K3ץ16\Xa‡BկҝU8 UP ]Hب:%%#дnorV4ISj.A-وGP?I9:6ѯD6ߒ4}z7/_=j K8|R\wN*;I,V7:9fPHIp|LcR>8t$D-?N"}[yVZ[!lD N*vQM' . rKk9 ιv:U^aE~YLǎE`0B3 O偬ZfDg'*eXA߂;bZ oqc=%<ryu+6TjzA8)˚;~NO!_\yY*5DVTNܘ i앑J.U]9E1С;E-Q##`X?`)- y^C]/㶫K_~XM[3{Tw]MfzT7ϝ$Q>Q ]umRt ˺[h/쫑XYGrQ0=JyTp JNEe0|9(E!8ĵ],iտJE1W;n=mq Bm w}MQ YD!cdj׍*//"׈Z!JR8)O;ȟDy2`|Iރ)%( @el'ũ}}R qXIx/s-y8+3]y CGY4h -b={BHr&(~ԔQ;C\~.~5lR|\D@ 3 Lqkg'+`#S\Aa%LΟ{I(KCD#zr!/2<%$\1$rJRrc8p5{ե7v}PL*8Oe-Sa]5r4Hg}I ]@rc&uttڋ1@56[ޅ.Zz&ăC@ek= ]P^/N}ոɴrA\m^:>1w0t(1`O)E}~i'|@qxqQ|^1]ͺi Yp#W-29n\z\f!iH6釋P8 R ?X55#9E XE8y_ű&OpH&є8;_zczo6^>jt YD0O qyp;TZ{8mU"P5i@_㹨Me&0hYY;4E G%"+c쪠; $;tj}6yxMq.'AAkniw!Mǝ('28\|F>ke<"Lk51{/cF4_bS+^hq?(U^ݴ^nȵ4bs|o"m5N͆dQ=KG$W A1)&- i m92IFwu)gnr MɲFY붒_^5Fߕje(S˧ Xξ ^.Se@ 3=/DBϜ#\3.Mn}CƆʾ>#8] lg_uhč޺Z_8wyk}S$5SJfUf>%'_]blvU8>{[b66&qCܤ]MfP_3KuW;{ixWxdaLѳ7wœofBwԞ NIfxB bލm\2`qyӳtR'TtUĔ2b3a7I#k2ݹ6Z(|/~`kީ{.Bêݠ _[t K0˂\KZo)]/NGC~Վki׍V76kdmzÞ[oyPg~.Ⳉpy7LԲzOFBz/{O׋&̂7l P4|/y<ؚa7V$97mr͇tW.Ҏ%C(8Yf{UIgGa%//mrX%B duh.v`ܓk,0V2 @Fi0Z"9z3x1}w?'0@aN<> lG6[U7ٹBK11&3(:zj'C,oHScuRdvj,bofCޒYjEQ*|!cfN|~ oEN:^t?хUC#@4EP:n]E7r9z >2H dŕCĜXǨ *Aё͋Ѿ#f6S_9La:Hd5 HpK7YZ=I:Vdz@\yi]%CVZ˛mT/o_$'z2ߍE%?&:@߬{R&? mB]&d~9+y򫓹k=dvs+񑕙>'vԺ6o~.7ٸHr{U37xv_bXmSԔ0>5DJ[;ͅƆ(s?&}XoF]2w붱D+,Rj`Q׷N BHD&:@NuwE^|:zbOkS#S"뼀m!OD#UNzQ7O,5yWcʳsbO0c $[b̯H'pbsu`'Gg^(yڕF! Zb4:5t t$N.q͉:\O[ijL+T`$[8οޭYԠe 'xxh>_$cnיMdE]]M2a^mXh>Ax6fvFQ4 'aj+< w`>ٶ3C*7eA+*pr ٓWE"mIb{,`@Kr*"+:ܳi7DcdNvN QZ g[bvZphT[cs $]LwGlB#|:r>c:"ZhB?P[;w2Kئ1 Y|^ ҟ*G%I34|f|44 Xz|H"~ .Fo }? p E>j⠧_FZ@puI(}g?=ƺ*_0dfaw qXi7` WLDjkn|VˈDھ,k Sh|`|J ~E㹤l F\a(yN{eQإz,2ZJ,'\ #Lk9Y˖Mbc +>k xhh42.2bcIj M1?KI~QfD 9zAV/-,1ۓ9/)T߱s|lz8~\uXb:P2?r bo0q=]N KhvMBV1^yQ5o6w?#%%U%)xLK :'ɥ|=d}7#Cu$uq/[ ۥ D khwni)OP~-v^-7KhZGu@=PJ>[}%p;E_;%~J*Ks[Fl[SHD<>OT,lAykY_8xP8]&)r)Kh8'UŤ-[&Q &=`G݇:]Κ}>%,y9E\I3ІjQ?Bql-W=r&hǛ)%Gﮫ_ ޹UY+STrQa@Q,ڌ ˆE U<:qɕ(M$Y8p, Yi!Zcdr̫,RE*.JeTLپ.gfS&n P(Do3/x~&S_ޘ-Zę,"w90ȓ|*Qg`t=,|}oY 1r۠ d D?^U/MpbwDOOv8QEl[F+7:PcF${bz_w'%2zqKxQcѕ芦{f7}~cH~Y,3H$:kE-՜`+@AFdm_ٳ󆠄ZjA!ۃReBd1HN]/8r\!zS23 M{"=26JuLvX2zʴp2}hhldVG\ɠ #|f[@o?lM(uu*^C $$zU;xM0KlB^WӸpI"}u=H)MD[ez LW} ;\B+gwZ`$~]GFK7BjOr<; 9#׺Hq]zd0}Yd4;`cDՏM*.R_@Ix(kc vyUJ~!< VHh~:vPeBJev0Vto/lPvyEVkCҖdQ+SM` ! }NNHS 6OǗ>mAM>2fR_#ŹNGE֓s˝1AGJAuۺNT@= ʼn.B 4P1_S&1ø_=̭HuUsɆ ai_; X@L舩6?UM_\>"_Hgrgr^P yϯ;)yǼ~0dЧpC5,cc_FwE㙁"Q%/)F)X\!da>lmY=ZC´_/(#]g;?ֲХ lX_4t\y`*[i@_Dk p[2PЇi?Տk=y枞L^DzExaF#O!.u%m{!Uc8gt ` Р2[$.V̂v =wuvFm^b9_.-?J0ڐ,5Mdu&&Z^9 `*k(M߾vShzRpJf+{.޻\C J#_X<?O~E+`Ոj%i+Wݨ& *%&qVoa g9OyH\Z] 9xhnRQ \i}*l5%duZR'&Wt°$b5<s|%&wp^Ȋ& Ć?*k *B=Uhśdyb#NA*6EM|. AHyv~q\~x+%K|$(mk܃=_9aW"3kHmYp٭>z(s}ʊ~-C5P.Bj'ux׽du#ɚlACBI2zL\f:κ2?jΠMmv/b݁?9੬N@7Wq~*UG]Ղ毸^ CDK[mفFF^GiEZ]z!UnUŴ:]k_ߪd@,DI?Y M➴ t\vO_y.7/=K7ٱ& dT w KH. `z|1$E -ܾU\"K֖<<ș1ȿ{o: O~Ps~C%[ 嵶_PF,5GXPCu1jglipg^$lQ yXH!ړj\+⑃ַuZl5щX&>SM;?^d39 jqc$O+`HivEa{ M?Qez8(|~ko.;}.n&,U MYzxҸQOԢޖa0S( *x#WL @ Yߞ1vq{ϷRf}V= .-Eؘ'X Q៊N#Y(X̒6Zl Ѧw%n'h,,ϥB2HB=jU ]ʺI` }Ml S~e{&3;η+<6U=j!D9Q=Nm8|i~`0tWҍ3!ib<?XADEȉs*44{(1E{~dG>)` ͜ta;q~1h@"-w$J#TOΏ_PEVt N'/|Z}L|ϟ%E›DMY9)Zzb| W.(^WĈq&Jq#HB9m=ky*7K K%(ȍK3?!n5jJ#fLWX{ ^HZatG& #v3TΟ>p,\Y12)~$f~Wٮ15yk F_u'a6HQsU ~g c\L[Pķ_v/I@CBJ:sVd)3`|J aTOa x>Oh8*> , #v&/0Ci7-c~|A1Ɣi`m1e(s\fQ0F^o& Jq$F{էṷ_5j.c1:_'wGg).S>tGGF^^mHED M0%P!G@5a {UZ`3?5oM:gkC7,+Rt 4Gչux鯽)e/r|GِrB=w$LJ׽z+BNOQ&{oލd$o}ߝ?')}+C~^Yks*#LЮȽ)6A%S,6X8EY \:0A@tIH,t_% S>$Fk~'gn9]xMԫQHQWnTA.+7r֌9|9~9N:phV\짩X@sn =|Azg OIiu94w*L  [</z47ff_ϒդsQӂ6Vn (z /<#4= x+RlG@ Ybt ȶs-f|E|l6 Ɏ2bňxPI*rzË骙Z 3³X!|4V{"BQSŭ|YJCpҥp”V2T<7@%M}*^sb*a|Q$*d=7 i4:]SV:&9bE.ZmחO4 JyG]\ڍR*y*X 3~RWP@4fv{ڿvGH&+ٟH?򂇩 An\)\bԔq׶٤m$$FB'4~Sx oL欞B!Bl@>ܝ rΘ+C-omt AkGd ;̠~`7 {P,*HT0g%HeҶ"O<:inЦPK)]e3Vւ8eHIkݪS|4!@L{5Q 1ޚϦ dG vd,1 nc1h%a,U\T6{q&C\<(=( n'lM5*[ ‰eyABϻ%brP }z!GZj!ԏ%r/G`TIkA*=H9/9So؄Ѣ),G戎#_׃CNūIM_XLǩDbʸdFZt/R!+[Ky)i&ժTyiT8 "Uc4G\Qg:p?[|dvUjmHsߞ͎mOJY]3 QLdkk$%PAafB3 IRYX+~:ЮTX!/5}?_2D@4Su}76])1Ϲ[5&6 rd, zgwNwd*.UeNK`X,O"OߨͥyXd|C8~G Fb{zj03ba&![Բ}gZAQ(OyUܧdt["br~ ~n"6dq< %)-ѐKͥpe?6 \7=H}+Ҏw_Wo+ =?9YuyW2ৌWhajH4xy2眍݋}[q#ᨂf%0Kzm!73/* "=X{ pƳ@Kl  (r= ttyskvT Ϊzl*C>putVaHdQOI(\o8R  p F+Ն]{5_ږiHڃ)^BRSPGB 4 աD'5H Ka¦Mó;8 ^ÈhYmF~`';!^!zeTL:Y83jj׃%rnR&0hKN;ͱ_: Mn$]A~9*xm+V5uD_͠9`?X )vfˡUAD=&Ɍ]sM.4V-hSDcxԻW^;Ty'uc}TE]z6Z1l0 B-VgM'??6>,?4YRy?tni4ICLJ湐o5nP]3sL[0.L88gP^ ʼnxڇt;gs\iݣѿXgzm, sD`5Лҙԇ5I1Oo+Ѡ@YV:Q1`cUIavI.{@c,_?Fڑ g;rgwyj(jKҲ'I|\`wIl'8󰲆ga~yOX#L.kS/:I9 R(ʊ [B8UZn QUq dB`".xT-m~UxFOpP7й!.8 ^d~/ ?)!IG/ޫi?g'~q"6}p8(zcTp:贮d20vN^d?JClU X!)L"Q4Z|&$@6w`!u,2Qh |ITYwcX+!@\0le"낅sНɷl]Ԫ|J&tj"bGQFpЩ}r֧䂸HC2|'̿4'~]m9Fԡ ?zo/I[?>3ԫ4%! ? Т氭b{fr&4 k)J]k:gtX%:wfi>qFC^j#ZfOɌ93<8gM>ǯ]I㎡߃{\NQہx_-Ôm9?)k0/l:BcIG˱yNvV kJ<8GNmLo!:'gDdޘe 0%(7A>Aj}bÝPԫ4l[Zw'RP;vbFCy *off%:)a) ESZmRZpDX}UM!:j?=(tJ͟+YAT$Egi~$mmh'@95-cοp_l؇xQ= !0Z^WҍEm- 9HY[WKc]"7N.+v rO>>#y*ˡV-=Ą:c\˱o\0 k_~7a?wgB[_a$E VbK.I\ـݨ7y5Sa@Umfsd.tO3Pݿy $u7@ #L X3c2>`Dl?߿A|z̓:|=3ǰ/FGW(j1-}GؓC1HW4c . $֩ sԬS`xm)lV8 ͊ŷFeFuf?& { X5*+t 90a%)$vl]}'oC{ pabZtX3ag)ؕt&~r? NZJivV?`EPzn)PNq Sk&rӈ~t},޻18wRXj\oj(a̱Oİ̹*Q41LdR E^_]l`9@"sCm#`@w#g3irJ=5m^[(5cILԁe6v=_s 9Pv\tX3;tH9i5aʅq8y9BgZE_~a,+ <1ޣl|JUB. X٨0q i G$`wjhw&j}#xW)9d @$XTwyq`a6jU"FH2I 1KcP]31;Ӈ1 :4ea{]k<8<:|z^ٵ"20,_xlYIvs?劼m37*:p]An Yy T\Ղ-tUH3·=ϱtpPk)fMvkۿ١S&;J/FZ4wK ^l}Rh:k$ehx %~B.Nsa۰&֧7yV)+ƯQ& &rLqW1B~hB_ѬSJDZ3Iaul$N JvHRF'^jDyZ*y/G2S96c!7~y8X(kԖ+{\2bUϮ:!!_bz}Rվ7Sm,R 1 k"ҔT]hfd:񐭨Z+g&eUu,sxXA[ 4"(ˎN-?-2 H"ke yͯqk ?4i[$w ٴYF[Ah*5CFNNIt`]y}zX~1Y9rݔF kxʹpELjiHa~Vʁǁ|6C}{>I|h"38Nمs? $`ND_M覜FLαiiJ8jFPP"ۏ+ZgC*v5LqEљ%o>qZ 6\hV/ݘH/~U!e^W|]hJ[¼#ثt4̕6cٴW\AiOZ;]/G|8xI"|y.T| T.d\@T+-I$Qā&>н޳kufiNERPJE" pti8s]5s;Ѱ8æX-ڬy %aE{-v-?jvE*>ۓO#.M$Iz{vGe6-5 b`D1PÀ.clE`[P7ZRUelNU'E dω@iW A`9 lD505,MMwG>K ub(1y2};gdYuDCQ*ol uZӐi:P*ʼ܀Nc9b "\`B|)L&7yۿ ÑL7flipJ$+=+`|tG:Ql׀)`r;ӰmhqyU [o9DZ_;:7N8 "1>ƸB6.般Wuuy[Ϡ[,^v&Rl\-4cյ |}p:gBa0PiѲ[E7"~ ҆!2I=k0zg)˼|+1`s҂: Fk[My Ly>QYr59dwb<̽kC?œtEֺ60NP:X >Lr)z 78}~Л;ܦX)^XEl~:Z0Q vē^% lUfy@8rG }[gt|` v|mC ^) xEU'_{R)ϡ"9S|_'w'^Ņ$e&k44Z6` ɀ/ad+8L-'ŇLcgm[#1P;Ƞ tkkgwW]>=ڇBGy08tN;`&&fOӢn^]HqridNڦ)3h|CC_OhdZr$f ҇ ,.QևFw<<9 ==r1X&;Xli4s㩋z@>A~bHsyUeBHJ{jㆸړJ}RND`C+俏71wTB3 y8O:F؆pJi io3o]O檝(Rƻ-4l`/M;dZN]pܴsU{br*Y/&k_o} :^3PyM-fy=ś@ЩzR蓃&#Ck|N5RILїhU•'^w嵕U[H,II6"9E[[jTUOBrc֣ڹ7>QţeHi1{"DUD:hE;F+Zv*~A~&]!UQ*2aaFk!dPO|s~Iv<ۻ6"lU4HQt)ά7$ʼs )4¨?Oa,ƔVq ȩ|jJ%BRok*%v_x S0TR8i* >,5L!ʃez%" u0V_ D-S_F`#Q;2#jE{~t|FjY(4_ {"Wa\w,/۹ش{Af,,iJFnIp*-2!TX橴> "Ь0@4ŊC)/HӫhAqĻڍ@J\ <44вqg`l2pλC V pIx}E³'d`.gDMk@FI|Q~&@¢)p׈94[ [ĭ6?4Q`<FRFn0[&G9Xyg=Q'+.^h6 UIq`zfV$JNREé~NNꈟ`Sp.iNY*Gtg&ׁ8[<ȵ4`z6McV=(H HR:|=3 |)#Ǡz&z?iF;̸GMuP]3#' 3DOx oV؏{RH/;Ow8Ƴ$k /;.YBgHb T+k7Mbhٷnk }vI) .uyw)\Sf3 X`9z@8˭b~m{H*銉Uw x~cw`)*hG[~JYx_W 1pp ڿQ4]2 =/Dޡ}[2R%@ Ӈmk6{kQOD[o[|~+}lcԀaP3Qq WrNROk>2}pkpnO)-h;8L2^Aߘ 3˩kqGҽц$$N[q 9 Y g9a>d! ڵRPm>A'^eD_ @OXi9:1e8{Alp/\(p%. d$CB3YTycs<8{6Nc^|r#_`5 sqC_JSaڝ*Hy_?o"R~>NWIupA1;LҲf;z0o?f,4>d@Hf=3--0_ڷߩ-3 BK$5~\O8KjWDsEylV}?q-<,7%ĶLID\Y NW)= U9e1.rA- D0^| )a(ޞuOln| 6 Y-0$F|84JT;+|˒8m9DC8%fN:?z#'`7f{ar|fLcv!Do+х/mؒ(XZL7!O-Ǚ_/ EYbZZ¼_bp NIRM@/]OIpd$](x|I9 36t (8wuX )ۇUJ;F@=!c$Γ}N~0;ȋtg#k|7 R>1t鐸GDB%ox_Yލ& i1 B}fgo~ie$֙sܬ&9#jPZǩNkvsn"I{K"3^xA$|_J0^xU0=B;p戲7B6?"UC>`C-TF:w%+ N;Zf=(Wpfh߆ӅkUY8ß8BJs) }vbJR*YH_qL|zx_[ {I ZKxߠ}ρTȕwŘYC q8kI GL v/)Ök txUa><0e ı(widx:XbI*|*]8-SmySEtlM4zWXaAƋT]&u!r~Nߚ6ُ oB.X^ C^1yw`Q_ԷdH]mG 2gIlؽr4ۍf ]W|3{̭M푍FP{qN\ozWd1Slu1*i-71 ز1ryg)ۢ2͊YŒԲe|\!FFرtT}6*Gv |y!ɤS+%.3T6?N$HqM 0*x\?a$ ONc̀ 0#l>g 8"~QԄ2o[Z 'L'}»}5dz1{VJ% .ru[xFn:8%tYG@PnɤIz>-kMdH<} ׊"^}ntq}輣4 >قpWvdM᾿@wnJ3Tǵ',;I"JZoN_ :2 uc/{46=ZZ&Xvb?{Jzڙ5`}?0$Z,G7XV\ڜx 'K;4Z`&ˀ_LJ'# d3@,㩧Li~:t ?&W< ITOOg[U|RiQ?2ۜ[ X.uydٹd]%pTyWZ{Q@܀0ԒI[֥xH.}9q7z 6B#h jO"e&Qkk4hu-N48aIDbgB5H_E(bv)!:-@C8]_>;֣yfm F?e3B: FEĹε6Lp-RiQ9,2Y3]G4HЀmެ71y/OXla5msG @Vb*{ oh7Rv?E.-9 U"RP!=~j/'[wLGo5lw%K=)ɆWF?YU 4Q~HԠ!!oO)#5ο0Lj>D3Kx>N˵2R')bBӿXC "f/zc(w qb vFyG0RCRu ~~}D"vtˊzlE_E\b8\]MS-2Jny:fu< h0hS5pmua ݷ6d9 !A ~"nBwiѵm'^C<< bm@,8SOJcPW6x1Dm"ˤH QJ\Ǜ6cx}8tΙLJBG !=](ψvb gξ-rX NkxiO8DJ`8=Ή+L_3"ύ > ǚ62թ{>z!qI#?c ehW 0AWY'TPl%*|vk@m;}|= XQ;CRt+00?ú( ,.Ba9E u z G;*xVxdmR&(+0&9D Ô6_|Ϋ~N!R``qU0ٛ$ϙ9,2ʮO{`-Od;)wFA*;|$fROֳb!_C2v/{w|@v- ؍bABbHxi&rO~Ft?08Bg㉕pkĮubnX | 8qDV#;qyi[Ch*$t;aˌa+ikXVQ1{w_+ꅤQ(? .M:=!6xTݜ ENuOk#PZd /=sLI(_3@u.Sʌ3a$UŤV tmӽEK ,:smKlqQ3R$td.3`lA.dU ~yWvνI˺JХ$4 yd1lpop47 % {~#uZ/YPj =tK/>N$ ;bjMRNĬB ]J*WOUEF.VvW|uzfЭ" 7㉁ A'7xsQK[qʨge:?&žBL4;,5'vC"ZK}HJgX,$?H/xnoQT\m8Gba:@iWPj5)@ so];?Z:'"k~njY$nrK}#im O&ilim4]С@ aؕCFBPnU$eڰ e{26#Z^H #Z1Π? 147q(6:N@ `|܀}s1*D<"1-jHgUY+(-u QJrdr8+<5!0poA[?*o^? z0dЄlvXU,3XѾ.ɞMR"939ft _Oϑ?ҹ_a;yh_6#&1t.O NNx fѥ,'{eqaι$ehbcƅIccX"l+|6槛=p ݚ05iDJ{GcWg)BoͅԢHC{uXlCDIV%cyϞ¡aDݧ3o1dK eLV/g>jcjȐ_5m\|CTn%$#u7G92ȧVPJd`FVK ~r:1Hj"St,y ;8qp kLg;4O;.ҪVD`qByG"U s4NͣكZNFjR!3 hY%nGc+8$-BNF݀}*v7ysC<݄ ֖0֥؛-y$P{l➸ͩh\y*Γn?z;DSl=Cn! ``ffӻcar^0wt8,'uQIc3١~GHmyˡT_~7.q[ #tIy&PoCtnzv[{ifp(VbŸmj5w@W9CȠ?өwcxr6tGadt1B!ohȍww̨iLZ:(K4PJUA&BTi`+&pLɩ?w\*f Vp`~"uJwAK8>vsSqߒKs"ןAE=P9BYδmw/ɯ^dzjBI$T9,ՒF~uWИoܓַ$u3J]#AR愛ƥY- ˜C?;[W~@/tzڕK^`V)c@ݣې2`T *=81T"麲c(DDk9+`eN㔔,XeaBL? ʅsl:ƌBO4w-u I>a B3'43?mJ< *ty.[C5{_8,~!F|93]0Ea!#:+eN-֏;P_DQKV3axJQ|SOs4g)]{+@ R5U\.O6aY-1` d~Z2 wq%F=)@svKR-(7<^XԋP~^V1ʅPS_x@R{ծ)<$?ɺԿ%W o5̮Oׄ[Cp ڹH׵YiYWL0ztcn?6Dh;3uWAWO+@3k!/9t L^`elA~B!n4B!3` !_+OyrW)\|rGI[DmƗ!ΟIE2}7*AgBh#Cr2}7ֲ4IE݂F[Ap[;nR!]=B/c%wEϧFDBL8~m 8LXh 4L8 Dl7M̄x#7ܬiu ܕ+e$JCzv]n ;b84/H:) sa`ӏ Y^xJ3 ;,aR #-wP93=z.= q7XP_i$sD\8ؗˆaWa>Fp4ҽqԗ_ \HjT~t X=u Ym{- #xJ\~h-έ4F+f=ᎊW9 EHkWB\i=쭨~쵨Wɨt, =kxd.%XV߿U+TC OBڲڷ#BJٲi wUaZ/J5Ar'K,؁~TW/[݇ "st8x\)VU[CM))U1ʣW 0[|!ᒴF_ťpD a')?p;H38to`@ cswKe)̶brFf'hJFDX `xLGUUOٯ)nqՈXA.'A8l_f#t,VW"q,@ 3I feHu_{s QbM(aMƏtC T&@E?5UX/Zb4 f{zqn Q ֤#2gI5piֵຯu~gJoG(ݓUمǿ e)9[gV4weLX^͒2;7&T+l"=BV_ȤسzjGY\J5,D?E7c|\e2L]0 XLq*`(st+0Gb'ruoև32f2) Aǧ.`UBe@!eXct$z|Pv92 v/m"D}rܿ~pP sAF֮}FX.J؊!@&2{\:E<\ pN#D]%)FӐ| WIo;Y_h0`m6;W0Til S N:19f2rboۨh^H׭I m P4Oa%De W+ij )҈8<U6~4j&Hхٰ|8 kR8wִT,L0&?0X蝕=)Aka{M IOޯDW@}>AJ<(M'#s)dAmd/Dȁaq{ċ k>e[2<ޑLrt~kT#tM.Ff tS:'%c2Sq4jL+f)E!;gA`H[̌y jZMVlܞ=ywqh>3jlrB +/g;-ZZ엧b) 6_Ƌ_PAY^|HD^n96A=C,h,h>x'.E8edS=Z`yX0!z CZȎ#T1{_T'f0D?X$/ޏ/G~v'oHU.2*[gIN 1|jSl} ]ǺNexe# Dloݶ i5vw7nS="]#h$ JR)´8ӡ5݀`t I Vaqm_yaF)vnBøR+p0iwDb^ח: 6аB[QA4?\g"\&u9 ZcړṮ8tWsq7!#Cf%+mG9܇m]q)"G?IF_6BR˴X̆zK' xh\,4#D ULNU gԖD(dHmr8iEVD#`$2*RqAa2|J: KoIedY.ZpGQMIh'l SwcBQ) l/k'xdS  -t-NJ /P+X4sRưMu_->$o;pr !Py׫j:9T<-4yEv)i\9 :{'OVdJvsmg407Բ(-]WRJq6L޲{*a`yHKc+R_\i2ת%q(dϤd՛T} 9BcdO0Q/Y,o,@b炀f0NI$tܐ~Ҽ!3kobOA9)qZVmm~ r5մG*n\y2@{cE@Suv84Y6s o-z҉C;XwE_3 L\+\%&'PMN0$!;#GnBܢI.T"<L!ukqu{*(rL4D,a=^nW@u 5U|G]B @˒hm#Bk,3'24(Lθ_AաqjH떾#s8''oo[[W6x lefn _ 0;LlgA M RA$4Ղlh٦-TEZZhlomD]hP?IZr0(s~cɖ(rS"$S߃{]p}jVF+Nha6,ʅ䚄86o7f~,;uPq%ŋs/kAkZl"u3p +w=g/L5R.7J ;ppA 苟o]f>9vBFG(>ǤMp$M-HY  DDPQh ߤ.QU~&:)YP #\1&8H7HZJ8o "[hl[9eMl"@@24dGa?1-xA `]D% 0?el?a5',58$# 8yA]6ȀSD9OѴ2z %GmZc,/jpfWd"TFc]aGOb &p1:?ݡ}{ ς1oj*[Jlb~rWRKL'f<}HVDE6zGKdG@`^[EJo\Re,{iQD]e9R {@K=dg3%`zbi6h Z,T俞 z@90sV H7׍\u8 %hD ҤxXUOZq ʷ+X]o!Pz<:7[[}Λnܣ3C̻Sh.b6;sqw3B`P#-vng]15uhH38O=]֬8"}3 (R}X :wE*/Q%qA2>Hny$5x6z6wml8O& I/=zS}Wc5]TzPU>t*<2V5rs7(ZW CiE7pbN^׺XMh|ͅ/=#{$5t8p<7]um ߕM≡ oAȫu<*#RO>-X~d1 i.Ziä~wws8'?AX@Qq"-!y)QU1u/Cpb[G !om{Rr4=lwZ7|܋)//V; wԾk7K&)66EY1\'.NoEEIINJR3 X3~ݴ\@GņJ* (qI}P:_[/*Q]&h{$EX6f:i^Edro(\/f Q jF6LwT5+y}̖1)i4bի[ƒtYZ$=w]/z} ѿMWZX%F$.0v>Ҷ`E‹PCm6xֺ,#MT 9d1'nt9MD^-`8P0k]m^mĥN玬h[M.B>mE^9 [̖Rm&G0)}}Q/%k_&WK ʫ~,xeV/>Q%(hlha;=i!E69Kt:Έ_23Qn4C_Ƞ9  %R~Ү(h$l<?>]MHbqc}>t$M%h. \HbRÍ`|u{'`},xe pA< ,;45⌏Ph(&< R)_S聰4yTS.lRcR4eӓ1-,REsy1 R4y)V|J9ƒѴYҵ]8Q db6) Cr|{^JmՄ\æ3{80v'$7rz6iol[umuUaWTU5"xx 4CQȠ3xhw9"cRHUJ7TRkVK'xv-7YJ;q\<.ĸl2Jn<)~dM-qs {k͆۸t.o|v1`>.S@0OnHt$8<`CrSMK3Jc@7׉Њ:*⿙1b mީo?`7k#{es~o"Lw AϚEm{p%'k" @ΓB]ņG^A/%}iz`!X}nxɡ8-gW"n}m,dR3؁%yUMľ&ZvIMn *erWƜhs\>m(񱐶l p,[)Ҭ©]$14ކO <`(jˊҵyA~c_MAۻblLqEґ͊D43b蓭)֑ءmI-+umYaN_\ׇ]90>-$NOT=N08B^i Q)i&Nx.I8؁H챣J :MMBޮ^!vؚ$<`n^ ,+*Yeo{5  ʕ؈K,{Ei%&,uڃv?4h" P8~R[5h+4~DтC6P=|97ݚː}F*ˆpa1cG$ Z2Mqk'JDiOe׌.Esm6:>kLI mb(MN~KH2̗7fP~Fp 聃bWWCiuJK[/e /M7IZrDcwT\x,6b&trQTS ;r ә71Q'ٟq-$qL!&⩆&}bjŃ ebPmUjfWv, 7qq "kĊ !G6 .(D_Y ;i&Iy%F8Stg\ͣpB@m,,o0f V@jɍMZyEr;5;#O|ˠ@3:*qR"+nu&I"V:NDLNhWP#Y}eRsfR"l Uql z%-\dbVYO=Ro'uGWE-MOOAPpjZ(-nl<т=t+6Nb2Qr'.7a0#o*+cKGDF`XIOy;~8#Cz<]%8$n?{ʨ)܃_D΋NNw Z8\k$EPqI_AxH{$#K}<*6Al "NNK|t¬zL<}Emv@d;!C zMM4׋P^̩'`~n͒dS91;w&ɰXwR| DU {g)^0?;*hK0 W"brV 6W{;7^! hy6{#jSٱ_09QJ'~2lU6ׅE@3D1%T'+v@]do"XvPk5 ,dC׉Yx|2rjސJږ3_r92QꕽfvFmIܟYXba1hb t[ cNF!WEޥ2l]nk&~;'!66yo J: ]ỿQ%n4HeuD"((㡧O)3VsOrimm ?K**x\< GaiKjM KK.O@wg$fSOz#,}K)Q)x>Ǥ9srOW*p% ({vdep*NZaAb("/'l(휵N\ŖC I1[5M /T2&<Ր7װPsƙ8/5V ̘yh+ .B#QA u^h1j 񸋋Na u#yKXtNT40I;2e\qcʠ52 eZrTj.0Ÿwtoǡmld,BOѕ#vu4\AY fx׫N:R %,ƈh9җǂlϟΐ,/oV_uK*E٢UE-ȵn¢CH!9A# HM|_Tq2š+Ǐ_2#/ Fx%A+;C-V5BI6ˬJ7X)ҽX  xN6)?퉮[yct#IKЀdsw˦Ϋ3g9&/XѓyP,ҙEDwQՃ+뙙^9|ߍ;y23ʫ9r$@MZC@NVt6}BAƞ!rF0fE). bEo5wlFdKdUOSW$qZ&%|<6mP#8*+sMSmC(;mC%睋(Wg~o-| B'u+cfXZ_-eM;:g|':U{9ot4ɖj]JL"q/^{Jեv5wTJSĤox8&i} c'BW+KFIyaS"<%Q>:w@WE!OCxxX?QPp |Fra/*,xOZ"=&f;q-ݥ-ݎw zBYA}ṛ<>1!_L=FIJdV7LS7Ƙrq NvCI G `,!`h0{ 0~x6t r|ʭkF(.h`Φb\ ΅V[nG;!"dwyjƕqK4G2d[̤mW %u{-5L.z5.0!0:uʄwŪy}[ka@4j.@E'"O>PHS~WTƺLj=}c>}DrLޞzMK{E 5UA$d[7ۜk"tӹSiFHL$6 ' +п=IJWrQ]Aҍ`Z4YDXPPgeenPj,sԶ}C}b}!8õv 2 @ʗA$EiWNi|1_Li6!{J` jR:s e[ΑgXX> B絺S4gRZ]_{PkG"_I.賆%eyfK BA/H<+?jF6͉g̵:OmiB}_Sd 9@:g~,?|eVMto,rzhiG |KS̸}m a1ՓZqJh»Iږ"B;J[+͝qe%6 0Pjqjxa^lv!]Y='soX'Bd8}_":s(+CΠdT#Jyg7Gw>'ϊikE 2E=v^ODŽ/_!?Bgo(zGs|N"YE'SF&i}VtѨ81ϠcWɏdf?+){eb~y(!Ij TƺE29H17YZO[jI <'|s_=e('Jh-,<4tDt=:7D\ReM50'ы,D 28}`tBƍ};E1rj{ޙ/j$Σn;H1N^ڽA~*Z(Bi74@D~Qrl'FRͽRrdB1yI_UQM"0x߉~H`䎄Ki՟ 7qؓJy$z;-kmX;`u]btپ@+1f*i:loSwI&7~yrn"wM *c0~풻w.ѣN]T3Ɵ绿D=adG* ["sۄHC:5{zL֑ =5eǕ[/KЪxQo LWi 1߯YK Wb-Z旦=oK8dFxZ-Т !u sf>23̇t7? isKe€򻥆v-;yн5݂;V\3rL6CRiJx:5ZϬ#7G~3c%yX$*gn%@4!ﰩ#B_r<)@|ny6M(ѸRK}<8(ftq)M'@o+WD'- Q#XT@a?4ۘAGHjwd6F1!F8  2e 9s!NlOU"?8I :PEȝEh_u2{aw̾`UI_^-+O\K!*no%dz1KIvp~Q'ov㠃BV}~y&\$h$ɷe'y/]tXeJ܅/\K}ʢnxK@yʧ&3H^Z5+^O:$ƍ)PT oxM:`z2)k?Hپy֨whg!<|^ËjZ+-7DžaaD7ҨFz؁Od'zj%$Vĺk Ĺcjbm,D`2T! 'ȴDԠNk:$gZM[{Mu2 "\8 Wkտx;'xQ/g8!fc|Bq'š$fkd֜NjZTs"i =M~%jEBtg0U;zy_O^ٺ?3fZ9 Hy/8u? lL 0Dх9ކ(!++09F>G߬&S|Yp[3eZy# c\8ʆ{&xOA'{xj;o|j" AV~œNqAْνT&oXuy.iXi4@j=9g/loq7"sD;zRC§>hO7(kaJUQqj WigJ{"E61ضߍ7`%~\Mj6<rfk,+9Ħ1AL#a9AK *//EB^*g\Ji8IUafq 6Sg@eQ P.7UxyF 3U#umZ)CfY!5sBZzncF:n2kUA=:E Z{ hZ/<~Urt|ab\Quo[EqQ ܕ?ɶ*@ʆNJcC {pIra03aŽ0d@֞ыQ-o]ixT$? I''KzVM[P3Q75uHTW*p^yǥi@ SdTO)E̐Bܲ"VapvߑvDKuKv }ݞ 7( +-'KBD !*1/H{'o僬>USt,韊aę]T;K*ڌL2-,0[@/]? f&2HfCRm*~Qx*)t3|P"g؍ʛSj= Τ!?ex<%Fe+FQf][P6İ<95Jh~2EWC̦#n5y|gte>G9ӅɴӥgTS a倖+k7ȴ (nl<"KywZŢ0.֑8:4W׉:$ng'BW42P p1ΫgT'eƢRkQhyf/}8;}Zo_y 2S3ukyhbk{lDxZC#> YeDeo*:㴄(i08Y(Qj$Xٝx fEՊMx=nq%zMKY>J+%~m+GΔH[oNc .L~l t"S/)/ܙ{ $%BgwE6_kV ޫ ZwPG!ONkL>@r.?LI;?7|qCKS.%cO-(!Tq(w/Κ<ؙm4䍻z]%~üVP ҅/Hɺ$TaG^\ɌT{^7$5 ֜-E@!a./ |z (0`/tc+ʆ}*!V;e1fv2dHy86CCh)%)t-VSc]9hR\o݄'#:OA H|M"Rƥ3<):$ urVox. ;ԘɠfgR*/U;$T{?.4aÒozw@-Jr)x i2($ٻk-m/֮ujLlUpg積i+]h4%8S<"IF^'+a{aAORevNEKՙśkxI`?w 7!R# >N];/Z5PeُS(elmVnNq ˇ󷞡JLŰXqւX ͎9DWӔh#ycӇ/^vrKEV\W^zr3EryZ\ֻLD>+Ͳޏ"ņIjXF |c0}9l"mNT1Q Weuj+UnbZ з|:-<;}P53,sAoTUZL:k'pQv/o,ox޽w/TRmO2jkgtSNoEXxה,SϮ@vVoC)Ȅz$@tLUrvil  "6ict&NN~%oaW\.]W9&] eRw {)ã o?=Uk*)Z^`* ޗKH桰.i:X/ k}XjP;f煵AmS 5%Zdų{a|kD@o~@-%⯨d&O#ܪ,[ѐN=dK| q7Tiqe3FwDT8Ng3ǯ lFe/}OmcOGЅ 0BDP͎@"Fr A ʝS%UY3G:UilddJKo-wT➍UI`$AetK&yZd V]лىKTj /Ux 6,[$>.h~>dvDee".qG2^W}fk$#p QYk%;brGsPqZ#sy/-Vkxv^Jb¡b(hKL7Yg&>-*Jc3Vc'Jf2pR[O ;v/6B9/#(P8lh#(ȭ:r`@BBF{yd0Ң~|>fZ琁Febnx1WktKPU1cGaKɧ\BD3?EdIEa 9g_(bfR%}u@~GE!yC5ZBqSv{\1.wN`^5Xw3b?oEjC |dr["k*M az-)n7E:U:hob_}Mnaa0"Pb#{LQaAb-kE>ʗ,#e[AZ&XNi ;r~$?^fFEI +=5Z {IӗY&g!c-xk! Gpc?>B<k)gX% g ]fq7svHnVe%'WDDrWۼCJ9a҆ c}~Cp5E^ɻ T2Wx %˻͓6X%Ac}6e;1evhv"_ feȍҿ_A>QmUE0?P^ɛ_gGP3iD['wǦ.l<΁nXԅTȉʌ4Aa;%kSJ[ + I= qSvH7gaz|jl aqUGr`~PYa'K xn̫MIh]aiv n 5E,A(\ ۊw8c"݇PHO`xftp EŊ2eeNxPI'!?EsK@ɺl& :DU n1$1a|ok"%p0gúJP\'RmSmc $y52hRKe5" (& Eޑ~ͷU3($bYtcM5; WVYe-aq94>VQFŖm35Rw$C[ Z$7E'l* h`oh%) v4&B7}%3KM\{]hƬ|@l5ǡ#D@S%A0GBzLK@kh"gט:!v {k) Y_zߓԪCPͷ袤8

(jϜ.<=SGH攀o.5@ Ulb vqNh|u ՈK 66Ӧmq m~_̷&!Ʃ_雙 ʈ9g`!pĦPi^C8ule |pqһWr/"aq-HFQ k*9Fr^fmۈw};~a UK*&q'H}"%"{DB㌼.dƾ\-BC3PSmGgM:'aTs Y VKfѤ|AO VG[4\; w*4ܽhn B L,xT$qT}=x$I?2RUOszmբ5/n =NQXS)tw&̯ u7_bw5[=|j<9oB~L~& ص|ͺ EyǗ4@V'eYISj;J<2lA SzȐG<;QuHw  כe\cȝdأF/pX1o蚶Jh5]YNbܣYNB_;Ҩ`HУ-7I\H-ݮk!YNgJ..XJbˌͫ`{i&ƨ_C6} J<$`Q#hx*/cTOHqtRdG\LM&tV6g$pW=iۓ~{yZ6DNMYXإ՞-KTVHՆ|]P(rPhh!=Vei4wz g ی.~]m%z>!-6'pd8 Dp0+$v5:ֿjq ֜1xZ .Ji{JS0]dуRUI8 g-׶8Iq8AVL'vmt4[㤘)x ]`e qx[{˳i j3;;w]`9t)>ȿP(Q:7Qo)zO[_:OuVBU&G\:iM{K rpl='m-fn_'vz*WOZ00EEG)@Zd#M0zNAuJ Pl82v&A%\D.ﹴkA lGS;0PKtE]0**y@n"ʄ+[20peS֗"YiM1 '$C*DS| J}wngϕ$ ب9vL~^ q1 nߥ|aT7;\Gh#Nbvd䚂Iuvbx1mM8>hf9L R؉*Vv)XڨCh2df}sYp:PlFWN1J=>v6n̓(5#m>ldHUeBgIy sa`d8|Uxǣ.sEV)Xϰtٙ\5:%?jf#'4+C]v[t sxr6Ӈw;^9Lfllj:pY#v )%!u5{Er;*!;<˙ўei-.wje-φ ?z"g%8=VD{iVvG"ݪuDҎO5L2ٮߴ<#]ob͠_Cj(e]KIGñ^|@m?VEz)&"(b7tO$Vso2yJ-')oZ yytAqb 4]>~Yq:/+x'?v,&'(7g5sأ8£^["N~:8/dNzlJ'Gt06.T;|bC *Po48 tkQ5b lt{I[ۥw}hS'w0onQK:W75JK7C0x=`O<>ÙI5& oIr4dLfλniWqPiU6r&:&BU_褛 bTЛ1`{.^%gc9P8D:`vL*spxIb*ttANEO;YZ2h'k!S?V-4f}Ajs[ٷvQCm<$^Tx"c^y}"-кe 8>΃Rˎ̈́!Ҟ2^MYz__+@s*sXtUw%^C5vm[,&|WoJ_̚L~ζ^Ad$(o `k{e=/2kN %{Ӈk@<:nt۳o[̷~~%?Ei\'TS"'559t(XҴB" 9`T .q.)0+?X X7Vn%]Ltëχk"*Fɖ4[.F1&XgRo˾בT@cS3޼WnA79 .pDF^![iրN:#[*@4g.DEWnÞ a<#_7=͋rhmy[܍ܳyMD D67s[zB} U%npiʥP'_Y%dېT8^hݼCS[pv PWkZ}r!VL,.ӹ?^RD>UxJ:xUD)Z.%n6$X2Lt *;>KeiI\ 9? 瞩}ffO(ʑ'R$m2g hӲfcхdo8•jNJO!CWu5_նQԮzQcL >M R;4(PM!Jl-@C>WSk}vTgY`MVMSv~qyj~jJ6"j  5qC'nN0V٩weT84I<ؑusva VI58JvLoDAa+@ڢ3`<(İ(tBӥ$Z x/]VK54h gVo5Jsr`idzY$BuLtxz ZjTNk4>.H)km~ Yqy C{3VcsjNBBs$[1d4$`.=0?u5qY0,7ioh x,XqQ)XR. *'KB[oč+ӭ'u,vDP3lE ,q;.T)̧ f$Q$"T{~j.[fA KHu#_7~BT[P䉊\c+h̥Q<sr(`sBɔNR_{<'mz*B+2Tf r1d"-ڔŎ$;p vM̜c~ifB! >d`^Y.pg*?%!K%f:U@o eqLLJ.AF$}{UNWd܊43xjDDpIu[0?R^y7^ɀ睕TKYAv݈GӈLOu4w_XHQ-c'ix@(l#{֥IDI^[jM]<9yp$ھR%m,律,Hדpֹ$H|j9  tWlTCA^TsY}3?k}[:'$4C57zf{R"#S@? ƾ|1d.>6-ny;\Bir-cSŊ*:8.n$IG{)Vd bt_3<\ ,_*Oj J[q/pwd6c&, C bd9Nu{Yr*5m{2qMDm{t/QATvK!;7T C**ZMTdT!,]9:.%RF[,,P圌\`=kqz)֥bAD[Zt?5 0g U!Ʀ W)ql9Y"Bȉ (/Ȳ`*0E|ϐ^ ^Նd\7x$| j2z1ǦnZ&;D zPo' dGuw߰^ &dtK@8\EHqaJٚ^:ԺRy SFzC6x\B.0qiWr(iͬ֌f>F&'kIzo6$׈ؽK9Y1q̄daj=6(;29^N%ɎLe\ o]4%]t^_Of;owIcֱJZRyOHHgt=nWh9r  5>s(jye SԮM܉7vV/ ]xpJSs05[p6Uwi׸:iNq`?~XLbQVRf؜r;bUޘN2{0/azݾ#CkΗ;7䠻sH\{2.ýVL >ihFW{gXޜ ˜VL҂ӈ?*NRUo)aib0#!=`9?`q$y#)_`iǪ?\Ewyx E[P]ҵ3!9rB5RE7C%#m i-mP%Mo- n"aK xњnռf5nn1YںsQs̬:x_$OFuI|Zl>Jlk*T_}r윙@pe kQZڹ` ~ۥJ0X0 O9MX;*a)ڰ%;4u*,S"FgJ..cXQ"aCflOw19ad׃Mh چJz'_${٭,#9wQi,D:f8 DflYK-O] a>/ /(+NtMW~,)HR"H'X1S>bw8I:4u*ZuN]uԄZ{*$ٓDW, .%p؏Vk&QrT3Bzl5+d43mdX&;k,/-*ve>kq(J\t>^l(2x+ ;th`D>Ox7'|/(>#ɖ9\yP۟apۛPu^O 9kw^*ӆ"t2oOOdhX褈UrNecw(#2/0xɻzˊl;:;^'/8pfV4`ҶhEeblaB><7Eyç!4os֝J9DVnmJ,ufzϹ|*@:R]!3x"Xh׀[8 Lr&Fefn߆I^K] &6Yi*t;z!90L1[`!<-(>MT8 [)G9qQTXvW-p>ZHc;a Чj!0s42aDF;ôN.DFIuꏂ>Y?yjם6=yASx-eOO6_I'S:恥1cz*swa\oGn$ GtagPr &ړV6$ ^ o5Fp; wqf1+xAm;(.vE޴ r%F:U}OSm6YBL!o Εe ˧ IRLWᲡH WBs3KxijCgbG h52^?S2Ag:sc^vo#~i<@|lG$DBiss1v&<ݫDXۀ|[ - =-Ӽy)#$%ЪL<8oсǤȱEp%6=s7ߴI(r'+U2cd_>\$™9w@6] 5V_8d"{ i%vil't;(-h ߎ 簬pEi]YBQ qJtu߂weӻ {P oB vP8+bˎwvނ26TtIzgmep]t +B eֲi]Hx7cN.'ɔ+5B3}cXNG0& V<$MEpSK=c ¦w;_Ĥq1i9OnwM&% TK6}ywZ8w\~D5bR8 *eAP9[*,޻YnN& Dy4n!M WW408AǑ/eu? i LZ>WP4Ǟ4wg4᪍PO,w}Co gԟՊyۛ\)iŇ! i:ILu#T I`曛`D^ trv@TǹEPՏ^Z u:Ã=UQ!*qTn=+wU?]ہnOq-;QG+Adf9\4 wtz6aǿ.}ohAQi!q8Bb!}=d1 ;e4x7'8f:JӘ"MYVoM7MO`N`F R!yw XZ ,Dԥ8$bbaC:t(WRd5ˀ87-Gepka7:4Ъ;K@aG> 3EwFx??Bh۬ ET3HrO VU/T=Yf0@SO\KZmFI6Vb˛'4OT&hZWw3# x΀ahM U7E'"R^S[0ZyΟًEvOXK\MQ}婝@9 `ڂ-N)c(׼ κ̓8#G5I1.H o}\W{tN=nxV ˹27k7+(xVVVs&]}bP7D|H7?}yj/NÐoCÝGZSeB]bK _%uXd4Iq{$aUzĤ),mki]HkW0@, K'*鍰 #vuxlY6ux5ŏO힞,:L7S8N-tzXgɻ}D7"v\}|1yvZ dC>N9^J{:H·}7_/]kԳ/]j8dp%aZe,ȩ Dd|I#\5Ƨ&m@8O=<CvʞCK@,p諫F4G:5+'8s?Z`oe/Hjdj 0"XL4%ۺ]yRv=a%Șfl*CjnZ):ۯR0W"WSl7}y_vS EC _oS64(JxkZ]/j<]{7R+Eɐ@-d/?\_%3 cOЖ07Gw}`yJ(dʌϜT!ހ[ж )MCGX:TFqÅDlK. oaZ2N /nZ`j:3P0$]iJk,Xy3st`Y3Jhɾԕ%iSQUԍy&ItAWo!+Ğ޶3N1}HUހڀX\[ڭ6t٫.lv7z=3:KjhFfb+0fZPvDur5.^`ds;/L$e9 F2T2>œ8LL\sޙNjw͓qkT(YGES-\P 5_]W 8XɭJf90{f|]Q\VP[2$_D;ԺO('L7ԖfƏ5ƊS:K[Vg V;,[ގpu.<]*I-Q?@$f6ڌ$F6AY ʤq\ݼN )n)"Ч"wltWL_yh B`.+gc!r+r|ժT# k!q{n>l&l`|H[Z:%>G{iFth o9I=Dz0281QsԥgЕ5B<]t(U)v=m-t98 / )dGfy}߶)yG NID綛*g\mFf > } '{1ڶHJhg 8إzJlRϜSlB_*?'>K ;Y%Z Бd8[xwXXuM 2P&z޵Ă.$¬1ѷր{r 6C` /ϧCWr-{e${ /%-Yd󣵓Q*593eQYBpem(+׵QQEgK!lrL7]CP>=k fFǡP$E8,cuٮ$;/[D6%?NБxVT?2.Pǘ2Vɺ2i|WJ^%%̔qs!1mk5W38,%gbB[IAOl (2^:}&RĐ=2%#TA[ HHMNaa8d9CH^Lexy ?ZlÎgwItxm)e>Sl?kyPeu C ~kFɡ_LIZXR s0Bjbf$s@,z)]e )btms/C ͑^XFg 6}ǾNUXn>ehY5 ,/J4c+|b;lDdݵX m\) H_lF/ӱ-d<׉f  G*N<*yoڰݰHh྿ U 6l Sq(?sLs !} zȠҤd8 ,ׯJ5@!ߩ?vf>>h@.fp:ϳDԚK%pdc:(S(T JLŻE=Al m-_eSE׬g1jojԤ,sn0;tAͼ{M湴3)<+rPNJmKk3顣> ݕVG9x_v0ݐgg@*|&IأazI֭T}+Bge3BG[)4"mB([GjEh` !`PhXK"+eJht[2.Paq^?4=&(+ICY]tvX&½Wi";VL[6q7BIldx՝xWO6*?;:nomG&YY>l:/Y=wNʳR1 FЪ->>:(L:t3"-Bl4nk ݊a{NJ.H m",|:QY?,k@2A .o2դ9!,Nn .9&!rSYFg!nhsFO)xMw Mnbq,aH Q k3}< Wju8GVt,X`5..Lх)L%r$&1$E<8vX%̱, lD,bm,ASDn)9T;Fo[i "s"Ij3~N,dwVt`!Ca(S9f&[wU!aQ9+?qr$;Ň7(C|ޭ?׀pxrEfRO`{aп =D(q.U@},~D_{/NӹC~5SZfلϏ,8MƻfIHIA~@LfTp3/fL|*h=\F+׬RzqiW)0Iʽ&x¾5-u6!"R~}nſS4wƔ"_[A[wqhKA2Nmڋ{o5V^xsguu*uKNa #SuTiGs3Ї]&ZC֪3D DI7M6%17{,h5)ùg6 4mV$l) G f c\tCK쏬dվ+Kḳ\D([NȞNHȩ_=o VDLXgruU7,ufn̗)1"ҍP,#[AƷ[y(,q2G$H'J }{ { ?,ż_cG"t^#&Bfmw>mAwf0wȪ׏'Eo\R DxA0VR 5@~t,$O ;?=gBrrCC3_7zvLK36&޻T{'fFw( iZ[pO;]t-6Bf|nϱ$L&f_e A.w +bGKrw$ @Ъ[):b NBW(u7u*0aQ>~αkU1 S84!J-jU\G )Q3?mMTRUqI)XvwFZvOVXխIw%vhM!nR^䃤fÙjq'2G#AԘ| S5Aݔ{(cf%*bهlYB 35tRۨhw+[qu_ѹ.?eJQQoP0+J 0S8A4z{|}Ï3_4R<5{`Tzgkǩ9FwY_A=L+4&9 f{tYRx#QXia֣> 9|l<[x!1ݝt顈asc~+'-G vu Prj qA{{EE8%GĽyhFUyƌi 4#Hj٢kLMSR v>%u]kҐ5\-ea;ƙjwaq.]d":yr{k2C%u28@2J$8#K{L̡V3aɲXɩCs5BQ5ኡÔ ~Z#>Bkh"H㻔E&lp1o xZHYz#ZE^,.epy'$l0 s!E:>_o+$]GίȾv%ώ2?bl%(tGMc-%ShXIuat77Y *FWIRƗaOI{e&1rjCyWu:G)UFLR*KZ1J8qj̢jxe2V]dћu(^%S{q]ً}}NRku>&$&޿ܱ&PH7=Q%mQ{F߇z _HIzRE+#{ 4X{43,ޤ,׋d}..ᏠLqJ]ÎeBFU<⼗.Y+M,Hw!w*k; * lֿNe\Ba)m::;1Aީ .=ޅf3YR'%E虅eRmCJJp$7wWbL^\in/Y@Z xSb "a\١“Aݾ59mNSǙ/C'tVt "A6.:Dy\-{թj H XdoǤdqk1曙gj2$y1 FQل "#Oiޘne9 ΞHʟ)nzy@nBHHs$ Ͼ3*SƫV_$+eBzGV̠C5e ~U}p@QB Bi0骛8$bF+ Y|]m2v;#-"Ug-կ?ZHsE0szspc/bR Ɵ*>UU1X\pz:e{zp1E[Rõ [ABKIL>ؒ6IVO$As3J>55@.[9(tT.63S' /3"ݮ=a\P3Zf UT<]#'<("shC*4bSYz"?PAukZg x xQXYkYTqB 7X_SBpM>3mƄPoђ$W1 h_cR-psz7/yH;05C4T jrҮiev\S:VPIVH~-} -olm4}ZQ'wvS1A-dE'eI wX[_O~{_3z ›AL/8N/)v H}.boL.ҏ.=.Aj3bH[*8HOgiV˗oSG&2 |Lַ}Yo+o \,+c3=رc,.V0>dI)K{yF#s%ـ-¤ :*?deZ&3n_ JyMlJ,S5xD{aD VYL\ t,cWZiE5 T3ta?}]&9hՓ8YFǵ%%Ϯ.S2.~%ɣ3ݮTiypb^'׸5E3TgGAi ˓3n"r^4ʜco±Jb|vT5'GڲXů>xlFCl͆Gx)И_0ucE417a4{uvxi>;Yz$ډH ERRƼ؈R&BM;iUUVbZfJQ`|=c*O1oR;b''ZƗ(p}>@DyvL/3)pyeSRUh3`Y֌TGw%,Ty+I= lYJb?JHd.)Pb7@:2KDaԑBJC,<5@\KD'1*MG*39T%ݓӁw<~4-oNIU`;FvRe$Mſv:/;tНז玷QO;tʬ̔ ۀG {reEN8f'ѾB&vSPljaffC:iBiӮB&$p ˅FMԘ bA3Yd\G5I3fyֿ 癯Z{ChaZ͛V|0' TŒ#P+?%XT0~D$`[.b&l}p-pB3 n3{CX<,W͌36\{,ǕPFle+"k{lUJV;>P*k(6JmZd.=PפےY,42Q1&,5S:.( &^'EGۑ0 EpX?N1q'8mzNp'>ƀ3c dt !ʼnYv)&xf{dY:Mc urPU>;IH#VJ)&'ND\W|LowBI0W"~[aOcN,J`\wj?[km" i MSef0Nq[ .r(@oò^Gyi{dcدԞWw_4xbA-Mz ѧ UE}܉ZŕD28[;1ܾswwh!p8 <+<Β hkӍU鷂601o"6ۤ(>#4Ndb3% O;̾G_/J[mvnݎ51p6>$6o% Ւڗ 7Ď'zT~7R̜ L?<@=HqUIßOոl,+,juBKMO^Ed} ZTi}g j̰ JI$9s:٦ԚY|5ufDxmHgB5Ǒk-X<~ 7݈b^'VDu[(AWTR hH ^K:j^7S#!=qQ2F)`MxzB3.|ut(*b(ȫ_- c{aTA?srX14Q&`s%Rwy?e$FyaAn׎L 9ǽdڃ迴HstYw&W" kjS ^vX}1!YR)L^ǧ.?%{|dbX9;(ֽEg츷hϧ_Qe#i+K$n:A禔@a5 wդs n}XmlVKlwfc lD rb~m:Ek^}hq5+ptEh\yfǴò6-AO)^g&. WBt~:#> M*#|s(V:r0O#Ϳ]E,SҥۘB&ۓZ]YJaRpna$9bg?`{%dqL̽H2wcQ4xh邽)38ssK+  fJ]X{zI)Mkn8ͫ%(>*C!& vl3BYL&o (͒Nۯ,͏D:3Kf^!Ѹ|L%=8$=Zz<,'1aӒv@R7Nkx(搕x;x!ADdUQ)m;QRF oDŦ DїX("yi3Q4۩8Ƽ]L"/=H~4[liKYQY)Qwin<]'W|h6G``T]=sVb PPS_kO%#7 Y|Dr<:4<9y_>5 =`Ӝ#кUs bo[T:aX)ZIñ>k盅 Hi>QQ0-NͭUE?l} &9e̻m]cpc\Ɛ&bo(K=yw?Qq+)0'ݬ BT0:蠐LQ;tBq :T޺Ų<σR6%)bD's{]I;sCp u.SzxI=NȷN5qrb֐'>%vL#?9#xdmQBQOį bV8xe _lk͏Olǽ[Ӷ~}K61%aa$@!5 r>OmEku*|G}Wѿ,hز`",u[.|UY y8S[yv0Ǝ0(hXVnM9$DR>t i2u'n 3$U:恍 H6H}OOZ-6(1v>,\O"7)C=jm}Pe t%~B m@n}}#Ep8ǿ=|e>,< Y+uh2'">}*ⰴnO5r;rjw\lG~$%hs$< >*}6SX/! OӞygT?v>Cp/zV0W3XAj䆧93a{}Q\'9J &S|è]N\Kc\)NEON [bc"Ib6u,2qFUP'11R")0O+!Yf`͌- <$)?kolC"X*]e4$8uB9"j)a]4煢 #pl%/E6/ WL]xjG -K4!\BʊjDUtָDD75&*Nx=&8sLE:?DڄAF]#'6۝93>֜Rx^RST9 Q\Kyۉ> .`'% Gy2_ I(^ YuBU_/HXgl"߬dFUT4ļttS?ZI/4u t9?}ܫ0o[z}g,fZu4 F s-R|cPwX5\vhW*1}BFzno}n.τ"1[!w~Nt(+R: *%* 5Ɨq(X3HIXY~H3T?М4,"|*1С"l T>؂ %g0Oy1MEѳ'8xde@iD*ٽJzU_M`X7wRZ{𭊏+0{>g6$D(AUO b 2𪤥dJmcZk-?uLЩ̳T@~Zрu:sx֙Gks:P(R7h\|h)37ތԌTTt<&oEz-& Ps!8(@j=? qC#ЭrQ7 bϿVmdsX! B q I\+Ca޺u2C,'T-y\& {{PՂm(p+c?-nwWX40}n/';yRd2cNKoe)]c*IXv5FCDYAȷZ8O>QS,\c4Dq@EW|2AvGK' `ܔ,nܩT@CQޘ MP:_tKЋ,ư4D&HZx^D_mUTԴsIZ@ %Zh#jal΃"E§I 0Ɖ<5]~U/m#fl lIz6vtK姠yh6Pq):لFEL'-=@r^Rp{3 :-7}%<OC^xw0qC{ȫƘl們 *"Jz ]`N̓w㸏ɀH !DnW:'bAAծA؏U {ƍnЉqݡSG2pLR+[{i _wf;ŎEںN+ HIe''*Qlό~v'# >C"to`\(cW-Wqiڞ(dͫ O_übexs㚷-FgNĦsP3G)Y.C]Z|d"dܩ«?c\l٦X7} <qbWoeO+Jz6փ^1"'_ҴZe;{B(= P4Ȇ:Ac, ;y Qh.#eS!_'}*%DZ eӰK9pl7ˣ>n)~-'1,d+)+*ɝ$5Eͅ},H==w8FVٸC41H>VVT ) Z|_ln\PBԗkstMĺ`%ykܯ:c{mnX VV<#^c2#( knQHPm7Gr\ĝ Gj|wB#lHW#JDŜ!aO2 'j"52xSCnTJ. ·c(KGKI#k@֤/\z"=EN-N>)_ .lQ*[\ŖoscUۀ[{N.`n:JsRvH/y36m)ձB"?`{!C;,Z?vso1o4(D9`в"}(/~9kh7<Թ&_~/8YLht.+ >H+*N}"|^qR !!p n_0" |ђFoR):ռ>9DۺuNV\~i2> 2;`*qS% 8*HjmPAi#(ߤY x:6]L7,Q fcߒ= .z8eItu/엁eC^#\,EᳺߞLx4%kp)5ѱ $|&OTA%HNsY*x,N;% 2^^>(w&3,${ae-^˦Ўۦ}Mt"0u+p8Gյ&zV꼒(fcf26N0/Pj ỲU1YѝWBLĭ2.6~Zny!5kF2 > 3W`,jإ1j}_hc,(X (,7OJO't-*& zJWITs$~ *gPvVLȘ -b>'?B@pw1ΨmS_[C= 6Ʉ=!,qkpҾX"8 82Fp4ŖlBTV3%\]YSY;KY z4)(tZ_f/66F[5#ŕQpÙVOmv܉U_G%N@^lΆU`J@BXS2G5򚠱߃ QW#/WH3ʍ$`B]FXd>O\j}VTt cr!@&x8Z Z7x6f.8]@AT)_bџ m-.w/]CPc.gl.d.}m wfVNENᐶfCFLMvMMwF9=~U ltH OSuK7q-ڕќn.z5% G+={TЄTMH3wUNq !0ZI`&N;Z.i&]!L1Т?ooYcx8Zm֞'}oVAaK쫻+U3tHټIspS؉>/ 9Eb8g^w(SmJYL`6*5_#[:9h6~4&CI5I))*Foaoո˪q㠥9áY»Z嚪B${ZC +b{X TW6Uzm/)Uܛ0>֭Yk3܉ar@r D!M)ya)j;5!oe`L U}Åp(y|=22iqHp=%Im dR r7 N@:m{"(E I%έ E ~_иNL?.*U)#FRS~,&vsFd–8U⦦M`5\-9Z͌("j%u 4:p=! .*S/ u!>x hs1jM03]_b%Bas@y}z}Orq)^o(rhzLOw׽ȗ! Rz{Gjz"^e_ N{NOtE&gK|}JTXr\ØJ m hM6asCoܚK&#:ml,Чm:i~ y G+zmQŜEPĩaX{yn]7@\ z|*yEyCm9}}D[ d}ǃ$"Ih tET-835[?0#7^RN͂2p[{~<nr 1/$@R"06 qD֑e!-7,Lr@j񹗊=:* n(5’ZJ=r!kdsiiHCP튉0rr$I:iB[Mt#mhWl8HhJAa t"/kя_1,~w5%"qjA( ͒-{![!={~umk/O)Ic ѻǿI_~,!޿3]SҰVGD r;R6@ jVy7 +34gQvZFO.{Aވ_/tb#ҳ9<¶82y*nxehvp_\WFd`=xkV}@_NkDukL')=zOnñπqn lYcڈ%vÛtwe%9N!нR@_u萨=?l eԕ}` #x9;Mq UZKS82faÖu]˛dCI;}<@fLٛE./a-G%D7S?ƭP$z) 7Hn{qv^ѳHS8e4QG&TvO~"F7S`. Ŝy\Ljt~CYIEedNzpKŕ.9U~Ycly/71:#C}W#9:g}C[~@*'Wuɺ73s'&[.Q b,>?gU_ iC1s}o ;D绌 & H hAǩr(@n&gvIҶ ˋR|ΐJ"'ڼQEJREjv7f=%[xReh'DsB?w̑U>6rJNOO>uQ酢߻ܺ/Dv)55,]Kq)~2 U!m/EſpE#y5Fu>?⅖ip_oDc[׍*NJ.^Kӛq4hތn!|6xHDSر7X.has )G'^j[՜A""eL@o#heU!`/FE"J?W $<"uU!f_yډԋ/jHyؘlt܇\T:EGF7e-Pg#šAa3Aə藌0q\py3)^m1t$"^ : W.pd)bkX tf~e8-6dN!,j?5ޜHP(U-<#ǧrSEGeb DŽڥyɡ飶խTc"F<)<%#,ρQApw01KP r喙okGׯx09l͏daQWurv!si־ODL݄f7¡zBbֽlKB NЃYa| B,NHf%/p}<'M4K d~1@?~"r !u[Mja[si*5-a+0lyt&xweK|h0HYRϱ<uGJj\쑊CK&G7jȟkG"T<19#Gv *f]Uߴ[Tf Ok6˗_P$sEk3uFf ŀkf/h¢>MV nnu3{"g\(%ŽaQoK^$bfx+3Ѹ+RZnV(| iàoچDPkKFL_KXZPn7o>Fw>l_ 〝*Jۀb mܜ--^[dkN nE.!IL?4@sÕ ہ}] h E[6_A$O|S`Tzbl9x=1(B|+tאEe.+:M+ ;->@sC fǒ-'9Ȳܨxn>7|Z\8^|ebߔYc /tӃ\OE~ȎΉQWbS, Deµ= 6a:)FdkJG֔ W5|{<'qhQ3$fGk0-2yE{2l6 8h}8f_4KTb5>D.Idk.SxyPDMHpJ85'É)pc?z‹ZmoyOב0tliuWM !NP*uy-A&rJfTPsX 簪H%p5 :_t(Jͣ,Ĭu<faNx zYie%}Yd}y%&j&TtS[qǒ!%@}doHE.Y` aDIT7j3 h,VঘJ;Ya#%]O'S r|OOw[,܂1<@\"|}<'!{ N|ڥS^*b';LWO:n38BE"w@G;Kv{BG/k vP Q醪+T4=&hn Fǂpxx 98M5'_FOGq!X :CE ~ YLoa^mx}s{]J_Cv,?d*2eo hJ6oҦBA7ɣ=%b Y u+:7tD5)* zUjj|{>{ JRhb[,X 9WIgi X̠e^7ji WF :''yVMAQ!Co,B M>Pz]aŹe_PҺ0RNɃ/ޮ> 2C9c_Dd;YOCig*mOm]Z$L"\Y$£86eZGGC>Fv)H{ÇFGfWlduP|~ r1hO1>LPpwy B5s/bM+`=mS3 j߻NY*+7gDKGw fMdΤ!l{l#tڿDn(ӣ'Sk2Ȗ3$64D<݂,(9%+΍c zY:2cBW&hYN:+1{pӵX7PvBh?Ph0 ҟUU` (=~fVNc{Γp%ɏA"Ki./d-)羚uۚq^zBd+MBQIaWyR8UHDjqHqy5qoM)(sQ:*=.)YP]`Yr i"!Hx0C~strint4WQtC"/.`P[} x$aoRo0Swi d X}aؼE IN4Rj-R.@ gOk;m:b}KVKY ڰ_b"uīS03Cl꩝s$mཚ&viqd" %В/8/@ Qʋb}P˂ l4S kmWDj*$e=lxQ_4cL#ZM#񠉹&R9sWQӆ1toKUiQY9nNea0cn~Ky>Ѡc(HQ04 D4ZkSgp`'yH/ͤ\3j<)9b0n Y2څpj2Clb@C芵w>@޳B`IN_g 9FvbdC]=d 7կw#im6K}s/DsPD0~w*11 nğ{bN~Z@z+nρMAU<%䔣`WƘr py{铼Ƀ7Xrs}L>Tݑ'kIPy] I0))H vL5ajGLԵg&k!cO n%S+$_mp=KRI\)+HqGqnS/&;5RF.D4k1(;I()L* RT6xS3Wr .Uh]yb}i %c\,exPr΢n}8wC]„4)xk#n$ u}4 # &j|WݦȫkD6D?`AxNOzdB}ׄ ,c5\azd9ve*ɧ6qnci={cCmS9MkG.qѱ(=EEi*XAvu2ZLɈH uy?Xl2/,x^ڏY;QmAFDmUTܯ 6LD?@* ;Tӥ(2SrMpĀ3:` 8=7TAw#`Ý-gX 5F\?G~^bZ9Kh*ik@mkoūBD`9C=ªƒ=*Ҍ-AN۶7oJ^+f?ۤ?'^Q6#ɊW-6M/ǖZ3Zl)ūį;|Y$xV]h% UO{p`4ċ,n/o{Dq6?qRr%-ᏜP>nsgs*޿'9&ے[܈Z[S+htgES S-4"'l.3ǃ w|)i$&`dURKq&G ~!f{K^muASE%qlq!ȸU];`DS?"[hO:_l_(|;räS ؝-o,.Um5ZێV$:/ ES $J-c1z#Hm )TnUDL93%'21݊ANCLr^4̉gI @wNo&#M ;:10 wȷ#ʖqMHdE3.Ta?oODq[wQ %>Eօz ZU/Y!([7B0Ln ;Qtw3ٵv!Tѧ85Omc.E&!)z\e;yxftp?Wj_wੂrmclNۗyCA~T%qe6BhF[ c8vq̝&>B:5[6;-~z(+F0u٩' )Zwu)к</ܛV 2P WZ#=vH |U:7XFq)^t**颤[*7A"֐:i[lLVSAweȼG.MQN%iK*! &)m7pEkt= N*,cgS94&?c 'vuaVVQ_.\ZT+BFO߾aoҧ ¬e1gQJb#n4fq?n گv vڏV[^ӟGj{zmkF|&)ՏLAַPB7!%iGP!~KNR/ۜ(=B"XqkrDAHphL:綽0֪+qNjc:/bm&( ~U<Zeͥ8QTwI |e)ک@@߶eÜv]-@ 엕*шEɠ1ic%XȀŜLh-ΨM,TЯi M7K -^ãzכ#b.P7k r;qv ,o{z#6n|07l砡ٵx5P_0eˊR7XE$3 ܪV+ע%zTn9Ja(rn׍qFRxTQB!vNUCXDњf CǰEC'6ς@žq,eǛ%v zR3ua.uP:~p澋v/GsQtz+tm S)EhP8J Rec] =$=x^:|sL51>DAUM y`쌦Dҗ€ &<[LX=jVA}&J"ExMBϊj;{G哒U~&MiӮRX0ُAbw!Ao u BQ9IH\}rrm{&"ĩ㻆gy3J14^#7me13˥4Ӈ[Er}&=gX* ˥b'޶>_Uj@=^;DKח.yJ~}蹵J_퓐pDAuQ5-[X=aCOب9yyN'[O+^48zKjH8(cG6xS\]l̜@4&m onmػwm-6ǨiV9kI`h=&yڃe?{KmWX>ē< :e}8<FFkCئ{`|`8MǐDkF{ge]Q mb1'1,Z/[6@GՁ7h!lr#ԕci+BmeԵ4feV} v$z"ݗKiq41M(Ŏ^"pNlgU6~@)"ĜiPXv/>4U i;Mi@my_'jH"WL4GTݷ]CGU思ZHzmj_@9ʖ ۃţ ܈Ss<^=2q>mU33X<.gNn.)U%DLEFYfIcP^?J1+ Vp\y"NJs?|3n,+L-v;Bw ?jk]ܗўnGNq{IBXI6!δF+%.Lm|Hy}y6UV*uOms= N*9B|èc5ƂQ*e"3:IQי^>$}$Ý)UMM!,Oh ,Na2W X$ !pXm79RR :=_67e y+d2moIcJr~=qϛU)}#z}Iπ#w^R=\v@(rPb0;UAawѲTîb9 gH]\ljG w,X \%'My k cl'4 *{^`z0SgX[7Y B4rV;SV3UL~RK ;/ pGY~[Gs,zKOH(T9kvvCD9ƣVKU>)ɵWZZi P{H;f$y͍6ʠwh,=TѼ@u5h=$sl>Y(.,Z$@/ d|C+ՔK^p{K)sE:M HADUbSSSQ%LZyfT͹V4ӮĹHwmFT üԫ?#qi)P8s5B^dC7-\-iM4~UUTsthwOw vH+B_6ŁR{5۲vC&mWJH? G q&UFkC%f _1HLSVXZ5ʐЦ$%Y?gV%*C?d2(C9ph,ʮK1Z 4sJ%w~ ]`*3fa0 EIJԕoZ66策/XM͍a"gZ/(Ґ*i!u= #J%Ԟ 6CLAl'BՖ^.U)܈8GO})*'#bu''M@R瀖gOZal%ԯIF;ΧWEQ Fcv;W'0(/+/jbP9u%ncfBtt G-%ʎyFUqoLϻoZƋ/9i_/5G &yB9UqYby?d*h=\>e65Ҩ@٨Œ/$h>@\CϲȾ&r 6KH-zzu#OKFwI< B+s`aΔ[' 1"ϕoXlnr&K3_Qc=&K{ terj!$oCu&OEɦp,,m:z=W(ca5R[ ٢kaY pk3Z_l:Pu;"i-9؈?hq0jl~Kw)3LUS̿ύ1 ~RĶ]G 5\<։H 7/]{G/d[\" (u}0'e X Źm >OcdbM>ǚAŠ]~%m5(ŝIdH.TyR۶|yH~s@!& yr߶+P7*D"kL AG?ah3пn%_ͷYFZ3ޝO G"Q$MlQ{+F&j, 87]! =FX*x6.G-/ewDF.aŇrIP-s(5}q #nUkG-}A _aq>lx5 poOwsZ|&9SX#(n풲7\ٽ9=V}4 B?qnOl >wh:&q~o//{RnEJ-hV K/9wò ~ otaw --D=Z(x3n[h܉MD]p1[W _|BGΞFuWP4m!>Oe]J~rf3Ul!fZ/8Q&d` $,ƪ6Xe7^#}e-B$qT昹0KKㅶC+P/&//PDQuCM a _ci`ITD;Ng;:tx wY S#VQ_UJ=ecTe1F>ggoAJB ރBaVxD%yPs(/ա ao3^嫞NA[VH)kF.im z4494hovjcf굴C8b9W$҂|?DZp~2̫An~ ĐmIxTQ͑)$C{x#uZS}9 +8̩чg"K̈ۜKteoHhϰLF쥳(~DF LHPh:Af]rPYqxՇk$_Ϥb3)&TRcfMzLC<,W U0ph^v<(kSHȮh&,WڮyQ)Wp-5x𵴹٨/ Z-&yg{ v<}yYC\C3F0Q%G H=R >' .@m%%::FbAhLȇR6 WɕN<(x VSCv?a@[+Xs}ʳv$LgPtpMyTLBI*4edLJ^fM$+Cc6]TY2BNԯO8p\ ;d#!TU' wW%V,V k9HGk.Ox.z3~H"`&p^X7~Og3zȃ9ʫtʴ}WtCߥ[ȷ4O+̈́ę=9g,H=pho~}(pm4RZF9^M`zQ* z>8.3"χZR]5h.U|ێ ҈})wLL€T řKԯ:1*G)>(5tuL;9MfVVm-n[~PS ҬA5Ķ_{L聑6h LzK"qݫ&GU b$Y{Z!*sYuȬ@W1ڭ%g `ʣKYGɹtdV_;:.IZs>_b1;@Mtti@>h[jCwɱ=)|@ABHZ8(MpNi/>u=TRA'ZκdyaYb33ixGC4l͝RCb+bd.EU7sߨRb_d͗ x }m(ÔW0鱿"VR,V9?m_Px]W5f)`edTLJ.2|~57`F?{l532WWâСX;] +>K\:A(aŌ'S1R3^%2H. BP\EHuzOFWt wAG!q'ϟJc77e7eq>3%%q/U)L{|,Jo2#s( ˄/CAyuuʤM3`靪e%87^兢j@m9ZJ <>1o|o+XnXJ78x O\D2ܪs 3B[TW;rd.YI+i4wUa-j "&Ux-ԥwr/o|ad5cҗRa<cEd-T9V*Thz, 'BŽ΁Ūay2(|BRڡ!ޖ#mՔX~&J q4?#d7UJl)Al >90`^/0kh:OBMEyY}1i8cgi}jjOICD➥c/ŕS"e#"KA EC?l 8_etb., z%.ɡǠ ? ]|"3Q+zH픗׏ ߄EC1Ph lrK\OͬcH7~"rcʉHR<QWهT$R YD(pvؘ㎉]bnb6}CPS7 7GdCdKP_l&/q+nsõT3Q!8צFҴz[t mE$ 5?m3[ s7wENd(ې& c5sDr7ׅl(J9RXMħ'LWOP/ضKeUǮ(YCi*X$tl/4+ ת0c`-MYR?𤫼40& gr!廛q e ҵ.;[U}B;(}uRМdY ^VwFT9_^mшѪ3a.N 'H<ӱ$ zζ[I- EF}\k<]f 1LBw_#ί{tSp3J5J!8Ah|$"~|}ɆgHrV[77%'Q/v]EG3;{j#z{7 UԲ 5[(o4OzRb"Qjtm:yIVx F'j Zqй~C[@NĊZìy,3Q5BxȺBLC iɿ#3 vAa2O(HC/wig5HI϶:i}C笴^l%Ē2ګ \_ʌ`I?@ ݠY$,fYkO؁?"+{<+ݎ .' سR7 iGMu1ϻF0w)ܵU?p>̵O~:y!u:+LWI} 3mPTҔV N4{DFʩ6 If|'mu_@RsM}v|tKAOŷBOZ&  8E#b zB$Dk(|V~%.N~Mw^m fPcP@}ۀ쀁O T!ǩW?Udm^[/!ڣ\ueJm}HRjEB'#RP78{~V&耐w"m'lTp&PW,A& $kj!!R{ X69RС ߬\uȩ܅Mdu)ݕ_Z5 EYo`HsS^U\}Jv]Pt18{\Y$+4y#|-. 0(T{zREJ\nd7m$0:Ւz{@1=g  ~u%3#bX٬CUȡ}[Xp=,(`ڷqoRI`Жy_sdt#}"eqF3WZlaŇ7oxBHWODv>t8lk7sIE((s>DzSɶe|LE] J$jWҿ*7$=֤UlEGDHkE=ŭ'7d՛ۻJ~a(IL._'tiůnA(*b˂jr=7ܴwxx_˰+NNj ^S} `%t}>hwLoafFA o{}dvvX$+ ٪'Z@csQy4Xjyp `3|;6Xb U5s#I`X^y,sC+W4㦯 jw:PA#`FmD Չo]dAZ#iDzEpfMR] Qr!n>y0QmLO[ե-ÛVfs^s]ĉL]*-A#*TnLzNFf)}OYQlì{̖(xmN"uJLe+T `英K5 qd=A^C4=PȾ&*|)DqXN7 ݚ2ݿ#6un_d>0payC_'VED'P.j5CԵ1u{M~kL|ë3Q-:.l.}6wN*s:>):^<ʳ/Xpu9#ΜsS҉ 7K$/i}dNJ9ÓE`RCg~_ҥhp9&.t΁5/dGD. {@3F?"`"f׍E_$/Y .wX[pڻ3fY5ЗLoD]uW9x6mC~.(L$e`B͒uR)0:s/c `U“ؒmý*_GUgIg[aoDi-K?&eM\C&Ūp[NzMǬ9GL+/򋹞df[07%/mlCztR8{bp9)ZyDq Prbɧě+'$M?N.|Т*VlduMEoGJhY0eAڮ%6̌NLT^\,6llf>A$މ=?A3.Rs90ψw.~t:^}&=1 4Cz3vw c&F0O`2.@>uOwe[81:rԘ92 )`Nv6sIΤ6$n"c;1y 3\/i;,<4-<&O*1F^@1<@&~QJ^l\ob_k"'mdw2-}Mem#p qK#YYK+:J`F7,)6?z},ix{/<9i!c%V! Ytzwd{G^- OnXdGb_Fhm` ϟz%׹+h-a{iO~V|Po/sipȹ΃#ROУ.kgDm6xWf[l'_{RbvZrCpZÄj% kx6 уg7Ta^Ġ⺵}QEdVhtz[AGwn> j7fZ0.y_ʓW +2ƥ-M h( LP<c1R[t>MsA%UW WvJ2>0O>: Ռ W׉9X~}&` UCO+ tGQ`Q lR{ ?rXIy nr<%;O{dI6jن-R=ûXKT0/"nNl(P^X,qCUb(QRfydybBe{xO/ԢZ+*YZ,.1KC\K&^n1љ 3dXW>H'g&eV[{x;p/5)Sj:ƔH}#kJ.㝧[Dyx?)v ~uz )Q\5VfyPH'lb MĞ:LR=KkFovZޯI߫McC4wMEoeb|=(`Yplk"/}Hf2/@k5?zqD7V^b,{[OcN`b[/eYlxLɖN83mb>J6pҤ*1AOnd%&ӝ=So)hJkB5!bJpqx88 1~>ZWGD At= ܰ'iizu/˿4)s{?2G,ynk몄vJqN -1{x/r?Pr,rXsxpbȾa7QvE+td\ af#Fv,F0arwn`9aaMFR7[\%s[C4'ԥ~M"݈3a/8԰J.rZ4/BP~]z,=`~~d984Y-r;h)mbo\g-[3@*/d"}V.sCF4OI֒dO;wFuv@Su.{)]ũ.BEI˜a}Д:/+RʒWoE\lfH)k1&8IVJz6䙷{;cE^uW[X=)?UpE žn@Vߘ&n"SG kpEFlɯ¿-lf|%1xq= rL;P2 |5k)m^?h}WL;zkU ֶBµ>%Jqh\8L~Uk*_'bW"W(_Lf((G洗"nJ:LA@SA"OraޔbR6[CeL_?g5s2&Y{4/ﰈ_RPN\L<;撖X)|h}V4mySp>U|uMMpQdb:ny+{TK׺unIUG͞Z!X@e=ެ݃DkPb_7W|϶ظ-7]ud~m[)lK?w;DldG.O>WQ~i$a. =4ZFalc  ,Ԣ9zt?:AX(:w%qlYe/*ψKis>~a<4m_rs=~lXEھnCHgv$Om^~VZ 8y@N2 g(NAx)^v*-4M3JڗJf9*WJ3O,-U!R~L1A"4~TY<2l̨?BȰ>|84hGw %3ro؏4tyW* ֭9h`t FU'U_7m }ba𬮓3s̵'UhU-sz7yV=b#뜽a G4c8)#FGF++],^DŽʇw/؉ {]%Q̅5ݱs݋5FxȧmK,xt9Q#lh&L:mvxΚvvP!1Gyg h$g, ~ fѹɹT.sYnlTM%E9˄β$n?SN- 86/Њ1Uh 3%%* ߒ qe}:3_9=t*XQp GWˉR]@*܃DSV((jؐQ `H"Kܜca.g/FVY_ X;^ iMp.vk'm)f]O &<۷r ISXωY?2ч>nB ؎|M fR[d0ͧ@9z20G&30ҷ'w"&?!oEhqxG/2]bE?L@U-"(1q+6oe٣i;ܼC1 $lqprr\eۗmnMx6ŗ;/}?_Q-=?ie.[ȟ4&b F dTST4H%|Z H%Tm' 'jr Ae}ng1oR=JH,/MjWvQd7~CTm2|zwGz0'm`9G *l1 ,c{6@>Fu( .|eojJ =_oVB=M*%t Jcáv/kU"fo^r)N3UhQ7n-Dו"$�d29Mr]PcWa`pébçᔑ*eFxt*'MfzƸ.Q@۳ >H-02nyfSKVpc= d}%ss""Zo -yBܧW$x "\P՘kE}rT;> Q *~,#>-w@ogM1יȪ GF[yQzqoHOj͢RY(̃8+fՂG Va\È?a:zKbNYh*z4b N4`;!P{5I_w\>;w-p nQ )w *T1骥'y& ,R&L.Du|'9ߟݡo黭UW$Z{yBް1|F>XKJNcAv'ݽT{|Ϭa J,4NgZ2/iYA9]Nd|Pk "Tl#X뙞񙬮o`-~۳XP{y_˒Uyp\!8,*Cpy5HZ?I*;2MJl!9Nj%,4QN'X<0 J(ky 9_LWW"a7grqB&FDyC٘m0Ubk ?[o ߑ z{A5k=H&<,G{+*=5U\\in'y>ka(%^XTKHfyq ~^!\r=`ArD/ /a\TG&Y/Ql rAL 9S"hx#Qk$  j]/~J.}׸T ?R-~9wō]]͡\~e{@k4ƶ?m'Yi׊s^ `6hqʰ3`pމ#[ ]=/z%DYRҮҡv] ,S\I'Yv6&`<|CۥNrK(z}dny%t[<l:/'^|'/vO@9/rPhXA:rWN+~ ?4c@X7)3PS=飕;6rzL 6SXQT.xCD}qӚguk*h13g)B*ԟFc4#=Dj/ˈ>O 'TT6i!I@yPttI)LE{$Cub2arBJx~-)~TEDi~ 8i4\1_nszK_^=a3R8V@_J{|<ynK(o5a?=qHS?i)W=%@,zѻ8(0zf-BS=鼙xN0cLb]N4)"q=OP~mrfLis %m8~@4:|k2``#Q6[]L^bʞ#ҐJцf#pԪsil䴿z:O=&3nȫ!nt' R}s*5/tn?0iMޮmUm,#:bt0y>Ѣ;2h ~Uh ;ansFFpR>p?8# C4'$k/?mNH}uĝmxqlJw@0 ermpE*{o76$_=v MAӪeH]|ãll96(x}vexD=.0ix"7$[ ɝAaw۞vB6OS5U<4q{۱b[;%_lרv&W^EpDw?+s}^" BJ)}Dzs]꩎4ۣ&B㺫>58AdT"ak˷C/4_#OrJpaA׷[Z.4C?ZY.服K˴. :yxzN5FSOyfϲTޕQӠ5>_:x8o\ C(}O>3V ~ЋDJ O7 /jS2ZdK hrp'0vȤpJfAJ0\3-Fnq8P^-7F8W֘ qCcfl71]KD_2w-ap12c7=|,+1C]@0FĉFsbjM c Oce6_/DR*Y[I9['?aHJlyCUl}siЕY{i2s3_쇛wAPl$ȖF%xr\] [R)+0)QN]Z.L>o!sɖ'!r:k NQ[PAvj4nTG|YV +2, BYa~ R8ؖÑQ(hd-*pNw&FJٿd9$NJQgj L0eXd:FK*벦bdn ^[C+Ҭ;>"eFbf2[`ST5 b8kP[W)^!$>ҹH!<39l2+3Z[+ZB6}oԑ`[#c89Hk<AT&@Q^N+C:/ynAj#:0⹙}r1G-?r 5xkhMp},`|q\`cTFFr2 XIqu"eok:734+Yb {eF>GlǺ"l{ww Ɉ44[ҥhw?(>M_4x^姭 ;40MQD>Pe86WC:TʲJ%pO_GbIˁkv+F iZGoaU_50B[OY=o t 5 }>bKu60A9jn-:G@1bަs~47?gsK- oȭ;',HW?NsȆ)`ѯ-,呫' ZESlu*F6LX @gQ_?Dئb5bFO)x,8iӚhCZO NVʥI=lR)>0!~8Nš_H)a1=}+u%WhDhpm C)0k2 X1f2=YK;@sA1"0+EO#$>y! z @ )ax-J;WPz&^VcL[F#@tуcqJ2+y*)n4u;,Bv5?7R\-o|6U؛],k6ikpST^ R50B[5eXi!k?"7ڣSLS- 0r=q cTd;P٘%^R3 ߮;@Jh)hX@¼s#.`CGwNѱB>~[uHh֑*E>s3@bk*HFȇ&&ۙf>wPwe6Bhu "fblta:gKºL\Pbqf/<@ ,G}dʻD%B,g=,1jh"tM cnt|G|.&02[r؊Cs9ajCMA6Yج^d󵮔ɍbYsH &B:4*_ޭe`ħO&`/jH_ S`9dyfcVz^~W&Y-oD.\dKf;K_~5,#N"\*t[EPZS3h[8(wl˱SAWIԠV \NhY_%j >w$Fԣ>ٻbe;2)A3א `].O7Dʞjmdϥ3!=oBӊzwpN8/m s˾(՚ ʘ<%%j#N{JY#Z>dSQ8AwCEƛpJbJN|>np4'p/x!5'54HNݔjTWa92Pxs󼊧g {1jkI|kzj 0;AY" ]e$o@G>& IP/r%N0m &._0Yw 4~ĆHg.ugH$+u YId+>x[W-oSكZw]V\yiMyV$㠌NyASj1Y;jlhdRXtKo4H,vtcR ^`ݿ  X҅wdHs?t-dscXv_ǕcERAK$[v9kƖMjmlOu|K=NԪڃ3r 3aS:Q#:Zv 7(FέB t[K; aap6fz_화Oz.VY;` b"Zd,ۦ6H.[9E`;;U^ʮw`}ICzu8H:-:!̗?"b2u?,^=ڍtm66{b#/Z+.Zz2h)KSa6EfExX]Q*}$dĮ|?yXb0YSLLf-/Yv= t0~Ȟg웝5'V{e hr)Tuz1!hVMl˞g{3wp>a|<"d>r4e}%c}|FTkcԘv M-0>삷4؄ۢ=V41'Bx`5v~+0?nl{k* ۏ(]6::SؠBV rov `'{g\KAemHc5 -4sg#9 ~əߗʫzϦոd>q:}kg7.JtE|Qrl[+>lrNܜ6_w2i~b *6,*jHe۾]Z})/z,m$o=?W +/Q6f_KщžɬYwJ+z.+~M rr@ϓY$}IMÍ!ucu T-«0#*uς"_.+BW%|ֳtfÆ#Y ѱqKҟsB""jͅj^E\(gLUسYv{zX)ZEǭo\m{Ҷ2[ՌQ2, %  ӺlQ3?{8Ն`2B-wJnPh])9ĩ `MЗ&3+t[xOcXHƤ &2ZgƢQT9#ss&/ F쪆k׼R :GBlf>pIJܜ\?ĻI߈ęe88=z#r1]^RHYg)= (F~JYmvmҰvoȏH.&QDxt9H>cZ1%;C[Åk@jqWrn3Y$𑬙5}>ۗ;Qt_ ]`Jh<. St\?v6FA2 yL.(a'ᡟ^9wd"}? SX#κpgK˔ߩ̟`H\7ѸSY \\z҆wJ}H:?~ưI+@++5BR.Z=jу o M^i 83nǗm [Ro(;ݒazPKqFj:I$ݢk/)j/_K Ȧ-NcoA!kFX6p_luO/`T)BVy{,U"f qlޓ%zb5="Ʊ- Iާa\Y`ykmK716,pfCvk0pXbq* .oѷP=9pK $ȓ7Tm(x"rOFL~[懃gKehOf`KGĈ歶M$5 o}0k ޑ{$g.1 G`K)\6EGwo#"Ȝ#1Z蛺րgde"=dY_,+Tl2\\ m+Y7 q5y4UaL thC1cBd|39p gBeuW~lg?SGUD?^ѭ3k i61ϔ [l7?+W 8Wٕ*U>',RAD# ?*h !F.a3JWO:Ce:?Lu??3E?5tǃܱS=5fonF9agIG UUQت( nC@u "㸽3cXo\xGy_s/V~C"Eb< Skm|sr1PJ,/E|I4d GZ>1heN0-P -mj%u_XQ7OVڟck,/郧{3(:~bMgGCaT<#. zI@ِ Ƃai=W,w1 ؊G3Dn@ K \ B8Zvׄ"6.neS uQj ) spE.ag0Ew-$}Iky S#haY]@ۉb.jFWɃ"ܲt`O671j&ʆOyJBGwEROIDfH$_B^%"˼7>a!~VH4KȘ۹Fܡrg)"17\,z#)H8:IrB>2L-#Q,ai(m;ȴi9-B>CӞCK3FY2IZP6X̄]w>&RǿR EYvҌi ݿcEPjgm(j 1ZV XDw.߁ףp +KJK& ahcvsR1pxAY}F~y[7U6hżl4*lwYT)V40ꉑPǜ,c:Ce1xIDZVl:ٮ'}+Svf(ZWևy/.bLru>~: ߙzNج?PL(lQԻ2,CC +LK_>ma@-T1*WU{]tGgc@ W= Ժ|Ći< v{],A6 =0Oul ϓUhYp>x4yAH]`pα`!_VK;ЯTތ Pʞv 1?`z%SgX}/X.0M DA[J5,6osSg4Oc9|\9[yE4-Dctgymq}6V_Q)iq7  U0pW:g+!̄qqb9xloYoJmP*!NDO n?2TwO={c~yÅ0:sӦg[E")"1rgA 5~9 8٦n-Y0~(˵L~t |-S3%?ƢK3jb<_%,M:k߭Bk^I4I8>,IRtbQ玨/4يiE1 :D9h Ż1 )C^u 2xI5 F8Q])H4]N #@׿ząb"<^vzC2%߭)q^|~~!<.l|j۷żm#Y̮e/!:^";AbN(L[ _ !R,(y 4xn(\5ia5y0%M@:Ra/ hWȯ(#N& G.&R*ʻCmܾX%$++lVVɦF=ڞy,4r>V 3K]tw|nB( 0ju@Yi'=/>3`X !^([R |q`rnSX"n3aZ9A.ҡn([mp2bDdoX?5]άڅaqkJ($ol/IG4T\ґR}kYluwf7;҈sHh{Ln{dsN( EfI)rWK2ZR|mS/Gm[ζwGaReHTaNҘ:%q$HM"(ˏR4m*~18w͞7I'lPU?(p:2@)UYJXiQ69 G-I~. ;G! ݇y9'גo~5}&ŎMhn,4a}ޓJ14% 'Xԝ9D^e KeuG AꬑP0q@(7>z.}"H7**z}ReFtd5w\KW z169bxnSC'Qip%LYk[mowxjL1+m1 ;4[E靇(ȹc$1aMѰϟgWmSc+'0e/e9FVJԵȍ F ؤ ^dk@w(NJà!|Q+#,-вV̍_:փb=: DGW5mx5?*je.@j1gwjɣ#o AX8`#)]jG4>D|Fy6tPF_SUE5d/wq3c2ϸlZJ <ɈT;:9Ԕ{a.$OR b6{]f&S]jm/])ض0K5 -hҐ:3VXa T4&V=BEBI)2C&^l0.ca<+5ع=]C{fNOD67QQuʰ-Rogi6WOORf*Y\Ƀh?͡52]rzDZ5bB ڥFz3\`W. @z?0W UT2@{]|S{=-ǡvδR00w !Y OpZB•3ZYWE~/1TYEuMFcKH] <\B|wp Bedt=E Ac}+—Xy 2p:!$.n2v8gGmqmnEj%J5+"5&[5({!yjEDE 5 >L*Lו;tO3xҹ& ȡ ̆ҲVNT}YP nFxpwa*,:Pzfo&BZ;°؀];u%bJu=ٻ`RG0r]KO,I$gѨ`u8_SUiVc(EQ;i` ·E:Eh{BK(.zi.`wCj;e j7a Pt-^ؿcrpzsZ>Wߢ+Ȟxo5OT.EQ; H,ӊ:Ylb< `\[$M-j9TchƣtѺjŸzrEktMz>&j!ilc:e6qaaA}])E8WPy/Jdfan9ut=ԉbB㈕jj0EI*߬+ rC@t-^iV楻҃-Ukvb%n6 L(b{t:x >B1k|98c^4M ($p+6rvlO%(:moj .WӨP_8Old?i?"ϋ(ifIW,"=i}T_M=L>U N!unpU[(g(S]r_'jVD"]g.45,ï.4sGr0Q CVD1n̸knCTkGNq7<)8j>u?3c};,*OˠUHt'DSbG%u Ŀ@8uڌGp֗SA/E-&C2NE`f#e^)bʝw.0نCbEJ xqԇzP[jEeץ"؎*_wԯ]1loPnaݱ;T{3,rݡܜ" E|`Fn5pqeBanjfS1K j_Gk5t~$З(P-T<~gv':K!V XuPWrЏ)^փI7=JE ~72D^j,[ ힶUYhV_CM &jTo+;^ àTeESDAI/k4cz$ޯ _CB=8WY6u`Uڝ 'f~2;A&>/d^0ȝHZ^QbTnv,Έ]i/rY\2+x~TwɊ󏯡M11- 1?vzvcu;.X![dE=hq#S Qc8J!3*Uo+`ck#yW@F5c^ԣG!w GI]8|MA&v3!^5U9@=i6e[̟;us;KL*۵%~egnkUOՋ{y'${'YGc4dp Te}2vq S=:[/~Ā8Z뭬kݻ^;0Qω5"shADw[,rԈ,RV^| ܇2'k:+y ͵zǰo5kaċxCU/3lmY`VdNͬ U7rˆuF~2S'F#bhGlC7 cF7( #$YʴW˨P㨊eevnfP%,TK%QgpƢpL>I}U+rK$v]neFsxF % eP$458:$ \W!S*bixmecC;;rx܆6ݡt7?%J7oIAQ$*cp7M1Rֻ$S"E 2>D8f|3-?h(U_$02 P.>-&zC,EZչw%Jv=jZ?ĒYƯcS:'}!⨫ өh`;62c+wӅ}%?pwo$R5bGk ZO11I#o)W5|zd[4YMr47е 펹,1oBRpT%D|pHWp%F:cAn23Ti3KgLHHksw1{fMFL7 8Mۓ2"dqI]Ľ Q#IWA(NVjL((.X`,N ItD0Z\7k4ݚ;$%{cg9͏ T1!L3k Gikuú=}Rc|^hJ;Mfumik~(Bql@.~`;pmH|G[X/+NpBiLn<4 RMSD1H]ƩRy۝^ gwSX}('[J yGz&[L\c̨eD@(T\7] .Ǐ>8!7̲L[%B:CQ,ndLh;ۉA /x6rnA!RJ.BS:xHpi3,.k-q5pIW"t+ #W3 ]2oa>e֐o.3wlG:vtNR/Ǹfy83> "\5,n6Y?/Z0 YLXtzB'#0lYpiy~( V;q3 F8Ke`2@}5BJ xѦ{{\n8~Pk {o4>0Eo5u[\QGuӛY}%F nԯLN)VgKrjZ `u7wyԲb{^S~8li"7w;uSQ`$S6]>r֯Z_K?rCAr4k>п"64:d=",qnx?ۣ9lRӜRwʃu`ӽp9Dj];-JS (_c£BKוJ%\Xмr˵) uH 5i[k=&Psg]TCP]}uJR 5S8DR]9Sn1YP^}bM?Y^+ x1ЌŽ\mgȅ7n%l~-GZ̃ B݁B~3ި| >"Åg5f3,ZJk(-(8Pal.-8dcMxoKD3gOĬ muk\Uɻ1sJ6 K+ u]zy)w1cIjƥ- OȺo >'X Q:RKcEYkES]y&~ƑDY d[ @>v6EpG ;iH;swXs 2ւ!!#l+Mĉt2͋9 Y+ k5df@Kf ŒRĘyʶ.L:s@tF`7з?MW*>4_`W+(yxOEfg #U޸3az{NXT]Y|KF9?G.b̪}]G&[LҡRoF8w%ST4y,BuD$W jqrGNm8ɘ=q+ ,m*_`=͚VI6E Y?yK fAg$cARMQbRX4A4Iu #r5}N5/f<̠ZbmWvybh:8p| 6H~[j0WNSXsL:A/L#;:0&Nd#6e-}XЮr6es@h2ڇ}Q0up`P?%*- $K=݋i/v& Mqr9H8[F.K\GA:q9fǬL)iX>ݫ+ihi6_(YH;b5As z$>ҕE)q1򍿉etdMOȫ9+s"ŜbNLM;f5/2 {Ep(՝znEQ7*4˲/MmgFk6"Qt ͵8Ep28>y$Q|d:V-!薻x'-{2> ^ ߏӟ8^nǼD;qb2-R0U*u(\e$Ũ+F`eƸ9Np5?8ge=ߦ3e&3e~UJ8  K:qjK& da^0JrrchzD؀+X9P$Gu!)gsz{Rzc5 vyv| ].!ڄT5Qe]Q#^ӺYs6:[P;baY=lMiL^䋝lQaχKihB`DZ!#H([sT4BXp QYYi.P-5ڳ0H'"]QC X-W@ OCֈ8291 ){-gd6%>CTjMEItɷw캛}ߕhi 2툑w֘XLCޓ1u*\!s~O7þIs vZVB`[Xt ӄոTz8O'Y1 :wN=a-$bXʕ.Bam?b}&j12[ },GKa3ˢޢKƶ4@=iٽ>)̇ (Rfw@IMmPRH7U" ֽe'm `*P7H`4 <".sKMIuaV&ZkEv:Ԯyx;P,^];Xqӕ4e&PV6:W8/Y65b=ᆩ!]XΓz+|J]2k@,}TZg \ <|h"8 qZQ;ܮ|ْhz3 7,sZPp7isIs8yZ536}%+ON斉4"r "`A m;eY]Ka5IRi}(}D6.=6j1h,jK=]0aG=P-=kĠ %sDd=/S.fe{RULz2+ŶZ=s [T,7a{0z}bhm $OtcYSӃ?/ÀD@n1Vd]6,dX>TKV̼!kOk{-9U=&;! } SƺZJc$ՋՋɧ (ViH% ,]M2?$`s!H1RQW+Nc*ݱ Anݛ5mh}#X0GY5?aΑQxA(*i|42qb-tHP%g\" Kjqb.t5har8YtQ[Q!8&wݥ8˽!LcW8P `.[*?5%`a 3+6H']?(TeE7%JQXJgy} "cnJkx6}:@V$Ͽ${Xfaoi_ aFN)> (Zj?@9&'^nw:fgH@9r rħ."rKyv]y 8R1~+ 8K Y DGWqJtsVTU_K%}'ݎњHÀ39!L"ҶR쬎7 @c8xWc1@ʾ- X8hn:64朱ip.TL XM@kЕژBe ;~pHuUZh @u-_E(r+V[= l3+ [m Qh{>D׳HI27Hq!ҀL[τc@loVZi.`U8{ՑҔ>C@p M(X]ӕi= t<Aen6}FcFڵ@sjoMD%lHy./yWZW}S5^Z<3]qt.L֨l_vD%df;JY9Yr_U/wu5zjǹ!]gv0Y6좖H{+KeS܂N|s$X5>u|WZovЀdm65Oj-s̠E׹}T@lEx`bXֶKO=0VW9+81s{0k+%zXTg:6/,MEEAweZl5&u ?C|Z!klbc^ x&ϭކ,V|Tg @/>12V!`fv2 ZlGS ˚_-ŗª2)W }#zkkȎw1TWcJנy@<wbGCr<6wrJCdWYD9XWٌVke{s Fzw-#b̀XJY@űt~[Xr`, nIZҠm|eܾݮyϱ r'YjEUvMR dPBEЦ`70A@[/ﺼNKﮥ;%L}Vȑ";WiajPw萔xID:֤ *c~B3VJEI]hWRf pliEnUI_eYoïM3®'桨%EDĄ;>{MV4~7$j%|L }RC] ,8־N@on#(:F;暕MXKGEZybLy lwMF*ԁ僙Q |}J6ɉo|Eɜx0.lEt+\ ^ucb5w[d菬U+ fFajUzKǝ35D־-FEѦk 8Ch E u,{I9τJSEcCvn!1f9N%% 0a |JED׉u>`qܙcdlʝ Ap0u')>t"zg"7'YϷG6Zhq0ُQ—Dx(24΋DiʹS @ph엺úۘ3׶Jc^?<zuHO&t8bQ`2G׷y:* <[T}{ZJ4<,ޮ.'00r%:EU$;]rOg' Ampw-ň8nh*Z_32y",,Uuv (y x|P2:¥bF}ڋzrda8*\/ )܈6mċ|n^\}Wj|XխP%v=y~Ѕ*w4؄2o`v#ZrVm3I4ԡϴd<( ™wOC ;%b9&xJq$VmҮPu(rn1@`v~L_Ec؅7Q(zyS}Ftc^K֎EI х|͊%y !Ec8'8gO" v)Pfǒ !P=jYj:乿RYsk>U:!t5ٕM~뽅3hoO['4wmzY_r!ivN.RxɐJz1i \Ix\QFGVR82SS5} FrI&kvvgKYPM^NPFZ~ŽxT|J@X~:anB}Ťh 9fY=5͎Uϫ8J焦jb..kZBC)|d{ TvNmP 6!pX(92ʎ1kD cbT\*cV5 ƫoK~ ( j};諱-B[!NH3^Cnp{y.H?yb%bTYyAG 1Ejf0 3ɢt{مן94δs} EWytPR?, m,ɨXqCLF%Qd+:*%dd8 p4T+g˩?=l//l4Y+V-ZgqU 4ˇ=tooy3=Vk޶i{gvnV.4VG*ڞsH/[zg/HH"b˸)댦~.ߴёe< ڣK$(Kw{,7t F\!`Lpn!Ծi'ScI#/I p~jKd"/^qħxf L؍L0m|؛NJ9ň.)ŭa&`4}yذ HIƨ)8҆kTtam^̮ 1F%{Tx9$qv 5+i0@# @dGSʘ L~ ujۅ +ԐGnЕƋT@lM.b2R-r8$i=̧>!ΎNWv@g[<]D8nD:_a e.h<~XgJpg#3PҠ#3fp}P(v9!SЍvFİ)o,a'/E3}&^@H- iEei3 Z>,21.bZ]̿0PEӺ+IqF~[vƷ;D/v!rHFsYԙ$+~}c-3SsWtW2H/?UκIS֬ռEӫs)ɩ?-J‡p L׌{ʩ`ŧ@ ШKBjs-&Q8uTO0dAU_(^r, z[YčnP>R@iͥbKc̶{zd NVēs.]+e6p0M)%djm9S&0 $t8hYT\+?r;Ȗ*OilÒ]/ `g@dH}[OuqXpڂI)D#0%JJ EdH{0 yK?4"ijT5Y !a'SP+#u< nLR%ДKgTv4{ IXtJ|G[" ^@^d=ީ2AdzEx"j$bC=&鶋IONJ& ¼$XOkB s sbg} :̕(=:8t2(G.yG[|;W˩AK!X ȁ;brY7Bxsm&W ֺC"XsjZ)ouqp0yD?U㙣4b 6Vu4 F7@j -m{Sz8=T`y>8Rgb˩=cE~)K\:iVVe4ȇ`D}N/s]a V=}4&$rDRڱBeLU^,(ECW3EjU箮b, $ =isoKqS$V/#[e%1f}s칱 ( ;7J  *S ^V%pvTȂqY*Þ>y)]rҗD98 L7f(=&AU :̪Q տѹ|z]N)V{Z~,{Ԇ -¹U4W/«.̫ArZTѴ/X4Mh+l)hty"c-u'@zs5bpY7"/>c)-^%z0/@:͍! dd[RS?%SB0eK0Ec}^jl= _ h#"/ZpE9S?S9eM^^?qlƍJ4[hdC3CzSbmBu:;lχ{e@4#TV5њ#?gt jH+ROb0pr36Z *O~rhHJ9^'@mu#_~x{ ~vM3)8 vO:O V g`51HV.O%^Mh1FAB+z`>ƇCRny^fg &q&D%VKLmLyB̷v`wͭ";Uf=G㴐La(n0}ũzN(n7t=^fBy A{PLsz%\Rj9{[oz褆:!Z5c|j?Sm9 ]m-A'd #5{/Ғ /:_H.y{)H ݱ®zBF-R0%%(*YEPa(݉6iIܷ`{`rV5d~s>FOw9vLɮţopx =%ٵs_yh!o?yүE+ʏ1u8BF6 hXR }W!A / nBH{LSF"0(42#v]tnK#ip%O<8}GQ-m< Ԃͧmֺ,MOX9ɂ ,lY@W@$LusSO={NM1*!@͈Y/z6 =Al&kvKAx3~[iwQˉB5cr%MBU4YZz7S [Q/ upMDoɯ6d.tġ 3NbM[N7ta-kso\"Pf!EN yLat/C,Fi+V\Q#ڦ$oxw]ia폀]v7lmf" `ȗ})儃?hŻ 1ẀKg w撞;Bb>he08M.'8זԝ^tDƦŜbf<9BGhЄvhm˄LAtUWl/|WD#?&6H'~4ՂkҁMʗ]1YkFx{C_ I%GKc'q1uKɉ\pq|X?^-ƏnG3B!__1=4|. ut(7LLbX2Np+ y_ P Pz.k-Y4*A 7T!tw;0lG1f&\ f ĴQ7y ԓ,ComI!W _(!ؼ%*2@+GE. }YjʻzBauWg{c$d׃|,(9[qrCx{ݔuTIlwz`HY8ɒ @tnTN99=KR={xv"@_"EI\&@Yu<fB =P\ސyi250jRآVd?2$Y<}|wrBNB#^pNXY_A(݆3pAo0ɡ!:l(.۶_Hc?J,9;AҖ%%.LK an:SĖrya:PuqR'B,fRT[nj5*8DL-dxJ];~ǡMwy) SڌG[ q#l:5-kݑOPآJĞ Dz^q{R!0A@ɃMz4A5pg$ʭ#]);e@Փl F5aY!}73bu=x4/^N z~f :64ۛж1}frü3) p&.n| ]u BP$$ݣt,g 03jN. ,#cX>x(>#BCH/MoI3tmfXX6 !}q{@}CVr 0|?WG~n0'w O&_&mJT,':v )*Bt)9ZrߛE"!i:,h2%cTVϏUK+d~;tKֶ3@{)3*ox8#H1&g֜&zr MK"_ir6vXwȒI4qFн ĆO˜i1Y8$n zjʗ {BVgBXsSogNPzl F|Q5!L9Pɬ lbmeN#]VJxr!W{k =|b1KTLvJmz62m8" 1̗Vs#q8/Le ID |1ß3'*~#Lc-O8&rghFc7=LwC汶!XփTFvCfv?aVlJiܸlTrM7덠uPe00H(T· -8l+z|7ҥU4G)+wےd3J f+l02eKAiBwP }S2gB?!hZjV:)Z*Rڭی,'ePo!JcԵTM^͏Kَ .%SEH @O1ߖ=XkvdqH]#;}9iK0IvsMDb1A&I'ϴc],c'IK< "@.&` A2MdAKYr4/rzxPKh:s2T)գǢ-a^<8FX8TsEћ?bjy SI @vvGo=>՘vMuXm{X1f6eF&L ̵SR*rF*[8 :}xǶ:4+lqNE9WV Se{#ǜ+A( )h>!M6`owHPU.k@}Gt_a>.MԎ2 .k.;=F w4^n2摥t$<)hڜp;tMH@^xjHRDk8h ,p٫k|iuRB 4 'Xu5<Ǣ5 ؽ /&|3db#Rڢ|ߥf AR @EVG%YNj k5zu`_b;=DS 4dъ/\Qq;R[\ 1 )﵉ĀIz舝97_dG!n ̿0'-C5qO$^iݸ!(xm$v$ތ q6ǪeI~Q5|>w76JN[+l0MǪ =Q#2T^P(o殢q&b2*%訯ux|mVq[u:\ dcEAh kA(ӶNcaArWԊ${^IrW2y\͐]mZNݥgQb+O?p!3^1S^2a,{0O]c!sLNGD fE=^`npX#V%p؜寘Ae6v,IUw)H[&T2pW8Tk 2|O# PpO +~u,ٕl}gvg&%YG,~?m8Q6%4]Hh1V0ח ].HFrk_4yUM<㔻67}׹j: F=pOXf걧 /޻%'OAj!rmI[KM9t̫.nh{?k6.rhcF-@TՆtp]mᖔ>Ի44Uyi!?aeǥn , {v{Hε=ӂH DٺyU },q&LFM+˅ !M{|mGekʀ# =%N[8ʨl1ڦgsZvx[َ!!r$uEd]lvCѣᬢV_3ޞذw/2k-Kzz{i Ω1Dk [1hL==ԁƞn=X]>#+m M`qߺ1AL1VuFxg+o~E*y8C7z~w*G7CSzFdh#L2z p,V\{QtK-7g;?p=6:g($󽬈7N=:&#k`Dkp~>멪n m~,CrJʭ|N x~_ͽAp4 ӊ& /mbz)2J[4iWYR5WovgY`dZq^1y뤅t\{S:8Mʌ HY C?B`$חCfXrC.HSJoڄ#(I%Ň'^>ѵ6ԛQc`8[cgmk$:@Z-1"lz:C+BJj~9Ly@K$Ԇ@^ھ8xpPp<.8{тճ* I ?ŸF(PqOrԓu?cWgcRF `B7遴XM'(J?:S\t_ŨwJk Χ1MI20rNvu3--i9xӗg1Klb1UnT%30!o۫~b f+_M5k98o9lCK-.­bxwJо'!Ȍ/*<͖o>3(y1~H,r4v )][طtst e*gFy#Ӂ+]F*܇04_ʲk, alk ' Fь^bm}gӯhB5aEI'R%:ˮ^} (s׺iQZ*u |闚w1 q -%愞 ? FUʗo5 B[VM7-Olxw+ң+ݹ2fZ߯r1H{H[ERE$8'Ż b&G25f|8R!1Z RzY]coW?͑*\ʾREzMdpt=E;~4&&6{y1R ًI#pZbk7GWRc b=fE}-NI5W3B:@-ԍ9M"i\e(iU]gSo҅ZtI#G,,EkӉ1)6 PL)/^4NLeF n|e{1КNL'4VQBqiZ\gDP?ÎԠ}%uf[*cHg/˲܍_ i6;vJ[/E;j\C^働PWd2(!(}²bXq=MW"u#Bb1=A)k..z%5I߮nZJh &l t,K~zR!3iӺeN6X,Bv]ţ] C\I1lЖz*]Nچsb*uJk>6̻e%D[o̞ӂĐз{o@O/^M <ȹq<ԀmQ04PW@׽ƶjjA* s案̲%I鄻s2G),k%Bk4*^YF2X-n\4ナGFL^O\w\~zwe>Z{x,/眸9߽x,S4Q)P⥼W]Pv!ظcKSU=1_\񚭼M_PthI$q?M[SNX\~(ۚW)I7Pe&IH#dlvl e@*i'F41eˬq@@&s86eG𿣇#;!itʅʲBqFn3]~r`(G}o%3{ZFdƐ2!@[*k{Hl _S0Y,p2|?yv|:SRզ/<6(7U/ `0te6on5F)C_Ij`7h Gݧ5Pdѫ?R[ [ә%њg: &@k.?K^p2gݞ>KThT=۽PBapY7NUM(BC҃@~-غ΁{ &:nk# QVkF/;HdHThX7OXشLS8pwS|P% fb_s`@år(2c@ xTtC{;^Ҟ)-f$.9tgps36L=g1G#B?YVҹKEmn |-bJV4;doażP?#c,$(VzOE+ 1~k F'Hx2eIY&u`'ڽ4urʍxSh{ꬢN@ l3i rQ_k+ё#Lq(jF%&jAeR$`p WXYU'p/@ᵨtЏϮQş#0 '8ghpZ<7mLBi;SҋP'M#HjORN6yo;FP  ۆ!Q[N\Cg-QsS9*]ýeBqG) *s_?"K=7Z51LSY,cӯܥC>h-40eq h"-uҞȉ)`BŌtv#Sĉ uz0 v SBEҟKP$ʄ+jW\rGQ)#MUC#*"aRi]4WYg_BEivQQxQDzM` 8N﫾w~i5JK(G@&\KF݇R!yκ T`hx-n( J"WPB{W_EPkf{3/س%Җh1ϞLAB{a)F9Y=sk~s5 TSZ8735@j- L`oop!T2g~VJr1FV!&L8uI4#?5'>UnZu4:}%*X󎓭i~#o;KRLh_fvf9VX7Y oy$&o[r]0@gj%H5zE!_q~t> αNЉ K |xH& &15 *jsє_7o1} C]uRܔ eZoL"Q.8=kHе2»UT>8cLsFDX bg[2FA Xk4-puf|'(UgB$VM ؕ< pL\wf} HibMC.kdF̍skm★iT@_hNS꒔L%K֩:2\BmiEdiu80gwGV4LIy6<,P,HyuO_/9`Z-B{?ZQݕOjr|A$(dG^m{W[y;&`6\#u߈%T_?7\IFq; 4a?3=>)@F䢩2I(۞%`LP^/ES8*Qp'(P$W I6-UL3]{#F7,d-CTgJ 4P:=Ԑ{k$バQ<9+a?3P5E8?B L;'kQ=EǸԎ~Lh"1Xڞ&:!omȑ _Wd1)KR)|pa`K-/?F}93$2TfY*j&r5Z ]튉y~>bziYެ7Lj粣7gCJ?Yi\c)+'IѪPV#mPWo#}c[xzT&}(񺥊 5MzYnNȫxy ua~} %  ҽ10àioh4KqpwSE=ܩ9Rxb{'C9SvG}9UiT^_}d|HLXd4UV y`h;nNT)Z=dTH 1Tr`'v6-ԬGя68`4!5y%k X (V9J={1fq lG[|zHS?v*Y GѻЊH^7xDvaoM2K{a{=[^_I%J4-Qt䉇Ud횚 JPz/#̲)׼ٷ.ICp~%;̍. G˩1ځqw _y'ŠOEU17lQB=&XW`}?7һrAQm59ku/7ZUڃ w(-W<39Ûiukp U!D(s\˭t*F$Vjڪ0̡jЁh:R(u0)RD6/!Д e@vN-ԙAB^iQԀ ]M|6"!킙%˚,2"-Y?ZY72KڛF2^'ͫ e!u$*SIX:<uǭ\Ȁ-9(k7\hdzC\:f*W(L2)`LXJu:g?w\W[|V2C_x h`ƑϒQh5yI%$9ϰ[a_Y0[Rת_A'J'!ٖzkwD:Hrgry]XCu&65ދE>TB*_{zJjk);Xra,thrcmFn6p:TFQ8"ܓ~C1% [׽siu,{'1Ww Y͙B,:}C}M,5u 1*+U=R`__مQR@ݞz;餏bIq.+~?Ls XA3pGLRmf "!2Y @.#tSmnhS2p!|[ce若?Lt|b+kQߜú7w웾õ `N58yޒ3t.Q< gZ/V`g~ڨU<մݖ99E!#RDrkSd~?}yGd-v.sA2sqVӇQ{ K'b?R Ag70cҵ}qWTX0e%0n#ˆΆc{zC<՜y[տ3xvBx)X7C;Bϣ;I'eR|e!NoF8_%;g= I w{C|5Hy̪O멖IbADAV,oLWPQ8W:*D[G ~\K~YO:}`A^ B6`ACyTw6ɲsH9#6 rV0P*a{ r(\A(޲8xk頟ѶQjKwl[b^ls"Po"kuCp u c1S՜X|HHƤ{B{@vS&p㇄Ą0ˡzܡ|NI 'ӉH_]YDTwxIn~].p_K8ډ! +Ά;.#V-]#nXP,|m EtvU9#=iZjHS1I a-DK 2Mb ]jބQB緿u͍yg4T.`?wl4}IEsU7uL0{ҩa#@6JЀQ(KO~KS.%xjx,#&69_ Oz5L([A M'ٙv!gA!Ι)wS5 )96Q`^D'R F\e%?Gm:5D)%\'6C2zHnf o8wRyrydkdb.%e|Z䰾c ŃGpMnnmIP v\FJ=nimt8%'b0H[JG >1cL 3 T6M5NlXSּUYUǶMhIQX-k}Zn#dxwq&*Q5179rR"k˥A|XzݫS͒1ً:(Re]e]Hۅ M8``"|~Tzi|~=ql_߫õcMLLfOXiD;/^X*u1 U.{*ppl7y X[l`#Veo\3Rpk2ZQ1.*Sh{DwDO\@)kG^E9!Z g ,=d {s۔׫ @LPbo%XIq0po̚X%RYt$PPQ]'A6ڨa.]M F3 5<`y}%UƧ|Bˬ:4~NSz<XrP9\(zY"BAvCRqGTh^5e2H[8LxOY%5\qW*JǕPŢHG2Wp [֋aުn&' G=3.\'],f@I&L3trkakse6p&rW:#B"[2s_r Qykt!O ""ٳ2 V0Nd́Z7P!k*@Mb'C>GR@Sr:ˑK2=G$iRDT-9Q| DQ1o+8()@`:X 4td^4`ё x79cLM]u?>rt"|V2@ 47$A!lZB.:9EZ2!U%^w vPr0ԎBh ۿ}0-죕oi\f\G;c(qhAd?$P4k 1݈M2tEDoFڂ^6:F:UTS|&"i5vX{`Nt0:p.)ו4W>՞.\X]K5a8zb ¼A}}G q]@- ˗a6Ю<$| Np?׾(m$q'M>e:!Grd#i(EO)UO|f/Mn[{z@XZ025a8/}[U:s:"{S;-N-BR>߻/8y:vpUb1ok*ANOYZW$ oP)^&PQh-BJ 1۔%5N9,]N[8XX &ErKbvTu|8,M î]sb nx?gOkN@ok,4ΐ(`O$O~?v}uyr 9);ē|=ꉮr(vh &◣rE`$ϪwCDV ]%3쳩6ܾ!~j7߹,},£>o KU65*ɦ4Za~DB`'MV,k 6)p4XMQfZ r#8 m.ORˮHj+<\J޵D %M͂[)'p0r\D C y2,XhjAwJTN`9UJsr`7 GL8V~ _+PIyT[)HyGn乸H;Y" :Gcrke[k|ζr5P&WQ{m xz"ٹ)cE&ǥ~[ݍz bMŞL`˕irv;i:ʠX ntl&mvlCAC^Y}l~$L\eIat"nNE|ZQ0{{.XSı8^c; fzjn rRUξXEPLGZJPFO\ETi"*p< =^~ ,KW>$bq.4˻wފ~w1|xKT1g9pE&VDpؿjТ[?EK˫?ɷ$BE<7ڞ1ï􋽿>О#P;c ";-v2i.e њ^>QHN<)WMSO{8I+]eh=Ҝxqvi(x`{{#S`Zlp]y@Պ9wxbƿ{ٻҰ37mų8 k0d7rA5 !Ň2]d0O% UdL6 &qN6 >?$%дl4n{%HĀjLj$E 0@)Ev3pθ>l8 _Eɞ0_O=s .aH(}O%B/xc1=)_0jTI^Tb"#Wh69Ԗi<-:$ȺK wS?҆D%m$`j55b[E w\Ҟ&!g]$ֵ<@*]i*T?J'?%ݪǭV³:nB\wucq' c"lRHV -HS.. O-XCM)_wGD)%F/i*\dKQauЄQ}g/d5#kdf+t]\<@  ڱͬ!(u)C6k+%\omn|%' V(I%եj%ȧ_A0L+z"fءNsy&Y"7c S1=t0Ѣ4mwiؓ7$ s1 ۯ̆߭Z/kY8 fcC9Ҩ0핣zՖxHZYlEJ={9 ~p_l+o]W/Qx?ÀtU:90EM҃sh2S .e (ď˜`0Wtk`k}x4ށ*7tIvlEbZۦP2짌lD2|% pbi^2my%]>@hUn؁~m :D&pH#ŗˮ|I)"[XOD׌fZRM _B~qZ 7?^?/{o3 ) 0T#f#fyBU]gmRBB1Og+>ㅫg,p*dch1LoXmF)೮GMf8T'8 "f#0">A-OU?,T8'tW*ʚP|#`c?0\X?zg^ھ;,򁇏ٻPpBiׇ,4?Z_AchoAmh0|<ݽ_&QEޝY1q;ZWk1h?s_]k[_l`ҩQD,HGi1kg[•AڐJT($_곆`8Z$.RXB>Y ƞ[%ZL#E ҥKd%@EJamjejnz],?viwz|zQ\0iݣ1T.Ku{(iμVb<];) \T5kx ?Hl36F3CPB@7`xV-(]ZHf/r+Sm Io%uM=~l)db|:՝GS*x'ObЃ'eŚRQ99bV0 U#{O FU o8:n["7i@I]SZ֥ʽ8]) |UR;5*qom~ v-TNf%zL ȣ5xYAVǩ]I0`͸|1@Q3k4lYʺ6BpsZ:_%~:F~p!st0SZ|מޡ$ynu&NQ$1鉃LaC֨\Vxx C:)!}~P9ajjȖxa/Qd&'\kSi}4f٬cUT_uA;SϲLLiui簊W;!"u7vZ (8$۫ҕktP. AThQ==n@sp2o$$3^ڼ"fV(+nN.%:rn:W 2sXM`ol%O4@Rx>l\:C'Qn7x*i0x5Aڎ19'"8gwdݥۯTQ 3'YѧīLV٩[peI]'V߮y;OEMN1+3 S 2;&@A="}^zИ}4h.IVJQD.\k1W(6n~bc 8!9e%[}=~Fw.|)vi+֑eW{8PNKx`JQs[ydJp\_gkXAȱߛTcYDrS֛Qˠ 0zd?S<:( Q&-`Zd5s;d.wG4]g(jlhwo}V0]_|'rܪ* ZRBKo$I b]pQ dx=ǯP'a|$$k2R[a 3asn&tV\]ߛ /zdNM7?ǘ^D1]fhn@ 龉K XL^/d}'U#kk>0XYxFG!XLE6Q ,)9@$p ~i{@ϳIѐ#:e0c-$U̵oaE- ;_Vn3cjT[vGI)3':DJab&U$-[2]?;r#@ƻ6j^|gH_r Xd?Y`!p~k$@w>bvF]*=Tåչk^m~YSy}ۛÈ!R>fY;#x֣T[%PÂn?o7+L5I?H_;WG=>aN 8>[D;C#?]9mc o7)圂 }:(otņ%^>N+ڕЉ6-ؒ_"HI0>!MPD,HU쇝sEÔAȠI}$b |/N.ؖ'^hڛ4P2߬2.W(\em4D!h5ֹYG;ws~ @.K}y䑣r )/;/go'`njv*qJvpVN _/ؒ-%!Wedlo[|)&õ5Sgw0Fٖ )v >O)E-ݯq 9RDVUlS1bPٮ^:B2tO'k(G,j =G\J!R]-זFQ/uoL}" ;!86T).(>?5Xu5O-cj_.ʝWV3N!0ūb?$kH8Ҳ= NJ7f1׮n:bt\N-yq:+N^EX==o}K$d8nJ:l]6MII4[ErC4R>݇+æ})hKHWZG}/`t> B RA|נu ^v%f[l0Ꮢw=&N)`姡mt>J,o␮l](Ց+s-}Fͨ0Ws˪50a|KǤ\y#'mu66f!"$-"&NfOX#}T޸9x?$0z3DrR)&,&6)?džhMZW; VOLkW5QqPG(bJwƍ N| A%M])ށȭFaX#8·1X,Sz3LPg1f՞!?V%Pgs%YcQ 1_V:`+}cGL, 2*-zVE'ӱ,WmQ9B$և $Zri D'U [$RX~ZJ)/ 3|nb H=I(7P*)71vۯI);^H=y3,I{mg 7M-CshB{ Ba qJjdܥ¤Msu_vv{ p)Qɂ@;*P' /w"0~%AI15;]?^i4ܪaH^QBn졏*i%z$Emb.ƛDL;(05|F@-h%Q=Q(=LV`vt.nOMЫ~vfڐ^*Be]}~3&^d&>a<ܞ1dkN|L9"muafJB-7nŦ_u\܇F;Iy9HruLoG)&xC,w$MP]3M[';տ鈘A`TqBG_#8W؅CDucA>{,7m x#$H:Fd*gzށn(a#ޕ,#@1RW̆u gyMs M8X!?ZG|{ryn?\{lzräT.V` lǏnjx ivB\T3\( Ĵ(K/(>oY3X8k/6rsQ /dUx?UoGt$  cqZ "hrKQ(>2US3s\Yܖ ,mwuD_7~̟isd U=׆dFV)1RY7H dtdE$]A] U`쭆}'`VO| \.*#KF$6Ԗ0IsC#xp :K)G鵐!b2~HbG24=jH#~ hgLvzWqLkwC =aҠ,|OQKA4S/Zd(>st0H8T(9O#UC]~QkH%ej9֞?T!b[i8̩(C?8k(Lwr&P#̮e:/Gi?$6-N.erfuwoFSINLv;A07U\EM(gȳ ߦ0CVyU]_s+^Y咜a cԛ*!ӡ.uxkfEpu XQofS|N^S6ȉr-a ]P(s9D[pCoU`$꿼E&`* MTz?^N MCe/A)Őc#Fƫ ̴عjFCQ S8U{oQJDUv7ϧrc +;1EjN]p[t/ۚ{<8$(>i(u:.GQ|Z:BcZ|K0%qpI(Ÿ䍈+SsĻ|kƫl沒m4LU# W7iLsjnOr4@]Kd\QKgnUBl:2' ˕&$[r. EBԪh]A͇G{<|R|qez0(@Hka]a"o5i+،HȎ]EPI##K“pa+ޣ.'(,hxHEaE(XI>\򫆴!W>4.- AڶJ97bNNd嬛tGVS'rr<[jt!Dχ] YhEdvصn;NmO^{瑕mcH xȄf P쓳*펲ev&+>|Fɛ`ZûR7}9;0^ǟiF4_ִUEfmwh1JeKVnEK}2IMN=Q.Ai5G]1kå; XzA !7r- >D=ZJfE/okh@z  T8N$Pޗ_Im;9{Q4I_*K5$aR"Fv!fE8exuQ 15*4~gCE[(;oI0;'⦘ә`Ïo9MLQi2&"[Q`o?KS“ F_J(XH=g(zBue ZSjO XA\uvdŲ /nU(;C;xDz"4NB q L[Z;#MEL|fz୿8jg:bBܽDž$2=̈́KZ䷀t+[ F*ÐݽR%:1+&J%+4̐$iKL2u{`ᡦvA1zh0,dy͒dJPb B򤽷 >b(HAT>bk ý cy`؛{8̭#&G(~yttDVU-5K4>s*fm̿cv9Ҋ1/+jqu`y.봬PehMZk]¯cgkIRH)ZP2%6UorCG*:I枂JYb>sTFMUkA?c=TYV8k? =zX$ѳ/u;@7CC.G}<L`VܜbxV8WYJ$ﮊ~_v\DEQA˓$GPLiJls{#J͸HEu+vc-mK5eB>) oceP j-2 8gnظb4^7TTAHXa*> _]S_H:BQx¬,Ŋv~JXd;fV`: :|NNl*:n#]R[ ̑q?~wU[rs.ôz #r/ `WZDOT`:2+䢠6GrnC6PkV;\bfI D/ݙ_o!ւ ʚ?E0z((JUeVNNO7ſOt4d>H0>kGm<:ȐoRK RTY).7Ma&%Ɇ,zw\SNmf?%A_:K~ZlYw_ 0<JIm`&hM^?Y6cA)ulMŽH׬E % ŗ>0(^q|Tl#f}Q@KK6#mqD. :"I͏`1ao$ۼ+AbSm'7 ",Qgѻ) $0n` 6k,a.ăaA\R5Wk`OȪ20sV> ._'6!C灗^@'1HD;`)RBsX!" UX^ {j?}ׂBއլ ZĨ' R2;3 iYC Ix/2/h7 JPOU q Hk+l0y{X-dl('7H?=έ b.2eeȳ6- +N\_dL98#I0|f' y PE:x,D;;Zּ1p^?vUCȣ~M7V"䄓UAwciiO҅T@ި~- %.1!`9!bt r{PěN_UZ9C-5aqxg(hWOsMOBx4q V Hird-o͸+mU@{5> XD{[w֏0VG ZΥeqϱ52I7W>,~ a$<0`~)' {'̀T"@) ;o2뀯k7>`-@; =KM (F ɬQCFlI/v֠9{Rd4Y泐"j@QУ(kൈ7VKšh&,ێI\ GZeu:P~# h+:Ghp.nuMO>P^Ժ?aW(JV|xhټ#%cᠬ Qӗ /ov4#Lz$@-sɫxd<8~X7h՞;ێ*{eslthf.,o{&:qltN8ẍJlǗ eĬ¶ǤȰ9H Ya fl?o=]CY}ݲcX>0}KBkdFɌ}a nj[x@EyY f"p]y`ĸljM =S2bC/u -V rқW[gʘ?nfF_+$P]\rs#*Pq( *"n?*.cZ[8ߨqc8Y {b%g8zw9͈}A2A*r\qr$@(P@IT='N2Zr~1~S+KT_(<>4 v1_,nkHlKHhQ s .kʟ|V6M m4U%v(hUJD6?78x^mgHBilk_NCa,s )S hgzI|,`|0Yː+>(S BkB?QT; 0é+87k#!F[zM`}ͽว-h#H֦`2t}~*Cl/ڂIWtrk Tр$]>7R^:^?ݸV#?Ԛ$ l˞t(r%i~wt8G*Zb-}fɞ\Cv Ȯ/bP$SMxfX"-Y"I1hᡦNuWFX+5OC5`E}G"*̫t6 nմz0z!21dP֗=~`c+5w!vZuF {_X"Cc}X}Ll YtrbXlV6X](AK4vS"^`ATYfks}lD(ijᰐ-^`X{Fbqfz^G9OkOp3tm3 "|-\gƘ6skF3S&(BUb 9DxUwS%Zc!C|EնigS=V)MAKfbW.|t3{S >YPo3_~RTK6,Jp;3kN5ր8Ő mYƶ_]p: Vbo2hx^o;ݎGԝ3떮O6Z:}rϣWՙPGp6)6D% _u՜a#GCufetؾ~iPOS3-gba 2ϯ+X'ob,.wfɑ1Zzd5ޯT4֤ $m",II %liL ԭͻ`R=K2=uce;DI{( hl)%[qs{#M.H}o W5"޹#A]3?q3G}@'O187#NH1Q)$,*Z?ĔNmIJ*j֒ч@n]`ҿaxM$W8W/oԯx^ } A .+Zm1rM}xAKgط} YO3u$ͺh Oj~sfšޤ8xKbtIO#%dB7 ~b~?'ۮ22}WOleHexX܇Ӎ}[\1=r֨βu(biNPF#5$+w3*=ghdO9KyR0avN-1V ׿7 pt~2~zwϒq(O~uiy𚬝R Vp&fY0m B!K|dgQ{"ᐍZ^ }g^$X|'rh(-?*yKC%zI'B[8!fjjbʧ{ d_$Ârp:EL]w[ S1}%5.Mܝ f4*t=欀r҈5~nv`Z20.&&p2zjB8)xrhʨwr6Լ[juJ ,5ϖ{UُPҤ׳YZ|e'{ '-N.ݦƘs rmJR5(GnSᜍoy8W ƛ8z׃P9kP 9Ҵ}# "lEu[4GJI>wuhcp 5*\ f9u8f^,ռsIDnQEs{q5{Nj9D?2=zWU4iw֡棻oIG,.2_X^/PRֹW9KA]{0^5;?(8a""0B1TpmǨų9y 뿾\dzl_,yT+|栳i/n㷄R:FAC怿$Gg޵jx M9x Z6L*ͶzsO@tJ4@Y-i==[chؠҗoٶ / eyPċ&Nȥ7wv\y~ٟv Vc{QGke<ۈ?(oujx0f$4e},$Jm|f'o7 [BϪ(F:X_%r,;7uEE K D2z\ r9'1u𿜑.ٳ$ }uN߄p”(P.J4/<5Z{i[i.XlX^& Wݟ\&N#B揿9~@}ڄJwf #aȷYI Z#HֺTRR7lgXA=5dyѩ$>_SD{AA . i|lŁ=[Ιx2 x_BlieW)@!ͨ.phWCygU8WS@j nG zGzۡkBzx,ouFI-^ah9B{M?Ee.x1,A83|QUNyrW(w4Pqy?sxXAK)9ÝB&ػR4eUD)'ϕp{-SX  ?[H!j_g^n-äHJ"d뉰9Եᢖ:w)߉{b[ғ7J%v0;Пmס~;Tʏe3R nis߇\WYgDP.Uf/F]AE`ȕMJr"6:l8[4)*4cg_pSU{,;1]h)4㝧$pvJwH#2= ,cv^W?Qq\ L \gJm0eaD|h;~ ' zƽ9۔QK* 8ὑN :kvotElb]Z ,wV_籔ΤaMdcDrļ!^~BzF*L !3Cza<Ե.%%R>`w懲E-6 mȀMPL3~'] nyǛz)rJri-_ Wx@QA@#8*$Mfkب|6;:vu5 t4w*#@cʾ5zP9<"Kk=:!EeL`;]UFÇ4%M礘I0T::1N Ϩ1pU񚬃Qw1˞"?Tܽyx;#Wh+♘I:{ۊ͚dG_\pJ%H;FE-QL^b8L_ͷ0Zl@ [I/qlu-6;I-:eL8 0nE)n*&.E+UBJ.Ic)obyJ%90*<T i%1'3y|2{8[,}+KB9Q_ ؝#QP iAMk[sc@ۡѦ-# 2P+͋qZԃ82&Ӟ'WZS?)#OAzEЂ}OG7 Τ@ sW6k SMy ڎYņ %N>ۚ|p:< vUr1`X{mS܏yD'~1Ç<4;bn&`d& Q*ۉd Lq6hz.P=쨰 |:&PJ,eyC^>ڝf(.ppgJY>t 3&\!B"Yr*{AE[jq AIw/V=12qp̐\A#o55ұ\F ,5hś0u=`'Ň.9) Y!@9['"AԮ44:oo^iXc$$$y dCWCZ6 Pwt\y%샷}*sOmcw0p2.|2 nOH2dT}E N"$h K?27EGD t)[ZL% - Y:n(@?2}N%1*b9[[>D B6*gt q& kgN<9Q'94>"t>zu oN+?~2i(^^ha%(sv2; X"PPb:yILNӔq،7=Ԕq&.VQm2JJ;=%%bxͦ !hTO"Yrۅ}GAp?OIDdˁV\Dr}}GgulQxzO_U=bkΕpjfʪ{Db'Q#>\@# Qӣpm+m$"I$~F+3` /|y0!.LNҡD<;PB.ҟ qf% >?#tQwPĽ{z` OS) gnw/Tn>k`̈́H]8(f=7֬+g+4v=B~oq~WEJ_HxP _<"yR*2RS&#Qb؞<.+Őz .2Ep(,b(*R#Ku.г'WJ;V-ʭ#PK~D=%twL tŐZonZqtC$%f0 d-UW%I_Zn=6}}_4 IwC KB߉CʺU81;]rx ~]c~4e_MעۖwW&3m꾚WR;6Bi_OKQFX5Đ )Fؓтkf#}lo'|&I߄)`82iܓ)D١a=k(?c}rP+ǤDo0#;l @6: zJn6l$!F%cT@UF({yWdhM]9AV əYg $es+[&?<Ĕ責%@>r}ԙ=*>krߛJz9xKС=yBUϭ'~g?;7y`;lK$@_C6jWç-&B&ӗkW+]9lڢ-BF dJE&oE.lOFlOtP 3/ʻ "mjuiQaōp6f,FIt N ~ϐ֛/YV* -(>/Dhem]lp!~ɑ *y+[dGZu/1Z'J~`b_" d ƋCЙg>f i|ν +(tY˭7}#.b|%;,V| ⇚P+`!l^E T~z2wj 7$e89k2VȻ==s.£&1E,ֱ6#f/@q.I ph(A!-ܚg.[.GpQ.s2-Yʜ9b h#]oww.7<c |.M(^~SRQю@'U[AW%HG_埔OkspkfqÎxĺks<fN=yޅj`h&U{7tE,[޵Yhk8uK$bkHN l*&KO"X JCHbqE:/W: o"Vh8R+a6osC:SWI)g;޿o*YJ U2 `e/zgk{ Ń^Ђ'^yPrؗkp2z]+CPC @asy _/[rzԫ B3Œ_^-BzURqaNWoq0~mGڦ" ʥpOKeGwoLseirMۣ;>Yvn>RF8n%Q ^*0tS[Ĺȸ+ywva0*?"r 5z0.ځ!$3ϘK v=țP5x̒91ʐ*;Xͽ{dl3Qn7nl¼|TܱM2pߓ#їY_@D] z 8 `9pՂ3`p\&CWq-X$qON=A'=MI?;QNkAr\m̋ewq[חm`i@kq!?c%L溙ήzTN,b m ֽP^B)l4z&$($e\W?T}]FR'pMxl`[xw uuvC{/;HR=cp40BdHTω)$! FS>bO*\>+SX(Y93CCp?0XpnQ.- cZ@u hɞ\¹DDDe̮uQ78qmBy6G p=|9b;e_=,Bʳ.[Gv4fez+X6QA_ۗCYn)6er=6yXУmiȹ)FYeƎ(1fM4F¦r>ԆQ>of /Zze~Bu|G#0۸-OϚl8=m~ ,T${K~?[u~sDS Fg%au{dݥ[Qwg8V~*(.= 3V6;ק(_Ƒ~,O 8O܏9MsA񣣂<'扰fKb3ZTNҗ!ad胥_(a+A!4t Jf/%8ʖIz,vht 3q뒐x|5C6] *Z)`;)'=]k)46% O aصƱ%$gK.eD9)' j2\BŻX&uh ,$詋e7L@O %*1W?ҁaO/U_!.d‘R&UNPw]'Ź+ݏeqtڑˮn@ZOZu-Ԇ>[3 LHUˆ}|bN9-0m{ r}xrn8*$!WOXMTN^ڧGFJ5jKŲݣ;Cl PKȞִcU eXSGR@A߭?ubeն, CAe-^zH/V<6DHqr68Qd۟rOpҒC4Y`ګ|<ӛto!m U=4Z"XtVor45U"/'Սy[M~ <>Ktzi2KX͉]@v(,dm&Sl˄qQ2Ї*Cbp+Ȳ}FUlq?D,v prT>g-|F>vxeTM* ı锋c| KWSKI}EX)if ZUNVDƿ_eϟkaW[q\;YDbl)/2[۽" #iůD;X1A&)Z0$TV_t9h, l'< ۬:- R(HQx8]&ќ-}7P@U+9 ŕUOEfS:NkMD$h8BA$kW$r#I(f* T8kw+M_"/W)m 4h#Gs\*~{~HrML9{=ΦAN.t(ȹQa&芏}Ԓvrx䎨L[#%8a_z^`3$m\I͈\F) #ͯ~N0xm\dl~ ;f&>Znh-F!\ 2 zc SP0{ NA!XG4LcLmɉt==8-ۨuu(64@a:J1&Zf2:t<۳ $W%@anXNT.կd:u+Pflˋo:pM2wS<Ӯ (⻥b]jN;jbGc$yK.$BE|,BPn\ޔsؤݫ+vժQuW׬s!^.!FaqW`%eBi[ZT/v&u9-@gb-(E}e6nAD&êy A~nVKgTYa?_hIDI/ѲKikA,R6!Ijr5- Xc/{8,ؒ3tG/[-dLߚ kޛwReAUv[B:Ζo魲K[C[L%a?_}5DQ];d1վ/z|8ف[' ;q7h!h*H ?pPĖ~7_ź}].r6+ j3=_tv)GVѝ:˥V*Xb`'+mɖ I& B̉m' wu$ Me:6S{50V3ĺկv*,Főȃ-В:t EIKY,*ZհvL"[?Nw^Qx輢 uE`!M[3;:9Kh`‰.T͍MY\g^'Eccs (@H&{Wh`|2;Ԩb%CRnPc]|ce3*øG62s_2Q'Kr];௖T$mk$d;W|LӀ/I3i@ݨX:J( @[547diw+4x3媘"&eU}}"G jc<^{2BT VMh9 U=U%ڌP^x3AHߟZ |+.lW SP դ*~0,^Q| 7|G_RVDݟn?ᢟ~Z_0;S5R,E5Ioű=₼@Bۂ>H&>:Q"q[d Ο=}=Y&ߛ.t6˗NalEY՗+nQ٬/AmdE&5 ULmn X^b3EńpژJcC-$(BZ&Ǟ{1NU"ܰ&}%U&+`e%wQ&d7,,R;)+|C0 T6.Ag._%Rss~VMzxBլB2ll| t-CD'ϙJCv ןݧ0T$i_p}$J(9-3#Vu-)B]+PulP>eܟ(GKj%r8ōˇ½ 8Z${pPxAjN*; %ټ wnf-V.[%IwW=t3젹M eF><<Ȗ@l:x$Yg#6D6o 6JU}u: PGixikC[bҫU"?9TuPL m>2BX~-' UJ1JJ\1WWgQc?_=e 1KѼ ~: Rf5qromi=,Y%L QPyRa  l!jAčX5[sGw`=jqt+=aDT3fD`Ux鐗-#~QX2? .J}:#:ҷO31x1H6"l~߅iMD2L[[Z§=%I7zhlV:úU+Y?zh`'{=Zs~|t™k|hbp5Ha73n ?(D-?Kjt]S Qjj9?E@ oܿ2 L~hc5;%*;| TÏr$7HTV~:!|>6Ƹ@DK\+$)-AҰd,,.;QrP޸? twM؂c W{:NorXi3}jQ}vEH-_jgۓ<ΔTݰı'obkFxYI\id$l0յo^f6Hb+!w/v ekLd5iC%@nIj5ºi(@@2ES2Bđ`k^9O7EuM=Awz%Qo-%Ă6to8Ոz*$J[V=M}9 &4!ɳe*uyAՉ qX:߬ptg%uv2cE'4{Y4wJ'NC.F'-nDު'SζI ؋K0LE)73C FN~` uh4#mY ĕg-Lߺŭl//e(0ӤZp\gERʡqglxiq艋&dhͱ{4mN85x8P#sN+NciOw.#~ak3nWßiA^&aH]p=@ڎp&|ހvKMkmhjGM[/g|`CC/K.&#~Xu8eZ jqV=̞+pͲ1V~yf\4XhS^fH yXwX[Džh/3m<@$._kI!՗+I x$m wKʯ8]J #IeC*itP`m$ah Vu lp+q[H3om=~t BCJ_WDL*uOwJJ#c:|Nk uзLiN;Z~L+Z6|jKyxi.U!t;ቹ`|WのRLC4*zgIS/0'1[[LzZT|Aajʢ]4s>`)VρݎfrHM0NI;Q^5f䔞gŝC%GI*[m#1"md8qU~&{g؍)[?OU9L'=C8XA[tqD@4bHr8U$a݋s=QFYMm^%ZhS aZ dvwIZ]r*J t@+ pÙ*)'z[9PDMdvXĕv[ykh Gp ZQ5[¼Vpq:R=jrgt;pz|i܌ "ś2|DΡSRT`˞(25?wV  ,Iu f'3'\wL V~y >kR{0|R(W~eXar\ Pk< O0GEջ ˖,payB^,6IBq{%j{*۽ 1$L}6qa(IIȣsS<e*7-#LQ  x MΝ8o$nQgΖ;7r#^DFs͇(irYUgJ BP<h3E)i3Վ[[8P9K_oY,7ZKt!TCXVck+4ץ Cs`.$JU?@7eWl!psR e9XȲU>^(]gqy/A$o~A1*=ysRp`L$U[J&/y5_p?%% ""Y^ (nl;7]%mbt,HWLe=C))͘$>*"s(٢ﳃTs t@1=θpEQMX'-!#N{]KāIذ+/6+Jy˿l?&Ek'kQpuOv{?n=1wZ-] T4gyNwRG^S*k%YdACM8z(_Qt)o]#3>nLm5T-| iMYܡ%L(Y5sY,Pc.a*BP+Y,t^~C|׏uh(k3|&}pSq (D&1p6_Z.ve.5=Wԅ U `;%Y$O y68зg5[3n7bBwOY=NH%Y=vpXז :8'kgt9?n `g{EN8W(h %q)/&l3'%(dmNULuT16#]W0]e\>Ҟ N20E FR-!TH\z#]ռAw֜`';oas[htC`Fe(3+4?Qϭ?"/E}ww1t&!3]*2}\=$K@┤Qb pکܼk"ScU<[cO_hJx%5 2?ǸCn& ro ];ot0fy=wB ̞-ӟs`TV|-T Z?+G=4LjұXȵ@C otޭ)PsBҼ.}U1%PE.#a&NFm֥8%l] ndX  (ZgMNLi w#%e`7Cze<6a-AUF}S'(z|߄sPf^ (!bT'"+\ ʾqQ[vE1Ug _{b}'z^p԰,U,}ӚDE7  wyzdL]<A<%OxK Ʋ-d4Qro .}eVn7.DDQ1^* :bjv+;250}<'us"kG H2 n8z?oySKo07S0KpŔVuLxtWK- RP"z Dȝlj8\gGq˽i;罇@KvVdS"[OI~w>1M%W^H,kpf'b{΃ =XT=9,/) ,,yU Y(D ߆;z3ޑǾC- +}J 45" 9/Z*iW%9}|xe0fϙ-@O켋q1ڎ4 /gܘ9 yKݠĸ=16%{<w9\ g1ˉMwEUL7/A[C} @TMTF?zr]ݷh <)ZŒ8#ФD,rfnQR4|tGԿ{0™jT)r:}HAŻ4̳umLge1Eo'?f$l_1<;%~Bh9'h0<\q|b[ X˯І7 У:cR[T0*ojj=yLrOjϦ 6w/ 6D}@AܜkL0 ?i~/z'ڸkn̥WQjf†nguH5/4K#-vm 헒AXV>`/37h!)n&͓GG]ˑkUP|4>C/1f! uii1Ň~X{H6"w#<'?4< `d{g|G S:Kd ƾR):)1G$|R}HLa`W(u# 6|d„F\y 2tۗ &5oD7exAGSǘ=L'2`jXl}ͱx#XKYJL҈bɞ|Lq@~P>#S(uA !'YKH,BSD$ւ:ʒkBZx {1vR~iM;:7倁'aSe^C ZJ* : OSo/E>o޹jӶ$2rj+}ab H?9AܥZ9X(ؗpDtN!R4@!pr7s5c,|V9(M a,|jZmJZ')&[ lm`d][9/Ć˨Zhb Jf8 z:0|^ݺ_.o]FK*fÚZlv F<!|){.:$jb&y@hA{X/n265hVg74H_OoxuyLidNoɞ6 ¥Nn)lW(#y@TIpCE |/)_c  N(H8$[)3n0"p$2{dORumja[3z t1a9M>K Ngu8'bw[#oܵRAA +Nf? :y;a n--B˻[>3~x] Hs8CF [ =ITU€ޕ7h)gڕz(tS벜K%:;Z=#bȃ,K'!]]-O$-YpFe[MX܂pQ$h;ʶժR3os8PxK;x. ^$;z3C`H&>聐r}y~䜡uBSuuD1kxP^&pj]qOI]>PrcHX ]͐(ajz\D+8Z @S8˦sS.~| \b4Z&"{R]P?ߑXr,bzx.Tɏs,оO6"6;i$$ S^"US [g\ŠS/8fe/s0"7ڤt슣A~&̡U3%oc1:sE ٓl$35 (8y BW_>(f[-)8ős֣bG{vd!c+9`yv|}_/k,hi[(WEԐ(, KOuIvѽtIPv|Tz'8B'TS(|ז@kOw|<iwΘh$KRJwvE^Ro)/q ;BW;Ўd* -R ЦCWѭ~g#iz*(Wm>Sapڥ4.YlVAkm#@.6A.rzy}  c6S*-JqԲ*MYm nSbp\^WXZ2׼ljoy wJbʮx(MnÏiF!Q G&R'D!P?8EOfiskE][rhd~IO\CKtl4h cB5%~ꁼhR.A*f{=*Vp{ {$b.tri30R3\VzژoN^\˳=.N}03;CD!ه b:NK)QENtc\'+z'`yXE]%l_>I𓃗OQMN(&+x1lNTX}/MFnOND|{L:yɓ|g]-;yE)>usc'孏& c<9̧bȝ(x&{8"rD^LHfp&;- "SacXwG҂|?={k?K*J,k)E+o_sH 8Dl uiJhk; !MbKƇ/&@ )(ػ:A6{ZoTnc>tt{Z^D$˝C=O;<"; j}م|O[Xkڲ|Vjr ӷ3ś\4 %XK~4kxBDK =)<Sdm "c,VK'{xs-,QB@L:{.q <8\V${+\cvs` IL0JkB?B/p#VQ0xRLXOb͊BwzWIƹ~Uj;e.ž*9ğ 9`y5Ϙ鏎 ZY&r<%S 8}&‘8ftIe5e{$ρUIZ SNxv'oOX6xᕥ@ |{Ƨ1Hټ.Jh@6 x*C^۾ŃnV[aAv5ظDseM($c&Elꡞe0:']]P\)~%v} o<=0+ڌ;2<^3H//#J*-jW##d-Vl=7I"0ق;VV%l.~ވ.ŜATA}nTǶHpٗZ+wk)E)ls9ɏ|ko~+mRAj,;eEK,$xNw(7L~T=b*1@LVyTM  E[ݞ&UDf-3udfM%h9CP~TZu?," ,C;>phEy5\1@!?T鎊_Ec/{xHVʐE! 7u7'S?v7փ8?) cj֑M9gt%wZs=n# a:}lTHj]m0rOtu{CPɗڻBo1+t[dB*0U[`YArXWd0<+iOX)ڶU^s( xx5*;b|y(:n{.]m{R) Ǣ>|'j}~*V\UՀ8p9ZYI9+|mWZ,bv(:̜&U'|7MfXlNo)j,+BE|h>87 rヒM]%Áj)1ZC]!*!-r;َQ6Tei}!~t&yoPfm} Kmtqber 9d.d d W/+L 4d"6!uOءis9$/yC| yqp0g[+5MwSZ[=yV 36ˊ䱇Jh3bk9Ns:"D՝Bz@38u#*v͉8bTmk[@c&7k$ o/BnFK|z˵NT4@~Z]>y]>GbM._q@Yw] .6ĞT՟z}q(_Rz?%C@!m5&RXO gʑق#rzl9h"Z3tbCZ l u)O:>~`W5)d : 1^)IQL3_qV7ְԤW=p*]%[_y=|h+U÷Dg[v6괦7)b (.C ƥ3=) sMf?)/([$IeY^Tf3Ѽɻ uv$^y~0U5GRB'gV =%(_|r%}az+uQHcOH~Sbk z; CyIC2 8VkF&NX0r}U'rW2m-UMq 3T0gsGK$αm'bAN5~$YPFn#R惒ck/Q?;2t9ȶQ >_U v 1(TtH~(=DO4>7r͌N?iA6W> 1+Z<,[U_X&~唆RNHRRA4bتOhr-߷jjh.k2Ԇ`J4&$qzo E0ȡ̪J=4Xso0*0]1^&5hTMѶJ 0l7{حhrd} R[L; TޛQ~(2/&҅Tg=%'HBkzp_@)X $6TMlaεA`!nsϫ*XkcE'7o5BڼP.2.B?4l8Aw=O{V:KLԛ\rn65>o.fTQ I,s eד: uZb #!d&6y!l}͐aWu֥\La6J~Ҩr@s_c$%8X"0^N)zxl iP0ȃc7U1ڏ0(JI9T4a6w|ln',+l ެ`_b!Y&t}׻XO ޜ皗{fQ-ղ#˜:x|z{.G8{zN/|`g42xJ 98alvB/:EX]Ԟ\b5^3:E䋰HyQ ǽP Ɓ@sT}AsS T$TG@8M` r.oXH]E ˚7X5\tBGxtŠ/T2E% X^e`~!(ЮLxp_k6-xrGY=;3W݉!^w>#PcA'kV;Kv{Y5MAYc_F `h,\|ܣ_<}X5DoO 5[LG2l6$ 05KJq"C[#$9erI YD͸gx+V]SE, _! z;#鑆_Grܟik{ASږImhcjR("_e{ָj8JĢtay>9S=5!xWmЊ%Hx-P#|`\yil֧yZO0JA76pk :B!_xT MOqX+Ši]g%Dr׵iQ5ȉ'@5j.qTAtRЫ|GO;x߯XAc8VD'˅:8ӘI?| ,CROZ+C5%l.q1Gt00lQNzߧ.J, 0'՛yۼ=*DA-S*3'Ÿʣ*pL7 \[؞tpCϫD!|[e%~up՘Mt~|̩?|u|pL0?)Y͝3R!ZAHZ6Df agtuz3 Y .Jي+n;4/,nPWyKER g꼎W,͌Y7jA&VUa#Y#$ }-kxY7d<1d̀NM;򟒐 [vnGģ#>U@o7pQ+?J46;{e Hy^5h}Ldx3BdeBax.v(0@v2R  /i2s/.,f@v< -"F| lL_?K'DFpO[n=a8ù#‹: WT2+_cNjU% S照Z1|u&m=S4a{W1~\gɊ`*刨UkT~Qdm!>( ,r'l DnJD[T&Dyu^ 1w XLp`H @o.U-sؐ Y+yd3ruJا~MhgyÛ(R]8Ckp#h%dϱUJES?~xNkm's]m6ѡ t15Rn&;W؂w;Rx4~fԗ|R67Nٿp7XS"YQ pٚO|0|KX|'pG9|og Ğ`m o(*`$Hwtނu^Rw?Lj#QR`^lfB= ˦1U""T _xMɌm%Pg;t&^j"Qʳ8 LjHK+#22`xzIS6}Hr\goJvʎX08}AƌfP*i"%Ib!:^*1:F *[n 'd$yҼ5 jsZ sif/C1r:|/x15N;҇7f8c󴒥GA{'s^]b7Z6@o=*BfK$oaȬ-kudV34 RQx\/lmJgXDžZ2-& vrM@=?@pHa6wX$o=<1^s.1_$g> Z,̃Fcf9g $VJ%Bۥm$/t4g@)D蠬-$L/ewhV)Nyj_BqI8,vrƕJhjGa®/ʱPzȑ|vs$:z |4=&?ոuVw:<˨8,ޔ5*W(kg2bk{@*@\v4Bn;^=gR3q>mZ[.[!7-)Vy3}7$7믻,e1[h0`qũJ8{K=^⨣TY0[ PSŹ(Gk$E3KC>O>z)~hW28bc7j~z^^εxƺsQ&1/6흰B=8C2(os-UejJwO,M4XDK#bDIe@0LE _bN3aSBvREʴ57.%g )NH&03q~}R)<`aVz!.BRu8F3 %;n|:6eBLMkqy#bdRJ\[m(ENޣ q-EbV<[jt"6Y Amiap#yv"3K`/si%(ӓ]g7e{g]@5n .xI þ&G}hFL` wlnNS Fjq+ErDȅ4o .7t٧n+Qvt-^`rk.x.x끹<)@pJdL+]ԸʛgCW?hf׀vn|Efjz2f^6ӔJ>Fy%& wcyStxFjGhYRy5BmZͩ, ~C[b\Pz}Wz&9E=`ˉqZqVgLMqƟQ* e~ U|[R,D"5;j|ecO2V!*H6[[u#W.<<_%FkˬZT 8-S/LZ:St]Qz cNt:7@NĹeRX'f&gsK$qP gq18-`_5!6Y 47xB\, (LRSpL0W+(*|t ss<|*g3]BWQfHFERUjh $Rw]n4$B:bL-sg=љ{ތy7Nr}|H=zWAbs#sS(Ͼ*}ttkEirvQ0`ޏC,2VN".{gS-bx;l*R1:1&p!YwƒD>1yuL4]|ÒȾd%y Q+H:6FO8Q26I?FڑWxSo=*pf*|D|e@A9@}?Б1f )*AŢ~B%ϼ KϽ/b=dN2*ĺyF3:O*6*l W9̻tܗWeƨ.&kiҜz`S6 d;;#J"Byz$tpQol#ccקM]_`#>ǥf,hD`,[t?3Bt3^:87Ͽ/Bȶ`%E=cgGES@8 ߍ&uap!#q~PҝG wh FR#o=τ@CQ뎨 Wr;j]Af D |3\˂ͥ-g@s[Usژbqb(ZR*)p`S{ e7J&e |¹*ڲӰ>Afϒa'$"4*GQ՗`慘zb0(̥Eq4AHV ,3] oKoSp6:y"K wQXq&8A+nI 2WQZkM+Z 5tK *;(kl)[Yع7.|>7$ (Xb0]Ѫ- ~SA|Xj–YVo[5U!z%̉P-ӟ*,q]JS 4mnP('747_d鐋Zˠgl{b5}/~* +Mq fA:[䅮cl=N-5 D)9Jbj{oj0Ab`ޖ7z?羅"ч1|"o N f)&D^dqz[HIKIu:әFc&5S V;4 7&JRnR0>ݵߏ`z E1) dRr[?ENf\w}x`+_QD],m͍`m[%_u=郫 gi}׮j0/`wAN<״ˉ8Ӣ#ƌ?+ete2[t~0sp r?W>uho>s<f ?Np.3#񌄍r̎gJg70C$/*DRʖ.r?NYR1߂!9 5< C&߫M|tERm_9,bK#-ơMcI@)@I]'6~J5Mγf^c(} tAfxtI$I*a@#%&Y$-:ՍSёSZkY( miTt3]+=E,L}) lԦJSaCL1n -DdGV! Ie؏ YC.SO_鑁`] &xU6b$6hUF|oqGNOt"F7X^s۞8.H@ 9-rj}wz@X PeY_ryqz-LĿ_b'|Aڥ Ju f[ٓ~{L'qRE\ucuW'N?@FST4vWoOVFgn?Fi3 "ET > pzмZJfU4h3}HLO+ CQ˵V1*{ ߜOƼQɆ(4ԯȎw7iP>:fb4 HU#)܏x^ 1iǂ{L[@ڣkj%vpOH4{(ێᔆۨ)v'j=,$j:NX!W2t8P8b2-]xՄ{xO>*fA.NH: n6Q!&ڋ:|%i-z׺\P/j^ġDL$Lfs6?8Hzv0Bu=Q ؔ8;!V#jT Fh'{~<-,]bF&$9O!) A}DH, +Ɵې14;969b;% rr]Y[k6O~[^ԾN<_TKbҋNb(M$5L~`36|azML=Zk GK'!y;Z#kCMoB°ĝUk&asb29w@=My=ίG$ЇڝؗȮb!A5 -$Dˁqa?~DHVa:K"S/Ybn x@Ш{%ºZ#ZaV$2˷)-A}"ۭiꛦXX+E!PDܐYC&&wC{݆JU@n'[@g7jV͊!f0ˏ ubO.D &<03ebnvn'jƹZ)}ηzvvb( wso2Ij;N {XKnQl(<;EqӸwH$=o2[6KCAt 'B#k*ɤ`ݍAIyIp QsID n{v媗r$s]sll W^pFmfj; \ovzA(D?j˦*fnw6uuj!zh.*`pHrF(^f6*q֜HM)sэv}0wv1|#+v@ys}6"%gYTd6Vze0V"s6ҾӛX #}- e3*0ыm'@0'ƴn<$4W"ac;8na|SEӎzL҂fPw[.S=+ƻwnDe <`^XK:fPh[M8IbUi#էmBN՟_1чGPuD4D Sxs 4I戥w:A]hA:ymnNl_Pٱ34DőP 6Q].-WVI&~7 b`v &;x&^I$k*72rČNfucu&%IY`Ƚ鲑nr15\oMLBbI2^IpPa7M&6~3320=jۦX)9qE$E/K^"sq?{H\US(zOisE9@&HN aq E@OeN )Yz͂![#=.ZZy4'k1O.)KQ1 10?ۙ:wvuQ)2%6qd.DVܳWz^ં)Oȃu|U#c->{ @y$z`,쎢.{:MT 5ws7n`iUx\,qDX(U#҃Sՠi,rs &0emrijH N~\q_fMkZ*I@&,$)Vtrwy=eZ^w!-A[QrTd>^PY(5@GjpRF!e֪7׍nLŬE WY_ob⠧N{t{x E&EglҟG33E^TsM]qscTmwiJ8?IK S Pm'9,o=CWw(,@!nzkȺ('%8$: S&}oFaLB%KA Sk6!ҽkBKmL}8~H8U}wdYQdlRyg `|6DR Wu$!IWG&~Oε5/+- ?QEĉHu&2R 1SpQkh/-l:?}VΔ|'yUorT4L[5nEw-fj*7E'NpAG9y~59"l ͇%~Cs㺆s#;8G|8xއIw#g}鋚4%G@JG2^pbut-1r/c Ԧ}أT-v!]i<1˝\VI蚜W@`!pC)c> gDW]L( :0>C ^FK*I Q5̤t%˜~kLɷ̾?ig t4O){WH\(AkvC=ѫӉ/{_ {V%VNlWH,h6X{s|8 wZj7Pm]oWhnWZAkKls2n5/7p߷}+WPn򐕶[X"^ʡ6 Le$ؼi3(HDRmOYu*vˤ:/ Bd>y] S a scE uJ M7Kml`]9\rZ$K6UnaW#K .kFnQOv{2.qԪ76o )M,(ex1::%f;Be 5~ojߘs:E0X=I>xF# [Si骈T$je AT? }O!:eNsZ EJgA$7KVnVYOGR%1NdqzMC&o&|er OՎћ bF9s ͛dQhXl3:/Y SkĎ0B4frB>>j9VBaG M v$v0[<"W$*"ۉ 7eo0uG0-ޅ4,_.P6[yxcpev%L#zߋBj` e_z( #؟0@'Q 3J spdt_5#CX)uA7:wЏ/]Wx35ꤐcQ:"!9X=(M|B/aZ>4NI>o2͒r<2 VZ Ю;VJ8^wrҥU6Yz @wo+3p\}?-VoL}C}iBfRVӘ/Ru |JŢi5g=ynB*2@X5F vpb^w$ٞalZTa%az '?8.AAF܇yw.L|}4箃WXʿ"q1i~q8KuHFqNn X̏E샂3ƷBF)R⬃a ߐb`b_H/~3¬O22ރ9PI=?-`O0e,ŤI=KGbecЊ wԊE@KSbc eHgGn8I7?-|[>1W~-b%ev{Y택x#vY߾I9֠/[IP.14W$i3eA\"X µ 60g[ȆdiWHvam{7m'p RhPFt(UK^3i%;,;۝s{4)~8šSoX --|l ; ݤ#HՕpg= EjR=xk1 A)#SVJZ9̙|lRLju^ u'mwmt觗Cyr ݗ " `C^Тq! \W >If0!:df\ȏI2՚u3.tbNd!=ߺ)e5/]{ #3 ̈Dʉ5'l#x4ߔʠeMźLQ3تjF5;7P ycT8"۰+du-Yw&Bwg+ʲ51vԐ`f6;?Vu,TW~3m:@K{],}wbܚkDh<++Q4rdդ6jo?y?fVX砑ac ~V~vΈ!MEo 'E+;IA'󁈅FM.FGU lo[}ձʐ2VgCuǴ{D{[pzqd8q6,T^6UltoϛR`2 4si~u7ryVB*Ͼ(@ɋf⬍0Pi2dj]*@ux,Jwhf*q@l\sh45ŕv4wz+ !)?>wT±pqh/sX9eu kLt[J}hh4/TBˆ-)f#^t%bįXj&asYnd⅊6NAd4<[uܭDy%149Áﬦoz ȏ=Aehj-N m*;'Ogݷ钷Py+IY#RDМL M^ ? >\UvN qy50xl,ZR-K[0o2\{2[&FoAxx6\lP6j;F[Q_ j SQ0, Â$9=Z$ 3G 58TieN< ۰st'o'O-O}5u@ʋex2A7ݽ9(6{ƳN-\lWXJL<> 47[^DV4ǥ,$ƫ]\1%oshj%,fWv:>2g*HXY AT(!wl0׿1eC2G2yL7I8sJG hEN@D14619m7O~? Z,{XPluV쎘laJ.cN B=Qyk#tHM&w薊)y}MЁn1glv{rP0}UƌmM}|G q!x9^|ka_^e8"e`cZS'+K "ooGf俣ؽ?3}~5X< 8ҽA(p٭l[oU|@>CeO(YaͮfٺL3Ǹ5/4(3>&cB$OvYIo")֛ʠef-LƜ񂺢Lt%M&!>O5"!1kǭQrx[Qq&%ZpL[X 3 G;Q5,+_Χ˚g: G?:B:ӏj$~$c#m%xc}J'e/Rk V8n˝cb ntaX@ V^nG ﰲ[Y )ğ+,`TJ:' $R0Hw3 c9G0_1ieRoyJ㶄qiy`j61 =xek;|fS)%hߧޮxd'S43 3͠uM>$(:MYM6ˮ G5Ӏ) @w^jrW.-]nwS:md,[Yf =턦ی~X5u^= B!9R&:~Fzv`.DDl "ʞ L}3;;V錺g^Qc_ڇW~ OzHKuU v^u'Qb8Ӎ/XqYLpT)m^]"% qT'Jvtv{MGĶJZ5z)\S.aWzÍIKoh-?mтNi<FnG1l_ 54IO낒D'OŽMxΰaF@ƩbP?^6L FJi-EL"ǀ`B8D8{cDw~l:F&!˥8\LK*q8\8X#i/BZ1zE4e*a늉k ݸ#J"v+acLLXwϖD[,ŴރuE'Ok$pW3f+/;!ڰXOصI3 9S6D<[@I`=&Ҩv)z)2cjs 󻊻GUٴ(fAh$_`R5t:[tct HTz>^y,Q9¦ 6it$1x lւ8oĻ\%bZ(N|I6!,A|rÓ=Y϶LVol ߻@yi w^wFd^Eܞ7ƻ^!#X 8+?(7YuH#9H|Z'WTh z%v?z.s+#@1z?eʮp4eɷʮoԹ2iH*۝<%"ztjHCcg:q|%'hfQ-%w"NZ7u2T?ٞeT O&%Fqޠv37GK˹mJ<;I ?7'M؊lvKँT`DžCډ@)Ix)L$JtaJG8 6j8+(TqP^(l|.Rds5&\~cyE>ޢ6m0 &ˉJ-! I\Pe9pi*ӷ-?I~Ɲ렁 :(SX уblntkmc;"WM# a('(vq'CNEiҁXȎ(.dͦ^>b_b/ /0HfcWzGb(HYԌ{Bqه?!`G^X^t&F tNfZw}Z6|aeXM}~-nU^`CCE~SPlj&ȓk^2 fHöDr/j"LaҢ0?/{73$}klJ0b-Z w m#L{(^` P,6MvGQ>318It?=8 A9 h7|AtAV1?9W_4n7%I$N%W1XP ۹ XKE^DBkzPl6>I\u@,9qʃ߁[LX6]{6&kQy!{ ?ԕy8sľx]Mm V#*~vRJMoU R1:0I>K€qgR\O0tз$*nrWH[zn $պ:2RYBfkcH}Y2 zJkkj܃L}^8xE2]t r"UTaƯۃ.t՛+d$8!LL]#BH`R BFwmʉ-5Ds5%U>?~( |ֿG'3+@Q,1,nr ;-%-;9蝔&d'kV/>Xi/xF wHzwe, XFQ(":Ο U.Y@7h:K=L9Vrt=aB>ؔ2uɻ5 }Q&e2%+oY Vx 2&3;B}նQÉ1GejAv㿐uS#cQ pIq~1:p Z8oB;T> Їod0QF*&S1[eE<{`6w]-* eN4l8#R'aWDcBhr} 9G@/܆mZ\4*Zj#AdF CjIy !z] t!3K$ 4,ff7Q,%OEFu~3 Y`pC0 e5B&0mPm"Mvo8Cx KF39̥vV`E6@ȋAl Yn2p*HJE.*U|< $Cr x}x滜~+RPn /SJk1ƨ MJсNyqVr܋vOSI:հ~} w0V}fL^;Gy@Kq/]wyfW)9FE]8 ɎӎYUbciGU@oFލ|qRhY;bpVmAEM͟ʾ5}։!kTO*8QOO;6fQYxN`;}Tϳob˫>*vOMuz `1@RRƑMˏsZD'*27l udcONx-X.D ` j4B!gLE8X+$VgZei  2eF+3I8m,3-OJB(V.oߝ\B >!)< 6 0JEbPaOTYL{ WZC7179/rܽw5rVogplT8XHڍc|2spESffv6#{ư=?Mk*E!;ļ_sNHN T_ 7H QqLraܿ5ejxɷHN -Ln gxt8 z>K9أ8̼OM<ᘝY⸰3&d~ |Kɘ渳2@T݅^i|at4Sny@LoD&[P@.yv4Lv6|υ=#q'Z\b8>P;[gHr y23 lᒿ7.ڄԩ!]UHS4z_~~H Y8ڭTʭI&0f =4שw  E{ x*ۙX}3Vw^N.Y.lb̨$BAI:-~pAL`iw')% 6JܿPO!(tHM/G9lΉZ w1έ63 o/2uȹ) .rHg].gaU;(Dh4Hǚ'aV9g2ɔ=9eQCLjipH7((bud,S|onX",mQ9=.x1S[N=_0j:sj}Nv2)iLDJXM:%Kφ7"\KbٱIb'Of4&6Q\x[A|Avf;ո a^L)^46ɿs$,Zi`, ;dXDt  l/B+m?ؕ:`+[ː5ò'oi 7#xЀ ryaL#)چ.[E1'bXe5`\\űRr~b|NB pӉ|9>Īx}+P[h~uYZ i[Aos4_sGT]Ф0  W)0E.-^v6[Oe]\ƨ5#_n`-U9JQī}DN=V17No\wbpy2LƥGi'FE~ resÉC~:}e-}Bؖʂh.oNhzAxwd@lvJ@r^ph_ҼCgJ]GD.Mk>0)yJM$^ )}#~ %t6}ǁe!ȲG;F3Ciܯ,p 2?2ft"1t"Km(z߿k3J@@^9G0g|C c <+ +#͆gd?Y_"XVx )8F᫲B cT&IOJ&!4f 닄P8,_D=P@$+ۂw-Dkg>+xh\}9 %M}2/m_h0mJ*jö%] (ó)@Y2L$ ~GZ3!,: ["۩|@@2W^'mp՟4S=?#\Y");9a,f1>zMIMܰt3)ɣj& Qw\"G `t6üAs!2YEq+WVW18_.]'0;02_G3 ۑSم=wm7f$ }RlHqO͡phI.)IѝsrPfs|NQ?Kɋn}qyGp|`!AhhD!չ|<[}4,A=Aj"Dc_\a][?[ X5ǯi\~UگO1­_q ^Ԇ]t k+=0{$% 3F\ЩK/OhWq䳹:ҷ}RS\*Ib! DX@B (ʙ,40J1/͗zUOh&,ƄlOzM[9P彯~pic+.zEQ6HEr{)K$s#[wUhCv"60-ADCv Pq!W-CMb(1&L2|B{PX\)j hapu:RUxv.5FhB%q vAV@%E *'=^ IΆS!$8DOU;2I_N]Rd6|]q*y[!bUӸ7dvSYc/Ij,Ժ*CG.lgo. Ekz>mP7Q%"=~C^s!d>r(r6>GcauMY?)Sug΢y.;_3L[:=QmW$8sU%׆#!5-XkH&C4^* V@r&~^ă F(--Dh2 ֏؋FN a͸Cʡ ]n hYބ(kzQE@4L&~dZvەhL1Ɯl\QHʳ4L[o?ñq#Y02 Zo$$cb8(fC/ ȝЌƺtxAu8}gxB0[D4/xyrmA S4`_|M0@A ='a~ϒSa$$Ͱ4Fο ؗ?,W=?M;0(N8RN5 \80]X ݪ IFggh˙*CCϰoa{jW?#|h,U !nAfhlĞk#Z`Kf yب2滫c><6}oer5$WKb=ʨ d3z6U4RP#7c2gWhog< -ؠNKCU&j!hH~ʨ`Чŗ[f򈼵7R$p~˚ BxsR+g8P hO+.BE!Yb҈ϖK4+*=)ٮFՌ徹>%t\4617kwj!Gc*GasDClٯ8Ys& 278Rt Ep@\e. jOB*shCm+mֲb(dgp^T|V߹LUCxExAjfH/%N9R({ZC: =GE9q1`/$[ ׏U|ڑ@ŘiPNnNn״1`m6Ubm&+߈&85킵krJmFBVU^;69Q>BNץΦ8xjl?]5gb.+W] E9Bh;"Zեħ7e DZ.07@+h 9w7uHY /i[>MaL]졟ESb,"$,^T"N&/E$P9C9ơC8>,) up_A6ОbbԏuA8.+imgqʘPFH/ӌZ%$?]`Ap]٢j>z#'D]*b:}q&cRqy |Z΁B˓zƧJV"4Moe.Gp=mG0OWgl͟ D&ôZ L槰,0n )jhٗZIW.2zAͥM2ҩFX"2ߩȮ.`S؎Q0]%i"Tɼp5αD^ \퉼z ;#v&$jy]c{2] P<#k7WIʭW輰o ~09j|CY`Cr?~[gUq)t#S=I^ivhaw $HXT%,,9->jvY:J]HV/]Z/ilTkNbwkivPS"'0p ^\6Т_Τ*n$Z k76Bow2-2̕ c7eCc::\ H 7 wِvϒ1=J^O] T[ rߚ1zcyR }<~p?,O5]4nP;@y-lqƂW@S9T-,R$u81 P~ z+_O=K?3(-@I82V_f:^! Rv.z_rol= !{ﷺYv3 RIH)QZnL 1d9's'e1ඵ/jsblW"s5A@Ģ`8r;]U>dwU[ªk,[hR,&) ̠&gU^Хv9pй9d1{< BEB|=⌃?xB,(',wRҏB|Ye]ݮKkyHWX-([ȇAL+aLrx-8r0Ad%&a.q/!8)eQ3>3V>z̹5>CeBU~zRY55pTT06Q$T,?TUPVq3;(y % טuwg.˄첼t$8^5I|EPolw⁓N^]N~,@-a|C?vǑ/ ۸%3~yi+qDTYt4gE0 w+yG᷀b<:L]i4-@gЈĞQNm4 ٣{[u-w%PB=¨3=/No_ *o|G4~ߤD]3*!KBrm9{qlq _avFsc[şǰ0ۍWaIH-PmWh;P0SVhSMn[  ~sŽE]H#r=ua?A4(&*l]PIZѮ鹦LU2ӀS¤U?V#+k]=njc :cAkB'>:T.|Sns<["$y*YLM@S"oH`S\о=in*,~.u$d z2m]ށu;LKgycGsLQ}Oݐ4Pha)E]VКd!u"}͚*wbd G_ Њ=]?A/TNQ:fgIZ!7ӲndQrMH:KU*wjyQ83m3V1{z\eXƳ@v0XJ?۰JpKSҦu"lIZ ]zt9)<|p*\*Q"Ͽ]d-it~vNE#ȅy9e]pnaP>yD {tP\=|| n" gP JI<\3hbX'9m^" PJRUFq1雒8SBw@{] gWswtc{NOC,A%JB4?Lnno~{1fI;|hFV~.f58; c%*M+0莻Tu쌮޳ڛNRތV#T?y5ĺA '7GV'yTK/w[ٳw% )'vy|갸ۨ:Ȑvn0jU΅bdX!C[ʾתt|ł;&QӎLP+7E2`duI.\&gm'.ś[%5CҚ4dP4)JG. p,޴.]H޲qU TZa V`V- Gj@2Į2].O2'SH8r+䙘S ek;\= it.qG=qEJ:㹎Cp[^HT=SQYlZ1*w9qIU1U猡{(RH}$%t &ob ⣈̋%3 $&tS'шjQn+@FT:d~+v6?O-?^Y\-T܇7 \GyG!?;n y4G|kteБ< *X1`aw(S`Q홴g*8}~,ϕtiLR^s+H8?F5DfHSt/W%ԖZˌ| qtp`-ib= EˈQ[lO% u;uo`XPbFTCŠ$kǪEM4`VវM~=L$Fc3Nwz/Ùڕ ,J#D,)bxRvrpJ8yT:Wۆ5z*JT,g4yp|3Y8B K _؋+.|`^x^K_"kŽ\!#x^c|,lO-Di] +-B+9)J 5~VO=ۼ&gWP9'I;pHp!Avbd˜5䌥s7dbsB1v6ؙ̫̓rǶtRaop @O_NT2WAMeW|QYo紎dZ"[2Z{ۧjn5Q)WWh#xc9υ]X ޱ8zդFSr#1f{C`zia^ ﯓҝo؝84R<Y ;AX|[Qm08ʦMƚ  Zy=u"k"#P[dh~",L uVbe*Yq&BIETۓaDnArC+c/D? Fc ]2%5P?Xl S_%UXT7 Iڕ>\{]h'X_@ޭOkh^2hEi%gP櫟 ^AM&EUٴ=%EWQlF1ESn)JdSjR2ؽc].oeĜ$G0Bl[<ϓ:FZ׈``酋5~DmgA[3*#謍(Q-?4 nF ̊<5hBXy" gn4Φm†ᇶK2{6%8%]O }͝>dA;~t="&ݺAa :U3ZBd.fґ0` Jd yľ[ h]͞:d_AP[<7sQ+xO&V8*M~ o;OIqkZ7F MTE9qHMS4utk1{}L[y\ޗwra(軰1sXFgFþn9Tmίi5= h\6\^DLRzf ;a+Wq>ר&;UhvvN [ti/Y'S9 gL dL6";ߠ3zF<^I7E b89Ifs DXEfdd6^V5q7 4袩?/Mpk Lw*s;ߒuwvmnb)5Wq6s{xkkԋdpD/9SSCU vDgd%q˨=|uJ~w{&_'4Ѳg5`' \F%@YMlzժ83BKQrdqiL"s[_D*-t$Kt~1ȫ\@QRЋ (ҫmP2ׇvp s_V}K-h( o|}hBΜ.pe:vd(<h9y8nU3+`/oFq41ݔ}c*z=dͪޠT 1%S7|M?a{&%Vrpͷ -eLCCrֽY8c?.X\-_rV(WPF+^LHP[s B}GNٟȒ+.z`s=Cmnй[G t|w?OiBJ]Vχ=U&}hsfTOa&Y5#JԔGYANCt.(:] ֗l,al(,Bo1oOPhf7v?lZv+#ƈhiˡ|sya㈣Ob2 j#»(!E0aZ3T͛zM+--]q ^%S#2v]e~x]zR={) :W۴1]O\%v㒺fu#Юo XCnqOKX}i1*íƁ<"0i$?# TS!pGX+-OpqM# n˱-=C/7O;Nא>> B_\h>M1$-X>IOrASo'ʙ88&"xƚz~= b=`o//, XC&`5 ^?J5@ԈdgTb`βtt{Ur֕- `j Nfh9QOc7{iqd,i>|ݜ`f۽y}8üF͂+k1 VV)\!5B2Q1D4%yK&8޵ A?/q>9~xPꋈHLC&Z0N 1bQVʡ勶4Kx%.F`dJR+zm[M.V Wxٽ\2㧰v/|d 5"|">VZ#[˕M@i$HS-Du5 fQssDÃ!&f 4y)Bu26vnw!S̉ԤmbC>uKiqsE%Vٶ10閖:J'8{f*g`헪$7. xD0ӝ} U jX! S§K+c:u>ɸ=⠎O!%]dn<'`Vv_4K@Z&fH ,$$Dƛ40VԵHdf>p 0\y@MfuIDǡB8><4Ggn{갬Kd@Ob޺x[ )^V&2 15l4.dI)ᑎ %\v/1up9 >Q5Yj@\Q͆&5p6*ry>f}bGʠq"JS&|s٧BUL _ER"uA|EF}e'˹7rK5C@<3V#D qh[gv)NYѢ%-^qx*7ͧ"+eFef{<6hFqMv}ԠWM\q݈y'g2;Դ9\&v<2W7B&:c^b(hҘu1u_z3|C5< zTIi pκOCؼ]l054pe S"Iq uX`&h tCKd|OT0 SoˎK|H~qKmq7,5Ҡ:Y"d9<|+ڦ,<+et*dZ~,U@;/KWxKЩBDŘfi ܁^}ߗZf~5,G+B TK6Q7pf)f[*FLc^'HBka8/[6Ľ!dt:nA3KTnGed6"hIo\MĿ$d@rJ1+w䤼 HU6bh<XN"# 3cFQ@s-om >P}0ב{mIs! V 1q 1D#D}m%:iٙDg(x砕MOwDrI}/i!%,+Ė,~%9G̤`W&1vtk0 #FsV!e]jd92"PMJ>( ܈k6_^)wnDF/zu >.^>&٥"]r]-l!X!(\\gXrVg$@5r~m@)imy+>څF-+>pya9glWASC*ipkf~̊ Y(W`| ID(xe0Pik"s@xB~[-fX^t!~ܱ l;o-eL3*IQ2~w/!S'AM(5O=g@ UFsD|LXzRRAn#in 9pܘo\ 35|G 䗶Jf _%exЇHlEqBͼHx3)liİD`6! T QQ]U]4PkaCPi"rHfH]9m'H fy La1kddՉfp<)ת>?DNjV=WЏ|nEB1\] @tAXrR RCG'[0Pv#TkL&7Se\9CNI:AS}y%JVXR &X=[ "<#2`1/9nY<*YVB^R*W"KUٯO ,u&?WŰX6CjBt@+_ 3KZO c$x>_2%Cq?v-ݧ 5_Ti"݇Kfٺy:aj>D@wUXV֪8eO'>\:sb+I/0$ˉ@NJn1HwϬ0S̈́n[lCs} ~8nK%Wev3i! hK›XT~LJ2n[7ynr,&Qk'{6pƪۀIXSA5ב8ayYj{{Rպx8E{[~FAmK疝~RX!!N 9`pl잣f sy TC 9s/N WyeV Nm' lH-|DHb蛫!IZ +Lɛ䥞݆IW'k.۱jz!Q"&[xQ ӵ՛ ıͳ^gK#d| ,v9˰aP~-#{9,_ ŋԪu^uq[SeӭNmUYU#y3Z#_ʌv0>HE&ShқAͼfFkP%bx9 JE$hcnnx[\*CŪ.rP#(Hs6CGcXDmoX.Sӧ 3Ѡ Y yJȸn2V!:+S4N.T4oOMHpִ*䰅im!¾nlQ&':}#&&i68 _"l|2v"$Xod:=ؿZ0{D`3xkPJDiڃYb"hJ?1E }3Trb[OuA |,l%ڈu 80VPsiq9W5a8ST%?-P(N.˿'=k /VNI;]f]GȽb<9 38[ A).݋g6x0 mh~pOT{,Dn x,0o{ Оi`DmE QQZ1a)2K<N jJOqWV ٮiӄ[0U_MP3Zyh+! ` fhM6o?FTk*uӎ܆f|9 VH$W:lD*ܞn^35w JtmB ɓZv6k@f<0͸ITdIfx܋Ls^=IEXٗ\Ny.9B_o銤Wac "gYbΜU+vqоq?@߈"2ʡpCD\+.I^c4[>z{r}XlVhհnquRc˃;D)iJL\NFiC9^Bi g۵G~ ;J2ӂQGJQ*dJ۱Fc-^9oQJfD*eЩVEd @MoOW҉Hc^bQa2AHt\#~ @xᨗ]DOd n^p&g ǟb<)JrQkɽ򬭅+[ڎ`'gX}PSK$V텏uuݑ `:1 ^ubQQTMP?%}n bvke@Maxu„ZRZ3Ǡ" c4uײ /YSekp7*n.{2@'Td)rԐL'z2jJ*uc3M2.'%f[ y6% z6ו6+1!pf4}G|݇m+[nVAj@'/:oMXg>3ZWڢğ9]K䢙kgr46Gm?v@7) _4|;q$v{|_Թ^rDžGz#}Q4M1gؖ2[J~]VG=%NazAУj 5ɟ<>,ЎH Rh6&g1YۥDz$um͕5TGeg^]fKEoQM hm6l~Tάa*XcP'"

t&;eme㷗 6Y6:ZK*v6 Xp 7x1z9"йҾNU~,[YP QA }78ޖԃx%2>LӬd~V֑aC#M2a"?-!Gh< 3ӷ/b+qhdKcdjk?=yQ(6?0o]6M &!>R/N=HtpVw@I tTh9ٕQäZa %: p" EP_4) SKu6Ŕӧ9RhӶpT?W{pEbY Jomu#'V+SSZB L7L{7XXA},U!aGkhaO]qΟ)GRA)~2;bxAPc,D3Ɉלk4Z b٧EgOp6ԟ_FҠ{^-PybNGp/N3Mpe2ԓW@`c;y5zJbqG!ߤ'q *K ۂ>nq`PD3$ &fKCb <{XB_h}4TeXc@-`~`8f\A0ӌGv03|ʾHPZP RQU">!N2UzZIUEe(3cNnj,vi,J&2tO7jq@#:;)MI!m4zTnM>G41-ygs s"'Pi{Hh `*R TVJDX΢yf[ԭYھiË+i]e I.:-!ٱ]sNn4oLO{'W+Mo*kD%nmM$Wr o{N|>"%d%2;(PSFȤ Cx%;$/,;JpR]~Fncy"oYEm6I ØBJ}uc,#Q>^h9}'ER NJVǂK5WJ; >\u9 5B^*pݮ,RhTC+hﴏ2CkF˘u9QIYLQSdY,*`S="[HLԐO=x<3*\[5H]Q{!A( i^rlQ!=,R9zzB#)<.]*10$gVNdNɘ膠8l;M+.?ҟJ?V^pٯ^n:Ww V`30OfF^1{8:HB^cz|i1qSѨ 4jɨ IId?8aƇ1:x_΍ \'m%:'ÂIп7PYf+.=-`B)Xa}hLR{-lW5YʎjD"#r%PP'(s1zWEEW U1E*te'kWR4ǂU)FJQok HedE7MskPj9 ȉ7إ/xYgJGu0)Z~y+d8\yxHŹCr]xbK6ɻ[1*k;jL\$w4}:û .CY>۱ǥ{s Y >m-r{XAXbT^Y89#;{A՜OM@c%j5NddaGg%qabUUpNz"BglCjơ\Ev3J`n }~8ɧMjPFJ<~u!NcIY*5[]SO1 zߎN403#h(@ć{ wNj:bɄM^NqD,Cx '/RCoMܥx l=v\!;\%t|ԣvĥq{`E1u!{:q==)LS@C 8 5{Ds!W F@ARGSi s TsxbrW>{GSM/+Ec6mЩUdJ@rJ^4VJ u.~5qWL]LOusjyňeD0ZN^e|꒪[&) 9Vg=8:7Gsq>U3ך(P*+MDǕnAZ!fyLwk.tĸ`G^l-lTf߫K"ڵ[XTWz> yYqP-M=:,=)+h_Ȇ!̄H߰.x&1Pa}~ $ =P(4KK NhrjcmrWpWAXhG?:XgLZR]'2RiVp'(Dx&~{B;͚H> v$=WCna2w9GN|m%1UJNgk5{B7?@FD?WYz@ 1QuAtVJ EG55o5[lB)/2`(ƎRo.LS6iJώydր㉓Qō 3Cr#pjc.wgkCrrt9 6:2(!dcaOf Z~!xkTo9o/>J 5Q ];T /(~ʐTͩڏ×0WG]x?){.Hz |Sy J{/X_i>;XVF֥@8 +*qԎ7c)dtzKGy?q׮udpS>=.7dX.[̜;I`XA9J? Yu|R50=~d<2~+^ڧV?tdn0hN!L/_4QyDZs0TZv G>`"2/x@ͤ~KwhfW$A|>f(ˌ |xD9|-O2Co7rkQlќ2Ak:0R}ʇBl_G$4wL*ZM{}Gkr$"$7VQ#N9ҽ[o pa^ȜwBdV43rdZwʹsT(hs?Q3N52>:ñ:Rc5:1V`k|SPGާ~dh⥹ySE¹OFɛޖ/a2;yAGMy,SWSC`+89BJ?HzD@֐[/(dyZzMkH]E:ݼq!54 _} C8PAAKТUg-l^h) }A^kԞ@DcF}Rә3!hn d`@|&t;sIq^:zW9ΘЗX,*/a7qBA(Dz uqɋ~x(mq{2+8a2āDك7%s,+Z'%E<%n#r ක4:ړ2IZתBoā A}TO5M=#An 鸪,'tt5yk֯rQNXpLu ^%-aR(OWEV9km_>vqJ%:~bL,clZ#FJ*\O$E'_-1RޑB;'X}&9-ɰ jr Kk3=aٲpyv4~Ь[1-L4⠖SkQp;ـ= XIK= ؕL]B+B\S! I;TE}7Db[BbOH8:n>  ݧ*<.qd0Xv#nl6–1IUC)]QCne CKpsR2>O}Pi+_ -;hObSCYgi2(+- TZdPN)iYf {kp.q4Q,5)ޡI)BQ,w I 6 _ҋFiRCddKًlg%?aqBpV\j`z+;(B!@#}]Mj m+lO](H" 3Cl--4[`"ޠR~9~,MjT"AUU _A5cI Ypv~`*su_ӿe00)%?ThnwYus\C/ C;vc5 ;`#:mMI\qSHOKhDhc k9tK2 W,Bhd1B#E8]4g g]o` ex)BuX/cp @0AЭ?l3d}ZzNJT fѓ@Fۃh" R=al-~:~X$N'8~ْw8dUXm ]ɟ "ָOփyڔpqFLyWʨEv1xX'~ K݊syuo{M>ً8Ny]sWm_C/ؿc-ANxFѡpD#'IfbᤓmV$O[@53¼`fv9 aVYX(rS-T?mS*fOAEk JZwךOq),دu5/ujhu Fviף;6 .MqPX3 lxEh)H؋RY8Ep9t5i~xbk܄Y }y% $V;ƑWwV13MuݗJfpweԨ#}U1Es__I! ]VOB,K#_N>m:+JHUuݭEҝ PwwŃgd ZEPғv-? ,'v tlgDd4i13E'[U zPX!ޯG9(*_x 97zI[GD Rr-?^Ʌ_w[kb)?i/5vSTf++ {wx98~ 9>hՈ>U 񣪸{'!xQJuPzJnT:Iu?T/z >a\5IUqߺ@6f`-~@ R!zG;@ 켕eqϒg2b aM95z82tŶ^̭DZ+.)HRH&+dU[ϙ}P/"z@m!hݍ/xolW)M Xp{$i%  V Kx GOζ1;w`nGd0@3:?[FQ6L, LNZVRaV-!hc8?vm5w,l'a%s7bL QJD yB<"¾h0&Lלa(]uul#5򍤑z[h+P2WXOz9{%X9F/6U̫W` zݛ˜bmZy!5&C@?b2J6FW-*rw2an9fbp} ]{WvdyxwV1yG&xڕx Kqu:U2brY|Lv\@l֧⊕i`ª%}Mr#ɝO%Z;_wSur|HD#2S J8=NrBN*k,QxfKN}QG8?V!OxYe ,RVo'#OMD%ǹx)Ծ ;ѺIb \},eŊ/>[Rz|%`4ݙ1R8B*+%YF@]fRT@[/|M ;3R3yx}|ߝ C'cQ~żW璖^teĜ .)םzDuw,RWq w##Ig*O+/6b*©#Z*wj{: XSN=-]j ^LjlkBY>$fRobjk$IRwH 4VFq?೎qE¬mRM[I"çG]vPC5{uRWXn̪=7UɸG 陕vtiNA?\*qZ P {+bXsksT\Cڠ/-g|KvꪺbjGFJ /1 @U,$qE/FuM8s+=,ܹ$V>@Ii;zFs[s/"ydfCX'EF tA)#2a* = 'C2餽-Iu5tO@{kVIA5ϰ%J] hTBB}T[rSE>1ވI!ň}/M˽0lyĒK]R8u>L&q(|J !^Qe߾[ k!+Q?&Ԫԩ @Lw{%RDTF\Fa8- 0Pܽ6hfh43)>ح2}cve!5[Ue~Mh;X폊_O :Ls%*vh_> .#>dP??㳝UGu`<;m;P!%U$q <з/woSMQ@yԴ?FRH q&bW|E:|<~n|Y΁?&<^zb{iA2,lIa:C@vӯ<_mf>4{D9U} b(1r܇ 'Lƫ͙j4_RDlPz"^Vp\[Cu;sXIV˜3%S3YJ`Yd' dU0m3(4S[O pc+낐qԪ1Y <}}7Z~HX. R06U4|s5HA(Adǽy8Vg# tD>zZ'&TKWr9+bw  Y^t$T5gx ^n^ߺA;zZӐJ̧W(Ŗn*Tz޽B<ƒ3T,۽[>#wG-kq_6a9_梾Ϩ,)Eڧ?E;\VHZmOӁPt|.yֽ ,  XU&PUMtf;5|/x q%0z^bo+vJ,?Zxx:]"W?G8"iP̶jS\e OGuw5G?Jñ`dYր8ezL1+P;7/@iؐ+b"׍xnL moS[YfL6kϡ-eH;iCgB&lPӞ9n-@U_XRYݱgC90%I]aYGq~.Y=?ב! XI +6O:=)SИUsصwm]ʌn|9"OTA P\%L$3I'a8`CW+0Fv^TF.BlRg4B&贚#mvaeR/M<~u.山b$6'#Y .F%`\Ɔ"^܌%[Uؖ(\+Sa6qt(Ni\z,]WsF߿ EYO.?s'%`+~ڙ]H<)>0!D#vΌMlneH+Q'_rA$mg _e9yP@qJR'^umA"QP}7LJ/ l<[1Z݈V%5s R!x(ˣ)̭UMCΣz9 #ftH&D똃@ذ02`iZŬs6:){k}|E$&F &#4x)IԒ;3Y:W~1$v~ԲS\rh!MRikrWQ% hXVF :wBA}Ӹ`IЯY.\z1{#џهDp6ě]*v'PWćlXǹ^;'f;uDi.Aqz ܋ܡdrm%_~RTӠlxV݂ValԆ "X6?꟱ }9$״\1>6.g;wI{mݤĨޅ-W2enFC^1;5<_(wD w)H\kY~&u46( =my 빤x=Ǥ꼑Eg)m/@fP;ܣуzwRr5O7Ψ}\Q.Y#-wtN)86)߾5z=P~(إN7xaz-VcHBwNQ5u ^R"iyh̎8ml2{4ݛG n#*iU,Oz /12Z.AB4#sCGm hNr֏*lX!{x^+7:-Gi3[1ĭXJZA1zlP QPTL"$qg:D'iğ^z2VuĒe_Šcźx9f\=f"4<sى>4p-T[h |ދ7@TL/M9'1cH}n {@=y4M{!1 ,5zP;#85=6N=)cΗO!@)G{ ׮l{Ryg3 -Lt8Q?)y J]G'CС+krxh0X2A =v$r=nEؖU*dx5PSvE-$N(f^%٧oPPzI84KxQ ꏬfI 5:navrJ.? }|2vL@'lݣ*Of C ~W~IW3{lB!K.N߈#SBt9Rn?z@f98HŗZ<,90H/a]iM?*iHKmV"[voL]b- LI j9Ȁe\Ԣws, X-E4$э t|%>*(}ȡ0 +F.l5,4`-zGω@k`L4>FS!V;>lnZf̰^6]NMx9Ԯί[k4`n 1*ΛO"Ѽ,6\%$pV)@ֻҸS+oxdš>lPt\6*f%??'?cCHϠY>O$ܖ4&$YHd`Όy#I[HCص0jLV[u5Ҩ HV"<}鸠%HkquDi I"郙BL[f*5C[~W$Sc Tf>[DžwHGtb pSS&[$0M޼gT<.˒UX,])Wese1TZ]HP6d ځ5 dtz˛)H}Z]v1殺aNTF:7 Yt؎ KÚiAGn$=/־Ik6MoqJ &\^d&Xzi) 41J49Q^g+ $4Qvl-@h" P]\x nEI\ y$`)92AEs憡gP+wQh0]`HXi?=x:o&*o"dgl _K~ =׺;{}>'ӧzpA7&uNU :lCi4*Qd?jD 5X &)zaԢRɑ x}D$UVE/j+;.T>N8?9w.։k5񴺹e=]:0-5~|o4 lLMF" 捪. c6e^ v xH"dÃ%<%H7W+S-5mg>-^,SPGLbuȰ8[xrBYeTݣphyUsd ]ݝC!}[@6!uq_)1FüW33 YĥO!/W*(W"5|Έ%+.]LQYC7Y`w 02Qk1r'Umf(j_ ׶Xۡ,(Hga'vH]Ď  .C|k>.TкxcĨ;j۳%+Ly&'e"\]򫞩o0 vf>4-*8Tfko7eYݗT|I< @HZr\/3FzVy}8*Y:VBG˓w4MUx^:Z @m@r;2b6gcyP4dp`U) Lk_KZB15-,!qr[>K V)y=.JJ ,P QT_u)'X1MYa;BڳD0 )djHZvu&R2%\)^"=G"m 1/Q;@ev*s_?D7Lp X!員EkWF:}=W |q,xe"` ͦ]P*Ь%5udަ:GB 8(GzU^C]qgw/8 c7B4/D": AC1u)#PhʔlE-QM֛sj=qp-ā #eϝ?sY\يmm5.{ p&v'uv$&V^|( H43d!Y!N D hXbap0sF7;ˍ'}oqf{5/)ypD&sJ H#H $ *jd'wR,vGzg͕E}HvWƝpi59g4_ӠyƆkSB9,*^'G2X3A`^L Ԛa-D#iͨ9cM D^:S^]VXpc}OO?蔌,UY;zm"e(:Y=UbtBXRle+l=5!8 EQ_g)ur Zzˮ?4@"oZI~<QdpdžZNVw*Sj?pġ;0gJuzVoo k $sw3g  $ Jf4,Xicəd7pxP@3g5Er m %uÿ(.` ݘU!X[ET8K|C͢ʲ4L` #-@ӫ_,Gc'c;JFup a=K@ktXZܛGlɎ֨t s oܒc@#}n7Oz( Q{0J  6ba73'vbmũ;\^I" x^ ݆W`LS.& uA!&>i:_-gǨ8B4tߵlKI:xzh@3ko"Ø {_*m1 PY=ʪxX#IzomJǔA'a\b3KPɇ7'JBaF~7Z<ۭG(A)8 :L ),@n>LhmwV=F 8TUNs ӊי ;śB\kEFvtgO0T.*Aғ _I>VI;9֨$.EX*OqA}cZJQ96Btb-;ܺ& Az۶,\Y#BuG>0~m73տ皲ˮNۍQ v\!$iÏG ʎXՃBIhmvx je) s-konr`O8Rn'=-o_(-WhT'48)%r,ҰO a﬌eGXd<|"bM Z r:r\2+, KRv 皨u!|V pL0| J|\Lk-3(7wRJ Dh8IbI(HG+CySZ{iEX[-i0 @:?}ݮE5frpJ` _?yV;KX=4jR*E5+uosYPd B˷̌r}Ԡf瓡?)Ѓ(&^^{tÇ*vG?M$a~Y-2~-P TRk;6m3:sWҤ) hJ*Y QY#Q# 蝀i-VcF? nzڭo zEՏi7\?+NyYkÐQX1EGPy.2I|]G#!,ay֠;Ž Mҡ BXzˬ7ר׊"+FA X1cJFt~5*}* oh1Ve6*!5`$مI6i0ZI^/{xnXΙ˽q:@CJixV!AŶg4b,fq*:?slk͏_q>Vn.y>I'O,KVt`{}LK^V!<ex1WD};)ZL5ΧI`BҝEcH|}ͣ[F f: fo%ʂq/i),>k|Ne!Zщ{0wOpyV 8V`ZG]Ga.tC̀$Q#[5Bc)pa8K7u#,jdQӡh5McmC?5΁B7;el)BHA[TPIs8ړמjcLB2̝[+?'i#Pq|ﭟkBTtsƼK!ɱimD"i tTTxEU[F)fPFW >(wR;WJ;%HP6G_[(_C@Ar "t]jX%u}b:֟j!-~}؂ZJUhDWA ^w__+4 &@B7VO5G)a Qw֬aUu[.(BYC"$NȒZ Zn~_zF 9qG>^S]\pf)[m܆I5Z_N9|\dtF je֣&,D(&{FjttVaG%y| TF 2cIuB#j+Fq&>ˬݾ1@R³}Pt##DŽ;-'jȫ䊣o,o:J);~j) Gn-nrr&oۀeswde\AM&D*#d^2"ֻ̠ܺRsu \ r1`U9BCAW k;_Dn-k!uXKOapbp9  CxcJg쁴r T(31⑵ƮU}(kystѓ|fX4ݻx4Rhiwh@@|[Vם} '~eZg1b[K]8*J3 ҟr' {psvV)= 5. Ԫ(v[v(6+G&*,cfRX`)vQn. _?& #[ 8{l+(ZYQVܯ֊Q~M d11 ʥd‘K>Y ʏ}qL=ʢ,&?vFG{Ui.(YL7[Joޢc2*eO褱i:R{ UhYq=^->43#n7gc6r 7" Hml(~ p.=>W#s񿟇t!L8,KK{? cBG𓤝T?DiĦo< 4Ʊ$l5YauuTA^=d:մn?)յ ҡNX,~}KpԙoRZ韲iv3/Xy%k׻F^@UG]xwR<Ku>\?fwix֢VRlWOPJJ2/_k}kgĖMPROR;O"sTfJS ԡy|TVП^>ہO6z0Dѧ4mKH%~ yRP1Z)TL.@N-CۊO]XI :#G{OǬj HߩxI^Ii?]_oǬ# TƴxOHșgo>Wi|_'??J{=#Wܐ]& e3z[в^~/,nO ^xnL @eF3]$X e3ub M\>VZaMM]!OwH(X"*+Pfi:YJk|雧Aw*+6gXƚI#p a,`y SljW/lV rBvdX.?':{RڊlTk6z$i~ ǡn˻\?j^$VgXƘexN7 䫠;ěCv %A+y~(&$R?2>MqF0㌁<8 fVOM^Unuc^-FPPibzULWk ]x/{ސv'}]]j0ZhI@k1CSLS(by4LW<)5ujjNcWw,5Ml?EԂ#0oJݝ|`#[sgF%;E,.h`3N)%سY-~?;rRFwZ!?ܠDH0%,W">5 G)vt &qk7x\Iw8i".fl흠lEHnD"=Ir,Wb^Wg!D>bAX*z{sZ{#^qo\"MݜGsT-F9<~h"*P^sQy$G,jX'm F4wLnMN 27s o =jɒEXkֻsz֯g{xyE&B^b7x֦_'lpZyRDJpxo>|ȭlu3'] %,Z/LN˭jcX[ "EU@xZx cvL?)"D5}6(BCHw5qʳ1`{wGG]ßW7BoKNo d?Pv&|{4!+v}șy [-gkLg 1Х=n1n/밳:1d|I) C!T>a:u11nG xS `Qߦʏ.e!?0=bjnhNp[^\7 ҴED;v+hbWr\܍/B4C0t@r.£<!7 ŮF6VMdl52؃Z6}E>+/ɺg_Ś󙡲us˒Ew!o`ՄU$v)Ah^7f>bwCf۟js9]U*1%pu=@CG/0A } nFwzȷi$ ^0!sg,5JINauK;ᇤ $_ކ҅ kl"|3we.s7T6c2(TV#A)x8,ϐ6L}4Kr,lbWW-%j;#@rJ<&9٣2قOvD kRHP_?*,-QYռk2-‡P 1Lt!KָRdkPzgqJju11nzⰓj)!!K#t0>PMVT p=P\9r$P'Ij1$;13YM8s(mQ~-֫: uNqɢ/1Wy+920FFdt[L]:wԵ k3(޽8s!H Xb2֐H2Շ6]7ܤM#aCp@;V;,TSL̲ D N<*=2Bm4p؉AHˌ.g$ˎ0FQfSyGN[BLt&S ?P(eż#1ttrdc[u̜4B6l2 (Y$_iV)cr6ɎNX4Xu]00hh騤vQor 2$'!=ÃOY*HUOqw.g9\YG)$AHwJ\w˹ 6CNJL؀*p:٫54z=i#L7b7%Wۺ~vwX[BYH[es "%>֐N,󭀼)q(m@aZ FxRT!? x|&)]DxQ vVDXu{S3'!97*S\B6T|b!kxKxwoG9B4I.qq؈ S %m:)K.kub@Y\p]Jl%1 ::ta}Kb楰0, TW lAsv-}y+!X=II{߲*:+s' Y렳੿k'ovZ%< @\֧B( y$S DECj= ochqݲPHud!]aryNIXH-"ejGuNxԎm/F﷪/'!Q.>lOJa 3O7"R x0VbZ،`: ǙBBd~[X#cql bdK5O׏)V/Ӵ2ʇuz^E ;j fٱooc)-"J̸=3byG:0Ev{ݍ3Ղ LHqnƬlx 1ud>i6;GW@-m_EHQVs)!@465g:ͣ;NS7o==Yrj uբp*Mlj/Z|m@z/'# &0!}P`^TN6$[ÆCZ%-ɾ1h¾1zSc 9qg@Ko H7#-2̽Øe@"i/ZHVx%.~.8Pgm]{l_Ix>2]`<"]R3z,&XR#o q(8Ak@,V/Rף@`O!,xcV!%1̇ս7g UבpcdPXs"o ĬDM6(- \r2(Qe;ؒfh@3DGVဲ bu DNn:Ne aUsҨ(ctuw iss[i)җdkhЭ.QSlKcv*FYfr|z^oS1ni;E0k;q.Gj~4y!c|8 2u(hyh7 .iMm6mIY+a kB/Sw"&1y,s $\s=9M͂)ec RF{cw_v.P %G .6ߪ,U؊U-RoUr,]K\ ˓t^& J[5 ^=r| }0!KN{/~Q!޽O˜}E\8­jǜG.HyHe86"X-<\D4?j22ŋ_OjuǷ z?X[zIL=׿HGK;kYf;a*Z'\`^i3xP,97ED᧬ddګ}ף0HF<՞Z`}KE"$\ zrgM FsFWRqu@q zJ܎$M$U9aӄmfv-aTZOr+HQ;S(zq{C-{-X~y$ҳeӿs+DD%r8 `-!#б 5ӹ*E3ִǀ cMZlh>0 K)20+@@vX酠q]ꨏ2 ͯh9Zif"6؆v vC14CݲYwq|#&3cL|Hp[!z_bo nnCǺ¿xh cE7uXB~bn=gl6RN" wҳj`D7M]jL'aਠ6|*wC%\MMj)6/X(lOTfC: Y(s1Wh8t30h>$I&ŗ yL'G{__<7dSBPomeF%x+ J`G#ǶB#bSjL ͍6,\m W{PT]ifP`+ELu5cx]y3R4h#|;YpNswg!\Fr} 4H z?T1"e9}z3u OeLO5vIqZy81Êȅ4& ݒ :;*oAZ(9=;VH*4)Uhy}S꽀t46^BF-_-yXlfQ_Ɠq)GA ވ6"({{ߜjvSjOq9c3TDV@tM f3$%(J샖uk}3DSaNF5{5BaE 4ML J&y:,P8|ĦȢ؀n>FЉDue3Uʧ!C׀$xrF[D)*=8?OrEqtY51hG^h"{]X_NLn$^8>7ph\!OBBCmGY1o =w 4btMq&S L*npf1Coo8@?>*/z2\fӹkba"{Y#3<:=8 "&NG))5ׇ3pQal? E4#tQyBKqK:?\#pD'5X֮ɱ_%3އH<FXb8]'JW1e0$G,(nE,cUuZkȯє!h#pZ܃e =bL؂gybK{gB O |BUʨ@͐s&YhuPj`l\;0TILɻ`rb(¤1;1<+e,|FT)qJ.FDP 4k ƃK6-W҃hFz4<]sb /yE9۩.[UWLY>wfԒM Î76ևO֐Ϛ\gl؄|˪̂)o?(#ɱ,ւ'Yޭvb9`s9`-SIvE't$vQ31Nx$JnEIcU& ٭Y\|y<i_d ;םM44a g[Lj"ldXuVבNGȚ' *lrX۽!OcSFqes/; X$ `ݷ vCƌf#*mPdzԀ1IQVǫNb)f}Np9IձG@Q bT1M[];r:Y}wْeTScCp6f%mSY]@\Z|eI_|0BK W#$ϏT(onJFӲ+?gp[xMuS\HFuO3Mdɒiƛҳ"83ƥlYt=кج2%7'p*4xs_ʰ=PښQŃ:0/[ mzTxc&/{I+C+ɇ? ~am HNLN37bȼ`8f Tm@-#)qGh,d Qs#9ʐ )2iLBXc/Iޟg@<4CL*Hzg*,t.mW Dhv)_ >&$fnKBJ+\=^܋g(Ag!Я$TGOhUE]}Kd `XkZԄ%QG0ZR(G{q؀a& ^:/ \z@|Lx~UKb{WdgԱܺ&(jh>;E$)>"z$<,˭rViI;bUβ8yuʼ| *R.O*]0O@^?槰M`pZÖDk b*|%CWi:,}>\ٳJ_E^dZ請uF*9~!8p,(ckv&Q%me0Ȥ~01Evwver'qCK @爘Ho] Jׇes6\ɋ&;68֣E7%^ ۳}r>mŝ7>b׺9T0zQkWM6-j'j#r E.G F pQ0킖)eyiaJ/8fs+U%|6 :EOCtU3\UĬ!}g` Ϻ;{pcO<QA>.9 (n^[# ,.,Ch׈w`H2_zn\w΅I{XwiW>YϟuFn HЯp:ỸZP" |IX?ǥ3'kY3DKZ.k|/q!񺾂*VC=4ZJs?gp;]-QGz6BP}ngƪiV+<[tJ(h %5E_; o ůܿfcr䨁"/IDžx h&+ؕ{%P3YU4_ h}6 ոjx#vQ!~|/`hK^>_@CIX{j*K@)"f¸fԦv w4 ,|'_ 0)p~EN"U1f`~Gqœкv,zg]T5(u C;/C:EmI%G+>B;3JkͶcO,fwzSbIL{< LI ,fZV4.ƲJ$Q$7&U 4Дl?CaB6K"nsBh(c ēj&{R!G@-BuUٲ+wB(gK:#wv"}Ԣukc. y;w8ٰ};{P$z{Xla07!- Y}ozrl1t9G߷%koث~_G?oVUJB%PA.ڰ Ɂ(w!#rv Q]qJD]rABӅd y39$깥.ևi}}/`p &@#;+56N=-;I?ĵ^FrLU/4Ju'C+i7E* 6e~r(77; uS}Pۃ J~(II\LPP r/fXXtmVA([QIʝ'"$gNd-}z.ldjZƪQ_5W\1bB: B\V>Owfjθjm'KVw- u(0M#7S^0p/3>5C'݆6ڍjbar`)aI2͂Eg4_+qtƺa*O![ز/*~1Ӄo߷!a_/kP wR/3R(],΋ͅ>a*d(qW&h%R^.x<*DjiQ^G(8E&G\xUQMS>ܹö1dF E!QuwU^R6<{x^`vٓJRfľx)+uΣX۲yWQ ޖ cIGV1T<hӡ7 x.ga]&nUŘ1糙m[Vh5rq.G&4PX *ޮHũ롼GωSJk]ئ*EBBJIf%l& Z0N-d;?,E@j-Yӄt}gr-!3χk?tݰg vzcE$nFꝖ9<3} : 1@mh"U=q4jL|J(Z}ZIv0|4`Ok[Ȕz*WzǫǹXx_L@dXUfTY#aӦY7v.wIbnОg/Kly΂5\C屐A3etpl^N#N9oX9\N4o$ShR<(s@ttJC0R;c %7+a1Yf׌b%BP/&=MNwT-B262id5 Z!G,8@&Mm2,3zQޜSW:KIWs= wUgKd<.Ii8,9c9},s"=w$m)W xC ]=_S(Lvv!Sd-V@Vx jzԟl(oD8[{O!P G(1cK{VtOǚ:<-T g'fHqa.i.~ vtYğ[6Uzq\f6wϿ~TVqVfcyqk_ Ѱ%۲ٿUD!M3嵠]@`^CUh7;,,|zO䑷,YiЬh K!M φ77c+%jc`uBcJ iHi$mYnM7]Cғ4:N|j?c :N$ۀ4 w3E j<$g^b'p)\([gkw Be~d:3k Bjt x輍7ESb] ܅uѬ@tS  냠Ɏu/ pX>ej{ 'Wbrjn*x0sKӇTjyUt] tJ3W?ʩI\g<WyCY+Ǒr/e_ga*vճb$7,^v LST2g ?,kaF:Ar9d i,W]*(c=! 4r,Q\ctyA!@l]eP5G%"kxOޚT*:RJs(}'a<@ Ȝ4=vVSGqꁽ+9U 8^;FSE?PQ۟2U*q×% #*nFkR+-%6gfB26.eUIC C%dKc# #w)-!(!hڗ* -=3˞gtvoQupL)JVz;RK@WgO5#ʴʗ&wLNPqPo&ouS?tos/̀Zńm\c[y;vH'gמ<>殢NA>3@A~{8ΣsYWu~ 悭ŧ^^ƎL@(tNem5ʱmAC:|) ϫjgCŤ&7I]#=iy3eֽ Eu0~oV UOQò_L0-WYұ=ܩdX/R'c+ bbli;UvK>KW}_Sœ2kBZ5j_1N8Y`D (ڤyg7lk0pa%`49\UґHk '2ֶ:h0n48z/QO\WTXn F)DŽ}|:o%RSBxF ƞܻ9a4AL4݊6"=Ml`k~v~78y3@2~ڡm.ZݳƐ$9n*7"AA$l G[LpT: 0ZڊTM~CMM?rݵ%طrkxԚ3+MցqHKip2cKpN kPʡxKleUѾŒT]Ow^ldY`OK`5I8wXEۗ4}S*HAQ2ǢYi88Y@~N9$pMkD |vupDj\8YvUVGdk(Ãz7G#Fi|ED2J多|H(CiP8j@ήvtS7n&<QoɶXKwN!W>0ާE6p?z0]2dN}[^#l1Zjgx#\θO'B22t#)Iݙ(zW.wkTaVpjВf8{dɌv~Zb=.du\T݁j9pA9Īsx? H?6K5!$ݕk dN:㒴Y#%xxGó;eʘ#È"RhǴyt13[DOE-qk['CS@w3k.OOJ9KR4㊮쯗?@&Doc#g2Fw?$A`_@qARCƐh1BE% y>{+5A*#:&} *#&mN}NaLf=γz4X(O.eM[5mBkĂMV#GuٸvLDOth2 J^~%(wA&$Kr"~Ăo$N -u=ǁ%Bs<)fvFC_?V1•FAt2Ko,?+CfxD~&?͖Qif/4 )8@4*HG7KWXk1%K#Myڄ 1Mbu\5j_AMRܣB]ޱYآ~_5t|̄4)ŀ釨?sgiCL^X&$_|%tGI s5('4JCVIޫ;31j_'8RXNkVya~`mx`IXd;t..kڥ Dn N .F} uw1!]+spn%:z (wVcYɮ3:S6j|/ɘH797nxXAӷlO9u :)=.J/p Jt¨n&'9 QlzdbB 藜X6 2AT5SUZM G@7 WL61mkQ /C80͸g]tH|$-**sJhR i !՞ƣl˄p28qᏭ9Jl`>t`AEteɭ9f-΂~(_rj1 Vc^~]9{.?f|m i ^b59_vV R̭BEZ)3^12~I~*\RSeSS~r"sƀ=l;k;gE eSi|qy2zs^s>da#jbMZFNoaPyXgP%Mf&Ģ}o@ Q]-T:Oz \?[3{i3mjʈuɘ׷(%aSaĹLO=P^; 78WUt]6³q!WrO"2Čx\O[k^q}AIB853 e㓡5P5!f}Ji, fc@ehՍlZд4d"Mw55=4Ψy,4f D+9}3s1;~}Z ˸97Kt7prȾ MA`azn Rrſdɇ mf)%3>NH῰2/Ӷ|C{#>y] %y'rc_ |b[ }%Yxru,? "pnJėBB PV88+'g tG,R1j:vvi3n?i_W%\zm!Q"b>`׻ f:KXŸ,-wBqs,gA0\ ~5:al_XxV )s dAKq$x/{$Dx[;Q?+NPQ):v/~ I<#4e48ZJ%x4v7pY H@ZJaC򞤏ıS7"s/梦, poa O _ߣ)>2e[O\k1^Iw|{NH&p8RJW}f*b,w rZa-#\zors;):Ǵ[5)612{Ơ_w}ǟfEHsıM ȊQtf=ܲ=,Z峥b'jWIְq׿#)a 7(F>i!˸e2;a>E4rcYGXϯTG`F+1`Gqu˶aK $$P+oFz8JNSc4tBM/VH8!7ZuͦUu\U\qѸ9/pO ۄڔ^-Ņ{@pWW!ssƙB?:'ocJy_Iet]|("M-&LmUl`7u,Y6QF5ǻ&^ 4e$j?jc7̧<^yB Nn='ϝ1!*|{ia>+idx;~i1BWF1=Zor|>oy8zm ŘhP >z%sѱ7ZW^2~\w‚MJblɗYV.mש;E#7tՕQ7X+ CV& Tؔ}Y_'6|#gs`"ȷu͸ T쪗IH'(;9Ն-{ 1;JAcxU!56eRdGEo9cpZ_P37.4=>i|UmimZ| YßFJ+69v;8ЮSg*v!iNBOcSI~N4zJS!/ydЋxaO=nTD2ϱ}3Z.%xƳ+{͕rg S 7[tAZDt^L7xځ9b07Yxr&sr,h.cdI/?k]*g7Û լDcte=wPebK^RhA!!l/Ę|yN\_&i~GAVT4dmy2d-U١ 2n?PvYwL 5!=X! ! cH=AX%02DޔUDnT<z`ځʼ~;|SM WG y 8 [Ja/f-&9r~'%@/e8jmFA[EKSg9Q&m\1(O~`L@m~om~h%[3H;V}?s9aX>yDC?T >gk9ms* %aaUv ?`'!ő>S.ūt#i 4P{!Ekfe!.59N לs{;U,>h.Įƪ-bd2pj 3ͱ {  ~yʛ7Μe/= Ά$ugq木p9puB( 2 H|Av UVg'ό$ sb1sV1L|xgk*A4NҌyan*Gpv>D%pX!xܾȽyT/ a6z|P> |ЇV_ d l^N ۷*P;:6ˉϭ68Shpu]IZl{.kh**>.1GgC!Do 0׃Hݏh1'#~*Vq5!#{S\y#U19'mSS%&9;-sج`lFN%!L1<}U.^©R@ ]x#ty`cZیt'}e^ϪAzI?oP5~Kj'j605)`VIKs瓡*bY1i;$V3|8 fm*IO&RAygB=\΍˜WYgdBT] Z53tA׳ۆ@|R3,M OHQ I3u5[b[m).? vR<&K>d("ŀV{B^mS RgCFUN㖿o6k(jk{AeR{x S(\ - E =w?#ת^˪G \ODwYM'*eAIw QR)/n :VG0U=yЋp n.4_װc4@ҽc"JlCp#v[̽<hl]{ QF`ZyD1r朳kAܷ 5륪CGS񺆫K5 &ncM:s/F]JlT}UJh$QGKr׉:J|:Æ82l }Rų3Ν9i csJa{h` ?%+D6 i#C&9 y6VghS[j$}mˤ$cƛΖz磮K[ WN ( D DZ<ր"D>"\=n]ٮabV>y+䴙]ϒ /xdHW\?)훹G4d;VJXo:j#D-)^7dRӗ_BaB.'9EKrКly馔|Af#-)e4JrDu?sʿ+)34Ot4zJi,r:VgcV4AC?r鋅rt1/e&YsR:WK"*d,oO1k|H<Sdภ0_Ŝf?v@X],֔q,t;vm6=oG |㾳_W|PVsNjJ_ 'LЬ2j{&C!;3L *(ed=?g/Tڴ;>hU/j|$[|bh$TP9ASV-S-׌ 9d8;_Y!Hd@N{(~| q[9D%M܀竱>dj#:R4#7)Hb##U u`Ԯs*dǻ-* B5_{u66P!7в^!zTgݶYK,7P6ۦzIAC:q0WE,oFP0/ow_p׭"8Ά%(,i(=n9ɫDdV'i ?MiS=>ocMӽ\1K"!#H_s+C+㭭K1j ۺ`jq^΢e A8 OBT 9U\̇oܲtܹJ^C5!y?_Hk3qʺߓ.,jZmޜZ!خ|4!k۲=}xU%%) !+0 0.kqYX0";g*J9`m.p-muEK)֕E4]_ҖL_dזU011Op]Vp4$‹j-t> žC5|IoQX -r0C<`r[X3Ztg;>[5v<4Nq'=;\) DѮUf,Ի½|O\[;WC-ɂE.AƂ}=,)6)C7[ݶﲪL聹.hpja>_d'QZFdOC?gYU6A 0z ۃRǵ%ժS?pZ-$K% CǼّh7{+vJ.0y)eUAb+V)o ^;;C6nyrOFG48*3`S=U̔?l*r>! J,+CU$;g[:q A&Wi$+F Z+Xי*[PDaNa9?pcbW gѤX6˹{.>8 ()}DWR‡O&IuBykq.7 M?Y] n}VX#~9biWHxL ^-/ݨOIM2kL}()8*7K >6 H{2֨ٲmႾWiyZ\heƈZ:(f{Eg-K?RwV]9@GP^ ;èz+ lNd'P o'cj,n{gWMA:@[=Xl13]C/|BqBENtpTZn/TeCKpKT@f5_f(@h)ȅu{ŊFuE±ml)mGqJ]! XwQP"b59Wd&E8]cls\4YB;Rv u"^ /ǃFwKA>>xApv(PW/J;tj} = gӚi3["{.Hi$ld61 oŪѳCd̓;Rt=]JsJbp[HRw/7y|bzuRF @鲊r:,ƌ0~znߴ[W[m#*^f^m4;^W7uiJȶƇئZ{Ԝӝ)˻, ~mbXr;dpo&=rOqSϭSx_α1gfCO@D3i,Rx>׈^g& .TD"z Nb6)jNlAkAvoܲ}WPWw47s~*8Y([~G\xs+~N$᱈Q5i.<&E))9"`%I/1)\@ӆ+Yzjꂪv\Jb2bSF cvr qΦ>-a_|A_";PSV΂-1rq&46ywk"09<%Ht=!޼h =olgR bJre-R@,Zݕ~fWB]A_!Rc0ghQAȚS1˞eUۓ~E٤s]0.eQeEE);6.[aJfj%$gDrg ,}A (M~9}y^A_mdB?GI|M'$?j4oLɕ`GLp%1nZ}x5L>yKս98~F("2m$S^ɴOºGWDr~\?MVx˄%nBIK ?!}{6 Y2JBMM3D/2%D@0TKd"M簉cu+{(^>`~$4c qO')| M!qJےV}׷3/­lL&9+SԇxwGtgoKtl@3<[  ZUYS~xE"'gX6S'FB~ݫ\SH[ύ? e;W7o_ h?;404,Vˏz!;}B j=LjGǣ|N[IߪSǘ4lyqcv9H V-D"ڟb5&6+~Xvzr9C+>CeL Bcb,;jC&0B,Ӈ.GȵY:Q(N0dh{<]{jNCeN*}#.cޮ2ˈFq\d_nnrs>o#Oӕj]b5y7Ԇl"/[]$]P)IaUTd{RB/T:6(/dU(0OMZ)wpuTP1: 3VVJcEuuB}E@݅HtLm!˽WJJ(ez2j#Tx:8XEߙ|z̻/_˄"8rHMVҵH:ee(gmm"gwLQD0KiYI ; JbaVER?'וѥn/_cHȷاO'gwf&wzڒ ]vU?|\_ӫגE0(}KNyOy} =[z%2 W Rq6g;2٦N8b ֘^ Od d\͆>KԻzQ ^v2ߦS4> =#{_sF{(7Ĵ5q9%QEǯiL2 |*$9YS8?vX}ј cNrg;x'~Za[!ikػ}掎~uVS͌HOwd>2i!*EDGΏ1hy.WjqAcyO xX+},ob+u¦ c]`/ܭ%=Rn7ҲJ sT뀣q6*YO |@|d_%Q(%'#pPX{y#*?0h$R(#L& r dSQ5 h=wGbDʳcx}mK"Ly-kX "]r$smk6%Ыrh_mJ ;"3~J3FPT^I5Zc*`1tٌ+L5zcԴ|XPAzb^N&m[d<Ts e T^e|H(ho9 d~K ZON] AfdoJxiI錍x4xG+z+1sCa .9:Mx$2}RM BR׺f\kaF? yA-) ?ă|i)O-cA1b%rP$k!wjшE?ErTfaX3Etd@=W^[|QH }q:6$  ! 2FEZ ըw"hV|!o (\;ǍW 8%1֢d5_v};jSU|GxTx??uto. ̑# }\_-rϺá wHRׅ국Rl/qaP-7f_VdC8x^mƐ>)ɔ\vɫWK 2;<\BgU69 P=T` Lqf%B\_C$iIJ\/4#IĎV?NWa͏ Sq2͍1+_{^μ \3(kZ(bei*Z7ZQ @H5z7͵|~قqBlB5>[ )pp3d,).]@7IJ O~,l>B/q.\g(9;d'-g I>cRM"o(?b-:݀40 Hբi`XJ'Kԟ(kWG; NR`L*oV,ښ:8$\Tdاچ4[ d.+e^R+=ʹ0]k;8k]ĝD5lV]p5Kʣ/ϰ?KNmZz~G{A[ 4&ERy&"`iM`ޭ1KjSÍ7Y6",m! a9iFȖ (@ݸ:.'Al'b9/" >P.DOeLK6mtb!w:wt䩧 /:WN0?> V.7bcg4{iΑ̅m$?P`ãn6`\~%q pp1$D71ւ@UxygI"Yv^.)η/'LGS~!5jbUڒ@7[]#3':mY! Y͠B~7$>~ߠ5c69iDPe|2Ba$yO@bKM{_D6T?֧Z0XK {6c:du'ecݦQӥ i֚4m"1šM" 6tNXJ~\j.}*ۋxTIs2V+op+Xl$ yuaȘ&zcJ'hA}2Sk!k 4:'%k&Bh4Xj>ٟ;s4Rkc\=P0u/A#bΘ`ZhFj f07Kws N%"%]n+PmcOIxN5J$qi;zC+tx!jf1RpX軄% Z '<1%!L@; iG5O"&wCJ Id&%l.MGB!G>&sZlTd6TΦ@xk~)KyqRÆ1a}g4j*mrF6- ~UTVp7XA'Ψ}MCL,bs ѮB1uL R|e#/{m}fA*.퉝h^#f%fJAsR3tUZ ᇮ&Yסac3ʛXd^e 4L֕;*%a,J]iShfddj  2 Ec[#)u ]h@l!4*kJETxDպ5|FhWXۥ}m$&"Lg7 !Fv& yyw1:sAtrhlmX0!6pCa;.4sŎt֬|۳*($їY{`br irG݉׷PJMAsdթěK⸎'Ne(XL#[_c&#&s&ꆤ<9:.*:ைEpzR}9~Qгo|`)F0מ}c/m12M! lL"05e).@J+kaJn+art=5o̙Jy?.+ӠhMו gucn/c1pmOɕ]Ůi#5=1 g'ݕT9 bp mן2%kP5XD+gڅ@ I)X,Vy "yfekϽ3@qϯwCA& BxVuJheno[[dԻۏj,aX1dќo_q+4*1] 99?`H{Fod-e fT&(_O$yW'bT[WJ"ݮR{Vfqz+UMd8ONCC bԜƝV=Z=ؒB2d Ȣ>_iLMu|I Q\ʱ!N>Yj;DJ构Pe\uhHRw\m}[OHwv,]`]k ތUSe'5W#N kJ e)\)BI S9L|:6B1վDcM Vf\b/_:;t+xJr>Y342ýxQD3ȱ*EMza;muA kFB8k1)_þȟbl%]u{<, Ŭ)Ҭ4H!9鏥 &Ӑ7Qƣ^mpyS6XMu,r?uLE/zB( m2Z@gtK~ "p u2rtKd65ァ `) oeUFqY?oN 躉5o\E'Xq !dQ]b0@ +? >!sstPN%F)ކt,`=Ƕi<̝\k0Dt9]8HKQ -ޓ.Ƿ)w}GK|\з'45u'W7}&OBFd.Q mqn>#G_v7LEA:HĜvw3In.bnj~Z^nTF~kI=<*X u#{U@f4 pڍzI,u|aòbu~ET!EõJ5FL'{ɂXv(]vs{Qܣ?Oq?Y6IV [71'|_}ܜoСZƁy;_/~-լݪs⧩]C6˱58;}UC$G^5 1zq82݂"3Pp#$Jp}:GC ^D&%D qE.:%U$bDj\`V 0IJ#%(G8:Kk]5E'k*u,_NoKI82ĄXa.H=]/ ̈́&_U'}پt0A?YnBԤmɤ$ͅG/ݜݾsm Ɩ-|6~ aM@,<q.~ה﫲s.1_NgPezAZT:羴Oo|4!,z8>f^=0U K2ضʜo5OPC|?n.X > s/%F%~kY dCRQ-N.uP;`ĨhrJQu^'+PW?YU9sXtN7]&#Ћc 9D~6,TyqOWbm-~(sVm1B W[)hGuEIw0^UTӂƠ9ɹjCNpv)+I,\4gE9Ńs (QY㠞kl.MsTk@.&+G*+U y`bz5pXy>Gh @Lz_OAba 98Lw%FOҚmw3~[0r*>RpS h=-Ѳkf:-v׵b|KJbީAC`\aGOn?`3cAMk(`[?Re=v %4,iPG۰6?< ijA7XC#Kg3]IӆsQ2*G@@β7]=k 7RcaI25^Ju't-Gɦe֣9>-I[y]s,7/<ι[rRбoMoJI¬_>GJYR[ !YQU LUWCt)YM򵼥qHO[/6ox[BzaA|"hNa/SӋ2&̐wـ'KlEȏ?Ηk۪QE{mr/YWwy^K ^Oy@]N0(ܯ.NO$By.Bm}AE mq3G{WUQce"fe(">`@S2qfQ/Ewo8_ vh7a?! ѨLY+sSD fĀTWmT7EktW\ D}q@3ʩD̨@ 8MK.'VTZ}^5S'f#n*Z%R{AѨNZ--٭Վ {k#U ik5AIcu`_bgQ1Y[6Wk.5~RBQ5[7emOeHl0s`-'xl1@?_@h[0H{D2RfA1_IWOww{eXi42 }5?Є0{ڊ F ٣9rS/;r g#Ld ωR\8ݾ+ Yq9 yc7V-_9LR{~iWPy{(>Lz [; @wg3o~' GjťKmo 4rAX>Iˢ#cz50u 20YH\PоtEV=3mP4S@H3 xԉ3 Y"@J9…cAy]9N=.\aTPo<)(q΃|s[v`roM&11mŇTAfyg܇m75pzɠG; QyŬzKpMEO845= t`ʍXޱ!CEA/$"*Vіbl3֠wƮ\ԩ(zoR_Nو-OKCRd^7ľ}=ZNTl$?o˹!.HnK- Rʒq`V,q^O{cCr7BQz^9z:TЈcacJȖ:y>bG)X{Bw2#~1b"YZM(q11rmf9[3,(a{ߗWB8M!9 2V$f,^>>+2CM<^\tZp@B";2 OH+fNGYr"E[eKW[_<,K[=: "."(h\4L&:42yGj].`9/:!b. ډY.Y y"LFȍD0 e&/ i(ng`)U.XfG8CFzz4q%~ =E5nex?]R`6h-w8ⲤÉ^ g.Gބ |)oaf;N,DyXtQls{/|!ц.2/.ԧJzz6^ꥑm~tƍF/U|¢{NQ8}4Z^yC0}9ܜx̞EfKAK 4g/a!S:[Ol~cF'SRCU[mC$,+%ĭ4`C򷣫*NqCTzE "/QgxkFNHl@Z<Ϯ,J~wf4#rĶпF~`0T $ozF4>8n}Q[[rO^zCnSl7(__xF갃t^tCdes,|tz|z (HI=QQIe,k,5Y Ah0f6sۆ4ǁb:I20 4/HsRR֪lm&=yXS@ W¥لD{!fBدGĬXtu65aRbe#Qgϫ*1Bds6}!!Pa;`wcp?KI0LDuWk|4Q Jzrԑ.V^1l4jQdǚ/K)[Ggvb=-D^"̼9Z$u wZ^)^#_q,`/dDtU)fD*] uGߑW*aJB펹#Z9Ŧ}#ߡ0ucZsdNm[V : yVБlq:HBJC݋y:&/5TlލGG'/F=}Nnp+l"&uC&7}]6Vdqh ~ $x ]kzf0H0% E>mSc- fG"9vXmr!^^fo5uj7fTA%<à-z{ZUB`ck>?I ]oX 2#ޖVVR(7̥Z')џWv|Xcۭ `0pmV<^8 cRږONR3vPL^ ]WIɃ/t']ޟ V![MO6%8g `g1$ǐk*cQTQhGnQq_Mj͎21lW딾9*t:i*t+ߍ47>Qhh-'o(>FO]?1R+̅1y8/%DT0ؾ8)Wл'TKM%bۘQLF^i {E^(=S\oҿ/?,^Mfur~F"~ʘmf6$2)2flI5J kM}KZjݲUM^W\c}C (xGþQj?M`(aArmg|}% yڂ/0܊(bx=SML"zޠp>oFF}\Q^sdž`؆*Dͩz (p9lC{Mb⟞'<=-IC\2b,$ʱ]p#PtwU6Z):RDܷ@tX+ӱC~`yć1R5+FmntelF &7pw HV1d$.S>O @q]?S!~!w\'?p"N! lTLkn$2\F&:45pL3tuKBcKqؔFz>`{j=&6]}P|h a x [)wX5Wʄf%bu~{Y4nݭHޝ}x f|έVE0!?`$}Z&MK dy@e-QZsjkp`XKW`A'"KBr.\?ݓInD{[v}#$EWW7XO.ZF<s\Jgϭ箖Ƌ-~hu8vexsU&3J[*p RE/Hǡ6݋>RGF|`Y"7jp |8k ,T^z|vۼaNeQM9.eE~du/0^I4[% - Ҥݠt6A~tds[rt t9 8Y ~W_9e/:0&!|9 YP vAv0jκtdP9>K/GSJ4VOQtw,k_ daJ͞`Ͳ$VI6B q9J7ϋPN~q:R 'MP]nSKZ.o-9p"xz{8|o Gȯfd2,(t\m˜},JFu,7*\%5C,he),OUy73i&4׍BkoؚkTV'[pd>Z y逹P ~$0-[c`_|cs `H~1L>ah0tt8$z|OzcdTBOe`@nچ:1tBUc&Ji>gE;sFiWY˧`0yy^,vӚ`_Rhy"O3P=;<_'I߅ :In6=wڱytg }3ǩ,P]?Rs#eMEZ  wr.hJ 4B+ˆ(X"[{%K @,AgUZ%wEٍ'EdV^ﺕhkd8{^*tFE%FٿWmM%pʽ |H|/&iΞ<|G c]TbjQP{-go' 9 ab1ydRϽ9t"3pz wXh@$Ŏ?r%s@Sb32CDsAkM"W?K .17Uq3ȾW&y;#mjI4mK,^}~Ę ~`U.H J:4k66%dmzYrjo%]laܥmxZc+q$=}22538/hL !t{x4'U]VQ*d"9$oIK v @ !( E!1TBͽ6CGno,E~ (7\u2ݵ*tB]~pU=)y-SR(MkLOHtK[~)Lcf.~̀,6NEY/+ d0›sPe 2:YT$у>*[!G9@@շy?O{!+X!ƷZ1QE< h8]824qDpSlbT:b|E鈴 DX=}\{m `Vm!<5#f tb31DG󽁏&|&-"}ij-4`V{p2}^SǢ/VF>N%JKmXZXėaHб3X£H -|xw{ \ Ćp7uRQ w3K샶p"Ml@1nZK/p4Ά̲Y8a2d"WjS\@"{PQ~ {y3>,9e̳y e2DQ:J";U36/tlX{ҵc/ ;KO\Ebע38ܥel>dO'י=BhE98ER_D7kxbrijc{BMNs1{.N_+# pJYQ ? ֗)ppsL &-N 7;p<[V-v~W6T&KrA8K0W:&g/Tַ< πbR5]#'3'  `9?_u0EH> 40璣Tn=^xR!R \EĆ*'j^ѱ6"mB]=fvL$Jߞ>:%jG[i׺+?R Sʱ̲L=[I; *LkA[ovcR4YADBcgP˪x VE47%*@$lKܰIVA)pց*wWk.ud| =},' ntY Xs쇫˿B>UhfY?h; -bO%㺳@@qyA,;XotQltiwgP$ň2+cFm =?%pPA!܇N&TcG?$g"+vy33{%jR2F-b+ݘ<2/,ݝ-~mJ9y JrJqNV52uuc. ǵgOKTO GHxD OWMvbE~pg8d<˪u<7u]N HN78Eud~>,TWzʛ ̇+tiiK1 V~3"z:dv dzs3d>6լɀӢEJk5㲹u:+IsI9q ?}Q\a\{>M@7yg%{eBҊoXY{٧R;,cWHzeK on6|Wڕ{W/:$X;,qFx54ވ) ZJ/Dغe*Ӵ2I,54 97x\5x8ЮU8Dr_5!iXbk?-TŨu9auL&cn :7hxO# mCpL{ $//@`A(pJBE)B Bn̾}>7x 32RHncqsRc_1nShg(Kj0h8ZLTo2>MʡM%T<4:bX-JLlwv$,d VbL1~Jѡ%t9S}23>ђI]'~g>`A.sהz@YyƆ[jWsKh)O =[n"r׾jZxHVQSCh\זzGs5Y*tmB% Kj^"~z6gm^D*}Sba.IxV6Mv)^ ISh_jStPgga[`1l7{` [4 A +H%I'SeTh:o,O9 踯U:ҭ\QrҰ1YF@x6¬sm+*َf@mf[u  ۯmt^,0Y7F4aϊOD[G#|3Xc>g5/L !yp̦,Uw)4CÊnɆ!UhF$D 1h]=JmGDCuܧ+]±\@?ƴ ?aVe~8CJ/b@ v=t*5A q5;0XށPQ܈V@篴s&5S[oW۰ {4}|ƭ`]]> GVryJMxd}rVf&0 @AY( *`4^z*،ۡ(x1[^ o|֗Ki/"TmON'jx(5: eƟU0"৏C #e-@%~U耿q]ʀ umIpz@,8d*ԐLXVz@'wv#8WT}U2⺊M-3:S/A)Nos_aWȪWy'Yڙa:j-t~ENSyOc5 Lq;!bVv >D썁[}m6gkᫀ1Qyb:e#Wz'hpZk;y|[cA,'I6 ɻ]IE(4?nǓ A0gɏl}ԗ -XV Z4?Pxm'5hu>Ft뚵Cud sM@(x&SwJ4OֺWG[BkR#V\Y2y^XZbO eE@x\1vtmNvdvbW71j.,3;RThqG;Zyg'1=~,>n=ܨu5#c^VU(Ȳj 7`ӡ :b cAU ){^-@(Q§$ ^+,ÝH)6{gJ [B¸bZglE~': !R+F`D|~Ҽg6ۏ >bN7ky&NX鬎<8tp; ť½ۣ]B%kI"G!#W1T-Աf6ZU֝o|OFbC;P!%]~c>%a ܭn1{,Cݹ1s]uMq-'1s_\Ɉht" %R7ƊJt0etZ#/yDyliIx;"8ͼwF<.(kD*a-I BZe݉pl( \LL6/# H+WEOG> Pݼ3s'_M֧A ev2Տ&M6i7V:Ztߔm|\ݔF7+8dzb0ts*u&*l&k pgDț(囵 Q$MHw]L@=׽"YBV\lAɮ}3%"βbc59h~ f2Ĉu&+{>wS#Vo׫Sۮq _Ty GBfA,]y`%RഥP^_Sx >UiGm*&u&|\qB{>vU7|酃#*v@aHj<:Je|.4$ۇHekNv7Y,b)ގ5sHLuHDKDPbHr zm(7xhO˞ 6JB`bx5Ic֯}yGٻR8DZ]a!7ja6َuvH,P}>b#hiW=m~Jiݭn[Bnd?f5rcZbG-s85c)d^#G>p;z3 FTW_&1ETYJRgssʹux|vNw7}ފ &}=?t {MCTs*HsYjF -5mPsg~'hl<,# c+0r- ;C4fC[ >d6%҃=3\1s@Slbb8B/V"l4UW9QsN\H:j]3:geN:ŷ0u%A.`#4y(GY!t]S#5e;zHR ahV\y!wC]0s|?C'// Y] Wd\gWOgR"` W!K{A ?j.jK~4PL(AƥJ6.+Q5uFkoav.:D)ѹ ޝ%^x\&BG6}{Uۢ]5 זsN7{ -z:O!q[XVt\4}0#}@*'F)7FsOfvxhlyxxhХr;xYS&/ mY"/z ͬ#\]LHC,.P) 9?.4ۚ 3R ,=5 ڌEz*LoJ=uzm* o2 ۱% J9;;:$ nlˣKM~/fJ?Ѝ4 ,tƻس P׃͝pV]e 6|6vT^$]d>;lB*abހ:Vxi:4)}7Fm1{QLHdG<7Ss,'R1Q IQ \}=Eyz߬KCb"/SQ{ap s-7I''P+ai) rrL'N%1bE$Lԛ?/ͤh,{+y 7Jn~722R%YGՉOls{Byr:E-s̺Ju(N.#E~> S:5b=Yejn+FO#aL'ǻ?PDZK_qKZ{c?+"B"&+e5%掐0gknD#}|@`:+.#B5u\+M \oK<{qx} {+`k'j_]:}1a@qTs&1, ]"`DUoe]dnu':qq_񅜎ěm.; }fPʠe9̃CƈJxV %J 2D phZFRd!6 ˝ěq#0{ELu ʑc wT^OM{?{|ѐ'İUMQc A f:Uf{ _CP^ kJN\Oڟv{8=Rc:w%o xmph] l!8r*[z]2n(S=1mK~1lG?"r3-bwEw^ha :V~.Autt7jV7IYѕSue$Yd_a1~vÙݵiS]&0#w1  <ބ?Jܔww09 ? :ăʷrV8XE#;j & \W~7(DAPj+ztl3?}a5k1(Sc [srƴ {"SE(f/Fa^ڠ s2B7PiРoÖ .iPEwB4KErVۺ4 iBǝ ;U,"PіHD(sI Yc(c6nt뮠T)!v#bu /ifO*5єVSV2~o:cCͱ[g!$Z|Gt,~-^j 2ߩz3뙞᥻pHg 6Z T;)HZʳkIf/7peղBŪEPpcei1Z~zs]T^,WrG t&Iax:}_U0ؾvΝ"CrБёTMI~aTNYzkIHZ^5#""9w@m]OuBʐ3^Wz3܍+j}펢PEw^4~ Kh-,b\" )fΤ(NWg(6ʓ'i%47,{.jFBqjTCpXAy\A6CZr 4 D $"1hfc]<hvdXW6[&ڄSf*]SAQ+2{bED]3 Is/~z1* ފ7 k8ؐ.qFCQk+&ˇ4{kb^\In|2o ʝ3G7dz#>yrJB딱ik TeO^T9T2uz"H }_j4Yiє ,- ڑ_-VdviV\oA!c[5ܱC E7tCJqwp+I}++%@2H%.NX|sp77Qf)f6h&1Fr:zF92@AN*yN*Ʋu$v/2?H=F4>!m0(m1A%'KnȜ9eWɚ#1!$> ziSd['ݖNJ孮eeDw_գC \QJ \CyЧȎM]> {'PUX}iPܯ~&UZ4O^0T`hp7MZ$C.&r?=1U+<|؊ԥLvZ9s:A)^Lש;4[ōw۬W6(Xw-k"}! [Svʲ@2~asbp0%U#ߑ]Qx[n ѫss}&ݨ-G,8R9w j W c*Gb[pOz(~lӦ`L^Fs?gxya73Ny&RN+ YܿtEɉUy7yc4xlTzO \ a: ǩwYҥk@A:q%>hrt 2pve0XZOM.}=PD} "Lj0*Sfvc]; -Z^kf׮!L*ߥ?-3kouƊ*!,?w"GإƋmN >QA6.Ip۠  &wĐ>|;=9 ?&I!*JKN(߷]M}W% #0<`4\D~ֺ,bh/06{KW_Z=?"~,o`^1a!$. Z- M?#'=6h%Dto~iԀxY E ð|c--MWCWk[ܔ=v#GSIp|PFWÓ#bI~k"HB=e[9߸FG*"ӆ n&J~L<솔u{5`™?[r :`z$Gddcfy!)9DfHˌb6#PCheWY.||fΐ=" y @"0YqIu?hIӿP*O{}("i}u;SjK& a?_#̐e=--0AOvSJ ub^0&^Jq;S7on.Bk۽rݓz@}H|#a.fC=e!'m*J$faym’M9x̝Fk9oP{L@f -]>GZk s: ].e:e[ nBEJ!I=WGh>a bru3K|oBc9RظW-K%l!$I}V 9*db#2ĒZFetAlD ] NrF^$ V8 q"Rˌ{UZM8ŸSj<6+1F^TC&W3xWG`J56#waҰ|xNc-} : \gؖ] yNO T3z0?Z`{yHzq %mݵ95Jc';ΜJf3_.O&٥EӏPd/5]3Glt0DhʟIhqf~#v+fJ_%Ō$ E5=2HS YW+Lz"uoZ ,>HWvz+bOmM3َ=3SI|dSc gU؇ ¬ד*`Osyjڍ˂ڮ.-88خl|5^$v]-V\}E =8}/W}?P U*{uڧֻ8tSF1FUFĚz♥jL.;'2E!Wo$$=|BSU8?"иe ǘeW趜(eϲӴ*PIcH #mvkݞG%|']{͜ڐm8+#=Ғer[= q}wu &uXGyA݆ CET-3NPC\|z"*6ky# Y>B,ڠ=x7JoJχi. Ld} {Z.#ۏƞaC#NE뿵O]L&U[>=tmPỏa,¼Dm3"k8dN~U oN(",[Q$8AS艏.^@+dZDM[e9 Q}޼`sagh xhxd$!~ղ*l._m5nʯ>K[Es"gr6UH=c,xB?86dB!`U {ll`,6'#1a4F _`L2 sdOxKSPS%G'Y\99@|?+kzD=].{_=CGq Tϛgh/fͩ6iibqPD=7fRYbBoTDuDvvxa&gjww%%!UV'03lM:"^l }BDy9[%wS OI^"(< X- <>{"nwZq;fs |E 9V,%^{U m|w4@N~H/E}VVw! e"؁ѐkĽgI/n#9 IqWXt%A=>&UC&_z&ih0l ]i s*wk'K %s>$E8u \QTNJ'.EXƣ8A.eOP_c6B`zB'XdH}YS>JJѲ]4?\ 2o%s$Q6 Y"1U2~e6Cn,WXU AmlgkF ӂIkqZڊ-7r~t*rIR"I5Sc15kVI}6ܼd0X)j'SY<~,D XK*JcOKގv=$0jASrZkCv,+i1$ Q㾜OUQ^U]p~%oe#4 z?kj ƈta6i]ȘSs# 403B__ZCꄨtm+%Jw:~rw{slHFdZ9l>v:aeY0q3sVYOgb&x/c&n&2)T*^ITKr#4*D؅}XB~ quQB !;r'*1 7( mA:O@1|: ?HD?7!(;urG"Z0Qy7ՌQG X[x:U̸by|զQ8M;ʮшdH4hT۴&{J qo֠HUƘOGV} @*ΘYxaޜҦ8L~f)[=[7WA\JM}JHY)FLNdfB t"`2i5w~U^U' ߅߶`̑:a>#:ٿտ ̥d ʩoL*P.Ä j+TP<G>ۤMFU 8%ptEhs!Qp>E$tN1vRz'N|y3q* ^ {OЫjj)Cs=z,#Lad؃WJ㬼b'b ~v-;W&qF m2JN<GJ)!F)1="}*vMqMgxfyV¤?U1#>ek'Sz9XxgixU.jz[dfآCk?aH@$nbI<çF S@/'t"Kaׁ"W }yG_[uͼ]p@ A}ɋ)>"trC>W 53GKVD>*z'>ڶ`SoO](H#*7jlZqAh~=ƻNJJJ龠Mr|,w:fxr@K C2s53wtO>E-7aD?mGJryW1vG㷄K@l34ti?)jb6I&R kd(⨏߶}JLcGD>}morD GPMA$)˜9rdx0gxO\}騽0p]QUN2H9ρh&fLVGQcK$(HDJh:x!Zl-FΌ2:?5P GɺCj]Hi HI Ԙ5XpqMWV`VcZ8:} C" / `?H^ ,D2Dz #Sgg>pø(f6gxO_6-h6Y m^Epι꺍9C$’ i<4#Fn\+ ?Qm~0W@OjEaW8jMS)Ce>/*ؘ*ʖ֚`EظyC}H*5&YnQ3<)Έ]ŕ΃@9N,NTJY$H$0`mFay$JFJ۩ o3gC9~Ǔˀ֠3Z/8pdNp%]u99rlk9^z]Cl ,Ҧؠܙ'c[=2ePtoR. RևpPC(g})PõMlG6D?ߏS!&ϾPN]^wR/#gا'<.,pTvW](JcЕkVw/;a &6r,(?k5}"!$cb ܃ 3Dž&|A6TS!qW''wpGk+(_ɉog'IuÆru{Pj[j==N7EЁaC8IN4/"ޞ ﭴK Fu`YqOR!n' .lW^lv 0m$ۗjq`_=~<-g߾}+@o\5yoZ #ӏND8#Si~Iz _[$<*Ms)Yv8sP 2YID9yOᥬK_$hiEH-*X)B+@{E"gB/AQ1dbYe^5&e׾Pj! |77BpOa6hT:U}2kU*'IXWx,MG)$QmMG׏N(ȠU^9d?yLTUfFpy1R! v俋~Q%z3X#yDr{ԧ[Y( 9Ul[)42j bUJ,e+1;A9Hvy/l2Fce}1ק-bܢz߫Bl3QZŞ5 ]C/blV~kKRK1kD t=Ձvc[2mNpzP'P.[ PDԆ)K5-ľ*NmZW0|11 ahFvҷf"A@p(*"&^Ts? gLѡ"*\{ꛠ1 c_oSTrgcg&ͧ ڶVĨ1vԼeV34|,7 ;~l"N z4s:[r" kg5ƹ̢YF6P48TcS9>ߊ,5"K#tՆ#Լ#&t`@U1)1"ٯbN hfvSVI] +L5(5yY͢&4*kLO?ٟ1 I4G>.CVu5")g  2h*$FR-'˹ 9H!AQX:(ϥXc(u>ZWT5{8r3c Qi^q/6J#!E(B-qo)Q_ S07o3_Sǰ!Qq>6P̑!'~o >/I9kaލkvHk+%>H7qPp9<^%m2 ?KaEݺ.|Nʂk_0ق ph@a2\ }Db/H!=hűdYX;@iAYD3Ƿ[v~P]-bjN ,O֭5q:8Z.5jI.3u"(KؕDC}xCd(_;zwjvɽ=a׆̑dHq֣RvG4覱+*N.795f4^ma], Ve\KV`e:#4gY4͗*wXvmԵVP`}|x:YNDޣ[+\77YC.%$sʷWw_dElR.%EF7~gifz'ć14E!&}dX^&cxҧ5;81̩Jx{4!wOוQï%k^udw5$ogcϳ2;c|h (ܒ.$\V0oW:YƢ(hW4[ٸ-I+mt@J)x^Kls@1KmMvhNh 4/ϝG^GcI*iSID>;k 0Нхl-9h&>`zxP/~˨ٓ`SN޳wFjΉ/ynXxY-)C ݪcR8"M [ѯ~wQ&Xb{nM !A:kp )" ld?"G3,L}eKtɊ^f 7a=a}yedVXShL3VH ț6ۊ]xcL}h?Ёf]GNZ:L!OOZmG&z/x,hxf*ZIj:=:hJn#5[o-n#W uxZ>f).3@tPL"% N Wĥ|c]{6+ۯ.Ge;^`Y b<5Laym[z 1tf,ე>1y-!JëBs2hsmr f9ܣupB< eUe6ra_::j]k`JTGjc '@dSn8[UZim#YLm< ɳb׬OL ʈ9OX@qgUwW I#EVЖCAqȶWt(/$ ;%Kw{C{`ujKe2Yy7=dk-.^FGA m~8xwM2Պ𡜓[ūl|3猛*w{h_wQ7-&U}4NEF?$H(,<56XqRk+&0,d0i8+zh9%J)y}8 P)X8?Hma!z2>) /?($T¿ܫwV" t A`8MNJ~P4čq"|o܁ڄx\|oW/(,wi?Y>LS|$yż"(4 X= sTJƪ7dPrT,QljE 55ccHA9D0ȳ|.980p\ NqrN/b=:oaafOB<ɞCs~)қ*MUU% hb-@tvhؿ%| ]&E62&kY5Tlhiʃ0,;q--ڋxUh;~0%hDtgۅW]6+"wtbs,ewa'!ww ,y`_I")oړT afbϸ&kW5h6=\Ŵ8Z.{~\]k_4* Sgg>`I"k5p˫ sA#eOuj[BOp/6at5Jqι3+QsE?VAp0ѿ1LF|ɢd>G4`P6΅+:Xǫ|>O"מ&OD*dVlɁ֖#-4$?=.#к|'fF?8_Qjd2)bc=A |B q <Mlˢ\ ?Fэ-h3Iq慕*=w om*}Ox = e,𭼊g@tDUxHR!(иC循wY}zNzNH뎓fxz3N}W/ {*5Qhm3=n`ʼM?v$4}J^hO³4B'YXټ1Jq#\bo35 y #BgY~Ԑofި^`qxrPj&ߞ5ҐJJ,;v9"FdP 9Txi{u }k 8_]މ23*M'jЦ, ^M7lT췷+ҥ /e1 o ARx yuLB$}R? iHQBbrPP~ckwUȠ25^GT$Vƞ(\ TI9st~}Dg,H†3_]C{al܍Ow%ѠC@EKHw~%q"#3eBsCOqzT;+}qvk PV\)C wyB17 lP#u0r^#Y鰭!hD֐FA%=rvGtH6Zt YY'`mP¡ɢQ>lF?UF2o; Q"67AD|QZjSE誛Iv,"|nw w럽9R-+.2w~rhN3"wWE͸C0-򗉃Q a!s47~Z]/~yG }0N>i[~vdj /WrPeKQytQN0 nP:@!H%%ljIl6>|a'O0 <1&F!:oB'i(S! Et+lWn XM}ĀtZj%xٶ@f˕*7sB09uKms)GqK|L0ʛģ7$V,2f J(6BŜv2c/g=i%Gĝ5kXqӣO O r=/Lɑ!(%rxYLOk^jL(5ؔ|f.oϜ܊joZ_U)KS\v7'멫¹&KZ!lU e`Op$.4@}*f)bcb/i,;>X#Py {1@B= 7eU}HOꫧ+1@dW|, >Y2?2 tT x*='G>;8!^1\ibjB=s#@"ljK㹕E6xI?Y%Di55oP8 .p=1PL۰+l`ۉ)%InI^w RK]Y^M݄}~=c>Pw7HrWpv PhhYZg6{Ǯm &JOmҩ^HA" LP$ H8clAsj{<-aQTu_ ۵?m(c+h;@ ٜX/-Ҁa9A`,.G~hTÇ{W1/T`2y0~' ܵݍXTsEn4.p5߲3֦5)*Α7d!!0i]ȫjr>Q)Ŏ©L,dޑ-q+%]FݗّU8ͭkا |u Ĵ곚!dibb[ɿڴiUVH" '㫬R3M S_FeaHp* C. eT : y!;"pK'Ұ~nRٺ aeiGw`zxƯJ"fG=,j=#XH; >IΖFB7nʤes EZ,_@MhےP|ۈlsm"j,| KA~7;E \Xˀ-#}hгOiG$ ";eQqjɻO-PolVu=c@:@p7nbɗ? X%bГEn,&l:H=20j 5-Zf3̶Y7Vg1Zc2 \esvenph%7x#kBehlxkh;DluD2&6:] ' (f$kJ9gaӻ>gD/X."emI[0xf8rWc-˅u*29CuRI(Net`].̴+5|کyvj">4^7ܫaQIps% ~9F1v=.T[vn{^usaNS!F GV>qElɽ8|89~ +>w+FY*6Em]:МŐ0^@x8̃`7{4nV{/-nzc|܀(N9F[(w&^IwD?NL'4-OGfx`Z%tp2cŹ*%Sn/SrU']h76槗# y'FV0}bm+^zV>vǭؐX.#1 jums"a a).NF㙑=Mȃ|4&0;jQpcL4۶ FO Ix[-ڪoZ_QӐ28dPd;MNexg|vWN<{s% 5~=f?eV:ީvN34%$?wQ"=!GYt/@\!}wkTCQe'<qܦy˭w#]]uQbyT?#q0qqu6J1 #-NDt)Vo]0Tp`-ۡzh@U'VT+3yc0G8B =F 'XBN- y%[^&͙% qAi'4 8Ѭ5Um7<r!F: "s~ekY8 IP}VWl`lpy&Qox?u&?w4B6Uj,M&gfUIjm&}PJ"*x>4{%&uɤ ~]TgϠ]VP8ry.pG\T6qԐCy8n+ýX" Tl+r!*chSS{j5#AzW%l 7r1'lC7(XZPAo)iWoNdݼ*>':炭CKpR'ǽH)Ah~y C_q$+0 N6ZrEIuq|ûVoXk03N!Wö2l%Un }Y`+s԰vOniL%px0x;nD+;8+`5 I8QR<5˩(5;lo mXq&X(Aj&:6"CSELvf= VZ`D]UVm|>UMHOk~A8>e^Z\= lg-hKdaùbm%dP2^_ Ss "ݩpp'2&ه%ң-5{_/iq|4@FW_=%n=-mRO/ |hlXӫ E:o2ɗc]ԳO|@lzC}1aPS.D[5F9ʱ,fz]~@ crB _&.49F#~5?Q'# n\%;3 MkfںQE[o0>6yZć&ȵbiΦ[vmۈfSl6kUu-3>pi; g@lhF˿lGwLoo ]M #'œ/継}֩m65pzun\\9R`C# + *#gxX,WqUO9t@ MQy=y1ΰ(א^RbVJz26͗IbZ'iUiJLNo,"7tn=[IED21%Z޲ <+xҊH{Q:UKx"k&:h\hhL-h@dD#V35%8h-^pQ#|+a|{ ^D꠪] >4 ߏr*e f^8HӂuCA߱r:_`"%|נ2ĩ^ICGG [u*:l< x, ,njV_nGa R$*9cg^bku%v,62.^h ʈvB:|ҟ`46Mc<Qs*|H x:t']]ro!!FW |ez 6n7N#O\BR-#$,M5%H WxK!Pze}A/-<كӝ,-uGrt?Y(WS2ĎRGZW)̀0+>Q'A!qO f 0K'0@6ƯmYyb]I'z_1ʱc V$ݱIwC[ezѭ >;䒗QeS@\I_/;*J_Mp~;ԒaC<Vi_(ū1 pPԫiZ15a# |U |Mp9)g*߰w1AIvHBE$8Xtq8mr(Rgȷ,S`:z],RSe— ! YE0J$RenY7O-U 2w d#Gu;^onX4A?M>^4^O!J貂TudjsBp"v AVF "r`^JunERh{\`0>DA wswLJ?:h&{TYڡHO>GhAk{lߢrFJrZkYgX^A8d9tig#}og¥Eyq]ts})$.q~zt@{-3ku96Pw s@z]м_=/HG9tb6ށ4n} $"-%7_VeI1~R0heƴv:ۡ(UU1 ˨ȶ=e u"^&-IzB,KH]t"k^%'TNdE#ΝO>4<3CC] 28Gu+PNAzb'26dlԬڊ@z_KֱSURCɈ?cdJ`ΈmhmNG<)Lz•XG'GezT$ E:ʮR[}q3*&!G8##B>{eEϕ(? 2ZF wm]3qMOFv]EҍWYZǙwYڌ1eJ2FXw+:rV1*s<AW5zmKuc;u`~жʻѢzo JCqa #3 x[tsH*{ [.?ke3$ `VK֏i69-.Bˣ%0Q<ﱶ- paI[} FNɏ^MؓD~->{]kTac<9\c2$vbbR)4"،=;OY=FT燂-*`bz~`"RY1UU|'ټtWIG'%B3ؑ(, 8먕‹Ҽjk-I m9d:'=8k<9@KbܰBgXŠ^U4Y,2\ZҞj~F%20yz @8ykze #`qg YD^ ݚ#t$^YhVE2{{K:HW$04-0 s t}9mXI7=U9@)|~{%?ooi]cPwp5ۡS㙿oN0*nL4.( r Fr.(5ME.@y8;ZQI>kz' JP%1VuqtĩxTTE/ mkkq#km Ƒq!Ȧ{E[mVJisk^@SC|b{}k{=$w"ZtGvU*Cz# 88(f#\k35.g)(eI)Z-NRHP /_]Vٻ_y_H,3n4 Gf -S,ѡϣ|I|LZŴ0nE[|=-u#4~}^Ux=07s.mIOtqӡ L۷"SULBHƆtxDjHQw>o5 nXYECkʴ] m5j9n H܁.|&/$2$Hw@0<1Tkmb']dR6vXTר_L 8F?Z8;!P%)g,xnO}(3)2 ;\ࠇ`-9I탔B^D؃{b&ލR{ ݆5(Q\ <;f/.pXL | *\z)1@ sXeV9>zK' ^Qnytm.ɓFC7bկ=9u,Ϙ9&[DeS]܂F;w J0hz3Iuy=q%fPx cdhJz׫9ik,;/jt:d}w&/ZLxe&~[+>#pJg)=B"9 jdr̂+=ӘԊKCqO5!9)gޗ-wD=W>@v@'&!`C6`P+,@U |yU<q#[6-ad߼ >watBP̂Hp]-E!!jZD'ʱq|Xo ^ev.GNP3~+}VzMF |ؘ͠rb ?~'(ϧym9)?:WGM<pd0J-]i,Lƪ8aypMrd#4`|ͪ@,U+IQ+8 Ŵ:^rVM)ZeE䕗 *G :}XY~Ê/ImC/`z/SԐ!ym4R`=ztE*-{r(wzͰrWZq32p(> J2]I%{h$1>Uқ@*Rϫԉ9ԦG**+ 4װPg6eSS> 3x ~[u,R($5@z 󈬵oM1!{ Aǁ'E=i>[rZ im.]@GR<~qf3-P٠=^tfZd FR鵸%s\_0Viմ W1g\0)Su@ Ki=vjg5<ӛ@jy*,[]~zĤ/pKC;jH{IG~j/fҽ5(81b)a~4]!a0"g8V%PK-LN7ppŰ ;JW?݈Xh|ǽ .5$31t+=?GnLG7:ĿQ>^z!(:1#x[Q9sy^ w˭pls\pEb,ɶ6Ǐfl, TIT؈1zՙήG)ۅ05ѢXV Fc}Zc1XIS'LH:C+pHj(A-HbK.Hvf hm/ڽ[VahMzN 'DgcʂD30=,$I4ocrHhE)ON,C\\B^x عOQGz̳EyrE# ǟ]|v9g Rn{YYXńn_9#6hxvztU(K1ӣaջLt?Gݵ(iw(zx=0I0~bJ7"5(W g? 3"s(2VC)r@ÏA(A՜Sj,ʐ*\-XT9WeRoI֧*_?(|Iy#r]%^┟=lL;;SF~f)hEC0N"5tI[;aoTi7a1 n^ olcc(ϙ: Af _wtnb${mN+ +w\I0~k]|Z \ ف ^L 34 )fٺf_-y׎ޫQm@g'f<E:w֩Kװ I4>Bzld딎@O4s 5.;e͏(`vnUe>MS9oL=k#g* 5 hsݥ^ ^?@'ov~8j0 > ב[sN03(^[gbQ- z$V\΀=g-!yMTq}3cʻ~agr1$p=lGqW`'qJ5#_ɈR Z I? dV&z.pNJɚѶ3VrbR2Q 8r|%JkCи1 Jcp!Div|h%[Ke6i.л/DD]ڐ̎)9】 @M:$%ٌ!Xj5 "eNo]CBٷw5"ʴQ;\8+|$T|nP] B= tT#>fjwyIkC7\{OEε>gs1ُ%4 U6#[$9xߧkfy Jԫ/X窺E ³ # +@e?vsmF'kVe~"}tK ,(_J2mTV~p,,%RIяM.RBK"E D@<0ʯA~Mb sik r\& `J{ʱuj:1iwX%lab֍Mũ|L6q_$9LPqzbݍdZQ([?dVJoDT53qUo?fP4+f{BC Q)xJw{Հƫ %Ħ6 }V!1赼_{5cJq!Tٕb0!4Eͫ>EKt~#T=nB?cu!8X971<CDR30l~IG ]Q%tUKfbYexE,+"mRficCPHT[o LSpjL}"Bh|k*Ir`ٝKHȕ0ۉY4LeS%54Жðf>NGj(@ JH]sw{t4~_b sSwϼe)Ჳ^YFE 3NmcizT_Ae^V%GbԹ:lUZY$~KGV\|QbxG|MK`h3G A5D ܗ[)um\,I$  pJ A;APz܍չt[>P4M*9i W FcZft :Y[60EN2iobV8B+xIFO᮰vƻI/=Fo)IfBsUeZO}dHYEpۥCK,uj*sQنb0\֐ӡ1,O[#y_3cX#x$\tC/!m  b= 2ѦA 4˴ur7>!c†zu5UB>O,E 8*OlV ց@XL]x$= H0 ]VֆVSnVN hsh}?֪Pec;njgܬLiV[Q^KW$W:Fi5X Մ7LJHbG:fVgU]b^ 9W>ҕ3ԏhngi1$ Fc0z?XkXjI YE2jO;6RPUJ``~v(a'asGo= t*V~鮨Zm+X!3hEe/+!Prظ/휯mZFhTz̒AȫGN,'mV,HCO1 /5rn!5x}kvZfSg߻YءJ,Tmj?%emX՚*c䋴v/w_wR~WwW5"{2BKEf 4\.bBfO$q `! Qu>w$B@q޷< /1 >°ld`/гaL9vdwHG|GM\hk36@rP.`"+uEi ؛{-J vKjփ8I-#<{i!JZZb'AC ɎXݲe~VlIߕu@1&UۣB\7xޔ/1+7Qhv,'c]*dɌЫ $W-DYHQ0yVfap)kcZ`:SJIP64y*t/B+s+mbL3> LFe)fqc#yQnN|<$nJ kI$k)pw_Wi|e( w eis7hq{xUͨ3tCFbYV鉩qí"-Ww~zg=iM 1WNM)&43߇0EdK/qڊ^FG$*9=#SwPިPooLodnMb*&g/BJe-DRȔ-| rM O9٠|45L\$!AQhx:uiNbL_Dz#` YќݙmAV͐A0vfPfCxY/-:]Cl{mBiحR7(y2 kvyFF G&S9t)""JBRUbW[R:ZƺYA @G:̡CGup]` oO?WN^j~ܶ rƳ8 d5k4\ڟHXAh=IskT? %q'ԑvq }&-)aSߢV ,ON$~K D32[8f\|A4#VA 9 LI1lD% >45>S䀨iOV~jH M3:*;% y~"kbR- *y0x_ɝw`.X0OQy(\eCpW z 6^AK4BpG '9 1 KI1eH'di9޽5>an~Yr%EdQ ff'MSe9yt7R3yR gИ-zK ׌Ʉlжo8c2Zn"{Spr\m9 |n]-/ |*ή (-OE+T3>S@}d (s6Gz~˲*FAˣ jC]%f3%6-a,ʽVETɅ>R 4v$"}1>;G(ү_kSsU} D*Ly6Nvw,7$|*TY_gJRƹc^Sr ׫^oTW#eP/xp}]X^Ebhģ[K~93Cod\S\pQP|I@Ks7AcF;TFDyYU)_jpY ~Γ 6طwBĆ]Gn3|SfZGL/˵1?^KpC&{oT$ɝS7Q\z%n,Vz}Vb:@s)"AV8OW 9`!bؙ3`:'IWRxak7j.SLXad&AV.VؕJ(Ɋ73d ~'ؽڥKM~>@D@]]ze>z2(l阝)=fCŀܣp{#wEbc lF ŭ!~zz5 2)>H qߞvgA!C5߿9_1X;l"Ѡ6bN;ΗQ^x DTz9$vL{dAv1b_ֽA5"-=r jWdaS$l= ߈-1UKiLΙ*Kv7 6cPrf]D@m뎽+wϥUy)3} xV&Q!pObAu<Sk;(U<#u_[+`44iHg@yG^S N{1b SRIh F$Ga0> m$=))r*7\ 5ϔS%0qPcl֙Kqȁ"I\c@\/ tU0`a&2i76ac۟=lQ٤Zrʠiɫz#@eޚtZ$fϑi;FG#:MN|o[z+PcڎcР['YKmZ gpxGQJeHLބtT ЩG PV'(h aV_XA('6{R,W'H %m/2@Rz_K'?lGu%vIf JM&94h5IA cի Id*|f܁d͗Ht8y\_MP+5%Ÿ`^ ᠬY#|`md 8q2R,-Rs&OMܸEzj!hAfV:$BFeCs7pox^ 96OpjE? flJ5'RƛW hyYsm7\?jEHUJ@vEOeO1} ųf4)˟,8dO?І(LMF *30h !ȡ}oXіz5/MT"I uqq4kFEgB m SVra:rS)kGb5 Rr. Cr{RW #U2{70\nb>,p?բQIE}l}Fv(qJGA/ ll3 WAPN5z<%^wCJ`[2rDhm_p?|/ny0[N|Ɩ6ޡdl`56NU;?K&7z]#n/<՛.0o%`~f+ _y#Λ񵖜@>\5r>b 0_.ߚGWwvR(G7) ֤j|."GvKGSJ  O|q.__~{py4 S->}|>:>(/HZDhBIy,ϳ%=/q=Jø%#( g kmE1= pn-pt!mPbHCx܃ѫ7Ťht6B0H{- >Աt*8f lK 9 4%\|r1 عHsF_\Elm%  89ɰzSҋ+s'G L5ia/ s 7:2ۛ9A9r@' IL8X+3t?*\}tl.n_J q~3 TuuUK%"™sQ'NgI| "kQ(#ߢd}İWķwMȎWNzjէ"Xnm=j ,v #@(%Kc5N9^S%ߢ{2?0e0\G>o5a[qj#yo%a@dC:pM7S7L% ymSCsHs;UȮBL4ъ7+zzXh3GE"2?4 Lzl))wI EdGk]7t۽bX{Yq}Guk_tʂ+{Qd[&rN]c0h" PJb^Ʒ Q*JPRGҽ0 ʡ]|e"C&ҶiD<#rTJzDQX_ Rg>0I~KnwC$"6ZE,N(%\]&3Ę\ gPT3pcgWUNS6BKCTޥ3ܐZ5`vpIG1lU(5ȶrPBfXUA`1+sQ&w9ɾoWONͳ/^>(%[4UEQ*yH,)sM^M `xBڬ55.tIOʈ/)v>wTFyd*'Y;4ͮ1(oM؀{ 1dUZD΍R<}˱o(DzOÜU;l3>'.@HZ G 6ewE,Sz|t,>s&f %ʃnڵ؋3.Tx`Qz"pKZzh"(.& CT@rLC50,ED$)i+e' c1H$X]yԀ==FG 1pj_sVgL7bNB/`J`\ŘH-b)sB;&ޣQAsEۄ?ېx*ҲϽ$߮bNB 0"~W^>Zeı331>MH;d:ܝxGb, z1<ڽˎ5*kvzVJ98Ye'Cm!ch]ad.?b[aX Fr޳v6=M,xY?@0q3zTV&N-\1VmBLs":D=AAƭ\WP6E/1 ̤!(P@ʸ~ڛH2 &Di{$sm+fdHڿI$`G`ii Ii/\'S/A&.|= JixIGo{ [9=k: ٗC 8w'4f.#]zLV"` օ;nQ`|5p/4D:hMP|+M/ i DV Z9{/ wQ"rTj‡Ece RyZo)8pQ{`ᅌrUjv](J"$w:3Hz7|vkrry o04=-E@Wd r/6'(4*S*ڽX ͏mtorEvQSqm͋gO^H#DeOV`L;6K o/H& \A`%fq;o+$L廆dQ_hR*]4f֗P+IpŰw]h򳳆,|"SzOL!M^´A y,Be(gZ6)F NH4Y@q)IO(ƴD,բ14lo8 ZUs|vv;p#%Mu7XTg?Yu(hDWs\zx@ XFR텀U}"V{Ҟ[@ ;*c])'!)Cw*'þodkdm {Qz$f.5>qۚRvo Z>򯈅m IWT&ux.^ۃhڛQtzac&>v$wr}Ii"<̷ӑ;ƃ\³6akCGh?nuµ(>_o OÙIʕ&$@KB%wW2vgr l\gA5!zLXnT EYHPؑIF_'QOLJ/J߭-7ڿ~RįLxXpA) [Vxբs/Npv0}Z$f[*V8~jrq$ffYCrUx_Ϥ9FȿCQO;cX>P4>]8"`} X6kLH4&6a-oʑhhbu *&odLwbHoBz曚?D P A$svlvE|lP  R!74O'EM!0!_{j.\ |)"qW@yjEN0CiB X#J35T8m\*YM뻻PVù02-maSZ4zEC#}O!KT丼v`IyG 3i@լÕ6V"_wI'"#gh6=&a*E 5sDqLff ){[&W(c#=XUncf+FZpZ 02a`hܼ6g9ch^l6+]bwgq8 n=[39VHZ Mat\̪#Ta뭰/l{%6]:l(,-h͵fĂH'yӪB;UPݷtx5s b_#MW͕(`ƃ'# .0j!6e5® RYX@nk}A)}}[y "Y/GC\`RmOxGNc>,L׎KG55Lu l3zגz&#i΃/{epAQziwKy, ^tc_\ֻPR-g}dx5<9 ܐT_qxo̊xۇT(>P7!Ļn7d**nƁbkYL; ߒH|~in%A AE I<܌L H.FvLP!C$vf@禎xH˚w,CHt?3Dڵ(Tf i[ki>(sÿ Q'ڳp\b`JV6pxu1Nf" ͔UCv,G(16#ӕVC2g]Lemc )SfP P=n(0xxۗP2j(9QPe{P'߫?Һá6QtTwCw%^KN?vZ5gG\c5{o`6 EęLY\ev)Б[FJ\^8(d^g"[}C?B-ϔܘ`1~ T3yo,DD^T¢PZuƽ١dZhkS[gBU "II~xe3Eq+L&5r "EVS^qsbގ5.ٮ } =gvG.SB|1ehFYPbA J?͓ SdnVlQ:[#wץqʑ=ÇPl'iK0g~1&h|6CB *XLBʖOS%H*J'l|gP Dm˝L>h,Ba`B1m}ߨꉮTdks*p܀wϟ( ?1pF{+} GXZ7[NgݠM ȁ6J {4he:+Z@2D}ˉ+ZfU ɊIUaUbIGg z.θC4D.;Fjߑ$`4U>IԲx>rcVk&$?Oa:?a{=+ŦWɰ,gh?,|f7+O8ON\/J!(ʔ}ˉR\t<%MY~dkzm1FDAxu̐جv=0x$;o7 xnZo0`֊}L 8HT}ChO3Jb~2`p\KL G+DRZ ^#P# %5:nY-^Q`8q|` Qi`*nMsƟp,6{6}ֱ7[+^+7 #!oGV9{e|e7}N$nn^ֻ6s&x{DBdDWoͼdJ bK!XT9U~z\[B7ňzU yjY>^+ڵ%0sG94dϋ!qaQy yvKt6~/Q Lt#I;>hط)$UobaD1zav켆s^3n}f]bw4Jkժp&f7X>_XC)&=0Űǡ5:G]-O4:蟰'-e"`z NaC|Eh1xZ{*|zq0R"3# +`qe#?Q eɼAŐLhqbz# U@f0/gG.6,+ↇ Jb@„'(;?PrC7#1ͦ@6˞YwC$6Geg+6rIJ}2lّE4rH q D"p5Jq_p_JUyS5ڥ8(HN䭬-da!0\Q>d!Μ?+˰O,V-evAec68f%";rL0+')G0}dR;V汾k OqqTB*PuQs. C盿U ˑ}`-]73l=F:cEĐ-`ԯ# 1P@j2~Q7%4>$iVVįh0cǓ{!DW Xh P:,}TRR~fMijԧ8Aoz-7ţF܅H̍eSEN ]O@H<' +2D7iWM`Y.\)6!׀gb! ;Ux!g.p›]澷E0$"@6d)xownpm#'Ktaz+ EXO fr7M w[ϏJ'\J$cOԩ2H`%ݤ&^׏>(5)i1m8+^ǎ lBc-F3[v2p~ŻkfST'%_ލt) cД f 2*k1~ݬ:,& +mBOe7d$F~3ںut6ǘ!i p厗 Cا&7 %ƈFWA5(]   Pc;U* + U3p `6YF4\& 牰<- =N[[cF N)fIGw6՚߾'L * 4RP;-)# Q[@^FZ(]lPAjR*PmTNQ!el;52un=3$A>-rh\ŗ(6/>9L9x[عmV`Q -&]P}nHŁOiwc` T6HqZ=?%{mioW` FFr[4# ѱg!b=rSe&W!lO@/ȰՏ}1aN:QpDI=߻ꑘds^ H?ϐe<փPgq8PO63d3D %,'.E3ܡFS@Ώo[e YZё(ڵ$- T'fJNi[ϷeEKb2 y,]1ƠŦDJ> 3*MeMJ[%j4J%{MK^giXPTw$$Pd$.%3(™h`&·ySp1m5L; ep }<RwyFɖo%!يg̡bCkYqe@_=h\RoIQ0;44-P WO#"uQ<cG")}}9"K76| +KrdnBq*] 8e>/ = (:`޳@RqV,ޣ/:mmx=l3ĽUgg~ _MAU O*z:vN8=;uM(hh&r5I}\qRgQm[w Ď$E2qR,\A&3ӣQA7ks ݄enY `47ޞ- ˹ 摦 5.%*> p_@ /[b|>TCy"TOJv-L"W$s'0}!.7_3ؑ K(3HEcND7##U!QFQXv \nd<\Xc)Rج㥇BUR%تmJG6s/!Rח¹R }oE`5L"wHx s@$uQU4, IW߳{bᅶA&IqB鐤.r[V+% C(!њ~(p1͘a)Eu.G͹^T㹀IC`nm'+u-"TZ8(P_AVykS\4ծzc?egTarB? kf̯@~PO\Y>လˉ\M$Qv{bxQTf>k.yug-e ( -97 4?B^n=&/xa{oEcb\P/4w+b:h nq> _7( tBe\m_.+9HƮ'hqAinr]Y^{sL0i0ؠh.x;WvjHߺZ$^1p\p缰 !uvbߢp7dN ׬2֊mʾkdds rKtA(H'Rݥ%;u?$26 `s^H5#~Fa X!9 `fRg6mkބ.oFZrͪC\3ǡ@UF tA:J8k)3=o / wXv7nP jLP;4V}9tKeg`UUvt*uK\\{%.WojtT?e%FVmU98q$YM S. ܐ!;E$m6=3i;RODc fyE .8lG9kPޖ`ކ0n`2 O¢xQb)HMh$xV0=ˈ_^8KGZ; qQ2k^8EY͚T!nw&.K ֐;eaD{1@X[HvZA<8iuHs7ngd!]?hg@LhHzrx);≍NIo\4ӟM ^s+Fqe׉ u;IuW^DKZ=;R׊KgX\G~(Lv+ur>"TfPC*Z}Nا`lA"|:~]d>s-d5&+D2阘@Zvqyj-TRQ t2ÎT_{?.a>L_pK.͈gX{ySkOұpH/iE}Zfas"e^(e:UסGg͠B稨VTDMJ~d#z Fܔ Y{5HԴt.e&~mL &f@-25ᬾ,eERfZ Fp"↷-bV !I`8 LTıMCM)%M8 > %$| Ѱ>ott7)+wC>=61m̊dJioy4A[k}ĥ.nGӻk{Ȍ_nxǻL&--5<1x꒪R?0mMx4JIn[Y%z h]_F 5cgzFNa)]|7B«sb2Q6Q`qIbi 1QHVyOCj*m#Caۚ?wc5E>*O|c^Sܻ]G%/HLWU@a&9)ӹPQd͟/5x~6.s*&}y;-qT?A`;9)nM% c`j7C۳}(|@9 .kf.MM߳ixo;`>E0y~#:Crwn N;y|_+̝ 1 -L5<YZ&V r x]dbVPaGBtkw+ өJ\X߲_LNoz0" |~\6}d52&->,(ۖƛ'V+|P'Ls\ *=j bt{NA/a(Ez,_(UB]pZF/U\atjw2$嶘K噈.p P>L/sW'wa" JQ(M*zy@J\JԝFC.ԼD/SHgG< S)? B!Qcq6snE}l7fC"z8`K恶P!eyɎ/m!Y.d $]a<hZGH\4qH$JC66J8=F(f7q./[ 3O9,~/-K]q5u'ELd"z$j^+4`* OM%;l faļH-RCV[rUL^w`?vWZlN6QA$lsofg5->˗F8?X+q/}aC[ZY?~Bl(R/qE7{΋V#[A}ٔR3ü(/!M@;i{aA#M>PR3$~m714&QB@|.~;E'sNU. bUv:%n0ekj{2wvbi_FU<1G!Gv8B9|]3bYeLYSߤ ¨c8)(acSy8V&JF0=n7!t#ԬQ(8=lj3 ^ԫ*:LΏ#=@Vy]s1 FgOI?8{@ Y0CR",eNtٶt`ݪ]_Uc/z";&ݖ87p^8\㙓o7Di)NFa}< u3te6_ZuDѲ~-$"UH$rwB+0C kG+~u MOuY`e(@bB"b*M[-s~7yD]cm 'f-LMI.ˌ9\jW9#*z iz򪀼|N @~Iʧ.SC~$,<6$|dbau^,TbId{"!0~F؉XSJWt.zAi<]4>{*‹ɂ'"=@vZ&Vd; K9q X&H2 $SFZ]P+7=SDZ& įE^Nͮv3Je ]{CĘ!z.Ne($pؙZb)lޏ ?lZ )O~cA tʇ ˺nwi@#WInSDe%P&\='>8N,o ^+z:0ĘS&ڷʔԙH Q6Oq!4w:~M?ybﵕaOz\>k'}ƈWHxjZmios2/kp'uSIhHϣ/NX͚'K'T|!ABꤓ'h Ɇ3Mq-jG_I`Q8F5>SX!uʜa] 9uB y&ϸ n9 yI~)jѳbU ʲ_'ÏDhQ} XNYh>wSv~&bP[(T{ Mk'MGbExbRd)dH;y-}d+j} !e 9dڂSRH:{S2oLU(nOU0E?aȣ;nMcy=:.h”'9Kx,;&Ƞ".Qpe/!`NmB+.| ~@ seC%vM[5a?R?*:+m27W˃~'y IKYR{j;䧙vcmje7DŒ&Qgg'P@Oo¼,jqRjH6W$ $; r8To3T Wc[F;$@ Z7nQ#06QaӐw:FBAqoK=fЙ!F#zu^XҒ On0mn0!BfyZG :qKמ Il]/nYp~Կ͊Im\U‹UHoc/ԏ8t_FR/RsA]4VZA+7(Љt Qa 1~d|#k 7+KpVw|E{Pn_)E;jT#vIJ9G1nB*'BUsJtH]K5 E/$ؼmKcEpI.g~@\`@yDK B%@jT<4vtB$Tom4لmGbzT,7uKSs8RYGD#q:t8q]u5 V84aILַbbpg!-)Ů( fWSDT`^QNx@KhUwc4*QG܉kW ^wdNnxgbc &w9t;Û&o}W8 G?jso&VB&.u)aSa+kPC 0i\(ꗕҏڋ):mh,uKM78oom8ԓ@D f\)0!t#Sk)sh ,|SGEu%xs5LIOyh(XXqo0)qqШx,;|+j%e$1:-Nt[ /0,z >đ\~]kJDw.yNA|G5JБTC5]ʞ$aB*sq77 Di:rJVS+)\8a1~ ͍SMͽ$,e!=l kMrs?ljXHa?oɹ-XE3,=J^m.[Nێ_[{Oz;>9jb%-4i ȩK rNj[-RԴ`Ę{4sE'L NeYHt sc{LҶN\7Q;fۛj] _"a[bX * _&Tו٤E-=+ W'S1EPFS>WB5pXH(a(8:#C-rwvl'|dn@m(aF…=,=dqqTwQc#9hCk|/8~}UF VkÚ˓XwT:@dޣ\i%fAaQFĈ@0{6|UF?ͮ [o`ҡ^6QZtBBƳ"} _SQs3d?vG̣nOtkLQfk{g3b%1_f&s\66QI(*AX<:9=?(n" eh\ p#jNfs\/`/f' :kdĽ0@ª*cW( PPgMh\zȬŠtDi~쬤5> ~c{ yZ+\px(blv<r韈=z5]#}3f+keoyXGpE l昐#yPldIB2+`SLD6ZĞ<``O*}Mvˤ:@TNb>Z-Ƃ X ukvdBM6ep(#8(!`z,֧A,3f1sk?J^bU@g NƯv@0兿ˆ™on9m*QRflʺu.(l ~L|vk>-HްT}G/fMNH4 ,$d6glyځZîvey Tb4g&K׉&i|ᔛփ R/QD>`5.-e![Zױ'=e:E:Qxa}܉ɲ 34Hx.fy<r1X󷁔2oIA`0x\K1 !y*6w\L`pYLcZ B3"ϯf;hj|a9~BI>=E+aP9o4P8hHr<;l}RZ0;Рn \[QgYŹ_@R=qWbs>{=ЪS 4ӬpGԈ&$^5(Tomk6 wTtʦCiq; '׏U| L#~R,!#'|{(,p>&<L&+ C?͏9Dġ W|0JE~khߺmoFLlӨ5wN_Wnû0:q[h`?Dj@~5!Dl{ wb#SѤK(6.g4}rlFif)F#׽u>*UB'pDN:(38Z`gaһ6{'3D`.;e5'$;X1FiuM [ tx/b踡u[6a+uem8}EyEz7PC;eYq|^k+LfZ\V']8Srzڭ|4ipQn[>7:BO.~ uRD ,>|˵ ˕?Ll3]Љ x2iOtU)̊|l>Pal$,c}ݱ艹W5MH$Bo)%'P`e?Խ_KBAgn̮V6%gIt9*Hi4]8q@C1#`| sj96M-B'L4^m6n&}7K ج17m'joa\#(*Y!`Z[3^)|M0Ua dV/]{S|Qĩ]ɱe]dL$˥эf;e7CU*z"s%}Yk.N|`gTBwzO6s+ȳ9^;kb]0ND>*lOգt5݇x/vjn^2XVp{Wq-*sDEy~u8+냤ƢsznQ5؂p']p8$9@SDYfZK \ [| UGnޝp&0vz tQcDFZ+c~l[N912gѳ%5D:+[iק100.DΙ=HU.hON?<ݥh8yc,–rN|Qיvpre)\GSpMb}02Y*oRLѹ:6 )@OԦNS O)uxJ^ocODL]^C n׊lzj'gʏv!|,_Mj#zy Onܖ6dz'P[w@p i=Dbm +bn5Tb-Į ]?\X'FwA|kw/jBNTk$$e9tZ wMm)rdWX&e<._ ·.TFU}eďBLUT/(lyW@3"}1n;Ȣԛ:Z51J$=I8w3 @|mݪL &ҬԶXT~,1=m:=yO—1U(HSl-ܓkaɗ~͟-D3YH:mh4oOĕz(\K(D8@̈́QUl#Sng6=~Թ gj%U}J߳ E$J7qu^46ѷ6]D>F뜂!LB,LOG `q@ң`NRRHUIZr U"'#jRkٰr%JMLeԟ PbPUWx^%MPSJRڼ ߥ2 i".sV&B$_59njlNh/u ^T?.2>`ÎacL;FO/Cda`|d5^f - feKH_0zIV=~ ca1{O&i]ww%?`h@":b+=M #lFS%,s?m3q_':[5 I+͆l Epe Am.q YLo'BLf[p@pYaBQٷ^$>NtgjM%FeGM3/fgj/ *17ng)xP=V ;SgA/!I_q7i.D\I%?^{osS}2?! }3# |81G"\l6L/5PKZ"s*q'@Տc1{o#2lon72i][g|t1u0\ |e:#*Ɔ|,S 7KY9 4˅N1pJm * ]M㬗&7 p0f,YҸ|~^ Sx!C#9 Q21Dxc[B9鳂EVɞHAYyki~<4rS{' IS[K0Xn7Xy<3Y8?,>랤(KtI <BTDtsc~t^E`a ؇ 1a ĝ 8y'!\9<b T~>6g`<[e)'pDyzַ!ʟ]G Hvⶅ+%i`Q1}Y@Rj~p+x Y[[l(,FxΞUX8{%R \q X̝${enOQp p"C|>:.ժ @co{Kv6($([ l?pOw4޵o?cIn}4E⒪P=DfڥByekCdŷfFVNyE"s#ǕVn=&xRD:O??˩3=^"cR t/,x)IGj@'X-`S\Y\BpfHLpNIcYls.`uō#q,ԁ vM9Y DKq#qY0 ,Ųt R$dtcu>c'֤rFmp-hVG-?|kdJQNy)U&ZrN1p`L{P%IjzۖK4n 4h 9ʨW"q6N5il={wvր0`9\A=H'G H}F =$M!(TV5!fdrwOk7XJʥ <e g^|VJPZh=zLV^0t$Z_9Cˤ*F~n)SISCwa\)e w%SIj1E`T?}@>(2{YWٻue7@\$#<Յ0aKO̖y>19 Ka4%g( %*;ʳ}w +YCJ9sZ 8OyA$5ΉhBpw2kޒ4z zK~ *^#9?LL{&)sX=F֌;п$TXfaችzxϖf !Teڐe䕠!ZԳQkv(D Hw?e:ǓX@m'r ^X~T꽨ցB;\W/w^F?_*~[ĥyÊ_-w`y/;zHc Wd~|5K &ٹL"KcX>xX:~8]n.BF%{JտlGatֶڑh3X¬RO(O߿cF ݚEW~Ufk?&ac pZůqp;iFA1*rA^VF1 DÖt`7շ n:6vTO0{~8nfYdd$ǴUb&ƹ )iK_`==w rs`My|]vٱ^7{EP.?稲@J5K窗 Y\L$呁e'Ks KY';Rt"V7ǂ6.^}-`%]9<6Y,y4m+Pe2-H 80ݿ1*6G/8mqD+8SsG}"پEmVx-`~D%DXbqPiqnj+zUMCIWsAYBT?-IU^(CRmֲ:@gM*}"sPg> Aݪ6q ylz2%b}&a|B\/3PQIu.^=olհx* 5+ANbRЃ9fYűDV ZQSs4ݏ|vN5]#1d$~eLEMY 5#p5l/Sn;# lbàm5O.K !mRQt:,*{3LLÄ ŮQ 9YõݸKp)!:q-{vqbtkʬ_& B'? TXl"( -_6iT}:}732m$iu7ƲJ:LBwGbg ՑΈ7QȚIpsUI9Pnh]4}PBz=[t7"|kvr>T$cFբ H8GL }9 纨{4Wn[} (m9N~{>n>\2ʸ0^M"N5 ,zB&43Zp_בh3m|#LLĊY?Gz[YCb<7"7^sɏΕQVɱlF+X@u ,3bjK.s(7cMɪW؉oQRlѐ`++n0Bqa}tfq\m!w$w~ Yd}3>nvG/NvEX{[6w]5 eU͊V(k[]vGhApkRvWL) 1P6pIt#v) h9`WZ5Bqg!2]BOݚ>۶[P*fʀ-2 :wDت]ml`b@Q T$Zݨqa.> ݗ=&or0 voI}o8 ~Zlb8EiY]-vus/ r!`5<*Uפ7$˧>a{@~8/؟w=?=RofFW4RQ\;sYCW]CS Ʞ貭D_z1dqS3eCVD[(ʵYH>]A>ϋBcMCJ:&IgYk#2 hO@@/}Z/eS}T_L}p]7Y%_ V$;UcJ3TԭaO wD0Dn=ƻ<PDx5~,H#6&t F+{w+aOIu%0[Uv}ņEO݋t9f_6=U=_UTǫ81eְO>8Wa7v7PA<1xbHj6p )n&93Ԭ>_k,C2c GW R _d[-Қ޵FUV>mxYBQpCNS٧Ug;3 EiC\C+١cmIzG'۞ tJΏb|9kAI˓PnJ"TMPzqq?ߌA ,4Z$W0QMFh13>.69itL\3_; z3ZYPӟ*KE0RFC(%D=i3oe"[:UbꘒoMZU\5iFIS@c"KH7Cgz7~VzhU nm)ɮuX *g6f{ǏQ?8X{'Xbw . 2Jq\bpKkhe~;K띝[5}eJ5>f ['a~I{|Q uKuN"1-k4o4L^'"Wy Bj9V퓫[bB'$q\tTv?=r.석\ fi B+HN`&zlӇCe1}i45wyxG3EҶoD=j BSäuScյ(ajd0NJYO4,"рs 6)*r(0k<S2O$:C}k^=aME5a|,?Ӎ;N|I$Ƙ6op~œ2v0= qh<ξ?ƶXU:t w[.: eШzJa1y؉te,uɉY1:u֠°]:njM]D8(T}dU464Z=&7_@ ̀e6⊧jV$Atfqk^ym=Ҟ?Gu`|$D\c64tէJ"'ŕ~EU8tcC~.s !> .Fiܭrn< -E3{}˄PA.nrjT]" @rAZS[VK_d U ͊,% H7}^ L_S>NUYNRD /9Zd'zhޠ`*F,R,/G;"f.PF5[Ob%@aWY,XQrwDGӆT@ RXp34R`_]yČТcI(w_K5-bjucz^`1ʹBh[7WcF%y}@϶ kϟ c[`;?Ҍ~qj@N7 z ˌ驫H\CVM~bA}] N̍Yư 4oFF@AUV |M͑BFi Yܥm,ؿ#C,{6V4.Pt]3Pu$6xS6/m6R{KdsZNƔ/":Ya9#40qeBEgA|FN,8x_HCS'&N_!)j<fۚ`P/aVddP 5Ċ".3FhC v5Jx}r4~Vv8A˅8 T|s*DzM|3ᮩGg~a邕i<~9TG ^P"N#<ՁJ}0K*xdn]&}$R9I scZO@.\oP1zO*+5Qa-9mkB`yԩ]*;?oc# 8 ͛hp+ffmY gAZԕRZ,o$giE"40ȪlDq26qUI8UFF,(zkf~f [y3 t{ɫwZ_T>@$/Zkq/Hӎ頠?륨.X2?*?楬\ .xPex~}F}?d{fFyWΰNTT׉KVecH^ݩjmX޵PqWk<#:\f,#Õ|_PKJ|wk[PێtWsT0@I6 v2z+ Ud<jFcѽQyVv .ӟէI=N3ݢ'"h2I[U8¸ʙ`H5ϸǭzcY;08Ց05`zm:U iC /[T %cMzɛī {,W4Mo_jo d%t~!:RGb٦xrwd̸f;Ҽ6 4}ۼoâ\B/B;Т)ٚ@-+ MLh*|T_x+~D@C^eĴڿZ /"$%bL`)|+Q_KP^AZP N\dvMY ʈ0GzwiF9Q-#r\!Ӌ6[O=۫i:SmjcDV&to,̘ޓ: 14 <-b,7R$pD.53xL6 nգh4zZFr|Pr* ԑR׬KhQfYWz!s?-Z9l&9:m+c4 Ù8- ^deuߞ"isl2s-!?.>OY|S hᖄ[m换8 qCY?!'I;["@*>xsϖvQ? ;${,=0A*DExKW d&j RzRRwvʚC֔w^! A\ր4T w)i+oشbωM V'-J}+$ڷ$6tB ێŢ0kV ~קO1+N ⓘ#s yAe;rdĞ;Vހ}cMc yT.F%/ 7"^e3 NA(6FQi~SV+ۏm4hgOQ&mIeIp.J fN(}9SjOrY=;ČBdػlsH3c@d> LjK}DaS+X J1 Z Õ5TNKUNÏH+RClj1ͩt 0-:p@D]k~ I=Tg^%\`f` LZ'䚍,#RހAd1?3u {D'|1J8<$f6酭[c4,(-`ղܖߦ(,5h,LfS-d!1TjOOsioT'Gd)[;V ?DPeq -4oXFޣ]#TP;p cƊS3S,@olҡW/mJ`a9FIl bAG)Bx_joUeozLQD' Nt^ɿB3^jl<58Y/9һrp[v1 JIx)pI7\4͗õ6USm= rΐ@= "ĹxmY ZK Dz|-DRO/{+"FMoJO%i-kP}pwY ?y|ֽu0YH2MsM)vsXl X5<{ o]] ڑORUJE@ƯlRd|̺:`7fhLc] $ g晙2 JT?˓BAD_Ի"!a"NXfH3!E,ШǬB غp̈́S2c#]qhr?7MV$U<6`| II߬bJBa D4:MnJW"GbJIh#HJܤGѷ2+i:kC|ƧGHecCVJWl<鼻_`*U2( )Uw sZOHVW dmf1 V aRԦm,:D4&jQKp)a##=wm^2)n+"B  +ag7AǻnbiBG8<{a<&__(hpHu! es;4" *M9Mb,tl9l/&BF؄Q#v:Cz0')p\elQo5Fzdyl!V3J15HZ:8)tgUE${X؎gh74Zc 'L$wŚkYBOrmLϛZײv8\^S9 8vip8ff*ȉM}|pgt|Aڱ](!S% qRN0zەHVore"0_̰tEwЅ cǼ( Q@ca VMk jya'R-.=VtS -zbY޻P|2(c_p9ϣ q|Jx(B:/o\ v b+5IW? [+[52IU ꈲz^PVpv._CK;|σ{)3НhLUNŏv4x"*(u Pq[./{c'KrJYq# ͌p?iHycE\Տ 5Wch:{>xZvmn &+ƃտ%tsT+EN!]67 źB{Jpd<"آ <'qIlxJW#th=>zg0qN U@؛by\kYs򮩿}P:i>ysO"dJ쨨- (22ESuetHAZB?;R_,Nl d=h*(4@)?ne@UadYN|lJ:,|;x:c[a䆃Dn s wDE=%@! 8!z:*[aӦ:%/@&n^0n+i<.VC-1tVqG9ĿKMopg牨^mTk9Λ1ۄ\]>J5(ܒW@AA ۺfqq ]'[(ڙ}6kTA=qmI=9䯖wwU_Q[ +]{o߃6\B;qV^y@?4f=oBK/ޥjPLe FJXTr^-f59Ѭ^ћa.NHG,J鷪(/̂h~c$w?=tDO5wua)?k2Ďٵ⍳dk: t=μe}K"IP]BgBo֎e}K[@;SLlnmƖmjߵC/:LdօpFzaz"8<4Ay$5s1.SM (" eonu PoH|{Hq^Kuo ɛLEzm<$O/r\3~ mS.pi(REe H)p0WǴBCf9BJJ>b[3Kt+PbvQ[YmZnAqpqAJߙXoein"'V~$ p bt,=1Ee |10%ƀ%cOҩ )xO@;~r>`}J̃hC '@C4[(Y՟ m^FA4J@`.ka/(pָ9zV&I-7,jְ*%yٮqQokpEHU"yYDJ@Џ%v؞a&@8}ÍMi ^JL뀝@Iϡ2N4/g v^NE>?%&:Llq#HC#j*@sjsZnERnlkkI.E[{v3尋`+mERW#x23z`Ќu.l݀q\0LE~(KC6~QH- k% ǭ?kecY,h1DYu9"D0Lb7qb#w6O+_SL{"w@wآcD螩>:!"vkyt S,U5v9&)^@ $w%oڒ97eO :?ˀVhN?8zJT,uT|Bu=As?^Y8gá vu'O[ $l_%l92DPK@QT_aB+L'fU [#S'J57^$a[G{CnsBźlkE|љ߀"4s*5=0g2{NaL1 7N&9!a\qLʞ ' j#fk Χ'Y"+R>84JDCQ17 *sD7ZiY,3r,Kcq?)Im+Qq i,%(⨯͝<8墱47yEojlv,Q7-('8`}6*֧ߓ*QƘ{'c~ /*fƭ|};C7Ӏ6Eee}Q#P!j?N"EkPF6ͨux3&TE]C;PP}^$ ]Z;kxP.2G7n\};6K l-A 4&3&}1f˽ bCZP*޲8yTs~sRP2@0/g6lIK8]6Ԩ[JU<4ŠZ?^\g]3ęJ29x`^g ә<UYꔏ:6%{jb&u@cW٭85@;A)#U2[}gSHR+05z[DfȚ}|_g|&t W#=i4NS h$s(xBFu$Nuu=j+IcA"Ҳq@ 7G% 2 vrT0lN-:;%w \(Hd̯>ŒNQT^8hg;4P`>:%\Ѡp%~d(ҴEi:GPn@poG~YR٭ה*DŎ7 FjN~PUZZ{z˄ﮟbRmH_{< xõG|4i*ֺ#eXyj* Vw ཯P!-"g^ΩCoUT6!OB&9X+pD0R<2<ׁ'"+iVgvFLInRh6XBO3 ijmK_o>s%rDGd): m YD6A55 vnwJ9@=xc"+a@],\Aa?mI]RNv*g]]O8mx٬r?%jQpWL!Aro nx]ƷJnχzWm):fus*0^T̛;| o 9enf/XP5Rm ܰ|e# a{ &,IdKEgTQi?d=ea,u 9ŧ(@/,ѩ6GǴF#<&Q|4?t J/J N@_.3\#.>ݐX#y\:(>2ݤqۀk_ to߱,XC]]%WMػyhU驭 6GtlfژN3>:KmLp߭<"6z?zPÔco=. -? B^wkj۩x#[sׂN~M,S11=^g|"msBWރȰ_= B+w*q.oGM#2!#:i1VJI f xjLH׌l V% @-&8مc]Ymy{\Yy`W~}LFd}dlyTW.=Ef^Yl,ت*<Nb4YP 6'Ġ=` VtT;Ҧ fIE<]b8\`T7P[j߯vT)(,3s !:3 M& ]Q#<^rt+e[Pjw FۈDUeA#kغk;uBйS$k'F'j&,gwcIӄfkUSd&R3Zk.l`7ÅH}Au~&PM-9q:@mB1ȥ;8DJE}("+=o2c{h#-toٲBֲT&?xM' =!M{h9w~GD%$x6˪k7 V^Rk?8&ע L 4HܓF>~bt[Wוޝn/)/J`,: e3)TlI6 YYCMiϻ8w,l܅տboSUb;(]xt&F]XY0/^1](\Ph9W" %˼#f_/kuʗK;+&Hwe)M5,Gme(_׫Kc1ioH.+,VPD3̒u΍Cڡjd*)m:洬X/[uٍ|Tsμ#öhKAlOXa0i0^~a*xMd@_m?|l O}-~ޔDۅp5~CQP4PZc5*.EN28!KP +kOU=Ӂ'-A b\^2}#Â7fH5po]V0l!t1MJ]Ho14;tΊhdhsMЂE-Z[n j; 1,d>{0G2YZ#RJIk/<X0{5;.q.zw$ ,TWMJhW7NL =P;\yy#e43+G;dv.柡,WѰyטD!_/^4jXYD;3-q'`Q" eE| ?WB1I2.z Կ#-FlC u: 4}p\nrE`oA) C<0{P\aޚ-{8=o΀Di}#/q̎XvVf𶙙K˹?|< GvţN)h+Q?dNnt`[Cαۜ5wand/}AY?mߋ5Aܶ(,|Sh{7+A9,8mU.1/$Xݾ9ьLІ``U@-u gfW.㞵hJ}^0 lN^ B9ōi@> 8j-MJxg?׽\ 1J [y Մy~+xrZ$ܷXM =Ғm'#ݼڧ={bҭ礝)I9;VL4r3k"oFܐcP4* >-jV ,`HH't>y+;$A~61okmK_K8YFf@:y!!{Tr+Gvǔ&IYlp~&Y"o;,#@A[TG?Suӭ严BatH+m8 0r @p?I>3cg%G1719pA{8[9I@&*00 ɜct{)]ͥF u!h7 iR){ F3gx5kIT@k*˺bb}ytu»־V3qCUؙKSqFũ)Gzɰ^q܆DtkBU|6͐|13 &N\2X :*5nYFDc;{Ҿ`U?MxL?Wz^f*esg }hfF()f| &|v {lC6ullc U^QPO{EeHHڴA4݁ggP/@e%7;悾p#l_ڭCN}ԁbB!%V݅36ԟIJKܶvtnb*E85err[VPb|A%-W/`lqH.P >Kof3Ɛ7hZzd>MW3X|rJtc$\X 4T:jWmc!lqTY[8:-y[|sa}u MmY7Y^f r 6cxpR_5ټ.-ZRm? _3:}!0zV}xcN 'њ/ Uzdw߻l‘+ay&ӈ|n`5Y,My%2;EH.~YN&SpR 9Sͨb0DG  QF©pUaɐ2Ь̱gIת~zQ&URFtJ`$˄"rmȰU/g2gGų-_cMXɭ_ 'D)ٮ^&Oi|{fԎWCYB`'$B3! p/$&HD;>t+7 bH&({?1<lǛŶ;gS}$wn%WI;R}&RxRq'e^%F Gxo6nJ!#ǓNƲb\@thR^Җ M|0PŤN6cy)Wg8ٞo=og춑|pqeYt{]m-K]@lF̡|_d֣y@g|ĆJZPĀM1$$VЇJ`qVHHT.C␃'DKiJVt>m&1*ߑats8zfkFJNBPQJ!Bl/ M?Xmr"hKg-lE8J#!,H;Z5sc>Լ){¶h2@_);F>08}Ri&`3 C{3 P)nɤaטGϟ97Ȥ__d6 NNp" !*S7΅-f(#A+W颅. =wՉb ]WBokْ-.YR|ΐV +!b2ne-^tG~L8'!0.*mxN)ESr*)9Z]d3^kfB1>bQCʍ7GƇ~tg%Ɵ^`UBiv'XhC4jt܌>8c~Դ7k&я/ NKt_F915 b%P עsd(;6u4|~W'5oԵE uY@gh7Y@gVچ9 sa-^^A%U921A`Y yj&ؼݾ ]oHO6:KJiZ.=Tt[I+6h ti7vIHM[<#KEDWi V `{E6etfgs{ gLP䡚+FGSȘԬ4b<<~;d)H]&juL~wmd̔`OR:b‰-&-Ӎh|?¦;xb2v-1X+&bYP*_xo '34F0#A!0ދrߗofp:EEt4N0&Rټ!q;Hh;[T#NR^9RW'C>y(˾Uِx}MCr7RZE"Lcl}BB4|PG;}q8rIҡI˃s+,V3MZRt}D ˠʒhTSBі<@FѶF1" OnAM"}N-ٟTb2T*.ǚ4 =ېjV﬜:VţQDX)tTCL+ /œI|z.fCL/pk6zg|YyjDKpY҈<8F-9ՃrE(@sE^]7]C{ԕGJہ'Ob y3j >6X®^x!9~-bs;dL"r=䢔&CoWWQ>2+Y{cwLF:Be0؞!h]{eEh'P7k=yݩ0v1>k*^bZYkbz:/6{ 2/FOWo0eDzU'NOWB MVet?Q.8?/Pd)5"Ae$BSΥɱg3j5j | p?ߢmg !XkT3]峔jy^o,\DG${YFC4j*1 zD̃ӲRSK򁡙)P^=qM )NjhL""(]١t@W, Kuڕ ]NkVgvP\J]iȋmZiQ5/xታQ(R(R ]&!ZL)!tz[脩.-%!Ňh4^.>gc+A*N+2^P8.k8)8$є0~tm}0/#D%+PU*Cu=R 28Ω2oNcR4eRV z $`"TD'uiA+K|ai=W VH d;촰|_! xz#P|LQ/ ,F{?wbY,p"E*$Wh ƴ-A9xZ}y?QV|꿹u\.Ҿ='N;~mcsA:ٴo~fL&3?!\l!@޺˻#$e!rja:Ep%E'bO=2C#);4c {MScR Ǽ5OѥBdxwg>۷gnBvɛYCyhZLP#K_1Dz hФrp)ﰃ7y CӸD`RRm`Ir^p:@QR}&xK7;<BArI/;F*VһeG?6wԑ>=Ѹmܺ23ޱVnafD_W0D{(…52S?--iKtCr8M:#~ovw >ˍ6,Jb7ԩ8$]fTNXDb/l@Dͅss"Xs *{u>pq(6BgZuAfZgK&$N (uN/OŒa)73 x4p]s:2nz4S$iٜ}jC+x+_#q5 .] ~**C)J0!dyX@r Mֶ'1@Ygc{1Dw ~zuk 1TWD ,SwW4E%U˜4Y*i );!VVZdg<`\JwkFn5G9N&* MTN rT;`zzy`8P,{BQթ@b'>J#޷]* 5ְqSf9vF/9Aha> &aµU1k=#eF#%1Ҥ3b -OQj^.0Q)Ŵl_ :)- & LN~V8=XL0p@ɢpGpĎ&!D3II x mݦr_ 7 wM0H nڻZe5)#_quJYsՁfLIOǞ*Yfs4MSXjl) [1 v}IZS 1&5/#^9?;'gɈV~5o}͑$u1jdo$tZtnלY*Z󭺻sm5]-k1`6 Ih?V;c]\m,% J/";'gΌwlЦin뮱qWjCoZUٹgPF 7\NȺxF0|.ƹvdZ :3?BrlujE1AҜ9cu ڇwhGv9e}24\X>Qya'~K [.y@e(7`)m6ZufW0ǁ8#O;zj]zpl_bfPhnڪN?5};`Ӧ?AAhhSugkI0Mt{9[!)|x?ޠDGjXX pbvڑ0 dDLNf^]k z2MLFc2 ALz¤{%$]#!H`0wrj'W"-Nulg˘Ŧk`7u71v`naρ8x.'c}>oQ,3m!@plÆfQ!_='㭽?)/fچɓvFod-ioZ=(C.eQ^}7m`TWbzFϪ:o{o`-0iCMZ: g:Ҋ,é v5 G&[GC}PuB֤E0҃R26IA+zX/\t78Y=?POd|#*St %ֻ)ZizWA%j4ա\cФ"lJɺG(dfI&2hߘXoi`u9.N<#{`eJ|?#-Ή(ߝf 59`RjA:>q؁5~Gh`BAز 迥TNh5}MIσf#A)1g Cߎl`a*lQo' $1:tZA/IqPAٰhF e7*+4_l)o]Ӝ;KQ}|_N-U#SOogn;ٛ*A3-B þƎdVeƙ`;}jgq 94ˆX c?)8a~Vb$uMo&˜t2+#mnͭ}3CM3,8Lוѭ'C؈+uW:jp) .ĩJbt:E2y5C6nZ$h1yrdw9dXjKlbt| ??ÞW]A͕r?ICM6 7}[A.Wo8lQ}g:=(#hp4ҔJ-:C]"7py+:1r nK\_k21 GֻrJ Giww{\2agJ=StB,MS4|5J7C~.'Xl`_y4`.JauIiR H-X(}<=R7nlwəg9mL8f-ŇSx8*byLiՐF6=qR( 73S췛{XD枯<46EW\{1o եv zMzs{3 W3oGV`cB  PIWhtK, +fhkFb heĵ5>2x]\a50v&4G3~}fYdaQ:U9g3:Ч#uQ]|/ vOQ8#݌  A tOՐN&"\:y8rT܎;.qm$-gA6άٓ\8Np|,LOijqY^樐=y|Nj骿ґRIK]ooip.(X]=CP<1e<@D.=bAK!*D-+>jOj."o q"U`ny rQs~kH"ŲJZ%1=(9fc+cO^iȫ3ݥ صU bmqrm/aB' DF7aʨ.8yd=mO;>0Ҥi#Nڴt,Gr` A/茇Ğ q/!;ᄴϸW%YJO \ Ej\x_)4A>Riw_sL6l:Řr+ Gdmmlh| k{ +B%%񞀊a]/B?Ǧcm4O Owd?+Sv}ضL1f+dž}8#7GkXhrTsB 9 == ;Ȟl/mZ݂8`u$1PvW*}7A<%l!Jrt|g[۞ddlvs'mTExԔQ j.(- V9өSOO905Ux?i@d t}vR/w<ٓjmp_]㦰S%nBPQ%Cpe% 8l)”L9Xwnqme9t xFuڬt6,n8Fгo T t3,fA?kzR 27@U /[ֲWSb/Ю{Zg܈7R6#.`H$SQ'fտro(fYF"*1}ΤXΫ-ٖW} ұkx7lZ6RLc0Yq rmCY}MpKK v$ZZғz{yz$ln8nkt.x+n+p.(d̈́1/×-SB{քYV ?I;W"d'~hL_3 b-,7Z&K'5ۇԶdAMQ@X;|GO"]~993zE KI^nDm|#!pm;bg!v$`YmG's,A0 b\H/ I.]?ZEK8R3sZznz%ِq/]VEk Ú}5>{ꃦ@2;K/.Kt3Gnp<G4V'^"6se '(fKcduBVRlqcQGwl R]U@W"W~Z[4s%It 3뷙F$]}V˫awy/n1d N?v0I[%1QƩm\;_N9rh50\7 <_"TH|O q+Bkrp i؉oޏ8;TplEp}ꂌM+5r@n`@72W?9l% 5&4~ tN7$K'ǟ$DKgKEa龸-ؠM_-Z:VۍV%Ϡ$H9Rr<<>NW1{9ym nYgEU*i-xV`:0Yqyı"7e. 5~@ fSY+%{ipQSV!aH<>ϻb Hdz,TZP{Eu!z4it6KMf@|=[o:n_ii@8]-Y~bf|FR~ jT4Hd)46kL^ %A `)9vS C5? J"X б#G,sawBa60Yj]kK { > J!P$yتKI1bY0SK_H2> $ 9BC.7̤? AUm(-n{篕}rcZ\g4гٳ(K'(̟qs~Q9DXNZә}_&Zna*A ʌ=VgIrssʭVoк?'1-'Dwn*SQheuGw".&vF&QW*|f!6#A:Ez96g[FI1m5Kjx5مqr3^TLXBD c|P@Iz|O*>O#:%AҐu23PJJOW1;Ho-E=/>u[ra@l(i϶(J{.Ȳ`ɘ>I<<94khHL ۢPEqi>(Ӗ8̳ Ū}[7zL1(Dgeަޑ?&@òHl1Y:F[ LF@-N޳U{mw?/Eir3Cù8S*kY*qoR} xX8ޜsi[uxa5_5.AP>t!jV!9Q "e4VI("tj}@x`ޭqNzbױ}ЮߓNSŪcOiGe~*%SD⭅5v!CgtjCVA,]Ԧ+tV؞bH"dYAc!&kGxZ yY<.$ >w~8>n݆˜kғLZ~үi>%߉uYs幚4-JL[Ȑt˫MLhS0Z7CD$"nTN.B,(R`_& *ڼ{1 `kջ(ΪwQ40x A$}ѻH~J-M٦!rph9`zYtjI<cfs-{&:W{cn" eCefgF!# ^e қ.o'bӫEu XjJ'7 ?0rS Pd;֠.I."Ъu17/-~#IzQ(^!h=($C )?)7]J1a%O6 y bּp֓0k0^2߼ϐ,#p|z|>mڟ|tNr'Zm|\]R::ΟA|FF>%h9+3܉qX.]kUj ߐOb[ xoN!c7b>{Vj띴fC~#\-c;Ѭ5xhd1NLn3 )bCQs.^ur jU+⍦5m}x]-Ul+h*W=\Hz2fGBuh"7a6CX$y_ڲN\ AYBҾX\ȏ램G&ɞnR~θ~Ss'|aY>x>ЮL0~vbF\b?˘XOJ[2>}0ƹDC%_0a`ffw x;+[Oͮp@EQρ{JK[lSclRR|3h\ M|J)Q lhϸUPùR=aEco4ՈG_JIxL.xV]~p/x "dÿ|aV|.Q7Jlm\]o̡M N)gvEHA,G^R_SIٲ%){ H:@ ua*;b&YX3Pkӕ~fA0wy›9o=$|[#Ѕi.pXu>V!%ђ4jrT6XoB%QScq")[Sv}n^/[l?HY KHv9yFu d\2'EX:rYO 瑱3~e#-ʛº(,܎ڗJRR!%k@?jD'?7yF8Yqs ,QӸuP~{l * i[;TXg&b&[Ԏ;) Sd(+"@nǒ jt ~\n _DNt}^K^!x`Y^Ҁ.[6kxPg$;?\tz-;o"k= ) uv`ྚ(XQ|u|e-H{ \xxQ6S! Qtn;[ eP9㑞sce[w^L ?ұXPګ+l1]'ŃPL_ p yLpA΂ 6TxڋO/[57()ht[+0{0_&',@!q%kz(*pHcnSszτ{pͧڶ5Pcx30yGZ"xU/Epg۩F'ዘ H!@}Rnɶh7o\rԞ2EF~i+! H8@IE^n)֚&[Kn^ xZ/IxџDp# Ѵ/t9sw,k$O(~YZZfע\f*}[Ư~8[4Oj7Tq6< p`"w#u׽R6u o!Cb`܄#JlH|dRN,͗sm\$l.,a)O:Uʐ{ss%;%ttwV3 eud2[SjKw^cF kӆ٭^R}M`$n?t h~AzMqS@Ժ{LAp3$F\塞@+1|rA==2^ qTT(;Jf u[(4͔-kP-?c 6$t :;o"dPw&]+ϒ.V!ر|T'552⾢9­({-$9va%q> R,X[xBc# }ڬ^}PF9Tx8vDbX4Ԡ7ۨ}gQ(0h@cѼa)BE1)u 7G "mSZJߘ3>`N`6ϐQI 7Vi2O>< xUn";L< ԦWQA$ &^REyn.CEk<V,BqrwgX~ xu+iL#n{W 8>\Ggxޣh se }ͮ1O^pXhk2%9Ջθ$ȩD&]i6knX}T$fnpJ>o7j) [V+}j 㶽Қ B}|#ٜ%\]K΃~,_rԦrLY&>ơ}DLLal d*ݷ_T58-zI}*Z﷔mI*LCjG^uz/{f2%Rp)e#Nݰ[w=/{N2/ꥹpMکA;C$E=x HJ\BKl 2;7"g.}ydI+PLyج{F%]S{# 70Ը|휎USu[=+]ZtiOFYorBWBE6cxS;jM TJ#0}d+,G /a{I!GYЊxN$}jfG%R(Yrb27t@.Oئ)?lΐ}N:\ԳD ufg\{g u($t/ 8La:,={OJ'7^ 0Zi@jlW5{Kv`<Ԟmkhgb)175wkZy%¿6ZH5E`|>uCp.;PAd□qҷ6uc ֈ Ԓ{9)r={=6̺GfM>'y]iɕ4C.ҩ^'~7ɄyX9X9E>~}6ADZ*;G?u%\FbHEm-%"DǕ1|xHF@z5tap 7x/ z,OuvF];G&c[z|n# }tge}ڄOg\XԢS+~"˽՞Z{)#ǀ= ^X[1*_ڻ~ 1tE)^Z s)dꭴoOiLS* SzXsB1"=s9Zm+8awh4 yKl_Q*7Mg md .2qǸST!|e]f'Wщ5i^07Mc@W]K&Y+f q3sL<|if gCqj(bcM1Q^S>@=_иZM2N0*7(cێvrFg+"͎r4{>X.Je&.7kGsOxdt & UHIt~$q>뒙*,1~՛'k@a#+8\ r{,N1*pwأ5@CU90OVUt: ͠H% E(d#ӓi+8:m$y-cυ-,Qpq ;,tC#䩷/=F1cb>NMe9ADX..⸄~Farjdm #?.3:ψnc 8Br$KZ<N;o.Q Q4xΕ>F +(KwДVMl+P56 [YO5lȉ'E?"PwKj@/!w'7Eor ! ̗*gW;8x1z^X=[?y p87}.pWgg,ymv0uBLÕUӏbnHF` l*?Vqz2iD.>ij/[|k}O-u:Yi xSFYfitK8(`řnp+I;yvBOh /ٻ?W"CrUWgXNEgV8s~J$;ٷDwM=ɑ( h I쒏}4h Ԫm]EzjUJ'^Ol -=^CHF9FDsza m;է!ߣt-JJȲxa KktokO*0CzHN cӘE{@[2bct>dd:/en$[z8=i QFs) R O=U FSrN\~^[΄> _N> xATw:Dv\l4O=b$@2$j`څ F{0/)b`a 4GCj_?-37)]G, p֭u"tF ,2ɟL* FM<PUi8 U~ykGni>_/Gjz9J-E!?}C)]eca{w4²;; |@頮X+ֹHq)]IЙn4Ё YZ#S;e/K5Ft $65aE# )*Q D%yfp X{G&#-}s<E۽6v *Xiљ(鼢c@o>y 9>b("tzΒZr{xH#C{i]D`Xޜ C_Piu1ƕ&dJE +jw|qk(d}CjLjF3redN}Ւ3D> 6$Vw.*fkAH^*9oxTa" a[IL8Hԝ}C귟?.(V;b\,@(yPعQk5'&Y2PO=FFz,̀UlTaY];~F7'?>^i!d#l> uϰy209 ˠrr׎0mSxcHMB`sU/|~ZSCS{e <0G> derTTd^" iobLl.cBdMf O9. `QGD2s.uy (D  )>G#b Eq]9i+T9u6P!Vh{ WI8mH/l&xΡ%ZWc>|2 hO>x%+!875 o9y=Sۜ2+TV%uds@:4kbߜ|LGa~_݅9ë  \馇la[l%%>+ 71kgAm%Q8T#m"* x*SL6bYV a4^cJ uzAKr=53eLߜ,Avk{ڡPjۈ=;p*}sh&g?"WHCg\\?[;S8]R"B!ihxaU߮.Oܶ"qC>䳊.};H*GVK'14} B!hǛZxYRf;؅X\v4Nl Błu.ӧ '{LdIsgFސZ,zmgdXT\-1*g"N^1tmSS9E̡\`W*bT2m@*,M8.R*~BvOyVb S▜ @%FS,L )hk6+ ז1hwE F_A`>S> FPIp& ʸU$>6ӭHz=΄獵c} jZ7*X7HV=ęF~I\>9;}0:ux[h=\Ir<~1MC[&<^8 w v:'`Ϲ{)Oe#PKɔ},uD>naё]I.mc9ILj]$y(c\*Sۊ7qܬ )*Ƣ%4q=c-mZx@9MO[ BN=V<Kfxw-Gv;v0 10V>wTnL„^i.o4+MLSvѰA&a?cd9?=ri8^u^蟴Swγ{9W|XMN/_ɝ7 ßgJHd FoE^]Ƹ$"ɲ'8[? aA4AF2{!ZݢS: Y嚡Ne٠ώu@֒ \$U<6?D|:,Y݈߳fLS_CI6?f<;mY.ωD8Zy$JըbTo~Am3I~-ՙBrڷ+Y{I 8z~X( 1WŸ'Xȹm~,J"r+@a 6OTo1|b9@.xZ=x}s} }^9<&n 2Jxi>EH=qԤ#€a)T$QmGmu#Pi ? 冠>r/a{x'mL31NzfR0X E~ 741Ca?&% =<щ}I\M"x$0At[z:dS]6⣥ZKP*vy<7 \| :A@l4دגi~}7Rբ\W5pMuqsܻܭk-ËQj4;8f$z$~d(Kbg"ʛI=~`裣y /qȏf\27|uK)JT?tFDf63(.I,Brra Mß^\!EAw@ c{ ȹc.B? ;ۆ\]EGA1T/kZ _2i0TZ`l ;Yi_ 6Mc֨CKMAwa;D [`Y %F>^-Af}u̳;!F*ldD b*u(, $_qb&ڷEʴpmΑW{!'z^}rA![Zq )zFu{x9df>lB-̜w;x+[1hc]Pyyg ?m)HF{ocL%A.ć @i'^8!t hUujxzCT UY?7);*tv{=`.J ZW C99KC^7L7΃xh4p{WÉܖ&Jk` ^qr}5n#AE lk0 ٮ80_kuH3O#9VYKbF `~Y.8;?^5AR'R S9N";ʵrޜm53 zO`7VDzvh2VNqd( l-9 j&;q#\B<Or7;L/Oijr!P0_sB\F7*HhXp՝¾'9s+?ENUi;I9 $0_4U&=bH} Nu 늨vyW%EXf'P,1s@&ZyN O>EfNa$`tڟ`ݼ/%]|;yGfdCxVe*Ծ/յй#KքlYfM{nGwY":{%:cCd  QYA'#3fOB 9Ӈ̹ξAEdc@agPfF0@/F$r!->ÉFz,p-RzHd1MF $;y es2ˉ^%κs$e2,n(v#OH5l"SmZ iJyME;6"+(gnj=Q! ZѨDd+/CQf}o -6ܤ(|Q\V$/g+t?^f\2.@6J`1a$>s0:w9bn;1 z(GaZ 8 U*0>3Foӂ!!7"cu 숍i1w):`(@:ꤘ{; 璃9TShʥ9girQxy,6( ^)9\DwI KH=d<_D#NjQa+l*\a*g@eihϭz3VdTqbTj~Dg) xf]. $n(r錛J%IbЮTom # ʬi n"d1z sB {{6b<E)1X,^y;MFf)q|ltAh\_,T;?tmtH6O `9IOEc2ٳn` .MbV4@Qcb@q'|3T^VYcQ12|hvח/TŃט)5d:Aqz!9#2fmPD(zuWzPM ,r U)wU(V i@dy 4i55챽^J/[~NGa*ϑK ZBlu9sg0b7!,j5 o};k4f@| >M"}~^J.ոb{1I)᣿Ō:9$cZz,sY}M(N{g[]MǸ#!Jĥ<"<i4?: iP _ N6Tr/:k94ƁRS?}qR vXUĔoJ0H)M] ʑ WTl hԮݝpg#oϊo_mH~>Iq@)Dk(l[$C_, ܟU;;2cD Y51嗶> G ]*y*Ɯ˯B?@#(C V=VEݽIoVUA[@uῧkA `p9p"+-*h}AF4غۆ-Suy&zM gH* vrgI1+EF"x*4Ū}v%Vuz1ʞEP5/oP8^զV=w!$+@d4ODK=䶉gېy -`I咑CU:+w "kstPsz΅vFveqlvUjšQ}M[ #x0h%(i }MyHY_#&D DMQid$UYhqXOJ@cg[W6{` f,i෨p 9Թ$8~Z: uJ ~d@?;{o:̴86* w Ү]@vhȝK+O6)tB?"ay3|6\ggHTIؒw2Qg˘Σ-xźJ>`Y#@$K> GEA:qP[nA_L8Sih9F!m,,˝vf~ކM<Ĵhk?ٹPA~SzFWc,D8,_#X-Ck/}Y|(Up*Ƅdafv~A/e3Ce5>12)9YCDH@/N=Vzhڭ58SD)2fydk1B;PHS s w B!h!6E2 v\a˹6CL;$~'|GyeDE&Zl*r2N a%5EN)sB4,$[]Us CEp+y=nH;nz?zؽ]5諈{!FW!iyP1C,^?sr. k8OuRdlMd}Ƅ!C&zҢ n{ =FƹT|%[1$BO-¡$Vv},Q9 p>M駽6??~Rv<JE *jmQ=Wbb\Ƙvlb妲|!^m;I (n9E}=a>/L& CpH|k#'iE&vtH4"YAöb9.3}@ϭKyAMb-"B8n.Ys8L{xqc4q5YOy4Ycgt| Y"NaM;Ũv`}TWvwk|a]:Ҡnm3h3Z9Ks%;.>3a[efApyuKDԁ%;dF:~Зdc 3*8 }8 m~` lʻ)4yטc[i*aiD$MD,*'Y#ҍG<0rQ΂Ec#{~anX詟.s`\xWKWFd<}j||#Xk-nYPdhJ!d߿Յo#MthHJ@m@4+efa,OհfqRN}8%JUH&#q9֭Ա>ǣd w5a<[-FUA^)[./Ϊt<",1̆ mwb@sJ,*^ ipmejT,?TmS%McC?,$KCw';ٚgEl]NJ6uwaiUdnt6ڼS~8?oH`/k¹*4;)Z+m&ɞoūfb~> s_ ^δL'eη?=KBd=1LzcEN4Yו6۝ǐx+X&K@$~K/3mo c0/[M)?wr-a֟qhI)rǞKQrJ:9R중bUv%zoӆqrj/z*%:rPڶП1E`»"éjƦmfUrntF0JD.!2Ur{G.㖡<3ɅL5Sc< D^IqWO&>p:LU `_@I4,78|t?rֶ/uQ*q 8|8ʥTZ_hwiS?ƙwa/N-d́#%9Xԕ}18U'17bPnnl;B2XG{%:q5TEi-0 R$&Z䏅-%8NA6rz2^±9G|TB `a<{BG՛? *UP?Fs.y7A zL/=ex34db1~d% lo7:nF & 5>F@eQJ5.r'JoǣGo :F u7tuhƟs.[`9, &~Yո[\w䪆ʘs,{ V6kxü1BH:~EՈ؇>/,+^-G,kk|-S7ݧAyVO9^F1\BĄm\n~B8;-c`ә  IqyA)j~㢁:5;Yo~d_+4^}Hș 9M829B;)nQlϐ޵-r%#SuTu6Kǟ qDk'2w(OEpra7|6rD%Qo:oLD,/*,)XW<ȴ %1g:}‰﫯5Sub^4N|{}ח+q%y`srDNlp筼p߇pQ$g}kjP9UCjo]"|&3 TZtl}e %l˒NBFUJS&m_cqyDit1uY..RyABX Lz5e/'(\Hfx+HqZ`z%|Y2ܴAѺa_9 5>݀m0uS2,=f^6l.ZT)@Eyqd4*U*]|t$>JiODu+3o!mHںWsYBC⑙2&U=겞ɲ#D ͑cԏcĚ;00MA)kݠ8s?6zKKP@)QAJ<aJYg]ͱa3~  6lxR\klNST-k^d\?$*%,{X*o1Pwa/1,l_E'I C̿+MCs>ג'4L҂ C@cF؊x E4({t4"8oU"QF.Bdޭ(Z#T<3%lI垚1uXg t6,O8hGcNB<9vGB F-.)}3+J)s~,VJ7(#(4$!.]acH( Ogl_~`%lAH L3g05S!sp""}oQ?Fn_D_/|9l=$aI(^ũuyUM%t>BI(0XͣL pjI\)օviٴ׻pk,͜Jp#MGzlO_?+9}1{)P+qZ4GH2ׇEfIu:&*zpb9B0g;ܦ_!PWlbAU[hZVΛ?R1 AJ5y]c9mmI>TZm<-t~LȘ4L)NZX!t ཌ<hg .`l݇\҄n*B ,{nA.K rL jnYPSi~0|&Xd@&]x ?`lni"Nb(jbR5-UrzF>cb/x َ*+%A3]f@f ; :-eoyVSG;1cQfaNs"Jg+~F]PcMrss?2ka_.} J9X21>ER?>a'c0Rp֞jX`B3 }3DZSȕN`ICB}*M_M醇`୭;3:L/:qwhj|.5dT +f^bbFn[7JrPE>Wyo|{./%Y<_:FJr-'#)Su?^Kέɠg6t#w&AŮE*)SD}\ϒ%P{Ad- _0qsj9{ sZy ]ԉB0 >;'{[# $~R-["0^fm?TMd=i5\-tinTϭa EL61{ߢ1]5es-0ez*@5 Sr 1o0*cH7'xg{-tl<ߖڦSbWeL(cbcTKXKi[7C6}2bŠ?"E\OA%Иu빜j!:{B(QW^ltޙyWZ(n$CD N݁Z=] nx Aa@P1ؑG /A` XDl.A\oATrc4̐%Y0jM/hW]14^=P_(cxd:n}I 0 VUӃ`&V/ v\n BʻRe8Wٱ)H$C:Jv0\) $2}9 \y9 {{_ v f!lG2qΘ/l8zHM4Z ?QYl]فt_D;CRDղ3|7||/jQwۋ 13'"S >;FLXLfmW]$=up Udr/Q敱Y Oqt TV긥![*Jc+wcy󢃟D|_IImsR2@+~#oq,tGain0|k9vYtLsQ4VSڲfC^~bտ\~6|+hI7W(|XLO‹Ii:0~N18Ͻsv1gM=0|7"9| >S껚Fl-C8ƍfxͱIӉu}E|;_tL<65Y]l楠X_,( {\@MOx?KKr+M0d5>,X=UgD!ұq֙M (Q:px  O[Z<~;⇱9#~AF7,G҆9YU{CC!Y,~zyʟ0|x՛MϮmȸU 'T-)?Cw_zO5rXBLGlΠ~#0B>)wuH:*UnmUh9cGEiï{3":k0Ԛ$m-_>?F+?>YYb/l֒i?ŃF {ncI"b v|ߧdZi +א Ez<@ClLB44P@rwfą:By&ۉ3ޔjOmAa` | si̅'0eڡy)0,*;CvZ(<O"?RInnzM$ &`GvE+sð0@B%4xEdy'|:[Fy@8/'Ѓd0읾 J*ߟMiV}zA$m_ߗ FꋳX1Z&nOBqfJم~˔{V T݃f,JL]!38טF W>ze,#\s J.En9@ O4Ί[q%! fzu\f: LA1:/ׅCS g뮚 JUJ\lJo7eEg*]c]r" }9x72@ 5]p~[M[>TU@pXR}b/KoHKك]>iynyW.X6 jQ.EdE_-^BVdK7}"S䵶b#ZDKq9P⣻֥a9;rIRcr3b?˭Vϻ\FYu`TLu)@\dW6j~#B\i\R*NP"A'4NO| 3X]p"1=@4Mew0gDt :Gc êWVb=+2Gu|KC8*U?R $2kZ"qs Ŷ!sD7Zn4  D=bn> 4ͨޝՉuYuM J-?t&?Xrf.Ym-Y0M>Y ?MZ )W\S%z@|i-dg+U2EcEܰFrM r0[^* س~6Ǎh DVsc4Gct ܍Ԇ%fOqmK^$kdF >A$SToJRky6;iJm#/#٘xj /%r,~fw%zDt&x" :U3`uڂT[e J`Uaj`XW0QΘ@AeHq ڼSz5F8`_\"e`oai;Yy72̫ȵxWZ &qfCe!& վ3dÂ5KA>RnqQxqyپrpgA6ÈWKv~fiNTfd(v1tP] Jɡz՛g|Aܦ (L%\|V+#T&$Qr+jb, &Yз8"S4#aP7Oq?k&.#+iaҹ'0tZجVϫBOF`z rJARΩt6Pm2FQhtGd ؆s~5Rޕ*mɨ磊le7T}O˭l mZ~nT]K ǽĦnzZ<[^V.?$i9\%B}=%4[7k[d& _ݝM\-Xv\;=7E8ciK+㘠O.aeo_>a&R~. fȪu(qz((IF2(<xo2y|?"9> }8K jW\^ӢER6i,BT{IJ~r%c{a1gjy=|MguBऎN)UJm4 RˢDu`!U |y)te4o?nw.~/1?A L]ylMR-ފ$78VZQ)IivGHŠUHyVA>Z?DIfK!:$Mo_4sf| ٴJ[SFо` Kt;mpG%8[CY[ykrxP8MXJ %{[A}.xn@sOI!CW knZbIMAb[H)-t3eL_Zwļ`IXaV]1촏#ErHުpFag㹴`HC0._I@ \Sy\u)}hyL[D@:h|?ׅx>UjˀkU#F _\`؛j/.$zC\-@N>Ze%TX(5)V׸^{~^Ee97DD`X$&󗙹ŎP|܂(j~dO,_rJV#ϊ" Q/^~H.|%jHT'1֌2]e kYvĎ}'!>3C9=Iط~㧧O.]t}XHLL0C\ׅ,N,LB1uo^tf ^rUK}QC6 #߇+1#5abp% _َi?֕`K)|Ij˴1i!"0R:Vꂪu bE 7p^gY2PRB]K<͢iQbԘw &о84jl/}ߘS "( =)?ۏ0/YjE0Df__2j *r,rC`GjuG Pw8Q +6/Þ>Zls*Ke6,D5 sC)ȁo}T؋M9| e6p]?8-5,Z64lH@,>Eՠ%>S(Y8ݯZ/^u7dPm47L 3m IѺIM*CŁj^#|pSQ=윋JC wzj3P&2-y^굉.JKlubΆ((l:pL3Gc"5Z͂D 5zt2*M޵Bi16:/%ScN<%Q9_y:+-mYn!ǿ|-%p.MQI/\Nga[y5RU4<9z9$]#7aw^k10 c-^IëM "H%z!g =:ǐ!_`δ;{(!vR[΅hld!\V "^]w77&vIeo5?1O|EsVL&u7 90XԙzLni%Vp5S̊z[ITmGP<^Trb4ǣ0R% *Rɼ̣H΢ 9鉹l" 䳓[7vuE Xt,{'{\ZP!A⤇ClBo sLqif%RST|y>!W[I08zA&']ׇȅVG*EȰ`WCIAGj,"\+$⢜eHU[t E=R#0lt䂛"o{B%[Rr?LSꀤ ̣ÈL'и]~Vqx Xl c[OIS4"'a_z؉;|'XFĈoy7 IZF9/=X'gk). s`_܈b?r%P{OMp936<'glԏVcibz\'Ȝ[+V[{"dCnGªe$^ѓ8؂MovZ%ZcD9A!Ĝw,bxeoۘGw> +5`[.!.f61̖NPox%%}A_k4Ab|ƶA؍lۤ؀)YȪv sqѭ>j'aX4;iW1!i *&yM8EI1!DS[zu@LDӂ\8ٲwXGc<3t U8UJp.ۃVNK`Pe^i9 ^Ѱ) 9ԝg2CD9<#iN=tD*r$Ԣ(vƆ6(Q IvY m#zfUaI [~nɭ >-gb{M%uG8^TWz~Q 8=~^6y-Tb̛a ? أ& ̩ $P߻LF:PĆ01j̥Pqo J ) /Lʵ"%x_ؙUݑ k֔PG:l ht l䐇KE5\ng޷G95PyhWrοAﰗ, ֛&BG-##twifzlvk]@| tLHPy Oܑ.A~[18VR!TgT 2Tk y}3LR;$:ip?kwut-L'&6( :3T/f`Ȩр/0*$Ͱ ORz WVt>T _g(bᩬksB038yC㯺yL 2QdVY$~H:prX\@nr~&Z.p[K /Аm*gTE~(Y p YvM l evs(p)~?Hih9i2!Cí*cr3eN?S6;=خ- DBeT|Dzwc#]=. l"X&~x &?w/_LOu}}. #50ŧlciPD'"b6$XJ[pc * )}o :b;@,59%((9,EZA<]\= eqEl7t'%cg2\ w;S=P.5Tw΀y7D0rkxb(xL|FSr RKtZ\m!NESo J`دT[%a1'iR `_2$m<ל_zQ0H̡7_u|=nO$'l2(MMwԥpSV[q kC^Z^ڟ"N|sàEq}i)˞i)%gV̨8F:b|򢬜we7$1ƝHB=UݒNSwd|/X?k8wV-R'Uϛ&dWoZTorRpΒʢcbC1> Xr[?FBaf<"Fd7f_Bj='8o,k_M%2J͞;l5`]m=1ilwq(4*9 ^Ft;ON]DeEÎR*0`ӗn,m˚d:!%=|b ma?=+7zy;xF3|iU#rfUYД<3rkt4/Nng* 'Wrv71":cQm562d;`>׷BW 3yT;n#?OM\6E]Q(?e~V5%mþ4zW1L5Ġ6 SٖsEYxLKkLNeEys=5 RvaeحVCI&#dݳkd-jo^/`Oa% M(/4>>fl) D;GuD4l%T>&C=[l MgD`%Yx\!pyv"╊ק4BԢBu[x4>E:9z<Go@C!Q1u΅b'a8{^lgŃh8g4/2?O|&ZqWEXPo=T0C65K vMkuB/[E m"m YS!)^LS7UtmoJ `Kp~.em(Z"bur:ێJM2!]wUUGčYۥAXM4?=m8)V= 1{r p/=H dS0nU/*90zk7WMn{]]'S'z鳑Hِ2䠕qvB;,Xx局,:ԴO%C'cm: \'?vjVc#7!^&)ߣv,˥&Řj5 UƱ̮u7|(\;>e/=Ž\#PO{Hm9?7G5)jk)FT!!8 =uR-lE-͉fj/7!"Z?Nu%dN_X~uBY>բ/,YK#?Swi 9^5־ݢsIBj)ܦ;1ڿ%PH0; rfzM[cͬB+Sb[d#W}Ay5RSkY|3DU3#vCE^缰/w(g pp<.n0G@10p r'$fJű}i2<e"0(w=\3cFa~C2oo{I qF||,D֯o>N;GIMT]hۍ+#6'vjwC-#:n^CbKN5N`wgrE a|,L2ӎ\pи(0^R*|mhe0: IX}#*"ͷry(p"Y`Pq|gn;wO:xy )ʣ!oqzGRZA@ %Ab+dA]Drfb2"دD n׮c aA0;JF ZXUz=`n xb`M [=j/z}6?w"~1؏T&jD:<Gdxj"t=Is3P>4MɶF.y/΢z:vܞfd6hGRy]}X ߼X~)fm2FHkQﲐ' gth@HB㏯=sEGBC$ߩͩ8B)dyEZ_6Taڔ1odsQ T5yG菳, %x"UZ[ZJG8#(5a|ٖ񚁮~Q:4#|L+No)A{-3t[ t9]/PGB4j_da4!^-c) @Ԍ!TxY51MaPNWĜV_@ o[Ф=fkb>zpVf`9@B4:⾊,E2aE ݃}C@@t*&wO} JCd\s 8wK`{D xU<\vHvM},|¯&=MLf+LjFdD)^|U{<@Ap`4]Lϰ*)Hֈ(j_b:W&4CXD:$;[~3u .EֵtX.̈w`bpwަ8F";gy2Pٺ}4ʝ7.D܃7/n*(5-Ku^O5Ihe-m|lsx>WF6_8rY΅^auٴDT$1#VO$oMOX@zb٘ t&SٹE<ϾWB#"!4 7x%geCVSۤZ|FqDY#pҪJxvkȇ ^ҩvWiA#@R,j~D4J6J[+N7DauU<^nG-X'1J~rdnsB2DPqK$ڍg=7A BUž= H"zNu,"G 0K7hrQDjX1^XjJ B[M"<^%k* ۹_ˠY~>dACo7 ^ ?Ӵ. 煿5yݴv$`Pc-R}m̹ ath66aZl ?RXx:sD'y=VV _';59[ ێVEʽ@Alp .]^i *Ĕ-ob βRkZFS؞ޗ>VtB(70AvhtU^52W͡@)큄e^e{[tq \ *`S*TaY_QE5)Pb?u2Cz+U"0%_Ikn\ J23Rwbҧ1>9³=B;E;6y;ϛcn !!"nJ>z4ㄗ}]>.W'I. P ئLGtv?5ՖGA@HϹr.a\4f2 /1]N6cCgC/x-=lZ'n U JIha&*ݭ"9 k=hj I/|Qp_%']٤\t\^&@\Y;>9?Tjq.aT잾&wvc}L嵔J:i| d[d@J-w[iZL^qT.0Ti {.PSAvk;Ӓ6# 2i#k ̾Iy_ӫrF+azD$n/"4d<)K;d Vޤ P6ٜbdV%fbCf]rwȺ%So&|Y%P ܟ؎Yp}L≮H u,{U B*I)b+%DDPUB9OmK!-C2}u"]h~글J~m|i<|ԨO~O?Aq-UhݶP:]aa4D= C#HX l.G hHVB4]6W?>ڵhyvE@ ?WJ Cc%1!ue&,=0$On64mnwqErPDC(%"7%\bjF V1&=≏ru>)1v^mjpK-n'XHkC&PcH 7~z>eh[X8!GvwtwmYfo$6E?%*50Җ聩5gy)i 1z3}`pnp7R X\s*5@zzhOx,v@P+.m[D<4[ԤBmvLd4T/3]f0t@⽐6uӻNsq!C]g1`ZC1#VungP4Uq;+Ŀ]8P|-=`}hBI-Hͩs \2ea9^!:N}ex3%  XX. J ~1`Z%i;MRS.Ј V߻V{P(@@ $R6ņ;d1f&+C13PCjnJx":bSȆ BMMp{֭̄ C/]uC<é-pc\!x>wنb*;DVwЛ0cQVW-)t%_;919)mRc E ϥHrn|HQ1DC>N2sW1zH6%YaVoQ:]'c}}'Ġ肆A"{2#y1T&.퓓Ck܉D1Orɋr(@*hu<,L .P,V(WStpD )o6t1};׊3 'mFCyJUdX K++M]NP I#㭲K:~ha ( Zs0e6R fx]vtn+e\~T;PɳycfO9MO@'1|W!o^^ 2Oդ+@=]5MR+0@`XwS]Sk NU7C惋=uk\lxF&)m%`3L*3!p/M]Ф]=~•u܉ v#;ef{ o6R>O jEäDꄺX=<,s\ U{3Qf_ȩnvt$[ }EIdb:rdCux]Q 6D^'jPS R?x1P eVvg`K~KCQ2mB;{.T"2§S`;3162z7:DYK <>!E{YU,3 z@B 2Tp\ м'P?>-$VxEqeng&s;gAu$+@(qwGF阣3f QlXTcD9ܑ^3 ce;+&:(s3"x6u~F/~A/烪{ikt0[ %>PΣo8z "S"{1/$WĢ[Ѯa#u]bM#gʶ2-^Eupݑ4-g`N''/[kqdD%ei+o(q鴅L&(V(+_gmuG$%} +ivSB))1 Hk& gJv8#ZHV慭'a"F`Mp{bK;l+]Ɇ9#렷YQs XaRAaZ`"_$]=HNu/0q= l.?U\fyY8\ -5S1utJsGyc,QhknfU:*ΚC3]݈gc@PFh lVLoTiMWUcc>k?_;i+odR{&[~kU %2}wOyGh!3ÿkmx]S:$6ϤZ g,E6y`Ƈ BT]mG?)!PŶ&}mLɾ+8cข8H8:pB^t9L|ԺFDaLԫg[a0jGrJoJ 5'h86ԹLļwc&䘸G)JY)F$^Jka\cD9:("f([<~Aq1Y\ĜC pv1!N)J &OXWo{ؽF"VA@C`!'l a]&jΩ] =Ph@&\VbN*d b .hL hDu"mJ<7|\AjÇ:WBw屸B]{hnI.?l/`Dw;1n?JjnR5M}bF& &?grfS.Z rLN5h/M\o zG֡!UM_f)J/6zy̒Ό GE$:LC<`,wnm֒*W)6S?-X~]co/wh77rDk9(:J_.n9I9ޚg>͸j.Ypg^c(srd f>~ רEs"BS#I[_&F<ƴ^Y?`(?`@jZ]I闬}8SDBpZp2V/Cﴦ]KdE8z6Uk Y7RkbQm4fuȘ\i@a!]m@ەAJe6R-\MyCz!ns_Ya뿤hأWKrw(ߙog8G4m;,8 Mhk|I68"F1\p{3 bAҍ^}0j͌Q%;4<*!N-A!aOʭf:w640G)Je1f#~cSYQGi$TXoxlOj]B1ٚ%q87~CA&|HuP N!ab,A4B'Li)%sj2XVnZrr(/ߌ(pds4KcrGR?C]|D7!q['AfMfZ1{ gktpzOKxUhqa&R\Gt"a@$ nȀ.5ʦޫD =kK24*H~߰zՈfT 9IU" : 4 Kr*^FQ#| Tr1[Qy qRG[*CWtb" ZdK_pm0Ԟ!_{ׄ޺7YYRcH#d/km&Pb%U^mĶ8/a ؜+n;ΐb2("z5?k:Gp[U.c;0ðmZ4`Ր'smCłWRV_VxԇȰ+iEv 32,Bmi읹c x#.,tËѮz|?QWr|YAⲦ0 5oLңW!w,fkĿj6]cxlfu)ZOZ &/뙾W+E]YAV`Oͽ)[}S%HyQ/H(]*"7hA\ۊPzw4D"]C!Kw8V&jc))l<75j0<`aR*KYK(, )n( ɐjq!g ؼ$I?p 1όQAe2rU KwwE69PK„/왣 Ҿ J1\S N'NK[ht)[Bg(X=8@ >V*~]l2*6uW>vMv gQ~`b\,Ns.0#a~QqeF"v # ^WPayì$B-3[ux,緘1L?v!A9 z\Vn/u鱶 _$ԒpL.E`Y| Yk ]ȖTdž%`&88x89-B8< lCs=G=Ԟu/:EFl}; TѦKZM0ö`0lt g,OF[d"F\1ENL Nnmk[`͔nW&hE>C˱k(BAUe ՗@9Z%.>R"AW )$\}nw"+hL3 ^%(l Iz(1D_KڇS)-/ZqRU׋|N0綾[>zoĕ?9TS5mqh 4k@{Ybf<Ŀ7EI,`r0ylh[ȍH~bI/6O߿>5k >IU^h;ϳWXx-Sj<ǼV5f1vDwnj.)Izgh'fQk;rrE'Ѭr^DlKtwumgIjCɿNLXS\rW ~R171]!.I$-H_0ţ ̒ SWUr Z5G9WֶGcһ4ZuıMӋ~sirP|$RCZ$ޡ#dvEp{0Y >i￑Ҹz.69G\5씬UQe,%r oSxd*]\:&E-z5{V&(9ԲC'N1Xciyz]qYamO9gǙ=3/ ͗:ܭwt09a[f1:+OD` 3Ջ*$rܚ&B-"v8*bOa>j]&4p@v7+YSN6&C^+(`/zhV,@F@׊ h Z`a_ćsOv1% .Kfy!86eV_J$/PG8ٍ 653i c~OS^ PCiAі#uQ?kt GsI:8>ֽh4!ӆ}sm0 Glur3]qX/&XzwpE]9 SpyݸȱiIAy쪪Ϻ&U9'su]0o)'' g|d>D\+YOb6GX˥׳۹(h5_HG%:90hpLY=Jr[S9*E%9cFl2$(hF?/N"Gr{0p8Pڶ o~{QjVP]2:5Qzi{F2ίːe&boUl44xK|-n\%JZq`-Noe|`FtJ3Nz`T\%]~Ï MHHIS_V0yRm?T>w+c`{zS} [l[wZ*%$_ʈT"шΚ lV c ǵIrC}qQ7 .'R@䝇2$lQY6ֳ8\$- ?AYr\1bF>ˍJԽyGEmM¿с / ^?d8c=/M )C * `ݠDzC$? q} #U-Yl,Kx]51 ~{=X)/)hP߹}8 dg~)"h2"Y,?:R` T0I&a# 6 ld )H[ϝjo ;OCRgubSkrf`(oc);y4W 3&:X0 xRvR2Izwx.W)ՐkyRI~۱lCB^7ǧm&;4b PpCN?k{'- VvA7hH;0%#ĀKEg2ƼѲٵM]o-{[xwpҚ|6;JiCVmxҤ@LTKEh`1>7(_:Hw|@}@̳8?|tHg*k34xLiXWR |#&Uo^z~6֒ TDZ\a h"".0FM Ta|WE3|)?9?1x|Դa=&ET0塵FHDIZ,~;C,MU2p[⹱f[e@fd"{+;C"'ԀA˂,3QoZϧV@3\B܍5s!<'ĪMy) H0sRolh=Cx~9d[0AV2'DÔi)0' PƳQK xE~cO%1y~L '?#V8=~i[U';%GTH P{xWơ E)0;#g. gy!k6U_3/UC[OgD4nO;-:ؑl)w(ϲ`wJ4$\׃mՖJIǕ_Iܬ%|OM&ա3ELԖ86ðbN*W5\5^z[ݷ'Fh)>iL䠂?SYIhaH?,@a>hY?)Gօ`6M-JGЪ/t6=\WqTZo,uBq2ה+OY^Kx7cDꈴ2U͍k@AE (d]d3XWp@8oLE+ib'/cAW5fݚ_h5>~bLoZPw@ j̊c5AYlTo,6'ыw L+F|A="ny 5kڦmt@`Esmƾ.xU(jZ&]u4X2(~HSX'`4F ޟ(HmH* `pZ Nģ[jwXpʣc%HVI"NjVsXq.2shrTd)*^|<*96Qc /=L.LvyT@Щʌh3|/KAC9[ȋvRXy/YC0Z%ktKr#Zl9JCW5??D %EsE3?#*ur@(s#$/%D-3}}.k nr~h+\<bϟ% E(ES{>55iZВxCyٚ5a=.DͿ|+8vh_R9?3D(aK}Yw_؆pa/3#[kod4ޮ H:"~ҳB0>[?8P(6vCɹ<5A@Ce(kIA^iDzN׉)ysEfߞ(B/_T>Dd-I+8:Zp9pZ %MgfE5[q^:';ܚ& lԦk(vm=;N24>^Lsi\hb 17XFTne bn>S  / |ϢE+P e1x}M aDP&Fa:tqEC70eVmcH)ke_*;|:VvPq\'sFopAg)ݘ]Oe*aMhFZXWryOo DIB p `. ; N@ k6jsL^*萐-|!u?+:c,$مT7gޟqߐqS/Ԧ!0 #G5V[j^Wrk, [;!\)DuUw )PŵC9ءZAmSi-E#gFf+î-+~5y *ط/SƅnW9Q(: `* WrN;%iX[E4!I?5nJWjA>|7A8{.E@Ti"bh4D^gȥ&E2qO{x!Pvp}m6Ikiè$+7Vʹ2: b!x5FLNBLHI]y[UAaLࡺM,ͱ2*'':q*]mHWL?&2K>̪3VY^hlTՆD f?_pU*=H`ZwBP1Ǫ+.rSm`^!'0:XWO0ZUg͋t7݈W4gJ0JpòZoUvwhӋ=><ѤCj@Kwq ۜ;9E%<_HoJ n1/\1|_9}V4APOmXȱ:z`)UX s6Ʉ[Lc|p4! "lVR?"1Ȍ! Aqΐ(N=jNՒyZD'6DkI&-Ŝs֍jcN|kn wĈX%%La2 v|߽+VֳGsXQg-i<s'(z鴠#P~XKPo)(̧0Gu"Ei׸ -;=vZ R:"ߺD;Νr"dOiYlXzR͸Z ' K\"w ;IJyN%Amiߠ'"S±zpN%Fp_Îz*7]eZN303'8AUmȰCㆣ s^stw==Ǚ+u2^$@HOg&?RL)>I2Ϡ ![@7Uu "9 x462;]|C7!dlP]J;fGD7tkd-P=u8-1(ՂOEK i-_QҤQ|p{U*o3< 1 )\vXv$כ]XwD*/]1F"#]1%G T F֮@>;5gse[t|SvZQyygP"ؽzӺǐ592jZ@D/_q+Xݽ 8fZPsLإ ݑER?M\5f7Ѻё0oeN5*# (4Q/"lni^:S|e s'3A洳k_8zpL@Ami<9ogPF4:k3i쑔֡ J%}pA~ L7Qjywu ~6G؇9ϫ'.jfKOskoL<*ۥʹ=며.*yRz ?d>ԛׁH( A]@c I4wI-WjΪyWQS"d8_܎;;fȐ"1Y̍&ԂsZ!o) ,lرPgGjs1J*;u$\}`t`'ΧȺGb .EP0W&Y(E賔h ٌ0An952W?<& ǞYVg]vU,p~aեMCGjŏLUbz+ 9R}%:= WSټ-+^:jZښce8ܖS{ylJgKc'*YmtcCN= v_ amRLxi;# `ΑETtqHRfeZj/IMnY(5q 2JsH;;གྷ< avU^dgc(?~~Ws S[vdS+=q){C8k~<1*w~!NX3ze|Hks8+{r7Brj8 8%. 9S{qjOM)Y߇}x/FRmSNK{.f+i􆽸Xd)J 駟i(R雴#>VP>VuR_E6K WT"Bv8^Ay~њdY=6 YK(.~?0Ztw:ڞހ5(ZL|(ɖce|vM?M#o6 "dg`pXe!G(h#VBߩS41gJ80@bd~v֯IqB=$Qs.bL!mqlR*!+k#9W\CI}(g'E{`CN?^!+]᎕|sI ˚[m%\w?DR[M+EJ@\%V-EƆա{*?Î9PCAi;絇1R 3m{kI@w슜l )02d/1!ssA\LkLn ^m m ʛycc$ li1p׻Od!'LmF! ]li6/tb'F h j9 1gȗ er7ȶ/\`b}wkī[]W NZfV̢A@9/tE5shMs`8Qק>0~x)&g=RH JI@FO}Ɖ&U/`B;xlM]DDثTe|̥}V/iZˡyUDr\0L`rq坄TWJ^9~EIU.#o") mI>(O}+Lz#`~YK 1 F&bz+Ng&ӆC1 Bc!|}XX Dhø] 0Y՟'Ղ7 ^,ٹ}BqƣA86)x( ֏8{ѩTaʂ._wIt2B!3@ABQ7%yOH q́ . 3f9B= rgI`r~*@v4M+yA2F8?HU+]t$h)Lny,<`VTuLj.6&(tBr~fJMPt'xkMi(stgHXDUt?c`Ɏ i+=(^Sأ #>kջ*yS^А>{?jt:Aie═{"4B)UO!T0LAw pO L 3@ J"2XYf?6OŎY]t F Cv}j{zY]X7=7uÂreWdzsz@7֖~`%i{!MK\S` qK+^HPJ[Yn^HW #dwD>mq Q,`*خ_8 O'C5fJc?UqQ/7 z"ϲ!/&$Ö-_SPA"Y hH>Gr"ڡ7u6fncW m{ACm=!sƼZy 4"Àe{K=pn;*?4ͷi)ː _6U L"(BCV[ĊS~H>Ԩ8$@s$old<9<iwktaxUca X\qA(AHR[mO3e< |71LqԊ;tIm~ w‡biC(M;yYH㞌 2N5.2hUԔl%J,A-zv1# _JIγAq %6Xi:de?Hhܷ"_v%&;jq3W%B:f,xhCAXvw?I9:yZWf06&9^@#Kxt#w4lΦҶ1= 5|1Y\ɘ;[JK TrYP2.BFYQ^-tBs}ɳLKU<9] f 1J3{=نs]#Igu טp/x\j[F̒mh\tYՃ_}e6滰}ز;o6 y8X`oQ1 qlϗD_\\,s` P?0+^55b Q[|dl%wpQT/9;jS 1#`rw-ꠂOtvqN )nN!_ ƣu^Tu|N:u ߢBkN±aD;5twC;X-5?V/Vgkv>q=鄹6%T[ZrGWSj۽VhF[[z)›Uv!8/)JR1wD, +ZqZ, liU2{fԩbEqQy0" g> m+rdkyfWpUa VBJ Glk1x)w$PLη =o)ɆU ='y RZh% KO|<bZ%3W񄇁cʃJ]N)j3} 8+IK;iiHS+QjVJ!Y*fU)` >l\L"W!YO~g\u+N‘T@u:$!p2#aЙe@#cBv_pCUoo>Σ~)*8C0BӠVsf {.$Zߠ(d2N&{{WO-29 d<h~J"˗k T:hpB,nTYi`8yX2wODYKQ^;001 _V.٬Y-Vg9Բl7iFY(3,3;0>w$e#YCCeM,k2$ _ cP^J~ߧ3q<c)7b ,5Thyjp'D%a2iw#6V#*R\T{tŲx<2M{ι'[6[ZuTnA5'6jIA[< zIx :4f$=*-Q wzO4V26@޾f1( ( qy sƷFa_"N5&!߀oJ&M,Y/V5Qɳ@rS){j۰ܯlg3ioLeȕb ]۽{ѵG`nMs atŵ=?LXՂ: !*J'!!Vyv! ȣ]G` /D\U^POX)V>O0 hwe_X ^:.we>{%l}ǙrDU:XѺMBJHolCՅU){85jfł0:o}h`(7_sʤ~MϮFA _rA<`-5?zdB*5G-O%Za)a,q5>Ǘ4V?ٛL7zRGY'Ch*Sv) )F p9P*ǥI6RKK`FiV+yŧ>LoF6,e^ӄfKx~P=끵M&GTްaw"{L# cNGo֙:Fs7JkXrT%?OaEGm-b[ˏVP[`ݺ.F`!ǐgY| # znGn/ f֤]J&*{')(QB716>.d?(f>,XQ~ȑܠws JQ[N{}C_BWwlˣ^N搓?sRMuӸgwlXYY=K`&d)2;΢SeZMHs~n"U]%D-iRqhYTMԺ3n@GEcL9yFV9-qE@e0bф{1܊ٿ(a+dkKˌ}D4^ ,u_Qf޽unY'&eERNaqTORS)lc!eqhf`Zl6@,@s#RI$eI9jںRz3-R"S,Ls TMY v!8AbI'?nrN l?Q-S|'W7 +Q19-ɭ3 @0sA$p*t{o4Z-E.Cm|c=#A0B f{ZO5`mVҸ Gv`㢊3ON 10D߉#ku+~+|sS=x~P".cza>[Q%pcw'[̘Wg1ׂ]ş{0~FK$2礶ƃYϿ`)_Q0n /yD=Kiń@wռa2ZfU#يxi/%g*ULdiaUBb+v@@y:?:`%ID)pNJ'37(q&C߫"<0uKmЎlurׄET=A6e"$j lN?G1'&e|k0 &+9פ:aTeSD[֖/5;aAJ=4wjzS>NnV 䬳m2?8=xu{1PH(c D 7Y^|p q58)QL3c>d|TFk<_V8wًVgƍ|zQPP$vnB*TH=N7CM XU1H~U qC`^֩m&.'"~]=x1ⴡ),5 F)_saQ5uKH6L&m߈^}[oˌ'lLLsw0VgCS2 H΄>4Զ8T)h/h F+[Hc>}ѕ7+xy#l;g2Yד {Q2~•ȅNY 3=1c!/}*ص4V}v$:ː98 T&8Pv(ir$Js@SPIa O4-)x塑G( mgPyy~cՑE.q [a ܏)m /Khܢ*) h-B}r! I!^qyrz~B,:\L;pEaMjW, Q]4CJt kU?Y_ޠ ]9~Cs'Ej;֚LACmo.w;d(rM`7ez#Jx^(dδY`$.:tqf5lLG S^8MYFT$> NEu5a3wϴ,q%~Q0G^A(L]!wR6F~ eGՏzlsQڼdstѪ~m( ץS3AEQ-uѪT.* MXSI M /~}{}C ,p\2KKGCxѰ)tGæ|M4tyéOpkx7P46frD>VuES1dV &q+Lgu>t(ƾM7KfM NH@읠 \ 4D^)E|޶C^"η(d_{MX)A], n҂*jP}(AGfӁ*YX2)&;2҇ꐞH.m x;180AuA$=K! A^$2T5u\)d H4Iζْr/TA?cHP'riC`Ϟ>C/C1""sF'#Ŧo?iK>x2+4S0q"%cӸĬQKUD )LNo`HEWAjEX%jJnU^!ՀGG<8gYzcaQD:ͬ |ӳ$+YuS|G&yUj HT OKK^^)Bs# dP Pi{ u6n]K!>yc̚ݔK%:S&*MtVFԹJ9.lnߌ^݅:E|W$7D' LEnsx]s ci< Cjśdלkub//ҖYrְ9$n2]~S+of U(cmKv;v@M)^GH)-01͗%i=uİv3#Yr7)b-\k=$3 -Xc HynEa&TayXt{ k$LHt0rm>J'[Քp$sp&f)6MR`[3%$bH{"A2< iΨ^5ؐe+?6UfW[j-q.A+u@نYF@p.*!?yMԓ2k4qߓ`}g[fŵ S=RvFq7dLQ&P+oYv&~5QzU@R\#><؇Z}p"ϯ]5շO8L? !)ܫ^򔈌_&(IxٶU#xۈFVX϶$Rf>oًANDu~l⸺d˙uyvKq1=ے7L[;<9W1SYq7.DգQ%:Hiv׵ n]fhF-4}t~i3fb|RGOu(d+ ;wR_nށ^,iG)ra/6>glhB,d=QJ9FN <3ʣ{?Vi1Ϊ'w{9)8sL,7T$B5(  ʼnah%^? 9Zc"/1=[us<$qs,&X.H0*UgТxp*NpDhG}F} $QVo5|߱b'z/b}Eؐ\ٞs/PTokѴ1HfgGwG/@'?,e TM= Z>OiwĘ㰱q׋.[ :=Э5ȪT09fvt¥өdžUI[zdc{jU#z-~IڷBNa:o -doCt&3^vK`Ę*ዋV]^*>X}r[H65==N;MWx{$uU/+xI>،q/ yy{^oȏS74x**i/']c\ӬYcN%0i2ޮ=ѺIm+`hZ& )4:wz"7~h~.jUHgh[4ʗkiVwTҬлEӬj掜F.vguѻB=&hIV%',5@W`j =9vSu<;#{vʠlsf8A֝DοX8A}0D aÓm Ր>>]'F5qLC6%;wԣ{nX*2 xj%(60ʄ>uum phj=: M_ne6It1P}}O sy}1@݉wR̺/9A21!aI&-w~BtP.=RM- .ZX{qђ⧿ _IwM%Yqaa]Ǽs*)" 'P^N2[c숅rѾ[Ƚ?qn jSX9*Q|q OKdž/:XI͆OJ𲖝e6 N#dȸ4niKb)v45:v",q6Xw n kk*BJӸbf^rmZJj 0_Ddo5!:)Lbu;ǀ$cH 1!A1WiYR6߉] ⌎ĵo)ImĮg[GK^^wrxi5wiԱ[h]p0U k 6YoKuVQ$L. ֔~d/rGLWAA]d+!mѮm8`Z}N<Ó7"~Cc-bׅ~L|K3e<xs G@쫪% 4`d53YEI}]K@k5FiY}$44e" 2X~=-Qӊ$!ݒiA~lcړl*k8D$0DΆ"LD)S~gHWGs\ګ$ @3.mtC╥1콉ss^@ sjA5I$.Fx?/ǽgcJ~ y V ^ Z n)B5W[UB_΅^Vh?m}N=CD 5 YOy.8) ğׁ4ݴl@(QtnkgM/a2C+F [lev{leRi7UZ`ěM5-" ׇ+h]dϸOe"2DRB< C@[&G'@):1Ĩ8-ʿon^UI wS?V<#δ#;_9}G#-It.k|4La߬OF?aGm gMiwKiQ"lڕYXyGy׏jS|Y! ;:GOe-@lS ikw(6N f[*{>6rW49P qam݈ " u?mȈݶN~ҿtdA3<4撚a-k )h$a6\-MR~z? "}U;n0+dI=ʙq2,+\ee֞6 JJ]ťsixrW|^{enɭe1]JJ?e*BzoHV YzqՋa&c[꧈`a8݃!z~r1:R y%kfօx+uGoT\xI3z1]!Zy:e"@;M%A=& VzhOp=;'Jټ1[,{y|V{ϣ&,R2)$?ݟ2i-(T7{l<]Z؀"6(p~jėǾY1ŽS*|l!Urȱ.Ժ2&iW%ě^T y*ԶKgj97-kzSn2!`hhg@b.ow9> e0wL:5GJY87nGq"1,59#؋~Bjg|9 VhJǦ[dX{)C {40S>2~14Y,Q&ŕ17hJ:;g3Qֺ'wyt1}8TZ(T $079-hW9HGZA3RQ ߞ#p*&f#Bͩ~ ҏi\ػАzթeT{Ф}/.b:cUǑ0ѵi8{> *CɌܺԧX;ehg*HX_?9$ R/ cMsdiByݲjSX*94̾aѱXv+E _<SrfGy!kvQ/e ^.-(A i>jG;>dp- h r# p\$cxu5_3w,|S2yQ8ºwDƂ1 +Bn.NQ]zTqQ7r_wX\0jO&TnG7 =]ܴvJ0I1Q)`5@1ZTЫ7J+Kl>_>Ӊ~҅tLJI͕I:pLS{Hʺ +$qS4Ks 8kdž Af:a׶ X 3v0y?c)~S7g2m䔁DtۯJTu|'ǿ|Tj`ĕ=l1^h>W$Be2o#s <'Χԑtc}1߉$hjhz&=/ܤ#,WHERڏ{[qsq2x.\;Uk蔑)w2q҆PwL5T8l]ԃu[D{[ +̓NFjE&ٛB$)7eK\[j )P5,.!ϓRF6nqs}`KAUɝq?_Œ.^˟Ɋ{vhD<(ĢJamj _~x/ #US>9McV4#RGպm'.Alb3`l˴B_߷R"\ .#'ĘVx?WeT H5(q\P=Pv S38Z+ųD2}JE3gaX4ocl)C]m\\xkqImrׯ9Ch~:-D(~ 骸]' n , JXaYl\ U[CXv2ei\{!Wܘ\gJ>~ )ꁮYcX=Wٸzv$S|\<1~pxosDz~ݿ P(ynb.kvϧh~ )`q_1!5z-G-1duȑgc(G".#Uָ[АAQ;@~܁V2S-%5 '$" wGoĭ Ѩ7VN@Tn(GE19VHbxj AGus>vKy#3pɤ(4 !hxZ[J?}j׋9 /*dQ9>_zm RK0jxۄ73"Y?.N"cZ-d'F?z*&Og8z+r9̢{& |8x#P(M%QJ*_:PNPShu!W6L0;,2,WU;L!?j+ݻMPaǻ2/iܩo6{ёQ}Xz: pL7НNӘkQ@ *ZLЮ}5=F녹MAJɭY`}?O>jOVSnDA L 0]۪(rʏָI;"7  mZ><5 ]JA û¾R,b&7D!ȉ$=#rTn]*T9٨Y}I ۗb7isV \#e]$ˆ@g?zݪħ(W~+*`s(:'^x`/) -*1>vu s!B-(q,m%sj|M ˫Pҗw-ӛCێ爵cj\ӱ\Tnlz ,Ҫ|CO¬Cp0d"Jd(Ŗx2wpGDQ܃&TolTtMRt3`{΂[ϰ|aJ'yK=k8prA&/re6YsBÛ8XRlOǒ'uBk$}.u*P'J4f.'q cE2iwW˥bE_!iq1yL+<ERH}B0WxBF[kK/ Vѵ 8USi(n`«B'S9_GFӭl3u#Ҹڤ#"v_;8s!5{$s&)0=P 8cLXu%~IL/DyZ َSjDD٥_l W3VH4+z菦,GSoG P)-J hHP gG׀[b[ ij%}锽Ϟ󯏲,J}/ts'/ڐUNtVR򕇛?gy9[oO#jdHN&'Ap"a=)pFk9=t䍞y+ .@M\N/5]Qi`!Fv&`Ə4kUs='T~k-)0 >&I鿔$O^^`Yǥߋ}NL$8AdZlg{Ґ)vw>4)o@pq !fE}<+HE|\]zJZ;=(BrC 2rk+gX)dwً4pHsk8;4.EK橳wťͺ-bƥ6V}Q0- Xmc1x0-Y:p-rAvyQk2jJ/Y̭VR5o/إ:xK)%l[rQk vᏞ{hP\SrMb:|̖C4jR.bΰ\]dL{dT62*ݢ Lߜ%m&yrp@tkeqJzr@ JboxyZ <1Dl,=x;zDvĖ" ^$u3X#仍 ʘ ̨ 0gi`ج^J'A7A="fV#K6sXU|.|(F0UUM$#) G xy 05/<$oiꈳ5%ykO F1= nԯr-edݒq|1e ǘ,)YFvlMN+zfz0{Ÿ.sàu C/^3'ЕO$fe).z̕p|]2A%8F)^V;/5dtItu\ɚU'M _ @ѡ`FS)~',i14/8k11w&`WSl$-  eDQ"j"oQH2xUT"$]dsYY Ѥ߆mD.{V`EL(J`  /M! VeTU ҉U톣9:pԉ[|cPS . ,~ |o-Wz-Ai3%vQ?{ߤ?>NeVEu' wxjPN {XtV(; P, ՞hyI;Bp_I͂/pW!αi)"%\s+XW9֡o0h? .#|l]V0WBJpNqGnAZysn/"U.ehk8$fp?g,n%X %WH9ӓ*tD7Fk3nE;}yI"($(bZTV~ .\^P zviޡ9ݯ 2=E_цBn'%V`w|i@y( bx 3C~<;?.&ө$Pt2U 37`fŒ{bw~)ۖAEz)M/п%p]u} 5MKEs2:tc̜AKhNצ2H6jwԬ@H]Z9J/sٌ_^Z'=|yY9JWV`t1DoAUg,1SnZARg+U+$GjG_0= PKCh(3&~kyY#{2oY2M=U +޼8h{aShM6! Lj3Q=jW xHdH@ivAi;U[?8:wCUFĠǛf|8F_۟ϐEpK7wt\1B1aDkwtk?­!q9nrz3_W0hG0gjoqƎY 2Ja]dx"^/fmmG @ٮV~*sCH7 Z g9s6E@֒Tot>-_e8kQF>?'9wjqי;0KG*GW]ߟ^C?#y~~ٳ dfnF<ַ#୧NcQf6ɘݰ4k =C-j5HTV^RaN߹0>N8! _yKx:xJq U'a }o2%]IO֛0 :ǐߩ5Zg'XY oy{;(ݑaW=Yæ -k;qԣx#6{M9 x{f%)|JQ"Og1ybQa|#1'ZlwPx9-6B]qtj#-54s&>;iFLөGg<1*%c.IIEsyK}7[r+u" ڝ|U'ZgŨB0(7g04WmΪy})VAXHn0 e(F]I6lfjp:SPmGoL|~H+Ԏa 5Z`Dwԕ4lB$v8ޙà#M(8]t͋ϊOPSJ\5[ЭYl}J_^0GF!"p-xrqy)OXi2ho,/Ay 퓇5Yf0X[\l0+5U0>HYM;PblNgPGRז3X+ZKgSiQ?`C}T,ԏ.(&قLja] n(6j4@L#ŏc84Ta2*5:SRO(#CiiY%9Kt ϣ#ΐ_!V: .X/-su?\U".= -Wo;:5.8 ֬˱?l^̒X:RSU{\CcZƝPQdDB,&Xm'@;ZV[ܻ-Bw⿁-h=}0i-XI@_(*l n ryg0} &բFl6Qz ư$\A.Mm#λqٚ`>͞)Y%ӦĴ*0uFPQD 8B5U2`Q`$DC$>aܚ,o͐1&;)SWJs(|a5B'x@=_.o^BwF<!hT{ fۮkgLTJ\JEgLLƖ`@3?jK4+س kEwN)n8~HxsoePĶj@aL6#aPʋGfWv;|hxXaXzFx^Pz$-v,Zsnxd x;JBA1قG3W.rV`2:2 ,Dz$A>0Yu:mJ1Kr~!!LP}g1vaU̦#&A&)-ϔSbT.ƀyOձ>-f$y2.s^aW) >H8dM*P MgQ-ЙW4Bx%Hs; z./IZTI񶅉+= 6 >I*\bPԁAԓ $3s`- M֑8:cc8u 7 4&#Ofmzi"$ۍ%?q |e Gp ȑxDN'04b13E:p3iL}>)W)dW\.W*KvV+'&ndxbW2ڞ?CQQVyhX]Ja3XidS,:TA៙"Nk#Cruxxm6gHܪQyB+b2[J5c_`3+؟"l" sT/@O~!̎ 7@LtOⓕOSPw+a%7_ZeQ5sMםoøpƍHis;r_X5+V~#6Z H. l H ; (0;=}xLywӝ4]7"3r |nn'7 vU7 hqzpQ C;ͺE?煐6#p5RzÆx (Kdð I#Ym&$e8MwvnU!}@󑆎d,XDjvio,wd*t.ǔ/:c>x^ǯ-xN!J|_G]@zӦ|0\y×LH1~ ث&[ ,d11J25JKa_]c B-p9cr?SIv$eBGaݽ.y? wEB۷ՔUu bQ:b?4u,CfnWD8ePt!,?e;Z<3HDd=9S- Gf޷eȹA +-e0#tC@$k:I+2y7!v5*f^p4rlj١kM+-J,e8g!x w) #حuwv>BFLA62t-0*Zyʶa`l.jQ WJ_AW1fo z\ul 5x`@h,񷀹R+& Ӷ<ΟG5 8cc׾}~@_ދR`aW\#]HB|MdhZzB?EDڳ!=ظ>oyG3-"ccnEC(Y@ހ KO$cJ㷈4aQ{iT N7H-+x\WnEdTҞ1_F]YDJC(+*i }S_6XH U+"{/.L!ee,R⋃I'ۨHsn ZgoxCXbr]1P\ἄ2:vkܱ\E \:栺iIa0`CL~a 5ֿ7HE&;k 0hedFG ƙqwU^]ޝG ٳȜwT<݈-X*Y{> .7r3Bvp&eE#/jNvW^QI\݀ ώl(m0JW)OdhD쟂ˬLĪeo(ºBFHCDrk@t ]/)YR鼘<Vf1^(^$vRi"8/aPU2xC6Ĺe{.^0m.`!?`2kv(-ݨBC'/"8|Qi;µK>_h;TrfW>va- 7C,/,46SLcUCkp)'r253s_k76LƚCJbU7"׻׀m(Mj'hK@D#?WZ l3UbbpMgQr!s5e>ש45:ˢ`-FP2߁ ̵ "^E'Yۥ馩ohƥ?lC0"h ;#wnH7W,O8E2&L.1(K-ƶ:6גc Onc5-(jBǠ2*WueR&ؐLja>\ ~8JlA۹C{25p՞?-C6|m Vbw8s"=!*:gwA>Mq7Pɨ"c4U`pv3kL/|F5UR _KjQ% S!U}wo/ܒN<`XTtpeUUK: 7a W"%| c1B]"?r/ׂD)w bSjIә,D+sQۣsDYQiJ{_J5D;^X3J#Z>;$X,V] G &/_Ck ,K;HĀW  d -9<`'ٲ7prjy΄< & } ʈZ7Q" T49UkU*k` 7"cJ3qr\vAQ,D0߾IEn8&YQzIZ:s:vrP?h+4K3J*b ;O4}è5rm6c^Y]ȋFaB7VfxL&*xC,Dt[LJyn\K47iLZJ=;|۳'/s{7"^ [MadF9xH֟!{6R^IPʡm҄ $S5ArcOj?Cu/%|?4\+s6Bӕxd MFN' ~΂kQ[좩u' mH*p"&:r"q`(u2f_O^NfgȠ_A̋::O Sr)kR0r'?K~%Uq=-v5?l '/!W;&M_懂NieY~ԥՇ؁h 6OSN/%;Wac~s6m< F>UoI$yˑH -9J}2pI{& n~Ҡ5<֍/Y=9QR Ip7|p||X!V J|nM&NZ'DH#Gr4 luOxڟ_킂Du \kX_ޑ0w5({G]ɈjW$Y]2K,;|]զП ȧ?OjDVOXµ0FdUs.!#`K3t7ذ4;QPB\SztF4h9Bq(T9A6n"~"gS-Vd5cPd#1FK,7 )Ahy çWM<̖fOdQ@յ2in4 l%5"+V%=X+6wC­Z*k~1olDĐSh[J /+DTyNb 20^WAFmQřκ&!;МshB +;{˟#`{0rx#jv:㄀`eA(z'vv7,K -) ^/N 󼷾s.U^%jIo9u|, <تe&?aoˣQЗWT#UUݯu)Tbm=4NG#a)MRAY)++RT|-<" XOpZE7DmE8N ':c~jCQjOi|< [e&-D[PxQ91- dg/ɇSJHCդ(y};ܸɼ-fE֙ھ}GӯgjG?[z;kv=)qNt;ZlxPw`!EC,UM+}V'vdwD֋P< aD^%z>bgJiL̈́BN Ca@p*&^=iJbsh $ S6 x).VstGp ;W"K= hED-\K{MZ$_>/BuAԝN8аD@RZst]x&JՇ6\b$ڈ< lAWF(}/gΟ~q7c~A$yf00~em^b eO_13]՜xv%˞z >9ig])>w''uu81}]'I0I &N/L[JՐ*6Cvt<ĭaPZ$u=$7 {\mV=*KXRS[ţnflz27YIxGbd5s`}Ό.;@+-:Ty ?uGP^׼AIœ!-K>b"@"%9^SĔAm9΂C۴0w!TRX3aC3$\d4c6z#u_!|N1M()|l}6{Fqg--sPХ7㨋53uډ+ L[QJ!ffon=f{EWo5OD=BoQo Bb(ɬ4HMڣ ׷oO¡&FCo4t K4,͉#Dʟ+ߝ%9V8o'"6lv&Sqwډ«|{LG%Sʆй4*2AAB!Xn%ύkvhR,4sR3XPdFJAsa,u`_`\}SڽD72W}y { '7lТ 4=Xp=fM*"1sV6{~FXk󋎖CbQ`s2'tUK4#KrQ !xCPɔrqUY:x`P4a2t Ͳ"7dM'gf# מ~#tsyӹjf_յ`%N[\uSzCB_eAvgdzۥ"~:|]# L P>Ǝʴ1J,k ڵ߲?#6fP% RN%@DH>z|qPtW+k65Pai*#DP\\6ýKT6wgw(P#qBm'͝~{ Cd|< y>%/Cds]•FM)ad;fm %\9C/E?1k#J_Q;$)\L{(2-ZɨtIQ~ s:Æ$B:g]j^=]1gQXsagc!\AxJw1Ɏ5v$`ײ  9i=wwڟ<ıkʼnfW#(n~s7C%u pG؍Aͷ|ůjׄ~MlΏ"Rk܊NskWΙ4huf L{٣z~#g'?o\ 4N\߮1.B-DC>|[6XHw9arX^UXPlEnj>l&P˧c~ӃhbUA~LsIY ZPBQ6|>b5?DU?,Ǵ,.156H>Ң<@?2v\_ {:nt?XCyMhMɺoމtJkVvoƂ2khǮL < #+';*Mou=*6&5cz>ENAv U}Q/9yA5˪]n?F;sJ@̺Xn3'B&KIz/(G'Qf ]=-Y9u?Z oxǤsD:ڴZLHErNk&hv?0vWw ด{ċށfi:PETG.GxP&#?9/yw ?N.V&aY%J}@ȋi G &?6ra)jpAi&yGP0=1 $/)Z\|qG1C[OGѠ5()8=vuBιx@8!tKwˊ?D L9DHc &Lx1\˧SUV5Ro'mrҡ]E\=AI8i"PoMəXEuSmp8ffF;obK4 Ut6eѫLHe+̊h8"aqG(\B)̖5DVs!n"R/߿ΑX1IX!u__0B=b|!f\vh{}-aXw[&-KjR—eʄch.'9Qۡ~'nN =Kb6jTD}Qe|kХz9&޺gq7̛-sg4@glUZF?mZ9}m3*FnnMt0z-j[h%zi>ϥMD:Qt5"3`8 ,.0? )Z?` W0_%ex@{mZӡUչpŌCZ3= ql14e'_=! P /{w w.cKf߂ [YV{:vN+äo;\\Ź*#`Y"FSpk峓H u?U(Mo]lTz_<|ad?NWζ"p?;LwN:oW4eaYj/Yo]ѮiJ^ +R= rN,mx.J#bKEҹjy=^Y"_*a)*R)z Ip'2XP+BRY½@WoXF[8PsC ӄ,qd P"Y0GB<+Ȩm9*Jb\~ؚɣ_kZ9z -]T↱bl7eo0g=n豚XrsY@aԯt;0-! ,2U1Ě뭌W nXYgݔs˻$ !%@Ddy0\ᖃNT| _ o_{[D^Tm ;u'ΟIqxuT f$Q3YWj3=~#u<7d $$ bXP{Pq;&"s١w+E۩PlDaBԩT $i\&FtTCAw.R!@Z%Ph_(y>(<8 eoi1Ъ: &hSjU `6Qa?8;Tgl΍L AOC뺟鱲#vKOs\v>"lfV|ɥNUbT2%W _S{{˄)a)dY@t@L?EAij׏:0 8a`5@wDaGK`Ɏ^^Jn]7&5Ǫ-)|$wPILl]JB({a*AYpΛ^tD@}#s͚L+K\9[C]!kVS@5vKczKE҄Ө 9ro򝋣r"+5k#1eVݼP82ƭ?.i7pdԙi%oK9kqw}7rF%p<yi bC Kr)KbtRH%ݓuǬ HB~}#9O E§3j_$2<ǯm^ֱُaƽ<"e7n`MGSK ied՞3u -T%坭 fqQmP>lK%Ok@r0Lsezn%XŢO_+Z~F}BxNCn\Zbqza3mOI1rc-Z'ޑeD^ǣTyc^aruz^?DD/&b%,bx2UoNYxjR䙺-~>?{J{!ԕt vc9Oȡx;FXp̾ߚ' /'Jg>rH뉕\:=D8_Я3FAVQ+'@IS\&K7+6/y~'݃3ɝ}1a%oŸhgZ M  X7XC!2E L@m5:+*|vfd .R>cµc遲ۅ?іd*BGPՄp5fK1kUG huێ"l?dEy#mTn=]ĢmliԬz ;ƋE ([FOO#Vkt@ s1l[)aYyU8ɁE0D"&#`{.l)SNhASF |41]ƫj(䵸Ev+|/n|L7jeSJ,kn;7&ފ~/c/r8 H58ЎdWVs&Hp%*|;yoo7%r$tD0DU.ƐR#{\"ʿO;mdnP:N e-K"97u{0ݻbD!5KGmN̐DJ 'ј,o !!O셷2jJ!TnQ?x7>kC6b*8 otϘF/NcavC.Bݪ4Bdje&J,LhR_#sV7No]w"Pu=4یl._u\LGU}ĐH+Yx{g>>["r`t B7ѵOօQ;'0/6\_oGDG/u-Hvgm:ķ?n=闩=G,' [gƔ\KIWBmqoJ|!uV ЖHxl%L 7HU=H4!5i P.yJSFP8{e-zY3g&o,HUSh8t7f&XOU0*)F 2[-tu* ;wZa. p@` _<ơԈ$, >:KxͣI*'*+qMTp+^@ʬHnTq+ c(};l5%_7[w=,ȩ4蟡I}2^W28e]APl٨QVm/D.mՃ , 2wHIfS rHKB3rcM%5iWD`I6Iw @qVN-{nۂ񕜏 "YuFc ~c{9kPq}{yv]*“+^OC1˫) g[]?ejO&]Ph2KDiTr&7g$s2'D,&t(CM2 e\C'|ՒE={ u͚<1i42ɞ7H h1s.q*^Z;1vj\0>}jo dNi5J&{r1Y]kA'3=[scxCdXZ0^FKWr3ܾ7{/)#waտ4~pP&ӍH*)V1)N0D 7N%ip&qXxTvTe[fĭі#1!cXy’ WhZoΓ9F{dV걋~3r]dP̺ZA{(O76XI&,oIj:Ynҙ}U5n#nƉKnfݗ--qLWVwyb,oީscexLQTunCMЅªhzpmV_%OfjpFڞ[]z'jgwqx}dwv@;} degy˫\iL&^>xl[~ߝHHk~hQw2v=0j@7Mh˔X!c:eiQFڣm@hmuUrZ}c2D|>ȽMjQυ(lwI{;"=:Xi\,>ӢnKg ҐEi@+V-mtHR}|-.d1i$ߝ]VLE1am%1w aT!cf53l 푰H{ @_v /^o;Ar2gfE4 VVrDؽ2jGwMۿ MZ`FA*ZDQ'Z Fg/V&| /o}+,? A-gn|X[]hvۻ1KhGC}(̉u)yNpWn ՇeC9ϓTáiiͥfDX ryͺi>35 I Qa\IP ˅JwVg'I.ql]R:Vt|`|w@:B/.Lzbn/Gr}V]/]1z [lqKDkO%1dn~83C <zQ.TxW:G54hHd\!WI5w-5-m{,Y3Nm4Dn]^mzj۬1Tp7uG9U֋a6YtGҖQIJ.Zʣ*Z%_QP9'5={,]3JeT v лtȤ}!m@Y a o:NBIvjȵ"E  \nAߚ Gcpk]>3VTO_+uǐ̧ך 0%QP Tuhfb& `rz ! yAFN{w)I` :a^a;kiCc.$G.eVjL:{d)ȴ("\IlYviJoD|*2p@W~@כ`3naѱ/PonR2.kO֞g"D] Q\x`F,ttJ#UsDDQbF\h".$UFYG+VotWDQr"WYuN̗umѪ;[⸒n,xBٺW6zhs^t߻;:$ptNY=7{9LtnK"fK1iW#rɥSؗ8PkQ` e);,n}L4J”LX]gPM:ʨK1Kbt+>h#efsP_GW =J4&ը~s8Q !BGf=bюTX=VXgAM< 6s?p;dȑ$gq&a#5R-Sp~įص=Ȍ>8zS_%W]"AZ [' atgYu7pկ geT])߯~ =4J'4~I>i1n=(`wnbDsLn`faWsQ;U 2k*-%er: 9wV,s$]#!^W C[ z]k 9G͈j%ãB/v.~Lm,EװF O]ԹQLvɇED e03θUoaJeX5RYN&iЋɊ.H0*CQBql^ɂ?Qpq 8j8 Cq4%@~*:4>rڣmApOVق da.k+༙̈/ r3U3|w8 VRHhEIZ^Sulj|Y. O!gcd񒘡Ұ)t?5:3+:Ep, ^lPc/bS'V㯻I:R'%c9Pgm"(H| `&;v;k]1ԟ0)BKj[;-l:fo#2Uj%.X԰ [! 5qeRKGMމ@Bpk L ⏲)G\{әr<͡)˭1HQ˭dyPPU6D̓٤n-Xbx"P:GU;8&qW߽hC2&Kbyx3PA6)©]!r2tqÛa(f! l2*FHj[qK/M6tbd[ÀuDH^w'ڸE QDQZz*zD>]W]ySzΤ^yM2. QMV{Y޼Bt@]zuT@fIN)6zՋoZA\-z:":*B:^ "L+ m$HVa?~0Hy ZJ,)rITAjs(vW.O J u XuIEJ5A⫕]w|aN^+-,I.Fe }J .J"j}5< '{fIsPODΦpS>bWWJahuW!h6ktb8ȡp,D0qskox;5 y,"/w\̉F+g\͗2⇩8lf_ݨbpfb>B)ͻyv#NQ/;[ܚ=]keYtDWhZ׍uh>P*|fEg [mdP=$f 'Ve>Αi@8m:ϊ9w]@[H?HJ8ͤtx;Kn8-9LUcEpsl5>\IzTq fVm;UE(]V"'^׽Wp3.=4n pJ~W NM^5@:ÔOɣGiT|TY1OD`=9 cx# #rb+-tz*^xܸaHܩ8A|³v/"0M$i8VLeX a/\>ط`r`XW!΍E_<5GbR;멳Oc2 B#eM5yM oy^9N6U!3hGUt|P:Fe3M8BZ]v$z&zvOG M 37ф庱 S?@.r`?pyV$-E]Z&_`̹Rg 7<#b4!ovH(.+k_1Cqٓv1U6s p\xęqOJ&է 71Lb`\m 8Kcn\2}l[(G&3!k;00%zê%Z1C:3,|E=|Nf`V`IʨJ5 !܌DFTJB q%ˑ\?K󢱾zeg΁‘P#F3=V[`P3!H$_RP0uu#X-7WL3VXِEgg!QAx, ^*݆Ay?[qoMLr:33nXVsau#Vp.dunS>rJcQNhRS?vVX뼣ѓ7a"gГفIWވd%l@ &8@.BEߴfقj6yiE/u=PyEcx,0lh7Zzu~wmgEƞ:9TT@=v5WVY;=QՐ 66|s's*Ut>f*3[_j|j۰7 7 Y]9m;`v\E4~=VwWǣؠG6bcP WkUҌ#|=Bjۖ,-xֻJpO #0>D(R2c|˛|oT=]~\*UoJK7~r/CG־j9yπMB'\X):7زcU4_ :7WD.{[UXcJHDKIޣp=~9ޡGxeV9Ye.65$t&ԛl{$_M"E Gs\.E $[GȹPwJh&!)2q9{M,#J9\߆݁wpk`O!&4Z{J  `%לXH(\'TJW)b4R8a•y^+ ڞ MꞱ+7h^x%d:WoD'i&vpwd`^="GyUNbխчkP%o s `&tۙbo;VE\"/i*oKa "홢i;l|yY0Ta>$2I ^wJߡ5 F4c_PYw\7=UogK9D<䶪*@{ D=߭tyAkʅۛ~ruES#տxWߎ0ݶv&g{[@Eu=*ȗBԑE0N@:$ Q]w 'A [sBQcIѸ +a"q߰tP8L,S`'v^V_i}rZ_~~0q]d=Mӗ%T%ouc_;GZ> j,LμZpFL@n"w l6eP%ُb6X#{$!0x17[@\\Rj>E~9JryUz~ z33\]/9%LIMSIu.„%M3buuY~/bȫKNJ&I\#ۀh}Z?U>V>,qJ@QVC2J- ;g|dtapOW! %|ÇŌx}! N ;cj!vsؖ\|,`O)wl'=]iS~9&$ ,Etuh7`wc% g>* +f ֹ$j36;({im@f Aݎ!|\pjȵ1VAo->H(|u5-*rdwۯ8=MVdZe?(@I3 x%{>48r C5@vjAwF"dKh"ߝzVEc"1 O ƛZ9ۼyfXU5v- 'Жp0`Ǔ9TNaI?#|sM.pe1{#wl}% C jFteNCON5O~@-1b_w_-g@Ѱ   _jv\ ?$`$2trcK%EJO9yy\DM0rβ/Z+;$_W; J.Í[~wƑZ`P]&XɊr2_SXs*v1ѶmtԘl9N}92E;}@fcig]O8WM[끥Z˭H}iE޿r*DN0|H\hJ.| hW^nd Lo>Bَd U 갢FOWZTqyNњ[Z`뗵kyrhU?fk"XvPMFC^o;czW"˫+YcdbȊm=N &Hf/gӬ(uU z `R;\^Ԑn5ܚ[,)*V5؏T^ەl;uH:UE!=7/@p\讐q\ 9ED[0#~ynaCg繭ZJb;,h(g!8S7'"b+>- QIu]^`9U'v9yӤRZ̍ݱQ$|.z:(N8!sṚc\zO]vj/;`tXKN`O  3q!nu +%Sqy]J77\ts;PV-!^BUJk0EQzӿIާFQPWBP6| N8*"1]9  ^+mt{@ǯiFqנ{F=)֎6 F,oX:i+{O%b_u69a5|ZT@@{-|lYs\F ̛P™s!` ȏwZm.hZlrYt2\S&{L*G xttr7b~? d"Y$Ca#e$Cv^p8WQlcZs<Ȃ Bw'Py:2#ϧEHh,ݲ`z8f 'לd$-l)*]$[Y2׳)\ jx\VI7HW"mCeAwzI+ү_9 8U@WR:XIQ"\n: {2&;8TMXq*ywe7&Xڴ>x&pu,"9ix_O8}h#=klڪ2+l݄FB>QnP-pjU155/!aǚM(&>v:naW7|zk#>2qF1_˚?kCescɌǩB۷i"*7q;R0W7)Ln]}p4  N˽\8%ĚdAܓ)2Y n \]dUQGiI1Zr-:eǚ{'Ð'NX)oEЕ)'-toZXUk!v |xMM;/Rh`CF)u"-TL>ĝmW ՙBgVQ.Nr&8*fo?{&oјٹ )4z*O8hE![t9]/9Edaj\jdZ(x|^7 LayȞ^m lPBoSUm['s󉿷a e!#_q߮юn<K"J;Ƽ]NL^ʡN;>Zɣ B; K93AwMBO &q>rf_uC{A tCI";_US- 6^T`=$Lt wnt}ԸdCu9ƾ6`ƇȒ| )tŠӎ$7.^NB#I.r0$}$&+Jլ-M+$+>>Q?a$ R2 IΙߺS{$@;_K֟˰!Y gʵ,j雜1x֫"G!?kJ>GQjg@ȘJ1O0=6te(ΌT['=\CŘ:Z"DőSs}ݤ04ٌ+Ʃn*C~7?sb2&iJ!Œl84x d\=mICd]}~23Q=LHb[PT-( Oh=ܻ̔c9SݰP. 36ؠ ˚') Ң}5f9*p.2bs>M>\;>x Lb_+/X3"׶PKL;v|o)|e 2*/ dqbR0aS99MWq!H1AT~؇ذ_r+œ]`tN!e}K9~蹿U AYFkv{X?!+ѿ BlME|!3RSڱ>;q91| {#)"#q_6hnc~aڵ:Q& PB0fߥ[%[ι  tj[,k(-Nv9Ikua'_ Kc#!-ljv1Nbn[#.`MAfg. Dݣ-P@wpt_!|)w,ߕsό8؈m֔#c!+LVZUi8œXtm7lS H}2D@I}nX௧J. ո.vlPܘjF7և _|ۤ0ֺNˆ m,~eOn艧/Gs\S¯yErWwf^!d8ӽt0r.@ޡ_uVҌ+΂Aā-^e6V@_xх 2j_x=2܃՚yЈx m_ED">loOɟ oF?[>ɦ/rI7o즿S{nJg?9Êhk/^aFJ+ &߰NFTfaA6NB^|#1M+N52St G}V >ҥtwhV[曃)|adrIt\MJ֤۵hOnORd/>BbʌwIaH':hz!Ha. !z!6jIL}`}0 [ĦR@z䂇dEV@8bp1D"Rr)قǮHxQO"kۤAXE,Q#auA25fw!WI̬roCqOLoD<j6ɁNgU1q$d$GYId2|EFDib?b{9J/ϯNTC8ǔ/>wwp4#e&UXJPt^TּqJi컘$ff5n31.Su[F_=.LQdPU1PIunYiQ_H|y'{(e],1E[VVo bɷXJlt2s4;x7[kqA\yacQNŝF+;DO7~pW%o|_y8=H$K4֯F&XX=HfV4_q6f>AJBT6i~ܨ^;%L&mÈcыa0hTV/n2̅&U 8x `.Ӷ3"^nLH^f5>b޿_l(3g^XȿCVjL@;rcF?V@yҝU챨aN|lH?+ִ0'K 0k}fQR/5*Leye/$z2Ńl v銋UHVݙ&χDO>SW }7m]RU}}2|uKST&&ژ&2G{}HyÉwR&\e3PC&]MsdpABh9;}=!5Y =L(A*0"  B'~'J7 iY,w]φ= nTΌ"|XGJz'qһO8EKsSOл_A[Ju'D}=rjԿݺLw˻We%z~~}ψO|T4Μo%ND$.gޠVf̗_\bhQz%{W?*3/3Naf{!4ߛǤ}R]ld{_z%?Hyi)03G*oe%i먹5C5Z7~1C=(=!Hl^I650pʇSHEK1 k7|n1VN$…CZj=+t6; C6L %=M̂*EfP@*؏`.+5]v2R8c?͛r6r5qm^ّ2 s]Bޏ}k$rrI8gE>Pd-^Ⱥ:WX0 I@IȊ _| X{]e3yL#fX}<eom-Y'W(- FC0t.p$ q\Xw*VbrZ |1dǁt7bT ǽ..\n-ĶcQTJ1zz$-7%*ӋH&z4Z!Na6%%Cm"TC3?X[ҰuM}PяW,)G(CCqCdyP;WTp5;p\ByPw{>7Hr%A 3TiPQӚ?;)r#Ժ)&ۏMi0u,ˎ*r&[ZDZdpBץ]0'Ëa& ٟaEa61`fpJ"m;tIE%m ͒9O֕kodhr"\bxWrs42\-p]R^pS1K>!$aa~bE㓣@S|$|*;pg2=7AX"c Ԋאwl,CW%9Y [$DYk*lrv_w4 w^w!b=(grVˤ%Ms'K W}@>ۇ~7DpvX.a.+6@Wn+3m3)Q{t3.ä6񒥫Tly 6\wk=B5Oު{5rWw8vuKBso4aN&'V847VyW3 ES}%VSry͈7+Um)ǚiq5a6g162[ Jvtw42o5Ъ3/kH+ؠ4{V+X\*=`h%ō̌QΟ{DeKu ^oQqF-V&"K |-6I9o$>ٞ:)lMMʱUiBe"#生 ZeU"=b/HrX^=[sǯ5:~0cxk|SUe.e\`xzTBO(YS1d;W5vkpNAPCd.I0H S Qe#z(H? u9pAV;<6Qq}?Ua K~$SQQ*ͶĴ]i0iNͤ~՟u-;ӡZa}HZS%oh kHdQa߼3ȫ|rsjqR^Ǭ(mdN1f Vm!Lb)۹֜\KZK".*vʿ\o"Ţ:HZUt{sSr{nT`)`+^v|H Kp-AUw\xϼ4=0ŕ{/lZbmUpRi7 ͗[t%oaꮰjR tC!whd֞XmӔRh8/:dDk np7k 1& P cBM聅lv!3-g^\hndm-@ٰoj٪zEHhϮeD|SD(f2%"qr]P$f0[ ˻kLV-3|A$j?H Ng?m?%>|*|A\2(Ψ:tm:P.2.u"J\ ^S .l*qyT92'PnaGn(ҥlMäUGr);wyX>q5px?|"**Je#;xYs_hS6AȶZj[zguyDC:vҋsyOEFߝI}3E ޮ*77E=춝2pIS}qUq@weʺY@O DcC 9{ P_Mu76sU~Od ;zTH%iCV@0K {Θ\DŽV^9qVb;Ԫ62,]͕? 1lN `K5o D/dH  MzT{1E9$[Gxf=:B#"* JfƳ+wxusȓ9j͂ndf 7#R$iF} SaR(wS?qלN_KI24)w+ɍk ֐vD fcxm)'7R}@rF G;Fi$Rf9m;6⛻pϝ[[J_Cox&|-@c53τjIֱݶ'65扵ni=?23LQ#D r!ɺ,+~~}39 ~УUPSL"4^ϥXy6K#!\%_͛݀c(UZny›r3Kh~hI% ԱWm(^%8 49J=|*94v kтڼNm+Ng(D,fX[l4AT3xy{\ݸӤ.$W|.Oqm+)᩻! ;W L{6Z9L8Ew1]~~ɸ-wY}\cv]gU#rhރSPs{$UkBS1 1`)4+R;묫f']/ң#r}ʰA/$=QnëiqHh5h 2JǦEM obJw lH{ \ DpW3E|ľnK-{ՃX{Uj Pjr zY{b+IMS<^6Ƨ]E)Yj:m88#qڙLD;Ʀo֊DyP*f7]O3 gÕzhnsw"ܽz%hltʪN&Yvtx.@Wmzy +A?M.fT:nIXxb}p*AՈKW匓Y+W %Z'4D9x6JpZ5QU_n K[N}VF.{kKب>}̒s#[9,Oӽ~2\?+4H\W H~"j VRsu"/ޜnf>x0wc<ϰVJYCsTZ$`=4R%97*Yj֨9( VR?K-ne!nD>65[, PAnXkZM+db5K}1 uxSRdhH ŝp@HJP*袅}T. L?|eg {xnCiZ 4&t;uHQOs;3$-г5 J~7JUՑ~Q"}S surc,xj(ѿpdnwP9$iVPw<'7_E-:O, o9cZlC|!)NebEU.>E G3Z-6 *o oq۹G\[g% XiNX~"׵l7RswN`&+3 {EdN3y<ݑ.^D)-GgׁxrW&Kr \>J jm#s(\gW_c oۂi{>"Cdw8}N cҹȚ:99 R#"?JG,80c|C4eRDz fm _xٛGJ%sb@Ą *1t**՜sW R.$FmR^用N0WБ3i?+ /e(8^>cqkx=%?o#6%;Dltn[t<0%{78^Żc~U21crgm>NjRIA=o/6<(`blnu {bt,i󸗢)Rxvl#Qm 2Q{-n FJX̜q, #4^ّ]ZZɫ>>lJߛyuhMx7i(._doRTtx3bl]ͷ;"o2.RHF<l4~h|_(a? 'P:+P HGtcmm.ԗј1qH)k87 B29"6K_/5 6?;PH3FƔx{]8K- ~ub r>Iw2"I$ _%mjs E]==(avVg0`Ds-pKÐ%RYZnmnu9zF=Wc#'rw{7>S.75IAg 痊zAhOB04t]]Cr"B8~eXJ<Y"Qxs=e6e{4uo>- EFzˍNv}'&PB(REr><)ѭwN6k2IvL4dYнI%X6<f%$܍NlemB[`Ķ907fO}Or)߱I̚`Zr q:&H "uuDt_nF3j4N `Cu v\eLNyŰ x2OSkTS 'ᩝrϮ[WN A,CA;=%nS̆S >Zt5 Э \D(UFqn eK,/iDcsAcTI>|=z_.2R୩ڵ7xği4]Ol4d HV*)]J>j ?fŞ azw#q>Ie(fױ2e]{am;L\i|KP9p>nKN/8O4y &&!o Gk"1\2Ot0)MJp\{~…SUnu??I hg&nB'>](52O>_ş_<#ʰWZ0no[k~' eAs O>(rFN_S$KׄZ@Y8hlMN!Si_SMUGHȆϺ$'n]vwjWѦ'r>ђYAł1O]:9%pD*kiˤ% ;KNZl!ϳr~ @>wNHuI0BQXypiYeY: {*݄" J#RO/q{Oh <='.M:PظN,4KIae7|yY&7*膌]1} }[!7ȡf{6W>c?ڍ/Ҷ,ږW*$؏iwȏexymf&~@E4y-|8%, vP[RE!4Z,>5։J,0cZ ,,FDٶV`:PYNq04v )贽k̆x9^qqQ.u i.!tߊyc=R[FuSy&>9:؞$*L7}_=򇩽M2 d/}SK&LHCԂAY %]ʄ8w9̂߮ L8re,0|l>D2a29j=6qVuK ޿7iQ,-Uٺsш%]c[D4h=>GȻXV%MTi\q H9ɸ<Ÿ >Z ؞ޚUZ5Y< ׳J_4v@5(H:BNF|f-I3][˞QA&E > B9F5kR r|uֳ^V-A8j{މI]6";!Pnh5REV4S *a:mz :`Dkd"p>@-CZW:9)es%[-( |`6u<0qp}1ryt!+LZ?Q5S!=:":*N+qqbUD Wغ// _W/` ܐ*8>49@7/x&*-V1,6: AD|4'Ʃ%yy"!P76֚QF{UiD-*5`j}3G~>\9w.CQz n`/܆ +i q;i tCۏ_bNݲ O" qPPݘ3H?fэ>8r5XMB2 !"|}BuWl Uy\_"C+LHo:c}'sl=NO3^_W@*Gk,ݝ깮Sm1&5XFYi#.m_kY0sO"36341DITb8kjxE#9q;Y  >MLא4h%s/;v>Oq )-r0@Β?7+(VkӢzx~Ų]_Mdޔ]@tGxAof[Fa\-O;'[1&j}q{* (.\DY.|OiobsQh2d %ϑ%*a!̢y5BCցɯPˮ`v@1lמ_igARz82-6_0 :h.xmUU)q,[jQ$2xh[$Yݎ44t<'B^1mqB" D-2aY"P."ɫ,7Կ6Ag-Q.ق t_r=zezJ#ǟs[a9з|nYo^wZEd?nQX YdLH[㆏GT<OA >~p)TW^8w'n>Saٴ(oZԮG<R-&Gg?<t+xg ݺTVL4_F1P@ =GjsX 2-mܨF<)` '@Œnك}*OyD+ 沧h;>WaiS'3 M=MfM;F."'g]; I0n[.$P8 KXehr  _pe2\FώNI;8Rimr:+| h{'%YLu>qh4ziQQ4ARtW[P i|E K A¤v4@;m"G䡐,Mʼ83u(`SgYԂͮߜri1op]vt10a7qt6Eox9 /~4Wy"KKL1;4MlvK.,#y֏**R咖)<(_KΜ0#X)r *OL2D>3CPᕳ l4#ÁǬ1k+HPCQ9 T(t%l ñJo e/^X\' 2k?Hz-8RX!᮶p¼ kM`2^t;HʟaIr쮊nak1,߮mScIbJ%t0.$EwK ~/p]qR'g3A-~.ʚnjuxqA§lwYM^"zƣ*RgL,]pQ(-4WHgmFFE}aTF\_@;dE\- p4P.a¦@[MJ p0t9& ~ &Vr2y;|"–΂);5$;}ȼåG'>VbIOB!*x,Jw =qXq 13cE6>9q.O$ }g";zRoGua '7q u<aM hEaOO$ @NcT36Qçjemp%D1׊ |Ě 酡6.-s1t(𻟤Bj.Ga`B*>j+mV `J(Y+~:~%wPOpZ\SZL1HHt*'3`/ pU>؍P8B%|37B\sEșG7#cb4i{<ՁI";i ;C}-`=fcަԒ.W}"_WaaMb/rjYPtlVʎ59C?7TyuyucHm%ioT?#6m=3Ǩ|H4)0ި\/\-$z凧~K<f]":}g@ރO wNf^pؤ/H0Y{2{jV7e_q W7Or1zXPۃgK}(/]+9g:`y1q煊vc+fd,ƺx=9hXXqkIڧ/Uu!``ܵk; a3d K3g)ʋnK3Vc/uD^;8-2%Xgu6G-A7 bϠ]^o w-Ӈ։?흚߁,t]1h+h f'QoHUoq!I)B4_|U߆iP@}*7]M=ơF<5f\u:,x`@7 )Y?b#]@¶h@ ~Xd&u 6Y gn<}fKfs f* E p}&oI5xsmRCcF9DTGڎ OASpdlXkR`s~?:hB.FS -&9mS D̰}hC`$qepӡ3Vm`jge;\& HI +Ԩl4c@PEVڶ#S I E,(MDQekPgGM]\|\[y W-,joT8'WHyv龺 5C*0}BϜrbZvJ*P}Z'_/ 1CʪRvfC7 e2<,b1^#k?.=:nnJ3#AW?gFihŦ-\>:Iiȸ)7-o*#|l1"{f'("jϴRzu>%SDqjI_(FK4v7 'zL1%?"e,zKE_ _M (!usmy} R RNQ"鱯E,7&Ha#; Hќʣj44 vx؍$aܯeSf )a$%NqӅZN6CWf\U$lJ?t]B?j^/xdD -kl.\8J{'"4+DgX1%/8 R( ֵ\VC9`5M6M"+XZAYk&/}ۤgB^Lhm} !hIjEݰ3";iBwf(kh% .XVsGCU VDElYv{/ ֮4k!MkۊUO7Z9߽r| o]l<δ̉y/Y k&S WuE-^2|3M-+fYV$1.'=0?n뼧?`Onқ\I呔Fӝ>YI_!N0k{d?=( c=}c %nsWOnu[+nddN2 NtmL^ jLT&RzHvI~j׫z1 WK˷x-Itߢ0}_ fHn%X|psal4vj+5P$ҒVyT!;m)WP[|#-b XHAt]G2.[}" n:e9vc$o*§HCМ\Zۭ|P7N"+*hƖ 蓼rG㟞Fx&U "bL&=$lւb7^Ў׹3 9LS26 ^UE,LJ醴6i1HH̆Gld<_Զ%$(CI҂WQ:XLA7Ìar`DM؝O_]z(%<Vb3`D |/^BՐqM29_^"?gAhiV6N+5sII}xq(,Wr3kQר>/zϽXT6^d(KI=z[ʐ*€bFXZ 5<?T OC6@'sVj;#?_Tꯎ@4 ^譪efܣ/4Єuualmv*& HpU\v*D~ $yC;v),Idž2sS╵4㾕H LwFMLq(Izo ` 5gj"7Apj{ior`Ya/;["ahiu=Ǩ= '^7Eüz`.o V4BXaJE3tGĚ;8WwBgeQ 6NX&{TV+8( ~H!v~1VOx''`#4BBvo޸> E?4]#;iJp`0_d //0gekd>hfeV/ZLHqX`vhKԑI.ATK8"黀,Xد ćӎo>%l,>5%J47Ele,>Ѭ}--R]*29_|RK+._ 7^̰4z|ʆĕ0,n&&kXHSP 4 w!o8П|JF| H[k"r\ۇ`.4gi?K[0gEx<ۢjqn?8O03vyТ 1>DZ~m>x/$Wk#srxh\\OqcnjdY[{Ɇőƙz1"6/A𾟙l-TvV*QA;&@BVG.+PеVjJTdHAQ9u/݈}@?1N]Wه"#28])*e2ʰ ˜oTl#&`u)\z\^Ic9Q-g!hPPETx[}\t\㐥3/WF##M тS|ph+Q?Sгd.g8DD]ZH^ ?s|J~b:2+:""Ncq% cDUWo'bg 3`w}r\KC^%e|"6UN1[BWW>"TQb:Tm3N&Kٝ>q)@]6?lA{uz=:WR[-ZXVsJ?o1[w35:VOԴ`C5/nY#r$-d,; %-(EwJ({G^-1FOTja58 *@dv"hD*KSTU'%>rU1 }36Ty#s݆uWӔkܡgTB-xs2b1>/;”2]N,cO֡8%Q SӦOY` k:0OF!E3O9ϹK]='1^JB+7 rG9M]R![Ӡf.n@2``:c؉zzAjZPU@WK# !z%fOa*\T-Kc C-wj0%7#Cc~NvSXwP|t9yokBd-ܒ~wZgR@sf=J)E?8?R\hot^l=Zb7zI Èa7 (Lܗk|>%nLٚG~^ ˟cߺaEP1 QmbH&)nQFP%O/.rLmqLh^!B=7_K:= 1t =%LCAܣlaCuتZ)(AuцiI(S[fømGQ5vnbnM,_gIIrT=|_y\jY]腛)t=h%OXC@bK$e_Au3AI}F~vɛOe4n 4mei4 t1N)-osz3[6PJy`CMl %3T̨ YZyN z(`CI3IH@ 6]0 M?Cb_&PW.zҘ_D˜(D;uZȪ4؟Ggh6Zz5wt$0V:VSh,NqdVL0n5@H~4RI92M2Z^ f8&/^p\dՙPbeIY]a1B*~Ci'( ΐ"%:} 9Xe1L3d+L]}R !*Ġtl-e, g BR7KF)B0dD?rV+e%&%%WY~7 :g402I9kyZmr[2 +vO䬖bN2Mv-x%%T-_ ނ~gU>5bdxT6X>aNSmcn)FN@|qŤ]&DpXyT(RRV2ׇj7h&4a y>gUTBy A7i{}{XZ7!qofkf:)m@,V-SMSbCdm ^h$ t <܊| ] Dpͬ4_42g-GR#1}Y&I `JY&&sG7V>갍fKYd;s6DKB4܃O p %{wS~Ƒ SzǭqHSaA%!RCqWG~:x/uƟO9ak38͋ V͈UJ; rhh" 1i;Bv}_,|Z>Z(Zǭ _ٗ՞7y(u0>j4kIM ?ߧY|˽CKnS ݿN֎ t*Q!"Or[*ϝ1$W2C#3 KؖSb|< +HuWO2 XuF!TVV7`!#v 釲 =& CﮏP )z h=鎕Wt}eF1ʢm\E-B_`#!PY0v< ^?I5{\,'Dp#xgUxz^hFXDق'i>X~ꫠlE%zrN**DƪL4uNS$` y64īe\_Hb˯0?RN-ht,VsTSY>䬗UXJ}E@g 6*q;Bώ6=z4v ͻ}l jS@Siƶ3}|7)UE-#<TuAu!{ \EQno)!( P[ g2t 3;\e>A|6/ʴv[*o'l<d[5;k0pMiۚ,nm^կ vEtprM '? 5mM*8Dz*^]h"`@0 Qup}j":5_Xi}5dv!>YXV5סL)7p.!YE%cwGRfX2"He1 cfQI \$²IخO>bZ)D!A4?*^q1xh ыnN`2[:9.9_mP5sɌS ne(ƖF ZE$SH%3;P8Ԏ5cϻ MPǣCBY Shf=6BE?KB Wt4nj ٰӓX`dѡʠv;х^\!=$ cvf.X$/y\TQS{lJ'<phMbeeq ט4S J(ʦ3cO1lXl~vګ7Q1gNKG$IWG.?=oc@av"Wl?v Z&LIpX\9hP0`Kɏ]LD*,AY_:ԁaų9~bS֘s)g`6&#yĈ~Ӕbrg)t_お!ډF=v*.1t(9rE6{isd=ǹe]'gʓx4'Sb<[R){ B$hEzQ~wܹ̿t"Q3|}3E(,S)L'ur:CsKhN,TI7o:QP3*f6 9:f`͹)8л00wRPZwٰĝD/ fH-xCFBXbQХ3X5c,Q#"U\dѽވ={ ETUan]8 pw&Knjc)4u(=r#5)I'bpDH$q'TCU.(b*Y}0l E7r<͏fgKQfbN{ A\xS5[˲NNu(k*1hb[}1MSj;!9dRFoTd'pv׃}\cH)!I@Ba_LW6 C J&mStU On[z K!S'5]v|Ol9S;tU1բk(=NFc9qن:lٳ"f|!?ا@JF!R GB񆈀zU@JjIk7DBnZוlszB_+:TS*0.C5/-i {q LW(R u>ڜZ5pI{g%yaRŘWn-@W!jJwSa(E4Y̍)6`U- X# +v;W3mewQ NAv +7`SE Puq7>`],4ԮkUJB{'bn^*!â` Vt!_M*d̒LR@afkB B2&x+t<5;`vCMon&9B4L wRx|@`lߪr}FSP|0bVAb$j?}.F"t}̪k@w6DVk` ")wJHZ[#ss&ˬĈ#_XvŚ+:#CxKR/9t '7{xZ XMU7 &*۹=ãmD&uS'0#>'uqRZKZ} ׸Τ/RhCjeE"| [ͦ`|px/2F.yz3.j aTc;/ sgʷV7s sT8^)cjS.<ۼ^L-){.]!kpɡXZ5W1<"50PCֶe6 |yd?P>mKZfӐLY=B# wbi\p]o2Ɓτ#^ bUydY&r"Nh ]'" U ~ |2l"6zاiO'E6Ϫl#$Kʯ;єjq<5si)u9|}CTqG DyiYet䗄yB ϥ'u /w> өV-2׾`(ܡ9eN>D ΅[\1`:=PpTH_Bm P.TU\b"S P+Ž][8FD.Ӳ|7`*)2檨%N}L@!3*Im2]4'/Yeix s*V2k!ʟW7cl̍ٱB ,3beieWEt^2?!r%w!<<ʈb2v;.@un3>]<~RMZ R>c xЮet:-H@*dxh2\64[-T<,hkiEk׊ΤMWQ]!>R,[߂ w;ǯ^?*<\Z-CGXY^ }%V{ꌷJ IgdgcBr`ݱ4QJ<s|)66nk?P\SqGV@Vw"+wԮF /PT^wMW9OU+}`IQzJs܎i6J{;J*]FڙjcDr[iFN<#79N]I>xrN 4{b[ANl }5_?@= UgtU}, k:|Φ %\ö5;K7salKT^xrRÊe-yS!ezTKypx֮U#8urIdyO2]B*gM>\3wbhT`r.7VY]Tv-E1)džnoy)QlAti chr|IGp΂0W-;d"*Ul6Ңk6N%K \)Wa[v1.l 8x~O.8e :<}@O!mv}>1c73!O_YXݱ}*0djYQGѡ.#ī~ΖS "Md ɶzYH YM-hipJGtq8q ,<94A'LDbzpд;^Q/d!.ި%"X=H&HH# AUHל_ԁU М^F'iS?Ͽ|(WZzk`Pz[)]dD !,!GC Pl b>5{{_Qhx"Dڅ#/ɱ\N`{PϬ%݊1U~6<.`\&xKC^-'helB2_"LԓxïV? UO+Jt,>[xg1R=_6v}_+~BUV-rVt}R!QX}X~TqCn+!1P?RجW/0l15DhjX<\_Co'< kJnm:k# .o{jENUkCs)lR>ܬqr.OjθT)ZW:vd}e}%Fj`eM6naXk mUx:ĤB'氯qwso{cliZ1%pmP+PW7@)-#H3PE}q?ll_д 5nka7 b1Zu / ]FJq+ND%r j8Օ ߥL( *5zU§LLLW9ͣf7,HBת IzCu%Ջ@y YM3rWХf3VrG@$6 31 Egt}R wjE܃Ǖ M0HqLM;.9"D-8MtXF& ht\@֊,ܮWӶ0 ڷ 2M/S'FL݅a4UF'odSzaOs(SkUGq1p!WsϹs6sjܺ7'7fH1a7d۲gCȍwr"E#I%I6@?~srM=ȁ'"L3{g%3* ,I^?ɦ)%Hp3ࠜ#Ԉo3#;zd07}WF 1BCF)OHEیǏ +1}":RIJWrI _i}}dQk{oZED)е|a6R,,@m|Ɔk5QxL*ju(Yl#Gqw'H%w1#Euz p_& ;q5WL Y[ Q/5*m'>7,sM x?ӆO>U/)ZURZ-p5[f^:-r$k8" Zt-D62tIњ{P/ q9l|~Fyc}IqfB&$|K1ӯ aOҲӗ_Ы0QƻjkZ_|hYg'$_p*m_ut^dj5A:zY4>[Ȇ=jYl&g=o߷h6ͥ^M <4DJ<=a:OXPicboaGvno-J#Vyq|ڎ.P?ZK*iaAe!{ծ"CFW<, PHek|5 _fW#2b.*c7-RʷĨfXrFu"I@іH`$-~z-UXg L4DsҔY:^OrinD(6˂5H$T{-I@^0&h$aI' P4د >gjmMGxMī ^6>W\gr5C. Ƹ(<(\dҟ$?9(7)*%b,BLN7-ġ="eoB>d5KTbvo ZOtN$;W}NkݤnMP@w_O4DejYQC +uyO\jҰc^YbXVP. _+*T5;J^50~huNw`|b&RX9#eW8,3cE7Lй1 9[s|n]$̺OMx:)Mld`.w*>Ɓml,NLz+sᝎbI~[r[#բ-m3¾`<^u"q+B^ck XK)nq~2q҇!' '{ ڗV%De[:'.OCYy;}2A??%G-`-Z{`Mc.4N'pJ9鶸 't"B}}q+AƭkbLv0$"gR HdH35u 3p=-*YeG l73]0lҨ)tRSG>`Qdu ,jxN7w^eoeVX=ّCK1|5wT+njQ't$ sLCDY X^3p1!ɸ A_rzX1#>°.Eh+D]:^Ų^@NdΟ%/*[W<@/y$EXe| nZ1ΫRgA3{)c+q*1l[#@:LM']Y#]Vƚ)ϻ~OF L orGbD`xq@U! .UQ3 EErNn*G"[NrR1"80ءk,ƎgWfKZL_V1uP51PH*VI:TKOY~PхnTRˁ2kFSϑ-=* / (PĿ\{jŢuZ "_$F.Vc|,|$ӥ`=w P3p DG*>ڀCv<@z_:'~եFd1.Ew&m͇H(~^SoA g'GYշfGڙ47 @!J7.ҹ=F(9*LWj/n9Z@ɠuBMa|u]^07lݸtxɜQŘ9,ɂ?|̱'#1mg\2e_+r:oc컿bjhk5X%"A}꿎y.W{8mz;péaq] /qXP/J|"\jƢnt34IR~(J^WXR`_$/2qȝ$+ "nb Gh!\J):Nj0a? ڶ '$s\؂kn?,-()%=,s(t2\Xp- G5y#o6dUzWcޅ ɵfi `Is_#;`'GwG-}nTµKgh PSb\}8U;m\bcU hۤh鲪($i P00HwԒr*Q-Tx~YyDP'%LDBTrDsi[p1kTJI-`$"Jj+58osbqi(RAM:>nDtЩ~N\nN S7N(_U{.xn Cj(4+#֞4Šj%˘edJx&5gGxXq U¿i z Rr_Xl"tьm޵]1c}ztl7ٴe8gP9[_O({n f0z݆oeыl' x<{@kCO'ISd@6s&;8&&>!lc"|B9i|uBix@)x?V_sʧʓ`u-BzW@*;ܬז"?܁,5ёiGK?r*ET<W4EQǚ;Z7ɍ9 Ȁ\i2מD `?q"b|ޣ< C((R1 9I7|r1}AL-S\Ǟ MEo)qq^ͺ \u*:BwĚuL/ ^=k 97DwZtY9qiqD|;h@ÝlՎB95{{sTT+i\ħwA᷂-ѸxL^9 +ӤmNiE|2Mә;=ؑy1M\O8}#`2`j5{9hV\uZ k&jUYmyfcW|ޖuq) X1*VE04;G#ylM'!`w ,却!5B ȍ 13ՙr`K8~HDCXGY#VaH(y=qN  (#QMOꩽB=cl#l>KEψ BJCIHZ3cuMJ:P΁H7+SKsߏ!^^ *?2aX> v- hOuZw?2,&m[/yyL<̳pí"Oӟ9;jSƿ&t],:KkDN LϩQsv WcoF`ӇkRNemNډz#K?n\c DX4I O);TSEaE@KkgتJ)Y dSAE,1vd/YH ޷X+UnuȹZ9IGqZ5Clb ;fAFz3^88KZ tI)޺Cڸy #kNN 1\3^i轍V=V/QkWPDQc.e6<v\t `uߗ5 Fg7ei[LEJz%:AH/=[ ~ /k(X[r4̚(5`Q/:EZnBj",Ve 00 D1%2aZ"u@X}fç|B\U(h#l:;zr+~@ o<Fx*Y/,W ks2=ON1׌^rqucjӂ/EmCK\6*3W`h!fߜ^AW`,J]ʨapˮ' կz.7acΤ*ӟd]v\ L3/ 6.{C D̄) cz(v0|b[`YXn7ω[]|tt+aѬ)a|N߉vo}Z`HF2] = =:G8\&w ]|u &nǝh1옙P,ub:^!Kcu#E@riĄ #- T~RSIi9ctqZt'!iSn%Ia_w,7/xR,=&ڮx .[WET{X %o7rH]%2(pϠUo&aGKttvmlw-Z5xaa[sE3t_#$,y GE_\pwYaUAwog/ot.rl޿bՒqa31S;kA3 k)`J0b |b d Clo}3q7S/֨j b`%.a]R) C BNd廉5^hůvhɴ1Qso(4"K)wq~RY:IưA+ F8bp+6nvF@\ĠA,s| k"O}7,Nl_sҰq0`Wm툠-f9zzݎ+DvXՇgB2ue]]%6p\Lωs')(6CYϢấUvVU} }bI 5v /: 3@ElK?&x&ĤÓ%4k毊aI_A<>SUE**YDŽ(0ˆp>{ X1a9A$Tˆ 5R㨘F"g^ֆb/^̾WC*3‰;Q@ ~#Z{0 @T $3X=۳XˇЅYgIh[E|f}'VRJojx* ?E;s~ag?u$mFr*# (P}i_N~|UF4_t/D7j}u⳨f.i㱽[LRPBr)W#7vSe&n ]ϰ$BQj'mC>Y GXLIt#m93t\aB$+LP:ݫ;vJ+<ΝJeA -]GїMQF©:x,[/ UӯC̱.Fdcf s3JڱO b$?Gb\-Obܬy%:v iQF"p̒ ?:Vw>r bjKg+rje֦K- I ՁϠkQ5[mrksX_$1[ݏy0uۥrkf>|mL,T?Yq]EU/ѹ& Ғ aنߩvaejįkes"JJKχf7#Ql.齠]Z$ Ⱥ0gG{|!5Y-f7es&g[X%Af$v?j .|B\^RX pLS/Nr"ױ:97HHh#E{|w1 8|kh$JY-c+?ؘ2th;a>^EK:qfyDjEv d 9qfWhm<&soδ@EװRYnحi 56dCpٽ7̑! (n'%c4ޯ&gǻŎc p5yQ=j$۫a@PL}PfU{rv܋#$<@c>{OGTC]_ 68 K"yS%>X1^;6)%?$[}ӄ~SF^ڷ Dz[n G aph#G-"GNg X~c1H t%wCE0GWi[I\H4MLl0kc++cW"=Y>`ТXYR~Rܷ렰 jdHu>ö/"1:tPq41N`J&Ե86;sA6ٌ~Q/ope&bܽ) ۊ(q-,%~ǝ(l5΂ƫ'?uH& K xxyT\: hݙ0b#?3!w/Hq&6;4P&q='G{K#Nv$1DXNH, inVp풦g8 fd`=)٥`~Um4X `oi`Q*gHA/O0 53 =+mmPu\15lPZa&V˽\77(yN>.޼N]TPoET;u(zh0@+-2,ʨ'7_+6>MGr˜#1ݽ ӏ/CUWY7 LSs#,{8xGA~(y^! W< =X~Mp&0 Cz2 "#)bw-6kd\ /i| .Y4ӿg;xf Um.cc kPx=ݔUcƌ%د,]þdBmE?2N,0h04+1#q4pm?k7CG?oaϙXP9jO{Ց 8TՔEtSsMbFEN\ݡ(0`sZad=zM$ח+C'}YJ'l3SՖB R\rvL)=_v,եiޫP8W;`GE) B\477ށ䱖!o"u n/7s=|k=G9FK)TBS&9-g?=gg{HN]?w;fͭl]_&=miD019zp!,0aw7Q?&йp#;V~ib]L9k@O_%/!A|l +8Ǧ#P7up-\Ԩݼ@{pW`/Fq@G6CdYV :sqr&sEQ~YY1?4PNYG7eM_0Aaаv)ZzTNMNJP>XPN/QS};]5j`Ov1L44v0;!ov^ˑA㕱3Gg|kcV5KGXSlq!.v0#Z/eGs$"H!cm:Mq~L xOZ36 =3NYP4%d_3C<":=Ӹzz8C4V lLu*IZx>g O{ŢLG?J+VF!Re1@SOgN!𛏄G3A-XC?>eS!py O!oB e9y l*3c6W>Zw2=P̛]v*34jzmSWGNXvjPyCŒUغii,]ē+˄t'ioHȸ]">"a`1$.I֮0Ɏ:ˡ!k/o i^ 5oo:1$r|v&DCEcg >ʓN/xW)GX;,'*izJ 9Ha~Q/@ ?{ڶh"@QشoIPIQܧlipSɄj;"xk:Vע!,Н7g皴ZO5gisvA3q~[_vOt#ژGDfbsI$RXP,7CԹ >m 6p, S5=P'  t{`O.?P]f=x w@| ϯ/~L&AtnF_T'}߆ahэ(믦U~7I\T[lW ,/hVLZ!hMX\$M2tP%V?ovإy+JB*ɲ(gT]= Aόlh? tgJKs|>&?6{kU ]G 0 ES/&*56֏Xl Yn԰N|]=^„Ġ) AL$E4Wx4qѯ,n^X<ŅF)oVҞ?f'FJ#'`)g (ҩy$n6J|cԡoFCSp95;i #0{y&.3/dԺz\\a}Ґ5(b's<VU~hyuuZkrÈ~uE1aioA 'q0ˀ krCx6Tה$0-N'4Bk.Os$f*iظ@&X$ ̈nkCQ jzs̓g"1Իo{w2EG>ql"-.`҂xsS%j?:Gq'Eɪs[ \٠簮qn߉ɡ` _pbxCW?NIxdi6\KeOngϛ6f? Nlğ6uT)$I5=@#H8kUs; /Z_hW'b!}dy8:D7Vu(/o}c;̖CjvڗYLW)#iS:}"NŵnoO5YI%WA2rEXu?}Lmdg& >mʅCn E0.\~oGʡD0vVئ3DEܣ?[>(JZlk佷&Wphxs<:AN.Q'يaR :^j=&,]Qo8f/Kg,xV.Mcx[/tsr=c xW e,H+ir=áyh&a3Y]yA2Zhi/k f6Hv.^ޔˉ uʹ[`^_|)J8R;U<@X_STGװ0/Cl/Tr%@Z,ENTnyoe7 8*'2MyK yrg9]SE U:QA-szN<=!(P{z|6S?4ʭX4+xSfJ4VM4 /ȇ!/o`vLc47u-"ڮN>~ݳ)t|V~¾C]EŽeZ$[6{o4ڣ3V6]8LWMk/DPHɂ#n-AB̳ x9._yDBq\# MIj q/=c |5jsb4R}6^{dv~ù5B_ }+e$ E~op=7APhW㪚h`cDxmwFglT;~]a$NY0`s^^Á|TyU*-MA ,i^nŸ%HAxRQ>[8@aݍV)3  +PdU **EBpJjev~n ;!߁6tu`2b_UERzx+ɇ{!gb2ӣ.qR0+m6+3_5D3LA_S "FO;( Qpo=8@]zVMA/'۸1ыWс@n*3e#zo>AiYa.JtdEw0T#pL鳹+ |Lᅌ~I^ųw('+!AVՙw yrB#C0P0%t'Yqlpn yfjTPS$Iu/?3&S-d[ hÅ~}\p"-\ 絫ǿB 8 w9px;nZ0/$Kt[ 8+qi^SSUhϢv$~-𭚒LC9/$.` A9;#U;_,.Ԋk&y$q_cO`RlA˲>/:gdk! k&}ӧ+2>lc[yB>;&iS1ƐEQlUuUn"7,ֳ/ ̏~׋sʚ ` =19G%NQ)Fmeإ0;&> I9'k(Q,rTq% &RH.%jhhܼ4p'HJ^,rdtH2;ZE?>XLA0'>5K0 n`%I\(aEj$`IHG&D@r:,%z3Il$r/o1eV 7r*$Pd".bup# P o_5ຣ?6PQ1;ƀagN6,SR]>i2L,cO ! M[>ڻq]6JI  0 53KsֳڶQ݀~~2Q̜\Pۄr2u' &E/֥il֚`%WS<@2:-4[z-FŖӖcS"w!`_ߚi DOT1z7 +ô-egv9=Yrnȯ-5VNd/FD]txP"sl?olI"Kyy&/|=X3fn|M!C]vmC&窮+͹˕mbȩ)Q_j76QbBC]TfrZ2߮Vv>X RabS6kkCwX W Y̘v=K2aX1Pk` w =:onEi|Ul߾AS7U}^MT4ue)wfRԍѕEiHNGqxM%ʾi-1 q{\:d4fٰQ/(vʝU4=b'*C,{!K-V$Li%t/bIMXYoe61^r\Qs|a[EF˶j$O*L JFXZ'ݴUvN"WX#*̒gfZ(U *ޏ,KXYͦ&;<<~5l0sA*63sK9aT1HRK>Qn @[ j_v[RU U ‘WrBW>ԋFS\^n& ;GLNgon:0t2'-pkԆxX p؁v'B@S0GD;DC63.{s#I!Ŗ78XHYw iY%^^l{6K٢`uGrXwjLc@v>Tg)wǜC+OqDp6GKLIwr*&=qmBQCm|hJ`t9t"81SI=' V^)#=D@EK'0Y$ŗ*ryB& gg& N"d#=s !ml~MxQd-O5PŞkT1.]dפA瑕BfZ~ SyWTDfV+chw938zfcG$ k2+F7 p#VcHM|9C`&JNv>h4VG NS~ ârNjEu$̠EplA, %athqvYܘo+K7{7~(SD;IlNK )L,6ij࿓"Ï /!̷s踅йid 852"2a1X+*D&Fzpj Ltx;g+)63XٔnY)φ㢴.qXQ{vN%ΈYN)@_[cgR߫d5B2}x!c3NDLr˯ 7ASAx\2O61) O|r i m`[).lHy啑،\u]4tju;doIh,7z4*D.-zPk٬ NH33qɰd3ѽ$a8adJV`)=&/AVs\R+EVB/58ݭ CAvQSDt7q ILР )KhHY^멷@9dSwUJ|N|v%CU3 B2DvS׵>6~/LjK0gRp|Wl<"b̠0M1߻jmBSA\F..ڲ`k0~-_EM:}*kl9Pa[7:5x]׈R^(tťu=+cK Ȳ[ QQIC3{˵p,/>V"6Q?Þ?-Y3J+jVzdL =jٍY㢗+W686O *>(?጖KweL#3ÐM$#(dQ({XX*n+;`ޯG>)oŠi2D ]+eG (+B%z=^FC0p+։LB=3DОTLK O^͉QbLXSCƙ0$ZJWEqt.BHzzm}' xV%<nD^㝵{e%<g::НC{X32R*=rDn $޿7<$F:jy&yt_x&D?CX+rod YO*uOP'J-ޔf蜲5ecX]t Вm߭7B >zf:2TY; %Q^Fje>;6( !LqPpoYΌ o}1G{5%3e7|: d0:BlWF-"qAǓSZQ*^4]ӫ9[0n2\D1}+PI o/LWTH{*2 3$pxFrT'rLRePp]L ɯ@Iu .Ow8Sx [;p6Z܁IDH/Tp\S4ˣ4AOQOYĽ3eHϳGlG09 h1)tϒT,Hr5l)91Ӄ9>Vlm^ s5eSUW `D3Cq5d`8 5ͨ^,89qgr8s|:M~SMm8DM`jS@2,ɖUMEm&<$+yR+\&:\52) <%ĝ2oH+{@~fwʸX'U;7 &*cDmL%5`" ;],xǣlC(qX1"'NIq& }h!:yDQdq2vlQ&"%3ގ[ګEfܧKzX8=AU2(9߅q ?G.FE7|ZF^YA4~Jc c-Nd4lBd{P8: _ģ< ]d/󶯒[0 Hq:g&U>g!\NF䧋m&;h%|AQMǜ͘ڀuMoyYXFrqo±8u[3h[SȦgZV{f:.§%ǡ̠q)i~v0\DgCn< êsNXiVkEr!֨!Ё+M5E2opd__b7O*6&{`Kz;~"=& /Pdӟ(n/BghڱxPþJC۱0eo^}HWw..lb(F<'! VBTqZ\U ~m+Xփѻ  TBpW UsM3*n +d1ԑ1hdm*yx[^Ǥ7Nq,lA0஌6kf%.C 1"R x^`aw\$ִjy?CCm=HJ3 { TK|:c1T ~$S^"|c4m Q u=q6$$h9zoEr,ԓҟN:d T0k=$\WWX2$It>t/D)#b_8Da7OgP` "~#c6-.lbdB!|B|F$lg`QY{ G$P7Qc -1iQ+';ifj%…Ƒ#.zE5"99~J &  !]5D">Ioo 7l짞@ߞJS / 87:/wĊ7S0"}ZZ5L!Wr8 7, noHEuH !L|S/e3J@1l}WyPɲ0m;O%7xwN/Dtuup]V k4nl,91d F\(`4ۺAKZy+ >|L'2mlG -U|Nez7VDӴ$b[ &P"i`h48~J!ڞo?>zP xĵv<ȩH;tBx00\_d`2` 1_EW@?KWB>_3ϋU;or*=ṮҞj:C5=Yɱ(s(KkHfM 8~>V.ƔAЉ(>ͫ?P8go4W313fm3%e 'Q| 6y۵K?f.뎊/͉ICn8ěr*983tG;paC_b5b#32kE} |(NUΞE.f!~Ы[Ū.>3wMhxJ^ޠa7tv5M_!7KZ@_˝yH92˸ fo}&lQudCK#t>߲J;]8S4 $Y٣pS~qE4Dg$o8ϗ+vU'uWe}芋Nfّ"f`DL(gWwB6!#=<"_2F0jZ0'Y 6I`1ecIb1.WR Zb{c0~1:J5׈RcmZ$4-%ږ Xtq\#d)^B04ZPO|үwYZq(QLp`=49o bhymV-#sA fDS4K*.M,S+JWNYO@C;=TdX;~#g7D8/ZS_>"O?Mk r X\s{vsuV: 1G7YLJ Od^u%ce: ؑs-eWRQs/jL-Aa ;u_ t<;H\TwjHA[զj*O݁|`&1N&El[fm#+(b9{"7X)Qmd3Q%$3S9pMOʾ7f$hq|2 WeO6Zҿ3wP n7~xb}^Dz :y^}E$:|?F/}%HIj_EVXܡvqo\ ~B_Y!\B>ˡ+s}k+LB: pLN}fYd^ j~5O^ej4%W9YGܒܿ^q&(3'<]x$2!pvҺoe?n]lriofIP)/ XZy;ARmfW=~c%voR͉Q{ئ7,yᮟ,M{=hVdI+UN9:rm蜁59?+~o JnW%"~7& 3x]dxDyM"fj]6%)NwM-!@CxW[hs3[ɤioel%sic 1[\*)q9m!i$GTB+5Cjru~I hh#tRn+Wd" AdΔNLD&eYb1EHn Ξ*֒Gt(-¥2άqĶu}B4t&[3б T -ۍuj/BI}GFF$2m]QA]f2,%fbq53j}|Qx)'@@1;?hRr"=U16x[DѪP Fn{PoR570۴1Zfes3Pbg*)FCWقi1 y⽙BFóP"I J29yEMkNPn+ xhV7[oHt.OθD M[R~!T'>A_g`$G[=pMowB fΊ}>ޜ~1#5Ted'79)*Gʵ-ZgD۰hDGS/ HEx5nko ʃϜEVVTy&:gԴ%$ ҄gx1&y@Xݳ5زwtqXUa4k 4vU:w*/ǽ!MOQ!ηm/t^J rr> ]&z XI+ 1z Mx~ D5]V{sC.UKrUܛrEzmXu\v֊LF{L"7⽎_c#JWXYD^/'u/w od|AzoTeVJT7QsͰבrklSv +;$ 5fLbʧS= )OKrâo8*Q?+'0qXm+7{;0zU5\z0j 7)h*btS/$́,0bkTVH XI_,@;V/wZZ+eSܗ(s]ф$ ^2dm5Vحm pWkCf~GWkHI`Sh~֭ hyʴw#Ð  \5t?/hoWTQkt"T:l:E ^c&7 ga}NdFs:K~н8e!~N.qFK Ah3@5JU%:%Wp'qї />niC`HP/ru 7Kvd/P|"qǫĹ)T@vDM&=.NIMS)\dC&8W'jLO={B1YrGW|>azO, RhfPNqَ2ܟI|wŻE6WRn-cGA#j1}bqQIb }S6p6Z7hR3VBcd m`jdz Wjx˦b&!vW[|BzSꩀ|d$(Z?Ǟp_LحXo>o |]>TKm,8[9OD,9X~Ud¼ƯDQ唆CI_xp- Zϒn 9h !̖񖮤 /b6ԣKk}OOJ Uw T GۼԚͬS^'6ŕB=abC2?T&Cœ |y6-'$9/'Gtp5w]랅j5XAZ HHIe(Q)7$2ӆ'L(D?S+ {! | # @`['W75xnKY( C KK`!?~u8ڶhC:+"p o5seC!V̀vaPx8]HYjХYB=cSIdXSͤ>=(JbM;tFC,z<ݥiT@K˚1~EH $`XAWTTEZ#Pnk2?s ֕Ǔʝvvlcّ,7Co身@d"k3 4[LK49i YKX_v׺%Bo18J<}+ ~q֐N#A5%u46\N 8\^`;X:?D)2"F WNr~Y V6'B 9i/$ WVtK}*0:o*| !<ZuT(bJ8]U"T%W5D`%וW ĝhNJp&Hafl,J#梭.e7዆Mf$.F[G:.򳽟j q66 Jęv58$ n4c&LY\|C00,ܟyʽѼh$yHNj?%+T( Zjx J\߰}B -CܕK7V! iGֶXqd\mJҰ4uWۗbETx  ,Vӗz0tu9,h=y mO$@Q<0i  ,^MJִ͞V6$1+4׌|֤,ʟp'rpKQ|= J1+4h|j#p)]Cz-ET xFЇ-1ayŬ!s0#"h_F؀wsD/"UiGAdkF6eԾX֡V, w:g?,~0HZZJ=2Sћq=H Xm"nP>F`W{@KҨR7Fl`LF"3[yDr70s@oP5>Lsj{$%~9xO(rM-h!kk,FVX2fR'=o8eQ̖3%َ-Z_ܕAAslg%OYp Sag%AZ#بT]&%A5Dcq6o~3uE{U_6S|fʞUqEd+KͱɅU: 9=Z!Ro"GV\C$X0Qvo"qמd;3v}rŒLxG FF_PW∸)RWJPnOQ.T0lOٸ!5JաY:{ۓO0buk&6|)QG k9#xB=l&^ҬdJEgkJt<{XVd=E]7 W,`¿ʰ 34Yk#$^A7Z9yѓ-ڃSkPǖNj^Dpp1]&(Tq4 ڢW[ed1 jg.CX/w>X79,_^O>F%`ܶBn I: ;x)ő1nbSg 4>´da ! dJ,\T6ʼnC{E@* CˏB 9ɱZRNšT!nGdUڃ-)28J(i/ jY6c{Š y5yFh2[~1z7%x6M HPg)5YHc!$`4Mo,hxoa&"˜$NF 68~olZ`\з׏+46 n ;^S/j$T:h/7}¶Ffu)ӥj'aA&2xE珣P6&7kUq6ĢRbi[˔O4=DĭO*THChp*j.s {hV,θLXV`i܆lhQnl:s)(p*C7~'|f|E*)ü,D ? cXfKBh/P<Ut~zDHXe7NkQz7ǮPjًН!. f%ztӎ M"7)a?F SO*0GR`y-f6z?hFt!C kY1rH֔)Ou:RxKHe,=i $\p{̕[Ywq)vhi7Ĕ Ɲ E<*y--ߓ>[qh$o)h#rNk,237uz$<^J y&ԋq1Bf-BzJ̎NZf|r^xoAoyCǛ%njF:`ȇ%528\#<%5%I2uA +r\|) r ]ۓI!NݛҒu OSXGqjS^y?<=i>Ѝ~woSB7A$G( L͂Xa=):>y4wWfH7#qOeW0cj0Ɓ~_C7M >wuW,ӇE:jwᨶt0 X6Zqc 7?/b{iN01P;1ntܩG>.,}8Teo&ә3ڢi!r3B@E&?C.kx}5dOmb:}^触nk`o p5'::ѭȭlI Oil 7 2&Xý4.Q hDCV߷:8Y`.~u]?ʴ`"mu:X:t؃șKƧ /8aZ"m-NmmW:q\BNA Ёd{t:79z]YT3<v+0^GvHژ$ʼn{a鞚2gPZt<6reM3N j,̵Kh\"_9U3Fwjx A&?JP:|Db>ƫgEG߷]r:6> TzFN!pJ.TAJ H駐 $T.7ͲݡLж檶flCy=+st/)#-kc0Y){#l. .O5{!jR$$Kւ4%5e,cR6fp'A>%x0vҺX[ J o@=8`uXKzIN=56r)o >o S G;Hi >g˧1ɶq+;2#-PVRNbi {ҋ&sc0Z=c WS x yhGn: j`CaSEH;jAWUu!P#!񿗲7`V6{V@Q Zl> ґtB܏q_oDzv+Sڳq8 ]&VV!8%Ӥ hAf) <* }mΔ[lD|g"({۸[hOV5-F4Ŷ_Pz+ӗ_EډRE όn3-IA= yr ϛ 읝{gfZp1 #:kXrXEa4~1 S jQqZ?eZurW+-+3Wg ^#OʫL:#3SIJ]РVYy1 MÅzGDõ]Y_Ip {`bQ5ڢGV6_^t߮i]x#8Xpn5ԺsT"&coT+:%dkPB qa`_۟ƨDۖם4)7Iϩa՛d_WŪ.}#kr P.%9Qh!f^T@.rz ~ϑz/'TƑTH 9)>Ԭ'+pjq@b]G)?!5VBsߝ Xj0Ki3T5Yv|1;|mQMbR8 p|hH}?&ǂRXnl xO(F.ҩ5BS} ou }Y`LYhpaj>$iIu6}\py5 w}6*+petF4Ln#F-J H8$/DFoz]m,ՠ" CvVwɉɯcDNʫ)ŵOZh @g&;: 6?(¦~ /˛ۈ]i{%8?{S=տ}9DHIa4R%_1yS̓ .530oK"gC4AÞ=t:pZo U[02P] 4.4{.I]?\ߦE8 fh kaY|]IeG{aEmc7VƁ(9<0 a:RLC* }taP^4X=N VO62>53F~3\ɬj{!__V3eJ 6ß6+t#c(fNUMc2B޳yQ|fOб@{ :=_*jJ(Fו,gH4bT!_"q˘ Ѫnħ{>z3{ܩہ? j(4I؉hdyyVnۨ!u9]#|f?mnyͫPA3Cb3b3B_PGΥB ߜ}6M F1VVI{V&8;Xz;Y%0(I˼:HvCKbVÊ5pif$1o|0BC2'8T $3[3!O7ķ{VoZ`:[1ОB ίg q(z 튟N ^|r0i 뷜=*n |i^iiux|:88|L`e};DR4"gH_wp 597׃0vp}'\e3ÃHo#=ZjClq'UssL^pD}SJ'z [qcZ&O-Bͣ[GU3ah,^L< i_L!ޑ1Т i.C5 #_,]O7YNʥ'Vd(bXc:K[$cBWl.ۓh]XLDd&EfO'*HXx>Ќ&  bqPyȫE_:OHQI_ q'/MqSQF$)=kV@Sذc|b>aF,#nɒΎN[JƊHY]T)SHFuH<4DgTHfuuN\[X@jTjwX~s(gy` Jx9cGGAV*AqUh@8=lZE9].dcaPg^u:Dd-S*њagrurGb6FXP_X7RxA,]ؔHQ Zʢ f`]6ڠ;5@ƌHJ D9Ew6:8  ` i睢Cb3׺uub6'@K> r biZ5o6K#x2I k`W햮]A*[ގJvUFչ=I}ᄃ7JF|KqBƀߴqv9$kOtGTcrG-_ }3i!]p{/YEޟJfTR*BW|n7t|pw:>-ֈ7/a'(ABRMySc]͡@= -WH+ F#J'݋#N$vyUdb)PkHFaftg>I+[\Z`~HLS" mdE ws@N>QKŜMqj7m"Z'$[AܪȲ}MQ yAzebfl{& Hgd@O Ʒ:wTRT$ G[j z#@@ڬSֹg*(z{8GO݌eL4L?-m%tZ+n\)ensj]z .]M ~\6E,DO 2>,.EI+Ns=u+,+63줘K5-sFsHTƗro,)lۿQ/*PES9y"#8U3̗)H6`^}@@]Y>!үtSdȰ9'HQ$K o,-k>M$R;5bߛ`KXC mChy$yvX5:E*dwܦZZ8}+=’xz Yw)mQL|2 ݨLЌMB?GġgSPxcYܲzm5ʧ+Ϋ4m= kg䵴rSwVj! Ķ1G%'`+Wsത)3z4T Ylϡ;[ֲt[HUb<Ϻ԰yD ȕuUm'fkG2O"/"_@ LAKqq}3e±Ӱtz)Oà#%lp M .0h9~z|ٱAg5z8p.+ 6ES6V8k57Pgf!.t|t&YQvMXM/5<ɤej!q듀YzւRɿR(H)uW$]I{m5̰|Lb'3&J-oh[+n|czLP̏voR 'v-THD)FMf?wNEkvPH(PW5)z?rݏLW] ׮w1^-9J:ɚYm:ư14F1“k}bvDya47&'2"K{=JuwȘ=!ZM[Dz2O 7ȶ5Ni_yeGD,JJ:gt0 ~}3EOi( SG:>7gAdGo^Z3@ \YTuc-R AehSL{^v0L :m<1&?ۏ-Jx/`gZW}:XRp0b||a[X92 {ףV NB'իЌ?xn5ӱ+8%n Ccmt*;aeH='w`$ITٿD=/ &Xwʏ 'R$AA/vr5k:Ei9xn+t[pțeM:{šx7Q2E9(; _ ]_4Cax!3!sxxB'K53k@"d;tª~a0g sk!AwsOD}`޾N{A! ֈE/OT;5:rF>fyx.@Ffxڅ)_Vr]M: !1dB$R )ZHhw"~[R-Dΐ> (}#,!x`:˺15nà6h}yMb>)/%Շ覐P=9<".bJ0`d;W_>ּ_&QD9.A'`Ew2@Q6P)ܬ 4s 0'cpr{&z⑮k niB'V(( 0Q$\ cDN"ZL11UۋB2}XV+2n^᪨'xfu0Y M_, iyAi)?* )^'dSk&UVc*bm2D2d߫0!7j^sAsyfpǶV1PGL%3eKHsEr?כc{;ͳՎVDu>CJUM!t2d}QTIϲXe$'S˷O5sbM$OLq)@sDJXd2-!`NJCs??y#qI_4A˥F-s7FIdOy?lз0}8Uxy E%KW4uRN&,w^hqZ:=##1 d2lפauD-@:-B4IӰox]^lv=Aʨ{Td4'I0v AAޘt ٦ sTܽ>}-iq.T)N;!j#Oc0EX'Gt y~m꣓EEʵޖg_ZE#2ޤ;ȋqL+:H\af*I݋ Iȡ=xF`[ϣSnv^<\79k/y< WcDSޢA\O|'@+o{`D~=zt*}kngf:MCp-+t44g|؅돯z֬6َ *uá$_%F%LNB!Ҏ6tNZ[H9il++|ۻl&@f&C Vx]^+) ʱu}B=pEwX^n=6]).e8j̗McH=6miVp;X(U6S/r/FSmxg@[P*i1s9c.$4q)ڃ l88ﲦoۄÁ3`P*1f[1mN1ܭ߻O!'sZHK岦KoAL:-]0 >gdD9`]"@&P4yE㤯 @kH2>2.NT=N>##}E3bcݯX= kdp=8ƣ 6ؚ4Ѝ䩛M[[JPH(尠/(,wn\&<(Ch   ܺNFWq B&8> :|6! G~ʪR-"vH?,`h*iv>p̓Mה6Jh3\ʰ њ*%lJnt3AޣW7N_Ӳ[,T6hj$~[FD_!+F1'Ȇ+C4{eaIF]xT#R3XSItؔt̙yr`C|;e]+O_:Ծ!y>__^`].|F /[C'n6HQTA&\yGYAG3 d.C2XXsZ9v)b77Y\*~3T:R]P8et޻`ISScd6Pe7\vH]mG6 G{s*u;8G2" A;)B_vx/_olf4Sz χu1+u:p7rG|&Y`Mtj}@F!Lά@h@I=sNh 8BW\C q.{ѩ1}em<έPnM0wiNZGꅗN\XуE꙯zzW'!O Q!0cRⲊP ޓ=&ŧ:/'jGZˣNWA\˅W׊<0iH'l3C ڮ~z~=Hv|kLxp6 >Wytjo{Ll4=渶xxs@Hh>]eYݲ@1V0g!PP'{&>SU%:~@V2_ `+jBG4R;y2PY{>x1z)W 5 x N -9o 6UfBXs?1+}dk1Pmt'PETAUU=y֍gcN@=Ed`M P۞5H,\U#ͭ,;E4ٚ7n xrDMF&Q7k5Ͷzs{&&cb6~5mǿ3攔c6:kbEIK |-$u*6}G:Qd1讏Jkd@97_saWhT!0M1#_ ~fj5N(nܻmT+2J$647cwBI UPګ4!cpzj4{*`?'8e{!_)qV%qӰ((~Lq6QIxuqoUJmGj䏚9x)k|/H#d4"c'FGGheqKGi>fy΍U 93\I}xS!4BAM|fJcˆB[.yU_54dP~KH}[,}o: >gY! .sB/1~&Avjo;;:b&k6RpFOMx4gO ifm讇=N"?)5ă! va]"o4x;}N'YnB%k>F#x?Dƫ7dp֬],?Ж57b ]9-3oU8&Ll6'&?\^^S]{=yCHRJΎn,^2YR>{g+sw{-iRBFyh֯{άU୪’s+fǤ?,k fDu5SJ $B_c3VTMrߎcWU{;EkRd0 eP%;x΄HW-;oB]F Z_'5C I}}$itD7}yH3tccʮ/"w{)7VQȁA$RbMZiRgH9:qԷ8H>)v /Yh`o }HIdP-RrZk7mC󝱞MzS1cĭ_$PE;U"UUTL֖uZ8#g4&aќVdx! |ҊuAd`qwTC1 ۮMӜ˽ [T-[4DY@qeɿ@ԗ3PxcʧL'$Mhs@wѠ-Ê,WʪI|$ s7xu` {>484vqTȩETnLGtXnIĈwGi 3S޼!$s:|\#* %uֲNf@j dP18{t.ֶJLJ;AM,$ᙒ 粼2''A7Ha`%poSxQ"юqkRF0l#A11\X3z5Yh} >V)&U%$u![לʗ.]<5"w|k o5(#85}uBr*A};Gߤ=ݳ]0܈qʯ~cSbi Ψwb&u9K3^ywQ8)i%2OvȒ9Q8Дǫ*䳌쮢 ޭ0%#}48ZȷĔ]cf)W4|UǟˉՔṽQa1Y3J"C%̞[8<9qUj],Wm"=$,oXTJnX*}vjd.3ظ}9v6FZ[[tuaF\DiKMȿc1\O 7I@HZcjj ݪ.1@e#w\b1R*9iamX}Ɛn++* u%Nac򈲏 Y! *b}Gr2nF/[}oל UiݑCRixֹ&Izٹb(/◼SwURu&eL-/dBzRap`?Y/|c{![/STRe9b֦R1]tH u)zgމf 0 $YuYtڂX}驏P,Yz74CS֐Ha!]DP5twj*3MTՍ6/,'Bg#:z}!ޚ\!6Lcd 3 9531N(+F4e5u1zW·7XW˾-AwXhLĻibŨ hۄy3keARk4fwO`mlyX tM{c\rPB /#^'#pU)[xcqK, $@k!ୄƌJ hKA-[ d;ڽ Шv·%KhTv_Sh<~qMr"㭞l r7`8ۗGf{$l#TVM#ɍST<[YzXGDwc󢾩Wdz&GL%4XΛ>`آktB6!WX_<30Q7EwO7WP}Cm 冏::ɩV_ P}܀}f}e3Eۃ!)2L3w>>$=^͞" U)l0d6b{xy53-e(~Hm"-䵯6xB@`*h^_fǍzPtnUMBriv#pJsJ.э3S;yM&'ۙ&g!xbg/z'chX2!(`#$}5tCCF>}m'b}89X?T9E_(8A!HG>n|b㼿'E*?o: Q< fՆ瓫n.*'fw$< 0cpxK>5˷a|?EH.]Ñ6WjUa Iz"&5<,YS-DO)Yd 5&B, y7:E9{'5Z-꘾ZAYNleb:I8{<$gߦv(T`K1C-[O&G(N^%M (<IJaR'3:V->!OI8md U [b] 462/U{&<cY$8^Qc8PI(E~[i " B`:pSϢ$ "ғ1zc@Us}djEd4t1"eqۤs^9UwXVt/ӢPh%9*5S+߇y3 1(1WqqFPHŊlf]dH.bĤށnNC+ӀnEub)lͼF˲Ј.ѻB m韕0z;=ou.Ne94_(MU$6bJ4ԝ|29JpLEm#3] I<'hIu{Q%^92]̊M`dCZ?tѷ,(p13BQ~E3/y1z6w}BBȏLϚ8GSZv M9bP6O1R838Ӵ0Bf~a_>_0oAg<]~"Gjxs_i5s>uL۩#R=CZgzpPBa<7K(&7a 4)ʸ=<:Uݓ J롻dBŽjP?wu 7ƳG'e(&r. xW#T5WD* !ôĘŃ 2ͭ>Kv+azz%$%pkU ^?ڊ>@\y j f+N ךw Rm byWUDECe#8sOJ ͊ymц".#U*mpFamybƏh [: icC{S>q Oaq(2| (^+y m }\fX8X$9p|OJ% |Y/W>˶R$$qvB%h K1I#ЈWɈF˂fTS1S^ERlS`*̵hWFo \9$Y}w5dS2[O|ߊQ! yF"ZpbY]])vU1f%ςRz7oXK#e S ~_HuR RƲ^~5e$mG  ;5M3 ٍ~XԝK.ſ@z 1u,Ap+ 56ox\S=l7 s)kFiGP+FDqf[9(MgFp哼1r4nѕDTo IZ{K3)FsE=*`~_OʕIs sF?jK VgpunNai?k:Jy)TɚEHH͗u̳q|‚ƞ3y3->q)e >䴪-97؁̳tQv5zRVWJ,pyza1jݳY;]b#EGV@ m`5VZdM-Kd{zFûp8JܠYv)M }-T-\pgQ9JK쵇T;nշ;DݵAA܇m"+s9&+Gb:Łbd_1Vs Txz w?U}!Q ]C}ԍc> !jma4ۇ\D/0ʏ}"ǟ*A{m̳#!ί*I|MHiԢeU]lFZ,=p_^XK0\ņKQC-a}(t(*Nha9[Aǘ[EZ7{V$C/d䇝As@sSM8>8%ƠKnjμQѨ9y[>fa<W!}@os",2 yη@Ͻopo5$. ȍJ7剪&UoiZIԵ b]HX,hV`D[򛻝ggx{d9܊.HPi?P_?Y|> )*Sr`Fqx|(^$e,nJǞq73Ev>@>2B0-K?FEɴ{'d1NVNoV7K= >YǔUOM´)̍A,?.Tsg̑׽/,|(VO1:_+IӮ}y[@fs`'z yD#D6+3dMZVy".cƹm Q[sbmOBVkF8xȺN&f9S}!r,bDװ_\>=3_Yܾtzo8Q )p>Jj?dYό+?!q9$a@e8Rj*YIТ Ǖ1{7քYZBܾET"`ф՛"ɞmX@6]>P+$ 7z3,\# ;Ư-@U\C@+YS MZd}L% $mM ># 䞃B'Ap?ܮ [=m!6y vYXÐ AõGu{Zķ O,n ;בÂN2fC&j ]`W'Fi%RonzijWQYUeOݠ$o__w ZY5"VoS9~US8 &BR4'RMCZ3dP:5M1S M\xS0X\-@#Lo&鉓=ŝ<_,)C|YtZ UɫOhsMS12۹oNfir^DBW1鶼%wt d<]t.P3=q]o$}4K(j$L6 pP-@ yO;a@8 "+&|Ӊ9|;)|>>SڂD9S.a`FMOw . 6nP,'/`묹̰ur|/H-ox:TAF_a\3yhk4iceVkv]9FnaW+1ey<`0Q̆ɈrK`Q ,ͳnH ~t(\\lg1Z5dqHĈ58mrţ #Ԡȴ"k(h9<J妀1@uAVI$ڡd(%֣b,/U,jO󕍋kaSJuRX>؃ [CBiO^5$\;KgKtϭB$P%G5`2#! 2) ӄ!ڃOUlZPx||c"^J1:o|an LGC Vu 2Z{Rqk%bzTLGW`!v 9_}Ǭ˰hY xډj{X;. 'p8Ҏ\b@~ ZD#(| ݴt`u$`2_x4!Ծᑺ`){,ĥISu45X獵qPp!882#(A֨R,a =9%`F;-R6ges{jqZ5"%eJ:ɓ#NfRGHͿ Ÿo"< =dLRSMKZC!&ށWb9{SET2kL߈5)KV"نb}Z߱ܚ)p,ulWC_V)V4Cw_s+Fטʸ j`H3PE ЭIɲ6CϐÄɿXk[eV\+IbuHD?cg_6>E md@ujG `0A\ tRʺv{{wpQ+mhgrS#{mz-K6A(?u3|DdG影pwf'6oAs_to>2󃦔\,ͣ \؜\5|oۢcțk$qvս~XCFbF$M[-”c4 (o!*9p2$J޷n1S:G5WJb8 Yu\.BdjA=9zi .ջÔשPtI2;KަAAp(-c ]ksr^`hC2˿7J{m _N~ݼ6g,= [$z޹up5cїWQfɷ$~T`4lptG6s֟'% ΰJPBm3نyʴ-/E8kݛqUA5,*NM)3Dh&Y7m Y;R7Ymd_9AlBt`hJtzf|V tUܶ Qx:K~-eu{Z!sQ^Xy2;Xqd@ XI(%8 c,Tf8U/^EQ;܀uKrkq's(t\ig(23MfY'$U Ϥ8:еK]rʠ2T'$5ьS8-GKQ5&c8jS͢t>Uah| 84Qb L;LKW;RWbd+ͣ@t|sAܧX#B-EYlop ]7 kr%IHG,O& C]#Giaf^G䶴'ū\I/L|TJE$[Ǻ{KLuo4V9_$X89A6cP_TiaRz3 2 ^@i>Kl6Oi41xzy*L+d$yj.]] JUmG]n>@4+l^0厸G&'-u {u#^v+EN|م:{j[ 34uԞ;"gO/7J4Ø|b"˹TP xl̡dr C x1i $(iIsCV"!ю !ے)~Î+B"U *>>+Kdfm>ʠqPڕ̗ cDITD0*WPKڄ #dwQ9̓NN@wJHkѐLŃ tP,鬩Zס#uJI(=xu`_" 0A͆ zGLLIҗur.>5oa<7΍A*—f>= PWkf?ڈ}&֭P֯P0HH6.y-]> f}%҈giSV/?~{i~΍Ue\ ӯr$^ (/L~ ~h\0㴡 Pi!{7#/~*TC CG -nfٯKX$BV3.u0d I!kH=W  1 PRVI 5RSo)Z+I;T_, n#V`y}66ɼKn~lB.< gyYݤjp$Qu'4Xa<5NzqIj O0Pmz:Qa+Qh.ٜa3 Ak4tyf;jג2},zoRb[rq |b[ƒ9S\p-u:sBW룜Ã(lfPJC!ͥ ĉxg n1qG,Wm+I,DWg7]ZC-+,PTj[AG]'҈\A-_j4~a3Jʬʈ}hl7w$1)gܧ)y5u4}۫;ݎO*u5؊n !-] լ `|vQ] [ubT ;LK qTc4\gRCĖÄ$bF6M~ f4u kVDS8L~ }k0J ( dzk+B p7)fXWU"Qt5(C <qG=njɂ gAn ID]qh>Pm`($܋{6\F{ff[V!O(A;w^\1 [OE5pR0|Q8N?V_N>d$[zZJn ;XQȶOzva굈MD70nȶGLxOW =.Ju'_/%d!mO.oL {i@ 88s[Z#_? 耦  =Bߺ%>gx@@'Ӥ:fDvYp_U5 A2 H~}ݮzR5G6@u&TvL@U.Mb1>ץq @L?Q(9  W!)~XgmSi@L \w)w~eXrJI! Zjv+ԶUHJ_ۉgK`n%p_/!u}{GNe߀\)g2<,$+jXO&XAĴ RqB BһlZr(FRc70=>BV.26r,$ߦ8ZEjٝ:+Ol6yy@d׽kB5p5M- *1$qOo}+ŀ/eΐٶWuMEi;6gk@9 \ d9/hajc/Hx矓ݏ/$ޓ4ӻ; #3xsꯕ]|X ^.1iOF0 8s{CXTg XDzWKV`lcze ~D('P`F-iU,6~3"qF<% "[4?KJ:V^7tzRf XAJsJ^+(8Vgd0hAمKؕ#0!1wu>I߫hь\R p) Rn%YՅ"A$3@B\"}A ,A}xlT[=MH{p+TVR;1 #5>8T3GTd=)jiC9mSbj(qL[x^ /CGb$H3Vf *Q~SB^JhFs{1%Q Ъ).I걵tyE"_]I%3AaM^#WEM02J<&ӣ Āqsu$i '10ƬUcЭhїA7ԩanb  睊7HJ`%{ yQ)[Xt.==+\6gI`IdQ/~#Ň겍84TH[" 5^:~}UFGrloqȌ#ɃcqC~ڊ_[JH ;s8b8HYS'<"_E3TB\C@2GQmZ PpCIԊῡb9AnfFPbl}Dt*?@&p4~aR$/ N:9+0+9Pೆ5qfUvp 묎,V0(_d$UK:* څXVm]6M;86xk^ Z{wjUF(] oq}oufDŰ`szN/t{sp;f7&-)maαW![Sg^^&pV`|:ǐCEtI.JX'xHkqduwI3z\hȦ+wfڑn"b?\pf7 4Ͼ:ڮ ~G:0idV l TtOd׎3MQ;07y'x0B)˕(kfD=,%ql$kF+cvG .#|B1ZL1iJ)'eeGlf{,ub6y\ԒΤ,MRIyNۺ$$V\^;j5&ΐźOI()߅ܤN[hD}<(=-]С;? 4$f;8@٦_jѐ[ F _f/ݕ#tȝmKDYCQ;|pS7Wqh2j(jՓQe@+-bii{B42]14_mkثѲ֯O 6Fa_EjTRl!RUURN9;b :瞝4݅.W٦ b&x|Ĥ.uL2,yFI,NhN7,99zHRsG>#g[;SLF.1g"`-,ֳ$*Ba ?ikͺ¿´*Ģ "kyjżzp>M"e?AcKg$ˢ"Wfk6rl3h@gC;Fܑ[6S&څ촜ŵxpޚA9Ѩ8'Sζ7]L[׈պs3 I*A- J(UA~`_Fk^X1@.OKrCI~mkV'К u0omguHlzUmKwE.GPľm)MQZ)&QZ;ƪbpyFA>0ԑB [4@"yi?ј~}zXWLDv0R4?,0\~5@5SFO!%{ ͢ Hu(<[k͖fԼY)c? 5)~>_z,N1$){sN߭jڲ )8:Aõ"N|Jm^⭼<_uv*o&*;4b"7ŖrCoC\Ó/^[ xɇcueԹ޿8]}wчCnwyͪK9W8 r{7HZD ='.[@nYN:`{sţ9߫YzfEjcF)wr%DU/AX)>*l9Hn΋d=y˾'[H9$g}8zh_2:^'cs93H,QB.#ߝ `R ԃPt#2螵;=ay l9qJ"ؚB VHGxoxdD+G_"F7~gV)' KU? >J^iG$cMHS|)aҊB?Ezj64i"|5@xԡQ,Z1ムklY@猝N~$< ~3+M򢉮ˠk7={SPJ@Qo 8>2ʍZژsmE3aEcc^108gĘAa@H5|E?#.0LݓU^qDߛAG tԟO"GG!__DlTv]ǽ箠},u.YТ"g`-4B-^GI@O@56Yn=k/_&}EbI7)3~}8^'e,,Ae(CX̨_<*!^bB=!HThʝk*H@tk> #ӁPh!0,HJ*o} oR`~V>R9߱ :8 MVtF5ʵv +'t`kv'VC!6I -(wJ `&qs2b+lvCڻDxHB=rZa&GQ%9XS~5K_*"s] 0L٫\ha^&QlJvoS#CwiͲ?-4Edr*1Z눞4->?h(Rj̺&, s nY zg>fXl>=5+݄ ĹTxYkW<]7IƮj"[YȖ0Zkԥ|X4/6UG$k ,K&s Z7TQ^rR=Ý"ܠ~TȎh3a\ѰĻLu@o]5t =նKJ%e>j~9=Ȣ}"v]8i;攚xUF>,_\ [&g+YJdpNw5||t.NKȀ~8<2P*ܓ\@a/]:mo4mO΀绒϶.pʫn [D~u bH p>>wV|oR'=ctE^< 9SiփoJUBOsgv um51R&C /cW̃ rz:˓vK,IZId'Z^b1-<$O3+"*bQ)zq}HI<9^3zB޺ެ_@hנst/#3R.Hm'O7皾-s{௦!ś:krƦ ]A"8{ybpiU$t3W ׈yXEn3_|!tQ1+ےtE]!y% D~b (Sl*O9;")vB'S=;T<ȔEE0@{y[+/;!#@f%9|<7n\EB~W@C]@p +\@h^QI\ǥBETHA6l䟷yH,)(+v>Y+zf z+ .t(P1U1ӪYrU31d=Y8_ᕵ6BGR~hnL"w=qaE:U↓8@֮yc=rmj׎F1t7cs>o܏Ӽm ({.$ ս\9@ovr鹪|ST*qbXH|K8On͕25ɶTbm|<.;9SySͨ"By|6h-L+"}q:xH3tT&y |}ЏC? kȼ]8O<&5`]#n`8U!"X~`I՟E:='f+㘥Ft+B;GL;4ˇώAYn\3cA:`kUjeDig?\wPuڹH|vuʑb*vaiL3 bth9n]ʸ X4bW7z;O6}NN^QGLhkD3yX=yimK`N+>K㤷40c爧O S?g_ʨ¦5JIW?,2n+@ 49xq-}WLVCuV$ =3fxi)J*Rj\e0UYDጊxkzaSݻj\Ij9P;/Pby6$_.-1o !NcHhLOyP'@:.=ӗVZ. c@tNC9J ^Y݆^q d[,1#&e{WnzY;L*"H ޏ/s6UQL̸EŮ` ` ()إd"4LEBsEJ^'5xo>| [RcvI1L*ֽ?̓A*?]np9(ẈNǁ 8 UX: ~%jT.,'&GiCtYʄk ]v{v3 _0Ab= 9xeN'A,OݝDgДk}Ɗ7iVBZ8/7 c e ;GU-- =𗸒˶2x+u8Z]S?Aw lMp7 VD!,HfE;uRfMKࢷvTM2J fRPB:fꢃCj.3I7vaY1JkӖKiPr)쑋.@H2J-U gMX[K-S\y?\G]uTv,OE>pV 0ON>v6~9k? YovB)>!!Vr~JSx8DNY"ac}q1BǛWD);ީKD#eRz޶%0ggm 5_)dge iR0B2tO& }/NKG-C~C,Q%U!eٶ6{zޮZ3@ 2~q?` {Rw-dH0BTwGJM8z$n)M .5Fg4|"*L{3I%>T&7t L? @7 9OѮxk`3#ήN*= ψԆJL=!`YtS`W엃k+]S"RZ*ˠs+Uk5ԸL@)LET͑+EzhïU֧(yA>{:XaI%BYb>чeivQrX"ŝ lW%^G(:@w;-۰5gn1Zf,w} XY^!pZ,f0P"Jb h\'`t u Є B{go^lD\W~nuU'WZ4kq`6fJp^@'uk=s 7o95 &?|֋2| =ĠIsE[rVJ:yBCx$:>Mfb_L23<<bAfJ xչ[Мek!s_=ᓸ)Ιȃgrwwט ׄs8 Ke&n%.7ûYJw)r߀b"h?̣߁yO!ʩ>*rɱ)'SjzU˅h)W40vZ'_v`޴H1`.uFb = P~XE,wL0o2S"҄8kJj!$/3ujIP7vLDQđ"t)6yn@P7pt!JQgd,P3z 4˞yoP?ܷ J{z0^u`?k @;6T]=iw~+dl>)]qq9q8rr+tJuf4YK~fe$_U>% 2NtE w 9ꉣ޷ߝ_u C5ےۇD|S :\ `M1MNL~0]8bgo6T&rznLPk80) 6:Cq,d`Gm%"a %3bw:|OM XAXP…rt.͛וr1>>; I(d /ܔ*b0G?!qkH2pb%eWKLGQoF K5]<,~Y&^ݍWpymݲpRX\6o_7}v>ǃy9veMSzsTVtKIU_1%JJ gl>1ZT -SN+ t 5~~/R}':Tsفf_)'Rk%]m> H T͙7JX)_*l?뒘v,&v7Ư{E%W9;SXYѥ7|}N@X-j)O؊7P4$ <.N*"NrEpŒ ',U)1l SEO4F)Ni)ͳz1˚yFTX?w c w?e8U@'o^xLP+:j V^GYoP* +FmLD'.YE5\0Kh&1r :;y6২Zo\ziZhk}2}G; Ɵt1P ko͖gHO*SE|)ⳏH|G-˝d@z0M=Va‘Lwγ*!Wa7A$INΝ2&adQڌ6IT⢋mU#nz+\mei,eԦ%EktmGG[K#,ʾPzGU&j {[YTܶ˒& ˷B~Quo4c!lUtJ83HsmYw$_+ Yt=- : DJ9$Ik׭:uU"LhwЦXplVzkrhL岐+ Mry j٣'imoN"@AeIHd'G%Lԍ1#TAXW#RZ;tS4xZ)Ԕ}to d 83@\?PtYHCs yc;Oc9ĕfkVe|UXU7Q;J~C%ピh6yt [S/sY?;C><4˘MeR4[^rD5$oMoE ӺfgNH9}1J;~Api:F{mf@g- y`=~[6TlN "Urpئ~_P/4u~9^T+cUX4)5q;|}:f (ч'J28K1$FHާ%-/v˫#ѓ+HVWC]7!ȷ58 PPa1*[tٹi_eeǣxڢ[CWK>HIraqgU}P>;mTwZ(# 36?B}ֲ-Dϣ_@XaeoTBd싰] {^DsqqR Ezc n*mi[^ȷ+l KhvR C,hHqUUW{Z {;w06|)\^}=sL=z"pT@t0*9Tr q=XސRL e"}o)\<$75x;¯c"1D̵\0=؁->D2cRp1tdhڡˤR4L EJȆQD m`ZB&KOꓺ Q! ? ɑs>p8ԮԖv/Da,H c9,f>pO.3BofJ-MզxbXpIRFеXkYYa&lbָͧ9!ȁEkJ$҃sxuV}.籛9f.v6b0>ojgJ>ǺB]\ 0f߰;8GZa7\uDGW ubC+c͖һZ7|a ).(R .(E˥yK[1/G#(' !#Vw8oҹޯ+< ܼeOQb;OuI5. J ) ˏIΩt,<4ԐgKs`R'|ߺS5Ħ*KУc$M@Sj\'?DTFd6>A֬B $#@ir/uA] jʟ%S&7PAIhQI+^yTc!jI`Št]JmW`Ց#ad%^+ Ks0=54 ).@/3|^^VsBL tKCK&v uiB > 7jj yr~b^hpF7 U [_1 "ܝr`12D9 ` "m\DAMHNz@DܳƱj.WPMe4Ssa>-O*/L,&o5!PZJmޭ[~3$k^R@e;fpF@ȼ AHiY]5bծ=;M)Җr*77eTy3R5ϖ ` W8{V7kWJHϾ&_Qԙ2U1h$7$Ԛt9>LҡP&tyąPe|Kƿ1!+1$ԮAj2"ܑ98L{CY{A6([=`M-BP" oR +JBmCVjD]1_T6lggj`&N?5;6).+>~&5/v fbTx!c\S?LeQu4BY9F؉>wܣNN.]5 4@(SXaw׫+#1euA-MH Qm3rgkx[=䫐6lUR{F,~?fS%\T7q_ - wXMsסiaXͯO]:q2D-AW{}2&?'5ɩᄖER.Ai}l>-xiê+VԢ ߇Qp~}djH_t;W)_4 Z N}gS&GsG'k"o$j~C7GU4~5L \Do7`VcGLe _NS(y C;dl옐C&0½j:u bZ &vwR'fHB$B\ vugANbWVSaQзLtVA#F=7o2Q.||nDZceg&9VLYDد.h$z@jޕJ h!Qe[cQ[o#omLxBR$yw<>60bQ#0p5i$sՙodq0^'ȮRXIkߔ@8uLΓG"C;_;6VnoV젾";&r0Ia-|ؘve.m*40H81W#Vfαumڳّ$ :yG,ugHPd6`/hoED+div-3;f "Ho$v0w/~OPx yHc|onVE#/tjl=ߤ55 g-sM4xZ{g4S9Yތdä<ڢ]M =ZО -N{J'2  7B.9 ޤ5;=>t( 9A< f4;"cܝL*ȑ2Ŗ|!˩H嘗~SV$9ၜ$bG_%@HltaӲx_i1Tpzi{PhqD|)yu8 -c/QQwor>"ij'Fօ3Jku}ڌ I땢*Q=XGn9g8s-.v/_0YoXz)67@͉ੌ\+C1fc瀃 AX.TE6M*)K?9Ghq`쵩J޲RR Juq2d@SWOyd#`܉R'1Zʦ_夥xA[*+-2Ɖ1rBg@YGZKun-|*[ RcP1B1Dy"5 ک{=wtuq5̈V:diq%;nc#oٕHe-$`דs }^r+ z%_J~6zv#04yY42\V/pUe8/O{W95S*!VRܛ8CD/agؚ@)ťNxwM|[Uy2hMt m`LMQ,h3f%uB L.Fi"06 LނWrI*=%NT[gy%cSlfEy\vyS3])۵4g]| RZ^QDf_"*UQwz]{ ΦZ1DZ%K~i8.:fgjSJ|)"\VZ6-O  ˀc{!ɦ$Ig9;\m(5%X1uI[oxM?%ͿԔ+њu9Y1EF864OY)m9fsrH¡*sڟ.&SQ.d2ҷUs#:V`j5UJFތ#4%dcnb,@)-J@/P~d!o58#ud jFEnmSThnC}ə(xA"X,fz9wMî`tyvSri4$a,%uͿh7}o2\ǝR)rP4%R;Lm0*HB0lI,"ZGDTg4K㣾 KnB)qq2~ *И{fec';՘g}//M.6x!ޣ>`,}.$X#Fw 4)t37Id]y' >V!dPNz* +D$`~UiBIAX me4aݲ?mSUiok#BQ9ֻkb3b 4_9^S^AP.;8NCMy@_*IGO5uF<&csO١Z8u&Dѳ<!h.\2??4"U}h^0d0 C Lê(s=\Nϝ'3b$PMz_·߈L7t]`.aÒ}{꾺e$.( ~ ^dػK59*# P+< ^Hmm~fc=y~uuoKq|$({ ʚkȋɅF2>ޙnEpG}L蟟Pχtrc{ 6~N赗;aF)^ {h1tB%*h{B>>z"|p($b '0w ;LA4p(ycwj ϝ(#h@>x+m_tT펽z?D(Tps-}Zb7KM`j:A&p@tڴ,d&]7Dz[0Vfa d7 ' `SP$>\Goj~k/dőA @a6aR"Nl %1x^TmB! JLC ĚLΚgP=N c"wrVQ"&Vfz秔W< h-}rF͊2F 7$$b9䪃1.վ6.`W5 v_ruH>:~Dj򄘚vcXkٸȢ!5Ï9T2Z.{.i۰Vaʱ!x9өk}9kgsAt4v+idi["okNȓHHAǭ":OL4Aesv.|6|C 7 S#Ħ wo"NY%$w͇a?0BKKr)2`Z? lY&zGwFf,ESwBq7= x#wt3:j 7%R(?י9-oR#tJ_7\|n vkСAg-E҆ z4&|ٳ67IP"2 dS.ZrJr8W}YP+ 7|&+ߢJ:2%ƺ '˿bY{ErI,n lk Cġ[ !3jfO(LE7`=vF-jd1CMHmr i'=x }_YSyяG{S O_Y(܁,xH</8Qa.htu?^L%`C8, x_LywpyPY*p>L4KiP<:T7`u @h!\9JMeJd [gKO5~  P)0Ǐya tb-i!! dw m=P`2k$v=SJT[TɺC yWrk Y w\&0L"^[%1P6AGSރim&<Hsňn$OSDKKc81;xGpH 0UN2UD٤」E…qC+RTJ +{pIPgKn S2}S&sgsF]_B&&ٜ!+o&{uI"phO[rd+Ga!gj;9EmV򭟮Ԉþ hz(}7բ2eMsp8rC֍Љ|TYO/h{\eH4~`f4:kgqNlu֙Ӕ96/B\ IC~tHKB|x)m V[Q(vr' ims7ljNrN3ĩ##GҕkeHb@DC;eGr99^Ȝ //И gKQKؠǘ -yo*'ш31ւU x|w- k? b6pn?UPST0.}7ġI3Kx lA)WDP)nu7a8yyߪyꢢBk9 xxřzr l J+M8=Nmxu?CRs7_M-1Y}F%Aa*}'9wVG* <%U &%aU0i'jHӸ?խW1N&!ĊFHƤbgZ~w^藻鐳۶~ u+uaak5k{iUNV?/ɏ}s[- Ik|"f ep1 m͕g9nu"χݕ7W7-PhʪjL3c #sS&Н:0X"Ws|ep 't{pHb~ߍLt1XfIP=87<)5{4[4*0t&Ti1a;=zSjϵC$sȰa3LK p%MWf㨅9!N=`BctniNOIpZ\`!3r=/VL! `Ջ]!*%e0ʖl`^J lG%1%%N QtC7+iHx#yʫ=dFSQHaF=QCO 1'qN@K&~2$>nwܤb!OOna&;DHbH9|ɫK\͖+7`j@<3櫴撕$+Ln>I 㭾UR26*%sT olm̚q({6<$w=Mg_ `՗-qoflumm~ |.!O R^9>j˓UF jV2ުT#ezxBw!n0,o}!@Bf$7 (on}{ V/#ye+bYVH;q$A䋵p^r\wK1XNNЯ qƎGzA_"@f1>e`ՑNLLjr`ѨƠ_qccַ ԨFQ.a*"OE]z!zI/E6q &xf>6{UvצFPcrȒoWZdH3kgEQD[52-mnaص*t8g.) < !Z|CDOU\4nizd5E6CBXM;k_Gʖ;E!:CوlrẺ^ 2R(L5f:qJЧd%OMȪ1<G˫mzT4QYm( q3J%e\&B+iag`|>xzGfxڴK^&]v)Y&7xep=@9q9SJ*.W[{G 1; _;mEOcJ?īnP~[9' ?ZoΈ ɸX?N6,aÊW%b9ܻXKkIVpYl$(YgBs;$ fI8챢7v!YN{oPy߶ER?cet0= k-9瞬G S2YXB -L`+SrAF:&#b>SEғ'eC$AAPp1ó*A$ 39<ׁv-+ݷq8jxp,u/,Es'uj)F`bQ=)bK:K29IXD~ʥPwP9Z,?8S䖆*r0!is0Mԗ@g^O$=ta NӖnu9ݕ> Vȍ@qXbDړp XݳZՆ-j77Ջ4G-fm4IL=M:#1]!]^K?pPoõ5E*g '.\F v1.U$F.b2;zIog w1Wazx7vfB.m}91^人/%-DXIg lsv.!_Ⓜb)|Sw0Gl/ uL;rR,d Â脩p.ω[P(CuC#(d.GYb0ā!@GOPs?>NI0/8nuO3a[lBf%8 ], q`0"H ^YEda{BVHzx%꾺;WPU#\A-f9? nO;^gʥ_Zb-$2Du,9zƐ:LڪJYv*;r-q)/U|.\Fxtq*Wuӣ}^v?~X-ʔ:%O{|!p"8aSs7zͽyg_ J. 2`Ќi KW#dNUY$"|,EGkVPL<+:7yx8EPSp}?!FIzJ ޯ2Zbc{fA.ᄍvj%mK̒qdk8Hz2V阹?Mj3ҴeU*Px ais"HJ#WUg5\hׂO`1(U(4d ~*J~I1+Ko ^{;Xၫ7n8ឬzGaB\4K^0>٭% }❟89ڎ .(ޅ98]Qk =&ry`53st"gTt=9oKiһᑏbdY6ȭŤ]SigST$t*osVڦ"v{Tr'gƤe%qߡf9$v$~g܇[o}qZ ߁Ľ`$i,eZt@yo6y%(uցY 1Kw_t˭\Y/l抻VzESe- l's)Zגcy1_`?7 `h*Sm=yASߙ2{6F~J$d1Zs锘hyTkn#Ӟ?:iƝ{hpȃjuӱwt/ܝ^z_*괲;Cf¬1="30n7npg5'w"!&XwmGYCyՎ8wv:x~%-!ail"-`{ !#_5]@0N4@!AKKB/+ڞ3rTGI>?#0▉B㚿ChB_^6Ov@,Ҳl5Jpdž 9쑋@u>Hk|pwkJYWV%>v4a+1=J=պ-XpCrInt&+MEvM.])<>X9t8{q8XdcJ9)>n`Շ\kgH?K=#h1Wacd6OZêX\dboc{nׅ֛Chl:hZ%GV g;VGO ן:r}sKQ*5?Vzo|mJbRwKE{Rd@o8nȶhڑe"׳kݏ퀉kɤ0? 7[d Ms?*4!DgyG܃ECh֣ ,s5{qEꅒqCCE´*qt]BV&Bwgs6CG6.-,v*3on<)rGzc [VUɜ,@|rآ|!v04 .;)idp6Hg,h\Բr@bǞPG&Ff T.*wPVW 7m9C2EdOzk( ʘ2}tE:P7JeUK4(0 *ԬKfXV&QDnG@Da_PB=aP#*Ng::6%MT\O_Ն8ÄQSUX8+ C#ghbܙl+Z`oR!@K q}0mqv1dSш{d#!B֒QA 3i$.t-ܫacC #Hl_yX|[D,: W"T&uy[+ Qւ6RJU"YE$fT; |y x)/!JT˝% r[Se倫"v1`]hhpbsY\AO;u Kw4:b-nB%Mb0|zAHr@*NƐ:^BRJclE$|Iu%@S (-V֍i A+=ot•? wDn_¶[نK2}HJM:zGçQt>O}2bPU'c&?Sz)H"G4nݹ<S?BQ(MYS4}؋|u&LmG~W3(1"gkUM,hKfSǙWR+ajH o'y(9&|Un|CAfp<Bΰ @Iu F :2Ӿ2dVXDj[Hܥ0[3 aoX^d$7^Ln] >G%;u>hJ1 'J.!=_/=*u8 S@?X5ʧ +OW=*N*N4HhX,J)I^x+]W_QwȸS8!.n /j rB1j,/Ɂ Mdq*6D hD1eOGNʡx^ YkD @!U]Oexi/L8$mS>0T~d%JIuoiP7ЪG}A%<ysN.bIڗF/Z20y. ^(uoUӄgpnΘX e"؃ gAb ]UKhB1n'|SЇH5jpk0D$ C֡"/K<C1L *ϔӈ%n%D~m: i}6u!gΙg)qM$Z\E}rŢ9u3V߈I8k7`[lba4ڟ68~CPiXtEI94&^$DsYFYSK&C)VkBUv9-C̲<\7(Ov;"7&CB+Ô!8WgDZ|{B=uѫ Aqٯ]0͐dI!UHp+H)ySl.XuIgs?oewV@G`Ol|Gld^x8%3j؂eNA\]^Ց\*qZ_&,Nem8bAo_I|"r9Uc<"&&]b%'r.~CM\ǦA7+4i:H@ u.{ 2X- c9ZNj }ëa"J<#Pnث7uNfP#-,c2OX9Zi[t,0]!=vwLl?Yqީ-k|u8rOGG'rPOYZIO ZZ>l7*c(zvhLUo-%"Q?[tn og.!ie ŢJ2@V(b]**4@#NBSݨufķz=[Ũ@#\M7{?=+4ؼuq^ 0`ܱhON^ ﮓpmq324e_XyYxY3%>*l^m#F F:۟*#Vڇ<|\u)/݆#ZŸ|y-w%Q9bS< ef~2b1Ԟ:+d&.Tr`e]_YYQVNJP wrIxCG L ܅Ca[X#qBXuCD}z}nU2\|ҐP?M&QmGQRmsȎG#֐կCXu(uwЊ:JKͤ[Ө"Nǰ$2ޘwh|q )J;s[+cIO]"5 s g$|m:x5}:P V;ExH2SD5;ݟ")H[xܭji`슏xeWwoaX?MǤ*WiS3G?%ni YPw# ߿QMP?qQ dr{Gٽr4O=5Amj-;Cv<R3GA}sn",H&O98{f7at- 9Z}jIf}Bȯ'7C\6eW(J=_V6w0Cw^BHT9QiJ.9EzQ_Pzm"b8.2y3$k%2Ϲ]j}%8U(J2HFTnNӊ oxJyFNXpT7M> &v*V,v#dj2sJIνչtpDdGJ9^Uӝ"L'Y#nm覥)v)&xB]+;kB -<{Or.9_XM;auOv{= <2i9V FNڰ(&M-/$QyXX5P)$"RBRHAL]5 lHVN„Lv5l EJ(M^v4v?TՁ!!!&2ھPYg>"|^/LM*;v'Zbz;T!Cz ۟@EBT/0KszvG<ŀ?*ZJ+]7anBe؉%1RqEܶɂw> _Y妙#/P)|I%zW!c93 ]򬹍ڊ,ɜ*ЈBCQbƹ-- %Co6.KOטnD\ $m7~/>E%qRsc?Kf$Oꇾ`/ݠR$-\HU{H0-G|Y!!M(5;W .T*s|V_%3DPόMyby.i0A$U=Bkc1tǸT ;6 ȝ :xAsx ^Q K.Pc7hHpfE>?Cp%n;\k(i{ O:n [&)R^Cg jF7ׁذ@9S*`a2$1>;Vt$DZWAvit xЏ4aՄ6x.[HuE]ÆL,9dyof%m5`^Eu} KZːp{.d޺s7u-ҋt$3o]\J?$Q}(? ~vQ@H[i$gĹ92E#",-y/BĆ ua5 . -h '0@%N;Cf2&Tp(չEE6#, OapJ!~Y uF(Aʹ~]P3Km8W:͍;rKaaׄnPVGkVe4=NpE ,τD dڿ퉶E '39T6+ q/_5 o?Xxi*-R\$p@&bTYFߝr~1+˿(ţU:}e`XLn? xţR[h էYFâ|\N6kzA/ DS ![.~O@hU,"56M舻)lgAy$vgJ`viC,UmTrtT{ɽrP*^ucՙ%iQB@yzBU|xQ]u1c Ɣ;\(:T=}uRK"s 7I8D\Fs~\v&\}GhQMXf\QbH#']{Xxi=~]|Ao(UMFT7O+Ȩ8#<{Y]Tr)k׋xrK?^CA$oJ CFc3<˃Ct Kڳ͌dlAZtarԨdsvY wqAlVM*p|Йǡ}@'*4鶴g5%0[*,8$wi>G; ^UƒI{`AZ/'y>HuV 7M4u$]+d{<ˍH&N0Ku$?R=Ec$bϩ{}U/5 SQ6hzQ\) {YUPS.wrObIouWKJ?Ud'm: Y1?mF9w+\ŦffLG=9h=/lw ݭLĆ_+"=骹R+.tmn2j~nﱖ]Z7ڇCH (Tna;c%D@@J&JVEXJtJ /OԠܱgK녥*":Rbh~Bc4H^G+Zv _ŒHs.N`ưXZkEȲ{HK<;LOxSsaOD.r2䛁+y Q!i|rgJ0K഼yS/$4 j:*im2%yL#GPw6#xՖ]ad( CП&fp<5ST :kAG ᨗ[VƺA oOG0X{N`jw8`oݿgp!B=5$)cxU빝cd;t;c9V)JWEՊ؍e >'cyz32KEᱴuL ݥ[@#@F˦| U Ŭ'3%V{`fGO7.]J#51r:Ѓ$jug4l9fK*f߇/dsT%Rs55ϾhuХ&6f%͌uj/6F̧9ufg\H`-#U(:f%T=\PH6_jrQ q-F!EeibpI5h}̬|椑V>ZKn!%&H&ɴ;u]*鏳ϲ-F-LcIa--]?SC,zw"*#"ƹҤ?l5ΊlAlxֶB *J柾j98 /z0dqOf,\^wJIp,SB4N/}97<;:u.Ù#Oß*gcd5X{{dpO7pvzܑ?(nh/oG 8yz_g`ۨ1= y(H@`B&Q8c"jUǃ|ifNf?#H?r`>u+D KN=S2h`wd5f:up8Spwͅk4{BnqmGAiK8D~&=% 1Ӽ6K4? 7'O<yf3Orz!Sy#xyisBͪm ;9c )^R^Mj_ha& V&DFj_jmo(65Ld%}y'RQ JbJY X;^RV>վ O?e&_`nB嫾Vu@Q)8$R]CaP0:³" 턝p(քn1:Wލ֒fتO(>D|x_ə!o!u} )4w/0\MH,J,Zaך`kk!F7[[o!#<{ˋ'Ao ljnTܢ?p7r(26 e}丑EI *hsoތ". !\"l^ pf1mOg3pv%a?v <%5͙z?O)>9+&9MDG #R_g=DA ͷ(o?F.UQ`S>sES&epzwj!n?4ϕ.}H5rNW9I ل'ɌJXc kS+,wO DZC2_V4x׎0TyLV(q_祖vҨV=v'jz-_= uu[`C7!*3_/+R`k)·iI ƿHF/0Oۡgؿ -EEO sQU@䣤E FD6)&qx?ǖݞn K MH8D74y0t Uo/1u7&!n.h%:?"4oC7˔l#Oob3 X?fK[䎐(RõMّdIrȭd.q~u(Tbʀ H㣎=Sy- b-lO=Ph #֨H&̣y'V4F2 d+!t>'~0t&zw3!L-L04Uof_0&\`hUX*qc[ݙhHҪH%J_!2 r `xn=v6zAćRrOEbHGS)Z ȯf" we_qK%L9t|-:Lj\͗.>>bMZRVOTuȌn~-f ֬>XīLӷ-R&8\npa)"'X޺Es}OȑqW%"jm>Hy~.Ngʑ3 ~Q쥜9-y)  2Tݬ=fXGtk 3 5OT_"lL_O`B3 Q/C5H Z<ܷ[XW}!%Ѣ| f]@&yj' EC9~z9΋hb(%UK4\Pw<a.@qmU lv i;Rm;Yo1g #޴{YҕO'ym'e9 l#ez_X<>gكVk&B!,n~Ru }00Ϳ}u*BccBxS2 I+MhqI[~(* d qC 1/@S$`[d|inO)@`%rb2@^pJ]N ae-TQ}+oAX@Y&A$)DF)>;ZXk$CrofSσxķ eBA)ώaە iHkz'Gy9@QƮ,n84dT\&|JeWZ*ӭ7$r Ԕyzfx~ʛ%3tCteʆKpzƍI?@mP(-ز aSNW($Kk)rxmO #J"3T Fʼnu~٩Ov:%k84) ~!4a ˓M#_ӋvZI$*%Yw۸qŭ}Pl3ؙ#.W< Vynѕ%1 ә&Ixd@A Dv#qkRԵE`96Tjt,ƹãn] ݪQ3oוо_`vCTP;"PֈSUCeܞE'/2%/ұN-o}!!17y(QU) /Pi]1][ee`*]K1xp ;~TpN ԹdY+e:Ak+R{t᨞̾{˛"*V6VٮkiF kS@{rbc1:2ũΓΪSHE*d:bf-[X|_O#v?Б'f$ͫT,Y?[E\f6G(7  nhU*D!76;;8:,Е+1 Nmob<\6P:uCLRIt 4`/J䖍*(Y^#CuQ?RjT2#8'`Ġn'sF],?枵oɽYػaM}MO|aߤp$2MѾgLX0N -cIRh꿀f[˞)n1n- ,4<ήؙkBGhUbb4pUзM .RarE\:jENu"/nZO&srs_8gP{xE{uHqr ?ߗT8K0R;8sS] jg6Ug7G uh|齝r4+n'O0.o p_.>#u.y3ZrӦ1 L5RÛGT<,y7}V_L"0N- #̡1`ы*ʘU[-iPÌ=E e򌥮A2R~w=45'v*>!\R;H3nU.eG{Com1ypщk̈W @ q)jҥPீI9SQ9Wvue=j+~$z+K;P}8,sxTِ ͍u\d:9 ^,\d"lw1;pnkRKea馒83 ,49p->4r[Gz[ֻOn|Cj]Ȥy8kI- .-HE{N")l-%ShRMU9\maV5< e2ֹBߣ}E|U!Dg$jKJHL6|O% "Jm  z]+%[L KY\(k0z{2@vI#T/k'a-e;e_(g#ЎGKٶYZeYĸquF 4^?)c;69fù" 9$F\Zh*V!>hIyy"v}օ Mq51`YS@o-OFE}.&|bŁ2HIYpXkYBs|tV4/c%\`.:_ CB76XB<)rMQPq <"l2;\g251]DVͯ_`z9(TE&D3ATxdVӾBGZ@0Ihz:}/UC)VV=#JB+Phs}[#`KοcJMLPReKe1K<(g@x0M\᪈7#,$!xvoȂ /MU*f[Zx)_!NbNTqXKݍKWϬsvnc:5/(&{5N`ک7yԉv}e&K{V>VS8܊v$լC՚.AY7ʝ X񍅹ty;.‚v!J"o+kZ%卢T2紎QS ~2ctWJ굯:#Ax{gwx蒡`ExіQ&DF@ Y, 'HHt]ѥ׋$ժغS9?W=@<|'} wOn"yoe|w!HFA*i4𻎞=:Edզw8 ÷XhY)HԄxAKJ*BN8Kԅ+MPQ^) 5$֮C z X MnjE4KnP>Mzc |2L;7p~ݓqJ5s3ف(bIN014פ+J/!'=}y?b!h\v+Q:DԌ3.ԅjs6Ӈ~M`B]apʢI!;V1-`R)7葚Aζ, M 9(bHmBW2` »|;/>*auex$6ngbEV/k={9[g碶tqf$DTA}ٗ:!40)j];Ab9:E*՜6 2NaV: pkDuHOZ;;We] fIB m ^C"R<ǸE-*Hi"&",7 ~VgorVLjOѕaO&B!["1R33Gh }Jn2Fxj}a)(P3R_Vj/'a*ːh]dRRkGUaUH̱q4c  YT?u7BkR5R + d녶qj፱Wڃv9$xGۍné{!XPu}Z1w_ ʳX{d>9/hdaLJE9SX{*|sWP'8 I^bV'` M2x뇛- Έ(ou* @pܻj Uf 0؏ɰ NV\򹄠 >FD^+}'r3lfݮ TK)BJ)YjP  "ȹ)uPn!,!P %1Қ]`v͖G+c]Ԙ4!KQx\c7LBxMOO(2yFcdF;݃Mckb~wOHzP٤~$,}13p xI*rJv@IFAUYiJ'vQ D H X8X5βx7NQ/w72 ri;cpɑ.是yZK#-qlR%s:x4tLY%{Ȏp`j:H*5:Tl=WSЗrYHZ>{zXx>:.Y NKⲞ]mE@4 XQ%.O(WpG@ ,hR Ӣȶoj_kdvXoōx]TlGg΀+xYA hSZ喧(:Bg:f ޷EX}-y;jT܆~QTVUGe0nl7~=AOok5҆N|3kz$YiZ"N\FTÂ'UCl3D 5ģx^%(\3:\~XPdM>OCk̵Lx`#v ׫Wci;2ys&#FoK~thoG80cWpe"zJ`D͓wYQ%I9* ql~M%4ɯ|Yv"V r$|DDX uTV99ac>\m\A #UzyFX5Va9 9 3/!Z~L}R`^ J6 {}p<ةŬ8+ Pj*$StЃ~ƈj(g5.SWL~}{%w%ՓZgKěp nj#FDl*ԉ%RIq"Vp$. -U"&pk2XOtlaTE4G# \ Q܎2,,m0Vpj?T]*,ecI=fN/=>Y$ЃҀvՆ-+4eˆP6DnBWMT". m>HX@eGKRAwգqq*5b?-~Z> OL)x o{ڜQhՠy|7?J}( 81}Jg׍!<\DV$Vd8jG%RcUIC }*<hvZkNlFnK*iԲ˪BPu`mzlm((,գOr6L`DXOk lf~aM12I6eL`|甓jh2*OPD5Y#bf7\R6grp)9-_QD8Ui^~{.0zN3ߖcv GoS+,C xT°%즍恴[}wz#=$pL񚩗BFMEGj1ۦ9MDYn%uvNIa(Um̐5`bwUz7鏅9"p$f|]PONg'MA-s:W]ԙ7CQp:4lvPI1]a`CΞIbagS^D?S;J\\2r`l';uys> (nw 8M`/ůXҬyiGٻ":к_mP =t[mozܢR?dڟ9NZkG5Y۝՝&x/vPLfbr7a[xt\~8`yKxuPVO?ܯבlDp ؟';]T_L5/:ꬕ6DՖ[7cBҚ󫏔4|鹹Xw§#YUa{ze\H{mv: AGtNԜ"(I쀃&lNc԰ } ErzR?N1= 0_tzs͇#зßatG@/UqĮߒqG_,J$X^1z>#Y:=[.&[3P4A _l:/? ΁f٫L[:1Ծxz5m_S!6v,6/˾"|/QJS'M8e\&6*0Kݪ&S, w֬쨊yzxqx-'Zՠ xXTrQ#/(_'ȓԣ٬a - :`` ;=iieMT5ԏqIlFW|@܊b{H,Ã,5\jPZ6=vּT$¯X6|nHbɶH68By+n ½UvQ~#M=Z<-4@qT&B_~)sOroIWηBJ`ƭ%vELL/JcLqkvcXȖRzRqSKc u3GA=i$i>&]$7BY;P67 fXm3Y~u~Gσ/Ya [/Dȝ{L`qt&Λֱ`F;>z 5yL-\Z'iՇq&Q;{D}zx};)۹DgI8WORǎ >~Ib{>.MqׅRrfff*+#|.GYUقXRiJ^D\tYVQY,$t ;p lw 5-]=v)VlU5aCp2΂=w'748ݯ Zq#:H.h7$ BkvHa@C Y@EgqvY\}R0J9/5f`3K4Hygwn +Bh>Hܾh[5j z_p7D!Y/ aw$`/,cǂF$v]EXG^ N5Q;E)^z_~GV;IH=7n#}Ղ׹&;>G]]1N.U\rʀLg:+ZBkl-2Jr2t%v57@ů$ZQ+o!4n͹ ;frKh79b57.3Gwj}Tca C.&qO?~w+sk S2;wqHDMZHy`g7]ۡ>4%IGGȕ 8s!<^> ׊e9Zv6]P jw]l{6bPUҷo@C.A4\ =;"XvkJ/vmefceGHHgp H7X<`_2hŢ|]9kVJ^} *Y' ZEo#wPD;!II(R7y]_2IW0:ZSJ?]؝YJxot%UDzL?6rS] _dM[EKI*eoHA Gtؙ]Z">S7-FӜ]O%ӼU箙(>8$G#{?)hd:OnU&EhnmeIvס_fȖKQ FF + ;ldH'G56$Uy%jN` _h>kQu5p =_\fA'zCrbf | Q֔K.[7]RFω-oQɄ٪zGhMC')$ZKπcV@ۑ6lacG7ھ qD;l̾)f~nZ rh~Ĺ_?.Zǯ@h0VpF<4!%m* LBç;Y*Oj-P1pMEm5~bFœzEl6d:yfay:Rxe:\S9֛/D`4iì7(;orshVtἾ);ZыUÓ3ýP.Dx"gRhy@d]rwN6jO47 P>/u~$vumlWY,&bP5HO.{ ǷZicqBG0/)#[j9WX_F-%g~Y ,Ws@ݷM1ĜQ{US&_V4&6X;Ax4;VB\Jd.|<44AzuKWS0kSx,)ZPWzi L֢{Y:X,=cG#Go^'&)U;fʩADLD&,Icqu#0qA9dUgj.;PmM ,q:ڃat㳘iKO(?_J %&WJQ#K M'h Y3/N)d/Z\&)[4bF@o;D>{j #s@/9Aj`\(W}eFQ@Ls`Ok.*Ü\0;Y͉ N};Y@<hw{?CBY.&@7@& J[VO%Y"98Da餡V:_$[J:յCpq4=@`#_ip*-gsڠ9fm 4G$Ri1?IWXqur*J=* VHt}!}nit`ȝr$ottSV圞xj~rءcSk="*Hѥ)Z<6osLۇJ^ e &8vi iBL5܌'/ M}ynnXְP+5b54Q_uyb| o D[J}st|uqw@PQ46ՄfҲu/qp7 Vd]*:Vik2JZ_QIÜ\M(9UO@:s\ KJ`65&2!zNbiu~c]WRR|VH0LyG"v&B0LRv).W+xBzZNEDҿK T]N|UM48'߄i]Rg%"х}L|ޱH +C)'o4 4h|G*@FH 4~yi/|ص5#W3YJ#mmo6u; mboB+BX*kH^Bgk1w$tIL`fr\2E a\?F%PbZ.EIOxE =5ýa<0Z85_ &=}'t@8O2Bhl>3Di="wMU,L;h%U_8 &t(g6D] -ǷZ3.Tl_EZQrL9Xe_\ܭMvGU&uӈA~ wbC2k[9!Cut<߳z@?,LZʀZD?OŒOsr^2Mna|/F.QNѽV](h*!p0/ґ߈\HLpZT6|80)tsp#)/'aY)Y]'!.t BAF: 0#0Sas'TZKU3s9y19j#ͭY+SdICgg.4Q`*J޻CC4m&u'6 H^l5--;S(/CH6~'܆"z]i E*0?PVh4yimjxGy&}|׈!FZN$ɚHŮ (pM\ߴwc,aF+hA|^ƴƘu+H4!vC5 㠙oo"2܏A扸WխӾkXk]?v2- נ3+w[z26^s:+q$3uZU{ =#K{.lG$fWxYNY WV?% Pl-hM+dFC;>B#AuXaƧеKoRڤ.ӥk^RBuHt: Qa/JD93t#mעA4_:$ Q^m_x4lg^!()4X{lH.;W|,tr?'5{4#~`q I1 L;dx"KsnIJo0y[gҔF'&s.pw!^t򓥶 Uy[_v3W!0Re{ԉ9)nQgMT[j\5?sN$υ ^wz"NsHhAzeB;v`J_IP0;iNiy 35{ &cN;%1{P Hrh܅:lT1.*f w O:Ö"44E߀{e(#qE8lĊ3.%S[7;Lxo NqI'd?lbiY郗'\.f)2ɶ긫\vfLAx8UI3?&`7œӵsk6FkREA22x=@,˭lmW֟6: 6= #D`= 0g94NJ >lHڵz6r[$ "i^/FА O-pYё3Y5O=ؤ0#d|>r6ڙy0o=Ef#UWLܰcr~Ф(g/e4 :p^S"Oh1O]51(RFA\奏<}BGk5 ;?[9~~@ص茮X( ۾ bv`u7*.!; _r\'FCO= ](ab(@_<8]1oRTFaoVjH?*mR_x:>|&#^c`۷)}Ly PPs9E(:65&$ $ZzJNju9}M?[ȢnjtKn-qbs-rd=8pMΥCu^y} ƘlwٸW$$;sΝ#VκvwtD&qKvgu)W5j+.L% Q uӓJױRxw\Na0np?<9Yu=X5h1K#)BaH!CN ٪h{nXX{G]oX(hc `uǚ09[mߩp@ۑh[jyM(@4g.AmM{G"*O;{J~S]ET~B|{5dk iG1`;L U+ T( 4ׁ0v-Q')PfGZ r:vsTZvG@|#L-Rsggm%=̜i `;ЃM7/P>OEcYk͵v>SLHlKwUnQu J" D6u94ņ2Rܷډ\JAÆhtя.hH,QO df9T߹z6(Wڰ"f$LgRS2q-z']P#oʹt/XxG@}@l櫘T^3FEϛռC$1bS8<tFY|$C{1*cUN"y_ݚ[-:Yӓ/PxoYhW _R^3;cӚ+Yٚj _MB^&vlLBR#g=p'))PQ'2Na߅Zo{n]*8$zBw;fAޫ6UZ1JɞK'0F n=X%J vA R]z.M:('ˊ8^DPb 4lu/(iNFL +>Iv*P]D]&z;⣼I17NC\k{EMQy"UM(dcjupGVߥP S3iK  t*aSmQoY rLL|nf;6<4bdmXB$ h(l|ab\xOgJSAc%30%e9 uozRL;{ e\9bˀ9~>I~s]ז4yTϴ1yy V%d\kگcxts>gv{#:j^2"G>?brzV`;d?złAg[udy&{xB\|IU˝gΙ9^`߅YIN%ZVhQՀyR*uNߴJ۽^GjpZgV%3bXQ#N:W(PlR3JR@Fg=ٻ9B3Z.C4# "4s9FQGVEa/ZAO!$tCym ',DvZ83Q tͅ4W$VF&'QؕSb޷V-APfV^&>@[#\gX?O{S3;gJk UaV8QmUq0hP9PYI̷6XzBX !{*8.xqI2ª8Nk$w|I"6m[\ r QxF6TJf6-v_ Qsqn-ƏErt ~FpkRx:K"mW!x tiL X@Y{yV-YM,Ŷ``@nmYm b,.}i6\Hr=uaGfWt{:Gd%! Rڇl|.6gQl KŋW۔; yyFǔB5/SKKUe+$h"ڂ߿cLIl na91/ldW[ 8e$G|ʍև̇þ6oK7> ЂyỨG Sp^0,$- 3woPK2+ܓi/ {,,trJ0ylUn7(lK]29diK9yP`>*̺9^&%BcÆnKok&?*$܂фs$ )BI6e'Xy3H!i bjr2܂^Y3yӺwaĎe tI!^MI+rm-I=_7O8>i/Z o?sЀ/2B3ɫ(V;_gNNx@Y{Iҟ@f>[*Jߤؽ_ڸnD`Vc/w !30mX1AZU(K_nJtpOM# :Z$X!:BfkqoMY謪zy pv`f[+qiUxKh7;FܨT9ָ>"zlΏӬ_|CIbV;Bp 6ϟpCIpc,n< 0@mD1|7*7L(tq]זq6U^4 h'eW%=-6t5vU{hjS ݛ?9=۠ȶJ?b 6ƃDl ο(q9%@HwM 8uQ;p[BN䑯lqw-\o"zc[+"?Q퍡qBORc ?IZ^ki v#Yz>Ug]0IPvW9B.-={kVtCA0B nNx IqVhIɺYDՌe +ܖɞ)trļ[=w*vo_>n&:1k{,ݒ.]b0טbz?NsCcw@jυaWt&s1dC$^Ť]u2nEb+ˬs5.Vv3·=wXc lix6m&7la)|x6f=ֺ+9 'Gb4si3Ȩ[̠\ReB]8CdTF|kN,ų ^ށ2Y)6ܩֽ|ܣq=:kS[|c/0ib;Ԏ<+΄*ra\,1 ;[& ߜ46lܙ6?Z/_AEB_\=vmp,l08I=c 8'ΡNn)8h&4ˆ2vKlz{8/;)($qـ6ӕEt!XsvK:Va)E~a z = U A 8YB|F67ˉsB[Y^܄up=! ?ʢeJl^Lp7.ehW^x}nnK/֖lV}IY-ʖ}0"3.X:ɩw0fMu8*w70܋kd$B8 aSzYC>#LϢlt#8>#,So2LEnR\q\<2HqZPa 2s!-- i!x0y>7Q:|uޫmEF}(Sq~9T0d %s0~dY )j3&*L*_B/v8~Z}3ӂ/_d'@jozLr:UҮOj% #K@݅ć+we8pB6'fG#-00ClˇҳTʅ0\BiL# ~%D׳(E `$LaN}܍ Ch\s-`Ѥtր^70.BL\'DbH-JSzI)ko09Ou;x# )=]R2Y"1 5^:+>ʉ#d||#UG׺Mh3%bFYI K5s(q jI WWh v sDmɦsuR`^ЈjCH_dwǩb=2D,@]>K=G=աtX#A? A򆷧W5_}y|C[)/hˆj ͫ@Z*ǐ*߰:;3IujFH3ƴ\740x[ρ:Pwy*')eǜ`&*@gܿ͢Y?FKz9%dRGu Z6<27aЛ}k2©$:$\', ++H-Qna205恣BMUbKYq"<1x)t5e|<̘|j+~q!mTKhe g [=oZ]ݞ@}3tyᝉh%_>>F˩a_rrIC&;MEz15{GT"J3gtǒ[>(4ey\g ӱ<Xu<+eơvַmy>IǫJAl(@l{KQDsQ4F?vÕg׀7bY0آ  &-a*sj/*p0*DZPV؆Eh 4Ƥ?ߘ rج&lWMӛq'~Pn LHvUP>yc? CF5ThOK C^/${oi(ȝO5<,ZOGZeKևf$+-ЭRmVfbthw{uwQi8bx_Q/{ҍ!t`m@ ctYӤwiXDk 3|]f$ӊ#qrI96C qZVRF) H2fRq?s˻]$!(KKb]N_.N%R5KR  r<&2U3Z%WXkI_|%#Rlq' L A5Ll Bl\Pbr:R0kbkV I MH(eyMlMzU|ZI ul;E[9sd9x5V@^ȷWDx=ː {Τ( R]_͒vyV+ 1Dprx z\d'] =X6BW{HT[J4x4a;PzU8.Ɨ$6]dTeK!Ž? b,K?Puvb<ИƎ b͐>Kݖ 2ی r-_pV-Ԭ+;js÷.[54i楗P\_DjVb› /yCVEWn>3EqQ͞r߃a E[dh)9[B_'ԎO<>.$D6ExNO:qc"$#@8& ) :QZ( a65S_$:[BeN@j1]?tU8G"+U\hjI^PFђfaۗOYԜS1etEU[/,a}R=49N;ON ډ\Hp2*4-\@D{IPC&~̪%?:e9 )$.z" f*Lp"#)ѪO$Bj1W hYeӫ)7yU*LE/!9 Z&|¶>ϊ| h .s  -l{xLK~D%a_>بS-.*:fu~1r8̚BQV# }=KB&!-z!zc|eHKOZN1lJ33)M-yvR6.ui;S]瘙+)a4!C>-|p )5^fyScaHfk4TƟ]D KR= 1L QQ0SL%?0[E5;Xa~5Rnez'`` Ոà햌Whjq04@0*ABI2&^ "ixhLdI~ptE6kbu?kZ0~QO=FP?K~N*ęZuLxh8 jB "ġ{ӊOuz%cy[ Ggֈ"Fe7p/['%!fJ9ީ3LtWMrOk5Uf'7mܭ"doBf!'1`CbTi*WGw%AFEe!!⬝G%4OV1ӈcbnzեJ,!' RF , qL.bfwHU}NmXUd.V m׏lڐ?J2KBl;Ȱ;Gֶ!Wo.;VcηZ45Tlt'Nkl?굊POuph%28Xʍ$A }NR)uיӃ46L+P|9#"&bg9ohtf讜"0H>K|h=3HhwtZ־ ]g1\a1;OOtv8eRU5)R|07lSv ( ,<~4g_܎V˜n2plA(oVfAllm\P3e#o7}W(\]ݏ +proSSדp6ºO|@u1E y'Ӳp7HM/}l/#tݐl m}~.F A:]әшh9*eKߘL_LGd߂]?Qq4? 9I!3n/=4JώB}i~EƂ-c#<]]fO0+VRhbR ݌:; q\: Ga܋!ʅX(ѓnpc9# 7o;ё) MI"=~R2 Y):b'(-}q"j*VxyxUFhSdےXW1BOvCP:~Lģ"թ+g>>M}p^@տ c08i4Zy*9U. c$RvCM243GV/6-*;+!*@ k9=|(q}ɏt}Rm76 Xuct[xdJsc>.^,@ݴ6Ud9zk,M7@e.r'$s?Z/<1e`anWn+^/\DrW;_Oxߐ7z:UU}tW0Xݜ}_/~gç<+wj]TjO=pge)4  9N7&a09Ng ow H0\h.PNC((؅}9˥L@"mzB|&|iX "/[ $KnR?nslk҇&͉Uɻ9 "57\$_sc+lXHqHSչ?K#ha_&r:&3H4m 6|Wmppz%6ڤ7CrhvHy x^u 0GLUNI#YQmG<(Ԇ9(, "$]WXCt"20t)MBǨK{1 (kAa0,,k`QX+C5Fʜ; r ~73g*^/V47[ ᄈ|YTl,")z:njǶ*hʛ7j|7%[|笏-r<$f%e\?=[߭ KkәA7ƨԴXÄ= CAk&?AkSC8&S'KS.ޖA-F1Ě 4W'2:JE˽ IV22?IY,}{۵N.7Ǒ!8D@bHepx ~УKH7Re 82k u1:+R⍖.}Xj ⠲8bhڄ u=RN@XTf😽^  QTN=%vW8[>줪.Olna0 TU!Q|3JLH2 R/7]Xч&d{l8)}GG&N=ɏ{qI(צ~p|4W:Ry2x[aȃ_D[-E={${_+UβxglTFߘi\[$*#]S }\RxJ8*[K<[LJY8!R"aM: Kr8~0! §Iy걸lq nelGP\zdZ.vx81PmLMh;{ԅig9C5U][ELG8l0xImAD#y?nL,P4T̲DEc c3/`Mj%~OE ;P?lE"{~1ŭL$8GofH ){cq8۳D[$2Ϗ'W}1%v|aiGˇ6뽀EJžM7:Hu7.`R*Ӊ'Vj0ï{z.lvWr[nkiml9b C:YhYasb Cu,PT5Ym~2 6G c.zy‚(EIH6(K+;tX,SmtDla qOI,AqB\Nvo׎y/Gt# وvX$XހE{mb9 ]׻}ai cP8-IsUJ;h8K 歭6bu5@'Љۨry#dȪNM&=0 ɰI)*[sc]3Eۺg\iWI7ѡkQ9Z͛.BbM^4#=U>_e,sR oUx3W#el1}Fߨ s`r}]6/q}w_ #)R?Z¼M \6sh[kA)zuu2A)he$FPҋV.1Θa˿'u W_7,#Kh_~p0bK]3!J/B. ڕ^L/; ʔ, KiiĵyLY!۶V3q]w1B}Ŷei^~Z(aؚAJ`lƉ"+l&VBfju;5?6+2sA&9ln, }}n<c|4sZ)3˘!Oސ$!ōxeV[8Ƀc-139or@#m~~F,@1!#v xۡ@ߪa40H.ty/)ː͠)-gBݒ0xi-H s {=cgͥcc)MIJ թZd fv%g ~䰛Iޕ) \@E[{lv_(SXsqD)ۃs {/kRH|L~bз>8q>#321Ro v>d-d :K)&j=0o[(jN4EOqt(Tԅ޻- c"kJƵ%$e'CR-(S_خ3}m&ЪP:c<5P>Qv9f-5rDzO_ /9}Iǵ3l\D?iH:jMAүتpMVDf {8ϙ`KF #8r3WC)#}DI}P,ܩl8a?nhcl-'Ln4ǕVjj$j^I:߮,, @Gt΢7.Y& .ݚB3l2HʰUCjUj@gxn /eO^< w=JaT^w+|ކgQRլ'~f \Db`\-1^5z+2N;yQ9_j+Q)eHY#Gѿ^h'sXhgtc)[d6"Wb!Fy/1y+ X/xj=m(pюI@Y'A!߅HL1P+ ~ʃ(@*PcHAdp,ZI$#e|*I::ªVB7q^+K_7e/dӒv\W-hkHUF榚}[ 16 Cu5нO_pwj~2$PvI;tw:)>TE^drgW[qE2Lbc: :`M~4Oo]*)ߖχ?4K1f 4r$z /vR \N:eH8T" g_d# #:eerP^.՚Z⦫Rt#[Ov !,Dt}t,j?){UssX^OYOuǫaeJC@7}lxy -Kwu?LتIb@/$1dgc"V`EoL|kZsYڍBe啠o갼%S4Sik?]9vb+mn޲gyyCZ_H~͞*.a 6!bw=hÆ Q8BGcUpŸA]ChBvvt  &_$p&D]dL@i)FS @Jw|!46WtR@2iކe2d)JTB|~u;d,: +)L*8ضP R|/Ae[=o\cW*?`-15cH_T-{l$L3a_ Eݶvn[צDgbM/].H)J>%Hqu3 <r68Nv {IeN RM5a&K ?S}Vo<Jxu_ȅKm[=0ln ;,V׼$Hhh r{`+:N!qCz#SEU^l&C҉~loK ~U4̧]Biz>>s/t%/5>ё]0OZzcaUD4'$;x"T3XaMR"7dN< |Kbtqï<+mKVJZG gOއ;:ԙCd9o#n}øOڎHB. _? /B]>QDG3sǯv7`E˥&]-^G)vDNC&i#oĥAG1ynℑ41!0ρ8{) jM B.FM=C ,8)Xvd)y"Y6J$-UGu{a2jvX eJ&kG<N9&48=㞋*O,&e}Ŭj+_hNڂSN) t3J>8ً_21UVǽ)   .;e*L)'g)?1>z (G@_hˠ0D׎8k8F+t|P6B-1%ǰJ׌rZME]R,D\pp=ShWJ;cA5JBEX;&rHF$DQ"70;!}୔-zΠ-qSaAJ?4 KQ S V2]K@]))37aTQ|99-ᩕ1+aT]U`[C${-I@iÎt\%&!q+N@F_Cyig7sVK {E>&+c/{m=5l.~)Esr+re"]etLI& @CV MjXRmGst ڒDs"QL!#[:W_ .꥘he9!xZ-ӽqeX6cSOl,Drj&yB]lE~(tsN)db Nx 'SAb+S/nVޖ+ǵ)HGc50d~<z|]t@Ӳmwbkq]W|'4! M9Q<,z[C[hft3 `Wd7ϽeV!o8hp#{Tʨy߂ W;l%&z_@!twHd_DK@o! eN/n LI+H`w}f+rv Jio jL}Ld1P F^^ - ʮS7!//3Vv(sQi)ॡk3mhNnpqʳSZR<{ JHpf+I8I'p.U .ZUoX0`5FG4[aw{->`;\> &R^?F_1Njuy{ӫpsp;2I%  M.Z0AÍĆ18om(I"tf/G?O"%%3;=H"Yhi1 JtK%)ѣWZihUDefY\AU+/rjW,e3kSwr eH." =-NyY@ٲ~uqܢ805Ps+Rm }H Bj>*eIL[Q&]wt*ǻ_m*?~9(^E+UZ ~,<8vr4#2)$.m(lXLbLNJ Sx/k1v֟AϯMbAG;?;5EaAK.O*ѩߎU9mC՗-FQk=FmX!zerZ0\J. O'Rre[nFKV/i$1Za˓B@m+@~P0H+$sd0mj?D;iN)iց#VdʐLdF+MSK>pƀP +ZoJ6Po ÷)fv"Kؿsi,T`M9Mٰ@1R3 F-YTd[HWUWk&ֲ꘾*"9^!>˳x-&ޭ6t$AիG9`n/?ճ;Noմ';MyCI֪㤯נM8F>l~觙g]xtf.~R8yg| 0aG$Ȏt+oB%2)I>Rώ<ugKFIPMK%|8Je COλyM~$L|;PIN:4VCX6-x-{)iV ØI$'?uUaKs1͸T盻* w8T`3CgȲ+HR}Au`lF􁞭^g -`eFo|iTʇ blZ!>FU B sGD@'ž共)MonnHX21i~B[7'uT+rT{&tEGr& rxU^ĸ IJ#"rcV[Q{p7nT`#Mx~H" 4qcЊ13Go=\ dUֺn@dc$;ʕU$V gD4S .հw5WÚ Ԁ`>j}@L"oE43 <- TON =cghɁ:^_RzM|`1롉*JNcRpʱ>*0URp¨_z CLsW Nh<<5Y~dj!KJ |(n=w$؋g V=lвt4 >nL%]szIL D qC}1*b'6Pɺ~;?]upema';W~ks{@ ssh{>˪\]j7P 4@聽yZX1=)M< Gl {Y|HJeÒkX U}!@Օv^ ™x0M[R)6߫{9;q8L9y<]Bw=iCP =Qa ZH{0'?|XHcu9X4zٶP@O9˩?=YJ77 W&jXq9W`=r@ q < ;F7kx:*Zn_ 8_ L"LuA ?0'Xnn"jHVT"%|d $hWzN!ב^JՀ.Eh.wr{gK:~ZYS+ǝ4DtI.47abd&v+ FI2om˞y9n H=@8]bpV35򾭼@}N-S Z  RP)"uB}O/w/-Nf릲"DE}'' LeٟZ&NY4g%LgD*ڱ5cF P_=.F"&hSfnU3v,b{}%(3"P)Vpހv]%]ʝfzhtx{Sstؽ!&W$>9$bipU+ADIP,9%ik5 PN?B&EQyؑA QRW/ "4R> ߍt*0˞ore1y0]a _w:,TIQ7!^AtYhgvlX \*#?3y>~, sTf|wHT0J6\hZ;ʱGøP1 9dd?e9^tN+ϼ.# -\KIqz{2tNoQS_9mCPx t [k,F^cھ!% qQ;z͡o^ԓǛAc-G=ʓ3W9.UZc%=bxL)ap)̃@_י+<4+ioxH ]7P4gNl7-@g8 J;k:p^1Od*]QefʽA?9K}omr?:3{u=~H;~&˱bŽ:2 $2NXsx^s>/J3L?zYPc[y> #/SA7[c C(Co151Rr;} D>BH=(ZoAu2&,Bvr G6gSrkIT7j"xk޶e$xsRz*sH 'RV׍@cD9ߞ:KRQ;a {KN<(e991FT@l_hݷ~ݩ4Oj4q3*c2W@ +N:bJ( 璛덵Dbҋč쨟p d6ȃ cm~\e h!fž06WdDफ#;1uA6WClJH^*bPPdA{1Z h^S" &oSȹ$:\̗ml ruUqQ6C{t2J dư}k" WZ>G+{W;h٩KE~iQs. UJCT"mJU2"nN>$u99/^!ReFrnyōxD&>/9gdy"Q_׎Db.iK16?$6?թm_R66|C? ҄z ,G)"kp6I:h>ۥBCGfff.hj_ʜb s\_qή8hpeCx7LRU;=(Ze7_< VGu2$(it>22v]ӱzTvUeNT7= Va6ַ',Xe6nZl|}̛z Nyy^YuRE[iԬ0K_I9H0[i4]Td2,dy?&:w)(䈆:̇X1wk?ij:sԘa%=nB}Y뿧̳{P (u!u򂚾I%|^tB UԌ_ct6x) e&c~ qTy*s'EJBjg v6tP YiMZ6_XjvwNAzNEc!>9.}^q NW`b#KHV?2"%J"P)Uh(# ̠}/"E MYJO1Ll>l6 YM;/ֳzd,-O|PY6'h.80N!mgOq8O@/YBoc䣜O~S/ǣ Zp!)J?hF{;2B!D6󮌎hSɡ\tt}GKLyf7U]hT am2ݞγEPqMwX*=jA2UpHHȎ`:v&ɣ"rX2ȿMcG Z]QYY=?&Yx.`' #L8-;.f5qc gd2"饧"c\3uL+tBҦI LrCL_p6݃A.v=.|eһ͝RϹ_gHpU:C/2<~_ ~;gvlss hq,-xXQW>2Տ4 hrbB$VlAUIJ"G}%9n^WuJ|ٺ,s@KXX1_=0x+D>M}% UG-W" Mɐ-[ncM0w;TobA"5΁d TҲ  E}'Mm% A * >VS:,ಿ'qυF{EN/-Hџ>14$_Q@)*SU^NXYqQ4JТISSI Ie#9&+jIyn~2*A[]s. 6$wj%y<퍼G"p:Z[TX"ƥǐb4` S#FE<_pψkW+!7KTS^ΈɧT,?N}Es{ny3 KHOh!ѐ*cػڵ?*Je#Ef)dލn56_1mIMUU%Rz|i݋SR QsxM=켝Oe N |!|L5Tu@uLhMGKz@&%V&߻=I'E)I|W)}NFԭK P3[{8?u:WY[vM<_?8(.,ևUqƞA_5$2"jZ6+ G͎qXG=dps)F"O͸Ơ!Oр|1?Wk'ʇ8\ѭrl<$#4^hRe;2P<

o1-0}A/BZ= ݱ<^B2~fM0G_*V\E[$de"1"dfY7#%J$|͛IR'J|ױ&ZK0z>ǫRX@(na*#쑌:xގ̬W :⮍ @5X9;$y,)ϳ30*Q[>~)FL18wL1F ?ny~ Vtkެ3uqM!й]ñ+jd7%x-2n'NQKT/=}A cy6?SU ΃GK1:\@;Ώ(V@A$Ǥho3wcikŁ#;):2<ӊ졶A>7r 7ӯuyŧpCX=r+K'oʓ(1P^/]3[w ܅`zWB+/[o)'tXxJ%nsdcPJA^bCbyXQo ֡c,<x]= _]JAE5py*O|Y p< >׻uLir ssL/mں+/50;ʝ*Z|C!L4a~Q"-2E}RZ5+qrtϦ Az )s]ژ-^U0ڮP{R_cL)?Ӗ N֚t1(^AQ\Wѷ5Ea'x&cI׳xP2X^@e]"ǐ(*.Yw kTp,G)*刾)&e=%) {le3*b? ./+t̖Uc.p6 -24=Mv[pnUQDlPK@=Taᛣ{*} K ~ c^ʔ}K%O۵K"Uj{uL{%A3?H=xq%VoaoӐ'aQi[ n4T+7/LYSaXkE[+˒F<#~4}SF^+;1@W~S54ŶcE -׿fҕaN؉ r@|Qcf"YRn?@Qނ_t*Rz.9ORlJuKW nhVs|aoЊ3Қ3m>Ӕ^j5ԚauiEx) bm^މ"E~&GCߡC }Z qk ӵp~ < D^IiN )ec\=_Ur{vfM̶΀t8ܖVYIW>aブ>`X 'P0ck\)^M )x/Aܻf*Dr&&K=+XGO-S- M[ lBq06XP@A/ Xn5A;ku^8T >)sx!NVe|l\%[y !`o&'jKz$Z+@quM3:~H4Z,jovy T4_-,Nyͫ 2eG(mq=1aboc8JΓ~ӿpv=9i0s\Jy_dA.O|fqHU#6l~0{&.9m^Jɢмla1n$V5`w}hrqhidE4 P?aSnh܉wyåPi,ʋ.~R{]6Ӛ6xWM-h0`PhH .x{aQֆḭsrOϸ;{t%f$s \kג7ծ=#O#Sbcr;ȫ=$Gf|" Rrx5i‰-ǀ z${π;\vO DLV/}1'!&̺Hӵ[NG-̓4Mmtp[bKwTA%/KT ' >-؅ٲ"<mAL/ҹ$YOIkt1§)-v|Wny,V$tB NNռTC m<f!W'1[/^1 PA_~h%SJT"QŷRRơO`:(ɯxg 6R}mb!2KC\btz*U) *r]"SOV/W37t8斪pk5aH}z-L%:*w4BG9Ur&LE[JNG$D$ygPpWhU>n8 9d! ,= PsgJ!t n m- mf1 j^{f+:oE OQt Qkr6Ytƣzd6Eܑ6o^qުʧP C4/bCArXf补XhEnuy$ ^e)mE8-62r`sG|9ή BzΤy%ƽKL-'+?d &QJ?'ޭ!3# x߃ܦ2Ќޖ~-GąiՄ Uil@:9a 1ѬmcgVkt,;>>Ѧx|@r~qmSd!8Խ0N,1\y$%+z>$t~_$dLf:~REKo2+ ;'V9,Œeqc`I`Z%?F-WH7gHs,} !]fBQyR.Yn5eЯ{]*(.!8[uUC˰E_C=+@ ]|fpʅGkvׁ1]cla|1|5* ",y"Ѫfؿ\c Qu4!Ewl]]Ԇ=bwdu]+lG7*cJ!nD0ŚF퀵F@4C&Rd ɔ4Qߦj=$_T]WO6Qc#gµrVѠ!G8;&J% 9%)h~(Gt½>H}Nu !g:3}25*. 8[\+,KRd^.Xxx]xFC7vAQAxaΪw#iJrvÉ?9\-j:YmkבIn4_7ZHQHV t|LH16!SٛoV:H%q0緹3)r?w5,QV(f* ($%838qRX2f?$49=KH[C]6RC!y86@0ag nq Y 4"$5]fJ T,1h8G̮Xe{J=hOm\$h~LL/}l1\8ĚΏ vrS 7+uBCIv )>6 sCc9_K[1vɪ\VRIWwЉ[s$2KAjOL΢s|9$ˋ؅#7Fn:pLotm8{d4U6xN_fa$T/qsԱB$7J G">2\Ou{-dJ{?2]{T$pGP]\#wӼXS[!]֙`wCV'CXndb w%ipG1 涌[{oT^ؠꌠjׄ %2q VmaWF5z>JҖίn#2J)8B*<!Qt%$pyZ/U%nWAʅWq*Aj#\W!Iu:nd|VpPҮ5szR+DM"V[\~D9s-Kn{ئmHڮ"W9w6"Ll¤nuj)j&'e2֣go+hU(D!(WT 8\UU5z&"?i^!Y\@;EqAmXر +A6#$$nkr̐}hc3!D1;mZ "1l<)?>M[j0,?hp62a_%SXq}ǬkB/Vjʔ/٢ XM>13>_lYo8MS H@Gl>8 9~Lw=r_v_dlk n72Ue/t>UK9')}:C]d-C6 δ,E,n .q9q PL;0)WiZ9 ྄`О;?@++Ō >LL|p~pR=O#ڵY'r)}|Úc=C QKj>.Kg{hg<*}>0^e|~][#* uPk3"\XvkH;I7gcycZ[8RKI"ZI{>oª/јRkUΎHN6a޲M*0\#8ݱ l737{[Ӿe|of*s!tm5zM5q3K88ﲛ[o49RJ81*L )g}h%_a芻iO[!L+ ̊t6n't^>NfrsS8rlKèfaQ~bHפ.;\<"Zc,{L4Lv/wܱV /O.dgm= U"})lv|PԺ5V >aȓh˘$*Ϥ| ZӿEݪfXJ699 TUoKkYNsO[z'+,x?$KrƲk<-lRQ6ÖmegSmUﮒ ة`ɉ<%ѽ K[D.O׎>и`T|'ßϳ| c~`G+ poCEgWe?b>WRIJ b Qʸ`S>t/XDlF ]&ׁ&A]i4|&37B8 E&ɖ> +^rߢcoe5uj:țƻ0|W m%+Ԓ ɡt:u;{'fG9fOοvLCi* C60RoAhoRkۻkC"dr{7RAۆ~D2πyyY\ |p/Ѷ5 W @iBJ LY'PmaĂSd]DXpåE#*(8$c¶P#N 4N?¡<|$ 4rO X=[-;T@p0n!NbyE$kBz'P)f$8(U0X@Bq~˅PL!E'&)v*֛xocB(Z`0\|WK?.MBe~ VY z1  daI!QUpX?Un+lS<{#{pL+Vは\-]_SNH$qiy#PmvqƐp6K7vΫ~NJ6$ڃpnH7>UxEH3ZumcBV|cO"}Kj뵏0Alԙ6+_>\3~R>~)kȅ"{7tcf[ch`v`VZ%KUX(ZFE/AQԜ ]ДDKcCǝ"9WʸdBXf26J k /Po<@UQ0}U DT79x i(t2#S lP[B1aB *y Q@[52& T<1lV锕z@O0KEDj޵E$D[0)hmZs2) bEdOه-m)v [ %qJEqz5 Z~$.jBW1#bA<ȺB/bF *AL\7FP0[—Er9r+.@-Z!ͼ~!OE4xyjZ y}{Uqa;5EK -/U;̑h\jH)s'?LöYyx}g |C@>aj7p(|#zB_/#{NVPFvOٔu+"VbHE9*M},Ǭ|>oW դRL,M/=X32]9S]9i(b`nkg3{-SF}5kMnFװ w ZJGf4'G\OT5@ kfxETb=[ XBmGW["{A;֌Zu]ře7xȔ.8lR;gxy\0y%(GKP 文鑠noʦ 4 qT⑶8CX{¯ PZl:4ϐe\!%(mF1kߒ`GSzZ͉"нЎo…ͤ>Ű1qg{/{Il5n[E oil:W"5,1仲a-aoc#7lE祅jݖrOoų_\+nMkYm?aLC OSB"⋲Cޒү:yK8%cBspf,ź^]HOVI{lbaɐv ص?r }c[h3!! sKw~ Z`k2I3C\F$9^|n4`zy `r_찪DϤb`Ke 'Q7 9Jkz~79;9֢O~smcW(oE7^_=]~mXۨݺ6=>c s=Ʋ bEW@nW'n6*Yh ?JLq'M9nOű;SX*  z.!\qՀ2$:$9`uU@NZG#lrS ?RM:!⣟uXLjJHdE?>r .{*>B\v4Kol% /W.8P0Ajp)j's Yx+dM]\XRytp<ڤ~G1Z6²r=ŷO eqjDv>{z*Qz*5u_cWI}J.@^yG -5btRo}}+nK_)o~mPEu|a:֎պ3< Ú͋65x豒p0n0B$ |ӧL_AJ 22a- 0<}_bnK`jbh71"㭒ۘܯ`/ 3ëkh&uI ;bT3U G N$^!1?kjx*-GϠ/#؝J -|ȓUFMAOY֔P2* tgvqڀ)}7(~$ s$FCxqSXe|/74[çwh C m& b˾)Ht54c*%aكE'ns@"#[z6:)B{z|EZG{B8UDBsPꮝ5H4JWEjA+f ,eܿ+ۼx][2:vqE3+>zc]2.һ&gbZ92>t4ko1GT+ÑYYhr?_zl?) gn?UDq]CVx;qO:5ly%su%5'r>Mdfϋ:j㏀8(3nIo6$nAK;q.ڎwh: oĢDF)NcC>:򄢦zj=]wY,L^\N$ 1 3'cTsjce (u29˸mu r {EU;,JȧnLeG>(\͉0[-EOVJ݊Yܑ\ٮ68rNciz;Vcp dm&~KUk&ۄl`6(-Bz8<ۛr+LA½ŇѶٛ <.-tb2-vk'D$ȫ?lڶ'xx6zchPpSգ-/eRl@mÌ٧ݎl )# )bi-D<G i8dUwkm{J\q_-N=u/ VK5;}``TaompAe GuS?{ш ]^+ rppUnѣ2*zsϲb=Q++wVr5Y~P{Nofm=W4*0*q0u:m4cg.弟34Ƽ Xq} T?{ajY𑚝~>:JF% kp+pWJF}o"lq'V5 g9 2~pu:%e4v$D~oNk[V*nWjzz|̢.\2݈ ?/d=-׬Y_J8?(r{2c cXa].< ~#K)!tuJgjSpO)&P\8dֻe+*5fv~:`bJ냀뙿pm:Zd`JRt!ddЋvSѴN,G-"m N=U /:𒈿'7V&Nē!0ȱ"~ೀӹ51|dM^F=Cq6C5qƧ*͵;怨̟ީѕfu3l԰5 (tr%ȟtL6OV3t tB G3keK%AN0 ,\?,+k*輻$ή#AgVr)E %[[#\q\G] J.j͌oS>; lt,!ݫ dC[YW\ |^[IS{ 3X Uhm7}K6]:Q}|Ce>lcnJRL +c7w DhEG[@H y'{&~dʰ۟5u8qiGK 8A^gM 2Ğ: Ģetkx9~}jVUξq,Lso^Bi}6?,y(,/NIпzk̈́Ud3CTD2Ӯ7#^i*h!O҆6e80/-60/ЅaHxn0VW<]<ᕒML='h#j' diݠ)>('{y^KZpo4jǨ |m]mM8F+H^.VxCiiML!DL|=”# 0Kl4Av 3 o&^ȗ6%&ϴEpݯۃ`_cjR!= z33n\nxj\0eyզi yҼx6 zHЁ1 /,](43)w,`!A^h޶R v>ꋍ[~QU;JQ6Ϟ4 ckm8V77S۷Xe(0ƅ[N,`KYH6}'hjSU~zw:Mt(KƉb3eqwX)á-#݃*Bq||rW.Q^Ӣԣͼ5מ3Z`?Q{8 Q!Kn3RP9.tm L$t0/[1u%pWmzd+2hbߵa$.pl_,횖.޽l&3Sj&>K$X5B7h}B]kpvqGS^bŌFUN{HO,tu}\hH1{WF =rZj(w VIZGPnԒ.lkI2Jz6a0M Q*9]tF;+'?=un?*/I  v - iSݔ=R%YNϤ5rlg#^FDkemulJr~n&e HN V|N FR>-5Ȑh'TMb)CUs^"F}m,PY˲-k铉S4w(%pG?,{ڤ[4CR7*ɺPC=Jz?v̢A6SqOϞΊJʁ$u]s1xWҹYV!t wNZ)ӯ=' p|*鎥=*7uVV ta;2>^r`;/D}&Fy@g]GxbS3I/ Mdh,ʢ!-y3?fbSz8wi׭v`2ʬZH/řXfYipV߻~DK{:t<K#E1(B?sɘ3"# ZUO@b л&SiK*{5]?,Nl&,fo.R\p \L5Ιkch>*\~#o> 1:1}.q#BY xz)S]̵G&1 P{4(w@.Ƌ%v <]G'7w96kI6yD@sHTWSpUTyӗ%ZOjDf+^ydE[OF-Ϛ\ 0_}E&lHrgLC3Bl@rwXƳ נ# XK<&MV]-O!sJiڜ!\h2'׸?AP5nե5J4ζldYKښ.D\i^3xf@d;f"ޣwgȌ<]#-uep[4ch ;K7t&%qQ,u%;#!LE - \j{' řKaCZ|Չ$MG-,<%- m +$T\:?tN!ħh#^l?ٙoϐm x9 ەu[&.2:jdJ6E/$1iUPCmdr(gb%?,Pa:+a\7;[O[(jp˞1ҎiMƓ BԊOKx{̋(a+ 'Z`4(-tUNjbYlE騘SpƇ8ې -9#Fp)׺!h# q`oYeŪ[] @e8Ohqف*#p%AHlSkJDUxB Y#@M7S 4, &ǣCS19j1g3S$O.$"ɤfM@1h0mWE.zĵPTk@R7Y{x,`d uN+xĮVJ7? 6IxYP1sՠTmp=f+= )ei~cK}#5' /KyE^MxfyTv*I!&;korevh'xg4 aE>;/+|'z20QTVtM{V:yMÉʘ-i1qgDLu5)K0ܫ:^eԩۆ pZ֯7/h4(LVPjuWҡ#sdZ:r:, gr8ڡ:#[rfRM!&1[ Pƒ @ܧB0v^4p =Q\( uy|YP+ Op,0q?!򶊱Ƭ?5hPX6w{ti,_a#]KAm 6b> JVGJ?<_ b Ugqq(59-Pg1xxx( }Nh$mSeTc?h~oi+Jk_fBϮ4?FOytU+Õ7jɒ)8R.m!H/kA-V-^Li(U|]cW{MddN6w%m\ 2n$ti[qt8lZO=wtF݋kjԲlƟ"u.fSIC(J4=b31y"wF%=[Iq[W6.a_#Ziuz$ 94Q鼨&#;plbC)tnnޔ֌9SADJ>tJJI p$e;g3;8D Ußt+tG$2 "c.e3 ASt2a[^aX}%Q{ ʝ8W)AXgP_O \prg %mW&!ݦF:W/DE^=2דgG4C+)TtyVKN<{RᙪeB5LC#Wٜt,:[;ے&]~dKFfr|P5*>M%^%wM/c@ʋϲbqv`JhZŝ[(CsNfCHiJ&4D] 2졍ۚ; )(2^1Tgdb:q5)6dfu@2=gC wwFU,OŘ3A7~S߭<н`zvdl4prKdL g8QV~Y -P Ma J}|3Uډ&AC1c7XjAOԍtN:Ds" Mh'?iU]Nr>9 8)rs@ƕ;lyj^%ЀiJPȼ b[7+ 9q\Is;e0K[bϯC"nuQdTB^YbmYuk\ĩo[Jx4U'%f !p釧K-12&6ҏn"L ]|Ҹq=HlaJJh 502 lDPgMJeԛ@Ms!&OƯHCi:2 1*!t]b%[7 5QSFJ;pVZ܌}M񄇙fVaJOl$9^#VjCyL> x$~+y].`?{Y&*@n̷@v2:H @uVS˛l꽖,G/ } g)4<yVIYwM̐ęȜI=lM G+o0奿󶔍{e;.ķ~ֻ1rhtѧ#3:זypz0e>Q/7'zq(oPL?/َ>_Lґj-g8GSnN>\r[cMQߣNUP͗b"f[Ȕ4bIAC:vlߝk#|{9#4+𱄎Wm~6c5V8;5TK,i7l1r ,cb( c|~ ޏ:7X\ _Cob.BvD |u⋪-`\NTlʚMRnQ]Z+JmX7 d_#i7q1COC9`-8>0cxg|PHRK`ꀙ*i>}**E,ε-}ޢ\9.êۉe|Tq`h4 L2(rFCwTR5 _͸Ȟ]nҸ-ވg#L2qA).^Tz ' T҃둦nRRL@FCi[{H<(.sa9to= 0kɨd@ P \'iK=॑!XRC 3nd_a#͂m p J+}Da'?<˖)]ԿN X5Ik7!*a/x9-!0pRC dˣUwct-,Oŕ,kBTJ%7:lnz亦tWqRS.#ںݞ{CV4F*:$=AX99Y6x14%'3g:f3v܌8;j(V!Uj/04X.2Q,PV![xCI/0Otv~BY+:;Wr]Q\dIQ(^ R YM3E ҭU= .QP0郝R-zVKvMӄ5xO\z%C@Ri͍L /@VVq]CC-Cw(s& ;"n/ۦs ¹C |+G*VWtoVB?m"`п⾲Mnm=VJ}^tU:lN+V޼yBQ4ʨ7F|#%kF`߿4O6; |K^ +-|g'5FQw] 3)\ӯq;%x6̽&oz3VOSiϷ ^n_;vcW1O^J{ǖbBw:a(x ا>.RB$%dn'-|AJ. l "Χ $HGȥ@j6,$"-)ָ6&2t Bi%-} oNJjEY +M "8^QkaXsԠ$ڽTS,+eHzrְNJEXsEVFR0w2}~ݭ tDmC2BM ~8`!d8>dx9"wN(KC˺։/hy)]t *fɖ2nLV)T_-Q$f H+4Q/`BK4߫b<ɟfg6;PtE\sBsUWF=І~>:R9IiIךD.D/sg;n~y 3Qze WVoD|.cVxjLBV#3v5Jȇ~k,1+;?,&ҙgܹ%.\f)-.}&ʨX*}؅ NetN"Is%$S:ަ;UujUuFˆɚ'mB?̀SbEs&R;ducVHMŸږ%6ul{T=w:GG#ۗjjNQMē pRۗQ0[<9N~G+*Mm9z=+EyQ80B7r a*|KBo?d:P'N۲Txzb.#dEeYlG<[^ LlG˿jL°oB s vmn.518D<٠t⨶ެuH^ߗE kR\())rT /gWk#h>fzJ#=eCI*=n5[tS&НZx7a r) uO?;]/kI۵[mW^ mp8tDxɦ3}7)苦Ye%3~y_qӲ=jLd fH /`^S^\B@s^O!ga`wਁG@U6z^;6TRW,1\ Y&%xlk1!>m\WbzuiSiʓI 4c`9[2n{X/U녉Lk;u;3 ?i6#{a}J]\q5szI/.Qs?Y,ЉBcl%8^= ɣrq:IXSE@r!he0ZUX ΖHu_R1fxLr} Fm܈8M$ Y1M+A&CDϢQ8׾Dtt\zޱI;b81''_~ tȻlek1%?Zx},2T[}LXAKՃPy!LǀZߟ3@@h %:ڙHU "wqOߤb0dm{Pd^&8ؚb7&^~q֦c`_'xtWNx9G~%#Lw:Jok q ed΀Q6&׼4ȷ^7H%p{iO`Jy=2v)Ċ#ojP&(+?*>~Zl lL{qčg%!ק}Q XmRK1 >%f4W k̟yex Jϕ`Ch*rGHCa6=$w^7]@I:FS<UGz /b@ %i+O45Bv>Me} Jћu%٧q3hwYDStY":~x\t=y_pZuUUƚ5.quV$T#b m7kPNY)nBz;7ޝ:@[E\$p+N"̫T}J쐈ۙJYM^aj ?ܧ$ {]mG}f'=/.nY/;a\|ęuPb~z-S ]K^ 52E@XfWQUcs6OjDwCAVpZ\(t~{v5 *36y>3! Bg@>=78ЧmDh|N mɘ> -NFl |ȓ~H'}'^ix5:&!Mț|,-ErȤT=zCbs(㰽?lvyR&]1gĕ<"mT\O^#ܕc"طc+xIbqu:.-[A[z +Ԋ "lx2Fdz>'ys {TsM頩dy&$m&-X0N;SIﻂRK:,#DA}U co1|e|R‰APq({@DFdk>Nu%bR`$ߓ\#{Ѫ5O5B#'e ߱붵$?+  Vn3RR ys/r4wvd.ʟ{y<) gQ_i9hKzF7ASIOXVAkV#?8O{/YeiUo4:[g]Ii&[Ԝ?zlw[EacHQ]f+,4p=vC2ls;}C 4q oƉ!4' y'/0}WM#76^"YlQc:}~#>ۨ6CΦDh!yf-J?YM w5 t'I]M x-; oKј |blel9v#\Rҫ9qQ$A>f7wWKLQ"ų2 ~p$lvymMkb]#Լf)оbUYql١ Τeh;\ %w8䌄9y &P?h3 4c>G/y'o:h$JSvݏ4~h:*~\S?kJ f1oo9G$l_TN0l?=U,.ER蕧 ;#v|A3oz ^ HC::^Cx2aaJ@&m"İ?+q GSL1!?K'zDV7m T#4q*n?^mXC"5"gBí;&lեK/Tb4r=yKL @#Q^g%2fў:bzF[}c'> Ϥ):4GjNHUUp$g  Ԁ8ByBN>~u&|JhljDj)ۛWm^_Gm]W7ie2fhk$ 2@g,,$FB?՟T E Jv.SHJy.ruq?DSp XP1tJI[HUd isϞ,4+FZ5;Py,"|A-FEh>cN|5yZ 6oV6Ul˱2Pviqm~ջD{$DF.;9}=%:E"J\D:={JPP4dy_xzT~<݈Mq#0=V < ׵}(o$ c<0yrס;p"Sw*S3h gYEL1b_;S;@Vq=Y/<8+Jz&{ljV ΘVUea+ՆQf&2oΗ'~X. Nr4|x O7\Wڏ!־1sM/Y}$S 5;`QRGS]-\K@a8?sjM2Soz]:1A7dQSDL:yлfKg\c.Ll$#.~~)%GүH, sn|L.&yG' 9:%Z L0T97bW\ fF|c/h JzL(sf  Vs&y0v.Q* a]"Suvx[ԁ& O*VF)uB7%?˳F9aVʗ:6XdJJ]%`o'}xzTzYqOVT_x!$۟75/=g"F(Xܞ hthLKxDu~/;\Wu]  ⋾vqJJ: ƚ b3M ["D>.ezR5Ap{|DSQ /_Kn?-VvܸQ}~B&U*UguFB9!`}X DOnm.['оoQ)}.7xHaz?|ǃ4Ki/94!$)ރ-FU2r*{E|%KDH;XJ*-O8VFAOY7XZXݲ-I [[^)z9 Ġ/s@mDV֝ѱ9鸧9!D@Z4v-—eůUCzf|+$vSi@Q2Z@Q}Vz-7G2׸^ Hä{{3!}߿0%$Jώ@ ^=pt v&܈7pr˰YA7%J̇ iv1a9"oyro0ƣ. cj#uq&{E'A #Il*ʥi,%CPo+}LAwN 4RelLUp ,/Iir9th=\9K4W^N|l(\PV=3\ӋRq\]^?jdhO]Qz!CV˿[AikB:qU8V}{R1]:,~ 1 ̸1wˍxvs@TW^=DOA2VBXRih6 _\#-@L듰,o,J+#bD:y,p⸼L ,cZzBq.Ձ p¸M~NW4ճ5W"3ZeJDM(pc!&+_'ڨ"x9׍=1Y rok2+JzFIMj"Q`dgNEbA +khMɎ:|sZ7wglN$2z2M]dCG9K+ K>kN 9/5*(D:b;5#jƒ39@+fjS'JEέ8AAQڠVѤŢm!_fzlƇqYΗ*)C*ҭLyL=IEXmj$*f7}-4X^Ij׏ FizCIN"j9t.^sZҾg&E7$b+E! pAZxؔZl<-̈́JjC1v q˃ws_Uj|e7)W'–ŷB%y7G|Ƥ*[mVTS^[(F"Wj38Xv}]8'E2zEkgv9JR\ŕ:W(k\m=>1gNp6I6mS+eKx1k6׶ü]E~'`d5f "B7\ | sʛ6مjx]CSSG[5XŐc~ÿx@hAO9፮Yl<^o֥u"tB#Ӎ+mǭ2%89%[==⡍-Bo<`]t㈐eUܗGϒ%6g^͚ 2[V%,\+BXp7ZBGF?vIk?ͭkK(rΊ 7}畭kG\<}\ȿl̛#_!B }qmvun;elM>$j;+g\-U+O".U)x#S\r6 IO1/lLZc\Y4HQ!9 VHU%?Ǔ _)cєb9ƌKfqܽ@jf›᫡ ?=ˆ %WnYB@C`0dN?b:LLW0c I!0ݻ|Uq*(:0]5H3Buy-m&%@ ;/K'$dE!|`8^ux6ox#oؾ#on a ;Y٣Ubz}wQ6zxjk 0ԩDSu^O##}2l/8/.dU8ދ>@2DڢQ/W@=2$ & 38QXң(H(<;AvwA.Paoߢ9X{4_?0E2YODM 3:xHKCݵZ,n K^/l[2nWRU4hcyA$/ղu*mr'R&YsɥIeSr-7V&;TF}XN+,>m&Rp`c6L\P#?*`Y'}.ZUlɀ)0 N!X9حeҿYɂp ЗYJknbUDr;Z'LSr~  `0ݙ=jmZQ80/O'T$ӛ{>Xܝ/}"Ӭ1%i!ޤh6c Ar o 󹮅ޚy6F`0w糤+-qhe~c{zX*60S4|]X_'Ш7"zpӘQ5̀zW/;t80N2ݬ-mdc+Za7 &I3aB<S\j qW3p4sKO8彺>MR8 aJM^O~uyq'e:&C•IAݮ#8_[?X?}[ՆD9_-h7š_lKGO/.G=vD% P ?:C)'UU kؓ\ B9;o qӦ65#5T*^W e،gǝmol'tf&›N6gWGqu 0Bw2M)rxmܗl(^c1)/ ou/yk zpr9<,Y :@&ᖳB՞O ͆<ܻqʻ c T\*% 2{$R< +N a;\zK%'Qx Mϡ 9*M xJ"dft ZR?-&R=.eY2}⺬*~FLu2써Zw;m뗟I_Z@P7^g@Kj5's]ͻ2Rf^{2Or2$9o2&5Ľm  i~\r7\҅21_nU,GOj)<:4 1 WJ WQκWTejYYM:Ҭ_(e<XLgΦbcvّϺCm81yӿC^GBѽm0ڋz 7lF!Q+$69cﰞ`]t)kWIvhz}^B \A}/j;`eQĆV:NBCh}"Z,dq7sQ{&'jZn{to0 }q*;{JC,. ~b+O{*!8bKM#W_u9,*ϛ^8#t#޹bŬe +xH`$[HLmu[v7S:Us=spTUwHU"|3qTxuJRno~Ktd2kAcA&,XW_g +-3}/Nh 'wb>.) @z dNQ dEɯo88 kk[/tb%v/gI~;Rʉ( uȻG] %;Ƥ=rᖬP/%@{fOEu2y?ZA1ڋڈ̧ jퟄx‡[H]Wm.>B*k3+_ƛ r]c3)ӹd,kWrk$Ohwp:ԥV%HZAO+b)dL7 5:.2hLzH,*,|uú ŏ=! `=악8Iz[VOhOSiYtd*ٙLުE;C6@ ]^˱l6Sx6`!jN"wl[}GJ@EJ AɇB'J"ܱN[Yt*eX겢WY!&$,7KX%kl1%I꠰ũpwD0Xyef}otkB?>S5q^4F+2"Eڷw6 y[y0*zt(7=9Y߆S x2ˋƢ[t;v ajWK&ul-KZ5\Ih큇knn0xQ>b2~\`yG#ݭJb[K׸LWM S5)+z 5KsBls~dH ^'V,|7}s,S7l5< 2"lAbʉq_rgw`$2εMݒ^7Bmg=@#eEޱH~Q-4ؠa>2*V DϭBZi JO5`6V*k[I]R|6q]C!~٘u=Xt-#۽ۃ`v+eFSO~@IHkMcU';a+Qsp/ү]~wȕ_n"U\ahpQCDh=Yhؐkqr^'3X%!eڱYKLp .`G~r +3,L>$ѽֶ1#ӯ:bYm Twݩ)nK"|V} t FىJxXF l|#ԠZ28-!4ySXz[ɽUz/ِ"U vUI$rz#4U a <\w<X8! yg\t ޔ\.4mPՁNPڝ,0^!t%hI@hft;0T?`{2!z4jaPa)7ٲh+zn H` qny^ I*)LK6m #ha-]}, ӐD)1㯋[#g$ _&?GL"w@׷mb_c|LzvXpR0> q5ۯk&MoX;Ed'6+c9>z"`k lYвFa]r+\.z1@ V5Tꚁ!mAJ yvg3绗)U0?\?7s *k̮ v;灇sݏlٽ[_c~7Fܭiu[}QP G)4Ht;/7Rm_'l.Wo-ЫZ28VtEhchtb_-K~6vHNT]d]\Klz}wƒÌSvBaz\֓H/,w]1Q.!{I}7_Y4Kt #`mMHC_9iDr;vIӒ)$ RCvp<ު<" 7AεDZ VypTdֱPc^d=N-1#&(ֳCetKh־?i#8U?g8' PXxcUT}Ξ-/a")Lݾqo00ѲF3pW'/KR&gGJ" Ţ#Kʳx|b|ib ڼռ|7# ܶ5IKPÜ[S^b}h~3?;$b+ o<4rof)IvRv! c<|~4-10S*'ظ2D=KkZ'cX/IcUY)(BO?މ*#4diG oP\p؟+M8nI?jW$Z_񑍻p°VW.eV -nm:zͺƷ{L̺5RѶ@2Bd%5 Ȭ¥buؖ[&9{*OVʵsଅ\Xq7QtcR_Òɲg;'q29OI/ PDsfn;y6tY3 z(4bagU*+%7d,,r( Xa\ lͽe͝GX}m`$3)|csw(=K1J"בG :HIr[0H!#S =&OM;3Øˇʩ<Lw%&_;\uS92<%(.!`s 愲o<(xq↼c*9|6R#p>>z_!^ a;OoH_Kǖ&v򲬡WqWY^PJHw ׌QZ9BL7!i*]_})2|F>bPO$xH^~UKk> 'ʁahOVl++P5/{Jն,zHR$p$n &S1ݝ,rKwrYPw\<>z-0?A1w{2" |p!}JnmH-vv+ ̂CX?am[2~[dʋ0P;E5X`5ls(cZ_ϳ:EФ't#k*

? N}ԛ:I?*A"f V y.i/("e3iTWw?5*7)pK\>0gUf೥Cu43^\Ye%D_aM4 @7SÆT]0'}/q9Yj X^ǯ(ѪB-WөaCx j7[.DŽ&5l&I(T͗r~3/Wq<4F6fkȯm3S(XyDSPc4 ՋqE_p'IoeAk $:(J4ᚗh'۰[%e$hƹ(FNF)YYw3Ij=TU1|z/-r"PGE`<(ӮT43f[-*)Sq8r2e"C BǐhtTqe`fvdk IGԁB);T8Vi>4w2]_ p>,]mP22 ]'ys5)I֙&2~UAk#N)6}KZ3};d.WKtZUWpT ]$B/p*}_|d՗UzEE{]ekgD2r/Hy"[dv5Sm`)>G7hied:Xkc}].n96pi>I04MT7CH,U6ѕ$0rDPA"|` d'& @&#(p;V^.w]\yh`c@i1jV;ql#b &o$){̝ ܂Xn}JSenx*ٝ 6s'-!h7@߻G_ErZYiWr/q2YP\M^Cio MZbSb".W:3=E;,x&]{N] UAg{%dȿr`b+ƱZWdHT= <0O4{>8>@W؄h>ޏjC]JW ǎǽh$!@ԟ pg| p:`JW}W`yv-SM&\!k@NM:D7.sDA14 )EXe O+">5"T KeCŽVovYglPASx e99I,J1q^(n\A96RBKzF)XbU&UG ȝ][P;[ڜU핕LPe!FkYto_ nK'rXvF PL[km=bU7B`Ϙdm uH%Pw_+ R6 I?b)QÖCCp9E*sThԁ><7Qr}{#Mb+ UtG˚<-:p bœ)DBg()niuTt"Ϛ̛j8,fwE\m."L]Ł*ނ#^ѭ'qd‘zV/;dm=-cO|D]O3+-vF,FJbݯw|^0PnoP=, IyhSp^X%L_iN>x=f}FQW_oz 0NE-ð5iUXԗ1dV_ $Dz>Tھ5/R"+z,CrYJ! tLruO3FL ʑ9A򁟿Xz}SgPHUJM?iq r)C  Ф8tZ mƒA)3L6GB _$LKͪ:&&Lʨ.9_P&Xbk /t7Msb{t{-@^rG^ +o'?L64B0<rlW6bM^ٍh}9ἧIXGwo6m6ͦ1w+ 캉g0$y U%Pwt.]fu?J5g='dN(#p@7;Qϐի?ǞNn[lqJe yѼ xcydDQjgNJ/Fdd(!ѼfF6^gW`<#^FcA J]e.$4Q@9MD՘x&X5mT~RsSPb@jG* 0IٰI {Υ;a:W{EH1:4SN_g`}ɲ/9Ks lhʿ@Y>Ի{V)/hto =WR(z+0w_ķǘ?7-{(N+Umfe"&-<@yǩ !>3]*ADr#Xo ?6RpsA2p^iՆp=h TB\1̠*ʁVoX6ceU5kpY,2mGV-ޗe!Q9~ݣpIhI'SY?lJe*݃S׫E׶~qu#?`ҳ``+!c+7UюPۨcRpW |àz؁hr׏/b,PvigM~[W}; ](B{7e*o.xb!{fUz /xd_`M6Lfb~wa%F>FtoqMjwe]_l)_WŒD? lA}VYS^s$ ?: Xb5DTG"AʢiHwl*O.U\,9Đ$Y\ȠEL;?qmfMC)7E_ɄꅡLe|n% |o3=]O-4!V({3Ƀl/GՕsmY #[F!#Woxrkze_r{KN?:1<HNNIdh&9 |zA`R{ i֞brم<-xtY<)V Ɨe;l,FF 9eq&1VXWpO ;KԀWS4UQ3mL:9TU)u@%1rã~ܴ9[>픔U*=CFn qS/>M\H\qip-nusʥ@o|J N딽Is{B9F!,gT?'z>]B,dxv/ÊT35ڼaee dQ a0[ۨ=gXm+zoJy˳@|rlJ.hh<0&nQ|cvɌrx뀓uA3 {깋uH8;("V!# ޘJŒ܉}%.z5F/lDF"ǖVʿi9wt C6W&WpAPjg\Ŭَ؅KA>w-tjTI!UvXe<;?t`TDRlTϻn,ׇQؘ-#c|c8}]mRt"`$^JdS:92Rx*ܟbjDꠇzhPEٲ-@jz9ܜ,ʇ\8hڎ(RȻY>yO85! Q Y:- dj7TIv'.oI%4HWF WV™ÕNoG?#߮FL`K(Y O)n|Q\d_J`n(56Tcѫi]؎i A&kZw:M彯!csnKNPh|W!OھwE'海6}e'<4O6Ez r5y,CEl}(a/}Tw;8}1BplY$)JyZ&B9fӴL#Q2~$g^T[ W|%_{?'Au$%]Lefll8JDhsPaZMIfE̍lhkћ9ރzQݽf<`rTQ21jz:i!B8Dɶ%քPԜ: 䠶1 wzJX ȥ&&K,a @8EB6FYwgdLkaZB-RF 2J :CB5;>w]noKk 7az,cYg0EfQqk.ψS'Ѩ3%O~OF`lC今+*:¾1)>&@&nk=k8 !L^\^q I4}3o4Q:Y{XHvӁz<.Otv^4/šCIsN(%cǴsC6?A!آ775sz4h~C+~kJ%BCbXTaaqQպ'9Zs:;=qc}/2*'ߋIWwAGQgM#WnI$=+&zFX{$%wBW"q1 u 9̺HM2#h])ð~&m4Of M/Wo=_}Xu:7Yu_"i<+N{obomhSןopT ]34n+E9`PZuHYu"HI?N xTӔ I&LV3wԧ?;r&Iɹ77 v ީ/])j8vN3 k\Q YPuv6\4vjs%;Z>3 R5*m\A1u;%G%3 _'ϿHc d&]O-;3~H"[݃ޱPs@:5 ssZI΢8SLff]&%mMh$ɛڳjve=8#% 2'l0wN|Y[T9=[ k!/'bPdPV%eQL{ /g<ƾaơȡ b G,{>lOQND# 6b 4\QMaѰǫm*4]dt{'At!5Ȳ|XhF A~oUMyhqt }wS[CHRɳq Gy$HdST9|i긶^Aum6|(I1bx)jjeytT1tUɉ-hk>TD#@:F9)q jͭJTm^Vrn<߅ Kf7w훖S=tL'N|v{w͊(IzK2Ei f?^C2 M!mM곓)'E\]j5ibhĽ:EmZO+60Re@RclOsQø~<͢z$r'~Q >Wx(c]?ӟLm*SeOId(^0B,@ ( &I\:cT羲#r[pJ%ey;LNP.3¦CMQ!syFdoEV v "vF4@sAB?+rzR)֜!-.:K??\r%l{ʬMu 3zcB::"TsMn_R[U`MZn ' E DE^70iv](o|h {|:DP.$*aZpuDp/ @{%  q5sd}|ϼSihKV83%1X5'/B:pc6O'g@::Ʃ^,D@Ե6[XE$c-A6 ~͖Q9_GL&Ԓ|d~kX8,uJZiͶ-б3< /RqhEN:4"?M?7OpaWh&V*.—ḭwZ6T-կ l%E(22fUr~ޙ~iotyu\D ! {EΉt'5aVzʡ-ma3:knBiU#̶tR{U`G;C"]~eJCMuIw0Jӎ>T]ji! FVHЃ'"vM' pEfhM,UJ<>*C/W|.&KYܽF]+kxӖq3%+~0d Rd hx^%DT}(Ql#<+|u8DOM ݩ`rP(@.wĄĩy ;c|3ȯѡ Y9~Y4iO;N'Xwy8T}FK)/f"ťTd hn ƽ5Bwjj63JS/&"%Lp|A 8bgIxv ^eS;ێ 1?<ȝHJ ! 1voGQ*PT2gllb1Xx5Fڄ?ӮBw>+qMśmI<x浚#PgNzHK,ˁkqӛVr/'Nx/y9z*no/8v mS$ QɤoIaUnhT7Of^,qWd;"jF2X|FƑ RI,Ѡ*sɣstgTJ&+(%"4÷:95_ŇqKHBZ&+1COHo%LroՔB9 P$0)"2$Y Oι0G1 ;bb#_P*q\RtCAV<}&F86u笽(narĬ^1SʬR2Mh!p"^nݟRYNfC_mz'?w"וpPt_ǤQlF|U!a9uBMx% IR[\a( ZShZ֦|$wzDSٛNIV䢳~kb{O?}:cm LCcuv0xeuJ=ihen8SOrhҫd5uǃ`[5=5q[ cF7TIOW 4PT'[I\K,U I xp|\U{6t$/A-jA]mmkE/>;cШC-cT:Yy5fqCjFfcָhys[>c5o}VQ–1N#rR~JUa !"ԙp7wiu/H d7CdA,^CWYr\Bue;sz;]wyJp1gK+=xVC]DJv$,΄b𩎣tb/ڢM1CK;~s9 +`}LB1QBCkm%3Xd1ܓKʪc7wlP д`$ bc3m.ۦ;c7%$0 12zpV 1 ݽ d `7Y"l^Ͷ(-Lqb[?)Vu 4iz7,MY$`/ aXW)Yrs>h0aޭW{vt`EÜ;B C` yI,;Ը5a9$$Tի(gV~oY?PnuIU+5ONȉ NR,j&tOL4 e 7}_zF2e쉌m L \̴!= br 1bf I7 L ̠G"؀gfҟ˷&S D#VZO} g-(p!b6~Yp%E8L.ߪt,g~r/5'CflN63%v 6ޖDR|N+#Oa*(+[h\;%V*_VTY-m+>:v~W [juXZ{!&w&G~E;|'L9uf_˵s1//:g|*ڢuZ3 jGD[G F/m64 /5.᜴T*k`25 ˽3շKD'q5O-@A-b,cn2Gocc~DNI\Am;irW?}91<7? "ֵPؿ`*PK89j:t>e1&J^%Ct@%V$7,EDŽ !Pl GnOJ%8b3L8NQ^<5~26s*KkS4U6c6Hix9>0YP|0z@O]^|"?'$u?q6)Jq 1bV`\ f-UtAJf"S,W'7UPp9`O^@MB[rv*]ߔ{dz+qg%JuL@r]{vg\MbxQnz9G;Oݓ:zY=m\cDRb?zv[::Ϲ{l-8Cu<ε"L%]kI%)yتݼ&*YʭTĨVQRqTGkQ1q|X A7΄Z#y6\5vfv7mw cxo QU(䁡&Vs>|;\1^&Zc*;<~]UGgd39> Hߣ/& :bꔨɖڂHSbD \*yު3wj B1Zf u>ɱq:Y4<4wߥ "wSsvp<+4$O9!c>k#Q!`JA-D+6y!m0qxE^l:jG)ЗrO79f4붮10пnMH23PJ,9,N=^weW}CtyqKc].YOж8:c,ħ=e t*`l&5\o_7/0 Y_hEZs}8p)!q ҜB]Qأ^{r$@uxB%d.]MNBDŽzen(uG zƹRxw.Y@_o2kHG _+Ó{=-Ec8kflRk]'Enn2"RbrxIk>[轍j RM,V;Xi^-^SKGG9xa z,Γi4^E:f3Rg4bF #!}pʛU]eA܎;8/( r20``ޔgϪMs^?Nv󔽳TqB;p{9EV?60^) `2 5?*qHy"^Fcš ɺ+xCMsң/N1:YS1jʷQ^s$M:P,0dO:zi b3sP] ~^h^^ɵz`UaGՕdC$ "p^M;́F9r T]ϊ\ƬEFlu)3 -MM#YyhI?E= {8(~ 2]"IJ4ᮎŐ%o-21y+kjF"rL*nY,(SW@rS[d%'tm?<['԰ QJkI3O C, srb˺>af6=B:yYu7,A՚S D40]ں&`ҟ"|np]Ve6.1d $F9$bC_"i,@}÷*s 4Q>5db~{D++, 7htF6??#)|Y])v%VXz`?QC,aXT sY VAz*Pk.06 m(%"6.f"SkDƥ%z̿.xC(.f nʵR\h|U7% A+jCE.tGgDz"=p8 KlW1N b]Q+!ڬ_px,ptIs e=)~h]{J3@FU5QxE>8Ux1ΛiN=aTP}"t=8FFK5tRd׹s[վ tҲj&c+|A/:o;!& 1lYuyE)B[_() Tr\­Ph_Uc4p }e>[SJ V[fd4"V&]V[BTD#)^1`1gN 6c 8"9\g8mطkIZ2!}&*io!ohꔞU'nM4֑$hZ8]iUc)5p#JDp7ͱ%xQT4f"/"cWrWo$4.N3q՝b+j*c'c9Žot~tWaqGU/\=9t$Q/ҥg|k-kXbA78-^ql4ck!j_I c>ռXy#ZpZ1RHR%|֟F䈗; \7y@"-Zh  oJԎiIHA!º2/{/1w|ў/Zx!EX6IT\G\234 WrSxͭn€8[dChy cCwi%sĚİ<AX_g(K,~;V3"`Nݺ_o6v"?:B$)({VJ%v:h>k@el(c#'Z4[ Ǝkܰ(b[\[y׆h?taP" JDR]۔d5x vNq({M7 ^?3ʠ3h7aדٹ Htdur$,LشXSь`~74=`4~ .#p\=ŸԮ?FEK-< СuΨIi$sl\7*P n4zv+8[Bhclxc{qu;l0{ vL(hH; V\eXo[@9k~x B,GSӓlob?0A,I~iBjȎ/ -#3$ &{&2?J _Vo_1 ٗ?υje5Q(c)g(-#~Ϧ eRv"jNqM GhSڔ}F* Z־* 1D :wfKh(0aXj*%K/lnr1 V/Vk!zBR.[-\V5Y"1PB+C4kF^͢}\7=(yǾ8y% 2[rYU$yn!!~eNe V:bfSC= U"BIPT1nUmY-QD;H2Zà+,ar;U&& Di>>@8겻^ujOyrɶ`݃'%׈bm u&=ƾg uZ*Yid$=ľ΢V=i`UM,Os_ƚxv>`؅>`CgAxx0j"CRҰ$V ' /7+t'g.lTIYкB\p[Ѱ/2Vů_#rFJ1!#*y[i\'7hM.@NC(jRmd(ǜwПW\~-Ϳi6J ƽ _3Z9ah?.ǶXD.~Bm5I%,2tE/pB]ʖ~r+E1G[R9d!` b#b`2XzIb܇HgZ61EܑT08}SdC;[A~OHC؄"4mdEv:{ԇ0k]E {~TutK n%BmTX|=DCi:M,%-\y{UJ*fNDC-r¼{@cK_1yk,ڶ1ދ&dCȆ1QAC(`baNAPb <0;i9 Ɠ3NʷO0C)vOU@*q`J݇JwXh~7R8( !3 rZ$_m+c+v iZCs_2`z%%]?WƠV=Xqc!xtT=Iw\JU&SACݥK'(sO )zCPj俼XHx{e6 6-NF8GT*2[Zؼ|*Xyp| wWo5+/]RfH*r*eR5+{BIJ !/GxBZP 8H+Da^#>BO;2aJ9[:$އ_LBU{{ `-l >,k=,waߙ({cO95kTϞnZ^9h+6 ^5rҽr,Yo|JP2{k* EY2M ى[zrj;=5 R F ˄.7c v7]~ R1ݕt1_{<"xۮdIYvgX i7^Ze,Q0ԀBaP$]5m*Y WhIsϳ_E^hmLs]\/n_AdVUUy9  IpŠnQA ~̣24|Owip @#__ ^Ub: m<^kʟ5($6x4kDbdM!<ГC-g/oSN9+<}(cpA/x0J|H0g(k"o϶aU.dr)\`qA17(C"yܡ9%@7ɰG9_ 6 :CA8Y|6 '_JoCa ܵuVǺM);٠_eYrc0g9Ĉ\2Z&Bi(lk89{PfVBb j*RhpNޡtytdZ@ډdw&G.!,Bun ƛqeJgdFQS$7n?m_TCY kDʠULKhK|3({m'qDQ 55тGyERT|SϔQLf# ~*>y9ںmnM/;YT6B =1x) /E69?w*`OX6faA]RVzVFdB&k э;'4fyhl[ ! ?fx,imRK@a4n^!d{Z럵u$Ƙ~UQ:WG1B֌5boxjcnG73<+]ш*3v8ͫW ,W":tKJ͚ 0V Z0z1f[;Ӱ>9f٤Mcr+Cpn)1POt nd,H $ui"Bg7n>S(/m@y[}f@wJOV$OuIۀ*%hdN .WI4#bSnC@뾮HTM'Ƅ/GY7l]2Č#9II1Zzo9+zb-mhP* 5r-4z!y3лn;%jR=xA ?‰6K`5AX \f,$H4V  ٓObӃ8P kiL]=ze_4)*~C@3&9l/SzC(6​Q) .örhF7ڸgVn#AY\jݐ3R}yh͖bZމЧ# j^kf!P O|jѷ:9s O35\&AI>=IB^LJ:mIf!ĵ%ҟ!nɈɚ w`X%3`B@1:JU;ϝ!. )6qhS^7NND"|%oiXM|+vaN; T ޤ ~$&"}"~sF0 |Gn"T(66 )$S|=`]S~YsvTb,' Mw ^ѡ;ړCԬLFܻ]kp]\J2uH>h L,8̡8p.HVDI^D}:;Zš*/ H gjAU->Ռ*Яk Ja x3 =t7p8}}Yƈ\kHSx QyܭP@[##?>x>AvwlWeC "xA 1<,IB tŹɍK~ )5smO?mn$𢤂VH:)~>s&]U4o'@@7oFgխOyo;<,Qxn7CF;z`E T#ﳉ?8 -Uߘ^ Dq<XlHOd귆>4mV]vDMpGsmfad|fà& }$ h~Vy"Jsc.H6f@b"A ~[T?N5,aN aC#È%S@'`I$ -6~,?ڠ2 4*˷`& !yE0"v6pر]c0NnoE+3#<f7$x>o&7["딻Sh-zt6ŠeIN&NOr _C/o>Wr ?_ǩ'hzTd͕XfSZsExE/M ֜:V`hxI(F&J.5SP."A f*̿ nN,\;PN^hi3ouBfu@ɽ'զ htd0n7o'Ksr%]hE+Y~yKxޑ#cI!v3gH9qe/N49hr=5&Js I'\<}yB"%{7FfDO}cR;TXpX%0Cj7{60 2yT^"72RUqwRn2CFn2P==i:emЛT# ŪY(X%ڠ!5^R .>4ɁOƎͺ nq:Px}Mb?`D-<](.3o97/Q#T|,QA֧{e(IFN/`_o5= >繥&g4i7kr eh9`J]k11:TEPy߰tD}^i%AV,n6zM(C&3FY*zZ/ݩhoq(FLX gہE[!y.4D!Z3AB=vҩKs~f$[ ˕+ݾ$%`X0*$A6a:&;*DfKgX1iK +dRt^'¥UATEۈ(Anm7: +Y kD?\|B"ցOCu fiaQS|ү7P.o ׮ !O*X.UC-bG++[La6sګq^R2ɂe&`^YIftxbu=/gư}0# 4'2>{?alNAi:e\Fl}39Yr>~9,u^{ cW_`_-h/%9lG4y}q[ilH  EŸ6ViWGrs$UbIW?,dJ M:gP S"]C›\ XOz5ܖ$X!$]Xb\5`K#)t&BXtۆ%;~G|@SC@i֥@7 vރ;_+D)\m,B78^zց%]X@qww C Q+%96nr,uYҽ?^OC+N\w ʈso3M!VfS<~_wY9kd/|~F7yV|sq@G?QɍMrk="}mg)#/x.[Rc1l  !#;ƻE6t*8=W&?}B9B L˭-3a cBfqҩf5 K ԯ6Ўۡ#w%0vY#,̐y'*?2 xBN0lY:=_YSKaC'Y$'cZ%#uHE}Ý 8(^,ZZl'p9Lb[ZZ}OP6b0/ BҋX]+*>| U1\kqek;;Pj6s>l|-F1Fjd8,>>eycՊ"6\K+pT~/f`#)!*WoɣNJl׽MhIl.d.k Y^ζKA?_^\-(9lK7oGmXp1S&Dʤ/9ydZP>um)Ef{ 5Ly癞X -ڍ~T3.FQ)w<8 g?q3,fR//q#F]Zji`Eˈse뼯e>Yyv;'e|mli)=:e:.Y~A+"$yt"9Cmr m (j31~ ;:ȷ[z]/k+pgP4u=s(D$hM qDΑ$D+}[6.w^M*(n7uvKktʦ> k}+AEff*y$>8ME1aܬ8v^ 'K/p^+;9GS R%F4Ze[sWpj̨ESv3qb uˌ2jtzJX9G[套y~DVh7O^drxt5p 0yusCBlPұ!>~]$:iq8&=mޘ˭uJ7nxE ~&wg2ڱG>|#k]wiNHC)6= ͎8O% w:﬽45ee?ݽ!RLY5HĂ2+Yz^mHg%a,] j&rt\ī:_((Ad098)5a}.]Ȓ4^ FKœj#mq WZ2h:"8|?z?.Of5~&Xq$FPgP&ҹ8ie7%Tpj T F(È=9i<0/l VBAE.U^t(_,oDPrۦi@u:qH=$zkqf"[7kRuRc"0~lX*vإ,F?e{!\t~߅prI}$6j 0/v6 ";Y @0T1ZӾ<@sD^^]:5pr?`ǁWnr i.[&t$M{+!?A_ f+E%3\ә>$F$@%rn9[G 3y62c0A-@ M^zYA}ȮevE\&:j$evC󐆇aC}[ϫ"]ݵ_Ď'BmOD$C Mw 8_l{sJJ׫$@wk+_]wYy~a{=b_Hm|=+!$uY:w~=R[㴥4DR`W}ƓۙnDZ΃t4 [ xsgRˏBKOlTj\<_S9 \'RG907LGʯ,w1]9C&C€|1 \j*6PVKmt2wR+giӸClmc?^e#D6SReB)łKGS\q ېy<)aEԵ|Ҹ\W1\P4E+ѓc$SBo;٬?6r)eiEk1mLzL< =$%RhўLjz)7GnEF5GdWd}тexfP )`ѹneZ*p?K1NjqoW]2@0xcyV6wEp2 i=g.@]n]lpGx čL]h%X ^r.@&u64߷ٝ\5χ$vHKvZhy}/O΍>jih 7,qv|ϳAD"w:ZCwĻH9.rמ<bz_WL Hiڧ6CufeSntA ݎR=dm&1@p-M j\DM=s D ;CveP"b7bsg'[$ l8 GQ# xݿ1|2€s*#v7+漨Å^YT[3kwfL7:6O0VNX]]w.SN 2{60,ޮhI# Vq|l 8( pm3yI8o)xdkO::Vޚ[\pEږ'"%N&wJu6)D0R%0㩷K5#o#>VyMbhsIMsaKȋ"#P+ 5gʔrT5 ҍB!IӞ{ t6!֏@I{WY,2to+РP(a0뚼ZV1!j\l$  Tr "m\$p00H'hQ_b]W'T "SfkVҒhdI8 ߜR8 ݀w,pO5P_{|םz2uY=&lJ }GPSbLy UʜKq' (U ޮj D`5Bh3 0XMN|r=Jq;4M\ÃwVNV菶 Ѧ$؟G2GB^yX*]IڳẑKkiHk|"O6},> %h$6 AR)y.l.ɢ} 2w%B];(ܤ 9yJnꮂMwwL@P*pP;n-[F56lC/!:%E B:(97*\R [&3 jÀÕhCsE^!P`wֺ/ݺ ʯGڴ`wCr`!idPNBqN4TE+i\!aO%LìPQFNTcZ#9xf= hmqğ01S?A&aED pd&ͪ&i`*|+M@//}b%~44=hQg` [!*;Z+ X8IPX K8%M MIx;EKn06 M`eVqɁ'u mb ꦄ1pLͲf;¼n\-4 N2NrSn}fhcEHw vbP^ ("+K2%v~!;@=iI];Hҁ#)#YpB*PK?.6'# Q좳CF|,j*?[ϳB^>55x'7ٮ|&iE -ߣ)@*~gvU0bsb ?CGv<=k ]E?s0Nq.ji' $TfJ҄& sd^-+o♲m?8aUҕ /p> iX0z1 DWZr8/.: rob]]^(u 5K.Uxy;D%zP>ʤ u2ޞYYK$I'aTOTC{ 9!^U'f-݌@$ʊʕV3\_0󉬱U) :̦)p@f;RtۛIPNP@ oXUFqYySkm*g \Y5{= ROFU`J}zc;7vOs)E6R?cvjxsK(5{dOO9c^cw 3tGN˹|ML*;{V\czヵ`fj6`GPbQ=+6_ =THnv! '9k-k}ؐvbΟ2OiO44W'c]Hnb$T4MsP,+e uRDi+AOFul4/c2 O͠4֝(I.U73ۏlYBlʼn*wY7#2E{º?Hؽh+rR,+DIr=0pįjЖ5$ϑ[m o̖ɣMLڔ,pT䱩fcUޞ#K376:kTqU!kiSR{!u>?Xui}n[+&YVҵ\ ;p҉NMXTV0T#rE zsTn&CM_?)]ߗ]-}`hEZd^&󩒙<v5zi' 6 qnfh0>>r98c{k]1YW 9A8xsTa.*R%۪N} ENe֣B m;\uߟ9On4X썱(yOokx9c|1Qa^,A'R VD{nxhXfJ v 퇤"+Rc]K:SWإ>U28K5~Q u9SKB.tкw:G.N8kAg&!m}hpY-3|#R5˸2hɝL2P1#g1iQ(Sa; Ξ+??q_@89=Df,wxa`uQ<8Wǯ$"ƙD %7r$-cp;McJduMrRwU9/yKS4 [ahj::@N SYOLm ƅZBAK_Xԃ["b;QADs#y4ƾl2vEZT&o1cZU`YTQf ^!l.ʋ T Xttix[Qm 5ϻݛ9+⾠OK6iKNX\)5IBѯ3M2g6& $R^I{>p^I-(O>Mywˡ^DQ<ҳ$UFhƥq0HRUj= er)+3%Yڢvw XJ3o↳vIkH:,{Q(r. &A)hb#pz[BoD|0]6{#d{c]„,G'ׄ27adddϟn-&E**oÆMx}ZURL$ @iYΔs|ZT1⫤۶ xOS®q.DoSx&њ Z(Z{6m ȚTX$COuEBkr/ݱ88+4 s"bnQ/=)l2()LI;eOoׇ3_R+h4Ď+P<$E w_j+B(/k\Y_DUd:Sc+#} ss҈-"-Wՙ *9ygxeHPNd EĬRd&<  $3N6קt9mr1|C.u*Z "rPxzEx/߫? !I@Η}qǢL^7~Hp(9h2Pvisyw[O hǛ"a6d*/\u\Hc<fQצQT(Q39!=6@x rS'aAOԕWQ#p X, <킆V-Ũ(Evpi }um鳿a7Gw 2$vsmy&hcչDl O`hG enxS]"'l$) RU]'d<LZ=J<_!kL3z?*2(:EʬQOM'^Դ8>.{[6U[:A.1FQM @cz٥\allaffzp4;Mi(F2!t%-0{ -adb/fxNeoǺje'\pb A ce| neԼ9\B=P$,z*O$`j_qɠB"=SLTP (w&_bUmG{9y-xiZ8lJέŦWlGr&b'~L?n Bp/[P)]DUH Г @~Y';K]JZ˦'&@ЭL(B\* W5qؗ DZ;c휘XHY??ᇽouo;yH%e)w})} !n'sVLR-$p^`gOBP>/Eua]ld.uʭb~(E4?¡]aSO9v:avVwAH$V`!eL[yJW\Fn7x팅rX(+t? eUɎ+fۊ5f җsLW H7Ѷ V.VvJ*5Wr vZι{i[|Gm[;w('GPI1tw`HÆe$onr 9lk3oa\ė4D ]w)q/1jnw&a FD%,n a)ֹO7ا8w<_#Y';4uŊ^Ҍ3f-loufNwt.?Kl)L]\QlTJ,)Z5 snG:\`T( 3 &#p UZTry,6"G8~\M2~F3tG,ۆ0ۗ%[ջP* ?tjL,jT #QbU`Z]h\5"s׏J~o3Ɇ@:ww;DgP9H_e 8H/^m8?ơju@>jy{=zؔa뛺h0H֚yŰIj,Qd-O`Pkh7ļܩ;G?iʂgW'$qM*#M-mt!USG\ݐ 3Kfo86sc*&1fcH<-Ȯ51Tc1K 9rO cVhD4[>DɥsKDC. t \҇%)'Ifz(qĚ6 ʫ) #3WL%411m`5̓fC5ƕgCT} k[=‡QbGK,Er]԰x!b|͟(k4\g=K_No"R`ɇ ~fe0Ƞ:旬Lcެ:t[.0L$%̜F֎$*|C0L1OY dG+X" FDOG2ߣ뒒Sz[TB /&qp KY*ڏ /`-^Ek5' .(^!˜((OUИ]>. jĆbd&fQ6wI% /]|֘9pq՚N\l`&- qh,\AKHOٍ(m@}FFNWOU,2^nP jՏX^?۰K#SoKbƶJJQ_h*l"dnmTlhĄd92]j;Ӑ"^W|F<:#q-T䟖'-XQAcOgk@izzwʉpsեⅺQ{iUف $rJ %Qg5Qƫߥo-QPw RH3$9;, I#@bGh=Ps U_rmN9{oz~7mR>Y,.[ڻ]7Or85m<ږ txDetӶ 0vLp䚦VXpZZ({_8- *W~j΁#^`siO>`1xv'@|ڴ!|tq|I6.5ocPfp_ժ~c쯖hU?SZQΕ6+n3H"r_5*ø`6"_"+o*SÑʲj\{#f(u\f?~Y+Y)k  I_@7)pP<][&ejtsn@sgJ wmQMCO'5fp;n2,bahS?Lm8[DB vx)=m}@{h7h*{0r69,FYn,3h/WlY,O/b7ʩc+EVE[V7ܬGAB3ꇦƌ"WpHΒe8 .^c%;!N">~ܗ}+5aZMj1S 0Y(;9 I1 KˤEk2 Mk+TiI" 4͖b~tV?I<6ʀmL&–G(<1F|a| א,:K:ي Tv3=wS?>:!%†S)%|9.;{0_w!QTTZ7O2bc, N T}Yr)0 xsw?gmyOIVBGNMcϙK28rl^+9)`Klx" H4CvO8ȱާň\'r|߽z嚅XC3`)k-(c_ѹuK^E1YH ݜU>I輴;C)ELg@"  #&P()B8†{{q-; ׵xЪYӪS %v FW@6~Se@4U.e8[.[Kq _ Ht n2 ?Z~Чohr[J9ݜL;O=Scv:o7K:b{_%~‹M]L'!DB1j|c2LPJEӞޔU˿)ᗣxLYXjJ F~ `L0Ƚ=4|H?G!Bw%<,g༛sKEGgGVuO24w؟ '\%(b9nh&1{uBO3i(!qouw7x!\qf9 eZޥ 6;@.HWzA](^yqjYEi[/1C6h]텉5T[Gd4q¨M~`6>ݜ V{NJ0rzkƳh 3vVN8-Ivc<=٫ U:@z~nz3,f`M+j]/`71wh5!EN.q!GޱS!]@ӻWH䲚|j$zyY(N5KVʺ-*kZLxp$!\ lGw1[={WVAe)2?UaHa~él! vXO lj{l#cAƒ5 N2&|ݢ\,?V.3Md>^-?}+f \v !xrBG$VIolgBAkS*O\yPCYP;]zJ~ADR>E0e5v\s3&7bA[n >J۝|1qދo >sc5ZѲ6jۡi Yz%N%KЇ_NH&N8ȮpHɗ*UJ]σnjehM-"Tlu:ʭ74S."?Q&z>\ U/E+))Xue ǟf(o!/zT[v_ "o&GqU hυՅ0o!DLŶ;SÏݳj9q0 ߣ'B4R|*.22un^[5l -+"LƂZh)(͜v#`!2C1?C]rLBosͤ (ч@y0XsN1@c&w?zUՁ=P͕NG)/Afg54#ց`]>LU"<3c3̝_;e_y \YQ-3Ӻ/W)cڅ[ +]2T&oK(n{ $rgBS.8rRGUA_ޘrE*nB(G Ǘ,詚[bbi3N-\\v'DLq^jz(PY ],V{'^T&aƭ?Ѯ[Z;nz`{yKS~М%ԩi884FGiijsҮO ɮҁ`K\Ѭ tq1=و8,pًGG:B[H95 N\/ ,Oҕj7vy dU:f9hbcZPXg;6~7 zFr,*ſJ!(׮[S$J{ EY]N/]߅9C1?=oin4#.t$HtD? ]&`Ω %/ u0tTh]|DoHYYd&U+'Ɩ$3Oz|urϞ stY|׆ާp^toZ3Kx*)"pϸx]N qG{n[y|V D+AV·@j:e T NE. B$nPCtlp>|QnNfAcjњl*%=*u?H>zWwl{ay,_7E݉tCŔUrW+X nU9qaJYȌR\ve^7z~䙳;֭d|B)^ٓ?Vkΰ>Rh;=qZ;-sMʗ+gR|^1PomO:.Un{Sn_" `?1|@xzBLmC>Xx.tDeh)TX}pA5/_R<%:<0kU޲&%]IKD!²޶mUυR5]P;+戤e~NkZw% CBoqh8>%`'`'Y \i[Ʀ{"9,L;"q]O!e`d}49-9 T)O".; uJN;0,%E!:~靥ZGwp /!tӑnPM8ㅃu'#ӎ2a<33ו*s*W鼲l?u[QX E Q~hȹP$E`DX; 'x4僐IV@Epb?1.^L1!?…Gjj^{T1ir?f3h_?[*LD2P %Çhdi єpuxa/)(m{[ (Ijܰىڑi\dKC/}3Q$ VOᩣMMsg%VB`>¡m\3sae|hdEFYyx‹aP8)1!ܟ98ᙧ.< C\{.Q@,4ħe]J)>Es{{Rm+u?H37&J7Z#R?f$!$]Nde,T%=Z^[>:""\xӲ;򻲛Hw s]t}c.ėI79hUūX %&Z3G՗+ftC< g9@=Nc:M-'dCdTuzw"*j~?X}_ IU$߃;8nb''V xyW, !K$}r#ҼZrQ_XTv-F^Jy% \ЦnW3K\'~ѬvU,I(A9E ,~4f0){DA?om5LUUWY( 5#_#Xn,!=NwpO-L 1͏#0 邸6gbY[h'J2T}R:ɜxUvu.£z&ZNAXcHm:+#9ܑ_lW{b`UK49_(-곣tﺖAHGL#~,mk4~L F*^ġ&>`_C8߀ xS$$KKm> <ڳlSZM91/\l ZY.ׯe>@NJ=e&/?Zʬ{Iٮ;YXZM\"Tg2o2UAyn[$2ObBrWb$$D )6JG" RH%ފ%4 0B$C0GLU S\DW.K~Dfe_kw_~O UL.Ӳ&wFZOPe òkR12Un*lO o: R֊TgqxV=iwRXzsV/D^dBV04漓}5}t);!F %#7!DzLt >ORmfh8,HiFo0<.hw%22W./O9ѯ5D>9eI9|AQLo!Һ%ղ4+@5&lVOLyT܃=b4T Kٜ!u+-8ʔ>R"@!]+H \ \< N ;#2`Zj_ɟ9zKo, 93bB P &'|AhA^*Vj+<.үc:{bzi͠Qvcdam@PjeoS?J">(GbԲʗKdfϘ0%ZҨmԀ^TgT4ptUWQ 4=hI`@/e`&{)U`]<{[%Q1jbmn̋U_^GҴTbQY-F*fW2#(9J!nd-uhP |l+Rtd Ftoò#Ч (n1Dᨴn"rh3+Q=XonfV㙹)bf9ҭPBo)'+m@\ rKhʟVaK8iʨ ͅ=Kqͭr}YmbKd6RP](9rwF[)A)$\c(]-0e:ci2<6`9GL=Q:\t%W ^5.w$>H q~wݔk(NCCۋ+vv4/Gom _<g:-Ż@>G9t8uWP !KI8".sHea%ъ&MuGO 8|Hrdv,ƙ]%>! c8# Fp@d+hHr8;>07^Vw`z; qed'k3ŒU)48.y˷}&brq9Z؇ D #/v@z쇂5}/46550$*!/| /DБm_uwZ,fטb "+ +N-\|ewU2 w눎C+!VCڣNh$a<.i6#}PEP.@99kݢ5Y-70e!~iX-_ǔ 4 N5t*W~Xb_5O_ցBO{QC1%&dM@Uh\s ݣ6Ka o^*XP?aNд@1.%1r"Uf T4r@,%;[Й=vb1lW&7sH*…zՐW9`'/42{VM^Y9%c68>E]}ׯ郗tWTjJ*vSw0m|miFPorWdMxC>FG !3*0 Btp<_2y_CL5x%yɓ_@f|/Lǧ4n?vIG0a\ΛHrTMnO5t4ʭC+]HVPCS!2{1Hm ֐SW>@4 keV/S/D޷(:΀<~Jp>~LM9}mM!'׳寊.ǰzH.ym\5fנB Pɩ @sܡ(=!YԺ $+;qI3k{%)kroS|lun=m#ޥKiwRr,LBGBL mI(\69ǣ(,z-9_|`7"#5i(r_Mb3{I+#ᜓ:R(񀻿*_Qqq"jq/\ǎ$Xe8`=2Z e@` ra5$.)=N߉37Qv̈́-:S8=}aj{AU ̰v|a=t+ξԗxTKq%kKJ#= YP~⫣=:r\ʱ㔊A O~( ^LRޓo+PL[R>8$( T 4C>k,K)jOe-KG!ۚPaMa*R2 GL#Tr%J$8XH]{yEO%wI { F:ml̖և[D$U?M4ҙF*>WZpp(mfW- 4sG4SzrP Džq-]s'Xפ?*NrINDžyAu2ޣ}2Ebͭ3tM,4jb'_M*snë[fb^s%|Qfb"NR,ZQzh&Lrht$X T&QCM4iP/W/|?Mqp 6h*kܗ/HPG<?p;GUξ"W[Ò^l]-$y3$q*`+0uKdj씲-Cb ofZF_d۔i[4 *<1CXR㔒G XQ_6Z2{!c9͌{.ݞ] |AMFԮkuӗz1+KTFפEگq*-%҆U?Ful!@<5@_/0beNq-T>@iu} J1 p,W<fJBWRmuFR6+<=}sǩ Hߢb?} 'Ƴwu^/Z+DͿ8Y^tb6le-Dm[ Y%Oh).EOߥXCB-faaw8M=E'Z]uniRhnc#cRǧyp@vA=;u-5&XSZU}b9 \a+TH˝SVa?K{ $ZǷ~+8 ǖ:MЫ=yfydqbM.;pS-+dhOd! Y9D__x΢lC>g֌M[ Yx>%PF *FfRڠeXw"B#mHHhާrf7؀^S(}ҳFGvϟzOovZ+gp=" ,mrVl]' qT Hꠌ_W\g:(Vf6`>w xJs{ :|'G/P{qTo`+ Le|$@c\Dyʰ-Yd{do~KMK iɵc$ik3Vpԥ|Gx[+I@UE0k2TD{m,=hJ? ORz*a7l0ch=lTMp [DA-QSm!Č噆THωMy㧥 =9k⇴ &/oL{s#wࣗ^N1Nq G#3S<<1^M}];>1웏|K%VtE)'>.8xiA(d=v<3Dn𗪦r1hu+7Ԋ8JA?av~o- |lA`>vp{?&2-&OVel '\~!Ɵl1I}^tOmrMlm$%T[C kѲ=q6;(ϫ,XY[RaWnjFN[̺( $'iU*^!J~[fiIogU'+e3:~>{%j(/2f wD9)}Yj+=۠ICB^Y/Ik ~{1R<Ɏ(լV(d<[Okh{mLx'D(&wp؛LnA#2/.^,lEb)hQ%Z6JE@%LBL)T߅Mj'?4YދH {zzS9NbDo~B9G5Qˊ ǔ6$crgqH>^j]"#X2cƝ"2(+fJEc؛M[ ИK3Ea ZdIJZhÅTy`J_?Db,dlƮD>g]gY ԊYDĭ՗LlBy }t2V#!ơSKH#ǒԑ);7S6(0tW.f 靂Z,w̖r^vnl;a"/iׄ{;!jadA?Tأ"$G_ S)&t)i]ۈu^63r9:ӈYgBf_Lp g=Ϲµ?䬠 my{BAK,_+]V ]9Q x{5 %BxG3pNW'x\w]břG ahnHGȜMH'_%x\u 76Cp{\fy!L%(GS @$U:38.m8φ ;(\ua`WgMsQ׆kW}`0As7Pn16;ĦK\uew Pu% rMt|盲G}Fg7s@`"i–^% &|$7%ƝWʘ;0̐Q3Hh.=m 2?pj8.sn@2hkP#p Ԉ2[r,Z><3=^%Wh ]zִ?L2( ڊD&(#5`8qjseb y4.v'KT gIoyk(!ZZ%zplM0":a*|rqE{_`n48{-4 fe_=P_˸{ 1\ފP2$Og/#vΚ,lR{0Q_mqGX%r*Ҍl -G'uMN~PP_` ]%?7IHS Z7\W ) )į1.A{Җ W$} 5PZsۣȩxn,a9*khԙ\"-D?cFv{klEb f= υðCv< HLvV5[sY'w[x2q<"|W:n;̾˴-hew4 W=k%7s$cȀG/XB*2g _H; }>O~MS[%X,q3kp ^A$VFXfǨAqw3'85 *padQѻSs<0{Fy("!а$_ӳn\(Vee͖U$k,[IG-^>F}Ed/!dfZrRʣjA Z#m}/uA,U?C ʔ"K?]*E=8!~;q'Cm;V~t{ڂ73dz kĕ iP Z!A :Qr ~tf&/zr]u?:]TU[ E?rXy462>+9n%)PD1j%uqlצ. v&>;vn_h:6I)޼#n-r6 DҐ'@1 72)}r2O' +0 GψgT)Ӽ˂o#~iĿ)Ҹ[BRH_0Yaҥ9lD Qr^pbtntT{ {8dd8 " ^1Ђ`0mCdhtb|Gn>lci!h_ʐo<->*S`m9 GV >IYl3NX9c |3̸%>/KfىeVf(Rg4gZaa,[Se|rll嫀x=gX$a;}kp(ɷ@> j=E0;aaEd:؎8r>aEQ+9+n`ۏq ż .|uF.>ڑG9p 9(i?dp ܾ5z#ǩ=?}I<䈕}u3mlx+2]UMA$Lu]k)~%gR((}EnJ||Y̼lѤJ)J[w=jWÅOExhBҠF1_&^R[ү\q= n91ߍ,1si0&lGM!3vFd!]\X-ʻՋ<ƻ߬̌68qy4:k.uB{Bi =f_QPΌSюJcMhd$djN V*ح l9o7c|r֥ܗ '`sJcct[7iK[LGRxڕx+22F b&Jē F*mrŻpYH\ܤM5U e8S5M;MBOèO8JJZ旃y1&sZ; \U0",lu8(n-އa/BEvjgWA0‎!UrLݖɴBL;֞SM3n_ROcɁiu4A Jtǝ00^6+-BW*MP_#Ȭ/6+;%iFqJG cp`VEչ68QNvC{&9P<]r-N] _O2'Oaޠyp߭顯gZﺂV b źw/C0ܞ"ӫ)-9a.䭟RDcq?:^ӿ;[vеveD<C4\ѐ$T8NDRT.i\dsc>jZ"mNcʏP ҏ_4[,u e Fq #%r!݂ VE5%G.R#oT4gBY B˱*Qb#tw7h` -&qpcd %Mu5-XѽOn6യ: >}v8P\_$y^hZWL<+i2ѹ-lMmnULGݐ;tp TB,~qm71-A7'og`55߳U杀cZHT ~nzf~p0d7FZhCtԦ`Z ynna$K,3h͘.'X@tNWgk/ĆJD<Ū2ړb@rV+e-d7/AkmAh9%~$z'S&Q_=ըYCLekߛl4BUDK ٞC~(z")EoF/'u~ID?b!8pӶ(Uzy8hGyKTAA!ŻhQ-20:%ٔ_\{ϼ3Na\ AfI(R_#z2!C2|?W2Q`7{Tvtt4_)ˁGKpT Wn@3`[Vb) ,dO:`F3^N_@9D~pLh4GQ5(>ZA;:JEIu# j `q۳H9|=hO4y`Ȱ EwOu_O:ҹIJ^N\R/T[YMxvBבC ddh_~d{W;"ڱ3ިQyI/6 /B8/FNd$@&j"NJ >j0nS>%g{AN܎fb_jm8͋b wB~M4+*j!EgA5zle\ب@C 9cM",P pң/&-F{M "so߱P,V><, h&` 24nJ~n$[#%Wzқʴ |@p VpYmX.z:$^.~tL2NSg',vIОan"B:d CTmȪB羌AnrRƧIjOu-!آAɓ9TNeJҖdB̜_h(wH$Pg"CBb *Ji?3E9 ˯ue8*)Rd C7Q+pfD]+@t; {qڒ-&D\o/yz4í.ƔbG͘gy<{2f\$a/Kd1ZxFs^QTz76v;d E-ӾP=(߹c " I_t9*f緶K@͏4XRLp:ʮ^AFyyy?V?_y WU e7ejlQm2F +ɟ;Vn~6tzO%p[io"7^{7F, [5%|胫(9[oѱ!0fGA?xGb{UDȍ^WyNQ9_)Z_;PzXWg[uH*Fl1|T?%sbO>DO~~| !w9ad܉۰URyB,O;f7nP}ഈ}k8i9փ9~.0ҫKSvUQy}[*:Yvu=s#)FVޛɷFdGb< !oߍ'1Ƈ֣JBx$췿7:D7^ _, fo?G#/j)U%H JxN/K//xmL4bUvHȚpTLU0B@ bϕIAoc "RMPOv-EW[_kC1E$L˞,JR3cJTt$/ZY̶g u 0G] Gmm{`\rvz*oBiIC7_|>L}p,λiqrJ K$ËH&+'fjKH9 a(43 0 F6u`-s{N]@xSɿʺ\XX  %2~`ؙKJq*<\PtI vh̓w9QI^_@1 }T0ՋFpTL7qWi(R?ELp *{N}y! CsսF/M*[EPmt,vI'+BO{4a0m=\ToY(3ۣQExU5hݒ$cUVWPza,ከh'쎓?ѦaO o’^f%j+S~mQsQC]m*\ݤ><_2& '[rZ "K6d!r>V5mшo1۵U" G/^|q{Rn耗D!ዊL):Tx"ߩ->.Q(x!V[dI|!+o#Š;X>y4ϭ#n=5[Qj%ش .Ԧ|$вZ?di(|teGyE~h ]gB $f ï Fn0>V d!4o?%0} B]HEXfB$qZ(87n|<ipBB+nï0o4  f|Ts&պZYL8A5()B e`'^`XǢmM}|ND#hp3?Xٓ)V|_li/院D xJs bM%‹u<) #5\57 $eؕA3^P}5ߡ_P)g9b8o 5 NM|0cG!@OLC3SFN7 b5A SU VQV]%ܼpL{z OSͩh0m)+$d'S0<إc Pg+4 uyOZ遠9p^m'8 ԒwBr:CPw>^&[Ao}5~K9D?<}k\.) GKܶoda+K l%[lfUMDwmA2LeYEv Ty1.Ojsiqx7n,z 2A9|wVO;,\lc,a& $8j7 psjrUicg V' ݆8܃ 9}Z1ٺrB`47z8]0a-pZ{DR:q04gYe-2FÍMєy,>b_|3qg[(X9*- 6b'oQd[io_q!k,i2#&n<ʕ-2L"DCUܸ)eQMQ9lǹAꦓj~OJW}:h(q,-Ubӽ#azv݊ɣCxF@]* 25H-1 4WnD (bԙׯm'd p3"-OA_ՇzL%q9QÍZ)QF0?!K9ͪeOAIuծGpӱarR/yY= (22,fTv ;`Hԙ[e@5X f]P7r^S ػA SPZ ӛ"L:85P`<*o\1cW7L\+ Cy̜1CWNTjߗ))q5bsw8.ck0=)&?!3g<2RucC=[uPI9J-p -Tb+A5ۑ l&h#?b(h^4`,\H9- T+ q!HVm/S|.3>~ՊgpҔu&ى@%2Ӌ "WU{r~.镃diYUrs2Muo5?(@ ;E._,)7ounsz$u7}%Y%:Ϯ a|QSÛ?+ 9ϹoTsNMl.SbꊖF pH4 "[D`)-XOڞlDUSrq^pbO^ ~PϠC$}egd{} lp Ͻw,8L:cPFظ˘⏨Y%0ca%( .Ђ;X W'k1δ-l mWHHRd^`q1PF?`*p3iz`0B, `oUhp7ᨋJܧTQMc=>HW-m8L!N/QYM'HNV:OigXhSwlҋ/m Uv!AjІhgKw3M_SVU]EҸ &µwHAUʫ=V:Ӹ;)tQio4՜H),N,WƅXL]a'$Ϧ@[!FPu:< HpCt.&5uMfH_\hnD:VC+"\&2hD}')wG 6YsUqRT^ٮ))0nbv\mWB7Ԥ s7'-dߒB:pHe翓hcѳ{rI4t$`pt6$yDks[gQ^ddXS)׎F ~ᬿ0 -&ΐ7,$=ɸ5)Ο_FAV'{3]PG3Ե/5 H5U?h4i[Ϩh\TAaR/t)ԋ+ULlNR)bHGB?˒L[UƩ7Gv[˸3#cԭ"K &LugWʤJ=F)W '-gח_9m։LTI꾈cOKlcגtV 1#ʏ!*fTN;[zo%򨽨2X>V@+`]cO"_Kr %IXL?A[W0}SyMa@a}  y~P`-gύ]̡bw}?9]]ϻ$ϧQzEN$̗¨Ig(wJg}4 B}vf4D.xC;` Ef ;͆+2[9oE2*chD%%Ƥ$H.W0x:9+/=xk25f_c ^q7ETT"K6 35dTPjKCz؈.6NO;ȫL"af%`*)rn%!9bcxD܍ Gi 8BX!UL:]=] v˚ŏPZ@ kcY\II SfҕUY"Qi,D.럹P`:Fwj l\`Nq/fH)vKGQpr/Mԟv,CN")۽}܇h|+\ ]:Qb "ՒyQ>URZd"է؝,Ïy0*0w퍞ĄNQ\DHV|gw6TJ'*u V %dKh佖mHw ֨C qMΉȮK xfHwǔgҖY+Mx\1uM v9Qxɛ#؞ wa`Xw{kmQD0< Tѽ Sq-a/s⩝ yFaL]87ubߗo+:U@.c@ã^.Nsg }90Fn =Da8b-O*%Ƿ*h:_k/.98츱J VDF:4J[+158A9ĀdiknnNq4CW%M@k"zVm32WHWU᱈lXj0 zӛv%܅ 򽑉9/}JQTN~ %q_wm RXd#T kGn(<&Mm9xX֍4&ŀo/jԎ? Yp%A!q0|#vM(TW\']Sc3ό95 7}Mb!4#g N"&f 3Iۊǖwa.Y# J$s|v[ rs8ژȍF#Pr@#əg%$oa1%>אPѦWqJ<%l.GtUr|Պ2pʵҔbq>8p'|lXސn*KUB7 zHUwq5.G/@=8Ѝ.*$LoIG5؜fyQR(,oxWBhĥcX/&\V2>Aj5mڕzOaM5ԕLOMhxt(L>cLm3 ~/B? WM3kR[g35`tt,ߏ,A%J) RȢZږ }т}#u "VUq\in9]A;,wt/ͷ>4v]H R{Ϝlu2xBmROа oS6>u1NGߟKGGI~x Gn5Iy#Dԇ>0=qc4|vQ*{AZqL>K7' T.*h;;8ri>,=q[&}KV#6g'>[[).6wkFШLElPߥك Z"6`$\ҎSz! ^i~y'!50/Ʈ']Y iXZ?sin^ ~hXff?rq\cڝ +_I~eX ISY~6ctti 'VsPfoU<Uk*RěM[mg!~nu@‚mEweL_oe&~vdyMs uHs3xeN`SQΎ`{cOT\pVqrr󻍂--`r0i;{z)o@X^5Xn#0kyaw#b`=S7/edO]ޏm)G8|ɞCxTSrxpE|bZ/*SWzHsJ:e $rhg{^y+:w?gNSFv!@#MxsDrw}:v|{tԈ1ERؚ+>SPN,Rf Q>lSMA% TZT%As>_2T-˖rَEfu ,PIYzDC:<|\${ڣ), c3>5}29vg]ͽY7 'R:{bPWN[^!BTM(@7 Y5tACmVL%_zF=;"GAVU "(d7*?Yђg He`xFlN(vG"& (UC{URn-LL8 ( wCgp%ÌSl=JWc8T`g7ɽ @fpr&qaUxT79 sKvx!'U=%R0ž^CJRLP9[Q1kG[H~K|ο2k >Q ".m=偪kzz8EH~Xbhq;w9(Gߜ=xMw@_^4wE29C$8ڲM MmΥI/,P(jqWrV/ usjxE>X=7-R i cuZ_ yz-1o`%ČeH8ˆZιkL54Ox@!0CH$:|܇d4 `o*(S8AY5e(0ևmI6i}ةL2B+y^#3 f$tE2O4qU?Mn!u~F<#p6\7LX`c#n#4yF4#[}Խ6˦!pH1N;++v_" ^!ưԉph [ۼ6G!D 1aŒW2S&2KZ|u-*Mt]H{fʊ ǶiV‹ixFY@/ :5ף| 28NAա2$KC؎p15gx5$P(J'8A%DXa. V/Tc|bV=~@6z}m‹XNt\п(1f}Ӊʕ'IE*qn#'Fj-H[{|ov6xПkKTl {T":Ajv[MV>0p[Ў%uM~nmr*n$6 S`|俫F$Q] rQh5u>0; vYM3񟮋uX;:bYƅTJiK4$u(eCjd„tШ;S;WpE(DwpVnvt#/Z"œ-< M*Srgљ—_LđgdrAG"qx+ê|e)X{ȉ;?L·w &m}\۸ !α;~aa|\͆~Y9(Fߣr Ea7C*cL؉{ɼtɛe \?kk>-q3'ȭ|l*vyXڡ$ Ť+ q$83or-ނO/8e}oh&l$Kl/] }۝u0GFu԰ _T,tn$!tOoRڊY뺎;~M߼)x(v3y_fs"_twZ%Kmxb4%? 9w;Bv5Vs[Fq*Tu&'Z_l0 Y2:Z<# zqq%xܵ{ 'qɧl5 S 1ShX9۬2iĒpB ^i; b,pdZm}h GJ+w64zBUZN8 Sr!`vtsp؂Li1Ǹ~#8|*D`ާ"0fb_mM9,# )} yԋ[qΨ޻JiA)8ᗛktc0$X86w-$!b{Bys7xOUi iV"l Oc4IJJp%.bF LLT3Gzr ?7fun⫂l܀06d~ |'FVX>pFsBVS&6${վ6Ḟz 0@Go ,[r`' Q'UEvX^/?eFœst&SsÎ0h\)?kN"Bm*WASmX%`Us[!q!xc+*tm[4p0V٢$%S1M`N uzJfZ(gzw_62#x>gRA׳埢]A6=#Rqm.5D&ny?`C"EkB-Cqlܜ.'ZfަGY>EE#voԯ'ꁅ>$VP?.aĸ űO,<5@*m{u߭ņgqѯwq<ޜMnQN+U[b;@6gZ{\1 F>6ţʸ@Zm$xG:,g<%ѧ%Oc z?E6cmqo@ojmX;S8Y4P ($~"pQdY1H6!%XJRo;k<ʴ0|` Z;6%GЌ= 2͗3Dӏ&wm/U32);O?* Wc#} ΂XC&ixt%vFᵙaKlkkK ~骐QMͭ(ssmq[(~V7a \FP23A< mvUK'1_TM,ogRz}}x`Z>Mm卄"`T # 8ۥ 1Ї|]!U{cƁҘyPRT򌉅XXa~ kՠg6eVp87ڂ?S`1f5kPl] ! $~HD^%uvX5nR26~Cr) {حԭDFY!EI6WjN;4OkYs:-)3bE=}/ ߈sjs39}Z܃Tov(k/g4tMps(,Q0.,\IIn|RRT;ܮ Q[~•SiFY(WG+1]z(_SɻncG`^.  fBV ʹP$YgC"@l\8p۲Lԙ$i3.0A:?aװ|RڂADQVQH"d(,?/&TvS=Y~bаL)(hBm V+p aG }Bz~҉ 2*dBeW2A&-ϻb']0|a'h]#R~F27co6^<ɽuk|N‰,U8zq)~}E}ZDx+R)z |4NB;05Z`ߜ:"!2E>5Wd?,NI~,7D]y Zz`L)ʑ+PvUM6Aμ؃on1%d3v6:SGנ˜?o336HFK\hǡ)P.Y5pCp|-Ѳ108Jk!H$o%sN^XSc~õ^0@eTm5tuBdX܎W-~c$;zV g+cB۔ \C9qG!1@R9|E y*1)k! a*o #矅QcT%8^Ƃ >7u˰Xy,ȳF4(B{a ៼Lv4e/ t04$_x (eD#*9ߖoؿ4'^E)LތQv1&01tq4KN} pݞ-mM#K.7! L2SL"Ns JI@`RkRfdEāOh/~ˏNۮ]q5 sP~{) "q2exŹ,)|ǒb'8MxxCJ3|/V8{PŦǾ`=$N–̟]5H=`RUw`s+t&  3cVv]F?g/xFJ#r8/ulwz^qEs C)%O;Y駼Gn8t۾h ž lA]j3JP% mOuAEN[)`˭Gago "qݏ?w^O4t5K5[/w3+H\LBu3?tƞ4S;(%})G1j6)Gn&HAGGI/ g=f'&˂SBۍEdKG!'[ :| Y證=f;vi%6/z% R q4תԇ58ak{Ҍ qU _771yOC%7/I^dh ~R$~f]8I9 2 SJōH Sia @'U/>DsF |zI14ח$sWqhۨә_8˸Q6$a7 W$Kx&LFS?~Gl2%*>rF-5j=m+ |t=#00ZLd 1Mͨ,}Öث-:0{o]OPi'XP7m$Q*.JXlE䒩7u{5WI,´ "Di_EYz45nw…ߵb3k:m-J¡)JY 09SKQȀ Q_s0u+aK[E\dy<&reY\$1h^Ej8_8dSf^o(+ IKʂ:41J5·>S%}P#iuLӉ RO[Te2Fh;B91OB2즻QMˊ&h@Y1y[em Յ1]Kw6Yo%R=⍰Y֠p.kGޑG6$6b@>ūK] }@.mkO;$#Ъ,vW5ٳDƝ#/h/ΠR3Wh)Ը M(|稧z`ޠ\~ TlUouWM++ΥЌ-F($A9S%0= |ΥZJ:hE3l3Tdpk2n0Վ%WзْFkV΃j9qQY  dFoF¿=YXC8 ZBmS c5#U17 0prڋBe[į9N}7r+]rIIO@oxhBj->RlU$nSa&v:O9I=':"G?Ԩ6(]0^)T^oONAhSp!ZhĆs")á`hliFLq*Z/0 0CBZCWc8\T{_iNZqT!J04Lѷ֊0hq~V(H6.;8-8 έ `& h@쇌4-Ӓ>řcx"/{{y6Gr Bku# @)6Zm{cN+y68LJr+5]KGf|0YX IZBՑ6H dJ{7mu+ѽ``Qq}lxn\~;Vۘx5Zcp%;u܏kwAdڢ0KSw>OD֭G"}f  @M{A鰦Fui:}x;2,ᄘ=w *VjU#ASiht#w{>y-%όjm;P_7cDjTNOڽ%GB6zB y4q#-7.Y%O:Uiv/.-d Єg`gLJ i}6'WVlr-YDs$|\9[te:L nagƷ2+x{Ӯ9j&Ǎ=EH@KEډ׾+yh?zA=Ǘ.#}3]4@R Ss=ic7]kmӿycXۻa*苿7ezsH#.Q Ze?\= 8uO֨GkF+38DƮK1 `/VVcLh\^^5HIe>yd?0ҵMzfCa&ٿߕ̤t\x1zq=YJ:He!L1U͜3av~bV{JuVL45QU%x4!Ih4]v&$ԩE>zC¯Y_]e3C7\R Z/蕘[ nVi(6oY4ݑp%4 TwT=x bZ-(|˦M_nOo$0FP#ɹ({0 eRla-׺&sp NUQ/p Q9Zrm^eŘcu׷7sYAƕ~8nXe8͐C]#]O~]fK  Niko[B|9̔],&-G*Ѫl/2Tb_G3d& u/'б@Hzsi"NL3$=tŸp+zc /e;q; (b3,m]-r|=y)e>&~ũdMc ݈lSԟSRFJG qo[T&IBVΔ KY_ _Wj;AH@G+QL9ք"8&Nu. tR,=19LOFmO߼qH|9c%cp{C^ky]wNe@Bc.TFNeGAM:drHU,cZ4Ƴ]d.|ߝP~ZZ&$Z$[`Sy^SK X?2r9$b{$<:&&5ib)!5P&=c*Z9wGׅ\bP'0ؼBIӸjl-,od-ۭ~:dx"՗ |(ȼŧFwL'͋csB2E%TyI.nw o|2wm+W;0+u][%UC{ޱ>s_M}ʖ.5MJO=u W"IFLAH`t8}͗8E+sk Iū J/\NuȴboH,b"n"rQ+o;-ݺc5^䝵HcM )xMVM!""WT{9Y'R|'c2vZ#TWljX4d`y{eXa/Q VZi|ȟ1.V$)vqA#\t7wcECM b5{RÃɻa):n!X:FJ=? 5DC}Ա$K+0vc#~kX_ED@{p,7*ozN|Le NB_ F$GqL~A`qziL_Lk٠ʹO{B_3( 3\/3|g6,ش)ئM~ x+(y-RR%wkG4gu!`A<71!!qڕ+#JBԽKjBhaARUԢVyek eP'j ~XrYJ48&wE^9eXK~1Avo‚8~yu!J.Fς4 nwKkSvrMփXVD(vѹ]i1Y1⸦:<%}ϐ@K.jf <ؔͤTkD<vQaiB{'wxؗUigRrVGzHD(Z>}|E' uu.9,CGQ{Ĕa{AR"@m5VE׶5q,Sԉ .^ I2`2i쮬^| = *TɕMc4=W8SPT*wp}TTIs|8mGˌn~–ʤ6auyL?`"5Mts!d,p.4p K[~PD{S7qPP12Ra~nu'gyRF*ɾOiotP?A^It 6#dvoHEHp|? Ƥ:!l>DMվ|LR*Q4 ͖?z=ӈs k+PN.M4$% gv{zu@"ݕ^2{ˎ Hl.4LW@Q]{nhON_T8osZw4*\m<$.L 8;JnN"ѻ-I^b晧C֊NS` `|H+bB 9@77jf)[Ѹ͇T=R8)&H S2ɮ c~p61w ԸU]$?}騚jGS˷×Ħ6~ՠuD/V"'tmHW金u"S 3(\£=E5 gJ8m]R) O]s t{d,dt1%rt/bWNdE9@QdA;m[Vk|N$J@K2:@{zHmtwlpU9MOp[5Ƿrɽ9wEW2Mr1ĺ60sk 3seFOPrڮl.Y@AQkbikHZː0~X* F<Ԉ5=VX+swc t:,)?: #]!AnHل{?6')FﵡR7T߿u~OObgBLVwE߁F?mM^AjfE`BF2Y^2<n>Pf=0)m+Z/MH/d/7GV̙SkfVep_hgxF.֤ť%@ƾdNXd@2).]{As^Zґ/\Ivpy6/Zz܉K4 `Kwݟ P$@{VJYY5"}gl +&ʇ"+y5` C_ur%!-GjJ,XґŎ^>BODkPwuDq{v溎.JRҮq$RQHR?L+u(ۥ Ux !,@ P`'7\t`5A!YZr: i&%y/0UƲWDOVbH[Eu/2Uɵ,zuUp԰Y.N>EmeZфM&>ik(-$͘2%Iӡ^O`f ,GhB+FɚL)(vtHj4W mɊS >x2#6;ԧ7d(+)1Trx3pNΘxmaXl誻SPv1Ls(7*qn,гv1\ypcF/v?6Gx0'fGZ_EC0dƃReQzmư!74ߛ#Zo+ ~0+|ߴ00ňc^3MxFTk0ΰGDVVYWhV@[XbVOu_EN>iݖ0TƅA#! =ü`I;VAm0͈;[iĤں_0(#=App = mz?_0ù ҕH3P0L5K? T-"7zR:uWlIa47w#QPۺݔe'W $BobK7Q-ԫYбtTSJH$q7;]$EƵw_l'%z/9JG)*ZOBVyA/ 9uM߉;P@]=ҁ|ʹ\:5:[#T2 ptG?$ 3D_dG}1p(›8N' _t\yQYn-ҁtYmcu3@:]5~*^D136$i#[1yW?P%nh)mFLX|*Rn6 g|#^d_&>t߉ُ}DҮLW;u+[c)=^Ϝ *g՛C@p,V yED* ",5uXC?cJzW?p6%ꏅcґf1, tϫHl5e ml2u?K2 F b #l"$#feqlhڌXRHX+MtPj#~m.N*Q胠& D٪曐6 !머#)v7Pm̿t)ki*7V˿R?Vٯ3ƟZkF[qTqm[tտKF 'p vgheE=iKu Jp; ֓XkQl~e=Eۮ;64쵥6JaUF@|RFH:bV~.l}n>>4KԝGS!!0;LSp02BЦ7ruˮOQNրΉn*\,a ,aI_lst`хR j437m37X`x E| 1eͫV匊 SIΏ}_RVtɎ!]>ggd ɰld6ao1mM&f0 "Ll9L;%(0c&Z\t.7&Dw-f4 PȪvP'|]qE,Ktq<] ڧ Nȓ64BFҠ"R OnYoA7O]0Z݈I bvz7:6a+*/JC.F/rX%?mt]̻d h`kG*X~P"o()̭;YF ek ЁTQ1r%-/64n[/4mq7eoq;U#6A F{TUOS: H|{lCÙEuhЖ`gBg8b*B#\T6#fsYw_!1 t8I+rlaSPP^K] ? 6],=|e둍eRs85/N8gϷS롫gWD#;6#"`5w+ *MPXnuyrLx(hZվ܎Hwj.4: ݷL[)VðkԂ7O:;up%+ŗ*7cӼh\Y0 'pCebqsp2TsD2<<-cy<:[_,맦)tcvP✈ܴ!#Q&`(ޖZ$Vw&VyAO?0 _J…;𳙤a)pe)fYW8A4~ 1biڐa_ zo9@ƌ>re2"i႔UAWJX%2 @!(U I\lJztǾѮ rf O5Պ..7#zJf W8NiL$YJ@ÍV?- $U~$oq1ƜsA YaJEp=Ejݵ`: ZPBĮ4tNrޭ* ^O'ֱ.(x0G2U2t Em)ⶄCgHa(j Tl`![5߾J؏ĉkw뿽g|cPѭ) LG3 D9zEUSł6h9 &}Pj$2[RӋŽCmc(oyO)r=M(hWLZT^ A]˹Z\o zCOs)[˳>*&l5bVmrB C(|'hc8T]'Qoa'wmp*eO[K7k̃Ac AOH{X`íSDڵ-01،آrhe+A;z f {yyJ yuoMTs̶7|d&zX̓ 5F|)c[or*ic#4xq''xhm8B3CWxF^^E%D:Z]ud,Uoh:7Dy/%#{g(34h4Mͯ条|bVuad lSJj؄i@}6,mPd=rhK҂acz( zز=B;˔ nCT;( ETlSt”ć݅R]@?ig"V.q)={%604DnՆɯ#ڌNSAJZ>QjΩi)b:_i{B0 ?1ҋ.A,'Xe>[(ecgWQQ!پ 0IeӜwrYme% jGbyu- #8TE=֜:#d! wD?VA5PJ+oFp%ZXT_4[f{*OHvĤ3"<3( ٙ:fvk}i,.uz]\\ll&ZH0.ԝ Kٌ[>xjcy-Z'!Q J͖"yj v`cVz]5ҙe5H{4c#b>vh8sdo4 &:.# mDnt{Ћ3B,4%f#iHmvFvU'Kg "=Hze*Ô??^&!hE}#:gR_uT^^鿖y>8hL0JZ7+8q0,}nIebhoM[/;9ЎiD%ܞP+RxH=QA 0[|Sg74BʋryF(Y?c{_Sȧ]b3)aͱ'kMJCGe\&po}]"ړ%Jf\b6p[/FVvp3`S+HNGSه$Ogvx?h&fcWWmc%_rAu(y58%[dͦƲlo #n.߁{VU->c &-\`xFl: Gzq.ٛVt]zt_8fDJHqxu;`|UIPdzHWlֻ×2h.YeՑf8E`ʖI:A$&$fuC9[9+}TP7mJ V/ :q%MHiYTonP%*^8 W뢭`T=81^d+JG=M/ W$NPf*,'ՎB:Fd1$P:C ~je܄JL6הIqwCC(G$% q *h+RV1dgh_ T]/9-yr[Q"yR3 J eW,˜sx vܣRa<^7SME1qu&l~- L'[m֖E|cVuwdO`5Vެ/Yu>ET9D9%g<[V?h#GBKz;d:NoCJNo Qn[D`.hAոPva{}gеU5xxѬjYOK+]YW%U-r!Xh0n{3=4[ T \uw8,'1=;uF͝5p.|6+Urjf:@1c[~;Qo99-q5ư1fx/9DTi|MbC|9d}v7uaطe[,q- TOa@#A &PW98.4"(|_kpۋlh36;B`C建?GvV,oR\$&mVBܴ?ߍxnDC+$Ct$%&iRZelF^ .aL&~4T{4%7G .K̯%\sPx)T JIk^Ϝ |=h456U|Z.}4Yq^lj 9kHA8j 8Y8G,ivYcNq:;b mr/wGҖI`vɿ-X;[vRΈWldX_͙?0xM(fxm2fk²idFjAqМGO 3"*87W翵uO%@(-6"pu7hoL (R.BTL8<V6iyLG. ~4[#xwGlfQ(զK i#3rEgy5x&T\ekRS`+ V]Րev- ۿhD÷'>f3һ?iBtxN@vX}C;,jOx#$R* $a!t^x.]9k0!Q9tmY5>K܉c HpWќ:U3KP)h9LnyRdy&Hf},Uy-x,+-6Թm-BKCc\uF E< T0WS#Q4%>u _.y{-&2>i!q&Ie$bʽ0.b>TSVuR['I ɪgYq,L98a&97BV{ho8wtihK<qT|(Tx(\ BSi´U-F:]b5+3,{ }f=}oT+J6V԰qgs<DơU8_)- { ǸClJM|S<-p=O rI~3\B=g^DɅe; % }/.[Ī a0#FgwAQ:qO/^eOD x P> H9>r+z`};䏞]"P?6y)V.%Py̫C͎?95A0}N[c2&zn  Ʌhh' G* jǵOO.ftƏI W'mx T_Q_ \0̝P-!gZ"-#YEH=@#>3c;ltLn[vU[ !w ri!'a4ϦlCb's\VztT49KWD0` XAʈd f3b5s-8p]ĵq`El!(-$+6t3IFJ?;0~,k<sI衖1rcik/l5Vmoud&J .Nq+G{-EzC*I7&kPh>dINDRqx0FOp⯟Z޸o>@xtJk~ZUsqMQM@۝Y u:ǫn a-i*$~}Iʅ?0GOϩ`356~#^'O@-y`iں.T@N7-029n0$/S4ā,>ЖY,021Xh"ӯKi\wnW7[pa(EW u{&҃kOðM]MNErDGȃSص$<{2g>`NjjۥUqK*~Q1eA|I!rXSq8/)h >xP)[5R=vngL\p)y'37Sږ?էLl(1:XExU rJ\1'H=5kR mo?1ٛWb!a9!^փ+2kYm@.dM &T iKw13h(Nz&kǟW^ZKAGSNr.p'mx \;0T>F5^kS Gp#fuuEMFC3t48 gNw6iM1ư rP{wOŮ;xo0<-xb+ 0v}Z,#Im7 ʼ@[&sl*l.kSv{8' 簨kBsI>BE&OV PY}522+"W DYk s >S%B1.z49"m?jIt FU+ yB󵹥\1zWZxnx 0θ=p32ګ3QtGf1 nŐ'f+ZO=Bick8|u2gلL*CVM0fC[{{x@釪Pw_=d:M'"1 Qo5^_Ҿoc6G@#^Y|N%RQ?sfT0hG`O+ D.L,1eGW(nL{*=T?usL)]e{bn%ho[ư_ ۜ|wf"5xϸ9K|{^ pa I3}8iJӧؐ$AԳQBd^jk7{B! (x|&,~t>( S|0Pd،ì= /q`_W Du0?BrJ {`\b-+5Z` >+]~AGHcMEՌm1UX}1K2%3bŬsί%dd>)&im; ,+x"[CE_SXʐ+ k8Ĺ@?hG mxr,cxw"/d@m=AE&*ۘVnWW  ,,f.$lّ[̠ٚKY5TU,V%:aTQ O"$=as sU wE薧Vˆx$" ffo24N7 H^5'ҶMAE{gbq3m!j 訊rnV?z+r87L౳C(kb$Vz%oWW]~WK2{6 ET! QKX 8Z_EØ*1w9ANU5ZEj7S'Ѹ-!ٮ->\րxxwwXw=lY8NٛЦ> LZI+ca~wݥ"zAGD%7g e`SPHfRR5wFe~`j{=kQc̽S)Yڞ\3sk&U>YsY|Κf b@"@Sbn%%Ím/87 IU`G9X|"k7*12/tq%CC~B;9%zaqFІ}ՖqelTHjzwRG%{gR}n+5iHoA|Ђ(ؔI#J)(`XcIF*׻YC4R\gCZpI6 b;X0pk0ZxvM!R{(ƍ4UJ;_Vq(>t8DKT7F*eƼ51DZu|dxASt\X oLn;$oӟ۽&LC{JtT2Brt4z0&E< g.2\9i55I^OHX^qxm\q\5-y{gU t]gxH7q/8حޏсiagͩ{" y̺cƻО"{P݂ %YDfJ-f5]i ok'ȽJۄ$)CQϽI OX5U Е>0ec.T$3J MESJ_`(h$.AxT&o0QQq|3hD?znߒ9(2b4_6z ف,upB>jfV6Y8ru"wgpx(t@dQQiyJKW)Wk >ع/sLq܍ӄbZ#|ݼx3E,7FwHDk wUΕPλo7H$;֢yC#A~#KygD͹Rʭl <5X}()v́gj3:|oSH?p7+JFNVl Afy-oYՁkuT Tat~& ;6iߛxd ~p !(Bkytf 8VFqG b>$I4/)Y5_pVW_e\Α_ {gJu B3юE9 `C"iW Ņ,Gԙ`I'h~CH]BD7/P-Z҉DM}"^B,Dm'eizM[jf:V57 *u";\\(R9X-Zrj,k<"EYZIS Po =N 0:T U>a,=J08 De0ja+v<9֊ 71!wDnI|sк4YߌMd뭶԰"%|j& ب(Q[<ˡ3_صww UU<5-8]*k0F<<5Ir{ St0!-OSb;3*w; QJ|e/7s\JNq}vftXi`E0˺zvik 7LFir2 ]B} Jz6̑T),uЧ^Va%O*L d k 3} *= vBCrG :޵4-O ¾Yn1[Z S[%Zʝ $S4mU֑ ?=l+:[s&'oo$O}-=c 3ys+SMxCYW'njF&Svw6wCד!!UU9bf Ϩ~$k!3BO0)r.whݵs}}-C8bت]7v;Hkcc}O QƟM3*ݠz[SM+ʟ-SL-TN,|/Pge>m4w5ʀTxQµ?d[P.R觓Eu&ƅV6 VVUT\s{T@5jP@~9܈FŶz>pzT8 \gMO}Ў4ܘċ(&Vse mYϪI3YfR!Y\ ;"n͐qoCI2ks$VjrZbGfsUGp,a)W$4tQ5 AAWU P sNVv3 Ҿ9 1@웆vn_lSv3kioFXP$8a饁R ~;礧 宲ED$.P}bhJamO| :|0P;$FUfo<]mzXJ`syw$!yO}'wDٴb h#'b٩؀͹#*"NZ&@_܉$\AaZ;7|Qt_h%3!X /)6!5 4}ֻ](*"|t= =13-Duw:^~%@ 6| )#1DAسy=r\?')wͦN' 38nGyŮwg?8]"uI=4ث|y^%wmZ(Ķ1-D b9f6HYEZ  TLbW5FTD ^`x{Rw{~fD(Ǽkoh'As1ShߖԲ="PPZeDV.| мqK<h!D, hCg_(y(0Q1lLTs=ŷn:,s/j|;|@E mh`=n=;F1}.)m$ !=%,ԖG vVLrҩ",M-Mr'O DUny1=Yf* 2+Dj&Rvv 4pKFg_ovhlc8Hzo}I-csPNn$9N^7@,!ug+U]וݡVo|VE\No&.!cw$d7hw}iˀ)tS!mު*7N{DfsD:Lk?V qs2ؓ ~;k5 کqz譱/Yvpj2Ef=?^ʀBY0t^CXXr82qp#gGe-4voJaYcx &= 菗A_"2\9 Iث̭,%-~VO~ۡhǏEOm}d&`6UxG/[URBq1@[.1ag*Яl?E^J\`Tq$2k9޿ PhC:_{@!w票bԚoĸ!Ky\&\#`ԧCVTtl;/Wd=ZU#V"(L Y2SsFZ^v#٧= X?aàTP B53M6s'G:{htSbOJK H;8 e&f/TgmL s6wWN$3?v#iYP B=qZߕ`=C3hLV%^#4V!r$EL7/7ʥS_}89޵Nr="Hz ]'\H'*NbKs iMi*yz*G JVI fҰ@ 2- '|>^Yx0,ь5 W$vwV9JqeŊYoq"-CY61>| af8׷'U7o,)_s, e|ayDʕr P9$u>%[3Wҷ6bT"]M)$E!I-W%M0L_ 1Akf=<"!+6RSzK+&.]Cu`V :\3N$XaH"FuU9 Հ1e jˎ Aѿm`6QFm$d>{Ji͖6:؆+}w@VF(̀`Ϟ~ﷁ~uڌikhB{M!Fg?H[<\^+h VgDd]=u;ssPtaXv"3IeP.FXX T- }y)Q NO9.M?nQs m_>߼nG9)#$p}`+h/AQt+"aUkkp('& SΕGKc̕f3 ?g>t=^Ϩ`d_'æXqz쭑`y<^ؕɊɇ5D ^8: =e Z<u8m~jSeq,ItFfY6W)E_Z~zb*Rt (`qC+!exi IS[NS? :mխ (y}3_Ă-B60Z쭝|XW꒾׋v{!  JxLt+H,U f&&uL ǚEb:IМgfC=Rܥ!wܬAH8ތ[aQPG30"` ÿˢ InzGJ%ynyV1˞r8:Ht'N{-Ge0>B 9 1N9׼>S#ӚjO :g$g8UcdO]'l HlOG?_m1PlA~ 2m~:Щ^IEogzɞb4#`OƼW/z\wCo]bm5lsމkox*M D\]y5LA4H-ruƵڽ HDm_X5<[M+u桮+R@دA, k^2~zLc> D@.&7HtJěkT[uZ ~*9从Дxi_*2@澺D6 M4;qq Y4 p@凙P:_.{c!'ǬH3[f8͇Y_fOˮ7U,#-َ]L1El !Le2,2 SA{QLqЇDF,,b%(.=%ӟWϧJ2n be >/#MGBal͙͟`e5?ݮ'KԠ4s{cjdtL,+5aW=J&I2waC4잯|,|ɤWƠ\!(;W(au2.]5AH?RVVq|0l;iCQh~29Ta:Ƕa|UW5sk-ԅ֜09V>a<_ IKbam A.МG5X8zg+C@]^