From 8923e3456afb261d5ec38c70abfa3f53d1db98ba Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 29 Oct 2020 05:51:31 -0400 Subject: [PATCH 1/3] Changed the structure of the folders in the repository so as to allow .Net Core/Standard library solution to sit side-by-side with the Unity solution, attempting to minimize toes stepped on. Added a Unity project with Unity version 2017.4.1 (the earliest the Asset Store Tools supports). --- .gitignore | 102 +-- Cancelations/CancelationRegistration.cs.meta | 11 - Cancelations/CancelationSource.cs.meta | 11 - Cancelations/CancelationToken.cs.meta | 11 - DeveloperNotes.txt | 15 + .../CancelDelegateWrappersInternal.cs.meta | 11 - InternalShared/ExceptionsInternal.cs.meta | 11 - .../HelperFunctionsInternal.cs.meta | 11 - InternalShared/HelperTypesInternal.cs.meta | 11 - InternalShared/InterfacesInternal.cs.meta | 11 - .../ValueContainersInternal.cs.meta | 11 - Promises/Config.cs.meta | 11 - Promises/Deferred.cs.meta | 11 - Promises/Exceptions.cs.meta | 11 - Promises/Extensions.cs.meta | 11 - Promises/Internal/AllInternal.cs.meta | 11 - Promises/Internal/AsyncAwaitInternal.cs.meta | 11 - Promises/Internal/CancelInternal.cs.meta | 11 - Promises/Internal/DebugInternal.cs.meta | 11 - .../Internal/DelegateWrappersInternal.cs.meta | 11 - Promises/Internal/FirstInternal.cs.meta | 11 - Promises/Internal/InterfacesInternal.cs.meta | 11 - Promises/Internal/MergeInternal.cs.meta | 11 - Promises/Internal/ProgressInternal.cs.meta | 11 - Promises/Internal/PromiseInternal.cs.meta | 11 - Promises/Internal/RaceInternal.cs.meta | 11 - Promises/Internal/SequenceInternal.cs.meta | 11 - Promises/Manager.cs.meta | 11 - Promises/Promise.cs.meta | 11 - Promises/PromiseCapture.cs.meta | 11 - Promises/PromiseStatic.cs.meta | 11 - Promises/ResultContainers.cs.meta | 11 - Promises/Unity.meta | 8 - Promises/Unity/Editor.meta | 8 - .../Unity/Editor/ExecutionOrderSetter.cs.meta | 11 - Promises/Unity/PromiseBehaviour.cs.meta | 11 - Promises/Unity/PromiseYielder.cs.meta | 11 - ProtoPromise.sln | 31 + ProtoPromise_Unity/.gitignore | 275 +++++++ .../Assets/Third Party.meta | 4 +- .../Assets/Third Party/ProtoPromise.meta | 2 +- .../Assets/Third Party/ProtoPromise/Demo.meta | 2 +- .../Third Party/ProtoPromise/Demo/Demo.unity | 720 ++++++++++++++++++ .../ProtoPromise/Demo/Demo.unity.meta | 3 +- .../ProtoPromise/Demo/ProtoPromiseExample.cs | 55 ++ .../Assets/Third Party/ProtoPromise/LICENSE | 21 + .../Third Party/ProtoPromise/LICENSE.meta | 2 +- .../Third Party/ProtoPromise/README.pdf | Bin 0 -> 120564 bytes .../Third Party/ProtoPromise/README.pdf.meta | 7 + .../ProjectSettings/AudioManager.asset | 17 + .../ProjectSettings/ClusterInputManager.asset | 6 + .../ProjectSettings/DynamicsManager.asset | 29 + .../ProjectSettings/EditorBuildSettings.asset | 7 + .../ProjectSettings/EditorSettings.asset | 21 + .../ProjectSettings/GraphicsSettings.asset | 61 ++ .../ProjectSettings/InputManager.asset | 295 +++++++ .../ProjectSettings/NavMeshAreas.asset | 91 +++ .../ProjectSettings/NetworkManager.asset | 8 + .../ProjectSettings/Physics2DSettings.asset | 37 + .../ProjectSettings/ProjectSettings.asset | 641 ++++++++++++++++ .../ProjectSettings/ProjectVersion.txt | 1 + .../ProjectSettings/QualitySettings.asset | 191 +++++ .../ProjectSettings/TagManager.asset | 43 ++ .../ProjectSettings/TimeManager.asset | 9 + .../UnityConnectSettings.asset | 34 + .../UnityPackageManager/manifest.json | 4 + README.md | 51 +- README.md.meta | 7 - ReleaseNotes.md | 24 + ReleaseNotes.md.meta | 7 - Runtime/ProtoPromise.csproj | 29 + .../Cancelations}/CancelationRegistration.cs | 0 .../Cancelations}/CancelationSource.cs | 0 .../Cancelations}/CancelationToken.cs | 0 .../CancelDelegateWrappersInternal.cs | 0 .../InternalShared}/ExceptionsInternal.cs | 0 .../HelperFunctionsInternal.cs | 0 .../InternalShared}/HelperTypesInternal.cs | 0 .../InternalShared}/InterfacesInternal.cs | 0 .../ValueContainersInternal.cs | 0 .../ProtoPromise/Promises}/Config.cs | 0 .../ProtoPromise/Promises}/Deferred.cs | 0 .../ProtoPromise/Promises}/Exceptions.cs | 0 .../ProtoPromise/Promises}/Extensions.cs | 0 .../Promises}/Internal/AllInternal.cs | 0 .../Promises}/Internal/AsyncAwaitInternal.cs | 1 + .../Promises}/Internal/CancelInternal.cs | 0 .../Promises}/Internal/DebugInternal.cs | 0 .../Internal/DelegateWrappersInternal.cs | 0 .../Promises}/Internal/FirstInternal.cs | 0 .../Promises}/Internal/InterfacesInternal.cs | 0 .../Promises}/Internal/MergeInternal.cs | 0 .../Promises}/Internal/ProgressInternal.cs | 0 .../Promises}/Internal/PromiseInternal.cs | 0 .../Promises}/Internal/RaceInternal.cs | 0 .../Promises}/Internal/SequenceInternal.cs | 0 .../ProtoPromise/Promises}/Manager.cs | 0 .../ProtoPromise/Promises}/Promise.cs | 0 .../ProtoPromise/Promises}/PromiseCapture.cs | 0 .../ProtoPromise/Promises}/PromiseStatic.cs | 0 .../Promises}/ResultContainers.cs | 0 .../Unity/Editor/ExecutionOrderSetter.cs | 0 .../Unity/Editor/ProtoPromiseEditor.asmdef | 0 .../Editor/ProtoPromiseEditor.asmdef.meta | 0 .../Promises}/Unity/PromiseBehaviour.cs | 0 .../Promises}/Unity/PromiseYielder.cs | 0 .../ProtoPromise/ProtoPromise.asmdef | 0 .../ProtoPromise/ProtoPromise.asmdef.meta | 0 .../ProtoPromise/Utilities}/Interfaces.cs | 0 .../ProtoPromise/Utilities}/Utils.cs | 0 .../ProtoPromise/Utilities}/ValueTuple.cs | 0 Tests.meta | 8 - Tests/APlus_2_1_PromiseStates.cs.meta | 11 - Tests/APlus_2_2_TheThenMethod.cs.meta | 11 - ..._2_3_ThePromiseResolutionProcedure.cs.meta | 11 - Tests/AllTests.cs.meta | 11 - Tests/AsyncAwaitTests.cs.meta | 11 - Tests/CancelationTests.cs.meta | 11 - Tests/CaptureTests.cs.meta | 11 - Tests/ContinuewithTests.cs.meta | 11 - Tests/FinallyTests.cs.meta | 11 - Tests/FirstTests.cs.meta | 11 - Tests/MergeTests.cs.meta | 11 - Tests/MiscellaneousTests.cs.meta | 11 - Tests/ProgressTests.cs.meta | 11 - Tests/PromiseCancelationTests.cs.meta | 11 - Tests/ProtoPromiseTests.csproj | 32 + .../APlus_2_1_PromiseStates.cs | 15 +- .../APlus_2_2_TheThenMethod.cs | 9 +- ...APlus_2_3_ThePromiseResolutionProcedure.cs | 0 Tests/{ => ProtoPromiseTests}/AllTests.cs | 1 - .../AsyncAwaitTests.cs | 0 .../CancelationTests.cs | 0 Tests/{ => ProtoPromiseTests}/CaptureTests.cs | 0 .../ContinuewithTests.cs | 0 Tests/{ => ProtoPromiseTests}/FinallyTests.cs | 0 Tests/{ => ProtoPromiseTests}/FirstTests.cs | 0 Tests/{ => ProtoPromiseTests}/MergeTests.cs | 0 .../MiscellaneousTests.cs | 0 .../{ => ProtoPromiseTests}/ProgressTests.cs | 0 .../PromiseCancelationTests.cs | 19 +- .../ProtoPromiseTests.asmdef | 0 .../ProtoPromiseTests.asmdef.meta | 0 Tests/{ => ProtoPromiseTests}/RaceTests.cs | 0 .../{ => ProtoPromiseTests}/SequenceTests.cs | 0 Tests/{ => ProtoPromiseTests}/TestHelper.cs | 11 + Tests/RaceTests.cs.meta | 11 - Tests/SequenceTests.cs.meta | 11 - Tests/TestHelper.cs.meta | 11 - Utilities.meta | 8 - Utilities/Interfaces.cs.meta | 11 - Utilities/Utils.cs.meta | 11 - Utilities/ValueTuple.cs.meta | 11 - 153 files changed, 2787 insertions(+), 768 deletions(-) delete mode 100644 Cancelations/CancelationRegistration.cs.meta delete mode 100644 Cancelations/CancelationSource.cs.meta delete mode 100644 Cancelations/CancelationToken.cs.meta create mode 100644 DeveloperNotes.txt delete mode 100644 InternalShared/CancelDelegateWrappersInternal.cs.meta delete mode 100644 InternalShared/ExceptionsInternal.cs.meta delete mode 100644 InternalShared/HelperFunctionsInternal.cs.meta delete mode 100644 InternalShared/HelperTypesInternal.cs.meta delete mode 100644 InternalShared/InterfacesInternal.cs.meta delete mode 100644 InternalShared/ValueContainersInternal.cs.meta delete mode 100644 Promises/Config.cs.meta delete mode 100644 Promises/Deferred.cs.meta delete mode 100644 Promises/Exceptions.cs.meta delete mode 100644 Promises/Extensions.cs.meta delete mode 100644 Promises/Internal/AllInternal.cs.meta delete mode 100644 Promises/Internal/AsyncAwaitInternal.cs.meta delete mode 100644 Promises/Internal/CancelInternal.cs.meta delete mode 100644 Promises/Internal/DebugInternal.cs.meta delete mode 100644 Promises/Internal/DelegateWrappersInternal.cs.meta delete mode 100644 Promises/Internal/FirstInternal.cs.meta delete mode 100644 Promises/Internal/InterfacesInternal.cs.meta delete mode 100644 Promises/Internal/MergeInternal.cs.meta delete mode 100644 Promises/Internal/ProgressInternal.cs.meta delete mode 100644 Promises/Internal/PromiseInternal.cs.meta delete mode 100644 Promises/Internal/RaceInternal.cs.meta delete mode 100644 Promises/Internal/SequenceInternal.cs.meta delete mode 100644 Promises/Manager.cs.meta delete mode 100644 Promises/Promise.cs.meta delete mode 100644 Promises/PromiseCapture.cs.meta delete mode 100644 Promises/PromiseStatic.cs.meta delete mode 100644 Promises/ResultContainers.cs.meta delete mode 100644 Promises/Unity.meta delete mode 100644 Promises/Unity/Editor.meta delete mode 100644 Promises/Unity/Editor/ExecutionOrderSetter.cs.meta delete mode 100644 Promises/Unity/PromiseBehaviour.cs.meta delete mode 100644 Promises/Unity/PromiseYielder.cs.meta create mode 100644 ProtoPromise.sln create mode 100644 ProtoPromise_Unity/.gitignore rename Promises/Internal.meta => ProtoPromise_Unity/Assets/Third Party.meta (62%) rename Cancelations.meta => ProtoPromise_Unity/Assets/Third Party/ProtoPromise.meta (77%) rename InternalShared.meta => ProtoPromise_Unity/Assets/Third Party/ProtoPromise/Demo.meta (77%) create mode 100644 ProtoPromise_Unity/Assets/Third Party/ProtoPromise/Demo/Demo.unity rename Promises.meta => ProtoPromise_Unity/Assets/Third Party/ProtoPromise/Demo/Demo.unity.meta (67%) create mode 100644 ProtoPromise_Unity/Assets/Third Party/ProtoPromise/Demo/ProtoPromiseExample.cs create mode 100644 ProtoPromise_Unity/Assets/Third Party/ProtoPromise/LICENSE rename LICENSE.meta => ProtoPromise_Unity/Assets/Third Party/ProtoPromise/LICENSE.meta (74%) create mode 100644 ProtoPromise_Unity/Assets/Third Party/ProtoPromise/README.pdf create mode 100644 ProtoPromise_Unity/Assets/Third Party/ProtoPromise/README.pdf.meta create mode 100644 ProtoPromise_Unity/ProjectSettings/AudioManager.asset create mode 100644 ProtoPromise_Unity/ProjectSettings/ClusterInputManager.asset create mode 100644 ProtoPromise_Unity/ProjectSettings/DynamicsManager.asset create mode 100644 ProtoPromise_Unity/ProjectSettings/EditorBuildSettings.asset create mode 100644 ProtoPromise_Unity/ProjectSettings/EditorSettings.asset create mode 100644 ProtoPromise_Unity/ProjectSettings/GraphicsSettings.asset create mode 100644 ProtoPromise_Unity/ProjectSettings/InputManager.asset create mode 100644 ProtoPromise_Unity/ProjectSettings/NavMeshAreas.asset create mode 100644 ProtoPromise_Unity/ProjectSettings/NetworkManager.asset create mode 100644 ProtoPromise_Unity/ProjectSettings/Physics2DSettings.asset create mode 100644 ProtoPromise_Unity/ProjectSettings/ProjectSettings.asset create mode 100644 ProtoPromise_Unity/ProjectSettings/ProjectVersion.txt create mode 100644 ProtoPromise_Unity/ProjectSettings/QualitySettings.asset create mode 100644 ProtoPromise_Unity/ProjectSettings/TagManager.asset create mode 100644 ProtoPromise_Unity/ProjectSettings/TimeManager.asset create mode 100644 ProtoPromise_Unity/ProjectSettings/UnityConnectSettings.asset create mode 100644 ProtoPromise_Unity/UnityPackageManager/manifest.json delete mode 100644 README.md.meta delete mode 100644 ReleaseNotes.md.meta create mode 100644 Runtime/ProtoPromise.csproj rename {Cancelations => Runtime/ProtoPromise/Cancelations}/CancelationRegistration.cs (100%) rename {Cancelations => Runtime/ProtoPromise/Cancelations}/CancelationSource.cs (100%) rename {Cancelations => Runtime/ProtoPromise/Cancelations}/CancelationToken.cs (100%) rename {InternalShared => Runtime/ProtoPromise/InternalShared}/CancelDelegateWrappersInternal.cs (100%) rename {InternalShared => Runtime/ProtoPromise/InternalShared}/ExceptionsInternal.cs (100%) rename {InternalShared => Runtime/ProtoPromise/InternalShared}/HelperFunctionsInternal.cs (100%) rename {InternalShared => Runtime/ProtoPromise/InternalShared}/HelperTypesInternal.cs (100%) rename {InternalShared => Runtime/ProtoPromise/InternalShared}/InterfacesInternal.cs (100%) rename {InternalShared => Runtime/ProtoPromise/InternalShared}/ValueContainersInternal.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Config.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Deferred.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Exceptions.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Extensions.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Internal/AllInternal.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Internal/AsyncAwaitInternal.cs (99%) rename {Promises => Runtime/ProtoPromise/Promises}/Internal/CancelInternal.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Internal/DebugInternal.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Internal/DelegateWrappersInternal.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Internal/FirstInternal.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Internal/InterfacesInternal.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Internal/MergeInternal.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Internal/ProgressInternal.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Internal/PromiseInternal.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Internal/RaceInternal.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Internal/SequenceInternal.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Manager.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Promise.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/PromiseCapture.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/PromiseStatic.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/ResultContainers.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Unity/Editor/ExecutionOrderSetter.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Unity/Editor/ProtoPromiseEditor.asmdef (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Unity/Editor/ProtoPromiseEditor.asmdef.meta (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Unity/PromiseBehaviour.cs (100%) rename {Promises => Runtime/ProtoPromise/Promises}/Unity/PromiseYielder.cs (100%) rename ProtoPromise.asmdef => Runtime/ProtoPromise/ProtoPromise.asmdef (100%) rename ProtoPromise.asmdef.meta => Runtime/ProtoPromise/ProtoPromise.asmdef.meta (100%) rename {Utilities => Runtime/ProtoPromise/Utilities}/Interfaces.cs (100%) rename {Utilities => Runtime/ProtoPromise/Utilities}/Utils.cs (100%) rename {Utilities => Runtime/ProtoPromise/Utilities}/ValueTuple.cs (100%) delete mode 100644 Tests.meta delete mode 100644 Tests/APlus_2_1_PromiseStates.cs.meta delete mode 100644 Tests/APlus_2_2_TheThenMethod.cs.meta delete mode 100644 Tests/APlus_2_3_ThePromiseResolutionProcedure.cs.meta delete mode 100644 Tests/AllTests.cs.meta delete mode 100644 Tests/AsyncAwaitTests.cs.meta delete mode 100644 Tests/CancelationTests.cs.meta delete mode 100644 Tests/CaptureTests.cs.meta delete mode 100644 Tests/ContinuewithTests.cs.meta delete mode 100644 Tests/FinallyTests.cs.meta delete mode 100644 Tests/FirstTests.cs.meta delete mode 100644 Tests/MergeTests.cs.meta delete mode 100644 Tests/MiscellaneousTests.cs.meta delete mode 100644 Tests/ProgressTests.cs.meta delete mode 100644 Tests/PromiseCancelationTests.cs.meta create mode 100644 Tests/ProtoPromiseTests.csproj rename Tests/{ => ProtoPromiseTests}/APlus_2_1_PromiseStates.cs (91%) rename Tests/{ => ProtoPromiseTests}/APlus_2_2_TheThenMethod.cs (99%) rename Tests/{ => ProtoPromiseTests}/APlus_2_3_ThePromiseResolutionProcedure.cs (100%) rename Tests/{ => ProtoPromiseTests}/AllTests.cs (99%) rename Tests/{ => ProtoPromiseTests}/AsyncAwaitTests.cs (100%) rename Tests/{ => ProtoPromiseTests}/CancelationTests.cs (100%) rename Tests/{ => ProtoPromiseTests}/CaptureTests.cs (100%) rename Tests/{ => ProtoPromiseTests}/ContinuewithTests.cs (100%) rename Tests/{ => ProtoPromiseTests}/FinallyTests.cs (100%) rename Tests/{ => ProtoPromiseTests}/FirstTests.cs (100%) rename Tests/{ => ProtoPromiseTests}/MergeTests.cs (100%) rename Tests/{ => ProtoPromiseTests}/MiscellaneousTests.cs (100%) rename Tests/{ => ProtoPromiseTests}/ProgressTests.cs (100%) rename Tests/{ => ProtoPromiseTests}/PromiseCancelationTests.cs (97%) rename Tests/{ => ProtoPromiseTests}/ProtoPromiseTests.asmdef (100%) rename Tests/{ => ProtoPromiseTests}/ProtoPromiseTests.asmdef.meta (100%) rename Tests/{ => ProtoPromiseTests}/RaceTests.cs (100%) rename Tests/{ => ProtoPromiseTests}/SequenceTests.cs (100%) rename Tests/{ => ProtoPromiseTests}/TestHelper.cs (99%) delete mode 100644 Tests/RaceTests.cs.meta delete mode 100644 Tests/SequenceTests.cs.meta delete mode 100644 Tests/TestHelper.cs.meta delete mode 100644 Utilities.meta delete mode 100644 Utilities/Interfaces.cs.meta delete mode 100644 Utilities/Utils.cs.meta delete mode 100644 Utilities/ValueTuple.cs.meta diff --git a/.gitignore b/.gitignore index ffc233ab..7aefb30d 100644 --- a/.gitignore +++ b/.gitignore @@ -32,11 +32,7 @@ bld/ .vs/ # Uncomment if you have tasks that create the project's static files in wwwroot #wwwroot/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - + # NUNIT *.VisualState.xml TestResult.xml @@ -72,10 +68,7 @@ artifacts/ *.pidb *.svclog *.scc - -# Chutzpah Test files -_Chutzpah* - + # Visual C++ cache files ipch/ *.aps @@ -92,63 +85,7 @@ ipch/ *.vsp *.vspx *.sap - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# TODO: Comment the next line if you want to checkin your web deploy settings -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - + # Microsoft Azure Web App publish settings. Comment the next line if you want to # checkin your Azure Web App publish settings, but sensitive information contained # in these scripts will be unencrypted @@ -196,14 +133,7 @@ ClientBin/ *.publishsettings node_modules/ orleans.codegen.cs - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - + # Backup & report files from converting an old project file # to a newer Visual Studio version. Backup files are not needed, # because we have git ;-) @@ -215,12 +145,7 @@ UpgradeLog*.htm # SQL Server files *.mdf *.ldf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings - + # Microsoft Fakes FakesAssemblies/ @@ -235,15 +160,7 @@ FakesAssemblies/ # Visual Studio 6 workspace options file *.opt - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - + # Paket dependency manager .paket/paket.exe paket-files/ @@ -263,12 +180,11 @@ paket-files/ # Unity3D generated meta files *.pidb.meta +# Script meta files +*.cs.meta # Unity3D Generated File On Crash Reports sysinfo.txt *.blend1 -*.csproj -*.sln [Ll]ibrary/ -[Ll]ibraries/ -Assets/Art/Prefabs/Combat UI/HP.prefab.meta +[Ll]ibraries/ \ No newline at end of file diff --git a/Cancelations/CancelationRegistration.cs.meta b/Cancelations/CancelationRegistration.cs.meta deleted file mode 100644 index df346b5d..00000000 --- a/Cancelations/CancelationRegistration.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 4e26d3fe0a002428e88bf33226d3ac30 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Cancelations/CancelationSource.cs.meta b/Cancelations/CancelationSource.cs.meta deleted file mode 100644 index 805721b7..00000000 --- a/Cancelations/CancelationSource.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 447990967c9b445fdb91cb36ab05fb80 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Cancelations/CancelationToken.cs.meta b/Cancelations/CancelationToken.cs.meta deleted file mode 100644 index ccea3162..00000000 --- a/Cancelations/CancelationToken.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 2dccfdcf1a4b04f829c3f8aea3ed4634 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/DeveloperNotes.txt b/DeveloperNotes.txt new file mode 100644 index 00000000..aebdbf95 --- /dev/null +++ b/DeveloperNotes.txt @@ -0,0 +1,15 @@ +To create the UnityPackage for releases: + +1. Delete existing `ProtoPromise_Unity/Assets/ThirdParty/ProtoPromise/Scripts` directory. +2. Copy the `Runtime/ProtoPromise` folder into `ProtoPromise_Unity/Assets/ThirdParty/ProtoPromise` and rename it to `Scripts`. +3. Copy `ReleaseNotes.md` and `LICENSE` into the `ProtoPromise` directory. +4. Edit `README.md` to remove the `## Getting Started` and `## Latest Updates` sections, then convert it to `README.pdf` (can use https://www.markdowntopdf.com/) and place it in the `ProtoPromise` directory (discard the changes to `README.md` before git commit). +5. In the Unity editor, right-click the `ProtoPromise` folder and click `Export Package...`, include everything, then click `Export...` and name the exported file `ProtoPromise.unitypackage`. +6. Upload `ProtoPromise.unitypackage` with the release on GitHub. +7. Upload and publish new Unity Asset Store version. +8. Repeat these steps for each new release. + +Unity version may need to be updated to use the earliest version that the Asset Store Tools supports. + + +By default, ProtoPromise types are marked with the DebuggerNonUserCode attribute, making it impossible to step into the library code with Visual Studio's debugger. To disable this (or rather, to enable debugging), define the compiler symbol `PROTO_PROMISE_DEVELOPER_MODE`. \ No newline at end of file diff --git a/InternalShared/CancelDelegateWrappersInternal.cs.meta b/InternalShared/CancelDelegateWrappersInternal.cs.meta deleted file mode 100644 index 1c448ac8..00000000 --- a/InternalShared/CancelDelegateWrappersInternal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7c8be1d72fd2541a69053fba7eca30d6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/InternalShared/ExceptionsInternal.cs.meta b/InternalShared/ExceptionsInternal.cs.meta deleted file mode 100644 index 858cd04f..00000000 --- a/InternalShared/ExceptionsInternal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ef016f3373aed452484e8df9fb9e5216 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/InternalShared/HelperFunctionsInternal.cs.meta b/InternalShared/HelperFunctionsInternal.cs.meta deleted file mode 100644 index 6fb188c6..00000000 --- a/InternalShared/HelperFunctionsInternal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 57546433636fe44688764b39a2da0fac -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/InternalShared/HelperTypesInternal.cs.meta b/InternalShared/HelperTypesInternal.cs.meta deleted file mode 100644 index 81f6cad8..00000000 --- a/InternalShared/HelperTypesInternal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 94cb8c52169b6425e9cadf1f0fe70ceb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/InternalShared/InterfacesInternal.cs.meta b/InternalShared/InterfacesInternal.cs.meta deleted file mode 100644 index 3e01d615..00000000 --- a/InternalShared/InterfacesInternal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: aa26afbc538fb4dd982cf6952cf37bda -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/InternalShared/ValueContainersInternal.cs.meta b/InternalShared/ValueContainersInternal.cs.meta deleted file mode 100644 index 72ff8633..00000000 --- a/InternalShared/ValueContainersInternal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9eff0be3c55c34055b3c1341202efe90 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Config.cs.meta b/Promises/Config.cs.meta deleted file mode 100644 index dddbf3d2..00000000 --- a/Promises/Config.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b33e82b5c138346e19d0efe60a181fa2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Deferred.cs.meta b/Promises/Deferred.cs.meta deleted file mode 100644 index 6cab0387..00000000 --- a/Promises/Deferred.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5ee769b3f6bc545dd817bbc0a447b902 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Exceptions.cs.meta b/Promises/Exceptions.cs.meta deleted file mode 100644 index 08ab0abc..00000000 --- a/Promises/Exceptions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 37b88668009ba4a52991300997359010 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Extensions.cs.meta b/Promises/Extensions.cs.meta deleted file mode 100644 index 88d7f6f6..00000000 --- a/Promises/Extensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a162e3a7b8e73461f9fd65300af43e5e -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Internal/AllInternal.cs.meta b/Promises/Internal/AllInternal.cs.meta deleted file mode 100644 index 8aa0eee6..00000000 --- a/Promises/Internal/AllInternal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: b75cb23255e0549058b1587aae2f90a9 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Internal/AsyncAwaitInternal.cs.meta b/Promises/Internal/AsyncAwaitInternal.cs.meta deleted file mode 100644 index ffe3b3df..00000000 --- a/Promises/Internal/AsyncAwaitInternal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f8d413defd8934efba9eaf267a17308f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Internal/CancelInternal.cs.meta b/Promises/Internal/CancelInternal.cs.meta deleted file mode 100644 index 6c10ee69..00000000 --- a/Promises/Internal/CancelInternal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 67d324ef6ca014c56b79c245c1706399 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Internal/DebugInternal.cs.meta b/Promises/Internal/DebugInternal.cs.meta deleted file mode 100644 index 945dbe84..00000000 --- a/Promises/Internal/DebugInternal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f8fd0571605104b2da75fd055a58bdc0 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Internal/DelegateWrappersInternal.cs.meta b/Promises/Internal/DelegateWrappersInternal.cs.meta deleted file mode 100644 index 77c0c4e4..00000000 --- a/Promises/Internal/DelegateWrappersInternal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e2b074244285645f0a216f7cb8e1bfa2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Internal/FirstInternal.cs.meta b/Promises/Internal/FirstInternal.cs.meta deleted file mode 100644 index 58aa3ab6..00000000 --- a/Promises/Internal/FirstInternal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d895182343e9449188e422f0b8b3c12f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Internal/InterfacesInternal.cs.meta b/Promises/Internal/InterfacesInternal.cs.meta deleted file mode 100644 index 327d387c..00000000 --- a/Promises/Internal/InterfacesInternal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: fbf1e075963804b52afa628f8aa55dbb -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Internal/MergeInternal.cs.meta b/Promises/Internal/MergeInternal.cs.meta deleted file mode 100644 index 3fa19a5d..00000000 --- a/Promises/Internal/MergeInternal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ffd1e304b39744dae8a9949c94230030 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Internal/ProgressInternal.cs.meta b/Promises/Internal/ProgressInternal.cs.meta deleted file mode 100644 index 46a3868a..00000000 --- a/Promises/Internal/ProgressInternal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a8e496071fb864dd5a0e0b396bb90897 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Internal/PromiseInternal.cs.meta b/Promises/Internal/PromiseInternal.cs.meta deleted file mode 100644 index 5f7e3db6..00000000 --- a/Promises/Internal/PromiseInternal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a2142f708a9fc4053bd0221f1c39a037 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Internal/RaceInternal.cs.meta b/Promises/Internal/RaceInternal.cs.meta deleted file mode 100644 index 948aec93..00000000 --- a/Promises/Internal/RaceInternal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1ae7c479f81154b4b940ba5f0bc46974 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Internal/SequenceInternal.cs.meta b/Promises/Internal/SequenceInternal.cs.meta deleted file mode 100644 index fa565702..00000000 --- a/Promises/Internal/SequenceInternal.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 384dfbf64c8d74d968e8c3aeea9521f1 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Manager.cs.meta b/Promises/Manager.cs.meta deleted file mode 100644 index 8a4ff381..00000000 --- a/Promises/Manager.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: de95b3f376a4048d29d9e014eab3256d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Promise.cs.meta b/Promises/Promise.cs.meta deleted file mode 100644 index a58f49a6..00000000 --- a/Promises/Promise.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e3f1e621b2e194ac2a0821a0b5286816 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/PromiseCapture.cs.meta b/Promises/PromiseCapture.cs.meta deleted file mode 100644 index 2029aceb..00000000 --- a/Promises/PromiseCapture.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0cedfa2e409d74a51ac4dd22ac762af5 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/PromiseStatic.cs.meta b/Promises/PromiseStatic.cs.meta deleted file mode 100644 index e0c50814..00000000 --- a/Promises/PromiseStatic.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: abaf1a1e73ab948c18c92c8e86730021 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/ResultContainers.cs.meta b/Promises/ResultContainers.cs.meta deleted file mode 100644 index e52b29e9..00000000 --- a/Promises/ResultContainers.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9049f766ea09f44db92647286e3ea7a6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Unity.meta b/Promises/Unity.meta deleted file mode 100644 index bdf1f587..00000000 --- a/Promises/Unity.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 7934318fd2a724eebaad5c3559c8a059 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Unity/Editor.meta b/Promises/Unity/Editor.meta deleted file mode 100644 index 4bd7a189..00000000 --- a/Promises/Unity/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 261eb1a60d9d748c982190a62e3f7702 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Unity/Editor/ExecutionOrderSetter.cs.meta b/Promises/Unity/Editor/ExecutionOrderSetter.cs.meta deleted file mode 100644 index e25d25a0..00000000 --- a/Promises/Unity/Editor/ExecutionOrderSetter.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: d3b8cf0d9ff0e49c3b2d09a591299956 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Unity/PromiseBehaviour.cs.meta b/Promises/Unity/PromiseBehaviour.cs.meta deleted file mode 100644 index e969e430..00000000 --- a/Promises/Unity/PromiseBehaviour.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7550a0104a4ee4e559777f06936272da -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 32000 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Promises/Unity/PromiseYielder.cs.meta b/Promises/Unity/PromiseYielder.cs.meta deleted file mode 100644 index 49f53327..00000000 --- a/Promises/Unity/PromiseYielder.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3b7fdb2966e2542b782592ed3c744b35 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/ProtoPromise.sln b/ProtoPromise.sln new file mode 100644 index 00000000..56eb4271 --- /dev/null +++ b/ProtoPromise.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30523.141 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtoPromiseTests", "Tests\ProtoPromiseTests.csproj", "{27C1B5AC-2E73-4B91-8258-C67B4B064569}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProtoPromise", "Runtime\ProtoPromise.csproj", "{2A0BBD14-FA01-467C-8A42-55C5C287F66D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {27C1B5AC-2E73-4B91-8258-C67B4B064569}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {27C1B5AC-2E73-4B91-8258-C67B4B064569}.Debug|Any CPU.Build.0 = Debug|Any CPU + {27C1B5AC-2E73-4B91-8258-C67B4B064569}.Release|Any CPU.ActiveCfg = Release|Any CPU + {27C1B5AC-2E73-4B91-8258-C67B4B064569}.Release|Any CPU.Build.0 = Release|Any CPU + {2A0BBD14-FA01-467C-8A42-55C5C287F66D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A0BBD14-FA01-467C-8A42-55C5C287F66D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A0BBD14-FA01-467C-8A42-55C5C287F66D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A0BBD14-FA01-467C-8A42-55C5C287F66D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {F0A3E32B-A74C-40A9-A0D7-0E1BE536226B} + EndGlobalSection +EndGlobal diff --git a/ProtoPromise_Unity/.gitignore b/ProtoPromise_Unity/.gitignore new file mode 100644 index 00000000..85374857 --- /dev/null +++ b/ProtoPromise_Unity/.gitignore @@ -0,0 +1,275 @@ +/Assets/AssetStoreTools* +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Aa]ssetBundles +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Tt]emp/ +[Bb]uild/ +[Bb]uilds/ + + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config +# NuGet v3's project.json files produces more ignoreable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + + + +# Visual Studio 2015 cache directory +/.vs/ + + +# Unity3D generated meta files +*.pidb.meta +# Script meta files +*.cs.meta + +# Unity3D Generated File On Crash Reports +sysinfo.txt +*.blend1 +*.csproj +*.sln +[Ll]ibrary/ +[Ll]ibraries/ \ No newline at end of file diff --git a/Promises/Internal.meta b/ProtoPromise_Unity/Assets/Third Party.meta similarity index 62% rename from Promises/Internal.meta rename to ProtoPromise_Unity/Assets/Third Party.meta index 0819f3ac..d9d32846 100644 --- a/Promises/Internal.meta +++ b/ProtoPromise_Unity/Assets/Third Party.meta @@ -1,6 +1,8 @@ fileFormatVersion: 2 -guid: 998d86aca5b0244388664752102f4ad5 +guid: 7e2cae874c254e145ace0664e25b9caf folderAsset: yes +timeCreated: 1603952471 +licenseType: Free DefaultImporter: externalObjects: {} userData: diff --git a/Cancelations.meta b/ProtoPromise_Unity/Assets/Third Party/ProtoPromise.meta similarity index 77% rename from Cancelations.meta rename to ProtoPromise_Unity/Assets/Third Party/ProtoPromise.meta index 279ea6ac..4943e9ea 100644 --- a/Cancelations.meta +++ b/ProtoPromise_Unity/Assets/Third Party/ProtoPromise.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 45b968e3452c64d489fab47196655fdb +guid: 6c63d6f08e455494bb5c97040c1ac505 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/InternalShared.meta b/ProtoPromise_Unity/Assets/Third Party/ProtoPromise/Demo.meta similarity index 77% rename from InternalShared.meta rename to ProtoPromise_Unity/Assets/Third Party/ProtoPromise/Demo.meta index c24cc6e9..7a83b16d 100644 --- a/InternalShared.meta +++ b/ProtoPromise_Unity/Assets/Third Party/ProtoPromise/Demo.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 6d6f80226b5384cfebb1a0325beed820 +guid: 873f865562d6bc04b9d9dc38a814896f folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/ProtoPromise_Unity/Assets/Third Party/ProtoPromise/Demo/Demo.unity b/ProtoPromise_Unity/Assets/Third Party/ProtoPromise/Demo/Demo.unity new file mode 100644 index 00000000..fda17e7e --- /dev/null +++ b/ProtoPromise_Unity/Assets/Third Party/ProtoPromise/Demo/Demo.unity @@ -0,0 +1,720 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 170076734} + m_IndirectSpecularColor: {r: 0.44657886, g: 0.4964127, b: 0.57481724, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 10 + m_Resolution: 2 + m_BakeResolution: 10 + m_AtlasSize: 512 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 256 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &170076733 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 170076735} + - component: {fileID: 170076734} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &170076734 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 170076733} + m_Enabled: 1 + serializedVersion: 8 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 1 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &170076735 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 170076733} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1 &210605943 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 210605944} + - component: {fileID: 210605947} + - component: {fileID: 210605946} + - component: {fileID: 210605945} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &210605944 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 210605943} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 653780066} + m_Father: {fileID: 268706088} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0.000022888, y: -340.02} + m_SizeDelta: {x: 267.23676, y: 87.96579} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &210605945 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 210605943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 210605946} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 268706084} + m_MethodName: OnClick + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &210605946 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 210605943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &210605947 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 210605943} + m_CullTransparentMesh: 0 +--- !u!1 &268706083 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 268706088} + - component: {fileID: 268706087} + - component: {fileID: 268706086} + - component: {fileID: 268706085} + - component: {fileID: 268706084} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &268706084 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 268706083} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9a9f5915a5e3736419d577455fbd7c7e, type: 3} + m_Name: + m_EditorClassIdentifier: + image: {fileID: 1792142286} + imageUrl: https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png +--- !u!114 &268706085 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 268706083} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &268706086 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 268706083} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &268706087 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 268706083} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &268706088 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 268706083} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 210605944} + - {fileID: 1792142288} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &534669902 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 534669905} + - component: {fileID: 534669904} + - component: {fileID: 534669903} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &534669903 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 534669902} + m_Enabled: 1 +--- !u!20 &534669904 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 534669902} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &534669905 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 534669902} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &653780065 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 653780066} + - component: {fileID: 653780068} + - component: {fileID: 653780067} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &653780066 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 653780065} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 210605944} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &653780067 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 653780065} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 36 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Download Image +--- !u!222 &653780068 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 653780065} + m_CullTransparentMesh: 0 +--- !u!1 &1357712126 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1357712129} + - component: {fileID: 1357712128} + - component: {fileID: 1357712127} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1357712127 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1357712126} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &1357712128 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1357712126} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1357712129 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1357712126} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1792142285 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1792142288} + - component: {fileID: 1792142287} + - component: {fileID: 1792142286} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1792142286 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792142285} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 +--- !u!222 &1792142287 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792142285} + m_CullTransparentMesh: 0 +--- !u!224 &1792142288 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792142285} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 268706088} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 66.6} + m_SizeDelta: {x: 1102.8086, y: 418.81195} + m_Pivot: {x: 0.5, y: 0.5} diff --git a/Promises.meta b/ProtoPromise_Unity/Assets/Third Party/ProtoPromise/Demo/Demo.unity.meta similarity index 67% rename from Promises.meta rename to ProtoPromise_Unity/Assets/Third Party/ProtoPromise/Demo/Demo.unity.meta index 79c0b679..99b77f62 100644 --- a/Promises.meta +++ b/ProtoPromise_Unity/Assets/Third Party/ProtoPromise/Demo/Demo.unity.meta @@ -1,6 +1,5 @@ fileFormatVersion: 2 -guid: 6efd7e40af94748c29b3b39aeb79bcea -folderAsset: yes +guid: 8ca03dc489bf2424690bbdf4d8da5b08 DefaultImporter: externalObjects: {} userData: diff --git a/ProtoPromise_Unity/Assets/Third Party/ProtoPromise/Demo/ProtoPromiseExample.cs b/ProtoPromise_Unity/Assets/Third Party/ProtoPromise/Demo/ProtoPromiseExample.cs new file mode 100644 index 00000000..6559642f --- /dev/null +++ b/ProtoPromise_Unity/Assets/Third Party/ProtoPromise/Demo/ProtoPromiseExample.cs @@ -0,0 +1,55 @@ +using Proto.Promises; +using UnityEngine; +using UnityEngine.UI; +#if UNITY_2017_2_OR_NEWER +using UnityEngine.Networking; +#endif + +public class ProtoPromiseExample : MonoBehaviour +{ + public Image image; + public string imageUrl = "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_816x276dp.png"; + + private void Awake() + { + image.preserveAspect = true; + } + + public void OnClick() + { + DownloadTexture(imageUrl) + .Then(texture => + { + image.sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f)); + }); + } + + public static Promise DownloadTexture(string url) + { +#if UNITY_2017_2_OR_NEWER + var www = UnityWebRequestTexture.GetTexture(url); + return PromiseYielder.WaitFor(www.SendWebRequest()) + .Then(asyncOperation => + { + if (asyncOperation.webRequest.isHttpError || asyncOperation.webRequest.isNetworkError) + { + throw Promise.RejectException(asyncOperation.webRequest.error); + } + return ((DownloadHandlerTexture) asyncOperation.webRequest.downloadHandler).texture; + }) + .Finally(www.Dispose); +#else + var www = new WWW(url); + return PromiseYielder.WaitFor(www) + .Then(asyncOperation => + { + if (!string.IsNullOrEmpty(asyncOperation.error)) + { + throw Promise.RejectException(asyncOperation.error); + } + return asyncOperation.texture; + }) + .Finally(www.Dispose); +#endif + } +} diff --git a/ProtoPromise_Unity/Assets/Third Party/ProtoPromise/LICENSE b/ProtoPromise_Unity/Assets/Third Party/ProtoPromise/LICENSE new file mode 100644 index 00000000..012f7aae --- /dev/null +++ b/ProtoPromise_Unity/Assets/Third Party/ProtoPromise/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 timcassell + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/LICENSE.meta b/ProtoPromise_Unity/Assets/Third Party/ProtoPromise/LICENSE.meta similarity index 74% rename from LICENSE.meta rename to ProtoPromise_Unity/Assets/Third Party/ProtoPromise/LICENSE.meta index 2da88375..c905e92b 100644 --- a/LICENSE.meta +++ b/ProtoPromise_Unity/Assets/Third Party/ProtoPromise/LICENSE.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 763cade3f74724b508abd54d6ea7c417 +guid: a50f477ac9c72f341b8e0e4b430efe84 DefaultImporter: externalObjects: {} userData: diff --git a/ProtoPromise_Unity/Assets/Third Party/ProtoPromise/README.pdf b/ProtoPromise_Unity/Assets/Third Party/ProtoPromise/README.pdf new file mode 100644 index 0000000000000000000000000000000000000000..43e9cf496f68930172c52ad1c4baf815f4851cac GIT binary patch literal 120564 zcmeFZWk6iZvM>t4f@=uQ03k^58Qc;yxVy{X?oROF9)brCE0R%vSAW0mMoBelzrq)(MdJYf_ zgt%CkSeTfZSU8zjm^neL>NH4vd`Ms`!+T7Df5q6<1`J>nc5x6@aDe1QVpMnqaIkZ{ ze~HNLD8KsYzYkt0LzOCX#K{4?Qb}!%IKSc4ICg9JL)?;U?pa$XAG%C#njNj1i%5o%CQNYx}UKVU8Xl-c&soV+@2|>`>!rD&3M$Z63(H}J;F-n51j3EWELu!;qViYm8 zfZzlH5L6Tb8(15H?;FP60n#0oNOzNWi%=NiB4Q#?(9qCO5|AI%-3*i<)FWu<`~R;C z1`g)_f`^5LfkS{tK)AmjBO)U{evI@O0RagW2?-emav>n1p`)Up-9O(Ka-aP^7vzuf z7~%0f#DDL)`v!&i7)l;W9tN5m>JcV13?}qlD-)`O{_~i8L{NnPSE@&v2pJe?(*+0>R38Cu|qz_;b?&*Sl zkB6mucSm^MLD51+=zU0^wUA>UI@KXGS zxEyxy>luo)n3#JA5~+LTr3hsdK}{O83Q3ZMo{nsf>^aOjy#5H)(TMYzZy_Eh5dRK} zGmC#6adrm%<>?YC+U(Jkw@tWc? z@9l2slK-Z24MN`)FuS#vLIk}Mr04888^bk`7rTmAG=eV!?H9=^R!>knf}6XQ{!!2?B2v*A?nj$zJCYRN`T@vUgc_zR#2TLe5lS-Ed%_fRAZsL zXyaw|Vq*dAc7z1UmmXbw+{1iHLk4?cYNqoPd&@@9Zn%q}nkVy{Z|gpDze}kKe$z!7 zA%YA(hnBQLByD}nsgt~&@{n24Zf{0d4$Wt(s;}6C=cidAJqM8y$1*|cgj-&KaZn$& zR9Jv{;Z=5ZfY=5*Ck)kaz6Nj9~KEcI79v@t@()xPvw6ROr6 zdd$MC?#+cy0(Q3jk~VnARxC-E;r(#)KWx=mRpkyu6VHWrYYLoi2MN6D7%wP6z!oPN z&f%nyHrouPO~1-M+6Rk(eVTJo+RwzM2pV8rcA&*skcv( zXjnud^Z|?6Y2E8lmU-Q(!`1{MC$2Pxq6zN;78# z-ElL_oxi(w#$?tljnIn6I}u^L0vv^rmM+q*r75K^*;cJBNwaA7=`3wKRGHUJ46bwx zI@%oiE6r8%J-dVQed9s2-_fjdP9@Xa#lxAcVJfqXe8Vj_Dk<5qqk@_%Rwwv5P1;>o zX<=sIlyo1VX<<^OWu9ReG_`V|-=jNGmz`kO!;m@BE}8qXS0#Zg5UQPtqt7iN?CawD zuNZvKZ~N4(-*|`~@J%Sj3XLt*kCafBJ4;BY?r6i+z}WD&qKWaKs8rpK>r{Xjb||kH zr>^;`$1RWRLzO=nxYF0g6LxBn#$mW#9_SRyuk`XERqKeS>8|4~(~1`*RDQ~%BGER_ z{$A{8=`>@|<$@@sXq8%u^KK?R?Uv>|x$t(7zcQ#LoUn}q?*O4Sm8!)HeK;qyrJ9`{ zC&@p?)J9W`8?%e@dkDlWV|@uZOwqff+yXwd#4S?TVJYbd|d&%kVUeHQ1uJC{skPO2cYd zz+WdBHa29h?O^xyzDl!_ziEMd?k21HVXU>16suVNLUQWW&~`z23e%H|o8vu)z1>^) z&8liXGe~E?zU|%DabM@1FFxYCsUhqkVi=PcsT}wHi-)R9~kJ6*oaW3gNj#`{=zEjN_xXK!CJiA3ayLvi*+vWu~aU445 zG^6clbYqSCnm!2{1Ji%{l|fo!!5vgN`VV2xD@vD{Wwc`F(&=rn6^-{+6cL2V{?q<3 z&P|jNKQ3Bw`Su!Jcr-dxCEM}mNw*mswysF^p7vQg$=R<;sdH&x>GY-INy2W{VXc1B zoSku0*Qq@gfy1%79MbXCJZmAPz8uVoY!9J{A=?z24xxrtmG=?GK}Eb4@VlYTe531j zAB38w&h$yYo4Vin{Mu;z+KAn6N$xjfEX*L5-y0)lrr+BqCIBO3jRgRK000sPGmwFm z>HY!$nEu#AG5_9sYWx+Jor(P)fLQ)jfh?Tt|Ej>hZw+5rSy}&eQzmI@Wsbxs580^! zG*~!(l>x!(uNeLZ@mffX0@ikhklhyqU&s#8F*4fNSzDUggYETfEFA3_46H2~A9l2V?mC%&Z#(}|;D3TTGw3(&0029X z^^dk-=KQmv*+HP+@&6~N8-ks{7S=XkI|fT@H&Y7>JqBw#V@9wQy^;c>p|ycMqY7A` zQC!bSPr<;>)W!kQwnkt(u$2LrQPjd(U(Z74=f>Fn{seH}2LDVr>#zR(uMy4y1pOn$ zEbN>N><_#JiT~fB*x1y;#8LmDm*l~E7W4{WJ5y^%dwNklORznoAiaW#o}CT-e?ZRP zPX_-f3vzNYu>8jUFZ~E)`Ahu&4pn;g_FxBl$e|6);Amy);QBxxSZ}$5K76o$t!IuA99d^%#43?$_cGmXRMh*{z zLHN_r9>SjvR$vE4dj~x$Lp?h~MjJglJqru41wDjLV>>-dOH(UjMhD0tkp7Pp3sZeN zJv&!=2OEojrk~@##i`7!f1#6w?T@x#fy{+}FzlaQ{(mw=fA!jbJiGjTjLANnO=a~U zBh>+LKgB}MmV(w+4v?TdfSL1Wggn^Z+R@GcY!6_$pQ<4s54;Qs{>mW*HZ;`}uy*-5 zBeHU`0ysb{T7NmKKjgb#BkpXZLLPY%XXnX#Z~0-r@?3@aXb@z1g3iKfycX)y%xx zlGYpalk}BH@2Q)8sWbBpo22DIcWC7n-Pv<3f*pjVopY^MmxWjBE2Z@+rluLIgY|k* z@?w;N^G` zM{UYP*NFb|MMiehqYw!E1J=^G6yzITUT@(;PdwW9TedsEowyqAiMGjD#_w|c=Ua&r!P;$HKHB~I$FQtux3IHDXVFODJ5?I z2&K}9;%*^MfFe65!A>H|{PiCY(BA;@OZo+!==L%w>kKaHAM7 zt8mK02q;ReB^3F{~ zg#Pl{wakT~+&}PUN$f9|jn5ZW5_ZSDy~?%Dc1c&hq$S8Z;c2QqZLMd6xo9N1PFe8w zIN!73xtr+P{o3s9y?49r-SXaBn9y_TgEjw-w&xz#W}OVbvnk?2ZlsKX-E0kX9{)|1 zJ1==(^6tojGqhh(`Ecuxj%%TID!vT^hFk%Xw2!0h$9%k8JVUkNgMwp(b4FA6@6Uy{ z=Ba($KOJ;^bZkdx!+zbksaB6D~9$^9nR z{V3P{YM0Dr804^FGP4oNc6p;i;E8Jqo%O%0}hkq8Yn#kZp_I8%C4XaIYkELJ?4unQy16dz!l&?xmk+8)38`)e$X9 zC0vuSe#*d)c$#dcw+(jR=i~DsiD25hx)xeR*#Wv?!_<=44ZDj>Zg* zj6}=}dA61^HkSDgO*KJ?dtufFw%ftv=^N|sIEM@DPKh|1hIFX<5F_YJ+)|ve(@3XO zK`JYQfG*qgm#hgx^c{zbCcZ?eA@k-*?(@odSXoCU&!jg#^?GHhOIwrPbHQLBq3D#} zTmEs9!H<`G{G89r!12TcWTq$nB$DeSVA1|Cl-QnlB%HyRJ z^W5cmdk3!HRlHhnTVsj~6ZYV@4ExxrjuuO-LK;46{xNaBpR+Qdi|>QaBV=>q@2`Ab zVZE7EuU+`2ju=Z@W4mU-o-(Qy%pveN!rrXCQIeF~GJAw4;=A~;g9#YMq{?{I~(;Vs`N<(l^nsMTVU^Z&psFm?lxSp5y(n zx32vpU^hDp>;1@4tH-gNg_e!Pyv|V5H&=gZ`u&Tcs3*%j1azj`Fqn(Wnem<# zClC9ktd?cLkR7|dtFq;ca8ggybAd8i6S)Fx)Y=mHRZ8ETzI-&(Tlk$oz8mYU<+CjEN8@(b?7(?VcO zu@M48cgK?s>f8^pW^@A>U&EwvEsOTz`W77C)JZ3vAAD9QaGp0|efCEFV|0jT_*Wzy zhg)#a^v39fst|TK=HeTISG(H@b2HY;-*H9_%)auqC>q&(4gim2icI&;jyth#uF*8n z(FZ$yi<+M`r)=!+rRR)m?>4}eOB>hU>Vi{)vn@6+uTn(kGa$t%j4 zoGW1x-ct^$5m^yHn9Isdc{&Gcq7Gb3N^QI$ia1?vnx^V}*qLnD8Fj>JF~sWEh}E%J z7RlmeQsQOB@w&-zx}kBp^~#iZxiE??{sL_A;#>&9_~k`~Z4_**)(S`ca!0szcAa+k z_ICdG6R*|EcN89N8EpZ7Se#pFASuZbWu+(@Vl@V!F;Iyv()Qh_%`E;Ul&QV>N$+cJB)fG?kLFmL+))q($WWFs*g^^+>H~%(&;N}R-s){7llP`Bw^Dk zKuIIa>JLKW6mce-nBqdb`qwWl$eN#+W$Wui(|^p!5e;J(Rl2;7duT_3Dc{L$Ovd4k zR`DN;nhhFsmPs!?5?3=~=v_Y=#s#e)hP@|F`+~LH^Nt5)a8!j7oq|Y~qSLb& z^I+_Du*(eqd^t`RuT_QCI|RSPb7yxl?$P$WE^Ai5>n6jyJ)i)Zej| zkXYr*OY!XF3ZB>@4o)T%2ryuxeZ>6!W&Ej~+_Yx$D;A||JMiX~nGdR}4`7bo|13bc)8L0``bO`K*E9nejdfr%egb$e zQC&^jNSaa)O=_6RIVgb_M=}Wk#ESkp31Kt|;aML{)Eac`nqG2JkW^AoF)Mm92t5>p zuA09F?cV1nmlU|#tF0_fuWsYF(vuN7lPcM7$@xhqu0^%B>!p(v%oHWe)EIn)1bl@c zd_^*f;RGm3izQ0S5>Rgl;5G!*R}pl2dB0&C0alv4LcqOR`bd&;Y#ZSmru@|e{_}CMqfK_&h1mc97|1nmMO8- zsc-kR3%?p>O}kVlgBfi(`rK}v?#n7DLWK2I*=_~95mpAk8|{cruU;2~D|d#+&$Jo* z(LF9)@yCmpG+g>QikAvH@w=Ey_e0k_Jew-raCbPNV536K*<%mfE>&moI6*GJZA#$9 z3~IW2{SvT;fUFDl|rp9Ox1nvlR}MIB1`e)DnuHGUPC$#D%`WHI~eO{fu7Ph z#l2$cOAU2lvF^>Z)SYGAs$6F_&}iF4B!hKNNCvqA5h_cXVSbh%&QYYX#{wPT{7kU(%=5i!h@0d*(^^lzJm<7Lm)lh@1##Ero*!8G zxzuRU>{YwZOL2J{+k`@-qlN8O?>}>aYPp`3ps}h1wT?mCI{qy}l}5#RgeD)6ki{%D zCvO%kEi_xlukt0kXPT)+ z1rq5+(=*1Rduf?HGq&2tUgB;%L&8RZKgfZCJrI9`oRB{%lNYuli zL((!7;pq}?&##fL5880&3?m3Xb5UvS>{Sf6U{<1_P$1^VPzbjPAjqFoF)R?Nd~f!q z{fkhW;;(TRnNQ#2k8Ts>V8S|&~Q==rp+N`Uv> zx#^jc@O#jgogIx&r5c|yhJU!>F*+pH1~uoW-=-KD3fb>(3m@5=Ia!$WcWyv>l1a?7ecj)T_$z&P8!uBBtyKqSwE>&5<1#5-8?(=YPH>_ zT!_bTrmIkk5DH0-f9GCy3gVmpV)Llbg{0+WQq$F^xboOZ-gx@5z6v-ti03%xmj<~z_#M$Tg4VeTwp87CMAT_V<$86F283;1-&tK&p?~A#etGk^) z;)S0J?xna1&{>=uJ$e*K{2TtHkMvf~y*_Ndm&{Q9!tQ7sM%$1^pi6CR8AF}fLv zu*fusxLeOuUyGH!iP6;)_YE+@qRW1!`Y~3QjI!wwBpm;|$+wo$+Qs+Hr&<)uNo9QU zvT}%DfFk#k)R;HGViqB2f-4p!{LG(BWsYNW8W!fw#U&)__Re#Tu!XU#h*2}KD_Jj> zp1%)JdQ2YU-T;DD@S+198IY}Z2&9rC)9~ZUdeKQsfJ9^P&U#q^nC@&kn zR-Ih$sL1RB5!=Ve;;Hz)3s=`E-sjT#o_1uGCb41O-4b9#!jR3Q`SHkxY<1}oBus<; zG|BaI)S*pAe@j4I5HdCTQ{|)}geQD9%bkb)sq1Xu+#oc_qTQD9Yw|$%o3+mw)z0s{lzhi|!KE94`<`WO*`S*Smv1pk_)LC;cnR{9t#qw;vMkKwMs@h4!NBWWrW&HNP7JUq(n z>K9U-W|#tL6>eI@8?e-Wo)u3S1}d}2ozOa&JToQ9KE#Nt80OZ!~b_F?dSI1v4%whT{`o0@H|zKVk67Nt5#ov5=@Y zc2ys=6DA7}A8_pD&P!s22H74T`wuEg3D)PVi&S^1@HX#u`VX)Fh)8PZ)VG)_{^7Qo z+^%7cuFG<6SF{+W@Lp|TMl6mr_?g@Iu{fu@R2t2k23kTG$F!H)YXfJN&CB^7r?@Is zzo2~fy@HY4^>+;7$aB~h6#-etUD581OyHrsROh^9{8GN#)0NV>?TNX->*O}|J-RzPX56`%zj~5FI599nhw8x}3 z^Zi{1+^@540N3Yps9hJ~Tzux*&5rYLrA_7nN^T)5)Y0n~PfPNja&fO_u^YYt_yiDq zWv6oL-y5*)&;*%`it}W|zs4NJDlEf5Z4MtSRF|QW{Zso^sev%LT`wm&9a;W zVL!3NB|I~gTl18h2#)1*k!CfTj*!(98sdPpRtOKqtj$JvM!)0PCLfHSZ*{%GTd5*H za9#x4kgq121c$dhiU@0aq>V=}{ke>yyIpb=MiH$sjv#!cC>#;wZeU6a!Nhdn=QpIo-G234wf0iKwMDw>>PY zx%@9gk?}70txVc4h(;%Njqti|UOyw5%09-Pj(P40@2mG@Z^VzGJbSY?TE@ue<(2wI z{BT;bxvOHyY89Z7$(P93s8ozJ9^k3Si0up;jsW^Hq|M?s9(oA_7o6ogPmCqX{&jqg z{wUzGDy7A+O3{eAL!W8~{EoP%EWy}=tLE&b2kZQ2{79t6ER@KJ3Qiol1rk@jq69iS z7D}s#i6Tz}#X&dc& zmPt~sbA$^YYteIkws;mS7k+)3Vwz>Uc0rds&^ZMEuGqDA31=c^0raJ@GpQEnA~kTi zmdBJeN2g90)FzlDe_7ze!2f<8-;{Upr3$pDPst-~Sj}duV?K+0)!Tgkh*Ce5?nh`2 zu3$G}v#{$3Li9EJA3fn*@mHa6mC)-IN{g#8omN}}*n>9kO?I#G8MQPPLdjK3~E zREdv5=K6LN-#v1{wbmrg#fT_^|K`-CvEuxecyb=^Ytt7&&Cn6VNC+;blfFpX z)fgy*uw&8u?ta8bix1J#m;GcZ1ImHn{wX}d&%8JIe%zAMq{EN>{cVc} z?a{qPiH(izkJl|&e!n)L!TgukEtr`gO7cJ7vtaqH{`&_Y5F6+ZJ>*|t|NaWaf2t~E z`KdXBX#M|C75>t<{Z*M zLu>rA*6*L*-2D%=ep+*pv(=d13tt5WpvgmZ$Pw}2e|%E-@Dd4+Eh;Dzz5TfcY7YWLW8hLu0tWTb@xD=^)VejPt)5A(W9;1k-a{r%d_2)T=U}1 z_PeB|ftt!!bxv+pDY7H>pKctFsxIm-K40M7-qztSTsfT8>>n?Puz922-3?#gkY*fo zY$gQioI4r>SO!7+Bl6FWkP7ErRi8E256-9Fa$FyNW#ji4xn}DfuPcd#==+?G+WEaD zv{7~Wpr$AKNC>sI-7UFSQi#%uLDSC7=mRAR+DIep-WJ|74Fu(%ZS|D%!-nYRN5! z!6IEqkL8EsfrTF?v9ZHyiDg)K_`!FAPBf*JUn!?!&qQK~-z}u-`jz-MqfDpwg-9yf zs>(C1$6V#hw(ODy!immLM0#Lch~)BQL133Q+7Xd{0xw zR*V*P_AcZj8Z|TYG!v3fWTgnX_%sD3<&J-GSD4&3^q1E{U2fz{9}4;VUo$!4FR&XG zzsSQ`jhkWKiI)ojA`#PM!Z%q9p@uM5Oq;+Z%w*XXgq8_BZ88~Br|_>V=ZQUiohHV; z^dbwad-5fL#R}C<&;Nw&o$&%(HM_V8v3(x;h{krDjbfUoi-QPfMm|sMI3$Dnvw`f? zefC6VGv04cyMSr~p0i$>H?|_a`90@fn4f0YiOWgX5N7JXmNGuPKyPG`}ex?WMEvqpOx&v?X^l z9wz3#D+|$h2zZa+(KzsScJUP7>^&~uzSzGglPUMe zr>(bEGHjALLU!Grxd~Q|nl`vfaAK+A4V)GHt}Z z(QQ3hd=sJ7;e7g{YT1F8xD^dyV()o(swvWt;1AsfJ(?z>$o#%&x(4~j&}-+gt9S&P zi~N(f4xrES%n@rdyKcKuHjmQ~N1I)4C61h{#R z2_)RC(Q(8?{+(u}w#Narcp$FJ#w({T8atY*5+(4ZlyY5q+{z|TBF!YNfWSz8^;wHI zGd(BfYR`c)UP@Y7xGL3JU#MQNz9H}PFup9O=#`QIA1bxO_Y)NiQ^4YK)iqVg0#lH2 zNgg^?Vf&y|H%ZQ(fqd&$?b4HU!V-V)41b+|p9A2RG5Jdj#j(rU_r?D=5R{F`K*Q$7j1@SgXg^QgqC(gaR7lOSZY ze-7Nnv;j%N`RMuaB6_uqw$Fx|hS)ahc2j;w=yqBz!r}9DLTKp4SFE>_Qu@K&#t;Zf zW~0&*!_35+Ffpf9i!dx#=`0RYS_fe)HoJ_3U*g*=H(df)0h|l(&wIE3kLS!`-CaoWOC`iixpAPA;IA zRkXDKi}zq7q#P`9yXQ|)sAM@d-}{#tH0V*hn@DXgfo-{YtsCbl ze88%8BmpMR!)2(RQ>kgVh&k<4Wrl=UmTuN|75?)LgybO3BQ|&OK#g`*`O(6F$H{$P z!t3iuh%%WqDf`DD8U{KLO^iLU+<0gR7Sbbb3^ia82SPein*CWUQ?=>5l-lktyf1ijY&KKl=LTGor4=s}BocuEZOq->F3i%3eNOKU zz^+`oLLq_@w#nJBrnW3#4c zlQKZT)s_Ey>t3$|rjmYIVm2Q%;hK3b8Qh$!#vWgAWByc4781O@)#EjX#;fnIz1Y1$ z9bJO@tG%2EJvLn0{o0F`^VRC}#Ckhexa-?V!p3!mVX4t@vOczXv@a|cH)@JxKN&)= zKt%?UE&3B6&o@e#K=k0PwE+m*^R-_(y3A^hygZedKHAkE&5jlFxs7!^!opMvB-iWd zkX+L@swrD^uw=hQa+{Fgj>CR6K=s09|EyGRO;oC`6lppuspSi>JP=c>us*gsC+i95 z3T+seTcK6>%F%3MS~}RJ(i5!as;p&SNmY;T@P2ejR zL^er<#~P2U-%k^jG-K$RMe_N|x>wg3fgU$GbcNN+O5odden(6R`B5nI)%&8@^`_4C z#OZ3?`^&8N?WVUkTj>JGdLFblzhG&>eITMDTp!}}WQQ{JG-z*6qyzKnxq-y4{v!7$ zQjbf-Buvuk)UEjR;vHMzD$amyV_MBr>b{83=#`3j*U)H#hNY8+RE{EUEp+Y8I2JZb z{xP<%fk>Zc+1k-aP!mp!_N9Gu!^oHD=3P0#-|>kCGG)exkKQB2_SO5dhskv|CUQn+ zEU=hAmo#+T4l~Ak~R;OA)2PhL8t`G<5>D1`b!p~7=e&}oJ=XLsv(USd*RI32i4IMyJ4AGCn)IVPKj62Vg4Cuq0;uQcCNNI$<>9I6t$Mj6#Q+=H4Q@}-G>?GE8CRra%26> zJ4F3c1Mz}=gtbh|*wSdaT^ECg_%Z%oFRcCW4-B+5WzHzN#}l{nwKT5=R^fUnDQjv8 zpPyy%>gT*)z_RN;;Nnap7LC*ov(q*Bp}s!1!|x&K&>tMNz`?mObzKw0aa;R|w9y@J zebPxUIg+02I~i`?A`wX-l*FOt)T5$Le3ILVU&vfC(bmqHkWa@CmjM}1@#dj=_`a`V z6!~Sefm6#CWg~30SN59}jAi->`yC$zu0&F2){tJhk!^Pnl{ot3gfrJMt5=RcCfi|h zc-WAqRR?i$EfCNYhj=ZZNiL_xwOAvtzdmh@v)x|IMB29eG#BNxFr`dLSvlV%Gp%J_ ztkBGAC_+k-Dkr@W_)S#3#(_7RH*C(#JO@~vx8qp|1LR&oNxk2B)N93i&fbi=SMlPNz9^-6 z`?*>-JFZ;7INQ96l*_1pO?h4wWU1_bQzNyQO#27{Gm5>OUKX-e7ILHe_t8?t1j>2o zAHBow`HE*uZ*92+XUG?75EtLHlERg`jnUhE7*QmCK;+33TcZB*RqqU)ggV0+!EznJ zxGvB49d_7pL+5@8!}Q zHX=oz?^{LGiK>6=Xc|q6x^~CJta%Lf(?s_ZR@sP5Sfv5%xW{olVs8kn0t&ERKKroC zmtz0?bSiYes60ISM3O^qI%%PyzqTa(a$Lq!FjC(ilcTi>;~7V^t&iq>y$lYO>Nk1c z1=k2TcL&qv(#T~^QV;(eDU;wmm~ z3Ij@uR@0QMK@Tu4EOt7C;}TPAW_x#9AR>iDvMrR067a2!&NiABZS?a#9$i>3&6~t; z{l3U?CB+^tMqzf{oa^)>oir-xRUF#Bxt||XGq9_spkoEdathCK2BfXiHmgX?4k$0D zDHw5*A-|svTaHQG(OeZGDY*enCk8h5kuRm_PXx#0q{w%MFIq0U>z9eL|uTp%FSwhWrx2`!4Bwf7bID z?49Y`Y{ipSR)I?OU22;U@Q9P~)VG`6{#wNq=lQ*LW&_qW3Rt%Vd*$4V9nf?w9|?U* z<2O??{-m!K9Y5eE7kLnWd^=ej%1v(fH}hG*DTBxEi=<#h*mFx=1kD zenXj|0mw+$SUKf2h8rX+!Nyy)d6LWK$A|cMpU0&V9l zxbadMX%M`cO44IrjxMBrH;zr+hCb+WKU25!=@&A~WY!^ABRB>ibNOdJ#Qoy%;>VO)pVw<)xj3_tl!xJb;Yw-cSn<8|`7+HvB2J=&-x?6A3 z6V0nIU&Kz?Q-7&V#ItM)!ocE!ozZ2r^{{5_FpcC+`}U1`jhOW`h4hHqz7I&c zVpoh@@C`4k1Cx6K$vXUC)nEdlrsmd@-8E%+);m465ZB zbh$KvwbM(IX{EPbN`SgU)Wp|aWslc$5>R~tE3Ie-vv0g!7puNVE$6k|gHdhff-Do! zm00K1gwtM{1H6`b5E;oND<(q?OrZ1ncUt-h0g1!;*A*>?_1G4J@v`qWva*sW-S(n|0No;vdsZs=t!qn0Cg*9cyu@4Bfe#uA}3P)&{Lb1~# zaOC_J*)!qW@YF0TeS3C>IF#76smMh_#|g-?!-f4TMac!G5%a^|`M6(dcYk(#3kwm> z;9@SoNwYwNGuX31o5hae9JJ(oJX~2RgNj10&7YBH^I~BROREO<;#H9>h6?!?t@By& zLnKxdO`~9sgt74W{We6>aH0HH%wmvRM47O7(as&zPvE#RaXdcOv9_{y2M3E$@GnHh zzb$rHnK{^hTj&9QTiyL>#`EvKUGV3p3y>HezG@(K|J{V2-&y!+zW{)UmhTPXepxyI zf7yrpJ4*+HrRehLB|Tjzs7K$SqW@07Lpk^IRA#n6(Eq!D`oDwzf8)ao4@5q+7Q|-b zH(|f*RsJnux_Hx&&l!A!g8mmo{g&A?{~^W){+7`Hzu70hB=!Febp@ufvT`O_NT0y_ zLreV&^zY00r#|`3Xa6(w|J!}?V1V;ypZqrP`8Q@Y2LD-~{8m2vrB8m#_x~j7myr>~ zbm`}pK@{%|Kbh}?rdAFQ0T#ghS5zz@W@W$A1pY9Oy0=7v3=vfY2e1v~5s6Xlk0&WT z2RqYyD=G#yCMIS!b`Z-wmoowA{~7@VG60#Ffj~|mfE5H}0I`7BSUK-Y{8RS=F|z{P z>nwh8D>D--;9g_#%WRhkAdbWWa7NN#0kCKRm;r`J_jOo8Tn>N*(tQh9Lfrdjg)JMwdS9iQPA&&=O17}5JU9e)|`KV{XND111yl~Pvh)A zVS)c@Y}|i1=sz&d1pS)*{v7q7UmC_=8duP-`S9OrTp#lN9+m$eX%NX-7W}N?4Hw)RAKt449`9G8k39tho|6c|DskMD*oQEF& zQ)~OsqQBeW*VGC6FRqq5T56HAozY%BP>{-Sgc{Hh-m9H+(gRoJ9^)!oSoj}c{>e^44kE> z3GEf*-E9Z*TLWGNc)9KRj*i%$U7u`fob7C`jC35I)#M%2%k158^WIqJ)!j+n-MOE2 z@KY|Q=jjl5Ep5jpd?7`OV!Js)zRtsGKVj&`!_w-#wra z)pqBVB{bTI#&wyIXq*C3BnlBQlYLy8dSRX!W$S__AWB)heS31vTgaMSF#mW-)1lnm>yd+jJ5{`j z$nJZ`?0P;kQvEXGkDdP7uZy$Lh)qyG@U@7*xY5?L&ll=8`Z**dQF@l;6Ub6zlgyl5 z!)|=w*8vcp-l`f5({=W&Kif?A{uC=ECiYaR`S~>=(j9tRaYNT_nj!iZLSd(kFYj$( zPGPGfJ}g+^B#JZ@n^|m<+1ta|Y`HNi;+Pply@{a19?S?vn#p5lE60_Kh0ot;?iI?B zVAD;(f_{(#K9AXyQcb4}vRP<8MC(oswb0-84N%azi)c zu`^3taAs3ymr_$w*fln>4ymZi{1Ed21fa?Q0Xkk<%b`E!qRR_-Oo)b=P3i|xnucJ^ z?ib~`KnFZlsittCJ;+5Svn{wv|H^ZdLd%Ge`Vk<1PMDomi}g~p1a@#qk*rf&eJ8GE z6vysrRNqG{_;gdwBvt(cZUjskLyQI{HJ9w&&SDZ!+YpC(@+*^%sSg3>$siw(569^` zaxSU6cM+xy1Wg5p=CSk{R7NQ(<*{I9G*h#o(PbfeSut6Hs90HoHwMz#E>v(l@HKBU zv+U4d4tgr>fa*6fffl*gJp$L_NW_WgvYy%fu*B~^eQWu!I=QmMDNNWzV?F!{-N@sp zqEi%ky}h$zM=;&qcGhks$Ys~J9cxItz0lIw6nuiv}w8M9ECEFsLl;Fg-(`>mF_i$8UGDji<}WDN0YHXxtzJ@3F^O8TZGy$L4jVC zb>OK+0cMU^;g_eb9mJbt=m5dXS5Y8Pg!FtkNo%(RPv`zvzmF;_XVkGx7shHHvzY^7 zQ^=#Nxb%jg_}H^DJKjAqK{Jil^TckEt{CoG5>|Mv+A~ohJ<95C8Xi;Ku(8v|N(4HC znmB_)_cuxLb^y-2x#Wpw(va}VfhI_5+HE^L@>8Ocz9Xr=q^FO)TwVx~KqKL#x`%th`SBANly* z=Esz33nl&5(x)`fe)-uk`g^Lxu+b2N>34zAD~a7S`MXzA;O~Z)@q9<$P^g z!St$$e#(tC+Tw_P{BVghUJBAKCbw@wdPxVPFJQQs5FT&|>Loq?E2k!hx z;FdjmhWbtH8EPlRIp(JW}n+ABIk?9%adU4K=;8c)qgu#={XL`Oif zI;d)LndWe<{61>bPC}IaKFWm3Cb`3^KJ2WbXL2+%UwFpDillz$bhgJzMjwNgw$8Mx+wbk7Ll3SXX6!&6qiz*>)6-$hkRp^%nhwRL_@; zzCZ_<%K9#9F3aKU7K2*WVOSQll-N$F44;L&D_n;Am!v``)%ZGVJq@vrNBe3q9QeowS{Tcf6fzQw2>e5=i z8*9ttju9osc=VV&p@+oSqA=x6b4wldxT~oB6;)jI-FgwDMB@Inm!z1WCj<-_VSCpxZ*7#abWe7JIXdgP6lhT;7Jy zsHjrOc^h*nR!GS8o06A!#787*X-%83*vQJiA|&bthj%OjEaHGd5!dkh)`eez?Xf6< zQ>{pJpHuz>PR+p^lb7=1AfSgsW*P7WOGb7`zVPD2uM7M%+J0rgs%nnmjrXFjgW^Gz z=HYbZfoH1a2S~MF4-Rcj2lc*>y1?Kh3IfxlhHhP2_<@m$(e*Ygp$88=Th z?DClaI(24oIz;XK$v_Nc78aAajFJFFH0 zmc#Dn?Y6w{_s_;_k=6GpBDaC&j2>_?b)KV~i$j3<1WpXCyL_5eu%{a`P@d)q_-k<2 z)MyjJIOlP-DXQ6OF*)ZG0$_gzZeZ`g7Er{9T_m7x%FEfHi%q%1nVD@K zN?)HO=j&)R&*}X;oO^H<$|ufy7*1E;A5l1EcyLa=LRZ-*V?QH8wpXaLMbVZRvD#Yf z=5*J7(?VfEK|JN~4haF?!7A16_;#G;#_!^}*3)Pwbu~sKL>-fZgsl3zl{Pp0?PEin z<{mvDd(@(68R<@|(R85XME8Dgf(MN#6#O(NVrcN!A3&$y6^cffZQTkEREBBz zP=BLkH=M422z1M|KFoN1m6W;BRzA#cl2FjJmdC$w(K;cb z%{&f1g|x3Vr5ZaYd(E{il+L^{@v_e~zf*#qeHM~UPQEC>W|7?VxM4MqusB;kd~01# z#uU|c5nt}Fsrh}=yLG7`+w(RScCQ$3%C~7I;_z%;GaZDW!RMi?0rW&p<5u)Fk$AkD z=J$On@Vu|^e15&Ie1AI}+3$E+uUu_8Z$587_IbGQX`JJTgqL?&rB{4^^{R=d~Hjr;mvF z2VdlP^FXg{P7$M=4$}z?uNZh0nE)AwTgamq3yP-W5Rp0xg0#%HwOyz7oTba|X!^V*HcL9|NKJ?q zX(2iAmJGyU7w$j@@Rl*oN+_4~=R*J0`l@U%waHE!#{#x0&BC#^Oy^Q4mll7ND*sjX zs%7Oan>uuT+vvRhpfw$Tb$RrCQt(KnJ5(`sr>I-TL#2QsW9`JHD>n2eI5h9ns5yBk z8__~ST<7e$zS8RAa!YMb8u(*PSj-k&SJ1q}_Z|HApx+PJ?OQT`ebuPD#j@nxf_Y zj|?46n5Qb%32VpTVZ4Lg<$0c3PWT(6#3O>GJS!Ug+J*azH~8kS&TZAdcC;-9p@=iE zfAfXIXb!8|lj>>k-IRQIEj(HKV9Hi4_)?rGg%QsD#uL$2M)+I6-ni=u@CzGO*_FM% zRln6R;+vMQ8mkulYECp-elFK-1-{yF4b{)0?2P!n=b+S&h-%{X*8CdZb)q#m?nOAD z847YZ%|qu9091&ANB42zj?|L{QfIGnaMMI>WW)77#@_FRr#=a5ujuh38V3RU>SEMA0Hj>^> zHHP%0?{z^vUr`v+gHr1i$2Y-{w&+&DmIA_Mh&bXi3uof&%f+<{0<|@DzU@W8)2(hs znBWt2yj2@;GYo1P*dDy&3A~4l@LO)m7QxyR)hYAoVH*gDGWGf)ZP-cM4Hd(lvlTw+ zSmH$vF!joi7kX}QBPh*NuZLjgefbo;P&`@0o;pJ{$tNHTY7(Uv`jMdXD&WuM5QGrI z(>3IDbQ}L144`iG-1)L7eM1$ChXz&x+yNC-5N{DfK|~O}j7Llnv+Z$(pmkj<2<`IrRg}U0EwHj|QveW1Y|2lwGIvppUEqt&?}s zH7+DrZ3dp6RNy^RuM0QXOdmy{oe(q^K2WegAJ(GcGD3%teO828gN6PY+(V#Zj?W6e zBq7Gw-<3Dy_b^pp&(z2HAd1i$FSR_^Q>VP_%wLln3_8Lmeej<LM=nt zm@|E&q}T=h`fC}~W#55$e}F192c6eIf+KA$of83K^|=2*nbZ62EisPOp2~r;K-@H3 z;F)O0y&#bS;$8;$wpb7Bv_KHTqfuEbIIfg$PvdfC7vtu)kHB82eLZ~3iB4;#4EEmz z=27%4(2P86*(Ss6ZmgW2ZcvzI2sxf$Ah-R*O*StXqU8qDv#kXWn?EJzdp>)iRhl$1 z-~lm29#u*kyJPS-?at+bJsrL~G(K2G^l4f9R0R;tIO!-Vz%|@wC~)SZM29C@Dj+Zo znE|;*&wmY4g8x*~f9zkiLh8o7TZZ|>~c?h%aXn=*Z> zcY12wLrI@1eY?e_a(JZN z{W(jKGU&6PU%QEo#g3){JEQ03gcr!8YaTx5JBy)- zUrG@~wo%XKvB=OI72F=;Z z=jF)?-AX=RkNMi{yL*&;{C@niT^+$s6nW%Rq2d<--*&yHU-tvJAB&P6+iZ{qC>~}Z zktGFxe*k{_?S~KECd{i=nCDQR*fS+Er9OSd7Ak}!N;%{6eIwtRr1EkSwv@K<5Kp?QT|BlKXbz~+gr`Zv%5`VX#A=yF*E6n>n&gr& zy;&GeT|9OZ*e56?ca;&H7pQS!fpq$1T!{e3QA6T+a~ zFd@6k(dMSy@ZrsI+x(_$tSDt4kXk)?;dH0*bVN+qMwF3R_Vb(`&!{Q@M`o$2<;JV7 zj4Zw~6=mjk*B4rUFj3dJKuuQ-Cz{$(N@4*vdV#j+4~gy6X+zUpgYiEBr8yCwQVB)W zNsJ5p(i8Vhdd3^AE>^BcSA;`2s@^#e`gK-uZibL-CLtZ?KHItzIHV6!ex>`Ba;`h}fjL5~-sEiJ@qg+sVx6w_rz<=vW<_S9^x-*F#Az{E2}kCQTPQ{RsHu=e6pp ztl0`!YjTN}%UKb|ab4@3PX7dH<)(H%qfSD=N-@TlX=}r895~07kdI2}t)$aLGQ+~- zyU&0=-n}2Cei87UW#~=#I`dZ~!j&i0{UjcVL5BRL(L!b6r%pT*p@m-vi>*A`>m6K* z9GBB~C@g6yDz!>2gk#Ef%4$^$_cam94cv{nDrn#W(!wkNm|o$^RZA_AI!`jlscg5} zr|cf&7ZKN(qB}MK-8+h{yDz8;7*HK~hSFR^T!xvX_ty!EFh8p;2Uw8@7a}0Dht%8N zHs_w|G^1lT%OHrX3mWINN|tbCrmp!kgTqbBY3-as;;~YDj;r~O>mK_HrnO72Pp9^1 z@%-c&;JurSi8cByTA}O@H0;d40`*}d{K<(26HkI=+oL42mPD2&vYU<%MC@TVs@Ig}fW?9T_Z0?=}D*&<@R^~hg!{ojZMs283M zBXfmXwXinJhORKHA=Y6dlqpPB{CNG#KObzd7*)Rp#aZAcR$36u%5==YV+5rg0 zi;a1|pa_UkfF0PKAhV1O)hZ$>PGcVleF94l{bSSCngFx$&OwaZBBVN+&4PdQLxdb= z8ca4R+D9iNQa>amsF^=@mN!E;7P1&qd`@0}iF6hl`&1s|{g)ucZZvEsFpu~GB)f3*N+ozxXqw@Tt)9Jbb8!qX|h8F+qO%43cDgNB7=x= z0W^D>e3G@ak6}*>pco0%+re)i2!0~`Id6IPUndCpnp`Ivo^QUK{HM$RGe$CR|MhWe z9hTS!?S&TOCHM=;N`~!A62H;qujhxG_W+zQ;{Tp5@Fz(51Fo>MGXFCNh3#+VrTOLG zxElzi{lg3QzqmxR{mnc7OIZ?P_+N02 z^*<#6{10%B?XUchf5ADnzd+JoaE|RSR`tR<7P{Pwy!DI6Y z5C(WNQCu)K&^w+aAVZKL^QP|c{j>g3yB{fXN5>B}drMv0C;Qmf< zQ{{df{(KZl9m3`byPV^YHpD-{`SAF6ewGnC#FGf6^v2e?4mvJIW;&BO48V^_UrtTBe3y3zD|}sS+?gGzr=&u370k*sUKux`8_A^RS$TW z!PX!T}B(}8@6gia4A0v%3BM@Ox>e0!kVDM`sEvRC6oZ?!99eUbWkyVR@DVA!OW0a3Z`zhuu@Z1|BGDO!nW9 zUBtL8ntkTrql4qKdI0Wd$|K1oeZGM_eR-vggk}#M`rLzv_Pr zC^q-1RMF=6V?;owX5eYkjbkn*Q?XI`P_t3>4_eeXOZU{AvpTn-Iui&UC~u{2T=9x+ zEE1C04a1Y*#7j`RK}F`eQeYon@nYAV1)`}C+AGb}CwHaAxHlTGTqne{7!fjnje!Q> z&ykajL-_)7js>+p9^%X_%RG4kFD$%l({NsOGmy_zD{Z#1`UTK5(gjIM9}51Il#Zz| zAx^YU&p0DGujXo;(Uug*KdFP%qAv<)naAqiT6T1&$$kI$AnEV|r%JQ?p>Bk6H9 zYmeV4el07nw`tw7)tgyO+4!aR+BERqJ1kEx=Zeq?10$mf6`6` zxwRL?vmdm|Yd;;OIQu%o`uA8B#4bA{b!1$0nH7hu$Jey&oPX61s66@V`*3x27;Rqq z^K7JY)y00@>ivAgmQkXxuFvV)^HuWMa;@H@_WiDHSTlR9IaN99%j{lQ)j^oTLD&mI z$KJ*~gcoHu<$4b#eF z<5Uy@zki_`MZBik`!sqPgUlq&?9HSaMzlFkJRsRhCBqcQ0eW(m`8Ke zy-_^t;?(R5zBMY>@2URNXm$_ITm&CKJzRApBiPN>)}K!hSS{%(K_;L!j z0w=q@(T%6t;|d2BeF*_?H)dzJNeQ{x=N2IRJWY^Nu|*KYT~jTtKF=REI|joCEC|Uo3FN&~e-1f^k0s9$*w6>4r92%P?Y~LeCM7JZ{}v9~NFV)0|3uQ@KzOI&(RBdLiEfT@ z$||~0rk&<>Go=0GuR>7c&-?>f%x(@cXoNaCXnk`fp@H(=LaMUK486ZgYS$aigqmSN zmCfF_e&N$7NrZvSh$OR$7D`WEbTO}L6C3|P@@39+}$8FY7) z@V8a2hoy{$_iW)_hg42Q7H^u#Y%t2Wn zaC9-wuqBdi=ngZmD9L+XAK$WJndhQfAR!M;=d&}=h>&$`Ht zdW{JKKOc;6U-V&oJPkkAamwRj-i2MI(SSFl6hEIG__6Q~`^4f&ekhJ|+0}|DpR4<$ z4l)oVg{<@3$6f0Jbn^VTU%3-M>4P2EzU|~yU5IppLY*qA!g9e@{_M|?Gm%spEc0o( zz(-0&UtHcbxzknT+$8Su(#+QItgnV)5?vAtX^khJJxLiqZA&{~7jF(*zxNhHqox|E zqWPFe`W@ZnGagVU1dx zLE$vXG0-{rD$TJ!C4758PHPsvBcmt8$<817rcr?-ZZj^!c^q^3VF~IW(u=z5?4TB& zj9q0!vaWNy#`A}ID?@Po=3vmUN8Mw58oxQgotL&OT0dS-TDvTK06F#E(z0vV6!&VE z+Lb6{HfCewHT1fR zX%o*2R|DLLSw2+}JHTp_xD&^W&qo?WbmF0GF#TOxn7e_GFlW;`*{0g4%$os!K)VrtfcY8>yvG1mx9m2VUig>*e-%^t8rVPUn7UhQkj!elT6dlpgPOh8A0{?L@o7 zu*Nqk^Wu(Ib+O#jfIYW4{1B2Fml(&p(@W2|w-9{wZB&mZZ`Qdy!ktgmO^}W0#&@_G?n;R&^0S*m> zhe%@3H;ZUKYiiavao!!b$}yKdt16S3!wGZ*+g>nG`!c&)1a$lyxX#*S^HA*ey#h#x z@f4#}UpMD;c(Ur5Q=rmQBz$0eGbaKkYZ&@R2H5!98ZzMkc7lZOsqncsjKsd&tYpr# z+UhdAKVFe%`PN3T+r(y}>l_0AP-y?+S}Ato!QczbO=Lw#=Q=cF+&zujIn~Ooh!~Mo zl~XT5bJjYjVf=0DKFEw7`7^4N^!Bqg@c@N-Im#O~tn7b}@4Vy4_F8bhxH}stPXEXc z>%uEBx{qXbu%)Z3_E5w({Qd4$iaT-=-x0ZnR;GMQe+!#Y>{7XfPPv(oVH)~TJr57(wGDo^9{|~H7semKA%em^M#VDtD-$s0 zUsYHxnFS`oe81Ji+?<0^w(Ka2$@%Fp21%$q1CI04q6@Lcw14RIb=l-@+UE8~N(;x~ zz49?rmDW9lp-@qR`PLq>jTagRk>Nf?=p1pVn(z^4LE5?0#^WUCDwowKf2{e>7jUOP zO^=>BQGzD6kBpS#b+zQp%BZl*Yv2gju_Jq#&qsH+XzX|b3lp{1#uhcUEFOJk{(t(PKIST85^QkjTR{ zYD!a?k0uwE<7b9Wk#1g7&_pt=3WWSfhI2S5W$RV)&bGzN>rN5!MT*DLe0u z$bt@?y-Zt7W$BlgVpX>Ln}W7oMF?CqzkRvyV6LMlq_$2aHO5n?fv+fsJ+Vf zLT6)#X-ge+%1?V(Nj>ur%B;7zisZp zey-kkzw6c(6=TTtkXC3DAV8r4*f_lCgbM|bZCroR9=eu5o!A7}F)JPgPhkZ3bBbtDM$j&2z zfpDbNEBtDh$0HfXl+F{Hzl#OJ;sy-qNFy*J^y*h!X1mBp#N)6}uBD}N+t{I~`oZAn zP)e5yWk~7xX;V{1zkr;G?^bw3nD5agDBPZ43G29%I2-UWQ-WJZJsT=Wu8>Tbzb3AS>9!rZR8ID zB*#qT?RfAIIt07+%4pe2_ZYAq^a{O}1n>5}Ge@y!#Q;ei_1oObt3vDgZlyH$?R##m zmuvkjDBI08{$8`8PEDQ4ZIb@14~hsGlqA%ATf^oz^qKM>Z1W8Iy(p3HqHncnCwZrIQHdkJ z;C@N>Upk#{8w7O#1Z`*U&ZX9R7OhOIehDs)Y?ZJ*$72qFRw0TiiQ9!4{J9zXQ6I5s z+;PsGDTCUIh(8<~y1;bNlfbKMM7%Kpdl6M&sev}#)XL7`R>OFNOxiIx&gy+2AGu$2 zw$)1P@JvWYT#HpH{WO`|C0zwi=jsG{UrcR;QR31sQj@Zo&$K!jopVd~|1MHjF;`6U}%dPv{xTfe}INqpP zvAa)yoK>rT>NnHJU+69JBao3Kmg1D*rsfHBq|x!bjLDY6Xv!E@}A231(eK9 zTt+=k(XG5@v$xsC@o8(uX|K8cm_CGd&(o0ToHsrPjQ(YjW^h)np`Lxku(>j@sR<6e zjNYZ{r5Yh&pQmTsw>iE3`Bl_#*U&RZ{Cz1dKoJjuo0Ah{#hc*_Jc6T7GGiBiv$Nj; z@`gM{qA?EIPpP&c>7NqGkcXG7F2Ff%&%kYMlv}*bTWRZaHv3eREjBA4oMo{&wO_AM zvKV6BA;IUW3V~6&B%g?BBk`d_Z88}UgjB|lc_T`XP(0$L#63=)9J@`IxgGXX3{*hvX`QmpOdy8`h*AI47ph zQ8_UcqlX!tzY;m+3B!*!1j#{8AR^6Ic|#4mx5$#+bLF2Gtag{`s%(?2_yufthGO1$ zAUW%%eX#9wwoo$Ww44w43Kq3865tvuj)ywAve4pN8iji|EmcHkN>psLk+nzkeoALy z00jZF)tuVIS%qh;MY!5uH5{H?S;}OS-h&Jc8M5$L6=iI{8rpeKs-B+pRi|>k!HID6 zG;yi%PdyT@)94fKK3LhgD6ArFKLk5h#98Gp?QPy^M|eeG=_|VSRMx(S6vyUbo7aFdeo~tlXB6E$yMJsF`K|!3$L3^Z{g?Qo79U zW#Nzt0>|Ba5u02|$a3+{rwPXus$h5|yGZTQ;Lr^!6J;(Ca6^9Zbg3m5=?RxVZ+uS_ zg%y@xu7xavjV;s@&QMzv=Optc*b~iGhr{$YrB;KGQHUE1#c|^Apo0uAqm*?cEu|FK zg$4zSo{K9jA`gAAS>7O1iLK;+m`Z4NvGP2RmpGhT8O$YlHYlP9on>G=BX!W<%kX>! zJsfvls;4J*8T!obtuI>D7cZ)DM!<*&e$P!sCbPkc0F?2Y_F+P@YbQki6lBF29J;kb zWPntheiuk8P|#$B{no+f48v-mbD*>|O>;`Y}F z5tejtK`Fd2C^=Fmr$sX&s%$FRmDELw*9=AF8dvXnee{i^_GUirRHCPg{=QrS zTXVYBi&vPt(J#YF7-ynsRILi=&DoCfgPgYXYjee);znQ~w48Bo)8d0oEU=ll#D2RU z{}3c~=0zCc=x%JgHi?1%Ix)5$-q2@o={ox@_?Obpb5Yms0XH+q;x>DZKwR-B$fii4 zEl&R}JKj8A3=d6XUS~yOeHQQ#A%G5nOeuv7HNO`tZ9b=+!g|SBKUnk}y;Gyf>5w^2 zSX(H9OxbaeZVj!Up}%8mYnfzsbGx}r>6a*}vUCB~X`P=dzz9XVkCqzaD;F8?l((f7 zuPSvpCab8Q4O{clr~v&_{0(9p8QmZAoR~}dNEv|66?S7iygY@q~?}#}(Y0FnC zZYTX1idV84lF70;WPj5-9~j_FJIO!x)HV2xc-0{ZnnC;gxg&N>R^mk>Bbt+Ot&~?= zQvXB|Th$6uEk>`4fFmuqC)BcX?UkJci^OYyzv-yV#&^M`@U>?r_DN2qTZIEwmGRp@ zFatnKtZmZ8$zVwiyfHmt@*mcn6nKowq$(|ZX(=#3TNJQ~dKiB+1$BZaqgY&Dh{(43ZnZ31l%i=_ z+jtxx+KPFql_3f${ZOb3r6w1FY-@q$cYzvu!Hq>s61#2|qd(TYy7j_?9&3&d`nMq{ zuz&2Nmswf;=TM(@(QOg)a_#{vnM>ydgGb=iJ5r~h>A z|B4S57ij#}#UU?59w^CQen@t#XIQ;xv`;=4KOgSCe?)tedj9Vy_)qlr2M*+5X8IQj z{+qCBvi=(i<^Zt%^IX(_(OC9>V&i|W%f`<3AL_FGt?2%D`S$-nZrT5#I{Y^=HTz#$ z!oSEZ`(J4HelU{y#u&|Gcq3`ulH2wttSs-}mqrxn=+VY3gvQEg4PL5ZiuV zIau>?_d=S27$(Lf9}?jNED)y?x(7PPdXY&aVBih}ZqpYNl`-VCiCSpVGNNfLh>Ix~ z#91;CpoT(S-)|51&nn-K*4o~0qR;G~-k)WWOQLm7-wylv*X8`gUvC_fYcqV#2z|XD zmb|?m9xj;Q?~i-V{t!h{zTfy}9QtIvzy2YLG~W0_6zRJ;AM(?X-zD4o?HKDxwOs3< zCp#oz^XR5>oALd06S?Eq2T$}kUZG#j@OHZK<$N8GAxI>IzXBM;0&!b?S;SdnE-0)- z+3kt`mam5-5&X-I&zkp@1M7rqr$60Jc@*}`>$N3t8qTtO-5L9 zzyyMbJAcHCD}jFZbM3Zuq$^mkjb!OBCLVO+AK?m1gS*+d9(nmb0lN0#Lx_IyM~P86XRbx7llnepsQJ*83de`l4fYacMkt|$ zQ(#W?2HbvY`bsShDk4?J*uan)A0)~B<9r7;h1ayO!H$dxMHpt~dvvWr$C*(_%LB(gYry4wD7*ZKYMd1`ER{RE0SAO zjA5APYt%74r}qStf`$bi68kHv!?bhEmDqtHw%v<24LUP5<;b#^{A~J0Ug=2?arNU! z?~3A{Aa7a;8a4q`{R;t^9cjGLH#pw$=tJVJ5J{e{OtaTmh5f^}rQPPC-dvVnbGyx9 zeOm@y9=R*o3HdA8=${u@TE~0T`K_CDh8!~Rp6OWBKQ$qt0;WOawL0dtkEf5$Gf7C> z)=O&6j$mf^Xsv*bR4bQd(49kO_P+*=y zl&YU#maj?FHvjo<=oFm`yqXQU-ePZVm~gn^dP-jsA-Aq?7EgoIl2HJ{GyE=5<>@Zd zViCU+S09#(E4e>_(w z_AV?~Z&O;S`x&Y+3jGk-)Xrh8KN4Lfti7K8__1!`Lr2$kCuSh^k3%Ta?6nSoDI$K; zRL_i`WMnjREb5#Waz(4$bK6?&z7|959Ar$s@zz|ni;gs$--@zb#E3Lk6vI!UG2CpQ zh~3poBYkBwuV2!;0oX)5;K-hmis9bD)P$y#<#`;wTrvXNQY`LJiYug>_=Rklcu5%` ztBtvoq7;5^_iOLa7S7fm%kc${-a5~2wvghz&BU>v$|BWj^lTxII@jP& zw6^u1Q)|F#2!qrxeA8>5ouw;-SM#+C|At3?r=f=izpf`4MGi6I4>4V$BW--l*ePm& z24B<9+6gQ@3J){!E5LHp+!8kYQD_b|!PGay%+Fhw|8^KSVj|~07Eo=tGPC^cX#Nxn zuBLyEs4{Y)CD9Gf!SkXvkSDC6)qJJ5PkW~qNfQp3eUVrY|!&hsLrZPv46smm=yQ3kZXl<>wIn(U>_?2lcUcrZ# zQMRq!^$vm06?jhF>t?mTHJm3yR?{l2ZCw;xX&f(`R#O2L&hJto6w=~tt3yM@FArbZ z`r2FyGG6&-LwLrE_q87Op3Q;#m@Y)8;%`or8~58h%bKa);a_A4bSCjKzvggASxSL- z0pd?N2Ozr;;I>=W8-Q1)OPYwUdgJHi%no?)o?0@p9u|6G$mDR_rf~kj6Qt*^YjH^}(6nGBiTUC} zSTx?SccsF6SUYQiQ)n2oZ|}iu45fSn=u>P`=G^Aw)>!kueidmD2dBHdpq>?RMq2*F z!-2@N(V*+1#oj41+tl9hXe=5niacIxyzfk-w}GnQ#u0WHjEF)Ay>_tj^U+FDOjEF5 z4mOjm)tSy?JF=rIF0>9MI`Fb!^9K{=U)4h#Rw^?B7JdR3u@n>f6Wi63(T6@_Fh&`Z@e1AAUA#?+b%Z_6o3|qqS z9*}MS8&aevOU91g5!0kmbxuPk^Tx6JmX_BdRIX zZw)f#03m>sd^nrh29sW<#EPqx5E&+H19llXwxYiyMQlSi!clWY9F7<(_B3vTUQ?15 zn7>06Te3qLirx}E*_Oh%&*SZ!)-dL|CDLjJrxX2JL$I5!V{Cf(iq;OdU92l)+T2-z z3L`|F&-W2oan-nt#)LPjl+O7ZHwr^e8GKT4b&?@b`h#*C#GvLn=Wnc?IR43%JY?dj zWMXqQ0c4_aGvoo^Q6P&^^BIcMxpfmdrDEb$6Wmo}0)&i8O-h*LCl$r7NO-`-$B?7~ zo9l2P>H@wEh3u7>2JK4g_0g!>^`Mdt$}>oGs5THrlQGA2(qQ!$wQs4YRu;lXVDW+(-S9Mfw}A|j=KZ^oatq9U-bE-qA6irDK)aH?$fNM zq!DaH5HQCS@s+n6(C=Xz8uSm2F~KS{GvyKrP+Hgn1Z$i*ifI=}B^-paVaKk2&Srj6D_VpQfH9 z;(MmzU1v>XMwh7L%Lr8sc>qE#{2bfb^Liit_~%8}hE>hwHdtd(rL=~luc7&Vp8BHx zodA~C1HEE`80*sT^VnW5x8zd!Gl zH`!tk*~toh)9*X(VHq{OAhzLh6#yaC*!=%5-|{c~yQ!29&U3$&#z; zkvR}|)_%f?ar+zqr)T*yXXk2P9@-X+u|Q~}ECIdujzAa(!iEjsvhPvzd}8EP1` z0i1TyE(J?SFStEm#Vn5JIw}35hz*Kx74?X%)uSc`Q zyct4R!ywdU#MVhHA~3(A0BsqpJ6)ENJtcm&;J5W5+qzonX(Ef4A!+mTuRZRyFXRcu z&v$t-)$kIw`cNYsV_mhF`9o-{8F7PDK<8DCpFytFs5s^6cd~K*dWE$S4JNMN6r9r= zIBC~Y&gff=Sg6i)H?T(H?w!u)nX=bn9n&T{%C8gW-BDIAG=9{8!RR1KzVLcxcg?K+ zn4^8(d}lR#5ABmdXHslaJS+ zIJd!TR*Qlmf|yot;0IANskz4Z}#Nxb`>CaNqqz0cTrB-=wU2G zJsH|v`TR$~zsUVN@-qBO=D#mH+%iDRjyY#h4?7`Kt(KE~q~!dN>_-~)V;<{EQrSjy z=}m{24Z1lA39W5K=`MGtoQ;TVDVZFB@C`V*&7DtKU|Z^jnFW?#i4DfqsoQVa&JgjE8Upb%Pc$`UDnv* zLzODI@)$?mSZ0y)xL%UR@ztN3G;3D06RZ-dQ&lQb5A#yl9n;OHl$pam4&1{1Qb)7G zgj?URC&NG^#~|J;BLJp{ay{U|He9Y;?23hvXcUCuhQ}1$#rdUBaWsUXu7dQXiG3oF zrDLxT1&(dQnL`6wzkhx&)0gMSb6}-0x5+cGFSiK8=@fzdQ6pAB-o+P&6+|Szl3r9D z>MtfF$uDpkn91u^r**>;!I|4?vux1)w%E{DBP^aXpgM15d(B#6S50=gMg9yk#G=F& zKn|oQ3 z1~>MJ0CDO>e_zwGDNB(d(h;!PmP70sy#v=rP$1h{=S>^+zN(S1Rd7s@ctDYJP~wa? z^08fkymQ}&g${QJPVH7$ax)4%VgNmtdvez`Zp^Q9m&0uiEV;u@7i&Vppc0b#KH&R? zSXyrsTs5{#`v|FK_zbDJm8rf7e^n-@=PIg#N&oX!eOo=LflCYYwzXjs)c&;%dy<W5{j!&Q6Yl<|+#NZGiRJ3@&y9iAU&o3h^=Vh99Q(m(j#Lqpv5+~P2 z(awkzahNJ-HzRxgffS8wp^I=7S2z4I4M1vykY_n{DV%4?vs3POSGmS$Hl89 z*Q7BI7q7@99l|77B?Sq9o{p5t?a1*gS^?B^bY(@TQoni)kHN?Zrv(yFaQ7;Q=Y(36+(H8L|wl94X~whmqlT?7is6ZE4e_D+n_e2 zBi zd@hI$N0Y4V)(xMIB<^SK#%S&%x!`dCt=QLQ3^E;so)QZwTg1A8tIQHvz9T)iFcL6R z@?aQXLNkt($V%D{eMs}#LrU2ud2nrYvn#d80Q{a&BhG7?nORs4LY=onSTZ)LoQgqc zr#h%5CAsThD1LJm5iRq#i^uLw(Ua)Us1g}P_tkX;xZ7B!JjY=UfeLXBf$}Gz^aC4o zpdX%+C50}eoa+kXYQ<;J!{Xli@cC7lUfa|Qyu1?i6|y>Ly7mz2Z2uh(_f3@|VvhI& zdU~(RkmA7ePzK-Y#yTrd*GJ5OdN>lctC-@L94~wtafYn|1Xh)oBU)b-Qk#d|l6)6+ z+i3QiRvC-Au?yU<L3d4^P$e0@fkbDLwHJhT!psy-Ac1hVnts;qws14JweG5#+^{u&ge@B5~aig9P(NYd$XcgC^dR0YJ1H?ck zBVIX_5b&*b=T^d>FR!~y1S;jtNMN3=P69W zkY>S@F5obUw6T0eth3#^+|!7zN1^{ks9@qRSC|2j8M_dqQ4|$?xe;v1F4o`w%;wQrlva*%pvP z$*LzLCH}+JMa_c1d(et#Lcb|TGKOY>R33bmW6FV@p##ysdR%al zggF|@BPU+`*Zojm#pZ3-SCdH#prxV%(DuUBBUN13&dSw9FhNX+VW4sKtd!2A;!gUHK|MY%bRc~*|DzNCmlyciGt9*W{7b)<`54<9Jfe4?JN8+L@A7$Bc`?-ib4eSGY@>%3sQzxsIR zK4E3lmm!niz?~F49X;LnWImo3?lgGU&bnm8OVL*m03NPU#pq|uG5rq;Z@Z`4g(Bwn z7D>}*$~oGfm?BUz;Od{smLETi3bjA}xHOLHwbLTjk2(KyiO|o09rTPd+5~p z(GfBs{IujkFQI42UK{mN(kgr+g0*=@(@E!Q{<|lGKL@qE>stq0O^SS_!8N{#I%-$C zyAJL$^i`e=VXMPBdurzO(9VP!t2{Y0Z*gHrm$Jkz*tux*ghQTzuf1G`-cUaiz+t-v zYh})|?jXjXB~_PhHxM!rn;-Gc^;Kx+pnH4%Dd+&)8^6owzn&Y2>39qs6$`$uRHH3JY;?k7+3*qq(AdE-wm%ncu{PHhX41x<~OxAb7L z(*T%orSna&RuRrd$@HU8!d0`h(Ko0$UW@D2^iGi_Q6ySPqi@dd8A_)V74Rv)y@i42 zj{$q>!ThLq;I4p*U1B!Q7R-;b1M{OUZgk3;%K58k8PA_lr22JX67^#UtG7o<|?SYq?49%D%oVAFEX{O)t+m&&Q=Wc`GQX8V^KZ?H8|4 zrU6&XW^8vjYsKHLNQg88@jC2u^4b>Oe+o@AsPiy(wY+8ZHuyo(c0iE5f#gl-j_Lh0 zb~cZJau^f0dZd?5WG^8NyIY^-XVtajH5hXrwHe~%++f)4zo`Hn2RooztBnB*^n zX*1-7onESrhE_k_2oLK(tOaU?OH=cpsYeF;M?XH4i)QIjBI57Av~(lZ{Na2*%@KN_ zOWzsb6=$M3ZHg&}hco`70&5)XND)&p`f-!uo>uRq&x@jin#qMD1E@`Rk95sqVhu~>1-I_GWgQ})#ks*3CKBiyQ;!u-Gz z5YS{8*^}#P?F!Qf2q%if=>gdq5;(9VV!Ts=A<<0%Nf;CWguY#VP1Gf%=}ux)YH5C`8I0`q8{ht9`}A6_mKT*d&aGd9qINn*QDc8aT4VKTXN z%oN)D?1v_D@he~~)c25aez*YJ-e{n`I;V~A8~I^x$Cng?5l&R<0_4pU;faKDur!#l z;eY5myA5-1c-g*Z6kUm8{2iK2>`WFPstYkJCJHbn*j)fLK330L^Vdby{hZa-I{|XXVxrTR)Bp?dYz59i zope1`@t=%+Z7@b0yE}GP2>MKo31zj@3`l_K1EC5ALe{O1(;3U@+j~l-T*F`mG*#ro zR%%ckZe0nXRmvF~{1D~vn?^HfMg9f=JFrzvzBCWJ<>5g9$Oz)V0AsHX4Zfy2hGEd=cr}Hu$37k4fcK31@rf zTr>jyaA1GeeZBr*H)G6h&7`g1(?HNOyHmLLlAGznV$cW~jCE%t0uBh3CgC zC$)7%vB8sDNc7%3-!(#vah4pbyF>S)?48;{E-FYxAN(RsLcD=F8^Db|u?R_x3UPEO(RPPU6nXF-2v^129qc=*&|E3dQyd zF~cLv+VzxIWoAE@x)bhU&*u=K57|4fgx^@XeMxlB_ANw3u(<}*7qNI6>HxZ;YT?WM z#++bzc@~4Z+EO^IB74+AKs)!3F8_P??p`$vSP_)7Uxemv57k zbft-@F;i%B`)s{jia@+l%<8m$P-aLsJt4+PALna~E#6HbTxKq}-C7gqZ*rFClLn^6 zL;&K5>P#~y?nd~uxrG`%iD`GYDH%9Q3c7lfx7MfM(1t5$+hxXe;a;E=W-^RLjDDH$ zWh?$M>Bd~DS(Vi{JcnJJ=8^GS`1A~xab=XwKF!8}pA*f?6wYll5cD{YuG zo9bG_?AY(^==j>!Vg79*tLj_U8TnOz(5pe7-eeoD0Y7U^ukJ(l8)^GI<6r&c??vyE5(g$O4H?FkuQWYa7wlEJui5hqBV} zE_`8!i0=-3t%s72DYb5hlTyir@}|SFcRyG(S38L@9CT=O4|ya|(UeGF0NYhm9mr6h zQ0B}|s5vy7w!h4}eF`M}5LFd2I4!E#uDHcs%;A6CtdvM6%^G(cKSas9gFVP;{RJ-n z47C_uL&bwpjifT%$u!!7W^2~$Da6?XbN7||6aiZ7;Ce#`O-{Rju^S_L&XVm)f#Wry% z!px{uF-R?}CP?Ij+ktv`kUR9OZ_vC6$4r}4E&#LY(Az}^kR_4>L*wrq)V!dr?=4o} z(QVSiW#sexut`nMqPeX7vOT+l;_s-L1nnP# zxERx&HYPtKHixLr#@~bGFO8$lXX5Xk`HbU{?6I~Lip zKG2rBmkh$PRG{!%bBNK@l* z9z(Q(bRp3Rookh6doo=bDsxL4%r&^{7oDh-lFkyADQTU{kal41_0H)$Kyxu)Q*1N~ zK+5Le+*Kr`XJ#E6e9n^!&T~q+i{TeX`1T*oJ=P(#lxEcSt*Tr#KM|V~@!Bx;Qt@+$ z?w@xkECa(j@Z4=Zao)2DmeRdhvq|uPwFkNz=7q#a?G*Kj!*civ;KHm7l9n~+#f4D*QBxcX0+b!|#K zaq@FLES*vu7F%3yU2s3taaN%1m*oTXQ{H;MC#-NRa1_<@0A(o96N?M~waK&^lh3lEta7y$3J6VIPaY-8ik2ML<_WS8NC~&u;Ip5=(!QArg_HxSZ zvV5&hlyS8dB84%6`w~!g0RMcVYlYMr4PI-W##obwag~)O`ULBicS0GsKg% zfCyvcXII*da=5#&;hrgYzh;uuw!+$UR+prYXy%aee?(BzK0k zy3Xi0R*_6#6*$u*`=tAeVU+ydSmB7-#2}hm&(Ph4#O@qd4`0PejLc``C&m5HCxWLU z#l+S7daT|ArJC+UnQMn1gD*RMCF_#wV3e!>H7@w4P4(4|eNsFK8!LjQO88AU%VmAGB)= zXCgN+!8e>mKNIK2Wh(7*=rzEMx7Tf9{6RHq)9%y@op#V3i5_)qG{er>CG&w>Sbd=4Kuw@TqagL9!Pm-4$A48rGn z_r|1`@h@#93| zk#QX4Y{TMb>W$2NFH3tR!gsg{LRQ4)O6;ihYA0zp7LpU%?5hk4< zIhlRJnwp3#7vAeHCWxp6tES~mEE>FL%aAG7auDpf;bBK2~pD>Nb-Mv zn)$#O8PHTbH;Nsw`4&I5Xt=r{JX2Mvd(9-J=b0&0W~1A;^o-%D|!!@mAXkOd`r#sn9exJC@5J3WEdvReC<=_prP5tn?i1; zQ`(%%+EovxN&6u5RiSz{`frd?=!+M^d;CnN5}zgg#3AJn_%VQVt`cJJvO)K;kWq#L zYl=5^SKtWTf-x{zYA7?|^b@Aw{y%2mrRbWstJ_By>jpo-R2HTr=PqsJEN0KDstc7i zzE-JWKJ+)8(F&rKIrk!ofEtIaD37Jp1R8S zh2Dkna{ZmF#^Zu9{1GLLR$0_>(3oDy`DNj) zfALEjdv4zf4S zy_jrkj-go`rpd#t>r^w;_7xEQXvCSIWJMnPYQlcCL(2^C03nG*kO&;q^gq&bVAyc6~^J5f&bEvO`H!?tz2Bjj>1-F>K~QgZpz#F*~un?&y)IhEb!I%-;6bQ7@vpA& zpikJlCQ z5qtUt20Q}<+-$6D&%2-30e|61+<(KK0IUGg=NT#g82tq#{oRP0?cV}Ee*sBeUI@b5-!Y=D0QNdcchkze4+-);Xr+y?jq z&HWd7FkoH9UntH$At~U$Di{L)s|tp{^8JBx{u@A2zb@=ot^N~|`c)f$uHiQ%1^h27 z7_LNtxMO{;KV!C(BiS&&OOh!pFN)w|>nMjVHOOhdTp)Qf)p@ zYr>?S-JP@RmFu0mBKO>Wk}GbBH{;N35s<{u+=oG><6 zT|<`lWXYXnrPEEl8gD}c9bJwe5Bsb=oQqtPrIk5_!;=MV-MJO|JedX>FwHGrSf`9L ze!sI0gs~845Ys4lf30D(*h8{s(2q_QR)B@yy4S&yY|7QBWUoG z%y%db+XHWXn&$By%l5mY@6OgaBK;JLrUuPBSAN~(TUA88 z?XA1S8dVRPx7SuPFxsD{6jr2$BNRqK%*59#;(GB*N^+cIFOi5q5F-=ef+KtR%TdI0 zE`(m`N4r4c)fIY+psCrfpaPX}t-_2*lk{-n+3Utn{ZV&rsgWcuB%`i@({8Rp!9Ax- zsD?iWJ;@nlN`t7q7cTmxa1t1e4cXk3!Xxlv*|_yTine4Ny$J6=;aOf}$sL-Jzmmog zezFQaT%;%AK5SK-;=qfL8`I?^o)AVu(%Oj!5^X~~2uAN+BDv#y{vxVA7oWplqjx6j zij(z*M39~7%KNgi-PF+@CiiR*KfI43HQf05{^4FW^Rg#tB`r%EQ??sCg|)YX(2u9v zNuEpZ+Ofu+;kDET2(_$Lt`Cn@Aog@3ip$kdKK_`8I8q{f6B;?eNV!@k?Y+IhkO$1A zum{(Bf*PM3EgUp0t{Sej)mFp9Qr=?t^~E z<>T5Q+dH1~4jOMDArz5s2u_OSl&#%LJm)f5GNWLc;EZn2!(%8OfJnd%&zqy? z*Or)1|L&ekBa{6z&Xn_LI?0?huVA|B=H ztcXbkU9)u63$u_*?su@R#BeW%ih0E6aqL}}(gC_3g$VBqH=v_% z#l>B8uh^2ErI1D}Tz)L#>FL?TGIYH`kYu$TP?v;UImcDZexMBG=uSwM$ESC9miF;zZK*%#+{!W23o%E@y@bgg}IbaajN?|m4I6ETH66VGX-qb z(1>lCik-|yeXLSYjW`f=V`ZOrlA`I~RCC#5GmQj8(m!SIu7gQ~bW&RwFjl)9aEURZ z*G15+8IIN_)=T?VWjIX)1AvtYo267b)agOX0$?!KCetM&TUlSiRN~*kn)mee5&0bO z)f-OC|EtVLWR08n^*FAf&7*1UbYFtJw?hc$QUDi|)$C;DGc!s&PE24gmSTixp&0R~ zkwIH!M6|PXANlC$Tivog@_I-E^pFloJnzr=p?Y|oZWy+?BQNd3*2LH;-e4wm#t*<_ zp{hlU+Q1(?*cxiE@NG-bAz#SIx|PD<8pbkL4xGa1Z6&Hx?h+kEvb{(UDfbnT@-*LA z#3(pxZN(&5+`x>?(v4Ic67Xdc|BMz|6;b88kDLYV*}^;!8YD0*Q?B%x4gr~aTQ?yr z=W_x(wca)q!!;Jo3!@pRUOET`epGJNt%$oWm^9%tC@heA6>UPPG4)UiMX#Vy{!L&P zW`*yjcV`C~-mv8KCzsTj=-34_VO9XO?rYZXv70-z%%QZ-qmsYSJ_i< z2$tg~O6TBuQcJ`di6i9K8}!;BL9not69LJ^+>Z9qP*c0IiZj8*+<~NFL`(6Xu^HL6 z6X0!Kl^jp3*_(4e-HHFu`Ly)0nC=Q*F?`fyjb3!jCAL%1qLf$WtGPArr(>+&XdKHX7h6WD!~2 z%a{MP&h(n^WFGorT3ALhZIKWd%?qn+2 zRSXrjG+-bv#rLxB23aZokb8}lRk~e6p2?w@;BpByI>GHg-JZktp%~y^R#jDrP<=d#Dxlk;cYlvFLJe{Y%OISb~U1j3842lhJO6|19Hbh#a zEFOb~x#M&5+jtD2cz#jZ32JLYVPoZ;NeT7XF7-~nUR8Ff48Kp>91YnIW0^y@cnGNj zq6HGK0)1&MnWP7pfV4?upfwM45xnOt1`^O(+^vPcoRPy4DR=F%pXgjk8i+rR38u&}XiTk-&R zIWy0(L1svb62p zEOxZHVRFcYRllaAZq&bi?O&BN#9z<|TP$VkLJ!gV;ug}WqqZ}rm4p(fp@@}Y^ewhV z@qi*l0CizEP$MXXeq@UdPh{ZbFvAXGR1@+?#)f)VGdBB*9=D7Y8@Ht!6_z=Mb9>|< zhv`-hxIvt(1{WlEG8XM0@z{`Ozgb4L;#MJA-X`qK`v zli7?&s$Awd_Qk%UGdI#mt?E#@c@&~w!eQ)oYWr6EMUpM}oU|&91g^a>+drs&ZQiJI0t*#l&wE&!OV#bg zbp(a;;T7qQCLiKbXKx^JFwH|u2FWf*P`vF~{#S&0rQKrxpY-x9njuo^LcKF7?FD)2 zp$OvLfDDXkiU8f68P3ubZn5|sPM1}KMB@elHrHdtEHvj`Fl1KmRePRR*M@x^s9 zUqVF&cSud&(scf({ft~?o^I*M8Xjx3}qw$ zrtF~KkBa+*5G9`G5Cl+Kt=AwoeX1Q#&zhWF`|Jjg#anV*s3u^4dNoKrgi^#plTD$M zb4YkR9I7V&rGXH|Te1~d1Pk|tJBoF~(RR^gJo)U7>3+CPj{>F^ues{5`!w^aT#gm9 zH-RN|oT;$=-9WS#b`S%K@+#vjH2qm9Gry|M0r9fhCg$pNja!#D?WiFpQxcq2AqF26 z=S(~Nvh{#MBO9jqN;7UegJDq8xx7b#5Ni82snT>eOu>(E>@7W4a+7vg0DsEWInec8 zp3q4RPXi>EslWv>4osWXXLmmLS1gO;cNMVMTt|7;J`We4B!J1BQ?ksLP zpm~LYN@KfLqPucr1)tI@lfbb-TO_3EG~N12^JRb3pJ{`0 z8aba$9%#+tyJ(`+l`##=9FQAa9N?%3(al}W#};>uJ|}kHvz<-VX>9RTiq4Tc?@rxx zA%ELPd4tmXNwjD_n8$6ESvFqQYX(*35I&(H3-Q>! zSS$swpBXncTho+Z<92L?W({oP^n*Ui`D#{*+OR{==5Z`h#y~48qrgdEodPY? z>R;-YmKThG1)Yk<8#Wv(KN3;G-M!6Jt|YY`RMLkbW{e%ESRXdY9xDHp#^E-uchuMI zmVgdFOPDO#ovuhIFo%?(QJQv?n02QTJyKU+5^Ha02`<#1CoF)zB!%0CtfcjO?x(uG zY^+8t;@KIAW=IM%ok3=l1V+o3XZjXius^ubdQrF(ijlXDElDl<_H%Hs3kz$r>c(!) z%j}cpk}h~nC4bmTxs8?v`CJ4WF`jgP(1{&fPVk%5^Rs{TskUEH5#@r(CRD;UywqwT ztnRuX5P)sYs>4WFcVN`ph!0;FuZt?Bk<`j9y?mae+eVAyn%0mdR|GSTmvd?u6Z;9# z?&)m|yHurz4gn9Dt5DY(tIOabqIqs2zkjV*a|8V3|8w9z2={pGSli0bkT*crWI8lF=d^?qGJHI^fof9 z?8dlW5RA04o{XA`>;dP^7xnl^b*>Q$xQ4gs)B5nKEi2NYGHPdDH-(t{T_YJbp-MV{bTi@U%KNt8Iw_}-p2!_E z_?e&2h&!p3IweE<{R~#(@;J4O-nCM>>i6Lp;-Wgdm*WRa1)R|BYwW3h7cz8>vvRG~ z-kZ9PP9~;kb8>_PA){%&B75OPaB|VEGF2mCM-gNm6S2vf7iYrS29ocX9%c{jPo(w5 zbjv1JOK2~~sj}AFaM~%43*&jHY)WycsuT3TjA-GKSCAozFDTFk#-^on<*-4#l+x%) zeJ{`4^5U2#CPg@#zSPJV`REI>gPDzVO2J1hPDxtt(eVDUX4)C6fR+)-Kp`>Kk{;;jiAb^(^Tv5pnD|72jjN zRZ9(CyB)q(tnE|Od?=ZClZ1N9&{tATowT)`nBtVCMiG<cV>4B+NWbW3Ul9v#o#%*X$0vcfTns^5b&t3uhdSS{dUJw~Wpbmxke|P6 zMHo*z@z_7Q&e*R1{-V$6=7R1q4%V{1&*7vS$oEilcfRJ*asSP8scAOIpsY?cVndH3 z(XFCIjbqN zfJ-?^ojDPL-xhy20s0x48x{9J*q_zRs{LPjzjxk)oB#6BC;wwsD_x%$(jXoI+t-{G zS?3phplhVB(K#)O3Tx$dV##93{4)z$<-xpgclRlzUbKTo*SAOJEVqwT@ce4v8-&u) zu2+osXcnmdN-Px-Z#Uy3a)>t+VZa!FI;?oA0SW9e9IODoD>O#`XAqp16rtc4ur%ex z;UH9Fm@@_|ZEbxcr^X;wdL%x>l(Oo`PeCXmhFMru#w3w2c!?Od^PFQSrda`>$O}P@ zbOuT(4n@yXjbR@BJxWzyX^u@i_mQiHU#cbO@6RrA(jN-ez82OL6pPQ&9kl7PU*?00J|pNyB)c z^Uw(Q6B@bHMk=WC4g+;0vjLt{))>|mdzk^d%IKBR-}=wWLT@43YfdrS(-A=LdNgKq zBVUCJ(I#f;mpbk|UWriGXz3#o$aLRvBiYa?g;n|; zWFdGUQl~`(&YQZd;Bhx&Et`x}Mik)X2E~-(i8$)vCovj`kck`0b=Fr=kf%BLG`S&H zGT>4k_+|Q|T7<^%-W>3^CPi?Tef&Up_HSG*ChubkX4AwpKa_n7kx=TdCo-eoK!Eyj zAg?c?2aOW@Ar!+W)XO3e7@>Gpg^kE1c7xwIgSS!E3&*Ep5EvrucrxUq56#vsn<_Sc zpcnNmN2(tV_lV*bT*zm zk;&TU$4C{?)%N=oN!?iWEf^;0hFbZ za4Fpml9a2rDjwx&O<$+Mu1pV81><$6y+DgrqV$)zcSDn8hJMlPyr(hLm#?W8n&4Cy zp_WhMw($aYRmii>VHLE=pK1wz@YST0&xr&+ZW`Cn)9oh4tLZkDn6;-&c><_iJl^M&XslJ>m?YUUJRmSK0H!=^_n}LCAiyCuT1}`AWeneO|t%&*pn7=0XnS|GnJ5he1&It))YGXv z*sp4|r6#X8iw@j|iMFg%WzE-;)#5+b!g_KETQSwdY7=0gg3e#nseCK>j;DnFB!%9w zsrn`tu>{XZa5uS#3q{8$A|UKWE$jvxw_%>p=00<_(#P6+^+BknmG9es#72I3rJp_3 zTmW|NKd=Yz50vqD=f9()k-aqni@e^im0v6sw&$dowd1b@J1GK-vYDlswaK4-!eC() zQmtpid=V)*CY{tyZ%F4zK;ADSBDOgFF{=R{OgPDVs zje~=SgOrO6EZYUP<6(U+@t<%50zW_LGjrs(x1EiZi}aZ~;^1g+q-TY|N-BlGPU?c7 z#ZJopo|KK$5WIzz^m#jw)Dqzt<*@>PKd&qOwqbfUdIndlz~9e1p5Y8D@b}-1o^76i z4=eEZKemH`qu+=84IzQg^FMNX{%>9WzpKkXh}i#am;d|i@(*zMe_&m5ax-%Rxmh{b z0sl?z@jt-o|E@xgx^V>M}hCq7x zV+1JS3uQ6#;;wQaz|J{C*RF42kXJ%b=txzXzFwJMF|?3Hap90iMqx8w-9yg7F+Q_SzMr0IS>*z zi&Y(Sd2)UHzW;#oNscY5xXfYfSd}_go(`Dg%n&CDEDPAz3W)8_|KfBIAKkSd9~&ai zR2siZlhwRS^8)paYgy}XTPxNntzxD{hc2spynYl6E5Qq|;5eAm<%UYKy*>XB+pNNT zVaJIsbh1le2RIk(p_`v=<4@4XlxkAutP9zvpCNiSn#YbxJ%+45}J6SOY1OJOH8!~qhILQQu~S+PisP9PGgw| zT`o#$Re$*&qCmYUkC8vxGwM^G&1k)D5ubJ`APb)7&>gF9qL zPi4O3XY&*dg{>wtBpbkiYu(!&&BdLd<(Pl>uxrU6S|L(jEIN>Z%oKFyxXrJhR9&^! zo2+oy^7ME(Rq@c?Iyvm7d|A@0TRo6^aZ`WCYh6^`Ly~o9IwZ6YXrzhtrVv}az0YfY z{IDh7GR?Q5*PN7+nk)<57cOv2NE`)8jq*(4-xy#QBMg; zb}#irZCv=KefHofgI(dBkUI|d8G>smDj$2Gv2fa!CgxA|Zr(R$j0BGb8*S~Q#&dhB zhfU{PTTs{UQ3Ne_OIW`Yeo}vT_(0-wD^QRFOFxwHi9Aj0_EUbr`NN0UE9Q42DHN^W zBtDZM2~H?4WbxIMQqFM*@SGyf{50ho5{hf2~ajE%CI0fsHLj zREJ3*$c;wg^}#uLm{uSdRaz1i`(oKMI_Pp9e{wp76Ogu#si8+W`h&kvM6uY>9ir9N z9fELikQtsOBJ;IZ=Ib9Xa_KX4c5CIwq%x!|mU!a4`V1BQWox^85GE;(cp;G%h42W=%foEqrL%_#MVY< ziG1uX`3wt|YJH)3%HfL(&ePj;t@jlYO!nv+*A-x)x_`b=UOY3I*)aX+j1;66B11a^ ztAW{A0$nS<$$>2pY%r=?;7GsLy%3o|K2CJ~4*R%k!NlK3e|KE%MJusD#|dxdSzEPb zLKT6|F2==n%dw15@-CAJk4+?_l1&Wt7XLM(H_WMj76f5IGm$uB_T4S^J<_aFL8aeJ z09M;SYJeJ2X(%VYnh4Vm-pEdv&fOn;Y4`+XqQPaDa8I*(09LfQTzi~*~CppC4h zO*fIhJeU(U%eYdr==USD)g4zRPFnaBk^sTY5O#K8#acX^Hol^SYJ3ey>w` z*M4{2(7MZk2>s4 zdp9?p$|lwGrJDzD4cc?|W|>iM_w?$sc876h$;gXBi}YgJR$nFZc4Ejjl}pGVcRTl< zxquTw<_h>bkqySHo~t&lK3cs7I~lDmf}aE;8mL2sz$84+e1u*uQF;()9n1d&6|Bx| z4Zm^NWyBw8;n@HWTIVJiTf&y2{Pv~W1*K5u5`eHv(rP3gn$>>9V7KF7T^pVenV6Bb z+B68~mQ*VkO>JJi&V(J@y%0C)kC;$^f-XvBP6*qG*O@|OqV0)mdnU=23Kz^;E-V3( z59iSC+T;_r?PRF2E@q?)(=V6rDH$?CpC~sdg#6@8y7*m2-xmbO^$D)7fT69-6?gIH zLDHgk;6)#_tK)*wh$znT`TeF=zJw2&K03O70Mal*?&;@ zQ2He>IUg|%4%(pDA+fl8^%(lpC+h}9A|B;1yoJVc^j&ukn(O=MNq@@NPg1A8EbVGV zPwN9xH}QC#Ndm!!HvTXg*Sn9Kuli}BVNGp@aydG8>vsft&EnY)+Xzv;rC@<#*v;T9 zKv+<%i269f7DRjDo)iOT7)ZCnfw%Y*ogsB*&#r0=9}s|{%B#t@J1epd-PS+$YCpo) zf{-r(C;pJZBW&Et#>FI8^gX?cGn3>%oSpnZerc`0MY@%n2DiZhlMy3yc!l-KxeiRZMiAVGZ)CL$lvK zUlDzvd(#J~kEt(8f%7Q#Av7tQx&*wN^C;tayJn3zoX6^H=KK*(SeirO5Gw=*90>M} zm>CgY)k)GOzHGjLyZ}vJivt>$4d`qemqC=eXblqfa0`iJwFtBL26U8w1JCuCA$t?^ zc2(kBfly03SlQWwTB;NZo6b=N{tE;bT%?*auFsED=v#gs9k;8yr1V=Iu00(Vk9RBt zaX(6)YUh$vW%D*=(9=WGTJuT! z;p)@r{oT|3`T2Im)3paU#B=3(%|*!jJ{q~w4rC`Fx1Rr3I>^mI1Lf*n~{CqFoo1)8~oY+FT*AR(p-kcHy1O9Hw%!#PS$b= z>zh%d%Mt8xv#^G+H{5X)z&X0jRJTZsrBYxIFbiX^EEY61TSWylb)_w2N1+;-=8V+d zU_?N%4a;Is3dE>2C!i-y4~yNR6;0dll&X@ab%%%&0AUGd-!xT^CZcxNjk@&gzZj40 zyp6Yi{PYA!8vG{Mpj_J&AS=S1bv`}>_ zo~RolmkYEa)bgFJ%+=R)14l>G1hi0Ei)0otY<~1)E_5CqT-i3?hjwz@WV{T#12|53 zu+h5QL=SzX!@yvf6f=pas68uPS`8LyyntcB?7vn9KWdl)72O_+{3w4cexMJf%jX)F zP_Y>`J=>Z^mQ=ABx9(e!Pzj1us%kpD`vT{3x}KyTZQVewY}&(sI-pJ9&m?0Y1<9U~ zRe^Ym8QCG>$0AG^9M5otv${#yAQ71`Z|yqgc5mY9?&>-37OQpn^O|LVsoDCQnt@5Z z9G^dAwhzwzdF2|2ux+EZ3U{6c7Ap6^ML(Vypbs0-*$R&WR`5^=$Z*J$lzNlApb!(= zeS+c393y3g=m?iGo3QfUVJr31Cldxy^YnT>G>!>0!e}a_RoQyri@ANt zaQ+FVFFL~)~CYS_RD=m7U`o)reBfgZY zTGY9!O)pkqEBrgRh{R1_Oh+8+kZ8{Dn-$P%rXlB)#Jv$cbnRx|4BPPFiHSEs%Eg$c z2^i_x@YP2q&IlQf@6W+8sR2s!Sr#Lu<#rQ-N@Qrq%(3ah%6LlgctV@nxzSC;cA1}0 zY{g@hfAm(}w|v?d(+>2+j!@J=)M*dO=oYs}pgZBWQR$&Tro=6|@IPeu3I|1h>m*a;B^tM*WMQ_0v3i53rqR(o1F6v&N?VvF;_1Y-IY z762&;=vcq3-@)_>1NAbYPIp5Di6hV|b7HO%biLn-7CVfFX|Ypr_b>&FRTBX0K!h!J zfM$44=8@g*x4gP8fm)40D?n$^>d0GTK;%ke-4tz$om#WqsuP`?GbqwpTRn=v1P)1s zjKlv$zZR!;9wx>^B5qTz5<5x})|v`J z_^?~iSEJeENforjN&0E2)*_?pX4Ie7y9f|ql}b%LcM}oKT=#hmfO%x7WXL{W)U7QJ zRK~LCn6Q3O(&8du#+pkv5r3&Kypgio7H*pLLtF7m*UYasQBEuO)O@S5|441uuc7=} zjVMfSzNo0&B(7_dYb`~ZF1Uz4GOQwGlem(i)=GSjzId}IRNQ=nu{dNXC&!ikCPN&{ zt#b1-CmlM(T^@@F&t?oR(P_(pNW zHJ%c3MI57oItqWR!Uj!S$F(KkuiuNr3}H!D-4h(%0BIvsT_JX}fRPT(g?r0=nqCya zB+HB*@Q(5^p&nxh-jl*H`q`JykMmjHzqy`(*f^)5<{u#=MboybVZ8Z%gpaL=rhyQsDy}ir+vm?D{}i+N?Vks6{2_u2>G==R5YGEoV@6T=e6o|UOKs!YgtrS-Z;V=eLu1483cx!0zvTcjvw(0*_wqgm%;JlJC3D1_?fG!pux)Sx zT3x=l%aEo7&It(!%i6IL_-xwnMf%O6zdLBrJvLp0K5D>Z)_D-C%@$>nHo9#e#htD` zZH)3jR1a-MNmS#KLYuw-8c4%4AH}{vYh_U*Fv}7iFPc114~U_0xb=U0lekSXy7<+B^C@!Y*_s)_w*LcRE+wF2Id05I-R zP4RWUVsRA0dUBV1RHCwH*Or$?W#+X1@}*53b)M^TdLaz&_G0ion{`Co-f)-T`{Gy2 z?SY0g0-a8++dj(DNWk1~8%{wY^?55u{`(aBipDn##f&uIXjWXvK%#wX1)@ARga&`= zl>0y~d4;Brw4U-Dg`?PX600SH$H!7!eoYQ3_G|ewAc#Ld=m>VHg3nN7D#1;t-;|6O zSL};;;YtWY2v5|}Y!;~DxXsGJ3i{GtO}BSOE2#-Xv&coV!E`SN6RLPgLiJ%{*@nOu zbeL0P;up|Y0ot-*vJ8sL_?*ih`VmytYG1lkC9vL&gH{Ino4yx4@B#FwY%ar_jMAbx z!j32*VZpF73aq9jY0_id&#QMobVj6d0zua4>R@k{0Tc^AA|5%bJ7Nfklw8uf-YIkk z*r|}3>yK$e$-ALl196Wc@coLXvp5C9o%!a61pA&O5FY!eHX#Z9o3~i!ySLc7o@^81I3ZGlRMQLwgX>B#_e=|r`fTR4ilyI*^cY)k_X$rW9vy0qXaEEPh!~)H9 zG?0OFlL>EfhDb;45eM9?u~7!c8HCC#V#gU&&ux?@7vXt-t4(fQTHrnGa|e6@Vgu|l z)Lqic^T|YR_9m$khPPeZ?1bjkad+zSnDa_nxO5f!dK!`| zN4I0((f(jjpH@NT*i*r38*$Xm$qPvvtl9maB2nv6S&GP!)PsVf7()g_n z!yf3qpA5<^x5a4zuh(EaNBI>j@;`wO61cl@T(`s8P;wXC8G8^B9JWzA?rkO<^SqBc z3|nEUT4QiKBc29vm*LoW5dUW-T-=aqM|Y8*F*llGQDRz5}st)ed2}xO7XsD^2&l@ zWMoYOyCQr}?%1dh9fStKL}-isS6m%?IZ!ZWILLSDO7uN$=EP>&G;mgr zBW#1+2n`MHjNA8b{g->^xGI}9r>ZK$(Fb+WMJIIYRbROkH&U8!-137v711P!2klyg zw|yWtfy~{DMh4uN)*EB5`6~U+LEm6LK-qR&jKsdr@!jIo0%Kn9XG%KY?VTvpiIB@( z`)Op^*gF17Z9C4upXS>g>QyWy#~|fR9yOL1y@6 z_qHwd)7nKU#Iiw|=SSTj;Kk(F(f3hzy4nm;NMC0Fv``57zwFBOug@)%kU-06P{2vZ z(V?=C80$L*>sZTPBy1gmW5mUOVjIV^@_PT<^0eq*|CCc&dYqtaVC<}0i4yPtgwvCd>d4M0;?^ooV2F1#+z5;<2-pkltuH&?Z}pL=n|S#y*-^| zb6QMdaKq`af)GeVgI?3~0?~X2{fsdM+zBlD`QsmP_*M+tu&)7lQtbkptEVZ29~BgD8NHC^1pX@t`VxCBvU| zYLWhY@or)K<;9CXCsG=v5spk(XU8*aBq0y7@qVct-&D%iz=nRQY!wpxfcfdcFbq>- zazZFm<>6prOh6z-D~!iGbb$Q!9{a1SZb-!Jk!tVDR%#*WzrXM!SPYOg(gVXYH*EN% zx>rAAf|k&{`y2c@WaOu_WGR;_R8kGZ+_yGDp z6gZlH4gTkHd;t9~T>S4XGco*woiu>{4-LiNT4rUX|Ht4zMFM~A1_R?inPmg$|F8x4 zTgw1;rhjbt7n%OIKC}K3@G;ZBfBjX30HFUvhVZwRS(yL1&;KN<`(HE*0Q!Gv68=lH z008_8^Z!e=008_8^#31a3%_6aYh1q+6aPQy7XGd=_`fsF{(We_{UZL$qTu%_`C}A+ zs3rlwCiYzk@qZK(XlutTH_pBv*7@TGq$Kn^g#sTUK}rUyn;*IwNv95K8&rOaHfl{* z{_57r1f8)Wp8Boe@?yDC-POyv->va;+xc+sdPK-N%X+wN8a^v;@Y`GcqW9VKs&2RKo9_PBTld?m`tyzL z=H~i#NHfB7z5Q^)D%fx^FMfz`ak0&CzH%ADM9D?gYKZUZ^R@Oxou}qOiG*ct)KdH1 z`Po^UJ+O?S_p+ZmM6GR_4{LF?wS}tsne$!CbiEDrtV_q!aIMB-{{3Cg{8-v5t&Nvk zNqJeFvwTRD{qUScOYd+}vGZJg&z^pnvZh8^2K#-hqO!SWh4bA(vy=5szigU9QU0a= zG;6?KR8^imEnns8K-X2iQ-V!*;)k^bOjVA(rITrHuYdxCo*TH#kfsri)_%=-xGYv< zZOXl}h8|WtuGOBqN-Qq?(!GoGhv~ztHMWJK>8BUOA6rRh^^lZd=sB1z2E$tPJLL9{ zRYb#MM8jQDJ=2({KhK$hIa$TQ|6TUKOjufi5h5o};M5m#@b!8r^h_k0zF$#dh7a za<%VmPmcjLCUA^b&CC7y`O5c=Vy&Het&N)J z*$#tjY5A*)m*&NZhgZwn)#~o6Bf+*ORpSdgK{;jk3(ZAeCZB~Ef%PmNkrj|rLyM@S zS#$%HO$F`pMgKq<2O#Hk+iC!#X8@^YxrZ1PwuX6Idgh`Mq~hkZda*XF#+{SL1FlOO zcT%)PQS^JG0RmAoQy#Ae!pc!7E&uJZb(bFZi)Z<}OKzqcAa#mrIh{zWK(D6-)D?AG z2E>2p4*Sdu!~#S#B@RW0vb~EN?A@vnwIXC8px5)9^7@F~BxLkK&#PxIKz38mOBQS+ zXYqV!^KRqj7%Wo8aky*Td%N_=LVZ%eo`^743I@t3I8@QW8*lO32`+7vM;R2?_ z_z%lN6aGS!c#vr~kdnd{z7@SZf_A_)wg6(^i{g>K4KxpaBqUF_3%Ia?bv#PU8Hi2{ zg|65S`Cu{wc0iI=kUi=|@Ex|K044%`kT&U{6|xZshzX0AFa6BuDShlmo~Biu6IH`*giY>b5WAXq(sR zwAh+~>Tfq!yGc-;%G0f=Q*}@W#e${N_>Uj)bzP^weHFWuiKJl5LBn3mI=+Ak)T6V; zk7*>g`evJ7e6vYQqsW<0;%rb4zN%4n=w{vHi{WHl=Rh3EsQs+y-R5F@fmfZ>SnJZi~uGA{SiNMIBTHmnsE z^oH<4#7WuoGJn#6`7r7U|G}dh0wxVq&sPiR#WSp#X5%0;` z#Ux!C=n9U=+%r+tMV@-~=_4aH9B8JJbS_B!r(yHFnOmm}ER-fg!;dax{GzJeU*Mx+ zlwn2JBn9O71B|=bA*64i8F^V28D#=m_pYQ&vzUpGn*p0lT_2zWFi||Dp{3lo*?Oaq zprJtVotJX*)g|}_$VEpJJ3scDMO>uHmpKF>j%+a-lBL#+@XxJuu~`9Tl4DVZ1FS3z zyAy)-4GSgno#F$-kjlxwLJTBh(d!se^#_*9+VXfZUlXJWip)vfA*WM%?i=oSa93-@ z<1HqjbC4cZ3@<6f*YR1?D$gZiA;d1m5o~f>sNN=Jy~z6;(@ut6lrZ9b)*8m;Q4|sD zUGKURWeNUJ5mF>daOgbk2?d1UZEu_=&z;O6pkzd*0uKO7zFhQK?+>oE>aH{ExAWgd z0j!2S33diI!5L>7do{URYVW8>92P5zV(&#XtH;VHsNRT$r>-=i6^&jQ^)$QWIvWp* zNF=9KZhtO3BA||8>}Lyi7;U}(Krkl$RyoX#|JhA&l@`&uBS%--KO zC=|+AzWZLUxtGX&=!Iq+X}q({ZY$F2HrCK0lDN3k#8Gm`$kf2THxuSSZ@BI1GIQH^ z?bP2yeGHWj`>{3pYfp~1%4MmN$AtniF-7!GaAeZ+onE97!ztHds9?=T0pg1H*> zS9bkchZ{n4y7qWN8CZMgb#_1T#L!zSM`^|gAyBw7onvgoLBItW9@Z8kO|`vo#WdcC1vTxS4? zZPgDkC38tWZ*l?&^CQs)U+I$Add#qV$T1EVn=&0|$Jr8xJWkTJp6``mbBlxM7}Q78 zW3vM$>@F>*Ss9V-r4B#pXG63eMT~3qh8UvC5M0eYIu-;dv#nb99QFekeZF3I&06Fk z>}`WmF)opkaS|)4gBCM_A-UcV?Vylsv1z;!Jx*UEtvTLy!92C3ELllKqhyybOh&LC zn_QasuI{c#zp!MWO*k-?k+W_NN$;3k&e2Ve{akeiws&S!?zSPb-gFJU#}|?Byx?Um zE-tmnN3qH8I?-K~x^iJ0YdpC;G})@O$hIL%|J=`HpIOD92qUK}gTu5uRKhu=OhaY1 zbSg1Xo^uqGGfCClPBf`3#N{-m#;(UZ2?ypYXS3_K{C1NK_$?*Re$P&u;ob+_5Wlp}6w#MoD?`IMLNFnIf$#elU{&Y|z++JE<%p1yMg6D5Y>}Ld`FXW3NdM#fFo7 ziJZWGNs5bo?W2|IM8akqH91jS6mu0P8+E_|M`yY@ZJ%;2wTuBv>%0`&;6d43qdMNP zODqjtS~hLu0kk0zm-VokkR6tzSx}aQ%4%^3&?js(tS2Lrs$_aUx)dED!Z%|sU zl0rBM!!8BgYQ_-3*XN2}%T)B*mOQF1K$JMIUbwGC-Bka!lw~fI=YjH@TWT&$fbRV< zXTj;bBRR`qxx9IG9$idRHaCvzwdPz}b)(^$RW3QNV)M*om1RMti-wTab=ALMSNXmi z4e~wbLfn;L)u#+#W$8~CZ*qBZLRjB8=&|Dt*o)D2kZ_A?D97Tl_1`K=Z&>@V?soqE z;~tZ9ugc7Uo;}$TUyp6Q0-3WrL08;Orpsg(Rn%sERE}hGH|(Aa+{}Kv0f-WAwXTCb z$SWbE!Jw|iXZm8va|=xrl_TL5`n=)jgUa!b$7s_{5|Xz@xJJ<$vG_MBQPRi*_v*LRlY+cHalf z;uzBLD7MZs@-+3nbm_<)r}X$pKI3t9m!h6g_#m_|BO+8bDAzAD1we+~=}Gn8p>6{| z%S3@rLbNZBO6dfRXbuLx(q#5gcNkxIOl*w>4j4#fA5(e4Bjnfb6(t@+#UV!(p?7g2 zGkGTv1~y%MS6T=@vN7W5TOD?`t=7HMBCh6lVM9WNtk$=O(@l5GHWdJgPbIr_a)r;J zv}#%F?xMMF@PH*xIMpCd{Om&OzF-RqGn&C!( ztbh~RgD;RCa3g^1%8zOhOeBAXR5t~?p7jK+OxKc%ERs5Z^4R8(f}G#GHy-d^b>tN> z+jcG}9zMGYXgG8!P)?}I?*3y>DdfPSfP8kpv;H|A-$godRWcNj2$}&lKu-!4Es26K z27rJ>L>$ebVN$9@%PegOWkmel*s#EO`(eW>6`;hh7f=tKVtp&-k+fiN#L=%kC??JQF z&1u?pPLK#Y>{RmR%$Y}+MRh!hN$l=Lu&*b;($WCX&*PC4VhReLdn6|yuWlNZ@F_S4 zFm{nG%cK>7q;w)`)g_sK46sc0`P?dBJIh)(pG;=ZN_LM++;TjoNGszyghvmb8`j3c zOR$h^69^C-`{--x;q7PP*r!BDMq(h66?bAqu;S|S*nHDu@`PA)iPk`p<`b^pbENMy zw(60&UZRpB!3)_U+yYBN!n^CEe*$*&(wGZ58J4m&iFi1l+fd5ji3}p&BIUo$cndC{ z8Jx%ViSi^PQgl6~>t$$$J+RtIKV0aV!QkG%w2Y>|_F!rmpksJAVVAGv%CBS@3b1|^ znt)M{47pCt&W*ITfZz^>qQ>3H&^IFKrxH*LrZ@=84(r9EuSe)_r&$qs%b zoS|^S%^=dNs)$CfOI_gW@cvxRQ~ye7;7`#~rYgMt^*0L&@IK3LxG8Fs#5EBT9o^oV zSZCxu2-)Q8xFzv@k}*fKa|^juDw32=&Fp5-tdu8jGH+U;KIBo$TxDv7|5>)g zHXl^-C&%=$a(j1zoCAxTW-8j)3*=eltN}77P6O2V8aHO02|m<#G+7GPx5xllN>>V( zXNFOH-w<)MG_KK4eqn40G4}S1FdJ0$;vqj!$bR&C(g*bsLInbZFxM;N#F>DJY9&=8kkKh1%z$u6-PhAbod;F=$vP| z-JA0vS?kn45G$fHPUw+wo5x6RWam>qW-MjA@`Cta`owi?({Y)p8KVnuSfZ<%bn}oV zT?tNl4cAYWTkIO<+d1p(NGaA1;_)_5BI{#jXXnA|s-gsQk$C!*Ef(E-&V}z0uzJYK zE%sB4i_YX=s=RQcCcM<39s)gbWZc^&xyi!cYwt(yUgCv>+h+ z!G@I>(^|=(iJ741hXw<4@-N`pksxUK6~A8Xosqovx>%nclf+ZA zAjX)OO+vs&&w&48NWX{Hz9Vou^r>0tW=F{{b}+f{b%;9MD0fV1P9guXx|&&wGAsqU zzSE5_c_GT{VfAZ#-#qeDCC^mkDc+FT1=gB(C*?Zc9C~d zmp!La+C}Aq(Bu|E^bJBRgOV%@{=@fua(l&Z{@f0X<#$b^KoeMQUUS!Z?xxjymp&$k zWC@L3aJq;$>540nlXzjtA-&c{3Vrz%t3zh#jm@ZvwxN@Em^!k2atK~U0f`AwwzVZK zoS;7Vb){TS50XnsIyX}~+7{oMmD1$jw2U9U@lfo2BP}izQW#EmChO|+c!==fA7xOn zxtMIyJz`?k*&PlKbofeQpxzDLueW|A|Ex9E+DCG~qu;(4+O%l3aE%8{&qg#+s@_l`q1HvYP*hhwuXl9(+H~}5Lm1s>*-hE{kGSFw7B?c zbSQxH4Le&>8SlWXx*pOBBXO33ET-#wBe~&ra#e@+fGB7%S+co+| zv^2NvtitbOm&u_Iw?)WwQYoZG8+0MSs%6zZu}+UW3xhYy{KixB%#buWa|}+mE#}PL zutst8#5s?h;gO!*An?PNAIwnV3WsKI2xCWyVErw!s=Tl+ zoyGA*As4mxe-h~QFkl0sgXHGh>Wk|fZ(8I>;>jBSu#DKKif@IOD2^jW+zcG>J_tyT zB14eXNH0ytMCVeJF)bABWhrOk9t5cm?Q)XV`S;)1vsT6~PKFps9nqXoqwg{RuH*dy zSmPvf)^i%ZE(4}~(kY>BLv1paL&D}djFvGSR^P#Tn&@ZAh|~+qV{%;h4q1k$KFWKg z@n?#Wtshgzo*6Nl1K>^Fz&&ik6K0E z5@|dTPnNj$1JGe_^ul)c6c{)a$C8?0Bdk8uj6&$e8|PGf_YPEMtV95)e}xOy%Oox4 z-VMLVJ!ED`z=gIDSGP)r8<@{E|5;oaY6~3zne(v0SgA4AbcwpgYLLhHMUX)lLCz_p zC}(64GN<+H=DuTj7heWQcG{RajM_CfTBSFWvQ3#^F*yyA{_{n|vC zc{(du#jwXvQCth)NtWpGrT_BYw6n=*+nSM?2(8>hLT{GAxUR;*=hP(Vre0k?xlK;r zjeiX0NV}$+d{Xjmz+M=(gIhvpQX|HK%PmI4f-5Z;v2)Q*vmb1xv5g=d{@q}&QXh(l zk%yU~5w$kdCavlVkD;8NJ-Un)@!ejX}{rzjdL137dRvF)ggR?EMr`6)!9AbNZ zt>2j0bv00)ZS=4G#xMt>**duFhqeEG!$I*v4YNuQ^Kq1kD{52bgREhrVZbb2>BjX{ zfIAVx&)yB;wL~pGQ=ZVDA>sI}Z=kPDepdfZ@&Lavk6$2!g^}@3dvE~YPlm?+SCsc& z0{k1h`a8S={K?S%8qCD*(|$3w z|LNdaz;8qQ?+op?Dfwd*e=szL|Cpg^R=gX1`@AzW$Ipf0;mwFFw>&8OyVfKIMA13(6;sfiX@Z(dZP1I~yurjQM&!Dm+i{MzG3e zy;5YZ`eyN*2rbST+!yS>y{!3WH&1b6WR$KrUOX?KYF=31O`noKy{)_SxMpR(j_|zb zW{1DkzCDRv%)iysz3uwUylpgSQ!iJa@y*>%RJ>*>?B`oWGG%zv?fTyGzP>w!pM|eK zO%BUIRb+l~L6p zN*iJ;a-BWjDQmJw8~S!YCf>DEM}57G=*AHVhFuXOuD-F zza-k7d9!|dug?Vp1a~0&qHnwyDD;YVY33~~5IF*XKP~fv-A%~6vb;F%e7_I^>afGp zCZw5l5uR6y0|Ab%YqbaqHhfjXoRcpOi=VH9- zB$zz6(9UU2xF2PfBzKGO)DY6u)_`)m(Uw&SdDhmD*NQ}Li*S`z329p#7j;nau1;ZH zygGMD1(D<%848j@DVgg1#%EMLXk;&d9+&B5b$@^cIo9a4r*p^D^Sa>q$RHp$4(Uw+-$D*A_$M0SEpk!E)|7a zR~3Dgjb|ah$Y8tE^ua&Hk;9+|ZnjqJ~ zRZ&G4+o(N{!2pZ}UOU_ECVe$(t`9c)D&d6T16`gtQ~cn2WSem3U@(XdElM5HqPBtE zJ%F1hG7|k4~EWas46`i|qlMRwL7O+f00-L_tE0K8DpETGjM*;-J7 za(wu3u$_n>bvn8?UaW8=@@wh!h$cuIk|*uPa~RbtsMD80A^6CE1E3PPz@mgZ7etOo z&d*(xYrJ;2K>$%UUl6;VZNBEYM%I4uhzA_J5PJec3=kE|v(d8V_UX}~QfIgz5sbPa z7k^Xo+B*yK(nH_FPZ`XMfPIwICRG8+S!DW;cChHwZn*bR{lgcJB34?q#K-U@#=weD zp4aEBk!F3{LfjGhqncr8^+Nenx5oxB&_d99YKEhI%5YUVBXV48>I=gC$vE;4nnt<) zpZTfYU61FJiOu~L%|uMPys_0NH%p_A@HDPI^+0J;P}Ur}DSeC@E#9WqtmKVC`mRP| zO!^6|0TL<{Ac3JB*OWBSHU+7(qCS$EiJR*@SxwQJ z6Vtne7nR>V0qk7RC+*8@_8GVteztpw9fkj{2ll&pj4-qPou#j~l z&)A>BPO|tI38cVp?c4)u9aC62GRxAr9c2SDFe&je5ZP2?v=l2^C<=ucjQR5Qp)u!R z)=0H`^s;$bFUqJqkolkq0Y-i?VFShK1B^QjKjW*-?q_Tq@kpqUb)`{{^Ddqb#(wW5 zoxn;HlxWlzD;}Mw-QkcZfRD=BIq_Wm+`WPP0ME@}6kx>^bC_`g_4|bk@I>K$+9Pu}Rtq}3iSaue}`ei#+jL+t0Q1dk3vjO1=M?8*5CM3{gREo7CW zP?Efe`eEduI5AfoseptzoIL3=*pxcbEEWWNfFd2SJ>(qBH}yM{GG+AV=B2)s$J;j< zl}ca76dhTf6-6UR3I_tQ2z2sKkU{+6)ss2$bprw-_N$?OE$JFx5=6EhuhR$%Mb%%Y z$J((31dFGR2QVtqf$>ZiJggU+^9@I0%8mDrn%6|;N;udvZn|9OGDger^tCk)(>gtr zK5MY!7hsv%fqeAS0QrG6gZmES-w#gCvbV9ZP>l-Ew6nE?7`V;?wo>&5%|_XW-!|=a zSsrcI-wn>*?iJMLaQ8tA(o1Jh>!kUD42qf+iVs!^FOybOBb3dQwTMTi`?L0Qym&PDUHTZI3b7N$b5%S)#uh z*ip(#hb;9*`pR7(1I|n?FdA_IRz7O>*kL>JY|xW%)_$`G_q^<^7w#N%w=m_i3>74v zv1#e)RvyX5Hk+|+Up8`Bhx{Cy{kPG3R;}#X+v_wSr>$lo!We`f6x-L9Ni1#<Z zo2x0RoLQ3Ks^PO~ja6cHl<`6_5$P+1F36x6&%@W%k12WF+7q z!e@qJwRHD)@$Urnz(zUo?V&XZE+*n^sv`4erfwaARx7Ah$J=9zL~gR@HcUf}O+H(3 zuz_@hL*B?0;?rTk^G9Q6`>=NN)%&w#VOCKYne~`P3B|#S@Hd?5R3~j|=GF+-A9RIQ zhy9~uJ&lSu1#*<~V?^~iHbqL&bDb+W`8BJbE#vLm^z$Qx!A%s{)`)GUq;tTQ8)=P2 z#-KWZTEI71XCcXBWfGwK&9PPQ8NPDd?W%O3;#4*k!CjyV8+W1P6<;}5 zB|G0yIA4k9Aujn68vY&jk@t%{Uwv=FoO)bnnYhpijSa}f;~oa;bf;2~<`#s${-`j` z7sO7Mxf)DSEutjxYQ9uyj%S+(rN|trExv#)&bt$c66M*Jt|b%4F3>TlkT6f+-mR(* zXKmfGK+?;51|2Ud^E0a4X=+Y$Ym(X951Q9p)ST`Yck}TC-jm;mi*d~Mm%JJCluFD& z+I5n!2|D91e-^GBlzA8hI`XI`d>AH&+8>{x*w>2SA?&^*ZYVL;(U@&+%8s?#^T2^t z^|RY?Tz}rs;9#CO?rYP>)C>KvJz90YJB_dFL$}sWv)1bSdZnw|?(@2{?u-6Mg2=7f zB|9K*aAA$0p7(W!G6SHa(k?qt?)5E$dz0zL@)_Q~hH2|Iu{eh)7gto8*%&!~>+uN0 z{;3yO`*u{PCaOgvW4S;2ZJB0mRGEqBM;d!Tw#-Kq;XDyqoHUA`Autq1{!UOksl^7p za!~yU`JlTb#|LmNVx(zxa;uBdZOuLD5{3gV7^gJl(~d8KR{2J1skw5-B58yU@J&jl zY*JyeBFf=uTZ2X>z1+^~+@Dfl8e$Fsc>+seh(n*(Q=w^$_X%j>k|VHk^6|)~#kR4% zjj472`eYz2E_WiW~^ zyAQJK{!nyR4QsEe=SVgMr~e|ad0t!Xfg_er#iryso+Ne_KjNL%UylzmiWvj)C9-=p zU{Nrz=TqB;8Jk9f7h8g;^l6cGs=tsMq(@OvMw-VSzBZf`(pAfr*Wz~2o$1<&dsoF} z+O(IpFQBjBWCE*Lh2E^>8*J0kvLTPavsol-dH0Ktr)!sG_TSmj_RM&7SRijt#Br;AeD3dv3VGXu#)Wa11OA>*8}8vISD z-fe;o&TnpBltO+sGN6z?B_sMPi9XpgXEcf`l$^y5Vhr`p>g49D$Pd7jIKo(D^>at- zQ-PmTu0?Q8DKXMUQqn~h$fAlac;v*zVvdeMnG}!@6@v|wC1Pj5Ft3;7Gg-8&YHLJ) zI&yi8+Rm$P(7wHP`)MB_u^bijDC^Y7=;)}Uq8?+!Oa6fqlv~P12KOd;+p+peH(ly` z2GsunNt9G2^T^ z))^*B3vNT^*kge>{>Rc~cfDlCxY`{)57nD|QOWPl5<^-GnN=4h3#eKK%w}?rj;#msnI8B5Ie&z0xU%e{DEs93tOsl5-GA7 z+)`jkRp}B@7Q>^Ckc`LQ>oHO(5TI@w`{1Wy4v*AJ5^D|uNSuwsEi~)Wqf#ugM)jMz zMJ3J``pugp6B~*S7pI^U5Uk{Ozc5)hZ$w1L~prD&ujD`utK8C4iL6ksg7V0ckv@zMw<#2S6T03Z3YWJ)FAB7m znzAZRFO0QNrhTZkYrU)7Q4v7K`1zQS49k?y)06jY^CxhP!wl{Bm6`FPndZm7wv%*6 z8aHlwHukPn-GoLL{I%+j&10jZ!tq(xbpvVA8cKBx^VM8o#Cs`$XMLbMhxs~AiYQ-` z{ic-%Z>1W_fSdnw~Nq_rajG!NPEQ?G}I@MP=bo|oa9?+ z9{6hO-J^`p%K>A*yQI9(kEq?Y;#>{OkI5rJ!2>)-Se%n_tTM8!3X8#NvwaA8BJ4`;N1b$6Nuswk&^_Ct5ta zn)N)mhbXw|CnT{G7d01vm}QJ?PJGd7DaFV?cOqMO8Y{nKxgpH{!tFO zJ8S4s8ubhZsALXgUzYP4zbyD?Rm^+)09#BNxmI+b>xp(=eUi$iuoVYaF?ZFrbNc`##T`g&72&| z2*y&t2t~deZfyg>A%kD;KBLA485$$Rpv+Ep&#>p&c~C!4M&Rq=c)KgEq~tgHC^^pk zY`P(dp5VBGM~_v)gEN7{T2^t_5gt(WsMuZ}UzSF@*q3M8+;5T-5pvC7Qru|%f;)1% zmwzC=o{&Dw8FR*0WF8Du{mgbl5c?E!|>^=Rjq$+`%<-=I9UYvNLa7*Kcl`T!FeOv+-&UP`>EH>J+-jiOX;U zF`we+0m>&UqE#!ZENjtf<-y6HiA%!ad8EX(IIgLI7x?HH1gli1h`PzgQhmv6yny#!-X;f1h6 z>-)PX8jpT&9!PH*M>rGdrkCsAyaspBf0+rmsUVNk%EmQlxn%0i@_!7qrfWZ$O<8v- zvl?l~QD5fmc=VNMaUJOwn_j##cr|_7?l|*#Ex-4kSML!yXfAi23@?w*FSDF>^?vU0 ztTlvEoSVBWBI~gA1lHrod(=%+s4GrunX%?AslQlf&8wG?QFX23-THZ=?=!)9*2X$p5qGzC7(?t4 z$Bl5dhxZX32kQbM{9as^hsEpuap9a`w_;8g*p2sK07)?P6xrSIHc65>it-V9z^*@D zp=HbVX$wvTcV9x~J9a)B^CPp}qjrrM4y^ zrW|2lWy5D)*b3AMY)D@xyE)7`HY4!c;3`BYsjh->H#$A5?TjG%aDDHdWY}Z;W7lBE zo=O!r+?DRqcqkT_V{0+U1y!0&I1oQ=`2zy_5Ba@?*~Zu*oV>uA6hRcZ3|_)nlO zZH_HykT_|S7u}_Q5`rk;48=TJhe4(md9 zm~@9O_oMoX`90-eH{!xkLdRI{(2)OJyfu<4F73i33q{kE;p9rA7Gl~9v+4a+h!PfD zn9T+ns;E$a6>Vi}E1q(x>z|^*tmJGR2ECx=ZtJaDxyvL zyKnUo5JUz!$LD&NTHSg+4Ntz{E$^xg;ZkFvh8G!-QhtpO00#L{1XYpWkLnOtRVtz> z$s=R^;Q3W~C;+%JwTa4@30)?I!E2aJ1tIxpeRJOiy!wwwN2V8o-P-Py3 zXF|p9eQ_^$6#?-Pmc~NKtO|K{(<6tUK1CrDRRcG^pk9fb6jszeyu8F}BL3RLfhHjp zEzY4>(mS7pHa(5n&#wGOj>Gmh0|jOECJTjuL_#>hq;kyK`O7u$+#?GPOLl?1T6#jp zakZGopG!ckcm=2FSda~D>Eq^GV+FkJ&pN+T;pe@McCVM`k&d@df5`mLjUe$m>4fq# zLJBfseBH5y))nef1Zk(3&9%h>f_B@-w8o!sUifU!1KNxA0LfShYIc99u6m7cedqFQ!l5fV;(1H~xWb z{l+4G0SXod2G&2z)ENF`Tkq_PPEB3omm4X;dkot@Rc0~#3Ag?h4PayZCkDmvC*Asc zG=SxwO2pnBp8r)M_P1!JKkCW;4#OD!W@TXi$DaJ(0xpJs2V9K*4RA63$AIg% zEB`=4|4#tdA6Sb{RKK9n4`h{mf4LyG?#kqqB* zNIbK$eLWe8>3e(5b-UUeIqPG6dqdF89FAi&ek(A0d)R!2tmb&w%RwII#aQ?8e$?^u zeSE%ddN{i)XkSl4c$?&U(It%VwS9f@ywH7HeLk;vOkGs^F_<6 zC)bQ6NKeWYNi9 zrDaO#q=u=PR@i#kbmy@H?d|?{c{&mDMy6&6Gwc>sD+xooA950meobP6`-&5q-Ij%@cr`9oRvhBuIHct5FFDo|ctaGa$T0?X|4<^hU^Gq1|#=9yxULDIl5MJ{9v7=ry z`LZ06o!NN_uW51bdy|%?Gy3j+P=`m7!9C<%LmxbaIxKuEGx?le>;rLAq_qMrnepY4 zSX`gkeaoLhPI zHIsSl$UId{kw+yJbAkO)awrifD9@I=bBtgKRxTV!_nRylx1~qJ*RyQb4`1~UP-0d# zr1}K7BDgO6Py~F;_2A831t-2;9=Y@^QU)b$dne6bJbuO%IKw6A0Dr_)U*os28#cY3 zo-dft^asgtN-=BmI#|q^04l>%C^mXJw*TJjT`r+KvP;nlp;TRNwuv=urF3QM&8AjF zCi8{5KvWDqwX}%RqQ>ki{t(aQ?PMU4CeK%zos--l(_&%uYJ~T(3Qti>RN$}&Tr?|C zHxt$&)urR1n?nFjAfN&QB|rk>(dW$-#$ghUD^#xhwI+p7Jyt(+2L-DAY@MuuP~t9n zHcM!F#RZb!V62S-QW?~C>i}QmC}M2RO8}5hW-LHI2z*H0BgautFEdqQAvpT7iwc#P zO-bfm4}2xKfj)f=^SN{X|D*1!!>VlBZ$VH}LXeOS>F$t{PU-IMZln}Jx{>aZl13>( z8tD!}K)R8ZI?o35RpEQjcYf#mb1uDL?_r*qb+5VSo;9&&yFu;T(?p`-e~>1AFLxXK zCD~d}{~@WhBhnyro!#qt0Xf4TLEk?G*N96qd-E%F&Zw0A`=3TfEivw#G{ zdR-4bBzUl8lOxt6xeM)(<^=9F9p|D*yyT_SevtrSD*MsUq$9ALhaPY>+zpC;E|MXV zK*P}ZGnAez$O;ukF7+R0#ge1^LQGxq5!Q-eK9hI6R8Mdrx`J`HhBqV$FHRyDovuQx-eHHCP|%s82@gcXz{w9dMOQjq>FdNg@hxFQ z7g)j*&??U1p)Jb=6BVIEysL;`iA{vyIrlE6XGG4a_S1U}gdu2xf5FhHhgQ+K@5|=Z z5Xf0>6|!y|Zm?xm4;5aA+y>sjdIYve?gfX(A+^T+Er-Q{94UJi!(rD*NYU8fRrVW^ z*N^L{@G7%2WoyQT@!~KI_Fi#TuIPM0iv55;SKGP<>!(e{6fL-UC*KA)o-ebEzoyl7 zcXu(psL&UEAQg)i`i`>|{hD|!FOr!y4KY~hozQ+oBhLkI-w9;4kVBevyouKZ%-#54 z@A{3s2UThtA@7bGz7yJ4Y+n;T)vt~B09&f$v%iOc#q+# z3^?GbNTC)J32`x<-)Ws#h9tj7y^n=2f`bbLeBc^k!EtAtK#pnFGmm&pmj++ zVCO7&ff)6I8jYRb2ZQ(+-Yd`WvRtt>WxKS=N>YG^*=aHfm% zV$6g79hlDjqv20SCk{ov8nLrJbI*%h1&&c_Rd=iQ_Vg#ve!MtR+c~hfC_^!rm}!vo z0yVr(iMzGDLRIuTjW}gR;^8+Q?2#zTLs9IMvXF07HumiKod=8Qb13d5GNj4Qis;kv zD&Dcn7=LVLT1UjW_jJ5l^yz(i%6ai{4!&@zwUd;W{FJaJLJTGG%5f`XR`Tp~hcSAG zzFXs8C^L#!`{Ps9vqZdTX6j+s8wlFry3@g`xSG$7!D!5cd(tJ>{PrF%6}ELzK3zvu zk*yrIGFX6B$cq|MCGRAMfk#crT4P_)8xW9wigOaXT5l;vItEnD$bt<&)*O zYfNY+n|St0<+U%d37%i`)9G|LFfFfjw-fYI{_liD6b~Lmzr?z$%fHYXn~oeSuF*b` z4H=Eah`#UQT{*?oKzzmphKjY!|1==%gV!mpApe_&Lr8ccUXu;5_4|ooydUhfEt$%L zz-nI5JoM;r+h*Z^)>(WwVLX|WNv9i~Iz~j27gi-r+-7KO$vd&DjLR-81^tjrs1Yt_ zXC!RxGOuWz--uFXyv|)uX2H#_!7gE$m%X@6*|Nc#VNUhit!A zf%;rPq`Z1aj-Xzq6m3BLt85{$`7tlDn5T7qB#HU(VkXSE-s2`!b|gAc^}K+tExXBr z!jG@dht!$l52!x}9(lYUF=SzV$2CM+CjFv&8~3S$mYNJ*N|e?DL(0n<4ycnw7gOUs z77E*fb&i5983-l2`oXdEsSRpqiH4xN0}qh9v%=@lh5hXUAD0Lzm@rtDs`PZ>1lH49F+U6*8f>YH4LKvZ za9gRB%~_16zhl)(h}%U@CVe~;>vvWPHM zXr?KOg2_^VmS5ZIQ2S)Ibmhs%LWje_YUx&<=WepA^20*;wnyQzkwu-Mg*BSk!tvA!Yq}5b&SSur!&9TP6xh zS|(i4MxJzy>rQ5qXhh@LX$MxQ>jhR|w?@HLj#YjTRbmYpFKMw5DQOGD;$B2&i{WGs zb|Y+=cM&~L(uhB?{>YN#omc9w)Aea+5DTp#a7B5H7$r8KJKBhRX+F@O2ZP|=xwen` zETT|ua!eH><9T1jTT!Kjw!PEFsC`&ZV~^D~sx@}c<%utu`B-gV1T7e{#MUVeOy&4x zcO~^d`ag{+Yw1>biGTzRzOdanOdTR!6v5g<)1e-XF3we(+{=2Wxnaqmu60Ra#l?1) zZfVydA>LlWqszNjyry*tX#Pn*_7tnhtJ2jGnM}z_(Aqtc{CSxO8&0^qDMc7HdC?7v z48?1_!oEUyS2Cr-uO~kFEQCE6EH{KxL570TofRebBa*8GqhelF0{zWF^NU&pFKMv} zH%dtt$Wm>BN_?M|fvxd6DbjcQi|z2>r4M#E6w21kVw%_Gb zEb|hK-o54?szlOi7Uq?_)7Y1e+9Qdi69sQgony_QS~;K9+B2dzkyadC4@JX=NXb ze33#4*0-YD%o_b2ghJQ%Y>hY?G>Q!}3XMMdvy-i1E{SyWkH3#=E%U^7Ad!s|!HE!I z*NGg$NsL8#>oc{fbK5we}4>Ry;aG*nrhDR@|gh3SC8F+G%5!GIZ%A>(v*U!O^=IbbqWd$Z8M2v=@yQX3Le!~ayog1df_dYZM+l83U*>nd%>OoLi%DHb z_fo>}l}31nxg9p=@mu%U4&YnkK}{?{8>y0}sL#OZ!#~E2t^0#p;bO;63HBfyY901+hiW+2}#wXnBd$G=vd@pYW}y?~ZhNAmIv73YCc6*&+1x z5+9pNGpHdI@8pwAOZv|C}|1SeP`Q`qH@axd5v+O^Wx>liu?mevZ9e99APPWjzTF z({95q88(ud+)mov2kmJ!T~$8A)B#oHU~|pq zF%lhpm+f-0NbXsPBX_P^6Z3skH6;ch@te&^&Z#@d10isYMrF@gcyL) zY)LXG746-WYZ%`2+Qe6#;v!M^XJM4kR0Qy+KcoL{TV2}RvFxwX{f_2MRxWPfi!s+i zve%S#ZyZkO%1|AyU0GbFP7$>k;V!8~9U1IE#bu=X@FA-`dJ^?+M@+god3AC6xGZXm ztbC3VO=hBOc9+sPwV+X8&BuYN8dBskPgN@B`~IF8F!;p3ZqmX8J zi!-Tv%#E7W6g=5bP*{yNcd^YqID$Up!i-!)<6_ITl`J0B@PbD$wBEiWGl_z2UN)bT zWrr}68jv)4fo$IcjxEpmP{==}W}MgsCMx&)<1reiGQIbZQ1>)r?ZCjHz)v^tFsrKc?&xqcmlLx0vl)DJcnHUeq=%-j9FVh_DE!Mk{gOA|c^2j3qq! zGP9hdde6j24o-cUQRHKRGlH#AFTOkQHNRY*v0~g|3qhk#+Y*|7G$?XG6X`mLXd}!$ z`940|qU^FoUYPU*5xz3nedRpIsp>g%*3vu)xm1y9MW@Ax^7`&ZR~2zLSJq=S5t6NE zoiVC)F^np<4@H!bJ2WU)S+FKw&!5Ze*;a6(hv&S-e`EeZg zUG?h1s_4hXoU_;>xTA#HcV>2xMV8pROF6U&Nvx*cC#hX|LnRLnh#0{&q4#=Hx7`>q z3=Z4{4m1viWV2iA#aT0Q5WDLY>|jYg+k{kTG}gbu8n4P78FN}&);n!Vbg#N{G_I2( z9~GUi-Ov2!yA$1=EG!3xgY_!cIp-d}&6Bbg=^lK$nVKhND4cUYl|rot?XV#(ib1}G zI(nU!`U{SH#RauX>|lbyYT?U)ik%1istgsI8~$)b2dNAdMN{_d@7G78D_@>f4_LN% zXfR{-kH=5?#hq1~U522QjnU{4%7eAVoTgY;%a5Dao%@T2Mx4$wxiT%KJTVFK<&9BV z%H)mF^@Fvt7D>6W*ZOgjT2J0{68z|wQrK(nRedbFkJbM?ngK_pSk3HhM}PbJ>fCy! zIsZX4Gb8yT%jdU@M0=|QeVBU_<@jA%dmHpgxm#dMon!#Fb%8+vn?KPz zEGz8Ea}I57OQJQRcT}MW@7?AVwV$b&aZFF1iOQKr7#IDY^L99XZs4>^ ziNUl^T7BYrpq-O_V-_Huu;Sz#OG$GLrsgO}o`e3l{Um7UpfoqqUC0tO^j=E%o0jg8 zZ3yM2P^uT}w3`NeMD1cutoYann9}~X+!fmHn3&pBTJBtHpNY5nh(kX^WfL&HM3kT& zwPhO`Sh6<8Gvubb9-_7&2E)Q1;>9lJcu17A&-VQcGeB-kTebomxF2LY*{?oDBDO9{ z-%qn*Wv}Q$=_W`@j9mZF^fvzO_?#s{y&x@uTC`}gy-c?gQ3ld;m%QNGAGtj6_rl1+ z0*zDHsZ9>6aHYPQHErQ_gj5^ zv|%proqQiTVT9pf!<={{8ra_9HP@AhPdL4(pY(nxSUZpGX%|mT^w0)e^&zz^SVy}! z*5i&rI0FeGvb!1-`xI7wN(6D)*x?dHBVk=a3#&51MCc-h*Xog%!J)!e9|8G=10DgJ zi`L{KiN+M$;(Mwom6n56g?b zUp%A@Okl0wdjvgjA9J$Sc$!2k;i~{~QCK}^Is6^Sa7eO+)KS_O3Y(j)HPO2t`Xnl4 zOni!R+Fp0dORx3IOD8bP@mX*cXidI)n|j?tVqr}`7*gay?ee2Tv%972wR)F;MDVn{ zG$OM=o$ZEHseGBMFVoml@%tj$IPT9xFI;@;w>-;Ii&?7gD&uHQF-gfl2R$*=YIkfjA?v#}7T zDn(SW1&EAc1D+%1ha$`4#IY9L-#JcQaummf(-2$ORb~oxjcZFkHqpw-bchA)k(f>$@FdikFOh*D>p) z7!Im@%D2nZ!iRC6@D!|33S0*qEZul%N}1gqxf&5hg0m&n_}g1cRX$y@UaPST*lNvfL}GLRz`R;3Rn(ueqm(dZ;NdSo-rFQHwo1~&D{ZBC`}iPr263oj!L9eTp!@kLL~ zCF->(=Lkwc$Ygtw?gKg)`jL_9=>-fYzp<51<54}}ttsJ1k2n=>+I zX`dTdno^$`Zx4RLGOh*^bH(#I;zu*qURGrDtWgHkmOK?yz1rs`&|x1!A?M7w@Xp=vKaO>kax)VV6oaOcJ$cV@p>^!p9Dyrm|w6KaSix7{vF+^CBRK zud2?T4LgP#+Z8xTi5FsOpi`h_*xQXRKC&0iSV`>L|K$tfaHL;!{~hYH?Cy^<-EY2n zo)%tRk~fKWak}&79naZX=-ful+*Hln@i#wGr&T}l&-3+rgIe6{x?o5nXe8v06dW&T zzr;TClfvX9O-()NQx91TD*yCjsSu`~Iw!wTZHW|LX4)yjNCx2zQ6X`!t_LTQ%5I5O zl=bQ=<=srh7cVl}XI6{_a~+?7Rev-gfq)r1=QR`);OY=1LkRP^^IaK&kZ2hz2t&-} z<>VIiEPGiEly+2oRjOfoL!v%Ko&+^x7F)Hs%d*DnD0S}A=iLPjNkbpP-xnl6D6@JR z24E+n7>l=0kLB-oi$7{#jCnOtyJ&hR&OLqMK^pbK>l_oR6v_A6C}jkmH?bD@;^#cHr^;lMkxP<(f%Bllll{9#)wW z_c*Ys-4wmy#GdC%y0UuZ~y^oUOKy#U*TgcG z)U@)J)vMr(jvteo2ZFc{Q||2-gg)0WcX9uoeRNk+Yv&y`)JdIspHZ{gC<3()E3dW=Hr7WV2f?*D;kE+ zthR#;zY1=1o#^QTsbl8}rGSAV;spfRLb)lFLO{?$z4wvv_v+`(vUQ9z zXtbx)9TGu^^AfMVP!R_%omX*-Hf-ox%ui}F<8Kn770v~31m2}4>`6z$S-ATN0iOCt z0P~NS=b=zuTgsyxwt_ocpEt84-c=#^E6Uc*A>9?>n1g|jD)DY-#4&29**Hm^il&Ko ze@IBLR5VS#zwm@)0Nd40YhK;m7LPiulI(bc1{Xo-Dv_Q;NOXYizFp1*hsXgw@QMzL#V&&LZh|FIm z9CF?oXYih;IO?6elpj|)>Rb5wk?{F)sa= znfru~Shj5zyckdr8BDdhnUb5b{EAgwN~t;|V%=y?hazOqc>z)0m;uGSOv1$O#MD#8I2Lax$Pq0SdNRRO7ki{SF+4vkXFj*89u*VEFN;__9pFcI&aoOf$og7QtJpKv zEJ^KZDx;Pq8XAlehil~eT)-83%)-^vI5;dj)&6r z;M@6Z2HZo6j~xSSp^K8OBnNd*hD_}cv}0sz-*p(oRHUBWH8Irwvd6Vx{e=85G`sid z=*GvkB(WFLEbgo9olCxGgm~?eTWLx|H3)@uZ9j%pLKJ1G?eScv`b=jh%;Jva7vuz! z^UBm;qy%miZa<8O=SBxz9nFFm41UX@oXhhQphFdGOw7!`4&^ZZb0~-Yw?jFstn7c> zlg#+@G!E!v+ge&m;(Sv4BF|*C=ymW}LC0f&%X@!M)x!s#zmaNy&vt!=m0UmkG!vs?xp{Hssi|CtPY7@rMvPUx>xJD}j3Z0g}N-K2s+51;<>VA5Yj zu;H`bghuZG6nxVV1AL~NAQ%jQf^VVC2`J)bZXbCl{cIo5?2l%r~Ji zm;gn9&UF20o*6##EmW8Rd2bpG974OgIQ-8dEby6cn!y0L&}C2fGcWMz`>Pun{z?W4 zz5&e&pZR8@4Lz-PHhBOCrL z%>#H7J^fAZbHZo2ndpMgdIbwO+ht&>4~i=EjG$~+hqh?tP3+AL@X5|E!1%$ez%0S+ z!3-{c+L6QJ;{#uRZfjs^4={cO7f2B>u(QYiJ%TWS^6^_a0NLn3FQp8C%hu=_ugLtZ zQf83%-BPJ7P@xV`tqD-A5g0!38Xrs=%oYG+0i@Xhf29Ia_`ra>n1R=}KrT>j10YQj z_-PMj4CK`R6YN#pw}EB*9qe!5F5&)bzwF7ejK`?={**Jz2=vVV({Nus&l)gSH12ZOK*4+6DY?GL-+x20GVR> z%bWNB5BiVI0rp=zx!&zCuln{cnAZ*TJKvxjH(<&G{-Ohbw7d2lkfUEYKggXyt}P4v zv;%Xvbo&1qq`~bVuVUywAg{Rn9V95n4Um8KL3}WIfJcx!|JQJgZijO<2>k=+io@UF zF#jW9ev3{&s|R&^P=C?`nEJ_@AiyUmV1Rm|$R)G-0CSgr{lgEh2SA|i8&S;cRFR(0bhxIFRTm^zl#$;iC zhY8AY1EvB10@Oh)!9e^N06(uh%@la8ciI0zBfy^x{4e0F{sMOm<_2e%Mce@MJ4^r8 zX#XjJz7jbHY_ze~FRaK?YJ%jR~wu894|uB)E(JM3GX^9r`nB`iAt5dP&W z>&yOfJ?#Fs!0c`Z_Ln>#!*Yuww&6QIJ3dnEG%1 zg#K@ZdKIUxdHJo@OJBRe11N%9fazWiCqD-q$?KunukwW)0W|>Up5y6C_zdLE)Bx;8z_tdLsRQlGT^MZ)MaH zkUl0r_j3Sh{Xdq+^#4I0|I+=}H2sPl*EF&G8VRmxx_bYc3tX-t+yWRhW`a7W`9EL* zvg81oKnDEnj4Z!2&P}Rr7ip|FRM2J0e~m;QKw<{!7=Lt%f5UORI%ECC&=rN(Ybw7p z^dB7Qc7{MY)(B{5P#F174gGH@P5$Z+*Qjo=by>!L$<|-`=9kmlY^&Q1uyM{s+KK$bSgN-w<3r^REQ`jBS6ZoIf0j>0ijY zT|r+jY5W=u|7q->J^@e1kf$4XL`JZF@d)&G1XE%7c)oQ?Xt~@e`p@-&(E{Sw z2_Oix!iWzz5$Lz!rTduwuoV0;VRBtzyA%;C8f6j`Z+)NjgCLS{mXg)!{0NQtDtzj8S@M5KYj0KQ2Zs?uY=+Z zm%iN3y8#v?O!Ps)=2Ev^trz{22lBv}`?t>g2guEKyIt>I?->3@+hxiPB%nzsXu%(} zG~n_FUH?|+?b`Nw8}Aog*L#`2WB3o+7Bm^US}6eqJf%wyHvX^CnB1yiZ!&Oc(G3Pb z;YI(l#;Zx$)d(vJAi7$mw*c6=p0NFa=-=Gwc3peDU-yfje`3Q=-~Y9eaP9jyrcake z+%Q2NfM^FyPw>G&u&;J;tS%)3Xi5N@S%Vg9?f+`ve>32At$Dp$_>TcMR=O{9+`tEN z_sjYLget%*&@>OUGzvm{HF0qOq~5PtG4PkGE^)Q#0TQ4Nmw&Yco&+tg{lBvE4=w+X zRW~L-mrUKT>S}xhZO;5LQvT^AzZMd1cHFk$`foslx>qLy8GJm3Ru{OY` zedb_qZenR*_bZ5AH|=!@y?Xas32gt&mSAb+FN@&UvDY!TGJ*v*B#nTAt|<7YVEW5S zf&Ey}pCzsIfl3wZ41U%NdpVo{JNB1HBmU6Tz_lhn!TziYR0OD?%Z<4 zVY~9I|KfY1r$WC}B71%Xt^ffq7~D?q(rMtp& z;Hyu07GZas+wE_!ZJO;n9O@hroL;OIxov*i_}Y|np_u-|?C3;%{~OPznP+FT6(6_P zdLjxZ(ZdjUJp4T~h2kchztaSg>aeDvmT()I=v4^BjIYJ}5KGM9-8gt%Re5$*NF%C@ROf(jE{~9-QByR_Oi&*Z9kk zDx8kN_mh}-RX0+BlSvkHt-RUXcdzWF{8x3*gT?djpim6gapI0vpiGnJr9aGKuCQX- z5DwiI%s|}nNZ;AsR8^r&tR%r@tuSrp*s!nFWpMS`0-h8;IgSWPar9KB|1@OqoX6+e z_Aw_5MDTMGxMx(aNIk~H+drYbqV5?Zbdi$?#)zb6)(sM@k#w|ndE(M5W5p9niQY8a z3+{8V4!z1zEH4?1(wc2V_vl%VHWTjdi(O{+w@?|}&&?CxkZ`@6kftM%RHj}av(N_) zW<%x^tIA+0L{{4JxcbmOk_4VePHZ%OGS^|;qQ3{NWqU8VIh16wnv0@Wl9|h37Z8>N z(pRAAK*2#Mtfeq3HNv&~$G(w&)3Z zvSF8p5aj1HwPhx~ldAAC2xxU4qTZ3l-de7LL2#VzF9*HQ!sL*|KjLtgm*Wo4f=p^9 zY`jLjrHw`!PrRKo?)BL3^;eY4C&MylBer@^^tQwGYIoAV4?q}OsoJe|V340#htiFz z#?)dpTGLkNhZfQ5^`Ac}n}XPWB9&R=L6R%%N^z*`p=bRhh9;K3mFuy9HBL{Qo=9ew z#|-?EdE^Ttge||Oy3nM8nv)Sa5$5j-9odxoB}0{k5-^>S6Ccl|<4ZAGHobMh|q%sVR{<$9(Pr!@r*ZUV8cIHt2JG&Rg3sE z3nhS>wcyPXyI*IVLo)w@?|kfQC}D2){3u+zy z92gnji$n0@;S!Uc1|5V*J149v&%>-)lZ~$R#C-Eh2iroG1?P!OL-d2i7!CWzF0Z}A zJdNlZ{8Gj(mK{!f%OI%Ej^C!uit0 znM$39T%C(totx(*372b&lK%7X9l=&~OfCJ>IfK)wua;0Wt>?W0<9t)^fp5QWXrn@i>KGiF2%)b_*E$UgHj|R8e?19Gag) zQQC^Y6V=lG3_IH95NR&RO$kx!??bWg*dM^~yeyj*FY40Phhmft4V3Bf$ACII)edR1 zX|Y+OrE{k%veAHy(LG|a)j!RZneQ5JEnTIbj(aj{Ads;3J)7`Zey0Ow(xad|M)7Eg z%#T>@vZu8W9Y`|n>JYt`^WP0PaIIx_=84UI)D10h_ue!^Erb(?QAnS094>~`nKH@f zt1OyIR`zHEtg;An3ry?hiixBx@(pX&ry(|lT+h+y@aXcWRO-2NxMOC8>qMre-~y^? zqKNl|rZ9t4WAwVoqYSVw;PbUxn_eIUl+{Z-)kMKvFXOI6GeTZ=pm->RY~?!vUvhl^ zm5lXvl-y#SzFjILth4uvZysJwHaJ2h@Qp*h&Y!pWMA0RHZnLfnQK^AZjk}8_uK7(r zVDqh{lF!Z(;<07d>KB3cgJF3u%y>&5RI11UuO*Y>9nd;@@lv~dbm^yOIPT~{K|S4J zMB;n^^^9K9rWm;g`W{{sn5|=y4MaOFE{UVm{d7{4S7uRcRIj%X?9zLI>tO9X;~h9F z1#oggI5g3X6Q(eGd52^OF~hmp%jda>L1f_$}5!K(b3c7H_X&5nwZ!f_Lo1p5(aFJmS8wPHFISTQJ)_~2*olmtW3$G_#6F|JiGbypW8 zz?2_*@ia!2~VkEwL}s z%u(G7Fe9FH;ao zFu$kPa#SN#>_r1>4+D#O@(Etc%#2&QwM)O5l~^i97uvcH534%%D;r~w2srmXtS)M= zKCx^#s-Ud7v@8L=E1;2TX}C9ODdk3yGiNE}Q7Mn9LV>R5J8gcaTwZrE zwP#3aHZEAB{jTCYOk~jkTUUXB9wN*eJFC<=k4dCV$Z8N0A&2!%HTc$@!(UJ+v(i|5C8-&+F4lR_p) z9Ly9X)yi^mOy72xtoo2E>9>~}v`_r_?2?r)`yp}6)zwtZN>T6Yve=RCdKs1)I!W9(OM#y%Nj|j&D-@tW2?kTE z1xxN5&?eUKU{cJ~@Fa5LtyRb4&GbcEeDto!z0f>c^R3J~-$8$-Z(7U_W8DL8kh$>& zo>`chHlF(^`_p@0gbc92Xawafm}Uw$9raoR_bPmd4D5`%gYvV6pWthQPbwY0V=Zww zwPF~>etJKsk@ggUGp>rhlZNr^9zA5=j7BM{Tw=Wo_Gq9CQzDEHoj&0r#Va@lo5^{Z z$LsHlx#9yf;^j!}KP0PXNsaG4bdl@s(iBg6t9)#z{_gRXy`qf#s-SO#@ekMVV^y5h z)@55RuB?j^^-T3=S}ndyAF?C{hNL)33G1@3gGsBRGIo|LsYKP>B23v<%?Og@fOM+D zyqC?2Q#IdgG&pCI(vM>ufOFKg<94*OPA{VD<~F59ryNSle6K!qS4?OX*kulWZ9g z5k5XXN?9viD|;(ySpy>na~)6ya~&f)d?x&>tWTd>IpeEQvof;Ku+g(H(XrrDGqBRp zu(Pw!u`>b(nVHyVm>5}s)h6J`ISUOvGXrqETLYF>6qxaw=zwGW0>vw@RLypdW8ukl9|Y0+V?|0b#>XB=$drv&jbqGcPJ3>`TXxp7 zHpRJFaxT$+y}0S7FOs(M9glXsl9YSiq}H9F=h)Jz&hXdh8nrVGZ3k&{i)ri z>h6azcOQv;;Np{4&N>4W24KnPbH{ja;(4ov8ix&=^3U;xT4HLy7=;()R!+!WsfRI>gTyp0gw!z_%^lbSlwja^EmVU!IcHt=fCm%v3 zNCYxuOxPZRY1@s=ATxcDu;F%RR<4GKY(b&p`>`a^DH_2PaF|O5o8xy*Mb>h!BpDA^ zv7bYgbMIj{a%lfMa=Dj#bBPdaZIE-m9J%Eb!TAaKpHZ`(E*07^-@|%g&&_ck^?sj; zld2;N^M&~8tA`pUZ{M1@Wi~O%*WxGo-pA6qP!oKJ?fpJBWut8CAr$oNtGhg zsInq6M^2-6gqlQ7sfumK_-rxPczN}a%@a9U*qDgGXDVW;nW%S(Lo%w2vy0me!RrDQ zUqvoM1k=D$C&*?oFDn%94rHwiqPx9n7G$APW@96xits%M_#j@(gu;>C+*UP^;l|h4 zYDy#^I8HtEQF;u(bqPkrgq}nd0NcL1?5IZ9{MShA|7b6yb!SnLB>DD_>w*ykR20z;!6cqPG;p8jcDd_PaJNF>!+6fF8 zGUggCb8kY^$8A>!r?awDHI-7_J_D;SiyKiP+qy`t9mJG^L~Yg%YkV={sPKUfY)ytZ zBjHYL9rHcZC=yL86AdIw^6_&^hl<<x%@Clho5`BTM(vBytSej6^<5(9D74AbVquKlV+<7*lv!9T1jE)$_f(oOM=N3QF zIq#OVm6l4;sIv9&EPH$LzITaqGk>?>zdj5mg%iTp_~D_OFoQL55auS@#8ctdtbuTK zFIoc7g3}p}f-qYo*Ypkv>A+Zn83P2?=Q9XcpRPS9C7fhW~nr!a18F7X7_$SJ13NNLihsO%f| zC)9m(9ZaJv*OvwcJ{?#(b!){#_>YzohL=q}FEWwC2{1*vm#NSB1sGgWWACiG!7gu+ z(=`=&t!td~A99^+is&BdybiRqyXhesCnDV->zhmU{7{Q$P8jKYCBWYl$`}7HZ{rOJ#1w}G%xn-d>R}ooA8upNmp6rKS@cCB`rAQHNCKSBWQ zk8kvXpukfeLNeN_N>BIj8KPjVn5fJtTCRJ}{gj26iiO5J;YrcqC}?-Uf8<6rJAY*l zi#{VY8E9OPsyRE=<#w@9;l=0o%17-@5~5?9^)JKCRm@?0U-C9M)sK@1JyT$pxscqt zg700@V~cvoLmNBax=c@N6i#Qnty5VK8q+t_2G$q68&5j0-R{~rFs>@dnGf?DMRgm| zwZH8*{`{Q+vygpQfmW-S?O=qpR!&0^H(t&zkDY#+!MZ5#;P~h$=~<@1!KQ>rCbw=I zKbVC>6YKPNG4dUV7&TmGnfHVD1=m{V?$mY6%^m8bK@Da%YQ1_D z?N+(Vszaa@sj*yWW{mPssHzZ*kT9F>Exm;`qxdxUegnl?i&I8n&ZyPh-3dMp{P^?X zCU!)vF#5*}+sVfFv9iq{4=MV`StV`h1U$B$M(OPA)gmi9;E2(1%}R$az@Q){4<2x07A0W8W2$e-}zW&2uJB;l)lD0cR=Lf636lwkqj4 z>qB@Lo5S{fB{!X?GAF&e@({TTKVFK=bJE|7rn-Z9m)`hDs^c(mzHJFE(r*(w(ruf3 zFL#?}Lif(Zot?D1r-PiFYsc@a3J0|P_IAlu!f2ixPPaG8(3l_HL1+3-g2(Zln-%LT z^$fF*N|f*$?bmC9Z!D~($7nZRKI@mt@9*@)3*<6VyK8W7qyrWMW78nD7&7X91@n?- zsq!-pRhn99IWxfv*2Ao9uIUG%+egQ<0fPY#E$Ml?-wEH)1GW=3zH3vYkB_g0iosMJiSkV(tD zVw4W}tQsb*n))|gt1tIUUTNZWe8WXOGp6RE3Bg8|Iuxlt5`taKf$i#b3~7LkNsRSu zL`2m)QKZ$h=jN(2vyz1+ZcX8mi^ap}n{X}DbITzA zaT=e<_tg`911y-TV}(|A;Rgj7EYgE0GuT(LyS#v|cf5+nxRvnnxKC>feJxE6weS z-XA?6#A6xy=y3NlVWKPiz;uVG)Q)O=X$dzAtnQo-X()8UBTJ^nkfbe-O1q_<3|S^@ z=Piv_%4iSbk&h)rSMs89a8xM!H6;hkU8PHsB}xdyvWdj*=GfaB8fXeTHM}@>aF~3K zpl`t0uo+~UvRJLgbX-Phm9ic@t$aT0DXyh2a(_UH)UH$S1Ruu%i;J|S33jhRV6G8q zJ~J+jaZD_2)v171^M|ST^k*dQCb-1#GtAbpulC&bY>L%v#{^J)rUOSyjbU*(Zr z-`iE>X~lTaiKQI0G7A;Eoi6`TEziv+R*mg>qhg`EG$)ZM>#$<}c0T{Zr28zJWPTqh znSFhSEzE};42)!Aza>OPCX-p$Nu<-4 z_?o2KGW+}N20C`Pk3+j9OLis+c1x9EtGVJZm__h4hkaLm*VVL5)=J*4aicJ-kBIR})ESuvZSGLo zt3yby4F!O^3@qjo=O5zR@EbjGiCWxaB0F72UJr4yK3nP5RYF`_mLsa^#bejii=7?{ zl*%+3Pw=ws_aBfyig$Hj`20bSWIt?ogAHpbT%&OIeN}UE4BXHm{VnVewNoOcd zUaeL9R0$oY;$2=W`n)z0ww`Xh<6e@fX^216>p%-jj^WW-B9cXHR8;N@b3SCKwZMY2 z<74cNv(zPLRSx~^ee8Pmy`CMt&kO^Mp}3x*cPy+dEG}%$+LPV;2B_%Ge2JDm2BRf( zIn#)jS_*xDT#2#`dOphyHx$}X9;ca-@+Ra!)YHx`QgbUZh`Ga4McBMZqY~(v&=`^7BE2H4?+hiT?M#rlbE7PzD2tvpTwQjo!3mP0SX$k-NAOk_(JhEkZKG<9TU4*J6t$K}y5=5Gg3v)K~Sm}QD-Xota5h<`0I}0~ol{Yb?} zQP&aM4>^xeHL?{7?1F2eztOCq(3NS!m&i3qO2uF#;Ve|Uyp== ztz%vIB=AuIcGI^Ydf0i>ucZS|?IsU=j{5J*&?}BrA4gZ2<~5-gH$|{k+BkDB z0JYfl{ry;GROSC_@2lgY>b`yz1d%Y16bb2Om>x=6LZrL98wn{vIz$CTKuSOwl}1WL z6r_<3X#|lJK?%8M9Q-{GGw=J}d;hrq-SH!5&N^$az4ktPuXASa?^-LG?8nN`^KBLZg35aXAG)3?D<5U`IE16M!zirFcX7g0LSr;MO zPeDISsnVzt9Le>7;L7EbIxqJfZz54WAY%LKtJcPEYGeCkt7_+;{X{e@IE98RJifs{ zTJ~er3+^1+8qGaKvmQS7HR-IKz0kF5wT-7y5(W-)J2g5F8u<*#&plM+&3&kNlU*zy zD(Y@zqUG5Y9kI1lMr~K7eYU%!lQW={<~qv<1S^}kD_2a%g&+Dv`76daGSry35bNRN7di4>4!U&-^)a_SIm9lf1l4FRIF$eoC7rI!`o z5+#0vj5P(Xl0RbDy=f_%gGgY{P!bYE3%Q<7ZnPK}*C_9tz6h zcIS3m<3^|J7Jjn}0qRVu}rQa9dK4h72U zg@*yZB4@_h^-S@Wb9)|m1~BT%$6dU^c4KV%Y+0&yyo1P^;wT;InIYM%Cz>OD@oCwDF)-*1ClY+NvnJS)bu{?; z=ZuiK>Ug8ySLJ6A@$7qeqo=20(&wBmk~PTrO`qC)v#Cs!Xu*;s&dzdqDVK1TZ$f$E z7uBP8htgK(^yOpSuAHOpo<_EgjJY}>W^Wy~l^o@|#{Z=@|Cwb`oT z-%9!gKy+jIqSs_}5%EqAks}{pmgMd}H20Q%VH(!Se0!d>mYAF9E$JrVMA*0o*igZK zNqt*?PrwPT-ErG>*k^jskI=YveV%clX9GdN(X1Rn{yIeYV)wNu=~mfRqt?6R3GoT( z3dWW(;2X8NsQmglCge>oIghs6oUS%*-pw;%*+YWw1V>+WZN8kNn|ppgnl?#zt+%Fe zvwN=m1LA(*yG3nsDJsa2!}a~u50M5nUj7X2uXbtScfR>Y)&HXP&1hM19@!V!0si2* zhV6gzCrCaMy?Q8b0Y9K_BoMJuDbr&J`f+-A1Gp5WENZvz?tLiZoAKed@J^$+Uz?Jz zvBZRg{kk&q@&ifch|q+GWI4eU5AoFG3L~!g&nV+<6tVYt4+jrNN7D9~$#b={xWB5V zc|kEJ_~WyF;#M+koYmDL!ocC#c-FUSRawvSGhZsuFEL)sykDh59M$!8q`$uQYin!k zR}If1wKTg@sP@2<;aQRb{T{?#zB!D)cX*4+2d~MOSx{di zOGfI_rSEbj2Wio9k4-yT>a0Y{r=tnHt7%%>TX=HI2DvvC@WznAPh5T^gf#_}J$X_< zQdIa+@=I4yNl99&{^L|_n{@jE&L`Ri3D*22Q0;ETh*%I?Zt?-%m)Y_ol53O2e^O{2 zuloLtw()0;7`=`Rg9{4&XPq5|1}9=xm;b%aPAs5)+sp%ld6Sn$uTP@^aA0BqNmF-A z^eK}7_G-J7ytKNHJFvJd?_}l7Bq9QESX$cxO878wN&o>rEV%#(o|}cGo2`>I6Q{fd zu!?T$;R6uWZ@aiSSURFt)j>?aYW1Jx@P8Ki0k9heFDwAmpy7N&URuf2g-PJA0Ac}c zCVdc-J`{+000#oVKmZIL4Db(u0P#_fK!hGJ5TXGFL_dK6*N^}m40tU<09SCBAc_eF zxLU%2bD%>od@uw+12I8?aq3}6YN0InB;<^|#pq2;C-?0m8Zb{r>j| z2E6jo-wlZk|LvI%NciWzA8#WdfhPX5TY&Cvc_&-oPOG>%o2y%TFj?6;S-4rcJKuIQ zw`4K{ZmttC(6JV_<{rmqe`w~8rY^wd$N$x6(3Dcg9SBSomR5iu;BI4fdHxI{zQ6aK z4=D2w#~*kmpbJn!5Tguw@59~2)ZEg|)CoXRihzKR7?X%B@c9#g2J1Q)Q_9ThB>Qox zKZidu1OXW!5ELQCqz@cnXptZg0{rIym&KexF=x`40}4ZgV9sEF4p7WBFs3*hj=6Ts zB7EM7aDtBuV2ChG0k|Zl zTFe;?Q!NCe85koPE`h1xn24zzjL{5+(G1-&fG%K6Pe3u(z?jxTF- zHJmk_Y|--oFj9XI#{U98qy7Ou|68Ab%reGIAMd{^{n>v7;K}aJ4yNwFrT=Q@6$%0K z0};qj=$%&x2+R*yV)V`{9D(@z6$m*d$Pb2q0F(UR@4OZ@nJFtp9gg zuO)X#{PYKtzliRBHC5b_dTh~<%hU0Qck~fs8E@0nefsz$`f*qC50MTXRabPukFL(; zoK{Owd+xz>25c+$37SirvPA;5U2R#+X5w9>Sl$fYrXHV-~O=E&}b~Ri+WuCMtEXjY9d%Z2H)u8b2%W8J*=G?alv@s{7b3*R5t{_WJXq2-#c~XhXE* zl+QkMaU(N)c9Qcl+p{n(g#?lw(zb6|LvI)qQppi?*^d=AKJZu89cTvGC0!2uwsW^h zK|kX9l{56QpboZ~sk3R#R}L;M@b7?IY%euW z^z*FQJu!r}q%)`MKECEt8E2PbJ-tkgMV@(GHDXmMCS$QS4uW3J;}SHkh`erN9hmklo;j4 z!8M+09rvxW@l+-MaSsj-)5J!`}(;F@?uM`Z(OlfgilsQBaT}yoa z?$dzC1EX-G?)Jg24xZIA&T6(4#Pb!-coGHH;^|)`(#5K;%ezf?xSe(_EEQly={@-gsvQ#S_Z# zOYS_Qx~G+`Web%}RCN|8+^F;^m9WI51VXFh0aL`ga*H6T6&Q%V^#K(7D=CFM>_owT5)?da~9BLVT zwKS@{Gf{nThdGvAKdLHDB(*V3>}4K*MA<^zPZt(u*td$%*Fa`H{TGkP z1MJwC>X4VEAJJ)wgIMPhdG={9v=%vBITNt_Vm2JlJ6I|+TUFlst;CEY2;V3;;%0w- zCnUKDf3iV}uUW6?if>wZ%_YkpRj?#qvO5-F1UxS0bETIHr%n;XB!pq2XKSwVSL zpS}~QP!oCatFPU?0GS}QqQ2#dlI9fR2mP7VPYmeB^gjB(sgYwo9G9_-8+@E(-}_2S z|MD57Dy@<}n?XIY%lVu^O74mIOjCBQwIT~o*xo26o=bnDt$g>F7(s=Gxj;Kp_~d<8 zbr)@0Sodj#Vy{K@=-gZwbmxcqmtF^(6&LNgx_Q5&#qbQ&;VR#~P6XU>WME*{#WmL~ zTUOubm6N|+p!JQt$x{A})}(8H&nFZfZ%b?YIlG5OhSxxjbE}P%^yyd6mD^%hG(Lae->> z)#j9LvdZbxcO51SY>JD80ol{pdk;fxVRrPVI zuhR2Fij%WU)_K2<_4RLW`o`Q2<2pOc1PGGHt}%I?;t;UB*b=VBTqE|~O-j*zg+$oX zW&N5c)79aSD|XH=@{8=dyW%afvYHwDqQW1HbsT=Xc0awKwEYohkWjGSji&ooA`-P{ zdcR8FN*dFN){0M!k1y)e(@C8);~H2Lub*GEA>pGMco45oG$-Tv{iADn1CbWx;-ZOe zRZu0R31$96hmV?BM4pXzE_pg*FUuLA?%>0(9 zx%#7Vi@EN#igc3DZNjc>|I~+19?F&Fj9xG~D5Jhz6}vjNpPQB~YOf#)*Ejz@?P7ex zF}6-xUnl=|?Y+urZRqVpVW}npwFDJWid;T}p!A~CRDs}26=U*R97RRHqulZg^&{L) zDY|WyKAT`TD#bG2h&(9*Z?nasH`KrQK7?9 zkIepuH;`cPedexBMW`L61{CE(6+Jv&;WHVw_nx`Vds-`6Hwg4oPxxmF?UoOfEL9>r ze~ZO;|GGapQNRJjsYf80XL(sYZ#kTLP=~s2g%KRu)BRi}NT`xKm?rDgLeH8xJw=#<@SYcVj} zeh{6ToWf#a&d(?IK4w}ra21p%Lb~6D|2goCcZSqgHrYs)3k3-(tA5+UYw07)9X7k7 zdC6|9@;xruW^=R5yX=SR2_cE+rz_~U4Nh&-3eP=yOZ~$6fXyy&DOSpA9APBtVU?M= zopm_1v*>72%3IiH91{oykI%SAKWyjkk(oAo#L>K z4^f?*98(|niiST^T{!~p3J-*H$1(UYEXNMQ=nyhZw=Xt`GftsuEFGQA%kzp=IN$;M zXLjcio~w5Gh~>U#gf&g;dp9~Ssa_Y;Mdc9LUUIi!Z-^E{#RvF8WwrYgT}vs)=WajQ zrMj+6Dcu%o6xYx3sqR@ttPe+e0NFCI$p<-X+#{Y~=a z2BD*4SJe!@sT1QBl7_a}Oi0E2{f6(p>mzlb>#g+De(Oy>n*^DxcnUvg6$)>zuDz8= ziR&fZqts9zgtd$}G6dKT^E);DyzRtv*nSgS`EtEufBos5&Ecj1>O-p44??0+e(iFj z1>6pkl-vg0i^<-PXF1;2CXC7NK^hMpRjK3w)^PX@3VLUM@%P=SOdb_VO6_5fGlu7P z2?xerec3##e~@^eIhHuB(1edhS#=NfO4XV3dsRh={rQ2%d&O0Ll`qU#_>#|SxTkKp z@vd-Ya0OW#lw61I9&udx5|8Kl1&rDF~Lvbc1Mhq6|8l-X6e z=dknn*}h%ZUnLM4XWph*ak8YTh&}lHcaA4TKS^IE^rZ3hdj0@%`}6;yBl72 zUfgwT^p*Mi4p|yKpCf&mXxfihqm0ilZ+Aq((pJ09``HP(On(wJ&no55!=xgtDIR#4Qb(21^pJO9qKET-j)Fu>r)GG0ga3GyT<(i! zTi>#`K4&#=Ht%RT7gTLreZ;j*m{;^(%c5G?(8*XP^Yvb8D!gCUIF+cna@@g8^*n<4 z_t>0zI=RL-o7Is<^Y!;TJ8q02xuoag_`O*2hTACWWY4`AJ`!-JtZ$JUFeTZj{fltu{(2JUUW6`(6S#QS4urlH}A;3oKk5c z6Ut-RXco7=5!#dAbkx5eSY^{ck?eJ8k<(|g%ixp}n5OX5qCn2R@+a%ovqxJ`LM+lA zt^}HVzLccK|1H(?VMl?1Kjj0}63>D)zc24D)E>G2yyVrsce`(CxXO8?_fvz@;SjyO zbJ2O4E+Qr6-)<&{uhT!mw|A#*qK+qiMj0)j;;V_Ko4CQj1LP>7otqs5@S3 zPZ%AXJWv{U``8s_WYpd5_08R7a@&JDpNH-Bt)6wbo5Y`#ZPW7lhv?MT4?-@^3$nn0VO#61uJ)NA`Hv98JexWCdm))T6ZF6}Je@#|)N#*NDm0)J% zS4(+iD#^|17YxO&NIt437B9=z%Ep9xTTTtKa$oFA@cXq$g7<-)dwMZrda=)68OR2b zIsp~BLm~Qh^?l0zMZ1<^RpEiKK!3}hGsfz_4ij7H7qiIyuD#jEo98903ywDZCdtP^ z{1n!fYBaIy5HGjyy+WrvNYHac_%Z&qb$`aQxFb5RfKA6&57jfoVoOyHxZ-_?ZGs3L zSnD=oeYi{VrWBhb^*<%qjI0n|2UlVeD6qN51-={!_*ax-B>-*pUH$Ie=c%MSW-gOPN{Hu5Qdkh2*Y~& z7VZ)38cU9gRZ%<_Fn+Iwa1oX-={7Uaqb&@2yO5g3G^_fiGp*p<&}|Q=38+)A&Gyfs z?6>N(ykYm)sgF3ijgNfWdb~a(#6I_1RlQk`61ygO)9HSfp62Mij^A?}%i-6G?!J~` znHPI9aS056f1VB$V>3@Z{^~ZsvW=x9p0CE(8HjlzVameb=t8B5z#CW2C10L~V;e{?dwQf?W*kXZr}Z zBFmFxboru+KyW!W9SI!apT#Hn?gsuI@=5=E=gMq)cy0WyqR8&O5=ixJp~4tD9o3#0 zNIbXt;9N-Mb{(DNb6((^=8(>ITffi(y@E#vibcP`K8;aC|JrA7X?-HRMX6; zyOL&NtIAT69h7ZtENsm>V6SA{NosfP+gi!?3fZaprV;<~J+oS^3zrzh4dh)Ps%9j8 zP@0jp@<YNUDmK(+L$N7ZPrkZTc>%~dV$z`j#1f5$iv%zvX%BdNkO$oU*`ZuqCRx1$}`u+MGWHH3_ zQ`v=9Ps_-hhk&p1iBjy3Y~k}ii?~!aXljOQm>u-~x&9m8*7kR*n%c1R};^oR0R2gHzdPx@3fDKlS&D zP?@3rM=AGTXLjWF<@B5~uMlohv93(4IZSKT6Hy5K-qv`iU!|pSZQj#qt!}@xJnq}k z))1d2CBN6yV%^&BS6xo#wJw)l=z5H1sA$c+PLE?-WQ` zYB%HEQ0e?h8?Mz^KhoZi=b!nYZXozzqR6l<-&Z^?#=gc_Q1p9`1oFHnV%O`#qLH}N zL~_Qeu)^utf)_`s0|H{CuLZ(>(&X-J4C(n#rPVffJ&lLT&S;`(a*)Gr40 zkzTDJ`fB2!QrChe+&Acojw&U!rgjxnOLJOysHN@WP%=rSkAf|geFfIc@2EzlOCN%(h_kN1DEH}fM;~LD1#rw z(UM+&lEID3u^dU=^S!7-&T!hJSdX%Jm1@$CQs==eyG;B92W<|yl94cBPy7Y)m0(0Y zaWZ?VH@^IE+xz<0-Ve{?eKl5Ul5ieTZu-$X{As~^$JA|ZG1u?FA?qbcaXp?_$-$x9 zBKu7{b1}UGhOg@vG*Xq^bZ?b5>*x)gk}#;YUmYo}tKKed77)Kr?xp_y&Drh7IUDsr zbC%zgwzp+;3t}~ku6FOuhq*CI-jT8#Oi7;^*Beh67ZTe4+~SvpU++)G+~hadAig+I zk%0U;bu>MYh#~>K@DZ{1<#;P!-qk%;TrAc*IoR;3WN>A0xys@2bKZ8(r=xV5Nuh~J z-9?GK_i(2|`SGW+f*wLG)pqeuurz-m+a_;F*P}^uPP^hA~H;b1UCTVNkKXkvh zif%RR|5WJ?Eerf|f02F2jbVYh#z3h{pYTd*8h`#6F)@&A?0HsKSFBT>o($u!KEtzn zXB8&$CxoFjfm7Mmz>C?-DfL+%Mw+qe_4W8V+2Lv76ml=^-L~%K+CG&JSI!QsPZ|o# zf>PeUC`#s;jn<$a4068r(D=0ng{4+nLynp+$ef|%W9`8%@q9UJvO?wCW`phLQej`k zE34r;`s%}dpBeJ2bX6ZVyz+6e`MC3-#M#kVsl(C!#+5NWJ?^4nUhtCrJ$!twAHQD{ zYRrr;Yfp?%B*YgXgbW5}qXp!1M$61mZplyRKsqDj%7&Bgn}^^pw4EvZe`ZNv>kuyK zYQLOiywt@WS5#%?ukJ3TNnoFNRrM$La4FXhq27aMMp~M+xg!p5X?5|dctfwAvAk-@ z>ecLt+55x;2d&^ul6_NOB^9m}KoRqqj3`mxlbx}ULuJa^i{@}GsTQXftJwqH}- zzy0z4?6gXbKS68&!4J2d=^e^7iYp7ZX4=9g*-a6Cq%DD5CJkd8lC-)-hO2 z&V%*zh59AtPwkY42fTYk$_?+7`p>e(pShG7^6Y}x4hZa82#f$IP?(GN_bKPSP{!JV7TNH0HUQ(EVkL%k^ zC{;N8)T)$C;=ymumSIa9vR;d~450fqHg~fJ_IroKeG~J7swB;SHKL z5vcf(SwKMRas;Yy501HwcRlyO*W=taLUB^+kU=S{t}m`P!}bD8s4_mJ^&qO2y^vg# zc~3)xuTkAk;=p(FcBFj&wNVZq@h#DI0X9at)Li`jyxgOQm0~Mrbpt;>FCQ;w8D(r^ zEo0EVxdR(jEIWFD=vaTi__&EV@WyZI)(GappLDJAt;!THIDfLjvH5%2RyX zmfII{l0qAwawj%$Y*Qx4erDcw?|uFBI?TP)Lo~c7rN|=}Y7DZTw>63=DjT|ln8~9a)&-!~x<6<~w+kaX_ ztwwNI%|)tklgIrUsj^8}jk~Fo_sAg-Nqg(tIpsGg=gY{fScu2jO_>-J-)CQ2nxTKr zWIaoL&YM)ZOGc`k+% zzNqOOMiJ=!6h6ZzGaz)@xAUT_XA6xLLsN2CpFW*slt@pIF1Y-|%okFTaFaYD!64^k z0{9~fDF^OLDMURXpKeboWMnLm4e%)`s;=B^ zbuA1bS`8b#ES>2j2{~U>aNB*3Eh{HAji`Jw(p%(*&+DkWej`~rCIrqsc$=)(Xs&rC zvsvU3nL{?3v(-TiVHv*DToRl;556RbLu8j)2@E+R7&bdyGez;;)hxP^eH@BiB;{{| zSFMO-iW!P`Hz_AtBg(wHH^)I)!t%TjSE-E{{H}{LK39h}(%(ONC2EloL(LkgVft3) zjLq~W*gNX&CnxZI7+gY&_W}KvAT5hXE7}>v8F$E?$cqe8?^0i)*v~l4zWX*qc_*FH z#-vs`7k0)|-(c~7KT>ryeme1j!3#Q~t?!ijGY+A-r zFTYJ5?iz?{xEx&nD)$vlWFDx`h$0{Qpy3x$277(tCAwL;n|!*7yRYa<%92zfNuXf& z4dKt9%<*_vFFhl4NAS3$_gULSW(zj|u5Sd3h0a}PHBqE!R9953=)afEYNs`OTef;G zxH{(CC6ODm=4S0ZPWSUDMg?RR<1R(7UCV#@GN+mJ{6y5cAlQrTSr^GqS9hw2&Jd1~ zcJJUc#jsJim^7t#dE{Bi$#M=+WFK~<$u~!CA_;4e6sab257@}Rd9wwa_n$69y z3SW>iZDWUQ>WHA|u5iqoaoq&IFvQ)IWeSYX5fh_V2zjsmfNgZSHytF8YVW=IBrWb{ z&hw5D8w;-|u{StI2HrY&i(P7lbc`hTI&~_t68PS1ox3c~&Om$Na=NvttO!*U`QrP< zM-O$7$stb@rBDbU;mG|}H(M8G5ecu3| ziR7S7jyip#z_yrJ&JgK-y36LO!X-GRwfW{d(r-_Qryk;+lN5X;%i>KHQ>rHUD5-!& zEGZ)7@{`NOZuPp4Hm+YjJ17wq8o&*uGBmktnn}h_6Eh>zT zPsu(Iic5X7KqjQ%%QrjB^`YdF-*i#vrrq^7uc1y&J;x#0XMvx3=ALpm$H$RKZ|+bT zg4lDNiR*?1wT_Iw)axge0?s&sS(;PP=+rn zM4hY1d`nVN5$cwM4@s*D#BA!Oo(@5imlb$T2wz>`{lq}R=6xge?9m&x575X;UCxP* zGZ1Alu}2-wywZMn4`Qvx3gWlrB%o@CoX&mt2hUps{iCw?Gp4zU#E%s6h<;~!E zG`bwRwMp@6+KvIN!G3OxohZuMv!}O}ghR?avd!sc!m}#!kT2g?-$n_sRfc@;sEvK$ z>Mi}`nh)E(K#}tnvyIVLLfi@+38E}NZ_qjgC+HRA+S#OkgWYnQF4>8l!0Sl5^mQ?& zW9}nwpZHC2R63QhvZ;juA0nXVOCGt-0y}NwhtkNNd2Y|k3r$8hItG#;*D@;ALe@9w zxbLP~#u1?cV8%QUvd1AwY%)6?32&c>3Gf&B|n+wfO>LDJ9s{Wk&-4`Th_SI=piMS=L?%qv{y!iC4POIP;tfn+p z{B*!6lc!JUlxI8yuhY|J7`=j*g~+mQB%Pu%y92)zbZ!nrvK1NE^^HF6^jf0ygaeI= zi5Xjgj@1?)iuuzy9lSHo$sf8h-`zA(j%$6sVzZs z`sG&ShJ_7(%2w#3@|SBzrwMIOC*Y!w1W|wSM@S?Tj=qk@gbD)K!+%hMe=v4`z?uIC z=+J+#K>v40z`yW5TsR;uF7yvZ35d4%-{3-}wE@s142@{~Pjk>A690l-k3o+pAT!_p z2R)v^Nd9-AM*v;-2lR+R(!nvnIK(kP@fg*23?{^2=inGT-Z4P&8148!VJ45^ituCT zOD9K|)<1rHQ7~2WOC=bT;(qC{UM%`oJ<}o1h7=U?{cF^7{t%9FTAFs33fMqSu3g!LFf`Cq{! zj}e<-OeY`XQ;$)Z2teKcrzpw)Ix5V+>=6!1@*hL=e~gd(6EhSGANeP^>OZFBAN2IU zyu>s|H}Wk8@lCIgS2<%hnfAk(LEen&^y|0`iVP;8@Ayqtw4K-`;KjIvNOX zgF+FbXE^2q;KyM=JX$NJe`r7-qd!be7#fg`76N2OJwXFb1kq7r(VxG3z*jIjn)FE; z6oiglev$@)0N8sh8W@hwP5W;?bQm6V?B^3SK>z{|AXEQM1FD6i!_#Ba(2!Ov8Ul=4 zF9Mw=1&a>|34~1px&Wsv1RaD2t1JYLj_!L>9t4So+@7RCp*T7V0?AZyI*Tnvh0K5j!#3%UxC^I_gF;-a=?s!4{fo-4Q0|Ra-*ku8E zIQIjfq0?Dlm&F+`fIM_O_>+8aFxonupg{n)7wof!9 z1ejacWdRyGSsGSZB-%orqyb%p%Lhj%d_Kts0d6oh4TZoNLl6`Ugnf?y8an&gNqHz3 z&KL)J1)U`tiw}-t6Co%BkUIJ#9~1<_v2{?u#R;cvC?w9@2g;&T9G$2a3Wwp$X+R#% zn1lkZN7(ZNprNytVaWq(!KLBY7bsw!v2_M?K_`^Pl83~3rT|`BXzwp9J~)m&g#z{p z`~CtRQ|NrkC(6RW2pk&*0~`*p`yK{?06tn+Wg&pU!lpq%IP)9^M1{ld7eE)BF$9AN z;^+*FQk-WL;1Py%&w;XlKiEnAfZK-CHb5TsGZZko2pk&$3Hy^7jB$X5PA!VX2NlE~F958o}-|+?_4M#xFUAF=*KU%en`NaV$W$L;JS%@kB|u9{THikNZ>JzTNZ`W z&%o@!?JFei`y|jZbOPrS_XCMS;K)OP0JkJ8J`~_eifzMCVBjA%9|Vf?{(^$QamE!2 zf<&jvIH?O@*0AeEA_Z~gIq+JCqcgBtgxjaU)WX&e2{Z(!?@_pI1G)<5d5%QEah_W! zpat0D00jcPy|CH_r~>%Wo@_4)_z{7v3rY|P!sSEZ%ySelBys8mgK_K?3V3zI(FKI| zQO42*g!U=MrU4@XnfLV_7t^$NF#d)_tf#K+%rs&Uq>@x}? zh}#ap&km;@!1EHP9Z=l&b`nng@Pvn8 z=?Bn&Sg