From e42b18cf71c828cbab9b2dca4d74c3c554b2acc7 Mon Sep 17 00:00:00 2001 From: David Chavez Date: Wed, 22 Jun 2022 20:59:21 +0200 Subject: [PATCH] Add Support for macOS (#441) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fixed soh filters * add more makefile changes * almost ready * more updates * update * update * Update Makefiles to handle both platforms * Allow for overriding the CXX and CC executables * Restore original structure while supporting custom CXX flags * Remove some platform specific libs * Dynamic target name * Make X11 paths package-agnostic * Remove changes to `gfx_opengl.cpp` * Use OpenGL2 on MacOS instead of OpenGL3 * make it actually render something * render at least the first texture, still need to figure out the second one * Let’s use OpenGL 3 again * maybe this works to get the right texture? link's eyes still look off a bit * did this work? * set the platform to macos * actual numbers are right, but logic is ugly XXX/TODO, i know * add zlib to ldflags for ZAPDUtils * A bit of cleanup * Revert unneeded changes * Remove GL_CHECK * Fix issues with z64 branch * use an std::map instead of a giant array * three point filter fix (#2) * Fix mac compilation * fix audio for 64 bit * revert audio heap size, keep bigger pools * Add more Apple specific checks to our modifications * Add building instructions for macOS * Remove unecessary step from building instructions * Add missing SDL2 & GLEW to Linux LDLIBS * Update BUILDING.md Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com> * Update soh/.gitignore to include other arch binaries Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com> * Use right platform name for debugging window Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com> * Fix stormlib on macos (arm64) * Simplify some of the ifdef checks * Revert an older no longer necessary fix * Remove remaining unecessary deviations * Update building instructions after StormLib changes * Feature: Use OpenGL 4.1 (#1) * Further tweak the BUILDING * Tidy up * reword -j message * Add Jenkins CI Support (#2) * Fix type issues * add target and add makefile targets to create an .app `filledappbundle` creates the target with the .otr included this should perhaps be moved to Application Support though * pull gcc's rpath from otool output * move make target to the end so it's not default * Add Jenkins and make exe in par with other platforms * Actually save build artefacts * Fix artefact path * Remove x11 mentions and linking (not used) * Update building instructions for generating app * use appsupport directory * Add new app icon * Update target to match macOS types * Update more audio types * fix null deref in Audio_PlayFanfare * Remove old import from z64 * address final nit with apple ifdefs Co-authored-by: KiritoDev <36680385+KiritoDv@users.noreply.github.com> Co-authored-by: Jeffrey Crowell Co-authored-by: BountyChocolate123456 <101743444+BountyChocolate123456@users.noreply.github.com> --- .gitignore | 7 +- BUILDING.md | 21 ++++ Jenkinsfile | 34 ++++++ OTRExporter/OTRExporter/Makefile | 6 +- StormLib/src/SFileAddFile.cpp | 2 +- ZAPDTR/Makefile | 25 ++--- ZAPDTR/ZAPD/ZRom.cpp | 6 +- ZAPDTR/ZAPDUtils/Makefile | 3 +- ZAPDTR/lib/libgfxd/Makefile | 1 + libultraship/Makefile | 17 ++- libultraship/libultraship/Audio.cpp | 36 +++--- libultraship/libultraship/Audio.h | 4 +- .../libultraship/Lib/Fast3D/gfx_opengl.cpp | 88 ++++++++++++++- libultraship/libultraship/Lib/Fast3D/gfx_pc.h | 1 + .../libultraship/Lib/Fast3D/gfx_sdl2.cpp | 15 ++- .../Lib/ImGui/backends/imgui_impl_sdl.cpp | 12 +- libultraship/libultraship/SDLAudioPlayer.h | 4 + libultraship/libultraship/SDLController.h | 4 + libultraship/libultraship/SohImGuiImpl.cpp | 6 + libultraship/libultraship/Window.cpp | 4 + soh/.gitignore | 9 +- soh/Makefile | 106 ++++++++++++++++-- soh/include/functions.h | 2 + soh/include/z64item.h | 2 +- soh/macosx/Info.plist | 35 ++++++ soh/macosx/PkgInfo | 1 + soh/macosx/appsupport.m | 26 +++++ soh/macosx/launcher.sh | 9 ++ soh/macosx/sohIcon.png | Bin 0 -> 142622 bytes soh/soh/OTRGlobals.cpp | 5 + soh/src/buffers/heaps.c | 2 + soh/src/code/code_800EC960.c | 17 ++- 32 files changed, 441 insertions(+), 69 deletions(-) create mode 100644 soh/macosx/Info.plist create mode 100644 soh/macosx/PkgInfo create mode 100644 soh/macosx/appsupport.m create mode 100755 soh/macosx/launcher.sh create mode 100644 soh/macosx/sohIcon.png diff --git a/.gitignore b/.gitignore index 5fb41fae..5769df64 100644 --- a/.gitignore +++ b/.gitignore @@ -399,4 +399,9 @@ ZAPDUtils/build/ ZAPD/BuildInfo.h DebugObj/* -ReleaseObj/* \ No newline at end of file +ReleaseObj/* +.tags +tags +oot.otr +oot_save.sav +shipofharkinian.ini diff --git a/BUILDING.md b/BUILDING.md index 1f9d9fcc..d6ffb26b 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -46,6 +46,27 @@ make setup -j$(nproc) OPTFLAGS=-O2 DEBUG=0 make -j $(nproc) OPTFLAGS=-O2 DEBUG=0 ``` +## macOS + +1. Requires `gcc@12, sdl2, libpng, glew, dylibbundler` (can be installed via brew, etc) +```bash +# Clone the repo +git clone https://github.com/HarbourMasters/Shipwright.git +cd ShipWright +# Copy the baserom to the OTRExporter folder +cp OTRExporter + +cd soh +# Extract the assets/Compile the exporter/Run the exporter +# -jX defines number of cores to use for compilation - lower or remove entirely if having issues +make setup -j8 DEBUG=0 CC=gcc-12 CXX=g++-12 +# Compile the code (watch the -j parameter as above) +make -j8 DEBUG=0 CC=gcc-12 CXX=g++-12 +# Create macOS app bundle +make filledappbundle +``` +9. Launch soh app in the soh folder! + # Compatible Roms ``` OOT_PAL_GC checksum 0x09465AC3 diff --git a/Jenkinsfile b/Jenkinsfile index 0134b2b5..a2c4203c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -122,5 +122,39 @@ pipeline { } } } + stage ('Build macOS') { + agent { + label "SoH-Mac-Builders" + } + steps { + checkout([ + $class: 'GitSCM', + branches: scm.branches, + doGenerateSubmoduleConfigurations: scm.doGenerateSubmoduleConfigurations, + extensions: scm.extensions, + userRemoteConfigs: scm.userRemoteConfigs + ]) + catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') { + sh ''' + cp ../../ZELOOTD.z64 OTRExporter/baserom_non_mq.z64 + + cd soh + make setup -j4 DEBUG=0 CC=gcc-12 CXX=g++-12 + make -j4 DEBUG=0 CC=gcc-12 CXX=g++-12 + + make -j4 appbundle + + mv ../README.md readme.txt + 7z a soh-mac.7z soh.app readme.txt + ''' + } + archiveArtifacts artifacts: 'soh/soh-mac.7z', followSymlinks: false, onlyIfSuccessful: true + } + post { + always { + step([$class: 'WsCleanup']) // Clean workspace + } + } + } } } \ No newline at end of file diff --git a/OTRExporter/OTRExporter/Makefile b/OTRExporter/OTRExporter/Makefile index 0046df18..c3882b5e 100644 --- a/OTRExporter/OTRExporter/Makefile +++ b/OTRExporter/OTRExporter/Makefile @@ -1,6 +1,6 @@ # Only used for standalone compilation, usually inherits these from the main makefile -CXX := g++ +CXX ?= g++ AR := ar FORMAT := clang-format-11 @@ -31,7 +31,7 @@ ifneq ($(LTO),0) CXXFLAGS += -flto endif -SRC_DIRS := $(shell find -type d -not -path "*build*") +SRC_DIRS := $(shell find . -type d -not -path "*build*") CXX_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.cpp)) H_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.h)) @@ -69,4 +69,4 @@ build/%.o: %.cpp $(LIB): $(O_FILES) $(AR) rcs $@ $^ --include $(D_FILES) \ No newline at end of file +-include $(D_FILES) diff --git a/StormLib/src/SFileAddFile.cpp b/StormLib/src/SFileAddFile.cpp index 1f7156e9..638037a1 100644 --- a/StormLib/src/SFileAddFile.cpp +++ b/StormLib/src/SFileAddFile.cpp @@ -100,7 +100,7 @@ static int FillWritableHandle( pFileEntry->dwFlags = dwFlags | MPQ_FILE_EXISTS; // Initialize the file time, CRC32 and MD5 - assert(sizeof(hf->hctx) >= sizeof(hash_state)); + //assert(sizeof(hf->hctx) >= sizeof(hash_state)); memset(pFileEntry->md5, 0, MD5_DIGEST_SIZE); md5_init((hash_state *)hf->hctx); pFileEntry->dwCrc32 = crc32(0, Z_NULL, 0); diff --git a/ZAPDTR/Makefile b/ZAPDTR/Makefile index 9ff869f8..2e871b32 100644 --- a/ZAPDTR/Makefile +++ b/ZAPDTR/Makefile @@ -7,12 +7,13 @@ DEBUG ?= 0 COPYCHECK_ARGS ?= LLD ?= 0 WERROR ?= 0 +UNAME := $(shell uname) # Use clang++ if available, else use g++ ifeq ($(shell command -v clang++ >/dev/null 2>&1; echo $$?),0) - CXX := clang++ + CXX ?= clang++ else - CXX := g++ + CXX ?= g++ endif INC := -I ZAPD -I lib/elfio -I lib/libgfxd -I lib/tinyxml2 -I ZAPDUtils @@ -44,8 +45,15 @@ ifneq ($(DEPRECATION_ON),0) endif # CXXFLAGS += -DTEXTURE_DEBUG -LDFLAGS := -lm -ldl -lpng \ - -L../StormLib/build -L../libultraship -lz -lbz2 -pthread -lpulse -lultraship -lstorm -lSDL2 -lGLEW -lGL -lX11 +LDFLAGS := -lm -ldl \ + -L../StormLib/build -L../libultraship -lbz2 -pthread -lultraship -lstorm + +ifeq ($(UNAME), Darwin) + LDFLAGS += $(shell pkg-config --libs glew libpng zlib) $(shell sdl2-config --libs) -framework OpenGL + INC += $(shell pkg-config --cflags libpng) +else + LDFLAGS += -lpng -lGL -lGLEW -lX11 -lz -lSDL2 -lpulse +endif # Use LLD if available. Set LLD=0 to not use it ifeq ($(shell command -v ld.lld >/dev/null 2>&1; echo $$?),0) @@ -56,21 +64,12 @@ ifneq ($(LLD),0) LDFLAGS += -fuse-ld=lld endif -UNAME := $(shell uname) UNAMEM := $(shell uname -m) ifneq ($(UNAME), Darwin) LDFLAGS += -Wl,-export-dynamic -lstdc++fs EXPORTERS := -Wl,--whole-archive ../OTRExporter/OTRExporter/OTRExporter.a -Wl,--no-whole-archive else EXPORTERS := -Wl,-force_load ../OTRExporter/OTRExporter/OTRExporter.a - ifeq ($(UNAMEM),arm64) - ifeq ($(shell brew list libpng > /dev/null 2>&1; echo $$?),0) - LDFLAGS += -L $(shell brew --prefix)/lib - INC += -I $(shell brew --prefix)/include - else - $(error Please install libpng via Homebrew) - endif - endif endif diff --git a/ZAPDTR/ZAPD/ZRom.cpp b/ZAPDTR/ZAPD/ZRom.cpp index 111888e8..f13a6e2f 100644 --- a/ZAPDTR/ZAPD/ZRom.cpp +++ b/ZAPDTR/ZAPD/ZRom.cpp @@ -4,7 +4,7 @@ #include "Utils/Directory.h" #include "yaz0/yaz0.h" -#ifndef _MSC_VER +#ifdef __linux__ #include #endif #include @@ -17,6 +17,10 @@ namespace fs = std::filesystem; #define __bswap_32 _byteswap_ulong #define bswap_32 _byteswap_ulong #endif +#if defined __APPLE__ +#define __bswap32 __builtin_bswap32 +#define bswap32 __builtin_bswap32 +#endif // ROM DMA Table Start #define OOT_OFF_NTSC_10_RC 0x7430 diff --git a/ZAPDTR/ZAPDUtils/Makefile b/ZAPDTR/ZAPDUtils/Makefile index aef67803..b9c4e29a 100644 --- a/ZAPDTR/ZAPDUtils/Makefile +++ b/ZAPDTR/ZAPDUtils/Makefile @@ -1,7 +1,8 @@ # Only used for standalone compilation, usually inherits these from the main makefile +CXX ?= g++ CXXFLAGS ?= -Wall -Wextra -O2 -g -std=c++17 -SRC_DIRS := $(shell find -type d -not -path "*build*") +SRC_DIRS := $(shell find . -type d -not -path "*build*") CPP_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.cpp)) H_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.h)) diff --git a/ZAPDTR/lib/libgfxd/Makefile b/ZAPDTR/lib/libgfxd/Makefile index b340ff5c..5c3edbef 100644 --- a/ZAPDTR/lib/libgfxd/Makefile +++ b/ZAPDTR/lib/libgfxd/Makefile @@ -1,3 +1,4 @@ +CC ?= gcc CFLAGS = -Wall -O2 -g UC_OBJ = uc_f3d.o uc_f3db.o uc_f3dex.o uc_f3dexb.o uc_f3dex2.o OBJ = gfxd.o $(UC_OBJ) diff --git a/libultraship/Makefile b/libultraship/Makefile index d5879e02..d894514b 100644 --- a/libultraship/Makefile +++ b/libultraship/Makefile @@ -1,9 +1,10 @@ # Only used for standalone compilation, usually inherits these from the main makefile -CXX := g++ -CC := gcc +CXX ?= g++ +CC ?= gcc AR := ar FORMAT := clang-format-11 +UNAME := $(shell uname) ASAN ?= 0 DEBUG ?= 1 @@ -16,7 +17,8 @@ WARN := -Wall -Wextra -Werror \ -Wno-unused-function \ -Wno-parentheses \ -Wno-narrowing \ - -Wno-missing-field-initializers + -Wno-missing-field-initializers \ + -Wno-error=multichar CWARN := CXXWARN := -Wno-deprecated-enum-enum-conversion @@ -25,6 +27,10 @@ CXXFLAGS := $(WARN) $(CXXWARN) -std=c++20 -D_GNU_SOURCE -DENABLE_OPENGL -DSPDLOG CFLAGS := $(WARN) $(CWARN) -std=c99 -D_GNU_SOURCE -DENABLE_OPENGL -DSPDLOG_ACTIVE_LEVEL=0 CPPFLAGS := -MMD +ifeq ($(UNAME), Darwin) #APPLE + CPPFLAGS += $(shell pkg-config --cflags sdl2 glew) -framework OpenGL +endif + ifneq ($(DEBUG),0) CXXFLAGS += -g -D_DEBUG CFLAGS += -g -D_DEBUG @@ -40,7 +46,7 @@ ifneq ($(LTO),0) CFLAGS += -flto endif -SRC_DIRS := $(shell find -type d -not -path "*build*") +SRC_DIRS := $(shell find . -type d -not -path "*build*") CXX_FILES := \ $(shell find libultraship/Factories -name "*.cpp") \ @@ -71,6 +77,7 @@ INC_DIRS := $(addprefix -I, \ libultraship/Lib/Fast3D/U64 \ libultraship/Lib/spdlog \ libultraship/Lib/spdlog/include \ + libultraship/Lib/ImGui \ libultraship \ ../StormLib/src \ ) @@ -97,4 +104,4 @@ build/%.o: %.c $(LIB): $(O_FILES) $(AR) rcs $@ $^ --include $(D_FILES) \ No newline at end of file +-include $(D_FILES) diff --git a/libultraship/libultraship/Audio.cpp b/libultraship/libultraship/Audio.cpp index 6510a471..6afe90c5 100644 --- a/libultraship/libultraship/Audio.cpp +++ b/libultraship/libultraship/Audio.cpp @@ -8,20 +8,20 @@ namespace Ship ResourceFile::ParseFileBinary(reader, res); - int seqDataSize = reader->ReadInt32(); + uint32_t seqDataSize = reader->ReadInt32(); seq->seqData.reserve(seqDataSize); - for (int i = 0; i < seqDataSize; i++) + for (uint32_t i = 0; i < seqDataSize; i++) seq->seqData.push_back(reader->ReadUByte()); seq->seqNumber = reader->ReadUByte(); seq->medium = reader->ReadUByte(); seq->cachePolicy = reader->ReadUByte(); - int numFonts = reader->ReadInt32(); + uint32_t numFonts = reader->ReadInt32(); - for (int i = 0; i < numFonts; i++) + for (uint32_t i = 0; i < numFonts; i++) seq->fonts.push_back(reader->ReadUByte()); } @@ -36,26 +36,26 @@ namespace Ship entry->unk_bit26 = reader->ReadByte(); entry->unk_bit25 = reader->ReadByte(); - int dataSize = reader->ReadInt32(); + uint32_t dataSize = reader->ReadInt32(); - for (int i = 0; i < dataSize; i++) + for (uint32_t i = 0; i < dataSize; i++) entry->data.push_back(reader->ReadUByte()); entry->loop.start = reader->ReadUInt32(); entry->loop.end = reader->ReadUInt32(); entry->loop.count = reader->ReadUInt32(); - int loopStateCnt = reader->ReadUInt32(); + uint32_t loopStateCnt = reader->ReadUInt32(); - for (int i = 0; i < loopStateCnt; i++) + for (uint32_t i = 0; i < loopStateCnt; i++) entry->loop.states.push_back(reader->ReadInt16()); entry->book.order = reader->ReadInt32(); entry->book.npredictors = reader->ReadInt32(); - int bookSize = reader->ReadInt32(); + uint32_t bookSize = reader->ReadInt32(); - for (int i = 0; i < bookSize; i++) + for (uint32_t i = 0; i < bookSize; i++) entry->book.books.push_back(reader->ReadInt16()); } @@ -72,11 +72,11 @@ namespace Ship soundFont->data2 = reader->ReadInt16(); soundFont->data3 = reader->ReadInt16(); - int drumCnt = reader->ReadInt32(); - int instrumentCnt = reader->ReadInt32(); - int sfxCnt = reader->ReadInt32(); + uint32_t drumCnt = reader->ReadInt32(); + uint32_t instrumentCnt = reader->ReadInt32(); + uint32_t sfxCnt = reader->ReadInt32(); - for (int i = 0; i < drumCnt; i++) + for (uint32_t i = 0; i < drumCnt; i++) { DrumEntry drum; drum.releaseRate = reader->ReadUByte(); @@ -92,7 +92,7 @@ namespace Ship soundFont->drums.push_back(drum); } - for (int i = 0; i < instrumentCnt; i++) + for (uint32_t i = 0; i < instrumentCnt; i++) { InstrumentEntry entry; @@ -143,7 +143,7 @@ namespace Ship soundFont->instruments.push_back(entry); } - for (int i = 0; i < sfxCnt; i++) + for (uint32_t i = 0; i < sfxCnt; i++) { SoundFontEntry* entry = new SoundFontEntry(); @@ -164,9 +164,9 @@ namespace Ship { std::vector envelopes; - int envelopeCnt = reader->ReadInt32(); + uint32_t envelopeCnt = reader->ReadInt32(); - for (int i = 0; i < envelopeCnt; i++) + for (uint32_t i = 0; i < envelopeCnt; i++) { AdsrEnvelope* env = new AdsrEnvelope(); env->delay = reader->ReadInt16(); diff --git a/libultraship/libultraship/Audio.h b/libultraship/libultraship/Audio.h index a63035e5..8c32af74 100644 --- a/libultraship/libultraship/Audio.h +++ b/libultraship/libultraship/Audio.h @@ -15,8 +15,8 @@ namespace Ship struct AdpcmBook { - /* 0x00 */ int32_t order; - /* 0x04 */ int32_t npredictors; + /* 0x00 */ uint32_t order; + /* 0x04 */ uint32_t npredictors; /* 0x08 */ std::vector books; // size 8 * order * npredictors. 8-byte aligned }; diff --git a/libultraship/libultraship/Lib/Fast3D/gfx_opengl.cpp b/libultraship/libultraship/Lib/Fast3D/gfx_opengl.cpp index b2db3186..83f4904f 100644 --- a/libultraship/libultraship/Lib/Fast3D/gfx_opengl.cpp +++ b/libultraship/libultraship/Lib/Fast3D/gfx_opengl.cpp @@ -27,6 +27,9 @@ #include "SDL.h" #define GL_GLEXT_PROTOTYPES 1 #include "SDL_opengl.h" +#elif __APPLE__ +#include +#include #else #include #include @@ -67,6 +70,9 @@ struct Framebuffer { static map, struct ShaderProgram> shader_program_pool; static GLuint opengl_vbo; +#ifdef __APPLE__ +static GLuint opengl_vao; +#endif static bool current_depth_mask; static uint32_t frame_count; @@ -220,37 +226,67 @@ static struct ShaderProgram* gfx_opengl_create_and_load_new_shader(uint64_t shad size_t num_floats = 4; // Vertex shader +#ifdef __APPLE__ + append_line(vs_buf, &vs_len, "#version 410 core"); + append_line(vs_buf, &vs_len, "in vec4 aVtxPos;"); +#else append_line(vs_buf, &vs_len, "#version 110"); append_line(vs_buf, &vs_len, "attribute vec4 aVtxPos;"); +#endif for (int i = 0; i < 2; i++) { if (cc_features.used_textures[i]) { + #ifdef __APPLE__ + vs_len += sprintf(vs_buf + vs_len, "in vec2 aTexCoord%d;\n", i); + vs_len += sprintf(vs_buf + vs_len, "out vec2 vTexCoord%d;\n", i); + #else vs_len += sprintf(vs_buf + vs_len, "attribute vec2 aTexCoord%d;\n", i); vs_len += sprintf(vs_buf + vs_len, "varying vec2 vTexCoord%d;\n", i); + #endif num_floats += 2; for (int j = 0; j < 2; j++) { if (cc_features.clamp[i][j]) { + #ifdef __APPLE__ + vs_len += sprintf(vs_buf + vs_len, "in float aTexClamp%s%d;\n", j == 0 ? "S" : "T", i); + vs_len += sprintf(vs_buf + vs_len, "out float vTexClamp%s%d;\n", j == 0 ? "S" : "T", i); + #else vs_len += sprintf(vs_buf + vs_len, "attribute float aTexClamp%s%d;\n", j == 0 ? "S" : "T", i); vs_len += sprintf(vs_buf + vs_len, "varying float vTexClamp%s%d;\n", j == 0 ? "S" : "T", i); + #endif num_floats += 1; } } } } if (cc_features.opt_fog) { + #ifdef __APPLE__ + append_line(vs_buf, &vs_len, "in vec4 aFog;"); + append_line(vs_buf, &vs_len, "out vec4 vFog;"); + #else append_line(vs_buf, &vs_len, "attribute vec4 aFog;"); append_line(vs_buf, &vs_len, "varying vec4 vFog;"); + #endif num_floats += 4; } if (cc_features.opt_grayscale) { + #ifdef __APPLE__ + append_line(vs_buf, &vs_len, "in vec4 aGrayscaleColor;"); + append_line(vs_buf, &vs_len, "out vec4 vGrayscaleColor;"); + #else append_line(vs_buf, &vs_len, "attribute vec4 aGrayscaleColor;"); append_line(vs_buf, &vs_len, "varying vec4 vGrayscaleColor;"); + #endif num_floats += 4; } for (int i = 0; i < cc_features.num_inputs; i++) { + #ifdef __APPLE__ + vs_len += sprintf(vs_buf + vs_len, "in vec%d aInput%d;\n", cc_features.opt_alpha ? 4 : 3, i + 1); + vs_len += sprintf(vs_buf + vs_len, "out vec%d vInput%d;\n", cc_features.opt_alpha ? 4 : 3, i + 1); + #else vs_len += sprintf(vs_buf + vs_len, "attribute vec%d aInput%d;\n", cc_features.opt_alpha ? 4 : 3, i + 1); vs_len += sprintf(vs_buf + vs_len, "varying vec%d vInput%d;\n", cc_features.opt_alpha ? 4 : 3, i + 1); + #endif num_floats += cc_features.opt_alpha ? 4 : 3; } append_line(vs_buf, &vs_len, "void main() {"); @@ -277,26 +313,50 @@ static struct ShaderProgram* gfx_opengl_create_and_load_new_shader(uint64_t shad append_line(vs_buf, &vs_len, "}"); // Fragment shader - append_line(fs_buf, &fs_len, "#version 130"); +#ifdef __APPLE__ + append_line(fs_buf, &fs_len, "#version 410 core"); +#else + append_line(fs_buf, &fs_len, "#version 120"); +#endif //append_line(fs_buf, &fs_len, "precision mediump float;"); for (int i = 0; i < 2; i++) { if (cc_features.used_textures[i]) { + #ifdef __APPLE__ + fs_len += sprintf(fs_buf + fs_len, "in vec2 vTexCoord%d;\n", i); + #else fs_len += sprintf(fs_buf + fs_len, "varying vec2 vTexCoord%d;\n", i); + #endif for (int j = 0; j < 2; j++) { if (cc_features.clamp[i][j]) { + #ifdef __APPLE__ + fs_len += sprintf(fs_buf + fs_len, "in float vTexClamp%s%d;\n", j == 0 ? "S" : "T", i); + #else fs_len += sprintf(fs_buf + fs_len, "varying float vTexClamp%s%d;\n", j == 0 ? "S" : "T", i); + #endif } } } } if (cc_features.opt_fog) { + #ifdef __APPLE__ + append_line(fs_buf, &fs_len, "in vec4 vFog;"); + #else append_line(fs_buf, &fs_len, "varying vec4 vFog;"); + #endif } if (cc_features.opt_grayscale) { + #ifdef __APPLE__ + append_line(fs_buf, &fs_len, "in vec4 vGrayscaleColor;"); + #else append_line(fs_buf, &fs_len, "varying vec4 vGrayscaleColor;"); + #endif } for (int i = 0; i < cc_features.num_inputs; i++) { + #ifdef __APPLE__ + fs_len += sprintf(fs_buf + fs_len, "in vec%d vInput%d;\n", cc_features.opt_alpha ? 4 : 3, i + 1); + #else fs_len += sprintf(fs_buf + fs_len, "varying vec%d vInput%d;\n", cc_features.opt_alpha ? 4 : 3, i + 1); + #endif } if (cc_features.used_textures[0]) { append_line(fs_buf, &fs_len, "uniform sampler2D uTex0;"); @@ -316,7 +376,11 @@ static struct ShaderProgram* gfx_opengl_create_and_load_new_shader(uint64_t shad } if (current_filter_mode == THREE_POINT) { + #if __APPLE__ + append_line(fs_buf, &fs_len, "#define TEX_OFFSET(off) texture(tex, texCoord - (off)/texSize)"); + #else append_line(fs_buf, &fs_len, "#define TEX_OFFSET(off) texture2D(tex, texCoord - (off)/texSize)"); + #endif append_line(fs_buf, &fs_len, "vec4 filter3point(in sampler2D tex, in vec2 texCoord, in vec2 texSize) {"); append_line(fs_buf, &fs_len, " vec2 offset = fract(texCoord*texSize - vec2(0.5));"); append_line(fs_buf, &fs_len, " offset -= step(1.0, offset.x + offset.y);"); @@ -330,10 +394,18 @@ static struct ShaderProgram* gfx_opengl_create_and_load_new_shader(uint64_t shad append_line(fs_buf, &fs_len, "}"); } else { append_line(fs_buf, &fs_len, "vec4 hookTexture2D(in sampler2D tex, in vec2 uv, in vec2 texSize) {"); + #if __APPLE__ + append_line(fs_buf, &fs_len, " return texture(tex, uv);"); + #else append_line(fs_buf, &fs_len, " return texture2D(tex, uv);"); + #endif append_line(fs_buf, &fs_len, "}"); } +#if __APPLE__ + append_line(fs_buf, &fs_len, "out vec4 outColor;"); +#endif + append_line(fs_buf, &fs_len, "void main() {"); for (int i = 0; i < 2; i++) { @@ -405,9 +477,17 @@ static struct ShaderProgram* gfx_opengl_create_and_load_new_shader(uint64_t shad if (cc_features.opt_invisible) { append_line(fs_buf, &fs_len, "texel.a = 0.0;"); } + #if __APPLE__ + append_line(fs_buf, &fs_len, "outColor = texel;"); + #else append_line(fs_buf, &fs_len, "gl_FragColor = texel;"); + #endif } else { + #if __APPLE__ + append_line(fs_buf, &fs_len, "outColor = vec4(texel, 1.0);"); + #else append_line(fs_buf, &fs_len, "gl_FragColor = vec4(texel, 1.0);"); + #endif } append_line(fs_buf, &fs_len, "}"); @@ -557,7 +637,6 @@ static void gfx_opengl_select_texture(int tile, GLuint texture_id) { glActiveTexture(GL_TEXTURE0 + tile); glBindTexture(GL_TEXTURE_2D, texture_id); } - static void gfx_opengl_upload_texture(const uint8_t *rgba32_buf, uint32_t width, uint32_t height) { glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, rgba32_buf); } @@ -636,6 +715,11 @@ static void gfx_opengl_init(void) { glGenBuffers(1, &opengl_vbo); glBindBuffer(GL_ARRAY_BUFFER, opengl_vbo); +#ifdef __APPLE__ + glGenVertexArrays(1, &opengl_vao); + glBindVertexArray(opengl_vao); +#endif + glEnable(GL_DEPTH_CLAMP); glDepthFunc(GL_LEQUAL); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); diff --git a/libultraship/libultraship/Lib/Fast3D/gfx_pc.h b/libultraship/libultraship/Lib/Fast3D/gfx_pc.h index 3be10a01..34fc4fcc 100644 --- a/libultraship/libultraship/Lib/Fast3D/gfx_pc.h +++ b/libultraship/libultraship/Lib/Fast3D/gfx_pc.h @@ -2,6 +2,7 @@ #define GFX_PC_H #include +#include #include #include #include diff --git a/libultraship/libultraship/Lib/Fast3D/gfx_sdl2.cpp b/libultraship/libultraship/Lib/Fast3D/gfx_sdl2.cpp index 42ffd69e..87940a1a 100644 --- a/libultraship/libultraship/Lib/Fast3D/gfx_sdl2.cpp +++ b/libultraship/libultraship/Lib/Fast3D/gfx_sdl2.cpp @@ -13,6 +13,8 @@ #include "SDL.h" #define GL_GLEXT_PROTOTYPES 1 #include "SDL_opengl.h" +#elif __APPLE__ +#include #else #include #define GL_GLEXT_PROTOTYPES 1 @@ -119,7 +121,7 @@ static void set_fullscreen(bool on, bool call_callback) { } static uint64_t previous_time; -#ifndef __linux__ +#ifdef _WIN32 static HANDLE timer; #endif @@ -134,7 +136,14 @@ static void gfx_sdl_init(const char *game_name, bool start_in_fullscreen) { SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24); SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); -#ifndef __linux +#if defined(__APPLE__) + SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG); // Always required on Mac + SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 4); + SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1); +#endif + +#ifdef _WIN32 timer = CreateWaitableTimer(nullptr, false, nullptr); #endif @@ -271,7 +280,7 @@ static inline void sync_framerate_with_timer(void) { const int64_t next = previous_time + 10 * FRAME_INTERVAL_US_NUMERATOR / FRAME_INTERVAL_US_DENOMINATOR; const int64_t left = next - t; if (left > 0) { -#ifdef __linux__ +#if defined __linux__ || defined __APPLE__ const timespec spec = { 0, left * 100 }; nanosleep(&spec, nullptr); #else diff --git a/libultraship/libultraship/Lib/ImGui/backends/imgui_impl_sdl.cpp b/libultraship/libultraship/Lib/ImGui/backends/imgui_impl_sdl.cpp index 61e6d99a..0681a268 100644 --- a/libultraship/libultraship/Lib/ImGui/backends/imgui_impl_sdl.cpp +++ b/libultraship/libultraship/Lib/ImGui/backends/imgui_impl_sdl.cpp @@ -66,11 +66,15 @@ // SDL // (the multi-viewports feature requires SDL features supported from SDL 2.0.4+. SDL 2.0.5+ is highly recommended) +#if defined(__APPLE__) +#include "SDL.h" +#include "SDL_syswm.h" +#include "SDL_stdinc.h" +#include +#else #include #include #include -#if defined(__APPLE__) -#include #endif #if SDL_VERSION_ATLEAST(2,0,4) && !defined(__EMSCRIPTEN__) && !defined(__ANDROID__) && !(defined(__APPLE__) && TARGET_OS_IOS) @@ -865,7 +869,11 @@ static void ImGui_ImplSDL2_SwapBuffers(ImGuiViewport* viewport, void*) // Vulkan support (the Vulkan renderer needs to call a platform-side support function to create the surface) // SDL is graceful enough to _not_ need so we can safely include this. #if SDL_HAS_VULKAN +#if defined(__APPLE__) +#include "SDL_vulkan.h" +#else #include +#endif static int ImGui_ImplSDL2_CreateVkSurface(ImGuiViewport* viewport, ImU64 vk_instance, const void* vk_allocator, ImU64* out_vk_surface) { ImGui_ImplSDL2_ViewportData* vd = (ImGui_ImplSDL2_ViewportData*)viewport->PlatformUserData; diff --git a/libultraship/libultraship/SDLAudioPlayer.h b/libultraship/libultraship/SDLAudioPlayer.h index 05e4befd..0bb6d366 100644 --- a/libultraship/libultraship/SDLAudioPlayer.h +++ b/libultraship/libultraship/SDLAudioPlayer.h @@ -1,6 +1,10 @@ #pragma once #include "AudioPlayer.h" +#if __APPLE__ +#include +#else #include +#endif namespace Ship { class SDLAudioPlayer : public AudioPlayer { diff --git a/libultraship/libultraship/SDLController.h b/libultraship/libultraship/SDLController.h index fbffa478..2493efbb 100644 --- a/libultraship/libultraship/SDLController.h +++ b/libultraship/libultraship/SDLController.h @@ -1,6 +1,10 @@ #pragma once #include "Controller.h" +#if __APPLE__ +#include +#else #include +#endif #define INVALID_SDL_CONTROLLER_GUID (std::string("00000000000000000000000000000000")) diff --git a/libultraship/libultraship/SohImGuiImpl.cpp b/libultraship/libultraship/SohImGuiImpl.cpp index 674d4970..41e8b9a8 100644 --- a/libultraship/libultraship/SohImGuiImpl.cpp +++ b/libultraship/libultraship/SohImGuiImpl.cpp @@ -137,7 +137,11 @@ namespace SohImGui { void ImGuiBackendInit() { switch (impl.backend) { case Backend::SDL: + #if defined(__APPLE__) + ImGui_ImplOpenGL3_Init("#version 410 core"); + #else ImGui_ImplOpenGL3_Init("#version 120"); + #endif break; #if defined(ENABLE_DX11) || defined(ENABLE_DX12) @@ -1327,6 +1331,8 @@ namespace SohImGui { #ifdef _WIN32 ImGui::Text("Platform: Windows"); +#elif __APPLE__ + ImGui::Text("Platform: macOS"); #else ImGui::Text("Platform: Linux"); #endif diff --git a/libultraship/libultraship/Window.cpp b/libultraship/libultraship/Window.cpp index d82f25e5..82506bd1 100644 --- a/libultraship/libultraship/Window.cpp +++ b/libultraship/libultraship/Window.cpp @@ -18,7 +18,11 @@ #include "Lib/Fast3D/gfx_sdl.h" #include "Lib/Fast3D/gfx_opengl.h" #include "stox.h" +#if __APPLE__ +#include +#else #include +#endif #include #include #include diff --git a/soh/.gitignore b/soh/.gitignore index 5920cfba..3c7bcce3 100644 --- a/soh/.gitignore +++ b/soh/.gitignore @@ -18,12 +18,16 @@ notes/ baserom/ docs/doxygen/ *.elf +*-arm64 +*-x86_64 *.sra *.z64 *.n64 *.v64 *.map *.dump +*.app/ +*.icns out.txt shipofharkinian.ini imgui.ini @@ -404,4 +408,7 @@ ZAPD/BuildInfo.h cvars.cfg DebugObj/* -ReleaseObj/* \ No newline at end of file +ReleaseObj/* + +# Junk from App Bundle +appsupport diff --git a/soh/Makefile b/soh/Makefile index 70670f20..43140dc9 100644 --- a/soh/Makefile +++ b/soh/Makefile @@ -1,9 +1,11 @@ -CXX := g++ -CC := gcc +CXX ?= g++ +CC ?= gcc LD := lld AR := ar FORMAT := clang-format-11 ZAPD := ../ZAPDTR/ZAPD.out +UNAME := $(shell uname) +UNAMEM := $(shell uname -m) LIBULTRASHIP := ../libultraship/libultraship.a ZAPDUTILS := ../ZAPDTR/ZAPDUtils/ZAPDUtils.a @@ -17,11 +19,22 @@ LTO ?= 0 WARN := \ -Wno-return-type \ -funsigned-char \ - -mhard-float -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-strict-aliasing -fno-inline-functions -fno-inline-small-functions -fno-toplevel-reorder -ffreestanding -fwrapv \ + -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-strict-aliasing -fno-inline-functions -fno-inline-small-functions -fno-toplevel-reorder -ffreestanding -fwrapv \ -CXXFLAGS := $(WARN) -std=c++20 -D_GNU_SOURCE -fpermissive -no-pie -nostdlib -msse2 -mfpmath=sse -CFLAGS := $(WARN) -std=c99 -D_GNU_SOURCE -no-pie -nostdlib -msse2 -mfpmath=sse +CXXFLAGS := $(WARN) -std=c++20 -D_GNU_SOURCE -fpermissive -no-pie -nostdlib +CFLAGS := $(WARN) -std=c99 -D_GNU_SOURCE -no-pie -nostdlib LDFLAGS := + +ifeq ($(UNAME), Linux) #LINUX + CXXFLAGS += -mhard-float -msse2 -mfpmath=sse + CFLAGS += -mhard-float -msse2 -mfpmath=sse +endif + +ifeq ($(UNAME), Darwin) #APPLE + CXXFLAGS += $(shell pkg-config --cflags sdl2) $(shell sdl2-config --cflags) $(shell pkg-config --cflags glew) -framework OpenGL + CFLAGS += $(shell pkg-config --cflags sdl2) $(shell sdl2-config --cflags) $(shell pkg-config --cflags glew) -framework OpenGL +endif + CPPFLAGS := -MMD ifneq ($(DEBUG),0) @@ -41,7 +54,13 @@ ifneq ($(LTO),0) LDFLAGS += -flto endif +ifeq ($(UNAME), Linux) #LINUX TARGET := soh.elf +endif + +ifeq ($(UNAME), Darwin) #APPLE +TARGET := soh-$(UNAMEM) +endif INC_DIRS := $(addprefix -I, \ . \ @@ -56,26 +75,52 @@ INC_DIRS := $(addprefix -I, \ ../libultraship/libultraship/Lib/Fast3D/U64/PR \ ) +ifeq ($(UNAME), Linux) #LINUX + INC_DIRS += $(addprefix -I, \ + /opt/X11/include \ +) +endif + LDDIRS := $(addprefix -L, \ ../libultraship/ \ ) +ifeq ($(UNAME), Linux) #LINUX + LDDIRS += $(addprefix -L, \ + /opt/X11/lib \ +) +endif + LDLIBS := \ $(ZAPDUTILS) \ $(LIBSTORM) \ $(addprefix -l, \ - X11 \ dl \ bz2 \ z \ pthread \ atomic \ + ultraship \ +) + +ifeq ($(UNAME), Linux) #LINUX +LDLIBS += \ + $(addprefix -l, \ + X11 \ SDL2 \ GL \ GLEW \ - pulse\ - ultraship \ + pulse \ +) +endif + +ifeq ($(UNAME), Darwin) #APPLE +LDLIBS += \ + $(addprefix -framework, \ + OpenGL \ ) \ + $(shell sdl2-config --libs) $(shell pkg-config --libs glew) +endif ASSET_BIN_DIRS := $(shell find assets/* -type d -not -path "assets/xml*") ASSET_FILES_XML := $(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.xml)) @@ -114,6 +159,14 @@ O_FILES := \ $(CXX_FILES:%.cpp=build/%.o) D_FILES := $(O_FILES:%.o=%.d) +# Apple App Bundle +APPNAME=soh +APPBUNDLE=$(APPNAME).app +APPBUNDLECONTENTS=$(APPBUNDLE)/Contents +APPBUNDLEEXE=$(APPBUNDLECONTENTS)/MacOS +APPBUNDLERESOURCES=$(APPBUNDLECONTENTS)/Resources +APPBUNDLEICON=$(APPBUNDLECONTENTS)/Resources + # create build directory SRC_DIRS := $(shell find . -type d -a -not -path "*build*") $(shell mkdir -p $(SRC_DIRS:%=build/%)) @@ -157,4 +210,39 @@ $(TARGET): $(LIBULTRASHIP) $(TARGET): $(O_FILES) $(CXX) $^ -o $@ $(LDFLAGS) -fuse-ld=$(LD) $(LDDIRS) $(LDLIBS) --include $(D_FILES) \ No newline at end of file +-include $(D_FILES) + +appbundle: macosx/$(APPNAME).icns + rm -rf $(APPBUNDLE) + mkdir $(APPBUNDLE) + mkdir $(APPBUNDLE)/Contents + mkdir $(APPBUNDLE)/Contents/MacOS + mkdir $(APPBUNDLE)/Contents/Resources + cp macosx/Info.plist $(APPBUNDLECONTENTS)/ + cp macosx/PkgInfo $(APPBUNDLECONTENTS)/ + cp macosx/$(APPNAME).icns $(APPBUNDLEICON)/ + cp $(TARGET) $(APPBUNDLEEXE)/soh + cp macosx/launcher.sh $(APPBUNDLEEXE)/launcher.sh + clang -ObjC macosx/appsupport.m -arch arm64 -arch x86_64 -framework Foundation -o macosx/appsupport + cp macosx/appsupport $(APPBUNDLEEXE)/appsupport + otool -l $(TARGET) | grep -A 2 LC_RPATH | tail -n 1 | awk '{print $2}' | dylibbundler -od -b -x $(APPBUNDLEEXE)/soh -d $(APPBUNDLECONTENTS)/libs + +macosx/$(APPNAME).icns: macosx/$(APPNAME)Icon.png + rm -rf macosx/$(APPNAME).iconset + mkdir macosx/$(APPNAME).iconset + sips -z 16 16 macosx/$(APPNAME)Icon.png --out macosx/$(APPNAME).iconset/icon_16x16.png + sips -z 32 32 macosx/$(APPNAME)Icon.png --out macosx/$(APPNAME).iconset/icon_16x16@2x.png + sips -z 32 32 macosx/$(APPNAME)Icon.png --out macosx/$(APPNAME).iconset/icon_32x32.png + sips -z 64 64 macosx/$(APPNAME)Icon.png --out macosx/$(APPNAME).iconset/icon_32x32@2x.png + sips -z 128 128 macosx/$(APPNAME)Icon.png --out macosx/$(APPNAME).iconset/icon_128x128.png + sips -z 256 256 macosx/$(APPNAME)Icon.png --out macosx/$(APPNAME).iconset/icon_128x128@2x.png + sips -z 256 256 macosx/$(APPNAME)Icon.png --out macosx/$(APPNAME).iconset/icon_256x256.png + sips -z 512 512 macosx/$(APPNAME)Icon.png --out macosx/$(APPNAME).iconset/icon_256x256@2x.png + sips -z 512 512 macosx/$(APPNAME)Icon.png --out macosx/$(APPNAME).iconset/icon_512x512.png + cp macosx/$(APPNAME)Icon.png macosx/$(APPNAME).iconset/icon_512x512@2x.png + iconutil -c icns -o macosx/$(APPNAME).icns macosx/$(APPNAME).iconset + rm -r macosx/$(APPNAME).iconset + +filledappbundle: appbundle + cp ./oot.otr $(APPBUNDLEEXE)/oot.otr + diff --git a/soh/include/functions.h b/soh/include/functions.h index 955a47a5..78986cc8 100644 --- a/soh/include/functions.h +++ b/soh/include/functions.h @@ -60,7 +60,9 @@ void Locale_ResetRegion(void); u32 func_80001F48(void); u32 func_80001F8C(void); u32 Locale_IsRegionNative(void); +#ifndef __APPLE__ void __assert(const char* exp, const char* file, s32 line); +#endif void isPrintfInit(void); void osSyncPrintfUnused(const char* fmt, ...); //void osSyncPrintf(const char* fmt, ...); diff --git a/soh/include/z64item.h b/soh/include/z64item.h index 6cb5ec2a..b42a2efc 100644 --- a/soh/include/z64item.h +++ b/soh/include/z64item.h @@ -501,7 +501,7 @@ typedef enum { /* 0x72 */ GID_BULLET_BAG_50, /* 0x73 */ GID_SWORD_KOKIRI, /* 0x74 */ GID_SKULL_TOKEN_2, - /* 0x75 */ GID_MAX + /* 0x75 */ GID_MAXIMUM } GetItemDrawID; typedef enum { diff --git a/soh/macosx/Info.plist b/soh/macosx/Info.plist new file mode 100644 index 00000000..af3ea4de --- /dev/null +++ b/soh/macosx/Info.plist @@ -0,0 +1,35 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleName + Ship of Harkinian + CFBundleExecutable + launcher.sh + CFBundleGetInfoString + 2.0.0 + CFBundleIconFile + soh.icns + CFBundleIdentifier + com.shipofharkinian.ShipOfHarkinian + CFBundleDocumentTypes + + + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleShortVersionString + 2.0.0 + CFBundleSignature + ZOoT + CFBundleVersion + 2.0.0 + NSHumanReadableCopyright + Copyright 2022 HarbourMasters. + LSMinimumSystemVersion + 10.3 + + diff --git a/soh/macosx/PkgInfo b/soh/macosx/PkgInfo new file mode 100644 index 00000000..8f7d3664 --- /dev/null +++ b/soh/macosx/PkgInfo @@ -0,0 +1 @@ +APPLZOoT diff --git a/soh/macosx/appsupport.m b/soh/macosx/appsupport.m new file mode 100644 index 00000000..a7df45e6 --- /dev/null +++ b/soh/macosx/appsupport.m @@ -0,0 +1,26 @@ +#import +int main(void) { + NSString *appSupportDir = [NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) lastObject]; + //If there isn't an App Support Directory yet ... + if (![[NSFileManager defaultManager] fileExistsAtPath:appSupportDir isDirectory:NULL]) { + NSError *error = nil; + //Create one + if (![[NSFileManager defaultManager] createDirectoryAtPath:appSupportDir withIntermediateDirectories:YES attributes:nil error:&error]) { + NSLog(@"%@", error.localizedDescription); + } + else { + // *** OPTIONAL *** Mark the directory as excluded from iCloud backups + NSURL *url = [NSURL fileURLWithPath:appSupportDir]; + if (![url setResourceValue:@YES + forKey:NSURLIsExcludedFromBackupKey + error:&error]) + { + NSLog(@"Error excluding %@ from backup %@", url.lastPathComponent, error.localizedDescription); + } + else { + NSLog(@"Yay"); + } + } + } + printf("%s\n", [appSupportDir UTF8String]); +} diff --git a/soh/macosx/launcher.sh b/soh/macosx/launcher.sh new file mode 100755 index 00000000..ef22983d --- /dev/null +++ b/soh/macosx/launcher.sh @@ -0,0 +1,9 @@ +#!/bin/bash +APPPATH="${0%/*}" +cd "${APPPATH}" +APPPATH=$(pwd) +APPSUPPORT=$(./appsupport) +mkdir -p "${APPSUPPORT}/com.shipofharkinian.soh" +cd "${APPSUPPORT}/com.shipofharkinian.soh" +cp "${APPPATH}/oot.otr" . +${APPPATH}/soh diff --git a/soh/macosx/sohIcon.png b/soh/macosx/sohIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..736334dc91356a9af09b4f32907da2c593745fab GIT binary patch literal 142622 zcmeAS@N?(olHy`uVBq!ia0y~yU||4Z4mJh`hI(1;W(EcY22U5qkcv5P?sCpi{vP?@ z@ALT3UBBPWdpB?1yPeCQ+vWDJ-za;0 zD))i$-t<;hruT9!yb}b99GP~$vG`b9o%UvDdeyIeDxq(ed#SDriJjzi_f_7?ufNqc zt;^aPVjJ|b^56OYKe-u3!3YWg%dWo+45=R_IT_BLew5G7u=Ga}cY^JQo6HOjf+x8c zvYYfDGK4jq7hqtx#_q|?VEXv9b%TQR+s%#Vtr#34q;)r_1u`sX&_C+%I;#J>{d`LX z2A1f4hq+G}E+qXh;>)R7{nakM`#ithVg`n@S-MTHul|x%VQb*+(!YM-Sm62ZpS|R> zP3@z9++kucnRS(CM)(5Krt!7|2yC}}_Q<2>A zYx6UgJYi}uJup3Mf#sSfd!@dmzup_G+rRVD{7C8*g#E?(H=xzr&90V+zo2+ENgfe6Dsc)7Pna zyTv>i|IKC0?$K{OaBG!&Wz7u+8=nR7>vN}7S1&!js&w|#2gU*nQP->V7KWd{_`~4f z@2tGdcdl=~^Oj)^LwsH1)$NxS)LT0Kii+p|ZKJ*S+=lPhciqi;Tr9$HElioU>nm4Y zxDnI+jO*Ez@3y|-XDB@&9-dITCM9I|wFdh)wO{Y)y(wP%beq@h^(nir9(k_8ux70r zC*NzqGwYVf><@Y%|7~AYe)#Fn>r1NF-e%zF)L-ZD_loh0c)tyCr=L!>akE{=ZtHgA z_n|+3yguyQQTTDYt1646^zEu?zr%0kSuXv#HD>+OPet|XE9D9X@~dcCP@A$V%Ire^lan$unGI;MyO?Qhv zNZ#D@<96aw4!v3Tv;Og3uYOW*+WfER`RTiAZ=No=9`kNn)I0VE2gOws_H5<&mCgAj z{P&()pSh|n-|W*Yk6wEF^vx6Vb8GULGeV?I1y)}Vs{cCg_Wnr+>errMZM!~e{q9S- zTkr61vDxRrboHv#4}J3&>!0qqv~BfNi4|qhTdzw$tJ?Wi=3~nAdpk3$w=7P#SU5#( zql>$akhkln+u5_$NnUjE(G2}jdAH;Elw~h}zMi#AdX`*gm3;X1#h&l;L%g~*+S4kw zbN^oJq`5TPtH1T;Ho5yDCcgchK~){T+Chs-mae>Uil6sXfS0RtPQ>4dCc2UB?icSq z-@HkDS%^#L=ls(g8%?kEWkz0W>ezZ|`{dNfYl}Lju03wNT_-zE=k%KM$ul>XR=O>l zy6woRD-SmwF*@sdI_h3>Yo&5jQmU@;?u^zyGjzVsST@r)dfH4qyA7$Sn_upnl)GuB z>uDq3-&5`%JCkO#Y^I<1_LFJGFDt99y+8erc%~*U_DoGIZTUJ~y)*u4$MyH`$*>Q3 za9Z=b(e(OSTc&?c?}c6l@wG*rYvvTd@UVlIR z>idz`Uo1*1XRuZKMzDVUvnhW0@m1M>0_U@DekCWeHfzFDySu;s^JRN((s)pAvHz~t z-9=x1TJR^QGwEEudCO>X8DHWxKc$l#}>Rf*Nn&Yg8L^7NT=X`5$io<5_O za_RGR3B=A~{) zn$;!yoHbK3W?fw8p7eI_?C)jACdW=Zw{LCi#R~Uom1%D_ct0&wzP0S-L_Xim?r%$X z=R}|Gzw5zqEyrm3IJsk&rzwl$}$uq?5x=+CdG)7SgQ+MCahn_+lYlP7U9!&JTB?^l1V zy71I%yXVX$4gZTSl-dh1W@M@`TzHkG`8nS2g1$D#v%~koPM2Q%+Of>U`K|rWzQ%cH z7vC0MIZtr+m$?2T>`E7(JnNhH@STTAri-wwr?QZD=B|k+&hlP=?3Kw`EmyMo|6)dl z1&t9qB{`SfeV=fyXqnWE%*$tVmWe-4OH0xQNs}l|@Gd6^6jcTmFar$c0pRDh!ci-*z z-SxZtSbojn{MO4&bhfWXYTp*|s&XoAoKpDw_P?X|ChlGC z=a#&3Ud5*09xBsp7MbjwTmO`SVS!khS#4cn-lvNzH(uXoYi(Qh@8|n}>(k}_->Toa zr|ChR>dA(uA?!c&*<<;uNB%G^)xnxVkTM^)l&` z8GCX+FMH@5ExdBx+FgRa8Ez??uViYPF)&<+nsVt@k4H`TqP_ZAE|VwU{&v6AMyPlG z*5v{zM%+WBX_3zP@9Y1R{d*mERgV9LzzPNjZH@2m z_gp)$KkCE&Nec0+xB0FrHYj@Zu3zruo7+`Rmlxmd4EcWU-r3*37I%J=^S!)yR$7VB z2WEzbt4T9&W>%Xr8PA?KfBxJJ(gOQ-8JPccsVe;T=*H3K^XuPe?=L=PVtlo!=Kq$a zsVeMCPNjZi{hFxFecik?+ zvln;v&E`>_w(0rX=hw29@3v!Li144LI&H?Z%h3l+E`K&oU#_nA@9UvAN3`{A|LuHV z^ZN7ucUuJ-{}u@|ot~@pV82Ys-dk@SE`uz}SlamC%k9@{)^Dlr!)L9N-SIQlS^fTx z&h08eca=YeoPTY4_r>FQ4F-k`x0kIm-^cI%@aO-GUH@)AG%;Sh4-!F~B7-VO!t_Q#y|Ru_{cF}1vy2vX zR$lf=zr<}UWZ)5$x8TVB+!>QuYW{zY|5jhV=8Ns5#^4-|KhDS81kFBtkLR;~6o0y7 z-~VlsUVpn(^VU{*<6d){8t?S`+jjpldw*NLce`p&#-i}cy?S2185s_=B}cyWNqhL| z%a2y>&B5Wz(vRue6~4TBeE+8-*Z;r1Y&?1T(^|*@GadU@&6G61H-gaOPT@ zKb*ARU-a(fNv_8Fy^|S(R22nE_TI^La9+&LFe^~^^Pj_PUmTaK7Jo~9`L=QUSKhbz z(t961l-~As_v?NC*1G3)sqc30^{Ba!_x1RG3kHS;g)*D9Np33F?%LO6Y}uRcT~+q# zR7h3fwNJI}+_$w4)ZeY2KV@gk+V+O;W^5rBLw>M#r)`>3^#AFZ_v_6L$ydyKCDU=| z+k@qC^IyqW+`75Fbj$Ag?|I5X@&Zyn85tN_(juQVMTC{rmHl}$wb;M*|Dn_U|JHvw z^kr*)-MjmHB9BO&9&K-0Iij=<7Z85kH!6FO5Pr*)WGS3dRbulZ>I_xSOBpKhN|yY%_y1kQ#c z&&H`f{2$_{32bNPZB$_G&D+_yzlG=9RD%OgryZ!PROmzPxE()Cb+u&>b zx~+HY-^}?p>GZ5+*~{EGc?U1rUaYvSrY!XOc|1P@!+~ELbg~oc(*9gM zy}s`M>+a9SkI&nFvj6{kbN`>0tx{S{S##wSLYNoaoXFs?c;(h7^-GKYOlSFh@3gbE z|F^qe`{wW7nSJ@3`EsjY?-!ntXJA;M7@1~P{P)t#_kXWFuX}&|f5n?epMz6{7`Cb~ z`ou4Y*Oh#*Uq>;I{hA0TgUO_-{$KjpTkcDKysmt!y6)3?If*-UhnJTq8y(p%#K6$- zY(m_OpYvv(?W_G<{Qp;c?Q`z`4@KiY?4K0JsGTe1A;j>yPmUo&WGl=6sn5QIN1fk) zN9O;buP)K~MdvTFw{3sB|Mj-Fzu)h(pZDg@;wfDp*RwD%EQr(yoOMranyBc+l`A)1 zUzcvo9d>{raO*#Ypv36)QB}+gue<77BJ#h=d|jVu&RsnDWy4Cw#O3T)ZfRTqHSG?pQetfQ8kBuI2TmN?N zyR%IC;=Vg6hC-mR4C%Q-hDsZsbVP(zC@n z+5ZnVOnYVeN`BYu{r^jj-~RXW#Lbi|DAz>;lyU0;#-@}>^#2z-*5ZRPwjus+;6&hX3k6&ho$!zo(eG@ zn!;cr#H6^U)!_8fmfSDlmpkguKbZH1z&uI2Fu6xTES zPhGh|x0Z3kvLDA=uZnEb^tv(W|0?BwKQDjW{r}*^$LoJT^e_4P-e#HR-nsjY7#J9w zHf)-CboH{CGwYwO)c?0V|NqtX{~sQ`d|#G7kT>A;rbeM6FNUcME3AbWB6zo+`~E%d z`Y9F0RcwE~E`Pl(_vhte^|=3w<-1)byPMcvIvy|1z`$@i<(yyq@7d@7Jpcap^Tuxd zxX2l^Bev+Qj;U{0u$1|Z`we6t;cox8e}3(g`nZ+JstjitH$Hp8*if~~?7sb* zPjye3{;I0q?U0(gH~R7JzB~0f-#4<~pPTXeZua@RP=f->@)>;nBa`&{;wyh{y?Ii* zIFxPEC#|!er#HMk70drw!a?JYv(w%+TW-ehEd8rJ?_J&Z{kv*YzFc9ywR`&;pC!A> zKjnjR!Rmu1#>Ut6Z2oV}|8sQxzguUXEIs`^?$5I==~wJCvK*FXGG3j=EuzJ^L5gEq z0Dofh{{<`#y1oCt+=;38HSVeSa@YRn{(Ji?e}9}W8W^&Pfq@~xcShQ?BD2jFKg;L; z-CzIbqW<4w-C=nv8>)P`CusRHEj^U$puyr7vGOU~|EW!Xi@bklUaY82d4ABmcS`23I0}|v0s6Kf#KS$+tLcQ zg>T<#)@M37Y7#s(Q)V;)Igh|91EJ_Rp{XbL(gNaofVmrB@l7^xA*UlP!@K z;NoPsvP$k?{fwge=bwDP*Zz6HEdTFp{B4t(552RNZU1FkEBdWN6uX>A`*b zANG?}c;N2q!LVS`Rla}Ro(&P3jEfH2{{PUpw)%aA$8}}fKcNf^3>Usk*;}wxtY6(~ zyKjv3?>|4DPFKG>{mK7%d*@vIQ{>4oiAkfIg+WX6d*Y@^5B8T_v7cqI?cLtRkB?Q` zeS4Q&{`Z5r^2H+t^@0ox3^^>{O0GpLO3q%iHoqj}`pLJ+;`8gX{+xPQ_u|Ld0C*ot>esWX3u$9ivg7aMq>Uxne6 z5+lQUQ_g?pxt2EyzwfSlnH>H7?oY+)PLY31pvHpeEV-9bcj_KJnHFmQn{Xm{k z+}>`njC z(qS~ED36_ifgx&kP@7=q*&~xJSN^KWDNr%PV81lP zM9BMFzJ0~{ea8OvPo*ylPglF^dy4gA;zSk)P9cW1tLGj3KPm8k#VYHn-_G{c-#d5z zKe)a;|5oMdOD4PiGBYqRh`w+uNqFy@Z*Nof@TPiihLMqRW#+Ck*Ak_ft0uBAa5jiN zd;jVE-k8jt`wP7P^2&SN{qqHEJZW+Y0um3+RiZt~?>c`ugF|98rJ zo;+vpJN-VSIYn9m6Ywr4=X2s|GT(; zjr7EOVfSx>8dhsfe7%oMo_pK<+niT5KTq!ecka)bua(~wo0!U0JC&|yx#K6apmicc zhVECMf75lonj2MR9p7#Dac2C@x(DyfB_`gu7Iy#UjS8LYo!-y20%f8Y860{So$R|f z@nZ1A&-(SR4exfWJi7CwYBr0W@O_^s5zdBdL9h4xzmWR>+sj`0ALabtc;Eh=u+I2X zzgqfJ_4B&s57xUqz1PrN_G0bz(@(Wo85l|zx`ZrRTmJpgohR`cOHXg*K7V#sfAsss zy6*4A9GMoBhRpsxfB(9lLJU_={hNEb-M_Zreq;2#-qL zeA+GX>gTNK`xLYk7#Je-L|?wTztMbJ#(SIZm$vWUZegE0t#U!p+5dmoE0-~CF%V){ zyKvg2|3$w4ncV;NW*oY)>GiWl>-*pI|7Avhe_ zeq0a!I*}`qEOqF}!$+Sg7h(S7j z@3X)9o(wKYCr{jc|7Yp%a@n2#eVcFh*)N%56jhtPxHFVz+Fr)`nYnW^ZgW}WL>-;4 zc}Kh^r&Nt?&4&%r>--x<3$Csz(E2XnxO~C%@VBlL1sE6>NG;7g`S9-cH}iH>efzlj z`MiBWiJ$)*w0?7O>f!=!#f0qKtIz(0&thAk9<+BNv-$qt?NgVPZ@y+fE4JWfy~Bfe zp@e8g@zWvqS1#D?)xZ5*@rI)9t(+ZevphQwTo>H%chV9^-Da+T>aX%$-rTp@QCav= zv!(to1H+bC9y&X}Kl^Q8c-#2?zkL5+n?48?2FE>|J%iK6hatsauToq z<`@0&d-lJ({}=xMFmazQ`)7`m5eWR3<&x-) z;+a#ubouAimZEs%Wy$6vtx1SslSAX&?y)K$>&fht2tiGFndYWvnsh_tm z_|n9Xbw}c#YQMg-J$B)RbHRn-8;ulvJooEQd{`-aZBp*3P>z;|cJAg5+doa`4wk%g zy7l_w+PBkoul>F?>fphBsTZ{w7hJd3{C;Zx^X7ej z{d4ESXYf5(|L?1I`Gs_?18hf5yge4O_RIdL$NM*B|9x-wE#dsLx9WK^H;aE;PYs$F zcK>2VkvH4_zl|G~v+Ps(U|y{LKlOXb?a%x5&G&z3U$kb;l4t8q^mW&(yQPJ#D|s`m z)nn5SHr`cs9HI}V%|85I`ssQ5{PQ05@4n8MH~Iap?OX@e6=~euRuROf0A5+%IVk`t#fIbClKex|bgHnIGQs zPP64~oK*QiNjcg7M1S2+W}%a3tXRJ+`@Nw%$|vqtjn}_NPxMc@+!nJgeczYyd^LlY z`=!mr0GSBV* z^W*vdm+5t%o9By8%sFs!%A=hxXWkb#Iq%POZmE|Nqi@@KKWTs6#s3{S8UC->zxzqN z*0*i)zZduS^vwGevif~OjzB6?di{s|O81|4SsVh44*aVxDvYuFQ!YO_H(Xv@Ch{|9 z!=I-guT1#!^6meyb6;hruaPTmPCU!oaax6eEAzCv5wveJPv$=j6N%_O(&FmYwr5F^;Z@`pGZw^ru4L&f<$aJFo3?KKJdu z!ul`sr(EB~e==u{yOEpEr79;MTcv5AcWs@j&UAu_fgx&U<~f^BOYi@! zdtvua-cXpP!cgP;R%f%spV>z*m7fl`%inq1Z4-CV_3r)Z>+8Rjt2~-=_<8@jQ#X&z z=9$r5cH+M5kHE^L=eJX|EH#q8UkuSQ_@QeZsIPE<-zzDi_0s=8wMUn<8u`AQv0H^% zSpUSe?EaGcx<8@Ag!SlYJYnbi}-nn%X_L`f1j2 zzL_3;r(BW(j@@okUG4fd=-8v|_)Yqsrk{Q*8d}80;Gk`2+`WF^w@2pt|Fzoxc(UFv z#@6=PY8H*@EF7y?1ST;^OZzgIuk$KBk~sUHP-G<$EJI4T|3WF1kGPyv5=dt?ni~fo?u)e4y!Fvx#Ig3 z^>g<*$KCp5we#B6<8#FnRD+pL?R&~3%rI}#ze!$fo0l*hkb8LF?Awl>xL>rHKmvgV~QNjHS_s$B3`}c=)zWRLs_t}OB z#d`buzsxmeG33d7)%&YIXWN^7srP%o|GVMd z*VAT}o_Zu-_v-$sZyVLSs@*e_jy_VFxFXhla`lazZ3Wxs`Fdaf5-GX!Psbbk&(n=c zzE&Fvzn-=-Wxw>7u&Cz!H`c5-5uB*IHf)3b?ejN%Q?{IqpFG>|zklWF$NSZ`@A-5; z<@(k49_P=j_PgYilKDWs;)%J^q9o72k2_XmyjybgPVsXQ;iZ}9f;vv+a?g<8^1ZGi zBg{?crRU38mimXU?^EBcU+4QwIk#wIcKpNL$0zYi|Nqi)AdA6n5d*_o&+EPCA~wCg zg1be7QMX5`PA*p>W2!u89%z;kyyq0Ur69bxbENnBanzh^jC%-}%#KpRaM_i~rGesWCo&(f@UOcQqJ zS*~VX@nzA9GfwNw8B4Z`&`F zZWPK*x^-~#6t*2@q79Q-PNW>&Qh#rI_-Et)>cO+09$mQm$(I9bi&kc@?^(XBW97@G zd%5p4+?UJkU%Gs0?!#GI&h}eAk1d|QB>!3HO}lS9dV1`YXHC_WyZV=tVX5`f@6!@H zGF`YC|9e$2RM;0xv96f!%`ii0=9Y+Wbz9==)pjpQd=#=LeBbWRb3a|#W`4SL-{PH_ zjICFhZEBf5oo`ZMU|?YF=Dyrt`)#}3AK~EZ=Y3;$f4CDdlf_}17gIx9gS3b(!>stF z`8)qz`oG{d(_|*Em$$w#m+udpGA-w;Y)|ir@;jTl#JPCC)$sn;@jnp1f^CB^^RkyL z|5cMX&)3w+$BK*kccpAz^hT3$W>3US*N^rK&&~W?^q718w8QEDV%C+sn^wHn{b}pj z@)I-fC7%h#kb$ly?_6!-p*UL zub!#<`o}YrcO@;i(>c+gtX~vfiHIZ1KG3?^y#b)wa)L zkmlxW=v^A~c)!7FhADIU?tEN$*tU7`_N~A8jan?Mjnni6w%t_y9lhR84OEHquK%;rM~z)&+RVujX<6EE{%Sz4b$1{=@XS-}C2JvAJ94*M3-Dw&%_0?7H`F@4j`*zD`x%=u~;!vwsiRFCE!5ncuK zXaBJ0)uii3j*BxaFn#H^W%=g(?Eg1fpU>Y{_3q{8eS&RIr+hQM zp4Y6vc;U{evwzRWUthjq3`#VaHFRaeHU48hr-I6JOKkcJh_AiXvR&w|M zq)Y#M)PI~mn_U0k%<{Q+pU9Yg?)_Zjeti=sgMPKiy?IIk8-*Ds-YMO^cweR-@0RH? zVLRtypMK6<$CiJW{`#1y zhO-2M8D@oFklqmFv>?XS;iO3eD6zIbUiq$hR@#>>zxdp`HMYDJKYyv}-b;p~S`4Sn zKgF+LTVbAFw@>ku-ObZ4Q!ni_-;yf&{Hyii-}??+Unh6r)EBu7A-_Y)v%DKLb_YIq zw8vxHj!6^${;F1so3?J{=Ay*Qop*X$v+AGjWnyqRo&8$Q>gGl3OLlcnr@l1u{r4$e z=F{}Qe;Jk>n!ymvI4hvIKGIq3pK0uGOnKbhy4q4z^#eF@_RPc|F|$ay7u`ZQPJyH;)`x->B#aL1(~ zG@5C_&Athza~XGOCGNOXr>{=~hxvaQoxMca3xJrY>WgvYKUrKz#C#S(jZr7)+*b zSp5IrYthM!v&-*ns67AC{QjaTU0Xq^=+ildg60!337OOSjDBk|a;aZ;v;1ZH?6pQ% zMn;<3mo>M~?D$~*5j2AKM`-0c=h@rm-&mj77MCoPVCl(dq9Md^R{PA0`mH1iY{Z!P-ObMVf#YHi3}NX+OmJ+gZ}N${1I^c^}UbW`wM=2_O-1zMKD7=44=SQ2m(leC_u= z-^1?-U65XL=Ro4pwg#5Jz8x$M#Zl*8{GY_tko)`nt4>wx{LUjmi`VXRzIf`--N($k zPEI#r)#0_#Z92F0;mxzNrj{;a6q%&2$}96Z`eQjGLxSc~-nTnG&MVq`Fe`$!L90P6 zb;~cl458C+|HN|QyAxoy8?F_i0ehGqxXzXJY<;=oN#^=WBCf|E*t>Q>f+U zIf;#dA!JEN%9pnG`n;4c-`bTohAeSnZTP=SK9m6*2He6w^mpoBy*U3)-G_PG-I8&RC=|TKHK?a7FB$r3k-({*l@G39f{(jSP z){q%o0%=hUj`hNdj2C`1-HUN7{=d}c!~Q2{@7&zJwzlB)McG9mTdtPtZ3vm+V6?)B zA^Y5;~&xBC8ayYCM(bhf%*R<2#UulVArRXtMd_qP5yFzKDe)0>5V zKNV^0+rRKKYr)p}x(p1`U9Ti%YLA2F)PL=CxBon8z2pM>WhbiEwObZ_{<_>Tknw^| z)2x3}rT_A0Jy`hG;!E4Zc?U1{Z!71&fBluUFvsE|o5-It!q)lmX)h4vkKF0ju+Oc> z+laH~Jp;o6q1{{$-j)A7-LHPDs@Fp&HDo2z1cA#e7an*pn5^5?_wV-di^BOgmu6P2 zzqI9B*u9MoH+Ee3^hdnc)!cZ|o2?Q$@%j!73;~l}qTip*jcvXdvB;S}@{|99`$s$& zOxmaR{IlMkIcr_%_xCm4tKWMt`1*X7+qC9YG5ZM)28MvC%cN_+|2we1uHws)Xg+ox zrC;Yyo3iqF@lDXka8O~83cg|PJ>z2i^RrcN*2&xL%lz@-WZ3PA3{9qw1tV8J+I;N} zsF>OC$@$HJYsvN-D}VETKOTH{qZV`bQ#R#`Djp0b`!>Y>JFUk2ru2WidwzYgiqP_p z@(pUwJQ;3iGeo3)@XmZRRg!@rf`3+C4rq;MaP#fHw_H1!8m7#g_r|?w!NCn&4xhPZ zi3wc!<6ruvZwqga%uOvX*Qna%jHfpjGM`$Ob#ZmmK4*b9%nSki6Eli73;KSkc*JqK z{F6GPPQ1?~dyUOZ4$O<07JLjjJty?_p`9uB{B$l_PI~p?{{1d%;T6ZKOR| zn8(sEF}5HKH1SbtbtbFox$gJ>PtLlT2(H}tNW!;;tKnFf_XGJEJQWWP@2~V;wfO%I zxlZ2gzs|A9n7UqTdB}S-oH1Ze+Q;oo3<*y|?oVURfBEL_uiw}8Y|5|N?wGZ&(XC#! zVLz9H&GtaS3k@q6GISE3oo(@D%9vYwJ85^{o&TK+=bGEz@v;_Nq4VHJ@N31Dj{J$e z248DS=R1FV9B|W?VNX5B>2f{>hOA}M7uSB@_y7K$old2OybQBtI2(?Mn*5UA_T_$M z^EaM8HKmPL9F>Lc-+E;&e1PpiJZpm{0|UdA*z*VGNoQrSXr!+DJy9b=K!stJ|BFxm zo44T*I$3)p=#a@WM1uXEY1 zsEG#@l|=0fnxDcMTf@gM;l2Z>Dd&Z{;)IOL_fD>Rpi5aOnE-XO2t@45w)S zU%&O|{Nm{A%ieZAwB0TnFl%1cR#{G+c*6pfmK>jZKklEbFIX(T@Tr|sJhip1@_Ju!t3o)EM_@8aEQNGjL54rXmlAka9&F7kQa_-uF zmm5CJO5U>L>G3UlS2I{F{;#{=oq-|3)@w^_`}=B#%RL&s4CZ``ua-M7bDZjH)%_n| zbgTMsbosGKv4&mv;^}iW?&G)57F3X&mwo{AYeP@0+NcY#Rb3XlFkUQt%e`fXj zwfi+h1($lfVYq71zO3P~aQm8LPhT=Fm>KEzpOGPg`D4iU*Wc#XTt9K(#Km_4cmJRE z<#qry>VG&*z5Rvfjo%lZH+8kE-|HkC_2LV3{A>QXG2?<^{@1NRXQC_5N45U;WM*L4 zP&H+lYW}|eliy3-tUfOI{z39owFV#Ni~tn|spuJ>>YwvU^lq1~Qn`2Ul{HU<*?XnW z|L&QtD(FnUUiIlsp7L&uQ>XkHH+XPq_f&9_Z3cl}0j1}Oo~hOfe3jz#$W++Qpu zxA$#C^!0@QZuc_}%nEqg7yC1%;Z*M8Kb_65ER?PZgF2eoiWjf_Ubat{y-)pCRkGqT zMwVE2kY6ND?R7jg_2QH{i$0nyUS9v*@NUPqEvNXHU!{3k*3aBN_Y=#1)$hNr%n&&6 zNuyg1v>rorY39m_7jN@_<9Q>;VaU56DBoCrpUGP0Sw~IRE$C3$@MnMa<-T_hFW&yH zeQ^;_2jl4lUhI>nYNWUA+#I*h`qcdWy3;u}yuW;;NPoJ=5*M+{N;l86{qkO6Dw7|s zSQnos%5Y!IG5i1LnH&rbu}6gFF8-KuJx$P3+UNnl71#Qw;an^Vj2A4L+C-htZoJqV zp(2&-z2(z6=4r>Pc}}ta43hbHKK>iaKX1L?%ID6-1uj#)cEohz(biDOrF>n*;j7+E zjLKZpv%LqbsSuE6PzuC8M) z-OF7j$tI}=ExLVhpIo7qtWNdKy*_ShzBGBL>4vF2p0oPQq7!#|PQ00-@w?`tA4kfa zB@S;-c5S#XQeynrjPXe|D+5Eeqo!`*=h=3ZkEW{s|MhSBiPrN&~FSokX*66}3Yi zA3qjPI_1+{`cHIX$Zn7G3s$U)+qg{KRqVMdSM2NSGx9o)2rK2zU1U{t#H+NcOU*@T z;+@x<+`oulPP%!%u+DAGOwNt#;)ROy+|JC*G)!N9WY%1<(|mvS?mpSkaqXsdRr>af zjV&2vmz>RA&Ytg>HB)5fY_Z4<@#Wjzt)C7~WP9iRyIbCIsV>;XNO2Xzlzbfp4MB&X zgx-k^89q;$>i?IP{A=k%lch2BqrKRSM9c$ ze@mG^?$4Sp=i`MoHvem_+<0rZ>sQ{+P3vzv7WVFCd?QgFS3JYVx$74?jzkL1>UO8tMYVgHv+dee+t-%L(BIp?C<{kQu(=jGWeytn=x|MbU^ zX4Bv0`*c5@ zQBFF0{@J$8HLIWR7Js&NNlX|2iKjOjV*2<`ExpkY)5(9LVvD9nYAzWY_& zkIPSG7WVhh%Jwgxac1r@*E65jcceY{Wpi^WlM~sRT(8Gi^tI{4k5F~Pgqf$;cU(B@ zTF&J#VZlK*28InmULji+m#fGv@}D_@Bg039;ac3zpZ_22-WwI}d-a~JNdNL(?*qMD z&2ITIg~gtHsIh?SK={9Sj(?_iHSM>1|37+ZuEG^L{qS=ucB+1M3#!Y%-Tw6D#=k|^ zudes{|Hn1(o5t_c{@pn@6@N{ORZ6?YIpwI{>g~)Aa|+M>*_1KMLq%)SE0LGdA}{5| zJhyfF^mo_1-K?Z<_s%9Os{2$#j)R)=T%(ocCnB~iFW4pbcIxYkax+bXc3zJQihIA! zZOff0jj5h)m!B>@$NVYic-_x6J2j%y<0jf(K7X=r=Jci7#+tG>H9co=C&gA>wd`Ei zeQS&BlKZwd&oVDppQFh>$<%q;=il2u*0fkH75bO^`mUBB1H&83e;1nTe=pzvp{9e; z=X80r9A{&x3)6y+EVaqJXV%Q!@!Oq0bJn?A{||Wm5Mn%cVt@U<{npRpePXAa>Pqcz z$xhRIvHec5Zuq2m+H=D{y}ft)Nla2i-rirOmWKa2BxbrA`rE5dvQZCvpEj`~$i!Np z?Ae*~U8bgb(=NN@E4r*_m^%Bqe0R6kw$4|tgx97!ELp33J^R6*(@N9hg?AR+)7&}# z^5joRxAQ9Z)z05@VO#h)^|rZ_>OwbNYMlM~#DA{%%!aA_7w)P!=t(A2O=A50bZK9$ z&`G^h5B^w6&a!_$r|tRqlhb~3U&=ez5o0ym`sQB_tKTkGyIgPWc2Qezy_(Boo7Z}V z^VeCIKU@@Y+h2u|fnmk=ZRZYFD_=aa-+Z&=*<3b_P&U2Qy6hfP4@fC7UWm{#`}28z z72Eeaw_aKEtmt;?c@f5-@l^AtIrrlKUYlqCd+FEkuIJBf$NGIt4m#gs?qqw#dB2@t z-=8-r-HPvo?eu*L&Bg0GH@W{!j~BS?r*%X2``egZD3rtiEaQK3A9KwT64S>%4z`D_*|dIk8kwvcKeXd3FAj z_vQCB!XN!LN-gQiRM&sg#U^+^sQst$_o76Xd)B|=eHc2TKR&Rr*WNBaC#B)ildIe2 ze#*+)?XtQ1(zKbA`o8SwIkR7lecAk}i-Y|;H@W|R9xu9ay4RN9EIIcSv+}~OJc(E* znAnlUV9gjHbW4AAAQJ<_im8H~?|1$5{a^9rPWSyCpH2nG?}|vYDt@Tp+i>5)gJI2n zuY9qUQy4CM@mMvrOk{(W*D}V4qnQk_4kg;%hHTUcFxaMm+g@Vs-EN zn1HqJF4^x(n(CLnR@!W=6n?(*>!;vJwQp4egRkFhtN1y6VT#Q)^>~?z$-%7#>C?YF zkMG_+wJ2_S1=IfpZF}|dl@4sW+&oNAIft{F{7#TG+0hmxk$G2VXwn`x$j! zQ*zdR1$m4A$2Zl!%gMWPe_h=S8F9&*x>*_R5!cs05t5j>MPG2isd}$zKCA`*YxYDl zFhuB9eP1T~Hd%b$Y#z&km+^c8uRB-{+=_blr~ZHKrJLJzFJ7}O$YFjXoFKb0X3u+> zzOIAyd2{Pe2eT%Ky8WM;#>Vn@-h-E1+DBn)0q)<7>oh8M+o?#*K_?2Gi%+O;``z&vc7FTl@U0z>-%Y!HU7tv_ZlV6 zU$pn!)7Kk)jl|xUZ#${3w}+RQH3@%O5!o4n%6 z6Qwt%IC`JD|Mjlo`7)U)izoM={P_C*)Q2~X&k40&J2E3;Z}TFv{9-A!sEsW%gp-rv z_CE08->_P7)46@-wx=1`Y;r#_F)*x|m2!NU`4TJkbrKVQOgDb{(~Eif7sd<&6$UB) zgahyGRc}|7OJA%=2Q~PgPI>=f@_MEXhfl|Rcz@(W>(9S=KdbG|g{%_zGM(jr-g$=I zyZ1kp?H->6HyJUVPTF zf8M_4b~7r!B%GA#_Ohh4=0Lm$gGlp#r=SDTf)nb`K7G<$7yWN%^>T(M?ms>&|0|nx zB<|?~70U_!ED@@_eCvHcZkj&g2X7b{X+74+nfq@ix` zrpv*8AM&G=(p09cuH(p>;&FkW;lQj5Ur$_^c6a-mH*ap=DtmkA^W%5#m+(6XD===@ z_s4Nx{LP&vUY1|?R&l>GUf|cY_`Lbd19jHh4*)sol;@? z)UQ5uGDE7=f6--(6>*boO`YzjG(251VZzzF?^PT&ExPmD<;$e&x$n21KB@cZ=#>pM z)erJ2Uz}O~^uyKsj;I-;#dX&r0}}(gPZh_yKUu%T-7J0i6Wf>W-N6h@(vnOJ4WY{x zecZMp??|uK=l|aOvJ(GJWQeeS`s_b@?7Are6CxHJe(~n^uGq^Zvly7PANKz7R{Ol$ zaclL(#PUDpYyZT~Yhs+r{p0MN+h*c_(&zk{Bm6_lc8AD4-c`EqIerWM>|%QVr#8Rf zz3k8LY=8D;HK;!QfAmuQQ-78z8}9rUpP#Q-m^ka*=koZ;wXvVse($`l|4oal?3qjP zYL+?o7=xmgzqebzGGcvA)&1j7Zwr4vrTg4of8$5-rmebZW;lo~&6x{2?$ z{9DS$#m|X0*N1@?`JPq1{cD?BvSzjCr)jrDWC2{~2X z57s8BHgv4Nz4!TD{i6r=&*0FI{TsfoVSmZL{oA%=Em*S3VOki|kEhT7cdr+6F!o-~ zsPVnDs;Tz*rcINXcCHlgstn^jq0aPa|Lsb@vZ<|l`d?+H7SG+C`e)+(39H5B%j?{V z%}+)xt0_!#{3TS|`h30DH*p4r2yQnML!nO9>Qg@P-{fb6W`5hB<0m-WioNk9MJbDsQ+W!1Mm-|kE)-u-vq-G}%0p60XDJ^NO4!r4&f zh^R!l8oeK-%Na6$?)*RRKx9qvo4Hnpo`lsGZAu)^!8V%p{8DCWHTeW0< z<4Y5dkZ;*#ZvWmU*uS31v`}ZX6DZcGV(uLS*i zzt>-LsifED=vw9oyYnB9t^FGQh;3(UVByK$9nn8k8X|XiMt-|?)9J8-weo{0|E-^X z_^HKEEfS-Du2=ueeEqp>6IOG4*!$4?)a}rpf`3)d{;x^>_j4uVK9{EF;y>-$_Uuvq z9~8rRAe!?*?w9B5Di+*nY1quwbeSVi+pjU;=Agx~G*5)wH5gZ~)IZ{7x$1HV?8 zT(>u9zIJb~>a151FHC!G1gw6elA!z4?c-V_PX^s^&I$3F2ksrP-fzGENxYrl1pXe= z_f|ijUHbXIRg-mIW?}37wO-6WCQbbR=Pl!9raz4Pw|6P5c(Xr9*x~!8?cxr0f)7+! z-?X&Py;BfhpC{UI=fvI_Kjk=Y-Z`&nE~zkY{`4d!g>c3R)-ONyJvy;J$Y@V;$h!EQ z3ZFlBzsu(M$B`=Pz`$_L?f$gC?M3YGbCzZ@+|y#1#PGU@<-n~KQ#e20lQT(QrXpDI zsaIa!x0EL*+{@eKw;$uR`Z#^+%Wf2Q9q#X7lrTTD)%LPKEzbYwoS7TnR5N?$SYVz9aN#2rk2z}&eHPh%K!5&<4}R$ZM@#>Q?$bK-w)=qz!}bh}9e!?>u4eMH_b%Z<@?_^!kHLJ_kMqh6dAA7opv| zf0Z9w7h93H@yx^<^5-{j9k5bnyda_Vm09CwRJO#%DeK%H>+YK05cAn-@WYQ z13dViG$*7!Wr`|nuAaJ{VMCE)zT%7TW`9plKj*E-@r~uO<-djB8z%id&{lV__g@kJ z#QV$6oTv|Yx&KqFj!yLi`H$t*VjAX-N>O@}52pOP{afMnyV-Z_ipyqSRxp@uRVej4 za@7VUr+r-qe*bxUeaX>VHm)4gGG?jG%KOfK!km?7#;FPQE1WJVJ#b}YXxJ6t<+}Le zw;CTwk>eHX+cQ}_k`ks)WQdTT%2dbsV_DP=+l$w#gEFJ8yWP<|@av;GV@PJgyI9!+ z@*%ra-yYRu{;3eZQ}tie%RiO=kL^Q+{&cGgd<)ta_*-l7AJy9x^={MZjWsLl8S{dfM;nP>PpIVGhJsCV6CL3I5cjy$$)mPCgGL|v9 z7_u+x!0$WW>3^g1THRI_t>$H9Xb`=Sx9|Vtz!QC&q;N*<lW`im=4H~une*@fpXZHxLP>dcxGUnkLE5!u`^vrM`>y8wyMC?9nj^y6yWjU7D^vGX#z&lMY@afo z;w_u{sr20RBqxVYykD1`Dl|w~a!>q$cKVH2FKt$@rhk`2S-s@#d@ii+I=_Fz-cTP7 zjk9l`>Ax%KaGK3hZoFN-;pM)(v%V}5d8I9zye2Dn6~}i8*^yq=&T)860_kV8Y9~JWsJDv1ZK5=(i{-TWe>CE#&HmW$d-sbkV7yqJt zaf;rwNUN!fQluKE{%&--eDuIlrm44AT#UQw`2Fs2r6vZ3D^8ccEJ<%!5_2H_omta= za3#aq`=eT4eBa6KrMdU+YFV>paI{Wk=<;`~>zpCYb4yV_u!fJ*~Xwd*j0XJ@4ATz2M#cv*wrL z?LMqm+!5;N$+i99!l0w8*!~x5|B;%?{X^GZw0Y|MfQNIV9{A39;^)VtVE-q-)2BaP z^m3%{0r5Z6YvMOdm-2be^k*gaq`6l5H&+%-31x1&-A33#buJ3WZd6OfQUgo7)p60z(%YNpk z=E=DFz)Q*c9>?r@_djC!ac)I@RoIy`dpc%n#ui>Q{d`2;Bj>cPkhIOa=+;Ip1_p*h zw@iwDoH%OSf0O;$^*i#MtC$4N*YF*qC@%x|Dc+VVq zTee{Ro?antZ#}K$@eOjXr@Xl{<1@GV`hL%tt=-q`R9<@DpL*t~d+Ntmmy^!Lh!~z# z-M=%dapB$8gm%Re%g(PaIrP{yD#$%9i@T-vujsA*x+`Nl`a>niTn_S_M?^QGs< z?AE}acT&Hr?6drR@9o~+KW}WOdUj8pCzxI6cIHdZ3)yHF*We_}rT-&m&bQE?G;{jV z&TyvrnP+vp#m?0RKl87T6xuB>u(ZVg`r)eocR^dug>r4%dp-VyMp`Y93}IB*=fdFG zXzIe0P#UWJoqw193i*bTZ+$#R9?7m$tN!coT0>LzJ4enU@g1oPUN!Ff-?iSv{zyjM z&EK{snX+I0*p)uRR{lnMw`0BH2lMVuMs>>vo&qx@4WF;G{QTATd5PYv#WfIzukBHu)ocNVa@slKMfqOhnig5=V`u3hnd5~=Kr5RpU!W8 zvhL8FAE|7!Mcuz0?tLNt{v+#e)vsS1Ihi(_d^pek`)5nT%-wgR=1h9?*6K5gUkfBOHQy*K;liAl?zSH73`*4wI|9{=l$(cbeW=_-9~BASIBTuLc{4NpZU zB}(iQVqxBA%pFfW-I|Msk&`CT}@)%Q*wjUGAFHl_~lDMRh8x5Ie)LL ztUYb|$o!w~qy7^oR-Lkn42>+kx7^w<&F$E{nNxr6{r`Qh{Ij}G>&4=m&#Z4$Vo+=m zFzQk0Sr@nK*L~>nC zS93jY%6ZO-e~Ug`4=p~tqfMhr@lZhjx8JftcUGP>alQ0@v88eQ%x`vO+s#VM4t@Lm zUwPL0ze10WhJWrAa^g^Y62RgTknQ817{bkWvdK>4M|$J|O$WvYZzRLSnd4bF4&U0u z;grT8;H1O8^l12!cc(vb{M#_`Z`aSKrBfHqm)aO!`!#e|U3&2Hi|V((Pt2+7{I_k^ zJLb8uuV4M2bFBT+moMRrwF0gji%)E0=lQaBAOHH^`PV0Hd?mCrv#W0X>g~qH`#Zk< zllygdotVB^{pX>zxJ)V^H1x8yZrC^EjH!9{vB#tSO0sV3 z;z#+5w|}&(%9g+VGC23#a`(TX{(tMNU!Pqs7<%yEh8dBs<}`e&5q;BMn3MJG@Bx-z zW;ewDy{P->qrGk3eajWP3r;b;_-bXfc!8yH_qBWL&anhMU(V9->+JglWiQ`eI(AdE zLBNSa(k&!ghu!gs&uRWs15Jr6;|7ky79H8aHETH(&34!ynJB-4OrpKELtL$K1R7e%=!ASR}Q`!cE`_qy3u` z{}V-;{tMRI{peoq*%i0Fwfnc zoai6^FX|R+vKK_3nZ~5DSMJqWwON-p-?)44%5|4gmW(?;EwAMNNij@*Sh?F&z==aq ze2PMkcq_-UH#d8YUTA8v&5;vf@aud2w{%82gUi>nJ2N6@ToG1n=@GA-GOe!e!F%>E zPaEuo8G|O*yubQ2efzDg`->k~K4GjgY>hw5&zyQjeAa_FmS1L9w*Ic<+Hb$<{qghv zX7c@BthrjQcLKwNo&Upgf?owStotTDBR0Zq`CX^=w;ea_?^=8R_xr-1)BmS;RNR`S zIZJtoyaK2k>EJk2naWggU`2hT$b!fJB|$mV;tlge!InVfu2-KY&F6N~vt#f3b^4LP zcHU1<8yF^t@%-`GF#lHS-UIi~dQWAzpj*QoUUh%v!S@CZOQPPsy!hwBw`${cmtE2uJY+C&5+!TF@ z5Z%@PJa`RR&bTm4X=SK)e)@U+KBK1(_7^SL|LMRR+x5B&w3uhintA-+xoP{%Zp;7S znpM89`^P3@mJ~5a!CO^qwyq=7t?|(TPG`mkIhHRDPn>?4Em4`{ab=wl$Ib&Hb`R>7 zMDrx3hT87;eQ*9J+!r~T3jVq7&uH0GP;qd- zPS3B~2V(s@XU%GVOnv|N<=bywIk~(}dZjMo1f%%@Gg9VdD4Z2M$#r*; zk;8W}o%O~Wx>vny`1*(a@VD5Rx&caC+Zw!BR$P^yF>9vrQywG7*Q@V4{r;C9UHEjt zT2Ok|H|u?QbanfTIllwk?3pzf=E%8MHuIM-?D+hxJbm4rx_myRjJSqu2ac7C1XOB;^x`sNy;@;ls` z4>J{tJbuRb@j*vOC*O)2VWA)5E4DrAH1WLfzHH($&1GrNOP({??%&!rm;b-nrEkv~ zZ*qbP(r&-CcEzqT_kQ)yQPg3ysCE0LV6sf?aa6LJ%_3(p#V0XAp|A6E?Y&L^ZJNT! zFrD$iCWe&z)%)_F-~9P%AJ^sJ-8?>)4!5!$zg4%sV-Bi_WcXI7$nWpPv42~yI(YMRz1S(-4jh`rTOPz$ zvDHOBn6I{T<9w5u4C{`?-|}JjdxMkt=I74mtP^hWG~}iIV~_s){?ez-&Zo~X-hI4B zF7Cy%2E89*w^aPQ85U(634fsx@JqYmNj#&o+uuO0f2)K4v%CNAmgExp8^@n`#ksgj z>hk8|8+Y$r^3UJ<-+p1?>*WEv|M0OJa45D+;5xKoo6Qmy26mp7APx)H2&RH9l_t!;vE}~~fj7@f|JTm`cK`D!2CJDD=g<2U zx|HE>(%-$dR-w}KZ-q7geDagKs{eA1?eF>9*F~?`@ONPy^I`S>H%{?z|J%!5vqEu! z-E)(xkqobPq(7T3aQ)S6~@jEQe{NOk9lp2;AMg`rYe_FkZJJK6m z3gfTJv9PoJe|r3yz=qpz6;@p}w6$J;TTUxP^T561`|b9e0~ceBoJ}t_>}cJ`kj~@H z;Mewe%Z?Q_GAxNYE(fl6PT+P9E!@TZ@9yI(T#PGur%YZXv7q^{&D41NciS7^^>J=! z^;Mg+%(&qlpF(vcXTz;|0pAmkvdlHSaQ@qSseeBkw{I~0uhu8#W~;a5wg1;YPMr-~ zo-)?mt$(Xl+rG!3G=YzL5Xx|8>5; zeEpEe(n|tPdMZyR){DQ`9rgdpm-o{%vsxQ${@M#OP2!vM`#=As-TT>&7z=FHXEZif zkm`2G73)|Q;wLxZn~^_5XN-f#@7N`)SPry3Soyv8O*O+4HHJ$%%7K51)y{~ysHu3I zXI3z0{;-#!X7hnX3IV!oJO)=@?zdP}uP}91&zW6JSEPJ>&g(C@ou}+8Tr&SJ$L{%m zl67i++c$Se{fPlJJS7+Xd$qeh?cZekKgZuXd(D;nFkeuFL9PANzZrpRD{VQPsu%={ z6jylt{vLegsl$hOiNE2EySF&*m)mHrah|z1 zwPU5Wz*%oMkp@%tmXizt2iM&{q%U&pp#RcO-DlpNU%*_WxaqOjyO1>&3OQ;HYHS@f zmWBoaaep>Xx7B^};0({ivwHlpBI4`A*jK&!xB5aP!(X|kxE8l!sk1X9-{j`M%HH?; zqWys@r|tWHea)YG&N1w-rh1EjQ=CLx-E;AEwV&Gm|Im#8c(R4*z|GHb68Pjaf%X5)*>Pd=>)n2T{#N%aY}wO^^^rz}rFo2L`AnO)H@wXDxIFJ1gTcXl<`Mc#Er~Ove=QA~&NM^Wf3rjU=ye-v5_h`1k(L+s|%=$!jRK2z)wZxV_}{DaCXD+Yi2J5C-`r(DG5d z8pk44MV4Y8&Yd12J^xbV{`}VcyXNM6$*RDfdfrUUAL5P)w|+z> zI;HF!x85(l{`!RugDO*wP4%Ml+du!PzVYutxZ(G+|BqC?`lasS*dX9^qT4gM>f?ep zPajt-4djtf7Gdz4e|U~Qch*b+r8a?@xg3_?dFskfuK6$f$*g|n&G>uo^vnOAcmJ1K zEqn5KJ^#yRcXO(>Ji@=eDqOpa`RliT>&iB_^CpGA%NzvSJX$|E#ZT5%h_P+_z|H#UY0HFrmz%%- zJ5+r0yDuyEj-NO8CmVO>!qx)pY)IHX$=*0Z-rz?SPvx9bBA)Bp>+ZM~SB1@HeD^-@ z_494^KSWLP>ZG@7$EQE==TK~U(b%yeZT(>beg=8AAIo`|PoG@)%2}~QoA+Q@Z%d5C zpNsYT-`&6WEc0L8hx__|f5k3U?{EBa@x6p2!+|Szn5M0}=dyfj``oXgvTvR*{uIQ1 zV4~c~{!*^pvo_7RQT#uA>;FWR3ms63j+-uqTa%W|U_1iTf3C|Dz=k2!t9IupdW^q+ExKZG|)^2Z&%jM!Cwg3hT z*}kh{AC9fQKac71f6ko^5!e6cOo^^i{=f6_e&avd+zhuq{@+}`q?N%nIg2g-Z>N3l z+NsMcK3z?JQEFXPr?}OF^=f9Wj4xR1I3Hn@& zyX;r#8#x}c4D31>f$2_4)EAo9{b)I=p|T>(0W(o%4S^{U5--cZb%9G`!~#L-V#lo!%jZWq9*`+se$~CYK3;$QDYi#dvVkGa60BA$Jy{NQF&gpT z*c?(XzCir$zlYO#e=KFL`{nR$iU!-yr?nz+ok_nP_cty0F=^?G(%n&40^%4}=`PUP z>~UNA#?OQQyN>ndD`%YfsO-(5_@q^>C)@pH!m$VcdloPhRLPWjoOsO;@cgy&iPptg zU*exF{=e<*{QJ-2@0XQ-IZ^-VZn$?r^SxHI z1MBXtCD*skV_j;Wwo1f-;cQgHvUNYWOUoKQ3%%H?yWj|-}ZIC^+ zwZ5>@)BlsS{mSec-?v}euzzFI-QLg~n}1x={O^;hpE6F$yWUgr{r8LSl#MZG6LU|A{?c%e-YtmuLA`a%9LezExasgmJ3kh0EtPjSnjDoY^;} zzd?v?k%#>`{i!d_8a6RZ+^Q>5CbM7Ufp}lRhlx{`USj-T<7LP6PG+mV)B5G#cb5E| zb#6&SWrhEA_LTL@HS*W+)c+Q6;@G)^CDFuQ<(}j>))P4m!Qk5Ep8(ID_2y}5aZ|b- zPjt7QQOj(u-|@iSw}_v?`qzA$AHHvY=vS|ObGtArPtZF&Ke70&s$b$^v6@aCicgXRSSG&jI=!u4n2oi8Q!U83x@7`) z>zC$0@fxr7JO{cMmnl2&pZxn@`mg*S{m2QgjxApPTugD1#A);R!&}$yEq|aoNj2O? zHlbU<(e}#Af4ws+&&2L(3*YzC_}9<3SJf+iz2x6e^u2$>zX!!%LfM)=3A`vh>tWNd z_wCs;!VaB`TD|+X?q{B0*s|}dNI>S_%>DVh`EUH)5&d4Et0sZtC{`HR&2HRbA7m(Zgv~m{5&15cIv#K6Nln+7R8osLw>KH>t`LG_&>OT z>A;hTwF-w;91~)2(o@-|yZ1BWhQFU`oewO@eqPzVO02GT8DH4<^6gtSVJC|d z{cG+d6_4Dx`}kt^Hr(Goe_6Bg*MCKYdpl3-?_a4NDsuOY4s`zCPH+2&x&Q}WueRxfDjU2VYw zDeM}73vRz(xYm_zp||{&4}uc{yY+La$l@F9)TkKqzlVKrSsJFD}$4s)us=&(^Y@IesHNzE&cq#WxJWbKI5@^D`xlq@co0&?SItP ze7FB~-f(Y1)VpoBb4{dpj}-RAtq&JqlsWuvb!zbaJL{)-E?~-fYI|W$?14*bujedp zSocjRBX|Ado8tC|CZD%Ea!cIaZTr^cx49OjH~-pq;V#z|%N5g_zg7izi~rso-D=+y zdiCQ%Az`Nl%MLxgk)gUuL~)`+bS1}^ppq*)Zym78*uMEdw4}J!L&urit8^GQ3$K5p zbi4nI?eD8!zu)FiTFrlg?-D1&seXm6l8m=D1b!=3XPGD}&9U9_eN|UZ^(A3euItqg zp7%@S>^CS_3hJGEI=F1V|KsM%xnJ4Wp1rF7yIn@0`Co7w(}9%07iGl5pT~)=WQcPCN`hRWRz5Wk9|4wm!Jm>CE$>72m z!0mj-)Tvf?w`W&b_)IRZFJCO3xmC}(D{zE#J8QGGEc@*s_Do)dW5*|ka)oWiO}p3K zoFetuEi_DFE4xF25%(H-2R)7hTud5&ZtB1LIAO;8V@)jrPHHo<%lBETUskyr^LJBf z|E4=%d*VYtqlcH%BhH>aP-FU{l=1w0fuP2<7xdl!+_T-U65Bgx`}c1pv3q|xZ`}Gz zWdG0de{B0ce%{}+z5bPWY4(A<>tEi6D>Zm^hdUiG5M01@eZ9RkoBf5ae^_da5*5}x zyfoMR%a?che_XeenQi>~Lp#TAXZzdb-#2dm$WuLg^{yU=PKm50GrP5~1*=7Sb{7Z# zU#Y`9HP=Ak(WyuB=c+_rWZv5*XR?$jsG9Rjsq`T`tKYR-HVd_$NMmE+P*SerU}?Q! zRr>Y!K8p!lw(*<{o#$q4kmKE!tL&1&@7F2OxU+SG<8JT2;>&Ulh%=swWHJ+0tQU_E zZ*JT;>C*M%4bu-Wo(A=e)g2_RIt#uKvpc+N-p=DPf9+E>7<}|jv1}-de^Bo0~o2*)I_!dRXUw&)9k@%ZZ>#O@EQsmTDZ)!|iqBhxZAq%6art`sdS@}22 z?U>f)g|A=W(hwlY$);xPz{z~dTS36_nytev@dK5tFFv1Zs^^^fWevlGC_x2-w!X** z`FXuF7Z^*Oc)oCs>V!&>C;ewjMO(l32((^l5Hw=dU=wiSu#{Yurtg3C)#crL_Dp7H zZP@(uKzzIs#|^d#6S%u&Ij1p2Uj6IfwZs44irbm9cYWK@ck|hnb*Jy&i*T*37nlEk zF#plbX8jMJ>tC*abW1xwEv=!^^u+11(3^elG7dRZ-o20=@#r^4$Xn;B8b11Q*Cxl= z8OkzUisQFl-M_W{z+`{B1IG@Zzj$@)pRk$@v8*B52VVY6z3UcGs*&;j?Jb|iKSE(s zd0h@|kzM0{K%_}0BixQ@?YfVG8MhxB{N_1RcU3$!W^)|VMllW-g)I&XTR1bVnO98t zZ}L_-K&c@>mea?a;l??ZqdW~=(diN|xS7r=AK0tUc8cwc)g}d@AJ6rQj%F;F#~{MY zq1ZA<;&Soy^vA!hh^_zd#E~)K(~0B%T?F>O5O1E)?d*Dcug=EXsV8nOxX(J@x#`Q_ zx4y5#^uL^_D9)2RZT|iRLt%L~@9o#;Kj_zeUH^Fb|3mS|vh64HM;teQ$`*87ZC&*^t{j1fY*QZKsSaSFO)Q1V{?;2eXzBRFur;6i%w)BO@J-7TW|KebH@ilnMuOM!w zRiX>OiM`mi<;9}&`aC785C6<_?-mT+Tzu=e!j1P){0;kj|8H;HpT#+&_k*;f!>vng zS&j_OM;U|78va=BUi0CeXWhz%>kk-OB}J1O_sfBXDfV2EGQOM`l5X~y#fkAj&WbfZ z*FX3W|GH(u$@GjjbFR0{Zn!9M%u~O@hC?)Fb>RPN|MZ$ZtmJE3zvs&=zwPn0CH(*I z+yC4>BX(EQ>-BpUZZDd^Q4rBkFO%qS{pR#d%zwVNRdQ&&3f{cqoqtjd(os7%)AAV3_urEGvRwG>kGvBxK5aIUaTD;SypO%;IwokC`SGX-*8MXcU)fG)K zscbv;@9tfit)G}x=eYcT{u-M@z2Wz-oSx$TVD+58{f7##1;76BsCj?yrkx3rQ}gVr zU(TABSO3`hMft6aw>cU5jeF0g->CVadQJY$)w%2;o(;dwF5Dz{W#h`y(3LGxpz`;X z%Ys|Vd^}ys^B>MLe#`EAli@)POM{D+QjrX?IS~0o$pPH{uNhj0^?ykOjNc0Qyx5vwVhp#n%W%cjzr(Iq< zEHbJC_cq@AReC0FSDqEyp6}`tzfGO)!2X)w?z$XPzx_`J>+^Dsi;|hMAIl4vr(c-S zyG3Gw7n{}Fzezh@Pd}T^o{_gjL11RKN*%N}VE4U=N z|C_o%I4a*R|H(al-W39jDouxq+wVSWYS3qkIC!*FT;N^R^XFPzP7Ub_8X8QXLeVa8 zt)(=}M+3%&c!P8f)`rVVU!Ar4!mQxpaJ6RwcWeHOwmWZl8+|3GmvNQET8F3yL^gL! z^{r)T;br+Ka^#Dti}}9hs9WtmRvu+?N;mhdU;gi#vdZ1qEx%(`Zr{FfPu{lr-Hw<4 z7OykTiM?KTA(b`cCr5>Lx*e0@tQ{Y($zPtFRA0<{e%}ucf4kp|*WTTCO|O@Jd(G}r z+;N@zGY*}3w25!R@4tGx-cIZ63+@bAcJx~PO~xn2XAV?x&0HdI>d*Vd`&oZpT<>JE z-a&64tIl3lof=-Hd5nwHT&`SMzu5kly~U^b(rj{(0s*g21eG<&em#GLEmFkt%+3{0 zm#BmMulU$8~9S(=Ng3gawDsf@drZ4z~{2pOss^@zIr~ zMbY6kGk2|OWVm=po8$TW8Pkf59BDR-P!&dc5hsERP5;&`RmfVQXE#S zX{x)w&D=zeY326#9gIcg_d^S3G&kL;=Xzt`TJvLeK-{{bXKDt;(n;UM7HndkHC^PS*EYv~VOkB`R?2AUnX1S%!WS-fX@*tJf!`lB=p0H!xoOv7pK7|kRO`JFs&$|n_@hX-)ykoI1B!k1k zO@qP5z=_3#QRT^@hdnp%Y}h!JVa@N|#%bcJj0YaLr58^&*Ie7*@QE>C`%1phuP@f` zTmI`#xsZ>k&jTAi{)Xp?bDpvuo~J*ZcS_*j-^<1IU%&h`*Szre-uaj2vRVDMuK0Aa zz2e8k-@E=MWS3u`c7^+HqQlnz+2>4r0`iVF34;+{MSW{=BMm6m{=k&%$MYS^*m^ApHzwAQnqE1i@Y>0 zzvnJKsE`^Uz*y3Gpd*P7G^O8Tu;y$>!h$)K5$YyvKbCW_Hk@>>*I1UO-(Hw&^&q`* zLU-2*pBrC(?DPA%y)jln@$!W-MxXBbRafIXuCV=ox39#>At`uI@Mhb|`VD)-?1dTl zvRG%lO>$~!e6Fdlv0eVlW>yzNS*D4d6 zf5GLO?)B;3)gl_ohcvnjL-S{B`LE)*{rbg43^8s^*Q+)J@dOxOns-v@#dgK{wepW{ ze*dc7_sizUq1OW5`LCl*ruDQpd};`YD>(H1OkjCK?7bN1(Za-FwF4KV3=cb{MSzrx2+B=iuF~3MS>?vawlH>eR@xaywlEq z${$v3P@SW;Ab7{-_5RtPo}FU&^0`rr@qrQJr6YYGxOO*+?EYOF6PfiwcM9`^z@}f1 zSzew$yknP$h2er2tpGjg57)b;ePilBtACmDW!H_k+NNIj_=Lw7!*4{^F0o}PyEgCD z^;0thW|cK>{Way}9uJ`}p=l1YG8mm~!&F%$G=vS3zuerp^Y%Hh4_|6eEPpS}>=CMG zP|Th5Ozp@Q-j0>41x~p;oaN6pdung8z40`I!F%O}+RjTpvT#h0cTVFwAp}~s^w?EH zSSEmBhKmM+k4E8INtVPT@rf-l5nW3e*6A+LxRT+0H%V_jcY))614sKeFZK(w1ubN@ z(d^#$Zui=M7rHCvSp9jtrv65m+ru5dOO`b~{TZst%zD3ZN88cY`Y%2IZ4{Y%H}_5c z+HC&Dt?ct(`!sH4FTZ&2eiMgti{pyxo!Pv$TI(l&n9SmN>AF%wX5@{}-}1i&+pRtm zVepo@+W*TGyW044hK^aE1S1+UbezxJZH%bkZG2^MA;wH?(xEC(h3y;{-fQm;d~Q2& zrQpp4`#*Ot5CD}!KURGCKZ#RerU1xSy)TzqtTX+&Q1Qv3hnpB;9;ol(VN7SqIK2MA zt}UxyH5_33-{|@K{H0x+6_aP$`{f?UH)i}6_0r+({}qitcAR2TTe;`JS^aXU3(DV| zZCRL1(!{@PDR~`wwxWO(tEL^; zmmZ?#nR3s6p6XJ;IVxN;|NF@>l!7AaxO2wVD1&Qr9DXdCqw8EB#;M3sUn*GCC=fSc zonWNFjNgnBT~8Sd8t3}lnOr#~&HdlqnweXdPgc9InUk&h?ZJd^OPGHJZa4LO%Id{a z&~%{jALFhVZKId}w_4@x{he#8>FBUkrsmJf_KHt8+jqq*xO~fb_1@fRy;*5{EzIV! zy$W7-cfl!v7v&eG((ffO!n3x5pj5bT<6MyYqip-{h`MeEe{FMEw`lZDDc=zi%eLS+`!{ z?)}i*NdhZ2H5y!cty!p$C&BC(s<*(1d5Qr;<}HC$K}^LA&5J)jU9B`(@5yHViFUsQ z8nuLH>|7Wmw5Gph!>`5@%=L=ix4)Rr;|^^BwQlx-YaffADUr~7H)O$krn<)(`nmhRUs=X9L#)7)t7KQ^HO>WDD!&cfBL7uJ{gO?! zPJe1`aK?Ut4%?4;%wAV!M($a&{C50*vt4U#?*=+la^%?UYfq1_?MaWX?fUz+bnhA= znMYBwi7PfSJGE@xCB{5u(c-+{t3n*4f)6gae%ecv>%H**wNqp#zvWq|zJBe3lJ}B{ zw^`*%a(&Y{_s`}~Y>{cpW1LaV@L_gx(*g#Ag-3c{TJU6lVNiIoDDdLTYg^+^+c0kW z>A10X&arbFOYh!#DchL)Gfn0}DYxUpU;9^2OkQx;lY1@0U$e@`X)!PVs7EgQuxC-j zd-(^&6Y3jorLVPIyS#Pv_JY4(*FQe{Wcn7(1zM6j{x7ya@K=6c|5^3#U$U2PV$S-i zwkV1>Q6O{j|0t2$$l4a;ihul7UdK51Z)}duFE4IJY5(_$*-r(_ zuFre*^Ob4%?eKeyje+c26hiWS67zm?Rn0XkGrNBA*6njV%$o!2D-Q0T68Wn>j7=d% z%;D+P1ki%C3Cw~@9f}8d8aP{+4lGgP(f^gI@Z?Z%e-7P?XWsk9j{K<*u=L$G+7~W5GWVQ&BKG5~Zqi9k9!;FAMI|SJsMdqAt zR&SB%4+?X*rs!Z_qWiz)`wiVE&$!QL7|a)X&1j&N{_s$}%(>`F$I2u3^(8&#oUUip zIxs(W->T)O_4jvP|94})+pKRJ_wVdum#^iI|NG(lhcEBkt**Q;yA`pgNVxcP|Avj9 zPHYnixv7-sD%l|Y@_Q8bj@iwd7&LeUoH#1&B>v226k+g_-^Q%cA|v>}`r_6+;i@V3 zd;dLGWpLv#P-SrAF-T=dt6N_FC9I*{G4VmgZObkL0oOpY^XGXq-g~Euv@HC_JY#o_ z?E9F1pDUjG|F10hUjFgP=l%`5zeRjiKJxYYy<_*znO(b5HkV_;ZI6TnJPPMoG}yi$ ze<|h2q4?ye8_UBr0*-H8_w!8#HPRaQuj5c;?pUL^U}=KF3*|k}ThwJ|*z4Zi=VH(3 zG&{UR$nmb{j<@q!9)FUxIQceYtL&OA%Lq3~hJ9bY=D*&VdC9%Jp56F*+`-3xU2~Rj zhLs;W<8i69vq5y?7Pbes{JCCo1~^Bt7;!cTu*}=U3R?@{#9>(;z+hp0=lrr$^ZlJz zl78^lI-THlo^~nz8>@rZ7w)^)ZR;=DyyawaT5#L@qQ8pN);*hEm@s|Y{Nm<+8=qD0 z4>;pAktZ`Fz|x#}-AF@Dlx5dHao>cM?FGb2Ew zkSUiIG8imuNtEe+z#?5L>~v1h?0|L%%M_MFXSf-r?pkz;;l`@Syk;M?dTeBcFP4@nOnpm=H)sPWmu65#2R95Db{-Uy+ z-}jkX^Q%ApP8^2y0;lQ~y1uVwGF9ZdzuSs=LH!?vTkquxuIMp6ezN9!eaNc5&lbn6 zUX{h1c6_S1KyCXTA&x&^Lw6r&Ju3NUW&W`roj30v&Z**0Ty%>??V2#dJpP9H6-5Ov z85LUug8syDEo%`l)Ias)AP<8Rhb2GHY9@^{h2^K8Iy?3M`#$Ni=lk?+2NWJ#U0a-| z{zd3SOj^VKo-F&6jk~Ub}9dAm8#d@t(PquacBy|oZN)Cqn<3UpPwvGh`Ii1!CMW( z1Dp&`jT&G6WZh$E+nYUm_m2Ai!8zOCCmC09@6FJBZ4}w_`|~=HpUHKhf=(Qg3J=7O zq<{vvEWR8TXbIGDIUvOA6j#z#azc0apXbJZgRF0J1%!1oO+KK~^JxC}cdYJ~Vf%R& z=rFky@_J97zG1_b27kG$7pwO)<&_Jsz2)7Iv19L)eY+%n2!p1k1i2Vm1d86R;M#L! z!tXYRtM&62SM)w*bx#iwcAP3WLFMEDBS(n`XQOR(&gnmN?-##ttDDX3&);JV;F`L= zpk=0j(>cRKV!V=Vu4zn(20M>cE;i7cy!Z32|BH)m6lw`N_&RD{^wBLUUDvyPeZJGH zHxoBWE~uX#2{PbBWwRv1p1}~24OFOmW={Ul2R=b6gwK=j!CoX*LMFmNb7xl=IX=lu_r zyI2lztEpc+lNVGO*wXmPOnh0D)erfad3$2?llcpnEnj`L)ZF+~<=gxH`p=f{x;NXS>gNBNc+eob@ z_mew^1k;>2W+t3Ud{B7UN%Z&Xgm)@|j>(lu$CHI>*bg}*t-7||j^Wb2-)FK6RzBfp4)rm-flA4|HVM${Pf@uQHyzL z0d?1Y@7It~Cj(>N55FaELJxspL9 zjHzJKoYJiSDpSnoxW5YQvhce2mc7}Gp|y*lE?m%wL-XMJwoY(;@8Tis;B>-Z)&Ai2 z`paxfujNh_`r_ww*8VhiSBf0ND|aW2iycBGzZbq^Q7F0DxqwkYv1Nj@fT{5L37*YN z2W}dD37;HraQ}n#T22OTj6WaMEl5cLfu>J9T{|KSm>c#S;Nkr>fARJ`ahqda*XZee zoWKyj$YTGaOA*H9u}lRIuD{3#D zpQm_yW#9fOk_%pKa8t zBP$mJ7$o!`|CUq{D9C8tqrtqxyfEH7 zRoMZYoWwO4eB^$qPv!Oh@wqFeqOCpl68E3n_TQHt7d?p9>pbqzlO+FAp`u`(#`^fE zC663m?zpq;*yoF~FJ9LlF+KIV;|xoIiD1Hw%AUo1|7@;a+TXE{`Cs*tNN+(lA&)jW zMNmVdWkN9%YeT22OAfP#o>h@T5<8pw-=(}RpMJV3I`E}%{3!3{JiSePULo_A=D%Ut z!MAnOSu+A1(oUyK+b(Ef2xYvzqnDkZhvVsj^#=ug7*>}XOG+~6=v(~#`}?&?Dcga@ zAlbvIpjGst_7k;&|FXKMFr+a|;6C}`!G4h!w;$ZM@q7E% zWd8i#bIV(2eOEfvegE^sTH%}BF%l;(&GY`8`Y)!h;NP#ZJ`JhG@@gDY&hJ~)@*pGg z{?j+@2bbS{sU>_M(3Zh1Rc7&d5jLL53VaqxcR3F{`=5T$-kK3yunKZ9Ozv_xp~Fxl zC@EENV?lfx%&;e?(QD6v`*$4EHb1>`YiV)NPJ*S?Bm#%ZRVJP8r*!TANR|bjJz@u!x_$2zO)~Hv``Db|M z%J0ZE=O@eul_UE>Me`h~tB$=oY~OCK*l+*nJtxCVi3xlx|J6kI?cz~b{e64m?vjJS zVkg2o80(fXtYTrxpB=f3VbfFgKkPYajT#+Hp{guN4p%<7GDgk__d2`IDV^cOp|9oN z`MDI%C#n2hV#IJxN%*0O#mUD!O$?c{Uj5$On-b9Q$%-*R1hmTV9J>gEnwTJSQcvja zmN~lae!t5bYZWh)CpiRF%@Jd5ZemO*ToQZB!Pa|?AY;nIjRsTyK0VWLY7Ij)(}QUr zo9ZWPK3KFUNvv_U`rqT{f)_jp43Igg&mkMRC*CH!^UtrT>o?viu{gr=!GiJ05)S6a z8r%}s%k&l*Jm6-y+`I2~QRxo-(=&BJZHJlQu`y7p7Gh`rU!?G3dS=pdb%$3>|6K0B z`kk4?bkD?b*JlQ!Oy?uU4mP|kU%9UTO`0&DlabkRzcA|r*8fkRmVRp}xc#M-sbU|~ zKJ$jpq95G8r+SK<*u=WZ?o-`|`L`VG&z@4|TKwy#ta8VW)GPZ!I1gxOemKs#!~Zs8 zeayihOHyR#uq~dGop?|1p4Alw&;pHB$%R?VmR|gSgoDYC zq2T*vk(0-czxekdT)|pepx2vY)@gyWrv-w;6_%}c@`-I-ao+J&->f>eh6|1RDs!6Z z#Mj8r;0y@Wn~=(JL+N+XvIb+;FDy-sKb>6~-&Cd6ab!C3Xml}`&71G|z=uImaHwr zh9@z`56w&EuG}KCT*?2#2fy|fFlb#=F z@R-0_veb`-dEINH{D~TqV|YA12iB`|%s6_sl&{4>K;-hr(~eIqm`@dQG3$FxZ`yq0 zmDw`f8^*cA!i?0b=`s@3|Wq%LV?))yYxBtJ~ zq~-Umzb%zE(0aXHVY}V+$!Z;nuecqGITvkQvX}M97txND*~fwx?Brot7;YrM)4{ai zylkk5M3mlxc>CV#T!KflpVtU-%@xkEbPy3^KDJ8Xqe;~h`Q^+0E&9pVbGZ1yg12+7 z>|DMw_S~_*GOs~99L}kOLv5K7!%3e11_FOh2i@Aw`J-CxL3nUdzIF7A+Hct&a{uF= z+J&6n6qW4NU$#86X~})(OYi$-1Qg#oZkxxrHoYvx&R{O1JQsV)tKUnD5!9Uc*~oODMQID?f(4ukmf<|dgf6}J4fptc-u>@hg==ho zk3QJXKC|S)|3~wcc7Cr9<>ql(U}xH_vF_yq*NVHWA@ZM1UM{}>Iy2CL{pg}k39AE7 ze~(rRUa!h17T*|NWG5MmO$*AP)7ob)d>I84CBL15}B_NJg^4eQRGXI{64 zccI3d+X-T>uR0n17(7ZlS-9A`p8eF|(7ya%UGeSzE#D4*YPz^xaj)5A&!C+uiy>96 zBV$6*#mb{!qSclwtw%w*kAmky!5}`kN58u{eNoj{{P*2e#xKwf%9j% zi5zWJINrOa-Lb)-OW^9Os(pTw{e^XnX7Dh6y}@FYsm1=SFrZ`cbRVk&zxoxg*XQtS z7(HdW75qTVpjdd39e;*@qvZm##j|Ukv^9k;VknAdj850}R%*y*&SZkJ8#E-jUZpV{ zKE+UD->PEHdM4=q@1I{?y9_2wm1IcmyZrwDlD`b+lH`v^=F7-2EdI3Tw@ps1J+ngm z6h%A57J;I93mF_ZEE!ido$b0+Z!I-{_g{6hzx&y5<}d#L!2II>NAq7U*ww@JBm1nH z)6{SBGMl50_3i352-sJ5?e3YLt=7)Ax?C@=H81ONnAXzaJbA&@Pj7iod}G^Cdi@8J zi|Jd@ z9`*0*M4P|n9(F(39qRW#n#6HM+V@D|-yaA68{`~VYs|X9i1kx(gDBgiCH*Qd7v6vU z>Ud;B-4ek_&M(%>N*3%+tzp@=pGEF(_GVr|rp?>8E@u#nYmfLLm12`?#CfIonv_f0 zJg$}3r7qm{FAikTeDvYx;_aSm7N%Do{A}1Ip{Tll9;j6BW?*gbY*W^I67zWLALorM z3g;O%Z2iCK{nG#C6K!hc_uBuOdg?(u>z}Vx!i8%K6F%6NRU7$Ba2yg4%vxc-+;`TN zQ!ySs&lxkTKRws|$@gDDyf3u(UVc62%4O^SwSMHth+|roKO^%QTR=2JRa+bjda+*o zkGKniZRtdtf3;ugzpQpBPk*qXI&!Z$ndl$P8)Ao1;{f{!%sv5u`5 z7nq9p^z=7m9-XcfsML6W+J}zam#$~jv)+hrjQQyt>!c9+AU?if%~@v?F~zyt9X<;+ zJ)2~vH09pcex~~BPX{L6KV&&Csn))h-L2l&?{lfmCeVa^%Y@E0CI-bPE*dl1L@)hI zHT-LD{QtFLI$l3&}>S{imnbEM}h&D!5;u*c*I%LkjjYxCXi z|NC6>u6?cfv|`H;h6Ha=@8pS%17m}Lk=v6Gx9Tev|6eEEaQ&D5-Cs<5<^Ri`*sDIZ zeetaySKVZO+Ix8zd5InP=p-{)Q{aYAW6v(>UjMZU7o7LsHkB0I_j3Mp0|SxNSu-@6 z582uV&3q5bS^!SZETGP| zAIEx@goH2lU$dSFFR}i9;rEApr+0VOTZou`ig#Xn@yfyfp4V*qeLMv%JQO6Z%?jXn zttqg&c#hF^Z)sk&7ux=fDi_ysUN$+eAaP^c6m~6^!j6f?40@+d{K?$;&c7(^(B~Nv z&s4S7FoN2)dQ9Lt%I(?L=d<>t@BOlg;ge8<$lmk+1TURE&&Kb(^zU)gE7HLNjumSf zULD!Y;3mMxXYEm2=Ox0y#1h!DBJA?{rCutYL0^8?-koM3&hg7*k5H4*I_t(yJ_S6x zcK3(5+hz6s);Rsxvgw)Uo4fUb=VH?*a5PSd1veeJ8Ce;ePMlP@dtysI$BeY?=Vbi* zv)fkIQTbvHj@1V#|-JVlGDs+j54IJvt4K^NVE)FFHQlSrEyj z)WD(A(j(|5R2bXIxbmII0waz|E=lFt%<})f{qI~|zHiz3mpd%I6Cb!{WLo6d3tu&x z=)?djOY;^mIB-bHTlKB*_vHjqU#*%*gzoen`-p(d{IYgyuS-6Q|g( zbiKNDb(UK7qmOs{Hx~Ub)@9NNdFde07WtrD==u+nrazlao>*ttPtFmscx88|?$^s3 zX5Jv*7`K3Y!&8y@&+gLf=kHG6QC2W!Un9V<$U-iA_x{3a#yK}OhIBAUF0yduiTju{ zFUwft(7bQ{H}2j#@?3sjzqfh(wMd3j_6i@?z0JJ3s(;t|$5kA2-1gVcX{tZuDR(*W zTi~5*i9hvxz$pgYj+WY`H~DjWcD(xDhWqb17%J{E%;A_&#(u82sOsoV6T^YLN zUvxQfq^U5htYzG_!qxDRn{faB9}>~o{u?Wvw#E5(GSrDVRNiJUl=!mp5OwZh1?E-Jgckk+bbnTV!nmfC@TTfr-msOqrr0PfFZ>jAWj)@G*9=Gha-w^%2_uN5n zJK~OkrgKiqgzl#KU*GrsNta{ru&rmf%9>E{MLw@(cSuaZoJ<>;dT;i%m3P*1=|9jv zR(t43(xFt2B_6+GYyUoulAT}sq54IsbtGGZ`~%sSF-v4-^ld)3BJ=NY+ii!x6-T|E zb9HCW_ZeDgT+9A}2aS0_2g3Mqg!42cX*%q*O}Hd|V=woYqZ1^K^_J~=aGl@pRO9&r zYDXIRH^1#Q=62!y4N^T<71__ernc zyY_mBl7oor`KOEpcV>O|Tz&cbchi;on3q4C{~-7bgT;YMpHkKsfkt?Wn85vLhDfdk z*}vsej(rF%nE1^rsd0OTVu#t^*P(Z-B(4j%89LooGVm2%;wkTG?>Om;LTG(W=$1J@ z`Mu6}oV~qf#kno+OF0S(rhK+hI0?&Uwb7J$8_d|bGp0r@06NEGGtzI4q2W2 z_o1!L-&dR0s4h6gFk{}lYik*=nucs&DIDPTptAW^;nlDGo6ZMX^eWU(YGs_xc;H~2 z6NjRE`>T&CAO{vT{ZRfVCfxbFe{x;wgxAaWuqQ5H{&%xA^^AVJTXL4$^-cL}?GOJt z6`Zqv{es(>>94t@FSu-#TC`%>_3)X@tJL?+lIO^-pTx3)&usIT@qqelbKF67$*}_y0{{q(7Jk4N#i6nRUy2Xa3z2E-HnT5@NaPx5Wjkx%$%KuwS z-?B|Ala}35x?+(LM+k!q%ffx~M>lFJb2#bpt!Qv#-;wz)^ua0-7sZb6hrTEpUTENW zaMotSv;Q1R84jgthD>7=`OCocnq!5LT!?$amg|=t|G#QJ|MBDR|N41#Z)MNu#a?6F zC&ZM{>=i1uU|r`fzgKmOFJ3rrX}I9}YgtS0ge%{w-ESW2eq&uQ=d)z{bBCw%X7GXi zWDWLHpHBa;>`#WZFS{8t_ispx_J5e;{q*|Ie@2%BKZVq%b7gF1+QY-Jd6!Fq zYlF&5s@Bf_t zSiSDu`J}2{>#kS-^{)xPUv^t}&As0t{@LH{4uAV4yyWk^d6VkojeK*|n^=@gdpUpa zm5aJzc*t2oDbGZ}y>xEl0xx!_iL)1_9@h%g;nbMQFOtKysp{_~BWJyTj>)^Haxxq$ z^$j?<>xymMgi|Gj_v_T}A`L5!*_D?D?fQ`t2X9enG$4<;UbUf9dRfBRVA z_QRi=7I$-A`t2bf!UQ@}WWvdIP(v~0V^h`l^&e^(OW7L!>uibs`)BEDs~_{{MLS%2 zotXPn@S42+k#o z8NW31INzQv|q<42mv$y&CgrCQ}e_5ugtWdjg zjw$PsuJqvmX&$Y>1Ds4xbs85N^!@sK`J1eT?)k>Y?_L`mR5hM3C5IWbbgSgYRl}L! zdd)!Z@BSQ)jE^=9F{?gKy}dput?jrJ|lA18uc4d|6QiD&oFA-dp2~=_!|tizP$kp^QIO|%rIP#e@b=9O}G8G4?a7koU_K}QvX!@W~<|C zavt>NKX~@~{i{uk;am^)FyC3?!uV9tz}kBDR9=n!jPU{z?2{wn3hrELTKuk9#7$q+ z;aP`f>nVec`y>wOb1YB>4RaRBEnqNM8DOL=&Xk$^LS`TPKG~1{R*~Wi#$B=rFMs9! ztw=9+?$_G?<(~iJv-AILp4zxyaw7kxEyd;B(l1sVxKtn0Dz)?a)_10lRWHnmKC*Or z-1%vD?#CU!wRd;K?t1an-|d~V)6f3mlsI@`$<^5p+~4YFd#-4@w_};HKnZ7K(KYdf zXK$2CGU;hA%D7jqa>{VOi=wGRH6KAxr#Ot(y=I+r zyZ+H1;X9>oOSjHc_*VAe<}c%#Z|(b6Z{J(+QY&xozf#+kJdB}z3)eLY@mzUPzx(dF zIOD033s@LSR|lNe4t5MTE11xJU`5aBvidvs7>~z(UvirJPj8NP)~ z$6Y}U%8!nW4FW}nJoNoa4>qQ=XiPq18Glr0)!q47U$^hy-hS(j(Y?y=%QsZ~U3$tn z#4#m9_V?<7#pn1$FHCWt*>Cj9#&mnj%JupWzg^$IR=)h(wvBs#u~?s%OHBXD`E6U+ z#d~+n_AyyUd;Gd~Bf#=$xpmc-82R-aCEprP2?g9_Jm>GgDZrY%Uyv#O{@?psjYOHxJX?N3P^RxC_Ip6wjz4#+qLQb zU%ni^|C9I1?8_0m%7mxq?dw^Zz1?7Y&CwqmXY^m{bl$xiYkP1OmzLszsr)OhU*oj! z6R} zrDaUm<+Do-VKW^mKXJk@_^b%iP{kED^i1S{SFQ8tmRM zXDaUjF6)hFXB50;kDb==+H8Rf@u$`SXO^5aW(sNVJah2! zmV+mJHDjyKJo5ZuZS!d(XbbX_6j0aAvXIS5=;2bS<+Zu<-j_4nxEpi4Zg;bGeogU% z3nfyu1~2~9$DF#YHC;gFXt2UM^RFhmYeMbAR2kPjO}OqQxt_`cQexw@-{ z=i$?&C+EE#g!Gf`@U@b#8$AvNT9rKU5-Pnu&&XUswjh??dqCrGDj@j z9v_cY`mpEq&zZ)ZCQp@r#ZFqb%Ii3n)5=LRHqD4X^=Gqf#HpZ(vH^EqHXio^XClxL zNfDDs{h8T~juTn?TAyFe6N^}-u=x7x><;P`zqiE}^ zzD>&++E@a!zSym3?Z|poSX{>$9$%{-U042A^O}53-&XeWuesIv+TVp=luumsz|Pm_ zdE;N(;KS?Pj=ttSvb9Z9KH#|MjjDep{OdkVjGDbwH^xV8lVJ3Y!1}wQ2d0%qU;nPt zCS0l6P;h&jW4)g8lbLL-I!uy>vY0wjcuXdwb66z0l!m|9cJcL=i?{9_ITb$t(ck)? z{DN1rc6@wwd&k#byLWuNb$iCVco!MzdbZMgbvGM?JeDnA{`H9uYpmMA6|ro7O_RUK zTAZBL_RjYGwfndFFTUi|eKX_D#4~P}(w27YQC%iH(Q8>l^KKi3;00Bn!@F8~7`YgP zxnmhl9#t*g7tWYE>xuI5ZR!92z2h?rpa1CJarpeji(9%?SwW(e9d z_O9l$|EpY$_YJvMn+m=fmW9vHxa{~;^};>VwOpx}t{*I3zIDBN>qmZrxokdRE-7A| zQ}mgZoV{eW?%!0UhO>MVuBimDf19_uI_#nD-*rqUoU9`p6|}i8ur;U2pW{FGHYlB| zMRCbzp@Qpv)tocLT9$b?x!ijF@L#|E1>q)!&!@vT)EwR-9kZuK*0_7R!R{SB&%Vr& z`x!2rbKzEo$rg{bFMDAU4K#J!-pUL7F=rVdd>+N5zzs);r#^cB{noR%j%vpVw}Uy;IrpK z-rJYgithTc_rI%anR|74#J-=K;^MQ8|7yPc-#=JJqJ4QoR9vZSz~pm66NK)5+h-;f za&Z4Au>eWt+pGJHE;~Lwu)gY>`roi^vQtYHa?%<$++}ylHk-lvM(co{#IDrC|6PTh zw7DF*n)Ds!omAX=d}m{_n%oJUlM2RaI_Y97wqDt|>K%t(_Q5M()W2EyKG?VQSBU@o z{|~;G&TKu!F(WeKQd^Uk#EvyQZ0qk`kz}f_uD)^qzP^NbTbM%NQs!k(6KADze#xDE zc=4WeKW7~Y_rL!>=NzuxcV)@C{;E5#+9K}retn%J_WjlWuif(wU18yPoBWX5?cG^L zmyhomj0E2=;9-37I%H;iN24`pqSq2UDyQD_|8aauU~*XfI%9@UT%Y}Rw^~}y+PigI z)A8^7uI&9E+yB2g=D*>x11~ByxJ6!7+}*d@i$lwgVe7Lk^V0NVuW!EMQ90|$Jf_+H z@(FMMrB_AO|JeD?XhGHY)!8o%)^hkJtZ!iqwOhc#c(?SxvQMiOqSaRJ{1OD_(-zF!9IF{7Djfaaj9l!Jz|Z&hR{Y_UudY^{NY7FbS!Q1U8)&&w zhpBXK%r=&iU-cb#r{!^E+8??!dkVj60*i8@7fVi6L%GhO&+`f)XZC8RslDm>~H@_K~K+n~0dx4)=o}{E~h@v-FZkv^M|Noeypu z*5B~)gLkgcip?w~%N+QFddqGnL@ab+Fim=A#KI(a^HyGFeD|5y3n`2@9CW02Pd^ct z{kJPk`Jbp9)6!K1ocqrlSS_-BQH!?ih5v1@W;#T2F&Me|UMppDel?T3Y_i?1wYE9y z*FM<%{%_yDW1pw5fBfwA`$yNZ-@njfF5H`UM&$7d{^x6V{$>WFe*W-Pli7c~v;4gM;B5Ag6wV(@ znHN`aF3{k*;N2kL#Gwf)vyIF?73j%ppIg2_LWbkF#Y=H7hHu}?NvQfM5L>0&nv#{-p|IqPkYKHGf!$HV;p-dAP??2!)7EA1H_rU2s@wGD&6^jT*Fpj~8DE(Ou4TV!TCk|$vtU8ffyDKvD+Sn2 z9aqW`=bCQ0@jB;*U2Ctsy&d>}5re{3_J$4LTiO;r-+UA>9rlTG7u zQI-rn4-UnaAD}cfhi4{Vg4?gqT^qj5*?zE@TV}#HF6A=M_3i!l{^#!ba_suXil=N= zbM@*z?EWuhp8x+hM~>uyOoMe|d5Z(SiDrv{P+Lj>EHh& zB7XMDnUy~0^)uxgkFMTc@blW~9W|f(zKLnf<~mk5XY1UMriM>~D^3YXJpC#kKL1}~ zfZenkzYHxHAACOUuz&uHd;gtgDa5z@D$Y5gD1GMj#d_&KySLO^--;JtF=BT-u&?Rf z=MzVqE+0IUb6BsWV|s(VzP@Au7x zS}r%H7;anjO+excm&aby2fFV!@y6IZ&-AU@*X8T{GG0A7V)`i;X`O9l+cp-x*K_${ z8_Xwo)u8_6tUTL_-)r+9oLU>+pmENNRpeB{g}riK906Pq1ylI&MykBRdao7_ltCz{^tJDv0udRfv}r|gaD&gBxB^O`bpC{ zD;_mezU)5zJZ;j^ON|Hnm`{W*nPlA{u*fF;gOZ39e*lj{i$IYfB;fXZsejljvg+dh z2mjOGpRH5z-1K$d`8&xcZMC!GcdcIiJ@S3W9u-xm+pLa^Rg)AP_^U3>mScI*e?fk+ zxGjg0E61b;Z6N`Vd#87Q&@(QtTDH3C{i|0|Mw^SyN8Ir>C^jxH=I=idVWV_LdH?;M z@;A@Kk6hDWLsRlRJF?)$r ze7$SD=g&9Ie~>~?1-06(hofn+C*8Ew3?M?Z~G>4kczt0zZyc^wO{a!I6&&lLk!!awD3k6;bE?P_~ z^BC4~Jg8!lP`r@F`oxHR(*iqPL62;&n1c$t&+j`QV&lPfvUJOdeK}zovlf;#fDUCb zlKnS#7HC=c1g(>I9=lFky;gaPLad|DHUW++Ld6{m_V!+z8^56Nb?};c5yf|N7uWw% z{-v&e!Me6H@4ZCtRsnT)cMGeR$@%I(Zw9SioA>w6rn~=-r-n>0dmWR@ZC<{|)0TCL zLBZ?0{9oBFH$M3CVQQZJ3iGF$1w|d*kGKEYR9vU7Dw?Z%$acRqdLw_j9#5@9!S_c29OqelGtMUJZUmRjw6h z>%=D1jjEy8x?vDb->tN(im{QTwrU-I1kAG%G?qzqxbR660otIYkQ34c#qHM75{wV~kweS-_*-vqRzR_d}Y( z0%o>H>Vmy)38bkl)evN!VBeiu209~2%9*i2z=++Y?34amuf4(l*T3#`Ub6N`Q-o>h z<%2O7V%$F;OExK!OY+^m@-@>%)^p7Q>-nm0+|5%Ec+7tK^opnRr>%M()w;YP>f^ng ze;x7-V%e>ptM9O}c6|OOLYiA{|1ZaKC5x)RGU@E=6?Y#?jpr6hEL!=8B_#geGEG^I zoL$>ZqUU6}nOPKz$8G*qKXY00>vkr0h7*{Kq zI&kmCjSJVW8g75fe)XxvA)k-Mb6WzFZ=Vy%n&;LBqu<)+Q&3kxovj2y7%l99#mjCNBo9k9k!=sJi zNex-{J9h7$z3ZJeKV!66!BmBSRL%ye)4qShWtHmwd@BECJM9g_rh2|F=M~S#zepBg z|Ifz}B7KtW$g^6O?R8xbo}CxC^G8Kf(qJjWN`Zvi?1wln6*unJ<`6l}k)ZeaJNLsB zIo_8R52QGjrLrxxV|upv{M4Kij)DxT&%{7SoAZLk6=pL3EQwZJ`*Z%4m;Y~t$}C$u zgX>Fj@SfZj2A)nwe*Ywy`K~u&&NqeKUX?rV%HBN*lX4nQ+Oi&LSbpHyJ=s0q+5bn_ z-+EtG@Zpd4oBIE%eDms8TJvi>KDf_s?t29*|E!l+>!eS4FSvPW-M_|D0-V0=4C)Ho zbUAZ>TbSE;$1Zly^9OUt9riKow{Ub}ig>ikRh!zzJJQojmVG)qw zJ)`gK9%n@t#cSqH4F$Q{-kTV~2Yjp)6k)JwohP{@jAP={==9SYJtZ5?1l4}^+~W2B zx?}yC=q^>q{Wp``Stdj_F9yuB_7F>mv1QkY<9@4_&`X&R+*6d*-zCM=&j{g zz{0rw@_`-qHwPYS_*D~nt?|~CC-?XLiJR@P>iczrV|`IAoyzK8YkTIddMB5^-(ktN z_5bxbLajDb$|t=RY!PBMd#4n!fAL^sL_#W5WYnjEYOR zzCAX0YrL+he(S1L#x=>4@5!d9KgjxUJzsfFoXd@S9$~B2au{?kjJnEL9b3b$Hurhx zJSH;(+15`CI|~2H?makzM@zr)^k?B*jTJ2oi>IG2{PL>$t#(0O$%6Umds#vztO#El zx~xG@mc!R!MhD}eEAO8#GT*#ucA1dD_RBM8wZ?1Cb$$HDyZHQhy;Ln7j>lf}QzTg? zEUa=gmNf6$@c)nWo}cfs-_~BZcjwTpV`gS$c@MrFK7Pyj!8>dJ4I4Ml-X_u_m{2mE zb@I%GEsRf<7xZo9y0NysL05VPo9Q}jhMM2y^(!}C)=I1DDDL z?l<4Hyzb-g%hs2h7_Kbi%Sv{xX6yLI*CNEU?Y{3Hma_ZJ8E?f}8rE!fSQoM&!tDVE z%T9&+Z>=VLR?&>{|LrF+pXvGU#+aF&jx3O!u2PPS2ZCoXI=t!+-aLC&8LJux_oS=! z=E@9)E;&X_Ni(Oi?O1+WsN<2u`FZ6ZzT4fq(7*D)(QnD~r=_lYa^14~K<;4<;SEv8 zzKR4e{`qxo-aQi|!+V?eF-=c*ulRfRdBxw{N7@B{p1J=ux!olYH6>%w%CNK2zOoy* zChwY?s&hi;Kzpp}w91WMY0L7i%`q@m5b>*avWR7!qr>?5k5AbNpI0gGZg_mrKVMi> z*tghR|HGrx_m_Gd?zQIs_~Wwufye&!D_a>&q*h8S2#91VyBar@TSK1l>)q{14POO! zyqd9l{(K>ZH+EHb`S$%iJOB0X=(k&45)9LNol+BaXg@l&Ah_K3#p`bqyaXhETd$tC zoP}}gTs!s;yPv#|{mIdy`&jjZG0XP4z6ZzJJ#RM5aurz8bYR1Q`WvN-wbHIn{i(qe z{CVP!$tf@YH5PUYM2a(ho-3)v1lq7*3SQ##F2Y%_c2X|0{_bDv^?gfH!~f0wTzo=9 zoke5b{=N?{cXvuE^l%vP>o-(>`}n=`{$vBK?gcM217cR{)!HBWD#8%;T6!1r!S?ze z^IzY-`#JcH{eQ0fDa#LhkAGRzRJVR{_*!f6=T)Uqsq8CC{-n$?5S;Cj^eFwic5lVR z&@~oK4QIUA6lCigO{@>pp8qB{@w9-)X5KlQ7+>oslpOP#q&eZ7dfPYmAFsvlKh*#C zV}5dOGWYlUzde3)+^PSw@El*pw(FA**zgn<6)iHCU9&yvmb*i)!Ayy3?gzFh=x9rB zm}z{C;lua;@A|jeH;V?pN!Pw~?^mR>>(k-|*5xL%ZrxV+=+v=QV8I{Rq+lb1xRp&G zg&gFKcD1~bQ?~mfQ}OM5!-lyf5;uOcG~No*Z`^vud%+QVg|{vbwkV4nnl&LRQK4X) zOOH?8;xpf)W}SCGAjr5WXU3!G1#%7?ic9zc7(PfYW1KKc>5koPtGCzIY*-muH~W&d z?=5>D>jMfUm;MVkIvi0;;hNOoc|>hN!-4YkRX@HIM$0RRzFDD=A!rbtU~}qO)R`+2 zma^3^zVDr#%*}82Z|Oaey{Eb7$m}_Ca`yBn9*gSVQQO~IU*E^X{_A5~mhFnL4b29E zEQbtqRVS!zx4*kR_LY9czMBm8>1Ho}G0ynC+2VpAOV4u$E$$_{oUJDpiJzR`X%@nB zF=t!JuD{*-_J_ZpuUpK@^Hh98`Fp`{@9d7e%YCd^@LKPh`S#*e=4~Mke{FA=wY=IK zpwuABwnkyWyvghS#m7DPZ2x!qub;cDoAtIA#C&pR*}hFI-aLp$I%C_lo_vR%x+~Wg z_3T>5!gTjx;u#)R-z%O+8V;W?m3F##r|Cu&!^WQmABAst)UY)5?iN@p`&jis3iA_} z1_e<@wrvNN{lBei(EZO<@PMsEYml%fYlDDO$NvC^4^mnTOZsMPIN{5G{_DfAgY`Kz zj6Mv@!ajcK+W(co;N|})o{r6;p_{!{zpMCacIa`n;kDZ*Id^g8iCq*-kU0HCHe%cJ zgDN|Ub&c~&jy4q9u+GYUz2oPH&U*`P-}oxz-?%yWt!6>l7q@CIjpE(g_2)nS^CjXp z=Zh&dqFYueL{8o7&y|`E}pTtq$C~aqr-*XJ*^J=RH2RSbfL$AGLQ(_HjLb{=BL= z(=x-AL6v94CC1rP7v|Ofe!KnG-hUsyT(_{lb^O+^w4@yxY|QoHJQ81fH#6?|l#^j9 zb<)s4ZQiym&aZMB_uX3}6E84fZ}5r3%NuT8(V4O{q1ycBwLHf+d)gDeb2iOYkJ8!j zkI~3rsiM-yNggZ>2Et4}k(0jaOg)q-H{sq1FV{^v4NV-NbtDyhpmm3LJX{!zcNIR> z+qES+|69sY`!g;KrAB$T*#s;|oY-$O?{$i(7U)oRcwZNwD^( z_`hf8zxuw`OMTM$#1ifUoc0mLYn*hqESPy`?Ov`k{}%7)kK5k8;`-c#gr}+nvpSe= zc{?!Z|5N#SHsG%El#L5M3GVpI&0=oX#Bp1oQOlR3*FZpB`~R(em6I-BMutMy*(IX| z6*SiVPrqib*fPNiv?9ug-Kcu&9FBkw%nrYFGMVINUJ>Qi=1@_8?rF}T%rnE~b)C$^ zuYoPUw@YQ1ZOUohb>-ajjc*Rzd7iwS`HtH+|7oHucW$Q^Up=_ywPwM8+c$UX`RD&} z{~vPSF4%F45c9suuD{RYU$1G*d(O0XbFl1()eR9dd9;chXIoC#^6zxhuNykg(`8vw z!dxG0Q5QM)aZ4`8<*mtz#j)SIma-Q7Th*c|d!jZjXi<4(=X<*=^)>TgYXN>|*ZjV{ z|I*|4_xAO(zprm%e_!8q_xAS-QMWHh3ZGJT{Q7tM-v9jZHO-s1uNSIky!*>A{G+|V z(=gF5%Z_!N(q=llrNn{LbfTfS&mNXFFCVDHG0C22zOQKaL-xa$dhe$H(((#BK5{li z+dFRf$>5l+t*M!j_o9!N7sNizO}QvR|q9 z=Z}9p^VYw=``xOOgSnZ^-`gJQwdOB**-&-=b@c9AA%?GF)DG_d{44S0|IbQag*cez zo}4&~J4^YnUDD-Dhw|wLsVt8du{QoaFYvyet>$CB!Q(WnRRxoi<(J&_((wJe9CUWl5;@R_>>1AMGN*4k-p-`X5f~eRySX=$@al=V>!LhQ~qE>;4{&c=o5(y6osD#u=h%<@fWB zIY?@~xU=`WM}Ak_bD`;{{2zSbNYCfr(%*1O$l}jO>somqZ@a`-ccpumeH7*>*fBeOZ~t5i#L8Ryrg)AMMO5|+4+nNq+%dT%PeJrN-;^ZcV5R;{GKi{5~v#Z=bl_jPv=|Q+FL)7z2Ofi>r znigq1=yJ}we@bxw8`EjmZtc2PmUp+gMn<{szhlt)d+#6qINM+G@r`-K$2adc{Qo;W zN+)1;?OrX*471xDvvn_b1-vjSR%O#L|Fgt(-dhWWhgbNYgni8Ib`ps(zVv-!74H*k zu^Y2jPLGeeuD?b7(9@HGyOz8E+IPV2*_D60leyxVqA&lBZ*h#e#Hjw-X_i^bE$;>Q zrR!t9Mqje@GgIY>k#k!0ZLwCg<~8;cGmK{GscB?_R`#@9VF9gqYn}LuamKf(Q!UB!%Kr_oDy{wBzW(E@+2=n#+pS;n z(&76jroHD__4LnuiO6EzeKF^?4x{J+uFI_oucyxMV6;j;!1mziw&G`&GY_}z(!BJh zq2|K8z5doN333}4?Tc3a&D*y>m~DbJhq3&(ofCf8sJPX6zC2Ks_0MACbcZ#6n0Ni! z>e87xsM?cHm+j-eV`OIv_I8l#t#y^(6ci8)F?u`4aFYCH=Iol<94sB7|^Z%g#*Jbm{ z3#(clU)SH#f8gS3`4ZiIp9BM@r>m#`vR=JM>x$O4Z^8lhf4eE~4Eel4aoJa41C{Ha zZZZm7+G+k;YQjE!b7qFt(7N)c_mBKNdi8(f_n3nl=b2|dbDxmH^<*zgRmbnn`i5^j znI;$F?mO(iee~(im024ZG=HCb-+hYdf+WL6F~&9Pn>XajXEJ$kC@yIO`;KFxWX95s zQ*`6Dm2Pw6nb0Y*z-gY!1oKoDtH1FQ%8rS*)^W~>JyuaEktyh~FlhJPtFhAyn@$v7 zu3paR@!ay8(u(Hy4x%$<-|g#qsqB!-j+P z4{YXb`@4Dde`ZOhuQBia`hCxNAE+|&$a#0?z~1BX5B@ySjjQ>~lb-(E;fgm8+teRI zQj9`{x4KNuh8b=BpE@6OPRb)~Q1R`3gyoyivPqFkz8@523Mp7(%=E@`E6%IJxzI=)3E({t}Pvt>ZS9Ea=FR-LY@)YV)Ii`Rmwz z@+>FQ`!GT}T%=FId`~0oXVX6%_TClla z#rQv`V#^gda2A`q?D_4OTU)kHyP2}-7ysj5>%;$j{klhDLKhQ9L6Kr%h0x=3y>3|_ zmfbqiEB)oHamJdYJ*$tcO?u<{aJGTL+kICnw5Hl$`TD&1Cgb5#Y$3lLo~mxRnDekX z{%`W$m7?iSWk0-{onGbNgrgMUUWq5siGoRJpDbDGVBd3O<+qEESX~mSb4J z4;lxK0<}aoITU?My_whQ5&o%ImN7+*X-3jh9qj`rSpqb7&CTn%p8tEt&dDi^DbCOR zFR1f=5mV#|5&f|)X?c_D+5KJTBYPLRsC&yi=Y8&$%B3+e`}w!py|rK3|8xGj%h&fk z{?QNLN2&{sG)`vTy7%DGm(hPKj&}*H`no_%{DS7Y#7U|GGd3|jUX>VK(2*JZQ}xoe z7VXy9yZ-&tf9-rZYk~bsoe3P8m%hYIa9gj#{ZEraz=`9dJSgCw1{pBBWHqWyx>^@n zoz3*mM0mji-Uaidk29_3`(06^f9zV-gk|adw*?pUWO{L`$u57jQOxq2QpC4E=^te^ z>b`d^WnTR3cE;Ai&j*wDzU-OyPF2spzclQ?%iFaw`+kJ|=6JLJM^rV>g6pQMe>VE1 zhcm7<5)HY@)SDKZu9?y7I9pR;?zhGX#}a~hS~grt6I2jpyp(KwZQ{q-NBkYt_M0C2 z?O4tjFw_0g%J1gqMI-mN8ZxDv@#j!n5(m!I5{%Iw=eH`DJ=p#&Rmt@C=3K_f4fm%p zSlnZ{HAmaB(B7)|!#9&lObpMah``;{&Knc4)y&%+B5I}J}kfgx*U`KyuWPu`~C|BUTF`Q`R0`0g4>2G|7Fc*TKjEQ z+0pQsTw2i%|JTlx`!(UE)b^E?`j!6YL{c9w<(=IJ}%*^ok*ZQzW3CwlLzn)KHwMc95GWqc@RR1ko zf-%FYk{9#J4eY%aSgjZN6>6&TW$Ds|x0?bM*06NVW#?L~ruo|A)}6bx@00ibW&i(W zzvK5$Ouz5fHiqA~I|>@!e)Gbinq!4;x?s$l#l?kvOT6Pco<&KYbqki}U3EKA;MU${ z$C@&;&n9irE)LeZw}#z}SwY}tzUvjk{np!5SKj^|FLuu&7_>#|3O6XNs0MssGB~*3 z?%}qyhA^Ij{M#b2vR}BD8#{d4^Y<~w#8>x3b-u-himF^c+EZ{ZS-&auT>X`OYgaBf zdX{fPE<^jpsOaO({q+mYTVLrE{Q1S&cmGevXnZDclkDEQ*_WR3yI!@iSyE!e;hQ@5>)4hZw4D z<8Lu!G?8P7JfOe1;y#!BPCwAeNgjK_@y~SFZ(gjiL&{TzmB05JFxHpJ9`)wfWAkDu zQv=t8F6~t>@7ZLpe4bs&xS6AE^NF9k<(M>P@I)ma42)yaS`dGK-$L`Fd-?08UE38u zN9N(v>HDwRF|FVChiCe7_b7va*^8F{TkOp~$%)}=r9-N;N%Y$*2?4XFRc`z$tf4Kt zLn(N{lV@`#F1wnsf|Vg7aMOINf7~;ta&oBujrU4$^6di^4osj!diV|g9?f}>G<(wR zvzb5HZ!-xrP8JnNKkv9;H={#JVmsHAby1qSkAgunEU%8migf?`_oA#JaYk3{(Kij7 zE;XvWwY^fWKHEI+Ve|g~^Iz%qDb0EFf5l#wDWFEd^A~gGFDNhUi+dhpFZX@di<#$` zFTCZSow04I#DXXxwVBKd->uGPdhx_7Y1#9M(;IB{wlO!%oBfVS;rNa6XPgr_m_k@U z%O&_hUFaas-&3+(_VFA@VNNOiUpS4^V1j7F5^08p$;F+1=EtJ6BNam%FW5A{NM&7i z-B;p+ZgR4em@3bXV@+l!WS=Pq+}Y0cp!~hvrQ7WFKjtsIzVpI8M)lwNg`b|a?y~^} zY{{~QuDYob7v4*nGb(emobq<)W?Y!(I%A6>PY}1j%WK!tCBI8@3otJ^8zNvJ$?%GO z@p%!@{w{59kn4mBd>C9m#@v3(^5D)n)<2Cec^)kLZ+(|RrNsNd*XWyBFHBMyT-~;2 z&MxiIifns-z~X)PKIX$Szi%u&uFv*=@hP?iy{zU1pC1bEUHM$gaY1$6s=X}d?(I8x zkUu{8|8M=TOJA8N^e9{~ZgRNv&A=!2oAX@V3zu#(ok|F}djGXbwKcyoUx(BDgN^e$ zADSO`?^f)r_gKf9u*;bXwEsQ~l(Pl=Pn=@7^uSJ+QQ+qr2E|Q547Yh13fE;f7%}as z*RD)2^6>whx@OAnu+MSJb(&W7UDTQ;?( za(w?E{!#(m#S*{I??2GJeE-4j^Yy*W;_)->Gdne29p=;CB^xtu_UpuswAHO)*|F)I zEBsip{Gz4=%obxili&2aJSK3N!>wl*rZKGe_;{c3F^R<+wL#Ua6lm@Arjkv03YgV>n3ArvT9@TiY)em?}5@zRH@)2-mrva!SsFl zznPWX`ax$5U10;4nT8X7zgOT=zy0(s!zI!GPMi(9{%_JQyxF_)-nklvwyn%EH>zC^ zURlM-+|BXq^&{&7Ssu={8yEbpxgPOBEBWlVV`6f3pS1U`ygpA}HiN(MvAO-DFAq{* zX)id%p%kpQpy}hgr>*xEY!;q0iSeoWf>W$gzK^vPm}0{c_Bt3QFa2HrVDJ`fIxg-0Z&xszWPUqS+c!OyfDyJ=Z4)Y50USRNsBUb=R(-Y$7Ma zXCHa}W4qZoRAj!tL@mZW3=n z-Kt&|&}`6ejyLxIh0@#CPhJo+oo~fj<^_}gFwNj$UHF%U>8iX(7aMfFh{qlhsRm+615 z-LK|z|KL7vJd@#WT+imy66Mpb%<6v1dU$1U<-t8sQemdwly-P&Z0L_JR9N}5-)*1$ z)>ZrW)jH?z{(kS^UjF(#o}Vh9Iq;|A_3iTW{ze$~!fug5(%`db^Y zmi>0NbjH?O98>2zOi2BIq;N_Kzoo3eq^otE7GAf0-29|?qE6}ofBk#a`-!JOSt*Nw zmBFb){K?_^>+B4zWerCg;-6SC-8j=&$D+%y!;Zm@C21cwbE&!Vm&!Gj=ZYnJgxI8d z-+Wp0Le=2QUrFJ8YiE~lDE-|3;i3H>WtYEpefR$~nBTX%T*q{LeSC(aLpp!Vyrnal zc9raxfB5JNi})jxxsdATk|a~&j1>MQlai%2o?heKD8&0HPV7&&g0N(u4!efWezEyd ziY*gfg9aNr5|K} zp6T-ZcxGwvextZ!;lFK{8?+gATz8+!r=fgc@9+Mv-#*&^QhyOU@3BiI`<}|q$$!Of zIUlIvEIHTrw(-(_vA=QrfA_t5S-&oy-AmxYu_n(A>o>7P^#;V}<-AYIE%u(xzbO5- zXo{q}^5N>)3tR-jbNt|X(I|E0|4jwceb2huJrH+1$F4A6l3|V(;{yGQd1+furMflj zyMFV0)bY5hzaw1lH){RmR+D|d>nGohpS#~XpADYMcjM*jZbqxRoJ6 zQp{nkm(^dJzf7wn(q}qq*0QgX-tE=3s6qRJrlCV6C(rEtRleD^&iT;{dA3#Z{q-OF zCtY_FjH~}_S@+{l{)fZQ>w70(*WYxje&t(6!J`xJ?fd)Z{e_(MkMHgF->|h>SpB)+ zFC|0CD{mPEmq>d4%wcf*-6G)hiXD{b_FJ4}+;%QL-s`)|9)UmBPZ{Rc^?dg3oNXP+ zc|c_i$W^uMVP|^;=1mhnv%9;sUy`}8@Q-_EKLb~>-nsazfA0T&u)OMb_5Y{!?WZp% z@A>(UTc+keD_{K&w&%y&t%?_v7q-={@7AyTD{f(JcZKP|v13+#%?7Lg`iK8ttEu1$ znwtFz+6H!nnT>~mCsqA+YsmkYzx75wL1Gj3JbJLBzx>@ct?KU8Q~ch0TRYtkx?TIH zXSH7FjIuweU8Z^5hdgUoL|)(CUGaT+eSE&w>IZ*bFf9LVuO`RTzP@nNf8}$0aSLz% z6_mE#zD07u6}AS)gA5xuKL6uXY=JaPXFZsgvYV}OnYF{hfA`Z^H5d~vJy@v~raAZC z^s<(m%pG$+uA7xEn(S}IU#@rbQscy9O^F?EXP1BZ_TX{6(yQ+!;f;N7^$O~`(l<4p zzA=UI#r+uyr_FX95}qL7#PLy*i=jn8f5X4J%)R?J1@uTpHU zZRhv@WO`&D%Y@aF{QMIW{_ITfd@J|d^4_9j^HT0F%=DzpzOQgg_Hn;4z8{$4Wtm$aaR~>Pcl9;jl{eeY&`(G}BunpEQutV)}4D*NH>14z#4|5wBI6|M~fwzy3?K zW!ltWZ{S$F(c9tEA@ls-RigR=U-@rMvuqFj=s)AR#N{(fxoUDVE&4yY^;)04k!3Sg zHo==Es@Lw_+c^(+Y!3XPDx}KG_~gpAJV(EPnN0 zIG$lil7k4dyZS1g1uOk8oj%1-!+C4nYpvgFemt4Kq3e*t)q6twW(lsk&l)YYz-{Nw z!p5~_?CNuQt#?VD`N;`7)Fg`qlog+I+`dzm@5yY(U2=9Fh0B^ndegrSBe-WDJgQT-f%qsE2{yf6}dcNoUtT-L?Kh zm~Fe&vdh1x@D|S9#8LA}W`rz?+V-4-*YyXN|T$Fsu>8ni|3IwXvpZ^gzpRm zf~|9I>%8#qVc^#OzmnZynrT6am|~aep#^{5)Py$O2rT}nIAdOkoCw=9V?WU~s|*5a z{<^Jhci(;d$FB!rzpR&dvlN|Az5?o%%LOoekWf1-VAS(T_9bLD+X&qY` zZ2Lp$nc@5MsbMuA{Xd*6W-$FMTX2?Pp*7Qyikim)=fAz*wfK46V(^CMmCPaxHEo&< zPok9B{&QT~%~t*Ic@Kjt!wHM;bMo{Ly>zv?$oN&2dBLlx7a}93PWhvCd?stWmw(N# zzJtx@Z&Wevh-4_=?*H-86Si}^vekC3u-K-|^x=NK6NlnF&|uIb^J@$N;=k36&-O61 ze&o@RVw|-jKJEO=;};|u3Uvf|J~B#(&%d-SGA`h+%!~O2UoGsWil136b0CdzMUmps zs?F`YqmTc1$VSRuG>%SdA;+cb--JhSI?{;bgw_U!f@51 zuJ22Z6&$}A`8py0F_ZZ5T#uG*KjoY2oH!J>f)+X)DUQ)+n8^Po*yUTnO#OzPYi$^& zFfcqnvQI)qM|Rq$^+7v-_#8^Qd@hBtu!x+cNR*+x7F1kv*J(^rKj6A#+x3-u9#~y( zS-R58{kC7|jqYP-m~&q_a)&R6Vv7#A89nR4tnAd6 ze{WiriM>eI{=ZHz;nSQr`(pvGM+I$vZ78 z^6q>&dqw4iqjUFevzr*M{^iw?I;m%}GkyvE*!3ex?D=F##TW15HSJREM2-i>F=%l+ z^j_vjx^vg=@a)aHC5xU-&}k?+FT%*7*ir#HqsOCHV41MPKHh|&!~IT{4oNH;v5E&i zJgyVp|HHs~r~LA^ifbm1Bah7~`;+i#$bT#vE1tZUCCeZ0ae;Sw=6pti(h5gGtpDX>q`sH6{w?;ophfkZH{4>w5?ojG9 zkoo_lMoxRr^{eFx^R)Mb_B!8heEIA_@ysJjiY3h2vZZeEDBIkyJve)_?-8##S5#fg z(iaK*4;D~p5!h67gKdI9P_dD+!^61p+ss_cT^O9$|GO{$S=Mmb;QY3f&w1s~yif02 z{VXJO_m0$_K-SY)waPe`cC#pb(RIpzM{9g~hvN`m@6rB#v!xNWYelevfeqKjW=E&rHu7PAlvQ zi0(X{W=e&~l|^(zU3vRQt6bx4Shk zsw|pR)ZoKmVewA?X>Pytosg+zwx@S=OVvlMnh_rQK38u3Ym*-zB7c6_dFIrHN)5&X zci+!l%YEmT#r3v^W1S@(ekYAU?ZeZc_TiGW2;~D!Vhi4tp8e-@;Jp+hSF+fOxU!mS z?)H;1d>$}w@MvR|`}|2ZBK16D#S`lXmp^_?)cgD==GjlXH4F)x+pmbsyJL0e;7_)s zmY-MZU;Bdk*%hD$j)(8bSO1o7US#&*&-~AVXN*|&b{n44Q+ku9YTvwh3v-N$2-~Wq zt174V2D=*{N-SQvSo6`I{*|JPZz^`bmc4V!=J@N&x__ljob-~!K;sNcLE{WT_Luw^ z#L}kGUW#1zyl(&FSAMbF zxV}|N@Lk^g#}8^`CzkA*6rs-mDa;tS7+M6*Yi6>}c(mlt^Dyrh9G75g0j}H;YtT3= z@?r)LgEUV}s$E!kV?x~4E7vcUCj=Gms=T)ScS+5<&F>p#vo46MP5vwN`mCLw^}>@( z65DQ_*8vAEsPJ84$8kB@+P2b6{S#}m{gQqu#RGQp;+XzQSlGT-?ovJU;Fa*lP!aYn z9i#3Ar;?vJpQ@7l9JMyiP0cBEO;TlJb#3+9?z3Uy%jbq&5_GWYS2s_aX$3lz*%;JN z_`2}TpBe{#4bC6l@ho%ZxW4$RdT5#l@7`q}89$iz?$vts@!vDu6+d)toH?z(U{&EO zi3$4Ia<5DiB^KTH-__OPcuDZV)stzTtR8YqjrpkFBJhY2Z0bSYPgkcl9gGj^e?5(b zZ9)GZ%AcIm1JZ+-(WE< zq9o>Vw*TK%D^~gK>#6*H>-*B_`%f>bWnZT-UoWaTB2u*S5$6V zTA!Y>&>ysAbdwLb#&nn|_+Z2Dn8W+me6N3}x=WZLs4(HugS5a4cdjm zho##31*{BPPpfbD`|zpa^2rczx)QJlwPseTGk>f<=~=QaCBc9>;lWGiBMkD*xzof$ zjMGFP$C=hm{XL_ta@)DpNpnIq^aCF6R5~#CE%%!3RXbj6opWD`4bj$Pe_BgjZ}rtXwI<3guB-o+nkdgH)!U}J;OWD6misC$ zU(x;-VlyaS=1`ZsGDIY=0yrdWfjHXPKWKjCMUPqM0XWqLW^}D4jpD%y!Ft70b z<30Ve*Uvw_sp{2vqhl)yS0&upxg)Kiyj<_Y*Mnw@BBsn>6sxcM@!nRkWx`R=7QanW zJJhc^EM#3!yeu|Nb_2t!m?(y6;y$KnqL1~m{$$QfuXMay!``Lp68+Y$?D{SXi}>P^NkK9w4pVTmT$;B&`a&3!@dvJZn=Xu}P{Lte$v)Q^qcK6+m z!s5-%&7ZfvF;}1d^ZhJF(8U+s;CyiJ#nigrd|jD;Z@yL4{p0UC_s)M!o)GhQdu-WP z-8*jbLy70i=i;qO4gwx;a?38*y;v-4`c;2|NiBG1c`7LDZ({1%`N)2a&H}d|H&*ZC z`NfxV=5R5?^(*BGSLW1w(9_uW?^qT8>$P@P;=Jic@4xi+`fu;Vp~&6F#Gtrj8IQ!v~c@b&L)>OOw-Tn*_54XVOQU7-RQ1&@(bMJoXSJ@fc;~TV?J03^G z=eHbqJUjiz-~QcYE*_c^pM{+`BDom(trb(YYP@7RApEv9A>6K8`uWa?w!Qnc?tzj_ z|NPS?$AdT-^xogMY!|qs88GQshs!eanG0PwA}xRHex?d)D+w5dzj|lw;C$$4|I483 z)7tXH8nhU9?7e#M_2km!JPO~n($oZ{_{NQzaAh4I1~EOwaQUcKhEV;PebUR{zTQkxaam;{mO;FXF@_;vTSne#I2`6Nt=pQ-3~_s=b`-CxZwdr0TWbX+F{fh}%u?H6D@8 z4ByOlMdW`iyq244xPOWcGpGS!0E*qP36en!YAJUPG&wcyzjCyEf!{xl%bU9PF~3XR zEnS5!e(HQV_6h;;#hey^o$Lm(F~?<;?5NGs^BfDwezV zLcw75{}X@bit~D=%`*bk3=GB$HEsWY2pi3r$&?aVbk_cq3quYB%MH{Ym}sOrrXm%^Mx7`~S|bJ2d^F_XFGY zyV5sB)VvC{=laF>WahQc&YTSIvhDX&_l2uxd)`=o`Tx@3@BYr9qcT4?gAQS;DsX*% zVD*Y*Ui(`1Fy=D-5AB)v<1cbQI2gyCeU@YHJcG1`riXTlEfZQD_!*o|d|mvgVo9Ir zpD!{i>`On&u9$3p$fW1@zYsBps#u2pZ+fMl>@W2SIC0Fh2c^2zt?th+u2$d*kXRuv z!uBWO#_!GVKOXGmJ9J16 zuDjf6hrcpLqEW0a((A!pX8q;68;0EM{)B(J%$zmqo%}jKUTl$J3p;0MKb2;jQ7Hu&t0xv zx9eBI`sAki?aU22nu(9T&k}Gt@y39;K_IC3j#*UqQk@GiSFgUc*uBI^C|E z%UR15TUOuNIX3AqEM@($Sgl1M2;53DU2LZvf12ag>O03vUoZ7f zY|xSVYN;vcFkOyu$JV>YtBj9TUN6f`duy+_P;7(1V z;OE)j?P~0gg$5u0UVYb2IliJ~^JI?6Wp*zOr=MA-+9F_N461jo%yXS9{Ci&5-ZP(= zriuBmpXT=1D1D%}m!o>Nt<1dbGT-;7Je~gP;8M<UQXTyj zRdqW0E5xRWU*Qf172MzROFn*`J>gh=i-40BxJwmwM*C-J#H~+8t&I1Xcerkmmf0%L z#e6w%yTb2XHFih8FW$tk?{2)e4TEbOdqmiFP+9dAbavg6u#Ups4cb9mtGK3#Df0MO z-?NFBrkFUlg?)a+)EveuKR#r2(f*MJYH~+!i{1kARoz=?!Ej;wv-0-{R z_rKfy`8@BwQr5Yb)&_HS{p9=c?dJ|A2MLC?Zf|U|?u$2rCc-a+#&m<6k69o59;-7$ z<;RMutNYhIW&I-iL3*0_nYLGK3c>M0oeoQFRNs0zJO{OqQ0~!=QacWbJu*3bP$(7StLiRS*-HnzC+sQvo zT;+=2nC!@SAiCy*zIw`4!*{pZw2T;!C5E;(uDU<{z4lEJ zwpZ?R@2&sFu))0T$j>i~DlGy=nxJaR^r=?;|Bo8e7<5jh?kl-A@2Xw6>HO3m;yu>) zY(AVVUvR3Zch#})y;`+~tDN3?v6!9O?$!YAh#5(Pv~N9le9FI2kLT-|`7F++~(R--lN-uqe+5b>DqJ zIiF)^)2i1CYgd`CTm9Z)Y8+$fciD(5f1dr_yY#(7+5TFeCAtjmJ%^n@!6WRzcp!Pk z4|k77?SC3IKW0Zh6@3|cHe-d=-G95Li|Z`Xd1jR&xZ*+m9U+E!`k*Kl2NkqckLUdC z^7L;Juej!un6R_>V9V!)l8H>Gxu>W6tG#a$TEoLs4HRm?g z1=&n5*aS+wD(9!HDLg(~^nTRpP{aAFF2Akyua3X+r$$r%gRjPgwG3ZPU*;UO3<8Y; z8rgwDRNLt$=f529KdWD@u+Q2PT9Lo`5qLGvx_GumEyjSQ3{_!0pE(spkpjOu_f5RE_1<#+j`Mu4+y@F=8&Ke8otmM(XC-4o zoI-|K!`5lVi`MdNZ%W8)KeSyT>uT_aT5;R3g-0Ki3b7e1x6BfD&;woQ2Wb%eQfy!Q z&03PNZ0r6HJN919VtD=b&&;j;ea}PJSp-Q$+=g~)vR(842tGfEP$`34;`&0U6_WrJY z%%T71{`@vmbZ1swWZI<-UG*<-FdDcv2soVppFp!l?$V6^H~;-(Ues{JO?nq|Lp0Na zc~jP3>QXt)EoMGF^sQKcsE+=Oo+B(9EE13XX%TQ*1}Ynt97|dG@9>>}myH^nJP&+x z`^U2@;{X0rrq9LhU)rU~qto^}>{#IQ^Es94KrPuY@QJdwj4G=1=1wj%|8PE>u|tS4 zA!gm-Q;+xDeW)&*JvICDOKSre`Q0Ks()n@6)w7vB_xwHqW`Czxw*#{&~zF&Xgwv9?y{6$6Q*IzwblQ6Tj=O{aiQyagYDR27yhx0vJ9_EqOWVKbK&U zsFC=e=du4cfBvk){ovWQ0>2HeOC3)vYTA)`e9dHo4QIYTpPczvOFAe>Lc%woNT^_~ zKMz~q>m^B!CnswE_33*2DWpeWlND&AH0P1)fA3d1xjkO@VetgfhCi?B-z^Dz^sH># zqxhJ@-CdO|pIldclUd)IIGyhQjj}y;t@Al#kJh@T27sEXz6| z470NzU;RIQV~6PJRpA-od#~?3y8P5U3Gk+9*(>?!@i%r`V#yy1*I$cbg3T8JkCNFt&~i|dy*pX-*qd=bp1DVD!Kf->c*k$kKTK@>RPWq3b){~bL&x4aXOOm;&jY3 z*FXUcr6UrFe5_1P9rghXAGomOAX~0kt*0towIk$_c)phD=r%#E^D7C+S zu>8RG1KaryzFNiMY*(r9VAX!}&0%|Q^{jd=A9~5uN5muJ0h9kDd$*3bcmLG-hv9zm5Mh{PI38nVmNNv6|Y5!5(pOJYNHubM<^!|M3{;S(s(hr>O9F% zyr;Xk@O_t1(;+?$4gn_{P_J{zJdsOwPY-YfKHN1W;O;-O>#x4%O`qxdz`L?>{ZiJ1 z%7Y#eaR$F{96Dy1Ug`}gbK9sl`8Pm=%VUjMk&LI2*Lwm+^G_bR;q^Tr#? zSM)UM{$$?vp;^+%LH>2s>rUR14c*KiSAG)?n0-oW0>`GnmNWep0ZsweIvZ43S|%KI zWIT`^wq{-bgq0gK7kt~=ddvUik{`?a#d#Rce*G$Tfn&4q8wC%)TWcPd&0Sz%F#l7# zRzl^$jEFb`JI4o87^za+>p>H7MIrgD$Y3v{g5V81y_ z|LxkJR3(nj8A(D>$A0!D;ekX)~UcHZDH8 z>DeZ&_qrz;B$l%*c*f0kbl1O458~PXJTv0`)xF5U=v?f_>^ofZc;BdHtW(Tb^YZ!W z9sH7CgFiYf`|Tm|ef1(Q4!INiFU)pg{qO$Bc8}{L%>tEq4}_{;oUo0_@^750lDr_~ zW}_er*L+J>MkkL}P*3*Cgo9P*pS;>2)bQk0+ewBESGM}qN{I#L$9}a7+xhIy(p8nA zrF&jj8{CW7Y?P(tlY^{gT6yAvoYgizwnv8uFiv{TE&1^BvHcgczwbP6%pusK z%ds%#pL558nR8f|Cpoc5&gMJwtg5P-Ddgut-=8ApAFps+Qao39`v>QpgEM!u3)>vp zSRt-nA-?>PKm`65CjVh%c37fbe<@C1ieXmW zt=G8|g&9_*gc@;dSa7xY7oU&2>?!UV?fol)E<|0a4*q@8Yid|1!v>L4yV}_P2a5f8 zuJ?G3`vK>V(|73Foqwx%a!H2D!Tr_sS(^l2=~mu2r|f6PJXcphRg$?-JSixUOK{r< zq1i?sl_vz<-JDj#dhLSf?Hk9{Z;0C;mi}lg^GG?iWWxNtCWU_{yuW`!sA<#BAQ6Qp zR-n$zBSUAuEh+oHPA&=ln;Ivw;rr?X^=qeY6$ttIzuRJF{MSoNF`GX%z1HHn(6iy! z#$!hOpQ~kTa*K{%R?hqP z#G2jpE9NJ!o0WMhsFB0ym7`m%$L!1r|Ex_)LW);%G3b@dcKW?*_77XTY5$$>_guL0 ztm#zn1JSyr>%SjmOPcwEQ)M30A;~R2+#;MDI3#&NLzKK4Y~R^5KdZ;GZq~TYut88w zt>LD3>bpyuRw$%iHD=quka%EvPGerT~2v= zZ|%LBY9qI$G9A48VDpx5_Ti!Hga1iC`*k%~avd+nWY-0oSfd*582mpc;orDpI@c8= z-QXQn^6%8w>=L*$wSKkvgZhh%`?Ks<{9&20zTuPj4uS0#4$A2jGRxjEh~;RTDlmnE zDSVnhfPg~E)P)QWbYH~_d;DXYob9jo_x{p5CR*DUJh^lKiX_9;Yje*lXM6;u;Ad~= z8}#3M`$hJ|<`v(cPriO^(;l5W8}GbMm1FqI_xJAA|9{?>Puu!*#_ydg|NW}E-@*7d z#?qmI&yM3iuha`(nb`|&wsEw{Z(P~GRE(wN++~48<_Xzq+PZ$;>_UzTO;;kB|6bB* z41E2073V|VnpWvg+6@2olO!Jm-8-^#$6{O7D^EG^dD^fZNq(z8VX8n+pxuIUi_YZ- zM3V)b_OvrKtoQi6US3hfU-82BC295VPA)#n#1O^X`Avf9fQnA_)#-D&r|q8~`dxNK zQR?qqTTEP7=kK3lbecgzvS+P_n8VFi^?EP*=RCO2^6y&^H>2UVru+i+npxRzmk0lF zP5Kvp%*8!#j{0l|>(fF8jXMO*wipPUcH!xmEYx)HYUT3V$tU%gj@%H)-=KH@ftcOp zgVpl6Z`Ch|XTM0|&OhpY%im!tzf70^h3T))Wo)kEnqv3xl(RF(M|LiTc}k^$(yRe-V8gVj+%rBg-h3}r89htlZr!)1&bR7chiE%(y;-mH{fY6O{{PYT z{!;~Hy81tI)i+!}sJ~Iau1{}U>9mF_pG7lkHy`^dBC(pA(UsAu1~e>kr1;L%S_^HL zbJK#RdCkhX{rYFQr9WeW#A&`KH&!NW`zd&WQ?&^BEKBFK5Zbh`QWq z+_siklA$o{zr46HW0lp}x>%VtirFZ8ao>Ja^!g=-*4F?uoj+;!g zq@Nk6#Ij$h4vAzwRKevj)1OZ?wXR-Om1X;rbgSqG>VN--ZkMqUBoS~|i5*fe{As2I3JtfC0=wI>o6x{`v zbQk7{*pmnTR*4t1PbyediOeqZ3tnzm^SSIqvE z8}IPS`k(uAS`W8c!%?9Ijo6>lm+?FZ`yraw9{+mc-F|P&|EojG4PQ0%R_d(&CB^gi z)y=ErU+Zsr_;M%SzLgcI;Kj?fwCaCg{PrEXeb#GQ9QLzICPvpS-(LRVzhc-s&Lna1 z9nIW@(Z9Loa2*eJ*wgG$EiK|E|GS}MQl~+3!-Q1O6ikqEmpbpyl1q1XE-fxv={I59 zwat^cx9_{Qlu!Gij{b_a)L(o*?(IEr{T%C#Wlvcb+cISNJ=|^;&NksQL&xXU|1&?# z=U|$@?r*e-i@x~eE(M>kYwopv;WaIve{|e6bnj;T_CsQ^qxx(`-P+Bv`8^s!Uw6A% zoNUt+X1w!P%fHdIvcps+$-i!0yy!_WrKj2o*Df4p>pQ}JBYYmy!Se+Qbxreb6tNY4 zGkV9UeOe+xz3FPp>A7)Ej0cjl<~?yg!Nc=YT$%UF($6w8TmQ9&1Z6Yq*sLgM#l~>> z(*Ih&)%&>QPjlb6R8aUkqSV;wbg7QM2TOxs`o&Vq$O+8hZBrOTvj5N3_3b|2^ndSz zYMZP&JArDhiw*)U8mXL(|5yC&QD@mv&K+zw;ZJmt$|-T!T7YRB%tDUEmpSeT3VaoC zzq@7Sl-IihL>NCgHM(e6aip^AR<3z}vvdEk-9M&(3*006{;}@|?>(G#jm#g5W9=qX zaIILIYQvhd?0`l5g-JS%jY3TG1cie{MHp<_>`R~AGJ4~(al$qI%Udq${Fr|3@wb-r zeCz+$O?>~>%ZBfpsT&|G!uIE{O>K35Xm{c@mVz&Swf31BC+}%-|2ZA@kKKo1@fIG1 z39)|;KHKke`GM}M3ieZt``_%~xAZ&xN2*_yWs1$T{kNy^Yxpy=OmGxVOupNbeOut0 zPq$O%Es?$qi_nN0+lz%eww!#>`$E#L>tDI5^@Er@hbMj#<`D8{ERF7Dk}VXLeWU2K zy5K?gKBiRb^Y(jPSSA0}IGym&V5s0NX5hFea=vRx^?aE-Tx<>1(Lbl_D`jXq-Dj-- z7O%SRCtuI*ey#o6_f>i594=qLb)Heg<2ljZRI&(bzA-`=ikL6p< z1lNX$>4HZJ?Zcf6_?QgMo^t1$5U&vU-+3=RJm)df_N~hsj3jJ?`3rUK9nSn9vHVf& zmm|*-I2$!MSeWzo6j*;>rmo|t@MM-VFk&pRiir zwt3G2saG>x14<*$tV$OQvGmJgvRI|!b>RQz*2d&Vf9&{o{BvhDK2YKDLH^~ndigbf zO`{e~?#tR_qztfsqNBM((pS72m)GX0}Pmd-l9XP~q66kq!Oo^PL$UYcFVR zjGJUA;J!4O_pZ9itxpoVGKt}J3*UENaFNgMT+d)uAY^mQ@k6l;i~Zrm55adU6+W|S zTq_dEKk@1LPWEmm21R91)jWBvn7}5h_`iwwYt?s@=cUgs-u`*c*J&=RC(h;hA!czc zR3f3$u~f(DK|dF;jezi82cga`AN{`($md|>Ve(|2b3 zFKSqQ zcieZCxgFMRWWF)*GtWh5g=z-BFK^$zh_>nYS8CM7Qz*5k`R@bq8~k;hhd(^G%66E_ zdt^~-gxS{j4!_vi_8GIA3jSgfFcJYR%JJ9q{H^aS=C5^E*fXJ8`TwlUSO2Fowl-G1 z+pi^->akNJaltE|meB9A1;;h7ZNJ_XIC1rqpJ&(oS{(6T-g@=_laI5${*QZ{{l@HG z%JGviY-dY3zFNnJ{j-1cIP#hKD=ozZCejO3X35Jv=&$qpIp>UDC~udKl|aWaDW|_1 zk46aui`-Fc(F{IN#%_SMCV>+Ve!5Zv}S|I0U)|I72dD>U;Ss#L`P=A6TFD)_;^ zZ^Aox@)jz86X^Wv^vv5ctf6kk&MhrdK;zPn%wKlZ*`3(V)^O7P_qp12jtVMeTuctK z;T^HBZf&l=`FY*zLhZxq_ZwH)vLBQEZ1t1xi5J7Asb^oao<yJ6(`$>b@94I_e3Nt4+XX_bdTW6{~AQ1bQup1kzOzy2LQuhUfZZok*F z*f@iJpVrrJtP`F;u@hrke0ttq)$jk76bG*PU%s1RN+(0}QwHna>lHWt6+I}>cwQek z>8WY%2mAi_9yil%KFAbXmc`a9E|Pa=nb8`vV(oqZOOpavcv-&fm6Y#}=(OIbtN7yO z=}YD|DS2AV%QXGJZ0lV=*@f9efcvTX1-JM$k8LVin6FMU_@nwwx?bLPMEXQglGIU&pq{DX&>`D zyS6%UbwS2sHE%Z@PZ#81`<~j%cD1XHfrZy$+t=2A<+r$)0?jp58H(mHEq=D{_>|hc ztrpJFOtU{0-??~`>A?Hj|C#Ngf6IT?kD7W$(n+g{sbTwy`mdMx^jc!Jzpp=;JDWEk z=B@rdo!$9+c})(zNxUmRQ|Ul}2G5n^|DhXw5)X(QA4+_z`*|}@^QQZUqn0v>Fx5|4 z^JV(if941G`ziJZG243xYNO7Yz~?^VflphWJ%B8MyHs`AU09H`-MJG(l^%Y5;EM-BZRe}?~i+w(-}fA0y*ZvQ>r%LOtis9uZG;yw_|`{?8WlQp~EAK3G3kJdhByGlNv zP5qTu9*3LW3*GUX`%6IT@9z;D6PUy2+)mwpGu6rAB8S0Ap&vh=?Z3M9zvYx2t9@Si zyx#BG{J+qCePsW)(EE#4w=@_DGURPNDlv~Cw3A`-49;CkYu^3%wX3S_lSsf__9^wv zuRkvKWffL*aPz#@@Kr?P?sSH0kEh@0+kfcxhxDKOC+>Qg)^bLWi(#KLXG2W#r?3Ab z*RII^HhtN@=@Jal-cT5jH|7_BJ zCdT_;KzyD1xmWoMzu8wbt7q>&-M=<`8Z*b#fA&g;W}E$3|4ILXY<5aj-8vSP|Gzfc zJ=3;fT=j){MnzsY--MJ`FVD3&&bYHy?e+%MdaY;$KP!PFwk(d$)%-4ZjsMQgJYD<7 z#lM#!pyBzImJHB9warq2KhM`qpUU(keCm}|H{GHasKx#dle>Ru)$!J+tXB_wYI^uM z)-+7xlr6)n=Glit)3yKQ{oT*^Z?jqb$*(nH4HE?Ct@$q-^{D8Bgjv){u1^!L{@=PQyE)zkzscC$-v+43;q#yz*}*L+pa*)8t>XY#G= zy8A+s>E=bZ#+YB~DWG|Af%6*nq7%;5Z?@*nWsntIAn5g$F~R@Sl~e(iWJ`m|M+2Te zD7)F@7Rx$S>GTy*9(>j|t0xBead=)m64`#@K2>wX7? zIU)s#O@}tjy*5KU(&a^%Aexq~#E1w4Lj|~Uy6;(k4DL*{lEx8!$SQP#{(BkA7Kk-?-32Ud;r@!;OucH1+ zgj?+NqStFzC*3stzxt6S!!N!k$Aq??VbJ&!_q^$!(_MQnABKtR|BD+P+k0*MjqE*A zH-ZJWO%D0E>E3@;W9ia6?$RuMUyrS?d1qj3&BIwCK9keH%y|>TDs5(s%8V1$-nY2R z1h#Fvkdd#>k#;=iggn!9Tz8$mQPdQsT@w42v|5jbG-4*hmZyaCo@y`9}1u^^#`2|h? zCw*F@^FaUoPyOPR|4)8hw&TF!Z^2udyWjYBJ+ZI)y1&JAwu|FztD&2!`y zKeH7w{PpwQhQ)HTr$ru@c>eU&Z=vscTRE;|ykAi!ka61iEwjOn3I`6*3hs{mCk_gG zx^sBwvHfLOBeCJylnhHtzt0>uG`rMy0uWtQUT>alwjd#&%zCWjr$^VLY`T6*p5Cege z@wR1Cd2HuBmNN0PaQtg7R9bSpAt9GLv6xptsC;pK__sHe`%0a%n7tV|6y+YWeVg{^ z>!Gfomt2#NoNGI=)Q^q3gjuF+(XpVWr@`U(8D|NG9as7zoMs!BIAg26<@;+NL(U53 zc(>g0VVUsr%KxU<`$akJqW(*-VSWBHHX~kKl_6&CFMHn)`#IQd{SbX-Hsg_f1fM~+ zro%ej`znf`MA8~UC!LLU`nG#Qpm<_2vtzOBi+K;j{;wA}E&+{$6_igWS2`Kw>9KM^|4>#k8n_fDnpCF`xF0v$E|r- zoc%AgYuQr3B|_V^$CANqUVQkjHnweeqXT)57&x89FE z;#fzu_^=iL-RCDsq_`gJEvk8%D=EfboV^7|<(_suYl*!TCh z#1v~VRCI;>^zr;Bt$6)ubo`DZ0*VYvP5<8%5URfY(;@Qe<*@xpPKgaY?y}5x5{uK0 z9eCpN%kIkk-1XNlU%z@;ugY}wwKJ(HmX7s#SM5(pGxBX=^4X@Iz5n2@*uUihiAn#a z@6K=2{QV`^@?DJDzuNf+cnaQ3bT1J+VVm2-xcn!_ox;>R&R49jADfVv?VR3j@{}{r zZNJ{0E++=XFAN{VBtM6D#dx>Xy}nx&)MLW1XXjk|sT;oj?_P26``UB$a(_>InqDXe z#Zp(GTca04K>zne40r1uRPuhFaJBxo_1js0d3XGGKlXEf!XNd?xBi#k@)zv-cR=nc z*Za`t|KdHFf0&aOI2t=RIWQh5uW<5PCx7$N#N>D3KB}^b3@h~V-kq6uC#39CMCpV# z!P^U&MV|(Gat~p_d_SXwea<`<$pQndOO%Hjs3sqNaMoa^2xWnJi2~O z-zA%H|Y_Z^C!(NeFyD)91L>RB@f^|8{cQ*NHK-MX&nly3j>?`mgt8Oed=TEkF1F#BWBE z3kMHho38ruKa~eFFR^cK=zv#Qg0^<)ZVxybQ9L3E8p*x1Hjz z{#&m#O_fJSxQprECa+kob(7ya7%q)YW%v@x=J0aq?RoZZ%jW)XJ{kUhHOIen&L^uYYVSrIiwi@o>Yzzx@zi$+_ zEj|^*p$OUr^26D%)+F4!>yKyZ$6b~`@7(1nYFr`2aO#(ueplu72mVqe=YL!Lc-H8! z%=+HGPRqyVYU4h~UHNzSOZ^U2hC^;^4{@%&^ZK-3rk-&|@7((@E#9*RB>kA4#-MPh z`tALs-5<@Q<5d20ZuxmXRQq0c_C)iy6_fvb5uI=EXZ6QJzd?|B$NAaIq7qhJKeNmK z`BzWL1FTXz7T#v$5?rKteuJ>RvxfCDo&$%B7>a5aGHj@MBC@}{WsS;C3;XZwhIbeO zcJ(_ZRWB|m$~bqgW_@A&l|L`69gaQJnqCzjxh?$An&08)yBB%H_b2hs|ba|(l%b0e^ zlxa@ZIpx0jTFes)o>^F;d|q{^xtaHyLW22Yo@y%%Uo>!N<91Kv8t(?ctjVn*!Hey z-*Nw<9D`%E^ou!3>c5zBD;v1)urEpY@+c7LZLcl1VH zg-1@O_rIx%p7T&$x_;*UseTO{3Wr`s{eLPi|6evNab9`oyJMH?_8ohZU~ukl^82Do z*Zp_es~R2sdxYI#D@(|9tsnP$?c^tJbvp62Ns__tu#W1cPdvYmUpJlLR2Qo0%cjA> z!eDmG;j(4?JQD|*=SS{;m-_B{rhgxEirn$r>W1kzKZpH(@2hU!hsY+P6Mx)vWEcb<-FH7Tn&xJTts^>xtx$c`Hq8zS>_q zR=26-s=YRI#v`HkYirwX2&#-$!aW)MvOC^Cr`=sGSX$*;v;0hb9jUKJ;@J; zqN^YGnltS&*fU9d8!LyxQ%AA(c{dL~etkV(?w$0zn)9~KXJ;n5q`0NIq&x|k8alP~ z-2d1sYger~(Q#tU8k>)Q4}br>MCJj{zAKD3rn5DqAI?8|eb!VrCxsZ-04|0`hZ|N! z+!@NU2d4gCZ+G$%V-5d~$~OzeQ@l-X3v9@FQE_|g2hF_+=9joR?j8vB(iiyof7Mx= zPX_$4r?;$&o$b2w|HMod4UM16<;<(+KTLa{x32t|ZuqbDxmygYX1fQ3{(Ycz|KOsG z#tb{Q&%c7W9Wva%{0zRsxBqp9@3HtpSD7Ulc5&}g7Syvmb>#n*=y_|jV-M9&{P-(@ z%H3=xAEGyloih8Vg8oR^f>auK`w@E-{(Jn|MX7R zIin;0oqV|!x|u#09`648z3_$o+1?XNzSkE&KVW)gm;3!A4`Y|!7IRnOWq1_z`FDGQ zV|-qH<-g-$E{cr>rjD8nvaHW*CjMzv5zu=q`mScB*Pp`Vz|7?gA1VwvMFj;O&&=jw zciw({e~Fs5)~xl(|5Kj_E#JRwN>EZxZXw_xxX~F)Qj|YQ@e&Z*RM6KX-q@ptHHwq7etll1^ZNgI?BtbGe#_bvF(no+;AnW)bY^mkHe;S}ZMa6J(yhaZtNy({zuxAx zv|Qh=dACZJvgc&|-}ZcSUO*M2t3U~7Y?s1@_1zcOgggD%UdTJuCHLmU$Zap?zm~kY zZ8}^2 zk_;RyhuR+ga?Wm_uu6U262=c}rcAlDtdoiB{r|7dpUa-D-I4KTQDTB)Bm?noazF|JuRp zKPyeS{>M8`FTAO|D7r;@-Df2i^~E<4`Y zLCV+fbEt}sDKv>9JW6i450_5OKZ-S!M~z4c1|bwUYrqHr*neAK|x>}k9Cho--r6AAN$X+sz2XR zc%X2`Br{y>dxDb8aHmxX<=))z$B2W zviF|dp`Q}f7h`4I0;k#F>blM5w|GkY?agifX&n!_ z&Q$R=Qhr~0)&I~R|Fz=2mQGp`di>6}f4S#Ug(FO}7IWpgr>)7hOOd!?cS?!lh;wb7 z*+u93yTe!yeEXAq`|E}J6$bwUPJcIF%nl6jESvtT=W zeL=_17lLhn1p5wu|8V7h)+O_ab%(Ap-;LeP9<@+V&-PPxg7qKyYfix{Jzu*uaJW~W zsQmx+&i~Su+xfQ)He^*DRQtYu)@iN3TY0_oZ@i1)P|KOyxY^VGr%m|VTJH37-~MIa zzPi^+_wVu(`<;KvKdXNDx4!g)@Ru7V=8LZ1&bIBt||Y&mgw%)SsloGVCv`jd-p%QfAsA=b-$1H{+<6zZMAl1)P1>}*|PO+)(#Km z8BOiQ6$kD9{Ifgs(sEtv`vvFcCmfm=fB685({@L;hI38-ss!|;do1c--!KWSUw34& zj-$ito$?&a4gCk=egF8!m*~$<-@9^7iR|jWo2+-6O22O9%Soz>wPs&py}^>>@X|QO z2Qh98DVhu`B^G>}nsV=zuVIR|ki*p9k7KIeR^3?mU(rVAL(G3?ncw}ziw)}67Z-hB zTGr7v-R^JDsf*u!J~ZM@&Q5&~Z(EakEN9p0sar3)E;L~<5L0*|-)I;=>3{aa=(OD?Une;1_@lrKs>K){ z*{{0uk9qc<@TU4m6^AL?o)$-`4)2%6aGCZ;x(I3vD@J|L|2q5Q7!}E=55- z_D|lz)0?)021hMriQqmr@BGJ8n+t0*T-DxOs(;PpSvGNc=%L%w?@nJOa^<+$xy0+w zu5T^gaOVAsRS71+-p1jg3~%M8?~DFkd0INx_+r@f2k}oj7*537IAt4dvgYaU`tru*FRwPs@wFX& z_5Vh}zoOv&XGXsmU!QoG-xYfP<+ktfWp=T`&x;=#z2M7vJnJ3P3{?h;dEXy>Uif#v z@5ldddY2welE^(Qq}=ecV%>Med2j3I#2ZxZ^I^>RoN#@i;trqrt0(=>O}zTD^y!Bs zd93cGM~Ab%(LkDj;%iwP+*FV86Z!AzC*!s4yS*{fl9h}n9~pjdc~^g4;eXP{ zJv}RKtP^;idR*yljQt~w_Rt;U+~!)nYD*l5B;<-WBBszpj!Hi&&zjgtYGf1vY#KLdgLExICBca z3!M{k4m(&*v`&1r_0L3Ig{jZ)pE7*<%SlM)I=^I|%*>YfaMAl^^Q>R;iM-#f6L$8p z`rXD~H?Dm5-o<>hc!q9`&JLwRZCnSQCCDU|#hdNS64@ar~bjLq#cJ0(By z&;H{c7UG~H`rq}(|K102c^-m&x<&tIPxzFZ5bAs&)ce()Uk|O;C@8&|@2fW->ANYu}4^;=>PB5%^FsFUK#w~Bk@2hkm1{nj0BE|r<>M1 z{=0qs=Aifc|K9u*oV|1M*#`GjG7kc}7`v`lU#yjBeg8P~gQ+erLkgopOcvP5Tl!9Y zZJ6u4>ggZpiwpsRjD%{*zUTn9VVL|!&Y+~R&581hcP#D&pihv1!~pa1q>T6bk-Vx9fT zzw2ja-2Y^_UZ`|Id{CKuZcJYG&XnnIHlN+86Z~-3+J~**?W24Ic-EgbX#lry6#Eu^ z|2U<-_Ywm~I9m$C3yXCTMchP^Y+zyXXc+Vy0%O;YG?D0=coU5K41T)mYZ?5Pfzt2_gK`9~%k|Me<*`J6Jo*dNem9q4|Nq!jI2?kjz%pC-jH<7{cM2@>o#t0oVw?B-{YH+YYN}RNHM5!v@j+V zbR7M{bNx`c!GnIoXXj@Mnx`-;!~{WH#s0W|+qQ-?oPTd}pE`4RiE#bLx_XA1hpqDr zUGJOkO}Q|$7vB=b5! zHEmYdL)+QzJOBKPcyWFyqrjtC_44|>_fGR4x2cGGVAB_*lqXvy+k9}H1mmm;|F_jA zr!M?)nkRJ2X|vD&FaHaXI`BZE?mtJucY_E11v2}Zh5u*wT|CL;u%kwS+2Q)e(_%49 z2dDndfAZ(G6vMJ#`y&Fn&c{{i9a!)@bx~m7o&O~*s-KU){kwY=Y<>kd&yS)Bo#??Pr%n&F0 zM}qmi(pz8Ius46d_fE_z`sd}ht=p|3^kn_)hyP2TU1e!KzO5&5;nbf6nk*XYE+-VQ ztl!>VP}Z1!IR8=dpJ`=@8G#Hehg6v*8LYU@{ZuM!72?=k!J4f<^|?pxbz9FUk%q-z z;_V+)JS|&a_Huu2Ma%kC?+&aB(OY30cl)Jq>GycH>6%>&R_tFLa%qBk((B-f-UQdXD+6I|W;R%=bO;^}Dafj@7x+ zZVVPz{@!-GxpWKH&-|iJJ>?_m=J$^2m%W_7@Wjy(GDOsH`&h_raFyj_ zN_19Wb|`l=b3fGQ#QpdBfvv5o<~H9E0`fI!k^PN|1UYt>+>OdNJwNfG>#0}2)9=+U{UyKsqitV$ z{ zyZR}+{h#+TSpDo5Na&jWJAdJMwQGqhF4bQ>9z65@{uC_+nfsHiKKZ&Zo2dTN*jX3G z`!`?t`~EdISJ|JvwUUe1`iYH;g}k?r2v7gRSRR3MZWV?9)GGx3Bo(O^yq@W>!$yJm zK$#=U`~uDgUqVyre_sAmr~5tr^S93-fAqV#1m1pUJlk1Dku!l)8A9eCWn*}L@9d0xr0?{fdyo8{&wG8^tNObk3TK3*2^WXmU7oQ|^Ugr0XvKhJ}-FyDu{>Bwl<+%OWE!Mk@rv+R$ten)A`&y?& zv&-R(YM0T<`4`trUp`Ozv4Y;y|236i>G$f-2?#t~-hSWp{_LpZj~Xj$3!e2AMwHzO zUCH3v%iyq6@xaZxlc$$wZJ&Cgp85TMs{pB&0m*NcE)UOkS98_ao6wQ)-fGcJ)eQ7joM1}uD{EBP2$;NTX!XIb9|%kT;(WnjHyyEea4xqlX@cgrE{zQ$DRrFzrITN z*L+FVZ#Oyj8PwcWdHiVW^X8w9dPf)Pa3##-Xx!GrPZ|tcf9m^4@BM#M{_`>Y`TkjjY1jXiFFafDFjrvtD$AT*D)%$iKKOEc=*`kCJU`3(1Mk$tUgVkj*IZ(I&cCIFxs|9+Flhk|v6kk^|I{DXq z$x9}ew(tLcG(60&N#);nTuVI7%4`X8ApYBWb>-p*?y`OGa;kf^a%+$$$mbo#6 zi!>D5C-;2HVAwssG(q;s{;L=MudDul+Dhb!y~Kk3<=ls**C!SHVOn&QW%A^HL)+c$ zM{~N&Z@hn;{7w7T)J^9k1eg-5Awl0@^(5Z5P<#9Q=g$APp0^cyc=b8+pR@DjmYw>) z>-&AZnO9kE$GzCzyN#Fm^t+os|)|Rc8B~IoVj$#miG6qJGSxHeBG)TS8LXg?%Hu{=l|TQXXYC(++VUI z;`Y7!v4YAm*Jp$)PD+wKwj_0!07oF=fHp zn!9G7>$b-(%9(2OJ@?5P{chhZ>o-Au|90&^Tsr;7>SnWZFV*_O@5kS{K80byjUv03 zEAPc@ju!s;K#KeEt<7cpa3JJkN%wyCwD?*p`B7pP8=6gqY2zqb0Fl6&jQjNa6DB>Wfqwr+ph!L8y47q_bX zUwm9Xsp=!k`Fa-X+S3N?N`Bxvt8-XYBwm+#Y&J+Ah@)Iaj?KW&A>|9*3P%lA5H@A&U% zskP-#mr4I`9##HR@$q)W_20Q?3S;t%SPrQ|8rGi-{z<)_r!4v_-<|15fBo;(2d2kq zeB*d&`G5A2T_^vn%ihFBJ&nByw!gQTUiW?Nd*x=nXwEGIg?ELoHhV7(p=wpH9a3E^Be4~=#kgo*Ju8bzmrRF zoyv<<@AWF8zlSj`tc_T>IEMePd9i0~Q~h=Ry>nK~|MbnA^XGk$TS_V_ZV`L!U-G?a zOI+}_@?Fpohshsby|JIgdP~0gtiXbArX4xm4^O`QD|Ksw<&(L@^`<`UwN;7M{HMIaBk`ruAl2Kr%k={f7jnDrcOGy_cKNo zCe7gb$J^(6qrPM1hd=f|85VaJ@3Hsh}d1OU{*B?z*?Kz^?ke%l^M! z_&;#rtN)jaA6zSxVO${mUu*q;HQRfo8+gw)uG%;2+xFbMjoXTzn9nWW_tLQ3wLC$3 zmtgF*(1PAfZiZ!o46c8-xdnM;h@bb``b?SO%dP*Ff(IC_5Bu}(pDvSKCSmkG-i1L& zvOM1N5_bha=P?P{(8-dD_uH0llfD8>CW{+zvAtVKJvf*Dct67pXkqi z@4vk3_sUHEzufSrc;f%}XaDKld$zyP(%NTV#k9ZwPAE9+Py)5eE*dU#R#*}+eVOE^ z^?EmbzTW?)pqcE@v0VI)2B+$w#McYB7k)V1bcy?xeEnt1*Qb-hwV2lI$`8(QHebYj zf4?4sMuFkwX-QLAmhiSE-QT{JeY*)m!g9tLfei67{}_Hpy|g#=S39{szyFTG^?f_# z93EPz=Ka-5b`A{BU99<0f42AR%KxhuyfZYNIsfxwl{fa^{_NNC{>$kzZ`GXt?LSU_ zdH+cLVt(Sg*y|_um-%jyNN`ptkxXGw5a2jF@%Q4~$+fXx?f>237(Xo}B-H8Pp;hKmoTvNRm-j=xdr8P#xTnQF!~)yJjIzry!+ zt={v$O(r1reSNgO?z$8I84lj#)%+noxxQ`ViJ$c{)&K6#`j@*$?jQ4k*QrnD8$MaY zaDvHU2NSsFijZ^TTbasJQ1!oZ7SjgKEiX0io18GX@b1TS$0_T)mFiP}o88>csn?z8 zAoO2_DPh}(4IIgLCzq%!j;ZsOtAD)q^ly1f*640+h9mFeU;SsPzE^4FmBx~=CVcmo z`$j7n*2PM_WSio`ykg%5MrViFNA|DSzss#DiaF%V)-|8%Bj^7#)LD}F-`rqA)_?tz z_m^}07H_J5+#S5f{HN+4l|QA4wZdvU<{Ug5o7>F8*m9a1Tp~&p-2A`uXI#9G7B9oy z-~Bqrzto5{6|=>@KQG1_BYrJ%f2Ht^ws!|sW&J<><+{l1b&v0*?AN=xJN|gYx{qa! z@(a0lF<)*~U(ArRrnl;bUId>ulSAvj+fDV6C+(*ST}T(N*!Z81$?P=mMED4EF-DDYFC} zY}x}`E~*@PSa;9)%GQE9FZ~-nB8;JW8REMaSr>>tdwDCIld?tK{|74NW-ot`*c(nd|4A_cH;c<&^0rE zT%T3Uc~g)3cl+Vr@#S;wxSQ^t$aE;qUiH7z2mhLvmzU2!wc-EEo3(pv|FQn5_&9q; z<#nM?@70goKYi%`TN8%jDZh@pD7+B>*S50`#wpy8Tl!^Yx_48|iOiPGfoTi^4>vdl z)LGwR1toZ$>;AWEb(?dSaFlqKFUWq$x_eRog)cuuK8CMPU&+YuT3z}jZ}jIs(kb`r z;@A9n|Iu~L{iFALLKHm=vt>P_{Z`cD48?O}}C6^U&b z=L~mM`FCFa(cO>t5AZ+x?;*7~>CyY_d-cb zur~axnHS11L;KN0xs#`gFS~7vyEQRF>|;1vJGVO3z_rlNJ8{Af(ZMejJ zi+QQ|7VCfOo?OeXIuon;GreD()8|vf4ONC-fhT`Xr){wPcP%^ii~srm=Q|m0E&cCQ zG2@~3;r%B*mpnWC`LR%Tmx$C-#%MF99lvyM?>!@sFn_7<<-Jihdly`^I$0mOKX=mq zRXz!E0cfUUoW=)e4TJ`nXTf#bsy?=c@GFMsR*p& zJHfEQ?#iFfp{;i#z6h`5@X|kiD7E9~w4<}nsZW%&TJ`i;8S9j|3vy+edmm`M;){7U zsjc+*?ISxs*2;Ig%KQ~6Sp_P*59;CmEBRMsr<6{#Q#+nPVVRUz5gHA z4D}QL)g?Nu{-^VQIQS#`$GI=x8LoAA?ibHE?<&PGi$UQs593b#xz`?@Zax<)?#R}V z*I1|8lGi+StLAr@82)~x$%{v*u7Vgw!0XN zc(yc`PX1}OT4c?o_~_ytK7!1r?@6V)_&I$1~ZSh%*_11o!i~PeEX?? zp85NiGBWIyauDMcNNCdM-@pF*G#CHlTW{oson0Hn@Y;lFL7JDtRlA*K*M6t&U%D*3 zbZ*TLwck@pFHHGk?&kb{|3|yCKlkeu|6{)%H&G?78}&~lpJh@nJe&gX*km}-_L-jBya;wuZ^_UC-E>S_3BV$2W|6LZ3g zA*oSE>`u}~9l5NJYk3$>Stw|+zc|*Ymk?gcUZ(o#P^(@R-<7xPHMdPvzMp!xG56Ug z{muF7uY12wWa>XxJ>$$>MF`S<8zqIY&^ON=Vs{aqa zUhidOZ~Is0+)w-6?fu8&4@+;3Kg?pTyMF)MzuPY{B((p(y`B?XnU#nfVmR=4{|OeS z_64mBFD^2?%)a|resb-{{_G?1k$1!e4Q9FQsFX1mPu!?wA{Mr8O%+FTLxjus-+!+J zC@6?s$*R9=a3Qrs^Zfip9JjuEOn&FE*>L(nz24>TVi#ZZ*vD^q`1kj32ancX-25x| ztn|v`*{>h|yQLid+rGqw=|~&H!@u<#|C?3iOp@;8d|$75^8Osb16TLIUNgm&b-^;j zgwQKLGeb;Yn*5As{PcZV%U}L=du7`H{{9>B_Ww!t8Q!1%r~XO!^#ejs}J7#Dcn_@m-*2@m3#ingMa?JySsYFjFlYfb6d8Y zuq%0Q|K<8bNyZ6bOa&|dx35%uaASXadQ*R^r}=BYS1Z0gSsb+Uz7f-oWxF+%9p=7! zb9$+6v%}rf8$utwf3bn@=lS}31s7EJ{x|&jUQt3WS>xpY)j`Y-tNz;8$zR^gzQg#R z(LT$cwFUVLD*x2B|Cpc0@ZqZKYrentTduY{ykG#Ae__r-kMwQ-hH1pU`YXP$?9}Ze ze~#n`a0kWuD8=|Z`|;#n$hLR3@_)6`f8C|G1vso(z^yjX#HFkb z=4>i$406&;5_^`Y`nxh+RkFAzbn^RW*5ivW3-tSmuM|K1xgqiX@q!15H@-jleDA>Y zi%jg*jNjVjz8(F1V0v!)=9x7w0(LPe)h<|ht>M(|w^G|;x#QiZKf5H7dv@>HIX~5E zufEKe%yF_#xLIqy)^fv{8H@508$>30JQ6H?(EOWO$4OsRVWr{%)Ax&)ep~%jY?iT|(1ANz1D+h|ux*)L1A{>O9v`yY=#6z^Nln`{&8_;2;0e-Ar$WmY5# za#(YLgFyA5k-y!hIrYk{4qb0LMCIC7@tj@5Dtldtby_wCz%W?!skW`xyZ-WRKJfYA?j3S>x_4iCrg`{(;+ zh>kQv#<)pZ4L2kfl(iUfX&m8>4D?m#xx!Hx-|zqY$B%a^+3XJz&L2Pf*e*|oeMe=k z0xwIo=azpqLhUl3JyvR8gjd?HOT31Slu$Mgnd>ssPDM{ z?3X5AX|^M_PIvTO?$y`KXRx#9EHL~k?5=WJ&QJBzvVeJYe-~V>za#Q(v*&)bZ|T*b zDd+HS{|@fGQ$g9)YRPL*Caootwl3;A;m0)_a(5!Kr%|G8+JCCgq`n&qo zj&mhbp5K?3TU`HERr1^WpUjfq?5k9Y{=I*=`Qzyy-5=$ZCMEuN`N!E3>cGap)VRTB z#@Fj}RUiJp<9)A4^GEtD?it%UP6x3@B)L53Q9smZbF(dn@wCy~1`{iV%K2QunSsn6 z;`%b;!XIZmI%n(n=KRxiCx3?*+#MZ^KWh|%IGK2=rd@Lo$mZ2x&1coR7Ke$7 z37wy}>uua0`g~)I`c|{6O8-j_{VT4$YS9)WZ=?5Bz33n7&-=UoMXmW(FZTS8|2g?b zmp^9zIQZp$w~|=TYuH+VllIz5|JNDSt3HXJuiyD!aGeCCIAu6}V(%xWllEHz|FBQ1 zZY$PM{T(D@;I)|T(S`bXE-XhhnX?vZ@iLtV49}&Ih$pA!lB>%>q~xUDKl^_V$4xycqPR&t%q&H^B0Gft!B9Le#6CQ zy_5d0y6}I-pYKTr?H~T!|B+Qw%hGmt_s7TlN$3B+5Zz<NXi%F=m}49wabf^OXn%v8z3* z+?QJZ6tCODe5ETu`O_tX347hLBm!hceYzp&Rmo=;iQV8Pg<8KZrUNGH-`^r_R09BsuEo@T?6T`*F^b z_$Pn(`-DIJm)dhLZqc{@jLVjn7nYYu-=F=5x##BECCBRhwLd@C_&UAnukGXQOIf-! z&&+q|a0F$o3p|&W&j0!4tOmo8hrcgP?!Us3(DvJX=BIk0cjqG>O$?gI5WvQGHk*Im zo~^vh8=Rsin)9vbU^?*PvZ(2SFW;l08ZSsiaB${l3U?GI%Foy1S<6_M#n)z+C-c3) z`4#V%CGQRtc&=^SyVv%ooadGX0~QTNr&N)EBgxZwSf<2X;Jam%wIx?(XI4_nx4Nc3 z{OyOoeAg~Ps2}w{m#%WPsMoK~J?!wu(mhSXWAAUbUk&%vX7&r3CVY#OGhOg2 zJo)pMr$1XB*Vr7MTYY)U+zWyMQOrtN4_+)#KP|?!wlQvzu|ixo7n|N%Mn}CCM~CZD z4Q^Itk=YLJ(>s3Xbqg*!T3jhw!hXwyXT_yOkIH{NIVt?}-@%pb=jXFXaemx#T`%d< zgegyAS4Z8ePjO?u@$<{{Ff9$~zRi2jT_7X`|b>`=O+E+K6chi6P`||$v6YFj7?0>HC zU+QD|qz_z$MJAgTI{TO{%oLGS9GG&|%^~jo4=^T{XQAf8FW%tn$%I|6V4K z&hlLm7lT=Y4m*B}Qva*t{$;aWaTN2n84l+Z7H+fTWnQt;^ul+87r!O=lJ+(-uQYy; zT(5uN;k@}_S{t^qh0NG^Nh)9^Yw1?DFJ7#%ZsJ9kO5bdHcff25Q<&oQ)8DR(tnSHw zuU*%z)Z{Ml(dBmKi4XtoI&>{`TKfM=(Es&e*UHcMRbTr2FZXJFoWnn7=b!(>J_z>x z{e7}9y~eX8b9d4I+a^p7-4ieTUt`g?EkOFf*T|pkvaTmp_v<~1zq75z`J6~K8!()}Tv!}uUTe^E+Hv{@>s>~z%pHF$UsQ=S{#e^-w&=_J1BZk8`_C~= zo?&t2e`%quMcg%Z{kj)j|68~IKkV`+zioPT{(*Gvw-QJHo}9iYHzDuSJbS~_l8iCA zr*AE6I6vL$-&^lx+H*D>TY6{8kHyAM>>KPYP8I$8%|7Xi|GbVl|IdF+C}F-Y`QN$c zMy~O5d)5Dq%5UP8|DX92yK>^$PJy550^sBl#&UUDmW}H4NUMfv_fCb@*vuj5l=wB@oFnG5-SM~g z+J8R&;<_^UzQn#&Iq|W|3`KWz?r+kNT2PSl`puMiFLT}4*LeI|Z5OZl^vOS`#`{)zP3G*jtBPd4|29v4Bp8uV1nhxNC*D@-A`X`8+3ODfedMLc3=c^1h~r84O+=oys}oT0=!gQERhHxR>TA{C~gIpUrnfS{R+5tpnCCB$Je~N{%_A3-*t(pk5w-`__X?RN$ivRH}iYT&dvFM(D2uB{UrUs-}C3* z_XaiV-u680mzx_|{cYiY9A%nw+p+s``%M9fh&K-JwXB7_2c(>%dogXiw zht18Ih75j_)=xIomXB9|pJ^O!!cfFA=d~bHz%fR5$%9^p8(um0OBHkom~}}79G_zE z#}>iH{CUPQ?u1!cyhqv??>DRbJ-lyz2H%k?X0K$2>rw(s4qTIRaLS2^Vm{=s;NI&) z&00kc=6q|Uv+}am{i>NLU^n&Mf>YXJjV0{2oTH2Lf6HuHnb`2;m+=1fpEdKO81DT& zb37;T>0kX$|MjBr?<;0YnSZ_YziRD&pBLwO{`U7Wn*Z_tkn^E#U3B0te}Tbw%vkn7F#>iVpv?y1p<5lvK?w`osHg%`3jEQ@$)_{8;`i{<1?tjsC3X`|IDT zzUj33Kk3i?;})F1_nYtQmG|4%x4hz}(*LlX_WdX98!w1~lhUllscUW4tYBzka&E{v z#-o%c%`zc+!;U!htBf)WH&`}1wYJ;dU96SWkeNF<*T+6!?Ig#tJ9j4fO?dlWFE%63 z`}WO1<}9ychKd)Z1gw~y@)b@#eOi2TyNB?H;Ju7(aR*YCHf6ip#`te#tIFKsAiS1w zV$^~Y+t-;c2;!c0RVpA^bJNl**Gf07=Mm_7!R@r{#J;Wqfwy1Yu3q%|CF|~(oebV* z>V>CrfB84%p=V6I*41b4gdhI>o>=|gchMsQwkxjZF7vU{psbER!W@?1IRz8; zvHZ8F z3$H=#zhxg6>?m1i=Vnxv_|mCZK5sHp`W1&g@hi5lsR*rQ6trBB&1>+WK>xtk#|-9u zzk;$K94m}>6FCyaY+%A36UDqLXQ9HIMP|FWCSOx#ol@v9fB&k21swY-#BLv9Hn9Dr z^gK$S>SMvgJry=5Dp&0b)jV1n>a1XR=-Y*(liI54SH0UW^iO#ITKRqQDo=fV-`A`C zTmH+Vdb4%DnPlGG^n~``>Q5PpTke~H3bDgyANbu8^?rVmVgG)SnOZ$;5lX5G+2`lF zF-)1W%PNr3_3i98*O%-!`<~nU$2wZi@!#WYn}+N5Cg8Da`zrp)m(PF9sNt=*`lal1 zqnGLY{`E^4Lni!Rq(AqBed7Zb&_uzZqJ%R_*R8t#NkmWlo~8U|>g;!GmlSn zYK1mxz?Z&siDOFt*z07hsR`Xqr!)vN$Z@i zOI^?wd7;VXH6g%NKx5K-BQXt*=3_N_mn5Fe@Ku}9t8XAX_u-=_if)fJ_kGxG-=98z zuikIrOunQT!)I#VO7EHy8LSgzGK$}=u2D~lFO=of__)7c{)ffv8;bwuxrUtD^Ivqy z(g{l~_xxXR>gV|&MhUSB#R_TWvW0V-msoikOljkpeP;I}h5&&{@u@5tS>b6c4vr=b z*?iwDxO_Dpsnv^?9?$an)BP=T@*m^7pX;3`{BO2+6F=eq=4zui@lXEv-}svKsbB3$ ze6{bB`3@S85dAcvWuu9@LgU61pZ^BC#ah||8*Z-MQnoM&T7;Z?>W9BRpP?)i1_RSI2{PA~4_Jfx;x#~fj zNoyI^dKsD<`xEaUJ{YItR$=g^P{Eb6c}m0UC}yoK_r+vNg#J!QwuwzJnf2(=8=l3> z{SB&$_!m#Eo-uE3f>!5$j>#7-mpxaX(eGz4@9f9N>;K9Axn=*)*{1$?z&BkUuG>+u!lQi<0i|&N)2)(>M1pDTlZZ z`nCNWzu$1?vCB&={r~7?rO_XI-YZ2Cj17Af7i<$eV8z8|dcIz}>+)yda z`NggE`=qJr-`2<1bF#mm6gt0O<^QHD_r)J}2i1%78&v+WTb4fm@xvEZbrwH)=eVpt zmiq71p?`^g`?yZ-|Jy70Q(fQ`WCTGfNSPr^FSY2OY(~$uD3RA)|9N6W*n zi|y9QeoNWXu+~_?=GSxaVjEl8$6rn+&#~LlzWlr0kr)5mInKXRo)fFUBi`W>av-TK z!;pPZYv?wENUb(SyC0|RkNyAlg|Y6r{onN;4;5bza&GCeyRl7hfu6?R1-5G@#Vy$L z-|MkcOs3NJ_!a+WFWGm3XZ?c5%9q=@b)r6Mu*zu2D@$Ct1q1jtrHEMo@#z#zrOQd_T&0V6_2?& z*xWgP{%4qc`Fw%VyNA(_?;n+{XZ-MM)`|J+KFzn``SkuO|L^s`cm>Va&Mh_+KjhqU zt`Xe*E?rWeBfD|I)B?SaoBkQyZulm7`P#mBFPIkVu5sOzCS&mH>9cgp#|?)$0#YO< z1eb7@TH3yGUCKTApYEkN8Pf%QhwrqnE|hI+-ovr5%%}AiTgS=zNo+}5{H0YY{{{Z( zINr(m?c_}v`TMd#JD9=*GL|JeVJ{{O50e5?Ny|DaVo?{wU55zY-{XcSS znBUoa*uWv&9sX+TmHdg?75{sGyIHM#W6uA2;^~j&l8leO%RQ@D`JJsMZQa$>m-hRg ztNk%ei%(%GkgIf7X5c!pr|x;)VTpwE>60T`zuZ0^RjK3K!(ypo`M;U@OMlWQ{o;T6 zaw?Yp=Rf@TLZII27jw@CpEp0xxBiP}Yq<4f{-J-?+dacCKnt`T?WGT$ThwzS zeBmLD3H7H;O_kY1W^Pp$)p^WdY<)6^aoO>C(zPP{^)5*jxbsFlxh-m%Q2Ax^3dUlY zb3T{OT}sxtB=z8C+S;bZS?%jgC-lCQ3}n0G=peCapT%j9u0;Jwvn9{ziCI|BKluCq zKkK*JX&)X7&wTe-N%3a5#Cg-dY=3Ti)>7i$b7Y#zvX3uk-#@nhNBlqaKfmn%Dew7m z%6qOidxmt1L&qqmc~PtRqrAQ*_Sv8Q0&V$E_r-p)ul{*k zQGf%y21VNCuIRMa>nobC&eUd_@Y;WxVuR&2M`6n?i@0XoOjM_Ji>^4)x}?`AYlDZd(3M`sz+YDXbh>mEH|@3h z?di(+Tl?g`i87ZqA4y)nf7aIr4SBi*Hab`p51*qhBsj z=kP!Kql-T()>-_sn&%SlWAnf2-hSUdt558=-1XbE(P0IXB*QMwO^HJ5EV};92>)y1 zCC0cjgz4?vZL2&_iyTT@cr}nY?WDc&+ynpazuBymrLfiY$zrw{d+(a@91x5RSYbM0 z4rBXAh0mW>o3L%oPh;uW`{&G;f9gl(udb_@BEh}qiS1<*L6(iL8eO}e#7M-4E&Lu| zr{*#Jy?6dn@h=5`?r7iGU&o!^|1QyNXM_E`BQ-tgtU7kpzuSML|9@QHegEhA|I&MY z9o1iUl`Z6?)5ihyFLFLo&N1_NT}f5e9_tS-*SKZqc?9HHh2Fo==bw9 z>y!K6{)JDh57&{HSkJUj6WoR`<5+6s#7jIs;O(&^hMBAB{qGNxZe93Trf*wi*&;t(?9EA|W;>>5 zo{UZx{g>3I@>uNr&iU`B{a^VHx9fkzKYXfR7dfda@O6!>6V~FH?pFJJuYT?FuJ556_WtMl zH2?J1?aGWv2hZt$+sDm6lOf&blH{HR^W&adibyaPoeeW(VmS78YuN9u!cTY2&Dqv4 zmvZi}t9g3->YL_G?>;4`K8ff07b~9l|M(2f^ZPk|*ZEL&c53-@|_(rwG3=cSNo}D#A`9>h~FEd;Hi|gVRd|%rwu#1J`?)u9@^Ccj)k;dIeI$;&)UoChDAT%_Bb7NC4I@xPCtQs_p!cJd&O$((Yyd~@)Air> zKbro(`9Dv)yZfd&iSbj6-W)x@PoA5#tDP^D$**s6ON;W&zLpBD=7v0p0JrAVX%aWC zecWa$ezD(xiStu^VWD8Wuwu%K|22u#|08EHO?Wdm=KN_PvC}7}@4L!swzK)oZMpi* z-~KaJx1?9U-_<8J@4miz1RvWwrKhfL3?fTdMEW8O7+wtc$0u`+20;e?t9z9p|+9noEDI z-!r}G%kO;^6_X|$e`0UO)UoWh`|(Y8kG||wd0hU!rX|1TzudRJXD_}-q_MoHz9Id? z;)ZZPL;K0k1rL^AWHPIfTqw}LI*8+lnV{{0ZH~qQFJ7`vziDt`sm=e?jvXKVa5Fb} z2n(_`7%TRy;JkFzWuW1VZ3&C+m8^DH;?bEZ#biuEpkKT)juAu*;8w7^!zyfJAHKlEOBv4hW&&r6hQbr%asTnRXI zS%1&}MumGyOb$|voBs0i^%qq96_aCU^pm%rvWq#%Z8PiPl7oe2aZ3cb4&6{Z!s!~) zSRwZLB|FdYcE)w`UkiP0<-ZF2&{6$-Z2Q_C1)a}Kt2vk)b&fhqvVYmqw0fEOf(u)( zFeUD}dH?=&Hu*#bf!puw*y8?QI9zft>Eiw)3~4S5M{FbR{TDsi{qFDfdgnRM5C1D( zRR8g}qFh@$^ckU{TWvd(N+&Asfi7 zHRb+{+ItECqNWGdmKANBwv54`w?pHRe$hYM+Bnh~h8bIqM=^b@6gu+z$1z`>XTd(lm35XJH;e07#wN7%vO?&+ z$~mgC$L9B{$*4aMuBj={nsfZ{UI!_rb@JaHJzp&Mt$kmQ+l1rKj(!#@7CI8wGO^q0 zlhu?!2bK{DTT{sQ-^@I0&R?o+T|6^ZOMY9kPq{p`EoLh#!}H|6&mVc_ z-Gs8-W`J9Nvp_7c-b#dfBH|AUvyU1><3Z16%ffk*LahGs~E-V0Znz3QJSh`gPyB zh3?xH_bkcgO;J2;qo{EydVTvZ?@Q-Y7q&- z=NMd*{=lQ$SRp3G@@P)iq~cX?<}`WdJ4kZZ_*z`NCLM4-+%)L`>+hJ3&+07yk5qQq z{+HpOSM=vWY=TX2-2bY3|DPWDKda)uY+U`5!~d?nww?3f=)KvWW_;OMxrk@^`#32x zBc=m;cts08ZE=r+S%D?ey_an^T^_k3oq>M#;*=OH^pe@^~s9=v+n7foIA~} zaf`#wolaBtX8!zdq~ZAVt$HX!ji~2=M;eU!il?-k8g!LBpUsHaptZlw>sMl!^M)RV zhM=62+l+JL4_h4AY-|u+@Y7;?6?4{p3ok|QXn{5+{cF+}E^)1s{kG)d0x-E7-8j~F>k4cwz<;w}Ia5lG2Q#w?voWk)lXmw*?f07QljW1QFoZ}j#r(Z0 zwPneEsk6}scl}v>TB!cFabVfi_iw#F>A(IXe`m^*`ac$G{}+Gcxi9lqZr%s|#?5u} z{)kWgecJUjXcote6SP`Qg~3B1CeNf(ZpFqQiG9;!_7;n8HwtE*@$lq%yMhc}ji>dh zOeeOs%3Sa4pFTy#d-FfxqxJ4HjRNfgvKSOr|D1p3^mHqRYnBOTBCfAK#pe0PWf9|p zqk# zx96R)pR)5`=e>p%#`dBYnS*PJ^0VG3U*c+ESa?ZBpp8+`RAI5~AD?W6YjzyPnXDJS zu!XGH9eXH1k~L&Y!#dM~$X=FHpY`YY`};rL$X$3Mf1l)|hnn7d|Lwf+KV<2pm26oH z0~M zRpGzOAAQD-^Cbc)3@$kV} zRP>Cp6O%sGx!up)xbH~xI(LQ-Q|1^fWNhehH~hNG!CTifQp36}QRKnK=kcx#Dk(Eu z3vblv921vje^O@YwqPlPg7Oa^Zhn6kmSFugR>!*}qK`3JDj&9(ASr6`=^_iyw0jNP z^0Qn#=d}tv%rH9soIm}gS>c@D)t&ba82Bj*yl;0(R=6tNVandbwU=?J>4Gn8Azh8@ zG#6y^#<1;Wbp3bqW7mfI!n~Gshs*DA6~6COw_OzZ!rpuS<_q<~XL7dg`p?(DUvE~X z`=x@@8^ko74;<=Xs95_wmgR(W^O3Fjf99P|+wNrLaMOLN%l@Q0v(EiHcC5kb?v}1L z+4W9;V&^YU{NH}w^V9v?!ioR=gU|nee38Lk=C9Sf5Bd?Q|8A-LZ}D!(SY2wu*{Z*Q z*!jSQ_YV{7CrssTIryMpzq%>MlzR=le`{VFX}>YwFn>T^gWo$&kM^kK5i zM6vtJSNx6tBCY-5#^RPW*Iz9;B=F$Xe!rJ?*F(cB&YH#i_1*Buf5FLjzBd0fg+AT4 zuHmaTcRlz2?2JFB=lr*}kY%)&`Y-j))n2&$uesWPk#F^(2X?M_dHQhEVb#9Pt`is+ zZ1(tnDE_Okqk=$`yXz80?Jh|V7Y<&(^`GWXU47@);SJI$zZiM6&fobGRdn9p<XP>~d2v>t0P- z^$+1k=XsMGpWVIQ!){o4y_Z!h%VDqiWtJVXiW6KU4BpBtPyY0#=e)C?{0x@G} z@Tb_K4|WAPRhRcBOpw?gv2glaahc1jb}^Lxa%a4`KAGpj@8g@cY-0A_xGOm0)!Xa8 z#lJfUe!Fj7V|MaqJzMul&13#{M}9ovTlUy+pXsmuj|RWYg+ASnp7cju|u9VTR0aE{< zXMXpO%}nR_$7)S>P{tr0oLGfqZWVcqu4y)0aJxZ&SM`(^yc&m_>&^%`wH&ChI)2yv zbIELr`(DWhu1I^7uvK-wbGScwDo;!m^Qvq6)>$ri&CBt^iaGZ+?~5n#EBG%a>u$kxfd^{u76}TyLG}B)*#9i&KCyrCHTx+C&p7_ucut2tU1R_DY@*DAYujR68AA&jXD5p; z6=C4p%NTCrbZL9wp@6S%FG+9cVSW^CBkdkktZ-FYfV;clXcTj!`d2oWolb&|1q-&Y zePfb&$Np*Wi{&020rd)kFSIX73$QW97BA=nwe>#=B>ta#(q+>B`86_+digDt-l;FD z-#7FB`f7uj^Vk|hIeQ=f_T2lIZ==0#=`!yLf+-r1ec>#Nib|4Tk!-yz>yFFU`z{_Moh@vi@5GmR{h^%@;+n4Dm^!22Zc z>Yi`8^S}p2-d0#3>@{x+Z_BrUCqC=L*Lm=L{*>)}{OyFu!$qP?*W39X`jh;AKgZj2 z4x4E=xMm2l9(eLigZt^VHN4Bjn%r((RoPMc!1U;^O$V6PO_eU0SaJ4n{DiU#M=TOv z^Gf`k=A!eWSkH)WMiuh`Rww6thfKaBg5pgVn2)pXb;(|!|CQ}Xvc-z!<_v3-8c*B} zU;3M2bI-!qQv%bT$4{&`ykkAzWzwJX&i8}w0& zC+9c$|JpKkzxH38eTT7oS%TBY_}_+IGiAP5u+{C+ol`th>+#DaR*IRaNA7-&>}1|w zY0~g&L&l#;8)x-gcQIbTov}-3&8IK7Cs=8E-uQp7SAS7?fwkKIe%7D=B`#l-+-Li% z_D=V{WfT9$aX*=_!w}ALB-IL(Iz?^1#m9WT?4Te}#_(;fSLGAcJKGI6pL1|4%9(F{ zdhdos%qI5^1UGd}+2FN)|A$Z3Cajx2{GTC^`sBV=;L{BS25-0iJ#+b4<)RpsYw0a_ zS8K54?d!KccVdV2(gQiobM7@P(~Vwbeqd{9mG550+XfTl;+6iMX!UD0I~Fs=aL&Vb z$`4oW^C%b8WC0JKe0#F_lC;27o+Z~B&IjFPbp6EIcwMoFY1h4mE(wPunShn-RzK_C zZw}D-CBO^Xda%>3{rFpZ=wKhxFey&puv10a`}9@9}oWC;zpS9zC>tZWABW zwxM(aW5Vx(d)pR!6o(3MupH96dx@vtp6C4jhiA`heY$L#!>!c4(TS&ao4&V-a64s_ z_ABi%N8aVdXA-K{O)w5mY4QDhEBp4$d&h3|TW_1$68}5q^P2SAn?7HR$#zLsiq%~|EqSL!SN8cbAKk|LuKt6@w8&4*ybnrgMusCWDSpi_uDX-OzL8RSSDiiLd)r-wTp83x2w?NPJttbGTs>gKqwsk}^t{mRg$&nzI@HZgneaTNTDywb zpqDwO-=tuPNQ5T)ugVom%_n$k1_*L)dwyG1RPn{Tqb-k<_Aty#NqncI<&eSSahCDt zo8%cUcs;Kd|I=xt-UpeZG!F<<~8;^7>Vzu$E+1#^Z`b#De z*}tdS8k+iI_y1qCG55;c)7!$6e2=Za8ZzlWL#*6>@}A7+&z5`EB-m&$G32K>77m*z|k%ijvav?327? zrncX_yY{Qyy$6-2CQApKD3{D%YW2>uy7$6O?i)I54n&-J#$kKi=AqtWhl8&dO=&Vo zpKtw5|DyDRUuC^tc7J8tF>T|)yDD{@j~T9Szxh=7Z3nCMA6wt&1v%Gyn7ccY4WCN* zRz4EtH$Lbd`Bc%5@uMxjJGGt=-0o}6Z>B;5&Eevu#MMc$l9VKC@5XdEV$#j*GO4&V-lmdHwflXE{ippBlsvov(0zee{EX ztrwNWDt6tp;Y;7-VPw|L{6sl0CCH`R;LJgTnZ-60yBLx?f22q~n{Rtq<9GVR`oFt2 z^f=%A!`*yo?ev9fF1|l6pZMcT^^N);>Jsz*E!Z~wKI_Ae_AlHmKiOOCYTY|q-zi1x z+`0J)hS3&bN;gAqwh1m+vEJ(U)J2Sk^^ILb&YnEBtCwlDi@1r>zX?y}9(?_la<2Z( z&;7ke|Hw=}E}u|S#4avgT$BH$|3l=D{9~#Ac(&Hx{Vjjx`=7)Am^%K%tA6mvU~pN& zc)@W3ili|YNo37eb%act5ef(|zv)+31iz|NB z;!LN|b+?*#)_V8#JHOUn?EG^D444>L<^FRiGh7qo4Y;~<@l2=54_^s< z*`>-6?)q5otE`RuzB51f%Rc`jf5**Y_kkx*oO|ZqnYh#@UjDz9U2okvmH%g4|LvXi zpSljf=5-Yw)qgMJF0mdzkw; z7|X9P7(I4y^l}ulOjs_mqPDcD?~FwPhuEt?=B%DoQoyN_YM3-Cw^1g#qjdE=tYLq-(ias59?dK_U6C; zC@6R7x~{UYC;vZ0^5pMnJNR%j=g5LueUvJGkYaldf ze(v?yuE^+PZ@y=R>8YjgKj_jf%MExE@qdF$zC)yWR}dFhN1dIiLUmmCy@tFwD};DU zTv%TmV_fz%QG&hbf~SX@PmpT;bU}u)8~gqKywOKKcK1!E^2s_CGzI{XOrd z{^Q<@@`Ch_+z;aH#eQec{Uf|iYmtTx`&7m^Dkm5&gnsA{0UiG?+ORdqNA}zvjg0vG zus@dlPnwsSu3Vc@|L)NlzEi;#t&65GwOdb`EwX3I7O8tR)ra1dMddi@ZMkp4_o2k@ z=L*KV78BI3pZ&u2K=1SPw*Rx=2RAcc_Oabo=rEVrIbWfk=jF*n4_pdOsd{d7$!~N7&Py@nO;oqJJ0hIy0;}o!t7*YOBm@YsqOG z|77j7i~qU)sQ3A2f8fc<<2xkIe)xNFe}BLD{tV5()+g+_PVE2a!1z-=`+z80yuT9< zWbP?KXIZyK)C4w$Mu!`WCXo*^S*~r=={VA4{B-3hjte<|4~TYl>mUC)8}QwI8BSJXMXOTakE|0l%coc_7XYCk9uC32?kDoF8iPU z!Y1=J`Ei5UF5~C%v-vB;<_4t56wK2(EwG^aTd;D2oZx}1iT~fQv~j4-Us(T<@7Htt zV-8Qg%-_$cZ&Q9|rESN{H>!#MzojY`{b~Lu7vc1ebx}d%(VDJ*_XPjMF}(dUPUXp4UTJd zN;SOQdA*1E+?1x6ihX4=JHJJFHEz|djhz*=V4LM4wk>6qi<|4DN;a)?XLxbs{<)9k z6YDen9y$N-kK(s^b>YvxeAm0@YVdQ3sN#Mrfp2U6HYC4L_+OXLuwMN6&(|*VJ_|g| zVR;kpt;ArnGuQ611j|ZO4=FC2YuS6Z#7DO^Y_gMD{BLdc-;Cdz0-yXhQ2XC}`1z#` z^?|SQYYH39-Rk+}TlaT#@cJ&TpZmv{{b#w$)g|iPKkN=NJ%7luCs8-}kedTr!`X#r zI`W#mCtU1tP$-f5y7#m1pC4_)R*%&)?OlIMyuYl)&~-ua>$lHmmaox`F|XZUD$jX( zslbs3cRcrc{nk1WsG%AEqC=|T>eR=o$ zl1cl&@)q?KnDyQ6iJrUvWBN3_7B0AY3 zZ>{U5?;j&v_nL3KzphK^aKqylvTlsCo2<`AL_TpiXAz+4(!uoDLF!PTjOl@i!k#eZTUP?=d1dyPLIX{yG~w)T@!mhPg#0h@%8HtwuWzO z!~Q;s@)wK{i(P2i^yhoq3-3?=rK+6X#<%>n{})j8U*9eH&(#;NeDq`Dd`(%u;o0P?`{!;0+q8Hk>_A|IpDju{#r(8Xay3z4|wGx)cK^&!oUtRV6u> zf*7X6%vUU!R#2bZv*C5p(K8>-{C~c6%iHb7*qXfU;sGS4uGkeex{TVe~3BOj>+zZL5mvqUkcl^h` zuXLZSf7O@d^>y?9yuP2ZWrnArLp%rLH@2ea9Ugyp>e3hSoxQpANoy+q2%dC^R7Z>z(ZmQf9ch>24XaK`@4&DCG zqWUL)ZtF;DEZ-x#w=qV&%Bxj*sX}UL)uiY^FGj8&X5Rm1tKQqsT5P_r`Q8ubFURE< znE&JW_eOBfQO!R`gI7M%_x@VS;pp`5x8*1KBdPzI;*`FH|JyCRl;QACk-Y~SeZ(6? z*q?lQ`1_=}${NN%jvxDWzMr)4cWFoETC-cP)s8i+sw=~!LxIUo#Z^WPkq!37PFG8#GVNY3e*3CvTU=0)p{BO6){Q_8y~7RH)&+C~ z=r3OJyrSSk%vQFyrLx`uOpdSEpXVnOe5?Aiqk`SXVoA&NXo>12zjyDhPiuYtKjXl~ z&pRA*Tr2Gz|FsG>NG{Rg7iAUr=pn`M>-X_ZUJL^Abs9VjHfFatlpRG{&Hne_zV_vY zcwD8ZTg$E7E!Ruy=T293I*_>`*>mpyztM$r|34N_+0w4`e{;9{kBcwDKi+%vUg48V zDu?ge`MTc!V%6uLuvg@lYZcZj>gSjXx{HUsvfJMNXN}?PIT!oe92DNzNC}od)nDhx zruDmPkp*MJQSONK8|>X@SYN+!d1>VBYt{nO1s2}cXn5uDHpZ**l3qce<+|3_hi!gF zxw20cc;Fhmp@2tUrqNZIW%Bup@_Ty^9=-iy{(jZNKg&&zhE)9PXP0SApQpb6djIJ^ zKOJ|i6;smdT-cz#ij}3-Wugc7hV%X*RTuSF^ET{qYhkPWTN=y~^H;m%u0nv+(#1vp zzRy1x!1b?l!~c~k|CA?wt~We1`|p1)me#|i(?-)bp~GtEL`7#h5p8A7-ik}Y`~JUHiV zRAE(^bIDclVSrFV-!79ocellT=R54MP+*}0NBuvEe{bxXUe^BDT+Oj;{zCJgI_GZA zui5qO*YDYf6dqW-DU@WKFi%qL$1R7p_r|_2_wzk6J}aoV%;>A?1W{(T8U5)T!oBZQ zI28V!4cYJ~^y;72Zp;f7DlW)5v#PKp=d{KJ9aZ-i_HR_@{crix{#oVuf9E;zJ|C|A z$bY!^=Y78ubw2+rxwnWks6DwanCbLnegLDKZj2zqo`g(?!1K}|Z#F7*stGZw2yj^Q zil3cqV5eawvBI@5S((8|@W7fQv*)?aQ(>2IV_dZ-h-X^-EAf^`&-brZniNn_+L6&) z&@=DEW%<4R_g>h}+^)~VaPLpZvsc}FYRgW_cuo+i!B|K$uq)-(6qln$ncjhGZm3#ohKd~DKgsLp)S{>1tAb9>pEB9r zGgK&lsh7;nzKof-)?_TzIkiYkPkG|u)DsVN=G4BMyL(P8JKwgreOJDhnqSB$F_)@l zu9!b_-vLIcyS;Au_doAD|9em5tG|<{>54GKeEB8b$g-DVb?9`ih7C`fG?*Vqa*aQffura$ki*8YoGep~tf+t=QEuKv=lxc<-Z#+ob2 z|8pLlsXrs9^2z@MgIylX z?+tBTBX^w^8_17{9B2WHo5^gX!{pKe_gxnVY6|l7c z_x7b3x-l5eXr2Av!t~eVE&pb_DNazYSl-R#YPxWG^Q`~JQ>%}EJ6iklTfV8^$GO+k zKP>wye;~EZ{hRUWe^W(1$p^DJDD*TWmrLDQZ9D72!KnuN0SpNnJEX6x&EuIamLcIMdZPk}59W}%IW#{aE0EZtrA;YjnMtbksj5a0K!Bh)lH zUpmhC6B+v=?P#{_imU>i#6RlSuFmg0z2J0(#PI|Ax!cy$W`TuSDlH2y>I$O@|4XZ!v#+<*+uJQWX{}~S7?2A9`-?&$d^YNk5*4aP3wq1{` z4q#A-m*|qTMrS6~1B>-Brb-1m-!>oVta-8$MZ=~$o`^;k*9lAcZ5}#(PLnmPSbJV3{@3~+{TEdW_uC}gSt@+!ci_g? z7iN_wn%w{R`s;f~!LPsS>TA=?udR!#7ZZ3Af91FMR)L@CJhRdq47-9DCqyI}9$cu^ zlypcnZVub3xJir*%WpTGxcD-yerD1hy%W!tm{iQ!#E_!HE3tLYlJhBl?_4N4_W#5m zfy}SrH>wVq|JmLD>}G7qy7M2)Ub}zX_Sf^q8X4u^;kBRlb9|In`hW2j$V)FD?Ams; zIm*UqodaXTQ-$DJorjkSF)%ew$X*hEViS)<`|3q|_Skl3Eplt-*JD4pp_%p6wFx&B z+Vh2O+-J+%uAZg4E%3p*ob~Bf;@uv;iZ)okk9Tb;e@}GX-hJL_U6O%@HlOY@C-41L zGjrqIuYnp&44Z@-c&{3ydOHSwO)5Y7{_1*00WHR}YtAK=8s|PY-}t8fXw-jRg%v;b z-!9nj*@SDW`qIGU2|u^5>;D+`+Wo_>ufYW~C0~AgKk@&9`}Wh9#LFuE-&-`dF%EQ0 z$>qb_Zs`iLd=NMBjOktUshEkC;Zys)gXdzm?|o_A?4a;O`s3k4fno)ky2oZ*i$0Vf z`?F%VW14k!Xo$|Gc)L9wY|B{IGPv)azuuOmv;6P9U+1=-dG~tlZ-aIB8}3yIyM4~p ze80T#<`aRL^@-oYIVRRG3<~rOe4p>pS+^tERYon8vE$6f9TfooA>yTak~Dbu_^-ky6>W@|cw#JzQzS@Xjs&%AYb`}L~0 z>2LPBz5C)f-?wEcUZHq)%>vB{w*Sr={0ujZe6RoN-(H8Se>lX;TLcrNXYG8g&1-UF znrXmveShhTd>7uc7;yhH?{{EG6X5C4Q|@v7c<;v7?ywoNPW*ZQYt#SZOD&Usf3k~8 zU-WE$V|i4)=dQo}lk4}o|2vv}NBwV3$DiNVqm=%)ST4N1GtXM-k;e&H4TcHv9F1Bt z8H6}m{xqFe=bxh@E4O=Y!Hm)$H}xjgii&m`EfI(m6tBJX_xWq9H=%2aBbVpLRDb;y z^;<6F^y}67>dPI4{#iOs_`m9*6Tj*;SJ{29q(5!!xG66^QFVq3>w%?$3DQ1+3tk;c z3242&^+AcH$>RDe-TOYR%K9o-ucCf7xT6_gn4Tw!f8cKe}q=6Z<(|pELfPuDGn>&*V4r4eW2+4ZAM7 z){SE)Gb@8w|B|o<=j~G0OK+)cQW4---Fh=->oUn2_W5tG{@7fn?eHV0zAur#!R}-1 z{3M3GU+vDUo}RLH--?^pZ+-t8Rr{_!e%EOoCZ!J{#<7wt913&)ot+fIaK`wxJ%b>_ zi*2^b4)Kf(6?P1>1V1ruuny?`bf7>r+qeFiucYw?15f+^Q&;~Ne-eM?k9fK2PyIZ5 z)%cwG_71N@B>u@h^n16k^Fd}pXz5M&;If}{mNvm zVBEeE;V32zh6(yS5pjjnOQy3hC2oGu^(|DeqOJDv`!>7(>3efl9a73~i;Dj$!lr%c z`+QEN_usFEH&y+8Ci~)g{=pq}!pFWw8?E+_c$BZwWU$KpU-j{M2ET<(f3!_+^jH4B zIgGJm!E}Z1>$1HMJ1(>l*kGl{HMQXE{^b)A1(hsbD=?^Wuq2!@YTQxEdP4O4)J^rw zRf*wJ|7IR~d%yJJzKVutFJ-q#P2X|(U-yq~UyUD}kx={ZRgWg8$5*X?v8-m_ zhBNgXho(fAFbkvvi{3scazob6W7SfZV=sk|38X~|32eVpIL)?GOCfV^qRu2{_OvBR zpVy0)+aBJ(R{hB_&YSx)zFyCXdARo*{{!CF%agMHEx!3*<&%Hj|CXbVemu<9J^nK7 zC8Kv^18XxA!%ycG+zpo(1~)kyxgB6o(r;p zVh8s86yA6wd*cROk;uQNE~W?U_@gHBnyE`U>)ZOwJ5!Q57Vlqma^bJ`c}get2R1E| zo@ZR`b|#8dVa}7cdD6QgzwP4dxH0|kLo1oCXRA|FT03~f7N6iW;AY+zsb`%je#Xea zK-^%xjEnxe1sW&zPxz+Px73Jjb}bo zA6-{>w!XvXs|bU{# zVH(a8pXmOTm~Xv=-+{Yo;iFQy54#gA#M&2C9W?mZlwH0sqt)m5e;Y66L#O!+0&nj> zaewEj!qceFPQ4o@nQMI{{_4E8@%*a z{y*iX`Wdl1rR!q^Lw)vT9zFKP142 zIonwlU7dgWFI&^ULsRzc+bPbFaOVH*sC{p{CVc2Ft8sfQ8p2mEezbdikn@Z=3Lhqg z)c7qml%= z{W0i!`a`W{??23M{j>Vxllg)_)phvRy^gu`?wq~`!v>orI}=Vl@4KtY4?5`UnTHws zyPZGN<FI3OwHv&h%jC|LoazRr>|eJ*R0;#zp#^`;p)V+hC?kEy5$)B zuD8C{3J_VJ+?HXheu{OESnCNNk>@MfIMyp4@VO)Z$^-3rAGwu~R@o)Zw=?nVu zf2g1MfA`z>ho!HVA5-}6__sdf-F&xyoGm{aip^yL<-c!o_iC_gW@0$a*w6AM`E_#6 z>bnbz8ypm#h)<50e~EoTVU?pCAJdYWyceeL>MyD5ulc?{{_&f9{&dENp0Dfe=VxzJ z___4+^FX^_wVuCPcgipB`5&ZkV(+?w7hTWqtT)hWW^g=aU-L$F_HoU5YvKYIc6_T_ z<$mf=TK(iN?~nI{GC1AKFQ0Yq<-^H`{Vuc4XudQ}YcInCs|~xaZ{l&#U=>k)6K(Lw zX5M0Zhg-W2&A3{XUiXZB)Bj6-CV#Zw*(hJXxbw@2`rU;+)o3`BE z{WbnyDf2V_hPjGB6NAI7rTmGV3m6VOny_`k7IB`8YyPiZe>lp?!lYRI%=4S7|F>`F z?1~=9Eqs1&>2?32Z*n{1nFQqIi+9V$9=Riw=JYDw?jQ4&cmKU#tgSXti(>k+AT9p0 z+*QN6*K#+%aqeIBGHzP@N26C~zRx|O9do?#?!IY^TxT^rTpKK6ZT)=Q3NwEC5kIe)B zZ*j|iNisEVSk~bcwDW)de2b0uUQbr#O%ZQcFny=Jz&qW|+da%~ysqh669473xb7dW z=kbnDKa_X;I4`*=&OT)O`p!4|UJ2Gue98aoQ~w{<6mia_?r&zUs@zl&$}6bXbM;bw zoL0jcflqb2Z%zR_z ztOXd3yno%A-~OI`q4@T|8+B|)Z%r3_?g z!y9*}OPWo}Yw%`bWe{sFY@hO}#lp5`w{2AzQ=>zK*rrPp*G%94Bgg)Hg`n&usZR>0 z-}CofG`5+Za$Ho?U#yGugiyoHKKCQDuD&xob2{I{dHI9hrcyw^y55&rhE!<_L&y~ivDBMlve zyuaRg`4jyf?6#WyvE!Pp+s_xq8gpv}t6tY?TvP2WP2)H_{X@0s@4r=l6S$P8if~Kr zU*#NlbzkKC9dEUoQ|!Mj7Eb%L{O6l9Aq?v-Yfl!8k$Xdqe>1Mlh+a670 z+q~q&JH|(wyB=@lOu3{I@Nu_Fk08f^2jVANed>?&&CS?<`oNTe-}l=zQ~#eop?`bl zt8AK}T-!DTXRf{fqXKcc0@- zU$erXmkD&Q@7sf-wn0n+j>i<4r{|v8p`QJ1>FvF#Y>cei_p3#2e(R=xbTaR}t>+lG z$^FX?;ja@uqpEmaN1={W@xFN|U-0Kw-;TdrCa-q8Y00TKTeB+MYP+r*_4a!v7_TjF zJ62oVxW6dy_ImNv0c-f)oZBj|@L6HrE!nkNy(a7IhSc?IK@ z2S+9ee`hX;EPrX_&GL+G|Fd}QD*-EPTOWNhHo9@;)7^j8UzugL$sP8-cK%S>(t!SY z(|cd|UH);dZp{1s>&pELFM6lG`d`ez#h}AKvnwk0xLtBrQ0t<*agS>q6$H$<44E&_ zSe>|qB_ZdBDnn6jo!5+35r(D@{2tSHnqKTzi1{7*TBPc;?Ua7|?n^J9FT4>hY3IqI z{AP!~T}GpV-T3%>oO-emueWy{ZS&V4wsf%%%EzyX{6 z9BVi99y)hfBhQ|*b*0=-d*Mz0gWqhOf4KYZe(q?_$@RMTzN~-#WxmTl_ON|>-uo(? zSf?bueBxh&Q!EoUI0P^x{PgH? zh7VdSdpyc+LSa;v)<0Ea2m^}@Lu5LdtC#=n1u%T}6KCxBTr+@wZ@AF2Do(Uh_ zUwsq3Y32L!>dNEOrniV2K3q{E@^D_e_<=uvSob7!1~7BS_5S2d&*CROsh2;y+4@C{?86lsd;flBTC3xlGT}oz`BA2U4fi|GsDM{P2_O!i$TVjTn>W&svlg|5&4A zSMApGC*6hqv{be{oU`b)(dGAo%Jq%LKHTTEH{0=Vva2_cjJbHmDCBO#)x4^?%uctp zqS$tQGU@oqbm)&?@}}MeSrz@e)-|m3TmQxBUpDi`^ht|6p4S+zytLWzbExdTss+oX z3YK;`Y%zQDlfNZ|d9%Z%_lFnfpUCcIyLzW-=hr1Af5dZzZ*O|`-?rpcyG3qp;(tf> zt>5GyZuv4jQL?{n(|^TB_lEnm33_2=}5Ig&Q76l@q$5)PdAI3`f_ ztZcz{`2%}?iD|X(XW#rU_t(@-NT~;hN^cjmGA-P$_@dIPVy)!XdE1>AFip&Ak~4f(SD>Jw`hl6b=l4`r zn^N^uwSSMcE_fC{;r}fC-|13O&-qiI?Jq5DI$X@`UR^q6clnd_RcEJP)T&oe`pbX% zZ}N%%6Sxu{Oqcq*TY%#;+w--%@Bh49_2Y|2q%teGW;-K)Ib&nR>tBBk7@WSn`b#UQ z^(82|X{+<%#)JiOWuN?KnX_Cs|MgmQ%I~&|*b^EW^eQ}$9&W_o0hx&K9H{12IkGASFdw>6V zKL1%w&6AhARoF8`GTZ|H`6+Qc;5y&KX?81^w;*EfzwApt0#oa5TECtuy5eB*+W&Wy z-#&_Y>sIrA55uH#nbv44BYTYn-`}1Ea#6?bWrX{`QM_iRQe$=aQMtz0`|$=_xU*Qt__aPA|Xs2ipCV>3Oz0V7I!o zrJA74VFAh7wfD2_qc+^%3uDY`>npkmF&(vPXINcV&2Qfq81U`fjOBa+?Oi-PFYYbr^!$9UIi^opiRbW@ z8{xky9GR~Dj*gRFa_Pv2X8(EpET4ImD>Wn@OcmLgU~A8`-=woLSH#r$#J~9tiN7Tc z&N}>l#jtj>bw<3b*QfgD=UC^2$zFf3qN9jIRHNjc`@&-WwU64Jp47WMt3UBk-sKwse_t)!>^x*lb2V0F1lOB(&!Ljek65?K~lo3lq+I~_0%s0 zu}1E>z`j&+ZsdVp_xTPBBbx5MJ=H4C&E{osXl?#K^?OVI(U9h0C^mm&T zx7Wccw<4V@`SxC4F1uAP=6Dw}^K6dE7TWv;OGyC+|=D&KKC-XQ213iK)!| z+v%R)vX$qbum7(ow>dTU;BV0d0U-f81|r>DJad08n=oOQ{4;jZ!}H4oiem*k>jgO` z{A1pgZ?^LLzRe+mh3|ho(u{QZeMIQYTKB|j^Clc@`L;CwN4WTt`$wbm<-S|Ba5y^d zJ-jhGsc81L^Zz;4Ui#kW_^2n!uz$mXcicOiTgJ2X0_(Mqr}7hOTwh*)BVBiP--!>|f`{g}E@3tLH?N&(#(dweufC;n z?_<5Q?V0PG=>qaIET3)5uR5J-+w6O@DsbQHpJLU|H)=;0b{%NQ*sMA4^Mp5XTI|Q} z9N2Mx>D`AJw`Ib=?h|s9d9B2eFoVmd`JlSFFvm4=i64(^nUjLz-RL}ESkXftXbh?{W%B5hNFtyjq+NIJAVIquKzag^`zqM zXJ-V(OolYV9?In}e*fL}w?%#2yVJRwdqkI1geOk=AbnKm%qOugPJ(VLmHvlG@fs}W z{r)HS!!q93*AA(#pFh+0nE7I*{+SXPEG>@_pfp=SevW_SXeu_r~ot zeUx9S{D)y#Afr#KrB031CEJtfpT$>v*!<41z=QKvzF4j1Uj60b2N?t<9^{>$a=H3$ zuuu>4@u$we4;D6twJ*L}$R;&8BP+m4!RmvdW#+E`G2hh!!xnrw#pT2;dizbqKV};d zkr!tA7xU&gUG@I-*Kc*_-)1#FzE_)aUo41aXpX$ux;W~>9V?UHLQh{$FAV*CWWneE z0cY)%o{LSacd|ys9J58^#b-}-R+7e$Xp4g@~ z1n}-q{MxWwVFSAl`{NUKPSZOUzUAAScss^Vkl)^)Q{V@WMx20y7CX;Er4J%3N*)Fa zI2z)AJuqQ;`LQX<=U}sQ-{#3`G4+QJ?QaZF2`!gzzMOd=H_rK~*{bmPm+TB}J^v!= zl{s5P8?>X!m;9c?JMT|RD`=?0HOfmncn7E4O~V7h-DMV0FSvaMQi}kE5eM z9uzEpBJ6ZYn`eiQ#8D%zsk$Owp)1-n?St*DC(Yb>nq8mqtnHMZmuF6W;y8Fzo9(#Y z#cDgtJ%9CI&rQ8wdVWoQTIq33ACvV()ke%dkiUJ4t4^)6Iu_(UeDd#SG#i6F=6RF{TwWZP9?JvfF;lZ>fAG9JynCw^5B{`1NNRnun4Pv?_1@Xtv|= z7nwhmE8ZN4?`fam;85>-c>T#^4C}hfR(F?Wf8ceE=`L~IcR!1F&&~LG8mA4pKJ9vH zG0j9dS3`8h9_Gcn`<-6r+A}nGC`>tFpSZPP)Bj@+r(C~c5o(gywt(TlCjrqdYSS5Z zl-=HFHGNm$t%kc!3If-pbTR{^_o%6C^U8VUmvY7=v^}lrW}V}&vre9q!W9McOxG=W zz3r||>t)NyYH_d4$^vFi_)%^2f6=qA5Br^GIC!4iYM?FsV!Qko&-2f8=C#J8Ke{Nr zglR^}%+DI>C!#x#yxG?78UFV{Mc4xVE$=4>Cpc;FavYXpQHpr*Bb8l}nQ`MpM!jgo zZEHoYvIndD6rbF1Irp%}l!fBiJFKh^ZYyd``pkPJ+n(**nJe$T6`n}n+4uk3bpM?O zUp@2~6_^jGHZw7Nb{4z5-{gy*(7BzDtJWE_Ff~pnR=G55#&ex3pY*4crU{0f7I~4z z*;*vJY=)QU3pd6&g*V=sNr^Adh=1F-y`OQr<}vx#?teu6pT%F?d*;8!%Kc|vaHkvJ zpOY`MX@1L0R>oyN{%Eaa5cAz-?t4O@CcfQ$lja$7=G3~~cCM{lcdO5<|7Kpr@IUa% z>*C|nZdOX_aI9rF%xYLNSN8if1Es4am$O?>TIQ_QWfoW@v!F2P(5BrQrg3f0Vh#o6 zx%d1(#SAd())5UW~W%!%}mxz%zaq2 z{G8?cANTcNKW#qozsZrY;b^mao~P&c9dQB+YHRQ9vDjH1w)^9mUGIdM8aIe>q<*Ya zd1g7Gl+UB?!Yi+d>mKYoeeFV@#*fJVdAmEmePy-!8XR#}*xZcX z3vK2v(e9XJ@$B}r?zktb&iu&UTlM&!4YyqE+1(-ydl)`7yKcAXX`Y<$exeu$$9dti zZ;b!{Qsv@mxyx{!cfaUL_hYF63U_86;CJ}4TcTpExr@8d)$i95CU#Hxpt)hUu7vCQ z=#!z3MYdga`TFT}##B2a2^Q7w^@q3)maYkYXLX(P(|?nF!nJ-glrA@QdzH@T>xR=+m z<;8l<+`p^sNc@%0-M9WtTJiDvr0TELNt~ixk52w+Ra|s^k$z?SnMt>w9prD=@$1oq z=e1{lzIeRET>lX>W2aF47vaBqi@Ob1bSafG%d~~t8EjCrNy)fXFLTYI_{Lqo^*jsm zL@sWcb;Ig+vW)Gw_^<7qF8?^S*>1m@v$OB+m+e+Bzo_sxs5YN?k|a3&FTb*$*Rj~^ z&$eBCcjBK>iN1mW$4)nkVo|x$-$&+e{3jw%@A>bjO4se!g246nqT9Ha{}h<^*x{j= z$g_2-AJ@;45j|WzFY3PjiT1DwH(mXo&7Z6C#E8Q{{fsl~2ClS**yL13Y2O@ZM;a|@Z>+_%k{O}Iq2tXmhDwNLphL-f;rmu+=X(V9$&h7Z>LbrobKz;AQ8f9?zzqcg51K%2nyj2teTo7cmTs@s&f)b-ymWu{=WwN){}-@0 zeEr3sq1UxcRsC2+{l@I31^eoED`fro=@D!{@nLwc(u@fr-+BK2nV%3OG=+W546cSL z?1v+kEp3)&k%-(Tta$CJy>q0)hlMYyH-6q!cm3j)$F5TtBj&1cE!B;Dc4e29>+07D z&z~6oWoTIQU;UAPglx&JuiUravFtTiER!C=;~c?tB2>k`WA#+de_|6K1z#_{CB3ho z!<&8OHV#3Spz8~-D}VYwk5S=u`rqowTKVp?ihGlu*M{_RzX_SGA-b#f(|$F9O?8SN z_eVaf*mZ1UtcTkFO>1YSIcSG0n4T5zm1zpcPyVv67BY!pB}%8QrhCSIIy8IP&A!O` z_R`0b&Miyk}Fds!G-DieCLb=+%C zr6>iYC4W8WG<}oCOZWI!@@9XMAHLbowYR$C(${Q_E%(}PR?2tXirl?dCF(opqxegf zK4*=8c{fe?roBq7_wSNMiC`na*@Z?MH=jy5zgzo2PzZzeyl3$xD-RhRe9Xg8T~uRN zblY8$mG4T98?VLY6^s>UimLRhQyH9C7tC~xq8a60BxU;j!cHbnI z50m2-CmaA3m`|JC^8_z)%&dvCuP(Tid40Cq!d;!eI}F5+#Nui)NQ%5l1)=Ur{f)W)ls`<_}{D|Fgcf90mj^jEA+Obn+T zzt{;XNU^-IyAeMTX3m5)zERpUkgLtMA#qaQpkiIW_E0KR*x5*vI(ctFQ^@rTh$sqYpN<*KgUj z-=AZK$}gX*3%q9TpBDMdKKo3Q!uj3G4);zmgek6=pjAD8Ldo;D)!j15cfNZ(de>Nf zETXZ2=QQtrd9}Yi{QqRdSsI>yWI6uML4QiXiYt2<9Deh7Wy?=sWC;2%9LBu%*h}rQ z?UgU`b1tnE3Kw&TFwkJwP|>5s-4V)QQ8qpL?z3u!f3J4ElQ^`Z=WG*6UDY+Qdb|VLdITuuX+6$8M8LNacp3TZ}4$!n6bd2#Ioq(x&X$K zglSnCQ?_5Quy47&mm#X%LH7^ui+`>s%>DT9RV}?~Ve1jVppdx1GXk`Nga63M!nh&cQtctc9Qzpul#-C;Yr8k7j@k|@U6MN@$z;1-p#KM>^L*wNc_d_0PX$*H|nH* zoio0${pc5yFSmr7I96utPQVr*2zEr3hvi(WkD>5iZ1T5+r44;+OVc4 z^Yvz0g2tBmUtG13(tK_EzD(-7S?+UzXB`%w=6n75nIO<$y=hwY_jmS=4_`$G%wWF$ zsww*H!CbpK;k75W3#g?ZJ9pV2uSWdK-RB8+D)@f&rY{VYW2|8|xygU8{*CeK3o9>G z&srenaOrK@oKH+r8AqG>d%wBr+HaQDnEy|6+qe42wBOeSm3HeJ{adtee@>5ulf-19 zdROzm$&r#756#nNesnqEb;|6JfB}0%idlVV2`lVH*!g&ukZ9loCv@e-Y zW1dx*xL)~!*{LsDn{=21qWBNYQQHyrR=+3Dvt>`y=Xc%n|JUDpUAAtqEW@MzP&=T9YeryWQrJR?r}H+()bC!* z*tFxa{=+FxI2#)^PP89r-k&Yi|26in2^2_}cce&5zEO0-#r&#*lo+1QOGa9*22Q*NT#Iip zE?aAzX?K0&!zeM6%?xKX7%iGF?O{)AXJVL<tfM)i}k@BcbeE&sc7zy77wTFIw8@-vwfWi==LmwQ;=F4y~P_YJE* zzEjTG@gJ2u^X<6ooycQad#h4cbH0AlH|Nm&$&HPV%%&VNoASskM2j1T-gkNxZ4z;yyMerc}aQ|sJ+sr<|NhRW59pO&%AV86DLr=f;{?Vz$Q!^8!w z(xst&Y)omgEFPguE&l{!=ebHYXfR$lDCbsK4Htf&-dl!FEZQd8CrdrbhSm-i+kNSr_TmA&0{C6-SEC4vNf!lYt{#;8+B~A z&ap4Zt!MDscul_W;||kS)0x6NnSUCqW|X2i$oV>?BZc?N&WXYNp{nL#V1~wq&2)=#}uIwmRZm9_gxGN z!;b^MJNUo%g^C#j@e1tpUBbqwWb}WFLW2QQ$(n63`xB?7yqs{`vgwj-Yw$0JCuNRC z3{L+NZqMD!a?;-EyyoNi!l3b-2NQpbo-R0a;(6HipGL{2`tqjLC)_O;O1$Q=<5|%c z{>=tI`EA7`JJue)f8g7_xPPc2%)z^sKI>(-x$(XFPb@i!})$5Mrc<$Jf zaE9?l#8XyFnHz=Tt7;oh9n4Sq{qKD9&ezYM@bBLjpYpT3d)~(QSsC#>SN7ifd+2KX z+r4(&XS6vSv>N`b*MI-J?&k3{hRX7y_T8~Z(!M3fIiLCcuyWHX#xy~e38xvR&t+h7 zv3Bq^U&7yTtwQ+Pw|J?4pN{C@R992-F0=AX`UO4NQxpZ)dmddS)j zj$8}^%h=_o{5w9O{^7GcvpDzM_tOLS)FkdPHFB8h5;gH4!(EPBj763k9^IK5$uB8W zkn=N!uX)FI-AC^qRHkg4sD3he;fL3GuVv=8>z`U_->meP^~$To0k!8DLw%;YFPIUX zaH)L3t$Gn%UPc*oNJ*8^AV-&2i z$s5nc#ur}`&!lG0WzM<(yHe!*K8~wavl9+~;@+su@=*NiU#EBLm;U(DnH*@yHE-j5 z4ki!w10U;GWOCd$QhnIX!Q`{4q4a}igos$2(8dK1+GLX*ja63rPkiS8h}U4X!hs9h zzIjQ>L@F(Rxh#aSgQ4N}UJnVgOOg&J_$|t%BrSYI7T;4pBPhZUp(ixM;SuMN{l9kB zSH16iUiV}pf9;p$vwJpPTJ}cckjw?^Q%#3YPyQpWx4&_A`M>fNcOS33W_dZLm4oLC z6U)cf0?o#j6NFM(oh%>hx>S5Xa3AxfBLaK%&pMyqT+@DU&K<_>N3Y0L+_l@^eD1F} zTbyts)7D=*zDQrluMz(;m)~js$2mHN6B--m-EUBsCRG*Kf8*6vmHUk*3$rVpFWLY0 z?BUc6%S(Q_-`M-xe?f$}=kC;}2mUnfQ~)(0CX_w@+#Ik<;h)ll$JRgnli#$%}|MouCDO071p-aPj(_zLR7bZ+x#l&Ihw7c?W z*?mhZv&-_+pQz}7!b9#+2xF#t`=8qzcdxsfJOAe0Z?$)I>MEGO2`8?5k^bLRdi$x1 z=>fLCWFx=ZX7luhy79z4T9FrZ*PgqHWtCR62Iq^kh4w;^W!BjrD9V-Y(@-vO?qYgr z`CzKNO0KueRX?6wYq2-o-xKHW?|-&?{`-2j60H?BOlyB-oG*5;>-xmB`IT?mca1&l zdmc2{Kj>a9CZ(`Ul8MPM(f#7-{RJOQb7cS2YsA#t{oEA6+!3q12lKJo{vx;AOJ6RH_(R)^r8>t%wO5UqnRP|u^M=UD zx!h9^@oo9!`_gnlsN75YX=SOFOjWn#YmV=*ouptgNq_ez^YwCnrmguLFTQhsz^m?k ze^U>yelM<8-+9FT#a;cZKcQz|-?e`pb=!0E`^{=`+6$Q?7_T4lteYOVWQyB~lN;FX z{Qq;Dr$t8d;Px%GcEzd=PMQtdYuEAEX?@zYr0RR}s{iUwB<_^1zgPRUxP0g99h`eu zRlc5=*I<}n-!tXRj&*mpuKgy%y_xfM?>^AAfJU!(Z~dPg?ENpj^TwP167|Px)&3+2 zNN})owA>N;p!2}eX_@~zaSjF>V<$nCfwAvw zrhkuaPvu>|FFxhp)h)m30v9cuJ#Trl|F86!Z{>Hc6<)m_PoWi zk%^((dCn92t{p)PEq2PwPhYP73Q8Lf&#g^&^)gEB@K#VcIQdWh{onfo?0(8fY=6FM zx!cMA#=MznDuO3A%{Y+nFt0`H^KHp*7k97z87sW!Qqw-kg&*WzoImq-hW97i+=_ym z-!%o6vJ~j-km&hY+IRm*X^N&-BKNOv>k=^O5YmeCLD>c2{>u6VBYhL6d|Ks8BWu~nRa&0 z{1nNq|4fi)W_rU>-qN<-(3I4e?0yi z@8bA8)Bo*s<7UizwQ)itx6`GRV#^;^(Y-$rTI4{%9H>bIfeqvq0)E<3bLe0)ImVE72R< zbiFwr@PE3q;O@fsJOf*cIp0+0H0Lkg`~Pj@Qq7~XBIR<&&mNaM+s$1``17xv zKED3ldSt)WtKY#L`=|WWwi3Df;_9#d$#475S-uuLy{Vbu^SO@mr`Z!8D&+pV^zg%v z>_UmfoBr%ww1Sn5QRt!mhV3yc89tcnaYTLI@HjE(Uxz~k-z)Lz@78NiZ|3<_zpLsQ zhX}(7{zW(cFA;XPdvBtDuk_8irHiI%FgTpxnE3Vn;cNHSFRb}f9q|0^r+4Xl)0I}w zOA`!UXQ#NzqkBWzhd;5ZSLbcC!hRLyw50l z=*7x(>j$Mu4lj1T)?|sfFL`TQ&i*3``(m6~q_*YTHXXPBakt{h$@GM2r!IvrDE=aJ zSoaA?be zI!*^EHC=9xSNG>juyp7YhdDCn7s;)-wnw{L=i=nA|6TrY{$whjd-~ef%EPa=&0+aj zKSxQSD^QiW#j=5kp_{e8M|AV4f9?0Gf4t-V{#yKZx;fX?=ht%81=CpVCqFO=wEL%1 z_WsZOP3QmbF?{zSW!mAHXVMxt-!H#gX~Sf{|90?%!SvgX-_d3;I~LUH6NB(pUF9`A*B)+vY{NX!&w_vRD#l4o3>Tjst*`r~;Ela?|c=YRk3QHs3ZXNl0SLbpY&ud>>o50FebU#Iw0{O|9{ z9s5mA3c1xSYMq}}HCJYu!=LtT*#{jPdJo8)Vo-D9(-T^qz+%DABf*fS_(gaH$U~l| zrT_hz;>b|X+vwjJ!g%K9lIadJ1m5jlU-ypxJl}mw55@n5^}hUM0=kC8V;@>S^6~8cSTYy1Wu$orK{uOV<`~I=so&4*#6N_^QbJw%) z@54p%7tC2K7P(oA`^2twp#h9f&hi+%w_{k{Q(2=g$j~v3A?4-!e#6e1D9!^1?sIa_ z(&7-P+8E9x5cck?TTcj|Lxi5p?%)5q<9|F~fBSBjdE0u0XKxff%~uX!P^j;SyE@rV z>t5z{fAiXOL8dS3SFbAVo4fnJ$kNO9)B66OZd#Ec-n>93_nKI*PAcQh9l@T9Rv$9p z*0^4_Sekz1&pZ&;xcu7p?)S@H zxX%2Tekf*QYWCypK0YzG{j?f-*(Djj9aL^!ywUi#B^T2Y#TUQzH~+6wZg4y=r}VF- z=0NG&&1rvcd|Em`(DT2=Q-;FxoW*RQJ!U(4>O~@#nEYA#-2Use_&-nTYfnjBmJHrz zmT+INO<-4C5qsKW(>M2ix*NRK58hDP+U{BOVY$YIQsJXsp_BgI>b-4nI@MxY>*T$^ zE$nMJUjGvCf4?O_bL~BI(dOv0>))>zt<2gMzruUTk@zhilWS-GUsdzkm4#7kB~!$$ zPnuerzImMMVfNGbJ3r+4elEub6;TH6+Ql2#83Gy!Qbv;i1>t1=)V(aYQ$MylCk3S|=em`zrxIEYFP~?B(DgJitYuo2fTl?=B zYwOqE8DWg8En zbw42GH}|X;_s^^T6t`n7^sEtN5KM^|JXW`gZ+$9LSl5qsN4BcZhiy&^ar|WPf59M- zJXL98l+c8r=kvGyxl)-f!t!C)!Giq^2lihp%=+PSLVCy7Ti5IU`n$0(xUn*GfHwPn zYP6Vl$oYH6k(cMPL3gOGy)6%3q{PG^-RyXDN@P86boKs@OE*6k7ylG*p3-zmH8MMr z=bXg!cQ%tg1m51#V?8pCLbt6iI2 z+xF)$q|QAYa?x0$XHxyeZRc0N{eJ65=dXV@SHJl;S6=VX*E(Tv{%gPj6=^ljm^GjF z@k%qe8LpE`2=i)Kc;0tMGy68vibX$k10=*Q?QM6EVBdDN?)g>my07mz4$0U0oes#Jd|2O~gjrr$yn+4i2-{Qqt&NVh| zJ8TffqOja!_5Mhei1p|8cLc3fTl&v5@Oi#OMtuC^KOY#Dv-2l>3bxspyf|ZB*xdam zeq85rdi7q``Ju0T#k!0-Y5T;K32&b5f3=Xos4F^ujn>I?zYU*te5-iu^(XiW!^H&$ zH9YH|DLC9I>kVK`NcjI-m4RbB}!fjZ$S$KrjKW{HMv z@1DH3ebc%9r5pR*w@2Stsj2N;=laNN!rxUVH|DB&{E6JZFW$7v+33H;8t<>!_l#fc zRBIODz3E|5S5rO7Pbl&#!{cSbujj$m0%$P`oV>O~PbE=#(dN?*jWe3W8XgskFep6X zd9MDxc5bod51FZd`-2%Su-ZWSE8-#^)(fkGx8JqMxYmDvMV`GMW5d?N4@xKP%oWj# zcX|78`IE;s3LX2`72Rx(4c_xr`l;-lns>=NY$`hfMQ>c5^dT}itmuD0QCb#9rvU#R5|YkR9BKOf5N`szGoi`BfULygm3Oqj0UaaQE-@76Q%TRsI({`H-E z=KfWV7kO?TJHPt7zdhHrv%j)p7R@uiH+#EJ`K@nfYNA*ADGH~Rp81sV_dm<;`Z)>= zY8KOsSQ*`Pg5#KWUbl6>^#8%E7n9f-6zw0}*;)0rHNJY{?rp+{Jq3!tT)t}54(gH# zPM^~=SI_U=oO|`ZPp_|i&;R#Kzo9|xev>yEFb|GUsoJz^2B?zxK;`jgHhl-}tTBezU@^RVzO0 zcUb+GU4O2=+Fj~@>~;OZx{`)pC*`z$smiUrsj;@>PCQHRDz$)1J57Fg=R8)g`qu6F z`PPrlH~+P^>7KFfm@jmVbE9bb;u%$U+})KjQ%>)qoy%QHIZa zvxPZMzSy?@zMcKP&kgLh+V1`>GEGbjKaXid`YvGDux@?ds|N)K92gs>y8YQ2lx=_D z?DqfZGkU|HCvm74Z56%SD))H%vgz9s^X^V5`dZNY=v2Zf1qS&lqlb3aOkSihF3s|_ z`px}G|H=QkVZ!R}-wUfg2y~V9EYG`T&?;4DI_ck}5BGHnC9;e@PG1slUVXDJ^^E@Z zb=?sTcH7_*kQG`hWR^LkF@vZ-wRZhQlUN7k?aa1eh?1%XH8vX+onm)Jg z7k>7UV)0P=A1T6k@V-*PqD;1~t6JO2_SXGt^%5=H-aNTB@cDm+wX2iwtciJiOm~{c zqR%WFJ7;lS@zLY`_ef#$@1`Hp%R(k59Lo8>>-kQNXn%zzhdY1VJ~q#Iq4;LW&$_KB4OpZ>GIulxG7`|-~UJU`?nXrj^tukBlGCxl54yA*EZjuFsc6NzBwQ6t}bkCkktzRR0#k$wKu`{|whZIJ%70 zRV~ydr)iSX%I#-YC^(4uNV9mHdf@YzT|nS(0q21UoC-%7IJ})6KYFm;?_1pewAa7R zoLUsH?7rsy1q=@VCa&apQ1bumv7;a7>c72H_3iQOeTT!?Ij_6rEiU<{n)9|+D(&yp znY;c}m;Q6w_V$$3|BP$#DZfN-cAb5{U+*~wZ*j%8>|a~L{}yikH#3A`A@Ad4SB6XR za+BV2bnaeNb!5NVt3UaR_UzSe)?E8b^j!b9!pc4Ui^@9Px9LpbULE*c-)!R(;r~0V z>L-2_-}-k|+yvdfLbrePehf8F?XeE~Tj+La`?tFcNgD!`9S+?QuzMF1Um_O1Uw-vJ z`OPW{rw#4CRz8rgi40+|6+Uq9>*U6XoC=EU4<6jjxBb5|-nQ9nr?*Td^APvRy1hJLT-T~%s# z*_7*$+OMC|T=GhZO2OJs{#}~7*Zohk`Cq$Z>t0KXoGsa0C1JkOuuykvy<8Vk|%u2Y-X7GhhdZ3f+x1u-c~ahtQVQE>0e9g z;@i7^eGZTRG1dA`>7-l#C;q8#bzp4xqv*ZK*o@=CF1y{&Vl0jrwi>2A`P-eR_Na6J z_X7*Jzgt-IY3IyI^^P~VR)s&8pTE^~ffTF%F4+{B8xL$AvCcF6J-;O|l_BuRJdWf# zwuy{4O>WQow(I(}^HbLTS+(ihe=)A7S~9l}ojm9~=dHcV?^go1muBConzWYZWB8vn z|9gepW7M50|46W|m?dddH_7ql|Cp**8Cx-DuZX#A@} zILO_={YgHEp<*Ay=3qu4j>(6%?Oxt@x6~=}f5ta^JpqRkni>onq$EURCtu#Z{?Eh6 z&4r(SugbCs)5!h*d-lG|pW0bIoxfP^ztwL+8DH9_r(O5Y@0SREuD|)}D)sAPMfIMa zgf+wW^CTFtH%KZU`E>l`FMlBpiLbe=AHz#!StFmXN9ew*#b9lP?rgQr%3mcer zPkQ%n>7y)zdbP8Pwma)B^`@MV2)W82{8Z`CO?$_8{u0UaFLz{SE=X{(J6QSa{iG#q zCuCS=IG7r|+bHy$eS#PZ$DXn()sRR3SFkfQZb&F7c-@=-=h^z@9{)Z6?N0)&&ot~d zYM96M;CB7D?)?F~Kb|?h?|u9K%kqM;+s$*+pYdz%d@S(s`@gaU+uu1Au3P?3Y~Dfn z1=@!r>s_zzv8um1Ve6~K8ioBge$MQi8Mj$E$F}>AYWB~%OEtzfs~j6lW!)Bbc;!k* zo99*k{Szv>_BGqNe*S{eE$qVLJ7V81ib|@Rp!#3n;G(FB-i!C|ShGK%rz5Jq@K1$W zeb1(^mPeJExTK|bL|hQR|KvcxwD)tL@CvAYyI48t+1aMRXN}IU&j;9Di(gRQpBhkO zD%Tyzkg``;h+}i()tz-;qtDmBvX)f&-%-ggT_br~7t~lxdFZ(DviJG=S8LVh|K9QM zVgJ9iyJy8!B`5DL&SE#QNB#fKi=|wR&3?qtp#EL_$$eR~ z%*oG6W|{mRpXVJG)N3)7zGRXPW8%zU0Rt zSANRdxqSX3AiB8kx!n#cw~8cV-po(O1C5ftP1g~>xZsuQO`%Dw&q6-mS+-NpcK-q+ z2BwAmFLoNd`Xh03d%ahYy`IothD%QBRziaaAfdt)N(!G za_#5zJ$3&MJy^dbbh7>Zt3Nf*@qfQ)al3uxm5)nSeAd^{p8Qr!S5dny{Pp@{KU_L| z_J8RN`1?*^$}x2v4iTQ4IR*C8a!2=o#!0#yc3Hn-@VPM~voAK0Nn#7*ml_6<1DXCi zOqdd@Zrr`LJAcm)>-9VO-lm-S(f@1q1m*ySgwg}TO$>P_milgE&WU+r{{4O3-`3^( ze!Kr)wo1y}y!N;*ALsQw3)k5HdNP0aUiZ!axMpNLnjqNp;j~q~>AAc2C;!&orMUTj z_|2^^XXZhakY$vRE;JFXjPGA{b;I(?#O&WdyY#k6kk4lq5t`m_C=<3~Trm3)`! z57C{{-LPsMo8z}AC#KNm#S8fNzh|}ON|^Otcw&&AlVW2{bB9TysNkKvNm+j;7R8*` z;xOpm)U+{#!STZ3^FOMety*MrVP=jpM~mjcowx1we1DrCJ8xgTezMS{JacU(E`}$< zfvyZf@6-zqGDx!Q`2Q_@->-@C|IUBQ+U+06kf3>D(pUbxFY|WBJ^Um+(=23y`Nd1; zMN0n}ZoTRly?>td?<*o}|5x^vh&ssZJg;)Ne`aQoDua^x*&PXWbNB1L{HoQ_hH`h`E(lB1cK-7){jY2E{wAsU7rryOFFF_hdDFj^n5I(? zIA8ZDa;C5y|G(zFs&4)jqvMh1Tt0{&tDaQvUwSmjmVu+?=i<`ZZ#Vbu)~{Py_iuyX zL#fE8|0lk=exdl#Bv7rDAX5Hl;&mZ!h9j|uU&WNm><+$vM0Tf)%evgmC-Z;X2W$M+ zS6lqGZ+fQhitoWyMfH6a`(B>h>T6l4mTRoE^h`M8nF+Z^CjI7dY`8Kx<&c7tgrog` zr=2~o&iQ)&@t&%?W1X(?zvb-w7c8t@Jl8&csV-SkTiUU|;ET9g{njRN)t*DI`2r^} zs%TorPP$WnS(J6k#`%0({$FFxoAalBmRL>U`*aSblvjW4+Y}#Yh&FI+*uCy{KC{OA zy-ye&BKUT_{k1T6>pBa5wsp3j=5OUyP+Y!%;lL}!?mx$Dt*e&rt^a=6k#9n(^D& zqE)gC5By|UW<*FDyxWu%^gr?ngVN=-KmYzYecRgTwf?66N%2*s|Ee?Q$R0SLI`78T zjiHfq&+ND^c}V&HGO@?+)@KBmJQNKSFy)Ec(4O^|v!&C~vE$`Km5F&~X_g0C92*Ls zd;ZDs5m4aWbeZpawtNk%eDO)1C>bS3V>o2^ElifJZJO+J)&tF- z?Cd!n+&Hq3gZuc;k8|TIpFce>$0>h6@QA$TdRIsGBFIp=_ac*(ED8q9JaSXJA6s8% zf4~1raoWmn%-iMupQzuw(zT|t%)D^dUVFy-tn93Koq28k7LkN2MywGgIbw|l+l5R2Et)!C z;oqin`y-mJWO0UA& z`3?$C*c%_zs;unW@Wr#4Ve=>E6FX+UJpC=2@zk0605*Xzh62Cq*@x~t-1Y6Ge9f=@ zf2Vppv+w3=*r2q4;Xsz6&%eu481^?|&0_Y0iDgdw${F_b2V%*L`-BU1XwmYQ`gvUD7^Uzx{vZ-1^ie z!uU^q)46!_fE6KucXukDtlt?m`7dZh{AQ#2cYTfUig%oCO*^fcbshh>UaQ}JV(HCz zkwx3$r*(N8?YNfz(L+Ii!?Mx1RVU?|V?*HQl&{<#vHu&m8mga`*}6{SU_EjtaQV)e zLLAButjhLYURUl^qqO#$z1Cm#pZ~cUKqnrB{F?tnUU;s4*{?(Sf1AbU|9L0>*6!mQ z{=1iZFR`1~K0hZf_(?uSzdhx@;gfiw`uZZ-DOT@!bJrGpyMAU;{-^ez{R~eOQa9q$8%q=>IeX8ta;=1qxp ztFVlmc06`J?}9f>3h|7^yC1ybIa|xwvg9%Uoys5g!s~b6-j$Vl;#a%n$p=Y~#C%Wi zYA|fr<#F~8`{dWR-u-;I`~BOye~*RF`*$I}a#jdKvD2FuE#IHi{5{~{^UU7q&(Xy@ zZgR68P;mKnKl}VPk1wKZcfK=9FxF3*Y!aU)G+&5CVwU;S(v5!)J-nwQ7I^R0v?KdB zy}kN#`})^A1WNz0S37*?G2gapMJR)B^xVrXsd01bPYR?>Jp7(}K8NMXef}(h^-PTu zf?2j-+L-kr`Oc(C9pARpF?c#M`Ru&&LEcu_Vd?r0$#*;>>^vDcHn-l*z5n;z_4?11 zw_iqS+9>-nHe9&hG6yu+;cjwSUg0cz!h@~9p8orKuR8w!WA*uefB3JORhWIb{KcOM z3V-{r{rfJr_{skN84>IOcdtE|X0$%9c4NZcxDU4Fk0fI*8}mm7rTJ88%WzC6{nz&L z>d*Uodf(38o;dB)rgQ&G-ZT1rlV4C*)o^>Om|SI0^P&w?rM#x{_T5!lVt=sUf%C-N zzgyy>Jp_KLKjBJY@aRyINs_zXp}$)Fz?M3O%Ti2zd`<=RcF(q^h|Xi!Gy4}OQ=-^| zJGpP~|2;OH|NY)C%fi2RzA(}JxO{ajXuD;NlBTCrdX=3Q=Yo#OJ1+0qQzWxmIjf$t z+d+flKqb#le*fkt@^_pzR@>J}Pd&=Uu!s4azjm?tU#W9Po-TQOUfQOo{H*+P8HKmH z>*w!pOj_CW>RoSKwEgwMg2EC7-hZ#se;eEowfkcdptI)O(tw)ySk`SmeO-oUUOsII z3|;tg={#`6Bo;21`0h!8`PU1!+G9JhO2CN;fp z?u@_ks(;njaDaPS?yLf#Oedbd-}lRXeck)xb%8Nv3{|;}Vw}&?6%NH~Gdj-}J7O1P^mS&u|E2Hl&%}?!m$(^ptA?c5 z|Bv3ZcYXkqiQf6tx&NPjvj=-*%UF8xO38x1+jnu~%}+dH^`c*k{lo$$kHbr}8fHo`d3}hReQUvH<6`UN zI&P*!n~q!mcjwnUl;8LN*z|juW`1j?oT>lsu=K!zQ=o+A8YX&R!V`Nvg9~fq%j18) zTL1shTlN2Y=TA#L+%r)mVOhscwr@uN4cQuOau{B)GdewGaLvxocT)3nS^-eM zOGFeLGD=%&a-!))n#a?v;*1=X3^z2r7j2$nU~6^u^z;93?*GfLzmaRc%W#SP*}wH7 zFBr}$YA|e=#qr#EvKJ%U8HS@@ewo)jp4DN|e8 zub<9*kRkoTm-D>a8MhpqW5)IE5c+}(F(>r zR`twBPfa`XE_J`bat^FaV%qeVD~fqVAmxk29`rpj?1)v zz4UqhulDft@3$8TKVMK&nzGE^PtxIpr3S-H(y!SiU!8A7g8pA_Zol-vzf|v|tv}<_OIfk+SU&2%K2X-^ z+-Vtk^y7jxJMPSP@L=jyFz5edE^qvGo>}#my%9z84&3<3!|~4|m4W&6)4$=itPIm* z88})h8+ZFX-c@(UW5VBlE~Xa$**k(eCpZT%By2q>xSok)(|>2JhV%cg{r~d1-|q9p z{U1*5|I2T;@Z~e%+54E&`vsSRCL>#X8TLM3R?OBK?HqkfEQjI6+AF~fJ(K>QXNqiQ z_PO>myKe4&g@5L$@%0~neZ8s*8cD0$!G3n{fwf(|(xw-g>q}2;RQT=6yFx;S)%Muk z_=^iNlC&CDt}5w@Gyk-IWh!f>jON7e5{ZE?KHsw|mOJ(9_#E}%(_fc++)jVXVKA-0 z@7h<^dG?N+2R_VbaG1er@j&j*|8Mzw{$6_j*4^m;l)v%GApZ!c{wX{kynOTF@>_Sy z9&crTzwbk9y4|0X`<1@p%;s6LwAu&dp7^Ti@^db!hz`>)Wq-f`9wp{4dJR%J8W_ zF#OlXP=?;qhhMk9-}j-~-|oAz{lb^6?&h`Z=UJGSGJsmZp7liv2TJtXL>O{9-%9_E zWpLZV$e~!MXBR2pFfsQn&&^ZkSAX8myE*3Lub=Pjr~Li1zK=gZd+Ucc!CXAGTiM)` zvRA7G81J0&kAJWJEvZ?lnJk*G{~S-a)GeWPsi36lO!AT~9T%@3>-!+~<*0e)f4;kM zN^h#CNGW6sB#22YS9Xv}dOrCvWBtK@t)_QbCOFLCS@(L5ZN+o#_?i#r!s8xas%hHv ze>M{r!y36`fs8y`nZHz>D%gJ0V(+H4=e8E`srz&^ddJ=|o!D;l-!PW3&5JQcBTsr) zF=yMss_OOs>ODnPPtSXp{PnB6>GKr|3{HRla4$7lb$j=XeU;JIesagi$v-->{&Tst zc*VECzPY!uIHOwb+z)7sYFxbF=!w5GnT~2Wh?f4l^rSz-tWoH}X12HIpC0!8#ry2Q zz0E5aj%B_yFRGQazb}2@r`sW)f6IU9-#TpW+qFk%Sxa&$-|n}^b|y!grT#bP7Ga3s z^;yN_!NaoW@1^~bAz1-Pc(iCe@dlP5*M?;+&F%?yswMT|d7+>h{Fkzb$X#14B$+Pq(nPI&k!( zUBq`8^HXAZ_L{$buAg=%Uf_S1;;rA6YW2($a(Q_*X1z@Po38Rb-t3qr^MZ|UtC~H^ z|7|#PU*+uIdKv$QHChcZ@^uHxeRUWW1eUeG-W7iT*CqWw`t9HM*Ivk*xBTnh^OOFn zuaN*1%rjhA4Fb3xSWNr;^!z{h{hyu`+kY~b2wt@+ZGz&18y!2<_^$kOm#f_3ns7zB z!TGUo#=EZ<+H}_Mjb0%tIRD{SyOJ$!{4t(2uF>|FSAV|$?e|aVG{(2jO!fNSJ^oU_ zfBm_8Mb7m@?|9pq7OoL77fXr%@>!hk|17ECcM6^RHwKi~uR0%Ze?}#2d(z?ETh1<> zn6*zZlz}JpW$>jJlUW!yd3-q@$k_AvhyAO)al1k10-q5~Z_od~T73V9&-%O8B_B`u zbNuYTV9f(vjZ6%yn=?Zg0$CdpCja^J;OuAf{XcjAPfq>4vETmhL;pYgSHucFzleu{`3D!n^uxYaGS!s79^l=pDf6~8_RHt>Ug`he z&hB5J@#@c7JwN_$f9n3RuaM&X^PoKQ!j-E^|CpSf?T>zPA(=(C=?!|v#OC}qR0x9|VF+y6(u?&7vvek!l$Utzit5;)fXu4DaoKz0b~Lo^@L$V$q7fY|)dL7EEvCxX*sf{g#32 zm7m-@>o-363c3aQ=`FJs`Ljn~3ZCQpR#3QwKP~>z%xJy5ob1Dse$H_Y-?ObQDM(3L zfAgP1PcCS9u5Yj0@^x{dQli`f!3RYf^%|MW`Ii1GHvBjHuu=7CzSRmlUdL|!D`X?c zlMuq>FhjOtd#ruo8b5WV-=OnF|Hd1G3gii9ef`#qkC#|8FJ;iLd-(kQy}D1o*B+nu z^9A?q?eqVxUcxkkB{8$!htuKC=SGKYdyRmCbAM0N%Lg%TSTeu$C(G2&`wTCNRBP^> zU!NPj>vwnEzpiD!{{G=t`S^UU@tbM8cI;hzz$EPS6Mu_e(@pw+@aONkel6hQ*?D*B zcY5{LB;9QmH;GcpvAUGSyIKBz{mZ6wqRvpw_T=BlBH#j>(5N zu6-Q7|5x_@l*qMVUU%!GI2i>0nKH04gh?lgI$V(!GgQx6BY)uK!Q1Tb_kKIR|D$-> z|I_jzrnTjl%U@M=#Qa{=*wFaKzF*+q!OE7;`(MuCTN^9I;OEG*TuSfDndd)zT;d(W z7KcCA@BHt3r7Yjc*rz1we|>d6lg{zdyXEt5-`%{2mz$AEK`~&7MyHT#*CJKdO_MKl z+o^ip^mJmP>ZI4RdTa9j!=)ff1o)ssyg-xEK6STyokX@xo zfkTMFu_2;Ew&FeGd)qxTx1YIH8+`Y&@#V{xProg#O8aO3p|GlI=l5@K=e_%F|NTz! z^~}n5O1kIbmVLbxx~p!PTXeaAuP@K^57%b~eA)OQRT{%fHJ{X>V^e zdCb6aHaleY9*y=lUtwzj4z@Zvv3gprFD$QQ-}~jvWqp-JM^j2;HZojVbi5%kqdraQ z|6Ch}1P+FS7fnhl-~Bn5-oO9LU2&7GD|dC&sc)~hUi8|*t&uU|hrm~+gl+O$Ypo8P z>yOL5cIB`CzxC>6d!H`1+wzvTyr$xgwuMF5!TiH{EHAiOZrJt}PVKt2b)O2`ZOt4u zMw2F?!pqzWHfuBgavi%-XM14&yLa}6n;WmVHLp8+{?gUc;=S|!+f04&ZFaFqpv1ny zf4kcMKT|Sa^xIlA_Wj4}$A3u&TQAf2b2&qAk*Aj5q(}C>VK*YSf4Oj`xA(*6Z?g|s ztUN7viQB=z)4%7tPQLVmv*j$;S^8KG%w9b`?(g~Man;X4GC$UwJo@$i`sea{|0^@` zFdXjh5NDWapH=jU;llqC?}XCYpOb#xQsiO%u;BBF$J>t2kAA=Z?$`T?dj-F^FKya& zW%BxmVtPOS`v||@n>zQuWL~Gulh608&eh+NcwTSoyY>0!_#H`KeoPlj>%2bwWp8xo zt&Lj+o<}ZeI@8f*=_k!SM}$50e$jV*DK>`WJNpm&=geXGVo}Yw;HrpyTxr)YIUXf9 z?d`E|+!z8s%0wGD94unJtJm^x-P5RYDTl=~1K!JVdTVnuF3Z&B-h6!hnrY8Y-CYpk z^yofc)qi&e35GV|Kz)YS<>wO_er;)BpZD+4^lk5Vy}mnXP0qQe>i2BkO?}gMzWAIS z>w?KI$|bZW1fO1#F?F7HcF%wL7k|F3Rb<%nd=8V0u3=D7rIwG+g)hs_wypmEW!YC{bE?BAjlTF)^Ss*G}i-D<%Sam4GfZPN*P9b zF1x*8VJMi%%D`~3y6ei#&H8mOSF+coZx*MZ`Mt49 zicxRhzdx5Y-~Zdce}C?C>wDGL@BdkPKW&nU>AR_S-0v%&cYF|iy;%I>`w!+f=e$0D z;1$yhqr1lhU(X9-_%e^%_P~6*{{4D?%yVvLop~O=J}jf|-K2}J_iw9dHS@okaolgw zNzO`*#lK${|MJ(k!|@~iXh-RS^Uv3R|0Qi~c|`th{SD6K3lhiA>1W(~$T;0g=3Q|< z`%B;NLN}FO{^%?bTd2w(hN#`}gEJ^RB;>`_&mD zzcD(q@h~iA{$8=Y!k7C-GKO7BPo5OIuU;>l59)GjK za|1uO27|Rr*7W}Mx02tYa+E{a!F^%gV;QaqSGLrBE3xE%#=2muHTM}lhQ){lnzu_J+@Oy8I1sQSbgYPqCV&$Z$vQ^8xAFto^dP^AtU&Wk$+B z&p-Ekec1Yo=X`x{?bN+)u3mTT;_c+B_5a!SUbnv^$x`OycQm#XjA@7?9zy-fJqq~&JG4Ed6`Zx=IcVKTj19b?BRuzPxk`RuDj zi?{7dn%URYUhu#CJR^_l;hSIC?rhNZ+f-Y=>C@N9|I?oNPviUd;{5)=*m%3{S=%n> z2fzHcIBw$k*lBO4d)8n4tR{MuH9GE>&BvV)-m)^+GQX8PV%U)woP4|dZjR4u^Xg}% zR>faLqjnTDnQ3%?**4qa?JdKaNBedEZ1>Ch`zXHr`*~3hO`pkg^nZ2#=UAoOl^|$o zqUR{0GIK*EpYv&D-9oAGSQXt4<)!v%S+=j!rMK36Q>f3oA;0wRZ!3A(FTBDj|Ci+K ze#^&tudMe~$`UJW!xQ=s9QQ`utAF^UnE%{7>w=cg`wrCm+5XGpwf*w1U*g4G*}6Se zhxXhlzqM$-j@J6eoCVKbOg?_E(=k7NUYpy5-%w7FHVjj zZx$1eq5(sX+?`K#f}9*DbPvtH#nzCv_fpLp>Hp6jO6OO;-<`6wptvyWvhCxzjeoy{ zr|+IVr*Koq+T1(!^9vg?7F8ZKY*%1wNKrcSy^5jYIKzw7cW*MaG~U;6I;{m~klit?{N8J>xz8!zeAHU=jzMW&DQbD%MntPbC9=f z7Vh=h+)c4#VVn5^MnQQ^VTJ851%+m2HIee|{;j8(%B zH~v*S6IXxJ@yBGH$&=>yh~2H1c=pA6=8DisqRI|))?HMHT6!dIs^ku{jnaB-1%4mX zEg2@x37EEPx!Ls{7k{5WQ!^v#tA)ZpqlSlW!P4GOmv*P}Pp{YKXIQ?QyZmMcqocW1 z2On#~H2M8c%tan_=KsAGfA7Pw-S>Z8{{O*#Pia!sYwP2CCq>_QcG%q2ZZk)fyYs5M z5($xdX0kjCUV6;GF1)FJkW$4^@jhC|V@qX-YH5Zv=;x?7Nz4bkM!ODL*zqwq0^*_EN zE9AMw&UCY{qNlAP1A{;QgIRzvl92FTQt(ue#3jMhtu6@vrAL+1}|Z-NR6o z%-~SZm|pU6ze#=4`G@lVpT?WNo*Kn)y?*(1$*TYE5)}+RVvFJ!u9f;ZGoEW_n=gLcd_jVzpT{5hdjH)quWh*rEDh`jG9G_n-u8dP z-e;_D{}d|arvCg?sT8~N)3Y7nYaSbK5N6n5D$@|T`ufSg`=4q#RBm+whK8t2+JmyNcaMW9=K2ZMn zisLL=mm7}$U$Fe2^sMJxv-WKiSSe+klG$55>)<)#qE0+_ulTgc4pJPUHxCzpXYAK)_VK*VEzA7&tBgz zsoiH#diu*U>G~?3bgkD*^KI(8{oe1N{Gt5E>1@?W74JptfBh&Db1FC{7kig^eK7&#P zV}IfQg1_vt4;T$*{fPW9=ii=VoRa*LpRP{Vvj1^w|F1XQ{`C*JQL>aWQ%C-5;!R7_M_=>Fw?M27EM^O>7F>yPz({QJwI zUe!KTf{BN@<3Xv%lJpz-)kl2T3oQ>nv&@?K@$fwUsFb9NeJqc~E`C&-{`1SCMV>%l}&C9cP$urhJ2;jzg=vSwVxj-rjxhSF_Li`G}v{<e-aZd{a&lI%I;Pgi^BAm3};h2uWPJd zJL7lx#3wyHOU>`_pA`B3uaRMMkKB#?*GsO=y5+xVE?4rD&AWbkYr6fAZ?Zbul^`Xm z>=1V3f54UWFfL0L+xLeVLRut#S#LKzoO7Dvf@~N^gXp?-Q=irUc@#YV|E*uA4pp_> ztKadjUs8g}U{?h%>jrJ<)rkk>p7uuCS=VPj{aLv+P*?lsNzIVWdyn5Qnf`1CuUsB4|=$F*1eAPDifE8c%FNDR<3^j zjWdFG9vbzPL3@cuxi zMMpV=?p)Aiyp~t?a_@hR{VX{q(pR~&wZqf1rxsm(w^jSWyZ28R9V+(pu^TY-n8oGh zESKLgxxK+wu0e3&w;SF3cC~+dx98WNj2rL6gsHGauWytAqMEXM;eZU^y|doHCjTsWFBgQ1}_A@0&U zk%q$`^)4*_?f-Pg#ozh-pVT!iCrxP*On3CUeDyxJe5viKIEKO}b5oriWNfD`zVl0J z*1i9VW&izmuVb^^qS#dIsMNBq+s}H@?}W?D3`WXq3=A%_uI>5sCwczQ=ELXzKCQd= z>SKBF-|q#^t*`%EG)pin?w@UX{`9Z(|HV}+R%Ac@d5U@d@8j`zKkxOw7rlB4U$1*^ zR4;>G;6L5hvPbu)+Pkiva7f!W^2O!zsmG>Wl4`kOl=dQyL9$-vYe&c<029p7|F++egn?v@EcGF{y z*Dl=s`&I70uCSEvjlZ+L{0b>r;&Wy~%#1e`5fZ(truZK>ww6zwGE7g_3KKVC##c$R&rwDvbl76pwn2n#G!Qoi%#hh#F)=qsczGGR} zw?Dsk{-1oT$8iCM=<3W!-;#^j^*#?2Uz54Wo=oQA^-Y(Pscy6 z#7RX*C6jMj%x|eZ+WvE`X4E&8UWP)|yXnQ=4Jw~Jf>e5|-+$jRfB#&AuM=A#9LxZji4NPFC@zH*V%qVB&lZI(A3`hD!@>!)F#CLgP)-+Mg1tJ34BLK?Gx zmvy5nBRne~6<}0C6+v_JqF0p!dM}57<-v1dh`ShFXT8}(R6>*koEHY|;XsFDw zAnUf>q-OaB?$_Gka#cT0@BejttJls=QM00pUrrHzdB!>4zJW2}%m-tp32z+}N_juc zkqZc(T~hM@uY338*>>B$wr&4=Ci?zY?)eI8zC86`Z@JW_PyM?4>*c6aJx7MKk4yO( zb~8H6pQdLl`0{M#r;6R?hZMg(TyR18cfL-6JEQtjt|c#$|9pM%@2w(FobOVWTY(EF z_ek&<@VR{UxOHQ~shw#nZcY~cXwN67Q>Z#CE%spb!P$YU;V5 z_V?zgPfNWLiylvP+q-Fow$EFcv)d=Tau(kpZE%&zYJdjC>Y=X(hp4gAI=p|0#8cEYP$ zdz##(6?^}C%FdqXbuLTbqDjLhjs{7V4b~~Vh78BV)?M}DetvG%*{I$<%Ky4K>YIMB zvoJFh9LV;WaJhhCwK~IGn=da8JvG*Ur{|aV>&@-DNAh(}VO+D_w@-R|k1_XQe(Bfi zbJDpV%vm;T`tQkaT<)3&^J#8K5>Asm7*Gd+;DsycI??dvrbl?)S3mm54fz+f=%2QO4N+Pu5SK9o)F~2Uq>T%y4>HOW#`+d?s31;rMt_&=7t$km9w%~EH-fthXbXgZM zZyS%f7HdymlVv&(T<`oMDZc#sb>_dC-~4Ki_1vpV_OkcP?45k3p+M}czE@?X7#lEu5T&!NDk}G3EgP&&j0rWI$t)XI#l03__+7vd78$$7=Fijk zzt{Bt-3q_1wtV}Z^v~O(|JN%`n|SbTV&O`mR;*Zkg^^%L&4@ne#IINF+VwZd-wnF^lt|YtoTnP-DqP!@Z*4I?zQLN?SH24|Mw_(zP-|mZ|fs( zJ&m%k|^@l=t;YJUb)& z4=F3HzHZQcUHR4OO^+EJ?kY5_(dST*aJ6{;I=#>C=g#nNb#G_*{%L>twfzTs-vI`O zJv|KHQg<63czOQU0;6fu*UgEVV_jds|2(VoNA~S&m-E*y+o#BoyZz_Cd;gnuU6H?V z{KJm(GbX!4$9z9iFoCCScm2G}#}>H-S4Owg-@R)euCmm^)oWn}%b(L;@&!}c<~?6% zC=q?B?2g2doQaWN3T0AewwXPucQQX`!17<3b(7t{{ma9XIo7$JF5Y0xvOtypAgGp=8 zdtG?-_j*;c(9xcIm)C#)^?L9BYeuh4)la82*sI>3rDoXl;rR>`O%cb}x^E>|Y%6Ea z&rF}+IxQsZ=>H2_jo1^8oGPjc>`YN9wYX-yS70WqtCQGLLVtDB#HlSpIf@b2NCEZ86;7v(9U z>aDxNvGf0u))b`zwAvzsA40F}`!-{9pWKuRXxPu%^Y7so*yA$$uAK88Yddlbt``w)#Ql zy3DC>uI~%I5q<4u?EltlTl=O~_I|2as;{ou$j~rRdfu`h*RQZ;o~?TF=|%3$Cb_%& z7hLo?Xt!0~_}Dk?R?kzS={>&;s_c^9?Up?tH|s@qd$e=7aN{68YOAmgzoOYvz9ZNA3}Z4OI*an#)BV%nFN&-udg* z&d2BXU0D$>#q{o9-Nk=%Z@mpGxXi%J!^lup(eaXTtuv#_>BA={K5Z@T_P6~}{r&IV z{<^fc$D;3jjy{~)@n~BAw@s&wZwRqWh>Ut=xz3e7C`~}DP`^rv6ynebe z+iAz79+6qg;%ZCpo7Wd-{=0HDnSI~isLg@7J4)s`{%O9^$jD$Jc$LGUZX@HhQ{iFz z{I%tI74~Gxv0I&R!R4NO3n@U?qg$E{o?GY zpIKRxx1>4O2TIOQypS&u`{lLmzp{t*o3yZ!n*7zw9*Mu?g09P4bQ~Bpl;m`1R#rg35!lRbMYPrtkZq z52^&#yOjKH|G~cSfB=I+*X6@U|E0^b9gvkvv*q7$eBVFm`#Vd1wbt+6S5$icgYANt zG=>ek|J}a!l$W33cK005d$xO+S4#S2E%wUFox8>DtN|N~CY$l1->={O`*o%6@1y$# z-}U_h*ID@b$p4$5`cZzTv!3x4FA zD=GeS%sIfoaOZP?p=B&mN)x+-30sH zKc3%xb<$FTK}B``Ud~rL3L94h#;R_;Y2Y>e^S0oU0F}HQzh5W+?f#}vKgp-4?vTL$ zV_)jtuKc@Wd-v|w+cqTG-br-!e-n80u#9lQ8!L|Rbem_tZMJ1kJK8OOu|m9jTI9+_ z8b>>R|MTvV2(7ny{6E@}p>um0o6*0*vokmucx+#7UA_GKT-$xWMYl#~N8LJHr}sbc zs69hp0tdr~L#Iz~|2v^jN+>~|?}63QgvI;f>i?cdeh$j^2dhe-9+G|k|HX1u&wX~% z;jPws-_{n-Vm$Cn<6&wsI zjL$S$wfb-8tL&14>)$W`GE-dgVPx1P)y-7LGn?dli1<-hHiGW*ft8=v?^j$GQd{=~w6RZ8hax@Uvmc z8O_Q>Q`xLnSFb+Lo_cBO@%>+C&ySg7Yqvhr_oC&$#U1r`Oh8pdgZ#H`d%x~pA$UMj z&Y@r2vGi|L>G$&gFWj}gr~kWo*Z%M7{gd_m?yq{%b$fGp=^NW$er`6WYeLcYco*h@~`74hg!$DjKv)=15tG)H~i`2>Z@i7YEt&$%YuGb`%!oP`F9Ryt{) zh?k$_vhz?#_A=)F6aV6#ON6CV%}e_BM~~;&Sq_H|-Ul9Gd!my>{|hqxS3SmH|Msh92u-~W4m|CjgS>tdsVuDV@T zzaW3a-b03mkwNK(ywaU*XL3*9`SxJbZo`}HOeJzn?ceL(Zhc?-^m^UfJ0I`HKiqXo z#)8kU=iBD@)_1>c`bf>n@w<>bD2B-|=Qmg{=jcAFX@#?YVPT zH*P<%ci!P^wUy`FXR|lhU5gXH^=nJ@-j_#1er-r{y4?1-rYo@&9uc-)8RO zx)`#~{KR~{KTBgKPB|o^*~*#R!Q8#D+q^T*`21nEA6#Gc!fRMh&pQ3Z;y8Op)jQ9S z=rz}sy7&IKQ%Stw^~6ebLR!!Vf$vk7|E@nVJLF8VYRIK|$2*^{p7@eEVV|{WvKoVd zO~EOURl*Nw5OI(q9`Z{fWE7q&}C(9s6+Bsq5k5KV~lW z-@nPE{#CjCpVRSH`!i2V|K~JZmU1ZJ>dTMY*KO{u{aw6k_g1~L7j|uGPLq0Gwe9tx zc=`PG+<8j_R6K)ZR$1>%WcX`&Gt>9_^6q-SsO&DKyt-HS&stqrZe-H*>!t1ANmqD3 zn76s~vOcK4_(+mVVMa*88vd4m$JAR$?|_uZcIzJ#_HF5{Cpo8w*SkaEB)^knO7IjuVwKM+w#M+ z^R2}sSyyKV9l^toH9CTKX?Fcz@mye~oV&xC^o>X5%d++#_|084HRb2_XDyTTFI-vn z_SlC5UYU(q*{Q4YYV=Lh^0xa(pV>8ELHk2h?$#}NHAy0 z*z3kntj5r*84{GI);X(9&|%R%O~%rE24$uVid$~KtG}z&t<=W6#?lyL>R zwU;#CGW?=hwA?)3{1(&eHpYb3RkQD%-ic>QbpvVK-O;{l1!`7eK}&;GG|U1P({ z`EyjFLd$}heJ`|ZbKzQF=0EMs#_zMT_B~fU{iAZ)48{gFg=>eG&ECc6kip*XZ2W*z zV95{9?l%^b<=L7Y<|ygB42zrf?sXx@&I?b!7CZCL%n>m%?NNNRvG!F9yTAFV3#|L^ z{a^4(Q!k(CqVv?4#%1enCvFkH=G`3<8*OIG@a}~vLrD)q!h(W0ef`*)l&vPa-#@+k z-F9Qq+e@bW)9b7I>jgf_r!3)OSa*PdVbP;h7LHZfG4e@YZ>_5OdTHY3;^+MD?$`XC z9XEaIp|+U1M{Qqx?tgo}aq0E@uQ(IFbG+c;eGr@6_>R+I?Z?{COykfcYfYA(EAL^L zD}0HUb=9q^{oZL`YTPC^zg+s3)qvxC(;7)ems8Bj4m_D@D`e*^eb9C2CHo15toQXf zdv{1C%QXFGl{_rJ{B-?&wZ|N6kxAnvfj=hy*`3!c_b%?dB=-M(1m-(#k||4#~R)$n`w z-?5PUkNTxx`7M76D^yEtWRiCEO)_LjXx|v4sUMKL)#WO0d2sS!YgrzKmPCe^hfTNc zT(+|J(`x-cSLJQK9(Z4uTv}PSH7{+h zePg<(5_rRsY+W%i(Z6 z;X*cx!lj75X;Y&;pOtDA*y=gFFR`yGaH!Q;AeXYQCfPKZgl zl(p+vsa|C9%5@edAuRan5hNVXKo@(lKlO<&`Ha?=nAN zdpvV%+&-_XQ&U%++tV#2{Z1*#h=+l>tvGIP)yEUd#h&}$`Tt|P-M<~nOlRBK{;NAA z|44ob7Y~DipGz;p#yu;)WENdXTWhwr(A_hvNO)7w4!wQb7yP~X>VwU*ZRzIQJO6*% zJoomujWUOIGK+#TeDC>bX+kfRH^+Lp{IRe1 zi_PEdm?2qloMFS^3Z<|w5)7+Phs@qL`IU4ja|09e0fvXOwrw-0elziK_5NQkmR{D6 z(bAo#&DrzyyU@S5Me>j2RhW1f6!MxXm^vQ)*l_s@+y0`DQ$H_{uTA=Y=*>o3^Lu~h zNf)=CG*>NmeajYg@AB&RmQ%H#^Btd<$zm`)@-#=l#O)V$)!63d#2KV1;8E$(RTt0KnNXh9*E;c(G7OV8gUbQXv)_xtX((8|tPMEJr>eTwT z)4?w39;@8X>LrryU;dj_@ieSFd)qVVOb=tgqE}z6SM2-vu8x_3*VE)mV*6*d=TT3u zJe2=4U0wdq+}~;E_m*TL50Y!&)2@|igy{Cdrwj^_S8F4m3QW-_iEjLYajo8dzfWT58JfMiMEv=Ny+`4^a34lqnmo3r|= z*UPWT?E5}{EIvMeZ~1rU`Yp@jV%NTSohRt3D$kvkM7^RG5kC4jcXPzle!rjj4XH# z=;u~2&S*cxAuuB_=N_N)`GRXl{%`pD@At$LIfBeK{@Dx%Ry^8&{+E1V80W@AN2UgN zICuQaJj1l1lHG7;D#MDGn;CrWxqbD0pC`$1!b((uhr#nw&b4!Ue|!=D_xIm%``zCk zy*{tc+3`=I@t?xKgAN`JGK>iizB3e8aa7p`teqBi_3iq&=(Y2$_f>y9VEnyq|CW-6 z)<-IJuRMLBxmUNw(V8hgT`z9s)^k6moVD-t*ra28a+A*Ych^1rH|@D{_Kr~2Nmt4B zvrH#xtf!|BIje6>j@H3=f<5-L0C# zA>iYEKR$YNUq5JndDgk#EHi%vOgXo6x5|m$hJ(NCH?KT5`({s_<)VzNV#nNT z=jT^`J!x-WpLG89tYubPZB3(ZUpZ|duA#mH)-Rv=?r&7~%<^8gJ744sY#4iLqUQI! z&igkj{q2n1e7rU({&`bApUILv8mf2SO7x7zi>;C+dvDc?MgEaYS$UQ1qr7hY^<-f) z7ArY%yVFNFvwTFXw^tn9pTF}+xo_$(|1`Udnb%sxeAw6SimR$S?_B>yed*E9;p<{; zZNpbj$=0*|n;7%&$r4wgbu?(SsT9IOpS&Mb&OhyFEmrn9xyubC}r)@X&D>#OB|`^xtTIerAv0}bi0y$ zN^#zLj0}gDq~46S`R|}vmCteMx4e~o|KAi_wgb!F9(!I@IZ;dd`iihUty#10yQ@4k zWKpP#`ur>V?AFuE<9~db{Js8B|9RQ_wPjmPwy!bE<`uvAUj5H)}1}&Zc z-tV7(Q_p~%aZA`r38o1GbFyDAJzD(zs@79({@S16|Du9tD+T{zoqO-R=LhFM&5aEF z3=_=i4l+*W5XrEqxSBRM{QA1JCwBgcbkz)4XYjSn;pf)icR#dm5zPI)oL)z{3 z+jeLF&iJ|VgH-Nn`8S#iRJ50|J51L($M#_Qw*`B+g}6C1_Dnv#Fq4&4FQT* z)J?3dDZ5ntPu)D%c-h~zQ>L%jw8>-Z9lcfY--C}lWwK#NatWT@y*WLu=D~-1>+Q-O zUMWtWwtilu(PE3=o%Q+`-(P>7AO9_i-QmpvW`-rb)72YFBcCX)i2OD+XZ|(&shzOQo;xem`}+(z-liQ~t}d z%9kuvUYrzsDVNR8m~))r0dMg1CW{QSRqHdeHh=l_?zdg(lb`G5SFf9X&GNd7^6%=e zeQpr%>!!+yKmAwpK+Drc)JYWAr zdi$M!jd#oMf7X_tbF<_z`!e&q{oS6QmQ>en_;+b*I^&BJ)!DC(%LpZK)SVPk2-wUc z7;sjRd5vg9!2SNuc?%pJ8Cf@8J?hWkF6H*%b&~v9uL)5B2LxueTAJRO{&M211u|+M z=O2{&mFTkL`~7>D<#zpRj+OLhcIG(WsId3{x8iS}yYyq|A`R#%XTY`^uzqPr^ zoSqe@daF|F62EQDxBq!Seczs%uV*$nB-jgH)K6mApkKX~Ss~DXg@I?*k~WqfkukmP zpFdqS);=Cr^Wnm&OGneo?)}=g_UE4`x6d~IklPab?vB^Zy4|<$G0(ByZ~d!{Y0JM) zx3ps8>zArmE>~nQS#p?R(GuG(Mn=uI3mP1acxR>k&~b3s^yHJh&LewIwyVGGGuAVO zZjiY*Tej-o&dXsN_Z;~wdjGio{~fP_CyC6uQ(^m*OStX#emkB8>vERgnzrBd&Wq&- z1R53;tea+eJDTG)&s zz^#`d(zpCZFTb4(+ng20^YUbm-5I-C3d{5%?L zU-#(ALU+C?)AjUra7 zuN!oGYW%Bn-|zo>yy<4RQt5w**L=(ydh#Y%)oR^SpPkBPs@xF2t8>?K_dOAdQiV?* zd)Y3kd6}Vdcj{%fw^tvybXm<0Xj}A>>;3eH_x`Wx`zyaC@K83-zU6@p-``K1^`rd6 z^2PU9_&&YU?@v&xb`nDGCE3m(W&D5 z|F0YZ5&QV-o?Mo{vFq`+{l=D?zxF+PvMjd8Q@Hl1Nl;qsNB_4A>L;D$NZ_hX`+d)D z+i?zu#%2aJOW%7Nq!cDOtk4TGV&YgnT~XQL#G7NYwmegOZ<}Fq^#6vfdnSwgFI@We z%d$`6JMJB__nGO^!|o@2d6#+hveLw&2)_!fjoIeTS3yr-qeG>0KW?fL)YPa3x&-QZ+7yi9w zVcN39Qfc3^#V=SVxNX*6H>yDxZLSoA71Nzw+PWuZ2a4_r_7YSyWQjc{ukfMl=jG`Zn(^PY0FWrB*yzpi+Pt{ zGvVyseEj|0&wKsrYQMc{6y@J2zhwJ;y&rpd7~-}w9I-#aW5Cd$^Jtm&ntZF@xBIQ% zTz1vutJ?ax~)!|OKGS3Z2R%krMlx_fo{ z7vHP@Q~cxjtbvgsMN)ll(p4#?wzBPsjAhCVceNKB7uaA@ziE$2ebM`)!PWeyyb@pO zmjC^8Zuk42Py2m+V!tQ4t+^1bv)q36ZF^6?-#5{+hzn&;Gx2h;N&#W83~GB%~C z#w-z-DtuKS;q0tqX9Nra9?CCZc&zbn@~qc)&ExmKm8?*#@N0d3>Gu1|j$B0_gMAm8 zVjdjW@ZCv4pYwBr9}mN|EPaEud2Bq}Qp}DW3+i3%eWdd5re;EB~`=(&@d24Q_6a{rz?$)0;*2j|w|H^5t?4yZgw! z)Q#bO(eV^j4<$7QRTC8jpGqMew`UTe59L$t-*}~v(w`&qQeE?3`_T;-G~MSM+J86t zUHEssrZ|52zVN+007w|vX*WR@S2Ot(HVTFsvoH9fB8S-t$O zcfX?lT|Z~O_xZB5x9`^+KhyTQzE5y=p`1`cj+?&78K@u=ADm3=H-M<+t+qUFK^O z`)`*j=xcWFerMcrx8R2IbjAm1JPn0QZmyU!$M*Xtet)^Dl=!{7HkG}7_0qDqW`D=_rtEb#zFChi;Nyp^0mlH4WolddtvtCiO++N+;VZNcm<&d|BPCnO* zt*X8MW+QXG?rE=mI|@&)J8S>@;r&1C#?ssN_)mOlt+L4XZcsEYBcB`NVde$zDl#Ws zo8-yIe4^;q;RF_rMF*Qx#8+epYH6(~R4VwzcXqu=4^t-B(HFM2k~CS)x|jSnIrfM9 z-J{w)^ErAe{w%oEH&wy*Hq)c|zu!J6c(*U~;pY0Nz5gHW@BhZA%g?a5G{HjT)nx{= zV@Eg+Ty@)9RPyi8!u40Ro@$@3`_9jAE`9Z?TkhIp(ZR|tg>TD$D~msTztuKJ?nd5^ATgEJ{tJ&FFSFcG`?PFxgxefiRMJ7w8Z)kncDQ{Ia${vNXE2*UxH*AG4R+)LVY?})5~!Ha!?e?Lw(WBKw# z^@nkh)l{9Y49ivj9DXu&)erHL>aRXZ=ABA^J8ugc;}_xo>u$50KdHCuve^GSPh(<5 z7dHR+e&*7&eaB26y`ACsR4_{}- z#PQc)(fvB@owbv$r}}LxWAI>;U^uYh@v`VOum9dsP29^gXJ7WT8BA{%vR+!cncaK( zIk}pG$IoQ@|6Mu%Z}R?~Pj^Y@&7C*z=kKl~_nyV*yjN&2eChH1%keAR3R+Gt`?~}c zJQQs{E&k%>UNI^3;`C)7_$SA|dSuUh{p5NM&u{=?Abf1 z?{igQb=KUUqS0;*7r!t(h}s%-ulCo~Ol-ezz_Dxb%X+^%>LkW%lN*v#$L1<)H1PH8q`r zC*M~bzklQBx7+Xj{aktSB>%~tZGs;cUEeAwSo+vPM4_)(E>xKz^^Smm)qBB&h?e>b zf89O*ET4MJAVEX_T=kVH;xS9=SXs8OU+5U{=eOG9P4hbz@R#yic=+F|+hN?f<6irL zZ0A>u2d<_qu3B_+#XPokl;iI7sjSWpvjdGdR4z^O ziTJ^8n>OP}z0A=QSr7KRTzatjOH%Tz9IbOk8^GV=uTpPph0;X-d!mfo~KlPRU+nKkDi{$s_&bBGO ztY-E#*j(FwZ>{kE>Po-&X+3IdTA2=hT)jJFk9yLc22UwQC)vpdj{LnQ|H9zj_s*>f z&KedS_0dvxoeRF+?=EfFI`_cDUuWkkalUVObbo92^+e|hne2xpZ0=lo=qBLsS#s6? z%(G{t7%i@cnXawe8m9SvzU}Wz-@n`byUFbRS$#DpcipESesc3&-kq*pJ}qD>qd`Cd z1H)p!pf-lxf(7!K?ZXjeR-_iyd%H*Sod1b)Ze{`K!v=(?$^_t^O+BWf%*XIJ%yzEU*|f!FL7}gUzrH%P z@@BFA+uF+S)8nIK=dCSzDzL*t)S9l7)Mu=r}#MOxL5Zk&4U^2MQgKmVTEs^ivq zb9NMeUQ)AM>0(=wU)5)yz*}|`r+4*CR53o~-ShHvWif|S#-ffBj@67y6dTwRRXDR) z7EHLuu<)F=s&hm3H|CS3OoF0mGZr_?8TUN0@3VRIF1FA3?~+%`ZLMQhe5vIt5`E5O z-Puupy(X52bP zIEHLH_j30OGX^(M=G&o^#i20q`;JumXCE@fKdWebn|qB@T6~_(wyKvWlUM)hVeWtV zy2xm9-Lq{k-@dQE{ABLr%FM&ZIDfvKT=}wZ&!N1@624WEjBK_&3Yp3dTA3Yu>>V5D zHBYnl`LT4pLfyZ6@3SHC_@eA>FX{o1L|;r;sx z{_ouRnf*G8ONBtP!;DhD(@OK71pF2F$8e*8k)g*rk%v*~F!P)FPn2$GF4)2UX>WSu zRSWByjhhNyMmrUkC zK9aFGPe$U|yk8cl=B*NJcqGf`!1$%~#+$YF9Vd=4NCh`L@O0_xUiA0mxS}ZhKl067 zabJ6{o3}6jclEt}@9?{=^FQnr{IF+{&v$Xo={?q3+j9e6>^XTh+%muG*{Y&*uji~* z-5NPR_loxPt7)}M<6?Jiv#2ln_UGf>@K;~AYF*!A>YF=7YU|ga&5^68P1k$zX#d>K z`3C*JcVFIgefi%{4nLR`ICvNsws>4tZn)!8)slMu@z=Q7KZ}ZU_uYxvKCk~_tjCdg zRk^OyBqpn-*@%Bx;cTQlDSz)igT1Ly=kC@ye>^5__O$G*$WrqYJzcGHN}TmI|kWX-IP$B$YosEN)k%NBcN@AOa7!@lI! zwwM2zxZf@K$tjZ}de-sNSK?k4xYLXt&AVMb}>a+BIvL>AC{H)l%0> z8tuc^uZznu%Rar;t1`3j-H}#dcKLaG%f6OeT%vT5k?|f5kS&WQV8 zU+1JTop~LPlf$+~xWcLZ;-$cD!Pl8RO@<0?Uu8^}7QX(uT!M!oQttcwl3%-i ztT(%>be&y$@`ciZd+wX_zX|`Jqx1Rs)->6IStmCv{#hAaAAEmLwN#{x!k1W+ypZlR zwFI5d-&8p7+*mj3W#+15mBCl9WI2mJ4!LfjpE>80)bi5U8>^+J&X&?&Ew%Qkn%Nb# z?eDbKuUj)sKYmw0RNTI8WuDc+KflbpeoD`beSN8;-QkX}8-7>S?wUKf_U6movK;jc zItLgS8q6Je8NZd*op!WqmJ(RhRqMV`{(;QjZIZ7)aV3|(pEX1C*^E84&Usm%r`W`v z+1PYuhE3>%WuLibpE#Z4CH~!Vrtc{s(a)O_9WLAzRa+7!;2bMuH|$EBy*z&5d}8MK+h2m4C&QKPxh;l8n$^U-7l}jQ^_*QdYrj4StIx>w8sA zCR7U?n(wyfdA!N|#P@&uC)EW%4$0?wCcKH~&R6g3&Bs;>Pw-nZ{oaM&bEdBqV?MX? zRP^O5EAQ5>SXLOfdCBVec}KMZOncXVUe|47Y8rLfBrZQ|%c|wqLw;5TKYqRH*y~kp zU)xTt&NdAd|BYY%FC|KEG{(frQauTPgPbHA;=uIRACg0R_9o42gHb^7u3 z#j+s^>bU|L^=*RR99{OGD7O~)%kZP&nLNY6&R3!d|MjvY3Zlf@SIBpK_#XLu>wfWy zWsD3A9!&;^E?pLMO1P`Q!>IJT#nZXu=DzvYcPZRvWKhe{VHS{^c;7!Dx#4ehKy$<8 zT^5%VEi7yZ9)wx%mGF!Y#ta=BdGa`#)ek;sAU=zv7IEywNFJP`l+Zj1kg zw+syI7hbR`$Svx)rjTUSQ>bv_o5AV2rzOAMZNK+=#*T073=9lS6WYWZF8^9$!+dAj z;ynIhzPi`V@0b}17?^a#*i*UT@-7t~*2I0gr(Vylz44cUfzg3kvf)cd7Ei%#vG$1y>yqzW>&*FVZFVl1 zfq|hxqeXOiVjIhj-0s5)0@n@mUb}2-y~)oYAY?L!QG&;@t~!yWRAi%^yMCQa^6$wt zb`Ni|GcYLdZj@~Qz%y?UheQH`+5W zFc@Ssb=}eseE--$pyjM{N%fV#j0}d2ZKe!2l{L+OEODt8y8P|oO%?`*gb)uW8Fkfb zletc?ALMs%b5NFUcq9C+Tx$91TA{q(p7!-0YM2=q1X^`?1vxg=&r!1Lj9_PIU~FPD zVmR!6>*B}DB3~=i7#SEOLMP1&GdT4xb2=}Bfx?9wYzZbEueZ znW4qOS&m_XNyRw^1_p+M4GY*ARG6fmF*F1+oi|}%U?^lZ +#ifdef __APPLE__ +#include +#else #include +#endif + #include OTRGlobals* OTRGlobals::Instance; diff --git a/soh/src/buffers/heaps.c b/soh/src/buffers/heaps.c index b6f16ab1..410c843a 100644 --- a/soh/src/buffers/heaps.c +++ b/soh/src/buffers/heaps.c @@ -1,6 +1,8 @@ #include "z64.h" #include +#ifndef __APPLE__ #include +#endif #ifndef _MSC_VER #include diff --git a/soh/src/code/code_800EC960.c b/soh/src/code/code_800EC960.c index 9a67981e..8e1694b7 100644 --- a/soh/src/code/code_800EC960.c +++ b/soh/src/code/code_800EC960.c @@ -4527,12 +4527,17 @@ void Audio_PlayFanfare(u16 seqId) sp26 = func_800FA0B4(SEQ_PLAYER_FANFARE); sp1C = func_800E5E84(sp26 & 0xFF, &sp20); sp18 = func_800E5E84(seqId & 0xFF, &sp20); - if ((sp26 == NA_BGM_DISABLED) || (*sp1C == *sp18)) { - D_8016B9F4 = 1; - } else { - D_8016B9F4 = 5; - Audio_SeqCmd1(SEQ_PLAYER_FANFARE, 0); - } + if (!sp1C || !sp18) { + // disable BGM, we're about to null deref! + D_8016B9F4 = 1; + } else { + if ((sp26 == NA_BGM_DISABLED) || (*sp1C == *sp18)) { + D_8016B9F4 = 1; + } else { + D_8016B9F4 = 5; + Audio_SeqCmd1(SEQ_PLAYER_FANFARE, 0); + } + } D_8016B9F6 = seqId; }