From a1d8d8ce872f52dd7032590429fb880dbf846c9e Mon Sep 17 00:00:00 2001 From: Rodolfo Bogado Date: Sun, 11 Aug 2013 12:26:20 -0300 Subject: [PATCH 01/27] fix for 4x super sampling AA. make the distance of the samples from the center smaller to minimize errors. --- .../Plugin_VideoDX9/Src/PixelShaderCache.cpp | 12 +++++++----- .../Plugin_VideoDX9/Src/VertexShaderCache.cpp | 18 +++++++++++------- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp b/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp index a4a788c7e3..22e31ad192 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp @@ -177,12 +177,14 @@ static LPDIRECT3DPIXELSHADER9 CreateCopyShader(int copyMatrixType, int depthConv "in float uv1 : TEXCOORD1){\n" "float4 texcol = tex2D(samp0,uv0.xy);\n"); break; - case 1: // 1 Samples SSAA - WRITE(p, "in float2 uv0 : TEXCOORD0,\n" - "in float uv1 : TEXCOORD1){\n" - "float4 texcol = tex2D(samp0,uv0.xy);\n"); + case 1: // 4 Samples in 4x SSAA buffer + WRITE(p, "in float4 uv0 : TEXCOORD0,\n" + "in float uv1 : TEXCOORD1,\n" + "in float4 uv2 : TEXCOORD2,\n" + "in float4 uv3 : TEXCOORD3){\n" + "float4 texcol = (tex2D(samp0,uv2.xy) + tex2D(samp0,uv2.wz) + tex2D(samp0,uv3.xy) + tex2D(samp0,uv3.wz))*0.25f;\n"); break; - case 2: // 4 Samples SSAA + case 2: // 4 Samples in 9x SSAA buffer WRITE(p, "in float4 uv0 : TEXCOORD0,\n" "in float uv1 : TEXCOORD1,\n" "in float4 uv2 : TEXCOORD2,\n" diff --git a/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp b/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp index 2d11368a6d..93cd7a67df 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp @@ -92,15 +92,19 @@ void VertexShaderCache::Init() sprintf(vProg, "struct VSOUTPUT\n" "{\n" "float4 vPosition : POSITION;\n" - "float2 vTexCoord : TEXCOORD0;\n" - "float vTexCoord1 : TEXCOORD1;\n" + "float4 vTexCoord : TEXCOORD0;\n" + "float vTexCoord1 : TEXCOORD1;\n" + "float4 vTexCoord2 : TEXCOORD2;\n" + "float4 vTexCoord3 : TEXCOORD3;\n" "};\n" - "VSOUTPUT main(float4 inPosition : POSITION,float2 inTEX0 : TEXCOORD0,float2 inInvTexSize : TEXCOORD1,float inTEX2 : TEXCOORD2)\n" + "VSOUTPUT main(float4 inPosition : POSITION,float2 inTEX0 : TEXCOORD0,float2 inTEX1 : TEXCOORD1,float inTEX2 : TEXCOORD2)\n" "{\n" "VSOUTPUT OUT;" "OUT.vPosition = inPosition;\n" - "OUT.vTexCoord = inTEX0;\n" - "OUT.vTexCoord1 = inTEX2;\n" + "OUT.vTexCoord = inTEX0.xyyx;\n" + "OUT.vTexCoord1 = inTEX2.x;\n" + "OUT.vTexCoord2 = inTEX0.xyyx + (float4(-0.495f,-0.495f, 0.495f,-0.495f) * inTEX1.xyyx);\n" + "OUT.vTexCoord3 = inTEX0.xyyx + (float4( 0.495f, 0.495f,-0.495f, 0.495f) * inTEX1.xyyx);\n" "return OUT;\n" "}\n"); SimpleVertexShader[1] = D3D::CompileAndCreateVertexShader(vProg, (int)strlen(vProg)); @@ -119,8 +123,8 @@ void VertexShaderCache::Init() "OUT.vPosition = inPosition;\n" "OUT.vTexCoord = inTEX0.xyyx;\n" "OUT.vTexCoord1 = inTEX2.x;\n" - "OUT.vTexCoord2 = inTEX0.xyyx + (float4(-1.0f,-0.5f, 1.0f,-0.5f) * inTEX1.xyyx);\n" - "OUT.vTexCoord3 = inTEX0.xyyx + (float4( 1.0f, 0.5f,-1.0f, 0.5f) * inTEX1.xyyx);\n" + "OUT.vTexCoord2 = inTEX0.xyyx + (float4(-0.9f,-0.45f, 0.9f,-0.45f) * inTEX1.xyyx);\n" + "OUT.vTexCoord3 = inTEX0.xyyx + (float4( 0.9f, 0.45f,-0.9f, 0.45f) * inTEX1.xyyx);\n" "return OUT;\n" "}\n"); SimpleVertexShader[2] = D3D::CompileAndCreateVertexShader(vProg, (int)strlen(vProg)); From f4000b6b42acb508bd2c80ec9f5cf10da2355994 Mon Sep 17 00:00:00 2001 From: Rodolfo Bogado Date: Sun, 11 Aug 2013 18:48:31 -0300 Subject: [PATCH 02/27] Add the ability to force Dual Source Blending in the configuration file. this way everyone can check if their hardware support this feature in dx9 --- Source/Core/VideoCommon/Src/VideoConfig.cpp | 2 ++ Source/Core/VideoCommon/Src/VideoConfig.h | 3 ++- Source/Plugins/Plugin_VideoDX9/Src/main.cpp | 19 ++++++++++++++++++- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Source/Core/VideoCommon/Src/VideoConfig.cpp b/Source/Core/VideoCommon/Src/VideoConfig.cpp index d422c3d01d..e8c87774d4 100644 --- a/Source/Core/VideoCommon/Src/VideoConfig.cpp +++ b/Source/Core/VideoCommon/Src/VideoConfig.cpp @@ -96,6 +96,7 @@ void VideoConfig::Load(const char *ini_file) iniFile.Get("Hacks", "EFBScaledCopy", &bCopyEFBScaled, true); iniFile.Get("Hacks", "EFBCopyCacheEnable", &bEFBCopyCacheEnable, false); iniFile.Get("Hacks", "EFBEmulateFormatChanges", &bEFBEmulateFormatChanges, false); + iniFile.Get("Hacks", "ForceDualSourceBlend", &bForceDualSourceBlend, false); iniFile.Get("Hardware", "Adapter", &iAdapter, 0); @@ -251,6 +252,7 @@ void VideoConfig::Save(const char *ini_file) iniFile.Set("Hacks", "EFBScaledCopy", bCopyEFBScaled); iniFile.Set("Hacks", "EFBCopyCacheEnable", bEFBCopyCacheEnable); iniFile.Set("Hacks", "EFBEmulateFormatChanges", bEFBEmulateFormatChanges); + iniFile.Set("Hacks", "ForceDualSourceBlend", bForceDualSourceBlend); iniFile.Set("Hardware", "Adapter", iAdapter); diff --git a/Source/Core/VideoCommon/Src/VideoConfig.h b/Source/Core/VideoCommon/Src/VideoConfig.h index a0a5cabacf..dff1beb77f 100644 --- a/Source/Core/VideoCommon/Src/VideoConfig.h +++ b/Source/Core/VideoCommon/Src/VideoConfig.h @@ -123,7 +123,8 @@ struct VideoConfig bool bEnablePixelLighting; bool bHackedBufferUpload; bool bFastDepthCalc; - + //for dx9-backend + bool bForceDualSourceBlend; int iLog; // CONF_ bits int iSaveTargetId; // TODO: Should be dropped diff --git a/Source/Plugins/Plugin_VideoDX9/Src/main.cpp b/Source/Plugins/Plugin_VideoDX9/Src/main.cpp index 1a4e1bf84d..9170713e51 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/main.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/main.cpp @@ -93,7 +93,21 @@ void InitBackendInfo() g_Config.backend_info.bSupportsPrimitiveRestart = false; // TODO: figure out if it does g_Config.backend_info.bSupportsSeparateAlphaFunction = device_caps.PrimitiveMiscCaps & D3DPMISCCAPS_SEPARATEALPHABLEND; // Dual source blend disabled by default until a proper method to test for support is found - g_Config.backend_info.bSupportsDualSourceBlend = false; + g_Config.backend_info.bSupports3DVision = true; + OSVERSIONINFO info; + ZeroMemory(&info, sizeof(OSVERSIONINFO)); + info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + if (GetVersionEx(&info)) + { + // dual source blending is only supported in windows 7 o newer. sorry xp users + // we cannot test for device caps because most drivers just declare the minimun caps + // and don't expose their support for some functionalities + g_Config.backend_info.bSupportsDualSourceBlend = info.dwPlatformId == VER_PLATFORM_WIN32_NT && ((info.dwMajorVersion > 6) || ((info.dwMajorVersion == 6) && info.dwMinorVersion >= 1)); + } + else + { + g_Config.backend_info.bSupportsDualSourceBlend = false; + } g_Config.backend_info.bSupportsFormatReinterpretation = true; g_Config.backend_info.bSupportsPixelLighting = C_PLIGHTS + 40 <= maxConstants && C_PMATERIALS + 4 <= maxConstants; g_Config.backend_info.bSupportsEarlyZ = false; @@ -139,6 +153,9 @@ bool VideoBackend::Initialize(void *&window_handle) g_Config.GameIniLoad(SConfig::GetInstance().m_LocalCoreStartupParameter.m_strGameIni.c_str()); g_Config.UpdateProjectionHack(); g_Config.VerifyValidity(); + // as only some driver/hardware configurations support dual source blending only enable it if is + // configured by user + g_Config.backend_info.bSupportsDualSourceBlend &= g_Config.bForceDualSourceBlend; UpdateActiveConfig(); window_handle = (void*)EmuWindow::Create((HWND)window_handle, GetModuleHandle(0), _T("Loading - Please wait.")); From 0ec92f986b74ebe2fb1eaa95e47c4dbfaf470338 Mon Sep 17 00:00:00 2001 From: Rodolfo Bogado Date: Tue, 13 Aug 2013 17:31:50 -0300 Subject: [PATCH 03/27] small correction, we cannot use dual source blending if separate alpha function is not supported --- Source/Plugins/Plugin_VideoDX9/Src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Plugins/Plugin_VideoDX9/Src/main.cpp b/Source/Plugins/Plugin_VideoDX9/Src/main.cpp index 9170713e51..ab5e85d64d 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/main.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/main.cpp @@ -102,7 +102,7 @@ void InitBackendInfo() // dual source blending is only supported in windows 7 o newer. sorry xp users // we cannot test for device caps because most drivers just declare the minimun caps // and don't expose their support for some functionalities - g_Config.backend_info.bSupportsDualSourceBlend = info.dwPlatformId == VER_PLATFORM_WIN32_NT && ((info.dwMajorVersion > 6) || ((info.dwMajorVersion == 6) && info.dwMinorVersion >= 1)); + g_Config.backend_info.bSupportsDualSourceBlend = g_Config.backend_info.bSupportsSeparateAlphaFunction && (info.dwPlatformId == VER_PLATFORM_WIN32_NT) && ((info.dwMajorVersion > 6) || ((info.dwMajorVersion == 6) && info.dwMinorVersion >= 1)); } else { From a5e34dd5cb4793fef52e0ef02a87c6b47a46c8f4 Mon Sep 17 00:00:00 2001 From: Rodolfo Bogado Date: Thu, 15 Aug 2013 14:43:58 -0300 Subject: [PATCH 04/27] merge changes from other back ends to the PerfQuery functionality --- Source/Plugins/Plugin_VideoDX9/Src/PerfQuery.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Source/Plugins/Plugin_VideoDX9/Src/PerfQuery.cpp b/Source/Plugins/Plugin_VideoDX9/Src/PerfQuery.cpp index 8a1d5c59a9..fafd06e901 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/PerfQuery.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/PerfQuery.cpp @@ -35,6 +35,8 @@ void PerfQuery::DestroyDeviceObjects() void PerfQuery::EnableQuery(PerfQueryGroup type) { + if (!ShouldEmulate()) + return; // Is this sane? if (m_query_count > ARRAYSIZE(m_query_buffer) / 2) WeakFlush(); @@ -58,6 +60,8 @@ void PerfQuery::EnableQuery(PerfQueryGroup type) void PerfQuery::DisableQuery(PerfQueryGroup type) { + if (!ShouldEmulate()) + return; // stop query if (type == PQG_ZCOMP_ZCOMPLOC || type == PQG_ZCOMP) { @@ -74,6 +78,8 @@ void PerfQuery::ResetQuery() u32 PerfQuery::GetQueryResult(PerfQueryType type) { + if (!ShouldEmulate()) + return 0; u32 result = 0; if (type == PQ_ZCOMP_INPUT_ZCOMPLOC || type == PQ_ZCOMP_OUTPUT_ZCOMPLOC) @@ -98,6 +104,8 @@ u32 PerfQuery::GetQueryResult(PerfQueryType type) void PerfQuery::FlushOne() { + if (!ShouldEmulate()) + return; auto& entry = m_query_buffer[m_query_read_pos]; DWORD result = 0; @@ -118,12 +126,16 @@ void PerfQuery::FlushOne() // TODO: could selectively flush things, but I don't think that will do much void PerfQuery::FlushResults() { + if (!ShouldEmulate()) + return; while (!IsFlushed()) FlushOne(); } void PerfQuery::WeakFlush() { + if (!ShouldEmulate()) + return; while (!IsFlushed()) { auto& entry = m_query_buffer[m_query_read_pos]; @@ -148,6 +160,8 @@ void PerfQuery::WeakFlush() bool PerfQuery::IsFlushed() const { + if (!ShouldEmulate()) + return true; return 0 == m_query_count; } From 8e9bbdeb2fa59a8496e91cae751a49097e5d52c8 Mon Sep 17 00:00:00 2001 From: Rodolfo Bogado Date: Thu, 15 Aug 2013 15:14:48 -0300 Subject: [PATCH 05/27] some fixes for point rendering --- Source/Plugins/Plugin_VideoDX9/Src/Render.cpp | 2114 ++++++++--------- .../Plugin_VideoDX9/Src/VertexManager.cpp | 676 +++--- 2 files changed, 1399 insertions(+), 1391 deletions(-) diff --git a/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp b/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp index 625db5f44e..9fcabb4796 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp @@ -63,165 +63,165 @@ static LPDIRECT3DSURFACE9 ScreenShootMEMSurface = NULL; void SetupDeviceObjects() { - D3D::font.Init(); - VertexLoaderManager::Init(); - g_framebuffer_manager = new FramebufferManager; + D3D::font.Init(); + VertexLoaderManager::Init(); + g_framebuffer_manager = new FramebufferManager; - VertexShaderManager::Dirty(); - PixelShaderManager::Dirty(); - TextureConverter::Init(); - - // To avoid shader compilation stutters, read back all shaders from cache. - VertexShaderCache::Init(); - PixelShaderCache::Init(); - g_vertex_manager->CreateDeviceObjects(); - ((PerfQuery*)g_perf_query)->CreateDeviceObjects(); - // Texture cache will recreate themselves over time. + VertexShaderManager::Dirty(); + PixelShaderManager::Dirty(); + TextureConverter::Init(); + + // To avoid shader compilation stutters, read back all shaders from cache. + VertexShaderCache::Init(); + PixelShaderCache::Init(); + g_vertex_manager->CreateDeviceObjects(); + ((PerfQuery*)g_perf_query)->CreateDeviceObjects(); + // Texture cache will recreate themselves over time. } // Kill off all POOL_DEFAULT device objects. void TeardownDeviceObjects() { - if(ScreenShootMEMSurface) - ScreenShootMEMSurface->Release(); - ScreenShootMEMSurface = NULL; - D3D::dev->SetRenderTarget(0, D3D::GetBackBufferSurface()); - D3D::dev->SetDepthStencilSurface(D3D::GetBackBufferDepthSurface()); - delete g_framebuffer_manager; - ((PerfQuery*)g_perf_query)->DestroyDeviceObjects(); - D3D::font.Shutdown(); - TextureCache::Invalidate(); - VertexLoaderManager::Shutdown(); - VertexShaderCache::Shutdown(); - PixelShaderCache::Shutdown(); - TextureConverter::Shutdown(); - g_vertex_manager->DestroyDeviceObjects(); + if(ScreenShootMEMSurface) + ScreenShootMEMSurface->Release(); + ScreenShootMEMSurface = NULL; + D3D::dev->SetRenderTarget(0, D3D::GetBackBufferSurface()); + D3D::dev->SetDepthStencilSurface(D3D::GetBackBufferDepthSurface()); + delete g_framebuffer_manager; + ((PerfQuery*)g_perf_query)->DestroyDeviceObjects(); + D3D::font.Shutdown(); + TextureCache::Invalidate(); + VertexLoaderManager::Shutdown(); + VertexShaderCache::Shutdown(); + PixelShaderCache::Shutdown(); + TextureConverter::Shutdown(); + g_vertex_manager->DestroyDeviceObjects(); } // Init functions Renderer::Renderer() { - InitFPSCounter(); + InitFPSCounter(); - st = new char[32768]; + st = new char[32768]; - int fullScreenRes, x, y, w_temp, h_temp; - s_blendMode = 0; - // Multisample Anti-aliasing hasn't been implemented yet use supersamling instead - int backbuffer_ms_mode = 0; + int fullScreenRes, x, y, w_temp, h_temp; + s_blendMode = 0; + // Multisample Anti-aliasing hasn't been implemented yet use supersamling instead + int backbuffer_ms_mode = 0; - Host_GetRenderWindowSize(x, y, w_temp, h_temp); + Host_GetRenderWindowSize(x, y, w_temp, h_temp); - for (fullScreenRes = 0; fullScreenRes < (int)D3D::GetAdapter(g_ActiveConfig.iAdapter).resolutions.size(); fullScreenRes++) - { - if ((D3D::GetAdapter(g_ActiveConfig.iAdapter).resolutions[fullScreenRes].xres == w_temp) && - (D3D::GetAdapter(g_ActiveConfig.iAdapter).resolutions[fullScreenRes].yres == h_temp)) - break; - } - if (fullScreenRes == D3D::GetAdapter(g_ActiveConfig.iAdapter).resolutions.size()) - fullScreenRes = 0; + for (fullScreenRes = 0; fullScreenRes < (int)D3D::GetAdapter(g_ActiveConfig.iAdapter).resolutions.size(); fullScreenRes++) + { + if ((D3D::GetAdapter(g_ActiveConfig.iAdapter).resolutions[fullScreenRes].xres == w_temp) && + (D3D::GetAdapter(g_ActiveConfig.iAdapter).resolutions[fullScreenRes].yres == h_temp)) + break; + } + if (fullScreenRes == D3D::GetAdapter(g_ActiveConfig.iAdapter).resolutions.size()) + fullScreenRes = 0; - D3D::Create(g_ActiveConfig.iAdapter, EmuWindow::GetWnd(), - fullScreenRes, backbuffer_ms_mode, false); + D3D::Create(g_ActiveConfig.iAdapter, EmuWindow::GetWnd(), + fullScreenRes, backbuffer_ms_mode, false); - IS_AMD = D3D::IsATIDevice(); + IS_AMD = D3D::IsATIDevice(); - // Decide framebuffer size - s_backbuffer_width = D3D::GetBackBufferWidth(); - s_backbuffer_height = D3D::GetBackBufferHeight(); + // Decide framebuffer size + s_backbuffer_width = D3D::GetBackBufferWidth(); + s_backbuffer_height = D3D::GetBackBufferHeight(); - FramebufferManagerBase::SetLastXfbWidth(MAX_XFB_WIDTH); - FramebufferManagerBase::SetLastXfbHeight(MAX_XFB_HEIGHT); + FramebufferManagerBase::SetLastXfbWidth(MAX_XFB_WIDTH); + FramebufferManagerBase::SetLastXfbHeight(MAX_XFB_HEIGHT); - UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); + UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); - s_LastAA = g_ActiveConfig.iMultisampleMode; - int SupersampleCoeficient = (s_LastAA % 3) + 1; + s_LastAA = g_ActiveConfig.iMultisampleMode; + int SupersampleCoeficient = (s_LastAA % 3) + 1; - s_LastEFBScale = g_ActiveConfig.iEFBScale; - CalculateTargetSize(s_backbuffer_width, s_backbuffer_height, SupersampleCoeficient); + s_LastEFBScale = g_ActiveConfig.iEFBScale; + CalculateTargetSize(s_backbuffer_width, s_backbuffer_height, SupersampleCoeficient); - // Make sure to use valid texture sizes - D3D::FixTextureSize(s_target_width, s_target_height); + // Make sure to use valid texture sizes + D3D::FixTextureSize(s_target_width, s_target_height); - // We're not using fixed function. - // Let's just set the matrices to identity to be sure. - D3DXMATRIX mtx; - D3DXMatrixIdentity(&mtx); - D3D::dev->SetTransform(D3DTS_VIEW, &mtx); - D3D::dev->SetTransform(D3DTS_WORLD, &mtx); + // We're not using fixed function. + // Let's just set the matrices to identity to be sure. + D3DXMATRIX mtx; + D3DXMatrixIdentity(&mtx); + D3D::dev->SetTransform(D3DTS_VIEW, &mtx); + D3D::dev->SetTransform(D3DTS_WORLD, &mtx); - SetupDeviceObjects(); + SetupDeviceObjects(); - for (int stage = 0; stage < 8; stage++) - D3D::SetSamplerState(stage, D3DSAMP_MAXANISOTROPY, 1 << g_ActiveConfig.iMaxAnisotropy); + for (int stage = 0; stage < 8; stage++) + D3D::SetSamplerState(stage, D3DSAMP_MAXANISOTROPY, 1 << g_ActiveConfig.iMaxAnisotropy); - D3DVIEWPORT9 vp; - vp.X = 0; - vp.Y = 0; - vp.Width = s_backbuffer_width; - vp.Height = s_backbuffer_height; - vp.MinZ = 0.0f; - vp.MaxZ = 1.0f; - D3D::dev->SetViewport(&vp); - D3D::dev->Clear(0, NULL, D3DCLEAR_TARGET, 0x0, 0, 0); - - D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorRTSurface()); - D3D::dev->SetDepthStencilSurface(FramebufferManager::GetEFBDepthRTSurface()); - vp.X = 0; - vp.Y = 0; - vp.Width = s_target_width; - vp.Height = s_target_height; - D3D::dev->SetViewport(&vp); - D3D::dev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1.0f, 0); - D3D::BeginFrame(); - D3D::SetRenderState(D3DRS_SCISSORTESTENABLE, true); - D3D::dev->CreateOffscreenPlainSurface(s_backbuffer_width,s_backbuffer_height, D3DFMT_X8R8G8B8, D3DPOOL_SYSTEMMEM, &ScreenShootMEMSurface, NULL ); - D3D::SetRenderState(D3DRS_POINTSCALEENABLE,false); - m_fMaxPointSize = D3D::GetCaps().MaxPointSize; - // Handle VSync on/off - s_vsync = g_ActiveConfig.IsVSync(); + D3DVIEWPORT9 vp; + vp.X = 0; + vp.Y = 0; + vp.Width = s_backbuffer_width; + vp.Height = s_backbuffer_height; + vp.MinZ = 0.0f; + vp.MaxZ = 1.0f; + D3D::dev->SetViewport(&vp); + D3D::dev->Clear(0, NULL, D3DCLEAR_TARGET, 0x0, 0, 0); + + D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorRTSurface()); + D3D::dev->SetDepthStencilSurface(FramebufferManager::GetEFBDepthRTSurface()); + vp.X = 0; + vp.Y = 0; + vp.Width = s_target_width; + vp.Height = s_target_height; + D3D::dev->SetViewport(&vp); + D3D::dev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1.0f, 0); + D3D::BeginFrame(); + D3D::SetRenderState(D3DRS_SCISSORTESTENABLE, true); + D3D::dev->CreateOffscreenPlainSurface(s_backbuffer_width,s_backbuffer_height, D3DFMT_X8R8G8B8, D3DPOOL_SYSTEMMEM, &ScreenShootMEMSurface, NULL ); + D3D::SetRenderState(D3DRS_POINTSCALEENABLE,false); + m_fMaxPointSize = D3D::GetCaps().MaxPointSize; + // Handle VSync on/off + s_vsync = g_ActiveConfig.IsVSync(); } Renderer::~Renderer() { - TeardownDeviceObjects(); - D3D::EndFrame(); - D3D::Present(); - D3D::Close(); - - delete[] st; + TeardownDeviceObjects(); + D3D::EndFrame(); + D3D::Present(); + D3D::Close(); + + delete[] st; } void Renderer::RenderText(const char *text, int left, int top, u32 color) { - D3D::font.DrawTextScaled((float)left, (float)top, 20, 20, 0.0f, color, text); + D3D::font.DrawTextScaled((float)left, (float)top, 20, 20, 0.0f, color, text); } TargetRectangle Renderer::ConvertEFBRectangle(const EFBRectangle& rc) { - TargetRectangle result; - result.left = EFBToScaledX(rc.left); - result.top = EFBToScaledY(rc.top); - result.right = EFBToScaledX(rc.right); - result.bottom = EFBToScaledY(rc.bottom); - return result; + TargetRectangle result; + result.left = EFBToScaledX(rc.left); + result.top = EFBToScaledY(rc.top); + result.right = EFBToScaledX(rc.right); + result.bottom = EFBToScaledY(rc.bottom); + return result; } } void formatBufferDump(const u8* in, u8* out, int w, int h, int p) { - for (int y = 0; y < h; y++) - { - auto line = in + (h - y - 1) * p; - for (int x = 0; x < w; x++) - { - memcpy(out, line, 3); - out += 3; - line += 4; - } - } + for (int y = 0; y < h; y++) + { + auto line = in + (h - y - 1) * p; + for (int x = 0; x < w; x++) + { + memcpy(out, line, 3); + out += 3; + line += 4; + } + } } namespace DX9 @@ -231,63 +231,63 @@ namespace DX9 // size. bool Renderer::CheckForResize() { - while (EmuWindow::IsSizing()) - Sleep(10); + while (EmuWindow::IsSizing()) + Sleep(10); - if (EmuWindow::GetParentWnd()) - { - // Re-stretch window to parent window size again, if it has a parent window. - RECT rcParentWindow; - GetWindowRect(EmuWindow::GetParentWnd(), &rcParentWindow); - int width = rcParentWindow.right - rcParentWindow.left; - int height = rcParentWindow.bottom - rcParentWindow.top; - if (width != Renderer::GetBackbufferWidth() || height != Renderer::GetBackbufferHeight()) - MoveWindow(EmuWindow::GetWnd(), 0, 0, width, height, FALSE); - } + if (EmuWindow::GetParentWnd()) + { + // Re-stretch window to parent window size again, if it has a parent window. + RECT rcParentWindow; + GetWindowRect(EmuWindow::GetParentWnd(), &rcParentWindow); + int width = rcParentWindow.right - rcParentWindow.left; + int height = rcParentWindow.bottom - rcParentWindow.top; + if (width != Renderer::GetBackbufferWidth() || height != Renderer::GetBackbufferHeight()) + MoveWindow(EmuWindow::GetWnd(), 0, 0, width, height, FALSE); + } - RECT rcWindow; - GetClientRect(EmuWindow::GetWnd(), &rcWindow); - int client_width = rcWindow.right - rcWindow.left; - int client_height = rcWindow.bottom - rcWindow.top; + RECT rcWindow; + GetClientRect(EmuWindow::GetWnd(), &rcWindow); + int client_width = rcWindow.right - rcWindow.left; + int client_height = rcWindow.bottom - rcWindow.top; - // Sanity check - if ((client_width != Renderer::GetBackbufferWidth() || - client_height != Renderer::GetBackbufferHeight()) && - client_width >= 4 && client_height >= 4) - { - TeardownDeviceObjects(); + // Sanity check + if ((client_width != Renderer::GetBackbufferWidth() || + client_height != Renderer::GetBackbufferHeight()) && + client_width >= 4 && client_height >= 4) + { + TeardownDeviceObjects(); - D3D::Reset(); - s_backbuffer_width = D3D::GetBackBufferWidth(); - s_backbuffer_height = D3D::GetBackBufferHeight(); - if(ScreenShootMEMSurface) - ScreenShootMEMSurface->Release(); - D3D::dev->CreateOffscreenPlainSurface(Renderer::GetBackbufferWidth(), Renderer::GetBackbufferHeight(), - D3DFMT_X8R8G8B8, D3DPOOL_SYSTEMMEM, &ScreenShootMEMSurface, NULL ); + D3D::Reset(); + s_backbuffer_width = D3D::GetBackBufferWidth(); + s_backbuffer_height = D3D::GetBackBufferHeight(); + if(ScreenShootMEMSurface) + ScreenShootMEMSurface->Release(); + D3D::dev->CreateOffscreenPlainSurface(Renderer::GetBackbufferWidth(), Renderer::GetBackbufferHeight(), + D3DFMT_X8R8G8B8, D3DPOOL_SYSTEMMEM, &ScreenShootMEMSurface, NULL ); - return true; - } - - return false; + return true; + } + + return false; } void Renderer::SetScissorRect(const TargetRectangle& rc) { - D3D::dev->SetScissorRect(rc.AsRECT()); + D3D::dev->SetScissorRect(rc.AsRECT()); } void Renderer::SetColorMask() { - // Only enable alpha channel if it's supported by the current EFB format - DWORD color_mask = 0; - if (bpmem.alpha_test.TestResult() != AlphaTest::FAIL) - { - if (bpmem.blendmode.alphaupdate && (bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24)) - color_mask = D3DCOLORWRITEENABLE_ALPHA; - if (bpmem.blendmode.colorupdate) - color_mask |= D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_BLUE; - } - D3D::SetRenderState(D3DRS_COLORWRITEENABLE, color_mask); + // Only enable alpha channel if it's supported by the current EFB format + DWORD color_mask = 0; + if (bpmem.alpha_test.TestResult() != AlphaTest::FAIL) + { + if (bpmem.blendmode.alphaupdate && (bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24)) + color_mask = D3DCOLORWRITEENABLE_ALPHA; + if (bpmem.blendmode.colorupdate) + color_mask |= D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_BLUE; + } + D3D::SetRenderState(D3DRS_COLORWRITEENABLE, color_mask); } // This function allows the CPU to directly access the EFB. @@ -306,191 +306,191 @@ void Renderer::SetColorMask() // - GX_PokeZMode (TODO) u32 Renderer::AccessEFB(EFBAccessType type, u32 x, u32 y, u32 poke_data) { - if (!g_ActiveConfig.bEFBAccessEnable) - return 0; + if (!g_ActiveConfig.bEFBAccessEnable) + return 0; - if (type == POKE_Z) - { - static bool alert_only_once = true; - if (!alert_only_once) return 0; - PanicAlert("EFB: Poke Z not implemented (tried to poke z value %#x at (%d,%d))", poke_data, x, y); - alert_only_once = false; - return 0; - } + if (type == POKE_Z) + { + static bool alert_only_once = true; + if (!alert_only_once) return 0; + PanicAlert("EFB: Poke Z not implemented (tried to poke z value %#x at (%d,%d))", poke_data, x, y); + alert_only_once = false; + return 0; + } - // if depth textures aren't supported by the hardware, just return - if (type == PEEK_Z) - if (FramebufferManager::GetEFBDepthTexture() == NULL) - return 0; + // if depth textures aren't supported by the hardware, just return + if (type == PEEK_Z) + if (FramebufferManager::GetEFBDepthTexture() == NULL) + return 0; - // We're using three surfaces here: - // - pEFBSurf: EFB Surface. Source surface when peeking, destination surface when poking. - // - pBufferRT: A render target surface. When peeking, we render a textured quad to this surface. - // - pSystemBuf: An offscreen surface. Used to retrieve the pixel data from pBufferRT. - LPDIRECT3DSURFACE9 pEFBSurf, pBufferRT, pSystemBuf; - if(type == PEEK_Z || type == POKE_Z) - { - pEFBSurf = FramebufferManager::GetEFBDepthRTSurface(); - pBufferRT = FramebufferManager::GetEFBDepthReadSurface(); - pSystemBuf = FramebufferManager::GetEFBDepthOffScreenRTSurface(); - } - else //if(type == PEEK_COLOR || type == POKE_COLOR) - { - pEFBSurf = FramebufferManager::GetEFBColorRTSurface(); - pBufferRT = FramebufferManager::GetEFBColorReadSurface(); - pSystemBuf = FramebufferManager::GetEFBColorOffScreenRTSurface(); - } + // We're using three surfaces here: + // - pEFBSurf: EFB Surface. Source surface when peeking, destination surface when poking. + // - pBufferRT: A render target surface. When peeking, we render a textured quad to this surface. + // - pSystemBuf: An offscreen surface. Used to retrieve the pixel data from pBufferRT. + LPDIRECT3DSURFACE9 pEFBSurf, pBufferRT, pSystemBuf; + if(type == PEEK_Z || type == POKE_Z) + { + pEFBSurf = FramebufferManager::GetEFBDepthRTSurface(); + pBufferRT = FramebufferManager::GetEFBDepthReadSurface(); + pSystemBuf = FramebufferManager::GetEFBDepthOffScreenRTSurface(); + } + else //if(type == PEEK_COLOR || type == POKE_COLOR) + { + pEFBSurf = FramebufferManager::GetEFBColorRTSurface(); + pBufferRT = FramebufferManager::GetEFBColorReadSurface(); + pSystemBuf = FramebufferManager::GetEFBColorOffScreenRTSurface(); + } - // Buffer not found alert - if (!pEFBSurf) { - PanicAlert("No %s!", (type == PEEK_Z || type == POKE_Z) ? "Z-Buffer" : "Color EFB"); - return 0; - } + // Buffer not found alert + if (!pEFBSurf) { + PanicAlert("No %s!", (type == PEEK_Z || type == POKE_Z) ? "Z-Buffer" : "Color EFB"); + return 0; + } - // Convert EFB dimensions to the ones of our render target - EFBRectangle efbPixelRc; - efbPixelRc.left = x; - efbPixelRc.top = y; - efbPixelRc.right = x + 1; - efbPixelRc.bottom = y + 1; + // Convert EFB dimensions to the ones of our render target + EFBRectangle efbPixelRc; + efbPixelRc.left = x; + efbPixelRc.top = y; + efbPixelRc.right = x + 1; + efbPixelRc.bottom = y + 1; - TargetRectangle targetPixelRc = ConvertEFBRectangle(efbPixelRc); + TargetRectangle targetPixelRc = ConvertEFBRectangle(efbPixelRc); - HRESULT hr; - RECT RectToLock; - RectToLock.bottom = targetPixelRc.bottom; - RectToLock.left = targetPixelRc.left; - RectToLock.right = targetPixelRc.right; - RectToLock.top = targetPixelRc.top; - if (type == PEEK_Z) - { - // TODO: why is D3DFMT_D24X8 singled out here? why not D3DFMT_D24X4S4/D24S8/D24FS8/D32/D16/D15S1 too, or none of them? - if (FramebufferManager::GetEFBDepthRTSurfaceFormat() == D3DFMT_D24X8) - return 0; + HRESULT hr; + RECT RectToLock; + RectToLock.bottom = targetPixelRc.bottom; + RectToLock.left = targetPixelRc.left; + RectToLock.right = targetPixelRc.right; + RectToLock.top = targetPixelRc.top; + if (type == PEEK_Z) + { + // TODO: why is D3DFMT_D24X8 singled out here? why not D3DFMT_D24X4S4/D24S8/D24FS8/D32/D16/D15S1 too, or none of them? + if (FramebufferManager::GetEFBDepthRTSurfaceFormat() == D3DFMT_D24X8) + return 0; - RECT PixelRect; - PixelRect.bottom = 4; - PixelRect.left = 0; - PixelRect.right = 4; - PixelRect.top = 0; - RectToLock.bottom+=2; - RectToLock.right+=1; - RectToLock.top-=1; - RectToLock.left-=2; - if ((RectToLock.bottom - RectToLock.top) > 4) - RectToLock.bottom--; - if ((RectToLock.right - RectToLock.left) > 4) - RectToLock.left++; + RECT PixelRect; + PixelRect.bottom = 4; + PixelRect.left = 0; + PixelRect.right = 4; + PixelRect.top = 0; + RectToLock.bottom+=2; + RectToLock.right+=1; + RectToLock.top-=1; + RectToLock.left-=2; + if ((RectToLock.bottom - RectToLock.top) > 4) + RectToLock.bottom--; + if ((RectToLock.right - RectToLock.left) > 4) + RectToLock.left++; - ResetAPIState(); // Reset any game specific settings - D3D::dev->SetDepthStencilSurface(NULL); - D3D::dev->SetRenderTarget(0, pBufferRT); + ResetAPIState(); // Reset any game specific settings + D3D::dev->SetDepthStencilSurface(NULL); + D3D::dev->SetRenderTarget(0, pBufferRT); - // Stretch picture with increased internal resolution - D3DVIEWPORT9 vp; - vp.X = 0; - vp.Y = 0; - vp.Width = 4; - vp.Height = 4; - vp.MinZ = 0.0f; - vp.MaxZ = 1.0f; - D3D::dev->SetViewport(&vp); + // Stretch picture with increased internal resolution + D3DVIEWPORT9 vp; + vp.X = 0; + vp.Y = 0; + vp.Width = 4; + vp.Height = 4; + vp.MinZ = 0.0f; + vp.MaxZ = 1.0f; + D3D::dev->SetViewport(&vp); - float colmat[28] = {0.0f}; - colmat[0] = colmat[5] = colmat[10] = 1.0f; - PixelShaderManager::SetColorMatrix(colmat); // set transformation - LPDIRECT3DTEXTURE9 read_texture = FramebufferManager::GetEFBDepthTexture(); - - D3D::ChangeSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT); + float colmat[28] = {0.0f}; + colmat[0] = colmat[5] = colmat[10] = 1.0f; + PixelShaderManager::SetColorMatrix(colmat); // set transformation + LPDIRECT3DTEXTURE9 read_texture = FramebufferManager::GetEFBDepthTexture(); - D3DFORMAT bformat = FramebufferManager::GetEFBDepthRTSurfaceFormat(); + D3D::ChangeSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT); - D3D::drawShadedTexQuad( - read_texture, - &RectToLock, - Renderer::GetTargetWidth(), - Renderer::GetTargetHeight(), - 4, 4, - PixelShaderCache::GetDepthMatrixProgram(0, bformat != FOURCC_RAWZ), - VertexShaderCache::GetSimpleVertexShader(0)); + D3DFORMAT bformat = FramebufferManager::GetEFBDepthRTSurfaceFormat(); - D3D::RefreshSamplerState(0, D3DSAMP_MINFILTER); + D3D::drawShadedTexQuad( + read_texture, + &RectToLock, + Renderer::GetTargetWidth(), + Renderer::GetTargetHeight(), + 4, 4, + PixelShaderCache::GetDepthMatrixProgram(0, bformat != FOURCC_RAWZ), + VertexShaderCache::GetSimpleVertexShader(0)); - D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorRTSurface()); - D3D::dev->SetDepthStencilSurface(FramebufferManager::GetEFBDepthRTSurface()); - RestoreAPIState(); + D3D::RefreshSamplerState(0, D3DSAMP_MINFILTER); - // Retrieve the pixel data to the local memory buffer - RectToLock.bottom = 4; - RectToLock.left = 0; - RectToLock.right = 4; - RectToLock.top = 0; - D3D::dev->GetRenderTargetData(pBufferRT, pSystemBuf); + D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorRTSurface()); + D3D::dev->SetDepthStencilSurface(FramebufferManager::GetEFBDepthRTSurface()); + RestoreAPIState(); - // EFB data successfully retrieved, now get the pixel data - D3DLOCKED_RECT drect; - pSystemBuf->LockRect(&drect, &RectToLock, D3DLOCK_READONLY); - u32 z = ((u32*)drect.pBits)[6]; // 24 bit depth value - pSystemBuf->UnlockRect(); + // Retrieve the pixel data to the local memory buffer + RectToLock.bottom = 4; + RectToLock.left = 0; + RectToLock.right = 4; + RectToLock.top = 0; + D3D::dev->GetRenderTargetData(pBufferRT, pSystemBuf); - // if Z is in 16 bit format you must return a 16 bit integer - if(bpmem.zcontrol.pixel_format == PIXELFMT_RGB565_Z16) { - z >>= 8; - } + // EFB data successfully retrieved, now get the pixel data + D3DLOCKED_RECT drect; + pSystemBuf->LockRect(&drect, &RectToLock, D3DLOCK_READONLY); + u32 z = ((u32*)drect.pBits)[6]; // 24 bit depth value + pSystemBuf->UnlockRect(); - return z; - } - else if(type == PEEK_COLOR) - { - // We can't directly StretchRect to System buf because is not supported by all implementations - // this is the only safe path that works in most cases - hr = D3D::dev->StretchRect(pEFBSurf, &RectToLock, pBufferRT, NULL, D3DTEXF_NONE); - D3D::dev->GetRenderTargetData(pBufferRT, pSystemBuf); + // if Z is in 16 bit format you must return a 16 bit integer + if(bpmem.zcontrol.pixel_format == PIXELFMT_RGB565_Z16) { + z >>= 8; + } - // EFB data successfully retrieved, now get the pixel data - RectToLock.bottom = 1; - RectToLock.left = 0; - RectToLock.right = 1; - RectToLock.top = 0; + return z; + } + else if(type == PEEK_COLOR) + { + // We can't directly StretchRect to System buf because is not supported by all implementations + // this is the only safe path that works in most cases + hr = D3D::dev->StretchRect(pEFBSurf, &RectToLock, pBufferRT, NULL, D3DTEXF_NONE); + D3D::dev->GetRenderTargetData(pBufferRT, pSystemBuf); - D3DLOCKED_RECT drect; - pSystemBuf->LockRect(&drect, &RectToLock, D3DLOCK_READONLY); - u32 ret = ((u32*)drect.pBits)[0]; - pSystemBuf->UnlockRect(); + // EFB data successfully retrieved, now get the pixel data + RectToLock.bottom = 1; + RectToLock.left = 0; + RectToLock.right = 1; + RectToLock.top = 0; - // check what to do with the alpha channel (GX_PokeAlphaRead) - PixelEngine::UPEAlphaReadReg alpha_read_mode; - PixelEngine::Read16((u16&)alpha_read_mode, PE_ALPHAREAD); + D3DLOCKED_RECT drect; + pSystemBuf->LockRect(&drect, &RectToLock, D3DLOCK_READONLY); + u32 ret = ((u32*)drect.pBits)[0]; + pSystemBuf->UnlockRect(); - if (bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24) - { - ret = RGBA8ToRGBA6ToRGBA8(ret); - } - else if (bpmem.zcontrol.pixel_format == PIXELFMT_RGB565_Z16) - { - ret = RGBA8ToRGB565ToRGBA8(ret); - } - if(bpmem.zcontrol.pixel_format != PIXELFMT_RGBA6_Z24) - { - ret |= 0xFF000000; - } + // check what to do with the alpha channel (GX_PokeAlphaRead) + PixelEngine::UPEAlphaReadReg alpha_read_mode; + PixelEngine::Read16((u16&)alpha_read_mode, PE_ALPHAREAD); - if(alpha_read_mode.ReadMode == 2) return ret; // GX_READ_NONE - else if(alpha_read_mode.ReadMode == 1) return (ret | 0xFF000000); // GX_READ_FF - else return (ret & 0x00FFFFFF); // GX_READ_00 - } - else //if(type == POKE_COLOR) - { - // TODO: Speed this up by batching pokes? - ResetAPIState(); - D3D::drawColorQuad(poke_data, - (float)RectToLock.left * 2.f / (float)Renderer::GetTargetWidth() - 1.f, - - (float)RectToLock.top * 2.f / (float)Renderer::GetTargetHeight() + 1.f, - (float)RectToLock.right * 2.f / (float)Renderer::GetTargetWidth() - 1.f, - - (float)RectToLock.bottom * 2.f / (float)Renderer::GetTargetHeight() + 1.f); - RestoreAPIState(); - return 0; - } + if (bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24) + { + ret = RGBA8ToRGBA6ToRGBA8(ret); + } + else if (bpmem.zcontrol.pixel_format == PIXELFMT_RGB565_Z16) + { + ret = RGBA8ToRGB565ToRGBA8(ret); + } + if(bpmem.zcontrol.pixel_format != PIXELFMT_RGBA6_Z24) + { + ret |= 0xFF000000; + } + + if(alpha_read_mode.ReadMode == 2) return ret; // GX_READ_NONE + else if(alpha_read_mode.ReadMode == 1) return (ret | 0xFF000000); // GX_READ_FF + else return (ret & 0x00FFFFFF); // GX_READ_00 + } + else //if(type == POKE_COLOR) + { + // TODO: Speed this up by batching pokes? + ResetAPIState(); + D3D::drawColorQuad(poke_data, + (float)RectToLock.left * 2.f / (float)Renderer::GetTargetWidth() - 1.f, + - (float)RectToLock.top * 2.f / (float)Renderer::GetTargetHeight() + 1.f, + (float)RectToLock.right * 2.f / (float)Renderer::GetTargetWidth() - 1.f, + - (float)RectToLock.bottom * 2.f / (float)Renderer::GetTargetHeight() + 1.f); + RestoreAPIState(); + return 0; + } } // Viewport correction: @@ -503,884 +503,884 @@ u32 Renderer::AccessEFB(EFBAccessType type, u32 x, u32 y, u32 poke_data) // [ 0 0 1 0 ] // [ 0 0 0 1 ] static void ViewportCorrectionMatrix(Matrix44& result, - float ix, float iy, float iw, float ih, // Intended viewport (x, y, width, height) - float ax, float ay, float aw, float ah) // Actual viewport (x, y, width, height) + float ix, float iy, float iw, float ih, // Intended viewport (x, y, width, height) + float ax, float ay, float aw, float ah) // Actual viewport (x, y, width, height) { - Matrix44::LoadIdentity(result); - if (aw == 0.f || ah == 0.f) - return; - result.data[4*0+0] = iw / aw; - result.data[4*0+3] = (iw - 2.f * (ax - ix)) / aw - 1.f; - result.data[4*1+1] = ih / ah; - result.data[4*1+3] = (-ih + 2.f * (ay - iy)) / ah + 1.f; + Matrix44::LoadIdentity(result); + if (aw == 0.f || ah == 0.f) + return; + result.data[4*0+0] = iw / aw; + result.data[4*0+3] = (iw - 2.f * (ax - ix)) / aw - 1.f; + result.data[4*1+1] = ih / ah; + result.data[4*1+3] = (-ih + 2.f * (ay - iy)) / ah + 1.f; } // Called from VertexShaderManager void Renderer::UpdateViewport(Matrix44& vpCorrection) { - // reversed gxsetviewport(xorig, yorig, width, height, nearz, farz) - // [0] = width/2 - // [1] = height/2 - // [2] = 16777215 * (farz - nearz) - // [3] = xorig + width/2 + 342 - // [4] = yorig + height/2 + 342 - // [5] = 16777215 * farz + // reversed gxsetviewport(xorig, yorig, width, height, nearz, farz) + // [0] = width/2 + // [1] = height/2 + // [2] = 16777215 * (farz - nearz) + // [3] = xorig + width/2 + 342 + // [4] = yorig + height/2 + 342 + // [5] = 16777215 * farz - int scissorXOff = bpmem.scissorOffset.x * 2; - int scissorYOff = bpmem.scissorOffset.y * 2; + int scissorXOff = bpmem.scissorOffset.x * 2; + int scissorYOff = bpmem.scissorOffset.y * 2; - // TODO: ceil, floor or just cast to int? - int intendedX = EFBToScaledX((int)ceil(xfregs.viewport.xOrig - xfregs.viewport.wd - scissorXOff)); - int intendedY = EFBToScaledY((int)ceil(xfregs.viewport.yOrig + xfregs.viewport.ht - scissorYOff)); - int intendedWd = EFBToScaledX((int)ceil(2.0f * xfregs.viewport.wd)); - int intendedHt = EFBToScaledY((int)ceil(-2.0f * xfregs.viewport.ht)); - if (intendedWd < 0) - { - intendedX += intendedWd; - intendedWd = -intendedWd; - } - if (intendedHt < 0) - { - intendedY += intendedHt; - intendedHt = -intendedHt; - } + // TODO: ceil, floor or just cast to int? + int intendedX = EFBToScaledX((int)ceil(xfregs.viewport.xOrig - xfregs.viewport.wd - scissorXOff)); + int intendedY = EFBToScaledY((int)ceil(xfregs.viewport.yOrig + xfregs.viewport.ht - scissorYOff)); + int intendedWd = EFBToScaledX((int)ceil(2.0f * xfregs.viewport.wd)); + int intendedHt = EFBToScaledY((int)ceil(-2.0f * xfregs.viewport.ht)); + if (intendedWd < 0) + { + intendedX += intendedWd; + intendedWd = -intendedWd; + } + if (intendedHt < 0) + { + intendedY += intendedHt; + intendedHt = -intendedHt; + } - // In D3D, the viewport rectangle must fit within the render target. - int X = intendedX; - if (X < 0) - X = 0; - int Y = intendedY; - if (Y < 0) - Y = 0; - int Wd = intendedWd; - if (X + Wd > GetTargetWidth()) - Wd = GetTargetWidth() - X; - int Ht = intendedHt; - if (Y + Ht > GetTargetHeight()) - Ht = GetTargetHeight() - Y; + // In D3D, the viewport rectangle must fit within the render target. + int X = intendedX; + if (X < 0) + X = 0; + int Y = intendedY; + if (Y < 0) + Y = 0; + int Wd = intendedWd; + if (X + Wd > GetTargetWidth()) + Wd = GetTargetWidth() - X; + int Ht = intendedHt; + if (Y + Ht > GetTargetHeight()) + Ht = GetTargetHeight() - Y; - // If GX viewport is off the render target, we must clamp our viewport - // within the bounds. Use the correction matrix to compensate. - ViewportCorrectionMatrix(vpCorrection, - (float)intendedX, (float)intendedY, (float)intendedWd, (float)intendedHt, - (float)X, (float)Y, (float)Wd, (float)Ht); + // If GX viewport is off the render target, we must clamp our viewport + // within the bounds. Use the correction matrix to compensate. + ViewportCorrectionMatrix(vpCorrection, + (float)intendedX, (float)intendedY, (float)intendedWd, (float)intendedHt, + (float)X, (float)Y, (float)Wd, (float)Ht); - D3DVIEWPORT9 vp; - vp.X = X; - vp.Y = Y; - vp.Width = Wd; - vp.Height = Ht; + D3DVIEWPORT9 vp; + vp.X = X; + vp.Y = Y; + vp.Width = Wd; + vp.Height = Ht; - // Some games set invalids values for z min and z max so fix them to the max an min alowed and let the shaders do this work - vp.MinZ = 0.0f; // (xfregs.viewport.farZ - xfregs.viewport.zRange) / 16777216.0f; - vp.MaxZ = 1.0f; // xfregs.viewport.farZ / 16777216.0f; - D3D::dev->SetViewport(&vp); + // Some games set invalids values for z min and z max so fix them to the max an min alowed and let the shaders do this work + vp.MinZ = 0.0f; // (xfregs.viewport.farZ - xfregs.viewport.zRange) / 16777216.0f; + vp.MaxZ = 1.0f; // xfregs.viewport.farZ / 16777216.0f; + D3D::dev->SetViewport(&vp); } void Renderer::ClearScreen(const EFBRectangle& rc, bool colorEnable, bool alphaEnable, bool zEnable, u32 color, u32 z) { - // Reset rendering pipeline while keeping color masks and depth buffer settings - ResetAPIState(); + // Reset rendering pipeline while keeping color masks and depth buffer settings + ResetAPIState(); - DWORD color_mask = 0; - if (alphaEnable) - color_mask = D3DCOLORWRITEENABLE_ALPHA; - if (colorEnable) - color_mask |= D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_BLUE; - D3D::ChangeRenderState(D3DRS_COLORWRITEENABLE, color_mask); + DWORD color_mask = 0; + if (alphaEnable) + color_mask = D3DCOLORWRITEENABLE_ALPHA; + if (colorEnable) + color_mask |= D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_BLUE; + D3D::ChangeRenderState(D3DRS_COLORWRITEENABLE, color_mask); - if (zEnable) - { - D3D::ChangeRenderState(D3DRS_ZENABLE, TRUE); - D3D::ChangeRenderState(D3DRS_ZWRITEENABLE, TRUE); - D3D::ChangeRenderState(D3DRS_ZFUNC, D3DCMP_ALWAYS); - } - else - { - D3D::ChangeRenderState(D3DRS_ZENABLE, FALSE); - } + if (zEnable) + { + D3D::ChangeRenderState(D3DRS_ZENABLE, TRUE); + D3D::ChangeRenderState(D3DRS_ZWRITEENABLE, TRUE); + D3D::ChangeRenderState(D3DRS_ZFUNC, D3DCMP_ALWAYS); + } + else + { + D3D::ChangeRenderState(D3DRS_ZENABLE, FALSE); + } - // Update the viewport for clearing the target EFB rect - TargetRectangle targetRc = ConvertEFBRectangle(rc); - D3DVIEWPORT9 vp; - vp.X = targetRc.left; - vp.Y = targetRc.top; - vp.Width = targetRc.GetWidth(); - vp.Height = targetRc.GetHeight(); - vp.MinZ = 0.0; - vp.MaxZ = 1.0; - D3D::dev->SetViewport(&vp); - D3D::drawClearQuad(color, (z & 0xFFFFFF) / float(0xFFFFFF), PixelShaderCache::GetClearProgram(), VertexShaderCache::GetClearVertexShader()); - RestoreAPIState(); + // Update the viewport for clearing the target EFB rect + TargetRectangle targetRc = ConvertEFBRectangle(rc); + D3DVIEWPORT9 vp; + vp.X = targetRc.left; + vp.Y = targetRc.top; + vp.Width = targetRc.GetWidth(); + vp.Height = targetRc.GetHeight(); + vp.MinZ = 0.0; + vp.MaxZ = 1.0; + D3D::dev->SetViewport(&vp); + D3D::drawClearQuad(color, (z & 0xFFFFFF) / float(0xFFFFFF), PixelShaderCache::GetClearProgram(), VertexShaderCache::GetClearVertexShader()); + RestoreAPIState(); } void Renderer::ReinterpretPixelData(unsigned int convtype) { - RECT source; - SetRect(&source, 0, 0, g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight()); + RECT source; + SetRect(&source, 0, 0, g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight()); - LPDIRECT3DPIXELSHADER9 pixel_shader; - if (convtype == 0) pixel_shader = PixelShaderCache::ReinterpRGB8ToRGBA6(); - else if (convtype == 2) pixel_shader = PixelShaderCache::ReinterpRGBA6ToRGB8(); - else - { - ERROR_LOG(VIDEO, "Trying to reinterpret pixel data with unsupported conversion type %d", convtype); - return; - } + LPDIRECT3DPIXELSHADER9 pixel_shader; + if (convtype == 0) pixel_shader = PixelShaderCache::ReinterpRGB8ToRGBA6(); + else if (convtype == 2) pixel_shader = PixelShaderCache::ReinterpRGBA6ToRGB8(); + else + { + ERROR_LOG(VIDEO, "Trying to reinterpret pixel data with unsupported conversion type %d", convtype); + return; + } - // convert data and set the target texture as our new EFB - g_renderer->ResetAPIState(); - D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorReinterpretSurface()); - D3DVIEWPORT9 vp; - vp.X = 0; - vp.Y = 0; - vp.Width = g_renderer->GetTargetWidth(); - vp.Height = g_renderer->GetTargetHeight(); - vp.MinZ = 0.0; - vp.MaxZ = 1.0; - D3D::dev->SetViewport(&vp); - D3D::ChangeSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT); - D3D::drawShadedTexQuad(FramebufferManager::GetEFBColorTexture(), &source, - g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight(), - g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight(), - pixel_shader, VertexShaderCache::GetSimpleVertexShader(0)); - FramebufferManager::SwapReinterpretTexture(); - D3D::RefreshSamplerState(0, D3DSAMP_MINFILTER); - g_renderer->RestoreAPIState(); + // convert data and set the target texture as our new EFB + g_renderer->ResetAPIState(); + D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorReinterpretSurface()); + D3DVIEWPORT9 vp; + vp.X = 0; + vp.Y = 0; + vp.Width = g_renderer->GetTargetWidth(); + vp.Height = g_renderer->GetTargetHeight(); + vp.MinZ = 0.0; + vp.MaxZ = 1.0; + D3D::dev->SetViewport(&vp); + D3D::ChangeSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT); + D3D::drawShadedTexQuad(FramebufferManager::GetEFBColorTexture(), &source, + g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight(), + g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight(), + pixel_shader, VertexShaderCache::GetSimpleVertexShader(0)); + FramebufferManager::SwapReinterpretTexture(); + D3D::RefreshSamplerState(0, D3DSAMP_MINFILTER); + g_renderer->RestoreAPIState(); } void Renderer::SetBlendMode(bool forceUpdate) { - // Our render target always uses an alpha channel, so we need to override the blend functions to assume a destination alpha of 1 if the render target isn't supposed to have an alpha channel - // Example: D3DBLEND_DESTALPHA needs to be D3DBLEND_ONE since the result without an alpha channel is assumed to always be 1. - bool target_has_alpha = bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24; - //bDstAlphaPass is taken into account because the ability to disable alpha composition is - //really useful for debugging shader and blending errors - bool use_DstAlpha = !g_ActiveConfig.bDstAlphaPass && bpmem.dstalpha.enable && bpmem.blendmode.alphaupdate && target_has_alpha; - bool use_DualSource = use_DstAlpha && g_ActiveConfig.backend_info.bSupportsDualSourceBlend; - const D3DBLEND d3dSrcFactors[8] = - { - D3DBLEND_ZERO, - D3DBLEND_ONE, - D3DBLEND_DESTCOLOR, - D3DBLEND_INVDESTCOLOR, - (use_DualSource) ? D3DBLEND_SRCCOLOR2 : D3DBLEND_SRCALPHA, - (use_DualSource) ? D3DBLEND_INVSRCCOLOR2 : D3DBLEND_INVSRCALPHA, - (target_has_alpha) ? D3DBLEND_DESTALPHA : D3DBLEND_ONE, - (target_has_alpha) ? D3DBLEND_INVDESTALPHA : D3DBLEND_ZERO - }; - const D3DBLEND d3dDestFactors[8] = - { - D3DBLEND_ZERO, - D3DBLEND_ONE, - D3DBLEND_SRCCOLOR, - D3DBLEND_INVSRCCOLOR, - (use_DualSource) ? D3DBLEND_SRCCOLOR2 : D3DBLEND_SRCALPHA, - (use_DualSource) ? D3DBLEND_INVSRCCOLOR2 : D3DBLEND_INVSRCALPHA, - (target_has_alpha) ? D3DBLEND_DESTALPHA : D3DBLEND_ONE, - (target_has_alpha) ? D3DBLEND_INVDESTALPHA : D3DBLEND_ZERO - }; + // Our render target always uses an alpha channel, so we need to override the blend functions to assume a destination alpha of 1 if the render target isn't supposed to have an alpha channel + // Example: D3DBLEND_DESTALPHA needs to be D3DBLEND_ONE since the result without an alpha channel is assumed to always be 1. + bool target_has_alpha = bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24; + //bDstAlphaPass is taken into account because the ability to disable alpha composition is + //really useful for debugging shader and blending errors + bool use_DstAlpha = !g_ActiveConfig.bDstAlphaPass && bpmem.dstalpha.enable && bpmem.blendmode.alphaupdate && target_has_alpha; + bool use_DualSource = use_DstAlpha && g_ActiveConfig.backend_info.bSupportsDualSourceBlend; + const D3DBLEND d3dSrcFactors[8] = + { + D3DBLEND_ZERO, + D3DBLEND_ONE, + D3DBLEND_DESTCOLOR, + D3DBLEND_INVDESTCOLOR, + (use_DualSource) ? D3DBLEND_SRCCOLOR2 : D3DBLEND_SRCALPHA, + (use_DualSource) ? D3DBLEND_INVSRCCOLOR2 : D3DBLEND_INVSRCALPHA, + (target_has_alpha) ? D3DBLEND_DESTALPHA : D3DBLEND_ONE, + (target_has_alpha) ? D3DBLEND_INVDESTALPHA : D3DBLEND_ZERO + }; + const D3DBLEND d3dDestFactors[8] = + { + D3DBLEND_ZERO, + D3DBLEND_ONE, + D3DBLEND_SRCCOLOR, + D3DBLEND_INVSRCCOLOR, + (use_DualSource) ? D3DBLEND_SRCCOLOR2 : D3DBLEND_SRCALPHA, + (use_DualSource) ? D3DBLEND_INVSRCCOLOR2 : D3DBLEND_INVSRCALPHA, + (target_has_alpha) ? D3DBLEND_DESTALPHA : D3DBLEND_ONE, + (target_has_alpha) ? D3DBLEND_INVDESTALPHA : D3DBLEND_ZERO + }; - if (bpmem.blendmode.logicopenable && !forceUpdate) - { - D3D::SetRenderState(D3DRS_SEPARATEALPHABLENDENABLE , false); - return; - } + if (bpmem.blendmode.logicopenable && !forceUpdate) + { + D3D::SetRenderState(D3DRS_SEPARATEALPHABLENDENABLE , false); + return; + } - bool blend_enable = bpmem.blendmode.subtract || bpmem.blendmode.blendenable; - D3D::SetRenderState(D3DRS_ALPHABLENDENABLE, blend_enable); - D3D::SetRenderState(D3DRS_SEPARATEALPHABLENDENABLE, blend_enable && g_ActiveConfig.backend_info.bSupportsSeparateAlphaFunction); - if (blend_enable) - { - D3DBLENDOP op = D3DBLENDOP_ADD; - u32 srcidx = bpmem.blendmode.srcfactor; - u32 dstidx = bpmem.blendmode.dstfactor; - if (bpmem.blendmode.subtract) - { - op = D3DBLENDOP_REVSUBTRACT; - srcidx = GX_BL_ONE; - dstidx = GX_BL_ONE; - } - D3D::SetRenderState(D3DRS_BLENDOP, op); - D3D::SetRenderState(D3DRS_SRCBLEND, d3dSrcFactors[srcidx]); - D3D::SetRenderState(D3DRS_DESTBLEND, d3dDestFactors[dstidx]); - if (g_ActiveConfig.backend_info.bSupportsSeparateAlphaFunction) - { - if (use_DualSource) - { - op = D3DBLENDOP_ADD; - srcidx = GX_BL_ONE; - dstidx = GX_BL_ZERO; - } - else - { - // we can't use D3DBLEND_DESTCOLOR or D3DBLEND_INVDESTCOLOR for source in alpha channel so use their alpha equivalent instead - if (srcidx == GX_BL_DSTCLR) srcidx = GX_BL_DSTALPHA; - if (srcidx == GX_BL_INVDSTCLR) srcidx = GX_BL_INVDSTALPHA; - // we can't use D3DBLEND_SRCCOLOR or D3DBLEND_INVSRCCOLOR for destination in alpha channel so use their alpha equivalent instead - if (dstidx == GX_BL_SRCCLR) dstidx = GX_BL_SRCALPHA; - if (dstidx == GX_BL_INVSRCCLR) dstidx = GX_BL_INVSRCALPHA; - } - D3D::SetRenderState(D3DRS_BLENDOPALPHA, op); - D3D::SetRenderState(D3DRS_SRCBLENDALPHA, d3dSrcFactors[srcidx]); - D3D::SetRenderState(D3DRS_DESTBLENDALPHA, d3dDestFactors[dstidx]); - } - } + bool blend_enable = bpmem.blendmode.subtract || bpmem.blendmode.blendenable; + D3D::SetRenderState(D3DRS_ALPHABLENDENABLE, blend_enable); + D3D::SetRenderState(D3DRS_SEPARATEALPHABLENDENABLE, blend_enable && g_ActiveConfig.backend_info.bSupportsSeparateAlphaFunction); + if (blend_enable) + { + D3DBLENDOP op = D3DBLENDOP_ADD; + u32 srcidx = bpmem.blendmode.srcfactor; + u32 dstidx = bpmem.blendmode.dstfactor; + if (bpmem.blendmode.subtract) + { + op = D3DBLENDOP_REVSUBTRACT; + srcidx = GX_BL_ONE; + dstidx = GX_BL_ONE; + } + D3D::SetRenderState(D3DRS_BLENDOP, op); + D3D::SetRenderState(D3DRS_SRCBLEND, d3dSrcFactors[srcidx]); + D3D::SetRenderState(D3DRS_DESTBLEND, d3dDestFactors[dstidx]); + if (g_ActiveConfig.backend_info.bSupportsSeparateAlphaFunction) + { + if (use_DualSource) + { + op = D3DBLENDOP_ADD; + srcidx = GX_BL_ONE; + dstidx = GX_BL_ZERO; + } + else + { + // we can't use D3DBLEND_DESTCOLOR or D3DBLEND_INVDESTCOLOR for source in alpha channel so use their alpha equivalent instead + if (srcidx == GX_BL_DSTCLR) srcidx = GX_BL_DSTALPHA; + if (srcidx == GX_BL_INVDSTCLR) srcidx = GX_BL_INVDSTALPHA; + // we can't use D3DBLEND_SRCCOLOR or D3DBLEND_INVSRCCOLOR for destination in alpha channel so use their alpha equivalent instead + if (dstidx == GX_BL_SRCCLR) dstidx = GX_BL_SRCALPHA; + if (dstidx == GX_BL_INVSRCCLR) dstidx = GX_BL_INVSRCALPHA; + } + D3D::SetRenderState(D3DRS_BLENDOPALPHA, op); + D3D::SetRenderState(D3DRS_SRCBLENDALPHA, d3dSrcFactors[srcidx]); + D3D::SetRenderState(D3DRS_DESTBLENDALPHA, d3dDestFactors[dstidx]); + } + } } bool Renderer::SaveScreenshot(const std::string &filename, const TargetRectangle &dst_rect) { - HRESULT hr = D3D::dev->GetRenderTargetData(D3D::GetBackBufferSurface(),ScreenShootMEMSurface); - if(FAILED(hr)) - { - PanicAlert("Error dumping surface data."); - return false; - } - hr = PD3DXSaveSurfaceToFileA(filename.c_str(), D3DXIFF_PNG, ScreenShootMEMSurface, NULL, dst_rect.AsRECT()); - if(FAILED(hr)) - { - PanicAlert("Error saving screen."); - return false; - } + HRESULT hr = D3D::dev->GetRenderTargetData(D3D::GetBackBufferSurface(),ScreenShootMEMSurface); + if(FAILED(hr)) + { + PanicAlert("Error dumping surface data."); + return false; + } + hr = PD3DXSaveSurfaceToFileA(filename.c_str(), D3DXIFF_PNG, ScreenShootMEMSurface, NULL, dst_rect.AsRECT()); + if(FAILED(hr)) + { + PanicAlert("Error saving screen."); + return false; + } - return true; + return true; } // This function has the final picture. We adjust the aspect ratio here. void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight,const EFBRectangle& rc,float Gamma) { - if (g_bSkipCurrentFrame || (!XFBWrited && !g_ActiveConfig.RealXFBEnabled()) || !fbWidth || !fbHeight) - { - if (g_ActiveConfig.bDumpFrames && !frame_data.empty()) - AVIDump::AddFrame(&frame_data[0], fbWidth, fbHeight); + if (g_bSkipCurrentFrame || (!XFBWrited && !g_ActiveConfig.RealXFBEnabled()) || !fbWidth || !fbHeight) + { + if (g_ActiveConfig.bDumpFrames && !frame_data.empty()) + AVIDump::AddFrame(&frame_data[0], fbWidth, fbHeight); - Core::Callback_VideoCopiedToXFB(false); - return; - } + Core::Callback_VideoCopiedToXFB(false); + return; + } - if (field == FIELD_LOWER) xfbAddr -= fbWidth * 2; - u32 xfbCount = 0; - const XFBSourceBase* const* xfbSourceList = FramebufferManager::GetXFBSource(xfbAddr, fbWidth, fbHeight, xfbCount); - if ((!xfbSourceList || xfbCount == 0) && g_ActiveConfig.bUseXFB && !g_ActiveConfig.bUseRealXFB) - { - if (g_ActiveConfig.bDumpFrames && !frame_data.empty()) - AVIDump::AddFrame(&frame_data[0], fbWidth, fbHeight); + if (field == FIELD_LOWER) xfbAddr -= fbWidth * 2; + u32 xfbCount = 0; + const XFBSourceBase* const* xfbSourceList = FramebufferManager::GetXFBSource(xfbAddr, fbWidth, fbHeight, xfbCount); + if ((!xfbSourceList || xfbCount == 0) && g_ActiveConfig.bUseXFB && !g_ActiveConfig.bUseRealXFB) + { + if (g_ActiveConfig.bDumpFrames && !frame_data.empty()) + AVIDump::AddFrame(&frame_data[0], fbWidth, fbHeight); - Core::Callback_VideoCopiedToXFB(false); - return; - } + Core::Callback_VideoCopiedToXFB(false); + return; + } - ResetAPIState(); + ResetAPIState(); - if(g_ActiveConfig.bAnaglyphStereo) - { - static bool RightFrame = false; - if(RightFrame) - { - D3D::SetRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_BLUE | D3DCOLORWRITEENABLE_GREEN); - VertexShaderManager::ResetView(); - VertexShaderManager::TranslateView(-0.001f * g_ActiveConfig.iAnaglyphStereoSeparation,0.0f); - VertexShaderManager::RotateView(-0.0001f *g_ActiveConfig.iAnaglyphFocalAngle,0.0f); - RightFrame = false; - } - else - { - D3D::SetRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_RED); - VertexShaderManager::ResetView(); - VertexShaderManager::TranslateView(0.001f *g_ActiveConfig.iAnaglyphStereoSeparation,0.0f); - VertexShaderManager::RotateView(0.0001f * g_ActiveConfig.iAnaglyphFocalAngle,0.0f); - RightFrame = true; - } - } + if(g_ActiveConfig.bAnaglyphStereo) + { + static bool RightFrame = false; + if(RightFrame) + { + D3D::SetRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_BLUE | D3DCOLORWRITEENABLE_GREEN); + VertexShaderManager::ResetView(); + VertexShaderManager::TranslateView(-0.001f * g_ActiveConfig.iAnaglyphStereoSeparation,0.0f); + VertexShaderManager::RotateView(-0.0001f *g_ActiveConfig.iAnaglyphFocalAngle,0.0f); + RightFrame = false; + } + else + { + D3D::SetRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_RED); + VertexShaderManager::ResetView(); + VertexShaderManager::TranslateView(0.001f *g_ActiveConfig.iAnaglyphStereoSeparation,0.0f); + VertexShaderManager::RotateView(0.0001f * g_ActiveConfig.iAnaglyphFocalAngle,0.0f); + RightFrame = true; + } + } - // Prepare to copy the XFBs to our backbuffer - D3D::dev->SetDepthStencilSurface(NULL); - D3D::dev->SetRenderTarget(0, D3D::GetBackBufferSurface()); - - UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); - D3DVIEWPORT9 vp; + // Prepare to copy the XFBs to our backbuffer + D3D::dev->SetDepthStencilSurface(NULL); + D3D::dev->SetRenderTarget(0, D3D::GetBackBufferSurface()); - // Clear full target screen (edges, borders etc) - if(g_ActiveConfig.bAnaglyphStereo) { - // use a clear quad to keep old red or blue/green data - vp.X = 0; - vp.Y = 0; - vp.Width = s_backbuffer_width; - vp.Height = s_backbuffer_height; - vp.MinZ = 0.0f; - vp.MaxZ = 1.0f; - D3D::dev->SetViewport(&vp); - D3D::drawClearQuad(0, 1.0, PixelShaderCache::GetClearProgram(), VertexShaderCache::GetClearVertexShader()); - } - else - { - D3D::dev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0); - } + UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); + D3DVIEWPORT9 vp; - int X = GetTargetRectangle().left; - int Y = GetTargetRectangle().top; - int Width = GetTargetRectangle().right - GetTargetRectangle().left; - int Height = GetTargetRectangle().bottom - GetTargetRectangle().top; + // Clear full target screen (edges, borders etc) + if(g_ActiveConfig.bAnaglyphStereo) { + // use a clear quad to keep old red or blue/green data + vp.X = 0; + vp.Y = 0; + vp.Width = s_backbuffer_width; + vp.Height = s_backbuffer_height; + vp.MinZ = 0.0f; + vp.MaxZ = 1.0f; + D3D::dev->SetViewport(&vp); + D3D::drawClearQuad(0, 1.0, PixelShaderCache::GetClearProgram(), VertexShaderCache::GetClearVertexShader()); + } + else + { + D3D::dev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0); + } - // Sanity check - if (X < 0) X = 0; - if (Y < 0) Y = 0; - if (X > s_backbuffer_width) X = s_backbuffer_width; - if (Y > s_backbuffer_height) Y = s_backbuffer_height; - if (Width < 0) Width = 0; - if (Height < 0) Height = 0; - if (Width > (s_backbuffer_width - X)) Width = s_backbuffer_width - X; - if (Height > (s_backbuffer_height - Y)) Height = s_backbuffer_height - Y; + int X = GetTargetRectangle().left; + int Y = GetTargetRectangle().top; + int Width = GetTargetRectangle().right - GetTargetRectangle().left; + int Height = GetTargetRectangle().bottom - GetTargetRectangle().top; - vp.X = X; - vp.Y = Y; - vp.Width = Width; - vp.Height = Height; - vp.MinZ = 0.0f; - vp.MaxZ = 1.0f; + // Sanity check + if (X < 0) X = 0; + if (Y < 0) Y = 0; + if (X > s_backbuffer_width) X = s_backbuffer_width; + if (Y > s_backbuffer_height) Y = s_backbuffer_height; + if (Width < 0) Width = 0; + if (Height < 0) Height = 0; + if (Width > (s_backbuffer_width - X)) Width = s_backbuffer_width - X; + if (Height > (s_backbuffer_height - Y)) Height = s_backbuffer_height - Y; - D3D::dev->SetViewport(&vp); + vp.X = X; + vp.Y = Y; + vp.Width = Width; + vp.Height = Height; + vp.MinZ = 0.0f; + vp.MaxZ = 1.0f; - D3D::ChangeSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR); - D3D::ChangeSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR); + D3D::dev->SetViewport(&vp); - const XFBSourceBase* xfbSource = NULL; + D3D::ChangeSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR); + D3D::ChangeSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR); - if(g_ActiveConfig.bUseXFB) - { - // draw each xfb source - // Render to the real buffer now. - for (u32 i = 0; i < xfbCount; ++i) - { - xfbSource = xfbSourceList[i]; + const XFBSourceBase* xfbSource = NULL; - MathUtil::Rectangle sourceRc; - - sourceRc.left = 0; - sourceRc.top = 0; - sourceRc.right = (float)xfbSource->texWidth; - sourceRc.bottom = (float)xfbSource->texHeight; + if(g_ActiveConfig.bUseXFB) + { + // draw each xfb source + // Render to the real buffer now. + for (u32 i = 0; i < xfbCount; ++i) + { + xfbSource = xfbSourceList[i]; - MathUtil::Rectangle drawRc; + MathUtil::Rectangle sourceRc; - if (g_ActiveConfig.bUseRealXFB) - { - drawRc.top = -1; - drawRc.bottom = 1; - drawRc.left = -1; - drawRc.right = 1; - } - else - { - // use virtual xfb with offset - int xfbHeight = xfbSource->srcHeight; - int xfbWidth = xfbSource->srcWidth; - int hOffset = ((s32)xfbSource->srcAddr - (s32)xfbAddr) / ((s32)fbWidth * 2); + sourceRc.left = 0; + sourceRc.top = 0; + sourceRc.right = (float)xfbSource->texWidth; + sourceRc.bottom = (float)xfbSource->texHeight; - drawRc.bottom = 1.0f - (2.0f * (hOffset) / (float)fbHeight); - drawRc.top = 1.0f - (2.0f * (hOffset + xfbHeight) / (float)fbHeight); - drawRc.left = -(xfbWidth / (float)fbWidth); - drawRc.right = (xfbWidth / (float)fbWidth); + MathUtil::Rectangle drawRc; - // The following code disables auto stretch. Kept for reference. - // scale draw area for a 1 to 1 pixel mapping with the draw target - //float vScale = (float)fbHeight / (float)GetTargetRectangle().GetHeight(); - //float hScale = (float)fbWidth / (float)GetTargetRectangle().GetWidth(); - //drawRc.top *= vScale; - //drawRc.bottom *= vScale; - //drawRc.left *= hScale; - //drawRc.right *= hScale; - } + if (g_ActiveConfig.bUseRealXFB) + { + drawRc.top = -1; + drawRc.bottom = 1; + drawRc.left = -1; + drawRc.right = 1; + } + else + { + // use virtual xfb with offset + int xfbHeight = xfbSource->srcHeight; + int xfbWidth = xfbSource->srcWidth; + int hOffset = ((s32)xfbSource->srcAddr - (s32)xfbAddr) / ((s32)fbWidth * 2); - xfbSource->Draw(sourceRc, drawRc, Width, Height); - } - } - else - { - TargetRectangle targetRc = ConvertEFBRectangle(rc); - LPDIRECT3DTEXTURE9 read_texture = FramebufferManager::GetEFBColorTexture(); - D3D::drawShadedTexQuad(read_texture,targetRc.AsRECT(), - Renderer::GetTargetWidth(),Renderer::GetTargetHeight(), - Width,Height, - PixelShaderCache::GetColorCopyProgram(g_ActiveConfig.iMultisampleMode), - VertexShaderCache::GetSimpleVertexShader(g_ActiveConfig.iMultisampleMode),Gamma); - - } - D3D::RefreshSamplerState(0, D3DSAMP_MINFILTER); - D3D::RefreshSamplerState(0, D3DSAMP_MAGFILTER); + drawRc.bottom = 1.0f - (2.0f * (hOffset) / (float)fbHeight); + drawRc.top = 1.0f - (2.0f * (hOffset + xfbHeight) / (float)fbHeight); + drawRc.left = -(xfbWidth / (float)fbWidth); + drawRc.right = (xfbWidth / (float)fbWidth); - if(g_ActiveConfig.bAnaglyphStereo) - { - DWORD color_mask = D3DCOLORWRITEENABLE_ALPHA | D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_BLUE; - D3D::SetRenderState(D3DRS_COLORWRITEENABLE, color_mask); - } + // The following code disables auto stretch. Kept for reference. + // scale draw area for a 1 to 1 pixel mapping with the draw target + //float vScale = (float)fbHeight / (float)GetTargetRectangle().GetHeight(); + //float hScale = (float)fbWidth / (float)GetTargetRectangle().GetWidth(); + //drawRc.top *= vScale; + //drawRc.bottom *= vScale; + //drawRc.left *= hScale; + //drawRc.right *= hScale; + } - vp.X = 0; - vp.Y = 0; - vp.Width = s_backbuffer_width; - vp.Height = s_backbuffer_height; - vp.MinZ = 0.0f; - vp.MaxZ = 1.0f; - D3D::dev->SetViewport(&vp); + xfbSource->Draw(sourceRc, drawRc, Width, Height); + } + } + else + { + TargetRectangle targetRc = ConvertEFBRectangle(rc); + LPDIRECT3DTEXTURE9 read_texture = FramebufferManager::GetEFBColorTexture(); + D3D::drawShadedTexQuad(read_texture,targetRc.AsRECT(), + Renderer::GetTargetWidth(),Renderer::GetTargetHeight(), + Width,Height, + PixelShaderCache::GetColorCopyProgram(g_ActiveConfig.iMultisampleMode), + VertexShaderCache::GetSimpleVertexShader(g_ActiveConfig.iMultisampleMode),Gamma); - // Save screenshot - if (s_bScreenshot) - { - std::lock_guard lk(s_criticalScreenshot); - SaveScreenshot(s_sScreenshotName, GetTargetRectangle()); - s_bScreenshot = false; - } + } + D3D::RefreshSamplerState(0, D3DSAMP_MINFILTER); + D3D::RefreshSamplerState(0, D3DSAMP_MAGFILTER); - // Dump frames - static int w = 0, h = 0; - if (g_ActiveConfig.bDumpFrames) - { - static int s_recordWidth; - static int s_recordHeight; + if(g_ActiveConfig.bAnaglyphStereo) + { + DWORD color_mask = D3DCOLORWRITEENABLE_ALPHA | D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_BLUE; + D3D::SetRenderState(D3DRS_COLORWRITEENABLE, color_mask); + } - HRESULT hr = D3D::dev->GetRenderTargetData(D3D::GetBackBufferSurface(),ScreenShootMEMSurface); - if (!bLastFrameDumped) - { - s_recordWidth = GetTargetRectangle().GetWidth(); - s_recordHeight = GetTargetRectangle().GetHeight(); - bAVIDumping = AVIDump::Start(EmuWindow::GetParentWnd(), s_recordWidth, s_recordHeight); - if (!bAVIDumping) - { - PanicAlert("Error dumping frames to AVI."); - } - else - { - char msg [255]; - sprintf_s(msg,255, "Dumping Frames to \"%sframedump0.avi\" (%dx%d RGB24)", - File::GetUserPath(D_DUMPFRAMES_IDX).c_str(), s_recordWidth, s_recordHeight); - OSD::AddMessage(msg, 2000); - } - } - if (bAVIDumping) - { - D3DLOCKED_RECT rect; - if (SUCCEEDED(ScreenShootMEMSurface->LockRect(&rect, GetTargetRectangle().AsRECT(), D3DLOCK_NO_DIRTY_UPDATE | D3DLOCK_NOSYSLOCK | D3DLOCK_READONLY))) - { - if (frame_data.empty() || w != s_recordWidth || h != s_recordHeight) - { - frame_data.resize(3 * s_recordWidth * s_recordHeight); - w = s_recordWidth; - h = s_recordHeight; - } - formatBufferDump((const u8*)rect.pBits, &frame_data[0], s_recordWidth, s_recordHeight, rect.Pitch); - AVIDump::AddFrame(&frame_data[0], fbWidth, fbHeight); - ScreenShootMEMSurface->UnlockRect(); - } - } - bLastFrameDumped = true; - } - else - { - if (bLastFrameDumped && bAVIDumping) - { - std::vector().swap(frame_data); - w = h = 0; - AVIDump::Stop(); - bAVIDumping = false; - OSD::AddMessage("Stop dumping frames to AVI", 2000); - } - bLastFrameDumped = false; - } + vp.X = 0; + vp.Y = 0; + vp.Width = s_backbuffer_width; + vp.Height = s_backbuffer_height; + vp.MinZ = 0.0f; + vp.MaxZ = 1.0f; + D3D::dev->SetViewport(&vp); - // Finish up the current frame, print some stats - if (g_ActiveConfig.bShowFPS) - { - char fps[20]; - StringCchPrintfA(fps, 20, "FPS: %d\n", s_fps); - D3D::font.DrawTextScaled(0, 0, 20, 20, 0.0f, 0xFF00FFFF, fps); - } + // Save screenshot + if (s_bScreenshot) + { + std::lock_guard lk(s_criticalScreenshot); + SaveScreenshot(s_sScreenshotName, GetTargetRectangle()); + s_bScreenshot = false; + } - if (SConfig::GetInstance().m_ShowLag) - { - char lag[10]; - StringCchPrintfA(lag, 10, "Lag: %llu\n", Movie::g_currentLagCount); - D3D::font.DrawTextScaled(0, 18, 20, 20, 0.0f, 0xFF00FFFF, lag); - } + // Dump frames + static int w = 0, h = 0; + if (g_ActiveConfig.bDumpFrames) + { + static int s_recordWidth; + static int s_recordHeight; - if (g_ActiveConfig.bShowInputDisplay) - { - char inputDisplay[1000]; - StringCchPrintfA(inputDisplay, 1000, Movie::GetInputDisplay().c_str()); - D3D::font.DrawTextScaled(0, 36, 20, 20, 0.0f, 0xFF00FFFF, inputDisplay); - } + HRESULT hr = D3D::dev->GetRenderTargetData(D3D::GetBackBufferSurface(),ScreenShootMEMSurface); + if (!bLastFrameDumped) + { + s_recordWidth = GetTargetRectangle().GetWidth(); + s_recordHeight = GetTargetRectangle().GetHeight(); + bAVIDumping = AVIDump::Start(EmuWindow::GetParentWnd(), s_recordWidth, s_recordHeight); + if (!bAVIDumping) + { + PanicAlert("Error dumping frames to AVI."); + } + else + { + char msg [255]; + sprintf_s(msg,255, "Dumping Frames to \"%sframedump0.avi\" (%dx%d RGB24)", + File::GetUserPath(D_DUMPFRAMES_IDX).c_str(), s_recordWidth, s_recordHeight); + OSD::AddMessage(msg, 2000); + } + } + if (bAVIDumping) + { + D3DLOCKED_RECT rect; + if (SUCCEEDED(ScreenShootMEMSurface->LockRect(&rect, GetTargetRectangle().AsRECT(), D3DLOCK_NO_DIRTY_UPDATE | D3DLOCK_NOSYSLOCK | D3DLOCK_READONLY))) + { + if (frame_data.empty() || w != s_recordWidth || h != s_recordHeight) + { + frame_data.resize(3 * s_recordWidth * s_recordHeight); + w = s_recordWidth; + h = s_recordHeight; + } + formatBufferDump((const u8*)rect.pBits, &frame_data[0], s_recordWidth, s_recordHeight, rect.Pitch); + AVIDump::AddFrame(&frame_data[0], fbWidth, fbHeight); + ScreenShootMEMSurface->UnlockRect(); + } + } + bLastFrameDumped = true; + } + else + { + if (bLastFrameDumped && bAVIDumping) + { + std::vector().swap(frame_data); + w = h = 0; + AVIDump::Stop(); + bAVIDumping = false; + OSD::AddMessage("Stop dumping frames to AVI", 2000); + } + bLastFrameDumped = false; + } - Renderer::DrawDebugText(); + // Finish up the current frame, print some stats + if (g_ActiveConfig.bShowFPS) + { + char fps[20]; + StringCchPrintfA(fps, 20, "FPS: %d\n", s_fps); + D3D::font.DrawTextScaled(0, 0, 20, 20, 0.0f, 0xFF00FFFF, fps); + } - if (g_ActiveConfig.bOverlayStats) - { - Statistics::ToString(st); - D3D::font.DrawTextScaled(0, 36, 20, 20, 0.0f, 0xFF00FFFF, st); - } - else if (g_ActiveConfig.bOverlayProjStats) - { - Statistics::ToStringProj(st); - D3D::font.DrawTextScaled(0, 36, 20, 20, 0.0f, 0xFF00FFFF, st); - } + if (SConfig::GetInstance().m_ShowLag) + { + char lag[10]; + StringCchPrintfA(lag, 10, "Lag: %llu\n", Movie::g_currentLagCount); + D3D::font.DrawTextScaled(0, 18, 20, 20, 0.0f, 0xFF00FFFF, lag); + } - OSD::DrawMessages(); - D3D::EndFrame(); - ++frameCount; + if (g_ActiveConfig.bShowInputDisplay) + { + char inputDisplay[1000]; + StringCchPrintfA(inputDisplay, 1000, Movie::GetInputDisplay().c_str()); + D3D::font.DrawTextScaled(0, 36, 20, 20, 0.0f, 0xFF00FFFF, inputDisplay); + } - GFX_DEBUGGER_PAUSE_AT(NEXT_FRAME, true); + Renderer::DrawDebugText(); - DLCache::ProgressiveCleanup(); - TextureCache::Cleanup(); - // Flip/present backbuffer to frontbuffer here - D3D::Present(); - // Enable configuration changes - UpdateActiveConfig(); - TextureCache::OnConfigChanged(g_ActiveConfig); + if (g_ActiveConfig.bOverlayStats) + { + Statistics::ToString(st); + D3D::font.DrawTextScaled(0, 36, 20, 20, 0.0f, 0xFF00FFFF, st); + } + else if (g_ActiveConfig.bOverlayProjStats) + { + Statistics::ToStringProj(st); + D3D::font.DrawTextScaled(0, 36, 20, 20, 0.0f, 0xFF00FFFF, st); + } - SetWindowSize(fbWidth, fbHeight); + OSD::DrawMessages(); + D3D::EndFrame(); + ++frameCount; - const bool windowResized = CheckForResize(); + GFX_DEBUGGER_PAUSE_AT(NEXT_FRAME, true); - bool xfbchanged = false; + DLCache::ProgressiveCleanup(); + TextureCache::Cleanup(); + // Flip/present backbuffer to frontbuffer here + D3D::Present(); + // Enable configuration changes + UpdateActiveConfig(); + TextureCache::OnConfigChanged(g_ActiveConfig); - if (FramebufferManagerBase::LastXfbWidth() != fbWidth || FramebufferManagerBase::LastXfbHeight() != fbHeight) - { - xfbchanged = true; - unsigned int w = (fbWidth < 1 || fbWidth > MAX_XFB_WIDTH) ? MAX_XFB_WIDTH : fbWidth; - unsigned int h = (fbHeight < 1 || fbHeight > MAX_XFB_HEIGHT) ? MAX_XFB_HEIGHT : fbHeight; - FramebufferManagerBase::SetLastXfbWidth(w); - FramebufferManagerBase::SetLastXfbHeight(h); - } + SetWindowSize(fbWidth, fbHeight); - u32 newAA = g_ActiveConfig.iMultisampleMode; + const bool windowResized = CheckForResize(); - if (xfbchanged || windowResized || s_LastEFBScale != g_ActiveConfig.iEFBScale || s_LastAA != newAA) - { - s_LastAA = newAA; + bool xfbchanged = false; - UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); - - int SupersampleCoeficient = (s_LastAA % 3) + 1; + if (FramebufferManagerBase::LastXfbWidth() != fbWidth || FramebufferManagerBase::LastXfbHeight() != fbHeight) + { + xfbchanged = true; + unsigned int w = (fbWidth < 1 || fbWidth > MAX_XFB_WIDTH) ? MAX_XFB_WIDTH : fbWidth; + unsigned int h = (fbHeight < 1 || fbHeight > MAX_XFB_HEIGHT) ? MAX_XFB_HEIGHT : fbHeight; + FramebufferManagerBase::SetLastXfbWidth(w); + FramebufferManagerBase::SetLastXfbHeight(h); + } - s_LastEFBScale = g_ActiveConfig.iEFBScale; - CalculateTargetSize(s_backbuffer_width, s_backbuffer_height, SupersampleCoeficient); + u32 newAA = g_ActiveConfig.iMultisampleMode; - D3D::dev->SetRenderTarget(0, D3D::GetBackBufferSurface()); - D3D::dev->SetDepthStencilSurface(D3D::GetBackBufferDepthSurface()); - if (windowResized) - { - // device objects lost, so recreate all of them - SetupDeviceObjects(); - } - else - { - // just resize the frame buffer - delete g_framebuffer_manager; - g_framebuffer_manager = new FramebufferManager; - } - D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorRTSurface()); - D3D::dev->SetDepthStencilSurface(FramebufferManager::GetEFBDepthRTSurface()); - D3D::dev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1.0f, 0); - } + if (xfbchanged || windowResized || s_LastEFBScale != g_ActiveConfig.iEFBScale || s_LastAA != newAA) + { + s_LastAA = newAA; - if (XFBWrited) - s_fps = UpdateFPSCounter(); + UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); - // Begin new frame - // Set default viewport and scissor, for the clear to work correctly - // New frame - stats.ResetFrame(); + int SupersampleCoeficient = (s_LastAA % 3) + 1; - // Handle vsync changes during execution - if(s_vsync != g_ActiveConfig.IsVSync()) - { - s_vsync = g_ActiveConfig.IsVSync(); - TeardownDeviceObjects(); - D3D::Reset(); - // device objects lost, so recreate all of them - SetupDeviceObjects(); - } - D3D::BeginFrame(); - RestoreAPIState(); + s_LastEFBScale = g_ActiveConfig.iEFBScale; + CalculateTargetSize(s_backbuffer_width, s_backbuffer_height, SupersampleCoeficient); - D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorRTSurface()); - D3D::dev->SetDepthStencilSurface(FramebufferManager::GetEFBDepthRTSurface()); - VertexShaderManager::SetViewportChanged(); + D3D::dev->SetRenderTarget(0, D3D::GetBackBufferSurface()); + D3D::dev->SetDepthStencilSurface(D3D::GetBackBufferDepthSurface()); + if (windowResized) + { + // device objects lost, so recreate all of them + SetupDeviceObjects(); + } + else + { + // just resize the frame buffer + delete g_framebuffer_manager; + g_framebuffer_manager = new FramebufferManager; + } + D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorRTSurface()); + D3D::dev->SetDepthStencilSurface(FramebufferManager::GetEFBDepthRTSurface()); + D3D::dev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1.0f, 0); + SetLineWidth(); + } - Core::Callback_VideoCopiedToXFB(XFBWrited || (g_ActiveConfig.bUseXFB && g_ActiveConfig.bUseRealXFB)); - XFBWrited = false; + if (XFBWrited) + s_fps = UpdateFPSCounter(); + + // Begin new frame + // Set default viewport and scissor, for the clear to work correctly + // New frame + stats.ResetFrame(); + + // Handle vsync changes during execution + if(s_vsync != g_ActiveConfig.IsVSync()) + { + s_vsync = g_ActiveConfig.IsVSync(); + TeardownDeviceObjects(); + D3D::Reset(); + // device objects lost, so recreate all of them + SetupDeviceObjects(); + } + D3D::BeginFrame(); + RestoreAPIState(); + + D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorRTSurface()); + D3D::dev->SetDepthStencilSurface(FramebufferManager::GetEFBDepthRTSurface()); + VertexShaderManager::SetViewportChanged(); + + Core::Callback_VideoCopiedToXFB(XFBWrited || (g_ActiveConfig.bUseXFB && g_ActiveConfig.bUseRealXFB)); + XFBWrited = false; } void Renderer::ApplyState(bool bUseDstAlpha) { - if (bUseDstAlpha) - { - // If we get here we are sure that we are using dst alpha pass. (bpmem.dstalpha.enable) - // Alpha write is enabled. (because bpmem.blendmode.alphaupdate && bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24) - // We must disable blend because we want to write alpha value directly to the alpha channel without modifications. - D3D::ChangeRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_ALPHA); - D3D::ChangeRenderState(D3DRS_ALPHABLENDENABLE, false); - if(bpmem.zmode.testenable && bpmem.zmode.updateenable) - { - // This is needed to draw to the correct pixels in multi-pass algorithms - // to avoid z-fighting and grants that you write to the same pixels - // affected by the last pass - D3D::ChangeRenderState(D3DRS_ZWRITEENABLE, false); - D3D::ChangeRenderState(D3DRS_ZFUNC, D3DCMP_EQUAL); - } - } + if (bUseDstAlpha) + { + // If we get here we are sure that we are using dst alpha pass. (bpmem.dstalpha.enable) + // Alpha write is enabled. (because bpmem.blendmode.alphaupdate && bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24) + // We must disable blend because we want to write alpha value directly to the alpha channel without modifications. + D3D::ChangeRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_ALPHA); + D3D::ChangeRenderState(D3DRS_ALPHABLENDENABLE, false); + if(bpmem.zmode.testenable && bpmem.zmode.updateenable) + { + // This is needed to draw to the correct pixels in multi-pass algorithms + // to avoid z-fighting and grants that you write to the same pixels + // affected by the last pass + D3D::ChangeRenderState(D3DRS_ZWRITEENABLE, false); + D3D::ChangeRenderState(D3DRS_ZFUNC, D3DCMP_EQUAL); + } + } } void Renderer::RestoreState() { - D3D::RefreshRenderState(D3DRS_COLORWRITEENABLE); - D3D::RefreshRenderState(D3DRS_ALPHABLENDENABLE); - if(bpmem.zmode.testenable && bpmem.zmode.updateenable) - { - D3D::RefreshRenderState(D3DRS_ZWRITEENABLE); - D3D::RefreshRenderState(D3DRS_ZFUNC); - } - // TODO: Enable this code. Caused glitches for me however (neobrain) -// for (unsigned int i = 0; i < 8; ++i) -// D3D::dev->SetTexture(i, NULL); + D3D::RefreshRenderState(D3DRS_COLORWRITEENABLE); + D3D::RefreshRenderState(D3DRS_ALPHABLENDENABLE); + if(bpmem.zmode.testenable && bpmem.zmode.updateenable) + { + D3D::RefreshRenderState(D3DRS_ZWRITEENABLE); + D3D::RefreshRenderState(D3DRS_ZFUNC); + } + // TODO: Enable this code. Caused glitches for me however (neobrain) + // for (unsigned int i = 0; i < 8; ++i) + // D3D::dev->SetTexture(i, NULL); } // ALWAYS call RestoreAPIState for each ResetAPIState call you're doing void Renderer::ResetAPIState() { - D3D::SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID); - D3D::SetRenderState(D3DRS_SCISSORTESTENABLE, FALSE); - D3D::SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); - D3D::SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE); - D3D::SetRenderState(D3DRS_ZENABLE, FALSE); - D3D::SetRenderState(D3DRS_ZWRITEENABLE, FALSE); - DWORD color_mask = D3DCOLORWRITEENABLE_ALPHA | D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_BLUE; - D3D::SetRenderState(D3DRS_COLORWRITEENABLE, color_mask); + D3D::SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID); + D3D::SetRenderState(D3DRS_SCISSORTESTENABLE, FALSE); + D3D::SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); + D3D::SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE); + D3D::SetRenderState(D3DRS_ZENABLE, FALSE); + D3D::SetRenderState(D3DRS_ZWRITEENABLE, FALSE); + DWORD color_mask = D3DCOLORWRITEENABLE_ALPHA | D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_BLUE; + D3D::SetRenderState(D3DRS_COLORWRITEENABLE, color_mask); } void Renderer::RestoreAPIState() { - // Gets us back into a more game-like state. - D3D::SetRenderState(D3DRS_FILLMODE, g_ActiveConfig.bWireFrame ? D3DFILL_WIREFRAME : D3DFILL_SOLID); - D3D::SetRenderState(D3DRS_SCISSORTESTENABLE, TRUE); - VertexShaderManager::SetViewportChanged(); - BPFunctions::SetScissor(); - if (bpmem.zmode.testenable) { - D3D::SetRenderState(D3DRS_ZENABLE, TRUE); - if (bpmem.zmode.updateenable) - D3D::SetRenderState(D3DRS_ZWRITEENABLE, TRUE); - } - SetColorMask(); - SetLogicOpMode(); - SetGenerationMode(); + // Gets us back into a more game-like state. + D3D::SetRenderState(D3DRS_FILLMODE, g_ActiveConfig.bWireFrame ? D3DFILL_WIREFRAME : D3DFILL_SOLID); + D3D::SetRenderState(D3DRS_SCISSORTESTENABLE, TRUE); + VertexShaderManager::SetViewportChanged(); + BPFunctions::SetScissor(); + if (bpmem.zmode.testenable) { + D3D::SetRenderState(D3DRS_ZENABLE, TRUE); + if (bpmem.zmode.updateenable) + D3D::SetRenderState(D3DRS_ZWRITEENABLE, TRUE); + } + SetColorMask(); + SetLogicOpMode(); + SetGenerationMode(); } void Renderer::SetGenerationMode() { - const D3DCULL d3dCullModes[4] = - { - D3DCULL_NONE, - D3DCULL_CCW, - D3DCULL_CW, - D3DCULL_CCW - }; + const D3DCULL d3dCullModes[4] = + { + D3DCULL_NONE, + D3DCULL_CCW, + D3DCULL_CW, + D3DCULL_CCW + }; - D3D::SetRenderState(D3DRS_CULLMODE, d3dCullModes[bpmem.genMode.cullmode]); + D3D::SetRenderState(D3DRS_CULLMODE, d3dCullModes[bpmem.genMode.cullmode]); } void Renderer::SetDepthMode() { - const D3DCMPFUNC d3dCmpFuncs[8] = - { - D3DCMP_NEVER, - D3DCMP_LESS, - D3DCMP_EQUAL, - D3DCMP_LESSEQUAL, - D3DCMP_GREATER, - D3DCMP_NOTEQUAL, - D3DCMP_GREATEREQUAL, - D3DCMP_ALWAYS - }; + const D3DCMPFUNC d3dCmpFuncs[8] = + { + D3DCMP_NEVER, + D3DCMP_LESS, + D3DCMP_EQUAL, + D3DCMP_LESSEQUAL, + D3DCMP_GREATER, + D3DCMP_NOTEQUAL, + D3DCMP_GREATEREQUAL, + D3DCMP_ALWAYS + }; - if (bpmem.zmode.testenable) - { - D3D::SetRenderState(D3DRS_ZENABLE, TRUE); - D3D::SetRenderState(D3DRS_ZWRITEENABLE, bpmem.zmode.updateenable); - D3D::SetRenderState(D3DRS_ZFUNC, d3dCmpFuncs[bpmem.zmode.func]); - } - else - { - // if the test is disabled write is disabled too - D3D::SetRenderState(D3DRS_ZENABLE, FALSE); - D3D::SetRenderState(D3DRS_ZWRITEENABLE, FALSE); - } + if (bpmem.zmode.testenable) + { + D3D::SetRenderState(D3DRS_ZENABLE, TRUE); + D3D::SetRenderState(D3DRS_ZWRITEENABLE, bpmem.zmode.updateenable); + D3D::SetRenderState(D3DRS_ZFUNC, d3dCmpFuncs[bpmem.zmode.func]); + } + else + { + // if the test is disabled write is disabled too + D3D::SetRenderState(D3DRS_ZENABLE, FALSE); + D3D::SetRenderState(D3DRS_ZWRITEENABLE, FALSE); + } } void Renderer::SetLogicOpMode() { - // D3D9 doesn't support logic blending, so this is a huge hack + // D3D9 doesn't support logic blending, so this is a huge hack - // 0 0x00 - // 1 Source & destination - // 2 Source & ~destination - // 3 Source - // 4 ~Source & destination - // 5 Destination - // 6 Source ^ destination = Source & ~destination | ~Source & destination - // 7 Source | destination - // 8 ~(Source | destination) - // 9 ~(Source ^ destination) = ~Source & ~destination | Source & destination - // 10 ~Destination - // 11 Source | ~destination - // 12 ~Source - // 13 ~Source | destination - // 14 ~(Source & destination) - // 15 0xff - const D3DBLENDOP d3dLogicOpop[16] = - { - D3DBLENDOP_ADD, - D3DBLENDOP_ADD, - D3DBLENDOP_SUBTRACT, - D3DBLENDOP_ADD, - D3DBLENDOP_REVSUBTRACT, - D3DBLENDOP_ADD, - D3DBLENDOP_MAX, - D3DBLENDOP_ADD, - D3DBLENDOP_MAX, - D3DBLENDOP_MAX, - D3DBLENDOP_ADD, - D3DBLENDOP_ADD, - D3DBLENDOP_ADD, - D3DBLENDOP_ADD, - D3DBLENDOP_ADD, - D3DBLENDOP_ADD - }; - const D3DBLEND d3dLogicOpSrcFactors[16] = - { - D3DBLEND_ZERO, - D3DBLEND_DESTCOLOR, - D3DBLEND_ONE, - D3DBLEND_ONE, - D3DBLEND_DESTCOLOR, - D3DBLEND_ZERO, - D3DBLEND_INVDESTCOLOR, - D3DBLEND_INVDESTCOLOR, - D3DBLEND_INVSRCCOLOR, - D3DBLEND_INVSRCCOLOR, - D3DBLEND_INVDESTCOLOR, - D3DBLEND_ONE, - D3DBLEND_INVSRCCOLOR, - D3DBLEND_INVSRCCOLOR, - D3DBLEND_INVDESTCOLOR, - D3DBLEND_ONE - }; - const D3DBLEND d3dLogicOpDestFactors[16] = - { - D3DBLEND_ZERO, - D3DBLEND_ZERO, - D3DBLEND_INVSRCCOLOR, - D3DBLEND_ZERO, - D3DBLEND_ONE, - D3DBLEND_ONE, - D3DBLEND_INVSRCCOLOR, - D3DBLEND_ONE, - D3DBLEND_INVDESTCOLOR, - D3DBLEND_SRCCOLOR, - D3DBLEND_INVDESTCOLOR, - D3DBLEND_INVDESTCOLOR, - D3DBLEND_INVSRCCOLOR, - D3DBLEND_ONE, - D3DBLEND_INVSRCCOLOR, - D3DBLEND_ONE - }; + // 0 0x00 + // 1 Source & destination + // 2 Source & ~destination + // 3 Source + // 4 ~Source & destination + // 5 Destination + // 6 Source ^ destination = Source & ~destination | ~Source & destination + // 7 Source | destination + // 8 ~(Source | destination) + // 9 ~(Source ^ destination) = ~Source & ~destination | Source & destination + // 10 ~Destination + // 11 Source | ~destination + // 12 ~Source + // 13 ~Source | destination + // 14 ~(Source & destination) + // 15 0xff + const D3DBLENDOP d3dLogicOpop[16] = + { + D3DBLENDOP_ADD, + D3DBLENDOP_ADD, + D3DBLENDOP_SUBTRACT, + D3DBLENDOP_ADD, + D3DBLENDOP_REVSUBTRACT, + D3DBLENDOP_ADD, + D3DBLENDOP_MAX, + D3DBLENDOP_ADD, + D3DBLENDOP_MAX, + D3DBLENDOP_MAX, + D3DBLENDOP_ADD, + D3DBLENDOP_ADD, + D3DBLENDOP_ADD, + D3DBLENDOP_ADD, + D3DBLENDOP_ADD, + D3DBLENDOP_ADD + }; + const D3DBLEND d3dLogicOpSrcFactors[16] = + { + D3DBLEND_ZERO, + D3DBLEND_DESTCOLOR, + D3DBLEND_ONE, + D3DBLEND_ONE, + D3DBLEND_DESTCOLOR, + D3DBLEND_ZERO, + D3DBLEND_INVDESTCOLOR, + D3DBLEND_INVDESTCOLOR, + D3DBLEND_INVSRCCOLOR, + D3DBLEND_INVSRCCOLOR, + D3DBLEND_INVDESTCOLOR, + D3DBLEND_ONE, + D3DBLEND_INVSRCCOLOR, + D3DBLEND_INVSRCCOLOR, + D3DBLEND_INVDESTCOLOR, + D3DBLEND_ONE + }; + const D3DBLEND d3dLogicOpDestFactors[16] = + { + D3DBLEND_ZERO, + D3DBLEND_ZERO, + D3DBLEND_INVSRCCOLOR, + D3DBLEND_ZERO, + D3DBLEND_ONE, + D3DBLEND_ONE, + D3DBLEND_INVSRCCOLOR, + D3DBLEND_ONE, + D3DBLEND_INVDESTCOLOR, + D3DBLEND_SRCCOLOR, + D3DBLEND_INVDESTCOLOR, + D3DBLEND_INVDESTCOLOR, + D3DBLEND_INVSRCCOLOR, + D3DBLEND_ONE, + D3DBLEND_INVSRCCOLOR, + D3DBLEND_ONE + }; - if (bpmem.blendmode.logicopenable) - { - D3D::SetRenderState(D3DRS_ALPHABLENDENABLE, true); - D3D::SetRenderState(D3DRS_BLENDOP, d3dLogicOpop[bpmem.blendmode.logicmode]); - D3D::SetRenderState(D3DRS_SRCBLEND, d3dLogicOpSrcFactors[bpmem.blendmode.logicmode]); - D3D::SetRenderState(D3DRS_DESTBLEND, d3dLogicOpDestFactors[bpmem.blendmode.logicmode]); - } - else - { - SetBlendMode(true); - } + if (bpmem.blendmode.logicopenable) + { + D3D::SetRenderState(D3DRS_ALPHABLENDENABLE, true); + D3D::SetRenderState(D3DRS_BLENDOP, d3dLogicOpop[bpmem.blendmode.logicmode]); + D3D::SetRenderState(D3DRS_SRCBLEND, d3dLogicOpSrcFactors[bpmem.blendmode.logicmode]); + D3D::SetRenderState(D3DRS_DESTBLEND, d3dLogicOpDestFactors[bpmem.blendmode.logicmode]); + } + else + { + SetBlendMode(true); + } } void Renderer::SetDitherMode() { - D3D::SetRenderState(D3DRS_DITHERENABLE, bpmem.blendmode.dither); + D3D::SetRenderState(D3DRS_DITHERENABLE, bpmem.blendmode.dither); } void Renderer::SetLineWidth() { - // We can't change line width in D3D unless we use ID3DXLine - float fratio = xfregs.viewport.wd != 0 ? Renderer::EFBToScaledXf(1.f) : 1.0f; - float psize = bpmem.lineptwidth.linesize * fratio / 6.0f; - //little hack to compensate scaling problems in dx9 must be taken out when scaling is fixed. - psize *= 2.0f; - if (psize > m_fMaxPointSize) - { - psize = m_fMaxPointSize; - } - D3D::SetRenderState(D3DRS_POINTSIZE, *((DWORD*)&psize)); - D3D::SetRenderState(D3DRS_POINTSIZE_MIN, *((DWORD*)&psize)); - D3D::SetRenderState(D3DRS_POINTSIZE_MAX, *((DWORD*)&psize)); + // We can't change line width in D3D unless we use ID3DXLine + float fratio = xfregs.viewport.wd != 0 ? Renderer::EFBToScaledXf(1.f) : 1.0f; + float psize = bpmem.lineptwidth.pointsize * fratio / 6.0f; + psize = psize > 0 ? psize : 1.0; + if (psize > m_fMaxPointSize) + { + psize = m_fMaxPointSize; + } + D3D::SetRenderState(D3DRS_POINTSIZE, *((DWORD*)&psize)); + D3D::SetRenderState(D3DRS_POINTSIZE_MIN, *((DWORD*)&psize)); + D3D::SetRenderState(D3DRS_POINTSIZE_MAX, *((DWORD*)&psize)); } void Renderer::SetSamplerState(int stage, int texindex) { - const D3DTEXTUREFILTERTYPE d3dMipFilters[4] = - { - D3DTEXF_NONE, - D3DTEXF_POINT, - D3DTEXF_LINEAR, - D3DTEXF_NONE, //reserved - }; - const D3DTEXTUREADDRESS d3dClamps[4] = - { - D3DTADDRESS_CLAMP, - D3DTADDRESS_WRAP, - D3DTADDRESS_MIRROR, - D3DTADDRESS_WRAP //reserved - }; + const D3DTEXTUREFILTERTYPE d3dMipFilters[4] = + { + D3DTEXF_NONE, + D3DTEXF_POINT, + D3DTEXF_LINEAR, + D3DTEXF_NONE, //reserved + }; + const D3DTEXTUREADDRESS d3dClamps[4] = + { + D3DTADDRESS_CLAMP, + D3DTADDRESS_WRAP, + D3DTADDRESS_MIRROR, + D3DTADDRESS_WRAP //reserved + }; - const FourTexUnits &tex = bpmem.tex[texindex]; - const TexMode0 &tm0 = tex.texMode0[stage]; - const TexMode1 &tm1 = tex.texMode1[stage]; - - D3DTEXTUREFILTERTYPE min, mag, mip; - if (g_ActiveConfig.bForceFiltering) - { - min = mag = mip = D3DTEXF_LINEAR; - } - else - { - min = (tm0.min_filter & 4) ? D3DTEXF_LINEAR : D3DTEXF_POINT; - mag = tm0.mag_filter ? D3DTEXF_LINEAR : D3DTEXF_POINT; - mip = d3dMipFilters[tm0.min_filter & 3]; - } - if (texindex) - stage += 4; + const FourTexUnits &tex = bpmem.tex[texindex]; + const TexMode0 &tm0 = tex.texMode0[stage]; + const TexMode1 &tm1 = tex.texMode1[stage]; - if (mag == D3DTEXF_LINEAR && min == D3DTEXF_LINEAR && g_ActiveConfig.iMaxAnisotropy) - { - min = D3DTEXF_ANISOTROPIC; - } - D3D::SetSamplerState(stage, D3DSAMP_MINFILTER, min); - D3D::SetSamplerState(stage, D3DSAMP_MAGFILTER, mag); - D3D::SetSamplerState(stage, D3DSAMP_MIPFILTER, mip); - - D3D::SetSamplerState(stage, D3DSAMP_ADDRESSU, d3dClamps[tm0.wrap_s]); - D3D::SetSamplerState(stage, D3DSAMP_ADDRESSV, d3dClamps[tm0.wrap_t]); + D3DTEXTUREFILTERTYPE min, mag, mip; + if (g_ActiveConfig.bForceFiltering) + { + min = mag = mip = D3DTEXF_LINEAR; + } + else + { + min = (tm0.min_filter & 4) ? D3DTEXF_LINEAR : D3DTEXF_POINT; + mag = tm0.mag_filter ? D3DTEXF_LINEAR : D3DTEXF_POINT; + mip = d3dMipFilters[tm0.min_filter & 3]; + } + if (texindex) + stage += 4; - float lodbias = (s32)tm0.lod_bias / 32.0f; - D3D::SetSamplerState(stage, D3DSAMP_MIPMAPLODBIAS, *(DWORD*)&lodbias); - D3D::SetSamplerState(stage, D3DSAMP_MAXMIPLEVEL, tm1.min_lod >> 4); + if (mag == D3DTEXF_LINEAR && min == D3DTEXF_LINEAR && g_ActiveConfig.iMaxAnisotropy) + { + min = D3DTEXF_ANISOTROPIC; + } + D3D::SetSamplerState(stage, D3DSAMP_MINFILTER, min); + D3D::SetSamplerState(stage, D3DSAMP_MAGFILTER, mag); + D3D::SetSamplerState(stage, D3DSAMP_MIPFILTER, mip); + + D3D::SetSamplerState(stage, D3DSAMP_ADDRESSU, d3dClamps[tm0.wrap_s]); + D3D::SetSamplerState(stage, D3DSAMP_ADDRESSV, d3dClamps[tm0.wrap_t]); + + float lodbias = (s32)tm0.lod_bias / 32.0f; + D3D::SetSamplerState(stage, D3DSAMP_MIPMAPLODBIAS, *(DWORD*)&lodbias); + D3D::SetSamplerState(stage, D3DSAMP_MAXMIPLEVEL, tm1.min_lod >> 4); } void Renderer::SetInterlacingMode() { - // TODO + // TODO } } // namespace DX9 diff --git a/Source/Plugins/Plugin_VideoDX9/Src/VertexManager.cpp b/Source/Plugins/Plugin_VideoDX9/Src/VertexManager.cpp index adb4ddf580..12f3b88576 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/VertexManager.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/VertexManager.cpp @@ -36,375 +36,383 @@ const u32 MAX_VBUFFER_COUNT = 2; inline void DumpBadShaders() { #if defined(_DEBUG) || defined(DEBUGFAST) - // TODO: Reimplement! -/* std::string error_shaders; - error_shaders.append(VertexShaderCache::GetCurrentShaderCode()); - error_shaders.append(PixelShaderCache::GetCurrentShaderCode()); - char filename[512] = "bad_shader_combo_0.txt"; - int which = 0; - while (File::Exists(filename)) - { - which++; - sprintf(filename, "bad_shader_combo_%i.txt", which); - } - File::WriteStringToFile(true, error_shaders, filename); - PanicAlert("DrawIndexedPrimitiveUP failed. Shaders written to %s", filename);*/ + // TODO: Reimplement! + /* std::string error_shaders; + error_shaders.append(VertexShaderCache::GetCurrentShaderCode()); + error_shaders.append(PixelShaderCache::GetCurrentShaderCode()); + char filename[512] = "bad_shader_combo_0.txt"; + int which = 0; + while (File::Exists(filename)) + { + which++; + sprintf(filename, "bad_shader_combo_%i.txt", which); + } + File::WriteStringToFile(true, error_shaders, filename); + PanicAlert("DrawIndexedPrimitiveUP failed. Shaders written to %s", filename);*/ #endif } void VertexManager::CreateDeviceObjects() { - m_buffers_count = 0; - m_vertex_buffers = NULL; - m_index_buffers = NULL; - D3DCAPS9 DeviceCaps = D3D::GetCaps(); - u32 devicevMaxBufferSize = DeviceCaps.MaxPrimitiveCount * 3 * DeviceCaps.MaxStreamStride; - //Calculate Device Dependant size - m_vertex_buffer_size = (VBUFFER_SIZE > devicevMaxBufferSize) ? devicevMaxBufferSize : VBUFFER_SIZE; - m_index_buffer_size = (IBUFFER_SIZE > DeviceCaps.MaxVertexIndex) ? DeviceCaps.MaxVertexIndex : IBUFFER_SIZE; - //if device caps are not enough for Vbuffer fall back to vertex arrays - if (m_index_buffer_size < MAXIBUFFERSIZE || m_vertex_buffer_size < MAXVBUFFERSIZE) return; - - m_vertex_buffers = new LPDIRECT3DVERTEXBUFFER9[MAX_VBUFFER_COUNT]; - m_index_buffers = new LPDIRECT3DINDEXBUFFER9[MAX_VBUFFER_COUNT]; + m_buffers_count = 0; + m_vertex_buffers = NULL; + m_index_buffers = NULL; + D3DCAPS9 DeviceCaps = D3D::GetCaps(); + u32 devicevMaxBufferSize = DeviceCaps.MaxPrimitiveCount * 3 * DeviceCaps.MaxStreamStride; + //Calculate Device Dependant size + m_vertex_buffer_size = (VBUFFER_SIZE > devicevMaxBufferSize) ? devicevMaxBufferSize : VBUFFER_SIZE; + m_index_buffer_size = (IBUFFER_SIZE > DeviceCaps.MaxVertexIndex) ? DeviceCaps.MaxVertexIndex : IBUFFER_SIZE; + //if device caps are not enough for Vbuffer fall back to vertex arrays + if (m_index_buffer_size < MAXIBUFFERSIZE || m_vertex_buffer_size < MAXVBUFFERSIZE) return; - bool Fail = false; - for (m_current_vertex_buffer = 0; m_current_vertex_buffer < MAX_VBUFFER_COUNT; m_current_vertex_buffer++) - { - m_vertex_buffers[m_current_vertex_buffer] = NULL; - m_index_buffers[m_current_vertex_buffer] = NULL; - } - for (m_current_vertex_buffer = 0; m_current_vertex_buffer < MAX_VBUFFER_COUNT; m_current_vertex_buffer++) - { - if(FAILED( D3D::dev->CreateVertexBuffer( m_vertex_buffer_size, D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY, 0, D3DPOOL_DEFAULT, &m_vertex_buffers[m_current_vertex_buffer], NULL ) ) ) - { - Fail = true; - break; - } - if( FAILED( D3D::dev->CreateIndexBuffer( m_index_buffer_size * sizeof(u16), D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY, D3DFMT_INDEX16, D3DPOOL_DEFAULT, &m_index_buffers[m_current_vertex_buffer], NULL ) ) ) - { - Fail = true; - return; - } - } - m_buffers_count = m_current_vertex_buffer; - m_current_vertex_buffer = 0; - m_current_index_buffer = 0; - m_index_buffer_cursor = m_index_buffer_size; - m_vertex_buffer_cursor = m_vertex_buffer_size; - m_current_stride = 0; - if (Fail) - { - m_buffers_count--; - if (m_buffers_count < 2) - { - //Error creating Vertex buffers. clean and fall to Vertex arrays - m_buffers_count = MAX_VBUFFER_COUNT; - DestroyDeviceObjects(); - } - } + m_vertex_buffers = new LPDIRECT3DVERTEXBUFFER9[MAX_VBUFFER_COUNT]; + m_index_buffers = new LPDIRECT3DINDEXBUFFER9[MAX_VBUFFER_COUNT]; + + bool Fail = false; + for (m_current_vertex_buffer = 0; m_current_vertex_buffer < MAX_VBUFFER_COUNT; m_current_vertex_buffer++) + { + m_vertex_buffers[m_current_vertex_buffer] = NULL; + m_index_buffers[m_current_vertex_buffer] = NULL; + } + for (m_current_vertex_buffer = 0; m_current_vertex_buffer < MAX_VBUFFER_COUNT; m_current_vertex_buffer++) + { + if(FAILED( D3D::dev->CreateVertexBuffer( m_vertex_buffer_size, D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY, 0, D3DPOOL_DEFAULT, &m_vertex_buffers[m_current_vertex_buffer], NULL ) ) ) + { + Fail = true; + break; + } + if( FAILED( D3D::dev->CreateIndexBuffer( m_index_buffer_size * sizeof(u16), D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY, D3DFMT_INDEX16, D3DPOOL_DEFAULT, &m_index_buffers[m_current_vertex_buffer], NULL ) ) ) + { + Fail = true; + return; + } + } + m_buffers_count = m_current_vertex_buffer; + m_current_vertex_buffer = 0; + m_current_index_buffer = 0; + m_index_buffer_cursor = m_index_buffer_size; + m_vertex_buffer_cursor = m_vertex_buffer_size; + m_current_stride = 0; + if (Fail) + { + m_buffers_count--; + if (m_buffers_count < 2) + { + //Error creating Vertex buffers. clean and fall to Vertex arrays + m_buffers_count = MAX_VBUFFER_COUNT; + DestroyDeviceObjects(); + } + } } void VertexManager::DestroyDeviceObjects() { - D3D::SetStreamSource( 0, NULL, 0, 0); - D3D::SetIndices(NULL); - for (int i = 0; i < MAX_VBUFFER_COUNT; i++) - { - if(m_vertex_buffers) - { - if (m_vertex_buffers[i]) - { - m_vertex_buffers[i]->Release(); - m_vertex_buffers[i] = NULL; - } - } + D3D::SetStreamSource( 0, NULL, 0, 0); + D3D::SetIndices(NULL); + for (int i = 0; i < MAX_VBUFFER_COUNT; i++) + { + if(m_vertex_buffers) + { + if (m_vertex_buffers[i]) + { + m_vertex_buffers[i]->Release(); + m_vertex_buffers[i] = NULL; + } + } - if (m_index_buffers[i]) - { - m_index_buffers[i]->Release(); - m_index_buffers[i] = NULL; - } - } - if(m_vertex_buffers) - delete [] m_vertex_buffers; - if(m_index_buffers) - delete [] m_index_buffers; - m_vertex_buffers = NULL; - m_index_buffers = NULL; + if (m_index_buffers[i]) + { + m_index_buffers[i]->Release(); + m_index_buffers[i] = NULL; + } + } + if(m_vertex_buffers) + delete [] m_vertex_buffers; + if(m_index_buffers) + delete [] m_index_buffers; + m_vertex_buffers = NULL; + m_index_buffers = NULL; } void VertexManager::PrepareDrawBuffers(u32 stride) { - if (!m_buffers_count) - { - return; - } - u8* pVertices; - u16* pIndices; - int datasize = IndexGenerator::GetNumVerts() * stride; - int TdataSize = IndexGenerator::GetTriangleindexLen(); - int LDataSize = IndexGenerator::GetLineindexLen(); - int PDataSize = IndexGenerator::GetPointindexLen(); - int IndexDataSize = TdataSize + LDataSize; - DWORD LockMode = D3DLOCK_NOOVERWRITE; - m_vertex_buffer_cursor--; - m_vertex_buffer_cursor = m_vertex_buffer_cursor - (m_vertex_buffer_cursor % stride) + stride; - if (m_vertex_buffer_cursor > m_vertex_buffer_size - datasize) - { - LockMode = D3DLOCK_DISCARD; - m_vertex_buffer_cursor = 0; - m_current_vertex_buffer = (m_current_vertex_buffer + 1) % m_buffers_count; - } - if(FAILED(m_vertex_buffers[m_current_vertex_buffer]->Lock(m_vertex_buffer_cursor, datasize,(VOID**)(&pVertices), LockMode))) - { - DestroyDeviceObjects(); - return; - } - memcpy(pVertices, s_pBaseBufferPointer, datasize); - m_vertex_buffers[m_current_vertex_buffer]->Unlock(); + if (!m_buffers_count) + { + return; + } + u8* pVertices; + u16* pIndices; + int datasize = IndexGenerator::GetNumVerts() * stride; + int TdataSize = IndexGenerator::GetTriangleindexLen(); + int LDataSize = IndexGenerator::GetLineindexLen(); + int IndexDataSize = TdataSize + LDataSize; + if(IndexDataSize) + { + DWORD LockMode = D3DLOCK_NOOVERWRITE; + m_vertex_buffer_cursor--; + m_vertex_buffer_cursor = m_vertex_buffer_cursor - (m_vertex_buffer_cursor % stride) + stride; + if (m_vertex_buffer_cursor > m_vertex_buffer_size - datasize) + { + LockMode = D3DLOCK_DISCARD; + m_vertex_buffer_cursor = 0; + m_current_vertex_buffer = (m_current_vertex_buffer + 1) % m_buffers_count; + } + if(FAILED(m_vertex_buffers[m_current_vertex_buffer]->Lock(m_vertex_buffer_cursor, datasize,(VOID**)(&pVertices), LockMode))) + { + DestroyDeviceObjects(); + return; + } + memcpy(pVertices, s_pBaseBufferPointer, datasize); + m_vertex_buffers[m_current_vertex_buffer]->Unlock(); - LockMode = D3DLOCK_NOOVERWRITE; - if (m_index_buffer_cursor > m_index_buffer_size - IndexDataSize) - { - LockMode = D3DLOCK_DISCARD; - m_index_buffer_cursor = 0; - m_current_index_buffer = (m_current_index_buffer + 1) % m_buffers_count; - } - - if(FAILED(m_index_buffers[m_current_index_buffer]->Lock(m_index_buffer_cursor * sizeof(u16), IndexDataSize * sizeof(u16), (VOID**)(&pIndices), LockMode ))) - { - DestroyDeviceObjects(); - return; - } - if(TdataSize) - { - memcpy(pIndices, GetTriangleIndexBuffer(), TdataSize * sizeof(u16)); - pIndices += TdataSize; - } - if(LDataSize) - { - memcpy(pIndices, GetLineIndexBuffer(), LDataSize * sizeof(u16)); - pIndices += LDataSize; - } - m_index_buffers[m_current_index_buffer]->Unlock(); - if(m_current_stride != stride || m_vertex_buffer_cursor == 0) - { - m_current_stride = stride; - D3D::SetStreamSource( 0, m_vertex_buffers[m_current_vertex_buffer], 0, stride); - } - if (m_index_buffer_cursor == 0) - { - D3D::SetIndices(m_index_buffers[m_current_index_buffer]); - } - - ADDSTAT(stats.thisFrame.bytesVertexStreamed, datasize); - ADDSTAT(stats.thisFrame.bytesIndexStreamed, IndexDataSize); + LockMode = D3DLOCK_NOOVERWRITE; + if (m_index_buffer_cursor > m_index_buffer_size - IndexDataSize) + { + LockMode = D3DLOCK_DISCARD; + m_index_buffer_cursor = 0; + m_current_index_buffer = (m_current_index_buffer + 1) % m_buffers_count; + } + + if(FAILED(m_index_buffers[m_current_index_buffer]->Lock(m_index_buffer_cursor * sizeof(u16), IndexDataSize * sizeof(u16), (VOID**)(&pIndices), LockMode ))) + { + DestroyDeviceObjects(); + return; + } + if(TdataSize) + { + memcpy(pIndices, GetTriangleIndexBuffer(), TdataSize * sizeof(u16)); + pIndices += TdataSize; + } + if(LDataSize) + { + memcpy(pIndices, GetLineIndexBuffer(), LDataSize * sizeof(u16)); + pIndices += LDataSize; + } + m_index_buffers[m_current_index_buffer]->Unlock(); + } + if(m_current_stride != stride || m_vertex_buffer_cursor == 0) + { + m_current_stride = stride; + D3D::SetStreamSource( 0, m_vertex_buffers[m_current_vertex_buffer], 0, m_current_stride); + } + if (m_index_buffer_cursor == 0) + { + D3D::SetIndices(m_index_buffers[m_current_index_buffer]); + } + + ADDSTAT(stats.thisFrame.bytesVertexStreamed, datasize); + ADDSTAT(stats.thisFrame.bytesIndexStreamed, IndexDataSize); } void VertexManager::DrawVertexBuffer(int stride) { - int triangles = IndexGenerator::GetNumTriangles(); - int lines = IndexGenerator::GetNumLines(); - int points = IndexGenerator::GetNumPoints(); - int numverts = IndexGenerator::GetNumVerts(); - int StartIndex = m_index_buffer_cursor; - int basevertex = m_vertex_buffer_cursor / stride; - if (triangles > 0) - { - if (FAILED(D3D::dev->DrawIndexedPrimitive( - D3DPT_TRIANGLELIST, - basevertex, - 0, - numverts, - StartIndex, - triangles))) - { - DumpBadShaders(); - } - StartIndex += IndexGenerator::GetTriangleindexLen(); - INCSTAT(stats.thisFrame.numIndexedDrawCalls); - } - if (lines > 0) - { - if (FAILED(D3D::dev->DrawIndexedPrimitive( - D3DPT_LINELIST, - basevertex, - 0, - numverts, - StartIndex, - IndexGenerator::GetNumLines()))) - { - DumpBadShaders(); - } - StartIndex += IndexGenerator::GetLineindexLen(); - INCSTAT(stats.thisFrame.numIndexedDrawCalls); - } - if (points > 0) - { - //DrawIndexedPrimitive does not support point list so we have to draw the points one by one - for (int i = 0; i < points; i++) - { - if (FAILED(D3D::dev->DrawPrimitive( - D3DPT_POINTLIST, - basevertex + GetPointIndexBuffer()[i], - 1))) - { - DumpBadShaders(); - } - INCSTAT(stats.thisFrame.numDrawCalls); - } - - - } - + int triangles = IndexGenerator::GetNumTriangles(); + int lines = IndexGenerator::GetNumLines(); + int points = IndexGenerator::GetNumPoints(); + int numverts = IndexGenerator::GetNumVerts(); + int StartIndex = m_index_buffer_cursor; + int basevertex = m_vertex_buffer_cursor / stride; + if (triangles > 0) + { + if (FAILED(D3D::dev->DrawIndexedPrimitive( + D3DPT_TRIANGLELIST, + basevertex, + 0, + numverts, + StartIndex, + triangles))) + { + DumpBadShaders(); + } + StartIndex += IndexGenerator::GetTriangleindexLen(); + INCSTAT(stats.thisFrame.numIndexedDrawCalls); + } + if (lines > 0) + { + if (FAILED(D3D::dev->DrawIndexedPrimitive( + D3DPT_LINELIST, + basevertex, + 0, + numverts, + StartIndex, + IndexGenerator::GetNumLines()))) + { + DumpBadShaders(); + } + StartIndex += IndexGenerator::GetLineindexLen(); + INCSTAT(stats.thisFrame.numIndexedDrawCalls); + } + if (points > 0) + { + //DrawIndexedPrimitive does not support point list so we have to draw them using DrawPrimitive + u16* PointIndexBuffer = GetPointIndexBuffer(); + int i = 0; + do + { + int count = i + 1; + while (count < points && PointIndexBuffer[count - 1] + 1 == PointIndexBuffer[count]) + { + count++; + } + if (FAILED(D3D::dev->DrawPrimitive( + D3DPT_POINTLIST, + basevertex + PointIndexBuffer[i], + count - i))) + { + DumpBadShaders(); + } + INCSTAT(stats.thisFrame.numDrawCalls); + i = count; + } while (i < points); + } + } void VertexManager::DrawVertexArray(int stride) { - int triangles = IndexGenerator::GetNumTriangles(); - int lines = IndexGenerator::GetNumLines(); - int points = IndexGenerator::GetNumPoints(); - int numverts = IndexGenerator::GetNumVerts(); - if (triangles > 0) - { - if (FAILED(D3D::dev->DrawIndexedPrimitiveUP( - D3DPT_TRIANGLELIST, - 0, numverts, triangles, - GetTriangleIndexBuffer(), - D3DFMT_INDEX16, - s_pBaseBufferPointer, - stride))) - { - DumpBadShaders(); - } - INCSTAT(stats.thisFrame.numIndexedDrawCalls); - } - if (lines > 0) - { - if (FAILED(D3D::dev->DrawIndexedPrimitiveUP( - D3DPT_LINELIST, - 0, numverts, lines, - GetLineIndexBuffer(), - D3DFMT_INDEX16, - s_pBaseBufferPointer, - stride))) - { - DumpBadShaders(); - } - INCSTAT(stats.thisFrame.numIndexedDrawCalls); - } - if (points > 0) - { - if (FAILED(D3D::dev->DrawIndexedPrimitiveUP( - D3DPT_POINTLIST, - 0, numverts, points, - GetPointIndexBuffer(), - D3DFMT_INDEX16, - s_pBaseBufferPointer, - stride))) - { - DumpBadShaders(); - } - INCSTAT(stats.thisFrame.numIndexedDrawCalls); - } + int triangles = IndexGenerator::GetNumTriangles(); + int lines = IndexGenerator::GetNumLines(); + int points = IndexGenerator::GetNumPoints(); + int numverts = IndexGenerator::GetNumVerts(); + if (triangles > 0) + { + if (FAILED(D3D::dev->DrawIndexedPrimitiveUP( + D3DPT_TRIANGLELIST, + 0, numverts, triangles, + GetTriangleIndexBuffer(), + D3DFMT_INDEX16, + s_pBaseBufferPointer, + stride))) + { + DumpBadShaders(); + } + INCSTAT(stats.thisFrame.numIndexedDrawCalls); + } + if (lines > 0) + { + if (FAILED(D3D::dev->DrawIndexedPrimitiveUP( + D3DPT_LINELIST, + 0, numverts, lines, + GetLineIndexBuffer(), + D3DFMT_INDEX16, + s_pBaseBufferPointer, + stride))) + { + DumpBadShaders(); + } + INCSTAT(stats.thisFrame.numIndexedDrawCalls); + } + if (points > 0) + { + if (FAILED(D3D::dev->DrawIndexedPrimitiveUP( + D3DPT_POINTLIST, + 0, numverts, points, + GetPointIndexBuffer(), + D3DFMT_INDEX16, + s_pBaseBufferPointer, + stride))) + { + DumpBadShaders(); + } + INCSTAT(stats.thisFrame.numIndexedDrawCalls); + } } void VertexManager::vFlush() { - u32 usedtextures = 0; - for (u32 i = 0; i < (u32)bpmem.genMode.numtevstages + 1; ++i) - if (bpmem.tevorders[i / 2].getEnable(i & 1)) - usedtextures |= 1 << bpmem.tevorders[i/2].getTexMap(i & 1); + u32 usedtextures = 0; + for (u32 i = 0; i < (u32)bpmem.genMode.numtevstages + 1; ++i) + if (bpmem.tevorders[i / 2].getEnable(i & 1)) + usedtextures |= 1 << bpmem.tevorders[i/2].getTexMap(i & 1); - if (bpmem.genMode.numindstages > 0) - for (unsigned int i = 0; i < bpmem.genMode.numtevstages + 1; ++i) - if (bpmem.tevind[i].IsActive() && bpmem.tevind[i].bt < bpmem.genMode.numindstages) - usedtextures |= 1 << bpmem.tevindref.getTexMap(bpmem.tevind[i].bt); + if (bpmem.genMode.numindstages > 0) + for (unsigned int i = 0; i < bpmem.genMode.numtevstages + 1; ++i) + if (bpmem.tevind[i].IsActive() && bpmem.tevind[i].bt < bpmem.genMode.numindstages) + usedtextures |= 1 << bpmem.tevindref.getTexMap(bpmem.tevind[i].bt); - for (unsigned int i = 0; i < 8; i++) - { - if (usedtextures & (1 << i)) - { - g_renderer->SetSamplerState(i & 3, i >> 2); - FourTexUnits &tex = bpmem.tex[i >> 2]; - TextureCache::TCacheEntryBase* tentry = TextureCache::Load(i, - (tex.texImage3[i&3].image_base/* & 0x1FFFFF*/) << 5, - tex.texImage0[i&3].width + 1, tex.texImage0[i&3].height + 1, - tex.texImage0[i&3].format, tex.texTlut[i&3].tmem_offset<<9, - tex.texTlut[i&3].tlut_format, - (tex.texMode0[i&3].min_filter & 3), - (tex.texMode1[i&3].max_lod + 0xf) / 0x10, - tex.texImage1[i&3].image_type); + for (unsigned int i = 0; i < 8; i++) + { + if (usedtextures & (1 << i)) + { + g_renderer->SetSamplerState(i & 3, i >> 2); + FourTexUnits &tex = bpmem.tex[i >> 2]; + TextureCache::TCacheEntryBase* tentry = TextureCache::Load(i, + (tex.texImage3[i&3].image_base/* & 0x1FFFFF*/) << 5, + tex.texImage0[i&3].width + 1, tex.texImage0[i&3].height + 1, + tex.texImage0[i&3].format, tex.texTlut[i&3].tmem_offset<<9, + tex.texTlut[i&3].tlut_format, + (tex.texMode0[i&3].min_filter & 3), + (tex.texMode1[i&3].max_lod + 0xf) / 0x10, + tex.texImage1[i&3].image_type); - if (tentry) - { - // 0s are probably for no manual wrapping needed. - PixelShaderManager::SetTexDims(i, tentry->native_width, tentry->native_height, 0, 0); - } - else - ERROR_LOG(VIDEO, "Error loading texture"); - } - } + if (tentry) + { + // 0s are probably for no manual wrapping needed. + PixelShaderManager::SetTexDims(i, tentry->native_width, tentry->native_height, 0, 0); + } + else + ERROR_LOG(VIDEO, "Error loading texture"); + } + } - // set global constants - VertexShaderManager::SetConstants(); - PixelShaderManager::SetConstants(g_nativeVertexFmt->m_components); - u32 stride = g_nativeVertexFmt->GetVertexStride(); - bool useDstAlpha = !g_ActiveConfig.bDstAlphaPass && bpmem.dstalpha.enable && bpmem.blendmode.alphaupdate && - bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24; - bool useDualSource = useDstAlpha && g_ActiveConfig.backend_info.bSupportsDualSourceBlend; - DSTALPHA_MODE AlphaMode = useDualSource ? DSTALPHA_DUAL_SOURCE_BLEND : DSTALPHA_NONE; + // set global constants + VertexShaderManager::SetConstants(); + PixelShaderManager::SetConstants(g_nativeVertexFmt->m_components); + u32 stride = g_nativeVertexFmt->GetVertexStride(); + bool useDstAlpha = !g_ActiveConfig.bDstAlphaPass && bpmem.dstalpha.enable && bpmem.blendmode.alphaupdate && + bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24; + bool useDualSource = useDstAlpha && g_ActiveConfig.backend_info.bSupportsDualSourceBlend; + DSTALPHA_MODE AlphaMode = useDualSource ? DSTALPHA_DUAL_SOURCE_BLEND : DSTALPHA_NONE; - if (!PixelShaderCache::SetShader(AlphaMode ,g_nativeVertexFmt->m_components)) - { - GFX_DEBUGGER_PAUSE_LOG_AT(NEXT_ERROR,true,{printf("Fail to set pixel shader\n");}); - goto shader_fail; - } - if (!VertexShaderCache::SetShader(g_nativeVertexFmt->m_components)) - { - GFX_DEBUGGER_PAUSE_LOG_AT(NEXT_ERROR,true,{printf("Fail to set vertex shader\n");}); - goto shader_fail; + if (!PixelShaderCache::SetShader(AlphaMode ,g_nativeVertexFmt->m_components)) + { + GFX_DEBUGGER_PAUSE_LOG_AT(NEXT_ERROR,true,{printf("Fail to set pixel shader\n");}); + goto shader_fail; + } + if (!VertexShaderCache::SetShader(g_nativeVertexFmt->m_components)) + { + GFX_DEBUGGER_PAUSE_LOG_AT(NEXT_ERROR,true,{printf("Fail to set vertex shader\n");}); + goto shader_fail; - } - PrepareDrawBuffers(stride); - g_nativeVertexFmt->SetupVertexPointers(); - g_perf_query->EnableQuery(bpmem.zcontrol.early_ztest ? PQG_ZCOMP_ZCOMPLOC : PQG_ZCOMP); - if(m_buffers_count) - { - DrawVertexBuffer(stride); - } - else - { - DrawVertexArray(stride); - } - g_perf_query->DisableQuery(bpmem.zcontrol.early_ztest ? PQG_ZCOMP_ZCOMPLOC : PQG_ZCOMP); - if (useDstAlpha && !useDualSource) - { - if (!PixelShaderCache::SetShader(DSTALPHA_ALPHA_PASS, g_nativeVertexFmt->m_components)) - { - GFX_DEBUGGER_PAUSE_LOG_AT(NEXT_ERROR,true,{printf("Fail to set pixel shader\n");}); - goto shader_fail; - } - // update alpha only - g_renderer->ApplyState(true); - if(m_buffers_count) - { - DrawVertexBuffer(stride); - } - else - { - DrawVertexArray(stride); - } - g_renderer->RestoreState(); - } - GFX_DEBUGGER_PAUSE_AT(NEXT_FLUSH, true); + } + PrepareDrawBuffers(stride); + g_nativeVertexFmt->SetupVertexPointers(); + g_perf_query->EnableQuery(bpmem.zcontrol.early_ztest ? PQG_ZCOMP_ZCOMPLOC : PQG_ZCOMP); + if(m_buffers_count) + { + DrawVertexBuffer(stride); + } + else + { + DrawVertexArray(stride); + } + g_perf_query->DisableQuery(bpmem.zcontrol.early_ztest ? PQG_ZCOMP_ZCOMPLOC : PQG_ZCOMP); + if (useDstAlpha && !useDualSource) + { + if (!PixelShaderCache::SetShader(DSTALPHA_ALPHA_PASS, g_nativeVertexFmt->m_components)) + { + GFX_DEBUGGER_PAUSE_LOG_AT(NEXT_ERROR,true,{printf("Fail to set pixel shader\n");}); + goto shader_fail; + } + // update alpha only + g_renderer->ApplyState(true); + if(m_buffers_count) + { + DrawVertexBuffer(stride); + } + else + { + DrawVertexArray(stride); + } + g_renderer->RestoreState(); + } + GFX_DEBUGGER_PAUSE_AT(NEXT_FLUSH, true); shader_fail: - if(m_buffers_count) - { - m_index_buffer_cursor += IndexGenerator::GetTriangleindexLen() + IndexGenerator::GetLineindexLen() + IndexGenerator::GetPointindexLen(); - m_vertex_buffer_cursor += IndexGenerator::GetNumVerts() * stride; - } + if(m_buffers_count) + { + m_index_buffer_cursor += IndexGenerator::GetTriangleindexLen() + IndexGenerator::GetLineindexLen() + IndexGenerator::GetPointindexLen(); + m_vertex_buffer_cursor += IndexGenerator::GetNumVerts() * stride; + } } } From 08a6b8920b41737820f684582508ff8818c8a68c Mon Sep 17 00:00:00 2001 From: Rodolfo Bogado Date: Thu, 15 Aug 2013 15:16:32 -0300 Subject: [PATCH 06/27] re indentation to follow emulators code rules in some files I'm modifying --- .../Plugin_VideoDX9/Src/PixelShaderCache.cpp | 564 +++++++++--------- .../Plugin_VideoDX9/Src/VertexShaderCache.cpp | 364 +++++------ Source/Plugins/Plugin_VideoDX9/Src/main.cpp | 328 +++++----- 3 files changed, 631 insertions(+), 625 deletions(-) diff --git a/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp b/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp index 22e31ad192..527fe5d177 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp @@ -40,15 +40,15 @@ static std::set unique_shaders; #define MAX_SSAA_SHADERS 3 enum { - COPY_TYPE_DIRECT, - COPY_TYPE_MATRIXCOLOR, - NUM_COPY_TYPES + COPY_TYPE_DIRECT, + COPY_TYPE_MATRIXCOLOR, + NUM_COPY_TYPES }; enum { - DEPTH_CONVERSION_TYPE_NONE, - DEPTH_CONVERSION_TYPE_ON, - NUM_DEPTH_CONVERSION_TYPES + DEPTH_CONVERSION_TYPE_NONE, + DEPTH_CONVERSION_TYPE_ON, + NUM_DEPTH_CONVERSION_TYPES }; static LPDIRECT3DPIXELSHADER9 s_CopyProgram[NUM_COPY_TYPES][NUM_DEPTH_CONVERSION_TYPES][MAX_SSAA_SHADERS]; @@ -59,30 +59,30 @@ static LPDIRECT3DPIXELSHADER9 s_rgb8_to_rgba6 = NULL; class PixelShaderCacheInserter : public LinearDiskCacheReader { public: - void Read(const PixelShaderUid &key, const u8 *value, u32 value_size) - { - PixelShaderCache::InsertByteCode(key, value, value_size, false); - } + void Read(const PixelShaderUid &key, const u8 *value, u32 value_size) + { + PixelShaderCache::InsertByteCode(key, value, value_size, false); + } }; LPDIRECT3DPIXELSHADER9 PixelShaderCache::GetColorMatrixProgram(int SSAAMode) { - return s_CopyProgram[COPY_TYPE_MATRIXCOLOR][DEPTH_CONVERSION_TYPE_NONE][SSAAMode % MAX_SSAA_SHADERS]; + return s_CopyProgram[COPY_TYPE_MATRIXCOLOR][DEPTH_CONVERSION_TYPE_NONE][SSAAMode % MAX_SSAA_SHADERS]; } LPDIRECT3DPIXELSHADER9 PixelShaderCache::GetDepthMatrixProgram(int SSAAMode, bool depthConversion) { - return s_CopyProgram[COPY_TYPE_MATRIXCOLOR][depthConversion ? DEPTH_CONVERSION_TYPE_ON : DEPTH_CONVERSION_TYPE_NONE][SSAAMode % MAX_SSAA_SHADERS]; + return s_CopyProgram[COPY_TYPE_MATRIXCOLOR][depthConversion ? DEPTH_CONVERSION_TYPE_ON : DEPTH_CONVERSION_TYPE_NONE][SSAAMode % MAX_SSAA_SHADERS]; } LPDIRECT3DPIXELSHADER9 PixelShaderCache::GetColorCopyProgram(int SSAAMode) { - return s_CopyProgram[COPY_TYPE_DIRECT][DEPTH_CONVERSION_TYPE_NONE][SSAAMode % MAX_SSAA_SHADERS]; + return s_CopyProgram[COPY_TYPE_DIRECT][DEPTH_CONVERSION_TYPE_NONE][SSAAMode % MAX_SSAA_SHADERS]; } LPDIRECT3DPIXELSHADER9 PixelShaderCache::GetClearProgram() { - return s_ClearProgram; + return s_ClearProgram; } static LPDIRECT3DPIXELSHADER9 s_rgb8 = NULL; @@ -90,360 +90,360 @@ static LPDIRECT3DPIXELSHADER9 s_rgba6 = NULL; LPDIRECT3DPIXELSHADER9 PixelShaderCache::ReinterpRGBA6ToRGB8() { - const char code[] = - { - "uniform sampler samp0 : register(s0);\n" - "void main(\n" - " out float4 ocol0 : COLOR0,\n" - " in float2 uv0 : TEXCOORD0){\n" - " ocol0 = tex2D(samp0,uv0);\n" - " float4 src6 = round(ocol0 * 63.f);\n" - " ocol0.r = floor(src6.r*4.f) + floor(src6.g/16.f);\n" // dst8r = (src6r<<2)|(src6g>>4); - " ocol0.g = frac(src6.g/16.f)*16.f*16.f + floor(src6.b/4.f);\n" // dst8g = ((src6g&0xF)<<4)|(src6b>>2); - " ocol0.b = frac(src6.b/4.f)*4.f*64.f + src6.a;\n" // dst8b = ((src6b&0x3)<<6)|src6a; - " ocol0.a = 255.f;\n" - " ocol0 /= 255.f;\n" - "}\n" - }; + const char code[] = + { + "uniform sampler samp0 : register(s0);\n" + "void main(\n" + " out float4 ocol0 : COLOR0,\n" + " in float2 uv0 : TEXCOORD0){\n" + " ocol0 = tex2D(samp0,uv0);\n" + " float4 src6 = round(ocol0 * 63.f);\n" + " ocol0.r = floor(src6.r*4.f) + floor(src6.g/16.f);\n" // dst8r = (src6r<<2)|(src6g>>4); + " ocol0.g = frac(src6.g/16.f)*16.f*16.f + floor(src6.b/4.f);\n" // dst8g = ((src6g&0xF)<<4)|(src6b>>2); + " ocol0.b = frac(src6.b/4.f)*4.f*64.f + src6.a;\n" // dst8b = ((src6b&0x3)<<6)|src6a; + " ocol0.a = 255.f;\n" + " ocol0 /= 255.f;\n" + "}\n" + }; - if (!s_rgba6_to_rgb8) - s_rgba6_to_rgb8 = D3D::CompileAndCreatePixelShader(code, (int)strlen(code)); + if (!s_rgba6_to_rgb8) + s_rgba6_to_rgb8 = D3D::CompileAndCreatePixelShader(code, (int)strlen(code)); - return s_rgba6_to_rgb8; + return s_rgba6_to_rgb8; } LPDIRECT3DPIXELSHADER9 PixelShaderCache::ReinterpRGB8ToRGBA6() { - /* old code here for reference - const char code[] = - { - "uniform sampler samp0 : register(s0);\n" - "void main(\n" - " out float4 ocol0 : COLOR0,\n" - " in float2 uv0 : TEXCOORD0){\n" - " ocol0 = tex2D(samp0,uv0);\n" - " float4 src8 = round(ocol0*255.f);\n" - " ocol0.r = floor(src8.r/4.f);\n" // dst6r = src8r>>2; - " ocol0.g = frac(src8.r/4.f)*4.f*16.f + floor(src8.g/16.f);\n" // dst6g = ((src8r&0x3)<<4)|(src8g>>4); - " ocol0.b = frac(src8.g/16.f)*16.f*4.f + floor(src8.b/64.f);\n" // dst6b = ((src8g&0xF)<<2)|(src8b>>6); - " ocol0.a = frac(src8.b/64.f)*64.f;\n" // dst6a = src8b&0x3F; - " ocol0 /= 63.f;\n" - "}\n" - }; - */ - const char code[] = - { - "uniform sampler samp0 : register(s0);\n" - "void main(\n" - "out float4 ocol0 : COLOR0,\n" - "in float2 uv0 : TEXCOORD0){\n" - "float4 temp1 = float4(1.0f/4.0f,1.0f/16.0f,1.0f/64.0f,0.0f);\n" - "float4 temp2 = float4(1.0f,64.0f,255.0f,1.0f/63.0f);\n" - "float4 src8 = round(tex2D(samp0,uv0)*temp2.z) * temp1;\n" - "ocol0 = (frac(src8.wxyz) * temp2.xyyy + floor(src8)) * temp2.w;\n" - "}\n" - }; - if (!s_rgb8_to_rgba6) s_rgb8_to_rgba6 = D3D::CompileAndCreatePixelShader(code, (int)strlen(code)); - return s_rgb8_to_rgba6; + /* old code here for reference + const char code[] = + { + "uniform sampler samp0 : register(s0);\n" + "void main(\n" + " out float4 ocol0 : COLOR0,\n" + " in float2 uv0 : TEXCOORD0){\n" + " ocol0 = tex2D(samp0,uv0);\n" + " float4 src8 = round(ocol0*255.f);\n" + " ocol0.r = floor(src8.r/4.f);\n" // dst6r = src8r>>2; + " ocol0.g = frac(src8.r/4.f)*4.f*16.f + floor(src8.g/16.f);\n" // dst6g = ((src8r&0x3)<<4)|(src8g>>4); + " ocol0.b = frac(src8.g/16.f)*16.f*4.f + floor(src8.b/64.f);\n" // dst6b = ((src8g&0xF)<<2)|(src8b>>6); + " ocol0.a = frac(src8.b/64.f)*64.f;\n" // dst6a = src8b&0x3F; + " ocol0 /= 63.f;\n" + "}\n" + }; + */ + const char code[] = + { + "uniform sampler samp0 : register(s0);\n" + "void main(\n" + "out float4 ocol0 : COLOR0,\n" + "in float2 uv0 : TEXCOORD0){\n" + "float4 temp1 = float4(1.0f/4.0f,1.0f/16.0f,1.0f/64.0f,0.0f);\n" + "float4 temp2 = float4(1.0f,64.0f,255.0f,1.0f/63.0f);\n" + "float4 src8 = round(tex2D(samp0,uv0)*temp2.z) * temp1;\n" + "ocol0 = (frac(src8.wxyz) * temp2.xyyy + floor(src8)) * temp2.w;\n" + "}\n" + }; + if (!s_rgb8_to_rgba6) s_rgb8_to_rgba6 = D3D::CompileAndCreatePixelShader(code, (int)strlen(code)); + return s_rgb8_to_rgba6; } #define WRITE p+=sprintf static LPDIRECT3DPIXELSHADER9 CreateCopyShader(int copyMatrixType, int depthConversionType, int SSAAMode) { - //Used for Copy/resolve the color buffer - //Color conversion Programs - //Depth copy programs - // this should create the same shaders as before (plus some extras added for DF16), just... more manageably than listing the full program for each combination - char text[3072]; + //Used for Copy/resolve the color buffer + //Color conversion Programs + //Depth copy programs + // this should create the same shaders as before (plus some extras added for DF16), just... more manageably than listing the full program for each combination + char text[3072]; - locale_t locale = newlocale(LC_NUMERIC_MASK, "C", NULL); // New locale for compilation - locale_t old_locale = uselocale(locale); // Apply the locale for this thread - text[sizeof(text) - 1] = 0x7C; // canary + locale_t locale = newlocale(LC_NUMERIC_MASK, "C", NULL); // New locale for compilation + locale_t old_locale = uselocale(locale); // Apply the locale for this thread + text[sizeof(text) - 1] = 0x7C; // canary - char* p = text; - WRITE(p, "// Copy/Color Matrix/Depth Matrix shader (matrix=%d, depth=%d, ssaa=%d)\n", copyMatrixType, depthConversionType, SSAAMode); + char* p = text; + WRITE(p, "// Copy/Color Matrix/Depth Matrix shader (matrix=%d, depth=%d, ssaa=%d)\n", copyMatrixType, depthConversionType, SSAAMode); - WRITE(p, "uniform sampler samp0 : register(s0);\n"); - if(copyMatrixType == COPY_TYPE_MATRIXCOLOR) - WRITE(p, "uniform float4 cColMatrix[7] : register(c%d);\n", C_COLORMATRIX); - WRITE(p, "void main(\n" - "out float4 ocol0 : COLOR0,\n"); + WRITE(p, "uniform sampler samp0 : register(s0);\n"); + if(copyMatrixType == COPY_TYPE_MATRIXCOLOR) + WRITE(p, "uniform float4 cColMatrix[7] : register(c%d);\n", C_COLORMATRIX); + WRITE(p, "void main(\n" + "out float4 ocol0 : COLOR0,\n"); - switch(SSAAMode % MAX_SSAA_SHADERS) - { - case 0: // 1 Sample - WRITE(p, "in float2 uv0 : TEXCOORD0,\n" - "in float uv1 : TEXCOORD1){\n" - "float4 texcol = tex2D(samp0,uv0.xy);\n"); - break; - case 1: // 4 Samples in 4x SSAA buffer - WRITE(p, "in float4 uv0 : TEXCOORD0,\n" - "in float uv1 : TEXCOORD1,\n" - "in float4 uv2 : TEXCOORD2,\n" - "in float4 uv3 : TEXCOORD3){\n" - "float4 texcol = (tex2D(samp0,uv2.xy) + tex2D(samp0,uv2.wz) + tex2D(samp0,uv3.xy) + tex2D(samp0,uv3.wz))*0.25f;\n"); - break; - case 2: // 4 Samples in 9x SSAA buffer - WRITE(p, "in float4 uv0 : TEXCOORD0,\n" - "in float uv1 : TEXCOORD1,\n" - "in float4 uv2 : TEXCOORD2,\n" - "in float4 uv3 : TEXCOORD3){\n" - "float4 texcol = (tex2D(samp0,uv2.xy) + tex2D(samp0,uv2.wz) + tex2D(samp0,uv3.xy) + tex2D(samp0,uv3.wz))*0.25f;\n"); - break; - } + switch(SSAAMode % MAX_SSAA_SHADERS) + { + case 0: // 1 Sample + WRITE(p, "in float2 uv0 : TEXCOORD0,\n" + "in float uv1 : TEXCOORD1){\n" + "float4 texcol = tex2D(samp0,uv0.xy);\n"); + break; + case 1: // 4 Samples in 4x SSAA buffer + WRITE(p, "in float4 uv0 : TEXCOORD0,\n" + "in float uv1 : TEXCOORD1,\n" + "in float4 uv2 : TEXCOORD2,\n" + "in float4 uv3 : TEXCOORD3){\n" + "float4 texcol = (tex2D(samp0,uv2.xy) + tex2D(samp0,uv2.wz) + tex2D(samp0,uv3.xy) + tex2D(samp0,uv3.wz))*0.25f;\n"); + break; + case 2: // 4 Samples in 9x SSAA buffer + WRITE(p, "in float4 uv0 : TEXCOORD0,\n" + "in float uv1 : TEXCOORD1,\n" + "in float4 uv2 : TEXCOORD2,\n" + "in float4 uv3 : TEXCOORD3){\n" + "float4 texcol = (tex2D(samp0,uv2.xy) + tex2D(samp0,uv2.wz) + tex2D(samp0,uv3.xy) + tex2D(samp0,uv3.wz))*0.25f;\n"); + break; + } - if(depthConversionType != DEPTH_CONVERSION_TYPE_NONE) - { - // Watch out for the fire fumes effect in Metroid it's really sensitive to this, - // the lighting in RE0 is also way beyond sensitive since the "good value" is hardcoded and Dolphin is almost always off. - WRITE(p, "float4 EncodedDepth = frac(texcol.r * (16777215.f/16777216.f) * float4(1.0f,256.0f,256.0f*256.0f,1.0f));\n" - "texcol = floor(EncodedDepth * float4(256.f,256.f,256.f,15.0f)) / float4(255.0f,255.0f,255.0f,15.0f);\n"); - } - else - { - //Apply Gamma Correction - WRITE(p, "texcol = pow(texcol,uv1.xxxx);\n"); - } + if(depthConversionType != DEPTH_CONVERSION_TYPE_NONE) + { + // Watch out for the fire fumes effect in Metroid it's really sensitive to this, + // the lighting in RE0 is also way beyond sensitive since the "good value" is hardcoded and Dolphin is almost always off. + WRITE(p, "float4 EncodedDepth = frac(texcol.r * (16777215.f/16777216.f) * float4(1.0f,256.0f,256.0f*256.0f,1.0f));\n" + "texcol = floor(EncodedDepth * float4(256.f,256.f,256.f,15.0f)) / float4(255.0f,255.0f,255.0f,15.0f);\n"); + } + else + { + //Apply Gamma Correction + WRITE(p, "texcol = pow(texcol,uv1.xxxx);\n"); + } - if(copyMatrixType == COPY_TYPE_MATRIXCOLOR) - { - if(depthConversionType == DEPTH_CONVERSION_TYPE_NONE) - WRITE(p, "texcol = round(texcol * cColMatrix[5])*cColMatrix[6];\n"); + if(copyMatrixType == COPY_TYPE_MATRIXCOLOR) + { + if(depthConversionType == DEPTH_CONVERSION_TYPE_NONE) + WRITE(p, "texcol = round(texcol * cColMatrix[5])*cColMatrix[6];\n"); - WRITE(p, "ocol0 = float4(dot(texcol,cColMatrix[0]),dot(texcol,cColMatrix[1]),dot(texcol,cColMatrix[2]),dot(texcol,cColMatrix[3])) + cColMatrix[4];\n"); - } - else - WRITE(p, "ocol0 = texcol;\n"); + WRITE(p, "ocol0 = float4(dot(texcol,cColMatrix[0]),dot(texcol,cColMatrix[1]),dot(texcol,cColMatrix[2]),dot(texcol,cColMatrix[3])) + cColMatrix[4];\n"); + } + else + WRITE(p, "ocol0 = texcol;\n"); - WRITE(p, "}\n"); - if (text[sizeof(text) - 1] != 0x7C) - PanicAlert("PixelShaderCache copy shader generator - buffer too small, canary has been eaten!"); - - uselocale(old_locale); // restore locale - freelocale(locale); - return D3D::CompileAndCreatePixelShader(text, (int)strlen(text)); + WRITE(p, "}\n"); + if (text[sizeof(text) - 1] != 0x7C) + PanicAlert("PixelShaderCache copy shader generator - buffer too small, canary has been eaten!"); + + uselocale(old_locale); // restore locale + freelocale(locale); + return D3D::CompileAndCreatePixelShader(text, (int)strlen(text)); } void PixelShaderCache::Init() { - last_entry = NULL; + last_entry = NULL; - //program used for clear screen - { - char pprog[3072]; - sprintf(pprog, "void main(\n" - "out float4 ocol0 : COLOR0,\n" - " in float4 incol0 : COLOR0){\n" - "ocol0 = incol0;\n" - "}\n"); - s_ClearProgram = D3D::CompileAndCreatePixelShader(pprog, (int)strlen(pprog)); - } + //program used for clear screen + { + char pprog[3072]; + sprintf(pprog, "void main(\n" + "out float4 ocol0 : COLOR0,\n" + " in float4 incol0 : COLOR0){\n" + "ocol0 = incol0;\n" + "}\n"); + s_ClearProgram = D3D::CompileAndCreatePixelShader(pprog, (int)strlen(pprog)); + } - int shaderModel = ((D3D::GetCaps().PixelShaderVersion >> 8) & 0xFF); - int maxConstants = (shaderModel < 3) ? 32 : ((shaderModel < 4) ? 224 : 65536); + int shaderModel = ((D3D::GetCaps().PixelShaderVersion >> 8) & 0xFF); + int maxConstants = (shaderModel < 3) ? 32 : ((shaderModel < 4) ? 224 : 65536); - // other screen copy/convert programs - for(int copyMatrixType = 0; copyMatrixType < NUM_COPY_TYPES; copyMatrixType++) - { - for(int depthType = 0; depthType < NUM_DEPTH_CONVERSION_TYPES; depthType++) - { - for(int ssaaMode = 0; ssaaMode < MAX_SSAA_SHADERS; ssaaMode++) - { - if(ssaaMode && !s_CopyProgram[copyMatrixType][depthType][ssaaMode-1] - || depthType && !s_CopyProgram[copyMatrixType][depthType-1][ssaaMode] - || copyMatrixType && !s_CopyProgram[copyMatrixType-1][depthType][ssaaMode]) - { - // if it failed at a lower setting, it's going to fail here for the same reason it did there, - // so skip this attempt to avoid duplicate error messages. - s_CopyProgram[copyMatrixType][depthType][ssaaMode] = NULL; - } - else - { - s_CopyProgram[copyMatrixType][depthType][ssaaMode] = CreateCopyShader(copyMatrixType, depthType, ssaaMode); - } - } - } - } + // other screen copy/convert programs + for(int copyMatrixType = 0; copyMatrixType < NUM_COPY_TYPES; copyMatrixType++) + { + for(int depthType = 0; depthType < NUM_DEPTH_CONVERSION_TYPES; depthType++) + { + for(int ssaaMode = 0; ssaaMode < MAX_SSAA_SHADERS; ssaaMode++) + { + if(ssaaMode && !s_CopyProgram[copyMatrixType][depthType][ssaaMode-1] + || depthType && !s_CopyProgram[copyMatrixType][depthType-1][ssaaMode] + || copyMatrixType && !s_CopyProgram[copyMatrixType-1][depthType][ssaaMode]) + { + // if it failed at a lower setting, it's going to fail here for the same reason it did there, + // so skip this attempt to avoid duplicate error messages. + s_CopyProgram[copyMatrixType][depthType][ssaaMode] = NULL; + } + else + { + s_CopyProgram[copyMatrixType][depthType][ssaaMode] = CreateCopyShader(copyMatrixType, depthType, ssaaMode); + } + } + } + } - Clear(); + Clear(); - if (!File::Exists(File::GetUserPath(D_SHADERCACHE_IDX))) - File::CreateDir(File::GetUserPath(D_SHADERCACHE_IDX).c_str()); + if (!File::Exists(File::GetUserPath(D_SHADERCACHE_IDX))) + File::CreateDir(File::GetUserPath(D_SHADERCACHE_IDX).c_str()); - SETSTAT(stats.numPixelShadersCreated, 0); - SETSTAT(stats.numPixelShadersAlive, 0); + SETSTAT(stats.numPixelShadersCreated, 0); + SETSTAT(stats.numPixelShadersAlive, 0); - char cache_filename[MAX_PATH]; - sprintf(cache_filename, "%sdx9-%s-ps.cache", File::GetUserPath(D_SHADERCACHE_IDX).c_str(), - SConfig::GetInstance().m_LocalCoreStartupParameter.m_strUniqueID.c_str()); - PixelShaderCacheInserter inserter; - g_ps_disk_cache.OpenAndRead(cache_filename, inserter); + char cache_filename[MAX_PATH]; + sprintf(cache_filename, "%sdx9-%s-ps.cache", File::GetUserPath(D_SHADERCACHE_IDX).c_str(), + SConfig::GetInstance().m_LocalCoreStartupParameter.m_strUniqueID.c_str()); + PixelShaderCacheInserter inserter; + g_ps_disk_cache.OpenAndRead(cache_filename, inserter); - if (g_Config.bEnableShaderDebugging) - Clear(); + if (g_Config.bEnableShaderDebugging) + Clear(); } // ONLY to be used during shutdown. void PixelShaderCache::Clear() { - for (PSCache::iterator iter = PixelShaders.begin(); iter != PixelShaders.end(); iter++) - iter->second.Destroy(); - PixelShaders.clear(); - pixel_uid_checker.Invalidate(); + for (PSCache::iterator iter = PixelShaders.begin(); iter != PixelShaders.end(); iter++) + iter->second.Destroy(); + PixelShaders.clear(); + pixel_uid_checker.Invalidate(); - last_entry = NULL; + last_entry = NULL; } void PixelShaderCache::Shutdown() { - for(int copyMatrixType = 0; copyMatrixType < NUM_COPY_TYPES; copyMatrixType++) - for(int depthType = 0; depthType < NUM_DEPTH_CONVERSION_TYPES; depthType++) - for(int ssaaMode = 0; ssaaMode < MAX_SSAA_SHADERS; ssaaMode++) - if(s_CopyProgram[copyMatrixType][depthType][ssaaMode] - && (copyMatrixType == 0 || s_CopyProgram[copyMatrixType][depthType][ssaaMode] != s_CopyProgram[copyMatrixType-1][depthType][ssaaMode])) - s_CopyProgram[copyMatrixType][depthType][ssaaMode]->Release(); + for(int copyMatrixType = 0; copyMatrixType < NUM_COPY_TYPES; copyMatrixType++) + for(int depthType = 0; depthType < NUM_DEPTH_CONVERSION_TYPES; depthType++) + for(int ssaaMode = 0; ssaaMode < MAX_SSAA_SHADERS; ssaaMode++) + if(s_CopyProgram[copyMatrixType][depthType][ssaaMode] + && (copyMatrixType == 0 || s_CopyProgram[copyMatrixType][depthType][ssaaMode] != s_CopyProgram[copyMatrixType-1][depthType][ssaaMode])) + s_CopyProgram[copyMatrixType][depthType][ssaaMode]->Release(); - for(int copyMatrixType = 0; copyMatrixType < NUM_COPY_TYPES; copyMatrixType++) - for(int depthType = 0; depthType < NUM_DEPTH_CONVERSION_TYPES; depthType++) - for(int ssaaMode = 0; ssaaMode < MAX_SSAA_SHADERS; ssaaMode++) - s_CopyProgram[copyMatrixType][depthType][ssaaMode] = NULL; + for(int copyMatrixType = 0; copyMatrixType < NUM_COPY_TYPES; copyMatrixType++) + for(int depthType = 0; depthType < NUM_DEPTH_CONVERSION_TYPES; depthType++) + for(int ssaaMode = 0; ssaaMode < MAX_SSAA_SHADERS; ssaaMode++) + s_CopyProgram[copyMatrixType][depthType][ssaaMode] = NULL; - if (s_ClearProgram) s_ClearProgram->Release(); - s_ClearProgram = NULL; - if (s_rgb8_to_rgba6) s_rgb8_to_rgba6->Release(); - s_rgb8_to_rgba6 = NULL; - if (s_rgba6_to_rgb8) s_rgba6_to_rgb8->Release(); - s_rgba6_to_rgb8 = NULL; + if (s_ClearProgram) s_ClearProgram->Release(); + s_ClearProgram = NULL; + if (s_rgb8_to_rgba6) s_rgb8_to_rgba6->Release(); + s_rgb8_to_rgba6 = NULL; + if (s_rgba6_to_rgb8) s_rgba6_to_rgb8->Release(); + s_rgba6_to_rgb8 = NULL; - Clear(); - g_ps_disk_cache.Sync(); - g_ps_disk_cache.Close(); + Clear(); + g_ps_disk_cache.Sync(); + g_ps_disk_cache.Close(); - unique_shaders.clear(); + unique_shaders.clear(); } bool PixelShaderCache::SetShader(DSTALPHA_MODE dstAlphaMode, u32 components) { - const API_TYPE api = ((D3D::GetCaps().PixelShaderVersion >> 8) & 0xFF) < 3 ? API_D3D9_SM20 : API_D3D9_SM30; - PixelShaderUid uid; - GetPixelShaderUid(uid, dstAlphaMode, API_D3D9, components); - if (g_ActiveConfig.bEnableShaderDebugging) - { - PixelShaderCode code; - GeneratePixelShaderCode(code, dstAlphaMode, API_D3D9, components); - pixel_uid_checker.AddToIndexAndCheck(code, uid, "Pixel", "p"); - } + const API_TYPE api = ((D3D::GetCaps().PixelShaderVersion >> 8) & 0xFF) < 3 ? API_D3D9_SM20 : API_D3D9_SM30; + PixelShaderUid uid; + GetPixelShaderUid(uid, dstAlphaMode, API_D3D9, components); + if (g_ActiveConfig.bEnableShaderDebugging) + { + PixelShaderCode code; + GeneratePixelShaderCode(code, dstAlphaMode, API_D3D9, components); + pixel_uid_checker.AddToIndexAndCheck(code, uid, "Pixel", "p"); + } - // Check if the shader is already set - if (last_entry) - { - if (uid == last_uid) - { - GFX_DEBUGGER_PAUSE_AT(NEXT_PIXEL_SHADER_CHANGE, true); - return last_entry->shader != NULL; - } - } + // Check if the shader is already set + if (last_entry) + { + if (uid == last_uid) + { + GFX_DEBUGGER_PAUSE_AT(NEXT_PIXEL_SHADER_CHANGE, true); + return last_entry->shader != NULL; + } + } - last_uid = uid; + last_uid = uid; - // Check if the shader is already in the cache - PSCache::iterator iter; - iter = PixelShaders.find(uid); - if (iter != PixelShaders.end()) - { - const PSCacheEntry &entry = iter->second; - last_entry = &entry; + // Check if the shader is already in the cache + PSCache::iterator iter; + iter = PixelShaders.find(uid); + if (iter != PixelShaders.end()) + { + const PSCacheEntry &entry = iter->second; + last_entry = &entry; - if (entry.shader) D3D::SetPixelShader(entry.shader); - GFX_DEBUGGER_PAUSE_AT(NEXT_PIXEL_SHADER_CHANGE, true); - return (entry.shader != NULL); - } + if (entry.shader) D3D::SetPixelShader(entry.shader); + GFX_DEBUGGER_PAUSE_AT(NEXT_PIXEL_SHADER_CHANGE, true); + return (entry.shader != NULL); + } - // Need to compile a new shader - PixelShaderCode code; - GeneratePixelShaderCode(code, dstAlphaMode, api, components); + // Need to compile a new shader + PixelShaderCode code; + GeneratePixelShaderCode(code, dstAlphaMode, api, components); - if (g_ActiveConfig.bEnableShaderDebugging) - { - u32 code_hash = HashAdler32((const u8 *)code.GetBuffer(), strlen(code.GetBuffer())); - unique_shaders.insert(code_hash); - SETSTAT(stats.numUniquePixelShaders, unique_shaders.size()); - } + if (g_ActiveConfig.bEnableShaderDebugging) + { + u32 code_hash = HashAdler32((const u8 *)code.GetBuffer(), strlen(code.GetBuffer())); + unique_shaders.insert(code_hash); + SETSTAT(stats.numUniquePixelShaders, unique_shaders.size()); + } #if defined(_DEBUG) || defined(DEBUGFAST) - if (g_ActiveConfig.iLog & CONF_SAVESHADERS) { - static int counter = 0; - char szTemp[MAX_PATH]; - sprintf(szTemp, "%sps_%04i.txt", File::GetUserPath(D_DUMP_IDX).c_str(), counter++); + if (g_ActiveConfig.iLog & CONF_SAVESHADERS) { + static int counter = 0; + char szTemp[MAX_PATH]; + sprintf(szTemp, "%sps_%04i.txt", File::GetUserPath(D_DUMP_IDX).c_str(), counter++); - SaveData(szTemp, code.GetBuffer()); - } + SaveData(szTemp, code.GetBuffer()); + } #endif - u8 *bytecode = 0; - int bytecodelen = 0; - if (!D3D::CompilePixelShader(code.GetBuffer(), (int)strlen(code.GetBuffer()), &bytecode, &bytecodelen)) { - GFX_DEBUGGER_PAUSE_AT(NEXT_ERROR, true); - return false; - } + u8 *bytecode = 0; + int bytecodelen = 0; + if (!D3D::CompilePixelShader(code.GetBuffer(), (int)strlen(code.GetBuffer()), &bytecode, &bytecodelen)) { + GFX_DEBUGGER_PAUSE_AT(NEXT_ERROR, true); + return false; + } - // Insert the bytecode into the caches - g_ps_disk_cache.Append(uid, bytecode, bytecodelen); + // Insert the bytecode into the caches + g_ps_disk_cache.Append(uid, bytecode, bytecodelen); - // And insert it into the shader cache. - bool success = InsertByteCode(uid, bytecode, bytecodelen, true); - delete [] bytecode; + // And insert it into the shader cache. + bool success = InsertByteCode(uid, bytecode, bytecodelen, true); + delete [] bytecode; - if (g_ActiveConfig.bEnableShaderDebugging && success) - { - PixelShaders[uid].code = code.GetBuffer(); - } + if (g_ActiveConfig.bEnableShaderDebugging && success) + { + PixelShaders[uid].code = code.GetBuffer(); + } - GFX_DEBUGGER_PAUSE_AT(NEXT_PIXEL_SHADER_CHANGE, true); - return success; + GFX_DEBUGGER_PAUSE_AT(NEXT_PIXEL_SHADER_CHANGE, true); + return success; } bool PixelShaderCache::InsertByteCode(const PixelShaderUid &uid, const u8 *bytecode, int bytecodelen, bool activate) { - LPDIRECT3DPIXELSHADER9 shader = D3D::CreatePixelShaderFromByteCode(bytecode, bytecodelen); + LPDIRECT3DPIXELSHADER9 shader = D3D::CreatePixelShaderFromByteCode(bytecode, bytecodelen); - // Make an entry in the table - PSCacheEntry newentry; - newentry.shader = shader; - PixelShaders[uid] = newentry; - last_entry = &PixelShaders[uid]; + // Make an entry in the table + PSCacheEntry newentry; + newentry.shader = shader; + PixelShaders[uid] = newentry; + last_entry = &PixelShaders[uid]; - if (!shader) { - // INCSTAT(stats.numPixelShadersFailed); - return false; - } + if (!shader) { + // INCSTAT(stats.numPixelShadersFailed); + return false; + } - INCSTAT(stats.numPixelShadersCreated); - SETSTAT(stats.numPixelShadersAlive, PixelShaders.size()); - if (activate) - { - D3D::SetPixelShader(shader); - } - return true; + INCSTAT(stats.numPixelShadersCreated); + SETSTAT(stats.numPixelShadersAlive, PixelShaders.size()); + if (activate) + { + D3D::SetPixelShader(shader); + } + return true; } void Renderer::SetPSConstant4f(unsigned int const_number, float f1, float f2, float f3, float f4) { - float f[4] = { f1, f2, f3, f4 }; - DX9::D3D::dev->SetPixelShaderConstantF(const_number, f, 1); + float f[4] = { f1, f2, f3, f4 }; + DX9::D3D::dev->SetPixelShaderConstantF(const_number, f, 1); } void Renderer::SetPSConstant4fv(unsigned int const_number, const float *f) { - DX9::D3D::dev->SetPixelShaderConstantF(const_number, f, 1); + DX9::D3D::dev->SetPixelShaderConstantF(const_number, f, 1); } void Renderer::SetMultiPSConstant4fv(unsigned int const_number, unsigned int count, const float *f) { - DX9::D3D::dev->SetPixelShaderConstantF(const_number, f, count); + DX9::D3D::dev->SetPixelShaderConstantF(const_number, f, count); } } // namespace DX9 diff --git a/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp b/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp index 93cd7a67df..2300291e7d 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp @@ -37,251 +37,257 @@ LinearDiskCache g_vs_disk_cache; LPDIRECT3DVERTEXSHADER9 VertexShaderCache::GetSimpleVertexShader(int level) { - return SimpleVertexShader[level % MAX_SSAA_SHADERS]; + return SimpleVertexShader[level % MAX_SSAA_SHADERS]; } LPDIRECT3DVERTEXSHADER9 VertexShaderCache::GetClearVertexShader() { - return ClearVertexShader; + return ClearVertexShader; } // this class will load the precompiled shaders into our cache class VertexShaderCacheInserter : public LinearDiskCacheReader { public: - void Read(const VertexShaderUid &key, const u8 *value, u32 value_size) - { - VertexShaderCache::InsertByteCode(key, value, value_size, false); - } + void Read(const VertexShaderUid &key, const u8 *value, u32 value_size) + { + VertexShaderCache::InsertByteCode(key, value, value_size, false); + } }; void VertexShaderCache::Init() { - char* vProg = new char[2048]; - sprintf(vProg,"struct VSOUTPUT\n" - "{\n" - "float4 vPosition : POSITION;\n" - "float2 vTexCoord : TEXCOORD0;\n" - "float vTexCoord1 : TEXCOORD1;\n" - "};\n" - "VSOUTPUT main(float4 inPosition : POSITION,float2 inTEX0 : TEXCOORD0,float2 inTEX1 : TEXCOORD1,float inTEX2 : TEXCOORD2)\n" - "{\n" - "VSOUTPUT OUT;\n" - "OUT.vPosition = inPosition;\n" - "OUT.vTexCoord = inTEX0;\n" - "OUT.vTexCoord1 = inTEX2;\n" - "return OUT;\n" - "}\n"); + char* vProg = new char[2048]; + sprintf(vProg,"struct VSOUTPUT\n" + "{\n" + "float4 vPosition : POSITION;\n" + "float2 vTexCoord : TEXCOORD0;\n" + "float vTexCoord1 : TEXCOORD1;\n" + "};\n" + "VSOUTPUT main(float4 inPosition : POSITION,float2 inTEX0 : TEXCOORD0,float2 inTEX1 : TEXCOORD1,float inTEX2 : TEXCOORD2)\n" + "{\n" + "VSOUTPUT OUT;\n" + "OUT.vPosition = inPosition;\n" + "OUT.vTexCoord = inTEX0;\n" + "OUT.vTexCoord1 = inTEX2;\n" + "return OUT;\n" + "}\n"); - SimpleVertexShader[0] = D3D::CompileAndCreateVertexShader(vProg, (int)strlen(vProg)); + SimpleVertexShader[0] = D3D::CompileAndCreateVertexShader(vProg, (int)strlen(vProg)); - sprintf(vProg,"struct VSOUTPUT\n" - "{\n" - "float4 vPosition : POSITION;\n" - "float4 vColor0 : COLOR0;\n" - "};\n" - "VSOUTPUT main(float4 inPosition : POSITION,float4 inColor0: COLOR0)\n" - "{\n" - "VSOUTPUT OUT;\n" - "OUT.vPosition = inPosition;\n" - "OUT.vColor0 = inColor0;\n" - "return OUT;\n" - "}\n"); + sprintf(vProg,"struct VSOUTPUT\n" + "{\n" + "float4 vPosition : POSITION;\n" + "float4 vColor0 : COLOR0;\n" + "};\n" + "VSOUTPUT main(float4 inPosition : POSITION,float4 inColor0: COLOR0)\n" + "{\n" + "VSOUTPUT OUT;\n" + "OUT.vPosition = inPosition;\n" + "OUT.vColor0 = inColor0;\n" + "return OUT;\n" + "}\n"); - ClearVertexShader = D3D::CompileAndCreateVertexShader(vProg, (int)strlen(vProg)); - sprintf(vProg, "struct VSOUTPUT\n" - "{\n" - "float4 vPosition : POSITION;\n" - "float4 vTexCoord : TEXCOORD0;\n" - "float vTexCoord1 : TEXCOORD1;\n" - "float4 vTexCoord2 : TEXCOORD2;\n" - "float4 vTexCoord3 : TEXCOORD3;\n" - "};\n" - "VSOUTPUT main(float4 inPosition : POSITION,float2 inTEX0 : TEXCOORD0,float2 inTEX1 : TEXCOORD1,float inTEX2 : TEXCOORD2)\n" - "{\n" - "VSOUTPUT OUT;" - "OUT.vPosition = inPosition;\n" - "OUT.vTexCoord = inTEX0.xyyx;\n" - "OUT.vTexCoord1 = inTEX2.x;\n" - "OUT.vTexCoord2 = inTEX0.xyyx + (float4(-0.495f,-0.495f, 0.495f,-0.495f) * inTEX1.xyyx);\n" - "OUT.vTexCoord3 = inTEX0.xyyx + (float4( 0.495f, 0.495f,-0.495f, 0.495f) * inTEX1.xyyx);\n" - "return OUT;\n" - "}\n"); - SimpleVertexShader[1] = D3D::CompileAndCreateVertexShader(vProg, (int)strlen(vProg)); + ClearVertexShader = D3D::CompileAndCreateVertexShader(vProg, (int)strlen(vProg)); + sprintf(vProg, "struct VSOUTPUT\n" + "{\n" + "float4 vPosition : POSITION;\n" + "float4 vTexCoord : TEXCOORD0;\n" + "float vTexCoord1 : TEXCOORD1;\n" + "float4 vTexCoord2 : TEXCOORD2;\n" + "float4 vTexCoord3 : TEXCOORD3;\n" + "};\n" + "VSOUTPUT main(float4 inPosition : POSITION,float2 inTEX0 : TEXCOORD0,float2 inTEX1 : TEXCOORD1,float inTEX2 : TEXCOORD2)\n" + "{\n" + "VSOUTPUT OUT;" + "OUT.vPosition = inPosition;\n" + "OUT.vTexCoord = inTEX0.xyyx;\n" + "OUT.vTexCoord1 = inTEX2.x;\n" + "OUT.vTexCoord2 = inTEX0.xyyx + (float4(-0.495f,-0.495f, 0.495f,-0.495f) * inTEX1.xyyx);\n" + "OUT.vTexCoord3 = inTEX0.xyyx + (float4( 0.495f, 0.495f,-0.495f, 0.495f) * inTEX1.xyyx);\n" + "return OUT;\n" + "}\n"); + SimpleVertexShader[1] = D3D::CompileAndCreateVertexShader(vProg, (int)strlen(vProg)); - sprintf(vProg, "struct VSOUTPUT\n" - "{\n" - "float4 vPosition : POSITION;\n" - "float4 vTexCoord : TEXCOORD0;\n" - "float vTexCoord1 : TEXCOORD1;\n" - "float4 vTexCoord2 : TEXCOORD2;\n" - "float4 vTexCoord3 : TEXCOORD3;\n" - "};\n" - "VSOUTPUT main(float4 inPosition : POSITION,float2 inTEX0 : TEXCOORD0,float2 inTEX1 : TEXCOORD1,float inTEX2 : TEXCOORD2)\n" - "{\n" - "VSOUTPUT OUT;" - "OUT.vPosition = inPosition;\n" - "OUT.vTexCoord = inTEX0.xyyx;\n" - "OUT.vTexCoord1 = inTEX2.x;\n" - "OUT.vTexCoord2 = inTEX0.xyyx + (float4(-0.9f,-0.45f, 0.9f,-0.45f) * inTEX1.xyyx);\n" - "OUT.vTexCoord3 = inTEX0.xyyx + (float4( 0.9f, 0.45f,-0.9f, 0.45f) * inTEX1.xyyx);\n" - "return OUT;\n" - "}\n"); - SimpleVertexShader[2] = D3D::CompileAndCreateVertexShader(vProg, (int)strlen(vProg)); - - Clear(); - delete [] vProg; + sprintf(vProg, "struct VSOUTPUT\n" + "{\n" + "float4 vPosition : POSITION;\n" + "float4 vTexCoord : TEXCOORD0;\n" + "float vTexCoord1 : TEXCOORD1;\n" + "float4 vTexCoord2 : TEXCOORD2;\n" + "float4 vTexCoord3 : TEXCOORD3;\n" + "};\n" + "VSOUTPUT main(float4 inPosition : POSITION,float2 inTEX0 : TEXCOORD0,float2 inTEX1 : TEXCOORD1,float inTEX2 : TEXCOORD2)\n" + "{\n" + "VSOUTPUT OUT;" + "OUT.vPosition = inPosition;\n" + "OUT.vTexCoord = inTEX0.xyyx;\n" + "OUT.vTexCoord1 = inTEX2.x;\n" + "OUT.vTexCoord2 = inTEX0.xyyx + (float4(-0.9f,-0.45f, 0.9f,-0.45f) * inTEX1.xyyx);\n" + "OUT.vTexCoord3 = inTEX0.xyyx + (float4( 0.9f, 0.45f,-0.9f, 0.45f) * inTEX1.xyyx);\n" + "return OUT;\n" + "}\n"); + SimpleVertexShader[2] = D3D::CompileAndCreateVertexShader(vProg, (int)strlen(vProg)); - if (!File::Exists(File::GetUserPath(D_SHADERCACHE_IDX))) - File::CreateDir(File::GetUserPath(D_SHADERCACHE_IDX).c_str()); + Clear(); + delete [] vProg; - SETSTAT(stats.numVertexShadersCreated, 0); - SETSTAT(stats.numVertexShadersAlive, 0); + if (!File::Exists(File::GetUserPath(D_SHADERCACHE_IDX))) + File::CreateDir(File::GetUserPath(D_SHADERCACHE_IDX).c_str()); - char cache_filename[MAX_PATH]; - sprintf(cache_filename, "%sdx9-%s-vs.cache", File::GetUserPath(D_SHADERCACHE_IDX).c_str(), - SConfig::GetInstance().m_LocalCoreStartupParameter.m_strUniqueID.c_str()); - VertexShaderCacheInserter inserter; - g_vs_disk_cache.OpenAndRead(cache_filename, inserter); + SETSTAT(stats.numVertexShadersCreated, 0); + SETSTAT(stats.numVertexShadersAlive, 0); - if (g_Config.bEnableShaderDebugging) - Clear(); + char cache_filename[MAX_PATH]; + sprintf(cache_filename, "%sdx9-%s-vs.cache", File::GetUserPath(D_SHADERCACHE_IDX).c_str(), + SConfig::GetInstance().m_LocalCoreStartupParameter.m_strUniqueID.c_str()); + VertexShaderCacheInserter inserter; + g_vs_disk_cache.OpenAndRead(cache_filename, inserter); - last_entry = NULL; + if (g_Config.bEnableShaderDebugging) + Clear(); + + last_entry = NULL; } void VertexShaderCache::Clear() { - for (VSCache::iterator iter = vshaders.begin(); iter != vshaders.end(); ++iter) - iter->second.Destroy(); - vshaders.clear(); - vertex_uid_checker.Invalidate(); + for (VSCache::iterator iter = vshaders.begin(); iter != vshaders.end(); ++iter) + iter->second.Destroy(); + vshaders.clear(); + vertex_uid_checker.Invalidate(); - last_entry = NULL; + last_entry = NULL; } void VertexShaderCache::Shutdown() { - for (int i = 0; i < MAX_SSAA_SHADERS; i++) - { - if (SimpleVertexShader[i]) - SimpleVertexShader[i]->Release(); - SimpleVertexShader[i] = NULL; - } + for (int i = 0; i < MAX_SSAA_SHADERS; i++) + { + if (SimpleVertexShader[i]) + SimpleVertexShader[i]->Release(); + SimpleVertexShader[i] = NULL; + } - if (ClearVertexShader) - ClearVertexShader->Release(); - ClearVertexShader = NULL; - - Clear(); - g_vs_disk_cache.Sync(); - g_vs_disk_cache.Close(); + if (ClearVertexShader) + ClearVertexShader->Release(); + ClearVertexShader = NULL; + + Clear(); + g_vs_disk_cache.Sync(); + g_vs_disk_cache.Close(); } bool VertexShaderCache::SetShader(u32 components) { - VertexShaderUid uid; - GetVertexShaderUid(uid, components, API_D3D9); - if (g_ActiveConfig.bEnableShaderDebugging) - { - VertexShaderCode code; - GenerateVertexShaderCode(code, components, API_D3D9); - vertex_uid_checker.AddToIndexAndCheck(code, uid, "Vertex", "v"); - } + VertexShaderUid uid; + GetVertexShaderUid(uid, components, API_D3D9); + if (g_ActiveConfig.bEnableShaderDebugging) + { + VertexShaderCode code; + GenerateVertexShaderCode(code, components, API_D3D9); + vertex_uid_checker.AddToIndexAndCheck(code, uid, "Vertex", "v"); + } - if (last_entry) - { - if (uid == last_uid) - { - GFX_DEBUGGER_PAUSE_AT(NEXT_VERTEX_SHADER_CHANGE, true); - return (last_entry->shader != NULL); - } - } + if (last_entry) + { + if (uid == last_uid) + { + GFX_DEBUGGER_PAUSE_AT(NEXT_VERTEX_SHADER_CHANGE, true); + return (last_entry->shader != NULL); + } + } - last_uid = uid; + last_uid = uid; - VSCache::iterator iter = vshaders.find(uid); - if (iter != vshaders.end()) - { - const VSCacheEntry &entry = iter->second; - last_entry = &entry; + VSCache::iterator iter = vshaders.find(uid); + if (iter != vshaders.end()) + { + const VSCacheEntry &entry = iter->second; + last_entry = &entry; - if (entry.shader) D3D::SetVertexShader(entry.shader); - GFX_DEBUGGER_PAUSE_AT(NEXT_VERTEX_SHADER_CHANGE, true); - return (entry.shader != NULL); - } + if (entry.shader) D3D::SetVertexShader(entry.shader); + GFX_DEBUGGER_PAUSE_AT(NEXT_VERTEX_SHADER_CHANGE, true); + return (entry.shader != NULL); + } - VertexShaderCode code; - GenerateVertexShaderCode(code, components, API_D3D9); + VertexShaderCode code; + GenerateVertexShaderCode(code, components, API_D3D9); - u8 *bytecode; - int bytecodelen; - if (!D3D::CompileVertexShader(code.GetBuffer(), (int)strlen(code.GetBuffer()), &bytecode, &bytecodelen)) - { - GFX_DEBUGGER_PAUSE_AT(NEXT_ERROR, true); - return false; - } - g_vs_disk_cache.Append(uid, bytecode, bytecodelen); + u8 *bytecode; + int bytecodelen; + if (!D3D::CompileVertexShader(code.GetBuffer(), (int)strlen(code.GetBuffer()), &bytecode, &bytecodelen)) + { + GFX_DEBUGGER_PAUSE_AT(NEXT_ERROR, true); + return false; + } + g_vs_disk_cache.Append(uid, bytecode, bytecodelen); - bool success = InsertByteCode(uid, bytecode, bytecodelen, true); - if (g_ActiveConfig.bEnableShaderDebugging && success) - { - vshaders[uid].code = code.GetBuffer(); - } - delete [] bytecode; - GFX_DEBUGGER_PAUSE_AT(NEXT_VERTEX_SHADER_CHANGE, true); - return success; + bool success = InsertByteCode(uid, bytecode, bytecodelen, true); + if (g_ActiveConfig.bEnableShaderDebugging && success) + { + vshaders[uid].code = code.GetBuffer(); + } + delete [] bytecode; + GFX_DEBUGGER_PAUSE_AT(NEXT_VERTEX_SHADER_CHANGE, true); + return success; } bool VertexShaderCache::InsertByteCode(const VertexShaderUid &uid, const u8 *bytecode, int bytecodelen, bool activate) { - LPDIRECT3DVERTEXSHADER9 shader = D3D::CreateVertexShaderFromByteCode(bytecode, bytecodelen); + LPDIRECT3DVERTEXSHADER9 shader = D3D::CreateVertexShaderFromByteCode(bytecode, bytecodelen); - // Make an entry in the table - VSCacheEntry entry; - entry.shader = shader; + // Make an entry in the table + VSCacheEntry entry; + entry.shader = shader; - vshaders[uid] = entry; - last_entry = &vshaders[uid]; - if (!shader) - return false; + vshaders[uid] = entry; + last_entry = &vshaders[uid]; + if (!shader) + return false; - INCSTAT(stats.numVertexShadersCreated); - SETSTAT(stats.numVertexShadersAlive, (int)vshaders.size()); - if (activate) - { - D3D::SetVertexShader(shader); - return true; - } - return false; + INCSTAT(stats.numVertexShadersCreated); + SETSTAT(stats.numVertexShadersAlive, (int)vshaders.size()); + if (activate) + { + D3D::SetVertexShader(shader); + return true; + } + return false; } +float VSConstantbuffer[4*C_VENVCONST_END]; + void Renderer::SetVSConstant4f(unsigned int const_number, float f1, float f2, float f3, float f4) { - const float f[4] = { f1, f2, f3, f4 }; - DX9::D3D::dev->SetVertexShaderConstantF(const_number, f, 1); + float* VSConstantbuffer_pointer = &VSConstantbuffer[const_number]; + VSConstantbuffer_pointer[0] = f1; + VSConstantbuffer_pointer[1] = f2; + VSConstantbuffer_pointer[2] = f3; + VSConstantbuffer_pointer[3] = f4; + DX9::D3D::dev->SetVertexShaderConstantF(const_number, VSConstantbuffer_pointer, 1); } void Renderer::SetVSConstant4fv(unsigned int const_number, const float *f) { - DX9::D3D::dev->SetVertexShaderConstantF(const_number, f, 1); + DX9::D3D::dev->SetVertexShaderConstantF(const_number, f, 1); } void Renderer::SetMultiVSConstant3fv(unsigned int const_number, unsigned int count, const float *f) { - float buf[4*C_VENVCONST_END]; - for (unsigned int i = 0; i < count; i++) - { - buf[4*i ] = *f++; - buf[4*i+1] = *f++; - buf[4*i+2] = *f++; - buf[4*i+3] = 0.f; - } - DX9::D3D::dev->SetVertexShaderConstantF(const_number, buf, count); + float* VSConstantbuffer_pointer = &VSConstantbuffer[const_number]; + for (unsigned int i = 0; i < count; i++) + { + *VSConstantbuffer_pointer++ = *f++; + *VSConstantbuffer_pointer++ = *f++; + *VSConstantbuffer_pointer++ = *f++; + *VSConstantbuffer_pointer++ = 0.f; + } + DX9::D3D::dev->SetVertexShaderConstantF(const_number, &VSConstantbuffer[const_number], count); } void Renderer::SetMultiVSConstant4fv(unsigned int const_number, unsigned int count, const float *f) { - DX9::D3D::dev->SetVertexShaderConstantF(const_number, f, count); + DX9::D3D::dev->SetVertexShaderConstantF(const_number, f, count); } } // namespace DX9 diff --git a/Source/Plugins/Plugin_VideoDX9/Src/main.cpp b/Source/Plugins/Plugin_VideoDX9/Src/main.cpp index ab5e85d64d..3c4c66d35f 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/main.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/main.cpp @@ -50,192 +50,192 @@ namespace DX9 { -unsigned int VideoBackend::PeekMessages() -{ - MSG msg; - while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) - { - if (msg.message == WM_QUIT) - return FALSE; - TranslateMessage(&msg); - DispatchMessage(&msg); - } - return TRUE; -} - -void VideoBackend::UpdateFPSDisplay(const char *text) -{ - TCHAR temp[512]; - swprintf_s(temp, sizeof(temp)/sizeof(TCHAR), _T("%hs | DX9 | %hs"), scm_rev_str, text); - EmuWindow::SetWindowText(temp); -} - -std::string VideoBackend::GetName() -{ - return "DX9"; -} - -std::string VideoBackend::GetDisplayName() -{ - return "Direct3D9 (deprecated)"; -} - -void InitBackendInfo() -{ - DX9::D3D::Init(); - D3DCAPS9 device_caps = DX9::D3D::GetCaps(); - const int shaderModel = ((device_caps.PixelShaderVersion >> 8) & 0xFF); - const int maxConstants = (shaderModel < 3) ? 32 : ((shaderModel < 4) ? 224 : 65536); - g_Config.backend_info.APIType = shaderModel < 3 ? API_D3D9_SM20 : API_D3D9_SM30; - g_Config.backend_info.bUseRGBATextures = false; - g_Config.backend_info.bUseMinimalMipCount = true; - g_Config.backend_info.bSupports3DVision = true; - g_Config.backend_info.bSupportsPrimitiveRestart = false; // TODO: figure out if it does - g_Config.backend_info.bSupportsSeparateAlphaFunction = device_caps.PrimitiveMiscCaps & D3DPMISCCAPS_SEPARATEALPHABLEND; - // Dual source blend disabled by default until a proper method to test for support is found - g_Config.backend_info.bSupports3DVision = true; - OSVERSIONINFO info; - ZeroMemory(&info, sizeof(OSVERSIONINFO)); - info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - if (GetVersionEx(&info)) + unsigned int VideoBackend::PeekMessages() { + MSG msg; + while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) + { + if (msg.message == WM_QUIT) + return FALSE; + TranslateMessage(&msg); + DispatchMessage(&msg); + } + return TRUE; + } + + void VideoBackend::UpdateFPSDisplay(const char *text) + { + TCHAR temp[512]; + swprintf_s(temp, sizeof(temp)/sizeof(TCHAR), _T("%hs | DX9 | %hs"), scm_rev_str, text); + EmuWindow::SetWindowText(temp); + } + + std::string VideoBackend::GetName() + { + return "DX9"; + } + + std::string VideoBackend::GetDisplayName() + { + return "Direct3D9 (deprecated)"; + } + + void InitBackendInfo() + { + DX9::D3D::Init(); + D3DCAPS9 device_caps = DX9::D3D::GetCaps(); + const int shaderModel = ((device_caps.PixelShaderVersion >> 8) & 0xFF); + const int maxConstants = (shaderModel < 3) ? 32 : ((shaderModel < 4) ? 224 : 65536); + g_Config.backend_info.APIType = shaderModel < 3 ? API_D3D9_SM20 : API_D3D9_SM30; + g_Config.backend_info.bUseRGBATextures = false; + g_Config.backend_info.bUseMinimalMipCount = true; + g_Config.backend_info.bSupports3DVision = true; + g_Config.backend_info.bSupportsPrimitiveRestart = false; // D3D9 does not support primitive restart + g_Config.backend_info.bSupportsSeparateAlphaFunction = device_caps.PrimitiveMiscCaps & D3DPMISCCAPS_SEPARATEALPHABLEND; + // Dual source blend disabled by default until a proper method to test for support is found + g_Config.backend_info.bSupports3DVision = true; + OSVERSIONINFO info; + ZeroMemory(&info, sizeof(OSVERSIONINFO)); + info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + if (GetVersionEx(&info)) + { // dual source blending is only supported in windows 7 o newer. sorry xp users // we cannot test for device caps because most drivers just declare the minimun caps // and don't expose their support for some functionalities g_Config.backend_info.bSupportsDualSourceBlend = g_Config.backend_info.bSupportsSeparateAlphaFunction && (info.dwPlatformId == VER_PLATFORM_WIN32_NT) && ((info.dwMajorVersion > 6) || ((info.dwMajorVersion == 6) && info.dwMinorVersion >= 1)); - } - else - { + } + else + { g_Config.backend_info.bSupportsDualSourceBlend = false; + } + g_Config.backend_info.bSupportsFormatReinterpretation = true; + g_Config.backend_info.bSupportsPixelLighting = C_PLIGHTS + 40 <= maxConstants && C_PMATERIALS + 4 <= maxConstants; + g_Config.backend_info.bSupportsEarlyZ = false; + + // adapters + g_Config.backend_info.Adapters.clear(); + for (int i = 0; i < DX9::D3D::GetNumAdapters(); ++i) + g_Config.backend_info.Adapters.push_back(DX9::D3D::GetAdapter(i).ident.Description); + + // aamodes + g_Config.backend_info.AAModes.clear(); + if (g_Config.iAdapter < DX9::D3D::GetNumAdapters()) + { + const DX9::D3D::Adapter &adapter = DX9::D3D::GetAdapter(g_Config.iAdapter); + + for (int i = 0; i < (int)adapter.aa_levels.size(); ++i) + g_Config.backend_info.AAModes.push_back(adapter.aa_levels[i].name); + } + + // Clear ppshaders string vector + g_Config.backend_info.PPShaders.clear(); + + DX9::D3D::Shutdown(); } - g_Config.backend_info.bSupportsFormatReinterpretation = true; - g_Config.backend_info.bSupportsPixelLighting = C_PLIGHTS + 40 <= maxConstants && C_PMATERIALS + 4 <= maxConstants; - g_Config.backend_info.bSupportsEarlyZ = false; - // adapters - g_Config.backend_info.Adapters.clear(); - for (int i = 0; i < DX9::D3D::GetNumAdapters(); ++i) - g_Config.backend_info.Adapters.push_back(DX9::D3D::GetAdapter(i).ident.Description); - - // aamodes - g_Config.backend_info.AAModes.clear(); - if (g_Config.iAdapter < DX9::D3D::GetNumAdapters()) - { - const DX9::D3D::Adapter &adapter = DX9::D3D::GetAdapter(g_Config.iAdapter); - - for (int i = 0; i < (int)adapter.aa_levels.size(); ++i) - g_Config.backend_info.AAModes.push_back(adapter.aa_levels[i].name); - } - - // Clear ppshaders string vector - g_Config.backend_info.PPShaders.clear(); - - DX9::D3D::Shutdown(); -} - -void VideoBackend::ShowConfig(void* parent) -{ + void VideoBackend::ShowConfig(void* parent) + { #if defined(HAVE_WX) && HAVE_WX - InitBackendInfo(); - VideoConfigDiag diag((wxWindow*)parent, _trans("Direct3D9"), "gfx_dx9"); - diag.ShowModal(); + InitBackendInfo(); + VideoConfigDiag diag((wxWindow*)parent, _trans("Direct3D9"), "gfx_dx9"); + diag.ShowModal(); #endif -} + } -bool VideoBackend::Initialize(void *&window_handle) -{ - InitializeShared(); - InitBackendInfo(); + bool VideoBackend::Initialize(void *&window_handle) + { + InitializeShared(); + InitBackendInfo(); - frameCount = 0; + frameCount = 0; - g_Config.Load((File::GetUserPath(D_CONFIG_IDX) + "gfx_dx9.ini").c_str()); - g_Config.GameIniLoad(SConfig::GetInstance().m_LocalCoreStartupParameter.m_strGameIni.c_str()); - g_Config.UpdateProjectionHack(); - g_Config.VerifyValidity(); - // as only some driver/hardware configurations support dual source blending only enable it if is - // configured by user - g_Config.backend_info.bSupportsDualSourceBlend &= g_Config.bForceDualSourceBlend; - UpdateActiveConfig(); + g_Config.Load((File::GetUserPath(D_CONFIG_IDX) + "gfx_dx9.ini").c_str()); + g_Config.GameIniLoad(SConfig::GetInstance().m_LocalCoreStartupParameter.m_strGameIni.c_str()); + g_Config.UpdateProjectionHack(); + g_Config.VerifyValidity(); + // as only some driver/hardware configurations support dual source blending only enable it if is + // configured by user + g_Config.backend_info.bSupportsDualSourceBlend &= g_Config.bForceDualSourceBlend; + UpdateActiveConfig(); - window_handle = (void*)EmuWindow::Create((HWND)window_handle, GetModuleHandle(0), _T("Loading - Please wait.")); - if (window_handle == NULL) - { - ERROR_LOG(VIDEO, "An error has occurred while trying to create the window."); - return false; - } - else if (FAILED(DX9::D3D::Init())) - { - MessageBox(GetActiveWindow(), _T("Unable to initialize Direct3D. Please make sure that you have the latest version of DirectX 9.0c correctly installed."), _T("Fatal Error"), MB_ICONERROR|MB_OK); - return false; - } + window_handle = (void*)EmuWindow::Create((HWND)window_handle, GetModuleHandle(0), _T("Loading - Please wait.")); + if (window_handle == NULL) + { + ERROR_LOG(VIDEO, "An error has occurred while trying to create the window."); + return false; + } + else if (FAILED(DX9::D3D::Init())) + { + MessageBox(GetActiveWindow(), _T("Unable to initialize Direct3D. Please make sure that you have the latest version of DirectX 9.0c correctly installed."), _T("Fatal Error"), MB_ICONERROR|MB_OK); + return false; + } - s_BackendInitialized = true; + s_BackendInitialized = true; - return true; -} + return true; + } -void VideoBackend::Video_Prepare() -{ - // Better be safe... - s_efbAccessRequested = FALSE; - s_FifoShuttingDown = FALSE; - s_swapRequested = FALSE; + void VideoBackend::Video_Prepare() + { + // Better be safe... + s_efbAccessRequested = FALSE; + s_FifoShuttingDown = FALSE; + s_swapRequested = FALSE; - // internal interfaces - g_vertex_manager = new VertexManager; - g_perf_query = new PerfQuery; - g_renderer = new Renderer; - g_texture_cache = new TextureCache; - // VideoCommon - BPInit(); - Fifo_Init(); - IndexGenerator::Init(); - VertexLoaderManager::Init(); - OpcodeDecoder_Init(); - VertexShaderManager::Init(); - PixelShaderManager::Init(); - CommandProcessor::Init(); - PixelEngine::Init(); - DLCache::Init(); - // Notify the core that the video backend is ready - Host_Message(WM_USER_CREATE); -} + // internal interfaces + g_vertex_manager = new VertexManager; + g_perf_query = new PerfQuery; + g_renderer = new Renderer; + g_texture_cache = new TextureCache; + // VideoCommon + BPInit(); + Fifo_Init(); + IndexGenerator::Init(); + VertexLoaderManager::Init(); + OpcodeDecoder_Init(); + VertexShaderManager::Init(); + PixelShaderManager::Init(); + CommandProcessor::Init(); + PixelEngine::Init(); + DLCache::Init(); + // Notify the core that the video backend is ready + Host_Message(WM_USER_CREATE); + } -void VideoBackend::Shutdown() -{ - s_BackendInitialized = false; + void VideoBackend::Shutdown() + { + s_BackendInitialized = false; - // TODO: should be in Video_Cleanup - if (g_renderer) - { - s_efbAccessRequested = FALSE; - s_FifoShuttingDown = FALSE; - s_swapRequested = FALSE; + // TODO: should be in Video_Cleanup + if (g_renderer) + { + s_efbAccessRequested = FALSE; + s_FifoShuttingDown = FALSE; + s_swapRequested = FALSE; - // VideoCommon - DLCache::Shutdown(); - Fifo_Shutdown(); - CommandProcessor::Shutdown(); - PixelShaderManager::Shutdown(); - VertexShaderManager::Shutdown(); - OpcodeDecoder_Shutdown(); - VertexLoaderManager::Shutdown(); + // VideoCommon + DLCache::Shutdown(); + Fifo_Shutdown(); + CommandProcessor::Shutdown(); + PixelShaderManager::Shutdown(); + VertexShaderManager::Shutdown(); + OpcodeDecoder_Shutdown(); + VertexLoaderManager::Shutdown(); - // internal interfaces - PixelShaderCache::Shutdown(); - VertexShaderCache::Shutdown(); - delete g_texture_cache; - delete g_renderer; - delete g_perf_query; - delete g_vertex_manager; - g_renderer = NULL; - g_texture_cache = NULL; - } - D3D::Shutdown(); -} + // internal interfaces + PixelShaderCache::Shutdown(); + VertexShaderCache::Shutdown(); + delete g_texture_cache; + delete g_renderer; + delete g_perf_query; + delete g_vertex_manager; + g_renderer = NULL; + g_texture_cache = NULL; + } + D3D::Shutdown(); + } -void VideoBackend::Video_Cleanup() { -} + void VideoBackend::Video_Cleanup() { + } } From 1de39a4a6e6b5ef3ec55bd717d4ba02c02ff8d29 Mon Sep 17 00:00:00 2001 From: Rodolfo Bogado Date: Thu, 15 Aug 2013 15:40:57 -0300 Subject: [PATCH 07/27] Revert wrong indentation of some files. sorry for that one i was really convinced that i read that spaces must be used instead of tabs :) --- .../Plugin_VideoDX9/Src/PixelShaderCache.cpp | 562 ++--- Source/Plugins/Plugin_VideoDX9/Src/Render.cpp | 2092 ++++++++--------- .../Plugin_VideoDX9/Src/VertexManager.cpp | 676 +++--- .../Plugin_VideoDX9/Src/VertexShaderCache.cpp | 362 +-- Source/Plugins/Plugin_VideoDX9/Src/main.cpp | 324 +-- 5 files changed, 2008 insertions(+), 2008 deletions(-) diff --git a/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp b/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp index 527fe5d177..ea6503e9e0 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/PixelShaderCache.cpp @@ -40,15 +40,15 @@ static std::set unique_shaders; #define MAX_SSAA_SHADERS 3 enum { - COPY_TYPE_DIRECT, - COPY_TYPE_MATRIXCOLOR, - NUM_COPY_TYPES + COPY_TYPE_DIRECT, + COPY_TYPE_MATRIXCOLOR, + NUM_COPY_TYPES }; enum { - DEPTH_CONVERSION_TYPE_NONE, - DEPTH_CONVERSION_TYPE_ON, - NUM_DEPTH_CONVERSION_TYPES + DEPTH_CONVERSION_TYPE_NONE, + DEPTH_CONVERSION_TYPE_ON, + NUM_DEPTH_CONVERSION_TYPES }; static LPDIRECT3DPIXELSHADER9 s_CopyProgram[NUM_COPY_TYPES][NUM_DEPTH_CONVERSION_TYPES][MAX_SSAA_SHADERS]; @@ -59,30 +59,30 @@ static LPDIRECT3DPIXELSHADER9 s_rgb8_to_rgba6 = NULL; class PixelShaderCacheInserter : public LinearDiskCacheReader { public: - void Read(const PixelShaderUid &key, const u8 *value, u32 value_size) - { - PixelShaderCache::InsertByteCode(key, value, value_size, false); - } + void Read(const PixelShaderUid &key, const u8 *value, u32 value_size) + { + PixelShaderCache::InsertByteCode(key, value, value_size, false); + } }; LPDIRECT3DPIXELSHADER9 PixelShaderCache::GetColorMatrixProgram(int SSAAMode) { - return s_CopyProgram[COPY_TYPE_MATRIXCOLOR][DEPTH_CONVERSION_TYPE_NONE][SSAAMode % MAX_SSAA_SHADERS]; + return s_CopyProgram[COPY_TYPE_MATRIXCOLOR][DEPTH_CONVERSION_TYPE_NONE][SSAAMode % MAX_SSAA_SHADERS]; } LPDIRECT3DPIXELSHADER9 PixelShaderCache::GetDepthMatrixProgram(int SSAAMode, bool depthConversion) { - return s_CopyProgram[COPY_TYPE_MATRIXCOLOR][depthConversion ? DEPTH_CONVERSION_TYPE_ON : DEPTH_CONVERSION_TYPE_NONE][SSAAMode % MAX_SSAA_SHADERS]; + return s_CopyProgram[COPY_TYPE_MATRIXCOLOR][depthConversion ? DEPTH_CONVERSION_TYPE_ON : DEPTH_CONVERSION_TYPE_NONE][SSAAMode % MAX_SSAA_SHADERS]; } LPDIRECT3DPIXELSHADER9 PixelShaderCache::GetColorCopyProgram(int SSAAMode) { - return s_CopyProgram[COPY_TYPE_DIRECT][DEPTH_CONVERSION_TYPE_NONE][SSAAMode % MAX_SSAA_SHADERS]; + return s_CopyProgram[COPY_TYPE_DIRECT][DEPTH_CONVERSION_TYPE_NONE][SSAAMode % MAX_SSAA_SHADERS]; } LPDIRECT3DPIXELSHADER9 PixelShaderCache::GetClearProgram() { - return s_ClearProgram; + return s_ClearProgram; } static LPDIRECT3DPIXELSHADER9 s_rgb8 = NULL; @@ -90,360 +90,360 @@ static LPDIRECT3DPIXELSHADER9 s_rgba6 = NULL; LPDIRECT3DPIXELSHADER9 PixelShaderCache::ReinterpRGBA6ToRGB8() { - const char code[] = - { - "uniform sampler samp0 : register(s0);\n" - "void main(\n" - " out float4 ocol0 : COLOR0,\n" - " in float2 uv0 : TEXCOORD0){\n" - " ocol0 = tex2D(samp0,uv0);\n" - " float4 src6 = round(ocol0 * 63.f);\n" - " ocol0.r = floor(src6.r*4.f) + floor(src6.g/16.f);\n" // dst8r = (src6r<<2)|(src6g>>4); - " ocol0.g = frac(src6.g/16.f)*16.f*16.f + floor(src6.b/4.f);\n" // dst8g = ((src6g&0xF)<<4)|(src6b>>2); - " ocol0.b = frac(src6.b/4.f)*4.f*64.f + src6.a;\n" // dst8b = ((src6b&0x3)<<6)|src6a; - " ocol0.a = 255.f;\n" - " ocol0 /= 255.f;\n" - "}\n" - }; + const char code[] = + { + "uniform sampler samp0 : register(s0);\n" + "void main(\n" + " out float4 ocol0 : COLOR0,\n" + " in float2 uv0 : TEXCOORD0){\n" + " ocol0 = tex2D(samp0,uv0);\n" + " float4 src6 = round(ocol0 * 63.f);\n" + " ocol0.r = floor(src6.r*4.f) + floor(src6.g/16.f);\n" // dst8r = (src6r<<2)|(src6g>>4); + " ocol0.g = frac(src6.g/16.f)*16.f*16.f + floor(src6.b/4.f);\n" // dst8g = ((src6g&0xF)<<4)|(src6b>>2); + " ocol0.b = frac(src6.b/4.f)*4.f*64.f + src6.a;\n" // dst8b = ((src6b&0x3)<<6)|src6a; + " ocol0.a = 255.f;\n" + " ocol0 /= 255.f;\n" + "}\n" + }; - if (!s_rgba6_to_rgb8) - s_rgba6_to_rgb8 = D3D::CompileAndCreatePixelShader(code, (int)strlen(code)); + if (!s_rgba6_to_rgb8) + s_rgba6_to_rgb8 = D3D::CompileAndCreatePixelShader(code, (int)strlen(code)); - return s_rgba6_to_rgb8; + return s_rgba6_to_rgb8; } LPDIRECT3DPIXELSHADER9 PixelShaderCache::ReinterpRGB8ToRGBA6() { - /* old code here for reference - const char code[] = - { - "uniform sampler samp0 : register(s0);\n" - "void main(\n" - " out float4 ocol0 : COLOR0,\n" - " in float2 uv0 : TEXCOORD0){\n" - " ocol0 = tex2D(samp0,uv0);\n" - " float4 src8 = round(ocol0*255.f);\n" - " ocol0.r = floor(src8.r/4.f);\n" // dst6r = src8r>>2; - " ocol0.g = frac(src8.r/4.f)*4.f*16.f + floor(src8.g/16.f);\n" // dst6g = ((src8r&0x3)<<4)|(src8g>>4); - " ocol0.b = frac(src8.g/16.f)*16.f*4.f + floor(src8.b/64.f);\n" // dst6b = ((src8g&0xF)<<2)|(src8b>>6); - " ocol0.a = frac(src8.b/64.f)*64.f;\n" // dst6a = src8b&0x3F; - " ocol0 /= 63.f;\n" - "}\n" - }; - */ - const char code[] = - { - "uniform sampler samp0 : register(s0);\n" - "void main(\n" - "out float4 ocol0 : COLOR0,\n" - "in float2 uv0 : TEXCOORD0){\n" - "float4 temp1 = float4(1.0f/4.0f,1.0f/16.0f,1.0f/64.0f,0.0f);\n" - "float4 temp2 = float4(1.0f,64.0f,255.0f,1.0f/63.0f);\n" - "float4 src8 = round(tex2D(samp0,uv0)*temp2.z) * temp1;\n" - "ocol0 = (frac(src8.wxyz) * temp2.xyyy + floor(src8)) * temp2.w;\n" - "}\n" - }; - if (!s_rgb8_to_rgba6) s_rgb8_to_rgba6 = D3D::CompileAndCreatePixelShader(code, (int)strlen(code)); - return s_rgb8_to_rgba6; + /* old code here for reference + const char code[] = + { + "uniform sampler samp0 : register(s0);\n" + "void main(\n" + " out float4 ocol0 : COLOR0,\n" + " in float2 uv0 : TEXCOORD0){\n" + " ocol0 = tex2D(samp0,uv0);\n" + " float4 src8 = round(ocol0*255.f);\n" + " ocol0.r = floor(src8.r/4.f);\n" // dst6r = src8r>>2; + " ocol0.g = frac(src8.r/4.f)*4.f*16.f + floor(src8.g/16.f);\n" // dst6g = ((src8r&0x3)<<4)|(src8g>>4); + " ocol0.b = frac(src8.g/16.f)*16.f*4.f + floor(src8.b/64.f);\n" // dst6b = ((src8g&0xF)<<2)|(src8b>>6); + " ocol0.a = frac(src8.b/64.f)*64.f;\n" // dst6a = src8b&0x3F; + " ocol0 /= 63.f;\n" + "}\n" + }; + */ + const char code[] = + { + "uniform sampler samp0 : register(s0);\n" + "void main(\n" + "out float4 ocol0 : COLOR0,\n" + "in float2 uv0 : TEXCOORD0){\n" + "float4 temp1 = float4(1.0f/4.0f,1.0f/16.0f,1.0f/64.0f,0.0f);\n" + "float4 temp2 = float4(1.0f,64.0f,255.0f,1.0f/63.0f);\n" + "float4 src8 = round(tex2D(samp0,uv0)*temp2.z) * temp1;\n" + "ocol0 = (frac(src8.wxyz) * temp2.xyyy + floor(src8)) * temp2.w;\n" + "}\n" + }; + if (!s_rgb8_to_rgba6) s_rgb8_to_rgba6 = D3D::CompileAndCreatePixelShader(code, (int)strlen(code)); + return s_rgb8_to_rgba6; } #define WRITE p+=sprintf static LPDIRECT3DPIXELSHADER9 CreateCopyShader(int copyMatrixType, int depthConversionType, int SSAAMode) { - //Used for Copy/resolve the color buffer - //Color conversion Programs - //Depth copy programs - // this should create the same shaders as before (plus some extras added for DF16), just... more manageably than listing the full program for each combination - char text[3072]; + //Used for Copy/resolve the color buffer + //Color conversion Programs + //Depth copy programs + // this should create the same shaders as before (plus some extras added for DF16), just... more manageably than listing the full program for each combination + char text[3072]; - locale_t locale = newlocale(LC_NUMERIC_MASK, "C", NULL); // New locale for compilation - locale_t old_locale = uselocale(locale); // Apply the locale for this thread - text[sizeof(text) - 1] = 0x7C; // canary + locale_t locale = newlocale(LC_NUMERIC_MASK, "C", NULL); // New locale for compilation + locale_t old_locale = uselocale(locale); // Apply the locale for this thread + text[sizeof(text) - 1] = 0x7C; // canary - char* p = text; - WRITE(p, "// Copy/Color Matrix/Depth Matrix shader (matrix=%d, depth=%d, ssaa=%d)\n", copyMatrixType, depthConversionType, SSAAMode); + char* p = text; + WRITE(p, "// Copy/Color Matrix/Depth Matrix shader (matrix=%d, depth=%d, ssaa=%d)\n", copyMatrixType, depthConversionType, SSAAMode); - WRITE(p, "uniform sampler samp0 : register(s0);\n"); - if(copyMatrixType == COPY_TYPE_MATRIXCOLOR) - WRITE(p, "uniform float4 cColMatrix[7] : register(c%d);\n", C_COLORMATRIX); - WRITE(p, "void main(\n" - "out float4 ocol0 : COLOR0,\n"); + WRITE(p, "uniform sampler samp0 : register(s0);\n"); + if(copyMatrixType == COPY_TYPE_MATRIXCOLOR) + WRITE(p, "uniform float4 cColMatrix[7] : register(c%d);\n", C_COLORMATRIX); + WRITE(p, "void main(\n" + "out float4 ocol0 : COLOR0,\n"); - switch(SSAAMode % MAX_SSAA_SHADERS) - { - case 0: // 1 Sample - WRITE(p, "in float2 uv0 : TEXCOORD0,\n" - "in float uv1 : TEXCOORD1){\n" - "float4 texcol = tex2D(samp0,uv0.xy);\n"); - break; - case 1: // 4 Samples in 4x SSAA buffer - WRITE(p, "in float4 uv0 : TEXCOORD0,\n" - "in float uv1 : TEXCOORD1,\n" - "in float4 uv2 : TEXCOORD2,\n" - "in float4 uv3 : TEXCOORD3){\n" - "float4 texcol = (tex2D(samp0,uv2.xy) + tex2D(samp0,uv2.wz) + tex2D(samp0,uv3.xy) + tex2D(samp0,uv3.wz))*0.25f;\n"); - break; - case 2: // 4 Samples in 9x SSAA buffer - WRITE(p, "in float4 uv0 : TEXCOORD0,\n" - "in float uv1 : TEXCOORD1,\n" - "in float4 uv2 : TEXCOORD2,\n" - "in float4 uv3 : TEXCOORD3){\n" - "float4 texcol = (tex2D(samp0,uv2.xy) + tex2D(samp0,uv2.wz) + tex2D(samp0,uv3.xy) + tex2D(samp0,uv3.wz))*0.25f;\n"); - break; - } + switch(SSAAMode % MAX_SSAA_SHADERS) + { + case 0: // 1 Sample + WRITE(p, "in float2 uv0 : TEXCOORD0,\n" + "in float uv1 : TEXCOORD1){\n" + "float4 texcol = tex2D(samp0,uv0.xy);\n"); + break; + case 1: // 4 Samples in 4x SSAA buffer + WRITE(p, "in float4 uv0 : TEXCOORD0,\n" + "in float uv1 : TEXCOORD1,\n" + "in float4 uv2 : TEXCOORD2,\n" + "in float4 uv3 : TEXCOORD3){\n" + "float4 texcol = (tex2D(samp0,uv2.xy) + tex2D(samp0,uv2.wz) + tex2D(samp0,uv3.xy) + tex2D(samp0,uv3.wz))*0.25f;\n"); + break; + case 2: // 4 Samples in 9x SSAA buffer + WRITE(p, "in float4 uv0 : TEXCOORD0,\n" + "in float uv1 : TEXCOORD1,\n" + "in float4 uv2 : TEXCOORD2,\n" + "in float4 uv3 : TEXCOORD3){\n" + "float4 texcol = (tex2D(samp0,uv2.xy) + tex2D(samp0,uv2.wz) + tex2D(samp0,uv3.xy) + tex2D(samp0,uv3.wz))*0.25f;\n"); + break; + } - if(depthConversionType != DEPTH_CONVERSION_TYPE_NONE) - { - // Watch out for the fire fumes effect in Metroid it's really sensitive to this, - // the lighting in RE0 is also way beyond sensitive since the "good value" is hardcoded and Dolphin is almost always off. - WRITE(p, "float4 EncodedDepth = frac(texcol.r * (16777215.f/16777216.f) * float4(1.0f,256.0f,256.0f*256.0f,1.0f));\n" - "texcol = floor(EncodedDepth * float4(256.f,256.f,256.f,15.0f)) / float4(255.0f,255.0f,255.0f,15.0f);\n"); - } - else - { - //Apply Gamma Correction - WRITE(p, "texcol = pow(texcol,uv1.xxxx);\n"); - } + if(depthConversionType != DEPTH_CONVERSION_TYPE_NONE) + { + // Watch out for the fire fumes effect in Metroid it's really sensitive to this, + // the lighting in RE0 is also way beyond sensitive since the "good value" is hardcoded and Dolphin is almost always off. + WRITE(p, "float4 EncodedDepth = frac(texcol.r * (16777215.f/16777216.f) * float4(1.0f,256.0f,256.0f*256.0f,1.0f));\n" + "texcol = floor(EncodedDepth * float4(256.f,256.f,256.f,15.0f)) / float4(255.0f,255.0f,255.0f,15.0f);\n"); + } + else + { + //Apply Gamma Correction + WRITE(p, "texcol = pow(texcol,uv1.xxxx);\n"); + } - if(copyMatrixType == COPY_TYPE_MATRIXCOLOR) - { - if(depthConversionType == DEPTH_CONVERSION_TYPE_NONE) - WRITE(p, "texcol = round(texcol * cColMatrix[5])*cColMatrix[6];\n"); + if(copyMatrixType == COPY_TYPE_MATRIXCOLOR) + { + if(depthConversionType == DEPTH_CONVERSION_TYPE_NONE) + WRITE(p, "texcol = round(texcol * cColMatrix[5])*cColMatrix[6];\n"); - WRITE(p, "ocol0 = float4(dot(texcol,cColMatrix[0]),dot(texcol,cColMatrix[1]),dot(texcol,cColMatrix[2]),dot(texcol,cColMatrix[3])) + cColMatrix[4];\n"); - } - else - WRITE(p, "ocol0 = texcol;\n"); + WRITE(p, "ocol0 = float4(dot(texcol,cColMatrix[0]),dot(texcol,cColMatrix[1]),dot(texcol,cColMatrix[2]),dot(texcol,cColMatrix[3])) + cColMatrix[4];\n"); + } + else + WRITE(p, "ocol0 = texcol;\n"); - WRITE(p, "}\n"); - if (text[sizeof(text) - 1] != 0x7C) - PanicAlert("PixelShaderCache copy shader generator - buffer too small, canary has been eaten!"); + WRITE(p, "}\n"); + if (text[sizeof(text) - 1] != 0x7C) + PanicAlert("PixelShaderCache copy shader generator - buffer too small, canary has been eaten!"); - uselocale(old_locale); // restore locale - freelocale(locale); - return D3D::CompileAndCreatePixelShader(text, (int)strlen(text)); + uselocale(old_locale); // restore locale + freelocale(locale); + return D3D::CompileAndCreatePixelShader(text, (int)strlen(text)); } void PixelShaderCache::Init() { - last_entry = NULL; + last_entry = NULL; - //program used for clear screen - { - char pprog[3072]; - sprintf(pprog, "void main(\n" - "out float4 ocol0 : COLOR0,\n" - " in float4 incol0 : COLOR0){\n" - "ocol0 = incol0;\n" - "}\n"); - s_ClearProgram = D3D::CompileAndCreatePixelShader(pprog, (int)strlen(pprog)); - } + //program used for clear screen + { + char pprog[3072]; + sprintf(pprog, "void main(\n" + "out float4 ocol0 : COLOR0,\n" + " in float4 incol0 : COLOR0){\n" + "ocol0 = incol0;\n" + "}\n"); + s_ClearProgram = D3D::CompileAndCreatePixelShader(pprog, (int)strlen(pprog)); + } - int shaderModel = ((D3D::GetCaps().PixelShaderVersion >> 8) & 0xFF); - int maxConstants = (shaderModel < 3) ? 32 : ((shaderModel < 4) ? 224 : 65536); + int shaderModel = ((D3D::GetCaps().PixelShaderVersion >> 8) & 0xFF); + int maxConstants = (shaderModel < 3) ? 32 : ((shaderModel < 4) ? 224 : 65536); - // other screen copy/convert programs - for(int copyMatrixType = 0; copyMatrixType < NUM_COPY_TYPES; copyMatrixType++) - { - for(int depthType = 0; depthType < NUM_DEPTH_CONVERSION_TYPES; depthType++) - { - for(int ssaaMode = 0; ssaaMode < MAX_SSAA_SHADERS; ssaaMode++) - { - if(ssaaMode && !s_CopyProgram[copyMatrixType][depthType][ssaaMode-1] - || depthType && !s_CopyProgram[copyMatrixType][depthType-1][ssaaMode] - || copyMatrixType && !s_CopyProgram[copyMatrixType-1][depthType][ssaaMode]) - { - // if it failed at a lower setting, it's going to fail here for the same reason it did there, - // so skip this attempt to avoid duplicate error messages. - s_CopyProgram[copyMatrixType][depthType][ssaaMode] = NULL; - } - else - { - s_CopyProgram[copyMatrixType][depthType][ssaaMode] = CreateCopyShader(copyMatrixType, depthType, ssaaMode); - } - } - } - } + // other screen copy/convert programs + for(int copyMatrixType = 0; copyMatrixType < NUM_COPY_TYPES; copyMatrixType++) + { + for(int depthType = 0; depthType < NUM_DEPTH_CONVERSION_TYPES; depthType++) + { + for(int ssaaMode = 0; ssaaMode < MAX_SSAA_SHADERS; ssaaMode++) + { + if(ssaaMode && !s_CopyProgram[copyMatrixType][depthType][ssaaMode-1] + || depthType && !s_CopyProgram[copyMatrixType][depthType-1][ssaaMode] + || copyMatrixType && !s_CopyProgram[copyMatrixType-1][depthType][ssaaMode]) + { + // if it failed at a lower setting, it's going to fail here for the same reason it did there, + // so skip this attempt to avoid duplicate error messages. + s_CopyProgram[copyMatrixType][depthType][ssaaMode] = NULL; + } + else + { + s_CopyProgram[copyMatrixType][depthType][ssaaMode] = CreateCopyShader(copyMatrixType, depthType, ssaaMode); + } + } + } + } - Clear(); + Clear(); - if (!File::Exists(File::GetUserPath(D_SHADERCACHE_IDX))) - File::CreateDir(File::GetUserPath(D_SHADERCACHE_IDX).c_str()); + if (!File::Exists(File::GetUserPath(D_SHADERCACHE_IDX))) + File::CreateDir(File::GetUserPath(D_SHADERCACHE_IDX).c_str()); - SETSTAT(stats.numPixelShadersCreated, 0); - SETSTAT(stats.numPixelShadersAlive, 0); + SETSTAT(stats.numPixelShadersCreated, 0); + SETSTAT(stats.numPixelShadersAlive, 0); - char cache_filename[MAX_PATH]; - sprintf(cache_filename, "%sdx9-%s-ps.cache", File::GetUserPath(D_SHADERCACHE_IDX).c_str(), - SConfig::GetInstance().m_LocalCoreStartupParameter.m_strUniqueID.c_str()); - PixelShaderCacheInserter inserter; - g_ps_disk_cache.OpenAndRead(cache_filename, inserter); + char cache_filename[MAX_PATH]; + sprintf(cache_filename, "%sdx9-%s-ps.cache", File::GetUserPath(D_SHADERCACHE_IDX).c_str(), + SConfig::GetInstance().m_LocalCoreStartupParameter.m_strUniqueID.c_str()); + PixelShaderCacheInserter inserter; + g_ps_disk_cache.OpenAndRead(cache_filename, inserter); - if (g_Config.bEnableShaderDebugging) - Clear(); + if (g_Config.bEnableShaderDebugging) + Clear(); } // ONLY to be used during shutdown. void PixelShaderCache::Clear() { - for (PSCache::iterator iter = PixelShaders.begin(); iter != PixelShaders.end(); iter++) - iter->second.Destroy(); - PixelShaders.clear(); - pixel_uid_checker.Invalidate(); + for (PSCache::iterator iter = PixelShaders.begin(); iter != PixelShaders.end(); iter++) + iter->second.Destroy(); + PixelShaders.clear(); + pixel_uid_checker.Invalidate(); - last_entry = NULL; + last_entry = NULL; } void PixelShaderCache::Shutdown() { - for(int copyMatrixType = 0; copyMatrixType < NUM_COPY_TYPES; copyMatrixType++) - for(int depthType = 0; depthType < NUM_DEPTH_CONVERSION_TYPES; depthType++) - for(int ssaaMode = 0; ssaaMode < MAX_SSAA_SHADERS; ssaaMode++) - if(s_CopyProgram[copyMatrixType][depthType][ssaaMode] - && (copyMatrixType == 0 || s_CopyProgram[copyMatrixType][depthType][ssaaMode] != s_CopyProgram[copyMatrixType-1][depthType][ssaaMode])) - s_CopyProgram[copyMatrixType][depthType][ssaaMode]->Release(); + for(int copyMatrixType = 0; copyMatrixType < NUM_COPY_TYPES; copyMatrixType++) + for(int depthType = 0; depthType < NUM_DEPTH_CONVERSION_TYPES; depthType++) + for(int ssaaMode = 0; ssaaMode < MAX_SSAA_SHADERS; ssaaMode++) + if(s_CopyProgram[copyMatrixType][depthType][ssaaMode] + && (copyMatrixType == 0 || s_CopyProgram[copyMatrixType][depthType][ssaaMode] != s_CopyProgram[copyMatrixType-1][depthType][ssaaMode])) + s_CopyProgram[copyMatrixType][depthType][ssaaMode]->Release(); - for(int copyMatrixType = 0; copyMatrixType < NUM_COPY_TYPES; copyMatrixType++) - for(int depthType = 0; depthType < NUM_DEPTH_CONVERSION_TYPES; depthType++) - for(int ssaaMode = 0; ssaaMode < MAX_SSAA_SHADERS; ssaaMode++) - s_CopyProgram[copyMatrixType][depthType][ssaaMode] = NULL; + for(int copyMatrixType = 0; copyMatrixType < NUM_COPY_TYPES; copyMatrixType++) + for(int depthType = 0; depthType < NUM_DEPTH_CONVERSION_TYPES; depthType++) + for(int ssaaMode = 0; ssaaMode < MAX_SSAA_SHADERS; ssaaMode++) + s_CopyProgram[copyMatrixType][depthType][ssaaMode] = NULL; - if (s_ClearProgram) s_ClearProgram->Release(); - s_ClearProgram = NULL; - if (s_rgb8_to_rgba6) s_rgb8_to_rgba6->Release(); - s_rgb8_to_rgba6 = NULL; - if (s_rgba6_to_rgb8) s_rgba6_to_rgb8->Release(); - s_rgba6_to_rgb8 = NULL; + if (s_ClearProgram) s_ClearProgram->Release(); + s_ClearProgram = NULL; + if (s_rgb8_to_rgba6) s_rgb8_to_rgba6->Release(); + s_rgb8_to_rgba6 = NULL; + if (s_rgba6_to_rgb8) s_rgba6_to_rgb8->Release(); + s_rgba6_to_rgb8 = NULL; - Clear(); - g_ps_disk_cache.Sync(); - g_ps_disk_cache.Close(); + Clear(); + g_ps_disk_cache.Sync(); + g_ps_disk_cache.Close(); - unique_shaders.clear(); + unique_shaders.clear(); } bool PixelShaderCache::SetShader(DSTALPHA_MODE dstAlphaMode, u32 components) { - const API_TYPE api = ((D3D::GetCaps().PixelShaderVersion >> 8) & 0xFF) < 3 ? API_D3D9_SM20 : API_D3D9_SM30; - PixelShaderUid uid; - GetPixelShaderUid(uid, dstAlphaMode, API_D3D9, components); - if (g_ActiveConfig.bEnableShaderDebugging) - { - PixelShaderCode code; - GeneratePixelShaderCode(code, dstAlphaMode, API_D3D9, components); - pixel_uid_checker.AddToIndexAndCheck(code, uid, "Pixel", "p"); - } + const API_TYPE api = ((D3D::GetCaps().PixelShaderVersion >> 8) & 0xFF) < 3 ? API_D3D9_SM20 : API_D3D9_SM30; + PixelShaderUid uid; + GetPixelShaderUid(uid, dstAlphaMode, API_D3D9, components); + if (g_ActiveConfig.bEnableShaderDebugging) + { + PixelShaderCode code; + GeneratePixelShaderCode(code, dstAlphaMode, API_D3D9, components); + pixel_uid_checker.AddToIndexAndCheck(code, uid, "Pixel", "p"); + } - // Check if the shader is already set - if (last_entry) - { - if (uid == last_uid) - { - GFX_DEBUGGER_PAUSE_AT(NEXT_PIXEL_SHADER_CHANGE, true); - return last_entry->shader != NULL; - } - } + // Check if the shader is already set + if (last_entry) + { + if (uid == last_uid) + { + GFX_DEBUGGER_PAUSE_AT(NEXT_PIXEL_SHADER_CHANGE, true); + return last_entry->shader != NULL; + } + } - last_uid = uid; + last_uid = uid; - // Check if the shader is already in the cache - PSCache::iterator iter; - iter = PixelShaders.find(uid); - if (iter != PixelShaders.end()) - { - const PSCacheEntry &entry = iter->second; - last_entry = &entry; + // Check if the shader is already in the cache + PSCache::iterator iter; + iter = PixelShaders.find(uid); + if (iter != PixelShaders.end()) + { + const PSCacheEntry &entry = iter->second; + last_entry = &entry; - if (entry.shader) D3D::SetPixelShader(entry.shader); - GFX_DEBUGGER_PAUSE_AT(NEXT_PIXEL_SHADER_CHANGE, true); - return (entry.shader != NULL); - } + if (entry.shader) D3D::SetPixelShader(entry.shader); + GFX_DEBUGGER_PAUSE_AT(NEXT_PIXEL_SHADER_CHANGE, true); + return (entry.shader != NULL); + } - // Need to compile a new shader - PixelShaderCode code; - GeneratePixelShaderCode(code, dstAlphaMode, api, components); + // Need to compile a new shader + PixelShaderCode code; + GeneratePixelShaderCode(code, dstAlphaMode, api, components); - if (g_ActiveConfig.bEnableShaderDebugging) - { - u32 code_hash = HashAdler32((const u8 *)code.GetBuffer(), strlen(code.GetBuffer())); - unique_shaders.insert(code_hash); - SETSTAT(stats.numUniquePixelShaders, unique_shaders.size()); - } + if (g_ActiveConfig.bEnableShaderDebugging) + { + u32 code_hash = HashAdler32((const u8 *)code.GetBuffer(), strlen(code.GetBuffer())); + unique_shaders.insert(code_hash); + SETSTAT(stats.numUniquePixelShaders, unique_shaders.size()); + } #if defined(_DEBUG) || defined(DEBUGFAST) - if (g_ActiveConfig.iLog & CONF_SAVESHADERS) { - static int counter = 0; - char szTemp[MAX_PATH]; - sprintf(szTemp, "%sps_%04i.txt", File::GetUserPath(D_DUMP_IDX).c_str(), counter++); + if (g_ActiveConfig.iLog & CONF_SAVESHADERS) { + static int counter = 0; + char szTemp[MAX_PATH]; + sprintf(szTemp, "%sps_%04i.txt", File::GetUserPath(D_DUMP_IDX).c_str(), counter++); - SaveData(szTemp, code.GetBuffer()); - } + SaveData(szTemp, code.GetBuffer()); + } #endif - u8 *bytecode = 0; - int bytecodelen = 0; - if (!D3D::CompilePixelShader(code.GetBuffer(), (int)strlen(code.GetBuffer()), &bytecode, &bytecodelen)) { - GFX_DEBUGGER_PAUSE_AT(NEXT_ERROR, true); - return false; - } + u8 *bytecode = 0; + int bytecodelen = 0; + if (!D3D::CompilePixelShader(code.GetBuffer(), (int)strlen(code.GetBuffer()), &bytecode, &bytecodelen)) { + GFX_DEBUGGER_PAUSE_AT(NEXT_ERROR, true); + return false; + } - // Insert the bytecode into the caches - g_ps_disk_cache.Append(uid, bytecode, bytecodelen); + // Insert the bytecode into the caches + g_ps_disk_cache.Append(uid, bytecode, bytecodelen); - // And insert it into the shader cache. - bool success = InsertByteCode(uid, bytecode, bytecodelen, true); - delete [] bytecode; + // And insert it into the shader cache. + bool success = InsertByteCode(uid, bytecode, bytecodelen, true); + delete [] bytecode; - if (g_ActiveConfig.bEnableShaderDebugging && success) - { - PixelShaders[uid].code = code.GetBuffer(); - } + if (g_ActiveConfig.bEnableShaderDebugging && success) + { + PixelShaders[uid].code = code.GetBuffer(); + } - GFX_DEBUGGER_PAUSE_AT(NEXT_PIXEL_SHADER_CHANGE, true); - return success; + GFX_DEBUGGER_PAUSE_AT(NEXT_PIXEL_SHADER_CHANGE, true); + return success; } bool PixelShaderCache::InsertByteCode(const PixelShaderUid &uid, const u8 *bytecode, int bytecodelen, bool activate) { - LPDIRECT3DPIXELSHADER9 shader = D3D::CreatePixelShaderFromByteCode(bytecode, bytecodelen); + LPDIRECT3DPIXELSHADER9 shader = D3D::CreatePixelShaderFromByteCode(bytecode, bytecodelen); - // Make an entry in the table - PSCacheEntry newentry; - newentry.shader = shader; - PixelShaders[uid] = newentry; - last_entry = &PixelShaders[uid]; + // Make an entry in the table + PSCacheEntry newentry; + newentry.shader = shader; + PixelShaders[uid] = newentry; + last_entry = &PixelShaders[uid]; - if (!shader) { - // INCSTAT(stats.numPixelShadersFailed); - return false; - } + if (!shader) { + // INCSTAT(stats.numPixelShadersFailed); + return false; + } - INCSTAT(stats.numPixelShadersCreated); - SETSTAT(stats.numPixelShadersAlive, PixelShaders.size()); - if (activate) - { - D3D::SetPixelShader(shader); - } - return true; + INCSTAT(stats.numPixelShadersCreated); + SETSTAT(stats.numPixelShadersAlive, PixelShaders.size()); + if (activate) + { + D3D::SetPixelShader(shader); + } + return true; } void Renderer::SetPSConstant4f(unsigned int const_number, float f1, float f2, float f3, float f4) { - float f[4] = { f1, f2, f3, f4 }; - DX9::D3D::dev->SetPixelShaderConstantF(const_number, f, 1); + float f[4] = { f1, f2, f3, f4 }; + DX9::D3D::dev->SetPixelShaderConstantF(const_number, f, 1); } void Renderer::SetPSConstant4fv(unsigned int const_number, const float *f) { - DX9::D3D::dev->SetPixelShaderConstantF(const_number, f, 1); + DX9::D3D::dev->SetPixelShaderConstantF(const_number, f, 1); } void Renderer::SetMultiPSConstant4fv(unsigned int const_number, unsigned int count, const float *f) { - DX9::D3D::dev->SetPixelShaderConstantF(const_number, f, count); + DX9::D3D::dev->SetPixelShaderConstantF(const_number, f, count); } } // namespace DX9 diff --git a/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp b/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp index 9fcabb4796..24b332b6ec 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp @@ -63,165 +63,165 @@ static LPDIRECT3DSURFACE9 ScreenShootMEMSurface = NULL; void SetupDeviceObjects() { - D3D::font.Init(); - VertexLoaderManager::Init(); - g_framebuffer_manager = new FramebufferManager; + D3D::font.Init(); + VertexLoaderManager::Init(); + g_framebuffer_manager = new FramebufferManager; - VertexShaderManager::Dirty(); - PixelShaderManager::Dirty(); - TextureConverter::Init(); + VertexShaderManager::Dirty(); + PixelShaderManager::Dirty(); + TextureConverter::Init(); - // To avoid shader compilation stutters, read back all shaders from cache. - VertexShaderCache::Init(); - PixelShaderCache::Init(); - g_vertex_manager->CreateDeviceObjects(); - ((PerfQuery*)g_perf_query)->CreateDeviceObjects(); - // Texture cache will recreate themselves over time. + // To avoid shader compilation stutters, read back all shaders from cache. + VertexShaderCache::Init(); + PixelShaderCache::Init(); + g_vertex_manager->CreateDeviceObjects(); + ((PerfQuery*)g_perf_query)->CreateDeviceObjects(); + // Texture cache will recreate themselves over time. } // Kill off all POOL_DEFAULT device objects. void TeardownDeviceObjects() { - if(ScreenShootMEMSurface) - ScreenShootMEMSurface->Release(); - ScreenShootMEMSurface = NULL; - D3D::dev->SetRenderTarget(0, D3D::GetBackBufferSurface()); - D3D::dev->SetDepthStencilSurface(D3D::GetBackBufferDepthSurface()); - delete g_framebuffer_manager; - ((PerfQuery*)g_perf_query)->DestroyDeviceObjects(); - D3D::font.Shutdown(); - TextureCache::Invalidate(); - VertexLoaderManager::Shutdown(); - VertexShaderCache::Shutdown(); - PixelShaderCache::Shutdown(); - TextureConverter::Shutdown(); - g_vertex_manager->DestroyDeviceObjects(); + if(ScreenShootMEMSurface) + ScreenShootMEMSurface->Release(); + ScreenShootMEMSurface = NULL; + D3D::dev->SetRenderTarget(0, D3D::GetBackBufferSurface()); + D3D::dev->SetDepthStencilSurface(D3D::GetBackBufferDepthSurface()); + delete g_framebuffer_manager; + ((PerfQuery*)g_perf_query)->DestroyDeviceObjects(); + D3D::font.Shutdown(); + TextureCache::Invalidate(); + VertexLoaderManager::Shutdown(); + VertexShaderCache::Shutdown(); + PixelShaderCache::Shutdown(); + TextureConverter::Shutdown(); + g_vertex_manager->DestroyDeviceObjects(); } // Init functions Renderer::Renderer() { - InitFPSCounter(); + InitFPSCounter(); - st = new char[32768]; + st = new char[32768]; - int fullScreenRes, x, y, w_temp, h_temp; - s_blendMode = 0; - // Multisample Anti-aliasing hasn't been implemented yet use supersamling instead - int backbuffer_ms_mode = 0; + int fullScreenRes, x, y, w_temp, h_temp; + s_blendMode = 0; + // Multisample Anti-aliasing hasn't been implemented yet use supersamling instead + int backbuffer_ms_mode = 0; - Host_GetRenderWindowSize(x, y, w_temp, h_temp); + Host_GetRenderWindowSize(x, y, w_temp, h_temp); - for (fullScreenRes = 0; fullScreenRes < (int)D3D::GetAdapter(g_ActiveConfig.iAdapter).resolutions.size(); fullScreenRes++) - { - if ((D3D::GetAdapter(g_ActiveConfig.iAdapter).resolutions[fullScreenRes].xres == w_temp) && - (D3D::GetAdapter(g_ActiveConfig.iAdapter).resolutions[fullScreenRes].yres == h_temp)) - break; - } - if (fullScreenRes == D3D::GetAdapter(g_ActiveConfig.iAdapter).resolutions.size()) - fullScreenRes = 0; + for (fullScreenRes = 0; fullScreenRes < (int)D3D::GetAdapter(g_ActiveConfig.iAdapter).resolutions.size(); fullScreenRes++) + { + if ((D3D::GetAdapter(g_ActiveConfig.iAdapter).resolutions[fullScreenRes].xres == w_temp) && + (D3D::GetAdapter(g_ActiveConfig.iAdapter).resolutions[fullScreenRes].yres == h_temp)) + break; + } + if (fullScreenRes == D3D::GetAdapter(g_ActiveConfig.iAdapter).resolutions.size()) + fullScreenRes = 0; - D3D::Create(g_ActiveConfig.iAdapter, EmuWindow::GetWnd(), - fullScreenRes, backbuffer_ms_mode, false); + D3D::Create(g_ActiveConfig.iAdapter, EmuWindow::GetWnd(), + fullScreenRes, backbuffer_ms_mode, false); - IS_AMD = D3D::IsATIDevice(); + IS_AMD = D3D::IsATIDevice(); - // Decide framebuffer size - s_backbuffer_width = D3D::GetBackBufferWidth(); - s_backbuffer_height = D3D::GetBackBufferHeight(); + // Decide framebuffer size + s_backbuffer_width = D3D::GetBackBufferWidth(); + s_backbuffer_height = D3D::GetBackBufferHeight(); - FramebufferManagerBase::SetLastXfbWidth(MAX_XFB_WIDTH); - FramebufferManagerBase::SetLastXfbHeight(MAX_XFB_HEIGHT); + FramebufferManagerBase::SetLastXfbWidth(MAX_XFB_WIDTH); + FramebufferManagerBase::SetLastXfbHeight(MAX_XFB_HEIGHT); - UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); + UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); - s_LastAA = g_ActiveConfig.iMultisampleMode; - int SupersampleCoeficient = (s_LastAA % 3) + 1; + s_LastAA = g_ActiveConfig.iMultisampleMode; + int SupersampleCoeficient = (s_LastAA % 3) + 1; - s_LastEFBScale = g_ActiveConfig.iEFBScale; - CalculateTargetSize(s_backbuffer_width, s_backbuffer_height, SupersampleCoeficient); + s_LastEFBScale = g_ActiveConfig.iEFBScale; + CalculateTargetSize(s_backbuffer_width, s_backbuffer_height, SupersampleCoeficient); - // Make sure to use valid texture sizes - D3D::FixTextureSize(s_target_width, s_target_height); + // Make sure to use valid texture sizes + D3D::FixTextureSize(s_target_width, s_target_height); - // We're not using fixed function. - // Let's just set the matrices to identity to be sure. - D3DXMATRIX mtx; - D3DXMatrixIdentity(&mtx); - D3D::dev->SetTransform(D3DTS_VIEW, &mtx); - D3D::dev->SetTransform(D3DTS_WORLD, &mtx); + // We're not using fixed function. + // Let's just set the matrices to identity to be sure. + D3DXMATRIX mtx; + D3DXMatrixIdentity(&mtx); + D3D::dev->SetTransform(D3DTS_VIEW, &mtx); + D3D::dev->SetTransform(D3DTS_WORLD, &mtx); - SetupDeviceObjects(); + SetupDeviceObjects(); - for (int stage = 0; stage < 8; stage++) - D3D::SetSamplerState(stage, D3DSAMP_MAXANISOTROPY, 1 << g_ActiveConfig.iMaxAnisotropy); + for (int stage = 0; stage < 8; stage++) + D3D::SetSamplerState(stage, D3DSAMP_MAXANISOTROPY, 1 << g_ActiveConfig.iMaxAnisotropy); - D3DVIEWPORT9 vp; - vp.X = 0; - vp.Y = 0; - vp.Width = s_backbuffer_width; - vp.Height = s_backbuffer_height; - vp.MinZ = 0.0f; - vp.MaxZ = 1.0f; - D3D::dev->SetViewport(&vp); - D3D::dev->Clear(0, NULL, D3DCLEAR_TARGET, 0x0, 0, 0); + D3DVIEWPORT9 vp; + vp.X = 0; + vp.Y = 0; + vp.Width = s_backbuffer_width; + vp.Height = s_backbuffer_height; + vp.MinZ = 0.0f; + vp.MaxZ = 1.0f; + D3D::dev->SetViewport(&vp); + D3D::dev->Clear(0, NULL, D3DCLEAR_TARGET, 0x0, 0, 0); - D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorRTSurface()); - D3D::dev->SetDepthStencilSurface(FramebufferManager::GetEFBDepthRTSurface()); - vp.X = 0; - vp.Y = 0; - vp.Width = s_target_width; - vp.Height = s_target_height; - D3D::dev->SetViewport(&vp); - D3D::dev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1.0f, 0); - D3D::BeginFrame(); - D3D::SetRenderState(D3DRS_SCISSORTESTENABLE, true); - D3D::dev->CreateOffscreenPlainSurface(s_backbuffer_width,s_backbuffer_height, D3DFMT_X8R8G8B8, D3DPOOL_SYSTEMMEM, &ScreenShootMEMSurface, NULL ); - D3D::SetRenderState(D3DRS_POINTSCALEENABLE,false); - m_fMaxPointSize = D3D::GetCaps().MaxPointSize; - // Handle VSync on/off - s_vsync = g_ActiveConfig.IsVSync(); + D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorRTSurface()); + D3D::dev->SetDepthStencilSurface(FramebufferManager::GetEFBDepthRTSurface()); + vp.X = 0; + vp.Y = 0; + vp.Width = s_target_width; + vp.Height = s_target_height; + D3D::dev->SetViewport(&vp); + D3D::dev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1.0f, 0); + D3D::BeginFrame(); + D3D::SetRenderState(D3DRS_SCISSORTESTENABLE, true); + D3D::dev->CreateOffscreenPlainSurface(s_backbuffer_width,s_backbuffer_height, D3DFMT_X8R8G8B8, D3DPOOL_SYSTEMMEM, &ScreenShootMEMSurface, NULL ); + D3D::SetRenderState(D3DRS_POINTSCALEENABLE,false); + m_fMaxPointSize = D3D::GetCaps().MaxPointSize; + // Handle VSync on/off + s_vsync = g_ActiveConfig.IsVSync(); } Renderer::~Renderer() { - TeardownDeviceObjects(); - D3D::EndFrame(); - D3D::Present(); - D3D::Close(); + TeardownDeviceObjects(); + D3D::EndFrame(); + D3D::Present(); + D3D::Close(); - delete[] st; + delete[] st; } void Renderer::RenderText(const char *text, int left, int top, u32 color) { - D3D::font.DrawTextScaled((float)left, (float)top, 20, 20, 0.0f, color, text); + D3D::font.DrawTextScaled((float)left, (float)top, 20, 20, 0.0f, color, text); } TargetRectangle Renderer::ConvertEFBRectangle(const EFBRectangle& rc) { - TargetRectangle result; - result.left = EFBToScaledX(rc.left); - result.top = EFBToScaledY(rc.top); - result.right = EFBToScaledX(rc.right); - result.bottom = EFBToScaledY(rc.bottom); - return result; + TargetRectangle result; + result.left = EFBToScaledX(rc.left); + result.top = EFBToScaledY(rc.top); + result.right = EFBToScaledX(rc.right); + result.bottom = EFBToScaledY(rc.bottom); + return result; } } void formatBufferDump(const u8* in, u8* out, int w, int h, int p) { - for (int y = 0; y < h; y++) - { - auto line = in + (h - y - 1) * p; - for (int x = 0; x < w; x++) - { - memcpy(out, line, 3); - out += 3; - line += 4; - } - } + for (int y = 0; y < h; y++) + { + auto line = in + (h - y - 1) * p; + for (int x = 0; x < w; x++) + { + memcpy(out, line, 3); + out += 3; + line += 4; + } + } } namespace DX9 @@ -231,63 +231,63 @@ namespace DX9 // size. bool Renderer::CheckForResize() { - while (EmuWindow::IsSizing()) - Sleep(10); + while (EmuWindow::IsSizing()) + Sleep(10); - if (EmuWindow::GetParentWnd()) - { - // Re-stretch window to parent window size again, if it has a parent window. - RECT rcParentWindow; - GetWindowRect(EmuWindow::GetParentWnd(), &rcParentWindow); - int width = rcParentWindow.right - rcParentWindow.left; - int height = rcParentWindow.bottom - rcParentWindow.top; - if (width != Renderer::GetBackbufferWidth() || height != Renderer::GetBackbufferHeight()) - MoveWindow(EmuWindow::GetWnd(), 0, 0, width, height, FALSE); - } + if (EmuWindow::GetParentWnd()) + { + // Re-stretch window to parent window size again, if it has a parent window. + RECT rcParentWindow; + GetWindowRect(EmuWindow::GetParentWnd(), &rcParentWindow); + int width = rcParentWindow.right - rcParentWindow.left; + int height = rcParentWindow.bottom - rcParentWindow.top; + if (width != Renderer::GetBackbufferWidth() || height != Renderer::GetBackbufferHeight()) + MoveWindow(EmuWindow::GetWnd(), 0, 0, width, height, FALSE); + } - RECT rcWindow; - GetClientRect(EmuWindow::GetWnd(), &rcWindow); - int client_width = rcWindow.right - rcWindow.left; - int client_height = rcWindow.bottom - rcWindow.top; + RECT rcWindow; + GetClientRect(EmuWindow::GetWnd(), &rcWindow); + int client_width = rcWindow.right - rcWindow.left; + int client_height = rcWindow.bottom - rcWindow.top; - // Sanity check - if ((client_width != Renderer::GetBackbufferWidth() || - client_height != Renderer::GetBackbufferHeight()) && - client_width >= 4 && client_height >= 4) - { - TeardownDeviceObjects(); + // Sanity check + if ((client_width != Renderer::GetBackbufferWidth() || + client_height != Renderer::GetBackbufferHeight()) && + client_width >= 4 && client_height >= 4) + { + TeardownDeviceObjects(); - D3D::Reset(); - s_backbuffer_width = D3D::GetBackBufferWidth(); - s_backbuffer_height = D3D::GetBackBufferHeight(); - if(ScreenShootMEMSurface) - ScreenShootMEMSurface->Release(); - D3D::dev->CreateOffscreenPlainSurface(Renderer::GetBackbufferWidth(), Renderer::GetBackbufferHeight(), - D3DFMT_X8R8G8B8, D3DPOOL_SYSTEMMEM, &ScreenShootMEMSurface, NULL ); + D3D::Reset(); + s_backbuffer_width = D3D::GetBackBufferWidth(); + s_backbuffer_height = D3D::GetBackBufferHeight(); + if(ScreenShootMEMSurface) + ScreenShootMEMSurface->Release(); + D3D::dev->CreateOffscreenPlainSurface(Renderer::GetBackbufferWidth(), Renderer::GetBackbufferHeight(), + D3DFMT_X8R8G8B8, D3DPOOL_SYSTEMMEM, &ScreenShootMEMSurface, NULL ); - return true; - } + return true; + } - return false; + return false; } void Renderer::SetScissorRect(const TargetRectangle& rc) { - D3D::dev->SetScissorRect(rc.AsRECT()); + D3D::dev->SetScissorRect(rc.AsRECT()); } void Renderer::SetColorMask() { - // Only enable alpha channel if it's supported by the current EFB format - DWORD color_mask = 0; - if (bpmem.alpha_test.TestResult() != AlphaTest::FAIL) - { - if (bpmem.blendmode.alphaupdate && (bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24)) - color_mask = D3DCOLORWRITEENABLE_ALPHA; - if (bpmem.blendmode.colorupdate) - color_mask |= D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_BLUE; - } - D3D::SetRenderState(D3DRS_COLORWRITEENABLE, color_mask); + // Only enable alpha channel if it's supported by the current EFB format + DWORD color_mask = 0; + if (bpmem.alpha_test.TestResult() != AlphaTest::FAIL) + { + if (bpmem.blendmode.alphaupdate && (bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24)) + color_mask = D3DCOLORWRITEENABLE_ALPHA; + if (bpmem.blendmode.colorupdate) + color_mask |= D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_BLUE; + } + D3D::SetRenderState(D3DRS_COLORWRITEENABLE, color_mask); } // This function allows the CPU to directly access the EFB. @@ -306,191 +306,191 @@ void Renderer::SetColorMask() // - GX_PokeZMode (TODO) u32 Renderer::AccessEFB(EFBAccessType type, u32 x, u32 y, u32 poke_data) { - if (!g_ActiveConfig.bEFBAccessEnable) - return 0; + if (!g_ActiveConfig.bEFBAccessEnable) + return 0; - if (type == POKE_Z) - { - static bool alert_only_once = true; - if (!alert_only_once) return 0; - PanicAlert("EFB: Poke Z not implemented (tried to poke z value %#x at (%d,%d))", poke_data, x, y); - alert_only_once = false; - return 0; - } + if (type == POKE_Z) + { + static bool alert_only_once = true; + if (!alert_only_once) return 0; + PanicAlert("EFB: Poke Z not implemented (tried to poke z value %#x at (%d,%d))", poke_data, x, y); + alert_only_once = false; + return 0; + } - // if depth textures aren't supported by the hardware, just return - if (type == PEEK_Z) - if (FramebufferManager::GetEFBDepthTexture() == NULL) - return 0; + // if depth textures aren't supported by the hardware, just return + if (type == PEEK_Z) + if (FramebufferManager::GetEFBDepthTexture() == NULL) + return 0; - // We're using three surfaces here: - // - pEFBSurf: EFB Surface. Source surface when peeking, destination surface when poking. - // - pBufferRT: A render target surface. When peeking, we render a textured quad to this surface. - // - pSystemBuf: An offscreen surface. Used to retrieve the pixel data from pBufferRT. - LPDIRECT3DSURFACE9 pEFBSurf, pBufferRT, pSystemBuf; - if(type == PEEK_Z || type == POKE_Z) - { - pEFBSurf = FramebufferManager::GetEFBDepthRTSurface(); - pBufferRT = FramebufferManager::GetEFBDepthReadSurface(); - pSystemBuf = FramebufferManager::GetEFBDepthOffScreenRTSurface(); - } - else //if(type == PEEK_COLOR || type == POKE_COLOR) - { - pEFBSurf = FramebufferManager::GetEFBColorRTSurface(); - pBufferRT = FramebufferManager::GetEFBColorReadSurface(); - pSystemBuf = FramebufferManager::GetEFBColorOffScreenRTSurface(); - } + // We're using three surfaces here: + // - pEFBSurf: EFB Surface. Source surface when peeking, destination surface when poking. + // - pBufferRT: A render target surface. When peeking, we render a textured quad to this surface. + // - pSystemBuf: An offscreen surface. Used to retrieve the pixel data from pBufferRT. + LPDIRECT3DSURFACE9 pEFBSurf, pBufferRT, pSystemBuf; + if(type == PEEK_Z || type == POKE_Z) + { + pEFBSurf = FramebufferManager::GetEFBDepthRTSurface(); + pBufferRT = FramebufferManager::GetEFBDepthReadSurface(); + pSystemBuf = FramebufferManager::GetEFBDepthOffScreenRTSurface(); + } + else //if(type == PEEK_COLOR || type == POKE_COLOR) + { + pEFBSurf = FramebufferManager::GetEFBColorRTSurface(); + pBufferRT = FramebufferManager::GetEFBColorReadSurface(); + pSystemBuf = FramebufferManager::GetEFBColorOffScreenRTSurface(); + } - // Buffer not found alert - if (!pEFBSurf) { - PanicAlert("No %s!", (type == PEEK_Z || type == POKE_Z) ? "Z-Buffer" : "Color EFB"); - return 0; - } + // Buffer not found alert + if (!pEFBSurf) { + PanicAlert("No %s!", (type == PEEK_Z || type == POKE_Z) ? "Z-Buffer" : "Color EFB"); + return 0; + } - // Convert EFB dimensions to the ones of our render target - EFBRectangle efbPixelRc; - efbPixelRc.left = x; - efbPixelRc.top = y; - efbPixelRc.right = x + 1; - efbPixelRc.bottom = y + 1; + // Convert EFB dimensions to the ones of our render target + EFBRectangle efbPixelRc; + efbPixelRc.left = x; + efbPixelRc.top = y; + efbPixelRc.right = x + 1; + efbPixelRc.bottom = y + 1; - TargetRectangle targetPixelRc = ConvertEFBRectangle(efbPixelRc); + TargetRectangle targetPixelRc = ConvertEFBRectangle(efbPixelRc); - HRESULT hr; - RECT RectToLock; - RectToLock.bottom = targetPixelRc.bottom; - RectToLock.left = targetPixelRc.left; - RectToLock.right = targetPixelRc.right; - RectToLock.top = targetPixelRc.top; - if (type == PEEK_Z) - { - // TODO: why is D3DFMT_D24X8 singled out here? why not D3DFMT_D24X4S4/D24S8/D24FS8/D32/D16/D15S1 too, or none of them? - if (FramebufferManager::GetEFBDepthRTSurfaceFormat() == D3DFMT_D24X8) - return 0; + HRESULT hr; + RECT RectToLock; + RectToLock.bottom = targetPixelRc.bottom; + RectToLock.left = targetPixelRc.left; + RectToLock.right = targetPixelRc.right; + RectToLock.top = targetPixelRc.top; + if (type == PEEK_Z) + { + // TODO: why is D3DFMT_D24X8 singled out here? why not D3DFMT_D24X4S4/D24S8/D24FS8/D32/D16/D15S1 too, or none of them? + if (FramebufferManager::GetEFBDepthRTSurfaceFormat() == D3DFMT_D24X8) + return 0; - RECT PixelRect; - PixelRect.bottom = 4; - PixelRect.left = 0; - PixelRect.right = 4; - PixelRect.top = 0; - RectToLock.bottom+=2; - RectToLock.right+=1; - RectToLock.top-=1; - RectToLock.left-=2; - if ((RectToLock.bottom - RectToLock.top) > 4) - RectToLock.bottom--; - if ((RectToLock.right - RectToLock.left) > 4) - RectToLock.left++; + RECT PixelRect; + PixelRect.bottom = 4; + PixelRect.left = 0; + PixelRect.right = 4; + PixelRect.top = 0; + RectToLock.bottom+=2; + RectToLock.right+=1; + RectToLock.top-=1; + RectToLock.left-=2; + if ((RectToLock.bottom - RectToLock.top) > 4) + RectToLock.bottom--; + if ((RectToLock.right - RectToLock.left) > 4) + RectToLock.left++; - ResetAPIState(); // Reset any game specific settings - D3D::dev->SetDepthStencilSurface(NULL); - D3D::dev->SetRenderTarget(0, pBufferRT); + ResetAPIState(); // Reset any game specific settings + D3D::dev->SetDepthStencilSurface(NULL); + D3D::dev->SetRenderTarget(0, pBufferRT); - // Stretch picture with increased internal resolution - D3DVIEWPORT9 vp; - vp.X = 0; - vp.Y = 0; - vp.Width = 4; - vp.Height = 4; - vp.MinZ = 0.0f; - vp.MaxZ = 1.0f; - D3D::dev->SetViewport(&vp); + // Stretch picture with increased internal resolution + D3DVIEWPORT9 vp; + vp.X = 0; + vp.Y = 0; + vp.Width = 4; + vp.Height = 4; + vp.MinZ = 0.0f; + vp.MaxZ = 1.0f; + D3D::dev->SetViewport(&vp); - float colmat[28] = {0.0f}; - colmat[0] = colmat[5] = colmat[10] = 1.0f; - PixelShaderManager::SetColorMatrix(colmat); // set transformation - LPDIRECT3DTEXTURE9 read_texture = FramebufferManager::GetEFBDepthTexture(); + float colmat[28] = {0.0f}; + colmat[0] = colmat[5] = colmat[10] = 1.0f; + PixelShaderManager::SetColorMatrix(colmat); // set transformation + LPDIRECT3DTEXTURE9 read_texture = FramebufferManager::GetEFBDepthTexture(); - D3D::ChangeSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT); + D3D::ChangeSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT); - D3DFORMAT bformat = FramebufferManager::GetEFBDepthRTSurfaceFormat(); + D3DFORMAT bformat = FramebufferManager::GetEFBDepthRTSurfaceFormat(); - D3D::drawShadedTexQuad( - read_texture, - &RectToLock, - Renderer::GetTargetWidth(), - Renderer::GetTargetHeight(), - 4, 4, - PixelShaderCache::GetDepthMatrixProgram(0, bformat != FOURCC_RAWZ), - VertexShaderCache::GetSimpleVertexShader(0)); + D3D::drawShadedTexQuad( + read_texture, + &RectToLock, + Renderer::GetTargetWidth(), + Renderer::GetTargetHeight(), + 4, 4, + PixelShaderCache::GetDepthMatrixProgram(0, bformat != FOURCC_RAWZ), + VertexShaderCache::GetSimpleVertexShader(0)); - D3D::RefreshSamplerState(0, D3DSAMP_MINFILTER); + D3D::RefreshSamplerState(0, D3DSAMP_MINFILTER); - D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorRTSurface()); - D3D::dev->SetDepthStencilSurface(FramebufferManager::GetEFBDepthRTSurface()); - RestoreAPIState(); + D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorRTSurface()); + D3D::dev->SetDepthStencilSurface(FramebufferManager::GetEFBDepthRTSurface()); + RestoreAPIState(); - // Retrieve the pixel data to the local memory buffer - RectToLock.bottom = 4; - RectToLock.left = 0; - RectToLock.right = 4; - RectToLock.top = 0; - D3D::dev->GetRenderTargetData(pBufferRT, pSystemBuf); + // Retrieve the pixel data to the local memory buffer + RectToLock.bottom = 4; + RectToLock.left = 0; + RectToLock.right = 4; + RectToLock.top = 0; + D3D::dev->GetRenderTargetData(pBufferRT, pSystemBuf); - // EFB data successfully retrieved, now get the pixel data - D3DLOCKED_RECT drect; - pSystemBuf->LockRect(&drect, &RectToLock, D3DLOCK_READONLY); - u32 z = ((u32*)drect.pBits)[6]; // 24 bit depth value - pSystemBuf->UnlockRect(); + // EFB data successfully retrieved, now get the pixel data + D3DLOCKED_RECT drect; + pSystemBuf->LockRect(&drect, &RectToLock, D3DLOCK_READONLY); + u32 z = ((u32*)drect.pBits)[6]; // 24 bit depth value + pSystemBuf->UnlockRect(); - // if Z is in 16 bit format you must return a 16 bit integer - if(bpmem.zcontrol.pixel_format == PIXELFMT_RGB565_Z16) { - z >>= 8; - } + // if Z is in 16 bit format you must return a 16 bit integer + if(bpmem.zcontrol.pixel_format == PIXELFMT_RGB565_Z16) { + z >>= 8; + } - return z; - } - else if(type == PEEK_COLOR) - { - // We can't directly StretchRect to System buf because is not supported by all implementations - // this is the only safe path that works in most cases - hr = D3D::dev->StretchRect(pEFBSurf, &RectToLock, pBufferRT, NULL, D3DTEXF_NONE); - D3D::dev->GetRenderTargetData(pBufferRT, pSystemBuf); + return z; + } + else if(type == PEEK_COLOR) + { + // We can't directly StretchRect to System buf because is not supported by all implementations + // this is the only safe path that works in most cases + hr = D3D::dev->StretchRect(pEFBSurf, &RectToLock, pBufferRT, NULL, D3DTEXF_NONE); + D3D::dev->GetRenderTargetData(pBufferRT, pSystemBuf); - // EFB data successfully retrieved, now get the pixel data - RectToLock.bottom = 1; - RectToLock.left = 0; - RectToLock.right = 1; - RectToLock.top = 0; + // EFB data successfully retrieved, now get the pixel data + RectToLock.bottom = 1; + RectToLock.left = 0; + RectToLock.right = 1; + RectToLock.top = 0; - D3DLOCKED_RECT drect; - pSystemBuf->LockRect(&drect, &RectToLock, D3DLOCK_READONLY); - u32 ret = ((u32*)drect.pBits)[0]; - pSystemBuf->UnlockRect(); + D3DLOCKED_RECT drect; + pSystemBuf->LockRect(&drect, &RectToLock, D3DLOCK_READONLY); + u32 ret = ((u32*)drect.pBits)[0]; + pSystemBuf->UnlockRect(); - // check what to do with the alpha channel (GX_PokeAlphaRead) - PixelEngine::UPEAlphaReadReg alpha_read_mode; - PixelEngine::Read16((u16&)alpha_read_mode, PE_ALPHAREAD); + // check what to do with the alpha channel (GX_PokeAlphaRead) + PixelEngine::UPEAlphaReadReg alpha_read_mode; + PixelEngine::Read16((u16&)alpha_read_mode, PE_ALPHAREAD); - if (bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24) - { - ret = RGBA8ToRGBA6ToRGBA8(ret); - } - else if (bpmem.zcontrol.pixel_format == PIXELFMT_RGB565_Z16) - { - ret = RGBA8ToRGB565ToRGBA8(ret); - } - if(bpmem.zcontrol.pixel_format != PIXELFMT_RGBA6_Z24) - { - ret |= 0xFF000000; - } + if (bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24) + { + ret = RGBA8ToRGBA6ToRGBA8(ret); + } + else if (bpmem.zcontrol.pixel_format == PIXELFMT_RGB565_Z16) + { + ret = RGBA8ToRGB565ToRGBA8(ret); + } + if(bpmem.zcontrol.pixel_format != PIXELFMT_RGBA6_Z24) + { + ret |= 0xFF000000; + } - if(alpha_read_mode.ReadMode == 2) return ret; // GX_READ_NONE - else if(alpha_read_mode.ReadMode == 1) return (ret | 0xFF000000); // GX_READ_FF - else return (ret & 0x00FFFFFF); // GX_READ_00 - } - else //if(type == POKE_COLOR) - { - // TODO: Speed this up by batching pokes? - ResetAPIState(); - D3D::drawColorQuad(poke_data, - (float)RectToLock.left * 2.f / (float)Renderer::GetTargetWidth() - 1.f, - - (float)RectToLock.top * 2.f / (float)Renderer::GetTargetHeight() + 1.f, - (float)RectToLock.right * 2.f / (float)Renderer::GetTargetWidth() - 1.f, - - (float)RectToLock.bottom * 2.f / (float)Renderer::GetTargetHeight() + 1.f); - RestoreAPIState(); - return 0; - } + if(alpha_read_mode.ReadMode == 2) return ret; // GX_READ_NONE + else if(alpha_read_mode.ReadMode == 1) return (ret | 0xFF000000); // GX_READ_FF + else return (ret & 0x00FFFFFF); // GX_READ_00 + } + else //if(type == POKE_COLOR) + { + // TODO: Speed this up by batching pokes? + ResetAPIState(); + D3D::drawColorQuad(poke_data, + (float)RectToLock.left * 2.f / (float)Renderer::GetTargetWidth() - 1.f, + - (float)RectToLock.top * 2.f / (float)Renderer::GetTargetHeight() + 1.f, + (float)RectToLock.right * 2.f / (float)Renderer::GetTargetWidth() - 1.f, + - (float)RectToLock.bottom * 2.f / (float)Renderer::GetTargetHeight() + 1.f); + RestoreAPIState(); + return 0; + } } // Viewport correction: @@ -503,884 +503,884 @@ u32 Renderer::AccessEFB(EFBAccessType type, u32 x, u32 y, u32 poke_data) // [ 0 0 1 0 ] // [ 0 0 0 1 ] static void ViewportCorrectionMatrix(Matrix44& result, - float ix, float iy, float iw, float ih, // Intended viewport (x, y, width, height) - float ax, float ay, float aw, float ah) // Actual viewport (x, y, width, height) + float ix, float iy, float iw, float ih, // Intended viewport (x, y, width, height) + float ax, float ay, float aw, float ah) // Actual viewport (x, y, width, height) { - Matrix44::LoadIdentity(result); - if (aw == 0.f || ah == 0.f) - return; - result.data[4*0+0] = iw / aw; - result.data[4*0+3] = (iw - 2.f * (ax - ix)) / aw - 1.f; - result.data[4*1+1] = ih / ah; - result.data[4*1+3] = (-ih + 2.f * (ay - iy)) / ah + 1.f; + Matrix44::LoadIdentity(result); + if (aw == 0.f || ah == 0.f) + return; + result.data[4*0+0] = iw / aw; + result.data[4*0+3] = (iw - 2.f * (ax - ix)) / aw - 1.f; + result.data[4*1+1] = ih / ah; + result.data[4*1+3] = (-ih + 2.f * (ay - iy)) / ah + 1.f; } // Called from VertexShaderManager void Renderer::UpdateViewport(Matrix44& vpCorrection) { - // reversed gxsetviewport(xorig, yorig, width, height, nearz, farz) - // [0] = width/2 - // [1] = height/2 - // [2] = 16777215 * (farz - nearz) - // [3] = xorig + width/2 + 342 - // [4] = yorig + height/2 + 342 - // [5] = 16777215 * farz + // reversed gxsetviewport(xorig, yorig, width, height, nearz, farz) + // [0] = width/2 + // [1] = height/2 + // [2] = 16777215 * (farz - nearz) + // [3] = xorig + width/2 + 342 + // [4] = yorig + height/2 + 342 + // [5] = 16777215 * farz - int scissorXOff = bpmem.scissorOffset.x * 2; - int scissorYOff = bpmem.scissorOffset.y * 2; + int scissorXOff = bpmem.scissorOffset.x * 2; + int scissorYOff = bpmem.scissorOffset.y * 2; - // TODO: ceil, floor or just cast to int? - int intendedX = EFBToScaledX((int)ceil(xfregs.viewport.xOrig - xfregs.viewport.wd - scissorXOff)); - int intendedY = EFBToScaledY((int)ceil(xfregs.viewport.yOrig + xfregs.viewport.ht - scissorYOff)); - int intendedWd = EFBToScaledX((int)ceil(2.0f * xfregs.viewport.wd)); - int intendedHt = EFBToScaledY((int)ceil(-2.0f * xfregs.viewport.ht)); - if (intendedWd < 0) - { - intendedX += intendedWd; - intendedWd = -intendedWd; - } - if (intendedHt < 0) - { - intendedY += intendedHt; - intendedHt = -intendedHt; - } + // TODO: ceil, floor or just cast to int? + int intendedX = EFBToScaledX((int)ceil(xfregs.viewport.xOrig - xfregs.viewport.wd - scissorXOff)); + int intendedY = EFBToScaledY((int)ceil(xfregs.viewport.yOrig + xfregs.viewport.ht - scissorYOff)); + int intendedWd = EFBToScaledX((int)ceil(2.0f * xfregs.viewport.wd)); + int intendedHt = EFBToScaledY((int)ceil(-2.0f * xfregs.viewport.ht)); + if (intendedWd < 0) + { + intendedX += intendedWd; + intendedWd = -intendedWd; + } + if (intendedHt < 0) + { + intendedY += intendedHt; + intendedHt = -intendedHt; + } - // In D3D, the viewport rectangle must fit within the render target. - int X = intendedX; - if (X < 0) - X = 0; - int Y = intendedY; - if (Y < 0) - Y = 0; - int Wd = intendedWd; - if (X + Wd > GetTargetWidth()) - Wd = GetTargetWidth() - X; - int Ht = intendedHt; - if (Y + Ht > GetTargetHeight()) - Ht = GetTargetHeight() - Y; + // In D3D, the viewport rectangle must fit within the render target. + int X = intendedX; + if (X < 0) + X = 0; + int Y = intendedY; + if (Y < 0) + Y = 0; + int Wd = intendedWd; + if (X + Wd > GetTargetWidth()) + Wd = GetTargetWidth() - X; + int Ht = intendedHt; + if (Y + Ht > GetTargetHeight()) + Ht = GetTargetHeight() - Y; - // If GX viewport is off the render target, we must clamp our viewport - // within the bounds. Use the correction matrix to compensate. - ViewportCorrectionMatrix(vpCorrection, - (float)intendedX, (float)intendedY, (float)intendedWd, (float)intendedHt, - (float)X, (float)Y, (float)Wd, (float)Ht); + // If GX viewport is off the render target, we must clamp our viewport + // within the bounds. Use the correction matrix to compensate. + ViewportCorrectionMatrix(vpCorrection, + (float)intendedX, (float)intendedY, (float)intendedWd, (float)intendedHt, + (float)X, (float)Y, (float)Wd, (float)Ht); - D3DVIEWPORT9 vp; - vp.X = X; - vp.Y = Y; - vp.Width = Wd; - vp.Height = Ht; + D3DVIEWPORT9 vp; + vp.X = X; + vp.Y = Y; + vp.Width = Wd; + vp.Height = Ht; - // Some games set invalids values for z min and z max so fix them to the max an min alowed and let the shaders do this work - vp.MinZ = 0.0f; // (xfregs.viewport.farZ - xfregs.viewport.zRange) / 16777216.0f; - vp.MaxZ = 1.0f; // xfregs.viewport.farZ / 16777216.0f; - D3D::dev->SetViewport(&vp); + // Some games set invalids values for z min and z max so fix them to the max an min alowed and let the shaders do this work + vp.MinZ = 0.0f; // (xfregs.viewport.farZ - xfregs.viewport.zRange) / 16777216.0f; + vp.MaxZ = 1.0f; // xfregs.viewport.farZ / 16777216.0f; + D3D::dev->SetViewport(&vp); } void Renderer::ClearScreen(const EFBRectangle& rc, bool colorEnable, bool alphaEnable, bool zEnable, u32 color, u32 z) { - // Reset rendering pipeline while keeping color masks and depth buffer settings - ResetAPIState(); + // Reset rendering pipeline while keeping color masks and depth buffer settings + ResetAPIState(); - DWORD color_mask = 0; - if (alphaEnable) - color_mask = D3DCOLORWRITEENABLE_ALPHA; - if (colorEnable) - color_mask |= D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_BLUE; - D3D::ChangeRenderState(D3DRS_COLORWRITEENABLE, color_mask); + DWORD color_mask = 0; + if (alphaEnable) + color_mask = D3DCOLORWRITEENABLE_ALPHA; + if (colorEnable) + color_mask |= D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_BLUE; + D3D::ChangeRenderState(D3DRS_COLORWRITEENABLE, color_mask); - if (zEnable) - { - D3D::ChangeRenderState(D3DRS_ZENABLE, TRUE); - D3D::ChangeRenderState(D3DRS_ZWRITEENABLE, TRUE); - D3D::ChangeRenderState(D3DRS_ZFUNC, D3DCMP_ALWAYS); - } - else - { - D3D::ChangeRenderState(D3DRS_ZENABLE, FALSE); - } + if (zEnable) + { + D3D::ChangeRenderState(D3DRS_ZENABLE, TRUE); + D3D::ChangeRenderState(D3DRS_ZWRITEENABLE, TRUE); + D3D::ChangeRenderState(D3DRS_ZFUNC, D3DCMP_ALWAYS); + } + else + { + D3D::ChangeRenderState(D3DRS_ZENABLE, FALSE); + } - // Update the viewport for clearing the target EFB rect - TargetRectangle targetRc = ConvertEFBRectangle(rc); - D3DVIEWPORT9 vp; - vp.X = targetRc.left; - vp.Y = targetRc.top; - vp.Width = targetRc.GetWidth(); - vp.Height = targetRc.GetHeight(); - vp.MinZ = 0.0; - vp.MaxZ = 1.0; - D3D::dev->SetViewport(&vp); - D3D::drawClearQuad(color, (z & 0xFFFFFF) / float(0xFFFFFF), PixelShaderCache::GetClearProgram(), VertexShaderCache::GetClearVertexShader()); - RestoreAPIState(); + // Update the viewport for clearing the target EFB rect + TargetRectangle targetRc = ConvertEFBRectangle(rc); + D3DVIEWPORT9 vp; + vp.X = targetRc.left; + vp.Y = targetRc.top; + vp.Width = targetRc.GetWidth(); + vp.Height = targetRc.GetHeight(); + vp.MinZ = 0.0; + vp.MaxZ = 1.0; + D3D::dev->SetViewport(&vp); + D3D::drawClearQuad(color, (z & 0xFFFFFF) / float(0xFFFFFF), PixelShaderCache::GetClearProgram(), VertexShaderCache::GetClearVertexShader()); + RestoreAPIState(); } void Renderer::ReinterpretPixelData(unsigned int convtype) { - RECT source; - SetRect(&source, 0, 0, g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight()); + RECT source; + SetRect(&source, 0, 0, g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight()); - LPDIRECT3DPIXELSHADER9 pixel_shader; - if (convtype == 0) pixel_shader = PixelShaderCache::ReinterpRGB8ToRGBA6(); - else if (convtype == 2) pixel_shader = PixelShaderCache::ReinterpRGBA6ToRGB8(); - else - { - ERROR_LOG(VIDEO, "Trying to reinterpret pixel data with unsupported conversion type %d", convtype); - return; - } + LPDIRECT3DPIXELSHADER9 pixel_shader; + if (convtype == 0) pixel_shader = PixelShaderCache::ReinterpRGB8ToRGBA6(); + else if (convtype == 2) pixel_shader = PixelShaderCache::ReinterpRGBA6ToRGB8(); + else + { + ERROR_LOG(VIDEO, "Trying to reinterpret pixel data with unsupported conversion type %d", convtype); + return; + } - // convert data and set the target texture as our new EFB - g_renderer->ResetAPIState(); - D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorReinterpretSurface()); - D3DVIEWPORT9 vp; - vp.X = 0; - vp.Y = 0; - vp.Width = g_renderer->GetTargetWidth(); - vp.Height = g_renderer->GetTargetHeight(); - vp.MinZ = 0.0; - vp.MaxZ = 1.0; - D3D::dev->SetViewport(&vp); - D3D::ChangeSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT); - D3D::drawShadedTexQuad(FramebufferManager::GetEFBColorTexture(), &source, - g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight(), - g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight(), - pixel_shader, VertexShaderCache::GetSimpleVertexShader(0)); - FramebufferManager::SwapReinterpretTexture(); - D3D::RefreshSamplerState(0, D3DSAMP_MINFILTER); - g_renderer->RestoreAPIState(); + // convert data and set the target texture as our new EFB + g_renderer->ResetAPIState(); + D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorReinterpretSurface()); + D3DVIEWPORT9 vp; + vp.X = 0; + vp.Y = 0; + vp.Width = g_renderer->GetTargetWidth(); + vp.Height = g_renderer->GetTargetHeight(); + vp.MinZ = 0.0; + vp.MaxZ = 1.0; + D3D::dev->SetViewport(&vp); + D3D::ChangeSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT); + D3D::drawShadedTexQuad(FramebufferManager::GetEFBColorTexture(), &source, + g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight(), + g_renderer->GetTargetWidth(), g_renderer->GetTargetHeight(), + pixel_shader, VertexShaderCache::GetSimpleVertexShader(0)); + FramebufferManager::SwapReinterpretTexture(); + D3D::RefreshSamplerState(0, D3DSAMP_MINFILTER); + g_renderer->RestoreAPIState(); } void Renderer::SetBlendMode(bool forceUpdate) { - // Our render target always uses an alpha channel, so we need to override the blend functions to assume a destination alpha of 1 if the render target isn't supposed to have an alpha channel - // Example: D3DBLEND_DESTALPHA needs to be D3DBLEND_ONE since the result without an alpha channel is assumed to always be 1. - bool target_has_alpha = bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24; - //bDstAlphaPass is taken into account because the ability to disable alpha composition is - //really useful for debugging shader and blending errors - bool use_DstAlpha = !g_ActiveConfig.bDstAlphaPass && bpmem.dstalpha.enable && bpmem.blendmode.alphaupdate && target_has_alpha; - bool use_DualSource = use_DstAlpha && g_ActiveConfig.backend_info.bSupportsDualSourceBlend; - const D3DBLEND d3dSrcFactors[8] = - { - D3DBLEND_ZERO, - D3DBLEND_ONE, - D3DBLEND_DESTCOLOR, - D3DBLEND_INVDESTCOLOR, - (use_DualSource) ? D3DBLEND_SRCCOLOR2 : D3DBLEND_SRCALPHA, - (use_DualSource) ? D3DBLEND_INVSRCCOLOR2 : D3DBLEND_INVSRCALPHA, - (target_has_alpha) ? D3DBLEND_DESTALPHA : D3DBLEND_ONE, - (target_has_alpha) ? D3DBLEND_INVDESTALPHA : D3DBLEND_ZERO - }; - const D3DBLEND d3dDestFactors[8] = - { - D3DBLEND_ZERO, - D3DBLEND_ONE, - D3DBLEND_SRCCOLOR, - D3DBLEND_INVSRCCOLOR, - (use_DualSource) ? D3DBLEND_SRCCOLOR2 : D3DBLEND_SRCALPHA, - (use_DualSource) ? D3DBLEND_INVSRCCOLOR2 : D3DBLEND_INVSRCALPHA, - (target_has_alpha) ? D3DBLEND_DESTALPHA : D3DBLEND_ONE, - (target_has_alpha) ? D3DBLEND_INVDESTALPHA : D3DBLEND_ZERO - }; + // Our render target always uses an alpha channel, so we need to override the blend functions to assume a destination alpha of 1 if the render target isn't supposed to have an alpha channel + // Example: D3DBLEND_DESTALPHA needs to be D3DBLEND_ONE since the result without an alpha channel is assumed to always be 1. + bool target_has_alpha = bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24; + //bDstAlphaPass is taken into account because the ability to disable alpha composition is + //really useful for debugging shader and blending errors + bool use_DstAlpha = !g_ActiveConfig.bDstAlphaPass && bpmem.dstalpha.enable && bpmem.blendmode.alphaupdate && target_has_alpha; + bool use_DualSource = use_DstAlpha && g_ActiveConfig.backend_info.bSupportsDualSourceBlend; + const D3DBLEND d3dSrcFactors[8] = + { + D3DBLEND_ZERO, + D3DBLEND_ONE, + D3DBLEND_DESTCOLOR, + D3DBLEND_INVDESTCOLOR, + (use_DualSource) ? D3DBLEND_SRCCOLOR2 : D3DBLEND_SRCALPHA, + (use_DualSource) ? D3DBLEND_INVSRCCOLOR2 : D3DBLEND_INVSRCALPHA, + (target_has_alpha) ? D3DBLEND_DESTALPHA : D3DBLEND_ONE, + (target_has_alpha) ? D3DBLEND_INVDESTALPHA : D3DBLEND_ZERO + }; + const D3DBLEND d3dDestFactors[8] = + { + D3DBLEND_ZERO, + D3DBLEND_ONE, + D3DBLEND_SRCCOLOR, + D3DBLEND_INVSRCCOLOR, + (use_DualSource) ? D3DBLEND_SRCCOLOR2 : D3DBLEND_SRCALPHA, + (use_DualSource) ? D3DBLEND_INVSRCCOLOR2 : D3DBLEND_INVSRCALPHA, + (target_has_alpha) ? D3DBLEND_DESTALPHA : D3DBLEND_ONE, + (target_has_alpha) ? D3DBLEND_INVDESTALPHA : D3DBLEND_ZERO + }; - if (bpmem.blendmode.logicopenable && !forceUpdate) - { - D3D::SetRenderState(D3DRS_SEPARATEALPHABLENDENABLE , false); - return; - } + if (bpmem.blendmode.logicopenable && !forceUpdate) + { + D3D::SetRenderState(D3DRS_SEPARATEALPHABLENDENABLE , false); + return; + } - bool blend_enable = bpmem.blendmode.subtract || bpmem.blendmode.blendenable; - D3D::SetRenderState(D3DRS_ALPHABLENDENABLE, blend_enable); - D3D::SetRenderState(D3DRS_SEPARATEALPHABLENDENABLE, blend_enable && g_ActiveConfig.backend_info.bSupportsSeparateAlphaFunction); - if (blend_enable) - { - D3DBLENDOP op = D3DBLENDOP_ADD; - u32 srcidx = bpmem.blendmode.srcfactor; - u32 dstidx = bpmem.blendmode.dstfactor; - if (bpmem.blendmode.subtract) - { - op = D3DBLENDOP_REVSUBTRACT; - srcidx = GX_BL_ONE; - dstidx = GX_BL_ONE; - } - D3D::SetRenderState(D3DRS_BLENDOP, op); - D3D::SetRenderState(D3DRS_SRCBLEND, d3dSrcFactors[srcidx]); - D3D::SetRenderState(D3DRS_DESTBLEND, d3dDestFactors[dstidx]); - if (g_ActiveConfig.backend_info.bSupportsSeparateAlphaFunction) - { - if (use_DualSource) - { - op = D3DBLENDOP_ADD; - srcidx = GX_BL_ONE; - dstidx = GX_BL_ZERO; - } - else - { - // we can't use D3DBLEND_DESTCOLOR or D3DBLEND_INVDESTCOLOR for source in alpha channel so use their alpha equivalent instead - if (srcidx == GX_BL_DSTCLR) srcidx = GX_BL_DSTALPHA; - if (srcidx == GX_BL_INVDSTCLR) srcidx = GX_BL_INVDSTALPHA; - // we can't use D3DBLEND_SRCCOLOR or D3DBLEND_INVSRCCOLOR for destination in alpha channel so use their alpha equivalent instead - if (dstidx == GX_BL_SRCCLR) dstidx = GX_BL_SRCALPHA; - if (dstidx == GX_BL_INVSRCCLR) dstidx = GX_BL_INVSRCALPHA; - } - D3D::SetRenderState(D3DRS_BLENDOPALPHA, op); - D3D::SetRenderState(D3DRS_SRCBLENDALPHA, d3dSrcFactors[srcidx]); - D3D::SetRenderState(D3DRS_DESTBLENDALPHA, d3dDestFactors[dstidx]); - } - } + bool blend_enable = bpmem.blendmode.subtract || bpmem.blendmode.blendenable; + D3D::SetRenderState(D3DRS_ALPHABLENDENABLE, blend_enable); + D3D::SetRenderState(D3DRS_SEPARATEALPHABLENDENABLE, blend_enable && g_ActiveConfig.backend_info.bSupportsSeparateAlphaFunction); + if (blend_enable) + { + D3DBLENDOP op = D3DBLENDOP_ADD; + u32 srcidx = bpmem.blendmode.srcfactor; + u32 dstidx = bpmem.blendmode.dstfactor; + if (bpmem.blendmode.subtract) + { + op = D3DBLENDOP_REVSUBTRACT; + srcidx = GX_BL_ONE; + dstidx = GX_BL_ONE; + } + D3D::SetRenderState(D3DRS_BLENDOP, op); + D3D::SetRenderState(D3DRS_SRCBLEND, d3dSrcFactors[srcidx]); + D3D::SetRenderState(D3DRS_DESTBLEND, d3dDestFactors[dstidx]); + if (g_ActiveConfig.backend_info.bSupportsSeparateAlphaFunction) + { + if (use_DualSource) + { + op = D3DBLENDOP_ADD; + srcidx = GX_BL_ONE; + dstidx = GX_BL_ZERO; + } + else + { + // we can't use D3DBLEND_DESTCOLOR or D3DBLEND_INVDESTCOLOR for source in alpha channel so use their alpha equivalent instead + if (srcidx == GX_BL_DSTCLR) srcidx = GX_BL_DSTALPHA; + if (srcidx == GX_BL_INVDSTCLR) srcidx = GX_BL_INVDSTALPHA; + // we can't use D3DBLEND_SRCCOLOR or D3DBLEND_INVSRCCOLOR for destination in alpha channel so use their alpha equivalent instead + if (dstidx == GX_BL_SRCCLR) dstidx = GX_BL_SRCALPHA; + if (dstidx == GX_BL_INVSRCCLR) dstidx = GX_BL_INVSRCALPHA; + } + D3D::SetRenderState(D3DRS_BLENDOPALPHA, op); + D3D::SetRenderState(D3DRS_SRCBLENDALPHA, d3dSrcFactors[srcidx]); + D3D::SetRenderState(D3DRS_DESTBLENDALPHA, d3dDestFactors[dstidx]); + } + } } bool Renderer::SaveScreenshot(const std::string &filename, const TargetRectangle &dst_rect) { - HRESULT hr = D3D::dev->GetRenderTargetData(D3D::GetBackBufferSurface(),ScreenShootMEMSurface); - if(FAILED(hr)) - { - PanicAlert("Error dumping surface data."); - return false; - } - hr = PD3DXSaveSurfaceToFileA(filename.c_str(), D3DXIFF_PNG, ScreenShootMEMSurface, NULL, dst_rect.AsRECT()); - if(FAILED(hr)) - { - PanicAlert("Error saving screen."); - return false; - } + HRESULT hr = D3D::dev->GetRenderTargetData(D3D::GetBackBufferSurface(),ScreenShootMEMSurface); + if(FAILED(hr)) + { + PanicAlert("Error dumping surface data."); + return false; + } + hr = PD3DXSaveSurfaceToFileA(filename.c_str(), D3DXIFF_PNG, ScreenShootMEMSurface, NULL, dst_rect.AsRECT()); + if(FAILED(hr)) + { + PanicAlert("Error saving screen."); + return false; + } - return true; + return true; } // This function has the final picture. We adjust the aspect ratio here. void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight,const EFBRectangle& rc,float Gamma) { - if (g_bSkipCurrentFrame || (!XFBWrited && !g_ActiveConfig.RealXFBEnabled()) || !fbWidth || !fbHeight) - { - if (g_ActiveConfig.bDumpFrames && !frame_data.empty()) - AVIDump::AddFrame(&frame_data[0], fbWidth, fbHeight); + if (g_bSkipCurrentFrame || (!XFBWrited && !g_ActiveConfig.RealXFBEnabled()) || !fbWidth || !fbHeight) + { + if (g_ActiveConfig.bDumpFrames && !frame_data.empty()) + AVIDump::AddFrame(&frame_data[0], fbWidth, fbHeight); - Core::Callback_VideoCopiedToXFB(false); - return; - } + Core::Callback_VideoCopiedToXFB(false); + return; + } - if (field == FIELD_LOWER) xfbAddr -= fbWidth * 2; - u32 xfbCount = 0; - const XFBSourceBase* const* xfbSourceList = FramebufferManager::GetXFBSource(xfbAddr, fbWidth, fbHeight, xfbCount); - if ((!xfbSourceList || xfbCount == 0) && g_ActiveConfig.bUseXFB && !g_ActiveConfig.bUseRealXFB) - { - if (g_ActiveConfig.bDumpFrames && !frame_data.empty()) - AVIDump::AddFrame(&frame_data[0], fbWidth, fbHeight); + if (field == FIELD_LOWER) xfbAddr -= fbWidth * 2; + u32 xfbCount = 0; + const XFBSourceBase* const* xfbSourceList = FramebufferManager::GetXFBSource(xfbAddr, fbWidth, fbHeight, xfbCount); + if ((!xfbSourceList || xfbCount == 0) && g_ActiveConfig.bUseXFB && !g_ActiveConfig.bUseRealXFB) + { + if (g_ActiveConfig.bDumpFrames && !frame_data.empty()) + AVIDump::AddFrame(&frame_data[0], fbWidth, fbHeight); - Core::Callback_VideoCopiedToXFB(false); - return; - } + Core::Callback_VideoCopiedToXFB(false); + return; + } - ResetAPIState(); + ResetAPIState(); - if(g_ActiveConfig.bAnaglyphStereo) - { - static bool RightFrame = false; - if(RightFrame) - { - D3D::SetRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_BLUE | D3DCOLORWRITEENABLE_GREEN); - VertexShaderManager::ResetView(); - VertexShaderManager::TranslateView(-0.001f * g_ActiveConfig.iAnaglyphStereoSeparation,0.0f); - VertexShaderManager::RotateView(-0.0001f *g_ActiveConfig.iAnaglyphFocalAngle,0.0f); - RightFrame = false; - } - else - { - D3D::SetRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_RED); - VertexShaderManager::ResetView(); - VertexShaderManager::TranslateView(0.001f *g_ActiveConfig.iAnaglyphStereoSeparation,0.0f); - VertexShaderManager::RotateView(0.0001f * g_ActiveConfig.iAnaglyphFocalAngle,0.0f); - RightFrame = true; - } - } + if(g_ActiveConfig.bAnaglyphStereo) + { + static bool RightFrame = false; + if(RightFrame) + { + D3D::SetRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_BLUE | D3DCOLORWRITEENABLE_GREEN); + VertexShaderManager::ResetView(); + VertexShaderManager::TranslateView(-0.001f * g_ActiveConfig.iAnaglyphStereoSeparation,0.0f); + VertexShaderManager::RotateView(-0.0001f *g_ActiveConfig.iAnaglyphFocalAngle,0.0f); + RightFrame = false; + } + else + { + D3D::SetRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_RED); + VertexShaderManager::ResetView(); + VertexShaderManager::TranslateView(0.001f *g_ActiveConfig.iAnaglyphStereoSeparation,0.0f); + VertexShaderManager::RotateView(0.0001f * g_ActiveConfig.iAnaglyphFocalAngle,0.0f); + RightFrame = true; + } + } - // Prepare to copy the XFBs to our backbuffer - D3D::dev->SetDepthStencilSurface(NULL); - D3D::dev->SetRenderTarget(0, D3D::GetBackBufferSurface()); + // Prepare to copy the XFBs to our backbuffer + D3D::dev->SetDepthStencilSurface(NULL); + D3D::dev->SetRenderTarget(0, D3D::GetBackBufferSurface()); - UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); - D3DVIEWPORT9 vp; + UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); + D3DVIEWPORT9 vp; - // Clear full target screen (edges, borders etc) - if(g_ActiveConfig.bAnaglyphStereo) { - // use a clear quad to keep old red or blue/green data - vp.X = 0; - vp.Y = 0; - vp.Width = s_backbuffer_width; - vp.Height = s_backbuffer_height; - vp.MinZ = 0.0f; - vp.MaxZ = 1.0f; - D3D::dev->SetViewport(&vp); - D3D::drawClearQuad(0, 1.0, PixelShaderCache::GetClearProgram(), VertexShaderCache::GetClearVertexShader()); - } - else - { - D3D::dev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0); - } + // Clear full target screen (edges, borders etc) + if(g_ActiveConfig.bAnaglyphStereo) { + // use a clear quad to keep old red or blue/green data + vp.X = 0; + vp.Y = 0; + vp.Width = s_backbuffer_width; + vp.Height = s_backbuffer_height; + vp.MinZ = 0.0f; + vp.MaxZ = 1.0f; + D3D::dev->SetViewport(&vp); + D3D::drawClearQuad(0, 1.0, PixelShaderCache::GetClearProgram(), VertexShaderCache::GetClearVertexShader()); + } + else + { + D3D::dev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0); + } - int X = GetTargetRectangle().left; - int Y = GetTargetRectangle().top; - int Width = GetTargetRectangle().right - GetTargetRectangle().left; - int Height = GetTargetRectangle().bottom - GetTargetRectangle().top; + int X = GetTargetRectangle().left; + int Y = GetTargetRectangle().top; + int Width = GetTargetRectangle().right - GetTargetRectangle().left; + int Height = GetTargetRectangle().bottom - GetTargetRectangle().top; - // Sanity check - if (X < 0) X = 0; - if (Y < 0) Y = 0; - if (X > s_backbuffer_width) X = s_backbuffer_width; - if (Y > s_backbuffer_height) Y = s_backbuffer_height; - if (Width < 0) Width = 0; - if (Height < 0) Height = 0; - if (Width > (s_backbuffer_width - X)) Width = s_backbuffer_width - X; - if (Height > (s_backbuffer_height - Y)) Height = s_backbuffer_height - Y; + // Sanity check + if (X < 0) X = 0; + if (Y < 0) Y = 0; + if (X > s_backbuffer_width) X = s_backbuffer_width; + if (Y > s_backbuffer_height) Y = s_backbuffer_height; + if (Width < 0) Width = 0; + if (Height < 0) Height = 0; + if (Width > (s_backbuffer_width - X)) Width = s_backbuffer_width - X; + if (Height > (s_backbuffer_height - Y)) Height = s_backbuffer_height - Y; - vp.X = X; - vp.Y = Y; - vp.Width = Width; - vp.Height = Height; - vp.MinZ = 0.0f; - vp.MaxZ = 1.0f; + vp.X = X; + vp.Y = Y; + vp.Width = Width; + vp.Height = Height; + vp.MinZ = 0.0f; + vp.MaxZ = 1.0f; - D3D::dev->SetViewport(&vp); + D3D::dev->SetViewport(&vp); - D3D::ChangeSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR); - D3D::ChangeSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR); + D3D::ChangeSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR); + D3D::ChangeSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR); - const XFBSourceBase* xfbSource = NULL; + const XFBSourceBase* xfbSource = NULL; - if(g_ActiveConfig.bUseXFB) - { - // draw each xfb source - // Render to the real buffer now. - for (u32 i = 0; i < xfbCount; ++i) - { - xfbSource = xfbSourceList[i]; + if(g_ActiveConfig.bUseXFB) + { + // draw each xfb source + // Render to the real buffer now. + for (u32 i = 0; i < xfbCount; ++i) + { + xfbSource = xfbSourceList[i]; - MathUtil::Rectangle sourceRc; + MathUtil::Rectangle sourceRc; - sourceRc.left = 0; - sourceRc.top = 0; - sourceRc.right = (float)xfbSource->texWidth; - sourceRc.bottom = (float)xfbSource->texHeight; + sourceRc.left = 0; + sourceRc.top = 0; + sourceRc.right = (float)xfbSource->texWidth; + sourceRc.bottom = (float)xfbSource->texHeight; - MathUtil::Rectangle drawRc; + MathUtil::Rectangle drawRc; - if (g_ActiveConfig.bUseRealXFB) - { - drawRc.top = -1; - drawRc.bottom = 1; - drawRc.left = -1; - drawRc.right = 1; - } - else - { - // use virtual xfb with offset - int xfbHeight = xfbSource->srcHeight; - int xfbWidth = xfbSource->srcWidth; - int hOffset = ((s32)xfbSource->srcAddr - (s32)xfbAddr) / ((s32)fbWidth * 2); + if (g_ActiveConfig.bUseRealXFB) + { + drawRc.top = -1; + drawRc.bottom = 1; + drawRc.left = -1; + drawRc.right = 1; + } + else + { + // use virtual xfb with offset + int xfbHeight = xfbSource->srcHeight; + int xfbWidth = xfbSource->srcWidth; + int hOffset = ((s32)xfbSource->srcAddr - (s32)xfbAddr) / ((s32)fbWidth * 2); - drawRc.bottom = 1.0f - (2.0f * (hOffset) / (float)fbHeight); - drawRc.top = 1.0f - (2.0f * (hOffset + xfbHeight) / (float)fbHeight); - drawRc.left = -(xfbWidth / (float)fbWidth); - drawRc.right = (xfbWidth / (float)fbWidth); + drawRc.bottom = 1.0f - (2.0f * (hOffset) / (float)fbHeight); + drawRc.top = 1.0f - (2.0f * (hOffset + xfbHeight) / (float)fbHeight); + drawRc.left = -(xfbWidth / (float)fbWidth); + drawRc.right = (xfbWidth / (float)fbWidth); - // The following code disables auto stretch. Kept for reference. - // scale draw area for a 1 to 1 pixel mapping with the draw target - //float vScale = (float)fbHeight / (float)GetTargetRectangle().GetHeight(); - //float hScale = (float)fbWidth / (float)GetTargetRectangle().GetWidth(); - //drawRc.top *= vScale; - //drawRc.bottom *= vScale; - //drawRc.left *= hScale; - //drawRc.right *= hScale; - } + // The following code disables auto stretch. Kept for reference. + // scale draw area for a 1 to 1 pixel mapping with the draw target + //float vScale = (float)fbHeight / (float)GetTargetRectangle().GetHeight(); + //float hScale = (float)fbWidth / (float)GetTargetRectangle().GetWidth(); + //drawRc.top *= vScale; + //drawRc.bottom *= vScale; + //drawRc.left *= hScale; + //drawRc.right *= hScale; + } - xfbSource->Draw(sourceRc, drawRc, Width, Height); - } - } - else - { - TargetRectangle targetRc = ConvertEFBRectangle(rc); - LPDIRECT3DTEXTURE9 read_texture = FramebufferManager::GetEFBColorTexture(); - D3D::drawShadedTexQuad(read_texture,targetRc.AsRECT(), - Renderer::GetTargetWidth(),Renderer::GetTargetHeight(), - Width,Height, - PixelShaderCache::GetColorCopyProgram(g_ActiveConfig.iMultisampleMode), - VertexShaderCache::GetSimpleVertexShader(g_ActiveConfig.iMultisampleMode),Gamma); + xfbSource->Draw(sourceRc, drawRc, Width, Height); + } + } + else + { + TargetRectangle targetRc = ConvertEFBRectangle(rc); + LPDIRECT3DTEXTURE9 read_texture = FramebufferManager::GetEFBColorTexture(); + D3D::drawShadedTexQuad(read_texture,targetRc.AsRECT(), + Renderer::GetTargetWidth(),Renderer::GetTargetHeight(), + Width,Height, + PixelShaderCache::GetColorCopyProgram(g_ActiveConfig.iMultisampleMode), + VertexShaderCache::GetSimpleVertexShader(g_ActiveConfig.iMultisampleMode),Gamma); - } - D3D::RefreshSamplerState(0, D3DSAMP_MINFILTER); - D3D::RefreshSamplerState(0, D3DSAMP_MAGFILTER); + } + D3D::RefreshSamplerState(0, D3DSAMP_MINFILTER); + D3D::RefreshSamplerState(0, D3DSAMP_MAGFILTER); - if(g_ActiveConfig.bAnaglyphStereo) - { - DWORD color_mask = D3DCOLORWRITEENABLE_ALPHA | D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_BLUE; - D3D::SetRenderState(D3DRS_COLORWRITEENABLE, color_mask); - } + if(g_ActiveConfig.bAnaglyphStereo) + { + DWORD color_mask = D3DCOLORWRITEENABLE_ALPHA | D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_BLUE; + D3D::SetRenderState(D3DRS_COLORWRITEENABLE, color_mask); + } - vp.X = 0; - vp.Y = 0; - vp.Width = s_backbuffer_width; - vp.Height = s_backbuffer_height; - vp.MinZ = 0.0f; - vp.MaxZ = 1.0f; - D3D::dev->SetViewport(&vp); + vp.X = 0; + vp.Y = 0; + vp.Width = s_backbuffer_width; + vp.Height = s_backbuffer_height; + vp.MinZ = 0.0f; + vp.MaxZ = 1.0f; + D3D::dev->SetViewport(&vp); - // Save screenshot - if (s_bScreenshot) - { - std::lock_guard lk(s_criticalScreenshot); - SaveScreenshot(s_sScreenshotName, GetTargetRectangle()); - s_bScreenshot = false; - } + // Save screenshot + if (s_bScreenshot) + { + std::lock_guard lk(s_criticalScreenshot); + SaveScreenshot(s_sScreenshotName, GetTargetRectangle()); + s_bScreenshot = false; + } - // Dump frames - static int w = 0, h = 0; - if (g_ActiveConfig.bDumpFrames) - { - static int s_recordWidth; - static int s_recordHeight; + // Dump frames + static int w = 0, h = 0; + if (g_ActiveConfig.bDumpFrames) + { + static int s_recordWidth; + static int s_recordHeight; - HRESULT hr = D3D::dev->GetRenderTargetData(D3D::GetBackBufferSurface(),ScreenShootMEMSurface); - if (!bLastFrameDumped) - { - s_recordWidth = GetTargetRectangle().GetWidth(); - s_recordHeight = GetTargetRectangle().GetHeight(); - bAVIDumping = AVIDump::Start(EmuWindow::GetParentWnd(), s_recordWidth, s_recordHeight); - if (!bAVIDumping) - { - PanicAlert("Error dumping frames to AVI."); - } - else - { - char msg [255]; - sprintf_s(msg,255, "Dumping Frames to \"%sframedump0.avi\" (%dx%d RGB24)", - File::GetUserPath(D_DUMPFRAMES_IDX).c_str(), s_recordWidth, s_recordHeight); - OSD::AddMessage(msg, 2000); - } - } - if (bAVIDumping) - { - D3DLOCKED_RECT rect; - if (SUCCEEDED(ScreenShootMEMSurface->LockRect(&rect, GetTargetRectangle().AsRECT(), D3DLOCK_NO_DIRTY_UPDATE | D3DLOCK_NOSYSLOCK | D3DLOCK_READONLY))) - { - if (frame_data.empty() || w != s_recordWidth || h != s_recordHeight) - { - frame_data.resize(3 * s_recordWidth * s_recordHeight); - w = s_recordWidth; - h = s_recordHeight; - } - formatBufferDump((const u8*)rect.pBits, &frame_data[0], s_recordWidth, s_recordHeight, rect.Pitch); - AVIDump::AddFrame(&frame_data[0], fbWidth, fbHeight); - ScreenShootMEMSurface->UnlockRect(); - } - } - bLastFrameDumped = true; - } - else - { - if (bLastFrameDumped && bAVIDumping) - { - std::vector().swap(frame_data); - w = h = 0; - AVIDump::Stop(); - bAVIDumping = false; - OSD::AddMessage("Stop dumping frames to AVI", 2000); - } - bLastFrameDumped = false; - } + HRESULT hr = D3D::dev->GetRenderTargetData(D3D::GetBackBufferSurface(),ScreenShootMEMSurface); + if (!bLastFrameDumped) + { + s_recordWidth = GetTargetRectangle().GetWidth(); + s_recordHeight = GetTargetRectangle().GetHeight(); + bAVIDumping = AVIDump::Start(EmuWindow::GetParentWnd(), s_recordWidth, s_recordHeight); + if (!bAVIDumping) + { + PanicAlert("Error dumping frames to AVI."); + } + else + { + char msg [255]; + sprintf_s(msg,255, "Dumping Frames to \"%sframedump0.avi\" (%dx%d RGB24)", + File::GetUserPath(D_DUMPFRAMES_IDX).c_str(), s_recordWidth, s_recordHeight); + OSD::AddMessage(msg, 2000); + } + } + if (bAVIDumping) + { + D3DLOCKED_RECT rect; + if (SUCCEEDED(ScreenShootMEMSurface->LockRect(&rect, GetTargetRectangle().AsRECT(), D3DLOCK_NO_DIRTY_UPDATE | D3DLOCK_NOSYSLOCK | D3DLOCK_READONLY))) + { + if (frame_data.empty() || w != s_recordWidth || h != s_recordHeight) + { + frame_data.resize(3 * s_recordWidth * s_recordHeight); + w = s_recordWidth; + h = s_recordHeight; + } + formatBufferDump((const u8*)rect.pBits, &frame_data[0], s_recordWidth, s_recordHeight, rect.Pitch); + AVIDump::AddFrame(&frame_data[0], fbWidth, fbHeight); + ScreenShootMEMSurface->UnlockRect(); + } + } + bLastFrameDumped = true; + } + else + { + if (bLastFrameDumped && bAVIDumping) + { + std::vector().swap(frame_data); + w = h = 0; + AVIDump::Stop(); + bAVIDumping = false; + OSD::AddMessage("Stop dumping frames to AVI", 2000); + } + bLastFrameDumped = false; + } - // Finish up the current frame, print some stats - if (g_ActiveConfig.bShowFPS) - { - char fps[20]; - StringCchPrintfA(fps, 20, "FPS: %d\n", s_fps); - D3D::font.DrawTextScaled(0, 0, 20, 20, 0.0f, 0xFF00FFFF, fps); - } + // Finish up the current frame, print some stats + if (g_ActiveConfig.bShowFPS) + { + char fps[20]; + StringCchPrintfA(fps, 20, "FPS: %d\n", s_fps); + D3D::font.DrawTextScaled(0, 0, 20, 20, 0.0f, 0xFF00FFFF, fps); + } - if (SConfig::GetInstance().m_ShowLag) - { - char lag[10]; - StringCchPrintfA(lag, 10, "Lag: %llu\n", Movie::g_currentLagCount); - D3D::font.DrawTextScaled(0, 18, 20, 20, 0.0f, 0xFF00FFFF, lag); - } + if (SConfig::GetInstance().m_ShowLag) + { + char lag[10]; + StringCchPrintfA(lag, 10, "Lag: %llu\n", Movie::g_currentLagCount); + D3D::font.DrawTextScaled(0, 18, 20, 20, 0.0f, 0xFF00FFFF, lag); + } - if (g_ActiveConfig.bShowInputDisplay) - { - char inputDisplay[1000]; - StringCchPrintfA(inputDisplay, 1000, Movie::GetInputDisplay().c_str()); - D3D::font.DrawTextScaled(0, 36, 20, 20, 0.0f, 0xFF00FFFF, inputDisplay); - } + if (g_ActiveConfig.bShowInputDisplay) + { + char inputDisplay[1000]; + StringCchPrintfA(inputDisplay, 1000, Movie::GetInputDisplay().c_str()); + D3D::font.DrawTextScaled(0, 36, 20, 20, 0.0f, 0xFF00FFFF, inputDisplay); + } - Renderer::DrawDebugText(); + Renderer::DrawDebugText(); - if (g_ActiveConfig.bOverlayStats) - { - Statistics::ToString(st); - D3D::font.DrawTextScaled(0, 36, 20, 20, 0.0f, 0xFF00FFFF, st); - } - else if (g_ActiveConfig.bOverlayProjStats) - { - Statistics::ToStringProj(st); - D3D::font.DrawTextScaled(0, 36, 20, 20, 0.0f, 0xFF00FFFF, st); - } + if (g_ActiveConfig.bOverlayStats) + { + Statistics::ToString(st); + D3D::font.DrawTextScaled(0, 36, 20, 20, 0.0f, 0xFF00FFFF, st); + } + else if (g_ActiveConfig.bOverlayProjStats) + { + Statistics::ToStringProj(st); + D3D::font.DrawTextScaled(0, 36, 20, 20, 0.0f, 0xFF00FFFF, st); + } - OSD::DrawMessages(); - D3D::EndFrame(); - ++frameCount; + OSD::DrawMessages(); + D3D::EndFrame(); + ++frameCount; - GFX_DEBUGGER_PAUSE_AT(NEXT_FRAME, true); + GFX_DEBUGGER_PAUSE_AT(NEXT_FRAME, true); - DLCache::ProgressiveCleanup(); - TextureCache::Cleanup(); - // Flip/present backbuffer to frontbuffer here - D3D::Present(); - // Enable configuration changes - UpdateActiveConfig(); - TextureCache::OnConfigChanged(g_ActiveConfig); + DLCache::ProgressiveCleanup(); + TextureCache::Cleanup(); + // Flip/present backbuffer to frontbuffer here + D3D::Present(); + // Enable configuration changes + UpdateActiveConfig(); + TextureCache::OnConfigChanged(g_ActiveConfig); - SetWindowSize(fbWidth, fbHeight); + SetWindowSize(fbWidth, fbHeight); - const bool windowResized = CheckForResize(); + const bool windowResized = CheckForResize(); - bool xfbchanged = false; + bool xfbchanged = false; - if (FramebufferManagerBase::LastXfbWidth() != fbWidth || FramebufferManagerBase::LastXfbHeight() != fbHeight) - { - xfbchanged = true; - unsigned int w = (fbWidth < 1 || fbWidth > MAX_XFB_WIDTH) ? MAX_XFB_WIDTH : fbWidth; - unsigned int h = (fbHeight < 1 || fbHeight > MAX_XFB_HEIGHT) ? MAX_XFB_HEIGHT : fbHeight; - FramebufferManagerBase::SetLastXfbWidth(w); - FramebufferManagerBase::SetLastXfbHeight(h); - } + if (FramebufferManagerBase::LastXfbWidth() != fbWidth || FramebufferManagerBase::LastXfbHeight() != fbHeight) + { + xfbchanged = true; + unsigned int w = (fbWidth < 1 || fbWidth > MAX_XFB_WIDTH) ? MAX_XFB_WIDTH : fbWidth; + unsigned int h = (fbHeight < 1 || fbHeight > MAX_XFB_HEIGHT) ? MAX_XFB_HEIGHT : fbHeight; + FramebufferManagerBase::SetLastXfbWidth(w); + FramebufferManagerBase::SetLastXfbHeight(h); + } - u32 newAA = g_ActiveConfig.iMultisampleMode; + u32 newAA = g_ActiveConfig.iMultisampleMode; - if (xfbchanged || windowResized || s_LastEFBScale != g_ActiveConfig.iEFBScale || s_LastAA != newAA) - { - s_LastAA = newAA; + if (xfbchanged || windowResized || s_LastEFBScale != g_ActiveConfig.iEFBScale || s_LastAA != newAA) + { + s_LastAA = newAA; - UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); + UpdateDrawRectangle(s_backbuffer_width, s_backbuffer_height); - int SupersampleCoeficient = (s_LastAA % 3) + 1; + int SupersampleCoeficient = (s_LastAA % 3) + 1; - s_LastEFBScale = g_ActiveConfig.iEFBScale; - CalculateTargetSize(s_backbuffer_width, s_backbuffer_height, SupersampleCoeficient); + s_LastEFBScale = g_ActiveConfig.iEFBScale; + CalculateTargetSize(s_backbuffer_width, s_backbuffer_height, SupersampleCoeficient); - D3D::dev->SetRenderTarget(0, D3D::GetBackBufferSurface()); - D3D::dev->SetDepthStencilSurface(D3D::GetBackBufferDepthSurface()); - if (windowResized) - { - // device objects lost, so recreate all of them - SetupDeviceObjects(); - } - else - { - // just resize the frame buffer - delete g_framebuffer_manager; - g_framebuffer_manager = new FramebufferManager; - } - D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorRTSurface()); - D3D::dev->SetDepthStencilSurface(FramebufferManager::GetEFBDepthRTSurface()); - D3D::dev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1.0f, 0); - SetLineWidth(); - } + D3D::dev->SetRenderTarget(0, D3D::GetBackBufferSurface()); + D3D::dev->SetDepthStencilSurface(D3D::GetBackBufferDepthSurface()); + if (windowResized) + { + // device objects lost, so recreate all of them + SetupDeviceObjects(); + } + else + { + // just resize the frame buffer + delete g_framebuffer_manager; + g_framebuffer_manager = new FramebufferManager; + } + D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorRTSurface()); + D3D::dev->SetDepthStencilSurface(FramebufferManager::GetEFBDepthRTSurface()); + D3D::dev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1.0f, 0); + SetLineWidth(); + } - if (XFBWrited) - s_fps = UpdateFPSCounter(); + if (XFBWrited) + s_fps = UpdateFPSCounter(); - // Begin new frame - // Set default viewport and scissor, for the clear to work correctly - // New frame - stats.ResetFrame(); + // Begin new frame + // Set default viewport and scissor, for the clear to work correctly + // New frame + stats.ResetFrame(); - // Handle vsync changes during execution - if(s_vsync != g_ActiveConfig.IsVSync()) - { - s_vsync = g_ActiveConfig.IsVSync(); - TeardownDeviceObjects(); - D3D::Reset(); - // device objects lost, so recreate all of them - SetupDeviceObjects(); - } - D3D::BeginFrame(); - RestoreAPIState(); + // Handle vsync changes during execution + if(s_vsync != g_ActiveConfig.IsVSync()) + { + s_vsync = g_ActiveConfig.IsVSync(); + TeardownDeviceObjects(); + D3D::Reset(); + // device objects lost, so recreate all of them + SetupDeviceObjects(); + } + D3D::BeginFrame(); + RestoreAPIState(); - D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorRTSurface()); - D3D::dev->SetDepthStencilSurface(FramebufferManager::GetEFBDepthRTSurface()); - VertexShaderManager::SetViewportChanged(); + D3D::dev->SetRenderTarget(0, FramebufferManager::GetEFBColorRTSurface()); + D3D::dev->SetDepthStencilSurface(FramebufferManager::GetEFBDepthRTSurface()); + VertexShaderManager::SetViewportChanged(); - Core::Callback_VideoCopiedToXFB(XFBWrited || (g_ActiveConfig.bUseXFB && g_ActiveConfig.bUseRealXFB)); - XFBWrited = false; + Core::Callback_VideoCopiedToXFB(XFBWrited || (g_ActiveConfig.bUseXFB && g_ActiveConfig.bUseRealXFB)); + XFBWrited = false; } void Renderer::ApplyState(bool bUseDstAlpha) { - if (bUseDstAlpha) - { - // If we get here we are sure that we are using dst alpha pass. (bpmem.dstalpha.enable) - // Alpha write is enabled. (because bpmem.blendmode.alphaupdate && bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24) - // We must disable blend because we want to write alpha value directly to the alpha channel without modifications. - D3D::ChangeRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_ALPHA); - D3D::ChangeRenderState(D3DRS_ALPHABLENDENABLE, false); - if(bpmem.zmode.testenable && bpmem.zmode.updateenable) - { - // This is needed to draw to the correct pixels in multi-pass algorithms - // to avoid z-fighting and grants that you write to the same pixels - // affected by the last pass - D3D::ChangeRenderState(D3DRS_ZWRITEENABLE, false); - D3D::ChangeRenderState(D3DRS_ZFUNC, D3DCMP_EQUAL); - } - } + if (bUseDstAlpha) + { + // If we get here we are sure that we are using dst alpha pass. (bpmem.dstalpha.enable) + // Alpha write is enabled. (because bpmem.blendmode.alphaupdate && bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24) + // We must disable blend because we want to write alpha value directly to the alpha channel without modifications. + D3D::ChangeRenderState(D3DRS_COLORWRITEENABLE, D3DCOLORWRITEENABLE_ALPHA); + D3D::ChangeRenderState(D3DRS_ALPHABLENDENABLE, false); + if(bpmem.zmode.testenable && bpmem.zmode.updateenable) + { + // This is needed to draw to the correct pixels in multi-pass algorithms + // to avoid z-fighting and grants that you write to the same pixels + // affected by the last pass + D3D::ChangeRenderState(D3DRS_ZWRITEENABLE, false); + D3D::ChangeRenderState(D3DRS_ZFUNC, D3DCMP_EQUAL); + } + } } void Renderer::RestoreState() { - D3D::RefreshRenderState(D3DRS_COLORWRITEENABLE); - D3D::RefreshRenderState(D3DRS_ALPHABLENDENABLE); - if(bpmem.zmode.testenable && bpmem.zmode.updateenable) - { - D3D::RefreshRenderState(D3DRS_ZWRITEENABLE); - D3D::RefreshRenderState(D3DRS_ZFUNC); - } - // TODO: Enable this code. Caused glitches for me however (neobrain) - // for (unsigned int i = 0; i < 8; ++i) - // D3D::dev->SetTexture(i, NULL); + D3D::RefreshRenderState(D3DRS_COLORWRITEENABLE); + D3D::RefreshRenderState(D3DRS_ALPHABLENDENABLE); + if(bpmem.zmode.testenable && bpmem.zmode.updateenable) + { + D3D::RefreshRenderState(D3DRS_ZWRITEENABLE); + D3D::RefreshRenderState(D3DRS_ZFUNC); + } + // TODO: Enable this code. Caused glitches for me however (neobrain) + // for (unsigned int i = 0; i < 8; ++i) + // D3D::dev->SetTexture(i, NULL); } // ALWAYS call RestoreAPIState for each ResetAPIState call you're doing void Renderer::ResetAPIState() { - D3D::SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID); - D3D::SetRenderState(D3DRS_SCISSORTESTENABLE, FALSE); - D3D::SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); - D3D::SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE); - D3D::SetRenderState(D3DRS_ZENABLE, FALSE); - D3D::SetRenderState(D3DRS_ZWRITEENABLE, FALSE); - DWORD color_mask = D3DCOLORWRITEENABLE_ALPHA | D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_BLUE; - D3D::SetRenderState(D3DRS_COLORWRITEENABLE, color_mask); + D3D::SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID); + D3D::SetRenderState(D3DRS_SCISSORTESTENABLE, FALSE); + D3D::SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); + D3D::SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE); + D3D::SetRenderState(D3DRS_ZENABLE, FALSE); + D3D::SetRenderState(D3DRS_ZWRITEENABLE, FALSE); + DWORD color_mask = D3DCOLORWRITEENABLE_ALPHA | D3DCOLORWRITEENABLE_RED | D3DCOLORWRITEENABLE_GREEN | D3DCOLORWRITEENABLE_BLUE; + D3D::SetRenderState(D3DRS_COLORWRITEENABLE, color_mask); } void Renderer::RestoreAPIState() { - // Gets us back into a more game-like state. - D3D::SetRenderState(D3DRS_FILLMODE, g_ActiveConfig.bWireFrame ? D3DFILL_WIREFRAME : D3DFILL_SOLID); - D3D::SetRenderState(D3DRS_SCISSORTESTENABLE, TRUE); - VertexShaderManager::SetViewportChanged(); - BPFunctions::SetScissor(); - if (bpmem.zmode.testenable) { - D3D::SetRenderState(D3DRS_ZENABLE, TRUE); - if (bpmem.zmode.updateenable) - D3D::SetRenderState(D3DRS_ZWRITEENABLE, TRUE); - } - SetColorMask(); - SetLogicOpMode(); - SetGenerationMode(); + // Gets us back into a more game-like state. + D3D::SetRenderState(D3DRS_FILLMODE, g_ActiveConfig.bWireFrame ? D3DFILL_WIREFRAME : D3DFILL_SOLID); + D3D::SetRenderState(D3DRS_SCISSORTESTENABLE, TRUE); + VertexShaderManager::SetViewportChanged(); + BPFunctions::SetScissor(); + if (bpmem.zmode.testenable) { + D3D::SetRenderState(D3DRS_ZENABLE, TRUE); + if (bpmem.zmode.updateenable) + D3D::SetRenderState(D3DRS_ZWRITEENABLE, TRUE); + } + SetColorMask(); + SetLogicOpMode(); + SetGenerationMode(); } void Renderer::SetGenerationMode() { - const D3DCULL d3dCullModes[4] = - { - D3DCULL_NONE, - D3DCULL_CCW, - D3DCULL_CW, - D3DCULL_CCW - }; + const D3DCULL d3dCullModes[4] = + { + D3DCULL_NONE, + D3DCULL_CCW, + D3DCULL_CW, + D3DCULL_CCW + }; - D3D::SetRenderState(D3DRS_CULLMODE, d3dCullModes[bpmem.genMode.cullmode]); + D3D::SetRenderState(D3DRS_CULLMODE, d3dCullModes[bpmem.genMode.cullmode]); } void Renderer::SetDepthMode() { - const D3DCMPFUNC d3dCmpFuncs[8] = - { - D3DCMP_NEVER, - D3DCMP_LESS, - D3DCMP_EQUAL, - D3DCMP_LESSEQUAL, - D3DCMP_GREATER, - D3DCMP_NOTEQUAL, - D3DCMP_GREATEREQUAL, - D3DCMP_ALWAYS - }; + const D3DCMPFUNC d3dCmpFuncs[8] = + { + D3DCMP_NEVER, + D3DCMP_LESS, + D3DCMP_EQUAL, + D3DCMP_LESSEQUAL, + D3DCMP_GREATER, + D3DCMP_NOTEQUAL, + D3DCMP_GREATEREQUAL, + D3DCMP_ALWAYS + }; - if (bpmem.zmode.testenable) - { - D3D::SetRenderState(D3DRS_ZENABLE, TRUE); - D3D::SetRenderState(D3DRS_ZWRITEENABLE, bpmem.zmode.updateenable); - D3D::SetRenderState(D3DRS_ZFUNC, d3dCmpFuncs[bpmem.zmode.func]); - } - else - { - // if the test is disabled write is disabled too - D3D::SetRenderState(D3DRS_ZENABLE, FALSE); - D3D::SetRenderState(D3DRS_ZWRITEENABLE, FALSE); - } + if (bpmem.zmode.testenable) + { + D3D::SetRenderState(D3DRS_ZENABLE, TRUE); + D3D::SetRenderState(D3DRS_ZWRITEENABLE, bpmem.zmode.updateenable); + D3D::SetRenderState(D3DRS_ZFUNC, d3dCmpFuncs[bpmem.zmode.func]); + } + else + { + // if the test is disabled write is disabled too + D3D::SetRenderState(D3DRS_ZENABLE, FALSE); + D3D::SetRenderState(D3DRS_ZWRITEENABLE, FALSE); + } } void Renderer::SetLogicOpMode() { - // D3D9 doesn't support logic blending, so this is a huge hack + // D3D9 doesn't support logic blending, so this is a huge hack - // 0 0x00 - // 1 Source & destination - // 2 Source & ~destination - // 3 Source - // 4 ~Source & destination - // 5 Destination - // 6 Source ^ destination = Source & ~destination | ~Source & destination - // 7 Source | destination - // 8 ~(Source | destination) - // 9 ~(Source ^ destination) = ~Source & ~destination | Source & destination - // 10 ~Destination - // 11 Source | ~destination - // 12 ~Source - // 13 ~Source | destination - // 14 ~(Source & destination) - // 15 0xff - const D3DBLENDOP d3dLogicOpop[16] = - { - D3DBLENDOP_ADD, - D3DBLENDOP_ADD, - D3DBLENDOP_SUBTRACT, - D3DBLENDOP_ADD, - D3DBLENDOP_REVSUBTRACT, - D3DBLENDOP_ADD, - D3DBLENDOP_MAX, - D3DBLENDOP_ADD, - D3DBLENDOP_MAX, - D3DBLENDOP_MAX, - D3DBLENDOP_ADD, - D3DBLENDOP_ADD, - D3DBLENDOP_ADD, - D3DBLENDOP_ADD, - D3DBLENDOP_ADD, - D3DBLENDOP_ADD - }; - const D3DBLEND d3dLogicOpSrcFactors[16] = - { - D3DBLEND_ZERO, - D3DBLEND_DESTCOLOR, - D3DBLEND_ONE, - D3DBLEND_ONE, - D3DBLEND_DESTCOLOR, - D3DBLEND_ZERO, - D3DBLEND_INVDESTCOLOR, - D3DBLEND_INVDESTCOLOR, - D3DBLEND_INVSRCCOLOR, - D3DBLEND_INVSRCCOLOR, - D3DBLEND_INVDESTCOLOR, - D3DBLEND_ONE, - D3DBLEND_INVSRCCOLOR, - D3DBLEND_INVSRCCOLOR, - D3DBLEND_INVDESTCOLOR, - D3DBLEND_ONE - }; - const D3DBLEND d3dLogicOpDestFactors[16] = - { - D3DBLEND_ZERO, - D3DBLEND_ZERO, - D3DBLEND_INVSRCCOLOR, - D3DBLEND_ZERO, - D3DBLEND_ONE, - D3DBLEND_ONE, - D3DBLEND_INVSRCCOLOR, - D3DBLEND_ONE, - D3DBLEND_INVDESTCOLOR, - D3DBLEND_SRCCOLOR, - D3DBLEND_INVDESTCOLOR, - D3DBLEND_INVDESTCOLOR, - D3DBLEND_INVSRCCOLOR, - D3DBLEND_ONE, - D3DBLEND_INVSRCCOLOR, - D3DBLEND_ONE - }; + // 0 0x00 + // 1 Source & destination + // 2 Source & ~destination + // 3 Source + // 4 ~Source & destination + // 5 Destination + // 6 Source ^ destination = Source & ~destination | ~Source & destination + // 7 Source | destination + // 8 ~(Source | destination) + // 9 ~(Source ^ destination) = ~Source & ~destination | Source & destination + // 10 ~Destination + // 11 Source | ~destination + // 12 ~Source + // 13 ~Source | destination + // 14 ~(Source & destination) + // 15 0xff + const D3DBLENDOP d3dLogicOpop[16] = + { + D3DBLENDOP_ADD, + D3DBLENDOP_ADD, + D3DBLENDOP_SUBTRACT, + D3DBLENDOP_ADD, + D3DBLENDOP_REVSUBTRACT, + D3DBLENDOP_ADD, + D3DBLENDOP_MAX, + D3DBLENDOP_ADD, + D3DBLENDOP_MAX, + D3DBLENDOP_MAX, + D3DBLENDOP_ADD, + D3DBLENDOP_ADD, + D3DBLENDOP_ADD, + D3DBLENDOP_ADD, + D3DBLENDOP_ADD, + D3DBLENDOP_ADD + }; + const D3DBLEND d3dLogicOpSrcFactors[16] = + { + D3DBLEND_ZERO, + D3DBLEND_DESTCOLOR, + D3DBLEND_ONE, + D3DBLEND_ONE, + D3DBLEND_DESTCOLOR, + D3DBLEND_ZERO, + D3DBLEND_INVDESTCOLOR, + D3DBLEND_INVDESTCOLOR, + D3DBLEND_INVSRCCOLOR, + D3DBLEND_INVSRCCOLOR, + D3DBLEND_INVDESTCOLOR, + D3DBLEND_ONE, + D3DBLEND_INVSRCCOLOR, + D3DBLEND_INVSRCCOLOR, + D3DBLEND_INVDESTCOLOR, + D3DBLEND_ONE + }; + const D3DBLEND d3dLogicOpDestFactors[16] = + { + D3DBLEND_ZERO, + D3DBLEND_ZERO, + D3DBLEND_INVSRCCOLOR, + D3DBLEND_ZERO, + D3DBLEND_ONE, + D3DBLEND_ONE, + D3DBLEND_INVSRCCOLOR, + D3DBLEND_ONE, + D3DBLEND_INVDESTCOLOR, + D3DBLEND_SRCCOLOR, + D3DBLEND_INVDESTCOLOR, + D3DBLEND_INVDESTCOLOR, + D3DBLEND_INVSRCCOLOR, + D3DBLEND_ONE, + D3DBLEND_INVSRCCOLOR, + D3DBLEND_ONE + }; - if (bpmem.blendmode.logicopenable) - { - D3D::SetRenderState(D3DRS_ALPHABLENDENABLE, true); - D3D::SetRenderState(D3DRS_BLENDOP, d3dLogicOpop[bpmem.blendmode.logicmode]); - D3D::SetRenderState(D3DRS_SRCBLEND, d3dLogicOpSrcFactors[bpmem.blendmode.logicmode]); - D3D::SetRenderState(D3DRS_DESTBLEND, d3dLogicOpDestFactors[bpmem.blendmode.logicmode]); - } - else - { - SetBlendMode(true); - } + if (bpmem.blendmode.logicopenable) + { + D3D::SetRenderState(D3DRS_ALPHABLENDENABLE, true); + D3D::SetRenderState(D3DRS_BLENDOP, d3dLogicOpop[bpmem.blendmode.logicmode]); + D3D::SetRenderState(D3DRS_SRCBLEND, d3dLogicOpSrcFactors[bpmem.blendmode.logicmode]); + D3D::SetRenderState(D3DRS_DESTBLEND, d3dLogicOpDestFactors[bpmem.blendmode.logicmode]); + } + else + { + SetBlendMode(true); + } } void Renderer::SetDitherMode() { - D3D::SetRenderState(D3DRS_DITHERENABLE, bpmem.blendmode.dither); + D3D::SetRenderState(D3DRS_DITHERENABLE, bpmem.blendmode.dither); } void Renderer::SetLineWidth() { - // We can't change line width in D3D unless we use ID3DXLine - float fratio = xfregs.viewport.wd != 0 ? Renderer::EFBToScaledXf(1.f) : 1.0f; - float psize = bpmem.lineptwidth.pointsize * fratio / 6.0f; - psize = psize > 0 ? psize : 1.0; - if (psize > m_fMaxPointSize) - { - psize = m_fMaxPointSize; - } - D3D::SetRenderState(D3DRS_POINTSIZE, *((DWORD*)&psize)); - D3D::SetRenderState(D3DRS_POINTSIZE_MIN, *((DWORD*)&psize)); - D3D::SetRenderState(D3DRS_POINTSIZE_MAX, *((DWORD*)&psize)); + // We can't change line width in D3D unless we use ID3DXLine + float fratio = xfregs.viewport.wd != 0 ? Renderer::EFBToScaledXf(1.f) : 1.0f; + float psize = bpmem.lineptwidth.pointsize * fratio / 6.0f; + psize = psize > 0 ? psize : 1.0; + if (psize > m_fMaxPointSize) + { + psize = m_fMaxPointSize; + } + D3D::SetRenderState(D3DRS_POINTSIZE, *((DWORD*)&psize)); + D3D::SetRenderState(D3DRS_POINTSIZE_MIN, *((DWORD*)&psize)); + D3D::SetRenderState(D3DRS_POINTSIZE_MAX, *((DWORD*)&psize)); } void Renderer::SetSamplerState(int stage, int texindex) { - const D3DTEXTUREFILTERTYPE d3dMipFilters[4] = - { - D3DTEXF_NONE, - D3DTEXF_POINT, - D3DTEXF_LINEAR, - D3DTEXF_NONE, //reserved - }; - const D3DTEXTUREADDRESS d3dClamps[4] = - { - D3DTADDRESS_CLAMP, - D3DTADDRESS_WRAP, - D3DTADDRESS_MIRROR, - D3DTADDRESS_WRAP //reserved - }; + const D3DTEXTUREFILTERTYPE d3dMipFilters[4] = + { + D3DTEXF_NONE, + D3DTEXF_POINT, + D3DTEXF_LINEAR, + D3DTEXF_NONE, //reserved + }; + const D3DTEXTUREADDRESS d3dClamps[4] = + { + D3DTADDRESS_CLAMP, + D3DTADDRESS_WRAP, + D3DTADDRESS_MIRROR, + D3DTADDRESS_WRAP //reserved + }; - const FourTexUnits &tex = bpmem.tex[texindex]; - const TexMode0 &tm0 = tex.texMode0[stage]; - const TexMode1 &tm1 = tex.texMode1[stage]; + const FourTexUnits &tex = bpmem.tex[texindex]; + const TexMode0 &tm0 = tex.texMode0[stage]; + const TexMode1 &tm1 = tex.texMode1[stage]; - D3DTEXTUREFILTERTYPE min, mag, mip; - if (g_ActiveConfig.bForceFiltering) - { - min = mag = mip = D3DTEXF_LINEAR; - } - else - { - min = (tm0.min_filter & 4) ? D3DTEXF_LINEAR : D3DTEXF_POINT; - mag = tm0.mag_filter ? D3DTEXF_LINEAR : D3DTEXF_POINT; - mip = d3dMipFilters[tm0.min_filter & 3]; - } - if (texindex) - stage += 4; + D3DTEXTUREFILTERTYPE min, mag, mip; + if (g_ActiveConfig.bForceFiltering) + { + min = mag = mip = D3DTEXF_LINEAR; + } + else + { + min = (tm0.min_filter & 4) ? D3DTEXF_LINEAR : D3DTEXF_POINT; + mag = tm0.mag_filter ? D3DTEXF_LINEAR : D3DTEXF_POINT; + mip = d3dMipFilters[tm0.min_filter & 3]; + } + if (texindex) + stage += 4; - if (mag == D3DTEXF_LINEAR && min == D3DTEXF_LINEAR && g_ActiveConfig.iMaxAnisotropy) - { - min = D3DTEXF_ANISOTROPIC; - } - D3D::SetSamplerState(stage, D3DSAMP_MINFILTER, min); - D3D::SetSamplerState(stage, D3DSAMP_MAGFILTER, mag); - D3D::SetSamplerState(stage, D3DSAMP_MIPFILTER, mip); + if (mag == D3DTEXF_LINEAR && min == D3DTEXF_LINEAR && g_ActiveConfig.iMaxAnisotropy) + { + min = D3DTEXF_ANISOTROPIC; + } + D3D::SetSamplerState(stage, D3DSAMP_MINFILTER, min); + D3D::SetSamplerState(stage, D3DSAMP_MAGFILTER, mag); + D3D::SetSamplerState(stage, D3DSAMP_MIPFILTER, mip); - D3D::SetSamplerState(stage, D3DSAMP_ADDRESSU, d3dClamps[tm0.wrap_s]); - D3D::SetSamplerState(stage, D3DSAMP_ADDRESSV, d3dClamps[tm0.wrap_t]); + D3D::SetSamplerState(stage, D3DSAMP_ADDRESSU, d3dClamps[tm0.wrap_s]); + D3D::SetSamplerState(stage, D3DSAMP_ADDRESSV, d3dClamps[tm0.wrap_t]); - float lodbias = (s32)tm0.lod_bias / 32.0f; - D3D::SetSamplerState(stage, D3DSAMP_MIPMAPLODBIAS, *(DWORD*)&lodbias); - D3D::SetSamplerState(stage, D3DSAMP_MAXMIPLEVEL, tm1.min_lod >> 4); + float lodbias = (s32)tm0.lod_bias / 32.0f; + D3D::SetSamplerState(stage, D3DSAMP_MIPMAPLODBIAS, *(DWORD*)&lodbias); + D3D::SetSamplerState(stage, D3DSAMP_MAXMIPLEVEL, tm1.min_lod >> 4); } void Renderer::SetInterlacingMode() { - // TODO + // TODO } } // namespace DX9 diff --git a/Source/Plugins/Plugin_VideoDX9/Src/VertexManager.cpp b/Source/Plugins/Plugin_VideoDX9/Src/VertexManager.cpp index 12f3b88576..dc79d68def 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/VertexManager.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/VertexManager.cpp @@ -36,383 +36,383 @@ const u32 MAX_VBUFFER_COUNT = 2; inline void DumpBadShaders() { #if defined(_DEBUG) || defined(DEBUGFAST) - // TODO: Reimplement! - /* std::string error_shaders; - error_shaders.append(VertexShaderCache::GetCurrentShaderCode()); - error_shaders.append(PixelShaderCache::GetCurrentShaderCode()); - char filename[512] = "bad_shader_combo_0.txt"; - int which = 0; - while (File::Exists(filename)) - { - which++; - sprintf(filename, "bad_shader_combo_%i.txt", which); - } - File::WriteStringToFile(true, error_shaders, filename); - PanicAlert("DrawIndexedPrimitiveUP failed. Shaders written to %s", filename);*/ + // TODO: Reimplement! + /* std::string error_shaders; + error_shaders.append(VertexShaderCache::GetCurrentShaderCode()); + error_shaders.append(PixelShaderCache::GetCurrentShaderCode()); + char filename[512] = "bad_shader_combo_0.txt"; + int which = 0; + while (File::Exists(filename)) + { + which++; + sprintf(filename, "bad_shader_combo_%i.txt", which); + } + File::WriteStringToFile(true, error_shaders, filename); + PanicAlert("DrawIndexedPrimitiveUP failed. Shaders written to %s", filename);*/ #endif } void VertexManager::CreateDeviceObjects() { - m_buffers_count = 0; - m_vertex_buffers = NULL; - m_index_buffers = NULL; - D3DCAPS9 DeviceCaps = D3D::GetCaps(); - u32 devicevMaxBufferSize = DeviceCaps.MaxPrimitiveCount * 3 * DeviceCaps.MaxStreamStride; - //Calculate Device Dependant size - m_vertex_buffer_size = (VBUFFER_SIZE > devicevMaxBufferSize) ? devicevMaxBufferSize : VBUFFER_SIZE; - m_index_buffer_size = (IBUFFER_SIZE > DeviceCaps.MaxVertexIndex) ? DeviceCaps.MaxVertexIndex : IBUFFER_SIZE; - //if device caps are not enough for Vbuffer fall back to vertex arrays - if (m_index_buffer_size < MAXIBUFFERSIZE || m_vertex_buffer_size < MAXVBUFFERSIZE) return; + m_buffers_count = 0; + m_vertex_buffers = NULL; + m_index_buffers = NULL; + D3DCAPS9 DeviceCaps = D3D::GetCaps(); + u32 devicevMaxBufferSize = DeviceCaps.MaxPrimitiveCount * 3 * DeviceCaps.MaxStreamStride; + //Calculate Device Dependant size + m_vertex_buffer_size = (VBUFFER_SIZE > devicevMaxBufferSize) ? devicevMaxBufferSize : VBUFFER_SIZE; + m_index_buffer_size = (IBUFFER_SIZE > DeviceCaps.MaxVertexIndex) ? DeviceCaps.MaxVertexIndex : IBUFFER_SIZE; + //if device caps are not enough for Vbuffer fall back to vertex arrays + if (m_index_buffer_size < MAXIBUFFERSIZE || m_vertex_buffer_size < MAXVBUFFERSIZE) return; - m_vertex_buffers = new LPDIRECT3DVERTEXBUFFER9[MAX_VBUFFER_COUNT]; - m_index_buffers = new LPDIRECT3DINDEXBUFFER9[MAX_VBUFFER_COUNT]; + m_vertex_buffers = new LPDIRECT3DVERTEXBUFFER9[MAX_VBUFFER_COUNT]; + m_index_buffers = new LPDIRECT3DINDEXBUFFER9[MAX_VBUFFER_COUNT]; - bool Fail = false; - for (m_current_vertex_buffer = 0; m_current_vertex_buffer < MAX_VBUFFER_COUNT; m_current_vertex_buffer++) - { - m_vertex_buffers[m_current_vertex_buffer] = NULL; - m_index_buffers[m_current_vertex_buffer] = NULL; - } - for (m_current_vertex_buffer = 0; m_current_vertex_buffer < MAX_VBUFFER_COUNT; m_current_vertex_buffer++) - { - if(FAILED( D3D::dev->CreateVertexBuffer( m_vertex_buffer_size, D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY, 0, D3DPOOL_DEFAULT, &m_vertex_buffers[m_current_vertex_buffer], NULL ) ) ) - { - Fail = true; - break; - } - if( FAILED( D3D::dev->CreateIndexBuffer( m_index_buffer_size * sizeof(u16), D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY, D3DFMT_INDEX16, D3DPOOL_DEFAULT, &m_index_buffers[m_current_vertex_buffer], NULL ) ) ) - { - Fail = true; - return; - } - } - m_buffers_count = m_current_vertex_buffer; - m_current_vertex_buffer = 0; - m_current_index_buffer = 0; - m_index_buffer_cursor = m_index_buffer_size; - m_vertex_buffer_cursor = m_vertex_buffer_size; - m_current_stride = 0; - if (Fail) - { - m_buffers_count--; - if (m_buffers_count < 2) - { - //Error creating Vertex buffers. clean and fall to Vertex arrays - m_buffers_count = MAX_VBUFFER_COUNT; - DestroyDeviceObjects(); - } - } + bool Fail = false; + for (m_current_vertex_buffer = 0; m_current_vertex_buffer < MAX_VBUFFER_COUNT; m_current_vertex_buffer++) + { + m_vertex_buffers[m_current_vertex_buffer] = NULL; + m_index_buffers[m_current_vertex_buffer] = NULL; + } + for (m_current_vertex_buffer = 0; m_current_vertex_buffer < MAX_VBUFFER_COUNT; m_current_vertex_buffer++) + { + if(FAILED( D3D::dev->CreateVertexBuffer( m_vertex_buffer_size, D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY, 0, D3DPOOL_DEFAULT, &m_vertex_buffers[m_current_vertex_buffer], NULL ) ) ) + { + Fail = true; + break; + } + if( FAILED( D3D::dev->CreateIndexBuffer( m_index_buffer_size * sizeof(u16), D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY, D3DFMT_INDEX16, D3DPOOL_DEFAULT, &m_index_buffers[m_current_vertex_buffer], NULL ) ) ) + { + Fail = true; + return; + } + } + m_buffers_count = m_current_vertex_buffer; + m_current_vertex_buffer = 0; + m_current_index_buffer = 0; + m_index_buffer_cursor = m_index_buffer_size; + m_vertex_buffer_cursor = m_vertex_buffer_size; + m_current_stride = 0; + if (Fail) + { + m_buffers_count--; + if (m_buffers_count < 2) + { + //Error creating Vertex buffers. clean and fall to Vertex arrays + m_buffers_count = MAX_VBUFFER_COUNT; + DestroyDeviceObjects(); + } + } } void VertexManager::DestroyDeviceObjects() { - D3D::SetStreamSource( 0, NULL, 0, 0); - D3D::SetIndices(NULL); - for (int i = 0; i < MAX_VBUFFER_COUNT; i++) - { - if(m_vertex_buffers) - { - if (m_vertex_buffers[i]) - { - m_vertex_buffers[i]->Release(); - m_vertex_buffers[i] = NULL; - } - } + D3D::SetStreamSource( 0, NULL, 0, 0); + D3D::SetIndices(NULL); + for (int i = 0; i < MAX_VBUFFER_COUNT; i++) + { + if(m_vertex_buffers) + { + if (m_vertex_buffers[i]) + { + m_vertex_buffers[i]->Release(); + m_vertex_buffers[i] = NULL; + } + } - if (m_index_buffers[i]) - { - m_index_buffers[i]->Release(); - m_index_buffers[i] = NULL; - } - } - if(m_vertex_buffers) - delete [] m_vertex_buffers; - if(m_index_buffers) - delete [] m_index_buffers; - m_vertex_buffers = NULL; - m_index_buffers = NULL; + if (m_index_buffers[i]) + { + m_index_buffers[i]->Release(); + m_index_buffers[i] = NULL; + } + } + if(m_vertex_buffers) + delete [] m_vertex_buffers; + if(m_index_buffers) + delete [] m_index_buffers; + m_vertex_buffers = NULL; + m_index_buffers = NULL; } void VertexManager::PrepareDrawBuffers(u32 stride) { - if (!m_buffers_count) - { - return; - } - u8* pVertices; - u16* pIndices; - int datasize = IndexGenerator::GetNumVerts() * stride; - int TdataSize = IndexGenerator::GetTriangleindexLen(); - int LDataSize = IndexGenerator::GetLineindexLen(); - int IndexDataSize = TdataSize + LDataSize; - if(IndexDataSize) - { - DWORD LockMode = D3DLOCK_NOOVERWRITE; - m_vertex_buffer_cursor--; - m_vertex_buffer_cursor = m_vertex_buffer_cursor - (m_vertex_buffer_cursor % stride) + stride; - if (m_vertex_buffer_cursor > m_vertex_buffer_size - datasize) - { - LockMode = D3DLOCK_DISCARD; - m_vertex_buffer_cursor = 0; - m_current_vertex_buffer = (m_current_vertex_buffer + 1) % m_buffers_count; - } - if(FAILED(m_vertex_buffers[m_current_vertex_buffer]->Lock(m_vertex_buffer_cursor, datasize,(VOID**)(&pVertices), LockMode))) - { - DestroyDeviceObjects(); - return; - } - memcpy(pVertices, s_pBaseBufferPointer, datasize); - m_vertex_buffers[m_current_vertex_buffer]->Unlock(); + if (!m_buffers_count) + { + return; + } + u8* pVertices; + u16* pIndices; + int datasize = IndexGenerator::GetNumVerts() * stride; + int TdataSize = IndexGenerator::GetTriangleindexLen(); + int LDataSize = IndexGenerator::GetLineindexLen(); + int IndexDataSize = TdataSize + LDataSize; + if(IndexDataSize) + { + DWORD LockMode = D3DLOCK_NOOVERWRITE; + m_vertex_buffer_cursor--; + m_vertex_buffer_cursor = m_vertex_buffer_cursor - (m_vertex_buffer_cursor % stride) + stride; + if (m_vertex_buffer_cursor > m_vertex_buffer_size - datasize) + { + LockMode = D3DLOCK_DISCARD; + m_vertex_buffer_cursor = 0; + m_current_vertex_buffer = (m_current_vertex_buffer + 1) % m_buffers_count; + } + if(FAILED(m_vertex_buffers[m_current_vertex_buffer]->Lock(m_vertex_buffer_cursor, datasize,(VOID**)(&pVertices), LockMode))) + { + DestroyDeviceObjects(); + return; + } + memcpy(pVertices, s_pBaseBufferPointer, datasize); + m_vertex_buffers[m_current_vertex_buffer]->Unlock(); - LockMode = D3DLOCK_NOOVERWRITE; - if (m_index_buffer_cursor > m_index_buffer_size - IndexDataSize) - { - LockMode = D3DLOCK_DISCARD; - m_index_buffer_cursor = 0; - m_current_index_buffer = (m_current_index_buffer + 1) % m_buffers_count; - } + LockMode = D3DLOCK_NOOVERWRITE; + if (m_index_buffer_cursor > m_index_buffer_size - IndexDataSize) + { + LockMode = D3DLOCK_DISCARD; + m_index_buffer_cursor = 0; + m_current_index_buffer = (m_current_index_buffer + 1) % m_buffers_count; + } - if(FAILED(m_index_buffers[m_current_index_buffer]->Lock(m_index_buffer_cursor * sizeof(u16), IndexDataSize * sizeof(u16), (VOID**)(&pIndices), LockMode ))) - { - DestroyDeviceObjects(); - return; - } - if(TdataSize) - { - memcpy(pIndices, GetTriangleIndexBuffer(), TdataSize * sizeof(u16)); - pIndices += TdataSize; - } - if(LDataSize) - { - memcpy(pIndices, GetLineIndexBuffer(), LDataSize * sizeof(u16)); - pIndices += LDataSize; - } - m_index_buffers[m_current_index_buffer]->Unlock(); - } - if(m_current_stride != stride || m_vertex_buffer_cursor == 0) - { - m_current_stride = stride; - D3D::SetStreamSource( 0, m_vertex_buffers[m_current_vertex_buffer], 0, m_current_stride); - } - if (m_index_buffer_cursor == 0) - { - D3D::SetIndices(m_index_buffers[m_current_index_buffer]); - } + if(FAILED(m_index_buffers[m_current_index_buffer]->Lock(m_index_buffer_cursor * sizeof(u16), IndexDataSize * sizeof(u16), (VOID**)(&pIndices), LockMode ))) + { + DestroyDeviceObjects(); + return; + } + if(TdataSize) + { + memcpy(pIndices, GetTriangleIndexBuffer(), TdataSize * sizeof(u16)); + pIndices += TdataSize; + } + if(LDataSize) + { + memcpy(pIndices, GetLineIndexBuffer(), LDataSize * sizeof(u16)); + pIndices += LDataSize; + } + m_index_buffers[m_current_index_buffer]->Unlock(); + } + if(m_current_stride != stride || m_vertex_buffer_cursor == 0) + { + m_current_stride = stride; + D3D::SetStreamSource( 0, m_vertex_buffers[m_current_vertex_buffer], 0, m_current_stride); + } + if (m_index_buffer_cursor == 0) + { + D3D::SetIndices(m_index_buffers[m_current_index_buffer]); + } - ADDSTAT(stats.thisFrame.bytesVertexStreamed, datasize); - ADDSTAT(stats.thisFrame.bytesIndexStreamed, IndexDataSize); + ADDSTAT(stats.thisFrame.bytesVertexStreamed, datasize); + ADDSTAT(stats.thisFrame.bytesIndexStreamed, IndexDataSize); } void VertexManager::DrawVertexBuffer(int stride) { - int triangles = IndexGenerator::GetNumTriangles(); - int lines = IndexGenerator::GetNumLines(); - int points = IndexGenerator::GetNumPoints(); - int numverts = IndexGenerator::GetNumVerts(); - int StartIndex = m_index_buffer_cursor; - int basevertex = m_vertex_buffer_cursor / stride; - if (triangles > 0) - { - if (FAILED(D3D::dev->DrawIndexedPrimitive( - D3DPT_TRIANGLELIST, - basevertex, - 0, - numverts, - StartIndex, - triangles))) - { - DumpBadShaders(); - } - StartIndex += IndexGenerator::GetTriangleindexLen(); - INCSTAT(stats.thisFrame.numIndexedDrawCalls); - } - if (lines > 0) - { - if (FAILED(D3D::dev->DrawIndexedPrimitive( - D3DPT_LINELIST, - basevertex, - 0, - numverts, - StartIndex, - IndexGenerator::GetNumLines()))) - { - DumpBadShaders(); - } - StartIndex += IndexGenerator::GetLineindexLen(); - INCSTAT(stats.thisFrame.numIndexedDrawCalls); - } - if (points > 0) - { - //DrawIndexedPrimitive does not support point list so we have to draw them using DrawPrimitive - u16* PointIndexBuffer = GetPointIndexBuffer(); - int i = 0; - do - { - int count = i + 1; - while (count < points && PointIndexBuffer[count - 1] + 1 == PointIndexBuffer[count]) - { - count++; - } - if (FAILED(D3D::dev->DrawPrimitive( - D3DPT_POINTLIST, - basevertex + PointIndexBuffer[i], - count - i))) - { - DumpBadShaders(); - } - INCSTAT(stats.thisFrame.numDrawCalls); - i = count; - } while (i < points); - } + int triangles = IndexGenerator::GetNumTriangles(); + int lines = IndexGenerator::GetNumLines(); + int points = IndexGenerator::GetNumPoints(); + int numverts = IndexGenerator::GetNumVerts(); + int StartIndex = m_index_buffer_cursor; + int basevertex = m_vertex_buffer_cursor / stride; + if (triangles > 0) + { + if (FAILED(D3D::dev->DrawIndexedPrimitive( + D3DPT_TRIANGLELIST, + basevertex, + 0, + numverts, + StartIndex, + triangles))) + { + DumpBadShaders(); + } + StartIndex += IndexGenerator::GetTriangleindexLen(); + INCSTAT(stats.thisFrame.numIndexedDrawCalls); + } + if (lines > 0) + { + if (FAILED(D3D::dev->DrawIndexedPrimitive( + D3DPT_LINELIST, + basevertex, + 0, + numverts, + StartIndex, + IndexGenerator::GetNumLines()))) + { + DumpBadShaders(); + } + StartIndex += IndexGenerator::GetLineindexLen(); + INCSTAT(stats.thisFrame.numIndexedDrawCalls); + } + if (points > 0) + { + //DrawIndexedPrimitive does not support point list so we have to draw them using DrawPrimitive + u16* PointIndexBuffer = GetPointIndexBuffer(); + int i = 0; + do + { + int count = i + 1; + while (count < points && PointIndexBuffer[count - 1] + 1 == PointIndexBuffer[count]) + { + count++; + } + if (FAILED(D3D::dev->DrawPrimitive( + D3DPT_POINTLIST, + basevertex + PointIndexBuffer[i], + count - i))) + { + DumpBadShaders(); + } + INCSTAT(stats.thisFrame.numDrawCalls); + i = count; + } while (i < points); + } } void VertexManager::DrawVertexArray(int stride) { - int triangles = IndexGenerator::GetNumTriangles(); - int lines = IndexGenerator::GetNumLines(); - int points = IndexGenerator::GetNumPoints(); - int numverts = IndexGenerator::GetNumVerts(); - if (triangles > 0) - { - if (FAILED(D3D::dev->DrawIndexedPrimitiveUP( - D3DPT_TRIANGLELIST, - 0, numverts, triangles, - GetTriangleIndexBuffer(), - D3DFMT_INDEX16, - s_pBaseBufferPointer, - stride))) - { - DumpBadShaders(); - } - INCSTAT(stats.thisFrame.numIndexedDrawCalls); - } - if (lines > 0) - { - if (FAILED(D3D::dev->DrawIndexedPrimitiveUP( - D3DPT_LINELIST, - 0, numverts, lines, - GetLineIndexBuffer(), - D3DFMT_INDEX16, - s_pBaseBufferPointer, - stride))) - { - DumpBadShaders(); - } - INCSTAT(stats.thisFrame.numIndexedDrawCalls); - } - if (points > 0) - { - if (FAILED(D3D::dev->DrawIndexedPrimitiveUP( - D3DPT_POINTLIST, - 0, numverts, points, - GetPointIndexBuffer(), - D3DFMT_INDEX16, - s_pBaseBufferPointer, - stride))) - { - DumpBadShaders(); - } - INCSTAT(stats.thisFrame.numIndexedDrawCalls); - } + int triangles = IndexGenerator::GetNumTriangles(); + int lines = IndexGenerator::GetNumLines(); + int points = IndexGenerator::GetNumPoints(); + int numverts = IndexGenerator::GetNumVerts(); + if (triangles > 0) + { + if (FAILED(D3D::dev->DrawIndexedPrimitiveUP( + D3DPT_TRIANGLELIST, + 0, numverts, triangles, + GetTriangleIndexBuffer(), + D3DFMT_INDEX16, + s_pBaseBufferPointer, + stride))) + { + DumpBadShaders(); + } + INCSTAT(stats.thisFrame.numIndexedDrawCalls); + } + if (lines > 0) + { + if (FAILED(D3D::dev->DrawIndexedPrimitiveUP( + D3DPT_LINELIST, + 0, numverts, lines, + GetLineIndexBuffer(), + D3DFMT_INDEX16, + s_pBaseBufferPointer, + stride))) + { + DumpBadShaders(); + } + INCSTAT(stats.thisFrame.numIndexedDrawCalls); + } + if (points > 0) + { + if (FAILED(D3D::dev->DrawIndexedPrimitiveUP( + D3DPT_POINTLIST, + 0, numverts, points, + GetPointIndexBuffer(), + D3DFMT_INDEX16, + s_pBaseBufferPointer, + stride))) + { + DumpBadShaders(); + } + INCSTAT(stats.thisFrame.numIndexedDrawCalls); + } } void VertexManager::vFlush() { - u32 usedtextures = 0; - for (u32 i = 0; i < (u32)bpmem.genMode.numtevstages + 1; ++i) - if (bpmem.tevorders[i / 2].getEnable(i & 1)) - usedtextures |= 1 << bpmem.tevorders[i/2].getTexMap(i & 1); + u32 usedtextures = 0; + for (u32 i = 0; i < (u32)bpmem.genMode.numtevstages + 1; ++i) + if (bpmem.tevorders[i / 2].getEnable(i & 1)) + usedtextures |= 1 << bpmem.tevorders[i/2].getTexMap(i & 1); - if (bpmem.genMode.numindstages > 0) - for (unsigned int i = 0; i < bpmem.genMode.numtevstages + 1; ++i) - if (bpmem.tevind[i].IsActive() && bpmem.tevind[i].bt < bpmem.genMode.numindstages) - usedtextures |= 1 << bpmem.tevindref.getTexMap(bpmem.tevind[i].bt); + if (bpmem.genMode.numindstages > 0) + for (unsigned int i = 0; i < bpmem.genMode.numtevstages + 1; ++i) + if (bpmem.tevind[i].IsActive() && bpmem.tevind[i].bt < bpmem.genMode.numindstages) + usedtextures |= 1 << bpmem.tevindref.getTexMap(bpmem.tevind[i].bt); - for (unsigned int i = 0; i < 8; i++) - { - if (usedtextures & (1 << i)) - { - g_renderer->SetSamplerState(i & 3, i >> 2); - FourTexUnits &tex = bpmem.tex[i >> 2]; - TextureCache::TCacheEntryBase* tentry = TextureCache::Load(i, - (tex.texImage3[i&3].image_base/* & 0x1FFFFF*/) << 5, - tex.texImage0[i&3].width + 1, tex.texImage0[i&3].height + 1, - tex.texImage0[i&3].format, tex.texTlut[i&3].tmem_offset<<9, - tex.texTlut[i&3].tlut_format, - (tex.texMode0[i&3].min_filter & 3), - (tex.texMode1[i&3].max_lod + 0xf) / 0x10, - tex.texImage1[i&3].image_type); + for (unsigned int i = 0; i < 8; i++) + { + if (usedtextures & (1 << i)) + { + g_renderer->SetSamplerState(i & 3, i >> 2); + FourTexUnits &tex = bpmem.tex[i >> 2]; + TextureCache::TCacheEntryBase* tentry = TextureCache::Load(i, + (tex.texImage3[i&3].image_base/* & 0x1FFFFF*/) << 5, + tex.texImage0[i&3].width + 1, tex.texImage0[i&3].height + 1, + tex.texImage0[i&3].format, tex.texTlut[i&3].tmem_offset<<9, + tex.texTlut[i&3].tlut_format, + (tex.texMode0[i&3].min_filter & 3), + (tex.texMode1[i&3].max_lod + 0xf) / 0x10, + tex.texImage1[i&3].image_type); - if (tentry) - { - // 0s are probably for no manual wrapping needed. - PixelShaderManager::SetTexDims(i, tentry->native_width, tentry->native_height, 0, 0); - } - else - ERROR_LOG(VIDEO, "Error loading texture"); - } - } + if (tentry) + { + // 0s are probably for no manual wrapping needed. + PixelShaderManager::SetTexDims(i, tentry->native_width, tentry->native_height, 0, 0); + } + else + ERROR_LOG(VIDEO, "Error loading texture"); + } + } - // set global constants - VertexShaderManager::SetConstants(); - PixelShaderManager::SetConstants(g_nativeVertexFmt->m_components); - u32 stride = g_nativeVertexFmt->GetVertexStride(); - bool useDstAlpha = !g_ActiveConfig.bDstAlphaPass && bpmem.dstalpha.enable && bpmem.blendmode.alphaupdate && - bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24; - bool useDualSource = useDstAlpha && g_ActiveConfig.backend_info.bSupportsDualSourceBlend; - DSTALPHA_MODE AlphaMode = useDualSource ? DSTALPHA_DUAL_SOURCE_BLEND : DSTALPHA_NONE; + // set global constants + VertexShaderManager::SetConstants(); + PixelShaderManager::SetConstants(g_nativeVertexFmt->m_components); + u32 stride = g_nativeVertexFmt->GetVertexStride(); + bool useDstAlpha = !g_ActiveConfig.bDstAlphaPass && bpmem.dstalpha.enable && bpmem.blendmode.alphaupdate && + bpmem.zcontrol.pixel_format == PIXELFMT_RGBA6_Z24; + bool useDualSource = useDstAlpha && g_ActiveConfig.backend_info.bSupportsDualSourceBlend; + DSTALPHA_MODE AlphaMode = useDualSource ? DSTALPHA_DUAL_SOURCE_BLEND : DSTALPHA_NONE; - if (!PixelShaderCache::SetShader(AlphaMode ,g_nativeVertexFmt->m_components)) - { - GFX_DEBUGGER_PAUSE_LOG_AT(NEXT_ERROR,true,{printf("Fail to set pixel shader\n");}); - goto shader_fail; - } - if (!VertexShaderCache::SetShader(g_nativeVertexFmt->m_components)) - { - GFX_DEBUGGER_PAUSE_LOG_AT(NEXT_ERROR,true,{printf("Fail to set vertex shader\n");}); - goto shader_fail; + if (!PixelShaderCache::SetShader(AlphaMode ,g_nativeVertexFmt->m_components)) + { + GFX_DEBUGGER_PAUSE_LOG_AT(NEXT_ERROR,true,{printf("Fail to set pixel shader\n");}); + goto shader_fail; + } + if (!VertexShaderCache::SetShader(g_nativeVertexFmt->m_components)) + { + GFX_DEBUGGER_PAUSE_LOG_AT(NEXT_ERROR,true,{printf("Fail to set vertex shader\n");}); + goto shader_fail; - } - PrepareDrawBuffers(stride); - g_nativeVertexFmt->SetupVertexPointers(); - g_perf_query->EnableQuery(bpmem.zcontrol.early_ztest ? PQG_ZCOMP_ZCOMPLOC : PQG_ZCOMP); - if(m_buffers_count) - { - DrawVertexBuffer(stride); - } - else - { - DrawVertexArray(stride); - } - g_perf_query->DisableQuery(bpmem.zcontrol.early_ztest ? PQG_ZCOMP_ZCOMPLOC : PQG_ZCOMP); - if (useDstAlpha && !useDualSource) - { - if (!PixelShaderCache::SetShader(DSTALPHA_ALPHA_PASS, g_nativeVertexFmt->m_components)) - { - GFX_DEBUGGER_PAUSE_LOG_AT(NEXT_ERROR,true,{printf("Fail to set pixel shader\n");}); - goto shader_fail; - } - // update alpha only - g_renderer->ApplyState(true); - if(m_buffers_count) - { - DrawVertexBuffer(stride); - } - else - { - DrawVertexArray(stride); - } - g_renderer->RestoreState(); - } - GFX_DEBUGGER_PAUSE_AT(NEXT_FLUSH, true); + } + PrepareDrawBuffers(stride); + g_nativeVertexFmt->SetupVertexPointers(); + g_perf_query->EnableQuery(bpmem.zcontrol.early_ztest ? PQG_ZCOMP_ZCOMPLOC : PQG_ZCOMP); + if(m_buffers_count) + { + DrawVertexBuffer(stride); + } + else + { + DrawVertexArray(stride); + } + g_perf_query->DisableQuery(bpmem.zcontrol.early_ztest ? PQG_ZCOMP_ZCOMPLOC : PQG_ZCOMP); + if (useDstAlpha && !useDualSource) + { + if (!PixelShaderCache::SetShader(DSTALPHA_ALPHA_PASS, g_nativeVertexFmt->m_components)) + { + GFX_DEBUGGER_PAUSE_LOG_AT(NEXT_ERROR,true,{printf("Fail to set pixel shader\n");}); + goto shader_fail; + } + // update alpha only + g_renderer->ApplyState(true); + if(m_buffers_count) + { + DrawVertexBuffer(stride); + } + else + { + DrawVertexArray(stride); + } + g_renderer->RestoreState(); + } + GFX_DEBUGGER_PAUSE_AT(NEXT_FLUSH, true); shader_fail: - if(m_buffers_count) - { - m_index_buffer_cursor += IndexGenerator::GetTriangleindexLen() + IndexGenerator::GetLineindexLen() + IndexGenerator::GetPointindexLen(); - m_vertex_buffer_cursor += IndexGenerator::GetNumVerts() * stride; - } + if(m_buffers_count) + { + m_index_buffer_cursor += IndexGenerator::GetTriangleindexLen() + IndexGenerator::GetLineindexLen() + IndexGenerator::GetPointindexLen(); + m_vertex_buffer_cursor += IndexGenerator::GetNumVerts() * stride; + } } } diff --git a/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp b/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp index 2300291e7d..7c53bdfe23 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/VertexShaderCache.cpp @@ -37,257 +37,257 @@ LinearDiskCache g_vs_disk_cache; LPDIRECT3DVERTEXSHADER9 VertexShaderCache::GetSimpleVertexShader(int level) { - return SimpleVertexShader[level % MAX_SSAA_SHADERS]; + return SimpleVertexShader[level % MAX_SSAA_SHADERS]; } LPDIRECT3DVERTEXSHADER9 VertexShaderCache::GetClearVertexShader() { - return ClearVertexShader; + return ClearVertexShader; } // this class will load the precompiled shaders into our cache class VertexShaderCacheInserter : public LinearDiskCacheReader { public: - void Read(const VertexShaderUid &key, const u8 *value, u32 value_size) - { - VertexShaderCache::InsertByteCode(key, value, value_size, false); - } + void Read(const VertexShaderUid &key, const u8 *value, u32 value_size) + { + VertexShaderCache::InsertByteCode(key, value, value_size, false); + } }; void VertexShaderCache::Init() { - char* vProg = new char[2048]; - sprintf(vProg,"struct VSOUTPUT\n" - "{\n" - "float4 vPosition : POSITION;\n" - "float2 vTexCoord : TEXCOORD0;\n" - "float vTexCoord1 : TEXCOORD1;\n" - "};\n" - "VSOUTPUT main(float4 inPosition : POSITION,float2 inTEX0 : TEXCOORD0,float2 inTEX1 : TEXCOORD1,float inTEX2 : TEXCOORD2)\n" - "{\n" - "VSOUTPUT OUT;\n" - "OUT.vPosition = inPosition;\n" - "OUT.vTexCoord = inTEX0;\n" - "OUT.vTexCoord1 = inTEX2;\n" - "return OUT;\n" - "}\n"); + char* vProg = new char[2048]; + sprintf(vProg,"struct VSOUTPUT\n" + "{\n" + "float4 vPosition : POSITION;\n" + "float2 vTexCoord : TEXCOORD0;\n" + "float vTexCoord1 : TEXCOORD1;\n" + "};\n" + "VSOUTPUT main(float4 inPosition : POSITION,float2 inTEX0 : TEXCOORD0,float2 inTEX1 : TEXCOORD1,float inTEX2 : TEXCOORD2)\n" + "{\n" + "VSOUTPUT OUT;\n" + "OUT.vPosition = inPosition;\n" + "OUT.vTexCoord = inTEX0;\n" + "OUT.vTexCoord1 = inTEX2;\n" + "return OUT;\n" + "}\n"); - SimpleVertexShader[0] = D3D::CompileAndCreateVertexShader(vProg, (int)strlen(vProg)); + SimpleVertexShader[0] = D3D::CompileAndCreateVertexShader(vProg, (int)strlen(vProg)); - sprintf(vProg,"struct VSOUTPUT\n" - "{\n" - "float4 vPosition : POSITION;\n" - "float4 vColor0 : COLOR0;\n" - "};\n" - "VSOUTPUT main(float4 inPosition : POSITION,float4 inColor0: COLOR0)\n" - "{\n" - "VSOUTPUT OUT;\n" - "OUT.vPosition = inPosition;\n" - "OUT.vColor0 = inColor0;\n" - "return OUT;\n" - "}\n"); + sprintf(vProg,"struct VSOUTPUT\n" + "{\n" + "float4 vPosition : POSITION;\n" + "float4 vColor0 : COLOR0;\n" + "};\n" + "VSOUTPUT main(float4 inPosition : POSITION,float4 inColor0: COLOR0)\n" + "{\n" + "VSOUTPUT OUT;\n" + "OUT.vPosition = inPosition;\n" + "OUT.vColor0 = inColor0;\n" + "return OUT;\n" + "}\n"); - ClearVertexShader = D3D::CompileAndCreateVertexShader(vProg, (int)strlen(vProg)); - sprintf(vProg, "struct VSOUTPUT\n" - "{\n" - "float4 vPosition : POSITION;\n" - "float4 vTexCoord : TEXCOORD0;\n" - "float vTexCoord1 : TEXCOORD1;\n" - "float4 vTexCoord2 : TEXCOORD2;\n" - "float4 vTexCoord3 : TEXCOORD3;\n" - "};\n" - "VSOUTPUT main(float4 inPosition : POSITION,float2 inTEX0 : TEXCOORD0,float2 inTEX1 : TEXCOORD1,float inTEX2 : TEXCOORD2)\n" - "{\n" - "VSOUTPUT OUT;" - "OUT.vPosition = inPosition;\n" - "OUT.vTexCoord = inTEX0.xyyx;\n" - "OUT.vTexCoord1 = inTEX2.x;\n" - "OUT.vTexCoord2 = inTEX0.xyyx + (float4(-0.495f,-0.495f, 0.495f,-0.495f) * inTEX1.xyyx);\n" - "OUT.vTexCoord3 = inTEX0.xyyx + (float4( 0.495f, 0.495f,-0.495f, 0.495f) * inTEX1.xyyx);\n" - "return OUT;\n" - "}\n"); - SimpleVertexShader[1] = D3D::CompileAndCreateVertexShader(vProg, (int)strlen(vProg)); + ClearVertexShader = D3D::CompileAndCreateVertexShader(vProg, (int)strlen(vProg)); + sprintf(vProg, "struct VSOUTPUT\n" + "{\n" + "float4 vPosition : POSITION;\n" + "float4 vTexCoord : TEXCOORD0;\n" + "float vTexCoord1 : TEXCOORD1;\n" + "float4 vTexCoord2 : TEXCOORD2;\n" + "float4 vTexCoord3 : TEXCOORD3;\n" + "};\n" + "VSOUTPUT main(float4 inPosition : POSITION,float2 inTEX0 : TEXCOORD0,float2 inTEX1 : TEXCOORD1,float inTEX2 : TEXCOORD2)\n" + "{\n" + "VSOUTPUT OUT;" + "OUT.vPosition = inPosition;\n" + "OUT.vTexCoord = inTEX0.xyyx;\n" + "OUT.vTexCoord1 = inTEX2.x;\n" + "OUT.vTexCoord2 = inTEX0.xyyx + (float4(-0.495f,-0.495f, 0.495f,-0.495f) * inTEX1.xyyx);\n" + "OUT.vTexCoord3 = inTEX0.xyyx + (float4( 0.495f, 0.495f,-0.495f, 0.495f) * inTEX1.xyyx);\n" + "return OUT;\n" + "}\n"); + SimpleVertexShader[1] = D3D::CompileAndCreateVertexShader(vProg, (int)strlen(vProg)); - sprintf(vProg, "struct VSOUTPUT\n" - "{\n" - "float4 vPosition : POSITION;\n" - "float4 vTexCoord : TEXCOORD0;\n" - "float vTexCoord1 : TEXCOORD1;\n" - "float4 vTexCoord2 : TEXCOORD2;\n" - "float4 vTexCoord3 : TEXCOORD3;\n" - "};\n" - "VSOUTPUT main(float4 inPosition : POSITION,float2 inTEX0 : TEXCOORD0,float2 inTEX1 : TEXCOORD1,float inTEX2 : TEXCOORD2)\n" - "{\n" - "VSOUTPUT OUT;" - "OUT.vPosition = inPosition;\n" - "OUT.vTexCoord = inTEX0.xyyx;\n" - "OUT.vTexCoord1 = inTEX2.x;\n" - "OUT.vTexCoord2 = inTEX0.xyyx + (float4(-0.9f,-0.45f, 0.9f,-0.45f) * inTEX1.xyyx);\n" - "OUT.vTexCoord3 = inTEX0.xyyx + (float4( 0.9f, 0.45f,-0.9f, 0.45f) * inTEX1.xyyx);\n" - "return OUT;\n" - "}\n"); - SimpleVertexShader[2] = D3D::CompileAndCreateVertexShader(vProg, (int)strlen(vProg)); + sprintf(vProg, "struct VSOUTPUT\n" + "{\n" + "float4 vPosition : POSITION;\n" + "float4 vTexCoord : TEXCOORD0;\n" + "float vTexCoord1 : TEXCOORD1;\n" + "float4 vTexCoord2 : TEXCOORD2;\n" + "float4 vTexCoord3 : TEXCOORD3;\n" + "};\n" + "VSOUTPUT main(float4 inPosition : POSITION,float2 inTEX0 : TEXCOORD0,float2 inTEX1 : TEXCOORD1,float inTEX2 : TEXCOORD2)\n" + "{\n" + "VSOUTPUT OUT;" + "OUT.vPosition = inPosition;\n" + "OUT.vTexCoord = inTEX0.xyyx;\n" + "OUT.vTexCoord1 = inTEX2.x;\n" + "OUT.vTexCoord2 = inTEX0.xyyx + (float4(-0.9f,-0.45f, 0.9f,-0.45f) * inTEX1.xyyx);\n" + "OUT.vTexCoord3 = inTEX0.xyyx + (float4( 0.9f, 0.45f,-0.9f, 0.45f) * inTEX1.xyyx);\n" + "return OUT;\n" + "}\n"); + SimpleVertexShader[2] = D3D::CompileAndCreateVertexShader(vProg, (int)strlen(vProg)); - Clear(); - delete [] vProg; + Clear(); + delete [] vProg; - if (!File::Exists(File::GetUserPath(D_SHADERCACHE_IDX))) - File::CreateDir(File::GetUserPath(D_SHADERCACHE_IDX).c_str()); + if (!File::Exists(File::GetUserPath(D_SHADERCACHE_IDX))) + File::CreateDir(File::GetUserPath(D_SHADERCACHE_IDX).c_str()); - SETSTAT(stats.numVertexShadersCreated, 0); - SETSTAT(stats.numVertexShadersAlive, 0); + SETSTAT(stats.numVertexShadersCreated, 0); + SETSTAT(stats.numVertexShadersAlive, 0); - char cache_filename[MAX_PATH]; - sprintf(cache_filename, "%sdx9-%s-vs.cache", File::GetUserPath(D_SHADERCACHE_IDX).c_str(), - SConfig::GetInstance().m_LocalCoreStartupParameter.m_strUniqueID.c_str()); - VertexShaderCacheInserter inserter; - g_vs_disk_cache.OpenAndRead(cache_filename, inserter); + char cache_filename[MAX_PATH]; + sprintf(cache_filename, "%sdx9-%s-vs.cache", File::GetUserPath(D_SHADERCACHE_IDX).c_str(), + SConfig::GetInstance().m_LocalCoreStartupParameter.m_strUniqueID.c_str()); + VertexShaderCacheInserter inserter; + g_vs_disk_cache.OpenAndRead(cache_filename, inserter); - if (g_Config.bEnableShaderDebugging) - Clear(); + if (g_Config.bEnableShaderDebugging) + Clear(); - last_entry = NULL; + last_entry = NULL; } void VertexShaderCache::Clear() { - for (VSCache::iterator iter = vshaders.begin(); iter != vshaders.end(); ++iter) - iter->second.Destroy(); - vshaders.clear(); - vertex_uid_checker.Invalidate(); + for (VSCache::iterator iter = vshaders.begin(); iter != vshaders.end(); ++iter) + iter->second.Destroy(); + vshaders.clear(); + vertex_uid_checker.Invalidate(); - last_entry = NULL; + last_entry = NULL; } void VertexShaderCache::Shutdown() { - for (int i = 0; i < MAX_SSAA_SHADERS; i++) - { - if (SimpleVertexShader[i]) - SimpleVertexShader[i]->Release(); - SimpleVertexShader[i] = NULL; - } + for (int i = 0; i < MAX_SSAA_SHADERS; i++) + { + if (SimpleVertexShader[i]) + SimpleVertexShader[i]->Release(); + SimpleVertexShader[i] = NULL; + } - if (ClearVertexShader) - ClearVertexShader->Release(); - ClearVertexShader = NULL; + if (ClearVertexShader) + ClearVertexShader->Release(); + ClearVertexShader = NULL; - Clear(); - g_vs_disk_cache.Sync(); - g_vs_disk_cache.Close(); + Clear(); + g_vs_disk_cache.Sync(); + g_vs_disk_cache.Close(); } bool VertexShaderCache::SetShader(u32 components) { - VertexShaderUid uid; - GetVertexShaderUid(uid, components, API_D3D9); - if (g_ActiveConfig.bEnableShaderDebugging) - { - VertexShaderCode code; - GenerateVertexShaderCode(code, components, API_D3D9); - vertex_uid_checker.AddToIndexAndCheck(code, uid, "Vertex", "v"); - } + VertexShaderUid uid; + GetVertexShaderUid(uid, components, API_D3D9); + if (g_ActiveConfig.bEnableShaderDebugging) + { + VertexShaderCode code; + GenerateVertexShaderCode(code, components, API_D3D9); + vertex_uid_checker.AddToIndexAndCheck(code, uid, "Vertex", "v"); + } - if (last_entry) - { - if (uid == last_uid) - { - GFX_DEBUGGER_PAUSE_AT(NEXT_VERTEX_SHADER_CHANGE, true); - return (last_entry->shader != NULL); - } - } + if (last_entry) + { + if (uid == last_uid) + { + GFX_DEBUGGER_PAUSE_AT(NEXT_VERTEX_SHADER_CHANGE, true); + return (last_entry->shader != NULL); + } + } - last_uid = uid; + last_uid = uid; - VSCache::iterator iter = vshaders.find(uid); - if (iter != vshaders.end()) - { - const VSCacheEntry &entry = iter->second; - last_entry = &entry; + VSCache::iterator iter = vshaders.find(uid); + if (iter != vshaders.end()) + { + const VSCacheEntry &entry = iter->second; + last_entry = &entry; - if (entry.shader) D3D::SetVertexShader(entry.shader); - GFX_DEBUGGER_PAUSE_AT(NEXT_VERTEX_SHADER_CHANGE, true); - return (entry.shader != NULL); - } + if (entry.shader) D3D::SetVertexShader(entry.shader); + GFX_DEBUGGER_PAUSE_AT(NEXT_VERTEX_SHADER_CHANGE, true); + return (entry.shader != NULL); + } - VertexShaderCode code; - GenerateVertexShaderCode(code, components, API_D3D9); + VertexShaderCode code; + GenerateVertexShaderCode(code, components, API_D3D9); - u8 *bytecode; - int bytecodelen; - if (!D3D::CompileVertexShader(code.GetBuffer(), (int)strlen(code.GetBuffer()), &bytecode, &bytecodelen)) - { - GFX_DEBUGGER_PAUSE_AT(NEXT_ERROR, true); - return false; - } - g_vs_disk_cache.Append(uid, bytecode, bytecodelen); + u8 *bytecode; + int bytecodelen; + if (!D3D::CompileVertexShader(code.GetBuffer(), (int)strlen(code.GetBuffer()), &bytecode, &bytecodelen)) + { + GFX_DEBUGGER_PAUSE_AT(NEXT_ERROR, true); + return false; + } + g_vs_disk_cache.Append(uid, bytecode, bytecodelen); - bool success = InsertByteCode(uid, bytecode, bytecodelen, true); - if (g_ActiveConfig.bEnableShaderDebugging && success) - { - vshaders[uid].code = code.GetBuffer(); - } - delete [] bytecode; - GFX_DEBUGGER_PAUSE_AT(NEXT_VERTEX_SHADER_CHANGE, true); - return success; + bool success = InsertByteCode(uid, bytecode, bytecodelen, true); + if (g_ActiveConfig.bEnableShaderDebugging && success) + { + vshaders[uid].code = code.GetBuffer(); + } + delete [] bytecode; + GFX_DEBUGGER_PAUSE_AT(NEXT_VERTEX_SHADER_CHANGE, true); + return success; } bool VertexShaderCache::InsertByteCode(const VertexShaderUid &uid, const u8 *bytecode, int bytecodelen, bool activate) { - LPDIRECT3DVERTEXSHADER9 shader = D3D::CreateVertexShaderFromByteCode(bytecode, bytecodelen); + LPDIRECT3DVERTEXSHADER9 shader = D3D::CreateVertexShaderFromByteCode(bytecode, bytecodelen); - // Make an entry in the table - VSCacheEntry entry; - entry.shader = shader; + // Make an entry in the table + VSCacheEntry entry; + entry.shader = shader; - vshaders[uid] = entry; - last_entry = &vshaders[uid]; - if (!shader) - return false; + vshaders[uid] = entry; + last_entry = &vshaders[uid]; + if (!shader) + return false; - INCSTAT(stats.numVertexShadersCreated); - SETSTAT(stats.numVertexShadersAlive, (int)vshaders.size()); - if (activate) - { - D3D::SetVertexShader(shader); - return true; - } - return false; + INCSTAT(stats.numVertexShadersCreated); + SETSTAT(stats.numVertexShadersAlive, (int)vshaders.size()); + if (activate) + { + D3D::SetVertexShader(shader); + return true; + } + return false; } float VSConstantbuffer[4*C_VENVCONST_END]; void Renderer::SetVSConstant4f(unsigned int const_number, float f1, float f2, float f3, float f4) { - float* VSConstantbuffer_pointer = &VSConstantbuffer[const_number]; - VSConstantbuffer_pointer[0] = f1; - VSConstantbuffer_pointer[1] = f2; - VSConstantbuffer_pointer[2] = f3; - VSConstantbuffer_pointer[3] = f4; - DX9::D3D::dev->SetVertexShaderConstantF(const_number, VSConstantbuffer_pointer, 1); + float* VSConstantbuffer_pointer = &VSConstantbuffer[const_number]; + VSConstantbuffer_pointer[0] = f1; + VSConstantbuffer_pointer[1] = f2; + VSConstantbuffer_pointer[2] = f3; + VSConstantbuffer_pointer[3] = f4; + DX9::D3D::dev->SetVertexShaderConstantF(const_number, VSConstantbuffer_pointer, 1); } void Renderer::SetVSConstant4fv(unsigned int const_number, const float *f) { - DX9::D3D::dev->SetVertexShaderConstantF(const_number, f, 1); + DX9::D3D::dev->SetVertexShaderConstantF(const_number, f, 1); } void Renderer::SetMultiVSConstant3fv(unsigned int const_number, unsigned int count, const float *f) { - float* VSConstantbuffer_pointer = &VSConstantbuffer[const_number]; - for (unsigned int i = 0; i < count; i++) - { - *VSConstantbuffer_pointer++ = *f++; - *VSConstantbuffer_pointer++ = *f++; - *VSConstantbuffer_pointer++ = *f++; - *VSConstantbuffer_pointer++ = 0.f; - } - DX9::D3D::dev->SetVertexShaderConstantF(const_number, &VSConstantbuffer[const_number], count); + float* VSConstantbuffer_pointer = &VSConstantbuffer[const_number]; + for (unsigned int i = 0; i < count; i++) + { + *VSConstantbuffer_pointer++ = *f++; + *VSConstantbuffer_pointer++ = *f++; + *VSConstantbuffer_pointer++ = *f++; + *VSConstantbuffer_pointer++ = 0.f; + } + DX9::D3D::dev->SetVertexShaderConstantF(const_number, &VSConstantbuffer[const_number], count); } void Renderer::SetMultiVSConstant4fv(unsigned int const_number, unsigned int count, const float *f) { - DX9::D3D::dev->SetVertexShaderConstantF(const_number, f, count); + DX9::D3D::dev->SetVertexShaderConstantF(const_number, f, count); } } // namespace DX9 diff --git a/Source/Plugins/Plugin_VideoDX9/Src/main.cpp b/Source/Plugins/Plugin_VideoDX9/Src/main.cpp index 3c4c66d35f..f3ca31ba82 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/main.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/main.cpp @@ -50,192 +50,192 @@ namespace DX9 { - unsigned int VideoBackend::PeekMessages() - { - MSG msg; - while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) - { - if (msg.message == WM_QUIT) - return FALSE; - TranslateMessage(&msg); - DispatchMessage(&msg); - } - return TRUE; - } +unsigned int VideoBackend::PeekMessages() +{ + MSG msg; + while (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) + { + if (msg.message == WM_QUIT) + return FALSE; + TranslateMessage(&msg); + DispatchMessage(&msg); + } + return TRUE; +} - void VideoBackend::UpdateFPSDisplay(const char *text) - { - TCHAR temp[512]; - swprintf_s(temp, sizeof(temp)/sizeof(TCHAR), _T("%hs | DX9 | %hs"), scm_rev_str, text); - EmuWindow::SetWindowText(temp); - } +void VideoBackend::UpdateFPSDisplay(const char *text) +{ + TCHAR temp[512]; + swprintf_s(temp, sizeof(temp)/sizeof(TCHAR), _T("%hs | DX9 | %hs"), scm_rev_str, text); + EmuWindow::SetWindowText(temp); +} - std::string VideoBackend::GetName() - { - return "DX9"; - } +std::string VideoBackend::GetName() +{ + return "DX9"; +} - std::string VideoBackend::GetDisplayName() - { - return "Direct3D9 (deprecated)"; - } +std::string VideoBackend::GetDisplayName() +{ + return "Direct3D9 (deprecated)"; +} - void InitBackendInfo() - { - DX9::D3D::Init(); - D3DCAPS9 device_caps = DX9::D3D::GetCaps(); - const int shaderModel = ((device_caps.PixelShaderVersion >> 8) & 0xFF); - const int maxConstants = (shaderModel < 3) ? 32 : ((shaderModel < 4) ? 224 : 65536); - g_Config.backend_info.APIType = shaderModel < 3 ? API_D3D9_SM20 : API_D3D9_SM30; - g_Config.backend_info.bUseRGBATextures = false; - g_Config.backend_info.bUseMinimalMipCount = true; - g_Config.backend_info.bSupports3DVision = true; - g_Config.backend_info.bSupportsPrimitiveRestart = false; // D3D9 does not support primitive restart - g_Config.backend_info.bSupportsSeparateAlphaFunction = device_caps.PrimitiveMiscCaps & D3DPMISCCAPS_SEPARATEALPHABLEND; - // Dual source blend disabled by default until a proper method to test for support is found - g_Config.backend_info.bSupports3DVision = true; - OSVERSIONINFO info; - ZeroMemory(&info, sizeof(OSVERSIONINFO)); - info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - if (GetVersionEx(&info)) - { - // dual source blending is only supported in windows 7 o newer. sorry xp users - // we cannot test for device caps because most drivers just declare the minimun caps - // and don't expose their support for some functionalities - g_Config.backend_info.bSupportsDualSourceBlend = g_Config.backend_info.bSupportsSeparateAlphaFunction && (info.dwPlatformId == VER_PLATFORM_WIN32_NT) && ((info.dwMajorVersion > 6) || ((info.dwMajorVersion == 6) && info.dwMinorVersion >= 1)); - } - else - { - g_Config.backend_info.bSupportsDualSourceBlend = false; - } - g_Config.backend_info.bSupportsFormatReinterpretation = true; - g_Config.backend_info.bSupportsPixelLighting = C_PLIGHTS + 40 <= maxConstants && C_PMATERIALS + 4 <= maxConstants; - g_Config.backend_info.bSupportsEarlyZ = false; +void InitBackendInfo() +{ + DX9::D3D::Init(); + D3DCAPS9 device_caps = DX9::D3D::GetCaps(); + const int shaderModel = ((device_caps.PixelShaderVersion >> 8) & 0xFF); + const int maxConstants = (shaderModel < 3) ? 32 : ((shaderModel < 4) ? 224 : 65536); + g_Config.backend_info.APIType = shaderModel < 3 ? API_D3D9_SM20 : API_D3D9_SM30; + g_Config.backend_info.bUseRGBATextures = false; + g_Config.backend_info.bUseMinimalMipCount = true; + g_Config.backend_info.bSupports3DVision = true; + g_Config.backend_info.bSupportsPrimitiveRestart = false; // D3D9 does not support primitive restart + g_Config.backend_info.bSupportsSeparateAlphaFunction = device_caps.PrimitiveMiscCaps & D3DPMISCCAPS_SEPARATEALPHABLEND; + // Dual source blend disabled by default until a proper method to test for support is found + g_Config.backend_info.bSupports3DVision = true; + OSVERSIONINFO info; + ZeroMemory(&info, sizeof(OSVERSIONINFO)); + info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + if (GetVersionEx(&info)) + { + // dual source blending is only supported in windows 7 o newer. sorry xp users + // we cannot test for device caps because most drivers just declare the minimun caps + // and don't expose their support for some functionalities + g_Config.backend_info.bSupportsDualSourceBlend = g_Config.backend_info.bSupportsSeparateAlphaFunction && (info.dwPlatformId == VER_PLATFORM_WIN32_NT) && ((info.dwMajorVersion > 6) || ((info.dwMajorVersion == 6) && info.dwMinorVersion >= 1)); + } + else + { + g_Config.backend_info.bSupportsDualSourceBlend = false; + } + g_Config.backend_info.bSupportsFormatReinterpretation = true; + g_Config.backend_info.bSupportsPixelLighting = C_PLIGHTS + 40 <= maxConstants && C_PMATERIALS + 4 <= maxConstants; + g_Config.backend_info.bSupportsEarlyZ = false; - // adapters - g_Config.backend_info.Adapters.clear(); - for (int i = 0; i < DX9::D3D::GetNumAdapters(); ++i) - g_Config.backend_info.Adapters.push_back(DX9::D3D::GetAdapter(i).ident.Description); + // adapters + g_Config.backend_info.Adapters.clear(); + for (int i = 0; i < DX9::D3D::GetNumAdapters(); ++i) + g_Config.backend_info.Adapters.push_back(DX9::D3D::GetAdapter(i).ident.Description); - // aamodes - g_Config.backend_info.AAModes.clear(); - if (g_Config.iAdapter < DX9::D3D::GetNumAdapters()) - { - const DX9::D3D::Adapter &adapter = DX9::D3D::GetAdapter(g_Config.iAdapter); + // aamodes + g_Config.backend_info.AAModes.clear(); + if (g_Config.iAdapter < DX9::D3D::GetNumAdapters()) + { + const DX9::D3D::Adapter &adapter = DX9::D3D::GetAdapter(g_Config.iAdapter); - for (int i = 0; i < (int)adapter.aa_levels.size(); ++i) - g_Config.backend_info.AAModes.push_back(adapter.aa_levels[i].name); - } + for (int i = 0; i < (int)adapter.aa_levels.size(); ++i) + g_Config.backend_info.AAModes.push_back(adapter.aa_levels[i].name); + } - // Clear ppshaders string vector - g_Config.backend_info.PPShaders.clear(); + // Clear ppshaders string vector + g_Config.backend_info.PPShaders.clear(); - DX9::D3D::Shutdown(); - } + DX9::D3D::Shutdown(); +} - void VideoBackend::ShowConfig(void* parent) - { +void VideoBackend::ShowConfig(void* parent) +{ #if defined(HAVE_WX) && HAVE_WX - InitBackendInfo(); - VideoConfigDiag diag((wxWindow*)parent, _trans("Direct3D9"), "gfx_dx9"); - diag.ShowModal(); + InitBackendInfo(); + VideoConfigDiag diag((wxWindow*)parent, _trans("Direct3D9"), "gfx_dx9"); + diag.ShowModal(); #endif - } +} - bool VideoBackend::Initialize(void *&window_handle) - { - InitializeShared(); - InitBackendInfo(); +bool VideoBackend::Initialize(void *&window_handle) +{ + InitializeShared(); + InitBackendInfo(); - frameCount = 0; + frameCount = 0; - g_Config.Load((File::GetUserPath(D_CONFIG_IDX) + "gfx_dx9.ini").c_str()); - g_Config.GameIniLoad(SConfig::GetInstance().m_LocalCoreStartupParameter.m_strGameIni.c_str()); - g_Config.UpdateProjectionHack(); - g_Config.VerifyValidity(); - // as only some driver/hardware configurations support dual source blending only enable it if is - // configured by user - g_Config.backend_info.bSupportsDualSourceBlend &= g_Config.bForceDualSourceBlend; - UpdateActiveConfig(); + g_Config.Load((File::GetUserPath(D_CONFIG_IDX) + "gfx_dx9.ini").c_str()); + g_Config.GameIniLoad(SConfig::GetInstance().m_LocalCoreStartupParameter.m_strGameIni.c_str()); + g_Config.UpdateProjectionHack(); + g_Config.VerifyValidity(); + // as only some driver/hardware configurations support dual source blending only enable it if is + // configured by user + g_Config.backend_info.bSupportsDualSourceBlend &= g_Config.bForceDualSourceBlend; + UpdateActiveConfig(); - window_handle = (void*)EmuWindow::Create((HWND)window_handle, GetModuleHandle(0), _T("Loading - Please wait.")); - if (window_handle == NULL) - { - ERROR_LOG(VIDEO, "An error has occurred while trying to create the window."); - return false; - } - else if (FAILED(DX9::D3D::Init())) - { - MessageBox(GetActiveWindow(), _T("Unable to initialize Direct3D. Please make sure that you have the latest version of DirectX 9.0c correctly installed."), _T("Fatal Error"), MB_ICONERROR|MB_OK); - return false; - } + window_handle = (void*)EmuWindow::Create((HWND)window_handle, GetModuleHandle(0), _T("Loading - Please wait.")); + if (window_handle == NULL) + { + ERROR_LOG(VIDEO, "An error has occurred while trying to create the window."); + return false; + } + else if (FAILED(DX9::D3D::Init())) + { + MessageBox(GetActiveWindow(), _T("Unable to initialize Direct3D. Please make sure that you have the latest version of DirectX 9.0c correctly installed."), _T("Fatal Error"), MB_ICONERROR|MB_OK); + return false; + } - s_BackendInitialized = true; + s_BackendInitialized = true; - return true; - } + return true; +} - void VideoBackend::Video_Prepare() - { - // Better be safe... - s_efbAccessRequested = FALSE; - s_FifoShuttingDown = FALSE; - s_swapRequested = FALSE; +void VideoBackend::Video_Prepare() +{ + // Better be safe... + s_efbAccessRequested = FALSE; + s_FifoShuttingDown = FALSE; + s_swapRequested = FALSE; - // internal interfaces - g_vertex_manager = new VertexManager; - g_perf_query = new PerfQuery; - g_renderer = new Renderer; - g_texture_cache = new TextureCache; - // VideoCommon - BPInit(); - Fifo_Init(); - IndexGenerator::Init(); - VertexLoaderManager::Init(); - OpcodeDecoder_Init(); - VertexShaderManager::Init(); - PixelShaderManager::Init(); - CommandProcessor::Init(); - PixelEngine::Init(); - DLCache::Init(); - // Notify the core that the video backend is ready - Host_Message(WM_USER_CREATE); - } + // internal interfaces + g_vertex_manager = new VertexManager; + g_perf_query = new PerfQuery; + g_renderer = new Renderer; + g_texture_cache = new TextureCache; + // VideoCommon + BPInit(); + Fifo_Init(); + IndexGenerator::Init(); + VertexLoaderManager::Init(); + OpcodeDecoder_Init(); + VertexShaderManager::Init(); + PixelShaderManager::Init(); + CommandProcessor::Init(); + PixelEngine::Init(); + DLCache::Init(); + // Notify the core that the video backend is ready + Host_Message(WM_USER_CREATE); +} - void VideoBackend::Shutdown() - { - s_BackendInitialized = false; +void VideoBackend::Shutdown() +{ + s_BackendInitialized = false; - // TODO: should be in Video_Cleanup - if (g_renderer) - { - s_efbAccessRequested = FALSE; - s_FifoShuttingDown = FALSE; - s_swapRequested = FALSE; + // TODO: should be in Video_Cleanup + if (g_renderer) + { + s_efbAccessRequested = FALSE; + s_FifoShuttingDown = FALSE; + s_swapRequested = FALSE; - // VideoCommon - DLCache::Shutdown(); - Fifo_Shutdown(); - CommandProcessor::Shutdown(); - PixelShaderManager::Shutdown(); - VertexShaderManager::Shutdown(); - OpcodeDecoder_Shutdown(); - VertexLoaderManager::Shutdown(); + // VideoCommon + DLCache::Shutdown(); + Fifo_Shutdown(); + CommandProcessor::Shutdown(); + PixelShaderManager::Shutdown(); + VertexShaderManager::Shutdown(); + OpcodeDecoder_Shutdown(); + VertexLoaderManager::Shutdown(); - // internal interfaces - PixelShaderCache::Shutdown(); - VertexShaderCache::Shutdown(); - delete g_texture_cache; - delete g_renderer; - delete g_perf_query; - delete g_vertex_manager; - g_renderer = NULL; - g_texture_cache = NULL; - } - D3D::Shutdown(); - } + // internal interfaces + PixelShaderCache::Shutdown(); + VertexShaderCache::Shutdown(); + delete g_texture_cache; + delete g_renderer; + delete g_perf_query; + delete g_vertex_manager; + g_renderer = NULL; + g_texture_cache = NULL; + } + D3D::Shutdown(); +} - void VideoBackend::Video_Cleanup() { - } +void VideoBackend::Video_Cleanup() { +} } From 5cec914484aac1a14ce8b1a3964eec9e4c10899e Mon Sep 17 00:00:00 2001 From: skidau Date: Sun, 18 Aug 2013 17:03:21 +1000 Subject: [PATCH 08/27] Changed the default audio latency to 2. Made soft_oal.dll the default on Windows builds as the old OpenAL32.dll is outdated and contains bugs. --- Externals/OpenAL/Win32/OpenAL32.dll | Bin 110592 -> 402553 bytes Externals/OpenAL/Win32/soft_oal.dll | Bin 402553 -> 0 bytes Externals/OpenAL/Win32/wrap_oal.dll | Bin 413696 -> 0 bytes Externals/OpenAL/Win64/OpenAL32.dll | Bin 133632 -> 417320 bytes Externals/OpenAL/Win64/soft_oal.dll | Bin 417320 -> 0 bytes Externals/OpenAL/Win64/wrap_oal.dll | Bin 419840 -> 0 bytes Source/Core/Core/Src/ConfigManager.cpp | 2 +- Source/Core/DolphinWX/Src/ConfigMain.cpp | 2 +- 8 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 Externals/OpenAL/Win32/soft_oal.dll delete mode 100644 Externals/OpenAL/Win32/wrap_oal.dll delete mode 100644 Externals/OpenAL/Win64/soft_oal.dll delete mode 100644 Externals/OpenAL/Win64/wrap_oal.dll diff --git a/Externals/OpenAL/Win32/OpenAL32.dll b/Externals/OpenAL/Win32/OpenAL32.dll index b63bb2f3012f9e355fbc444971994716b2dcbbb5..71ced6a21f8add6fdbd7571a81d4c4a36eca3418 100644 GIT binary patch literal 402553 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

Q~J3$t#;CHi=*xB$_d4dW7 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 MLnl@7Vt>}+|Js^=IRF3v literal 110592 zcmeFae|S{YwKskyGf4)RFat~=NRS|-qCsykpa}ySBom?#oDh-_AqiHXW5kMh4qzc6 zxo1Liau}ueTCaWUZQ){j?bWv4z7}aqal&8%f{I`j3u>%bcO2AM(qzz>^M2Mo=j0b8 z^1k=^KHq=jd6=_*t-aP>d+oK?UVELBg1dJLRzVPK_^)Y#un$lAm&1RD|7k__=qY~~ zExa(|)v5a|i(j3(EO6h$Y3nyU_}vZnJdk$pJ>UD@gJRlu)}(EazL$32_tJ9jDoT6c z!PRSSOiCK*F}j}m{P*r$^M)|d{D1p|>WL2_fBS?7CXUAQ7w?r%T*d1x6BBv)_a-jl z&+kuM&7WJ1=Vty~df&YP>dU0u?-PW@mUv<9*^E51tW}7cI?7@f1eZk+cIu_J`|)() ze;UdtMQQvezR*AODI7;V$~!CLgg9P<47H^n{?s2~zeN~3LJ;QOVG-t1^)8DrtG5#> zF#bJ{^06ReszpdO%P#TUm1`L|C!li~C-oAIQFNoYX0wQA`)HkBK30Q16CzCzR^7N^ z^*!P}f^Z@mr8M>&dk~hH=%SD+NBv!Jj{PNf)KuO!^0cyMFAh{F0><@ zwRraXmqYz+ShMayG_0763h;pUxAUTQxAz14Hu)_FzU9ET9Qc+4-*Vtv4t&djZ#nQS z2fpRNw;cGE1OEdK?9SO}ah3Sl>U=>^XXhd#AF|bVN@LU{swreE?hphNRYXcd2j=2@ zR;neZq*+{QGF2~Sb5X74dfe(_k4t^x94PS@YA57F4zzQlU1de&SpR<}zK(@M;ERHg zVelOzI(zZ8UpBtrAbjJ@@omxZ-4w2f6kU3VWhTl;I|!ZjhJ46g+IY$sUt?rN{~?;= za}UDT%g<56kMA7d-pTc((HP%J^&pw5vsM7_<#YCTR(fnyk2;;v?tzRp@jni4$0g@e z1%hGtyN>84{ELBjnJ2}MOiCegDNEHS9H2qRnlcb;-wd1h-9zCYH9Y=v1UD4^SnqUy zBmT$X_qp`=fnd1tqZ<58G5D|ZzPlIiMPhA^*E1BpNyFpoCOE>k7;9*m$K_YI+rZ_* zrP^`%kn3VDoA_SH9b$aXqQhavx8q`b_RGPSI}|?e@c2?M#^<^md~YroVthwI$S~u3 zj_4dpeo`)9ewPh}f6?&xXAFnmbNTq+gy-v$@_Q774L5$Gd!RhIFNfc&hr+jFczkm& z#+Q0I_&VkfF}^4W8D@OPh|YoIOS>F=!J+VN86Mxti}6jr9DMFU_+0vaQ=u&O*xC}& z>81CYPYEm+Tj`P%W1|_gjrOkpoPqos(Eop;mrM5_>g_*u`2Lp-*Z;yH`@aD-P@gV! z`wRpR6H zAafMbINlmK4s*vd$Kx3e--IFYeNAA*uSc_h^Ab~H_J8Qsf&A*VU;c<5K-w_&%a3&& zZgol4HyAG%l!{%OV}$Q1;*q6B*fqCDSi526_LmV_m0I#+xP?1MYV| z!=Nf)X$@g_a(<8=SdxoDy}Qx_yVY*U*}J(OdnJeM8&7Z$vflA*0Wv~01fG?|2h-jx znRU^43QdMh8-&1Zj^>Kq(Uc8=BSxTvV@VFi0t>I-SRj8GOIfcGZK8Vtmr9r1AD%^L z!;EK#iHpxq#zo^X`(HMw|6X}pr1zf*d->8!^m-iwRM=cY+|+hMiK)%~O=Z4>Onhg( zLyYG%2pMKP`-#rp`I#}~c!Goa?-jN!djI?4cHuH=h#{5gNHC;j-!vq1JnljGdigg> z$2T%(HUdbH6sXN+`3@Ps(F(QlbkXpu(C z;W)V|E_gyZn;DMAPYTPYG&CKp+Wuh&wA^f|4@)h`*^onW1t;3iR?QhW2fZR(3X*6J zGQ%r|;LvPNw7-bdy}g%ewYjolMX%@%nC}kUH};p`Uj9Tu1aJ+_pI3-VzD0VzX)^lh zv*1wpw&?hV(Vt~HLM+e42Ew5ZfBo>ehr&1N8}YRfC|3t*myhr1tbzRO)o(vRZ^Nvg zt*C~MaT7xb$ToVVO`zI7L>O9D$d)N{xtdZLgo=6!@HJdEzTBbkd56cBIso5}%f|O6;%qLtKOO}k7~e4a)h~%uV(Fth3Ek!S zD_0M~*SmkL(D4mr8qGyDSK>fO`v-ReKR)y@&H3w?IdFWv_@W?WnE5+KbPhcKKLu>x z=r0Qng>TF7_*SAC<4YrkVthy%{@5phwQt+{Mt`hrDEwccVwmxsA-JLZSx@)!`5XPA z!HgmJy=8d(D|P(+{gb;chu`j@@QoTC-#LOCIKR(a4!)=VX^8Rt1RV~;->nzpd+u`Z z%^C_{`tbN1I=)N$*PjPwUHyIIe7FK1Fm6l&5`{gKybT_!bS1Z^p&=!k2^Z?2Liq8{p4-8^m1t zu>B_@llza}1eQyf?xwyC4(h*G-)=z>weEY2;YG5Bn~;APYH~V zr*-)8ypTSSU%lgb7Cj6zo*g;@V?4(%dpx;=@C_KxE$H;p^E0`3Jg0^q&)MsT7|&@S z9%elIiLPGz>F{NbM;wH2z<9okPA@&40v#Rvm1l+@k9$!6z4J3_`0<=0xZd#`yX^5i zeccfJ`w2Q6hJRaieEs#&Ss?vJdt%m5_|k{R=eQUj8xCLHIgd>cc6Z!sab+G-f}S+w z)E%Dbcw~m_kCdwWJsC)g(+aiZG~Bntos*Iou0#`RnR$$T4Fj$25OoqkA%$fZmio2i zRNhv6GxWH}9fzYy2whvTxI;TU{JtoJyU3-bOagR>)aTpkVfm0d{f$O@gCkB3TY^WV z4#3cjuzI}Fu9tMBACz0P#=9(X3pMC0Q4cq@#i@Tk|8qcpU_Jk|L3u@G=COT%6j)^+ zb-J0)U0cQKI*+?Vl>~U;v($vkc5yj_d(o-7(T)Iy!=+UYR)Ox-7^c5oa|VA*b&-(Y z(x2S0#m}F=tD@izl5wAv#KhV9nPN5C$$0r<7S zz%2{yKr5&|0Uo#s@@Bgrj!<*#l#sfV&G7A(uZSqs0)K)9MI}Jzxal-To>QuBg%zJ? zt6J%2sZb_s#N({h&wF^cTmpX$l(Xh9AT*UhSP3d)> zl=@Gd!T&_MsBxtyr9^F4wcu$rLCjQN=T6Ki{hXNN`a3b}!_LRU(Mg6UlhRI%J_l=% z^The1a4;-RQxh&Rxhr&g6BFbUq_H}e8nY##Vnrpu$|LId#*qznOtmh;f0wJ_2R7;| zZ$g6s!#f7nz&BZcq(uEfyptvf&e+lF+l>?FTmc{KY4~8vEOYKAA8b>cd@wF}8a~(~ z@WCFD-_h!ih@*4@j;%mk45knZ(SwCZIRi~m3GXyOSH+=CDOExVyN^upg>E(9u1=ng z)(EZ%v|o+b9POl%pq9GT+wFm~$orAcv#EEv)k1sV6bhD7fn5g;95W#D90tgK6U1eJ zJZFNq4Uk4?5e<+TCdg(3 zB+UfbYJj*6knOd!@VM**>;}~KAeHH2(>+bcwY`DLbjfK)8A;Ce9euE8QAXU`zOxVZ zO%s+*`v&YG6P8ZL2HqD;SURU0c%L?5clE(OZo)p@2OBhDpXq}YP1xu9U{{;4bb>PQ zE;C{2d|}|tHDT!tV9-3vgr(Du0qZeg!+o%B6ZTLatj&Zy+y{H^DuY*Kyae7vPDf62 zx}6M8lUJzWd?w4?q7jzX?lmDF*CwI;?!Fplqk`5ohpf7(sH44XH^y zWk+fZPdSiE{*}ryk4?>SXssoIXIE`T6id3X|WN*n*HWeA} zKJc>=w2=>`l;Z-wvTy9f1Tt4)Zaahj0z!<|Dbx$^v80ftb5IA)B}U9}1r55*hGH*| zHMqYM=h!rr4~UzlqC;H*O9x?0h&DDOjKFk#puYhlQQT)& znG>e_LrVRbo$R4W=obc@PHJf(^8*o#E6lZ3-Q+eSobTqPwn{yCVK#^#5=<#^H;HjYM8`pMLXG?5 zA0X+y=%plJ=h1DdKSTQ~$DP6bQ3$OuncpWb;^O{YI{HS`ufvMo1(K_^a_PpI6z2;E zu4`85Be~6Pe;Z7`+R2rx^KRzFMYmeAoc$?-&q6a+X(R*dcHF|vu7U% zHeFn=+ec|tz-emiwIuy?mUM$cdG7D1MhMyXQ#xZ7i1C%rTfSK`>3(XEWX>8$=`7t_ zIgnBU>nAP7{d-Y~|9@Lp(*&$n(Oj=kExS^T^(v*32Kp_8)m*ec=T$bYtEuh@s>{Qb z7%4>655wU^<0&YJ;Av;@7pRkK{DQNdbXW;{nyxA>?6Vx2HngcJ6 zm;@LE)7TnM;Z&KRa8;>yQOH`r2~=I`e6Q;_KYM&U5JP*Q8TOJZ^s7Xq2Kf25p`U>& z*W}+C;`K$!)@>+T+IzksKE!=F_%$@TH2#kWybnJRS`3AcxY&LQAJQ{GT#l(pq{eOv zXXBhMW#hy>TYhA*AYP}=U#Z@)xCk<*CR2;0ji*>Ap9Xs)lpPges)QAh77Oj+y}fc7 z&dx<=shE@$d9z;tA*5*i6w0gpwM7`d{W7!tvde3~+-$%6lI@Gtb9LwPA;h{%@MXo< zO)i6K*dWTE_Vs9*H14J_qOR0}?#x%2kOnq>R2~VC%^j+bq2Aw;NCVZ9bGShwuGWj? zuokt3?hqRD4M#|)nl$%%sD|Vm{3>=eDVLspTj)pB%TguZuKO<3c5F~n0v^;t!;*gj ze6p7Y+Gh$b?Kq0&qDa0Ct1Ae!E%o~W4Pu0~t3o{O4~4=gDhwp22||^oCFjF7SL>;) zYF6k+hX@(mB#TkH_MTAvG2}1d<&mafpnUu!@L@Re#)m@GcCbGVlz=tl`l-l#bp?C> zN}WNyLd5x-I|P4;_5u9eWq|*G&)@vZy@9gZt|V87WigIYdkwwy&RpE6s*Uu6#j&6abioX zH=SX{WpWMt%uD1Nhal$5HLx*mr!%WKSFTAB#GB=sR6)#;YtjVqdb!3Uh#u-xypm8s z#nog8;#j$678H?OlO+s1_?YJ%1fUE&<$T_Iuz_~0B;BR@XJ~(ww}GC`h9$2#G1Idy((;;GfA1xBV9t z^u$Rw0s4m+9H5^7#X2+{@ca4xxAsD|B7pf}xyLGP1Q@jk7~#Imm}h4&jtK3=_f78f)k|PY}6ursR6&D(gHsJLx`bx_)&)_hD3vt+d}RnjC}XR+GAE z_jENT3z#t_-`3!_<6143uG<;_g3CKUZIdw#9nW$G7t=^Nzf~X_fFswl9y-^&aKn6Z zg6Q5&-@kh=-v-~kWrq3v)eaj0H0-eLN+43{o-PV`quf$fkW54MJdI3%fnq=F9E(?^(=#cI-WDlcS~zVfkz>T%v11edNz)Km2^)xX3XsI$q);A*@`dn-WuMUfgqiZ+WP zl_5pyxCoq_fi!Ill*Su8T-j547Sg2LDV?Rg1=A_lljaQm5WUk4m4YXZj^w0f%i;T!Bn7(pHIvCwadp52IUP8+ z{y{Y51W4-pCNvdj%?TZJpL|LFgp2e&3%92^Du@g%_T<99m%JEjfEMMMuQalmx$+q6 ztbY|*s0^H~lXGd+tn_5z6gVBr(|aDee7bXo_e)JHSCeQ~Gf#VuLdiRv!QVj!GCRFT z#Yw6qwAs?=BE@h*>Qe8pr?+^I5@pgy=%j=>aH8ci<^5{UD)b>PEGhD{W-6UceS&}9 z^Wsf(C#uWqz^n8DH?+75O+V;8AKIE|kzT{V9EEH$_Ihm8B(LO+#)uuesoTIx{8U+% z`q@wTytzoJdL0Ty@@GgZiDV)NB4imP-L#DR)aax+@&;}SB$Y$2`cqqQjTH1GUeD-8(bN(*$RgTWU^AnfH@*5-}u zp>g8Qonui)4z{j|YCk(MjtI8V)Tv1%Uf!e5;CC*23hw|ia|#25E}y2*icZzp)SEtq zna2J@m)n;)hbQ$p{C%(gB={}g0K$D$HzE~(ET(|)!XyA~RN(?pGU zrOrTggnC>b@1U`Q_NDAQ`t0cZCjCtOzVWj8{SI`l$?x@ql=J&vY5SZ_z5NgP&BdYZ z^WHVXLtK(bhSX&0I18(psq1xLBIQFFs7**;&em@$rlo>w%3n@Xpfp}01g9ZaLwq0q>OSE3m4&(@# zC(i#u^t|NJAsq%J`byDDMi_0RiTaw>S98z1ecj;=LK=E;A!B`|;)<%(jDZl9yo>dx z#YI)CtArx%yKHuDf8vyolL#7sddGI1_8mR)0dgPCt_!ms~iH*>Nt@ zk7YU9UwQuaRj_+(>YX{-2Xz<5q66n+dq5csApGiGZOa#LgcHqEcY(G#XMGcD*eNXV z-K05a13HS5eIhcEeW$L&FZ%=4(&D1pU-j13wQ&+B%WW2^hW&^d(f&b=$okj2VAWJk zbB9BgXq4SYWh8AVTcwxPU9jvDgl!%%weAAhSJDi&fLhV=LaR9jL1&4ey0$p96{iBR zIG%n+>3p=JG_ubPk%;WG@!t+=-s`E*6NT)PFEB~QaWB{gQaMwJZiWn|`vRngCOf=` zyok==%P20PY4@{VCqWVrK87U@D|zfi)>?u(n>b}!#y>j^@!}3lWxk!G!G6YL#$Yxd z{LEP9yh6;CH|GoDD$KMVyO@)|6lr(i(h_n<6D0~l{+b?jFEFZ z7CB46Nk@uT>~I#Ee5Lks*a7>5z9JMk#>1T)Rnv8^B>NTiaPtB*9^qFNk<74?fUqV6 zGAVfuCC{bgxs|*WB`;OUOH=YZp*-q~?mt`dJTy$@7Jffrl4#s-iR1K!`t9Hk^%*1I zF{eMLmpna>p@3wAQ7zPKua?3vZR&j7l1P?_nq$K}nIqFN@_I{OG4G#Z|Hcx7R4qH- zE+zsH9dr<6A3x}8Ns(i;a@CPoa`XinwD%syec&Co`XkamGQ$x(tay~D>*3We6>Vyk za;usF(MnJ^+msrc_fA~=LH*_1lsoO&aZ)^`MrPlRSy1hmn*l?TZ}(^jMI1=K$*=5E zWB<~=j-uc=+q>w`S z=j&fD7tC@}30!&T<&2wVHbq}0q;mA~<7PP(aowPo?=#CuU2tunm+vymNkMRhj{7bc z&id|OsBqJj;RD#%b4aN#Rk$U@K7)r7Yggg>G{0(~S&^9_UV)27>81dE1dC;T%~vK5 zh&<>Jm>vBXeyD0xwZu~^5+bZFv(diaN`h;Tuo`k3Z^Q4e*9l13ky^)74y1PRlnbfx zNbPYW(Gs76-x+{yiBF{zZ<2=86Zcb@2dS%(im;!62qs+tq!jVFXDdh$L>T>Z4vG_Sl1*w%&@&@p%$`Sx zBm_|}YL?nUHCp36aly0VbSjFQb4WVSINu7Wl*Y9hLLuiI65o$Li>u@nm5m46CWEZd zLJgUS+QNUK73#x?sid1F>0b8IHCV_9UCdvnj8^jl$`YG8+MASBg)xl9oZSa4pTAy8 zWY11Ry95MMdgGS|P&r-&P;b4ReII^4iiym#cjl~*liYIt`Z&5vijKr`7)|RJmCY3g zZ36uM@;P@=i6-G#6e>8Uly|eWBo9)1c7 ztp7S%trpn5N2TfPho~>2e=P!TumpA$@`#%T2v)tXLteH1Yk0Jlls1lW?mg(-8|%!y zWwK42I=^wuoRea*bMKc;t@cqZ**=Gq9Gb7;awnRUUEUqFQi)Y5=$=34q!dAKmA&1m zzV3<@MjN-4sKLIsTd7^1BD&Sjp?UT&AJGKSLw@ysgkpy7PU zhtp2OY2ybgpTirG(%DPb4IGglc|M{JBB5O$QQLk%XQfCOXkW4Fv$s8sas+bQz30Ik zaZp$Bm+C6|aH(JIVTVwsNU`gDu@bfqX{#@mb!AzZn3pa&ys=HUHBOjwQY~;a6l>xb z&b*u~_h>0$epc#e>GQ0K;!Nk>0!=MG*SL7hS{pes9WdgIkphY13Sy@(v9rLh&Sm!@7E(gXx{f>TDG+v&>4b5 zGNA4q1l4iv5Kun=6fXJNvn%aV5@giQ=>3DTvgj5td98D=-TC4X=iWDRI&FCP3Qv6P%Q!Q?H?rpLjZ1hj=JZM7*h+<3=>Dv8f>;Zy}_GSkQ1~?}{_z zh5a04wFp??i0-#Hq_7_$kCv(+zHf5nExw(q&0VLegh^re^V)RQbe)g9nGP@d4I@#53X%pC0?H1Q( zSEo=xsNKf1yV@fa*Lqh<$+cT7Dip*pAgYQhs?rMCN9n{aSE#}gO`%SoZSlpxAEE6y zegI)@wg^+JyKB9IdR{DY9!T)Bp8=#kTqaucqT?GA=KhnIG+7F!2SnNR^tNK1vwGTEu&=8-yk;?Z*Hss3HxXBt% zK&cz^b)XbBM+cIt({PBPcMj5}?rh1k@megIZt6FUP0*XP@%TdYq4PBTe72Oj>3&Rt z&+csz?O^ss9idClx{Yj#o=r8fX?oVfv+Qvgpx*bT@etio`Ulay3PoIWqt|6u$E1&{ zt}4S_dQ)^#2_I()`vKn|T&ge47^5LwkPEdSrR$wZNA^(+?X<&%nv|jzxTypgwZNrG zMn?5Hx=x|mMa$Ca$FjmG*dA__q?Jd!N%ZoN6n8$-HXF#Q9D(&d7%eAn0cC5>3Z$H8 zKmRWl*QTqgY%GMeQ6{hH#BK+y;6=@rBTJK2uQunWzq!iXE1uTg>s8i{i{X4gJ1A~{p}zd9;fH~ zGQ*9q_F(OdultfFVZ&&7UIS2EY7;>9OA;CABj zrPXe2qK6BQSLDB1@g|g*aQ<0zJW_A>3AF%K6_FAsXq|J(D=|el ze~f1zP6euV-F@t5{|h-Kp^Ww5iwzO*!OoReDYlGI{!4lCg^8Q2ayZSocVy_1mu{Ce z$~KYI+PqETUnhYQ7+Dee{-}U_>~s$A zSFk-641#(y?b1-uVrcyAmYpuNz~+8}+{2vzJ9iF(P~ zD1l;I2!FNB+b*6+Z-IZuPRf=X;+cx_wm)FiK<{v~@k3qhSCrE%KTor~467?MjGiSsVo|)!(qvYQZuA~` z=j?A&_-N(BTC|b{Aa7M^E36TJm4)4d1yxoCUCIhkj52nJO4L}$=kRm$AloP(J0Ek3 zMSGo|FJ&`xsM8cvTFgZ~668df6|FGEgu>5JMEFIxeAtqCBs;zqEO0*Fq&D$Q3t9(j z7dw};o}$Io$?G6hFFh_``XFg1aVRHEz!zyEu77`mHYLifT5^C3AEZ$l#aoduM&DEO zTxyL&@i}12D?S$tcG$jkA8Xq%Y19|B;ux`p>RuOWfv})^&sNefXnnltuXgJjRTd=~ z(ebW54fs)#cF^xUY<@VPL87rA;SP@!nJtxa(nv<1K51J;MGFdnCwVoH>`qAsfg#U%^8n6$rPr;}%u!Wzb5Z)#^pgGuG za0o&{b4%yHu#?HLHBm<%)TE#NH+mpR_<~o4c;)6YDK0NhEofJj{TRMFqA{Uy1gy@+ z(G3ZWO^u^*GLg<_6?9khYC^7cph!)G?}0N=WsUaW5gbRwWc3N&(b&eZb6yb>bEsVU zN25IlN1U6ZqiQd#5goM`d}ht(>hb*AtPJr>^-&#vQDe%Si7O;ae&fiT+k;0M>{4fK zb+^zT|2v=2mUJfN{npMy^S@8VBK&Z=ttwaBVY$0uZio{@zL=l=%}{1+O9 zhJ?&;mM;bGv08l&Ydct~N%8VgEgGNxp0(T_ScUaeRKk4Ah-OD7VvofnzI(E_u&gnR z>~dFVNgQnA1Rvh_$fN1KQC(=ue!&f$ zES>S)+wi)I=&sGqkepT4(0mJ)$oDXpz&L}_rb!*uSh(Vq*H){nzXBR9g*KAqZZN|z|m_8X6@KDQhmmF;si zCkPOpDH@wESUf-3R!KblWhKk!v$gjB1jmqA{w~#5&xeJB2(H#Vf_eyivA3_M1grVSH|3K3gz+fw|Y!wk&7w@WE*SDVz6(y00qTd&*}4~4P;rcTvr zw3=wNLX$jd1No;`Q>fL*4R~d}Y9v~nhX$v<^j1oFJ7t>lEW&^_fiH?yR+#%8*W_;X zl=`quy#R&2gq>}}Rg6Rl?S0YYV2JImaTP0GAaB&51XJHd)jKHk>c(!`qV7X7;@cnnofVjU&Yj9iEHA zG87Kd;OYt+#Ju{NuG54`BG1)Ut5WWOMg+ig0F=@kK1a8Q|6`4s0=?X)QD)2WeJ5CzkM_k4xat&vhyF4Pt?mqy;6x`}qGD@|lf*YC()KzSQEMQs;A%g$JVMUI(2I1nq}|N4k>FH|P1dHD zDG3`GZs$q@I5Gkx1Ziv^Bp-BPItnBa364@p?!+25>ym zMpsm!+qD%DBleKuO?012k$MXL6Y@cH9fXP!#N@`2_(TWh^mQ1yg?gbB9d)WyjWm7e zDj9W39r=>h(^CU|)RlSE+HSodf1%0kTITDS&GJDT_8p6*PD;I+9^y%QSR{Mh-_Uif zbO?bdux{1cyXQp2n{j9L`J4~MYjKzLaT9Z)C>cd(P?Uh8H=|EfRO&R}-UGNu==QJm zM>jogcpB8gr^#&i)(cA#9r+^N*Y2~~aLm{@mjBx9lpaHAigo#ug-*}y#h9~-)Y2lh z1;zz#a+MmpQsY3(ZjI~NXP@1df!V|?r8hS^QW{1rD3H2BkCK=A0QsdF-Ij(i^Os0n z{39~O2vS~+b6(xKRKz};tF-<}AjBWI@df?bMw^zr9_PaP@Jj^l41NwiWQH4p@lS&M z9B<2pjz(W&Fx*^E`7|*-RIWPr9(L}vdJk_JpWc+?4?UhlRaI$A+0k=c!7XUCF2GuY zpIh4qH~W)7;x7&H4&Y9}AvuX_f+Cco6ox}-Z*?gkir6z;q30S6KvrJ^-Fr`sWZuY= z8Fs$7*!N^-lSLd|yEtL8t8qs>^$7=lQ=FJgMQK!oUK(~JaBsf7Imi=ycumoQ&~_?r z@zwqeLYR5vI$y0?TpJ3Grc&$i(A{bBR}(imY8Q`2=Wo;=Op7|@FDGsSw$bSNjoMGr zV2O~2c)s`b4KJ%9;%+6qQ1s|0;QY%^A&c`4zSBad>A+Pm8qdMiqQ-XfyUT^^@w(r( zb@aO5rT~uC_Np}Y9avIj*g0y^I8v3wtaO~GV>X&7(pm3pe!+P&PQq6pGH5fOKFL|v zLy{pTmasoXaYEWnjg*A}1eQ@kI*XXp zA_egF^eB^`ghxTTvL&9L;0T-}wdjVNV?M(<7M&~id@YUb-()MAL{G~--T2N9jypLB zB{AWnhjho9?&?#Ub;!=sR$IQ^GLF_w>$IJ$2sdi0a#}| ztuBkR{#|4s;bE8<`Vv}T+w%;@r!KJXd5%9Fd!EM=u|*J|SbVi>t-5%DYpvq&J%!?& zDC0HrNP4Q18W*ReHZ=IxQbn6yL29!aS|^3nMMJ~#?^500G`{M3$sWg7V=v*UobbuC zFpIRe%@qk23DFD?>qU@hStNQjo$Au+zS4(V#Quf}C}VT5i|el8s7+qe3b#rtE4>nm zLZ0^|T}Vh{tG;F>n7cA8ITU~@D0JFi5PgO}#zKyV%ul^9mx>S0d*&gmoPfIhd6aoy z7Avx+OLwc=_vyI_$c^)}^}wp_B`CIL5$GyYx4$r;!Cid~Y`lTCm-=J3^p(#b$^jVG z0dvuFj=KF2ayO7v`q?NnP`4jL`lVX@q{A4E;Y}!&eqnAV#iQhGDtz6_|T z@R!$Z(Wx1sT8&2X7Pz8DVpW>?h^s(4rEY%{pz+ihP;e^DkgRP*#h`>V|NkG9l&_!< zVBp5~7SNknqGouz#ObB*ti27ftM4omCzY_Jm@mAASVsHOD&jr%rOmXs5#>V;L~Mu| zq(@5On`5UT`f9trA?B@z(Nu#CF_j&n;`Qr{U2!ploOZ=3KmeS5>NJ*gC~uuQj{<_& zeL#w3JYYdJq3I`x!YzZ6jo`*`F&e6~gQPFs0{K&SliwUGO`PD@E48<{=iIK=(%p7+ zQef7Me)j7X0S~f$_UlOUNy5`j5qkJfUP|@^$iOYz{}rz8OXA8M9+#HffN>yX$)G%$ zh6R84L~ZsNC@=O15n>K2c?T--AqHc(<57N=8ZDzn_`X0Azd+bc{2_LX#u#@3LQbL* zt*sCtp_nv3P1=9Jch`?CU^$e2OWw-mSc*74G<1%p$=CI$j z%JrmGxp450@lizJpnH`OB`gPaQ(0ywus#m@`KMw^*d`$6SnO3UCPRQB$Pg8KU_G(3 zC)>b+9>rU z?k6SY4E_-XtOatV%_eZ>#$@OXIHk%Qo--KPh&eMQMk)n2?a4?^#LpPy%`c>+mLP?A7lm$kd^1Gc> zozq?AS9qLN$X82o`8UzT+VuUgU7#oCr-AR-_$@?@cZF8O&J~^o5rEG*a9x zmAnfnOfBO4A>>_W(OfPl2*r%(lw}>@`!4Cbs4H6 z@wu4hs?lZM!;`|(n&hxO!al{UfVPBv`|d{rUi25UXun?Mh?Fq0-6$ToP_eTR(q(Ep z3*)I|^nGOo=SBM32t0I0w7>rvAIU}V%jcFxpW|!fS}a+KB5n(#acWC<_ zB_tl-X2Sz_gK^PU5hzO$JLyf4(EOg>)YrYKZX>0~J5zi;#%Q>Z=BjaXEYgi5!{Rk_ z?y*Q$k31_*Ca=%@IB6mZ$IQ9MD!D)fd`KhDN+(oEZDi-9@Efgi*b?bFNXif~l=#xC z1>Jm%;Q{DO*FnsxAU?fTrBA@3;x&{uQ~xic|34udI@&-55D zFkL^AyUi6q-*-Wj>Ev?|k5csuDXXXmyKQNp7K$f8=McOgDsb5o?aDlA6-_o@2;EHI zR-+=KC%fETa}^@U;3mE!D@C;DAh@#=vj~@FdQ(36Of9(Sckib5h&^xypGD{1i1A^< z7>-p(QIK7prj*AdJHE<{=xJY?I{O76$BDe$Q-s5u8^J7aNrr4M6KnkB$9zkTQN-t? zD5zOb)tY%?c~=+u-*8JP_cr@H0iKdgBYYSvpSo2QdFcjpcov`aTu?=79hZ~ z2@TeE`5b~xye_*u)fuFti?<-v`PhFVp}SW51GbTp@E)!4>C}Hg)MtlsM;O$PXNg38 z2jYmTS`vtQ9O|Q2_*v_z!2?j+alhP&hVwNkM)!-Lo)c$I;Z>lgs7SIE6-5(FA8!m% z6&PFc^B9pr@z7y1sR7GgL;}%MWo>2P1p<-58eFvKlY{#*J0`1drs$+yvH--zaDMik zlPD^OuD`v$G-vQMMpy(FkelKNY1-HZYI-Qe8v)bBH`UqCaeji?sMYyNRWWqa+4dr! zYv#$Z)=gQMC4ElEvoCVNm2QOnzT1+>xzfV9^2*y6aU}+>XlVEXxPlAJ&EOl9E;8T{ zJlrOe-qJDJGCQMJbGJQ?$|-R9kO%%8Yq}li+7+oCRCm2MsdE~@*^kHyh+bi`5}m;i z)j3WB!k0!6us(u#Sq-FRa9cqJ9ofDVvYD!QQFCZbE5c*o62S+Re)CrE1qeE_lg}*Y zb*M;bI+B{?;j|2J&9fUof_x~=xT(@3%g9Ndjg!O1F{GPnvjr^2`Cb%kIB$65jLtuN z4Y!ngDTtz@vDh74W|=Hq$s=aR@_-UDqMa|==1=pvC~yG^1@7jYL8z*1Fpcz=1KjMV zAQqcG0yyfVIkyr|aSWTLMY=L%`^RCV zl&rumoJ+L~xg~`yfz;E*x#-A~dpuiDU_Nl^B71mCIAx+=AV_uwWUu4^!IrAG!jv9| z&-PeEL@%C1MEsvIL)XAaZ?@Og!F;Ixj^nI52`54 z%3d{wT~8-P?PmRbLIhX_av%+K7NBA3L5O%W^Eo)h=#4$BHu>uHs1f9=pCQlLo)_>7 zr(P0;K)1y2!>2s(0`h7=i*nUGhEV&>|L739$J8*G-pau8HlGya6?N0g2+csLOZo6AuWb-bvOSj8krjglS`|w2dm6OrX z;y7E^$*C*%<@St_rh$N|6Qil2J6n5ep4xW^tx=gkm1Q=#*wrFCuCAfYtOXs)-8Qw@ zq2hO`9X?^uq`ol#Yk5rm5X5vi>mNfu=~7HBk2QT|tGZ2*9E&Qv?`@1z-?Jk2i$i(e zLI)^$%lj9x0`KOi581pA*(I<1RoVeg^91$i$jEM|uN{_lPf2C`;^MGX4ZYIb7!*She22ID@so0F@YWyrGt%wOy&O zDS%&sUps!iOYG9BMzE`)z}eFTE;b1o;jvzFB;I!sD{wUN!4hmtR@Olnn^gY6F=UIFcQm>SsZlEdE`$cI_{sO&0zN_|; z1%fm}US;dyC3tUGlhzbrDXe#BZ}B2+J$;F?Ulh0@y_O?s2&l-rwoA^7es4^RcY$Ce(5ch1Y?_mMU97NP`Ze zRS9p#ext@Ajny{xp`ifc=uhM&c1^hz*Q;7Q5r(K^*^bY#KtW>-7a~3aOBi8o>O-LU zbku4MFF@??1vPSCn6Ker2CZR8zb|&Tl4DnL@G7(YPN}2HrhXNm@6R@U?6f}O2+({Q zq(BGSaiP-o@0hdDzX|JMZ+)p0cW+vtzLNfWQ=22S&^2Gqk7;tlIod)(JG=2vTzDeX zq9v!how9ygOD#i!GVz4x4(X^`3^9wvlYcFAmjh9kc;`5DClYpLzD-{J(_F6c_y3fn zr7>?oFnCuw;Q`9kJQQ1q=)Fldcm}{dN_9GQ_--qlistGO$6y_JnYjx6=!u z%_cN`;#6N5q|G|iySnASwcp|WBD6KTTb-g5xUdsAA1wx1oe`WFd`MW|LBQT)UZkLQ znl9MxkT2W@LwsXG)oo>Xs+Be`-fLSRUodpr6|@p#p~V)i+;)<3yM|Q7#OM^c3CgXn z@~NFPyng!aE<1Wtpy&`(w#}|Qf{0XC`fHYgZVKLVKKgUCR;#?}3#1-u(io+vaE8%^W zZl#wV9brL7$nk~x2(gl`Ucui*__Z6m8rYg(DCQopHG#90E9Tc;0`;{gKPSbE6BpR} z8nG317<_BL%13M=gRM*YvDN2NtV(W5H@Cq|@pkX#OTWMlWn_&fT_iV6kUwb0)(qJ! zf^epllva^_}P#waBJ=5mGpI!~8<_W$v`w8%9bc-=J9?XUq!m$zyaj&+h#*nsJ++}7kTVU)5xsR@4$?Rh-7ogS(^BfGMN*(z@@t6FE!{J(XH;_VyAB1nLDk3 zXntL~j{AXiY0S@6v(2%L)_mRS4})MmJRi}INz+`s?icUO&D5s7hO2(PV{}@TRtcSX zWMTag=*)r+b=d`c${-yU&ljd}7Q|{uGQC~SAP;-FlfGCWt;A~L>!td_-Jz{n zkVU2Z+_aSqxeEUGIHgRr;2gI6siUGZuy*ujJNRa(x1Kt&#|a2&6dIxF)I~PKM2HFM zop$y6Hsuj~>%^vhpVWdg7@~F2E0=fL6*MTM21=nFzeHDsE|;UQ+;zFEo>p5u3NNm3 z!Bby5`S}R1+9#sjBepi=lDU8;NqyouVhdSYq5V3kOIo=tbn>$iw?K{II}f9jk;>vR zwB(@)rFQEZw5m~b6Bc!cI=cQy=n;!@t8|5TGVQQncR{z8n+Z~)VacLIv4?KQ$L=BG zfsCgF*J^DxMn~Vca^WL|t`PpGw<5Zd`;=z-x-(z)D{C0e*RWU&^BY@Q$k)Dl55XY< zwtck%-z6;TN;>*}R9!IyTu%zrlYp=S z{6(rIHtXw|jx6^57D(+9yxL>e^Hr43^-S-~v8{F1Pa%DFzeE0-e0Lf6yJM-iS4+hQ zYSNUVZm}Yi`v5-jwcQOytlaKWv7S9{yyyQmdn$_#T7=fJHFw)$bcoQr9+gS2;^TDV z;BMq(^&{ha^FT5_q&x_wOI8HDMTmGBbF>+ROs~tn_u&UxrR(K+Ph%zH`!NA}vL0ZS z50UGRUJ;p&&spI#i3<6U9Z)ma&8SDGGqM8?aa=%W&!5%9EXycIBe#<87))EKL0buD z(Hypr^4NFYZaa1h5N>hwI1#v|X-1Dn>E$wweTcfYWTd$DQWC<(0*xFg&ivGT!EqVR z#AKntQp~=A)N{>D*p6H`H^Wk{#pg%0jon%@8P3|x#YUGn0=pM_=TZBuf2q*z%HF!l z75xz_HxT0T2$OB(HTKxpU!Xd*+2?S+W(#q9$B)4D!F5L@@Dz6pr14SW8;3iP#i*z2 z`2>PS^dj%%4Gg@D7bG7;^|2~DTZDjLyr^PlRd{O$H<57pjp8TwIP~6Z^Wx@s!{>;? zL|_KI=usyO#4)tY#W?(-W?t{u5XJZPaZ;tvro4t11LtCbcx+Q$H}C;EY9&n7tWw3@_UmIEd5QOwIpCrQ5|Ku_k@ z-)a*_>EolaGPVmR_JD}5-3C_Thuw_vle0rwR#F;x=nsO6eFq|WU>WMv=9iY^;cY2< z*x7&lT^qiT=RJif6DljjNdZc+UqW4xtm2E%RdM8>p;8DIuAcXi|KeI~aNuY=Ok#d_ znc10_J$pY5;C^K`y-3&SbN$B)cv8T&v{0MBJ_&E83wdy%0SqqFd~jF%rc zYs;=ayCDg0W~jg{ex@CdeiFbZ2VMI%)41}myvhPQDBnQ&n<;NPDyBe3kPl9pu5cni zSqbQ%}j*2x@5n<0_-$sxCoYe5cv8!phK+q^I68^XGMz)0g?tM_) zUcx3oHcQwiGwJs)XEBRx3)DvmyPyBAz{HfWQz`U&E7F1ccZ2cc0gJC1>>-J+h!m2N zc96>oXRp+++fj&5U&z{otzY2BDQ|)bD6X=yquCfs%!1cEW}*ZIe?S2(TijPZPM$Sq zkQ92|R}_|||NWpq{!JFwAKh5vMSlu|=f&*b!4ZrHd^D6z255$W^6w8Hcn59px@U9z zyIV2o=3kzat_ftIpTJjqs4IGVaGC-B=RV|pl(0YGv#>dGY;M`ctP=Js`bO+$UTbre z_4jY$#qYojbdr7;C)E+ti3o~87=y58`p15$cR?=qz;v`LDrRZd4kEQ)Z==onx&u5y zi=Jx+wYXPr5pbnhaL7bA#jFcl$AF`mRUKOLn^^cN!z=7p%U^3^S{41hOt(LzcZdk= zFTo7NV?b*qA4k)2Y^cx=R_4cK66?ieWELPpY@cGVT^b)Cj+UY<)@T1Q;xxZZ|5E#E$&gQdOiJ-kdUVDj&u!=NlR*by0SREwA$GeG5-)+Du#JJ$EwmdmXcNR(5p z!>tZNLTxE+bVXDPw-deA)y`k*inQ%Qnd)QmKE2PGFwdK+?RM%KbY88Y+RyF0Z!xp4}OC&Yxhtf^eFD~LG{M_kov1eNp_(e2pY3qy zL)x?IpRw^@iNCR<%%(aXEJ9<|E8?rJz)qEU;`h{VG=4X=R`6G3o6;yW|H5>HsBHbD zs;2@i_Mt_o3VE7xzcyVx*c6LbZS||_u)=JKxVRGS*y<>PB2JkJ@Z0MyqD338;u-gPFBYAImlz^Ia>S~sDia!c@Bp~T7oG5x%I6mKp@T^$y+3)6|voj zAjOO*i4wkq=dOyQ@98Bh=U>vZLEvwr_YH1UDpKG#ty|)V!=(T^UXep#d;HHN;Vb^v z5^)Z~BH-QM5|$1I*R6GE*y7~1DFW^+nCusXB?2g8y@ETM*eu%~bP7@qykg^nCJ zrP|eZ#98t-oSbh2^Bk6h=nail4W9wV`%3=|pap=E#<9fr0iSg}y~gzXZ9GU2uX&@V zlXO{vSQ9%qSa)tS#M-=RukXN4r`D6C7pebF4nG)RrRtv?NNK;b<2O|B6hcCj>NgeX z1w~?tgouzCysp;xo^E;>pL1Z7kjLg!Tm1~z8&8woAg|zY zJ1LIiojHyiXZ_P$P5goO7F^MaH*3;y_8iakl!?fkawu91Nh!q?W&s~maR?@ zid$T~#&ICnREwgj#HN_7%-f{+b~t~q1yGu&{(;}(Pg)eTYKqjr`3qiy(O~-iwlcIp ze=*t_aE@1YynR>$3HeF9x+9+_nu7K5o)otVS!nn4P zNYs9Ly_AL*r7*ebwr+a!AnXi%fzU#9Wa}yqw|#`P>I>f=9_c*rN+{Qk?;M2Nj-wDF z&~_M4>S6ML9$KBD-|!wgVXY}0c4E~Lt%bmgZ@I)9? z$oG^VU$Dbrb3bd$z+$csH~Ky<6DO(#$3xOFb^#VUeqDl zK%%HbW&(&nhjUO{Mj!)*@i>WX&8>O0tya@#8=Kn3MAIY+VgdhDMUBBfO-Vw{A!Ab# zEnuY1`>lOuU@(80@7?>pd%y2pbk8|w|6P0UwfA0o?X}iM&p@+IO5}Cu&jdJiN{Y5_ zA+~MM!f7#*U3?CxhT12@LH#248e5v2xmTRVZCY0gf?JFos0`Od%rS_0NHJmiytpkpWmz6pG;Lg!JiPAww=)El(5`$6X#ZbSNX3Wk-_cttcqAN*|sqU(7C zIV7}690~%UxzUZ<+I(b00RM~v{qo}{YY)upH#1cxvO)&AGPCpt?0aw+4+`V%7UMq3 z)E&BMUVpvu8k0}Mgk!vhGP@QbGZD6hREB1N237wQmEjaWnSkZg+QT?iyuy!sDf&oT zpAWVOq@a-!hUZRNV3CbkD!qgisf#1f`pUE~Y($CLS{}d9Y1D3ZqZ*FBXSC1npv9%H zkjDgF!cTDYm1^rwBdo_LRRb;{CGOLt_Jf~0L3~Wcd8rL;Nc70N$R1Jk{BWyiJZXjD z5!h8Y=?wDLu#0Xsq25DQSd)n6veq5bI+Fl~NV?397IoKZd7QHdl*tvb**=6C46r5vQ!~13XkmaxP3bi4 zcTaRk<=WaZ>>YtRwai!$&0|j?ev5JcWW@5eJ%&Ge>=;sSGVWI`YBsjU)Eker7>}YW zxUS#9-`d;AL63)7ENoHrH0t@$J&g&3H9^|L^ZMN?Lc^EbI(VWfc;!pj9i2rmzWH#& zg{rVhAX)i{-gd`XuJ@7`XohH8#7knI5CCmndk1G9?(3J44vW;w#-Oi*#Fh}49&}ia za<12DTtivKW9oobmWCaAMU|43ZI~a1aM1kL>sTP^|>do zG3!Nqj9K@vR4CB%ffVH*h=L3q_I;eT?iLyjg!Y~U{(dV&4f!Cn=~VZqJ@Q+$TfHZM z4}qT^jSPrz^3o8U+a8^J6g{F5ps9bxWjvVy{k>TbaKPrlBODd&^WC!u$ufe!&E1gjuYl3nA$M$l%pZ%KCy$Pp&h11P}n-5n5w;o}{ zuV5UKUm_ieWakKz;{qj+vK14c$=D7e+O<)_SU1R?O3+ZCmBeo0nAk$9%}5XSkynaI z8jVIH!}}WSOTT44jRW~07uihB-&ihyB}bSV2aY=bEwehrvMO3!&`vC@d{Fzb9&DP~ z)HAvhRq^tZilU12%b`Mmg(D}&(4wuSd36`*-y!rHG{mQOg|^wo#|Sla;Xg9f*mB< z!q8V4Kzf$R?sNh|dI$3dN$v0^m*#Z_fWi?-An09N7z_{i!Qfb_=BiglR{H}nvgQZ_ z;E3%)a@=f6S@}zMkjUN~mJY7YvtbRf+|*ce`7FoH+x((UN({9p_o#&s+=0}ARzdOc znAyc<+L&FPu(~HoDbu=)SLY1cq^wU?F)<^u=*=$hBben|raj4O=u{>-jKtsTsQgjv zW$`-YFoSI&aZKUiLvTpI2UVx3s@=BcWK~VwWg)PrX9>(qHl>hRPDjH(umfaFoj!-h z!zY1Z_yi8~y|7JpKF;>@WSxt0NpKG*Q(7v#st2J;CAB4L$;SYZJDB3N1fg}YIk~0O zZhi)D9@e>@(N|DsZ0SZ4&t}jx6%bphxC*9WR`wwVJ4uO6b3MnpVGQkl_+ZyOGJQ^> zWH?P|i3(&*-)H*}Jg0rX#b9PKWGZN4VGCS&2*U$fzH#G7JuoX<2$ULIFve!ogCPJG z;dLRL_9H(5mc-BI74x#BBwF0);+IW9uq69Qk!oJHv>g(4Bn1XW>g?^=MQVC*1eiwUAetuS_S*n0w7Y#+V9p6Gftvv@<`0~I=Md`*Y%eNVI>jQVNG%9BCwziRF0DFfgUmn}X^C<~TDo zo5pM3Xu_O(@q)}*yUR0-_Mp(!Gif#jd5oHRMRM(Bc4n{RA0fd4;aAnS^sw=AYq;=p zAfj1gZH<2BR7vJQ+WnpNCs1X5&(gLk(tr5|cJ0o*}Gzqk3}XJTQRhtEoFwYQwZo zQIyG^VF=39BzI*2e^J)3<^Yabj1uU&M!*v_se_SkUg^+t9);Ibh-N6_rTh^*O%=N4 zP&a1wtc?0`H(-iNW(@CaKzBpTcg9{quVFL8Q8z(}BP|?4)7cedl_g$8l<4H~1DaT?Q96p$-Sh3Y4A<#B5@MIjt>-!~|7 zKV1CdF7gMXiymOj$yc9ZjA`YR?CAa&l3C-%i_QE9=%6B8|iz*>>tuM?g-7_gl|tpKIG=k_5+h*yCH3WczuM1#v8H5?pPSM6owsIh@9Oa zb=L*(nPEFOq}$1440cJ zx)tq!a|AH(Qyd+tJLKbiT=7xFAQnS$rmsW9L`3xQ#YsXQ=*}6(WcpGM##UR6=4}0gQ?kYyFzW~(>}W!L%rrE?V4>k7puq00F&R@ zSvYKRT-6$2en(I*Uy=`&m zm&&Grg=}RjxQl88cp_b@2882TPw~R>GZ(G^Zc-b_fnhM|Q9n%I^ zaQoo)z=?C8?{v<6p%YJBKKg=$=QTX9;n|I6H=Z}}yn$yQo_%=sw}oo#|1Q_w>jM~vvTytl%2!);1dPHL;4r*wSETJP_y z^?vV{HNobMGuT(31~~rCdZFGg<`%zrr~zu|?Xypnj=xjSYM&+A#xDi(o(q5$z%7Pb z2A2<449CMg2Zy$fKwC%P8IC7z?s+~8&oDf7cv83qPYs@GJYh57c@>`6iuw1A+(tW) z-yXPwa3?8mU*9Av(E@&b!M;&jzkWd75J&bK(sv|G0vgP4A}gC$CAn#IWfjO3RsFs0iy{q#fH}!9gr!_4T!#vXuKr%>SCp37vj5E8 zz$}E)>)GOZjWAxS9$LsKUm;zzl+kq%f5zdi;avUr4Jz>ntSXN* ziHJmB0Y?qzV37~B?}jm(w6Fmdq&;+Oo?BTIlT)uwm~S{&)rEqQM|kC^>L+GYhLT~X z7}&gx<9ly|2A?JbdJNzTLl=i?yCcbw+*^UG$A@uWi8UDhnvGI<_${Tf<3|6}%QU4}k zl;Io%gK<3vQ4dR0&T#jFnnnepk%07po8s}tuF;JhAt9|HP`fay8$S%GJ4IsLI$;6~ z7MoS#MdjH>_k@sh%40Rys)50I0fOL8HU9xJ48c81R>*q$R>L9I_#mN|tINVk6_y~i zyaYwC6%3aB%n&&l>A0qG3Eg7<%P(7BmM(z_EedCxNw8>ayx>%74;#-rlT@^NLA@?Z zIt*GFf+g6t4ajDgkI1Nkg$HJomWxef`D!axzhh0=S+Hal`!_75VId9n(esRulGF9J z_g-?eb0oUw#3uqH5EwQOVc~;e5eN$pX%M1-u5|lVSnS!}&tMG_bS|FVVpDHE{9AFG z2A;|`_dJAAOx$`#aoXH%7u!B*YY(|B+@Sb~6@l0g>g&C#Y_p9pAl_QFO$#+UUB&RU zXatOfuwm?Fyy@^3W?Db2_YxSNmpJjbcuu@XMJ*J3e!0t69MN$nt8XThkFLI{FAviG z=FGWIn#3cqXRAM$a83fT6nhr?1L-BGt$OvAU^r0&RO$6hYVB?8=lyWeIUME2HkBL84?Q zSB>2RRE7;rxSv3nMf4b0JXuU(7zDcp)EN3w?VLdo-O~p*F2O|sOLj5OK$Z!}5ZNvk zDFL@&xU#K`#Kvv7tOPuaDFKHMDgoHZ49 zM}vWdcPIew`01B4MIrml7rInW0F5&wGbkDCLb9nyv=6BOqa;+045)%j52asLT?m?F zNFrL8$X>Sqqx-oL(2E7|P?C*^%MF)5pw0{njSFmL0XvGe8$~JgLU&pc)H? z3pD4l5rHnL!yL)upaDEzKfO{IW*n_X8yl{RxbrDXx*tHo{*B9WjU;KA5^2%)0XhwE zGbPenTQNX|NTx&zZPuY0q+>vh;~e4+vej!A2p5=uK!RC4=`A#ur$Q~g#-1AK753Cg zyVx^K`U!i6OFyFLqta&fsh4WmGg7K#Pu$YPo>Qb^_KcD8*>k$Ij6EZy#q2p#TEL$1 z(p)?pM-x012~r&Mnk!9X&lKr9?72Xi$eyqq%bts+k?grd8qS`}Bn5k}ly0J7uw9Wp zW6uJqi#>~_57@Izy2zfq)W)9cq+{$^DK+9rAiRMYo0DE6-#2LMB<*3Z_4N8v_PUu~ zf5=|3>Efj4*ejWikSf{hHhTRod)-d2R`$AsUYD}h-Slc^uY2g#h*!taDPDHZ88BFq-RALbS|1+k!J zg?5)JviwuA5t`PrJz*~)0;>nv0tTa?1F<2D@-FunxWlk%V`R|#Zx5+h89wETy^FM< zfyTR!GZKZpw!uI%6vhPYreM$>b5OPMAd1}g4t%N?@_{fGEqqFe1M0&;FNu^!(87ju zk-2_ZkY`EPIv{BMcqyMs_BO?{-bVNj*bhB0_3QUTsy}_reklATqrJl@95nbgd~S)t z&tkZBa07dsZ`u!0?&z0+xL>^=VlaH|e#o20EtDz2b-=a5oq=nGYk)fl2O9c6U_V5K zi5{wS1Y8tcJo)%&?*C)^p&h5FT(%!F;}vc8Rr{gcfCYU)k+S{o?)W{g5~B#VBGKTs~Ye91m9sR}1%JIP}ebzH}gGC0lR{v zM1FzKNEg%yAcnizkf&L?@*~i2EkljCbi#;>y%PfXe7j5aC>ikRlxk6Z#!-fuIRETG z%~grHC$Y&IM+HTYOm8P%zz!xhIf7R@b35Ei;~=*+j(mhL+`NWc!o0BEIYgp z>tg_g42|;9h+-a$1O;TUm^-9(fFcJi>V_K36%QW>p(Q7()hU_KEU*sJ;j%Ogka4?y z=+DUV;?yD+j0;7#I-uCyIQCdbV@}s5?5_rVhxvSY_yYGxoeIY|xnaag99*ZcE$#Xk zEsb@G49l+_FU@>|tx{~Oj(g>fzwTY7x*8D8w@@9!=0b-RXFL{{VM7zVBq!*KLUhou zbc5n^n;7Sm?gNF{_b_VIEa?cC{*I%%t_6t4);g%B(sHN8ayJjl-2|APbz>Xu{Z!BQ zTke$g;R%Lw+PYTsJYBVk^a^2yYn_M0>H2NsN$v?6XSkBfEIsoUJ5X+mn+_=3BJ}161prhFX?Z}I(J{bfa6^u$xuURwJ`y3Ah|>@fA?U=>G2%&EaDfg?bYZw+^w^4LY$qsM5J zk>Ml^827_;j}j+>k9{Tf*z9|7z#v}*h9m15`xW|zH4f~zwjxJ5>h}saV8}?Xf_u?K zcg4tC|1jFLXQrDMEh^|cKcK59PkBedB2ec$??(@j7F`SuY!G`&?7d={26m}=1M-;e z_~JHBu|BVO$Thvfwd^&W7y^Yl$M;p7aFQ8nhLvCGc`&oz1PXKXu>&9OefcjyHUgM+ z6bgS!nSNDoqKX6s4^lin7Uki>VRdY)bo_bJs4EC3!wF?NPg$7sI0!b(PPr@&s^JVc zNE~I%`WWrvcRb&X@O(Gi^W7+Ev^OH`8{(WSLxgz{92}k{H5^YH&RTMt#81S}#70a< z?nmfQ8==P#?(tm3Y=A~0ji7>`zsuBSm(-#3R!leCdFQ~}{Ua%Pl z0H~}rai*u3p?NVeUfEbP(`>|a-W_|)TC*-ZL?L&ScYZ<*RANfJvQ>K^5zIR6f$s*z zp2c0_kZ29B7*D)GF-2pzX&a8Fhu;1zaLkV=AYfv+V7n?)>qY8<@OePLAA*xchuoya zu1jY+9whNF8;eu)5p%kP*-@4zi53$g8>I=oXP`{sMGLpyi%!5L^vWPEdBbrt*E(bm zH72y8SDkC;uaO~B=7N&-_u-U=|g;UvmW78`;l;ZTHtU+n2){^HL~N3NL8FPL2nn;Fhg~Gwo|8gm zMVC-+{Y}WN8ppq4!aDTE-7M2HZW#OW7cY@w(L&N_%CMmIJy6>1d#IWz829o-v;c3r z%=ELEewO$G#85hS&5ARtp#S>W>K=^}=Y@_24Vuu6^G_v)!*WAoc_2kV!$4Yt(o27( z?3;@81?vdLC4iAlWKMfK$!6RNsak+r&A>d%iEiZYgHyxhM>h&{rAJsNBO+wD!f;;M zm50%Kh``%PKkk*DwadhF(n_=iSTfD9ONWb4njDgrk9SBxd~^y-3im@+WQg3FB*F)i zz5CTe1l~^iao>H2>bsME+`)&a#yjb!#n?&ngISu0I$$QmZFvxY#PM)Dd?E5E41@X> zP0ew}PTJo;c>q-gg-1{FU)tE&a}+SCyoU9 zJR~0}LzGtxWv9xc=?GbQJkE5*4yo!Zbh@0q%sF=?B%H3eFH6q<32-1(D__n!+MCM+ z&)WP9Pi9As`(9Fmw?oRYljGIUGQ11|Ag76i4Fzl@Zcp(-g&U8~IOpYK^nC#aq>KqG z(FXEcF}*RGMURO}QUd@IC@O=u)7TBJHh6-}R?u$%Ou>Tagjwo;nXwUfRU;iAR#4#c?}UHOu1fgsq#r2XL%C>8+zb}aVwPf1 z802>W@9`J#5LuDIYW5RAg z&$(x@7ZvB8wv#G`Qlre$5rT$F1LpAIJE@Wg(Bk4^v-C?j3?YN|>x6#K3~DRMDFl?(5-M&O@ z1qH0<%s<`!RCF6ZVbM>a4e|>L&6RKi7>seSWf@+XNYl5p*VqrNQt>0C1qv6SY;H8CaQvDwKtMBWImqhLDKx^kU9HuMg+}s|I9ZT`4+6#0SJ_w zrInE8#ni*p$H3eaTdO}%#$K+z86Z4i{gqmQ``VM$u!9#3f!_^Nvdvl28))Vnv-Bt^ zBrKuWoN1A)wqd>2(eY1bvIb%-X&OE5OI(434yy`BA~=IuD(lokS_lTYLGh6$8kS+X zA20_KW;5lr1iEW714WpneJCL(hZa#;(G8?_J2l}O;LLefs4J+zTB-mD;@BQ2`xuyt zqt@j>5v=kq)xNlyuy`gnBDR%Gv=Z7_XCWKc?`^+*Agg*B9sI*_nQCFA8C!8=New+7 z4eh=+4i}wZ*AhT|FvA-J-8cxU+xsOoN=kOu;&yVO!`t}#vKUznp%h=Ek3u9!6DmL{ z@Hi*FB0YvWQ0spPSx~IK3TXo6%cgROzzQRzzhVM!;i$7PY{=F?bEVqA|@a`270l?WHHRn|CbycsBJTqK>UePgad<>*KlYJZ?^FpIk>i@W74SVzEe*>ai} z7Ln{nmh?w}MrW+anmy0r#&2mpqRODLp2o6275xPv{ZQ#)7IYsnbbo}cGj>{c@6kbP zQCnLFKQT@1=(z110W3jgj*h=OS_7=V(kSpv7U3ZJHANbS(wHtKuaQQwchaMT5WGhE z3#e<1S^?)aqkuv=gfD7Ew%5E|vRZuHm7;Kt5Yxh=`%(?JV3lsexNPF8NShvJxQZFh zZF02gQ6B2)UXKGnl64+Svd(vdJIz$}$Xs5aQuQJ=-GIWLO3yR0Y~>(h+RJ z2|exyif=NhaXsMOWcHU1bg8(p1I5MJ`@tKh@qqG3#hQsHuUP7Ls~(zIK9R>g!y^s1 zDq!|Nja4nci8*^rA*^gU?ZbjCX9mKJ;uQzE-^ zTU*EMZi78#o$cW&9tFojiy}g@aewK)XDOXVsziEOxmo%yUU3tUNNSMYOSWmWn_c# zLso4wU>A!nCuK|{B*YD>8g1Rvl*FVqoZ#PaD%@}SjzYhutxG`&2}iD`=Pm8VRd`aB z{){$4mAW$UJ*a6wTMD+V*u-{cVFS`lCr@T!!-bP@cBoAU-> z?N*Z6#6B0|B9ZF0uC~kUQ2Q7TwXd^7?J#zzts6Mh)_4!K)$*Y>JIZE<+G-qXYrb@% zy&R|5*m`g&nC4D{Rz>~6N<3ZhP*KMcf(=~7u?-2h<-BralsI2z3y$M<$J#=N_tN?&9nFx_>c;sf^;IC**IfG;uA_gDSPYE2 zpq5sHLE^vFSwTZMw-ekx9O0^Q8`_#`*4~D{2zgmUt^bMb@LUi#yB#vbxQ|5o+aY8H zJ%BnJx`wVogwg{|vT_x=jCiF9R09akU{8_Lgya|q#0~)#Q8h(efQ|;CbyQES^E+_R zuwbg}wsN2?w9jqA7Ycj~#1&OJ zL;59qGjlHP0^KpBXAu#$@Y&Q+t*MYMBn678_KqOCiO9K3xs zB}+;KVZi$8EXIqJyOXZd?GTE|pneLnF-ux_tL31PnrU z=xS~$8Zdb{O`T4oBuoawry*`xU55~w0L78Y8`u}UtfD2@W$$?9m7;)GmUO*{Z-+(A zWx1f>YCr$-%P)&F`fx^@2Gd|-<4cYYCn%X^gtnRwCqOM0Cci;9uMeE>INmYGRaw_j zGy%#I(Z>_cbwGBxZkX5B85p3)J?B2`JzKZ9uEQPZKt$M1Wk6hamx#?T6-~&Q)W&kI zxk~x24@`5M>PRLILi8yRGv_{ZEvV}drztpk~}-p?VNau~_g(mrY@y z7&hG4t|*5FCc82uMa)z?N8+eseVfw+db|(I)wzy|#Fr%y?4d=<9D+T%HMZgUD@-jy zk+ky$Y7Gu-DAnF@(GHyl)=IB*g$7{kv}<3`;u&r1b_wUjRs_8)H_ppgVfzB*)_K|6 zFb>NN)~Jrt9vFB17+~pvSKrC(?|qMm`(;1v5M#wtlTMR`-s9&!1*9Ru4QDKNh3Bq% zpr2t^Lk;0ZCC(Fy0zf@uWAIe;DZ`mcw1ks?ks37r#SU&hgiPzs+CTp04jbq#Gl?bt`b}L05%#murv|#p6@RzkwoPUDg8G5oE9Z>Egzuh!E*n44 zU6}trmwQV|R-&hgr&HFyk1dnjMIa`>s*A+XesoHr4D6W4dc2A zYZ!Ri&BTlFVNH#x17FquRY2Y;!>O`?oe=@+T?tJ6YA1cySUNBlRVmxQ1+1qCpRfAi z^9A&8*$46)yElBXR8b^6bJ>_ch$jY?dF^leZYq(7l6Yu9rh!NOwi z#j(dQ0is1iE{dTXzz)fUHhlt?RnP{RoiOw19O({*Jxu`zX&UFfD?sV}=gpux0Qi63 z45~q`X$Ga*|9@--{iY84|Hlj(hEDk}IfJSRYeEUU|JpOC3}*!3^q)cL`@ixGO6~d; zGiW%xzwHcK=`SLp1|J0c8`!nL`FC>cG2F$I?KExyJ><;Y3_}>s-2KknJYM7dK_KPkyZp=~|C<)t9Sw zV>-U>$W~js7@o5r@@%ER%)MPbiegrQ~Yow z(mq#$Oo~)pKf|ucHUGBLwAWXYwZn>rcRdGhZ}aNWygJsr21=stdKO_0(>71hu$-<0 zycZ4YD#gPo>~Jd?{QS)+)8f??2j{z^e3@3fGONk`j>E3!_<3@^uK6Am${#`QzlV`O zShEt1Tb#I??q!^Y<7_j|xW7VIZSM`NRNglBE=1cnjr*zA+Ks)HTNKVwFfewU4Dv=4bf!h$=nH~ypAw+lGw&crzgF~4lS%TH$7FZ z_+ae;j}|JbP#~`P!c(PnbhB5_KM!l4`>XtV_=&aHEIEy>PUF!oiTt1tK4D(3@g!QT zN*L|1x8mMhhy5sSjId5Lo$4aPNe~z?vIrffcLzAu>C8!mh+8W6T}P3o{-OQWZL-21m&@i z>bynTveR3m5?VI6lzoFr8OeYwYK_>b2P5p0D}9<57^_Vzq)3VjcDi z9vG3fTtFo+d4#bJ%O&)h{e4LL54W}$-{-35xkp$%#`oPg*S$pZ$pvc-x(KLI9s$*% z3xs5%2?aI-sE|IV>A2NtKjj`{WyUHjt=#?80)bpL>{r3$j?;LOY`SRciZQ}qjYWF^ z$%SSy^Ej@xb3fc-+zRFbbcSPl4icAwgg2^VVL^ycm~(6KLLCB`6lk-+YLdM+#JJh& z)LNbMf<@z2=h^^gHVg%LZwKGGnk3*LZ94yR7jtO0jVDg4 zbT+t&aBLRe%Da$05TAsn~Xt& z$p)!m(+V5xwa~(X0K4*BbQ?}ImF>|mi zM3_mfga=Y*c7jP64f(G0Mbd(S65L~ak)eJLG3)Cui-1?jG9@*0s^X0SW3BukwE)$y zh^%ZEv`*~Zr2Zvl_KC+2(y}|LwdO-Y3Ct82y3NKjC!39JaA)Dp!JUVD7w!VwdvNV= z7vV15YBpYe0&6!Rj?=UiCX|u_rn*)5)m!V%k`;SVY{qU~*lSAsCC zV8L7*pezEw{9QG-;nyI9pa?_3T=Eaap-v1wrxe8F)0Lzuy4x&$-pu+awg*f>ud!l> zNM2!pBGCO{!Sunn&0mh2JrFktd^THRoB)v7gr zd;3~rpH6$AReSg%?0m&Gyh#g7?`22VN<+KVnfZxRxazcjXaxt?Y1*c(eU&XVZ_+Zu zBEb_(uG$~N+hN?cSUlnQU|8cVCCsJOuBW910ym~@kp9BTV%l!IOZ?1bKl<{^SOu}T zG&_ykMM!zA4;C{ag(jXpM4cOZeA0zUx1Gj=B(cGc;$;@5)o{V3x<`AULF-T=XRG11 z*6{^8)H<6M6}G<2#+rfyb}%u)JqE;GJqVBOK}um<0xZ$7CF8C*p;H(^mePh>ox&$w zXDJWZ;))bAwrvm$#j3*#a}nVcdfSW-k_)eKdhr9h^7MW8CdAH8|`I915?h50uxJ23lYG2>YINGrgCz2e3T8 ztvu3W>}D&>K^k{*hHLt0UHLm@*xh(_Lfa=H7d)o7Szg`3X@~uwyvB6X8q>|zn9OdB zR9a)c@U1bQvo+>(RJDh#F+H@#eBoVV5G#SLF<;Oc(?e^_=QymZqV*;7bD&`dtTH<@ zKLki2jn2%gK*vwq5msXFkTi$P;(>-MTVXmd#HG5++Pc+PU&!`=)YzpXy5xzs2*0$? z&IkI4!X?nL+5>IkDInarN!NWyb`A_lr*Y2!@-af@Hp7wYTE{==rN%=T_lf)plv4xY zy8h0hoDs%>g7G1mkq`~?S3or5Ctc@QjBX(eG1?g_2FDrC3xRRQGq`cpvKOWlZw#Q- zUO%)-2Pwla3z(OQZUM?2lyS;oc^eeV1+fei%iV_efm4?Vrq8Y>T<}XL4@+sCI%9xB8&oE)>pM~ zz}G%kZ0T*sU{&_{@Cl;=ceAnlWPEZ{em;CkVfl0mZDjap4_Dd|LM5m1 zb772(Nlqi=DnPIRnPh^+ADM_?v5g1D$TNeFEhys*@CC=rk6J}w9i|O%lbuEgYWIcQ zbQ*zc_D|d$4A=be3~A)7dW_);F%yL3eycN>e?)uun8FkmXAG;FY<1j6NWPV;Zl0r5 z46Y}00-EPwEtwO@b^R9he~L!ufL4d$NL+j?NR6NBiqtiq-hKjz2CP{M@njrOiKfmr zO9w<$F|2VV3NU(tvLU4LNr+n0k|UsB3UN1*ro}n)|iSzmDW02Ai>yo$Fwxei_Az_6{oilL;;j7XnQ) zN$mDcD`KN-`fxzy(u@)_k2d~&LI^06j*wnge1M^kG4;ct6CZmPr-FeHlP_1|AOY)b zH?M%{@K#q?3@+r$d>awZlq(XIrjuTB*fsqLOt_-(HX6CHD_q%A-54Xbpq!BI`j8}S zr{ryFXS30bozasROHXc6J{dp5K0-7#xaU?I;)LPN%9tk&xeeu?<3}{^C|4y}J=|^O zgYDIBrS{N?`X$O{NQ7{raq|GJDC7~XSZ#g+RhL1sOi5xAYv*@qq`c(WN~{aAREdTdatHkfxp^DvE`?dX5Cp z8#2d@j^32LM+m&bB(=Z?gtUmq4>1r=@e>TE0oVxuc8UO7DFc=u1Ez;CJ4#ZnnAAqM zPjU)a*t(m&1@OVxvS~w!fNOHJCNza6u(xZ>a@9{Rl05e^(xhkYQ>1%JZnxuTH)_Y@ zXh$7A1A3bD^i)uL2GtxVD76Pph>eG-jV86cLtx6ysAu>4@^{Uqn!zADRA)lobq9xB za8o)|Y|@{24Qerha#6r&JUs(oiMI)wV(bHm!AFvoeVLl?lUn#l8S;AuAs+?E2~MDgAM`r(J$$~o21j76 zAi`^vMq9fP^~R~GQmqtkYhPW)>=%T`_CRJ$S)^NT{S`-8dPJkM(l&ILVa$TM}Ol8)!0OsSq>Kyk~=eVyr#}(|Zg}P=RE{UzE%zfU=)9W3^}QW=$<@+)X=-=hwe$*GNyZ?6U|ZSqB$~M0)GnNtG}drf)bEQmuW7# zUBIId@10*>JsLAEAyLVCun|jfbBFEBI4jRUh{dO{tg)4H{AN8t&S{y^$J6 zbr{N(-fl-YeDA-w7Prt5O z`hBsQese3G!aAp&w{CuM2fnSFU0c~Bx6HcPSZv*FDX?x{lfV6iIxBFMVl2hJ&8F%+Oj3hORKNKg&EfdrUy2hUNy z6x(Gy1GTUn5W<00!;?SucuvY*oU zTSZEOkK*-SRLxyM+>5mL=LvqIpf(9TY@EXbsDl@Uj0Ybn5+o=S5f0pzR z$QhET@}U52Gu`hZ`z+~Uio|+Y!p^DY+E#=O^l%tH#JWiQ;-Dq&br@R(r)@j<*En8b zx(z&h49&u1=@)|d_I{rg*7dFm zc$omnQY~GpRfMkCfrA}LmS#!+IL9PiVdx)Ahd8Wfu2NMETc!Ar=Bx$hFrgUdNGZ5% zrWWdBW^tHjx>EcM3WQ9BSzFtHh_H1LTy1}a)7JhTU$EbaFo$Iy=Xi&J#3pb%PNaZb z+KnE}@D9svjz-_+O~zMh8?<#nNV6#@_87R?TN}w3snb+131?*a+cA*ZH1379yci%5 zFcy-q+S=dJIuQe&esr_4j*1|AG#g)nZ&838JHRh?4gA42-c80NiUM6O4H7_m!)4kF z&vwFgGTp0(2P$krpt z$;1c8VG9k;%zAH>I5O0of*IFpFz(HP=q<}-2SLG)D+*m=#^Hn%H5ksz;V4LC4HjqI zt$lVqNUN?@2oZs2zz%f#{q%*ik{;?#T;-vy`vI!tL-T#wjTVXkehK<8+O*we+;3or zSUy?I+(##1qY|sX2o`WGwyl{9#qM`^y^els?7N8&wzY}fNE6*njkFc5YutZl(;f#l zfWPc*+CQ?debL741_rmy(M2c*=mNBLbd$0lXe^~^Uu@41z@`B(hjAao@kS*kS{(o` z6dbewYYP|3B_t##i}o#6r;grgZWDIeV6F6DfH-*wi1*zAqV`#g8c$aUynVp!)@~%J zbD*!QI)6Whtyo~*2b zSI`eG7YTALa=9q0=tg$!gIR1eXBBk)lZGKF!IN4fzg})`=v6nHU9~eP71Xb{h@2lz z^23$FR>SS8^X}oY>?JS=pYufH?t#{K8h2=)eH68G#~?@3)X~Dh z38pcUfklo$$4g0gb;i(QgX6nxE0&5bnwn$(v|I{gl>UMU&Y9952ja;jM;5*@g}aZ5tx$b%MKIL| zC>=5*!*TE7{Su*5HxGnjQp1}Dl{29Oek(Zr=@X%w2qAKzd>^kx?PqMUrfmW4p2u!8Rikc645#grdn7(ouEa0|zzee$Cnl;Lc`DASkVOE)AdpU` z&#p;a3XM^yUuvlFpp_B>GINSF50J6e@{*bDkn2aARona66N?xMA2mT2R6hEIrTxn^RFH(H^x4>?KnB!ee;BME79z ztr#9RqlBTYIQR5T!{XQRq47(Y7nmiSdm_TnJRGDV`*gxxh%Ss^u~hL(1l2q$;&%iN z2661!UI8{HPG}Ek(s~+IJghUGaCF7c!Ed7ygK*P{>aM)%oA<(dtREFaf6Y;5Hmz6?sGkhWLSaQ7hyranyl9yhLT z3y%!wfi@jvEt)Z8(XD9C0Ow3Z1p}lvw|_|Y!4`-++!rTiND%ZoX&hoF4VHBv-C78u z4I61PNP&aD1lVYHLrL;?*oy%vymwND`^a@xGHf7X&Cz7H7^SoXkn1tdGL^GTt=*W6 z&JuOv5?Ik^hoCq*1;^JFKgtz0Hlz(EAjIp$fjt&-%4xqQ_Bt%rIPnrJaVn1y5B7wZ z+pX-uvCn(1`0+4G5<^BgQ`BIy-lEe1x{w8PZ(Qy*=S+SKlZE$*R$oqn#n3VpuS!IG z7!${-iz@<`l^QOxqXp8U0rz+b7(|`~l8{%VsHtq1<_YmV;t$7<#Tk)VhRziMp0GOP zeW%*FPUTzz!;-T0xd#wc}z5zZ`?#+9l0ci-Zw zf&4Hc6C=im>r@D*<1q1*vIni|i~+kD!WgJ9)q%t@>P}Ecq^S8b5O0uR#1xV*UU`B= z;5K9ORTp&7QtaikdW`A>J|!-23UGl>0CH(xh3>&a|4JSCeu__m|A#5Q zcWHH_VPy|#Bnt6U*OKi~XFwVuS{o2>byf@Bn()>vyHGn z`zfe5Y-@6O6VxPj(!Ng!>Pc9vK;qjl|J{=?1!M!vi8do%kwWZ~-oXo*FXAJzq~GD4 zR^KV|>KiPta!|hsh{a{WqY&!1$klng%Un(~);W&XWJ@|olI0K)#f(=FNx`L}#Sh~k zXMkL~xCUbjtK1fp!kQRAv4n8e&MAGD!W(|e0B3W`N^`(?6< zX`ni;=?13_nlfg@5Qe2WX3xa)wh$<-MYcQX1KlMASwlexmt{e_ob4vn*iDYsfaJ#9 z_>5yVr40}+%l+Z#TL-(kEWfNQ>_K7ii}tl@7@iufLlUH9#Cj;p9BQJwvRs+n>Cgbb zVa9DZF|2d>=W%j|>7buz+!(Bt$C_FKsTi7Q+#fL!7T9~GKIHk}%jAW>Fwk^Tr6PQ%zcy(8uYMSJnjgaWY=7eIv*$ z?P*{ueGYF&O0j+~O2$00;r=+2u2LU+HZE6PM56r#Nj%%1h69foxm#?eHH(;a} z@#>_Tb%?D6My!fg-5};+zc{{h<*AVGkBrV zy4T?iO*(<7d)#T{+oQywtBBYi$1?X`+pA)1EZ5wbbUzW@rAxb*JpiH!_c7UtKbi*e zK~_coaxGnR6_hRv>2S^l=8Y2n3s6o%!Bz<8;BEJ zIb9yEgFeffJokqo4)Xc$Kfe~3pQhmUnHAg)xGiwsgPZ@Pf_ob7dvIIecEjz5YleFt z?hCl!1qyBqTol~naP#4wf-8cng!={Dt8jmSI|KJ2+~;sA+~1;ui-Jpln-7--mk(D4 zw*jsmZX4WQxCXc@a9_ZU0IcKTro%l2R{*yTZX?`QxL?5SgL@n9B;0wpt8h2qf)*+` zJ={#Vbhu);jd1@4w->G%t{v_ZxPCY_+93=s67ErI6S!q?MR4>t1#J)xr-r*RAN7Mf z33un;VLPWgvYXS5`6Z`&5|);ZUZMSw{P)gyh3*9Wec!&PwKFD}-f7#k3{IM>U@otC zZecl}SF*}tD$TbPb9u!XWfn{RLTg5;P?FE#dv0l2S+T{IWhpLQRmiVL+5x}hyj6Uu z4d3%D{2ak*wb%+PSopwqY~j#v`t*-)y)(Y`j&M2tVCH$n@;hbhdzZ_Q{V7AAe=IWd zz03K^apvand2+s~<+2aOn`^6B@*}%92^~UBMy@L_<8;f6)+M z%1`z;=LzK&zx3&rwS{uK%HbJ&X_*X*H-2#*HSy5&tWI*coW5cpoYKo}IGBE*O=Yja zK9Ro%`@|bAmxn%+zX$uo8-Jiryy5=vQRcq7%6&4Jsn1{Tlflde{8>Fy%jJ;4K9Ik? zec=0GaRK83psS^XVH(3b-!}>$^3CwWFFt@65)R}T^38C?ml)D(EbsT6($Zo}Udh0>oQ_b#FRiytylDsU z#+!EFJA=0smOO)WfUzVG#pmN4^9H@L{A6FsJ8?nM3geQ+E0Pk;i!;-W@^@OM$(WwF z*tjBb!2$~P#q;{7E=*&-dBv-e^2&I@X35A~gE@y9#?Oz96#wr$8}ApMR9sqanQN&i zTqVQg%WGkorDVXH;-f(aD=dF|D=3#Yq_gDkp`8W4uk0*2uH0F89|91*hX5kSO)5pN zt>eq@gfB_3*?<7vV1Pw%&$X2Ew$k;3p76^M%2B=iA$|lbuxf~(DQ~sK>*3AY+qO1K z9`6gGa;X0nW-eZ_FnNW^Xj+(_ObGd&4evoxlKsKJ1b?3a;~mgK8X zx-mK3n32Nb;%!l;F)hj0mS`7aS_ZJ*o7dOD^{?QjHcMQ*I6ZYv=3*aQgWoGMQlFB? zpD8tMVfu*@TZBtX?{4e<}PG?;!!<@JvOc;BSR`yZGb^_>T!r%Zk5;h1TU#7>{_=wmbE zW*OpVKmJ5Q;+!O)=Dd{D`A;q|r7bisO3zpfo2pB4o?5yLSK6%1dwNyA#rjM^VbSX1 zH6^8G-$j!P6>Hb6|K9g2?Hj7N*?_@VvI_L3xwH@yAT3%x_|O`i|~%Qdf+{gnu+R1e|^}jnb#_GNu@U9x5s<5P7e)EEYatIR4$aeN?(vy z4&=+X==0#u^OiMbyq+)BW693f^92@tlHON-apBXpJllGGA=(7<{wltB{X@ZKtls4o z{VJ>wgvOM@FZapi`f{PHtki}OOWqp26%|;6iXjiY0_TA&53vfM4g_CpXz)~h;vg8H zO7*6U)CDL2AX;suYfwaCxjwJF+_L8B;`RD`f!2I|39_mnFc7P-q>wMfsQ(_zK6o+3 z$3UYBTaZ%!wD1hR_3J?>`@{N>K9$!a>YCDWUSC|e+JfAvIv{d{VqRZr)vp4EQ()*gWH|E%fhxg@D9|26kN>O^bBl{jd4+P_sosxJ zy-P}Yy``j7c&0#KUY55C^+j|VQ^i9X%)h;+-O*kHb+^c!m%dnTZ@vIPmty<$(6?_7 zDu-Z;p)!(?6TvrFK)yHpk(m@OFoKIPXE27oz>-%cLyLSKdF&hNxVF$QA?vrnbdP>* zx^h1M8`907bY+-c^c96RUdSsR>>%n%Rsg|;G4VBRzoN9nf>HS}5C;!EPlV(ET+`wx z-C(^-F^$qVCpM1iC z)py4K`gZXq%Ety0AcV?Y?l&yipto7DMZ_jW9_H!ZNd_H=nQl!X1{9Ev`kT;QC=tr3 z0oUgJ2M&4EIfk|2SK_^;1ie;TvIg`e>OgT>8-8WnJliu^n@jj|*5DMEjVCMZJ7~a` z(frNOm!>rf!(6O$g{y3(+q*W z3~m^wR^y?@Kl=RdKeT}UOaG$KAM(F1hke;61wHdk|7y7}{~H>=h8z5+;J)2I{~Vs> z2LA8N?uQCqk1xq9a&akK0B z7q7`6jm&>`{r|Je|97|l zzuHKCeK^}l{%6-eC1uu{HM3;?Z9e{{=uP<3)607NVZZ-ye*VLF!Jiqs{zN$JYq7tQ z`Lt=J6$9@Jv5O(^3`-fdigJWR;TfSE{N4FNG0S5Va(sD@0AwGwA6o*4Nr%%G3jt*G#3!g3msjgo@ zER9mzWWcOXD#o@`pHc`e5Nfm@Or`Qww!$)RFsGkGJ7GCeqRp1K9*O+@2BTx6t&igL zi`SP~?#N^%+wSRc)Ww7AV=2ouBE6IBX^m+vV!_IJ3Y1w+V;qYxP3qiSi zfnDj1Q}MLCJOBEa9OsMsjrrxT2h|IZyj!7sV)DvcTH2&i^KdJDaRzsQ*zL-pD=h^+ zu>U1UesRAEq%XCHA54BN0l2=@ZiD-A|A;Hgim~aYeFU~|gab=+^{c?G#|~1i-<{!p zp({(*loT=sL3!ab)bG9=2yaR(YnSE%4!LhDtZW}Sq~`{T85#$Dp1yc-Dz&XKgZ&o7*|w!S|1Z#LkMcYB>*SU%W9Yx2s_ z4nExaCLnxqz7hbc`vAUwH2^Eiv7OJe$xTk%y}^vUcxkcb5evt^27^sCkU#6PuSzci zKP1m97*&trU-T4fk2h~GwVpOmCsFm{6P*$ zxM+GOho5MCJjlX04vY&nZQzq5Je`R2v*9M~$#lzh<1>x~f3xzYo#lVHZO-I-iI6cCn@QkE) zxCpp#xG*?1oC=PE>rYVV`rvNBb;DhQli)hxI^eFrwZolcEfFjD}yV5TL!lPE(T5qC(TBDxNUI7aAvqEaB8?KXtRBATj8ip zQ+<3@OOg#7R`gZ|79#LF6HD?l$_h)8a3TT};8t5~C6?mB^8_%zy?pI#uwhHrX3*k> z^%nk_af5-a8~N->H;|~CZ^h4T@Nlv)a04w>}v2$z+5q#>rtdW zs=B@!sW`A#3JMC;>S623%GQ>Z4dJUyo3tn`5r9jtQkqKTnhXB-}||- z3Vmr*=#)sFo-sG$xz`&U@9g>Yyu(v|^7pON`BK^#t(vvWoW5|rF==teGWiV1` zaQU+IQUN5zvUIG57>Uc^9s7tk4jQ{G|LGyX#caoU#(9Xu4`bV|Az}0ZVMItrbKH6F z)A#*YJ~oZt5Z+<==5XBT@U`hbDB^UV!+lf!H`WggCp&@u@i#(_$^ZLK_}{Dk=I}o~ zJ2aeZ^!VrZy;@j_^ZIS{d%v@sA8#3&&z<2JJBNmE_AAHvI<7{B^Do!Gp5Hmo=@Q`l z!~Nl0cY)JwhVu`O z^m*?OP48bng6l7Tk;Ccz6}U<%dg8nFl1=>o%!z> z`OV?ZQA5M;tmpk8!Jw9e-PCruO;6&1})6cQ5^6-~_pD3y7{q_Q+aC8Z*RQZqBfQnMmYS(>R~vCFcI z%C9`;ch7p?7tr$i_J8ev_y7C4-oI=u&PeNq7pT4QJ_V(nT@%_pWn5|o4eM7Y0dH))FJs^@pmC@*QN1QD2Xhs4 zuy%bWt?S&-ULkTFtf)*$9RxEbEir2%5j_5Wc+*C`H&`>VbTt>5Kx0sQ#k=n0xO=WQmQ2yxizbI$e>b|O!xKQF=oQ{2PPG!P zSzq9;#bD}m$9uwPcfr6NuG?K)K)ThsI>~)O7@rDr#|<4n7QYmKr~9(r5$kiuO;ytoDE7@Fn{Piv^}xHPN-z)D2l+LO3C39-FWGW)yZ zI<&O>z(J!^(_+(8CMJ#VMc>56Ov_3mlj~Hwlg9fZkgm0_9fTbsfdf55V)y=Xd_J!n znz=REFU{i(bA551MRTN~>x*@lyU{OS)m{`*80a=w+Jf){&yaZktW?i~f=_b<_RmPe z{8=QuZ%?4t9Dk6;q}R~dCi14|IxIWj7OM+yE5-TdOBt; zThW-Yo|pKvH4C-;bmciAXR)?t@}zW{fAzZS=2Yr5q2nT0_E2takmLM*Rxr-8@45NG&6A}dg zgSm;!7Kn%Z6Ym1Uorf~A5r_+vAuOUL(gG?dFu5@tlPHOp1StWsaeW0))|rqh%ylG! zBf!}JOD9ASKNF~+*C5{mxZeXYh=Z1r9Sa5$0Tu(WC<8E&4!~kgBnqIDESUi7Addk! z2QG+08IzDsG_FNj&!9fm0IvdDfnC6U;B%l7I0pm`z`hQk1<)CY0^)&zz(^nym<22Z zo&(kcn}BzL1Hf_MJK#JJI1p(8&49Lm1at)k0I5J0Fc(+`6audUWx&V47r<%YH=xd- z0CFqP6zB|SKsTU2@BokjOa&eV@_-ek0v()?g4b58!!ME1!Mv9fdXIyPzGSdAgMzFNf4<^>JhAn zzz=-hOm4wf{B9);$ZcrOp`;x$hBnhM!=}r1zO-EnSkMt)=WB?gR29abkm<%EJVGZUrD=>XqLEM%99u?zm z8t^#XO(DK0bZ>ws*xfeZaneQqUKd?A@3D?N0d%i|$M4&&P_sVXbzQT=#=E1YdiTur zJ8V)iyzA-d!v5+_D6Xd_d8kw05`TC7fAyMukI&tW-nIku5H3Jq`JlZ)t(fj@fSNk5PGdZyyjr7JNnbU z5_AIo!!H591pE^4OTaII|4{-}ZSan)F<~mf82>UyssAp*l!Gz;WVV4Z?q!O>7{@XN zV2o>-JTS()Og0!}VKcjIk}V7mV>PvjvQCE>i@?7@AoQE&$I1V?51FrRTxvV2rbwWH83p zOm{HG?~Dq@7@z3~#yFaZ0Aql|gn=u-!C;Jsnai!=Z%ddeFvinNB^cvl<}euJb7mJ9 z<8@{u<$LfeM_`QCnS3zD@JuckV|OMCjPW;<3dWe5NdjXG&cuN+K4(N4j`NXVjLVrY zFvjUj5Ex^4=7(0u5AhF!FXfXfiY*m6oWBmf>{dBQQjWu;3)I*Mlc zW4?q517l8v38LXxN__rqCe9Ru-jGhD}bil9ReiQX}Y118X z^n9P)g!yMcwXJpTP<`#W;D@giqW?l)d!`*)P?@5$o^4FJKO{BPI< zBL1H8{Y|<2hc^W_75cSKP;eo1@bEd)=Ct&RZQYk1$Lbe7oby7(W$KEWmF;p7;_qC0 zY;A<+^q>B_zw<`p|KT~c>7R@r?Tx<~@%OK(T+@vFW6kL`_uV-CS*zVE`qss_mX8fP z7C|03_Rul@&+$Jwda~jI);`Vhl&n(1N8_+2Bi0*}>fe9Ikv!U?-+gKStA1ZU;Y*Kl z(S({jDg>;ZQ?XV~12SP7A%A)eWm?y`W%r^Jzqxk6+Q5ZyNv38dOTgry$Ejl9MWTPE%%aI?z~!V=+5f+ zPu6lTtL3Ks4ee9tb480u`>n6gCo@>T9RdUcK>z_R8(7;8Q~{@f3g9rX7bpWZ0wq8( zPy`eL1;9#RIgk(J0Ske7KrS!?$OO`X;Q)=F3?u^G0TU2`c0f4L1PB9yfpa>_0n~@E ze9tfKYw_xy6rwK<%KqOm+k4Qyo2Egp^`!+Tlo$M$uU@77BCVe&fc^kRHW=U0y-M{P zt&<2~Hjtg^xxVUW&pOk@{&>OvFC2++|JwEJM93GQ?a)_@>)llMV#xyDD|_0(GvH0Y zVc=IF6arxZd=`?71?ctk8Xchh{=)#;DcJ~o0{j9{VRixV8A_4?_>PFW%V<|nebDxI z%~4P%s@lJ|ZjJk5aJ4&XWk|I<@x9xs-I3=S`rO%1FTca*j@Y)nsmC3(V zEIxVR`AcVJz1%l;^*2+#F8`%{m)xAYlor zxqAP)s?`x?NiQx`QVw2OFl52eHupbq;fql(KXv}swma7Bz5hh^xP%W@JQFd$PQT&1 z+Dyj%l8?(jc7LC(y!?_g!Mgd#+D!WIyfY-#__EKUXT~+0`(Ms`pL9%X`c-n{HxK^o z9JsA@?!C?LE#AHUtP{0v^XQD%>b|2qcE%B`Z86jT@oD~!&%Sluy>ew=N^a=G<*!sa zT@vm))oa)G{HMP8zLzkY08ps^>n zYs^iXpPj6H(ODNJgdb}C1%Ea^Z-}<;@$F@Uj=eZ%-I`7OSLv^ZuJ89k+~7Bvj&0&A zJIP|7{u}m@IJZ@k-aXSsT$#J%wR-t8Ln}L- zd|}_Ay+J3|9rbDVY$mQ+cVrXRCiW=?`k5HX!vd z-{tfr2~3^u)%rkd%F>IveuMj3o%jze0La5cS` z%<7zJVdx#w65>nXI7?IQgBWQDiALV-uokn*0VL z&P3$sxkGwhM!7ghs52xaVCG$ci^m^5k}&%pfZWm`v&m)QR#uQ;SZp9Gqo?~ZC(CFYjVo~cx6j&6KZtEu-u-e`E3Px!%D(kxvx_e+J25&jIxY^M+D%UOI{bdWJpAp!|2+8hfk!d= z^`T!M`t_k-ANuv7UmsFK`TytsfDZWg24JkgHej2xBCE4Q*$M0{{FZMa`!ZY3o?_3k zm)OSKot(+_<%V%%xLj^Nx0^f2o#f7NLHy0U!T05d@niU0em?&;e~>@PpW%aqn*~9L z7J3W!30cB)VYN^yY!^NfDuwTbP_d=hSv15Xafp~BE)`dauZX+E55-GjsMJF0AjL^N zq(`Ks(kkf{X_xe&^s^KoH;|jlqO8j)@&tL7yg)9LUzQKbr{uHpB{@uKrbH`!m0`*l zWv=psvQ{ZowksbgUn}1!foiDQLhYc&s_|;NIzgSKE>PF1FR6RggX&53j2fub*H|rD z>#g0VP12@mPiw2S4cgn<5$%L_K?~Je=pFPpy@x(ppP=XHi}hmtb^U;TNTRAZL0(kL~y8y^{!#`i{jGt_Khb}+k{31+&PV=gvVm>bQl=I7=q^Q?Kv zY--(Q8CG9wm^H?F%vxxzwMwm@tSeSMyPUovCp%m>~{7ewvzpx zy`5{xb><8%i5tRA<8rvg+zM_Zx0U;xJH?&lE^%ReGhXAP`QH3}d=@{Qf0kd(Z$Nz> z=8y4#La5L}=pe)iJ%lMjj<8r*A#4=33ZDz7gtNjWAxvy0YGSn5Tf9%q5~qtR#Zqy* z_>ovCelLbdEv3$qAtgyeq#52?eP8-m`k_{>j=Vvw4p35*amph~zVaOE^OSN{xuk@t z&D3bMuR2T}qvopf)lzk*x=;N=J*Qq&TWXwUYdy78?ICT2R;q2+KGG_+@3rPSr`vi@ zJym~5U#hRxH|THchxKE6fDvl6Fgh4ZyBE%r;M}4B_qsiW}0SS zbC@~CoNGQ|t}{!`?dC^jrTM)XVzsn7qYnF9gRLo6jIntBT zT4|%STl!4;Uiw37DBq1Irnfvoo+8heSIMu-d*owyV(KV&DEBC~(oY$#Oji~wYn08( zhssIi7o{F#+gXiK2dWR@NqJITr*4I8zfylwd!mhxHYOT-jMGN28D>V9z0D!!ICGZy zn7Q11-u%!!X#Q;0wZbjVineB3i>zm?SFFv}d)AMTMMJxp-NBaZ7_{hl_A>iN`!~CR z)5K{7IgEE^qAjm*);VuDC!GJH9}pl-Tz%A>ZOwLMyRwPw{p{oHYIYNQkZsL%;<|Gg z+#K#D?ltJ3@3>#NTli2{2aV<@@eBB+XtRg-bNo$0OQA2?>Q+cGTx=!YBU)m2$Z@bZ zLVQvz5}Ud0agH=!dR{7$UX$LE-j#llg5@XVrI1yzyj9*Se340P~r@u>KtcojOhwbTx6>Un8{^rfW9 z-Q)y$ken*dfMoLJ=j9@~RNf~akx$6KK{EA}5T%_WD!r5(K^qcb-tFOKdjHtm+1NWdg#y{`Y!#5eq8@aKZj38++;K~ni_2l#~5s+8PlLi zbB%d;7N0bhL#M7W))}urvu-lpHg*`hjSr0d#wTcn#gO0!=3$cz#~vbxr&2g4)D!zc z1I-XOitmc7v`BhEIxC%%>dNhuNlFBIfgb98=mT=p_3At7e)X_=Os!Buv{0?N)<+xV z>i-?uZmj}(zmwioU#{=gpRz7mtc{6El8rp(2!{B%)LQN+C(Fa+QSvx>J+#t!j%r_NjrF_q_Iiw-pg(|KV~c)Bk1-xF)}vQwhiBy_bDO!({0`5{1(UJb zTV1W*R+4qUHNu);Ew^@Bhpb<$H|-O4TWI-G`b4;yr=so$vzcrT`wsgJ`vdzs8^|@` zT5xTl)%$VD+(>S`+cPiYo`YV0hkK9vm^;Q*aNlsh;Da6Y_=bEFz75}nm-ra;*U5Yu z{}`XgzXI+4E&n6`D}RR&E~r8xdg}@yP`p*_D)tid#r5K=;#=Ylai4e?8s|6hiWn$0 zMK66f^o}5DQk2vU+GhZsr4iB?>0xO29O-ds0rdRS(n_gNDv|a`2ceHnN#CF!|4j;% zL*>SDTRBedAwMYR%FAU*ag=x^6@B-7<#pv_==cEjIqfCwE!4z*^uu3i4I#0(8y}=b&@Msc?RE=*x&*5Orf%Js+~i*b4Sr_8csq0IoiF z8=kKSE(K4{WMPSrFRT@cg|~!V!e`LY=b&GRSXXQyb`UwyL@yZcYMJ5a2_J!dvqXGa zTmh|JD!wTm6u)xy_E6~@KAR$FgSBO7FRvJzVK*E^kK>rFtqxWktb!6tgcZ=sPQ~42 z+S%womf0)q4Y;rO>~i}Pw2rUs@9e8~nA6N@?cC$U!xFgQkOF-B2lo)b-pV#&+rygE zUMK^`bW}jvY*sbilxVz7wH$u2jE*v(2!|j3|{f2AK3%t#bfE_oHe*`+Tj6coa zEOZfKV8M+Qo)k6-+k{=>e(@)%5o|FDdZDlUfIL>tlIO}xV2_o_hvW*mO1>aBf~Jg7 zdMcw(qwgz6l^|`ac1XKbZ=;Xb=jhMr?X5~H)KQ#)4lV3yl=lQXmY={+=BM#9`5gXH z{t139U(9cT9eEC)nvn%Z=qZd89u}4htAr1Prm!FH6Vt>+;yUqLv9Z)1)?yBNzMaz7 zXk$dyE@PLoD^VLe*)!~& zTqM_y>&UU3$f>ZgqhMXOfa_)tU2PlKI(b^;0a_F3G z+CJ#3U$h{7tMLjR*1#8Hp@!b zokdnLTH8VElGVu;Z57W}lpTksE5S~*pR)_>Lc0i0RE*Qd$#9-__B$u3KEln=wUKYL zAG3>vXN7gbX5lm}!QauJ)E66xiQ-K03GpdOl4Io;B>x4adp&N)y8VL z+ETq+<b z3oN&K#_fh=%tjya4lM37#?MA$SRwmhMPEWM+6DI#V~0ATV)UQ&wc9icR_!?L z7QK=FjDDA~#OPx7Gy|+iE6tj1w{i~AXCDhx7vlO5+}|MfbM{uWrA@Hy>+?~35B^jB zD?UJIDhv`H6FBijc{BR(r!f*LRZppp!$#Swoz{YNQy-((gbJHQ?0j&jG*YgKZmxgWSH z?i_cXyNv!Th!5sNc!m!{FBZ;6@R58wz9Wxct>abR#2v=*-T4GQkxxR;Hk2REr}F8r zdonSSnaa=LvoSWE$1g;Gm(MTfSMmjXAzuUyQ^IeAme~efw~OD)m-7cO+BwP}=PUS1 zXulu$D(Ii{{AK8%AR$-?5f~v%Xo7w+LWmUF2_1#wVud&l*5h8OQaTOWv7OvqPM7Dw zPAZWP$Ui_EhA52EQDK!tB?ES2o>HuoCg1BHVgk!ic*csvI|E||laj?V_xI|c-$=pz`rmnNNscwDea`U)_)w-;JE98o} zV($NDohPEUhoh!5QOnt=;XKrC0cy4cwOWQ6J%HM*KuuPm771#QLG96c!!Lls)-i=B zjA*+H39x#Sgk)i;FkDC#(uE8m6IRevVTO<`C1cjo~P+sC|hJd0dkFrbu-*fKFWF}21{(k=-eA0Q` zd(S=Zd+xb+X0ExV-j;5&*&O(FcG_%a+)bJME79e0Sb)|NRdHeZRTOH!XC(@1Fa8CD+~HyYGQXcMa>?_XNKNdhF#k z+Zemc_V}Nh$J+KeY%e%%ww<=jGyB-nPPH9Kv)Pscv;M%xjRr3I5w;U2^ErwMZ@W$6 zBTj9$IT?J@_iQH9WwZH2J8D4f@sAG;4%-b9E;cx9ubjxYyZMu0QwDZZM7M#nCq?n1 zR@?`E-TfODylX}fh4X(zB|?a3C1OnfCfdeM95(5W;2pTPhF}rxRHwrVIAELDFl?Hr zIR6nlNJhO!aXi|kUSQa7rcb9X=JcaKNgYxF{#6mYy97MuQ3L7`jx(+G1Ge12uzN&3 z<{@~=^`7WbuVGm6^`!(mhyLtDIidDKih98*jGvF{fwx@mFDdFxyKBk=ciJ@BK<3mS zi5}p0+4=bd$Yz^Ce|)G%{SrN&L%`PGI?Yzw{_@@PCry5N68;4H zHWMAT@Jdf!Ls=6Ji=bY%vZnf*0Kgq7_4{jEL(^Zf&6za0wn2JwFiJ;9&dA+__H-}q zL>~%3bZ!doaWt3svj`fF4g!O+Ddfp&Rwc(aug3u{3(qjoowuZ5*PF4F|=> z2vI}ggSrV-ukj{+IJ z!N~#<2y2B@`v7|7s^!#u63R+IpqzC3%sH&?$+chqcV}l_D^MW< z#=TN+0zJL_Q*}Qv+(gPRp; zTU+)wmDdBztxffbe{5_`Ff>j7_BUyWbaSna*bDuD;I;A_Zzd0y17ZTurxI|;*psCq^7| zWv?HF4&^^v2~=n+^wdiv+UG#a3;oJZZ{s-A9|*6^DZB0VTh+UMW4E#X>J=SY#dS#) z3sEtzRX$4fpfg^1Q^fHX>IxKi!93;tc1C`cR8t3JBUM|08{IEH+ir`@=6m%^@37Oo z&g*j`H_wbbRfURC$L|VOgnGwM3$Jh#YzUq_;=IsLk-)#hs$EW#xki`9xslqHXi0!v zpe<`BdLkNe&nD;imCxfaC>$4Wgn2aCM@;a0q}pqRW*US~0V>oeeU3nL>s#@Sq4k$;u_0QVL)6xS3y=X!;u$zwC6fr=2dCjC zu|Z+sEQG$Y_+t;gvo}RDF7)oz*P%Ens`w)orn9C&ZK;>bACNj`+pf+R#KNTT$M$G#!to zRK~gj$So+2zoOww&|=S0G|^nufWOd6TYR?Yl+1v~YpAS04RrXxmF(aIW%FGco9-b> zf`XFYY@wUMff^=6hjN?1#K+^Wy5V+aqK=Cau#~=w((?M44LqYU(NAN6X!k0M40?ZLe8(ez*e;h=MR@f(6& zOdtu2U;-X&Nj(EdMXKfl6}eY@3-}=|t6D0q)(QI(684!IH4$)~*%JUf{!+r9i1-KO zac>y@F|a`Thth+$C{>d*w%%o8YafBTg{{2=#u{56yv@p1^>wC4D=ni^a0`w!8w%|g zEPc;lX_7q%|K%lK5`T%eigKrh*EADPr?)Xr&mqMPm}P#i=pKseWmmN2Rx5f}C6zBh zd8~>wFg8diylD3~+=sjc6vMu(`WT$3T&*MbTNBeh+sw$FWyY)ZH8WdE0G-^nR)fT) z%(K)ui~ENxO`5pfV4H65@E@q+pxF)v7P1~?Mq6GdqWN2^zq8c~oMx>? zJD^@W72a9LXNkb)4HG_35k4F98i3D%6>0n52xgTx_X3FKwD2ywRC6y{ukK}2e}kj) z2e4iYqB4L-Nt@k%D78mf{2>&KqOwAN=gkhp37#56F7KfhYAA7(n$XRqTBk0`n1f;A zEWni(_J7r0E}y!DIaG5Hy+{ij{p%d3s&SmxgR?`KEU(H#a(^dtB*G$5BxYHrkdn&2;AxTW_gmE6$Xmf75}T2Vig$@waDxuo9JP z4?z50`8%nGWF&Z~NwgSJ(ItvO7!uXw8SEo1Jh5Ds785P6+Jn77$%%CiNsOyPq9~!6 zh6hTPh4F{@);TuIOa(EJ829d4Fb<;wYIV9W?f4M^Z+U%@AnZ@LP;wh|i76l z586Pk4W~lCm4{!{D~+ad^+WuX7Gy>rv4>aN>n^t~S_q8PTL6#!DdZ7W(!#6LAQR|; zdJPH$_2tVJL4{|dwje$kG^tNQ*O;+v3&^Bx(8 zHhY8jM6Z~k4R+kyXRUf~!3*K^v$zX{iBBFOBMO$m>rrr{EPKTYZWzFY|6{NCCH2W6 z6yk;FP$~X9EndiLh`&vR_Bm*Y!kH*k$xvmb?r|C!n~O`yYp6Hjo)(QZnd0MPj(_mD z#GjzqmG=QD$zeq=fwn&WA(RFxI#!DMG83hbe<+Qd%p+ilpBx6pb%YY?4G=b;X^vQn z-x0iL!Q;7Kmtz5&r3qp{fLkTUyU2mYAAmtNqA7C4Okz~^4j#wf zka0Pey2dQklh+=7Ag8t^n6KFbW=lX@z;YdXeh@R{1$qwi|-3>JEEVXXj%2BaPX3aEr9Ob@9WG*=*Gv^jErWV|n$8 z8VvHdU*32aBT|dBOrAIt6Y~$ljp>bFI5u_kZVT^{dT%(mp$zf8yy9SMV@Fo?t|}lL zI=LtT{hBogW76`*B7)0ZNY^!%7j@bmlYovRujSeB4>$H+leeKsZhRJ9W#Lj<-g1Mq z?74}m z7W>CIchWg@#ohRM8ZLb>A!IoorLfTzo#3B}k;RpcAiunx@R1grAT4;v-ni4#dyTZ< zsx;u&_)S*h=dRv|d#{nx!%dEY&qANU6}lo*{BHD`MZH3Yp-+J1$ZLqs^k)SGw-gbZ^uK+2^&$?%7DgUHRerX@Hpw(Sj6d=jtTOQo{5k^tHl4M6yjV2;VeHZr<^DW^|{V<_IHf@?K zmco01r$FGzBSiQS3;*eJW_+SBtIC@Z^!NSCfmCzZH% zgM13IJaw7)gQO44t8SD%l3q6|Ekfer>-6wy$A~HZ!r(=akvrm?OM(Lko3z|XD=7{1s1UBg6?N1xJ8&ug2L+@BCf)NJ9X1GsWiNo|YtB&D=TUyuXI>x}ouZAZA-o{ph2+?iE}_-ivz!(FGeJUvqS9(gv# zHsX9ocItQnW2vqk6_20gg4d(hE@56DPEU9Gs}BohTf2mLeOM^lTCm9}JKv4CSw?o? zkk=X+^B&B6v0y#!gge0ewFjF)j7>(FRC57w3Pu288h1K~o-7!U9YjHI98xWD623JI zo~4Zl`U|Dn!%#R7>a&AKnqIEQt?)`eE2T*a{n0kXe7kzjoAA<+`ThnRY7YeSNf*+`__NM!3m*zpoD!*FKn1uv{a+BNBmOki zC=jnQdVV=<6 zl|p|DyVKvOBMLjC7|W@t@<8R`Lptiznix&MbX6Xxsqz^ZlX$&JTJ9d%xXXp{Lm>Yh zkau>2JON~teuI&JLemer4V8Y)q#um`Qa|J08T?uJzkl#}@ITv(Kd~R9yon0+c&PY0 zQ!&d*#mn9M6GPt%lk{EpC(wFb9$B)k`SAmwr_kTM;>R*}BA$X;o|@NCUcbX}SzAlY zJ4@4ktLi)0xom5Tr)_H+Aq-&pTo}Obbpuf9;|o&h|9prj@`8U24(O;z;J==A=R;-b!zwzRE7}#!g8rODHK5y3RUVKD688t6hT0L*aPFg&AU1!{!T0Y1aJC0 z4S%|*0RAcMm+_y^_{(lTT=Atai4Wm&1kzc;-Owrrpnz1jA71AyIi}qA6OYqbb`0gh z0e2-Lh?=k>un6b$ zxl~H*i-+k9j-Kh+8hv(e@BnJ>gJo|&oG7^0x!UI zFXlv^P3bcD18 zOSzNE`PC~4HC9+!pZs6pTi!jskr|7gS@GF z&%Xt~eX03flEiP9;P>4EfB7?Tyz%Qyu-yI`aXjky6%L;Ade|1s7^7M-vHV^!DC|Sn z=Ao95ZwWCS9uEPUtWXFC*59jq1r5_Epq?rhRj(xcgqPrfMjwy=clh6T9Qb2cX8gsd zY!DIekqBQB5&tp~VZ>|yJNzeii$CSpX(abR0vHLT<)vZdYz^$c>k<3kAW>u%!9o-E zrup0d4u75*=XIvgA2a@5k^teKB!b;N67k~qRwCXt5h3CW1Ap=$&__zsQMLvtb(&7; z{${L2|DX2L*0b7Hsb&=o518+DrNI+*{G`di3mM#(*AP?UCyT+B1X01Z5WH@iqlxE5 z?P}$&n8MSh*v=hlWh^$+Ke(;$K8%GR-amMO6RrII*c89NeS+VI<6v~`OMnW!CxC+~ zv~kG|V#XTAm17uJg;KYVnc{&*BQm7fw_@H?y^OE z!@o%jpFTP8i#sP1DVkGOdhl?ozBA-XXjjfPc{mY>n*GDi9#38n__zNI{LlSa_-7n9 z{+f3tD#@B5)Le^(dUXvgwP>giEiFXyS_XzR1T(Z35}7kC%JIu<8h2(Qhk&gVQAYrW z?DBe~bbQd(=}6>c!xKMb-xeP%AC?w0%HK=NzLyq^@%L%`+SPks*}CSD|%I6_)5J(-D1qI=m@qhyw2XWA*gcR}D7>l;m_&unNENTrcxg6J+G>QG;iQC%9 z>Zb``cvZ|1)_vjEF@@dWgK&dqCEVay!VQx9^T7>zaXbtCc@t1VOAI%t#~5P_H<)d> z!D&i$-0&fUy)>Kl`c7H)+HF5- zKSBy_Cj~En%7r#!e?xeX8rwQ&F^|3CoMCIlx2e$QF)8;FJJVc~`eB8K`W_1uUBcml8)~ST|jFoe0@EY@E#y7FIkqR z*vzo^q=LOs9bZtQdV9etaX?q3o(rk~U!aL&U()v!LtRi*P zdxNxKBW7*AH^9d$tG@)huu@)ppmpNQ(AT{_EDtEtE6REu-luZjhMvni!p2# zhUQBPR#bmQE}xc$)--;V)mw?bqht34Qp`PIcZhs3c?*GE9_fR;8&Kgc{EZld2t6^1 zv+elISpJI!EMU2Su_UaD;MOmgOQfk*eL8%Uj2fUN%MkVB|MDo1=pzuke?R*4(`m4vEOI$lTz(un3}o)wa}>_ ziGHnIb0<=*O6BuVzO8K$Ek>w+gfi;qTOep-KF0adb(m`+zqJzwcuf~X?nVY-G`5B; z7)o)C5kq;Sjw`_$+7Rgh!zfUoxcg$D=~4oqi0|6JG~r`6%Dy8v;xSMPTEnoYO$Msi7s!x{F*ccngv} z>Mw==)k`ZrRd2-|EuYN%S!(4^=g;PkZ`aS{PZ0b$5S);TKUvHlnzW_n&o7uiP;*!l zbQEd~KCKpf%3?mb;wv$p94D)8F|+CyU08KJ?g)Lov3j=_FRZ=+OX_}^zq**??VVN719afuDpeZ@hM1e8*M5# zBJg+>fD(6>@&6cqfugXD$PDY)Sua(6^gc>K!Zf{ z(_=tduU?PVIzFQaQt41~9v=H{{H56gFR#+TJ>wEM3d(H$Kp`Q96_>qDUKKx|{j+th z(2JDyYiw7rOtz$&a{&T#1?+R6xdQos#DuF?XbJgao^qhMm^BC>hvJKM6kmn|jFtdJ za!v~VT2OqaC^d@p*12FW>s%1#rB7v~n%@9KcXPsCp@r5tVXwrTF#aBF!%4%2jZg#^ zvC*S&FF8ms5@}!rHv`ol3Nbt3_=XlQuvjLTaq3p_eG{mr|F@$OQRe=#AItI+bl5Di_Ey5+Qh2uBYxBenKr6UpA zhkz&xvAm{b?dq>YSi!n_9>LP6Vn{kw!GW-Uk*BjNTHFe5llqMqPn{H1wd0)RNK6vo zplQsc0qT1rzzbg8F)`@RxXJUZ|DO!Hk+1-R@>-c8r$`G6k?<|lZ0>vehxU)KNRRn~ zGqhdJCiFGVdZ{5>t}&n48}yj+t(ss%d+bLNb{kW_q_JLu(S~yYqr6^|2kf6y=6dUI z%~s#8{=?Mz&qiy~CvJZ_R^{F4<>B2T@2&$;%|Jd=?;s#hRe1{>Gu$~jWtE-s=Fd@r zbx*_SA*Tzd8*RQq;m-&Tf8d{#E4NVibBUM@eT6>0#UPYrhZ<%v!`7(>v3yL#Vgd+f zr{XHF6>hE{>B|DgDRqwi#N1CY^P|R^)@@ZAsF~*5=Hom%=04J3BcLUE$sbL{qq0%w zFnI?GUGZVk0(6g!V8~Ixee_<#A*`69{3QldGqJq_J1bnE2@R!%lCc5CWM1-6mhk(MLQR=AohWKl`{5*u4ZdELRGuVMI7imFWh@B<8_cvw{ ze4=j0;73a~?`#_0qRbGu)cD&krj_92CqLJNcg*1WIo#VJ>#Y3*5rFC-Fm2z(JJk}uYE#)R(^c%&GulE;go0$-YO z=(#zwKQ>`{DFAfuikEipikIlfh7e|Gh$g%-)P(H~?)bxBAyy%Lgu9X5LS9nMn<&uS z@neQN-a>h9u#-LVM)Js8`ySHr+}(NP_!~MdDprs!>Jl2DzILI}f1>Yt+|)c>qVMhc zboXH}g}UCBL0xZep(J~^oxiSkK7~4Wv&6s%I4;9`d&PWyxx3h`u-{pI_ophYf9nI> zAOa@THLum=|4xb&hUG#{<@cMN=T0?FE70&Q+_dP0%c6cpCD-?l1-;$jX4R*X)Sf)G~sgsq}Sb2qt>^kvnbNg~t{& zJiarV@mBRz4GUR?CoL78RD`!h+Y->f$Ev0kzX3GgM%s(kM-#yJn1OFrm(UWoM&jFM z5Q*^{{@9(qqlOnD+WOM=32n#3su1~OBV24%?;~IuwRaG(V>ld+ugTx6#3TG@lx)A3 z9EZPwNAS1fx3#b9d|)*|b3NsN*uCp{qZ`-rmX7&9k^4J_>mi);Q{$Z9ZT!~_raN0xE$zxf&TTO~nwS$qzKTLZLxS62 zKS%Z8W3~DQ!0CMWD}hcJ4aZ;l%z@XVQjYwa)ZY>eO{K~RM#@m1^^16UUTR+UFy17s z4Pe8jU}cK&W(dSWRE)9iKUgR1GV$OL=}h5Y&FkX2wkFLNHmC~$MISTXAc*>y zqs7ao0qJ%n_HBC%HYE0ntqR4><4&78onUC5@3#cQGE$tA7$-1$5*{myJeCe^hk4Xk zr=DYicA6O@rtQ>rM|f*rOZ&ZMY__OheVf20hV#@z@_85^jByYH3nP}~;I~_c#Afw( zCeV)(XmSv(8q37|;?y0E;v_IMDjHLqE$ZbaAO!@(!mYElQ7eIx&CILM&123->S0>@ z)HuHv=LRhDf6TA5#C!$d&f0-}YHfWj;C7k8eXPDNmQtNv2iu98(UCUyuAz=FxB+ID z`GPkG^947}7m($Q=TLON4ADIT4Fvd@Eoe)_%GC9i*}~^T;2|(uSZ2%?e%W=lkRO`I z^AApR^L)7j>z7eC`+w>$DL&@4jzQ{Vz}EbOa(G>0J|)#$jgoDSBi1zp_y>wTrP=-9 zJ4TfO5nAT^GpISMovSj^$h$ptP(z~vVh8{hAK~L-9d3Od(>x~bK8SxWl zm(${Vs5t~xcLtOXph(7uKambd@+(R4=U!DHC^7*%aK!*lCx-$j z@bt+e0iq6D207PB2@4}1@R>S~8f#OBS8#3$eHeg|F*OodNg0m^wB9KTaVG%~X*n(H zdN%nZJ(30*Tl>;JUTyDgQY8J6dbSDHsa;?h96=a%EI6%dJC>()k$sGF5s~Ze!kPlm z@*OLGkuuQv`SJKR#N%0%3MdD}|3y50D&ftk0D*T>Du80h2CNW)%;Y)5@y6o@rc(f? z`!Ma8@wjFe_hJ>?h{wfvcp3t*cI9CQqV8`Ec_+mW7oeFgr(ZA#cAyl}GtuVw>J;^@ zv*ESHu5UaV`#i2VM0q$)UBtiAUC4GUZELtt?#eJMHVU2}bQ728utPgA{JRpV+SO_V zAoW4;F#@j{DrqMqN0E;}q>=>6g6OB}^Cmz~5g^^BP4oBUcx7u}58@Sr^rU#@N)yB)3&d{X zl_YRU@k$3)rAgjhYp5Sh`=_9mmPa*41+vebK8lHkVEoOJe~6zaH)Dyh4(Ytc?_5}uJY0t-K9PB? zyDY8lDtmZE`iKe0hSvNOjid#%FF;QQn-?g>4!Y2MEK+tNql#F`gLUBeyM&77|FOW# z`iKoXCjZY*XK6!#80NH;@Fw*wT9P)}|20K>INW2jzfWsVBfuRvH-(6tWvwS(EE)t} zIEEoFPRm=X@Q9ErK19=Zo=g%iyp##X6S{4*vgP8Wa>2LAMWZb}6Duvam>%T?s}c)a z-VpZBH6}8u-1<1Vw943pd!W*WIek z4)p{}(|_;KLp;r&!O+e9QYO{t_cL`ps;73AU#v<{^-t8&ESDcIC&D!R$X)`cNCId~R1*fnl!>SFUKgMm%0B;-0R|NjsAb{75yL2`jm#jE4tfT-3|ilV1Vt$_8%w^ievq#?nDGX*V^lDqP>n- zHAd947}a8U`;J3TkxH{xp8`p=E$PI+<@9GU{n6dWQbay3yrBdu$gVg)7)jB`7g#m7 zFgbWS@i!6g>uXKqnT-{k&(t^2PN(Uw1VdXcwyvL@N)fqvfKOfEV8KcmrM%`Mx%wQi7Z$_Q>lQ8PdBS z`?21+<$d-otasOt*J;&aG7rUM9TeEDB{QkARU;nj#4B&)&4{WIpHpBBB~2RDM1=kf zKuZhzNXu@Z=P_u9!!`29*8L6FQTtF7%A!A?(b9V}b@y@fPhGmBx)@F4PwDLS5=|+m z{%lt4|JR+AWLKxAu&S3)X&bC6D`8ccbnE9?RTL@U=*;_!w}FWH{Y7|(LOSd(9ZwKC zGwVt-(`eW~MC`Z%fx(q@Qi79FbaE9=#)Q_h)$u+SJ-s$xJ)aWHn93n4!q|5vt^|Bj z`U)yx#AQk8tM5NcXysQp?=trw`yqYE0_&3JA1UH}^Zdgc?|%Tz?tTigEY%d`16`cg z5MIJsEK`t?DNw>2d}#azJTV_K&p(XG$G;hw?j|4fP*uvw$5Pz`Ed3M+>5~sF--!7C zzW_Gn{G${FG$!H+fy5&Mv|pnNMw8gD(bl)8DG25tnvW}B6hyX1pMUg)BS_i*KIkls ziT^+P*F4zbPlyGk{xScc_}?5xC(S=*p@}Zihs@1|zMjJK7eh~z<{wv@8W&MxF?pGv zm_Jbe*6Bl1|CuHb9h(dg&=-zh-D3V>Ah6Fo`PineK?}lOOg@(2id&sV`bM7LOt@wK z(56N$O&_DCJx*B0Q=60tn&pc`30eCEsAbwAI6#|k9Al&4X0?-|cx@=#k8@MP+NZY{ z^jJ3g#W5!`M*NNHV$)pUEdz=^AES5(^U-7P7p%|_>AKagaIxSujZb3of{k6xh z^%dGK8$|n22b#Y2PT;7m4;;sS$WJyVSiJ`4$To5`my(Ub$pbxpg~LQ;7w@Qb$F=vnxXm(p%K|M z)z$c&heuB(t7|%~V82xJHNK=FEyQ-{tHn?~(?3!^RNnZVu@!NQzc}=)K1MefZ(M7P zR->a%+S#Xfq~+Q?@n>|Igf@`&CB{WIsEcWRsoRlp1jfN48W4x$Dy*Ks6b3#t$BBHUZVvrS>I-8h7h_4*gMHkNdmhPZB|0 zE#~z`kg5$01Cd!h#`G8bC2FViO+oExA|H}O)rF{XUqGq&t6zbe*a0}1s z$VW)M@u1E}y1Hc&7Gl4-+pa=&EWw1E0MX-AEPY6R5I(uF5xvrzqqSanzD0800b`RE zBB7Z^5h`!x(93_`L_enf*iUF?LW_wB z1}1jGL_DG3<|h;^On9H5nVBG-r#uEHs?oyWgwBJHO+5Hm=fP~O*e5$sQ+})gfD(Sx zU6-{wV7DP1rscw(qkcFShACF`T_Tp!X0Q{z)AjP&yq0*g-kpcKOH8qh=R^uK&HbFl z{yMoc7wU-4+3$J;}n*=@todAYMOzY(>iS-Sy zzP@oH$FNX#sJt=L|BfE3UI>w=!KJg*6VDHZmL}FUytJ-i>^1JqxERwsgB`ss?9iTn zmVc;oG5bgB?B7D2E;uEx1<6PV0FDV`+_y$D@*}*J`apb*&ifazexEFAB6%sGBxKyb zYd3$eb|Wk+xwAFg*^1PT@SQaYpWlzr;A!An&==mNpFGR`og+yIBLBx@mNt#`Vq{Dy zh^wfrVR|MZG>9>e20RwRGTk%RKsma2AVVQ`r6=KHEO;GTA^w4OhC-OoXiUg5z<-m8677ce@$h>G_ zcWrK6&|N>__quDdcs_VmvKP-Pq)BrTQzAqNBG8%&g_@x~PN-fp3t#L>iDd+XWNOMb zc8mX?mZC>7ztLleAK?TkhB*H0CD{(=WDx0PshzYr2=f&k-a9`7o+T<#Pdda8g7J2* zYc(i6KW>n)=LAlT*vN++J|6MxF_KX9sy39Ytm@Xv@eV#x=i9s@!SMZifvfO>mq83%pPwgvH+kWv29k0@U!%IR&xgonBP zYll((CY5*J#~EOjT8BEclPQUgbUe7GPDx!>b_8W(QP@I4;!$h=hHU=+C2Hj+!+(I_4-j|t39D4Q7Q16q2SEhCKx^VjLa8>7 z%9JKSC!QZBJs^EF%lW>qQD-IU==|!Y-b-Jh-U|e)d+LT_F;bm@IvUT-dY!QYWfM?l z+F&o$j=pl2J|>Z??zd%X5x{-xHSP7nM$6G6H<;n=X=p*q7+$3kNzd4#iYm*2N!(pN)Y zuGxngHiF%~Y+fN+w$g0MVp9f;jr&o)R4Zp02;XDYm7!GU*<;sv@CVchq7LgL`oe-U zYn)+yl}J~q*P}*xeZoJE;dj`;KeizAqvmVv!H0yVUy7(l9YDQzFOBz!g9jRpL!ZuU zL(O%l2^_lOcqifbHkDc}Y6waDj|Tjt(lZbSsWVV|3=GF3Mo~)%0{OS@DXDHoy&S^8 z7z0ZA9XjAq2<~5XQJEFH3*ZLSL(99|KLFKGcjEpr`pc&}OOIXWJ}_T>7In6@VdbiQ zaaAX-Td*Nte>cY4NJdeax@s2)tiXB#&I`W4`TW5YsdBr{ycYEp+S4b>^XU4LFReg- z2aVQ&stlAL0aUL6_w+X{k+mehpYmpT^G)*V8{F{Te`d-zmrtr~()ojB{U z(KWmR?}0rvIAp|t(D!(cS=3QWbt88>B7v-eDgH@_dvX?~&9T{nZhRYw-==_LId1Ve zf}KfNP0A-~@WdPze8L@>NV?=ov;K}-7=Lqy(kmRohcYW4!3*VG$bSLka1=~L2sK<@ zL1%aky)<|2!Abt%_O-a1j~X7_&lfj6_O;;-e$<|_Ih7NuXZk(h^kbDbMQ_TL`8!F4 ziv1pZoZ?#gc*Rv{St#QZ7sGICkprl!m!Uea98Or`h?QeLVvQIde_0Z7JoDpVMk`;v z8Z{SX%t4zIaR%x<5hBMy@UERnpUjYI+RzFmQ{+s%Z^Vx?qGSqc(HBnhsWy&x%Wf*l zQHFnj#n_qtAvW<gqs<^u$2ihz3gE#|0}y@EUT>l*x#n0Q;eL1jTXB z@fW-{><7T0&t@tAxR*Y~g3JpVMFKe}+6=tujSUXc4jH2T1HBLd@B62`OiALSCI9{o zV%ZyUyiIIjaQJl8Y^W7~$mhC9pahR`pt<`UKu)K#6CO&l9cZ#I8I8U|W3_KN4e$0d zV8L{J#7V~INLnAnmrPgL@d*TX=qWWw9E3kKeXlA0KJZ(eZi_x_fAQ!;wSvV|;737Nd^}VCAkcCkXnc**70`*VajRtawCkrOwYjnjWbox9#(24RD!CNA@L65+= z>GmgcX>ZtKENkIQSHzB{8T?ID(q%6h6jl1}VzfPgZ}CjQH9o((T&SW&U{`<3rs*N* z*d!{$IRHcDNAcan6(N}lO7LZb)pn%!YKdX-_o)*iBx85G;$*P9E24niLV4y&b_5Am9> zE}cBXozN#+(@>0-*^SB|`mEd&Ko_3JpVzRY>TE1jsDo-+f+xji=;MT6s*zCzW5r%E zR#2_T=qwBuSO-8{7Cz*xmAb%IDW+H&18XM4G@C?6t z9c}=IgB=OjDAUc0wK0NFmScKXYQyWL^t2no?9zr4ZtE;K5qqZL9q#x=(aILA8{@G&j{TpEq__ieM zfoy?ZFvqWx#Bn07-HKx$+a&A(Uwz`wDO!xK77j{yE&kjjT4?s*C1GOyz+w-lsTsJ< z`DBw_oP>KLF1FakSVwenF2X1o-{OL90TY*U%S41JS9_}ulgzLwhvZpIZq$b}TeM!Y zl*&F4H**mUebL2iTAh7h$n>r>4qFf=pa>r+`hW}x)x5}aISv&<2u{^qS0D7mNm_7U_$LyX z!4Fqnt2FlzF$B!P1$ljPS28U{c+%5xO|N>*k)3RG&>KH_Uge^H!Q{ZSzv3f_>cgbe zsJ^7&$uEX;{N!ouNay%T-as!D-eB&bNo4=mqS{DqmPd2ATUB39>n+L z&Gt|#>;a<<*+Motok+?Q5ivd4$lb&sMS&kBRT2iU9dJ?2Iw;+R4?3Y{K;^Y$+291JEwdIrgg!MyA6555d#Ee9Ln*~X z8ey3e2svo5bXW{xV_=H7X)@RuHOx$vvIFbSsE8(yHs;6`H^4}pNe2{ z#3ynaatHG%G#-Gli~^R0h#A>>7~i|%H-sCHUcl{SLCr*Mj-@{S6^(z9u}-|i$n%(U z2>upqmY&=}5`dS!0Uu4&m_dP_vMG<5VKgsBbHt0$sky{t=!^1s8GqT(7a8jYSvirh zuITUB*&NOUY5s~^fDMcbx-f=^!CX4mUo1yeyzn?vXv&Ziv0~t)r zz6Lc4Wo>q~Wv=M_GIXxKPsT-^xw*6WYF)l0Tas~!KgjY0D9D0dA$T{*8Vo8VrYKwC z5``T+nM%I5!h%V@U_M?2Duh}>LKUY4IL%4O_bM|pehGd;qYVN5?F%iwQL=BbiZUyy z<_y#{$?>`IW;yzk-cRUC0%mf2Tj+kO&a`^$v5$q;82J=aV&jY#{ z?T62YbZBtb@{tfq#2IBt0!I9Kp`h8)Q@=!=A>c&8r_xh{ah{N3Hl*mutQei11@^PS z6Pwr%AUXl(mHuxF84g6}Dt$tjFwl+mFy4%zuE0$_`v8OVMBE<`4)HgV=98FAdJqu% zlv6PHz@c2giH~?6Bsr=(s73G$%5%IA`PpPd+umJ>t5#wwfcCw_y!N<)XiVIJ{fO_m z!pAEsz7d)cyrqlPUjcPMUuT=0Q!%iHxP4*%8tZ$XYw?0sg=kZJmMXtT6|QWVpC$Ug zto#0(q58@FHw`uSe_^Wr=UA$ooU(ts&Q<^VX3(Fld;k|q<`H~|1~y9wMfL|IF2e+E zkeLw|8@9b0Eq)?V%sl!x#yi1AZhaq$!{T$DLLU?SIZH>at9fd@f>yQP?st?=AcV-orSvbu#hj^XGehh`_6+SxEroTF7`*RaLC0R zh-v*VXB*tIUdRZZvx;=34H%(c5ln_t$M)PlC#BWUYMsH>_ zwm#uR)H4#uFtSl=@lnhtAbRdwYw-qhPG)JBSzD|_3(Y}^`Qe^I=t>S*66qfBBpWS( z(hVn_RHne|3Np^J1G8jZ+zaKVc;hq_)*g^*hT<6gQ|As2wZ&)5_4u*%7aUJOG0{;j z96}B{%10-|5$~$`z>Dk+Z%Q6R8JmDp&WyJrz6>~U(t?;UkzdZN`~vx93JvHBv68LE8-V5q~P+B9j-REP1I4`-CWB>b5!qAx*P6B#G_2pH$O!SE6Ey#sB1g~~{> z5ScQM%G#+6fb{R%u!5zwj}7p+J=n)J_@;Fa_Hi+KHM@(~V~mZCm@*)#{CA0RwvUc; ztnKebdBQ$)`$q0u^Kql2PqKa-?p=A}BB+aP)6UnP!cLt~snQ9jE0nE)Y$jRRs^C{Z zOd%|MT=h{N5~dQGx`s_n!el3wL3AhRhFP#bH#x#UQvG?TubB>sMDZn+*Q4BsbG^zt zm|-D0^hU<|(@icg-KzIUE3RvrF=3Y5=AAp3`BZN{=g@Ht*15Pf0AAo$8d7mE2<7XWkzYlvTf5TdisR=$M zNy8rHW=oJcJIP?j7_eg|s>dF$hX7-qCX9dak2FDc$DgaM@VoGDh_zhwkDh=-R*d>T zWm}tp0q{~g&P3nzibi~FWZFrwub$tr^T0}bs88%U!m3HUFqT@7P0;|Zu0e}>4NW2` zX2XjeUGb;ceudo&y}5tVURNDN~E7 zU4<=HT|>MZP^Q^mteWDC#C7~_D?fSuM#(Cq$>HlMkCsEwZw?@Y6X+lBAl9x0KJnE$zto4d zfku;W3VJgtPPURd4*g@*!H0Lc)W@o;06#%rY~)nBh>Z-=p}amea)!8`DX!yxvC`j# z|3?NLTR!bw%AMeyp-xycs2B(x>8*8>q+BneHBcW8)P)=85~S#>NK|_x}>hm@n?X5F0-uasT&(<+S?P_?b=Af9yHpf0OaOsf7Nk zpJU|j>hGQ(cx?VYY%Ncr56)zL7>y=i>R8r?k-0+N4qg6P;@YWSyTr9yzxIf0uYTke{KahkXn<_AKg<8 zj%BP9^76&T=O*OUUue}jJ8M-1bY&WT_v3djzC%zSpM2>diHYbrkgHIHSi(aOK2tMNWl`A#kuvXLI&%H@7j`A1w%Si|}s zU&-a!z;Ofa=yWWgyW|}npU34nO|kI~rq^U|?;s?s7y76751#YA@00_ zLpk10qCPLKpVqG_`o?XFL#RCdD1Hy&2j2sKGZkl3@VndaH@D&H7W{7F^07D@gWqVQ zoP7`O{EEwSah8K$woyJ1R|D|t&*d(hIq}QV%Poq2hR5uCXp$?;>Kr!fN$@WjTMgby zkN0ES-^u)y9(Qr2i6-04FaQX@FaiAk#MJ&Lw(T~p{XVwcai;dWxLmjWHZF(l8_sbp zm+QWRa`Lh9X5TTN%XQx)e1qBd{Ef?X-}NlFhwrlZzgb*I_kWLaox-F#Q!I7v<~j(^ zY5cdqqHhW%{OxG22Y+kOL%SRV!)Z@kZ2WLjS+-HeXX7=0ZnW)hl)JdCQ}l0?ABFo9 zusi4s0}112lq*I#pK1OxHa^GV@36lJE-xD~uZvP2$RoLt-l1h>-ft8>)F+7e_{3mk zEFEQj)N#>U+)+-6GTvnbXPJ#DpZYnTF{qEF^9*8J8_glkiWNIdm#4&vvl5rV5aA1; z6oilrMkD5 z#?MY&DZrIVxYB5?iU}(XCRRBkmr=&LbEh893xC@E`11nI^Sg{cvv60~Yfs}3gp(96 z*@LIkgazJ#ES)DrG|*i@ATb}(+x3$*!^edY+1F7!FX%UcrdbI=-DpKaI{ zM)y!Jpr_)lT!pQa2Q>U5*y@OI!q~dH?h*oo1-#Lbs`-Qh?_RxWmPj5g!ky3XpQhUH`sx}cI(ffq;|g@K z&unMmr2Vclh%qM=5!T)9cg5atSURn54(Fi=sekeS$X#b6!T<8RgCp3 z2L4tdvxK(6qPY4$_A0FAh9b3G=yb)hVY5d#~k@dolaKGTg(ATt|3;4`Oo2o^Q`I9Ew zLapH=y``G|h=8T18c;2K#Eusf0#NvfgWRN43+G{L9yN9Sx^+d(qk`fv1NSa%9yOB> zv#M~wL-EU-XA#~z{|+^rMapdZ2c3~JH@re;b8xnSOG%ll_#P?q96n=Z<}*^}sW_7d z^2$jHCNz;%v2tLI=AOPVT$&{kzST!;Rb+v=Ac3xDO3|=wDvbJ&U7Gbu8c1OzH;~mZ zlJoe?usB9?D&I3KZkAzjvkZ%yrCS`3q^OP%vd@9kfKZzg2o=%IQ4Y`vMrDbE^MuVW zU(!6vb;9O5anpVMqGdREK7Xhb2k-iIW58hFWfQ*|fu|(izTzd^%pO;eU)Ved4!#Dr~dnSmhiQ;OKxYAf~w=M9(<;|m} z*lZ6KcVWnexjI99^XQBi((t;@kovdjj2KeI_lP0$_>34bkJ&{GnfeYhxqf44+J;C=3W#ZmQ<0qo6=r@<|&B46}KI490rc&zHW@x;R?{U94 zgCH`{Z}Y5rszj?b#5|K=<=F5hYpQ}E~9%{T&3NO#&bcmdkzCVF|TI?e7X~7WMIRPsR z?SvO2gmIC}9*jJh$&2M<-c0rxx!jg)-xxKA!<_P|XL5LQ2L_$4j!?v>hTUO3bz*P0 zzbCaoBS9ZlF^Col8@<5K4|K?9X9JylWhMp%rt7LMzS=J68j1E^v~{9Qf;JL?MjK6X z$V0Ptp0E^NnXaiLaj(gY-h3`ud=%r$&8AlJ{xJ-<)+IW|wBMJNpb^Im(WvgB^UdZ^}s_D>$UGOB8?M^@3 zz?1dECijYONrkb%&y4rPUcftP{pNV}JJ_J{`F@~jrQ>iu({WE1{U$@}4*$|68vaR& z3w#a5o`WGG6=i0cp2!4Ee?ESFc@tSlO`ntHktgWrsxRawx})QX#Xakbl5za{;_M#3 z|3*XuKhhOHa$eoxw`Wn$_>DH3Wv*uY(1W_(O7;Bo(cq2v6Zkj}& z+oljRpA>E?QmzzxZl>)$mw z6pH|%ScEmjA~GlzVNJ0J0*XagQ!K{x;#`Q=wz?Q$O_<_G4r{_Rc5qk|CQr*@O?VDY zIIIbi=ism=Og6}2O_;Qp!0{5_oVueDuFU zo5Mvu*PW9QC{pZB^}(2|r_h2J^e!D8{5 z3&a9Bv9gj_AU9SvIu^)}mHA_V;jyypSfDUgHYOGb#LC9T0wuAs(pX@0tZZB?FeX+u zAr=@LE1MV#l*Y;?#RB7EWjV3Hgjm_#vB1Pw*_2pdQY3J9tSq;#IA3RwM#cXPpDO4% z6elS#$tz@)*Y9wtEEtSEI+z7?)*oAUhYN+as&JvWY1QNa38=ZaL>xwogH^r9h?`@@ zLBzPl;{fcE=HdzB=0tHdNnC06AY$C&DIDV_TL;IutYaMGvW{_#%R0s}E?Wo3xNIF9 zZ6ZtqMA}4e=(8Y~8W$;d8*c8q5x8cTRnMc#ji~VGd0l-N@r$mmacs zu6@!wzs936Sbyy7=Y(T{8{Z|y=gxjBTPID9f1>9*-L>(HI=JLVWS4XC>{c)J8P_4TIwj4}^n0meQgU8I^%!P45!5IyC?6UDrC>gN)u z0PNaB=kLDD;U#w3-*)@0O)}KmG5Cyh?UP?+u%YW7Q*=q*p{PbbK;tGNJ>o zycv|!gHYOYbdE^B7eI7pD>7nu)ptpet)>BweD~w}aH(|v5;=!AANv4LnOn#?pjE*$ z>+yuOwBS}Ofj0rC&d*SDFJ55UyQV$#Jp1dsc76fC`{c=lKUkRqS_IMM{vu!AL|HIfdaEc z{?uCD-b4BOJ(NG+L;1r!l$Z5TKB9;6)2-zx)^oM}MU*@=?JxR5%ok%LdEqoRl9y4j zp0~_8AL+u+H>lk)_!;S;d~y%vS9d8-y*_Yd()z$D)Xua%a00CzO}|Lb{o|NPXeaHf z*@nrbv1HIrO{Q(*JquV)Vtoev`g*{Bkw4b$x73ucR_1GV+-<(Pibm~3%DMSxsoa0C1{M{Y}Tt>vrFkN=a<)V-Mu|1}NM;-2%>FTk_1PXsToffF(1 zt3ipLuU-n&Gl-|;JgF0+MbB7&evzKB-br@@&WX(!Jp!%(AKX4Zcx-&|?p#e}z6L({ z=kOuBiVkRtDG``P{{BA3YDI7&9@ zNiTuHa=B^A;j=fD71v!&;NS=xKib z!aG{u_a)}%2H-&ga1Di`+ARJ2^VPnm<%8(%>d2pnjZ_`g@f^^bvy!n$IOpSn5)rsWg?R@bq?v=THCC^@H+bu~aAvH8vw2AjIG5BLAe^ zUN`yQw=_PR@?!=ao6lrAe%nRAecj=Ip@Dyr;sW2Fl^>ge=k(*xVW3Rpd(kK5c~j?8 zpMcZtR$nARM^}CEcSpy4|L9p?T7LK$`mzU3wOjli@G+me;z#>&QtI>izxRyaxmNrN zVa);jN@5u$Q?coCcg5AQi~!DJYuk5kY2CIZ*4VZJ+p-(lzSzDt*3`C+e%p6%Z`rQK z8e$#o%0uVitMe^wYw?&DRolKR*0OyU{(n#Tv2AVi#a9&JL4lapA8SEooig(-WyMar z4c)r%^TpQ2TH+s&8?ffnYT@|79z4QQgA*#(!mY_YhFg?b>l}v6+Is{8$+cRFcdYp} zjzuuwZoVrK(FI?m>LU(Ynk|SO#$=^wz>5NoKkvhY97`18m3}-3?0hA$A#d8r`qLJ{8z>GZ z`Y8^_4||AZ)6=atSzxSr*#x6ihY?yA8RdwL%WocqXU34gjqqizcBwvyk#JiZBf%TR zH2Wg@N1r^Pj-El`9b{6?Rs&-EJi#A=9>*R?K4K3f zAF+RlkKi5sH}h_QrS~U*qNVp`mfjbcdk?)ETWj7fMvT#!0?A^38L=3QiH&pO;ERnT zWp~BKxkW3D^`;GJx$2KtBM>+;H=2&O2ao80xuRT9MftSI2w2xpq$>pe! z$G70#V`Hk1l9ccbTwEz-@YE0_HZ<(TB{hI_(Lf?WjxsCm=XldAMlfHPpNChke~I?D zRv%?u&jL*7dT1VY*r9K7&swz)G0(JY+PlWOY3~y2roHoH#mh@Rd#~`YH)@XaP^)oX0x=GV zIAi1dgwD8Z!eU&GXxDrNo0mnXpFyZf8io#LZ0$IhTKxB7yypDaH}KjhY6_lV=5IA# zXaheF#$iv~kAJ0f4W1!NdcGR%>BTy^m^I}iGdCQDSy;qIcVQ99I5K_4J;6sBcJ?;(e6w)hKwDaLe9qH%!m^6xJJ20E3_T=a_e*t`k1D_J$6QGp^ z7_+UqgE4uix`UM{x4MH7yjS@S&W`EkIjHUsWxS9~Mzn8dl82WywbS!s9z1}K1D-=C z0s7jJ_=aM&BlA7MpWPmCM=8w*w~EUg%w(x2r4zaqUP%zRkyC)kVt5YO?NlAQfCZubXlbVm{gYeg4fh=@E{_!OUC9$1U z(+JXrr{RyNesok8wAvXR<-j2ewfXH-gT+d+MH7U67~FqNIX_){sSb zwJ>Qszr92~?|G9>Q2b*lb)uB(X}i#mPk%kiD|1+XJ%oW&)5p&GI~w|10{snW`g@ho zU#SMJ*dn$50*913{Lr6G_`)ab#_QR;*WsD|fzrZK|G)*#atf)qWN^ePQhs`jxwix%m6Hs@|9m)(bKq)LbkXf9^pz?a}om^#xF{sVYIp<4>uN}*fxDdbw@ucT~yuC zAIFL<)w_K-hC6yye2jITm&rdA(LhsqT2XHtrY|n)g+uUN6wcE8UG?t1+{9k-0^YoQ zAJnRPcQ1IJa7RYP?{KFq$)1a-CwWC>-y-fhS0E(M^tyD0}>NlnIp)Y{;nWAv?2Z~R=Gi0bI~twsQ7ac5j|}&lMR;9Hss17 zMTEH&rWegr?y$XL4@kr5`Xvp+%hr=~`814NP zzb?uIFQl43g5AP@O0(haZGy~AMHwg!t~10~QNkSsmq@c|=YpX1E#`gjA7DD3=VGO( zyv{1d-DflQj*4nj`WJ_1(+3xk4oEfh{Oq(Bt9O$gfIw*$(SvGF2z;1v0Z=1)c zLBVUJt{#ZO5Bs*2_{Y+=>2EPGM9!_<8}i6&;(fuEhzsxf!ZLV$OvXIr_TmVLyZ}dg5|Hs?Az(-YFf8d+2fnWnSYG|X4 zZM3V6HELpGOEj@72}xAcC=n>4MWvQ1)l_zYDngRoO}JiGW5G9SsE<sMTe;~i_0F~^sUF_}yL$wBS1&&fyz;dI%7damv zln?nWg zZqwVem-pxQ@P?e3qC@8FfMa^s$+&$KM{-CF&^K4&#-&Cg5b}J8fN=zXGFE=kKu1|$ z<72eT-`qLUiTubH53A#gF4}B!fu5A#{zV+UQ3BK78Qa^n*GpYzsH+wz<6S!d1;1wi zQcf^!P^6XEd=@#AKb;YAzZ;pp?3)(tu-)tzm#W4Fb6fNS`~S7_lVsgoxoe>I@+!2? zZUfsX{UWVALGeav*Z9;3Pu6vH1g~=IoA&?f=p|Vux+QM?Fthfc$fOCluzx)ix@xrD z16_QE=6})&ZhcRy=gPbGAg2<%-3AuW>aW4y+Jh9_n*XvC#56n#=}~)-a!m72M-0N7 z82(zyQaWpaf1{M~XELC1j~seqZ)Lc8uF55?jaM3x!dsnQM|tBSxK9kzzluKglZ4UWESA2cH~b|bg=O1R3vJ3<0VTPV;V*?%NPPw`?bQJ z`8^hc_LAlSGEs08t`H`x-ocAk3viDz71cXj`d0D~qZq;P_JdtquVeGJKjG{S!yM3s zi?kyLP&@ApuHZ)69M%K5+&CA%+SBWYLhQJVhuPOFKO8!E9e5XJGtX!&YOc(0r<~H? zhIr&1>bZIs$mxnYk@gc~Aa-_6z&@GPVYxbwF8IcI`IT{vWfiE4PqkSxw1<+yM!@+?dk2}8J-LZpk$JP^pxWrcb2 zz&w!^Xqs9-#1H?Ymvysjsg$i?**cWPV#TH!Db|K4tH10TaYH`_(u*YFw|1d1*Hr^r z{x7{a9GmTt!)&-+S(;Sl7R1uy5j&gp+qou6u9M@V#!1v5L|Oc6XU4<`^!K0=xH85= z?3Ad?_^7q?nx3s_*gt6p~FF}7E{q4xZ zhkzo+6Zk@0^Zb~`IgCH$uhX>LK&jM|K$lPPE%d5ANL!#*zg56czTi@C0eqSW36VbHf~=&H zcb0LFOec@X1eWH)1d@p{nb9+vlNhy>4DGdw%l++M&8WcKdZvJU62RCrI6V>*Awm4Y z&bPWEzlHZ9+4A%_Y050YN~FDycMZTEcZvwsPA#w>Ibwnpw!@F!w*+f6O0#Bxw~vgC#-rsm1lcv%Fi)39jY_s~_IQ*hHfyDX3k@e6dvk~sPR z^voy~F(%ek7b3!N&x~a_OJ%sm#xim;Gt|_Ou2!2Pav)pexs7**;H?EdLpz1fzzKcv z7i>?$-(K8*Ex04&a7p~Ntl%SyNG!F!gc2kj%oSVhK{fl2L-K#;5@XyhhXMST*ogB3-(I!>BijIs&q>K;W?kP$o!NfLEe;?vt0_L1am~AFcA8RQh zb=YBa1aV`w4uSrq`8W7bfJIKXhI2Kk*LOJYxR7M#dItb8|4+nR#LMO<`&Lf@x60ss zQLBGnsH)b)cYxn-ZqyonhF@E`RN{cEVlA*4@jxP1A>sd8kZ1z@YOqDF_+3MrJuw=z zyX*@9*BWjWaLMe%`kgZ5WvJBo6gaC*@4U+s}qgCZrn`6 z$h;VZZiJX-lkOz9a%lnhc=h|>kM$Gv%bby$2msqCNLj)TP-H#ZDm0RXEYgBy@?zu# zqyqi2R2<4cZE#S};Ez5!J#wOgXX|$JrQJ%m;}yo%*zxlQ5~b&9{z?vPIeq}`C@>u* zV)735yD#x{qbQP*W-zP0JjoJR4lFmktNZII8A{283AqMnsTG8$QhnvO=Xcf~lBM-U zkmS{Rsy@yczn!Xc3$;MVRFbL^^wDYYQXJwdmji4LbvNj6i#St2hdW{AhbIi~f}SSp z|JXP$#`rG8xXQ$O^N9XAo_tSfMAVOD$PX3Otr-9uNo~h}0KZa*guw1cUC>Wo#hlP)`Zu3J;rS>Yt-z2HxT$|El-P3JvFzdI9HJr@0GS2gJ*#kQm|; znbZUTMVSBI2BI^2uYI`MM|q)t!+iPsc<%#?bB;zwn(rPKoM4;p00OY^{u)paKcN&~ z{qD>#%BzhlJ;97Qg`2#CqnW-IXW=T(@r9W;H+uIPS0DC8lJqM*dV0Ttd4{hM;32`! zw)MSAr#_EyH1v2&ONdg!~ePSiCic zCkpetTQMF|8-Y2;1><#SRL=ntf9qgTvF@VK0^gv6;)!#9ohme-Nj3YKw-VEbAwA|@ zswUFJ`@=oxU)1>f6cp?h&7K`{yZF`Sz8r->HiB2u$_)aD+8|HmeU+!GYIiRx#P z%20*8mC2j1=yjw+I}X$!^>}~^1^mp1fBMMD!2nq-G;(I1q&zM0s4TE37J4NXS{w^4 zkA+%dp|!ElhFIv`Scv>gyt=Nd1}dl%J>X~y>||^x@G*bzk35&{7TT}$+=ewOGGds^ z)g0q4M$W#Rg{6Dtao{Zc=5(V^k(d37GU63IX#-}HP8{jL=~Z&ySD1e}ekD(wXY_LH zVM2LGwQ7tTkvHyF*k}P-4y|J9o$7 z+`9M-(vkj11?FouoN~Z%$H6HE98}QexfTSg5Pc37AF~X5cDND3b1IRRty+-mR3J^# zJp!%Yx4Pik>$(4eVx>W>hxDyLOYb&E?H0X;&ox$H&d&*FM%NQaQj;KTZd-?zFNx6t z;MOtbukrYnngeZouLYdSIDCT#6uz2&9vX+l36Nd#nizfy@I4W~TOl zeEMS|rMJyWK^te~#<%fLsFrQ~VkRhrx-e%|LKaqG)*9zqJ)srtn-qkV6!vg(JuPZ5jH$q05^8& zOA6X5^p^x?=uK?p%zO~7HBIrSSQg($qX0DexA-<)z?g^P`LV#9R%>BRevBVK-$1)y zH(2~wKcVmwuEHa*mX31oJer}`0?BOYi5nr@+;!{YmjR78qZDWuRo%{_I*T@W{v2j zbSaQLR%ea7Qy8=F%{}5q8QK!8r|-mn_rk+2n!tY>)*vQ<|CTZ)f&X0QK8Rewn*5g+ zCn4_MD+xCLmAZ<+Z{)w>!hfUSRMsx?u)sV`+SErLUXIErE7r^)|G}ZQHJ-TV5*5nB z0`Omk&42Am#8V#fi0g1Y86g^$iX@bUkXuhaiagx88sPp%{yPjoEiI4dzXqs|i0tLR zvJd<6p9@GHtFt<$e>eWiBfd*X5L*KNh%pKLm&Ta?f&X&t_Qdnw>z0xklYjMSPe1-! z*m~?HrJzaQLH@n92iPX?-zWf0W%{(DNz$D=I%>o5Oa z-FYi@^1!YbQ5#LRIOo5>8$B+9z@57I6JNoit6@6=uF?m&ZzZ*X`tpqs|`0-xG zB=F-*#>DZXTJO@Qu?q91ydxx2WR+`NfVJ1l@eddISbr$?UTBIq{xcKjU#O`@PI{A zYvvrmeWfFvdZsL&00-g8srnk||D(EnCAmq#%kp$s#<4^&4@Xdt`}Y}|zZHeySy@=_ z)B+h;l^CNl3&&dV;4t!_tm)bXhQ*WA9xN>H#pBGh?PkNI;(V28+{_gM znGUi;hwb})>`;?yw7@8p(w|CsByEg4q2j;#rohPL+sYlp3@we|w5r3b_y+C6m%b*} zL^;_9L&r%3Uy`m4-Z~x=2rj*DfwW8(PwO95k+pZF^A%RMT(4_F`qI2vH{9AhF>u4J z+Q?PxGQG}^MOUcKUZX{v0M54OfM&?>Ep2cDppG`|S%J!csgaJiP!jA3^Re&-19o^n zX1mdvN{bC67u+GMyVzRkIlzc+)kBf5u*BkhsV<|D3=ne9x?$33iuTawwH#D=GTynB5-yGdS+ZnC5%3;plw}L5+Hh) zqxH%IIL_FYtGr;m#~Ecai%BRfkHkwjE{`mYWK9YcU<7c+=yF?CM_#QK|7!8PDGW`g zg9jC>EzwhrO87uO?&$VShHWU#g%z;5=1`KOaL24`49RZX%MRi$!BtLO#U%M&nvb|7 z{Xr(7gCNHqM+gUNmO}xt8Q)yKJQ0grU}4m=48;~Emq8Y*_is$(A`slBrw8^QDTb;B zN6!{#CHN<$LLJ&`l+7qUJ)N>B1p~KO92)$8MHR)g`FM`!n;Ko$SA!7P^Wxqp9iMtM-e(Vja6B0%U}yX>+b52Gd&fj+GxK z@BhMjmOS!fB(i=*U*2&&9P^2Ij4R)(03C0PC)iVHUWPG%eT9d`Ai)P2*E$28-rbgW z7~Nt#zX?9rJp@MR&w}@Mqab{NcBTgX1H0LB{15Jd4RfV;FB6Vq!eESW)UOgP!H!v| zaFusA?g*(}<#57azLLfy-#3H3FRQvj^)&#+3X8>X{v-R6!g%^xHwPjk35)xlcSO26 z?nuR2#(W8bl~yBVIIWrC#6Au;ldP7|i01jJA$Jg}sxlDMR=*Qj(19QG2mjO%h;fxV z5GM#}{wI)L%u=4`iwVxVBOdm81yzi7*7b@<$Gl&ic`#J22xtjLgemEvS^ZuAB6 zH_lsNt(8rrpw@t!9p;iFEJ~AJZ2WOEOwn^&_5YQgBR)AgJud*dYywb-%>~ci@;}n^ z6Yze2dXmp=dj10j*#8?nA9?NnLwe4|WhFL$9s%`*Kgp1B{7El`{`~pnzm87NUH|M) z&oRG`r)U0W{W&!H12ul79>tX+!LZX58xb|AQTXuEDe#4Tk3nQ7<1(x6l&71`OR*(d z*yRl!gJW;tIJbtB&9T1(%8`nAjy>uqioS3&?z`&8uYWrlzk0y0I6GzL-X`?Lz83dO zWj6-T+j6JvO;D9;Z5HP1Utzv1-0vA~l)k|zs&H9ok9qG$LgNo@bpe`#dC%fRjp5Mm zK$X6lPOfp+4E?}aC7!~zSyPhW%{J>iqokT*DnmLJf{SZyKYzl`5I(7qll$oJ_5lQAYJ@ENry1?@;?T=c-L^s?l_FKDKC;kK7 z`i}IDwecYLWA&9cm&Esu`>!)WKyN0V4_CC}WbN)`@ z8yvIU2C)5_n;XUfttXyFfpB?h_=!ab^veT>P)uD|(g1)XTBgRA?QHQCBDMN^kz#uQ z;O+^8#RH)3HDJb$b~XVc@Z9%b#oj(Y8X<^_pa_XDrt*$A&*2}!J#EihT3xNc%g2{i zcd5WT58-KxEpLDT&wLw$VCm5ssEW=ht4hG}FZ8z(*N+CLlvZ2g)D-Qlaab;G2wc9- zDH|0JK`wt0lFoUC83W=JhUo_+?WxR_iKxB?Df$&NM2+hl1jW|_HJ*`5XR0_FA!RMd z`6yT``|&tX@CTWnItTHXDOd_Vr{vXc^G@_-=WZ%eq0APK}Q*3HZ%zw84gkjetBNw~oE*9ZOUha&{ zA?~WZ^heYD_ame7NyBMb7Vl8+S3 z!wEiG8{&K>{)*jNabmWh|6ZVvO@J=?kYe3SC3#Fj^2cz?P-D3VnETdL*#mh!CR0qX zt2947Zj9$CJuI4IlCk(w*pCyIsK%PVjhPfrQYX{=|765bS;yI=_+aWw))0;ST2LuY z+5|e_&IM0yG55kfrxy?4&yR|o{P{s~3V+gz2jU0LJft1zua{M7uZ^CN-{OZEMgyd{ zPI3@%9J{F7)48{8-C~YV#0xzqf3p~72rsZ%U0DwNu|nWT=0DAUGTFFnCQW3PISXPw z%e*d%H+2!P7Cd^owfgP$jlkMF)UcuvrGvNRDWHJC4R9&>lMg^4lr%=9bLRYN4sgY% zUQelNj1XJUn~2own^Y%>Og4}nd1puN`B>T;20>7dQlYfqw+V5aC9 zn``)LfVWH*&^TnC&@Y=29@uqlwdSt{nks{}qOE2`KL=t+*P9?kK@WBKql1*KA1yek z!yh*y2L6-vZzOPd{$=3JL-=kFaNf7?H=RkPQQGE$-$#2mGifkXsBFf*lAziHTV{047QR7kChHr=P zmH2uG(vTlLHPdwtO;6`2(^D?y*CNiY9k4y+c0vWg?>T1WKEVD4uq_`tzfairGGSSD z;N%UYMqkFHAd?C%poe1e4ajS`J2yPe^!sWLo(87%{MJ6m(|}mTE_~Ejt7{-qG*8)x(lb|!1bOlPmY&D6A}tl_5pkm^T<1u!zFiWLhjT0nnikoz{3 zJI1iZ=#R^({c#!kt+==amr}u{LatAUr>9UWGl3-60vTjE3QLolaVC+c z(a#a~h8*Ly6Gf&M*O*04Qw6OT*|fS+(pI?TB8JALB~r-NJLW!58L`Fg#MJQpPe;L}Rbe-gf zmCEi}47@btF-AbO)&cF5^6Q!D&u-&nmNHxmz;oUsBiu@8hMtRGV$k--D zrx&2}dH2e2^T2hYH?(^CdaupiED0gc@8O3s-Js{%lor`}6|X4S$g$T2H$5%1F+0bK zq^1{90j9{|*mi2oZ-*PXtIPRTIO`r|5#5W~u2eq&vgljQW}MB4TK8*^U`ZqxmKx~* z8GSxRLc|<-3NeqUk*56l=xaR%815bv`G1~LH+`CI%bCgeJfTvyy2({F_{SSq+B)!RX0A0 z%#SfwL{}>NfZZN9vF~&Lq4*D?Xa(^%Z<}EC1o3q%)lN2o{{w{xs$HAsN+gt;pRORj zef$SM{ENc(*JFrpqW@s7zLl8U_~n|V#P6L%{F(p&x85y20~40xJNo-9zt+My-hZTA zVcY9JGUkoG`}M1FNQ8_?351C~!P)HLYlMaVtN&8>Lg1UQU%#C(i{d$E17qU$>q&2y zInc(MbdLA;3BGO7c{~yd%qNyBzUaL^2K?|RfFxghQAIk_rzecv8ZZSsc+mG5V2T37 z6d}x8(A+lBv&^@#ERU`xdNxa(P4r&nz_jR1{4&g&$H(zOb{rpk_LhYohbqRyGQ|f8 z_=TGkepd;88Nd%1(PR*FA}uE#+eCkgN2Un{qig#1{{*GfLSj^+vnHa`MnP(bXXW(s z?Gr%HfMa%?6ZD{t0v8&dWBv;>3dRfiwx5F}^n2*^njfoR=%`Ea*RoLgw=3P+o|{K(k}Y#LK55I`snCvr zk6JHynze=yvRc-kdP8b-awQ>Re8)L#!;ag;oU!A!^xlT$na6ReJe|5W@loe^reA97 zpVah;fU`*n{ZT}KACWJiO~D>>5f0ztjC)`V@qvs4y+Fqf?5^Q`o8loO_mt9jgbHxSyh7N<|m?QGeGO*jmyv@;< z3&cnGhH&2*vm;@~%rGwnYhcFAh-^R!*w4S+|MD<|B?N1$CtiLv;7}j`$gv|LHS0 zlOq(f?-cq!BaJ6iv&?k6ttH4hF;1#H1SNy*)%2EgHL6@H8Gn`Qn2GlukHUwQsUyCk%UYExj|yW}YH@^6o+R-KAg`9z*mf&;;r zNAP|qT1SzW)hO6sUVb~j&4p0z$8SGSSoZSU``9B)8JVwG^ zWN%XC;eHpbXE1H=_!P(_%$MIhf|&mE@a3HZI`)*M#RFdcZPuj zVGr@6&w;Ql@53@_@U!o8jI}ip(3Rn-}F$4mdjYDKEN<1M}~ zG%Shc#N~LF_4+jJzUv`;eR6ARtLPs@-u&n)AziBn_pxHaaCl@ZPDBA1x z9B9||i&`v)rFCc6f-Zj_X*d5N#T01(1)TM69>>A_q`g)>A^K_lK09smK~j`B#my##Vf-+6P~M$E*>xU$cFlKh%CL zZMz&TuxTm6`H}}!%ffpAABnQkS$qlHfiPG2cpWNA62cj^UrQrbppnt{Eq$b798Sk# z%L~(fHZLcMzJVr1o6&~oKRDl1PQf&ii+gl(aRD9nTUQSc@42=$W}lAXf8zfcfBk_( z{Gl4An_pF+5B`6^U(I)9u&W{EIdfR|eOfG5%Pu%iv6$x$a0}UMyiI@bG6dV&`HGi$ zLJ||4@Uq2M=UaUB7D)cB{&ya{$G(j8t{xZt2YcWh%ie{4Xe0AHp}xsKss{CKk8c-v zI~!Jnf?{^{-Q!Fjq^(SZyrA|>8)0()Nklg$JB)Jd{g1IT=c7H$JD>@%-Sgrz-iVC2 z?~c4UTef6wfQmL}pb|L6q>J~S=)aGN&)!kT!beZ2=Ib)l+-7G^z-MAY#?8o>fY0B7 zPuGvWD?T^bRrI6J!9T}0`&Q!f3p;ZHKARFUj_8ZehrlQNo$=WML3s53`h7w*og;zI zvv%eLeB22cUq!|Q`W#Q?zHfi2_fJH`QVN)(1hVE|4Zg?ipkRY#H^4mTDW8Q`ERtWr zXC6O?&z@d;B!#J?`FSSToM|KYK@pqZ8RIw#-)HYvLmcPD!GM{-Oz(hH&w=D~!K(~X zm<#r0_p*4`tP4>SKWq8<7RDYwrsBicQV2uy5I8 zOnOK>qT#>N8J(|2in3=xUgbcp@ZR=x^Ea3WNOKAr&lME;G_>C_R7}kKRwsFWqV52U z9~7O9!X3CK6!&OfQ3@$_?Zi-tJwdAIUm}`!>*J>Eg!(>*Q2t-*yEVSP?Io;lQs4SQ zh(20?>4D#a^L#K_SUDyJEVzuf~u^|GX>MkCP>Lrc%Hh0^NySg z<>ye+wDW`W4qL&W;reCfIL#I{o`_0(BFP@qbJiCG=~l|%J-_L(T_y!HN^Nr&dASMN-2&p zdt?y^oQLeWG@D?3JKP)&$q!n#d5+I-X(*!;OqO2YGOxNAEk-`7XIKjt7|2U&w7R+j ze&e6TyN3qLGT9(XgNoNlsx-Xwaa{Crddkg8n>7*|yfNW`)7pv^-?FN>eOXVrZZ`P* zq*se)J;0=*ATX7~@IT!Q7r|L+vzHl`f>*{G#Njv&g}g`^n%h;<>m&UFnc|*JSY`ah zeiae^fbd^P#RHh;A78UfO{f%cWQ0&k7E%~8pI?{ccq$uTKDf5_@*m1CWGs2A8d*Xq z{6Yb%EJG~OXp!Ao&t%(`=Au$#2y20-|A-~5D*8R1(LaT8)AAJXbqyI0qlf=(mEsA8 z(JV+~EADUe$=%HAJgU{00yf49S1@Za;RT)CJavGa&KTBP+v!4x-o7g6e1oY;J;98D zI(8C3bPia?nNK5E$oT~EL+uu1U4ZK6v&rUZtfk5YuQmN-3n3eUK};IPi?*6mn#ik~ z{}ObKF^o8&iquyi!dcZ${yJTq_(|gZoN2;8Ya#R5(~%4m>i<3hj}FA>xot7vcY0DU zRP;L@P_x;)zSVeS;m2^pk#_r{N%@;W)9B8<_Ql55cxO5?(SUn!7ovn{9A~woDnvGPip@Mc8BAzbwA}YVQpP&z` zu&`J8t@l14H%YI?q8msrH-MXWyo8qT^PKSJ$#>m!>yk8d)ZS-t{tG?EoSSZ7|GCl; zZBBlXql%g@ugeY9aKASF1W;aGZQ*ue#hHo~D!g3Nz}G#)oM>3Eq$*TWgh)row}C(S z7xGbp@n6WdRt0cH(Qt-9hmfxsfcY;};wET3uS;eMl~nQvkck+&w8#8DdM#KoBR*;X zqvSc<_}I_>!Hn)uNv?vMqkdeaFA#2C(lGuM49pN7SKNDtuoUx|zqu2PG}?`kG{{0J zSW;@Ud1_q7Uoc}yDI^~<3ev$6Zg&a9p>Y|9AfxZDO6T;k2C*8&_Tn6oUIH&fl9esY zKz<0Gp7e!obfxZFjd(-;;+fr380Y=OC)YA1PsePSE|0<5Y-tfI+GNQO2x@VIJB3I9 z_{JBcd3pFWo6xU)%P(~{@nT}r17#4pQPa{C^*ssS(LdiT?{(Jh9)%78cbrcsyVi(2 zz;=yXr;&;lNi+D1t}r(v-FLvL)wd3mLL*t|pS^_!*9?b4+J8_kzhw!X>4NaSUEx3t zd!K)E6J!9;PQA-QpV155D$*@A@G%5ylLs~|a|+z9_11-RkOhO|+(vXln%?aTRh-#@ zpp#jX_}o(JEI=fB7otE?t5M#J&f9E}RckmO=$LK~kfD)mlu@lIq%18N9vi&e$>tODsI zCVrg_ad~>!NT+KaqW(LT+pP$!9qI3?S7!bXL#32XdnA3a% z1xX(5wG;52U32JcebbyO*H3Zn5PGyISM%RAz=3CzHUG8vg{F|rgR_f}2JIpHEDts) zaWFCH+#JkU!|pfkbn?d5mylV15Ar;x_dG!b<{RU3CvW$@kFf3*TU!ATC~WiYByvy- zQel4sB2KeNTI5|@Gt>3cvo-(uC{YM-ORzzP$H6+Gw`2wjq{_X|Xu$^bvL4Rgd={>u z4wlgOFDvM52|6W%zLEBiRY`hVa7KmCtSH3;yjO|p!0tVpa2NT*v5|8Y5XT8!489YMVwP_fAn2@Grc8BV&UwHXBJkS1 zhE?uOe(T#Uf@$^Dkn#%|=M$ue`f;8F)G5IP^{tCoA(0MThEm{H&P|wv@E6phiCd`m zTpacGO%>|-7qXS`BOpnHUEy4UPjl$XBuCAK)O)f#f4C6ao$4;J$*^3^R2&va#- zxx+ZW<#rH#pQrqdO$bDf^Q}oYyxoZSg$@;XMGLqtJim_&0eGqY-SG4dp6uDJ&7}^nXCeqm4PijP{iu4G7hdp#T$S zq{(3_R1ph}vOAX39Bhq);EZOyO?uMTQnB|LW888aj@)JOqwsiS2AZW--HI(g zNMy@c-yV4uOBXtz0n;o}Um;$ky>_uQKs<2a+rk^grIUw~Nh}e4{2i*34`Lq@!@eN0 z69J3g^iUkL{SFl@B$txSzBmRdQ;AA3az2%fc1M1GP=LzzS0ovmXChcY^z|_9>TQwB zRTMcZCR#~A_Dc)0@JxjN>O<0_=b=jTDMUiak{-PXBZVE=PrTDo-loL65Yp!D@;KhU z6wL++u0hmaI1!ka#6iC8SdjAsvdkC>kZ+BH-2F#~<1fq-`72ry8=??V-|@Y&F(kQC1E`j9SHpx^SSogN%}@@ zMJxKE=l$U2xZu@m)_k4o`K7ocRqum!*r16O$K6=H#N6LL)AufQON zNl)-MNnSm2ct5zh3Y%!q#gUfkLjmGq30u**a-Rkp{RJ5@z#{=L2{Tlw_L;9QCl6?T zIx#$z4WST;z)eU8QN2jP6#>C-;i_AZMYxI=%4#cwOCk)D_l+U(Em>^Q^Bq=p5yql5 zOKA1^_+Wmbza$a;*j(}Zr_hAdxQy%#HiN(9@14smOrBSm2+J^RL3Vy=)z5zSr&`04 z5cc;bcqb}m04W@i10(}ZN!

daGP_DRSznq{ypa0ozT(zZ70gHu~cd(Vs@poa&zY z3jp5Vo6&hBu2M}^ioxKB_)w`e{qlfbY$&sd-z*hd zN8rOQ=;S!+<%JkAvxv<}tVzw+mVJs@xmW{pS7I=8!G;NEocTr*rhAz?LAkF$8^E6c zD&A`%jK$($%vyNo0q83WYy2{9;gcLR^fGu0nS<4EC*_i(n}UzaEk~PL$uWq@%UZ^b ztisX^O(sU@^B(h22*TjVgtb=#qvSo+_>6x2gTC0Rh0WbzkFva{WwU~EaI)nCV*LeV?tbt zYy`{%_GEb-YNxU?lvjnym6f4^oW_5lhSe&7&{{iGuDB0YhK87xptbdgvynfp*)w8F;t$z#j8DIPl;1hCjVaO z{wp;x!Ym3j49CM%Jbj{^$ybl*1vz3)2bYC3! z!T$~X#6@x7_YAPW4~hf-JAgNYz`mWh`8LgSyCoQ9Vr-79Y{6t{%az6us!2RUI0^vm zmf?P5Y1e>Yz2k2(94J|N)I+uHUc2%W;wnFhZ7X-#l*{(^s(33@ZRZ;0F5i9Z|K#Fd z{TOeB4OP}d>b83z%a^(lSeIB3;?CNESirP<3jJ2zP?DbMvC zNY~0X1d0oP95+hk6!SwXU$rl#6boluJ(1%X>}wg|+j$tl zV7c3_-@#eRQdqlx2TI-U=8YmD#hbzMQafY3xhceq(@U{pKt^S5DnF{Z=?P@?&8~E6 z4SpaPl;L0lyg9B7XAoeyn`1Rp9y3anR~QYPA;45lte1PRsKa|Qpr>&Pml)9M?@;ov zLFA$Qg*+@ykcZPx!I5G8fQW0Xk3(vh$s?*<-x}q-Lo-284ktUt3Ce?yq7l6?8g>9B z-_CBmVKH%oTx-UeZ^*4X70-nv9?j*YUjAz#FClGGtJzu%CISb&sSTJ-035l1(mJM* z$|M5eA|vezYFi`;%5fH<)IoxpNJc6bzKM}MrNpI@B!=}P^h_teGjr}ypgn`k z7&MWOkl(1UCdJDOtP#F8RhOY2NoS%27dgFyjR&(iWXI+$O7#v6R=wyjGTw7ZOo4B0 znpLDq;BA7uQsdF7m*+)pQd(;fk@5D&ocNj<#QuV~jE@~7WAtHUtVTv_{YbG3xT*ac zDR7rF`wC`P`W5<@M5~gsj_2P6%qy#FfJ+V$=#CeQxHi;rK z8WFhe>c@!cGoJ#T1Vj7ahhVSy82*C`bHE~G*y*n%ITp_4#FoM+@@gn0*9w7?2U`-M zXA@@NNIP8*_r><#a${if2qq83js}MHXv{ENGBBH}r@#s^!yY`fvam=pFdH*4`U6Dc zv~vnm7}t=(Aq~Vv;bNH@4tD5kP>1$f^N**XxgGS!D+f!~<5wH85+qKymq8n>u4(^M z@6bCPH1T0$pZ9B+IT(WGzu*IF4xNZU;g7-OPM6w4VHb%4qqI;ni;BjuxmcDh5nLkDmZftl@g0|A{ zxP#bBj6uQD0WuBa;y%)*^Cgz?oT-m=1V<+g7{nPDps6C8A*5m7_Zlbz1CsPXZO&vz z^ckB*3y@3X+{YF@-ixEhFfdmx^>OeO7JQdKgQ91>c?={^*=|`q*pROQmRUfb{7&<6h?j+>2xGHai_G~grxLfj7&#+X`&@6<^kF-+`ay|!MODM{gQnE$vMw%ra z)%~NAP7$<}oEy2WUpjP+=3I1U?Jfs)<$Q+*P9J1AA1JsJxNsXC^4r;5#q>i?Y~Fdk zKkXDe;*3!9bVPavHQ$1tsfDp^S-dpML^l)h&h7wyl=Gvj_7LxfY`%~mCpG)=L->e= zHMRK$e0q27ZEcJJvg9x8&u>XYu2LZ_Bl3#b0=3CAZEP`#toc7iwyC#-Bs+pI z4Zn-O6gHu{4*aF%BviKzf1%1FWa2LwHB`47e<>G2b=~+&5|Q4;>>kbk2|kP2Ii9PF zNd}LHO$I*|BcaCo<#(@;)u;+t4J&Ltdf}Z&QrNOh#1<#lT-(`hJ@z3&0j=>3$ASw<$+hcI9%6Q^J-LVo@epJvOwO38@V&(v$c zu;qA)%*yT1Z)HQhaJx4>dVmD@Vhw-Zki44i|0@T8W*f^YDIo~oxf>hMUtopZE_1~-N zrzz5WAgHF2jU|xRB~_3uW-{lhl9|T@bKodouCT!DyOCgMIWd?08DM-(!0DKfGN!A( zi$}<5K|1UOB-^dSyiI_u1~7uodj{%O$?#sU5=Q2sW0y8mf_Ecs@rsG%o-;%cgla4;lFyOR`^=u}L zwK)HQIg#q6XM%4=YO=?*G^q)i+{xRZj==*7Su+e2L)J{H`L7~3^oJvknFD8?#J6{4 zrJ;A2kxsZ?Y_##^-nI3{%g$fH`D-y@2xM&S5u^p~A1DR+s{Ai8W0=V{HnRkqEQQTn zWK&-1T-=bodD6ltb-B=8lkl6Hzwd0Bi4P2%-eEWcob14S8)<*9jZjwm4i22YTy(@O zI~U#M`8x`U%j6fZ%p>PhIO5@=RYrRfUSrYu7Ov(AQgd{!-OOb9j{Fe>=0J?CcVs?0 zDt+^yJP3WSj*Svr`W4tWBR%drr?7kKc=f%)3HqZOdn)tvFG1MGtw-;P9KiJzbG}aU zJaY{4R-vrO3*irRz1=H4m3TBeuKqj-fk&hF+4DF2eKSFzY;)?@7V_7jJCZyGrlUam6W_0B`tkmb*4bR7B?w00eD>Y zYy}U;xkPh``9CZCwqS2kh@_j}QC;P=8-&uO?LyN*&EI%>Bf>$Avg z*5VI<^PSJyRkDZ$;l10{f>uv9Z$LT-ZJw!+P^+F+s9($Uj-{+9`j+y4^6j2!EO22} z<}im43%{$8;f2_-1jTrTA8lmrRIacF*35P~yl0wDWE5QRnn)%qg3Y1RT!A8ZaalaL zt`oHkdr6i-TfL)=qrm?05d6l^X;`mhNGvi~vdwwmd-%F?lwt;nHBL09yNuf_u*+Ft zTv-{|491*@k4dqw>o4cBd6>Ag((Yiuf!8>E2L>W@6*7+lPL*84X!TgA zM6yR!Zy01mHdj`Q6B03Y^WK>;)$w?E9A!YX~>!N<%kXe)J!W+D3~WkG4mI8DVWMGML54Raz3UHj6d>gyHKja7+_2v1!AI=mB!dg z3=Pl`ACvHZg)x?-tpd3<|7a-4`a8Z>XZ~mUA!HgCEiAtOBrXe90a7vfQ44eu=!LaC zoJlYNj??NFBF48d$=8}{lpLlB<4g2kaU%-i`r-k>IS!nC$K1qPr_Xp3jdg7Kx9{I~ zd8Q~9af6Pd%u!#W&7e0Xsw&^cMRgkQ2N_R) z*Rl*^co!lZ$>PG+a|SPS`$&)>hhU=o+$ajl6x!qY*tgM%YO2HpEtg|!fu9XVD@VAE zpBJ`i<=tm?3mPXw+8bl@3i0|9o|k~yZOC57zLieR|2#kCO=8^Gh-(9$2Q7UceyvLm z5V`O@kJrwg>bV8YyiP4%myki#@;XhH*TDzK#j^H}Uv-0gF(rF-V)Mm_eyz{OM+{xQ z5BJ-3yMSgNPDNrQ{exou$+D-edQC_f&$QZZh8e?-Hz+(EwAR|jU!zd>c zxj9S@V}n!1#}u*XWr$*cOLsU{(q~A&QJ-^iyr73fk87?2%Yc__pwYst>2H{b$$|e6 zY_x*bviBq3?9}8?LyIJn?XH1Lv!sDmKO4kedI5+4Y(#4;L5+QDyA-t<0)ad^iv1%S zlEi-2qtGRl>u&EZrPjbstoe)0{YG^Crk&0mx=jeF7eNaAuvXp|G=Mwve%}kgYWmsooB{3^{aZ&i zbTKUbLc|v5jX@3ToyeMBiQjO(bDMhIvtQ|WxxVN4f*M(=tyuc{yNMXA66Do&Hrnt6+z!qh{X0+XaH075@)Dn z2JJ7%?f_ZL@2Tu1xVrF6{P#L5zzcSQMruxZJKiMe%W~j`izH$UwSuVfwHy3USqixAREj;1=;as;L za(Z`hoM9Dz!0GMk>QHBvLS-{l`I+)lU&9~#Gu-fyuVe`4%hZpDKahz|UOA1<9O_3l zbt=nUs^V$xH}^p(g-XUHZ^DmnF3Pwe4%$j4AabH0Su#oeOuqTq=Sy&k3t2FxIF58* zBg66+%lRi6=l$3$eM@vUGmZWyY6NTb7sGD{T`r>F6-yL2;snpH(AkkJWa{b&o00#3 z*F;7}CZWSAuvja*`y!ULHh~Q}bEpO02H}(#iB3I-9THsIkh}=#M9G7qD zANal*1htnu4i!rCpMkDd<&w1e>!D?`x+#g`TV}5XcLT*@WKgZA$hsb7&8m$`8Q$P({c@jjyky;0xlt}b8^?TW{-zvyyA!wqJ-4NbD-C^8uhtAhjRQUv zY(ee6WL+u>wLX264yS~%yoRqzAIr;U@Kq6+2SUUN#&mn$!?W4EhLdPa21Hx>O`3-x z**kyYK!WPS2rtLP_0-9jqYr^IjSC^RDN}KCb0>TDjF9Sp8@!`ePK-V zYV@Ss8REi%qX0&@^ypcb9SvvK&d0^nLBo!0@8tj&tSLW2(#J^hsk>@QaW}xTP&Jhu zqt(0skE~J`^X$L`gzm~RJCF(#vZ5PrZXDCR>6rC31rqCP{&TFpr;!v_-!J0oTZcDF z6YHBCSD*bpNh!LM3Ngq~ie(|N(fqH24E%n>P1iYaqJ|3f5K)Df!%jqMrKa}Ubq@H& z{*DQ3UHK@4j5!r(j40h| zdmO0QlRRr(XrPejLG>&3u)f~9TCEn|H%?k2%d4PA!bybDrrmc)z7!_oB`nbK9){pS zpki%|2OGHG(KekEd&;T(Nn+*e-Y6O3lbU)v-2_`gD% zNDu8kRlnS-9N33!zHidBdv5_!p@Gb5jK)rOvOWfDp_>_5mYT}g68Mpg}rI1 zFM3&8s4SCRgboUoWwR6YvMi%yRH!V6vP3U)86}mXATcF3aycplv619Ct+q$Rjem)d zJ4r;(Z;>9khgcm*_Dl_lCMBY&wny$ap36(n6t~REsQsLr;^Q4`|3tL3S8PI&=kckm za6la7d!LJGwVzlr3g2z9Z`9-co>5YO$iE}9QQ4F_%++gv$dia+hFwNU9x~AW92!WQ zo7`Tk`UB?@2S%pF!}Bb&sfCmYNI^qE8124vU=_I*J!v!XZ&=9%$N~5uG+P4#b8vvN zM5-)9?!#lpS@t@)p9cptY7g=Um^4_aqJ-FJoptT0QI1 z+C#j1yO~~Hp6%F&m0GTqTAT=bpNy`>J}v9p!TOdpZ^qBe#VE$OG)ln03=kl?FtE9~ zomn2PJ(SK00yiL9(0lF^YGrEi1tFPdj2I4CD!A=HQVch%KZkJNo1SUM0}TQ2d*ssF z#0^J>yc<6k+S4%R5<3%o7)v)%IA2su3HlU$axmqgYxHhW%*^&y=#`8X&t~I%ZoG3f zxD+Ii3Q|=C^zdN?2XWh?F^stqE9fec3Ybj`JQ7#IWLCiFh!3#>@}Kb0L8AlT0~O5F zPNd6rKet6B{Q;!wt7H!0>FwWG@vMFwlA1Z=MEDSk`MoX_7GHo1_<0z+BO(o~Y1({# zDMx4&oI-N?b+7;de!Hl*-SG-KcZ z)NRMgc=%uU7asu=KsS;7#ff)dG{cEWVP@TjtGB^Kond~p63r6pbc-j)cvx2Gcs8zZ zuXkYdRBSJvVm#J}{^2I0GC*Sn>@c^Z6t)(Juo>7w>oGSX!rpVV@kRSNeee!pUR{}U zl%2#f|4ZrY@JU5V8WStl)QL9X!U!_X&FX7>{uQh2Yg+@rSF;NTD z;_vA+#cLWWk&yN82Dr^j{YL-W(bP zCJ7~@famS#Cygj0iyV8u(Q2>QsnXGaNFzppDzqyZ<)RI3102D-l3tw`xdRMAe>wC! z_*i-MbK7wXm>`p_+<6-guXgJp&n-A#(T&CHFgo#jQz0tN)s))3^DpLNvSe_cFlGx* zc*>KOQtCJ_j%CJX>O7XNXKC(L_HHm*TyL%5re#CmNyBojj(iqApcp8^55K$}UQ%?h zVh@wF#P(`nOS{C+06TIS+GZpN9v{8mB5hYflwTPA4aS&4R-fQp?6|7F_$Ck^G#15K=LiTnz_5kf`!xb|7%qk+Y zL-mKnAfQq<#(_1!CtFN%AAhZJaIR{(+M_)W6{zwt%KX?yOJjfDAe)2IpXM{mK=o6k zQI<XSgIS zT#_ChpuKik6&7`qj4`e`uu~d_48V3TUIvLg4)JGPBFE_)8HC@j=krdtb4gE6l4ECYB7j=1{A%x2*J)$muLS6;VM^kZOD=8aBM$V3+_mAXji-qTZD(n>K-kv{t*D| z!aJ-(btCN@sD1|>Zme{g&b;wf&+)#`l9p~l$oCB_STD0?cRCK~Pj=|@9LNiCGg0&Z z81doug*;-hG(G>uTbHC?fD${Cw2|-V^PI>AbD8_X8*gpighc331`Gk6yTYqF-wChN z=cOV8zSeEUDmLtU8uaPdxV=5><9Z7xSf|Xo9Ee6SeNNKDTeoy|;%isu=B};zEx{LL z%QraR)x^BDudwX;j&*QbJ z7_6UoG3eq;N2?Hqbk}_u66PLWF8KoJSfzD+}!QnaFg!TYtvou(9_1e5~X!;`s`0HC)g}t6h-Z#Ry8o8sm<|SQy4e@DloJMSSu3h?}Z=xcr0ZWGFTZO=OzX7PDbAF zlfzk2s0yxH+iF*n!R1IvSBGK>+{aAL!UQvsL_<~8THr%UvHBL|rGmZ%UpBMUoCRj7 zJTH-1B5xr_S4WR4;CK-}!YLlKV|#n&0@qwXFy_inpk48*7PtbL&h z)|>I-a6pNSWUVo>usMSZ<$!dI6nZ6cNbBR;72dNX8`ZNt7(;g7{~JN{_6lg~cv_g9 zrmx3ak9o#}UlGN$XyH4We=8GPq8VzvH@}`qh3l}Hig+^Q0a)SJBwaYgHPPD&U;q+X zP9*m%aRXu2$W}z>BBI8M;G`{w_7T@)#c{10nS`N@xSduUbR9hmzB_%G;B&O?`k>I>`$EK5U@WZeP`uLlfIzOU?SO@*{V zGktBTLYe2fI`p^j71zm8%=3w()Qgv9~vgHHf>UBA%+vBw(4 z>V>6vht^EsHv>1l&Iq@J4|ST_J)$ z5M?A^G35Vls3iEQG>6=VWNgLbe|Hp*Ubg@jn}65}wngeVrmBPQv7mmhIPr3-OR#2FVm0c(L(N}umC zSp-w_0@pSP6(Dqgq29R~F&zXldUCiVCp_O(K-eX@2o0A|9zyKPaETjPITeLVN)h4| z6)vejNT#82GGoo-jMW>($!Z=au2>Z3ufS*e zJkDU+y+1?aFqL954K8<8<3rybPMHJV#8g62ftwzdyVy-gcH_{zIBM{b z(cl^CQ{NDEmpBnMBClg5AhP~&RzrA129$yctkEf!tK%1t%#7b0nuzJ3xu3L z;VEYwBl9;?D`-p8@8?9zDRzw(xEQP}6aI3WS=pelU$KE-cmQt)B7!^+9o&c^u|B*m z+>YKE#U~y&un~Ug`40CC^w(-tz6n1a?wN?#q#~YXL`@ApEJj&}Q#13$?F~bW!6qiE zSmqA5cdQMs>sY&eRk&q)`}URgeW}wfvn9!f3`&xY;+g0zATb|>I@$rA0em;v-x8Rs zSW$6gbg(sE(H_5WHR|#UQ=`I_2$HKMXx-8}ZKPf64-;!$Y}dko4TD&4gmlbR!$Xad z=m63$fw=gR(S>%hy{KCKg{%Zc*cm$@GOJJIloj}F)(?Vy7oGNk8H+gc&|AS-xXHU0 zJx*bxy*2_@mumhTgkg9t=8K)0|6HcjpO3%tXs71C^LRw~E`}u+)k}xtB3fvp@8Giq zVEM5XDy=*N*Kk`3`@%}vvFpx(n*RnywRC)BMRxoPxC)D^HA2U_?O%k=?H{Th+xkvd z7!qEMe(m15s2t!F2SaI9qYRJ;Ah=kX7k1Wltn26lBb-%Fbz_b9Lvkz%$PiE%cWeZ} zcL5;0A>ssb_K;EdVC2YHka(8D*OrD^zl!XFkcT2Ba{A(Nid+G{_zdWzOJpF%M{$x+ zu`r!fyuyh(z5~%pn6DiKSl78rtG|$6D?2_!Ng~;O%+#(Jrj9PJ>;UJ*1FN%|3jTomD2 zU-Y}Mo8o&lDe0zgKP;hf2&IC5fIpKu*5i9VQ~Z(veWgZUZ!~kGnTgSEPF_~8u{e_D z%aQ^Ml+EmhYm ztZS|i3z;l=ZV8#WLRw%VBgjhIgWN)!7{L}R5JH#*uC)npg#>;T8B1HF3J4t%(+FIe z9ixQ>T-t1jL92-|S-2jEvmhI~4PpwdU=5&jv#Lm%nm7Td7Ncp2X-}&H!Xtgt*yw%* ztQxGg%a0}A=L&zIKw_FzgVpxLG`7570jmZffHgnGYG7BR0J8`W5cu|1OiQGJ#99Ku z;&w%Bl(1<03Ja?4MWofMqkJbw$@)%)4FCkfC5x zM>gMfQLzFZFCe$AAZz!+yA84scr^lbKUoy+jW!O*2B zDU~@_bYZRg2h@PXT(-(DKfsMy!&%F)JShCeOKnL2TIBZ&>NU$nZNy|qx`$I5mB!G5 z51HiZ=cgjt-1f!x2*9(8D2fFzRu!Ta=I=ua3+N#P)*`@d$*}YFm|ik6>|ZSOR@iqe z7eI0TD}w6*uAk{s;9R)z%EIX? znl68j<6kwO0S484yetkVWFzRiil2}|UEdJ{N^Vj>*YyGo11QHwdo+cA8!f#Cvv9bj z6E-(?>*r{iH8k|K!HmC!p>@)3*ST3JLe7W70h^+8nX>!o}+I$;&(*4I@FN>L^#ke^rRC%mR@I! zaE48c(1usoD=RxzLAQ$W!)jI+;|I#Rcz&RK+P)ItSdCq%VuoFyVrFmVIW_TlJEE*o zw8HhB=>4r*!t1v0?u^D;F1LRHz#Rl^ts>_&;sfTs6C>O$hW*~S+Q|)D_N0*@;e|SNUN`ygR#KP1`+meu3hCww-w)O;5tfn&!D zl41KneXff-Z>L{=*o}C1xqge2YI7fZaI@HhGeKFR(JVIMU2rCaS@;uBSNG8z3?%); z>HZe{Wdo|HR1TqGxS6)T6=LiA5QgD4-6w|O_GTJ}mng&VO1MP%Xb#r=MO2kj7N}82 z0k2RirA`KUgMQ$OTezG7d{YI%x3vJLt|2PL0`+5tcS1lnsgx><;qDnup>R_)2RPbRCTa~oLAyD6U}>{xDK;q`X0An8r1m#+ z(JY4dG%!Bz0&Ogzq3;N$Ey6RLFf=;DkBV)0RaN0y?;eY3Vw_-&NsD7FzEGxPU~GOu zv8${Ez?-xnM>6Hw3!&}Xwqj*aksQt^ENk%v%n-8{cX_wgu6_aZ5o;0+g{3Uh7Jl>C4fwwr77h%9@CFRg1WE!bvGKT_9lxRKjo;=~dX}-44v99;*Sd*=si|SL+3tF4l)PV5(+K zkzeA_jJ+Pmu1I(t&7|BP!K|WYr11J3(XOpp{r|(;+rU>oh58C+Vb}q=tHxfN7;|TCn1XmUb8(re!)*Z-A*xn{X50c(^rvz}Bg@+SbQ$T3b-5 zZ>2OLG2u-`w0e&~c+uK>i6Tk`d_kV?Z|`%H8^k{U=kuS>6Xl+B_RHF9uf5jVYrn0% zMnLF${!xntk4cfJ=n!%pjzSrc;_h1)x&F(4_>3q2UM3 z7WzxNl^nW?NBh{?Ix;!ipV~uQ#E|q>BL$%_-D(8H%4~3JrND)fcWX5txgw#G4Z3rC zXkO9JiiG+*W3Y(}b6>%I=gGn^GvPsThs4XaUhba=D_BXWfqcl99wRFWr3~gqmJf1g z@G0^57( zMUPOYYO!s-S!^rNsk#3|;bV5Ox^?)yR=4^isdrf2dbfsM_62A%tbFh@)Gmb>_8TWw z$xI-H)6@5%3wH&Bn?wHbZ&bd_N0p>=)8HoedsjeDCIO!*Tn`C4R%+&1=CZ8pjlpf^ zyLAuq=T)SKM$!$rA&wj6-wzYs6>LtY7LhY74MvQ^mYi1Pt-^9FZ{?O%c`NhHiUD*l zfrVHb=3f+ud7f5-SWXrfU%MDUCPOX(C+>OL&J^J4NqE9;%hjJp-)w3**$!X9hDkf_8fjZ4W%GGS>;4=4LK67(=Q*pxe>x?6RUA0^3N z&7}{R>WAIu_df_fOKEP({Ug&pbPgmsQQgi{qHvBOUw~D%304CBffH}g^Q1XHZowN= zDMtD^!CWe|Hn`lwX6pCKdgM%l*?VPuiyh52Yo28NHiOasf}i^+6fpd1*C)0@J$hJa zQ-7_o@5L=O92G$&X9?w?#rK9VG15OUQ|d>M8}Tob)ryrd_FMh9Q*83u!|B+M6@eYr z#)Ib4gNqXSBRzY@r#ns+7}|}Vh+wVHP~NtGm7POhc{D0PU@RninI%-TFHxWv{iU@ zQtP1d{{|`dr^n}|9(6+d1dI$~Q#s}F$u^caceOssV&**mn~VLWd~;q-1tEj;>|RLr zP0jZXc)K8(Xk*7O{^>#cwhFkf_zo1tZcO&mDXF$QD87^LIbA_V`!*71HUzhs7qmst z(~!+<8r*-~^Sd&c_NU3*d3?Y;Nyv)0z+s|64ZppQkoF!yU{Oyl;A5P%(_w<+EiwP} z+U~9a3!emLZ8m$|0bKx<1ZTU$R5%ZfoLAEo(0)kcAKC>Ax8p7{2TMlR;1oTbKQXg#;M^@r*ZY;cI-Qq;tv~7K$h&@8{V64$0SM(+O?5kq;b9u z8&R!}CE`zpw6~cTRj9im!{lD>y5}?PS}%f;2h58~XE;)!mJzH}k0Tzwi>_vs89ZyW z@FQ{OWp%aN^G8qJWo-np6QGX_tw~=D+O?%-MT+KMkg@6(ZZ2*>xD>J|ij&18+43WSwl)p^wVO*~(EeL?9vH}Bj;X^TwWO&WrrF0ZH;$l#hrl(W{Q zRzTq3ngmw+6-|n6R=L47Q_c{Gb^sD@FEr^d^P?o;$UGZASJ(*RK@ zK<;o#KEGDX)vJDcN8aGJvjv%p^IZ`d#{kRS6a$mrfGmL+aU06Sm zdm8&kC$Z@XK6t;`JTQ-hMV?gb{GLCKk$Uz!ekh%gI(j_$5g#oEyT8D9&x_;JrS0wg zl3H1Y%OtT*ZE$vEe?#xWS5hD!;e6S=ajlO4Wxl)G_D2ybp;fli3hi7(@1{6*P}=r~ zLTBM5WV~-H1({J^h~&4}eM}b?A{k`a1u)NFb(6vG&Ev^$dhDiyWv4uWoeZ zCYHnMePU|z}K&cuNED;Bg;=Sb-Zh& zj&7%R^0L2Vzq|UWTp8~n!rk{4A{**kSXavi%jOnzX^LNtVdUGPdC2&;*I*K4-_`2Zp*&G$Fnd`EM~H#uyV~nTnP%u$uBP&1D?bzC3h_ zJ)|0(l3ryNoY<^|o_I*uFO?|*vJL_32$23dbs`brg4MaaC_MOy63Q6db=|$W7J;|o z_M=~!7N1WVt9z5^UL$Yw3$*Vd8h-wJY2W`2c^lCZNE^Lk$gV%7_2)~M&mZS@&NZ!% zCP?NrdQQ%jOt*3i3WS#vhF%rf-!j8QPgTLc{E*8IxISiE^j#Tle6I{shcj%&TuAVb zp(4N98&<);mh2a7)|P_uGz3cokCAY*hI+Y9fE4bZ|MD~>EatD#;Q;Q-(1!K7{*?Lt zmy_x8u7(UZxHfCOq&InqU*g}`24&jc(8;&foPVP%3lll8L=mL~4=j;2s6X#U@y@`K z73PZ!_*KB#z%C7)RkYs1kp*-AUh1Vryodjc6HOm7=WUzVF36o>c7B5oGj4ML=EM`E zq9ciBlV8^1F1KSh5Ni()jm188A6Rdq-*DIWz=d*c-kSA}HeQf?gu}cKwD+4>&ITO4 zf-PBCsUbY%(}1i3r2D{`O4at})m+^G=(aa6NH%wDPd3#aZhLcL>v>&6pE4!=z^1w& z`PW3AOBCia<1BamhUL>a#iY{R2Y6$L=M%tiJ3Ell;X4F6{su;(Rxv^08Eso_HmW-5 zHD+`D^Yp~o?TuJ1$Ka||pS{7?eW3Uf(wj~HRH&@+8qQvw!Q1HurKJK!*a2<8=>YeB z6QYrW`+&ih{ZgGjQwvOtleG45?aR33J1cju1`8%g8%O(N4X?OM@1in4t+3cRD%Cf4 z75R?LC3713F%uo>w}%DBxXa!ki;n627;sRxGIxo()Q_5L6S({C@AxXLayNBU!xmO~ z_eE6sG!mYKj&A4QK{U~_qmdU|ENdoz%SYI>;c=GiXviOgw%JZWc1Wr{V@XQrJZz^c&jSipMIKzUYu8GEi0-BRga z67|3CFkafvF(BB+du8Zc#ia(K-ZB4+4)NX_RZsT3F}9({P2nQiOl+w2@zrgbDc?q$ z3`mos>JL4~#Dp7m6E4<2W(91i(%c_%SU8(3dM#6WQ7xS&aDC3E-n-QCp7g&IO*d}SiG(jk^E5gG zLOu95rT?EWTo)Nl0`Yh zsnN6T(-EftLczz+oQI=@)JxpR(K?y1&j2d>Rlq`-;C#L_j^4(xsv~CYeQW( z^`t*L1~+s?-KposK2!vO+xIJD)wcExdeT6`_){v7g0q9F7B5o>$hXaQCi->uiU}Ut zB0C|(q?cf`Gdo;Z3eS&+{wsbe(vXWGZ1SIJKfc(QqV#)BY5PJt(5giv;Pow~t_>sEw9B;&V4an(4x_PBR!$TeZ~M3GFx+~|TYkav2z z@nw}D+180KCz}WGR9Z`98D@bFP}x5i!74H=L)OaoF6zVCMjGu~>ZqvK&E1>MYxvY@R_s%JQb7N|>YkoP9TFbq$02U-cV%E}%ZdOU=myXdnV+eYz) z^@D$q5M-k$`+j1eSnWVj$wOcLM(y^2gj4e%cUvT)UFH!>=+V?=@smF`@Dp=$SnOz? zhF0H-T5MwFGQoUWzq_#Ne;;+)#U{tYEnkAl2odX-atu`yIe30HaF(T=``7@&+~mqQWM;EfBsgn?*jc9J5%|b!=kE`kAJ%TS z?bEcf*`_TD%8K*tk^_2m##w`P483U_#4R~Ne;a;Dy`-~?N!Z2?qw&ci|6F)i+dVJd99%X(vuVf7 z_{`w4BzVlsY|@BmN|^~-)&^;U%N7UM&SM5~;u<)2ENSpEqoFPX&+KXRiM+5uEb~7W z5t#Lu0%R`a+WEmUu@iAk8jxChd!T7)oIo_m(q=tFzG90)us8G3wSdpFOlJH;d<8vB zH=B~oFgN=)o72)$;;DW)hATmK0No_+;;9r-p_07|lO+#FWecqh@4L$oE`xWJ@w`ZtiTra)*Mc0-lE7Fc#%7h91DMn)c{xTy8 z6FfezEk)WtNJP5y7U>re(Tu`5g<+IMs;`cLH8OBGZ?DnzI=+r8AOmgF6gvM&Mrv5& zf@g5e{Tspze;VWIUGm5>eo?laG|1yM1Bv-6b3oV0>#@i@ist`TvgxdO#E9tphxLff zM{)-er8c1{av)J=zsl{SLJvu; zzQ->u)g(E;ycD-s^t;J#$)yBt;h*S2)s@mlWsx@mXN~*d8?Z|Wk>xv@SWFn-Cys+x zo_PlaIQ=)w?Xw2K;l`%S-pu6**5{@*Y1JoHPJ<%uV}i5oQk+yH;*R(tu}!T%V!`k7 z(o|?n;lar5SZZo%tt*7ppm%+#@myAt{A%r{pm-x?&*>Tqhq9tDJzdm}BOq)Z{3aXR zHf1i{Dqf4-^#2{5p2$UbU~c^-bMw~^qa(sxUn=PlQ`4Z&Q+ihA7L0U+Y}8#r{>&&Xe04%)sZ5oZnJCKV6W?SKTisT>eQ?u2(@Mk2 zXm!&A`9ClleGYbRPse_MKZ~wElR?vD8-wX9%UfSz`@8m7_a&rhxPK~=JVzYTISy4$ z?U_Zf(>|fToKzyKA~%FFW~Ucn*z6o&qSx4hlbb>|6OsKQf#v|S&1wDjg+n8|&Pf&`e$dYjz(w9cO ztJGDOd+bP)v_E8c5by>|Q1z7zasTv5CI%G#IZMPn-LJ)11E{P}UVOVO6;%e6RN z;k~9tWeu`2GjZy@h*WV4zv7mQp=J8=g!dXI$YWc#e%c$zRudE%2%KM)kS0BKXtsBh zl-_IE4-lbI%0TLv)4H1s-~4&|MDM8gTH1dI>dfJu--EQ7$y=ekD~4VoJfHn(;)b*D zBy~_c-KMIBxZcrB>{m5>a~hnfc2K+1z*1SyP}ZljS2d=6?QrAbhojkLM5g^a%_p%; zTYfq+K={9!Oc&iy>UPNOQ8>nNm(iURr5zbPW*Q>w7oJRrAKZ@Ff6R3t|P79%?qv;ram>>|CW<>)_9jV>5ivVHUIJwf4-BB-Rm_gNcFHmMl!;PWHF@; zb^FswI`O(znRb?VlPdkx8iUai&%F4lyYruVNtUFYM~v5^B8Kw~8(I&+`n26l=wlBz z%+eb~dg3*+6mqrJ&nq*rPPN$%DGK|kW{`^TR;8p>6cc{ND8^VKPHUe@Jbp%)6((x* zQhmf5j!X4TH3k-y$PGf>F6=)za#&Mfukmf>i*}+jWP>DtM5DZq2iTTm-~1cI^gHB5 zbk4 zHIRTt|9a_CSy0vNbeUSaiNJdQ`X(Mt{`CnS3IF=J-rBfPzSqy@txXMl{e0e}t^Mog z@n%%+^^160Wx|rYb?NQ?Hh%fI(*!T(?KTrECIWaJzKHBwjekE(r?8}dzfqf7W52(~ zhE4bHH^Pvlqqx7>hAsB*Z?bQT{QK+e+id@SvtvBTEd=+g6QRI6c=-1liLC@4u5b*kmeu#kz^& zHpV2q+x=o`-sb!F8#%T6klDw!l{CBWG5em0p3AaXA0g?>&aK_vvj-^|%f0{=n||=z zsCF7Sk-@-uD4;)^RG!&KLDl&Yfey9jM+6n#$qL}m4QxjnS7g?jVo)Wrc(PZ#P6sln zF_=^*%cfpqibm}d9(yB5=BRXu7&Fm5p4` z6tCxiC?S%(5(Y2j`e-&szKonYkmf{u6_FoH?bGqELJme>`1PB8w?h!c0}h)@_O7M);xXA>tb4JOUZ z$B9oTq!dWpZ6ui#pTA();~ z^Ba?y%gG+~WDu+-NNpoOP92aiL0L+>rMd|MLJjHkxv}t*gvkjhai3C5SUDZ8V*>F4 z_GbjCI3JnV4+Jcuyg@3dki8jyHcvQYrM`)tJ|Q)gH$b!msdA->k(`Ld6H+s5#3FX= zq~ANEUa1hyfhgQ$v4TD! z6(fYUyM?+8_6Di>O7MKfpT(2!&B02A1SzqZD3*Gfm(1f(UO6BZ+hH=k0tW|z$2lRz z(zo=4mmSv8ug47e}l%D90R z*}zEV(V#E$A`HHn?OpwuKW6$kVAmf!5$qZKW3biylTt8_+}IR$R`|9#xXKA%w+2^n zKu0o-k$qJRlA97|!UwZKrhF;PudN)gocZKKa}kT}2YS>ntE$FqZID{an`z+*rtc+i zF6^y9{8>G%=Qu`V;9=fB{nD@U}L{xAbwSh2GI89%8Y*pxlLUJg;w8azgKSM z8Kl;k--q<;vomP!)@OBbs|{BbR~uJd^E(_mZe?W*lg{c&u%`oGf4O;51b z37W?1NT0JLbj5YF^#x3S15gKgb_EMR&FBIzXZ*(OC?Fhd^s=z)gk#mW#B57zz=cT!ym5WA73hGc)dSj^|7CVv{% z#MIFG&}>@DFf+4({z~yGy&!#gx85}6VH6UbMbuv@ZAI*286%;#oiv*+w1aSe+I*r) zWr;AH_qm*pc^Q9NlE8}408!U6X))oIzR_(&>8|V=AS@RIV|)0iMo90koXRf=uuW?8 zMpx#is`X|SxW96SP0$#cB6JCUs>vqk610^qHbGNpm(c(DsXCiLZS1cU8&Jg5&`3cZ z{gfJkB5pAWq-aQh-E&mINP?gGvrTZD9vCzaXzeU zjU^(~fGEohk927zqqCUhm`ETMnKxRPT*z!X{~0@xIm&Da${!@V3MX$VeR-t+0_Nj0 zF$LdagUd}=h3U){EM!O>H^G&rA6M{N8(eLIaR)fd0x=kZSEOHEIKWE^yYUB6LK;+- z(t$rS(t$rn2QEfpX6XE9g3<>Ocuad0YCpH|S;J?w{oL#w;3G!2JOO4l2$Te8sh378 znLhg}(`Ta?od+}iHes5C!x-x_p+jPHSDx>@ZRu)vax@tXn*Y!J zx6Nhvd~tlL$<^|I?!w9S-rY6DPp8JWfQjw74b&Mr@t*I$F|?uI37t1U$vTss+m1UT z{ev%1-C6mbJD+_k6q+?EyXm%VcAR68{SL||`#!SM|JeRIpZzhi&mEQBbk;WeJd^!S zlbwO(;PXJ3pYN>m5X40DM?o+>wOBGiPfdFvGXFn%YFVO|ky`*Zm6G^Wt?T)$v!CMY zCM>?@i?nIH^apIg-jZP%gZlmAz1s6*)8#)3XQ^7w?b+u9&Ii=5>8Lu? z!lNIPsY9n}8anL1`tyre9Cf%yotL^0(|MgZ|6}}x?j+Vtrc?yh;$+3(HZu^!ABSSF+O`U^ zJ&oc`Y7V1=VhuKGk7qs~3zK-0re;209$ei5B<0LB{!X(T%q&FlXs0(Y7}zU>emfmw zK6Tt_eL9%p%rU2Kl|!?S3{|BTIj*jU&Ad3we4{dl=Opdc&CK{V;xgkq_{|qPez`uf zIAUSE7~&lwjlrYJc&mQf&BNd@w$%@&fZz(j*%WYQP8%01hPN*!vVAX_Qq|32rX@tj zFaC+@eWFWQtRM%sW)wZ8tnE8>Lh%lp*lev#elVC)9c`*W0o$Bv=1Z`TrpU{i zr9Vv+hnC=L3cA%0-Bu-ZD3qmw(qfp9;n9iW+rWT2+PRHUgbr)LT10mGo_A4gqbj0l zXSp5Zy~4e*Q>Z-`+`5etyxp0NO#7WcX|;E7>(i=PzJY(Gd8<+7W?y96V{p5;JdduO zF67H_Xr8_DFy254Oq<*!GiMYmwL|s?f;S42;D_a;WJgQeoW;e)Y~v{3Fsfy1+! z$Ppfl{mLnn95DVq1Ci+VSMH<~rr)i1IWv1VuJzTtxSP|q%x<6OJ&}&J`^)|ea8PP^ zf^m53LD*y1e^q;*=xB5a_H0NomRVmtkxVt&e;s@mnJ^~@-yl<72XN37)?ND6J31vT z&w<&T@C~^f;V!Yj>x05&P;2U|RKy6{|;@faFqAVWn=Q43N9x%aP4t?i1#&c|?DLwaCI*I<`!9V*F>*M>6^N(qKl zwopPZcFyLVz2LD`zS|aj0@b#`dNe&#u+9165dIdHl*e6$zK%c5Y@A>vA}0KRDWAO2>;->7+kT@aG*lu` zvIZx+U^2ML!~H7M<}8>oKX&4EAnf6TtLt*rI))Gws4kH12WgT>FfyN5rRt2oMGYwJ z_^JhKJ$Zrp9VFVFTbNYO9L-(Ju@~MfA5hLZ!x<;)m746IGvGc-DH-7JR=w}zPNmVR zS9M{b^d|P+0zt(ObsB#ZApW6e0c+#uSWN6*ldNMSYRGt_by6^j*X_al+v06NgQP9l zr=Kx^WR{sQ*)Srhfo=4_=HRj1t>)}uzVJKpd6aNd?qc?xK?=$d^cphhl!p%F8Hjno z`nt_E3()T>Z41dCBl}j4+<%|?0*;Be_W(F7ui3vEL1g}k6(|Jx6ARKdmf-3jO5TdI z=$?S=@8B{JJt?vxjgWmDq>Uef+%3$S<%yHBIn{FiL<8jg8=L*dPJ9oWj7lQEwlO_R(SADSzofQ0>OvX5r_m}(xArkh98w%OrxuAVH34wyv@^U=#iv6$%tZCmxp zpSOWKZ`-!nkD`ILr-$DV1M@e~_R#R#y5YC(;kUlww~gT&+lvO4?92zZzcl=IF#onh z6IA*eSW=#UYu6l@32QfX{iRLZK%2}H{ZYT+w{^pBG8b&@*5Nl91~yDqfPK4j`0eiDw|j=) z)(pSNY_d7}hTk&bo7c6IH?tp#mD(fWCI|K>GTEjXBkd*7j?jt$yA57F34hEuHPE6CM4Q& z$DdHO(Otd4UA=j%E~~fYlEukBL$aY83-`|y)|Y}*X9_j-rO>AI4W(XVo}QCp{g({eZ{M+y*lg z=+}A}TI`waB9r0XW*Q~ojWta($w_P50K4iiDN4kd@Ppa#(Dpn^lL{6UmFQ@QqK=>0 zZFsW`Fq5LmQ&WBQy3WTdk8_#NCBo_D6XtK=?@E}fMt~SO9_MMaxo@uBI)3I1)A&(v zPy;*p;H>z0QZ)5a)YRx9Q>t#v&hGdS1R`~+ukz~NuC8fbZ|bGFoFe$>Hpb!;YhD~v zw18+UmeEdyg2D6yl=;oHnF>>OXu>yAmz z;2XQj<0LN02K1)8rj=kecQZoSypxM;cU>LbRjh=3wB!>9n@DbVwccg2RPK@?fLm*x zB|A4UalC)m)n)XMdv;x2F}QapD+=_tGwDzDuL8^J>Y7yF+^c*2v3T~l8)WfER$L)e zi!1eOP_MCXEkW^1q%b#Ay}N$fY)wh@v=ZrjVmKZt&M2yQk4*q6vcpLYJVv_5cNHHr ziH;5@DjF_Sl*&D$!S4g&h+V}|MHQFW1i&jBPHKuaS4W~~LVZWmX>)V5p(J^#S7MGn z9WngZSE63dH+Cgv*u*nTXs~5x zbAsXErk%~Rw4$=BWmd3t*Nl3c?S;47w#K~E=1|aS!Myls;T7GZ4AUA2@?Xf>OU^4i!0_+^6SrJMOPrAR8$SBZvHVr7=@Dl7Zw~vbC03k{XJ3iJBof z|ICRe=Qxb;5cX;jfg*3HkE!(WGn=RyJ%_4WNI&pV&zL_4bo|U_(lLwv5{Kf-Pi&t; zc%|q3OJE}?=8gWXypZmeuU#djN7_!#!NK+2&9!;PFO#2gt z(x!kCQpn&`8)g5;W|FoXZ-0|**+mPh)2obgQ5q=5Tywor!E}!l@lwSx3_gUy@iXtF z{y(i)3s08E8Rybd8hB3jDM>(XTl=%^u7lgC zgp8#&>!E+9%twS%YHuX=>NetCUq9;kj33ZUao+OR#()*MIGY2Rk+N4R4 zrinDVw0^3)^n0X9Pmd=sRMfboyldX2gp`KBPf(2$3A~5d0po~ zOfX#>Pbrl^F6AlHtc0h8$N*S-5&#QS(r)G(XvJBn=Oei|K#V=}(>U_Nt)?GCksLpB z4~#D?T_|Zps?w+wB%$@Ryf=eZ)Mq(;veloYj=mk1c+rS3WF4X0S3dO23H=Ge;S2y> zqi9H~N7O#-2q|Gq%tCz_Lz+R`-eSKPx2o62yo2c*qS;!Vygi!z2oJ+>2i=~raNmar zo1&3`u9%bfdD6nc>eHj;bHXrA@(bHOwbZ$zHp>CI!UY+})vRHbGKHwA`u!P8ys?^dbq*&P~!WnznYl(%^AEWy#niWPZ7!PVp zm6g5ckEMmP_ng7zW7wXCm}H^LZ5<-1j$1n-=#y#3Tpc+y9=xLVWz%KoQm+JwnmF|5 zvGt!JNmff9CivS9Bfii2A5VXQDbb;^>6S>tli&Hcw~^CzkM_KLUL^bE(a5%o%KI1o zv0;PP^Y3M&!W+u_uX{}4i?a>o&v<`eVyNL*a=ZaNChcS!%D7jX!Y}%EEIHM_L|JPd z({LAH&>j(lf9 zK7p=vCc#6+cZADCRj;IDH9dbCn{LWR5mk8$G<{x{E3nCw@F`^sqb!>D*BL!h?PX1C&FQLoRt+)zDccaX=g)qn#Ekib8Ym5|!-LW9LwU0GDQE0n z1GmA1)JRFLe_7kr@3$Gp>#giA6_n3MNyo*JT7zAg+QYfEiezOMTo=~KepvI~1u?kZXvM`m#v8 zh1{DpM-Xft>Y$+lPHDIuZ>xfq{mt2A)~2_F{5w<~%A4~a-gCO?<4;ILURJTZ8@9Pi zw<){1eQ(E5`ugM7n=6EAG-Vm${z6nvfk4cQ*A1Q4m6zYW{yo1HU(gMsiM;Cj#0&%1 z?LiUOHT1iwQe=vox_8?;SG|@lU5O1*S0G(R%gGK$@PcJlDGcxH$l&qozEH*Ome+I6 z-ox2!F+c}MRC8~jf5W=7^Q2q6hISaE>kk%kFR~Pj-?VD3ZLKu-9uMx*C2}aHkc)2- zL4wR?pv?`=QK(YMnfPuK!*c04x!tT_0n9Yq&@VCWFkCo6&>1Q zBfWmpZF5!Q;9Sn+n{5${^0aA$0zlDa{%^EQPwP*YC*Gve-+s&HoC$j z*_^u!@gNCzP}$rc9?6|B<%AI??`eg3k)K?oFiCdkq2ZF{sm$6F^VnY41~vRiH4~jP zwYTt_%oDpyH3u~D6cdmkfcm>!v5XaGy1gClrr!^kBQyW=v{QIv!NdFwn7zD&T|8h; z$B>S(XyL^_)A;>kJ%z{`?+*Yl z3jozXR>m)!5-vns(2oY`#h=~Zd9UFkF3iVV4>z8-zUUontWNF$U6WZeBp&wt8Dwq{ zShPTrk*nJ|LpbJrW_5lU1aLRs(Tnxab`cmo!V8jAlWV2njTdhmgs=l>;#kv=5=!If zyY*b#jC?~_5s&|QQ^nN)slIu}NHtS6t*_c7zzLK5-?f`)_?7;=x~4yP+LkMAGzp=TAQ4f3Jo3eDpyhBKvA7N+gVhfYvv9*1A%LqAcN*3XC5D>RQo zt3t;cmvDGxKVP#vRwSa6NT%r=PfsVlmAWI?nn0I;$Fg7HB8S{TMp(weHTDIfSmzB$ z>;@u3#jIxx(3Yp>+wxVi*5e-Od%x9S5MgilxV_8?bF!YnZk_imyRdLm*zqG0G}J9i zmv%x`c@HI0V_H>EC@Iuy)Vx7;c0S(j09Kt|zLwDTH|Ekb;c&N~=1 z-Ardf&&E(?S7yN&Z-YU)^-m2?CC|sFAbZ%~PB)!d6nT@I+GhUdZU5|m1&s&a_Ga>L zjCTlt4X=LpH?6PdC7!WJA7Td@(nQgFq4SAkXL2rkFblcc>Apr<>w10BT2!<|S!Wlt zn3^bTwd`+{bqa~iDnste!$LlyUrr|EQcEZH3nSwGzV)voP~Y{>rJ)DZPuIWo$Kb!o{w8hAv9?{^Rlyen%=Y93Lyz40JHSWehe4y z8c1y?J&Zidec&3d>TW$V*F%7jM>bnyOPL6FeXnmj&aeY~zU{5*gE--#)i(d^*azrmb&Yk>hL&gjDoOke=^D1@TpG^ zy%%;5=fAOo=YiQ&ciGh{oi|l@%x|bLeg7v}FwzR6wM(#VWOMn4XzU z%GA-Q+tEPCPmS^f-~WLsWri(#_*kJz{hDOkmK3dh(8~55dOGo(C@oc5`bW|Xx1ihk z1@hExZ|^glu+7*7roLeVMEje{=UoV$)Bidq*H79!p4&qOPyj#s&eL@IO$29Py0IM-q8nW(Xk4Ab0`WxiR*RJD7wrdc@qQy{5lq)F5)MKj3 z`W6ZGrGy7YBXo?Dg1JpltVWmb&cP;rE*C-QjzG_9yua(Qya0 z99)@QK}bJ6NRijSyeTf{*VPz@^~p~eswgJH%v80=s>)0c$?|YP^J;ODY@%}ZqtD~4 zn04pMR5m&%b#&3f_Z{ZrRJY@4_$nlHa-#d-ym%$x%0k+dwh_yBiN0w$L)hi-E-L%@ zKEOW!o~dkc;|=aIIk#ed6@uZ;COhjb!|`$5_;M{x^wVb6=0XyCXX?YdwA@{~OwD{Y z%o)Lc&H7&mn@P>XcnLJ}jjpydwYrjGVeq(RSD4k?c1<{~T!78eKoU3X;CZ%W`$aU2 zYBpR$sY%8QriSZIQp1<_!a7xC%?ni7doW_J63$1X0)3dr?hSeD*Kb-LQ;#ytV;>KN z_dkfVJa$v~CPql{4v$ri@K_~0R+;^VO=EeiGCMQOGT=R$ZQ&gbX&&L7O2a#6rZ+NL76^Ls$Fttwgm4r2y5q&e+;Qp)9D`7{H%Mz`ZOF#|gRRd5&YP&|9y8$1UP zmc}_=y#h`rpl46i+n}&2z{D8xFV~|0(t%;~yw# zj(4h>u?f!a=Mz&d?ml?sJHQ*aaZbZFq8EO^T2fYwH@TfjSb*Jd*tg4@K62dK(6&GF zZ$GnLluffexe}L~6b9Im^klhYg1^ezC{|odJyc)Ay)_~A3RFS%W4p0x54fFI!NBS7 z98bqCreZaeryYrn!fadQF#y!K4^A#}AKcb}Y3D9Gv(P~A{52dRZm6l+;69*v>gMIn zrwpp@@@C?|BLNzE*6B$J%^t)bbHuzi>izIx^IoU-{q{Yf_d(tsvQxz`iuP4+xGZT;siC;j_ik z+ZO4jy72V$?2gwVg`!!6gmT#}e4DbG+|Iv63P%)HC}G32D3qovc2OP8d<`>8b%X`l zhP+sw$RQ9oj&;;b}PYP50pk2xkRWv>pc6+uDju(Mdx==#WZdc zP=!v81l@X~i>Ov598KUz;49yxC(RJ#y!*?q8^ z#xPC>^MolniTJ#-LrG7S6z8r8S?gqCa0vs7P#+yovIiF%*F!b#>SsrqenxiBAw$@( z>FcuF_%=B?VW5Q|=ZL*!gf&T0$!AQCJ%aagAB>pLizHrJtmR znktiz>1wW0IGp^Lm-Sv}KM!quA;glh8pxg_5;B;TGB`TNbFS0G_v@|CaY$YM9e_c5 zY4va)Qrec(d&BAYx)Siw5^P-W+nOcL8zU~lkFx8J0Y@t zynt-je8XhJR-uL7i)@9;zcxVm1KX1AB4Dfc?}OMOuYQSc6!lp_NVe%!!;2f-js=#J zs@aR+jWOob@=LYrz1h1|dlMVIOJ!cxd6$;*NDN$BPWB@2(z0Cf;bHCCBnA#4??0G_ zd_FptJeA&cqag!QkO3*k2@AQY0P-(iHya7E3k{NP$7Sf4VPRPj3Vgol3rX;?3{7wD z>^;F=E?_Tlp214?^08-O6Jr~>%U+^BxgGqp|0z_(C%2DbWU*e}J}v;A{Wain_X47J zQ*AgEas%o|9Q8{>7Pqqja+|}qBX-d*NWz>XK;Ny#LsK=c#tSQZi3hi;*1HJ&```*UZLPwDd=Z(%L6&j9$VFbm^3d9JMUS)N~f<7}Ou!|AO1 zfb#)B8#l1{W_uOiY@EP|JOvunwcD8sKXTZ6zx%*BxXNT@i?j7u^+yhQUv#n;|H7#C zCg7BC-j|I#at&-1TeyE!PZ}W$1QXnnVN3hgND@WC?ks+v><@c}K`5!H-vqW?U57r>>)}y#f z*xG~R?gQV5vMxkdIdg|xpKY>rF%3PJ9%wFm+|u0km%c2*6)u-$83Hbjw=iLol*!}0 zxqBY2y>jq~!(`@6?p8ERP?23NRWqr?eK58NW|^mkN|#2+lR$sYk8I`*?@TfGfyPhK zyxyBt_@}Pje&mREbb@ZZQanEVjvS$+MHadVn<`wq{n-`^9thw#pHk+!4^)37EGbE8 ziz82X`>Qsj>mmm3>-hKrt`0`9yx5a@0ap+-CkYqr+%Lx?ELm?cCCs4I*RgOCY3DS5 zTABMm>?3?>d!-?ezB60(#oNb4vdrf2>r;b0=6j32!*}g=C|(7*@m3+n!E@m5KMM2E=1wu`?8Ef#%a-X^qJPhe-K?9vkc-R0U{9jx8XRDSJnG z&%RPkF?&}yoY!%eT>>M744Uz+$C1uW>C%nK3fX>`X$j4wa*#RNu&wo_{3aabXzvqC znQ0^#>K@)ZH*w~cIwqeJrQFr8x~ty+jRXgQ+|@bwrCg&kclDE)EcGlqOr=2+J}1bq zBgruX_FMxPa*?+RDIgb*x~gaSt*?3}9os@unVscnrv;KUnfa^TMVZGSXWee6IkSZq zTuJJ6E3b`JPwHbXccb>u(&y}U7G)mW?U?&S^Jx+`4R?%<36ovzq^a`6vA({q`Oq}plrdBiy)+$%lTGVZ=&74b&$he zgHzqr@0Uzhp+O|qDj|$jsa*WzuKuC}Tht70QW{8CX(T_#ehD3T)_L=p@u|W}8BG4k z^0ME8v_-{Z1cl;X8a2$8P>5oUbh163R89G?P(E?IsF2~Wsqaz-l2sTN+4TM@EUIx- zQDWv9d9eAS?6*@h47fskHT*>}yh|0ZT|}N;OS#<2Kb2gve_K>7TtIHhY{{pARx%yE zF;L33&v3fEnawAp8l_a^ae@Oa{$wuCx(4ePY?1nd@JWsTFY>ir@2=j6@He`vaTX{Y zfgr~bWSwSA;3moR$E&v?(={TXyZR_iL~c%JlCx?z$*R+J=YV@XSayRYvGrBEa38c* zDAP2e5P@u*Vk(}}n#^$p?JA2$4yM=EYGRI$YCtswW7tH4-JGeSz2lsJ!qe10JG@t; zOtwm4(2~*|x`(-fly&w)nNTlu6Yp1?{BJc@4N9w=kUmj0XmUuYaC{0k8eepRO&nX! z%#O!1k8=cSHcoUO(1TWX65h&%! zKGSyhn)VxNG=H0%k{{8xMmYo27sqyC*NHqjGe-Y)1IBMS+t;MYLG;wuMkWd2s95&f zTbbtRGjqlMG+j{mR~MDA{Ib@XEu6Fag`X&Ao&I%iTlUkeV(@xP`wej&kZeso)CRPn z-&1Z0ID;MEHzV)e|=f?!jd85)dt%zGv^4boni6?_f-1vrUp|Jv5x)ClP#c+#!hNx9lcG z9!#e7)jXIGU-`e+R^qLq-MaW5J#KH~*SpOKtAG0~_Tvs7{_V^4fvxY~E_;GE)ah3~ zw|r*&V*mEo$5?!St0-Z@XD7${SI+fU-)6Gip~Sj+!}hu4o9^G?`Fe0F=!aVA9~ zJ@0?Yy(c)m=dIJnt}s^l2duxP)LTW1-{*es(Nl|x9@f&dXD_)&+(j?oi&*+Y6X`bH=N$H=X4@f3nE3k+8tFJ={*&4)^pHEVPkF0KCsFVf$Ta(7n2NW z*VT>C6{-KmTy8|YfcYZ0*2s_F9I!b@s1(#T3o|F{I^ z0L)xc&uSlNIiD|P%F@4k;Y#y1FHE1l?RL|W*eq7R_>&h;tSrIK>~J&-PVNSfbC=vH zG_fu4AqWF8tx~^WHj**Re;-G1T>sx<{`(t_x=Y?qvZ|y0)ebwhR&8LOTMwxhsokLx7XD;Tm#9XGI+-Dl3$sOezGw0+ z_nhN=> zBOB5k|6yqKh0>5{*=LyDl0>;n@4;?CPZ}gg(Htnv-aRG)npM;O^&)$|1+rBKMgE3f z_p%IlJNb6FvNSU28Gdih&Q~d~FWgH1A^5ojWmy%_u|?!SCTfqvFG~z(XvQA-&TE*| z235_TEKtilV+mLT0&9q|18#NA+@nReArLU!cKtk@g!{W#_qwFae*Hzl_b>aOZ;SZ6eayEG0v z>5gb^^rFcXO{S*Y6Pnu0lWWPpEBFuuQ*je4+o{X~E+SWT?h(l%O^+Q-H*!#O|4RiJ zWt5KH*ELG@B1(TvMGUqX@2RSdRa=C;M!g~ScC?ziNc9?Nt4|A{mi)DSOJVN`#HR9LQF+T2dqvG8DL zay(-?nIx;*08OwSk<|x3DuQ~(m?CBJ^HLS@ZiG=3mPY1-*@1eMVOpAJv0Pn7UlKrUMx|J@Onz@Lp?bkAksJs!BH5H){A1Q4Nl+J@iY273F2;~Ln%O*-fn{(RqX28mFW22tr?XHjbFY`7 z85g2Ct=$Z?IKCu%+YB~1_t}-VpRfFK?O{e3h2<~iRJ|?P?f4~iwk6YvMAK7$qi)ZZ zJzgkcfzZ!1Sj{p5O-dL`qA#gEy787J+O8iGk;6)m%#J|)@-*$EhTV4#aM_z&5nZ2j& zVwg4)z1L{on7w8WeG*OI)}u0lv1SZCvoFE=0Iy%yP(7I0*F;0WH=OrF(4zjmb152C zqsh2(-LE!DR%OaKo&Eb-{*nAPx z)H=%@oriU7jLD8fW=y6sDC4au!|cgihj|3|dq0syvLc?OHZtRM4s)b($#~t73{|XS z)lg!qd$(9AOgq2QSJkmdPrBojq6!G{4z$t2eHnVNn*LMkiQ48}!hMO}LDk3H?Gx?E zmR9w68$DUwC8>QEGiozr_&#Z)n2DkTn;g8?RFx4Lv{NDIq)H0{3l8KR+)$X?8OaT- zm>~s+%-S=1$r+E3n`dlL1y@8EEJY5oV4K?WT`t^ndIx((O`Rt{j|O2gBnJMgGQ}gW z2Swgy^gys7wePzby5XlX+~UY&4F@bYK}{xwpz*0t_cAWij@lWThFt4LGdts$=^u8M z$XF?*OiE0#u`Y1FpW%e<_X#c2JC{_$cN36u!m!RFui;XmgqCdRFb(7`(|vBxM>eM; ziuL45d-j(SQVRXc3Q{iBf;J7QcJ+?Xz+zV_CI1JN5vF>p4yK)Uz{m)w5QP9z4#>Ky zgFSo3$Xbh-hNTcvXfC6|J4#cfVWhxWA8@1#?nekGp!(H>?1VQ9KxN^Fs2w?qDNcPO z?@(j!%~3Q~Jfd7<=f7C$Ve@civn38xDMJ@B_tx+l^o7hboK}tsqJWF_+oie-o$rbe zz}7|OLDM5|lX2!FZwE~ezpYF&AAZ~Iywn;6A_VAG`lWG{L8KqUGJa%x_x;ZoNH#)R{PDq}Kf8W4K5jK2-%*Ix2L#b(S;>q(k zS3S0i^-z56ZxF|%@U?%prk7%-e&!ryG$T`hdnMKc-mOX6(^s7X;Wqj23XQt~~6>k%3tgsKPCw(zxqsJL2eyn;EbhXR{txf1lJ%QIl z@3(@Fp1r5}>($w{_nVGR)*zKi&pfRny>^2-JpX@=baptQ8zZAArY>&nX{L)~Y6v*) zB>Sw&j{SxD!A_aH^~p&9D+#gSkS#&n^g1;@D}9?OF6{Hldq#D6JxmenMg&%{A+X#c znMxowG7wd_Hq!~7;rpihvwbU5{=As(Pflw}BxdRYzl3u_KnO{KOBo1tCO9hqF*+2K zh23Hj`!U}Bpgg6PwOU$gWt$?L6iK9~qTc?Vp;88)8q8_BDj$s&$#-WnZ7(=e8H+cD zyxDzB_JyrVNa<;lr z%T-iKL%o0FGd+Exrf1%eV2UA?wvYz&E%zVa9q)CBzW z)V_CcY)bAHavN?zyY`0FpI)_}n1r|~-7!|uLl$``tVv&{X`wP+r^?<$KpG)4{hFcX ze|g**wIomHe195CjqXoNBFrES_lh&U{i4eVMQxv2`j`6D(vjR8^-%Ufv-+R!Rx7~E zp)&=DQQZB9aZoFY7OGua8smy;o()}Nq+Pl^XN3ma@i=1au~?oy8R ziYbiH|G{4_VexN~=%~?hv(d(CAGZ?R4Jz(c&$*S7PN!cexs{K)XB4?JTz5vVTSd70 zfua<*szerC3llZd#_{yzF=JWRL!{@smE$;dQrVk&{=07F`R-Ml-5K$Lbon6Fb*s)# z^^|ZXqrd0#Ze`%k80%JzZG9X7&D5aGJ!6w8XQTUpXztHo7hOvT_w`czBf9GR0EG3gR2n9mR&Z=P}ULs@v@K0%CNK~yLvlZ8byvg8QB)uI94LAnO2+JOjamB9uO1Q8eI^&^`A{P zCQSHHZV-qO&rOX!btiI$OfJPtpqm!CFu2mrAEbctCdaIFskEX}hS@)_Z zMbZ8ZFz0hdNF%M!kw=?E9QTav?ip+}p0UmSz!gQgTMTUXG!7tCRXHV*KUn?Xw5Ln!nJ7$8zqyDtnX7u-8OZdQ z>;6b1mo)S)I72$Mz`n_}9!S^KW8kzTODc-;89lMUKy(z zQorPd5IL6qr3^A8YDv1hMm0hhSY%O+q?4}uV?)n^^J$S-`Zi;_ss0RqRk;+_f$WmJ z@z$8UAgo(oxwRHq>dgGo7;v}hH}@^7$epU9b*4=gTyTqiQ(^l2{L`=_xo~~i?0Pqj zR@Z$PWQ$IWx3sA6SV@kQhmPNXIXs_Z0FdzC?8%V@$99@Z$RF}+<^Z1$?^Qdd#VJl(AM%SgGLqpE!|(`=(2Gycg}zgOBSgPyY6Be=_JGd)=OK;c>JPaLVAtPk4VT< zXV=89eIxtVWMwxzexz@v_V@`i_+0T&mWhHZYmaN%EA^6gY_#~E%BGvq=(Od?S1bL` z#F4s~>IV`;$bxpVd#;0^<2#;aY=V+@@7bo=x&KYu`@lz4ocsR?*}$T~v)07MHk8<= zHPqN9E#49h8VLbZ)Tn4_OTE-miiKJ#8=#5;?glv?7Sk(jt+gtpe{Acmw)HCh!-OCU z)ZT(CSn-zAlQhr6iqe3Grq~{+hMnzmp5%tfgXRE8vp6&5Q z8%jZF8NT;~L+s-6uBhgq4ZxcED1t$&S4xyr`AhyCF+@0aJCrig^HE;7=h$b4?>pfg z)_Uh|tk29|N1(+xdA{k54Z(?Ub0hWZ=G<^Nioq<7t`_mPe&5y*$ifK=MftJdSa+Z< zhlWtW-gTXDS&uYv5|eqOq#Cz`BiU-rX^N4|-;ksA{#CCa4~^+tj2X0NAO1e^gd^~` zX>XjTyo6~pSY$T~9cl9gP3T`b5w0IRaMpayoL|qlUd}S>DdwPo$2Mu2`TVNLo#sG= zpL9C^v1a7vcm;`L5}1erT!<^W9#*d=#)*-5gs+BqVc%2s=iX(eJ zJKXIpGT48m%4;cKRj~2a)1ji6%yf#LT_L}2pB0civ?qVrO<%fNlEEB2UU^rc)0Tr! z_QYtXZ3wGS?!LN?&dh+Gb-Wk6@%ugpO}|_i*Fn?H14m6uy#1b&TtH6V3gc(iw1cpjg~ z`>Ehx`y23C9^i9JfX{6KK6f4gpLA2Hq;2L)^jkAtyq{hW$r~MWn=o~kx=p3t=yEFS zjjnK;D!kE^Zd0WJZ)39v{AE09z6>{~#bnGLYJ89WqOZ=Prt2c0$=%Vm9C* zw^OW~kf2rxc#a63BZFsyp6FU=Rsu8SHriBRN&_%k6wOQk=d4qvAlFD#5o9e7p0*D& z*$=);z*&}&JYIoN%{`rXwUVJKeck!QY5;@Z3jE;+`NN@7JDpu@APFr&CQpo23~&kH zsR#qp)zueM7_a2hMU|H7doI0Ar|fBAj@rx^g5Zw3t;`rEmGHsl)N)hlbUbwkh+5aQAOKp#UpNE^0A?z8owH;!DVR;Dw6Nj4A(L$_NZN=> zQ55J#-q0#o5IWEc#^knuLx8Pw!zrLiIg^2+^SDyC84oUDq7Y#cJS{Kjc-48Pj2P8O zsv3DvjVx+0Rcsfe>kBaOCJq+Qxh~vi6#pgEGZg*KGAkI1dd0E-<}aY;^+(_@KOldQ z*zi}H#JMt6l|y>DKnA8QQw6D)y@1TBDr+JI?OX(L8^u8>B+mk)u72(| zQZ|*On<@!Fb{UD#i$r)2PA?KQz|VTvEDZMcGBEGwX6Q9eq`9(6>dj3b-nlWG3*(LG zanT6V0mLV_t64~4J9jk@E&oik;i;t|3k4E!jKsb`j5MOmT{rL30h=M&5uFl1v9F>* z@4VG&(3MW|nIV)h$enA-4#@IHI$Apv7wSmh`P4$hhc#Qg+f@aaYrg29OG_{YL%Zi{z*wYOLf1=R4a0l=E-onI4{ z!RK`EeCg^lIjTEwOuV$}u85O-a1b!Yh6mOC;uv+_W{M4tI=e@&_NcSr#F?YcoaA4q zuo?fxjyRw?ped~@haGGl=VR>`8wwhVMg zk2S8?)9|BERR@Ibs~VV*CmpuDC{3kuBS!sUQ^nv_#vI-Dd1Q!?5Y;F!>Lk|!l((3Z z%-T0N>@`!+2ss?D5+s$T95K#8NLD?>8-vwMMl_0;$d`P0S}0xA^A9i}Leoj`%~bqd zr+a5>?XQ;4TCbjj6%Q}`@hu|qlq)vst>+&An+T*zLE=fN=2@;M4o;d?1ptt0BWQsU zMQmd@PTLuRum3cNJ7tSSLQ`%+AdyY`zOikXd!QGmAAAiNdlFjTJR)XthK)9msJaSE8JMT zfQZDCl12uv2Jk{T7+YQ6HG7Er?B?Bt>_zE$gRK!^@p4k`?U{&2##N#CD4gP6rn%!h z9F5lZyn#~ej;(QSxUsl*YkAwx!C-SHJ+?;5ynB9iW+t)ZnM@z-Bhx^23JJ7X0Da!O zRpJ5sq@}eu$@9pQ`d<%|h~)`(kbK-(@;Mb(gcRBfbd6Y3MA_q0To0wzfgPm;8LiEI z+#9Hm7U@46zp!LKf?h|`_Ysh0h!&!vaX3Ve2n8nXr?Hu0A5hi+V?=LL#GlQcVwg%h z+_jfyvfDHgf%(0@0&}7D#F|VqE*G}jKyiwbd>dFWvMK;?{ZC3lzV^4_Z zn#k@001L`vQ+a=Q3O`QsLEMH{wdnQ!Cn;`{=Qzz<>s|vxoL}RgZTE_TQ{%me&#?@! zjsMd>8F^s{ZlWR{|N|YUnxL{R>L-Otjpo*@4sA>-{P z)cn(_QQS$Dz79S7`4;Yc(rd^R>!=tVYOwCAKhfaRfjpBSykz4?_fMrlOeXj9WXq_X z+F_b@p42G%rKSDUBq^N|75;{w;4 zOc?$`ok?a&G$t$B^AttIU!g7pg-t6Jd4;B>Ohr+P+FolNNG%%~eqmOxFnt!>3Zqg$ zpa%R73JI~__ead=(C^(sRi1e>uaG;78>p93U*BIxG^sa{`f&ZO|L9doD!rVwL)3{Ly~wRl_n>Rew5JB{LVq0{ylH3_wbfuYvm&_bDC z5o6LHj;XU`IcjC*RZunYLCY4gIEEJfVVX$hLX{@{qU{|(;1m1^Se!{|PMhY0f7z?gC#tOQP|j#QdAsUwvI=p`MzSUXSBY-hB#o@CW} zg&TWM(p*HJk$eKE)Ef&lMv4$9Iu6>7fX4nMpbIR}!aPvMzC6%q9%%Gm0{U5i8k5og zSZ`xb3hHfaNqxO!ahIyaDM@IVOMjKe`HFV z7qds`ZnZ*hDT%y+sf#0h2RY#hx&=nPU@VEbk7sT|mT(_zFm%r?$rHv|7FI6q)|RP)&&2;&yOxS1dFE_lZNOy~8ZcZ(uGoa!V`3u?>297lvR080@e zwb5b_=>$b`Ey9ga)O`rS2ud4yFkd}<=xU0tE^aJX7~I+#jAAwRBq_-gj;?xrpKYa2 z^_SyDEJan1|0V(UhTi^r*BhoP+SHj@$9pIgjeXekiJ*UkZTc_u1v6*JYzA&G@!o{s z0r3P=a~CG1cI%y*D>H1rkr)H5T{;*j5{J&j?HMLpbV#DgX?vYi0)t4)46&8abTI^p zu5UqpQ6Qh7+6bXRPTTj9mw^y+(2blnUF!^-;y!r?g?W`C(=M8ht<{0*A@ID^#Gkt$ z^F0fEVC&C&agF~q#Irc4uJBw87li~)b`ueHyXi;hc9VWcd)-H(!-mSeefj|GBg>d+ z-)g0Q#UMLEvM2LZC=@dGEqyYD8G72uV9qkM5->B|kkp9S%uv0)9;hpt=n=?m*AeWJ;x(n9sQpU_?3~Q1BE5ozm;y(>rv-Bpb)*RPIObx#Y#0(nA zA3*MOQ@OxedtG8}xQrN7+g;Cevj-XD{uN|vhCgl4jmpd<{o^83eTx1;ZLi!e7V?W9 z(F9SGwHki?u`LwY8&;dWvCmfxRjtt)C@H}^;xEB-R@E=`wJ^~qn>K4}er4#8N5Sg; zj;j-9GjVDZjtITV*QP+q^(Dh6m-WNR;CVZTjrJ|DmmIx1X(c6u~ZU5mrZaA2It$gSYlv*{k-> zyXd5#n9X|Ho-Pdh(@Ao{ZPY3AOq`tdJ|j^w9Z>E7TWKBen}CFR~TiP73t@eh1S`#dv`g z?{Na^hbq(DznTbpUBn-hPS(P7u~M6g6)TnA06(IA#T35Y2Y-(8DJF#fEdyVWfUgK) z(V|qMO1fA<7P`^|(9a827U!O07&LtZ$?y@98VYLgFt8*=!oHL)7IZ;F3?|GmDj}rk zy#YP{-D)m*>)MRPEJWUv-ydkk8_pS^aHGcXG-F!ZhSu*N2_Y30O0<5wQyw21b~8zP zBjY}}d$nHRQQ+Z%A))aw)D+_T-p?H0?^VNK*AoBsHq-mdv;Rd;-N%HJCGlSy-l*FK z@SjaoqHLR*z)1=XR174`7EcjrZ_~70}jL2bzFDir4 zXAdur?8Y-kz2G9&5YHXVY(C+`Cq(X|O6!^h{9j7A zFyH0~TF%0#qNwp;Q`NJN#8JMKDH7Cm-CXL5Ge3vBZ-}2rGkE_)u)ltYxo38YX zp6WH4mR(OZtcUrucI|G^=J85v-3X3C`?opZB_EtnAFd3$1);s(FnwHdSkny_&jP=1 z<~da7pFd^<%1>hKkRPz4^_REymHBpr!B=ZJb=G<2R~7MO$}oYacZwN^uwq`x3TiMI z9msw}{ZCt~8IQP%;UdKaH!wu}S1DLiheSG3|CWJBzgr zt_~|RKvNUjo-kFMZ4hxFP8t*t1QN?nq5w26q5=yjrZ{^lzyC1htogW37tl3 zp5u)(eecEH?{RSRgsO9tZj#P7DB}JG=bnw;m#dWS($2T>XW}HJ7dk%hqjz|x#pBL>f1=5hMrxlh;{BB zSbxYF{fzL>&p06h6&R5^&$tH28pUVCn4rv}^g18}mGH(<;y7`A#Caf?Jnp~BOshEY zH2D*y#ATEP=H_UCB+&iuK}2!s#m#x{aDOKu=#C!A-LT@X)sZ{VR@csV_nPTi`$I58 z!IoW#UBhvU!O&@SnZngYB%AY$fd0;Z&loXlerVOI%WRK5pHJ{B@o&9GhLjNCs$&WU zEewUc)3!#KHk)4hC-C>0BkAU_5B6KFZZ1eSi&Lca_l-zX75)s`E>~*JznOutLAr>Q zC*Ba#mpFjolLQ9cZWz5Jvz>*Kyrvu&H{CQ%Wr`u@-l><*$d%1BjBl3v6DmIEESX47 zYfhZjo*Bo7>Pg1v#r;WO2F0IUjet9W42u?+H6f>M9b`NL^I11&F`QYq62qBAD>0l| zv4Y_;H^mdZp18i9KyMe$A$ZyIXrn1i=ky!pAI{mgRb{NRJ0 zi4{NiI8z_mC$D5?@j!P%m^_$gGvmW#EJ9>X=fm)i(Jv%`0~bflAx>uIEH)Ci+&x>8 z7C~xfGj>WHh*GTuTRi|q4Ce3s;fdjCnf4#x{kO~VdsBJ;{WH419fvM+fBSrzQc{qI z1eTFh#tTFka59sk_eF%RnTJPMz@dlh=noEZa>Ct8} z0*4lDU+6W8GlIii2wq7yXUXYMD#&r*`X{Iet86#$&_01my!|0TCCh1434f<}F%ELA zl|lMdTDwY*HqLNrCexY;@+Js~WlkBtA)OUQUjJ}cu#8yR0f zu%Uva9NCR%2Kob=k@iN&bB~F0&n9nNRp%iBu(xR&H7PhO7d3-`7B*rG2tYfFW0Le2 zjgW}Ew11CVbV!n3Fu#gi``?Otv-_)`^sz3wa@IPox81z&)GYevLg+r{PsGfTtN!Aly&ca zyoaBVkj>A$y8=HHZF+aEU(RnJhF=5{ZDYmoGrcH>Xtq5}=>h(9y3BnfIRZZ$PX1qw zAYWnxK}JabnzpK-Ol5;;LFQ{AB9iUr_aZWF)xa{+Yq?NqjW^2Y`$k6;tunY&?W!1!UFY4S_jttf1gJ6CNeDzHPFP`nxJ!=wFN$n3ThTFfN=Qm+l*3t*t&)E zKNqORhG2j&$$o(Oe?RT)-rj*tlFfg67L3G8HYNMRkcA>Y`XWOfi#Dd2PET}2GXJTL zNM)##NZK+@+Tnad0BMKr=@Jt|jrD?g+$nqk-4qc3^cwsj-f`!O=yx)1;9QF(;-0FHdy!5djHe5R5FjWB~ref zK&s@JECMAMR7ODOiC6?iVgQL(O{|v`*z7F+4Y@gK{BvP3x_4NW>&KI(4z*?}#98tL zDZ&J+gVd2DdJS;3y&5twD>=z?`3f6mYoO}5y&U0ZuOzjpRPtn!VgU-6(ux&xaZ21! zg!0FLr|=lBCu1->*iL5NMu<9|&hn5ORwdF-wwNemrB3ZA=ev<-DbF!HV?1@kfmwvR zum+3Hs2>;1TjC@?Ld~G=lArK|a+quAI1ny0cNlB4U(d{j*zt$Q8iSAjamCVnZ2mGW z6XUHBT7r+p?lA#g4PukrMc9F49|0PzG=~2p)K1_wBJ&ZL75}w>!+U)XZaD%GfBjtw zy}|fMU_8J_g8u%=&-V+fg|fZFV`y=VZwTAwp(B930I=EL1XIvC6=HyQ`zO<^)2~+P z;#jJgyQsxlHZLUv_8eb#fNUewI))tOgf&w4Ql6rP_G*e2qK!6Sn0Dl8y1gY^6cZP1 zl+m@r?V);ME;}yVduhq8S6i0(&JwtPrva=^P3e*kRl$2Qv}-g(nYi8_AW;5 zoMRRvH_g(c-r;9-lAIsqX+%|epZ zf~-GrhO7rGg^9HvsLq!XL!JG(piZQuef%qYh|==dHmh@K7(C zkox1KmOaC`3&gxp3jxFxcNKQvWmD`xR+$p(N>$W&=1BGLw7$AR!d?MiBET~%E9qi| z34?U8K`1LDK$GM^&*)nx_&N2-PBW)OP+P`1SE-!>%U%!F;!_Y;ORP|SkU zc|Wk09)mCk6PYzMAzW$@Ml0X-v=A2c=kAgfM?1JznC+^DuTz4HfNh39K{w0N-ivhePp#+gB1 z&$s7?uh-Zt(75cfaLMK{{Wv&(B`jjOieQv4yUP$1^C8Cw8OG21|5SidxE{1HpZ=F0 zn!b9`{Hm&sB1mS|k>Z1ayQWn8(;tG(a(kW579HVe+7%3>0!EZv4d*plXR5%R(B{m` z^Pv8M|LDI4U&;Sx`0%^YhtVtKciL#}uft1R`PEP@bcBrmmTF8%t=13_I6*Ep z!+|m^zKvh~r5E36o_hOb@HQ>I_%8D*To%oq8fw{6nS5F23c`}9=Sf= zUt=Rq@?xC z_Tlko)=Dd{(gEHh-5zt4e}j8|dFuR_JFYZ6&eSD6u3AYooergkXSf1{Ybm0}aKLS* zb?gZdfs6@Ki9ePQYv!A>M34m;UPuGha+qY|P$d36ca!AP%z;Nj4TFU{ZlpJ^v}jy; zBF)SX@(21w-dpmgv|F!3+$Ypxbj?03r$+Ttm(hAxl2p8t8Y{;U3B;JHr>Zsn2)4GP zzlhq~n0Yr&cWe~xcB!OK|ehIX5TH=A1G{%&}!JS{PG#S4fXy;an~?|r%`m`my`UKdRbGgcMa?F*Hn8mMx-ta zy{y$%XKZ{g*ZKMY7OKI#%6Iq-x{q@Y0o?Rx7Ew?R9;>8!{yVfqbBI zfYWvwFYZ6F)4cRV&lc!nqojtimsWL%fPcmnYW9 za8{i;lTKz4SZn>sZO+U9GG~8+ezvYLQjlsX{^PK0(u}|B#-g^JUpDQrVFj5-kv-GW zqRs0A5}gAw_w&83upsknKAga{d}!eA)gPgS&gZLygrzi3x#bgYwHcxg_I$INmX+k> z_C}b;$YegF{)H#fP}k6?O*J@#i*phkMV&sLn$-wdjl=BFDvF=NZ(;n~y#v+?V$5Y< zG4zZ4A%B6qA*TjW@~{fb(kCkf*5n+20ty?IedKa0dtTHt7&XdJin70hKE3&4@!4jF zSTZ9hfyZBbaR_C~5up4HQz|m%8#F?gY~c}--DQ$Nvi=pY^U)@=6bBm83_xH&e1ajs zoX{_fYS9EC{M(NJf4oIQ&DNf7GP+6j4*`ABO=kI9YTTmqdzM!+_o_|r`wRu*ns2uR z;*?^Vnex|kA6-&>mHFx+PyUN66;;vIiebQ?^BTaa5Zw@Ea(c1bbb*CsOG@N zKKy0nYlE5h60H-@CQ65CqC>3EoY)MU)$!BpEZcPC8uxj(E5KJ1ZS<3V`sGdvR+yQK z=k-h5U%1bq+9;e9Ruj*_u>I7>OUUYWtt!3~2;1TtQ>IR?*%Xxey;zoZsm?scOHh7r z_|Sk8Iubh%COTr%(g`IiWNkemMy=~ube*9vUK({9IHETH*~wWe(_Bw%;5^_dtqv$U zAGI)HRZpW9CVpunT+ej3#GQO18LB~?5deKKZuP-g(g(H2E?9&vdxR!IGDC;Si>?bi zZ-iN}i8pQihSJSeqBq;&tJ(D4X~qZ18#^LcT`q@Lf_fF;O+W!uJ<_*cg-pTjtqNXkKx~Nz#n6E6kl9lGj zofMkqv_v2t{iUy=aQs;c$0#Ewa`6Y=uch>;lUYfje&@e(37LM-rO zny7BncfM`;c>-%aQ@rL{uXTj?sBti(zGrorl_qRcRc@Dm9ABLBLno{7KT3yYsf`+a zAU$37TB5CJ&99uvbG2r}txr1l4@!2#Px8hQ-ny2Xn)Bodj$@-%YK>gkCR7i!q*@fr zvm&f%=q`XLzPF6T96rlO#NQVM3qI78m1L6sYH$0ZwQ^;LjeX-{88&_9!uq0Fd-FyF zUQdl?UUcCa>f2D2Vl;Qx`Jdv8TcF`r*`TRvU@rBnqRLOZkC3G2rcp+pR#5#BY3g+o_hf0Ir`5~~jdu6`^8$FEH{ z#Za(hlk+>_LCizxaNC@jq86O#P}{E(*~rVf$K zxqpZI_kfIk4~U0^$*K~42otndIA4lmdJ7L3>^Cr2j2|^5P~9Ka8$*qC9vr~1Z(N(4 zzP4MT6N9;C(hsajb<`O>uroBg=7^26*q(D0ZCd8zYYYXMJ%b+;RRD zN~1R%3Y>e=oqmyjDM4Ivr4T-ChU;ziw*v?6^@!gJ|GOq|)$uCp8+wUcAf1*Aj z|G5*SC}N;NBay3ou=K~wP$K*|&7G=*n2zR?VjONd@mr=tkRuV{^I;V~rxXFnekX4x zomk~p5(+rV6gE-MNYz(Vm<3sd##QZq z>!V!#Iug~fwajXlL;|zQBNAk~Xtxn;HMxSY5s!@o;|Dc!edE`yn^lE!-hnFW_*=eZ zx%e^_!Qq5yzYzS;f(OM<^;o$V<~PF+Oc85UE0y9tBppL#F=5nBkD4yPj!-$-I~Ym* zX#mYnu#)ol>r2rV5h8FB`bJREv-?ps=07z7ZATj4`_>~G$f_Hc8lkW5dmh2KJJM^a z4oJ<`A&eB*1cdk*4;hsJSDRAaOn)HK#SWzQm}=^Yedh~+l%I3u?f5w#YNoHOY14jl zGxLq>LXH}$T}y>^3&=>6y{`N;a2GX?E(mJzpq`dDmSCFqkD(TFBreZB9L^ucnqjG# zvYDNajnV`K+1qLOVE!B2M<6%42Fhyj&a3MAR<%6>mXhpj7uOalASvljW<|lfc0_pj z06L(mHugbNZ)Pv+{EzY8=avGa65)QtH3g{h(9iC6Z_<_rvprzpwYsNZ6?nl!x~HI3 z)9ilt6P(P1py%Zfg>G02&mzGww-j78e(u0}Y;1EH56=f_R9}g7eH{R09YsZOl6QiFIqyAfULsC% zzmPH#CizV1g#WNywXrt4BU}23ku;TaSHyX4(ta93n zKTnPE=fTtNqN4%U8&;cPGY$SQ@~n4~-=^Ai+W!Ycig50aoWX2V#r*klTIZUQxi4pQ z!bX_>Oa0Ru%VlD3A^D7`x-Q7{Lgp9}de@Z5Te8UHu>}Mfioy)%1Q?+^w3w(>TqtC5{Q(<9pQQ$0!=f38QY_7*)1Km0$qe?+G>Mf$|rYMtvMey~t-Wy=}R6xH5uAMeh}N373&Yb52c+n)i`!&KM9s z3Xd7RKrP%Lss=d8fra*!ZYYZd6gMS*jdIh)^QkBCs`nJyC0AA|fI8T4<=v?1PVyj; z-q3?Ge}mh1NdsQFEi31dafOoLnyHv2VT@N6gszN}M3&|M5{Mznz&Lt3_5YH^QRVi< z#d*eX!;C82~Jf4NiGllTE%@MF;T^L2rEvc({7!)ESH3 z(XW$y(?}Gs8IaqAldKJHeXVc$BbArEHJne@b>y4YG%@IMKOGaNKK-$83e#RoAur^L zejL<9Hqn6NL#m+vo$41Ijj%w8Km9UDrs{Lrk9cB*@+lIYm`|L)fS<$0^DkfOuA_|F z6^}p!B-yejfbEs7;>*q#&xzFUn|qXZb+qV$X#Ia*HK!@Drlh{B^%WOQ>M>}HrjmA& zkCJPZ21oByWyR1@_`G{vG(C`@0{`1EWYM@1?gOB6nWY)6f*2H)+8a}D?Tr%+8_8q6 zg?dzLuaA=}7G{aHwP>BX58+^A{8d%5XsEJ^DvbdwLS^NbZjmc%F`#1Ej=F7`3*mwl z`GUkF3lfJao#agO5_OW=izTfFLX7zdgjm2dBlWE} zjlORR3!rDc*%9x@f>(50YO$V)uBdy-djAiamo%@p$y^h2)fU5Ab=&F=q^^CUtz*G4 z*}KPr=;^1bU9Y{it8ZE|&lFB_D|ARTuNSl1_KZkUN4@5) zYDcg6iGEH0Q*|p#qc7?l)iYrO@7#zS7_gM*GWh4RVt<1n%bGu8Ri3Mn#a4F7i|DeZs8fg*gSkq z(Ixk}d)-Uc`pcF5{^qqy24>fK*WNcgU33N!*RJ)iA;LW)dynO3IiILTc=I;)Tomo~CKTSaqD%p4((XQZ0slWr{^j$|Tm7aPt@RkUa5*-WmDk zjKn*+cojx(Cs+D&eV=Q_lh%Edu<0)J@XOzpCdWWqw=FvW`+F06dM_GIhc?7Dpa z=m`3Ug`Y0gH+)o(T`v3*uTEI;2uRQ|b*@Gu3hx*u4C6S61)-ah74NyScdhg$MI|Zd@y`+9uFI9ZsApH*>$$Q5WB@eN z$X;zYqrwP<$QPM7@xP|7r)~$&ibXjg6EEc+zfJBaVQY}cut`3*>fRF`8}rx&#Aja= z{Vs7|LgS#8znwZ`aHOEaYmTHYVGLQzw`vXbR3o?Sm%o`hW92RSd4ecxmn)a@VQJC4 zcZF){HouuGtFbtdZx-#EE1O`yb7fnp2ZV{J6odUp6BG3xoW$9_;h(j?RFJ*ucgp?* zxxAqbyfd_Ur;H(wH%dp!(bCmcKSexp!A%5OJp*f$U?9|i>B#fkChu!e6s~P~XfcZn zdW4owZtYEFja36Ue(~z*1I0TGH;_toG3=>`Pvprfb0L~d9v^qut zi}Q*AW!K;yrfG`i$^snv7qObA$z_*JGxuW|grq!z${<*l$wybd3WgwM0d!={P;Wr} z*49{df>n#WXni-n{cAWyhTLL)OUHc84K#0j)IG=ORwdNs@I={ea<5bo?xyUsLC5IT z@1#)`#>ZY&s+Xep*FzP~^hbj`C0}7)#<%WD7mK{&p?opxX+9c^J~yWzNFP7RrW1XS z1TTK8zYAHMy*UpgVw*CX_BSXZm36QT@c(|Lo4%7e4@nv}u?143)+ELW9cmAStj|8HZ z5V|Z3q`SRIRiy0M(wQA*l0#3^ydgYlSnl6y6JKVC!nuI=E(8`rXH1}S3AFz!o2b^^ zZ|mNAbhgTjN9QKilzQhdXtxgHh$jj?zHQrr-QLwDi!chHcYx?YX@oh)DG>u*`P3bAK$cYsbPv=e3S??r$kH?-#e8#`^&C zerfCHcrP;VO|75gJ!0N3YCWF!Vs~@mg&hmuo*1u9?5HWSik-K$qwG)?svDcgcoInp{r+VRZ0EduNp?4 zm$)DzQvdh(aY8q{sP0Kq1A7!&s);_8VQ-AlcBD^;9wSgEM1uy^z3w%7YprM@3PBan zcAs~ap#17^%q7|hK#9*1^EdTljJC(r@0)X~yT9%LWa-LA>-WzYXEsv2M#Jro59-;< zjV(R8b@+XBIGn(H4T0BDFF{(}?mYTz;*DXgr=8AX>YPaZ{@K5&J7CP<*X%e;Dem|O+I?Md!9~gDd^djVTn2Cc3b*x4d@$n4;lJKp>Ow=S9)pgcDvjijQkeS zx9oN|4c_Z>+_GM(5Xq<*1q@A#4r%HVA7cV{bR1Yap!GDu z8ntxvOB$PZh75aHX}7QJT)*sHPt1;v?0_8|3c*I%eTey_{py9(U3?q;v~_$p>V*F~ zr^1oAGF@;YnWfgW6S-YS?ON5Qdk-Hm!Q&bAFSx*_mw`Hv*T65ng-kf?7_sEE&4=#U z?cICqcXms6@tunQi=_hg9@NzuT2J;$nRaB+s1o1utaOoDCx8{hn6(mYC!)K9J%7<| zn%Q}P&xKEvOe0-)O;z{1-MEk<8Yi`Nba%uDc5m2To*l5gyL*GF@U%}CG*25-$^#;ZlIE}`z*ljejX9=Gt--5C(f?dIBFHDL&VWdc2ClcV?CV z1tE}68XuAwMZ1|sm3Z8fnMMj*KZ6kxXM=4ueDY4>El1i(PvgW$aF#U0d{G3WYY#W}_64F$yM&h^^!OVz5UIUhm1 zQ;GdfO^2ksuVacbuYtMKCY#Xq?(N<5-^?}>g5xyp(|xEt^B2`E-*oLx+x3PgGJhtV zAq4%1;iwkC{x|4x3}Y31bK!E09WVG`yx6+F+kgIr?nCtdK6g!P1UfAKuvilxHEDvJ z(#Nz)ZO13GVDj4|m1{@0e)xTV&=K(KgMat9BgRjF#4Uyb3}4bpU@0d#kza-~y)L6G zj%bg$XE;rU(N zYq$R6`3=t#)=t>gC!X)@-V0GXVUT~S?P%nYV9H|kgszaiS}*A?eu|=r)38+OFB^+m zQSeFO#Ncj{@lxBl^LQy6n@HMua2P4e*)^ge-KZOUNBtMcsiX$Hf@`z?Y4}rMzeJ=h z$pR072@;wMJ*6N3MX3hdkMcPLP(!paxy?~Gtn^=j&O)$vR1#|2CmyB;8A#_^#40md zuAJ6x^8beX-Fy1u0v<4Yfq;-kBeccjXkoG^BL^k%Odo#OEGUQbGy0OU1{5xA{k%kz zgv~X>x6#31a9SfD`>A|vXg`o5)%tYyU}*1e-J`B^U<{Z=sw~ENT}$|YGJku|ylKr_ z)st^}^33hUjjJ!8u?;n=`=uQ_yE|^bYUtKoj4v-dH*`D^J9aL7u{mB03U7C9-`c&e z>*^Q899``;2U6$$=E|2BzE>Qt?e6#=l(^?I)W-0b>eTgHF8(ZtM}WGAt{v*&+`kPy zrZ7Ls-@e_whgs4j6#ePoWp%RQttThmp{tBm-&y)seiQ#FG~=Js)~G(yooVKQ{IR3E zPU`%mQoVx|-N{S$p1KYM+zsF5oqH3Xe~f2=v*dgp?taFMy4MoB3Y}&jiQJ&(WhQ8J zS-%v@GB;=d$yn+vTte2dqT?*fl6`yeLAZ+5`WkxJ3*CQtzVmqm)N?}$Zkak`>!+jq z(xSRoyoO%K+w;W52;E*>&aZ8C=LQR@k`Uqdo`G9!zIJrXIX02YwU%rh{+8kWD;TO|&mey*)MeD&v^=O5!OXIvTd z-M!N|wqca7@yZBYW8uZj1=$}WD$MGpf7RO69nx74y!UK6} zXhg#Dv!HkJ2pXnWsMPXBWdF%kUNG#>=a6VJKrSFi@rQvpqFnlOkk>89fG;r?FT-A?8f-iI32CW_KT>y*AG@;Gx z)pteX(M2#a%&`yzv7m(O7Zg-Ys3w!d9?WH*>L0?o$r?eSkBkr`1Hbc&h|10vN_G0* z>$$<&X;_o}ndz@#iApC7vdRAN_Abb%)$D|r0dd6kDk8hm9@bt)ZsvCE{H@MpXf5pO&Tj2MEWQJkjk^`~541lbdTiylbr=O2hE?3iq}hz~D6!_H1AU z8GIADQ=Q~JdYNA}y)Zsrj{)%$-F;`biYuqu?Rr`@KG0M;Amov_?B?e5i|i+C|7SPr z!D4SrqI8RYS7GZ5+Mi(fmC}q|y#}sjy_tfm=pQ4g-w6kLWNeBgUXJ;<6B|g>HjOR3 zH+bho>N}lf>qOIy)T&|ln)+wvPv;a|EY05_MOEq?tjVl0urhno&&kCWhoi7N3g_42 zKj1c5PUL;5^X=kK&Gbs)af8PQl{B$xCSp%M#LUotr1B;jv>KT9RIF|xI9sMfIBD}< zz};5|(gPGsV2wL~vNceKduaT7K&`5<5-% zP>$u~imKI>l;;~*Mspz5 zjiuQkX)UtkP426S!WjjW&o}l&CMX$a}9{?spM65qYMY7-wY;v{EvY~i6(?D=qR z7wtDosTLlp<#n=Non#@(JJ3}~;?U>aXT0ym03f5Bvuq=$S0oPAJ2!RmlA2Kn$cf|} zubh~-afQj&rApq?XR74;sra#*g0h{}mlQO*83WK+HW=8=22PHYtj=AxF>%mYuq9Qp z-DdqtYVxt0vUWYsxqoA>Dm9alz>-NwlfQt)5BD}xF=us4VUlZ&Po)jK<%TW+O&CuL z>T+Q<-Q^}Z6cpF8!WHw9eM8(L7;6^x_eKs_`YdtUc!8LhguP!&vnaU{|CEymv(!~X zo{uvLpK5?bYt?9`11FZ6kZAUPb04T7veA0bcN<+>Xl521$~QC|??FcjYH?P7x1j!M z%9-dSFU6&axGC=A;4hJ)Zq1sbdCt_+J;WMO;!v}bEC*2*20456&q5i?<sNK;~*fDt1UA0h7gm#kkuyzVZ$WQixm_!V21rRPyAD)4+qVMze-~voR_2X z#Itod7%=$@a;nzUv>>wzS)}yu=g6=;%Z{0u6?VBXDcmIvxh?f@#i`vT2QZJn_$%bN+Tj z#>8pP-;-5$5tn#p@Q%C9+xF!~bX-^cT*>x%Kb<QP(=qPu;m;OsN*qL3JWE?jn|0!4+mi9ncM|SU6xGmJ-{su&sbk1$V{sCz?;>KRllmsqbpJLyoybwUCqX=v z16uw<7JLC&Q20n+>}Y9mHY_-^Er<9Kica!D2-C!p=uK}6;PR?F2@TnXW}WCE)R6&E zdhQh3u|%~2gP4nt_?}9@30tv-4p_t*sG~ou3~pk{Zvz~#6o|0X5+2Uko1C+C+}A`d zU-^eb=5j*GrefwLI!d5QJ0Y3L3APEPV!7PBxt%m`zXdE zKVa7ri2{rHJaohDZ9FRVI;JYlLq?b>OsK{~F*P1QMT){T08Q$f-ig!KQT4QwbJMd& z8^wG|>h7uzB2)IVU2(-sh#_`ZrQ!2&fIULIm~H8H@^A-aunFL!eAG`LWi8V#eqZ8UA&Z84=jwJRCOY9$3zxle) zs2S^RbFpNEct#YeHeuTZ`Yo+A@_33wgx2z;t_w*7J=-Q@kA&*;@fJ82_;AX{Vyez$QqM7dz!1^K}Cx;v$nYxA= z;%w#r2@y}+7#H6BwS70!%v*VP8>;;OP}t0>d0w+&->y(W@C&T{3{rbsOGp`%S`^>_vsnS8I zio*J5-L1~~Yw8a=7o^)dt{XUf&G4?_X$UYKdY=K1>Abg41)ch2YW$6lf|sTpfrhnD zgfUl=jr3bZ4dx#-`UrR3$(%RK#uR7SuTUwJM1&Y!&igtNalSxY+gQ}4)X@y^h=B8r zNGdhq>czA~iE=4CXTn>IKM~lH?wqMnk+@J&+*jy<&a#h2z?gvJots(-pwYIHUXrSIp0bA-BAqdLKSVn1LcE)Q$Q96L(aY#u zuV)9JR&lJ;b_WHHcJ8nEsQYwsTkEUv?v%m|g2bu{&gy!5qtKD{wA8Q8 zIfN{ukyeSfqu0HJtM!82sS@dW1*w`Vvd<&)REGO3!d{bv(MVYZ;Fn#v@X*Q5Y9L5_ zX(o^y#oRV*>C~4uB@Th;6nG<%t8Fb0u+0NlecEWk<9kyV{Eg#s-i|sqEP0DM+452s zY=RE+=m+zfDA|;_`f5(I`TTXYiCq1HlXarZpmreCFBq1p_^a>@FiVx3>uyO+a5g!s zPb2+;ZS?DT4-GqCgo`d1yy$JcI_GbO{`1|8J4d2^iNMsa^{&gbGgog z+#cjO%f1ZXu{3il`fVqBsqB1@Iz9&`iA>DhBJ-EC&{*5fT=WlPbF;CX+0w+@PQaz9 zM}`%`_ggmvjJMzsbfKM&`wna=Q0_+UxCPEGLBL%bYkuc$+*n~7#iwpNPWheW!*t_N z`FXNC@K?C2Fn;v*ZmCM(+1)XE^TF0vS;w?$SEd^tq6wU~gXB$JSjhgjpmA59<~}|A zucm!og>PC?U;bO-5G}Nh?j5ucP192M8m-+To-|C0{De)BSrap}r1vJzrk@lZ!js9W zS{3#BvV0RF^|AOM==|X9AFd#IIFK7kdbCA!In6<+gZAmb_=TA zvz1ip%8*W-8(;{Kf`aEpJZ=PlRq#Pix><=^QWes{fq-_r^~RTC)@gfz)k*g)$}rQ4 z5fYYmgrxv8_0Snn{vB2(jzMzxH`{kJB;H`(=PCRe-jSL9Y=z}#+fRU1{fwxSI{gj9 z@n#ag2-%O!RVbCQ49pUXX1Nyg!uw@iOGa|fSJ z@|%ddo@c|s>RSvY8J&mc{~qPYYl#J_k93}MW7mHCh&qpx`W!8caGI<=4Z9E()M-8C zG)hwo^yyW67dXvOo;I4Cc~?>nQAWR8O^JiU7G$wFUUw4vt;VZYc$069IFI~gOP0}P{OJ@-eWtjRZ;UuM zJx_JOU=r8~WA`n$l#}Q+wBKe3L%mcX|9(!13F?^nHq75$EKM%)PT>hpKDPmHo=vP? zC3b4nDxT<2Tiix2wB+&Ii|;ZcG)wu5PozhfW&H7pM@%m%WG!Evb^bOwozba5?)ev# z&q>|^%LVD!UN@63sfkw&W2~9Ksuu7k+ftM_ERf3f8TvC{M_5YJyo(;X^_1H{L|Ulz zG;$U%Cls;@Q}?aGc9x#Gk&c)i7b7fW;1*u} ze+;)up{N^BE}&`Vb-Ek^C{XTyhKiV}1XJ7ptwtOUVN5cnWQNm0-lxA*S_~KR&>tD% zdWJKT%r_`R^B;*I=q}~L=X^kVOOgneCH%$tqcha z6iv~_%pOQV|ChMrih;oFa7HhEW~Bo4I*C=%`KQnEl1>ClB+v!Duu)3Mw z%3~zijAliv^q=96IDCem`~=C|bZ0J-$T0+G(4V&#->D(^5EFjQHDH^-CF%6q&lM zNLjIlhvSd4Y{~1Ocj&;H!uX))N*-SbVvU;*wZ0yhLo!zoO}*!nyC8FdqzK|igfJ{( z#ZYD(Rn#gdVj`}w=(iMt`vb%^E;%<`&38uovrMANBtq>=9+pT~!I_)l;QBi$El=$X zD8LY=WtZniNmIUjIFnWtHj}MrrU$k}(2aQr0u&72UBAh>=?WNYyVZtQp;>COJ!ZHM z|1Ghl*a5f147kJB1SLtY){qN$jmv@M#*O3$;AIr#EL+rPm&#o65kzN@kZwU) zo|l?9B!}jc`c9#9lP*e2mA)0E7i2!KN{#p!M3||j>{V^A;eZk9l*nD-B=-O^k-L%| zeRPvluW9s(z%;rwW@cQ;N}~G@>p>kv)35=(??zp}k@4IrY70-R#ubkO!i-k)aWQX* z=CU!r%}g!q%NS2HtA)-xg;?_6a@XlxIHuRfo*$%eZW_d>s6j5Lk++YHBDqHa@T!^r z@QzjkQbxM@ZRjbkX2<#YVFDFK)5wGPng!L6E|RZ?9rd0fD3H`<*kcN2M?SynWlFGu zD-&1Aw)4`RV`jF;|+g})=pB6eL-cC zS-o2Yl~RO~yIBeXL*sNPFkWjk9cI0UQyMB6Y&*&mSC{7E$7cShoRBXv+G+b0@AaK? zbx`hft$ZDm*qGb0>*yF!H!7LzRge=}tfvG*!V&I7z1m}$IEzUUq@9!+bDZig2DjS_ z?xzx9tO_N&5gnPV22i7gfV{BIv`L|{EtI?wDH7J^EmN=^MEZ0K6DBq&p^R5x*#rPMz7kU#M*}veuKK=!E`+TWacITf_AP)_QH)AQC z`KQ9YH<%DUCVE4)_YP}X2T63OpEiJP?epIF65DOxcofPN3kpMe!75Y+wv+E&v`(3r zCD>h(Yt8M2~l6(YM}?+pe~9cDVe`fZZMg<8BM&JzP?^!T5j3i?$Iowb>)Se)#c8rXWiZX`-11)gM&B4KV{%?cF*Z8 z(Q7|RFBFtUH{M?AZsM!4(H$LANFq2NTDIaboSfo9)JY(0h(IaOHoJTA46%K2J^>wK2O4AUUgQ!iKaR9Hz3@-QzxM$5ZR;Y|K5c5cUdecI;Zt5xTTh~wImveH-sLc3kwPR(bw!J1nXLN zD<+fHt2^Hr5FhKEx)<5QJ#`<={F%0~{de;_@l(9xacB8A_wSr}9e>?e=&{FKY?;Z}B^Fl+K;;f<2%#JSCCz43;T)+3+fVgY*;bH znQOCQM%{kyPqo?CtyG=kw+9fOH1`*UM}cuOobK*^!@DGc+ezV8Hw|u8ScAsZr>`4g z=~LJ-x<0+&ZMU?_KbA7UnGWnEUGRbLSZz4I?#XndUHFZzf422a8i);FKP>gm190k+ z(!@W8r6#0G#ZB>VK3GXI1Z1@sZg@8iM?2iVdLLuU9nW)=#DyeuVa2kopRj{nbZO6V8Yv zGLgh?1XTSOT92#W!o>#_RrHYv+!jr&E$KR;BM3;WFAT%p*Z&)cX#v%V@CEWE;C**)j|K6B35mJOEsety4y z-pyz7Ju_!!&NI(E^UO1IX66vjk(Uk(ie8im-zdm)@PrR3CDP$R2av%oEmBT7gG9$r zqG)iECp>qsN!u459ZpPds#~drx@S65Ch(G#rsfQ4vrSezq!z z8UuFeu(}E=B^;JlQ%!T^CLPjXMPp;3GvdG7VR6N7Th$TfxM)S@TNq;E^@dDYEViaf zQ}#%#o$w(T6k4kK$)ur8kFyam zIVxBG!S)8RX}ZoaGwLlWPR*;7UDLf&_mdW&{QADd-||sT?Qc;1J1V32xhKkg2nd6= z5xsqTA4v=7Bi4r{)$h4Gr1lKo8&t4q%6-Qsa}$ObF&PgS--Moc_twrU&i#0xD|RpJ z&xre;$J4pyov=sMVwkcG8ZsQ;3&cPPlfsii@q{>!39$UuCR?ZmJKP<=Hb-oUNQH!I zG5Tewy;W`W{gaU6?_%(YPpch8!bweYE|mj21!iGCap*$X+| zOo>j_9!2*d9cO~_A_M(97;LkqIsHT1w@ld6Mmw@S{Ufb6G@@WRP4u>zG!Te!P=A9S z3A2+rgvU7s4TogVyLs*Lw`r)95;;0K5_f6&_Tv7|DGGD5rHe;j4B;%I7;ccDCaPkM_fjWvis)Lmj^! z{1toOf34lu{tt}sr1Ns3kZ2U?wI)-Pw5USM7d~S`uIV1BBu#Y>M}d~6{00V5ZJMox zwg`!+zXNw0!%?6H^t&MtvTz+jVl#$^A8em;DB{ki;X~=DbJP-LjcP~R!6Omt!-t1{ z>IiPU6kJ4CKyep;J6fVXvMIHjl)kYc8nY?UHR<5vXo%9*4t2Y6mx;PlwoCd37$3pm z@ZBkgAply(r;Cm>Qn!u8=~&#li}&3j=UP=Aa&~eq=oj!c>&;4HRD`zuVObvX;0wWu z5GePiIan_HdG!dqvg0d~!`h?Je}%!C3@55vbg20gH*JsDyhpVgr$XV79XCJYsAYhp z98~I*X_2=FgIPI_gA~$ai$c$w#Cv8D(;?t`4jKv_T#(b49=U2;6!aY0^eC7|jWt`y+YY zFL9))!4P*CUWDluzYXe$veBq;TD56J__Tinh~IOlpKJ$ySw@9i32MilYIK<#xzKm-T~7@ph+Z@ zkd`NgH%^a4n7nZSS@IdiRolX;pFF+~6LXX^rMjEghOGv3;Kh^M9bQuwl03&9-+@;& z_W0H}aCA`PsEGOk>M*cu3lGbYhBl2CMXaBuZd#_ccjEoD5pQ7eP7!0&LrGBS(?o>U zoU*^QhBAm~xDz55vA&i$PSs;Bd;{JJM64e$`CvrDr+w(92$o-j4~S@BcnFqXWL(S~ z2kZCLwyU}$*7wJPU?rRS3PivHOvmAfhKKM#Qe&yeh}LADi&($SzEOVMV%$XOq$4IB z-Me6)Qg_uJhxM=P2Y|j>Jl~UTF2)6jLo*f3(Vgt`(ApD}n%_A&c`ug1(G)loOT_w# z^pZ4D;!AYw=Ucx~gPGBe-|SsE5%ocMp1rG5vL_v1Bah*f2T(^y-Tj9^5?aUAsFy(# z&eBBaD-?z}bpHWlK{ZCaFb+F$bR6iY38IAs-42W*-lMlsWy9xS0r3}DpbIm8dBiSba};_hkwy@w9G_1) zygcG<9Y}F}hK20ijycUVp3FzFXKvx|tI_&Ya(jo}=r|$ue(RBfc$3qVDmqkcBak8S zTUv!uPX`|GB`6{;nr=`jEQwhE0M#1VF*J%<)ip3;^(Q1zo^ zGowUQRf8~zaWffs`RE%)W16AyX0}yOJE|hLejgOObIR8dtDk^$@c~%Gz2iyHsD8_a zM_+$yNW|(d@OU1Oq=mkVj%fN4F|aBQcIlK;5v%FM+s52*OaWpIG|GWx$r1JU;$m7v z{Vh~3u)qN|GX(5tUjkp$CWJBvZ8}Ct;in?NG8zmCIo^oI*Y*tTN68-Kt(CV#R6B3A zZS;N(U;Ovx{ppP=5)#H9S^`fB}MWm!ruYkq?@oKh+HFbRe{bn zHKdvk;IIo~7>P`yN#bU-!p)UP4;?cbu8+`GJbTc-L}_g znxt;HnNAm_b^r3%>i9Ig44~%_vpl0pVn?HiOdOg!nzLmt`6>I+4)yU3=q2QJ1@}rL z4Kr;Y7>Hck*J4DHg)_9B;+^dYDu%VeSybej=u!c0X&bLN;CY|# z!XN~V4IyqNKIr--k#*6Si>ZmjdxeeCU^n)2{$62uEG32%Xo&}u1FgrP2aAvlV)OO0 z(I`_OH(Q1vM%yxa9_BAG7sC&mXj2oX@wSv+;*3VLwv!+c8R`(5wKWmPU=3^}ucT?( zK0;W;`b9!_+#7#Fy>V0c#EA719H%1IA9TED z-^9DxntoDm`I~(U_t&04V?giNb{x|OxTLPvxAA<58+@L;tsKR8hZx;Pb7k_U_v-0% zH=?%hRQ>_J=MkyxP6`9F+wOx8%B$fCkdLA5ip7XY;xc?!lJvewLo96DAmw4kl*iX? z}Sbq;yE2N}>_Onypbk_h7h`EsHi2JUgpzb~^Zn_?+stY#J?CM)O{6pV5 zD)#fn!5Fs;C$k8H8W2h^OCmAHu;1|;neQ0II66Z=ZNxxGjipz!Y1)y#IU*+i>Wvl}nj`VD5{B0>*1U}q4mZLd*{r|_Ct^@|qVpz$i^2c_Hg zF5Tk3&8VLoEYsC3I!jjUQ1bBxP6c1IK~9a;x4%dqKWTr85@REny=x|YzAHyVY4>1e zw#`U_iBS%%Hn|Yg@~VJ&K+`#cHiB2;!Q;bHoQ@P{TYq?{(jr#jBf}z{y3HCd`L7NT zdl*?nIZkZ-K@D1?V_l7vR8`-jsy=DV(K^QCTsRz72u^-l^(``v=G?yH0c6vD$EvPa zM`y%C+whIiTH2xa5HgI|Vo;^xt&FmsaaBib&5G2BEq%c3Q()mbEjJ#I*CTG52Cd9f zzKDidlAp>LaVNdurE;bLQA;y-VN}Iyf!7AlrT)X3)zlmi4dUQXN38x8k=y9h90U() zOmgzAVxSu~s>%_}MW<~dhSdfPt#G5V~32V zW!xyEQ^p-Kj+gUmmi?77u8}cKzW=i9510KP$^H{EhVXFDc_wksus5WYj+he5X=uU! znKiMW?S+KsX+9QC$JG@UPT_hKuJP^x_5;rNZ>8hO=ns-By?=rvYM-MF+vf86#=D(O zgCGM4*Efcwuj&k1+y^@$CO?Ts>UrK@=_C1L^dW#qdQXbEM5tix7$hTI>3z&Tt)ijx zSn)LJC&tvs<@%B%KR-J9_?ZY78Cb1RIQz8oDN)?xjt|+lYs;BC*S4l;F0ZHa<=5N2e;^-#OBuQ?8M#m}`x!u{WWzC95W zC)}Ya^WQqOXEK~UzkhBN5rclZu3xqlR=)7l&$6Fh$Gi{A^gRp!y=8F?7M9Q{^{?VM zdYddy$aD{O9)|hQ4i_Nw^xZYWW=fb7J z?VXEjxIVb*qN+qkZQ+m&aw#lgLvYqnhs zS32Eni-FV4Hrr<7{*~!w+fQj`+gi8^xF=H0wk)_dxE(2G+Yq?rCbMl4+%G6o1>)Cc zp*(OiGtIW|;9h{62>%xuW?MGgvp1M+zfCjSUWR)CbiIXpFO`CCx0-FjJUk!QN9UVu z3xIX-pDr=mGT~mbnr$=S`ojH$dxr{8R=5|&m zEVFIIji`fL%(iRbe!3a_gfqc?KgVo)3T`&szi%?z&YXSv`ekO@f8gH*oQ`s>wV7=n zp{&=HnQiI7nW&$KasLFKb!w*B_8eRi=>2Ji*=EG`9N=Eiu7`^R&pu1XQS)#KNSBPd z41wEQfwI9(gX;^|SdMVG#S6@~!+6d!aL176V#K|%(bq-Xi!14e*o?Wg!wcnnvjN-L?4Y*$=7OJN0PQfcrdQ}$=7{w&2W?n zg@@xhN)8Xh^(FFkUtFt^k4nx{BVSXV7aBvzUn%5+!#G^VQo)SN(j6^rlLiI>|4}v2; zP}zvy-olZk^pj-@!qTgJDe^*bdXpEW{wYpx^{>=9#R*jBJe+6-Fa7IWsb`AQTRkgv zOL2OuTctiJPH*+;UmxCeNcZUHYoAEjj z|5^V^{cH8>>o?VJsoz?^z5d<$UG;nF->ctW|3UqM`h)c!*B`3?tp1Douj&tLk7~cs z9@BoS{Z9M6_6O~8ZJYK-ZM*g-?a$g@w7+Uk>^NaOx#Ohqw;jJ3PwhBmJiX(z@yw1h z#smk=0u8&-&T~Wd$Az!Ew?iHRCUKTbB`-Crrp9H56E)EjMh;d?uI7ciK z>%_aoX7Mp`jks1^CvFs5#NA@6_^EhAJT9IPJ4D9nZm(NfS6jERZb4mXowd$VcXQpW zx`Mjtb(wYPb*4H)T|!-4-PF3tb=THSs=K;weBHRZF?Cngjj9__H@t3Woz6MfdAW0t z^D^h9&VkNo=K$v=&WoK<&i>AR&WoIp&WN~(%@@X9xcP#(3pR(xg>UW~*LQPRT-fH& zxX{fZaUq-g%;__z&zHeZ2G0o|6#Qk-lRRwfis#uk;GO8x2hO44fTGeUxE&GV=U~jPJ*+Zffp&$1WUCbosW z#@4fY*nR8{b|-s+{hd9)9$_D|L+k)M$i8BS*=Otv_AcHeY-QWoe)a*|!`@pfY!vPm z9utlW9l~zmQ(=@aSqKrLh55n~Ax)SmtVONejT$_T+S-kp8zoK_L&RutzPJQmznm$q z={nM->oRw(=|0k}>o#|<={VA%>o9k$={(Y@>oj-fxGG(duJNu`*9lj%Yn>~{S&3>H z?`(CRa5g*FIqetQqwE9hm)I||N80<_``ItI53*ljA8a3JkG5ZCzqBPxAJ)=W-?t@1 zAJP)44{f06KB6UDAKr3-{sML*%VoE)*(`-6u`D)?En-z{Ia|g`*j!f5Ze^oc zEV~LHTo{IKVI)-X^=t}D#CgUO*#veSyJn^;O|?WdUlpwiQB78jQhlo0t?E!6S3Rb> zTeVTORy7l~wgfd8joO-wn){UPW*ykN`xv{MZDebiIY<|DBxp^LS*z0?(XP>&`{?={ z>9eMfIan8bBzR5mI(4)9gt}EdULC2fROhJIX__@BG_9KPnn+EhCWlYhlm4a|Rq6+5 z=~Q1hELUK(eT@b@n8On>gc0#pL&Utfh}R<`Cf#ZEhp6-&l#bSPQCeE0PwBCQ0a8Z& zw!7O$pUfEc7c+XLe+Ar7xEQ!txUq0o!(9g#2bTnw4wnNr6V3uh#>XPKJK$EsJq7n~ zxGiu8;J$}*!3}^Sq|>75BYf3xG@HB??iV6t)$G6;ap>6m%1qm4Slxfi3b2bayZcnva5hiPiKk z;QXBRLtvYrpnFGQqwpBK<($CS4cB6p_K>=ciJs@zcmZt=})`cYeYDgQ;FsCL{1=*RN=@>MJAf_-TBr(>4YCUYws#Vlf@YB)11U%fvD&EXAee^K@0#Mb@ghx{)!}Bg5FJ z^z>MkD}_{6S*xuz{D!W)qDEIzQCnV&C^Kfn^2AcK93G3Rt@mH5Da(|bp4@u`d2Z_5 zx6dTRk158ilRYtaok2hb^pQ18Jb+j-(jMLRTVPv9z9TlyZuKz1_l#za8dRA)h)YPh% z@n?G15xAJB)Y0ak+ys9fy!O;;s<%JQm%My5mflIhW2JdjqUG1g*KoSR4)xcE9U8{3 zzdUr5Xz`KLXFj<%@sZ?4pRhk7FNOkRdVY3pdO@#J-`S<_)=V>wAh&Fz{pNB6>eJzZisxK*dk<)^d;6bg=bE8@(LBG7=6ZU(2Aqot+ zrYytxNb%y!uam#y?I`M%AN1SLtmW70%?&;HQfIm2FV#_+AuH98dp=@3d?EQI-t6C} zGhESNCSHE;HckDJ(vHN}ZcFgjbs;Z*^q2Z0u3wU~b92*;*@3Id zQ%9<=leoO@-#13TFn$`p7KhxPaN3pcBd4ve@99x*zbCuYH==4xJ!?kc3ZYad#FyQV zUC*CSd^tO6j@*vyJ^14IaCrc}u!M;dt0@im%vhj)Iwd>Tl$TF;d;584nPlI<<%MWb z`lI-;8S(kYVtD>a4qMk6sZFCF_xZ`P-a9SH>G|hp3vbhm+YH+ezQ^+;TCQjq&G{0% z^5Gu#%c(2+CH$4XF*Ca$E8mcwmFH6gZ;u^3xF>ig!1cxqSP zDJoVP<#y&BD)sTb)e*&tBfb2RS9^A0|t{!%TQa1|v^M$C+GtDsN=A`HJ z)SO0baC!NuYfXG*bIp~oxSvp_QcpZ+0Y4p@4*+MB`0rIa$0u&c}8n?YOkD@ zn&C6}^BdYv!hV_0uggL^d(iTucF_6wq9^_a;!Cn2FF(Unn3su;DXF9Xt=IW2Qmt2r%K zG_)s>4Egg#_4VE!e97H7SeBvRHGp0A8gh@G?gkJM2{c2;WODuSH(%S+nP+2^gJ{rledU+U<*<0EQ^ zBr8-$lP>P2>w3v!aO4Y`4Io`)}r zypZjZyYUt-yTk)YAEU_uoyO#l^hc7Q= zN%IR0?FZa^LEb(3BjT06JpU2Cq!^Mhw4c?hvZFpgX-A1OZb&40&W`#rv7}@~V$>@y zB@z$(>xgVAe|bq+e=6R;9X%0iGco;}Ze8c5r59yKwBT8ZG!LZELTy^1h4|u63$^KE zFI?tRN3his%1*Kw z^qdx|57M(yuiT}F?&WnvZF=#RD|~oBZQ8#NFgBL`aawv&c7f|?rJFBO9r?}$Q61$p z4e+7w&(u+G%1+@6={kiktGE5^=F5XqSH{yANzpBY)OTNY)mJ@q-5-_R-jp5LyRW1U z@sXFbqg@G#>=FA8tpzDLbO2q5UG>2M}*aUL>30A=H0FBI!EG z4)<_|#+UvwL^|&1vWI+hU2n46o3bN$q4^E(c0~P=!k0jO0LhSloBnu7n>=Rn=v{wW z(vwX&h73b;@1`9et8u>2+#$8$S5mj4UbgeGEy;#|9T9#0PGBEFz5 z{~#^BX*+x3oYhI37UBu{aK6l0y)EJLJ>SJ&cGb;zhUZ7^9&>m;VU1<;{sdoo z({^?~7NR;LIVF8Uv{4;x9Ndr~*^|ESCL~?wYkNOd-mk~_sP}f%o3^7iJ%ICt+B4Ba zV-n0ofnVFWziq?>ZU-owp*ZjA#{2N)&~ud}yFR+EcUpSWc0KhA*$j%j5MTV;H0d1w zvHewF4gcLXotFbWmzQtIPtVQ@WZaEDJA=<{QCX>Pr00-bM>fs=ec_2DyZ&}I={o;8 z-+rs~2~?-v`sE2jw&{t1-?{BNUs`&qJEBF=FC>#h%h6@UdejG}h4j6DJ0f2BkJV6T zG^g~(X$he2h!#cfDzs3WR%oF%?r&!kE$AW=zGWvr&qvi-~w z*e}}>Xk0>d=RZ~>-uctg^k_NqS^Xzy>8b7%dzYT6&=Pj&K|PHbNnQfg5$U@1r(8a| zj^w0=?R`FZ383zX7JqrUqT!gEFJ$jZb9bmU`A0NER(VOWjBDjqxaKf zGkLcodPhR_Mtq?*Ge6+ddK_9+E&Ybe+zu-@w!Vd+{!o zUE&MXQSL?o?PnjC8@lKJPMGYRK=UtB={#+k1+Jq2nx!XSmOS|^=ga$K$49>?G$?pJTFy5| zM&mN78{!KgjY%d>e4W=3*_;c0==R|O)un$sS7=c1JhTMRay|K?v}u}yr~arnzL1^s zSK4%54kq6VO_@3QvtUut^kBLe@&7%BRw+{?;dlqv%MF%(fh@TTwdrI)NaV$Wo!-X%=`H~m4BP2 zc>eY-y&uJUD9Dp@XGqzSQtv$>j{Tojn|@d zEjhV(FOZ(s^VJ&BqS)TV6QTuU3mS8fd?o~%$0S<(^~;~2CA%O$ExRDk|Gg)1&hw6s zY|Mk1L&2wYd|Xd`616KoeQziJffk>3^x6C8;z{0>x+1=mlw6Gm9^&(LUUh`!WQH3J z0T+CD+7a1O)F)v)jXYa=l^2@x@RuQl1_cA@7h`s&sW3k~(@h)^=<}nsIMcYi%v}2> ze|NQdTLac(&fw#s7sGb;ct_v<%_n5j_}C0Icj(^-NPJmiP##B1Jfto_3Gqh{Uldwi zNqt67dW9UxkH3A;u}z2f_P*;P6@Dn_sUwLNYSWxAd03BwH{}HxfmSMc<}npoqFxzk zpfVCIG;WmUNH$N@l`XJ0*aQlt)F7*MVQ)B1! zH%RSyUp(0={&PVT=3hq&KNR%m3zdY|5$_s3)6c9tP4&@!dM$HIH?rJ?;Z{rUKU=lvzVK(QFJvvczblMKl>1biuM z=Q@_^h~||QU3Xj5E11J*=k<0tyUCj`cB&))_iDx07h=Br6(9Ywe~H6X@_iMzrKm34 zwB%-IWRM|6>&kpYnCgfzqGgi(x;WBf^nRM!G|@t`>$kqnPIBe{K0vA)Uf=FMpjTRq zCR0wbA!}B)zrwR8VqFB+FZ5iZh32IcT8PHWXBYGQiDvxl)ZYFlT9R{3rW>TpeE*Y; z`8ppL5iL|l-h3h11%G_%XcOM;`_D`LsXDr`w-u{o*RAHXtke7uNBt4xR!{SzL?hV| zCtkYKhc84QwKKmm^^h0;{wNdkFNJ9)tU&j#8zm<@Z0$;3M`Y8HERfz+`szUI;7Ql{ z+nppYu+igxsk;g~J0qUf%KO_=GA+HX$fx$Hyl*5qAX<)MewW^Vf?7RM>^}~W>=)nt z0rb9x-jjUM84R8VdDd>p>!m0kPD`dK6KfjC8{kLlcW1e6DWa#LeWjkp24utJ1<`vL z-yhj^z9Hn3?71Q9e#1N5?-Ra_y4{B_6vLRyH|NzO3F$DRhu#O! zdM>i}$nQlsza)9_pMxh_dc0Tjvv(D~q-VjLDuku!w=i>i@jqc3NNYn$c1V6D`;4KU z4kXb0ss9+3X#OKM!~RMg_5j}I9>e<5!bfgCTGyKv(sM+QM2j9WeE{;?bInO0UJ+j; z{&~g$=cgs3U}k}@5R=V7&m;Y+*iL8%klzEm4~$nrp~1V)&Tl zvxJMw8>fYA7vc@QCyAZ&ADX92q;}f-c6)+&Hl7dJNjQ}$uG#tGI>vRNR^BKp0PdYb{d1wT0hdo%6cjDcR4<7 znq=4i-2}a#CVi{$M;Qm~&$!GjyR<)`FfSh+W4@2fx=8^o%6OWdLA20(9rXb;A4K)$ zZ`YB|2{d>3d*f+|mV%@}du$|nJT`+u3(3p#l}~Y6D9oQ0(l0$}VLjeW`1ePgmQ0Ko zdrs8JtnrK+NhZlb|6`BX>%5;L+3=eSvJ>z8-}_P9`@L}^rzImjDc9iJmc8ppnU|va zps^#(k?dPQgA$AHAYbL-va_=Rxh6or@yT^4V*@>ugJ<4N*en5ZHg?06B13f>hWr?&4 z9XrqpO(`j+WX$p#X6Bl1H036-9=GIhYtj4)?*y2&V+$&ZYs)M(6;)n0axsc4%*-|x zWN^c;*jij#WT~+h(|$MQY1k5;o{WttMobmVC``#UO)oHICC`#?2aIS;H)Ld|7Vz1y z3h8XrFhVyk=q5%{93tg5KAR@E$>svEx~X8fcj*z<2P#d;Az zWuqS8Cq zwsH)v-ay;bk*u)^<0j|~8F|?$`8r%)Gj0OQuC$gLGIYrm3l`Ltm)0z0*|jygiV|I> zbwNedQkGu6$Wm5XtV6UaOHFA-xjW=WOIfYe?K73vE^vFYEDNkGt3qe0s)9VpPspn% zslfpWma?*nB3+54v<&>JsnC^{7gbp;)mFNWsnuD_YpP1E)k9>?Wmy;J&#x`FnGn2` z3gGvv=FF>R)nyem_-`#QuEq%q6_s->kcVVsOtn&MT~u0R)x}iGr!+_mfV`$=pq*qu zMu{QhPf5=(vBj1emg1%l6+YD+^W{?I=NfVfO}V)kxYbml z!n}j270Y)lm18YsW39Zxe4`}$#wn5`&8?`Yu2D3Mbph!P>sY8GYgsib zD6e+cxe_SxT&k+EHA^e4KC!&QrHG(?0mKY#gW8mCq~sr|E3JmK;`k7*X2+m-ylK>; zd5lz^G*V|NFV>Cp$`YrKc#|aMB|oRiy0F$-UPNstrgr`^oLK^Yb&am53{oYvKpwsT zb+Mp!K^Q|jFRef;lCZEEmBWfk3d?Y^Nf|!p<8BvTbyqXr3aU9nb=Hy+s6rjJM>-Gc z55^B;)kL4%Qe&$5sVPNe71dT8o6=KfSc;3$#GoSz3+3v?LWqm7QXx5u5YQbW)Um5N@I&WR~0LS{9RibMMzJC;W&wsO@MC<@nAF_p18qqWRh zLos5CbxE~gZq=yjSY+XU&&2s2_+CnB8H&m8UCAKm&`QOMdO}~GSz299Pq5TL_0FxW zu~ze@RVJ%Zxl+R1@g(^Q90zCGpiSZM8xp^mYEqE$e+VCZwYu8MVrU8-$(3$N464^l zM(EHSiarl#=0FHa%W;seg`)V!;hFJRB-38;a-ftv1kmH@p}jqNepO8gOUunqLA)@Q zly`NKj>|ciEqi4p4)0*i8}T3lK)Uk5cQCgv8~wmCR5HbzGc*W1LxD>AZ4~o3ylsD^xF^d?#-{`d(6h(k;m=-%Ce#>Apjr zl(Gsa-6J?N{3p0BxIW8@Y?r_dfg1-$c9~+Ek$pxsr{Yjgk|j}?US5=IEkW0!1Q@M6 zAf?J`HF9Hv?#T@FimilrMOW(CZ7nGVmybc^Yir4mP+}@s_!@5BRu>A<%a3HwlvR*v z%7qCJWeS5}X1>lllonsR!)E3eCL40{3vx|T9QfV#zdHnN1_dprZh&WmNT!sT?rTZX z3Sk9W$_izU@SEHSa|?t-us0=tjlMtlIFdi=(m+s2={#zOnHHN>W^J<6PAD{|s-nnR zT`k|Bki6Pz5?8Mfqtqb0LSU%NdH4lNt-M;UQRGI|=J6#{7wGXK8_A?b#Pn*DVm9)F z#30@XMGT@4#t^hHnVb|tq9jR>wlZJZmq%oO`*{Taf^8L&oayr&mkYxFuZ>0n!zJwj4-QN|*FR z`M&2;DTN#xQ9y(oOD>UoOD?YDlc|>@`uKQ`(v2JpE^!$9qOqcq#t#PnRxyq+Bi4O@gV7f=#a1IkJk|+Y`W+aTePPKn8pj*t)}P+YHpbi*L9P z?ljxJ0pi|uFf13Q4@V=Xp~9dvi%d|qHHa4>LPm)SN37%AYJD!?PaRA7sUxpUx} z2#c);{hC zi|@AFf&060t}t-jd#FF4ZXdoy1hntR_h*3S_wkJwAo~E{#sRJY&Zh8I&;=ZS0CWLc zfvbS_*Kuw!g};XLnSr`D@x2^iGw@BIc@xe+2I}9&w`71vfFA?xn;~Zu{$HG<42;|Y zIRmZ(_FaW^L-4&GpzdPO18ltnbddiFvuzKY-2GT5MZ@ z<{=i_KHwUi#r6fT^$LsaN4no_wsq5er`dKv1D@+L+pYjMkAi+69BHxXfh{8}w&~<& z7F#jUtg_ga0CUt9I$oatXxy2CxkVGBtNdKNtfGrd!?f(&LYmjcuviL7&+-c~NyjoGdQQMV%0#+>oZZpsT^uEl zrndvfp%@s$o3e=PJf6V)qK^BpdLIi~)A)7XtgK{yk(r&9U6_ZRRM>?r-NEs5Cf^`= zHlQcL;37TMb6=t_V8N6~d4|lK4Eb4@#m&OYOuSd;#HY**z&I$D@z4xKw%TteX6>^R!L8yd$$c;}J%@+9tVB%749asQdn4MB6FI~jTC1q9< zm;B&#pwg(6HU*+c!0=uM@0jt%2wC$Pe5A$U(bAN@I}8u-4#PsgWRls!ob0@GIwgRv zjp@0N8`*=md)c&1gKlJGXXoI3HeDta;7vKTw8B(6`Vt5+@?1lJlyDpw&6hpO`JtVl z3E=ooU-3d%+YQBijE4x&(^R>_IP(mPR}DH+U4$ukjq3nkI-8IU_e z4s*+^BqN@bTx0@7lle+g%^yJLC{VlRtE~*Q(TzN`lm?n^4R3r3 z^0Rw=G>;@jIe#3ljAX8%Zu2?Y(!m6*R-p7)&OS@#8un)7N&LbY#5p6girt(SkowSEDGyxmT`+CSKsU66z~T~gCja*%YCcb-y+Pp+~e z>zS{7BVf*47p7+#CV9~z$M*{*y*L>y?S^!(s1!Ki+CZV+#7eRJlKB+8!_ zfKTywh)<$x{S)y3pF}*wC((8OiFkldA|B$CDA#1j^`?&eK1nFRCk5wgCKlJs@G7<^ zFkt-_`p1_mf(QGh;JuW8e9odCxo{rz2<3(B5lZFg5y;8L$y77^XpqVCzC%$bE1eOR z7iDEbI^@2IdnaC<;`U4FJ<%n&_n%#yknbY=D1wl2RZKjJ@J22Cye0g~&{B=SX20+|cvHGn$eOvkLRmrAFW% zo|eKzotNC5jg%xK&@I^R8Pdog&s{B^JiYHij`5idp8|W|&cWtspPLxD&;SM!n!d=J%9t)-=8q-RQF4w;!=Vy1+6%a}LIQ6XMlNxGCYK4Rn(=p{pP zxOYV>k{jTbyBg(t-gW4g%=?yAP*-f7`Wp0)g_+Q-4xaDURru;8fm}6WQ@sDcuV$+F#|h2X|zL$ z-K$2F2E%9Fdj8vi_XiX@^BxK30%?7Yjr@^}-A;bsYM>hU98d#X57Yt=0)v3Zf&GEn z#v)rk;0Rza@ETwrU@|ZSm<w>&TCV=TDL!xE0tB_%X0Q@E8zZk7k`f zH8A2{TBojNBZ18W8Pfyr2NnSFk!n^1q;FPN1L=FhD}nS4=m&uGZRh8J^v&isfb=ck zZ9w|Q_Gdu)_V96_2FRL_4tN1D2sjKF47?ghd`kqX)-aX}R0B(Z8sK7}7U%#50sjW1 z??k=`Wca-z;|3t{`yHSf3!*+GKlt%I`GH+P;B`qE0DgO{sWM{ zo36Sad`5VGAbs0<1dzV5od~3Fpx*?fZ>m=S={x8RK>CjL6F~Zg^*ZwR!wDYb2Oa%H>*zp>3h{d51<^t0l*7@qk!~{>Zw5bhIa;#zD<2IkiJV@0qh4{3G4&BA4uQT zeilgI|9%}v-*?|F<53`eo4rHE{tu#l;U5L0@1G|C>AU9nK>A+!tw8!7`wAd^8~#xs zeb4<>Amw(0VJwW2iS3u&+uR!99`eBJLmjJ1q4+By=zZyvGJP}CWn9l%G zd!GZO_Fe|0_Ff01_U-^udw&{8?fu_CYVSLM)ZSZx)ZV`XQhPrI>;qIkg7N?(fuX>W zK$VWMNkBC)4yXa90kyy!UVR$wsj zI1rx}W|}8Z55U1d$~O*3>z;1{_605hh65i1UI5$xyb$;iFap>Pj09@_Msm-X4hV5% zdLYySD*{3sSRD{z#vTJ+0(=Wd-(>y>NOXS>B)YqRM0eqiSDa_M0YBX=$;EC zx|aiq?#F>d_eLPm{V9;>J_{teFMLXR&LAK?XAF>@69**zWCH0qbAUw85+KEU0!Z=R zl*4h!f3)(D@A6UBRZ7b%q$QI%mMY7FY9(qwBs(7KQ)zliCtpjG3yQDDs8G2fPoXMa zng~^{{YIWjaAvYJ*PG`Kps7C}PhpQZ(nP-!shV$hD#Qv~z7VPqoA#__bd#oB3m4KZ zhEi!40|nB|Md4h&X`oQrE>hhixOQ$K*5g~0@R^0!$bnrz*5X2Gp}r?YaVfT?)D#xU zyI_zaJm=S%i*Lysc7EONS9X2 zdo-?@Al)H-s)SuDhmmeo!mg9UNY6rUJPS;{Gxod2jw}BCWp^+dQLSGf>1hOEuGjM; zolWt)14(})2vfkGAL(+6=N(9Ty@Xb(dj*n?5A;JVd%ZyLN}xnWSt+e2o-$vmM39hp z>>H0J347*8eD{r~Ou75!M|I&FPnl)+jYsw48&8>7_l-w&<{M9%H};JMAL0@3{mbiJ z50r+=>l;s+C-%>e%Ih1Cm)Ac#M&W5RdEy z|ML0@tyEs$cvN2hSm-}`A6=77kljc1NpZ;bQ|gxNKSi#|2Bxx69I^wIdL>(st|=d~`>0$LhipHk zPRahGYl=fQAeD*YkR7PhC)t8@O>xK`r1DT4vI&*C>?dDS94cp^#rD0gey6?Sd=D@7 z_IiG|-eIwAfcp;aHn`Pr&%t%9wAd!SV6hEcYq42gve=${5pm$}`%lDq9_!hzoQw5a zb9vvY2XDCp7oZrxb zQTAcfrSvP}+f8(pmMU!VO1jyCwp+fMloayi~&OI10xZcL>u!&Md?@3}1{ z*p#N5i$&A6sY(+1&^-U>ycDi%Tc%Ic!xjwiO#WzW597PDvCmuD|An0}QU=%^CuLV| zUF?%(pu84X%4lC4wry2NyIZL+3TeGOUyeze=qj-P+@iy-^IES&fu7Sl&GII4h3Jtn z)gyKBG85*}-U&+?n`0@X?Y`r%>4#wpi@c8%3pY|&6-%KN=hzfD6}u4QWv1R>T`Gr^ zV|yZJ2P|E_r+TTinqg0OMumm80fB2NRTT@cK-@|@^raAK{|zH~;c^4{QO<*aypld7 zIU(6fg9*qm5CuVy~BR@Ukidu~)riLTmOL|a0sc5z zJ-(9?hi~}C3)aPPmG9pj_f6ZwadeKw@y}k4Tkx(BchkYRc$~o%Z=l`y8K@s_Cet^p z>70=@`h?@N;#ki1RGjS@FVn+io6c;ab6ZKqiAFlpnDPYOdTJYoUjGVZ(6>-~xOdu> zNSm&wGQaSx#n$kh#kLOaV>tFb*5(3}e%;+#owqmfmEpB39$EHTBC~fT(|H98-h8V5 z*K77Cz8`YUJ6Dz=&z1>Bj7pOC8o%1`wyHJptAG8sP~|#;^U78r{3_$H@9*2W{qA=Y zBh%C7_K*JvG@L^|j2)hMa>3{`yAp4{e)Dz7Z+?RKV~nh&+8907nBP5QU<*z@C@Y;y zn^mc9bzb{SVSteYfUo=n2i+(v;D}|qv9$kwEYrb9`5Ub@(#a1CEK79Q%b#x4mDH9O z(WY*G2E-EGC^Xe^bR5JIrH*dI7AEYWOgB=S7&oa}aoG7!2Pg2*3D+W6`G*^+5V;~t zB?%<`(GbgvR@yg9hXqt&+l0J>)w4@8j6o91KpQ%oYJOzI(gkxX%ILU>-25Cl73GI5 zD`GrFXV zl~iGe*w`{F_TraR$-b)6dGp~dlD$P};npfPw~W!|e<|)<_{k$hom(XN;MtAMHRctf3v*)huQVw!piew!l(F+!+}Y6H|l@{#*)4 z!H{Z>sUA0OoZRB8=Cb69+OlH4WxfKt2RSc2`|fF5uWmm6Av17x0l)1QTi%0^_>ji7 z)aVwC55tD&^jsYd`@p9D3ahjgAGeC;%NxP@t*QKfd`vO+H5Ws$z0V)u>1luWR9$IR z9#D?Px4+{&2dGg>;*$ouju-LcMX>D{JLS>AEkdcvYkZO-k-W!s0Y97sEKuskx+uG( z1m&QF($!5d#W(ZRWtM8nhMwsAOv^Hycz{jY@)Iq~_!HgfP&PV}L`wJvo>N+-P>e?@ z@i9ENEUl(IAtws6uwN4l#px6{?F5}<3Gc_lJi4SurA+W-DA!~uRWsKVlj+0|-u0lv z<$KxX!zs9=O4TaqH*AB4E^r^<;8t+h&0Mjd65NLr%5vb906kb5ZIciDGrkO~6t`%O z>4OcJ3)_fw*W~UhwowX_Se`tyv^*y*cl>x6Cnz_@k9WrzKY^*jqlb^39G6DFxXELO zM~9O^dfuOkUBF^kI$OkEVL!5~Rm)V{RAK5|^?mA{>Qm|gnyWO|YkJS%y8+MY-n(E% z-&?dds&3WnbuK)6tSec4oA{{f?e0sRW+7a>R(x4pCOU-4qFH!Tm@hox8X&wOOc0+I zJH-ld+-2VndAIN0@TJ;;EL-DpUVnCZ=OyYJ*}q&i=M-m|^L}BSI8}@lV}#v8ig2&6 zQ24~v?dl^wF1{&ti#g){=m)P@+;>FZ0_{vyo~FTh;OwC8E|oz%;CjwEz;&7Mmhigx ztC%m^gk-T?cviSZ_=hV|cvnahUl%W6%fw3tq+EVam?7+lrdCy>+2ypIOK@&duM}qp zp{`WdH^OMKKx`3LitB{i#ixXmLbGtll`niOWQyxWEn6(EyX2!m#bE=(+BEN~zSpF< zzB%_#XOQMe@k-$(=LlDXm?~z9TgCgtw}obLi!faLNC*s~;rj8P{0xZPz9tN;vNP&h>?Gt>_TH z70(GKopI!U!w-ecR2kTD&3)akpM14*O3-rlwUE{EaK|2THM>@vE{2Fvkl0sU-wGEA zw>h`C<_Xt}`@z3b(KPtUnDFqnz9o2xcSyaoyXEwE9eXr+Y@(~Pdr0Te?$5xz@5Q5H zgRogx<{Bcb6>42;T>lc{#8&YVW)@opzcqA8XmG?VtxYJ=)VqW;E6)v3uU9p>GF`)+ zJ3H?bZeuHjqrx^bg z=TY{7s1`Q6w!31SH@S4|N){!yxqblGpA)i$v#$AqC`=P?6C+ric*DR82Umw$`r6Tc zFV)O&)nE14ihvzNrLg%`yS1*6zc{1;>|4|?Hdu}K^u?!36)rThEb6|!CZsA?_Buj<(D zd_Z#tJ0_%|{+>fUcZ*kJVkbpB0s5zjC&AZuh3Vn}F_BGWIpR|TCJc%Xxjghk^*yR) zO{6p9Y|Lo*8|#1*$HQ5_jAtS;&ySh7>PXoD|{?!P%GaHV}w1za&fl^V;ik& z_T>dbxAb{EbhkQK)u^#_I!+zzTB&UlKX<;@HNn{?G(k?j59h{-M2AoT$3{?0_?Ouo>**a~9_U z*JI*gae!;0c#sVg=L#FdpI!F|xvq9+38;8kcozKYCq6x*E%tWpV_{=77V$ytrn9q8 z#jEQz-<@siThhodU2O)u`tw?fb@1@u}~`-FR; z|34T0Hukl#2Uv2SL$2T0=8#?IVo&T=9SVEAbHmx>v!`6O8l&r6_j>V^pmKd9j&Qvy z)VV(F&JeDKEc`<}g*G;D+^6I2SC8oPu=6fUFAZ8cpWrjm$2~4C&xyIT@$w6^>1;v zHoU95-PoBGdX;J_TY2i_=||NQ)b9!(39E&d(3gDb%!XYtwEI!lAaJh_o6cs7AB_BP z^wzM)!(jt`!sTI`(f9COCj`I2e}J0s3y^MwAw zGUpoC7;&mA#PtsP|8RB{>ZNn&8zcT1GT_3;G>yUxbzb*Nr_Y}KS^KzpWA}dNN1a1E zW{PjKO~TXSTH!UJ-nGMZLKq;poJWL5&@L=&inwN|W>`n?gnoN8M&~CQi}3WB4^J;u zzoO~qsuAApE;>6(yh~LKdJCZqZbRB_LW6LVE0Qf^_ldtiBV-J|c!)i;H8N4N#aX23 z>$05Nd+xMoP>mCE#ZK43j>nxM8^D6an_RQdYyMkUFBA!v2=U?u@fJ}K=ZgeM*bg5DXh4}-<&uEWA!_J!CcJPQ5s zJpSup0WJsL27P!n?2l)oZX2*6_+;p<+W)Fr)hC>fboO^mQkle&tX+&2X9-T>GWHeh z$L+#FaiTa>Tm~BIgcj(fgXlk=6&w0(k6Ib55B*$oh57=`LRUlA62YwgQhbn2U^j~w zA?1_erzq=0F@%vV__2o02#NSpBcsWBA@R6!@*U@Rk8H_nc3YF91e|?3Me9oiDIJI-QAto-QC@t*xlWA z?M@6p1q7r|Z_Ld5d)`0pz52PF!|u+`%r}P*h40eyt;~ZDuvTy3HFyrM2&?{GKAg|wZm^$u!FM<0 zns*bwwNf|zW3ru$5>psaF@GkUM4NdQEyJSGIdlrWMU8jM zmI}L%h+3jAymH{d;B@J>p&QYWxk8jW)&5hli>atDZK4gMFZgy8j838(fYdsoM8230 zhH>c#pSA%iFN-$v_aReDT@ZU4Tac%Cn6O%=)@()64M07#;i^dI@CbC8H$-F6D^?K= z1J)A3=d&&R*RWn9K7J}&!d<8Us(N!r{X-LA6bgd3pPh}i%t0{e&%nq9*U|`_L470 zzu@P`u^D^}`^!c#BeS!0yfTVLD`1qChcAizqigNfo&06tLYVWTrJ4F0A7wT=NNuN8 zU?q7|nExet4Vba#VE>L~3cUhr!(Z-;#=#rat<3830}P$rR|}c6KQ=m6S|`(4e1&?L zHK1<*E6${!(OuLX-rB`{DEq;_({pqqV3+}%^6_Xr-x0CB{AT@WkE7x=Ks$$QQ*CX~ z4SLJDmepYz@5G8!IHeWmvoGv74})D-Pb2AKxVlXC39wZ(UljGH{ADrTYrD9SX7Cit z2K!9-ldm<3TG(kEf`+Sm`C+`94Ps`r4pz|J+6C<5g5Xwkv}k|cAjH}T{bv@WPW;D;_+OZ6nIV&&Oxz6?EN zxHhkn+(S2*L3@BMXdl@M z?SzudIshJ8$Nf+wONnn^*xvW+e0$?!hj14L6Czoy1ASBNg!wI1i0WZTXhchTr`NiJi(P*9%<1{3#` zuP}e!NPWj$Y8M_x>#13E60FTl_$@#*L+Z_p+oc`S$2PPJ)yRP-+m9?=bfHqL((G)ryR^}?m$WPadtA0g#WE?I3;5MnO zt6HW*Uf@w5-@$?T^NKz7JA@asH46dUHHN=dbtp&MC|{?~>3%?;Gf-nbwz{M0b$uCg zBjpJjCiQTg{u||JVIGAOgrwsBc_)R2QbSm!;{i84;e%9(-J~{oJ`H2HxdSDja=df3 z?^W9953c zs41C58W52#!lUG7R&4KRs3W*!f%Ug{w|&I7@j-SMuHXs%tTv@f z5Mp!GES3W7b2h5Rmz4hzIZK-A?IfMG9i+K7&UWAWRf>_4ltQ{go@t9mPjMyM6n5gS zfIFrF1E0liXv<+YIKdYng}sS9U1p>>s>BjG4UKjR`0>D5AO7$&0+wjQyK8c}wg&OphYrn(JWIT#p zL+<=2@POka9>uXiaOGuqeVF(A*)CRz$MHtIE8v%u;M*a&`gI;op&U9ya*!W?4%Wf*9J~{Bjt};~Q=*)1m+6ay@dG@N zPF41*LtuyPgnHl`ytHQI$M8YEhdp7d`D->7R@GuQ8@}xb;E4pZk`MM7;^(L9?bbkA zg+0keT0woM-2;Bu3LnQ00X4eV1HdAAfEeBb<1GOi0ANwJgWUjD?}sk(g`VTR6Lo!z zJH#HOB~hqLt-z8I>|gjBR{01P%>&@4+5m28ieSZr9se=#=M=UNP=y=dqJd_s2hv3v z{s~9PA99KHpk+}%V#fY}2U?&E;D0*+%jJOz5Q*-A<`&9-fO-+aFLDXFqg{NZ`&9E= z@uP0B;3Z@W$I)BX3r`T%;36E0Zv(&H1#WRI^b;^kC6vMQd0SxM17RP|AE0Cw}6$v`PGea37C{JNe3nApr+qAKV`6NZK89)re2W^dut8K(^Qh|4e>nlWi@dLn*SJ8WZ z4c^0Kz_OkA7(mpm;7Lw{5qjdcvxHqduTLPGNI7ArI?a)(^p!r~3p9o{W7E-Ud>DD) z!59z_x&GkwaB0A}6@S09Z+VE!H8Nu?&1oQiiDb8%@>LU`shS`|gr&qE#6ICUg_ z!@HrIydOG^?y{xu`%l6Q_{w_nI2eP0=rLS>Vz_&l8GSK^lM6UX$gRUHpE^AN>VDtU_eT2FE5TY3OV3}PPX4>`? z_fvZbz4&H2Pf1sg07`m{DQIBz*hFB_R#qRdn+NEr!%$~*1#RMs%2}fxiHl9`iIG+( zoouTt>DoU2UW?=-G(?xvrmQ*{iQM=>P@>lZXK>O$z;ff61K8UJ&~L6r-iUrH{V?wq zkX9ct%T?=izDs){8&CrLoThctGI4Ee=3X%4CxU)61oqy`EQJo`LFfQF#9u}?ik>0L zUUS6GY8AGn*xha;r4+q=ChEZ_;;D3matT(V{=lUIkcA#)eYH6Hkj(&Islpzh zk7|Us`o@d>)In@&;R(lEeHpoX;c;Mq%Y+2pL;i%rXiL_;VbS6n!7hT7EqjjjqW_~rtB8Q+E(i-yES(6PDN`Zdz6CKq$ zunualx|)Bd3+NPhFCVfYjcZi1=S?=dgF7(B?Pc!0Vh`_y;?V5Mj`#GwZohEYK3i)h z4reRXR`{BBfpt~eEA_dRzM^UTA&O;zi zE3fVOEpkS9x_mq2tuCxo{8?z?w%7U3c@E2zE0^&VWehK?9g%my4DP^+`5PWiy*gB? z)hoxPYh;TOPk5CtZ2Y&b`BjNIMav2T^E1f-(;;P>;}{yqW-CrKOv&bTwc1JwgB2Ox z?D5>HRcUXmGbk@Yf5Eaw`0n|xuw=$2xVO96GAOMMi4EA!?kY?Fd~rSX zxJ?4&52_E}qCVu!)aBS;bCa*Z9N5TCX4!>V3?8khEqEP8fKFYkUcj5HPh+n$vv*^-NWwyb8~Dy!L9AAhu6^}ta@nqvK1xI&+&FD)>=``*PvIH+$6|p?b^$cC4n1HUVs?cW;zuEM(H+Ndoe3kGm_Jw&%_s0*s*zO1KbQ;LlxY!x;YP#dKr@eYBuc4lqw_$q ziO<#brMHDVtyf_#{ZIJIhI3gBrq5sp$py`7wHAuf&@c9#_vCJ2CrfuQbSRO8#>q}G zfK`W1+a3FhQt;tXgAE@CIbp#NjSTVWL{qTK*JF9Mx78g#U) zpnryd2X%v`vdf@hxq&iXNsrw|={@x4#nM7`U`l$l2lc~!$!>uO$*2=xxcj^f3IzPt z1hm9taO~UhARY!tE(AgaS9n+5QbQBn1SwYBB6JeQkjD56zDiWGTF^)gS^>YO1sVqW z;WyqL^d`ty!BbcdXxazx@oH{kKGJTTRh%w`NJGWZVn=bdu$$B(31kWgk)sgkmhihj z0_sbJ`#69W|38Mi0N!B{=%Pk=F1y9r`kT^2-7lS4Dk1g~zLA?Gj?Be*s3C5E`@nD6 z4~Xvq?*lsKP4pYBgKHiN+C^nhFl1JXx0Hq%MMFuwOR6bFi7iM49DzIH!+<#!U?=(t z$%FY^1GTR*0zQW>qBEezdGec}flIIp4&*VqFUHUMYq}TG2x+odpY%j0`5_cRe&Y@} z2=@dP`VXkT*Fb$72mIqSu)33=#&rh&=nJf?D|i*%CgTR(59ydRRyrWoB_ZfAdWS>s z0`wI9M9uIqJR4mH-2EB&PCjTBli|(0fkJpI@W3(wNeJirj~MT6lw6nGQngQJ{enC6}@`H4E=q|i}FLSFE0 zToqmm_3#h4Y9GM=OK?40fG(px=m99+n}GA!_(GJ8c7q-}iZQn<9vRXz_X7*ni^qF>}24Wq5YyNii8g zM$oQu7xjraT8QD{;Bk(|gNcB>u?d$07ElpJb11wGNBLG@BWAP}^+u{!3ty)=N4J>7 z3(JVN7VPYygzB7RIn`(`D?sB&AsT{Bz~R@z7%HGyGSE&xLv;Rs?Mof9`=9U+6$^SB=BiqGIjJOFor8B_(lmDju&=3+jt2fQpl*e7r+ zYHwVFRK5i@$1V7D)D8TXsh}S( z0`1@uXws>uBV#x~NU9qeO z|DW#Mi6w!Pv;dglVx&QSz#4Tk`V-gO+Tv&0c)?cux>(RQf>U#leN*OYODQCggddPT ziek5TDVXoYbRTo$S!_4x?|0E<{vx__OgsrUS0G1}p}0%&FUwulRBNl2!XxPhx^3P;SdV6>hXG!xvm9U0#r( z`JZ>%M4c(j#|PL{&=D4~&5%BE1NF8CT?3>43C3TnvY|pveB9S4UUWUzk_zfLnn`W! zldL^p^*>2|t3|FILJTfRKS>q*gS}nIL2kOyBc)XuWojO;?-KaK2pI$tpuN z)R&jinK_FU>e&+H{c+?F*`fQ(XE;{k+roTpBx9(9Hl6iW`f4_QLR(EcfPeanS{p8{ z$cowq3?;|q>-bW(&b8UMjbmzh1;mfq@tf9F~hS{1B{1|me>*EyAHMa)>Evig+>munfWeItr z{$Sq9KDh?!Ks(cV$P*u+K|La3BfmfOSt*Z1n&*V{X2tVD_Ud9&;%%iFGaeQ%6m3`C zb#3SsIanB|uH`M1maa0WE%*W1fIqs?)BS42ZunBm`?c+r80)+CPt}5MC0Dp#O9{4A zbGtaGQy(#Y%isajTgfhe>;d%Uj{4oZd*J=$Zi0k*o!@Xfq zq+yA_ocTSoRZ!2sg@4ZH#TD!_RP?Z0e%X%*h1wsvg0R^&9>uGZT#w=4hugF}xG#|K z8alUDx#W*-y9+dZZ~x0#&HmH~*c}2i;a^%#Im2GhJ`TltkQ|_8>=IjeEZ(SEi3Pqe!SnS?B!{veXExqp7-dVTV{&R*Sn@N-SPtEvPVur z?5@hVgW6WU!5X2>ESDv5qIDbeD1LUDm+8;HJ-WBPO7@zR&mMKdOxD-}E%m!F)wcjfXOa5@v*nc;~@}BMT z9bf*_+e(SrWcA95aL~~|vMp#9yU=r6`~XX` zv1Gv;p_FMz(Y#M{#O@`1X&9NBT+7klMACGp59XF+wZ-7i-$bd2D>hMCQ;3|M;8J%YTFDP%1EsR;=amQ?AWqt}??u zloxA@P<{LjJ!W+}9hR~r=fBYJlRg~{*=j>@56083 zNOiX3N3}AJ-7J(ApnBvrIEq)>KCh{$Cw;CI$Fo0%k=B0S4EB2=iS&tXXKwNLUG4)- zH|QrmO&dU$;6~1Mz`xo#27oiXn-_t*R=`HJCUN<4d4Df^p{tyszH>%eyW*LF0c;L_ zXn*iMoMf8`_r^0=S1o~WabD0yppVWdmds}|J+brY%+}gItenDDr1o;1^C$%fNWpWp#cC&cycS9(Dx=k!h_ZIrgr2e0jYDDsoVtJtw2E>A zt+uVP{La7QeN-G^D5n4$5!PrP4iD zjUbg4xa>%Bbt|4<@W{KTlx_V=ZsjHC-ZrKXckLY{k~9@7d$c>k6dLYYg{Go^Tt@d; zO6}n2NOg1Yf9!SO(>u^=#(mZZQd;tpG%DiCcEPhe&VQ^dsg})9C5wpYiJbg0gbiq zY#v{wCgMYY0(S#GHdVh6Hh~A1+3lEXIVqJ8kFTWiuCpbmfH7~S!!S7N`hug@5< zw^|9XT6gu2yi{06-qW|F9$(=kv>!6SyROF%0ej8V3TRtuRj<+ev>L1-dwGJ-48Pw7 z+4GtBO6x(cp;?f73kSqJlr12TSaKOyb-WQUOcmsYrtqcO9a@Qb({Xe)9SSb$4gStc z^ciHR>@ijJhunq}?WaT39pKlEccq-&&80eODK)Dhj!xjc!ehTQo zF`hwQZ}n#PhoT)-6l#D|y-$6~j-YaoCa#P+t6}^FxrS?@FRV83hY749B>4K%OEeGi zkP~5S@482M`sfE3UrGmob$Mf8)@mDmo8;g_qy=iB4d#DI6kY*onLVg4vakn$e)>R? z=qc=8_aTkY$(ZN9R=?h`QTLfFAXD)Q@Wdzbx#Setg-4*5l(W&~2u|iD(IxOR0>FoP z0a=pk;6#+?_aTkcS&!Ve>Q_svB@Wyz1Fyr;_%C{kKf^b5gLix@4~B1w0;PK}+6dR{ z2e{22@Yp)`k{Ng`ucd2g?5FD~h3oc8Z^Z(k1vwAj@Ctm7jqtq9s5b5bZi+YZK&9|J z{1Uk2Zcs`uvk#CZY{~2MyOOF)l^*G*>y0{JahxznIEVj3-QigcgZmwZR6u!mQEyxk zEAZ!~Xe%i26WDp?0}7xw=WLdKyK$cGsJ@2YBApfHU>DNiw!pqhpn2eM=pZLj6^o=b z*#um!J7izJf$yS10wV{o@J&dkPtt8OKGTOAD(jC(ABYdOp_iy9o`MBn3+KS~d5=0` zf$Sn5;C@0tgciT6tqB;9!8z%5Cn z(!%)_z0oxTmst-kQA7MzjGBh-~|={?{E%xq3O5{8XxQy{2HCm zZ6g+389Qy0Z1Y4#Uzg_6s_HyC6VF2Vs4q?er)~-U1D@$)$b7EkbN^q9X$_f-A0tKcNGxI-8Ey!@Vc5<#YjD`Tugs&v8dI zuT14|H~vLe6)!>)(fh(f)}8ur{W0wa^^_ZH_h7~>hBrTq9e{L!6PVWrR*7b_)1ckA zM*ZE3E7G+s7<=Gz!`Ac087%F-#I9^HWaeI%^` zxv=THH=hO$^SiR{6jdVd%=zVQI_>YGm zl^seM?Fo+b6V@58LhH(OuZY~dbQf?7ZMQbIaD}y#^jC;rx3r`3D(#oHn9l}Hq$Ga_ zu8$1a?_{c{W=IdYfgX1op1)YOLdB=%Wk!lBXbIY^LWk8#Zi4f^TZ@&OQj1!b1qnfD zHakqspaNB8rKvz$X;&f5-VH``0J;?s6tmT1yhjaeRKv78h5hY)Q8@jETGD=UZ#G>X z$C8B*@Y@RLYE}|e18&-bPSX_duln<1JRChM|1CP+{Kcmc>8@1NW);12I@l=3Nmwg9 zU8~V@d9SuZjD*ZyJIJ#~pc$-K)j@{IlUi9{-Vt`h*A*K@S&VWCEAFHm(`eBpRbX!m z-T*uO?(h)e<)PX<=_xSI32+5(fdN-g8#8xm(XuI|(D8Qe9&0WiC+!L0XubT39WK@b zkH7fWU;8aow&x0M)L8YJREr*CkKlLv@!2dw?Zli~JS1sb@yR%veXkW&z6$dTn}n)5 z=Ha8ogQe}nH+7h!iJsX<2oaE0x+!&~w2|gY-J$2|*Q>DA zZVj72>R2m@eT$zMLk*vk0}82OvuhW*OKU4$(pt*2*=Qqv$*0f+<%RZ*=4qAH!K@^i zNGmq)Sovh`x{^7w#92uRKwks*Kb= zYGxX!-eCvGXDzyYPSsQCs{$VgH!T5fA^E4=R+nh{**iT$ied-FIjpYS7Tl|R^#+e7 z>Aa=3Se~qw)q1e8>TD!kH1rez0^xLmG5^w z;FZ}_^(*U2zVk8aCf8r3nRc0fP-`+l2&O>;lIuMCG|Z%jeuvq+c6vWki?BK0H~+Sx zo2sU7K+ZU`AxV5w^RdJ>jr@AVcDp*ctrmycbG1UYO1+@@67cM_W6sB}GIR`9G&7GDxoR2{n4r9}l2P`K zx=)^Ef2SJXlsocwclRt>X-9Z>WxAS3uF`EZ*>S+R7m`XZD0qp`S6Dx; zX_KihqtFUVh%Ugh>7T1oZuxG7%YVL5+ZCTTEjA`v)@fG$$~9Z5C2ZBAS+-*vIGepl zG_)Xol5mYqq)nc@ddDUdUX_qI*c4$+Q(L1Y&brD-VX~UW z#ya~re$rWF6#dN_lLB?+q(jXfzx_yAZWXbtx!&(etSDxsmYsUb(JeR9&0=b07nRZI zpfgIoMI6dTUfp%tQIdYb?=)y3KstZvg!L`&e3I#gtg$4<^JU5mUGh<~ZsY#2#b8;tqg=HZVV7M$J-1^U>&wREIc zTqQlu8RHn3aa$N;c2irpz}J>9JIfKBW`ad1*?vm#1_fgvUqpzuXM}gV(HWs=Oq!jo z_Dx70TXdx2VxyzrtMVtcF*wtHZe z4mtUSC@-bDn&%Vx^K#a|=*?b1#Rtfp@1+&dD^Yo_w9{5Or>OyA1%;C`a%tNwEfO4| zBfucLXjl4-XczBH!*_mebCvN3O0WC7xa`k>FqjLgzV|C0?iD8YfSKa&SfNan_R6Kn z3T3FZHDrLC>>#q>OIn+rA+3i}m)IcnqP>(cC2LrkvDA#xOKgkH&(e~z9(sp zcGhE<8scn7);aXbPVu(0 zi8B4lAC(eo*cd&ZJvVE%h_9nXUvk5Fk3rWJg1?F7ad4B%TAQPCk$}EM%N`j(~e2O&K+8Pdt2L7T?^`kuS(9MZt8Gp z2z3JwvI!m1x_NAX%T%UpZu^{nhUCJiw05rl%CFYH7AH$*({db9`n4`EWwm{-H9^4O zxu!||iU-Py&djQU9~Z{PH2Yg|z00TE_JYwlzQzi+!e8|)AItTIJ_qwC^)IHtZWNWZ zjv`lIn>*S^WB3PM4M#uc7C3h4BzRyAS;d6DQC-xQ5rc|O<#pDVa5m3aS`buru`bCq z*5^)9v%F+uM>WItMtN<|X7AMF>Uu~9=DQ*ZgAD2cJeHa3W|du}B}Oc@Y%Rq48_uTL zLkpaxEIP?`$LokKIls1XqxRWeUe!4hnU@xz7)g}&TWv{h(pzi?ky&iLvt>W!T`YH% zH2k-ZAJ*jDszrNCS70xSFPm#&1RIIBy+}w_6N(4hPkO`&B~=goO19tmTwEo*)tqcD za88?=sOCcEAV7W20-)g+2VJfmrN#$)3U30g2-92-gx=Z$YltJpeWG|u87}SO2G<(F zUuaJ+GMyI2KGXX2GhaY+AfrEzb)}D36E-}!d0?#Y&99Gcqk10KrQA{A$TOykMamrE zA^#(9C*{dKdX9Ccm%zCjOIt#wFCBWJ4{0wN#dWM=iG2T?;!&R_`uDUCeo4dS4zA<+ zJmHFJCNFs#wLc*Cc1+<9SPtavCP0RBH4CAyAse1gHQ*zEea`!q)$R7Wtl!Q}_yvno zf5=wRU-+ZF2F}(|+l(~qgce*`z6~wl!E`2D!KTngtO6u4Ye6e@v1gL^I{hfmiu%5& z8F|3FYnPN5p$W+X&;1JcpDpkNau}M92yF%wyI$MP8iAMI6uO0f*>Rr1_M5ACEzwIJ zg}O)RIeCnhLcV!1UWq#a_N`5FKzVdv&LPhL>Hod|%dSI%p*HZ3D98l1;a_Q{`vwm| zU)^k#+T#0=JN!*U)O#ownkf^60eA|XitYe1E{~!hcX$GFpO5%BXn?c^@9!4yuqCv+ z`!I8)j+&NB44)BCV;^=(O+|0Xadd+C;svx5N`YfZ??Bt+6r{iUgKMnv?Q9QQ!uqih zkf|MSVx~rtU|K0XBWCF~R#*fJ#0+nMtDlCpK?Cq6E=EUCDsb+0Xgo9tF0y{KBYO`G zkT=YeeQ-NssxO8aK1o3`uTl#g6(ux;9d}{;;UP+I*V-!@;--q`TVlt=L8e(+jeIzf;0i!|BI&(K2O*nkZ8r6t4z)SA(JG^haPtYP128qTD z{DC~jhoSS)3A{G}JSYarM%Y@W-1|*;S_%8MnGUV;}WkbHHrPyCk#KoeOn9*)FK^Q1) zf;-rT3E5Bb$Y1#Hb`l0fhctE#I?T@@IZy=JNhUbO3B0;niu)VkmS7j(z~?=gA5A1- zVgVkDqtSa@K{$*H@Go)z|A)(yE->G_!8_LjX2S^3u?k_VxGBmr2=2eU*hYL$s?eM2 zf25oE9z4(KXb%o2dvQ}@Afd#MB;r59Rzg1cAS4;i z(UZZJpms>nMN6J!3oUIOMUh)W{8?>7lhr>c2~s9W;1eh;ov($&uN_wW2Iw{DS{orD z8~}d&qf)-57V?$)w$g5NMO{)notHM9;WO0l+9lPD=R-;d3){H^Jlp%AA?}7A{&s#A zx9j(?jPvs!8mEmQ4_FVPp!;A{t(;Ze}lPJ|Jw z2%ldMP25OO<2Jw!@hH4b#5feBU#Po6k?V261G3${GmTKIs3z?+ZV6qXY2<(J`h1vy z3D80wMZd97SU)Hz*s~##TQNL3>btN|TB2v#R7Y$<6md7#p_SD(%4IbfSEF568`1_8 zzdigin+g2$mD(G|tsT1n3JgKx_?^(R6{3yv#L@a8G{aV@U=P~keumb8T`Wg=3wi$1 ztO;qzegWI?g&8Yr<+OFsi?0T!QRMOV&}^&~S|jGUxrt8F<sr@yiRmr-}or9@#zXaw}p;oJ1SG|q_8QGuRD?}>V& z_TCb0X%Fqce8?OAaQtxDaiV;S72_T-TJPyjZ6j+(*Q=%34mgz{gXtkn=$B)Fb1eSk`U1V??(9FboTh3M;TjUvTWqw|0^sH2Y^ij^VKXmSKE9qEKv_bMxgB+W=k8LO2f@9SdqReKg=V07V zsg+qD^^?{WeS#cyGj^^{@A9`@okI`n7df6g4=cGIzV-{*AH*|gi>(hkYMr4Lku&m5 z5tJU~4d9NWY9_Ghbkz?-R}@-7qZ+NR_%Gil_=Rbb(=-ca z37W5~CNk3FS|`Ypy<=^Z#Bl}nuH0`%dK-z#yi%5iXW(%_)Ksy4k$&_AJji`%K{n4y`}+5m7K1z6U~?2 z1?4TFM!dwMwXLUhA=>Wz4P2`&oI!F@d1l|si&>`9lvluz0h1TaE|-vVbCOtB>+Rma z8J(RKyUTOu=hit})OEb4caeR9W?+#ZNHORk|{LZovceag?|F?6-Y8SOh z)-!?q+k7 z*Q3FFGjzDBT2t5yK0rAN45&Ztr#73>v|X%@VZQVXpK8J2+znEqApPioR#;Br{BHNZR-@%v)^&>9gjLpJ_VuM~?=- z8q>#l=jjRY{nK!Lt(xWKMS0Cpm48=^cGF{rrXIA7b|s_D>TTy_+~3+jfs=rgtAOzv zLz{8#fW|$wjFHTzXpPGaw|KQwTUou9_$Bv;@Gkq15a_kb$<CG*8ts`VH^;IBPPgVXI_2qn!RQ-!`|Z$-Q&lCjIHZi&06RWpXB*Dbmi8 z1Pm~}xFg!3=W z+uv8+r#*LEFP^I2&}tWZ;TNvwavZTK*9D2ZU~lM-et%oP`&+`jST*EUu++%tlC?SF zL&;{D3(SUs(l$rXX=wEKQ$7}ra&^$siW=a?T7Bmj=t_7&PIDu0K+nE|TMW)B36Exd*{f`(>$eu|Fh z{kV}^=719UbZpjK%h%kj^zVKw$|Gw9(Wx1Qa{}J#-q~)c*|s9vI@+ahgLa1BcD_gL z=qA(xa%FDpTF=4tlhc0&A6JKD?sQ!(9QbR6IlS`szxTARq}1NiK2yX*O+EeQ4JLBAH!8@5AfVS;zH=6UOEHH;?;&Y33o z3~^Rgw#oA?!^k1am%=a_qZXqppnRQR{YCH!yZo)$AZ2_RH(_g9lKNIH^{1UPId+bv zL*Xg+hQ*)7%f2aEBc)J@w?4;XY*!1`tNC(uWDq0iDmo4r>Y5Ids$Ea!#TW=k#dRo}W!(O%*v;LqRj9Nw(;pqOR9 zn?!|@-|6{mhXI$~ph%?IGqBovBzeqdwp%E%QCq27rzTtQ31N9VcnE%t28}!xk!ZE_>n?b<4}wY~^WsfxziSR3KAwpIy7JpltwhCM7%%bw8&xvY1XPkZobEy`|h<9@d*JCG1Tk2HK@SW6){s-sD45m?R8+{ud6Es|I8Q9;P zZLg+&`KLjmi<;ZpFr;SHV;jZuTj?l*K#ll!z$+ZFb z>R-PZ9=BXoX)X?TO>sq=^z5JWttca3NI$kEe*x(R@jSd5`UjiP6}FI$;C+Eb+t?;1 z1%C5$&|u%09tFw>wwCO0<-2+tud!(^Dm=#{Xn!FcFW^g&i~k2H$XE0ibjiC=$UcJy zyc8VjbU*BCn2m2!Hz5iiM-#wN+l+hhP=?SFHjny( zMi9pb@QEzRJJGuZF5&sZy&@puV4^4+T6< zO0rG7Dm0Q80vp}waniG-(AGT5{Q!3G&UltKT0!C-gtS5AD>2|MWC%WrUjx!5*u`GZ z97r%U2j&^Ts<328a-Md-?lDsAZ%S~#44s38cp!VPn83%XYo>C zdp#k){DW6#A#nCUYv7&^ID_sK+sUpOrkHaim%fyHqzH-#9uB9ZofMV}qmU$+;T)(# zs63g96Z2R^dOuav<~>dI#7^aLZ7a>A=JIE?vtUU@ethUU*S76Ro)13LLq7l zm;48HjnJ^HA@#(;2 z%K-kFL^|OCkWzcf=CZ?(wfPC$eLDE=RY3zxVR~R6_t+`jNu!6Zrg4tjP-&mAPn-e_ z`IYd2fLlv8kmaD%pXZCR{B8qzOF0A_&#k;cC1pSpiGcp5h9dr9rY z-*C+(@PBX;OB(J0`GR54dTkH6ofV)xoQBiLyg_rj0s6;#)&}wmY3w0O))%VtK)r5mC_NW{b8B#{0no0f!*!fHr~ErirY7Mvv0mDK>%>IOVD71Zl^P>}Ajx%$ec z!@60z$GUd9Ly!aMDs3Sm*##$lY=o}!fBYuo#H;WQ@V=&i>e3I?r`w<*<+D+|I9-A!G^ePVg(ns7o$lBVhENNvU1!U-})_y{@KJ8vr+#*Z;8aRC0*Jg}u;5uEkC4H5~+} z_DqD-&dvHbJ zjNk+nt_pZZ+u0>ro{5mf+Q!eqDMppK$(2I5#!4Ohi)VTSp@DmE89w0zdq@3XMGeOtWcyrbygEYbju+* zavcSAs5vPG9N8To0kwld0$>vghclBV;9TT_>sST*qK=&ktQ))<^)S3LjYaG1 zja@U1AB5ZT21vh*N3BU4x*AfFRoN*}yG_vDXw4qNIv9ZN;3z@i%kk@(0;?P$5meqpO^xlF#nhp)!p(rgx zAMQoI>1vtbjE|yr@?ZBp_?jb|m4Ol5MGj~$*_r?2=q#hFNY*ag)!oN);!YAE0t9z= zcXxMpcXxN!!F_PMxVr`SKmr8fN7}0D+w=XHb?=%rCr8@q-L?0#g>HD2oAv-fW*uG5 z*5aOW0MDaFVCy*fs;CL^pCw`*?X3*vh=o)Xq7B9?y`}KhA>Wjq4Ik1TW!}SdKQPJ%o?Q zYxSqPk%+yUPk44ULZaheaCpvxCG{|RZsBFtGP2Vri5|;LP>TDw$Ys|zV+ro9jl@dq zj4>Jay)rDN=|1l*m#n48-mFIM$F_lD zSFf%=F_PE?GMt^KC8>iR;7urpauSO~_6Oq%6>#@!%F>{2)r=@1A&Z&^L0j}{n7 zB@e_^(9h@X9XQ7ID|emgtML2xBr(R;*5kzvt7NPZWAq#9Wnxm&%S0dmmgJJdLuYp=Snejfj5WkQGTgDe2Siz z*QSMO19BWkbQn_1rK`M7td&+H&*Qv5vg>Aj3AiVRe7K;T53;gf+Hqr-l3@C5EOOTp zs(D)}H96PY^8nhBE+%K#A7d4`G9zl$FJ@1!75X&3zUz8=V(4m1_?xCVw}Si0XZ2L| zs#iC?(r38Scnfb)??6@xN3sCDY3w9cK7y7)j%;A#t;OfRI~y>#U`?g=-)a$VYkJbL z^aVl9?8oR3?*NZs{;d6Rb%Gve_4=_@G!_)3*ZN~}pLfP8t~MLdmX_G?bhXdZLY$8J zQ!?VF?OM|Ev~m9BeXj{O+_||et#{Rrxgv@1BzsHH^K`%P*?{F)Y$n{p8D?YVZdJ-W zx~*CNDKuLO`s)t+<`eTO>!;`(=Reu>-SsrPzs;`B$<@d$cO#_+JqMc9OsH3{#4o(N zQ4&vuzyWzmpSzrD{h3hBG%LMDnCjmnY1WUc_Fw)BZ9%Sl+0i!Ho9lWkPICn+#liHQ zC^R%m8C9jOY`W14uHr(&PM6(ywxa!K{vEO{^G`^zh*K}Se_m_wmiVs zQ9*r|9V3nJ18+f zlAp~|->_*~m1%D(cRY1AV5?t_dgMbyNat!1pXxpTqA1S%w!YR$xgYe3T=JlK&|THY z)UJ7#BK5nBy%M%#u75?_XoIH&*Z6ZbzuzdoHp<7hzJ9Z-H%Q&`;&V=dPp*B6#pSL@ zPtYXKc;UJGgg!-U=^eu^Kui9}nf^?rV3hWnkXrZEr68XiU(FNo&Su(PJt13p`8Xro zW_4~bJyzV@tsPT3k$RpB+7ETGH;WzT$Mm;Cy4Fj}rWN(+qfRubeq*r3=CmrV4|Tmy zt1dT`S0mB~%A>&qy|0~-CMa>*b1}p-N?oBgRLrz1yPyq$Td$`c!Io(+hWIzncsS5> z#G0w9AFrhitt?tH-;~do#_jg6mYG^v%Pr-$a@`c>-md(kp7q#uN)7C)H#CN6I=iUF z^sU{(`=+R=jl54U{OQBzxC)g5XS{2Y=|j7VQ=EUaMwW+kh`XKTx~HF~xVpqWQ#k^b z!6s2=zSg7L!NIoAbrjnl+yLx{g8qM>i<5R zmS`WH(bD$Ten8kQT~T}SK)t(q$yHw)@BX7zXQe?yJfg0p6^vG$D>NCF9OswE9GG_T z=hDxu?6VTy<#tNl;hQh>gf!GQT`zBD+Ib^C^!xGd>w1`{tXH9b=|mEyh3NTdhi)zE z*uQ-bVN#)=jnbZeQ-n(ihx8)fulaSsP57X*8%@G4$sp>+6Z5Cb&oI3A+)-LLP$g5e zb=poNv`2@U>f59|2lj*s(w_G)u_OZP)pg`lti`}b$&!X(=L3X^aTJy7Z< zrwO6r3(o`1tXJ|BSMI10x|43>M~zRtc9u$WV|`VeOJG)GuIm}Te;@RHU0{BXjJd4!ol}#6$d!>KF)9#Ci&A_ zN&iL_`?-Q|FjvUFX?2@!DZ9XtixSpYhACUs>2$E$q)~mktG6a&K0eW{Yh2(HXVt~# z&Clyl)9RRJ2q!|ek~&J=#WKDA+H2}d=T=ifpQfdikCAJCG=uiDGCNXeV$04xY#w5*2 z;}d9MP9c>263c@Tm6z0HfAqR+u2EAPQFd48nyk7dzMAacEAkq`^xSx1rFFLJlsw7O zRvAxYrFQH$5|5jaiJuNXcTMRbQoz075B`8eP8B0hu}z_OUDXTKx3>CK3TxBh?j)Yi zTHZSg>-aU=IAaCae@$pIkHvoYK{k|B7YiXtZs#eW6Q|LE)LPIP+Q+NJCfQp5EyX~D z^={`6E&o%H1Tinvs~VNW6MQ!fMV9*yd<507?kyGSpOhbLv7P#3A`dZfAVjLv|2;tMSm6Bsl= ze;3)=p5HZywIzA9E_|E0fp!zg_FPch$A}}q)Y^y?eHvbWR#*VnTWjoRk4ApagMG}% z$Z`P*^iNo{!|a{L9+IwDVU03HL-Cs=52erOP_duT1MGplLRqo|OtahMx6qbM1yAlM zX0Wlea%iCca`rBGh2y6B0*>4YMi#py%f>u@Lz;?tIg2EK<8=qA^<05NgSmo)L{;(? zqGUJb zxa#B$$i;0y!f!}t`yX+>7UugmbgZMz;b?pZPBHupbUhm=JwR5RiWYIXu!j^O^~njL zF!6&MrwH6UE#at`1YdDiza7q|gge{YkF#hp1_W9Q|0+enU$RSdg0tlrPiKojl6Xct(@xHJj;bPeUbjuwYiqCx#ZI^i$Qce6H8zzhdzk49Y_&3sD(nzvF zNf?i$#Yi~b|6u+KK!R%?QXCcG{#i-)+mq}i<%5ogmW9Y?T!epSpzuT4$Dx6(hyFL#ULdfJ&p6v8>lssX zIRg%|cESKb!Nl7FX{ow!8eE4;>W1Ir8+40HAP?`vXW9cDXeIay&)7Ui>%a)dJ0Kn(U$B=@-lpOeQ2d~wJYzSZ-&mmp4Y2p~Uv8UX zu3Y(P1-~v;TlQWnxur0_ZKgfBxrfu>TP^%qM6**4G6?%yIq|zooID>9T!^t+N#q)8-JpF&&?hcy_ zHL)ESdi8l3$57`*X}W2krK=pp`_gnNO0LLvf{kziSFjS}e!?#O+O(Bl4LX39}Nwp9D*Nb!!E6<+7HE)KOaUZUVcG$sPC>)7&=bbE7wB&bwFdpQ1 zP3LV(yk(3*;w>b6$`Y_P=p20ezHA0Gpl9IOZH0?98+-A0!4sN>qj@+gF}9I}?7efQ z-ZZDVIl;cvb3(r_ZU^b8EOhe@)Q`g-#j-&2$fh%(XDoploF97Fe@vewwm$k=ToL)A zjXCpa>Dlq-P4;%4HCifG4ISBPXk0C@+x(Qru>OV&`sYZB1{07!eR&}EAIxx)c8M`1 zcuf=S}#c@Vmv@^R* z+vTm0(AwI=k?g2Rhvyt6UF}|PrgB#Nz`3!Np9dk=LU+(ha4dABp)?;ojRv1@;BORV z1<_-2mL}y}7tp$Zl&V#aBB9N{h@Uvj1{o(+vgL?>N1Mam{E2C$S4T z=2YC*dL!et$QTeiAm1q4*^p$P64-+8DLbubX>)?s(f@emD2ESb`(TfP>-iP;Za(|yNk&9ltbc-|Sjg1X>b zD3Y0O)5C>$ZL8KzGtmwlo&mVQUefo*MmkBaRD40cL*8}y67xLGSmt^awBPeLZIsVw zG0^n{so{8Iwsef`*Cq>1v_qPv{?rR_U7tytz{9)UaIjx`bm<0h(b=BprTP10Y|6Dp zyvUvVgZM>QD&?f>4WxQ-LyAHJ?J^Kx#9m^)dPFFX9+IF{y|^}a!Zxu}R#o^}Hq?H}qNWvdoKZ|eK$QC#~|XeGYT zC|2!4!j;rc;b8^7Wp#7&*zEMf?+5tq^YglFuJ<4o4U`HAH}!Z{M{lOJR+wt1ZS@9p zJ=bVudW4@e9@U*3Um*ELSakg2tnKQqf}4L=d%MeLSb*+zWjonl;i~B&zX$CuLTjRD zcy?+XjeoRsT3UEP_aIy6LoH3E_&T4)g@4M|AaflXUUYiur&rnb_`n<5_U!g(&lzT2 zA`tpaAFiI#Z+Wt`?)p=09Qz}jKtISV{+h0Cdpy4VtLtG2`Q~Om5aNqRrS4BUW_udY zTi=kAtG=dR?T<+lo$4LcP`#XYkTzd$qSs<8NgujOyTzBY+FchEhYYV45OUfrcOR@0Hh za?^Xl2&0&`o9r?c4LMP?__d>%oG5LpQDh4%M9V@l34+b!z~r53xc zmDX~U?dm(-LXXn-P%-mplY}Ei&Ecnu^}l{Iq-8{O+6>qGiqrMLhnL9&--h~I<*t4$ zd%C5q^&)1~=Xw*Pjdz3g6kKW57>OglQO(5pQ+{}K$sf1g20sq-`}rc{P342a;YYh! zDaRL9L>s3*&+cN*Yrf1k8MpNbTy;0qgN!N06C;A1)!%>u@LP`@y1dNH`xk<`g|7R7 z1Wctn=J!tv>QgMU#cBFp&&!-urj25NG=P=VW{d4Td$eT3&)5mFPer4Zegjm?sDb}0 zAM&ha@Xa9gTf-ma%Qf+B@v@JhGLy?gjocfZdGs_ol0b!q|n zTPtq0P1fp($LLh$liEXn@3CvS+FvG!Yqi|2TJ_(bi-n%F*ZO(ygI`c`?6U7oGMa#; z?BYxHJg&ClNM!$f90TcLp#j~hCaC`yXT8sroBB!mioDU6bvD<$`K@ro7VD7|-!FqL zDX}Bd{nF})bL8Vj6QQi<2LDJqYti;x5SZ42LULV28dBA8kKU~}2G_;6{n1(jQ$K}| zvg}QDeoNL1#GdmMOD!e#wbW3f<%8-2y|b{(+e$L7tt!!q8h!tdB`oZKIe}+YWlg9jrBrBc0Jqs*>+Ek^zTm(eHLS%sW zNeUyMjT|zKZBo7}{oDuD1FUMB`4xv}eu$EJL`Kq&GQYZqH?;LjW$Z^lk}E{sXFTw@ zrMvE>`cE=mcq897Ez}oDe!@`iWYyu><{56d+h&%X|LbXdy6`l$((h}(%LGyfO^Y|$ z1b@%X1A0|^&o=U1^%`zLWyo(kytKHmO3rlWQJ$;i-J-g;)B0kKK94WGi9lq_YMb54 z_R%5desLEI>FAM_FH$|VFJU*VUVmtdeWlv6{;3V&MS6S0edK)_~Cq*xqGj^J0c_SYMOTbURvbLBu~<2~i;&NDC9}14h9$wh ziC34K(W^!xF=Or=Pd(BHai4HijAFT3960nZmDbfqL>)+1i}Ygue)ALJX6jX(bOm*47{&( zB-?Q7vhAd>NuA6-2>n<`y*WCl8iE+}Mz{wWa3RtR^Z8R=03ACiMec>4(-+76k1zgf zW^c5Hyo^}cxNdBra1nF)A|V!;MUAvV8mFCbkQW1k@*@&wE+2XjWL_%n8%X6`c^s*F4aMB8%JT)UrJa*%;Gq3+p7>88qU@VGlWk0 zJYkRcwulsYLC!DZqag{K$!HeBR?CgVFIXYvM;DF^Ojap{4m8v*o^@RPTp4TKvYA`~Ml#bux;WWv)j z1&Rz8O7nm`yF-fb_~7TJ&YqdP3vy9{XuCMVdc00q@BC;5d8jAg)U+&c_|bJ zsbMK;BwPmHK8YoUj|~D3Ebx{oQ89t1`iy@d7m@2;DmD=R(#mW%QU|+O9WV>;5Q|uc z6c*cx1bp?|@MiP{gXuv?|G*_eP5+;!At3yALepfJSd7H7AE01tVcXaW>@wrG!Y4LM zcgQ{bFBC`;4FdW-tlm4Y#TbIkUG=S)42EV3brA3G|~dv6Cc< zSHxv-v|I*{BR>d|bJ5%Oh86fP$3<8B?)Oa>PdOf$&++AON^JuxrZ!p6eesIrBurcZ zA4U`CKexazc>)bHiTet8yz|S@9zxh|+SIYgr?n~9(a?NW_()Fkf5|#A2j{w7t}2ff zrz3we4f(k}n0YFKof!`r{Vq^NWIh#>RW`bquGzag8=I*0n7O3rLRY9A^KMD$fVfPy z$>&Kr-zfBj`>7!^P!>#l<-omc3g6Chs1ZHjhA9mG$6d!U^Hp1IOLK9SI7GZEKQM*J zU~r3eVh1B{E~!U`VB)`uiKzrK+fJWUyeqidZfQhm_^oUAqy2BE9%h%z%!}43I zB~o;foy2@O7>=1ZFe+;yv*(BXGD?d;#rX~oki@&<-5)dbi9(ZV%^o>lgl`S3X}yM= zV7&Z8{DpLhhO>xbk3J5KO&y?d`Jnf77}VOiEDXv?0vL?vG5aTiqjQ=a@=Xg*_1P$k zlFQ_8Sw|G=MeEWCxGyH-vx5%?jb;yPgrrbE?260(&s>Rz?y#4wg#tH;`XLwUK&+VcN&t4vI;RoNB%ouByUuH|2Q zw%o+D)9jJ&iXFs{a%=E6{!05LLF!0WzH@Pg{$UdRjU8wERI=St^`Hzj(rb9Vu)Ao|JX) zn=c1(@}#hqbR}tE(H_Nb!QtZb4J;hK&HP^Wx4qy@O*ajY%W2OT6cKV6w3%{H?kZyM zq#zWSSZFTWK;gd+nvxA|tBWnDkE46sXdv6enBtJ z@ZZQjFt|;F;Fem4=7`pyf%b*3aW?owclfo?S9!Xd_L`U29_nw^$+iO032$RYa1Ut- zX7NQNm(GLqUxY`nAGlkMh6;vt9P(^)(SI@#cjK$!kD_Oqtd`HVrCLR`xg$oZ;~B}4 zL1OBH)Nm|s43A4gL1(u>>`Z`uo(c6%$GOxOXW%_htp-Id$$QEaXf0)Lt9(@QI^T$~ z?uzW8_)G|gcWWq!+slyQeZlI}1yEow;Tt6I_eg+w|4aBmMRn)dp1+tm*!tDp-)mC> zeYtqll}vABNzPP2k`JJPa z(%Q4$xmGIcj-j>Tx?9R(K&$FUI~ljo01V~|?o30m3$Px?ErTASzR=K{uz#bY3&5>l zG8|@Yl53vNaQTk=Ut=)YBy@r9^oZ}E2Iz-Q;epWv&x>5Rr`n=@uOGh8Xs8eg>_Fbw z0-3fkmJ^Pm+T+}KpG@hz=bOC?bH1-zIe$%!0^rA40HiG-(8(dMFaVLnP zXN+`s`EJq|@wMXSSr7VE^zG<5k#pU5Cd>8ulPBm&O2rvofiEMCw1>t7aus_;#h`e= zvB{!Y2zcZtp{3oXQwv_tH_kUrK=8nc5XY&qJT5|IMB2JBAff zCmHEvIA*xpe7{XrF65hJBz>)MjSH`l&ecT>Ad|k3BGt<)G)Br=y%r@93@QNWRmkhUsZLbwkZ7g3rBP%hqQY zp{%EouZ}lSOr7makFDu>%Zld-{^I`ACSa2_!n@cVAeUgD^iKLp{us*ZQZk%#A;K`w ztfzybQ_uL0mRL)}gGI}J^YzJ_FV!3-H2Tx++Ff;v76<=MCElcYnPRb@MmQ=)FL5#Z$C#RL*zb_QG1gDsDxTV8Hyui+ zBLUMDDzXWC=!bZDu!DwcbD+g^HZnLm6I!n?slM%P_sNr!UD0=A+}or@KdS_-w0!cO z@b2Tmh96H*59_07FLK-Dk2&fJJE0fTgH)H&*g!8idDQ-G>AJ74Sl>p}%$Vf&wNTNQ z4^pNDfraWVt0uBM+F@avGF10Bu8>N$0OMc&MChn}(i^E;z0Hk!dEaJ_6CaIS905%AFWiA`3q+wT8&qvyXxC%p)P4Ph0po<$>1@`6^*B5F8;Wh`ovs= z^&~sBk5CBS%6r|(Y?`rNS!tPX^A{Jf3~_~bh_cZgX6-Vd9* zU&-9`Mk%XIrHli_Yj|9CZMmtn+YYbaU$0kgW4mJ7ZJZZhs=d9VJk`9lb*2sNw5_(3 z;%mNV8}q%3YfYgF?vtr4q{iAGF`EW?mZ+soX`V~)vc@RK#ipjhR+W_(3}cXYk!Lgr z-My7#o$Ay+_9N6UUh4gIi6<(rQ_r6k%ROp7Qysch8KP{HQngBYf|RV7SS|6qb*^X^ zR?`RSac_S0i>7-WoetOXrW6Q?;Pj){+a`1@ADoe>Rn(7Ln(2l0fyzwm{Ku#h$Sl3P z_JRG++Rv0sy0BFJi}#%3FjBlr+n=qq;df+MI{o?~$KBX(lXN~i+jGV^Vymd7>b;9^fb)%RldbVm=Io|`GIhhK3r_9@%YE!a`q z4F`s%>TH#Ev~_5yBkriEy*X(aiD_H1#)kbNbN+TRSM@pSI&ZkVk8mcgcD)iGgH_#L zIw_$)nH(40n6t{$E5<0gw>>F5DgARoaQ5GyowB>+ZVtR5HBav-WjH;#Q&pGN7~NBg z+||f(@d;S+JH;%JFAkG2*q;m~Gti0GsGSF(XCi9Vl&t=V@4mowW{ zKnY+$!WaI+`w z@zmEh)qB_b9ln(pbhK6oJAoNOUg;Mph)%7B!W}kPoQ*wZ&b`fIqgVeNQl^f3*5?C) zuKI|1r1hRrdST}Yt&TDW3HJlks@Eoy!Mq<%s)`%oC^s;txwtP4c0_m{T*2% zT#NYDkDt^3u=7Y4j?>fZ?dcLVhTjxwF^9GvJGxiFuiryDgAx-iW@0T_2&4%cq5a&2JpI%lHP`%}_wsy`8d)!DpNww$E#VSdsE!~>@Bx%Xr`>RIw#=E^FxU`U z6#W1_OJ(O}bY$=_E!Xu(JFVT5x(mG&RcvBuY@9dl>0gB+c>jr{J*&dLlQjg{0_h@l z=R=^X+~eIye3APxLwQi}1!Ifs3A@Y)3g%@k1SY0eFENA0|ze3O8C!y7Ra#1|f2fI0AbUV6x|24*vozh9P z%YFg1dLULom9Xx^~-cis@E)q~?=Y z>n#@&Bo`ULOH&gW2v!PK_Q{UDSbl|Zx8JMrhozQ)K3i5Y#(eLNIAF{y3iTo z64IA7A@9Tw@OkY*^W}2vpNEQ~7$u@rNVpDNXufa^JJ(iFNKWuxzJvX@*xuWc(AP1S zN3&<*O|p!|lP8$K773&HdlDy3g%@QFQ3VM-b~DHvQWCz7T1e15hNjusIo>bI*56hN zw4W?AGZv@t%8k1_gwOAayqtaq=d5yG2;=*?5b@`w+uEd^qRZwvb3Jt&(_Q6aZi%iF2_R;ac zsayYAqr^Pmn+_oXAg+8PR?{bWAC%g*d>$_g9bf}U&kK16;Q$Dzv(UfsoE3zoGYeDD z0!LrpWwx%C7s3=Y2E>WU@{fT?`t%+mBY?+eW)+bpc4+m z1U{S1b#(MyXKP@&iq?_B=40l^Xad;*x71RCu4L>YyO5Z>hOXexd?}Qd3(y?iqW$qD z{5bQmw||)Bab!5x+WK32$QMnk&5~uOByydN#qXT~cVZ8G)>TLwJ;S6~0m{`EFj>=~ z8VLBi4KN>kWwPDmKiAp8J{yje0&q+@ptPo-bLJb`KV>u?f>{doO-D?w_4rP<6#1{> zP*cJ&k^ZM1d`AASRoHO9FD6YKV&dX_(nZ|I*CKUu3m&so$jvmw1icFHUll9AQSfUp zRvr0|eE1}1;eXlB?)mNuyW?c$d88*{a$WfV+%+<}&6mLE(FaP~Da^kMkbx_PV^$x2 znL@}tiEu%=z#sb0hh%nq3NrhJSWl6KxMy(bFV5O_;7=dHT_RQ}4~;PkZlSXLJ3jw7 zq}~d`OLPbRtNWNmzvA_4?B2kmj<%*#lAl~dz6aGtAm7nEQ5L?xg2FpY&b^@A)PP@Q zA~b|?xN2JSs~|8<$8`1$6d_;x?SK=umU3y+5(zF%`J;4z3=t3DYUz(g!wdX2j@}sj zR+DkZP6qM2EYAIE{2q>7WBgmRIN6%|hub96HPZrdnvfxlkiH6W;v%UgGFzv}Kjbw! zGM3`l-GK5o7TV8F_(~2U&GwXyN16}*PFq8Nt1V5wZmK9g=YqUIy38*NZ6!$>Aifm4 z;BGkwo|zcFgDX(&+Mu=THP}9L@O!Ran=f*vj&+< zrs5lX5aQq%+ynhS1X|8V^w(U*rwD|bDG_t{8CKI?D`2ecjH!wF3dmZi@+PSt`@k!S z$4Lko4)RnmS{}E6)*dFlrMZMb;~c4M76yD*ldFD2^m+5h&FgNdXJ2hPXdVNi zoZWmud~D?KXz{UdoZl7(leS!^8tV-GX9oH%Wrtd%e&Ubp|leyA5n6Y&w=aWz`%k^qv9{mR;gFt6j~Z)g0@M{aQaU8D!ppv>p$D!uqg$wRGzRzX4j{ZyA)J14owg2dYb8!?Qb{$?PO3_?Kv*{NoEF!V;*ajrB4&E^?x7}vYd3(Gh23TwKTY84%WF%_hV<%k6& zz;i4eI@1hzi4XB*GzLDXSJ>eI`xAG?MEcm+MYqs}1qK$(HNCY5+S|ByYm!e2cKA0- zx_~*+xQe{{B;?-avUW%VhtdpIiu4wGVdZ&)h0-I&aoV2tPfSTTBAxWlaoDoA=+B(K z&|OSOklu$keKPN745MDX0_};>piVl;y$=PA0lfKE?@ z8iB+9R5IEHKF++MEJWvFe|@2GlpNLv8~2PM`ag6QNyq+4gt&%xB3F=OZ^j-N9zBG0 zDK)xKjQTvNS@`F_tF&Q(jWW3RmVGF>19J3pv5Y=f?@Z5tSiBimQe*ZHnSj=(OjZ<0 zz+uKOOi+i*ohqE)HP3%)o&i~V)kXnl(kprAJ0vkmnPL1RrD+GW$+Wi7NdJWXsk+ch z#={3Kz`=Z%-qk~m5W2C_$zm0=R7dCNOxGH9m0y+gU!IW;B3<)D8ZG6!T0<=ozkH}3 zLy><65&khLCpJPGb9dTMw;>5wtXfd1I_dwKin*EdsM5e$-SH~97x%aA(tPMB?><@#95zkUSac6S3C90*38J!%Jd%Wvqd1GDWIp{mik@zE;-?03n_F}_5DSEDc8?BpN_-c6Nlc4sD zmR7Qgc9*H3KEYU^cT$TPk2_0Mr@pUgDQwE;y5<|{6PEf9%V$neHt{>|ep)IfIwBXS{R$udDQ-e8bzC>~r@} z7hvbkJzFQcDS$J&k0)B5T$MlU0xQ>U6q$y|QM#H=~?3%>o+M$*pG zM9(@Y*fT;oLT9pXo=M~mZ)`+MSG8htbKH$hmf2Eq{ke98jne%(OsF;O*Al6Y5s>a@ zN%SxBrx!g*s<k<~c1aBXjlhQc3MT_U)${N2NG(OSVrt!y@%_ZNJuj znSMexX?fC~%QO97{asI+6U7y0E9D*Q@fvWhdlzFpQdM)vOe6f6c*v;2>sw2TWwj9O z3N&rCyKbGFy5=cLuhbRd3cs@%pixC=YZdf&MN3?IHl>x(YVdD>s%Lx(aC=_WLy zE9Ana3+RS#WgKokr|xCXQp-cH_~!t`d4qM zRu|^b9YR~WRs1FNlIjVsH6kJdDfE*LW$vy~=Z zyYboBuFX@blNUy9@`dMOJ@;LTl&YwASzU4wt*pPAIII3*%r9SVq0jH!ldXBdb=1&R zHOC(2Rn)<1iZ;oZrwjl?;v%$%wxp6&NDd%*jYy*f9V9Oo-Zj2bVUJKCs8Lqb7bW*! za|7w9@YGvaerez1d8TgmoP&39fG0^r2LZYhA7Oo8#`KHN#;(j=Www-8v^B^mGuCu1 zXw}~dsS7d%vd%f0=VnLRO!kKEGMc|9!?;I(dbyZ}{?L19fr%kCETx1}#t0Uztj5t? z)WEOQB)N%S({!3%Gu_Jb2h3mtvX|N%)<92DJvVnBI9biSd&NWSkkDN0gwBD5mQF$| z<23!K>}O5I0gcZUt7kX^zW>e5s+KEh5B=v09kOa#Gc0G^KecAw`i0pOv?omb`acZ0jvk=H~w1ao2PH+jEwu4v7Y0`bDu(NVr~V?aEsz{8;8*KJeEyW zD#-KM0Hlt~i#tUwe*$+p$v6wDa#10tesDsR>tvp}S+DF2G{a61 zJziikKNLPBe6T&uzJ$&*KJ)%UBYumO1qWz?luL)BU$8eD1)c8}c)#!YVmRs_lFi}= zaip*jYuU1BwNDI54{6A2HjySu9fXl4=^)SPVjwyVPZ%Z zio=QY7(~@ZNRVAebJ91gLNr#vcUZtsN2F~Z*c7u#1?f9{LATg4#;4sri37 zHF(D7z-v$t|6K_*Fty(KdO z{)Nux+x&lUIdu@=Cje)ouP_b2TNBG~;D7Mx*Rv4& zhoIfQXXJfCVKGupmWz|3*t2dAw-}y|WCog-j^H?y6B^?;8^XWAaiPQE8u1FWbYaj?L3WLAw?J=`J0jinXL!;rY{<>wt`$$nye>FgzCaf-0PB{1-tk+bn+w$ zt>DR8%igo@jUP+syv zBQB5gyfC`3s)0o_1^1;w&Z1$(eJ05su{jjP|CthmGIX(UpG*`!BV|?{4fUXQk{Xzs z2fzul5uFQLpo3Tm6h0_z3)ni}iV-=EW6~rk0`xI|b2fj3yY)kOfQo_i{v1~x=)ve9 zUJAA7JkH7xAr>=C1UN^%;a^PPUHv!b+2A-OewRL@DQJwjE?;E)0iW*`=-ykQmu-he z)f3v!GpPA}(AfPEEkKWi_d*q%gU^tSTO3#{#$~@xO3K~%M)8ZeJga6b0rRUIj`b^O zASK{a^YDA{?hT_U*f;13)p#gcp-sXc_+VP{qrt!O&9UDT%E&v}3$cskm2p{bB_1P# z;GD66P`Lm(pL5`$Z{kNlp{W2@StVXis0}sW33WP#{|r47H^g2@h?2k2zEW}PP-MY3= zZKgIv?t|T}rF1HiV^57jU_X_Fte6)Lp0WHonuWUXSKzp(u--U}Z$uPM9P4w24VOk6 zaZ<8v8gdemCV%Or@ypmKSoliAjOXH6-1#2Uio7H8NHcL)FASEK!Va=I{7mG-B87Y} z(m~Q9qmg*l_78T}6&XZvW2!Mw5P3Ot9ZjS?S#h!-DX6?)$X(zA#EG zKHT>q-6NI8y!_jGR{f%^kQ3yqMs=g4kjYkK^6ZD5oH^)woPsN3Gty{xgogaKQ3W~F zTvjCCm=fK5n(<^=&|Sh^t4CR_I^+hj30;pfaMnx!|8f=mVl+USGZ|Nqg8uKq%YyVztf+=A#7db(tu;`NMUfyC+f>kzHJ`LatWX6rrjOlyg?kPZ65 z2xF&_t0zFiYA@iOgzD%G?FwZn2@MplX+(wPB^JBa2fXtynlX^4`-EoiRyJEd3cJ(? zMsKoMeUBNk1%0Hyq3L*9w*c3zG~WLk`k+6Jmn zu!aiJY9r$!X{7wbjQ*0gHMk+*sJFwu%6C!;=kp7A5Jw}I`=z$ItY6v>$BN)fo^|X*hU}lT;mIL=wrktEg74zLaG<8-c862Jdh`T@S1 zE4c6Kq5~>QLEcjDgSkc&kC3P?u{C~tc`j$O8%D4!3l-o#%P+1~7ZK|EVC>Pi;4kE5 zZXp>Cm>EJ%$shUlQQXH6;GgEwRPkPyJ2h5)&yZ^<({#}^i9dHeHWmoS)%|j!tAX)I zudWTyXV41b5oA&^hDk^1CO9e|>bKA&Finh=D|9Ya>)fyYrm;D_)x{>pn!0+^62dL@ ztHtWNs9i8#K%@9V$B;N<4fzLdFpl%KxiAjwqHR&?riZL` z?m;{=o@%Y^({iV%w~Y7tAKhX!B2VnoqeXewn|vK_DCJCCGm9VUv2q4xeZp;SA=dLI;_^K zp#^$q%Qe+%u{YKNKR2fqASEpRxgW(l%wz0o>E+rpIX(L>+c30|4*Oerxg7atg1vN`6s8=%* zw9-i8cHr}c1DN>VlhJ}N>mrVz3#q`yH@H!HjQOZ-VM>9t4tgcqSzeId@cLMPS!?9< zF%r})T^8OczxX?_`m1w?xSww&Ytg?DC!V7U4W`o@b}6xs)p8X0`62x_-zIm3KXe0% z7z$hF=x9ZIjk)7vMGGj`DFETmpmp|^aMb5UwDw~XT% zDV5e;?*C)&E#RX%`hVd$yBk;BVUa+BuDc{80fMF^NTCoSn-HQza4XQ_6o=vkihJ?W zB1Mb4yITVBm2=Mhp4|-u%Jba+``-V(pZC6>C+(L#GiT16IU~QB`Pnq|Jm%tFFoQ%` z{h%{CqO3lDEj!URj%31)=L$}e{SgwPkvL=VPiD6Vct z^*ZD24bQ7@3p}YD*Wj{Mf(6V$I-ZwAKY=9fdm4LJoLtz9cMG~O=lI7##pbdyX<73u zZ{p&9f5W?A_t~B+s8hCI3vKjN!4>O${y@gaT;pA#t5P=7foTP+-HkN7Ow%&bUoekd zPOV_Ow;b9m%jb#fo+l0SAG!>3tIrE(widsz^$|3ugLrwMvg3K#@CE2iHHGZ<54twI z`0W7wd&D0IX>%-_+vHy31Ag&t3tw&fki%Q$vK6O2JS2}}6ayiM4JS7MLUTu?uya*kVrf^9|pShe6!-WAdScESU3 z>ccUdmxCDsy5HX5JY2;IH21OUhTR6c4lBB0BpSQ;`&CQo_*R+jzM&|w*v#+*P54zQ zsckO30epZ^>KW;VKDQKl5{r2n_;2;Xz9WJ;$j%0(J%-b4>$6KM>ubkWwz|2LTq$Y6 z#_?QieuOD?%*^Z4R0gi?9B`4flM3l!B;?rwUQN*9{w+DP?eM1 zyOqu??Zi&xNAlAs3*DJ1Acf2nJe5V=r? zVm;H8#P}_!p6vI;WkT6$ODMI1e~e#BZ3J(i53e2kzk2iZkim^7IA@d0gWX3Bwl}ka zorSeE4|`ZGcIXDb!PTGnG;o=0K4;D1wG@ozpX9ml>JdNcDJ)O)R9)C?t;6#&NW<4N zF<7-Oh5mgza1Z?9TXP<1>07gUd!N^WP-_VIw#Nk3TxRq4VYkFb={%|Tq%WBcd1(jY zj=nw_dk* z=6CpsXhAMRd#e=wf+|4|WFvI;@31o<<#d7P(rq}scnJxilKfn1HSy`i55>F$*{`4l zbjy}Q>$)9EFqZs;(`F8nD6)e$j(QF6D~s7-&^&Jd+4rBA?eD=S&`7_DwIBKP;Pr)` zdS_mypop3T4Iu_={_5~ge;m85TiEa4;y=N;&J^@!+G7`7%si$~GnYszHH$syTUa~A zubAp(3!+EyW(lIhlxogm%) z(dTjP1(o*lx>|?XX7T#Fxbk|jSvX;M9_8AH=LJh8E%TI~$iAcI!PC%>;2&+oSw@w~BW5pl zfpc&UjGnp4Y=alnSL{ol;yQViJMs^i8(ACj`@62=?SOXwWM&zCjq#^~!3Eie9GX#i zyt>q6wBH;^fGpKeE@aOM~fE-FZ7pS@UGR!99%^P0xmR=m+#p zrU6+9t(^l*96TO9rTXwDlUwvG8Yd@%s=Q!$)MK1+)T7eFhW)GkL4GXpGr#3O_qag? z+G0TGUeYIFaTyLvkKTA=K50e$0ZXhI@ZJ3@14~5s0Qv=*p<$$Vl^>d{uGWRs6bF?3 zCFtN)gA!Q9p!D16t4t!XVb&EgyV#@9{AmT`7F+P0vAli4z1ceP+Ma- zJ+ZKBX#N8s8)>vlU_Tg1Y7uOcP``P@`C}tUEt3<|1{$l&WN}&&A#!8%4q=#P2Wx5%ofeuPM z{E~1!ZHCokTj$hlX!$)~T$1h<VI8KJI*b!)TT(fs1$~vq zX=$KAES-S0R|8IO0=s9}i9(Mcn$b1rqk2~RahdT|M8S10s#2!y?uTu(jd#?RWJ`p! z^>^EA`V@Qt8?k@x4j+GFQV;EamI+|9NN-q|?QHZw<6Y}o+0K{iK1BM|@RwV6esG~D z@T=1stVyu->29;p-~toqmNBpBp*S0E7265D;vO>{6!AITK4`MORh7YIXJ1t+i1wBF zip&!V`rEqkOXyRU8kqT%c>fK?jD9c={-UbVEvN@LLwY8BT3^Kp&ZFsdtqb*OzM0lW zZ%*Y`@$2myQaY}nt4+m^V`P>qq&o?)`GDRo1-E(uJa><=wIjWF-?Q&9qsrK|HeY3g7=gbvmQm0-mmfg!ON%6@?jC9fWGL_vT9hd*RWNF4|EpN zhW79ryAQK(M|hO)Nc{mW=0Y}x-qNvoXjI--+P!R6(L0Zc9*YZSyibChyE1#X6qaky zGya*qhkk$EdW>CVQ($B+!fE0icx{OWZMn<#A#!lI>BV|Wf6K|TEpG1a1B$G9*RV!W zu-}%hVrSAdp!;|p+@?o3fg}@LfR`8r3fLkvBN5DTa?h66>w0_XBYDX*=)zxy9h0@F z*}J>YHe166!joJk?1TtB&ut}vmIK7o_JOI2*<}-Rnm3fJrQL8^;nnYc=oolUUm&m^ zB=cQ?Tr!K-Em}a>3a46JS`rB#y~pt&U}Q_#rX!FR1GqP-UdCS8}v)Eo+%hm zt;?y~HS@=p@%W3NMWroHe@!tX=?GpvWKSL7r>s9af=b|RH(SX_+Z1RLK4gc&KT!i- z8ss@`*`B6`-Im_UdRtm>PH@KkiVGbVJp<=-%ej5#^{KaST_$_Zb5Rt1_i~$M5`EY$v}`#4qM6Z$mUiFc4d0?9-S8W_3mUf?U~vox12-mP8g7EXK>Z9Yz)_6#hW z2ub8MTNLc|d-A20BTR_-F*63-ujTYswkPi}(NjYhpX3$Y2R?fGGV}gfUa4;tfq#+d z&4bd;%oOiSrH~mh-RVEE-)PI*X6Z{;HSd7j=qM;UR&LO7yv3VNM|?Lgfp!RVZ~IR%CS|Z6D(VxO}8Cu*ax7V zka`M^&>c)v*Z6`rZ)TnLDtTUIndiZhu);pYzglPE^bL3Tka}W{!ko=Ohc*`!We>Cm zzsIUk!fwYIi8TcW=-zQVJ3cG-j^=GKFuF{x2|*_ zaJ4Vd7cA}3FPno08pFOP8_Cbmbz2o9X}8d#%0GEDxL{B+e@Mf_u2CNVoJ|} zM?b>)60NwLR|g(T{<6+yPcUMv8pBvZb;fG7gns>PpODM+Hw9;oiQWsUjqyKYeP7!0 z{X^zYA8YY-?2n7BzPwEgOFFST=)Sh!U`Oaq%?B0NQ!4l-xJ{=<*VS!j@0Zj&bs_IW zLw9nSM28*Gc2XE-(W z4OIZW!^8X^*lZHT?haYd`U2I{JpD>9_DGc?mzMBrySeyhX14o=l9AA;97XG?KFm$% z@xhBZ-3pf9W@vD2$1bKBtLLY&z2$dWul1f`OSsyu*waVqxt*79-B)zn`iFovPZ9h< z&f7-tmN6qqWojcs(~HPLTW7`w=}~*=OZ)LJvnN|@X`bk}g`IV8a#4)O1NR>A7cstc zqgBZl+BWciA|2@tyeg0s4yBqwYj_oTX42h# zuEeb^?;sH0?E}dPtJbj_<^MX<_&!IiqpE(6tOkZfaAA!$zPk0pT$gF1isJ#d&*54)A*juJE9<2R~DrsV&TAN=Ch4E?^DV36>Y_!FgGWQx|zy9Sy}E z$VdhA8jyq<&+1k6pC#z@!L#fIZ!Z54j}OjV0$mR$u^ynBQ4&_h>j^1f1N0Y8a}T>? ztlzsqce5*10y$>iYTfI)`C0k53lq%Ccu9N(e=s$dsSA$RNa&8=g0}`GPSFtJ6y01{ zrTdVBcz!9Qvh`U%tO%zPUR8aa>pqS7*5bLA)4bpKqp^SKiP`-P=HB7FKXDT1xA=

Q~J3$t#;CHi=*xB$_d4dW7 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 MLnl@7Vt>}+|Js^=IRF3v diff --git a/Externals/OpenAL/Win32/wrap_oal.dll b/Externals/OpenAL/Win32/wrap_oal.dll deleted file mode 100644 index 9752892aab8b641bd97f9f33c37bcafe18e680ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 413696 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

T+&f$ixghDt873WzpILVUW$M7He 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 literal 133632 zcmeFadwf*Y)jmFxWFTCI3CLi)AfpBwMKBsKfq-PlM9;`XK~z$uHNISo#VW-ajTKAi zB%1LsN~=}c(w4s37F)GgTLiQ+;g*Cuc!S~vywnpS8nlJrh50_u+ULxi2|;*2?eD)I zAI;f&uYGy;+H0@9_S*ZLsl0K4BirF{|4I?n|jL~cib8F{m*pY?8qIy+wSlMu9@Wf{+-jNk8rzt z7noIF;a%}=R`|{N*8fBQ^2hlu#E1T6<@{*=FgDy74y%R=d<&(<@qP` z`Db}vd)w3+)@31|P~mV)d!UD7_6J2*SZN)OvwVHBazSu99RI6Qm$F2jgwubs6knL? zav;KgvsB{tm$S?imEA0h3|-?YW$_NDV?Zy5V}7gCF`D&E$Z}jvrWa*7uFGeF`L8<5 z(TD-@MV*e*t+W$));S%^O^DrP9}%8j8wTN%spvByvhQr)_Rr^VRF9ZF?UwK@4#!_^ z0s(b8rr=qFr|n-E#AAfY=5Y8y*aNx`&$UP8ON^MMGD;uOSI4Qy_rX#5%0|q-YxY!- zgeTyQqX!~Ky305H_B)Yrp9^&GO7i7ocD&5t7zgVA|L+7iphZ6})MB?6l;~}m?!Nj{ zr$dW{3(B0E|&p);qB!di4~VcYZngRJpKW??Y2 z*pz~zq<8C`%<1m@#OW{|B~^bz-<*768-~@)nDjm=d62!ED%Wh8Rk_X~&m+BKW3&1!S9k0Nw4y>ZS>dhZar zH3Sc>(ezYR(T{66o;Ac%ErWV5YGDgi`e!pdbI~yV&M7GJ6n^e0{K9zYW?|qIWI z0jS1i-$w`9ud$8itfV*jeSuX-`WnzVoS%F0o+()Da5y}L?|2H|{M^(3_5xq>iB6(b z!jSZ?l5$fDX3g;2iI(wKx(`TXL^VaI28^gx;|=Jyg97{$gfXGmw1Tn_Wi%lDdHQ3g z!>=Fk>qbC-&-n7Yf`1VbE&PoL8)pMw2L9@#cdWu+LwYvo0ew-y0tcU40{S|?{+eIk z9DwKoe;%dS!k@gI{hm@#9ip&@bl^z|*aV`l0{R-D7kND%{56}@;BYS?y&QBK{!kbEhMoUo|4;ZK%C}?klmEi+k%VTGAD^f2Go$`H!uFvy z*!>CX8FZ(8j7@CHlHQh?WS{%MKG5fbPO_IHQ@2_ebUCEC%%Bf_aPE2eA^K=Zb$oF z@ij`r?&nDlfgVWV%eCYC_J5A=YBZtv_Y~HD@UOy#??Se}3AnrBGj5ad?N9nMpr`ql zZ^ySnvK^m)$D2P-L$-tZ0dxL*d7}VbghY#xjR+fO6R2H(asDfyHKbob%Vdmj(_a` z34fv31KrNA5dxj^TmNlg`%oL~{)F`my351$?7&n4UO<>MRh zJ&Y#I`CldY8jxVI^#^RfZ#Vb~6~2k2e~f;m@fF$e9iE}2;6IuFA6obV3g3rFu<&h1 z*ti|-cjaHBH0*w!^iT%A5<9+c|L6FwPT_lMvYP)kd>69)O~Bn1pD|s=w?FC6fS%@` zX2-WevYpWQLaT}?^$K9PBFJmx zfeK4%a$!oPpJPHQ$*f0Ka<1mqdSl@kk-}4dgOYz6p8iMU`882z;CXqP@an_&fu{~s z;wehud0eQp{T`!0pB?TNh4Y}qbY+p^WhPL&|gft=P zJy$`xmXP+NTb{!8$tNb*M=m*)pr^ndYJ>$tK0b^XYp> zc? z^v+(wgdJ~OEa=9(&ID7wn;6cJgSM*$TxyF2`MzCRbpH%_jUrGXPfyg?c~veMjww>g zo+3H5e+ja#rzQ!vDg=+(zg)=lO~85l{mUD-5V|{wJ&W-RlmMzpHP+_kc_DVUc}dMT z7*t|N#rD@56p*L2+sv)dwVL11DleN_R z8zdQ^qPnS1O+t}(F^##^J45h6N{sNeu<_l7JlA=x-fbg?A#n1JU;l%m5?#&7%%*qkmA=3lHtVprHPeM#rj^j zS{Qbn0NWk$fnjA#-wnXavlf&1%{+T=3cKO%!$QB8UczaEa!3@utrWVY_PX*dW4`L{ zb-T$pY=(`~6t0(_%FzS|5_!5G!)q0u`XG3e`_kw{S)(;1B2B@mt0fv(lgs%1=-q~YsIHe7 zzDgOACMK9N{4BzTCM<#QT7ulI3}1T_is|nASYnWrz<4ZFEYK*(=Sl_{5L1X{gjtz2 z8kRg~%&&7cNa?h5G6Rj${;6#>nB3A1Vzh~ z6g9srJW75SvYOAw3!ujkwwP7N^wUuN@fYl&3eeRo(I#C3vlb|3iO2D)ZxgWv%I+V0Z#8oIke!=Wi&d^)F2^#n%rp*MI z>36Vst}m8Zc))n+D)Md26ai-XKiSOt0Nh?`(?1&gpH*anyO8uXpzB*ag;=DQkWWfc zCB3goo+$-b*1Nc|#0~@=ac#~bj9P)AwmPrAN!yr?*%<-P+&}?rdirMrp28;MWQB1# zvQTN#NBb1Q##mw;XTw;N^xmW}){{QO#7M`i-&5FR(Lh;k`4+<~opDm()wov(Jd!gyHfA*%J@b{}X(%21zjVSt*fgO&*-%J+% zwvav*bh}?R`9zBy`|Xky%8xGDLVD!HW~(A(Y*Pr(;86guNVI9d<_8alAa3xw%HLzCC>@+?_t!GIlgb<)ECqHeiBRu-o|h@3_QTDWZ?5C zd?m#9s&rKF?X=^2|2o$8P55m7^ls|t;_bBKoiADcuk-t1)ZAtK18V$9u*RR^?#7=z$sB)$w}g0Km43?j8+M@YU(4FQ zY5Z;a=acPS@r_pa-X_7s*UE4=_$D5O?@npky$}VA;xxVvJHGP&3%;w5!ndeg_&3Ie z@7!bHd!Aj%;NRAX?1{S*2foIm(ox}`!+z}Zq~tk4{ym49GROC;af0txB$)h*G29LR z`X7bw0)?-N_&%483cg%BzU==CzJ5pHo1*Z2y)})mjp1(a{eTEE`1i;J=5#Md0b^1c zU!EP`RLOH3{#o{-7(utOy0w1tZSZu#rS^vtnf@{G9^W22c#QxX!V)V{0`}OW`9x)! zWLt#Zowb;0KggoIYYQr)QD&Y`%lTq~;2X1!G>j`vp63xZLTIh)`C^Si^Apm~CmM{R zoG<$9j2b1mpiz!8%+l6^ZM{p28SNYMd~pPtQ0EKvWg>S&ZTR}L{bzu?tAD)ZYT?#_ z&7jW*J?$SavIG3NWWz`v=X|lY%lZD#QLmkU=%DReqSK+&m^i80rg@bDaAp=L$&c z{Q17o!pPHYKywM?NpzsAe6G4m2HI!^Jqr3aoZn(=mPS5T%Kf+QpWKG#)92?el?whT zNVFKO5#RghS6BSWpx`egeGTZ}fPa=9|0*eWqWHf-KAvl_>rTcS72NBJK#)DbNLh#<$oZ*{Zja*jS{xHZ1@f|qy727-4)*wP1w4f^xHvC z&#xLgzI!Fxe>VToggO653cl$`u=qET?SBm1UGe2Ad>4|w3G_6+T06d7SF#%?gb$un zF-6{4k0NxX8y71)uQLJ56wh~?7*5+sJm0;VTuqxuJpYnL-9JNKqX<-3B2O%~qbfI1 z!Chq8BjPVL-By|V@2drm-Cw<^MEEqu#3lD1GjXNPo1SME(%^93wDk)1z}>kH;2xC@ zihWsU$M>Y<0oQE!tSaGlQTQx=J%^eUzj73=-!Z}D*H0ME=w#a&nUKJ*(F)RZLUMpg zel54-ImyIxLi{>I@Ywlv`(?r}w~34VI=nUmm({tpdF(<4zkXA}obDDBFs4cegn)F2rhI*}hIs7!8m(}>O#*O{U#$$MD@*ZfVkS7q*PYU~dm#!K#lm>uSEC(Yxry(D zg_*d>uUCjZgI{lz6TI7nyvAZs$*-k$JTFLw6Xe$`tGn{6 zufp{#2`0aO&Tu#UIx`a-_%&96t3d%HTNp3=T42X_l8Nsd`Na!=sbRG35Bi~IrC+CA zEc|nsIJtj0(1d2^1AkZjx@4U2Y&+?bw8y=^Rz4R%1K3~LF+fz|I>mK}_)an>isH3m*eMm`0A z=B6b6Y4OLTj?bPeZnd9p<@DBYmQ|l<40w)2I;cC*m6r?Zq)UqmmdJCybVw`SWNc)k z^VYJ*)CtrFm3ppRkQWiEY-kk?B~nzW?}1ZQ(|3hS&GWUO?$q=zwPBrR9Or8|UMsO3 zukCNx;i=yN6qR}~54A-$t;i=PUYIt%&(?WGvFwBQoMW14-}}}$5Dy(2w!v*|N5l(ulUD0!Ucsg zv(Pr~j-;YW_~e|!I)#(tzp zlPx|k430b<1C0hzv>iR{L-_%NSL1(~V&fn`!RY7$VVUI0x+q~v1y@m78>wHi4nt>KY!Mjh09RqC&XhHW?b96$p&pdQ#iFl;qXsGFP(J0klkF#LT}^QSnmCa4E< zwdBxq#yA}oXVp`!=adV5my);my@ka){LAI4qrTPH&CcrMeOlbxC`)fJH|hQ7XsEEb z_f{svdI}j0B)wZy`dCT767q<0Lin2^3{r%=G+~h+=%otr_sS<#j%T3!aNT+!+kEkA?yEk&zRG+zd-kD{HgXoVTHPfMil4n-@tEQ8bK(jrL1Lo13nuoO5gR`u}xc6twCS&yZWeCN+VO6fy$|AHk6-`sLx(wP&igvo9HD=I$ zqi6=FTI|6E8MLUP{Z-KxX3%a`v_?f+oIx9}Xj2qzNe1l#MJrOYr5Uu76fH;5mS@lo zT`GOw$!QULFp)vqt!U3ET1y6Pm7>)t+O`bZlZtkoqV3F}J*a4finb?%HdE2QqL{`W zG%{${kcRnZOT>^hA#2iGtjay5%5~bZB)umqTCJkVOH!%%_vIzh_mHCH!YEJA&36^e zr)YT@v^9$MuM&YIFAk;Z{DY#kD4M)9lA`H~_L!m-X4HA7qSYu`Q3h?2qK#HGd66Pj z=Vhct#{#)nl@FGoq^Ev9%SY$tA~;V4^ANmS1@jS{se(QPc|ja`3lY3t1&a{8N(D<0 z9IJw52wtp$8iMDl-~#cEVcEaB*?St|BBMXOb@CseFX#bPSf$XIwTc`2a?LJK7{ z6QRWtx&@&n5}J(AQVCTev|K{v2qh#m5}{5BU4Rhhgd;o@Axg3%d>TTOTSvG*_bz?0 z{g9mr_aN3TrR#pA(7qojQ|5l;v}RYs^G=6zamMvTWjC)(pn;_KmW#NVj=UjJP2ZUG zUa3;nVyhlNVXbs$#Yw=RO40o7T6Mtj=4pn35{~wtvz8!Hs8UWT3fwvgcky zlUZ`>Eo!IwBpo}JE9qw6`YZDt%~zg|mVoR<$cLuu6i2k1oP=Fk0(xs9T8o@w7D{?! zl549G#73_;(LOR-o&#>dQLxomb~a18@5C?|8_tsORD?k_bQQghq)#PVv$?I19bg7% zbN_Dgw@kKC&j={@K$gE#)s-t%ziKRHb>OHMP5%oMOsNwLSK9;9kn1BP7OU+)c&m8= zO`7%QiEAThNpHM}#oWsfF(yi(a$mG8Ckbw__dpWHcB0&uoPd{zM!gZWDq;&n|;W27BT%@dMwpq zUz$;~xnI&>va`oqJmIv&f9C>mC}Fltel9&*GT4U6a2aTslL1m@&xFZvUu zspQ8cdFs4&e!V1oLG(*!IJenJuC-t7k9OwFzI-KIZ16I*CcRG#7fp7)?%E4ciuG(i zUviwD&Jj^LdV`NDNAG6WbRgnCb7YR;U*PvLbe9)vqTG+~PJTOoimv^CAiu%m%kQtw zx8(PUKc$8|L-a6BUH5=?Jo&{2+a|w=eS`cCLw(1PUrWCfiIz`0&5M)blhQ_xITftb z^nG%b{oPP}Xm7;B=LYq);=iGPP=DR{*+t@_8$iEgwAl%t&|8jRJm;;*yJ`WN3Z)Hz zNM8$)nO5Kn_vccX8beMit>Iv5s&7epXAiSjb^9L`t5Wx#=r)rQx+?@4#WcO{y`EVu zrcAXds{pF$S0H9@7Sku4(Cl)cKC%jJ$yB%aQ$~N1?%qs~xVYe6bQ(S^e@I)wH2qcM z!oi||Bj>8Te}M0YO&(YOp0%Nj^2VdM(m%C*5l2=3ov>ah`x}^6Oo(I+9Xt1c2Tm~bprxfK*}`+O2UtNVq9}j5AJp9IYWIYUfjxPF=XmA zqQvsx)1tLLNB9&?FGGn5`EW6Y`y$(pvWGg$>XTTmVuL@0VT7jk;9=Y+oy0UMdq|C; z;)|tny71>&7Rf!0sCGxr#09peSQWxtV;4xZ<|5Q~7Av-vQ^-crTXwEAdmHP>k!HIt zqCT_0`tp1%zPXa$F86E9^H{ba<29Id)t;KhGth>|k%8x@M4f?WX`$fR^#{}uCRHu! zXxwRA*zvZqxvL@iorOC-QS7^_8>FTn6XQJU&Cxqxvn=|1Gc8y&_A zl%{4^4Wj&qH#%fxXqI(Cq!UXE&MS0R(5(4v)_ewP7QqSQ$Vgd&$;C`i1y?(|`b%|J zudd}6vq5`#CLFtb>+e<1QtdD4TAm5VDv!e^^bp zJ>mB~2kBx3htI>#dI+=e-0BUL9`38f-77!BSrgX1Z7@`m-VaELmO3J}A=Fn8iU$gO zE4@C4V+GHongay|#D{#41wDjgg!pv@h5qHRwvqTI5*50lG&-E|+eR;SKu&^iya*lGCXHGE@2F$rf{F!XZ&r!RRbsVDyh!*5g~8%zVt0!okv>}775g^?mVJoMouE?wa8Obv zAf;NR{O&VJsixN|djeaLlnB9M1c)&n}u_DPy zD@38iNC>r48(HOxj6k+JW;>19Fb~Q*IPKlHGp%`mR8!6HMigrA3(B>O{fbop+fvis zb&qE1n^Liu!^ugefR&;XG@W)2WnDns^<-EnMCil(T;_0n4|>tmhkJS=B|0Yg8)(W% z@1*w-#vYBHjFetYmLeJPX9{u=H^vn(^J9{VWk<&h_Ak#tYsLGG8Sf;MD-gupiv3t8kn3;R zhd%sUFSAOUIde0W8SI2=nlqkduE`RgFHJYn zu904wR(&J&B?FagI-##2-kiYpD z8#R8J_iZ$NbC>$+`wB z`9&t1?cm)1bkx;=n+zDD0IomOFBG!(VOk?J5dX#uaqk(h27`Ppyd&xTUzPMZvPhDV z^gg1J3@pD$3h79iqmmk|T+%>U(mPG14_4_RRydJKdI(o$;@-DW1<>GrC=(kF5>}z7 z{!_{mre*y<5vXL~ZAnRb>R*$TgE&=?08&;9DdDMK!9d*mG*-sq){2WhNN&Tuko#Aj zlqdVeH_>s(P55reo_W*Cyo;no4?Dv*s(EY4ODOJY`vrMniWW5Pihm@ND2rQBDUm(2 zUCZ9pO>Gfmn^REM-rN6IXS++n)YXMRcebEQzKWr&{}qI7r7HuTryhEU#@*2nJ@vgo zGW84ajqHN&6yU3<{~&xaXv4eEzTS1>*q;)pZBGLn_Rnt!+d4e;KWBUgr3BuF7ToOe zBfz1l13`L$IhVA!d{wty2p0p}yq{mMc zz5AZvR8)(0NLPzFoGA34`7r;e^BZ=+Rm!V()UTs7{o1?~)8xigAiD{9BJca-Wlp_C z?=)tJ#{`{+x^_K{2EsSMu`W_%oCi-x2;ap*DnDs8Cdf-&uUhl3oBLRLX(cYoWwwav zhr$tj*9d!3<3ZS3oL4w|K##8D$1>d~v0HI>0UrLPPUAWV6t(CP$_12=55n;>l#nsZ z%?>7T2By2;eO$_P-~sZlK&~iG7^j#;*Vu~Q%c31Llgy$|siJ>VMY-o;(RUy!Y_(B} zy637)3sj~v%}gsKQv|*<_jgr>J5>e)DucBwR2i;hB%Pi(yJHUY?Zx1u`Rc#nd& z3gfLK^}jXVJrYhMwJALLu3KzjIF7=_0Xz$hr; z7CYitz3o;e;hEXDB{uf`*MPO5_L=U;Xkr{4$h3N`x-WpAk2H=bCkQnT+FfW&CH zkjl{*YoC1p2ze3TjQu|3H_ShrA5xfliaXa+|4U)EcPTvT==^W-054bLL0;~7og)&N zWwH9liu@!V6!I4oc_P?bgCyH{ZM)3v_H3b@x~VQtY+t@9yRODGm;_oNQ&_ zVv?;5l%i~D^!Wv{MS`no{vhO=x0ZV-aWz@~;I8Khn%;&Z%ZITI1~>nJ0~m1AQ$JV+ zY=8JX8~m?LX@jkCk`^EHf{&R0y`mp@_4)53JvDuJot)pi9)zv&EVv*GZzmk(@i9k+ zsLcH(bNC!2O*P9y_n^E~S!O2nQdROxj9yk5_x>K`jc=#x#Nn5_w`$E8mr4%bwjzO| z#!{~mV62LhxxHf|_qny?iN3KJODFuEkZI43wSq`OW-{U!NAB}?WoajDh`1*PKJ_l#R!=hg}Jq3u!r*c{sUJpAn*Iw!mEb?~;nuH6LENjhPI9GLUD;Y+Zpkg6W;R8VKn07^KnF=#qeT8tUM3@BZ}k0 zSa~7-hr%r{!T;Dx7NW7{@-p^Di(#p@PNcf?fC)>~9R?hj0c_H{*Ub^#X#AGa!b2ys zDrSGjsF2%9)YKIN0gYMo!2J_mVOweIV7O z$-lwCB<+WEXC?CY3ze?s8v$jxh($ib8v#u14Cz-Pp%vZ%Ju4VgK4 zlBRr(nwnh`5$3;iE=xbgUAKt~$$i!^GQ+iIHrkB4{w4OI`&q_fu4O9m0x{y<36=P? zO1x2Wx}H?A(dS7mzf-aAD%x*UERip?pR3sa(7uYf9!1PHA=+koGLBg5M!|gCf%jb^ zxR=$m2IeAEU?8M7g@&!B)YM~H+z~zlZa<`7;P<@JH_!7*0?RXAGg|HR*Nx6|MBYOs z;gkFi`EjqJ3I8WhM`XRc1=D0}+MJ(jA)+-}tO^2LgNZo{N}|>midA=pVl^EV7ws=j zVyfVmIk0d98f*4MzGt+IMo;t(O|MIU#agNBo?38Ce~#ur_$2*-7CakV`|ifYCYSM2 z39}4;EdrZzkVV@g-<&Z?Xg@osV`xHn8z_eFOp12M z#rr<|7F^1%8F_zh#D`z{;6$k#2mf(BJSV?Eb0Vs^`%>kNylk&p!~Hk75U^pG#ve*~xuB8w z;4P?==j{cstMK6!2)6qD5uk0Wf_z&OLen$GtL&ov7#)rpN30Cv!%@R`$9PurJ>!g0 zR*sQsOrZLZzJx=hmAco1{}`!887X%e#s(wR|1xAL9e!TeK2imw23OdZ6ShEdJ>IxsHerA2Z`nc`;4#R+^`N5ay{hRJ{?dg#Z6iV?75XJybX* z_W?LobQ!La%N-8B(v}{sHeLsY@E15D1ML)iY_sjJAo1?ZA9?amZbMxwCty(jDx|NW zsq!V>oaBBrG_1+K<&>oCrjqRN6qqc*VXw_t5G>t!&o!Q9rMS<;+b@GW%W@$O;gY^t z5!o2kjm~mJ_SNAKuDZ;#teGOfiHTR#LWP6t_U44$b)^ni^kzCDk!S3P0nQW(yO?w< z9`<7BX#0A~2<2rbn46Lp`938+)xpg#ra3QsMPf+#o{D=fryOPeV2&LI~P-&h9CNYU1SbG!$D-;D`Z86n(|9Hw_CE{ zwvCB;IM&<-hV4}g-jSDpo!?>v?O6UTzGTa*2{<|!)rz4hHJyV z#7n`Wa!Mm|-3+?0qd0+5Z9hZ4(-P60^pdtwGGu=aMY_f*6Q0|lQ&AKpTr-MW+xyLE z+KXAAn9-+&c|6Nb=ApvDzo(?@QMw`Goq>0G7u(T7&71)W zK_~sPQu#es5?QK0)Djc8=0huRrYfb;@e(Vp zP1(3hg z`_!EfsWbh0ROHR|E9M4qq?LR0PvLcuIqdK!@rK=)9XFGPuJ-LWf(Q4Ci z7lL+Os=2z$A)`k${T)yJpHQ0qnVwi;0(pb|2NOA3yl-B3wmvRLzqT)QP#HSzK&vGh zZt+Y&g52bnqZMfZcU%3-9a+#*kWD-s#>0NO=6EY+KfmTqUC``|b~+o!Cx3Jjnkj%g zhMfkbu{_z1OLmC04?x?#aF2)P(cRIQZI!DV3wBR|tO)$NIbi?#Y#jFcqffHuU$++< z4`Yy;9WY5898j164#}p={k>2@P4u@aCoIezo`&9#8>MfSpad78#qwNKu#it&P{E^% z!C>7_Yr+Df9ong#wgVDqJOGVTyaTGl6L=L96;C6)U2kiJ@X2J{wxbZ_U9 zobUi_hC);QIfr(JvR7+UTS8~!>(NbD>wU399+#(UxxwtKFopctOFZE|m`c$-9oj-I zdt0y=R`3RcZjz&{yG@%y7@vH#NY+C9J7LsxV0koP)L?0>-boKUWf9BdHciLv`1u7( zB|58xzI!r)_kbI4owYU*;x*RCge#T$;SlmBKo7(oE2zUWjLpLS2wu@og!B9>F;tGW zNf>p;J1Sud^rX}9pE!oVRC~9w;UE)QBd;@|HN1rjT~F*bB5T`S+;sfCZtRrEpt`xv zDUrOoxmjZ)z3b*?Pk|K}ZO&2s)Zc}E3Y44_#zI3$GMteEb)};s=K)4|NHE%&?fLNz z!0_|D4pXW*sBaF&Cw^^c<1m`>`<(5)m@}uM@p?z`L7ao=@0OKZ7M|&OrH?V)FM^6w z(lyTZeCWK<7lhrTr-XZr9udJV>vOzcAD=144_B_(G^2J+|C;S5!#V!-J)wRMVq;%=X!gxu3~Mom0YBWtT3S61P>G`t zsam!e^H2-87M^Aegf{G*Q0d0IZwl!f@d=Am&P~Q-%S`^&<$IHQC zgRmvSz*fONC9(B|R0%8DL&RDc>mdx1O|0q$ZPN3Md!U|=t=ZeKh>K=#_f|k+w;LL= zH#^Qk_m=Zd2dHft?zopLjQ6)MQH3c0RufGk>oifDLX zHTweVDpUu)9AA0bZvVXZ9pp3PiOSP<@aMY9xM-C4=e=iAU^7F{gs^(xv(%x2!W01m zUwK-BcN2U#$@fS1;0p&^jKgwhCrwHFYPnSAv}qQp{Wm{AJJp69_u(i8es8(Lohbcg1tIFQ=aW52z<0m~jH zw$J#@74W2;fh@-LSZG%y8M>*AQssUInIN>qJCfeRUm=BNSZCz?k*+5};9c5{2EShn zXT`JaeT-!oqGktO(#D@sLDNubPWc4XC3j;5${F>v%&^RrsA5p_ay|X%{_9Q99J#Y6 zd6w-6u5gA)JBs(mp zFbn9-iZH_Sce4!DLJ1;F=WIVMfn8%%8)(t4MjjuqwkT6m7!DPlVV^ z+=KFXKxY{(X9o;CgP|HNGWQAH5IyH;ydAv_I6I{2qEvaO@8Z-Jxj zIw&I5bxxGa#D9f7HO8T!9&Qs1!kjOK*(V$0i^;g1N$)tMz&YOz^8`*bdL>pXd8k6a zC=QTwG0Y&(yI^bJeb0u+IYLhlM-5npFkP_R)FqGx`+3rB7;vN(VcV>XAs7HSP^1uo5m@*L6a2vCj2}z6-8?YIwIG= zo)UXH?q3z{JmsG3Xp_%0o8#lml+`}!uF?(R*M@C?wSrc1EsKUDBrHx<&;1LlUQ`&(lJ5-eb9s+P>{-i6#sv&l@Wlf8}sU$jPGaMRV zt@vTWoXf+F;tRitMZdcM$`V3`cS!j~7wG0KN?!4imR|J2*cgDM0YU5ukLJLRVH?n8 z)&Qf5&$hU2D<=X>)ri@0T|u5$I@E_g=v*!39OjQ`;NvepOF(s;XWWmWQ`;uZ+C-o6(+<^<2=M+=@KEVRs2>9 zNC!h8bs8SCIF#4G@hp1;swiDw2kL_=7wP7jf*xvJ%*#z>*P}O>Bm0ciEE`QAyiLJ* z9>r0l=sWf@n8JI%E6179R(NIIo8Z~-JeEjhA#dP2l=+G!$I^If_2LqH~YWT(9+wlp+nHZTce(LHj zc>CuR6zTW%Y!CpUJ9 z8-dvHKKPrxE;i=SeTcdKjlagle!@ZJTsY7cMjk1aI@y&SFz84wK~%Kh~U2v$q|>a8rx0m@Xa0M+V7y6 zJ6YGtGF;*-$6n29C;CNJWR~$Ly0LO+7M4+w&75yrMGf`*K`#Yp*&E>h^Ofr_;r6bJt0WR^_dl3C18y_fZHNJvA?vmYHL(TO>evd@- zbr`-2S~wi@Dt?vii;%uo%7Pu9k=~K;pvXth=&a%yp^H7k*Gb)%W$}C)um1Xz+oAS- z7`OiXDBGJseUmW?DnKQA>VJlkDZ*X@-QG!3H0g|7f`PhFED9D{2U;r933oY8(YHI* zorFFX0l#zyb?u5Kvm+x@wQfXaRFzx28%vz8-3QMZ-j&0B1{yWk=~x+)+f>_dJY^}y zl~D%az99=BnYiB$MJDsvC+`DdNVn^`#upe!kbG(yV}2Hz^RtAL2kRcz0LxbaG1-mm zFw}MIE4Q$2%RfYO3?@z6eKzL@hQ!i^6F4KQ;2wo8W|i?&)-ktj!}ED~m0)y9#b ztbB0-Y}NFovMlSJq0*thhn9f1+H`jLsxff6#(^`Ld5>0lNza=pYN!AXu}4}^xWWAu zl7M!<7b;GY=+3sBq>|8%FKK0Iaq4S&BIHa7`&*vUasrcOK5oS}ltDT=r-uje!Ufh( z<#RTk1RpRipEAoIBugzfhikHe*j^N3PT)&#tOKKf&tTCzMVA7~XE)-K{~G5*+dRw4 zc|ipGz9|J0;5?+ZsDi8M5A4C$1i>}Di$>1mr*Kj@2-hJvOQ#{NVvC>86_Alj5~wiE zPdEr~00-0j+y;dWe*V_STn700;&+bX=QGUXGJZAC&QCcWfD2La^XzW;3Ezz%5{-B} z7`p7F`W+PD2C@jO0b53G3-@_wl5A${cSH_=L*x&RQ?3_ZU-+ca)5D(8703iFBoy-O zRV~`?tSc?Tc31_%hcap{$>wmhgYUSI&Fwi}z)Cb`M?Muc3(w)%lM(tRp5tc#oijWa zxXwS~aLn!@+G7n)Zc;i&{4YiLq#`ayaF%SVgp)E~#L8GOjRJ~U8;apO6KjiZlIweA zM*a-G2ml=wu+mf2neU^cHmv7-DV@4CE`Mw{hpV4LRtHfmKsEwKLFI zy%dflPs5LqY+R20DX(Ga%M+}}oWiAJ{z-v?yPsvlXIKu$swt4EJmcImm=&I(dZ9!9 zF2k2iFqKV9{6c1P8E4@*TP1NSmvfK41l93`3L+?Z+b_WpsFzC^ zN)`r%qaAKXRR!Hfml^M2VJbeDw#G~|4SLCE+yK3#{J_e!ryQ>bA;R2Ktwphhq`uzo zxu!Xq=%p9@sO%+(SMkMcZ*-=8}iDqR=u71Z}@!#)jW8@M3z?=RRcZZ~f=de<9!JV@UQk$KsCa})weW{@WnMDz+O&=PnA3cY^mXj&1 zDr63-@3T^Hv53Do3Dcq&-)DtqT+@5u`>dV8*vt-cXD4z5V|N+&RO=qNXkaSiC%=O6 zNee6E zxI^=5`)U5@VaO6Tcdx=!*M@Dw`w4oJ=Qj)@Kx!ah-3;f0u^*}o zgXmh{)6srjz|;Z^*2aMN&yU*F|lk;Jg#Q?McZ zz>L2aIRcHfOGB~wqD>;T#t*TJmjgFhHbY8>;T-m?Z_Ao#p3yFvENkZXaS<5ju%XgR zqBn@nl9TcV_x&Whj5~1II(MeY5p z3REF@_;-7>e^3NQ8fRmmEdjvbTDwan3&ziU6k&WFz&zVkA~BbIfCqPVyu452$@KY` z?!9NEvGdGhR7EvqT-CKIrnX&-s)9QFWKCL=aq-Y(PcU%||Em2&F!~jQtx~6R9nx`x zJLW?16UHZJ1@w(U_zCxlr5nx%PKcAIes2~y_4^jo{&m~y2*V3MJkoQ0&*5|^Ku{8( zEU(3%6;=4NzGqRxZtkrdxP(W=(RiiPID($gO7^ap1;WY+_yd+zY-r3~UzSaVwEX}T zYs-<&e|1_zOE}fSW9b%H`3`Buzx)^t zpxsvTH|7*nHVpDS@JlqOt;8Sv^Pp2dDn<)so@JZ0vsbf`SB)92BFBs|BOQ0=%kzVT^ zMLgzc-xn-h8^);wNF%XG)Fnm*8XfI@>YAL5x$QZ1Wl1LhZ9P0$)X67G8s|8ya!1wV&41cJaKu6rbR**4o}s^uqu@tGy3ZK0|PWYV!^o zyemuumEK}Qd@X-!|?cGzl&<5-+h#m5zCx9!M>h&5iB)Ur1O zOFJVNk;BvGT%axQ^X8MY#`J#kNvmY`b`-`PG<#vJCYdFB&pBU{Wd&@SVU=w90(M7c zv4g5uT~iU{t;CY-utL=!Fq6;Tw70fZm-{&3NV z4ou60lRc?w2k#G>Rp0;&CfpFHZlwd2+OuCxc=R-C!1PhR(tteCrFU>`ohgCg!T!=@ zB)>Qz_SMv_ToAL@tXJzL8*U`lx&egfStw(h;)DDJc8LhVh(C&8kq22l#zy5BZw9`|$6D$4DR0~12piRYRm)Srtd!1o<7v<=#`*4cMtR9Z`yTH&uG?5IH z?(r;YigtcA=d#ju_ZQ<@7QRQH+TBO~-B^AkT?Jlt+#-BTHhhql8acUNo(#a(Mh82IlOA=LkF>@ucz4)p~b@m zH-s;x?W63U8=P2q5`ogy_YCq6+Xm0fRq;^HtU!F6^DjQ5^1Wp8p)25FT95m`ksW$P zU!F^I{h9^t7U>l^0eve%cq1B^VXnx%6zC)2eG(HES@i2!stifE$%Je`&EpE@DdY@+ z*A(DO!C$XR-_O!f%UN%mZ;%%2 z{UY($mtAy_eqo<}*mxS#E#*{KH;!=-UOIFlR^zl2cq8z_3A_k1R-Ed?{{lmmzS5Gk zC+-i-<1!ZVd`BE^^u+b$&EsXJ2QHdC((L-`M#vBTMb2n;bs)@G(z|arZwVg^2dwLH zrP1Wq5xkeRIhAD>_HeP|>x4|2rLAD&% zXW~)#yKhv*$psBaQxKmN$@U5HG0k7`nFXE{4jd66nkATjDt=SSNZMx?a|FD)| zJdi&aZ7!(Gg;$*#w9Og$9C|dXtmM4N1}$DbWW`+cbU~e#%&p6XYEM8bAkU}z_?&rd zPoZPs+Gtx&xGLJ_4wvvl6!`#w6F`8#teKeyj_T{$&WEls6PM@YK&zDt$3blCZzB!J zB+(I@DwUg2YPXHlKeJQcThzSE$KhCvqvoA%~};)8P$^z#cj zj!<@sxqkUe&gF@OX2~A}u8aeG83K7&*GjkDb2d&9PQ_v%>m8D_u{u(_=lbDMM()yW zcee#Gp8k@;NCI~!a`}5sLA+TR`Co|AyiYi|CilYy(NA*1`O#0@;l9x$&d8~M=ODJ9 z^mh(ed*8q3U~t-9f0u!n*>^m9kll(UD6lza240DiP!EI#NGKPfffDMC&>#u*MJQiF z{SZ2pw&$)xJSwI}m>?J8s1~Z^IM8x4(>kodhL?KbV}nJ#g6n3f(-$ExlMnhw*b9O>6qEspsL`xbKT(GNA7%Ezj}P{~F`8 zf;Wwg$Vlexgzw2yALr=lkE?Z|#lKuKtgWPJ!ngb0^y7TE0`_h|@8EYYiY2>zoVO$D zl%Hx;U+Rqy{d5e*x^z>xpRo?#KxyxZuerX3BrWy|EANQ*bRK-51)(fYLq2Lb==wJ_ z5#H;6-< zsT(jx*W}Ic$Lcjy?|_8RdDp&I<)8Njb--7bK#P39Z97)^*)ZK-Mu-h(U3&$-s=47GvbgDkx zRt2FNhOZ?>&H+O-KcL-JygQ(O?x$CpLk@R81cgHm;ejik zLyk22MVQoixoYd{$r#J7>u+?-*SJc6yYoC*OBzq(Z?o$oBq5QzeEXU%_K7}^b6eJF z-g(9@^Ip74H}7f;Woc9R`#4<5BOU3tL`xj_9E1Ldr~sVp48nV=k^aWIos_{xSdDQm zHt`5^#No}cay)6v@ghbYIasNIt8}T7b0z#>k=a;)jg3Xd5+=-RI|BH|O)9^}q-ax} zF+G+#QwB|PmQjqMhanHj-f*R%wS|OGX~sdxxCT?*|hl0 zRa$&_d6{e(w2?DA!UOn2Sm;`BcHU*Q;42kc^uA7-a`>8{jq;pO*7&sOC(g)PNPyi$ zkduAWPH3w~PT8;M+cC>vpv@z9$nqRzu+38(PsbI1({YPyDu3Kx)`b~L5D18B3cW?ZVfl-iP%g__-F}4wrTp0$(4?19eKq!an(O$_0;nkBXvO+l#JU^ zGHyr7xE&?7@HUk1T@D5>uyEpqSKMFjh-QJaCQiH`olZ;RoM*#{7P`E_XugktOCI=< zwhDF>Q>uTcbO%0QfUBr@QQ#riU6rVKNDz_1m@xk6DBkytyQ+aGRJslG{0;G{;PNtV zdE&TTJ%u5ve&cnlIXGyx?D~EviBodRuJ32a_ulk{2{5jG*b2F*JNtSX_i>$R_z27- z43cp*nnyJ%!I`XWDK0t@#TjVotGCUj{$wWh!lo383JqmwEL(s4=|;}6HNtP=Nq<(L%A|L^ zSs(lJqSeS1X5xwV=MAiC>`z|OyAeg3T}?>9Sm9dPsx)bdkp5_rh`#Ob6Eoi4P45S7 zmzmW2br^tL0sMUC();mdSTXJyXpCQ{yPEyr z4aS|3tK*te?)Mqz;-;-i43EV38HkJ5`u3qDgz0p3t?x0+YJ7JOY3XZy?Y(K9or(`j z6z}GzQF4XT;^{HBy!MsR)OQ*FBYgi$@U1UZ_?~0^UGc?=tVH7bC9(>>t1|HYi%YY2 zL^t?;xZT26Bem}qZgPK~XY|WM)z`el>xTWB!r=uJRPI zrom!2;w@;`D=;Qgj*1?}BPh2(6}NHbZt0j2qo7w$MMdjM z*mh^QAHIJZffn0p6vOH^h0(a0T-s<930%7?V|AC=XxE=^^vZaaMeXw0MSkN)(Iw17`MIk{U?rs@o}n=K8X( zKfon$iy9JsD^!I`#CtMI!Oo1iE=678@7b=ux<;Tr5zKIj?mk&CV2-TcATL_mIYZ+6`+I&gx1O#y?Lb~Nb31q(g7*Y*X9H&+_@O1^4vHm)#23;ZD{#Qv!qox3HO3!H+RPV{ ze93L{8nL``XN={Fj(+a}@T9l3m9Y@+zF7T!WRvPQn@7LPtbXGXJv)!C7O~$f&PWOL zKk88Zo@v%rl=N01XzzCmjDnK=kH~Pi!*&T8J{%B|adwMMAbXqg7DFA7a^RJcIYC~fB zd9GN!Mw_}C{j-hz`qRBdqC&{$BKA1)S8GWv6v{VA9J^n8i^X&(}g zvO_D_mzQ|wDcXq+?P~9-O>NSrtj;lpTgYOAPgTHRF!C*HYi{G9Q$F#=pSz9x8}FCF zDTS|Rg>y^#!+!e-XPr51YKm_&|I-4z^t{ zyauswVAjJq&kuTX%bWC8G>f9>5r|K6wx5#pUca8Q?d^doMU7(ZSZ)3;y`QF01DV}Re=#pidHQ)&41)?qE^uD`VPes>@qbOvHlti4x2 zZ&g7*ZoGTye+aV$m_7Bp41*+i41R%7K!0`#S_$aySKxFVcPV-X^qQQJzgmjKl~h~H zd*M$d?mg<8Jr&z*z3I7*y$Mal*HkB>BG1F)@fSL)JuTKxpo3o;KF}OR;7%Qo)*nykj$D+>0hd=8z%yKJd>`rn#rdkk{6m4CzcW zq!|oJh9mYK@{_6H!W?p;Nw^R$S6u=obibq_QK91yt{EJY&3dFyiYe`RwqBZDi=Ym8 z!{*KHkTHl~(}DeZeoHbr??-0J)lBJu6u-WM%95W7E5{~HAl zC)qe@?y1kp!B7}cSOQpk1G*vaY&?dNrRyPlp86>WhT$n8;%G_{m<yv2*GiS~PrM+2j8)c`Ek>AcbC$j6ENjF&8vLS#TslWfsY~a) zxrsw4yy^_Is)K+rnc<$^jGD@jWFV#rkLL^EtB^CMD-@HT`I^chpJ z($Pa%%P%I>F$bX;Xw|LaZ6Xv z{siO43|Q|ie>mPoA@8bjl!!8vxtg*@I>g)XC8O*3gBZN&zaYVO^ySO>DD{2?uHnGY zd{gIca2C`3%1@BFbWHUy&<0ujy^*wBV?0jKc|w~yPn4H*tnpUb(8Bjzg24dJCL=4l$B83D^;VE|Zm7Jz8Sm84zUktH6u&Gwt+yF>9O%B6gED%# z0R2KQZ{c0#(lI|g&)&;0X}QL9IU=_8GUL?L>Oo1W2e`Fp>p_`qV6B5r(?SFOlGJ5i z<44#F!1O6en~>_hwD|>^xcmF?;UvAQUg40rs^Fj!(dN6OI0LNaRu=mn2UEHf50T&wLxlemBO9F{0o>N<{FLEX4e2D_R4W2nq7Sng1%<~ev_KbVxGAo zW_VW8`;Wh4#<=+V-7A<;-j~G}(7h{>j-6a7_HcOr5RvGZ8;}XgK;;{tk-#sdu4Gf< zhr5GiGQPW#vTrA0_kq1-Usx;Hsyqu}Hnx2XQ#C0aOZ~2+l^-qd#nvb39riK`U<-ra zRrRjoW{A6@bIimXd_Z#>zl2_ihGm4s^le*KW^JTZ{O++t?m88= zHTMgep3T;>@bgzu+_=G|iv7x41l?42wE52YPcH^uu-*afdh8430nC5dXNb7zE~89- zOsX~Jge=)4FkRn|zp=i5VWy?)i;j5$^*O>Dbk{EtuvIGkjgGm!g=}W0^<8{D$~^@M z#x>V)K@8`TgX57P3^8uQVJYq)jpA6w$4tTl5KG^^YY6!RYx#%f=|WZ#-yBmsYD4l= z)cW1?Q0up8M#Km2;~2%qwDW<|rwD_)h@JRNkj}{jaS=Y>$|FhLUB>9y65T2DmS&-OK8IK4FekAmp{U^e zLe5>lnf8A|UM~|CxbyKaqHw4o>0*^Mlu5IYv;ZE{-U{FL(dhL-{xb5nOjPl!bB&jf z$`jA`;o`^YKZVoRbYa3cmV8_`;8>`5x4PYMYktHtFjm8EpPMFE>O+cl1ZZMy#VKy=T$3pe| zDdYHEA8b>ML98z3dJ*Su#37yxrI4+m6SJdQ7EO6S6DO0r!drY0AF9KTxW0pZ{QqO` zUErgtu1Eh&W(GnYoFGKv1Bn_Gjo8#c4GicUnCL_&6_qMht*N1rR%ixc^9Yzi) zsc;QVY}%p>gE3-Il4QL#>!|{#!O&q92t5=x;jSS_w^M*1xLamIDx(vUkDUC(bVXc zH#{Am4nuPQ$Bh3K@&QgkHU?7u#Gc(a2|&th#MdNkE+mVFlcEg#!# zivo0{9r5pxw!<9A=DS`b;LtG^QZdh0=9P+8Bvm#~*U1Ds8XUytIEs2o`2?6Nn7kq` z6A=O~1SAASCzE|S(?F);_$=p>nUCWkc~66hsj{(BaIbe25AyGb`C}!&;&rANO+S=+ zzhoIN?Bpx7LhugSklM;kQM&HKw<;9?v<>Y(+_U!Hz{qrNUa)DG(fLyVu!qaplu-Oe z6{l}mw*ciUTYi#^q{Q;bhNhVvJ|z>Hrs70;WwiY^oU^zWH?rL!g^*o1FQ0c{EF5Sy zlFi%TbYztM^4~JqrD#5woe5DhC|V!okwG9;(fX8I8u{5H*FN%2o#fHR97ePaxT7nJ z=~dSvOyvP(rSvew^Xs5hHh+@c@7tO6c}qOA;m_&3D#F3gA=d3;Uw~~~xzT~r7bTST zv&}fYNGL0nH76JivZmt_BX6Dh#miWvqD7MkA_`ACvnN#md;P3EQu78U_`6nBwvnOh zfy#C+9OHI7m%NpNOUbeJ3oMHYcpbKnTy4A{mt+P|7+ld510&>hX=NK%%k*GwOA1|z zVnFk@f}TRerJt3fn{_eDPrkMbl}w?bgtDGkOGoQKK8;QwACaPSTQ=Z|7#Pbao>_H5 z5?5UPDDJ{Bsv$T@QIGB*7H#a*Gof{I3KE2jPHPv-z{v2N063!k+@83E)f@Q_yerj0 zd6xoThwQ7jP8$@p4|k#l>#J}j^9Vq7Q-Sgax8A9*`ggzSX;!iM_86USP(Tg%9sFe| z=Kq5^`L;ac4h)hwSo-SXv^|B@V2lGiEOLhK!E zR9gu#@7ovAqsNb=G&Z_o-Ze0Fk@0bfqQ50J=CATHdp^O>-w+)x|_Nr{+c!>PL7 z!ZuOankxAuHcE65tO0A_{E{v)k?>x}*U48|ln+#hMWf6k%o{I;{4O(>Y?M$7Jp@ZxU{593eUU3ae_F#5R?}xm`Qrk9d z>O{dEuYC-Zf+a)jV`PO$T=9rzEj2xlm(>GQ(6_k-A=vvgM;5UsJHIkmwK=%_H@{Z@ zPS@UtsIE8T$aro%G@>-|9=sCmtmZ6%V}6$w-ef-RA9Y&+n#IHp$q>IlG7S7Sn}JT) z1vyXGclD>OZ`Nls_5C=fxNLnAKg+4FEhmGl#lrvBvgFy<&@Y5s+X)dD4fm6bgZ;Sh z{a78#siGdRezdZ8Bc+iPqw@#kQP>&v-XI1J`(~8Ox}f7jXmKV!>2ls^VYO)>7@c}3 zFLLGzS^VvD_)*y9ITSe#qvDF*8I?kqF)x)1&LX9ppdfKsix2TizTuTzg0TyERn&fA zdHx8Vv|NQ;;mmVskZ=bga;5Lpcry1sqqdZdmDiR-I-hUlIGN417m2OCsXT>jP}3co z0Zou|8%h=StjUg!-cOU|eUKfSY8x*5^>F&{7>_0v&B7k7e@3~VK!VX*i3mRwQ%!4V z@{A}EkQP90-Tp49m)j+Zpk%S%Sp76^^L7ROE}Ukm$}M-ro&AgdoE*|SR9Mn%BbAxH zG)#o2!7PxBr`hi>_kR+IIM9TR`se~6D==Ln5<>ae54x+3tMO<mmdY5NqmKl%8lTU z#8#-0`0Qz?x`tTOPVuK}h~0{UnSiqUC4L+H={rH<0sMi&k*03o@Ki310qadJB45qr z&+qTj9%e@8j|GUpi^9ouRJQRT{FtMb_LU^d1=q#fEX&L-2#>Rtpr0U4(X7#mmm9ZB z#`9kNIjar11CVc@_l%?ABvjiH$qm{wEsB9CZ&(BwESQd~9FArk%f5x0ZuG(9N}xoD*~~mH4kB zc((rY1Z9k4PWCsU{Lk9OTAA|P379j0&@&`$pg{)kQ22B5 zkmMm0pR{f~O>Ej2?AhzmzNtS-bh*+k9a5 z&!}A-2}?0QQ)Q;Ywes*ir-CYZSi-{*N^T|D+DW-V$_=_-qNujWY3V)^ESycFCJ0z4 zH7e{!=oQ^TiTXl%>8IJ}$vhj6o=I;K)v3;UTVm{lg0S-+_fZER|UD^b$wH3&nM32>h;r?EG_M0^DDZ?NV?hKt#3jK%RzZ1eE`K>lOtI1(TpDIY4s&71r6ZDNM zQ6@LW$~T54igZ$bBA*++J3VrWCD8~9gpHtE0khGFy;`7(BK)*GC;rAGQ=lD*dcX`g=y=0C5eb&M`XPk?U8Dj@RY-4Wr{_ zxkikR=jFP<=-4jT*+$1^t}-HXSROtMBGk-N;{z_AGhOkwm#VoJE~%FT$%z{Q%*oG~ z(eokD#r4)u7MFS<*~4XFspp8@-V5m50epHR-hj0)3ASu-`Inq2Z3SbEj_avV7kRoa z@?>$6o+H_q1E-A>1PND$KyZz>iShD*s;@L#AJ96BnbdhHbqbX}Q5A)+1H&mLP~gr= zrmmU*iIh58SN%u>Dk7eZ;3wdK0H-A@@xMI7~uH_X*@Ugt&>wf zBVIMCJeBekJ~v=IW(dv%<2uHN$QFSH#4bTcrSC;FohWKa#JIVzFK|ja-bmseY9l7S ze9b!yMv){tD!V0%e5_QN>AYVN$TX@eriS<7bAlEpyWmYY36NeXYCYC?GH3Gw6_m%?l3GgH@d6C$z z3}<>@7YUe8$Op-(b-v^xZ=ID)4l~<7{3%I`PBY_AT+K^#Techpu7;~a(P>08_OPN&IhP zAR-GCiN0U!a`5EvGnO4ZSx<|Z*Fot%b2;lwUh+EitnaThpC~0w(X!=CaM5qvkQ}!B zROgmJ5hzS~xaCyO#i)yBR(ElL0%zjBldMqhm}_~rj8G*4(6D5o+$KFv!Yf9ro`h*c zNM0*bqWJLCkiv;^{QAQ%;AzY;o?JYTgx__ZjmLOAQDw?0wTVQSOeYV>rZSYU-*HPp zaNkR+pQKWwMf&WO;+A|XMdu6lC{!sjqp$1(UFwXBk^xwN8~9SN?8$uTmp~6a62#8J zjK1mW+_ad31XAG>MLXGB59_jzKfCy(v{>K@l|Tg7gdoIRE6o? zT3KXX87A|*bppi4OJqX=<;eu(o2XEl4esjX(UOuZRlkMm*CW5|)6Rv*QkpaArWsOL zL2K!g(g+!u2{BX!$BZnD4 zj)yB!OlQc{cnGMqGmQiYz_s4q5R`QezTsZ=5(|dooJu(Yg0HC8K8jkI7k^5Q)&6>F z*+}Ax??6k`h%NS;)E=PALhx7%ju-I4M`vpbHgCnJDgOJLx)9vo&vOZjw@En@~mNfG*g( z|N7r?-$}x0YIdJ+FkOHwb|635$n`_z>E>|cz|==q3HC|YUKK+`U4K@&m#f&245%w7 zW($qRyre)~2|*+2xJ_R35M97wu_O~bepv&q#^2qEtuTM3gcF&?-&Op5hri2k<-Y7i zNGsO`FF>*X0X$s4LfTT&9^$!-`+Zzj@plLB{=juRe;4(UcerbK9{*+k<;$&mxJRdW zhYuO*^?HX7mB)f%g~Nvz4KE%(91BR%Ux=$$dh0YODoAB3^0s0M(dXHZJ}7K_HOeg&V3w!(f`7Pzy7$^qd|Fu4FioMLu9AQ1k@ z>9r-KvjPL*d#3Nb$m;(LLaloKB?y2$7)-)Ev^opQu>`B&gqQ*J&3n-`+d^zm$j+zY zWh?z;j$hDcx1;ZqeG~}AFf%?Qm3UClHs(F%G)zG%$P_C%BpbHgyaLeQx3hIdUCk?X zT}=h`y>1y6bHj{bg>|u}V$y1Pm|V!ultR3n{pcijYIktM>lvH;%5vopOjinUvIz&4Lr^}?w>W{-{K}1pL8>2X`N`M zHIIClZVe6yG0#6NuSuq8cSX!w%T0aU(#_b_It?%j@(yo=+16Csc6cj1|H!nyWs~K7 z>r}c!)*fH)!aI_s0c+Zeq$D|?Y0@j)nAQst_j6G_)~N+2m`=Zj74;e5>e?kEX zZ5Clv7Mg+k!Z1M*Z^ zg>K2@V5~;YHyX%~4537Sau`SXL_FLA{e=$n?^Qd{&j9+P6!ginBzLgaEqZ4Yl^2W$ ze<`=I^gL3mk~Vf|Q)Pdma`dKN^-Ws-mlb2V-~v>*o2wZ4ZB*BX)ru#9AMaDotCZlL zG3@hSDgpY(6Cgw(m9-Wsg%0rQv`NAd=ph^PL)2a|M6sqHTY&-9lVe3HnHr2o1+UQM zwvLnjp4?i@`9?H5RTlf6z=!C=d{A?UOf4@3EyF(h0U>HO0bIO!{TzZZJ&)#F9wrk3CMc~q}9P|`ICZT53I zawQ-M9S`b=)i9zyYB)o3Z{;)sTl)w%}YzOvhpM+p+Ncd)AAOh?ulH8;=0ZB8 z>3}90UtpCsvM{L)AQ)n-{}2s2jzctfP=CLGdySzRWxr##+K*Nt4^$x!SGG~6^e_8) z1U8eX2Nk{SobgX$j`g~vPW&3w@mssXLqjpbm#k;g&lxdUY1@1!MMiOqU*{|SM^BQV zc}!yr!INgRj_^0E7=QHoxSw}#CMn!6Ev)R=9613CC!_6F7cRUrToMp% zXR=5bHi-Vcgp=8pU`t_iverqTayP-}r zT`-0{9uY9os5F!AaE4vFLyV2b%X(G;PU*u9;UK^twpmMLtBm=3Xf-u3V`dBX%!RQ0 zkgiYL5WzZZ@ZLR!oT;)2?Bs&j{}O*hv<0zg9yAOh<>W=&LejArz{H5{amD+B`!aPK z)xN7;&q^3<5-e9pOryrKf!caQu!)a^hPQs1g8}!l4c9W;{@{ISGxK90d|@c=*_$m{ zaWa$}fT`}s6h$JY&jgYSP+OSMwe0f*Vq+$Www|t;D_zql6KpoE=RA?YX_|Jc7xaha z{T+?lDh36UIFsN z1ZT2{Cz7(0eM_8#=C(G7kHxk3yjX!6u@P3nK$^b^J}^{H((*_+jiTT zY!7*qa20)sTqZt~F!H4hv4DHPDw!f*c&qt!6XI&y!d+Ir_4psiH|;LO*+_A3R34)I zCFf0BmXp*jNmoz1Cnu>xk}jCWEX{n_DM@Efi{~T>SDLJxc6UzF9g;L+8c5e2DbzJC zA<6o-)U6C%<@gx|R0Y@zVc@{W05I$O$p@~oe{G~xa#!ER1xgyI5R9@cOBw!%ssdQT8XvcYre(@aTGv#YP!ohth+eUiSHqrgRwt4$|tB|(hEYC{AP%THV!zXo} z|H`$f$ZGTK_9wN(#R^f)W^Fg^WCON}yo%7(Ti;e3ItEhXbFAyWy`PnEls)Hh`B=e6n*OZhVkggF!(CpTBFsHf1k&&*EIO)HLRM9_(bUK}EWMFq>A=~}@p?1UJKZRS@{+vH zk5nG%HQN#x5caQiMfUWs&5t~BggnBxKahz(yFgTG#c{}Rj)%#h@%i4{pK^RQpjVO> z4<4U+^yw#!&(3}|KEHyBd~|#sfdb@=&%=_}uz&b)PTv1D<8#6ELE~fj{y!a`8?g7! z9Uo0u($XODlL-7#wavKwM{2R-;Lb1i_Y4hxuD{2{c}1Q=4%+N;ao{F_GQ&o*MMBih zZ^o9EowWWQPM_CF9+l#e<2!p2-pIxJ#w|w1or7b5<$TWy&i9-y1%|9yg|anQ5saCAAvxC53KZ^@)B$zQr-_b@ zvpWAuWn&XJ!Efi5w=CFxKn$*0{<53`^Ney&p-~q{lAT+%8eZ9HK4CB0A5ZAsUFr8Y|HUP&E@{JOr~mKy5Y z2jpTz1xS6e=nBM}EV$|Rb6r;N=AhKU0~AbcN{^8mAc6zr=M0h>AksXUK}rwM%B9kyS zs&xAXDfcAmVa=@7p~rH(DTxnrIS@;foqFpQ8ow=arv0ly1!jtJtf!940krxWbrk8- zq9^Iz0J~~j)Gflxeel%t&$Jsqt{{QO-p(?bhKzz#37DXou0@p`x=M8QVa944*m_+_ zuZrhyN`%=`5tGQe7)@^X2DV~OXghb(!eitVkG9&$k&(UMAUGQ#nQ6+Sb!o)U&6k z=k+pqU$oUM+HS0Tc`O`VpapHG;E&bg-tOMS5mNFM;a*if$<+F)WNWS~+NjGFR)g;6 zy^=C8j6r*W2e|Q=iJF)#|7Ky=<1u+Cw4mtvptCR(PH^BWptiJS;R`dgNx;zMj@g# zSV>in3g`B!^%wazw>Zya72AOT3k#HDFCDgolhcS=f&;k-I;cP{ZWD+@O?}~q7X2u= z+zCmtIOOY_fA^qR9Fx+)NeVN$*nl8L$?sd~D~VAeasUSnbICBx6ga+4c`G-P9@*qvPigXQE{gxI~w% zvYW8U&j@o#7k!=@&?usmVbOcmK357yH`Y)fAs@`!1&cu@3uLlDCJSV;Kqd=hvOuQz zS7r`6D_97I-tSZNLY+D&N7o!F{)3!+@saosf0PQfG%_gu!<#@U+^}YTQON~!;y)x| zWQqUqTfQZaU*bOqnR2F8PW%U*@i#x#8G~sF?XdU{vorA@m_dW$KVT1p&|^9A9E4H? zRQv~t_^_3c!?y$gs(ISTlaBu|Ud#@#M}%oAboMFK zj)REyvb+YHI7F_yzSpyk{GtKelF_e0mSl$=P=iWCiHhwWkyhgqHY1pbQd4#v!~)Jb zTcR``8(m!B5`LNe=)Q$Ap3m41wbOgCQ&|&BgKSGZC!JW4Rf{Nk?|3*Dt9A}amHkY< zr76;me~Rj|R%tN+S8ElNv8{KAfP&MfRlE_Mil1-P;wSj5_Sa?p1D}H5FYvQFx=UNv zMW^{uJBk0^2%@XRKR?FawAKk5U_bk$AoRhYoBkj7lXpaYHuZzNu*cevyk*6By2u{$ zlH^c(+=gBKXE8yBE=t$UUQs9+mh!VqeHJ-W4Ve&>^GC@T$)491+iJt$r2mo3m;Fhj zK6d;EN&IfM*f;WW8M{Xts5@0Q_g3f$`dg*dP$4%KN`Pc(O}aa>@lg3{nfmH1zT$n( zdBP6f$2Dagk3DKA6+b;5wP*M`lj6enZBv8f1q#1+uzbR)pktX6xr=M!EZ0nH$nRw z`evrxtZ!!9SL>TbdzQYLYhS2uYVGOzW}ZD+-z>1J)s59A<4~#ZWi7JH^}Q@}cCo$} zf@kOH`-kNIy+zUj>z8tG>-#^*{R{ejx!iBn_uX>8PTvdVu$Sw5p(*ym`hKU}Kcw&b zsZh1jYl(**c|`l=pPXIGw`kQu4Y^8L3lHeUm#RV{$0y|qU=}l-}F?Nm5FmGUQ3>#=>13E7t8xFhC1ZhBS5(WU4?=s zo%Jd4AKagcl+5S~9h-`qGgTAJ4f%Pt^!La2(kTLErkB!dL-v}{P%J}vq_h$ziP~sX z^RgwbDW1Z}8K{iV=#Uoqx1(x^jHQRdhJIhH-$&jKqOw1(JGwKqb{Vo%e)#Mlv8a5M zK-drD5FcuTNQhhJM4+%VGL2iXJy2L4!P>v4LUc+`iyk4Z&-g+5dk(DDDyM&o$|)I@ z$IPEqj4#T@ps|SveY*B+)6`wIeFAhu4hyq3*FT=;Qvceetz(zCrY{*ajD}2E6Skv$j0M-6Lke>r6|w;vcV=5GVA3oP>c)bdICK0|Yza>0{L51AkK=x{b8m2uL@3Fgj{ZoO ze3sLiUhkTG=o0^Qs+ymc_ru-H04>?VRtHevuNXp}m7Y>%aC-`?=UF%FMc3J*2_a{o z?>&CLn)L8KFoYHMgdpW0zNvS4>32Ext9X>%6dgoXgTuUf0kYaWWVN}-YK_QhaB`8E z$ZD|N-s==pBCEl8KOyT!opoYe&6~c>_161=*w^9o8gS6q8A6x~SnpW-V+|goqcmSi z|3Z1H?Ch|BY;^pTFQd1Wvju&>s`(4$rtnqe&THB6lGl+%Cdaz=*2#jA$BER|3&=8e zvBSeIVlpEdAwb#lZ$*HbkO`j`{x|{Z#%4ef0SZP#EEfV!+`P-+igI)i=pU?I$#1F1 zgln~k^sHFXBe&ilV#=K@(hduE)a#kT2#abd>WR?xdM`dBf5912&5IYs0~1tO3C{Dl zSy*m_-3AZktHNQQ(=y@&RWdF)G!nnL@Kme@bO>5ldDuPS=R0Mw=59Q3X5~;jC0t(B zs=HRUQ|hgKi5OQ#W^yDiQYBC$dLxVLveb9E?HQ{+M(VmO*tBDX^tOF3Mjxs%d&A}t zzt=#6nef93=m=Xx&)7?89>|a^mZ3v8MpVI=Yj8ZkuaZUW+c#8;SogKCJc4%?cxQok z7ItYZ)S=WRgbNOsH*wvy0=UWL3O#t_27D`{h9y;u;v4Ejkp)a=S|D&upE zpdc&5ak4TTon09cq9H&+j(n!;7~A|+F3CN7VR+=foP{Cr6de?_v>7@3ML{Xq==_fK z+K+xpTNoO+SfE(eO&Ys&!I!w8-9b?4lCcx9u{Jy=9Wn5am?^XMar=XU7{ZatC^Osc zd4a5x8TOoQl1`oX=5OcZt<7v>osr(gQsoG2u4K7TT%}9ON{_l4Hp*(F3kvcg6G9S@ zl*2p!Dnj@72U02amV($hy)3{&J^W6zhr~8Xh#q3Ro+WqWB>QMZkQHR>e zYQ0`6yQ19pEQhbN9I6vEUKUqJ+{Zo(!NrJcyV2>RZ)-=2Y&KW&aKz6ygYmBt_U^5q z^TgKV3D> zk$q=oWXML5N9M5*FJQ0wP%83Oj+S=a9JnAJKJ`%0w=Zb@qviCBIyeWOlaCC~1_h6I z1Lsx_nZ6-#YAR2|lG!_5J`*?+qGsn%YWs;_?Yl-tv`36L8RG3~Q{$gS9FdCP~3b(41(m&maAjB+}kST`8DQU#)?esl^{ z>!a2;pmveT&*C&kC;;S5EDOa_;yed~?e zmrwyVNcC0khvGML?$n`zmT$^AwL?tNFZ9*>Hne_0g$;r&2pZG3a?rDwr<6#ZqogS! z_0}`HD(ZcIZ8=4f4{lY-1Qh8x*c0@N z;qoHCX19GCOt{j#3LU_Tg;iHth)fJUlopc49u};z(;u1mWr}~7t{SWYqrb-6y$lG) zf*;qtZzqa*GG#3oYPy@-CpUZ%*}duFsqIq>XEJdjh0W~?3(Jf0F*sb4RXwO0Lro^C zZusx*A$Jc7bN?tb>$8W{b?)Za%DnRMSnJ|qPGe~)ggtbx;k1<&4#buD-!s0>x20u| zFipgRNu!6-XQ1mRpvqavLn-^~ATd}uHdKZBf2)0$;55&M<*!6%zHcj0eds4a38x8} z_Cw}sHnrD!v39`>+v2~Eb_TVo{@ABbplhp)KC6O<@N;?gwK)4{%S{6)`2i07cFJzU z+?7$>gJnS`V=z{-OP*sT&+E%>eR+Y4v=Xe_#BE~K5A>W6eWaMkeuDFXwX3eC-?R>i zgHd(8)sNj$bYK*YsIujo`NkZAoOScznSCFg9RK&b+CwFcLzP;VhLG;xexu8WU8zd zZHMqjFh7sVJ-H(z1J6zoO1c;-t(M^70(3 zdOi8h1W@w}ZshgoZPoaF(WoybsWZB+TGJU2--W_7Gog?0ydM>C_C50{RrZVPJ}#sh zlLM-*jClr~muJ1heo#$H@EQF61x4CD-;>5GUFEH6N6dckH;Q_UQX4KgeRVnW9VeP< zSA^37#@s@uC8sctHewH!Dmx%D0W{`Bc9-rV1$vELtt9HQOZntH`2@F>G1F9sZ?Pla zrS6#b1mGaX6M>(0SmIbcFFkv7n&}>WLQCp3*D^Wws0yJnkHZEShWl zNuT?_AREB7bhr>S!t6E_!2%>W%ll!h;AgIt=>nWLC$^hNt`G zMg2PbimYn$zC$O(%l06V1ueq2dq-1rs%(Yi;q}G(^{+Fp^VI9_JFm}DuS1My%=>RN zR`wqFZ^j|VgFz6X!oDBUDWjJknL%wnU0kZ{5~rNk?*$4Vj(L|;iUdV1OEIm1i1T=y zJR2lW%zHN(z@9F-_?|I3ZkLu%p42Aa-D2MaK!mYXjSo*E-(1q|D;+RvO?8}&@a`36 z{9+ge+1#NLiP1NdSX)6?gpE7shCTOV8nPAQNkb-jT80=a-zrN^;rFQIL~8n%XsmtD zgvZ-&0I37SPIw5bWQX&r#NH;2kf4Bqm{!TJd0{_68Ye(ESnKM=4TP66_2Cufh;_Mk z*Gz9c$!^1fG^baXoEcN+^gF|RNFmSo-=^i8<#S;D=3z3wGMR72>T|LB5q|{y@W>6>MQSYT0QNiX9P0J%C@>$ z@_6mbJ9ArIEC(q6#c6d;i~PAQs&HC_;|6dJYEd;U$}o(Ye-Ud=NRA>mIG#4`+Tgdb z<@_%FY=2+PHS8#nfkWENHRSUK7!Q_AVQAa549xy%jxFcIGzMGF+m>m;76wV>l}%Qk z_s*y3h^#GVo8&d@o7f!|p-<(Vd1N7YHbQVCLa<}d$$h; z<83_Vx#Hvv2x^T8!5e5)I$mUA1rO;EkU9WlFdYE$s1FtSI$Cf#&~;U19aW!~XDS1U zq(MS}ggO$afN={|%IuMS3uU|!u*^|f86+wmlhfwOKp((-3Z3Du!mi#UL!XK4cr=k6 z8+ByI*^X2O&v2~q7#}#$YdLXtCRn3BgFuW#y95Xka?_0NplepYiY3QREKeJ1x*KZH zy38R6yFg_ZU&{BKC&W9a2rcgmeJl`VM|psJrS-i%72aTIA6eqrZE!f0)JKm*lNxP=*%?q>C z7Vqsh%cJ2D_P-`7;||ce*Tw9sj2;}dkQwg%lH?{E3@V1?1=q+^Nxe>d+wN`>1RFD% z=Z0A2yQny%zT{n6Lv{(_QT3wkKTJ|nw9{!(Mn2IWjo~9+XN9yheSqlfvg*r`T7*Q@ z^jEs4=0_U#^~eSp=UfWOuzXdwmf|mamh7Zf()^%xDL%EmEVVaJ<+PICh+)kr@94f| zM6~ZiPBF%>^uqFr)vPCA4d2TKrbM&jpX|CSN`zC*Rgk6Z1Xu8A{hEM8SfO-=M2~#P zW|juf>iO?LY|qaHafk0yf=F;G2Q~-Tu#w?&HKfMMrt;yfL_yeMkD(6Q|1a7v@@)p# zj|Sp%#)I}j1U|}NivGZ_&SQom*RZC(6~D-3|A-m4%zBC5uL#8FWB9quH|By5ArSF9 z=nRc<$G*v(!nm&ntxBBtF3( zxH!e>EyD0fM=${f@tVRJpqP}6_Usas!Ovh*LxnPxE34OaZMLhaX%Mo~hnf7k+6Jl} zltm>czDo;qhs%7%sXKC%{W3bs-n?P-o08va*TQz3}x;nJCUyJzp|`m zSr^MZURCzgQ;M8P8471C4nh!vF6((4O>fG&u)M$L_F&UMnWtLRzSJ1)Y{8wB9;Cwm)dI(T!X#R4F^7< zIP_Dx?a>sd9!(u0bgt0MXJOJ`ehr%3ha3NXFNy(N`8}IO#PS~dEX?z|sD=MQQtVe;^i6}dpgvv=uuM3Pw zVKUC|;+xN~-+`4OR~A*%ay)CO{gu0!uB_}wCr(yWk}xw;xf8`Z7}K_z@P`yFRH@P5 z1$!G=WKXq(n!{KrCOKq1B+OLEH|Z7F6nMohVRbu8zO-KPil4bt7O=e`-?+MUydJ4J z;m(qC<+azYzBQLk9G%N15;8}JkV;Ny4zSlDwFtwkwh~yIa}3ddOO3No7QY!?G%7E0 z9mcKuQ+YRkR(zo8ul{fe?vQfE;M4Z4SE5P#8_n0MWqS*^#H+FL5(lY6K4AO49}4*= zUeJGft|WfK%et-xx;hoUsu$BS;F)DwpT`I9m0-L>JH5bhpz4_;uD&`-R-Nz*HQVVx zy>%Ce{Y>Rdm7OtL_RGR21}5v2$n{cker%}3&Pku=13T4{Dm(3RVIIC2sXsz%e)~mQ zQ=nRNl0cXVt|MSn*o)$-ahU?uo_+EJ`)_w;+t00PeKs zF+kZrU8)Ez(_9a~swQase%Ept8&T}zJ=eTUXz{_m`Ot%sUlDqTaL(*BpIWBbH!LX+S;om zK*Gxj&ROP=_J5@o>wRX+%y0j9>Rk13hVhuIr?0gAkgFS5kX0h*3b*tuWL??6OkUVA zK2j!L0T68W!oB8`Qh4HFFWn+B-y_JeBZC|#65mOXqu%$l5tmKE$<#yy0?>k_g>NTsk+H=nUi&718-JH-Hkv2* zN>A+f3R-LfE$$s}?&!0gogN>R$5xov^lfeRDi#@UbZ}$Vy$)`i1_z<>0*+@8UZ~uI z@B&zO^nnb21{nlOjSQix*A+epCcK&tR@ftEvAlbSZc*dMSTO==KzBNT9#liNb;qk! zd-px3@ZTA)&DQ#pWwf4Qv}CAc_|!oH#wFbvwbd4Ib1>B6 z6B55x4Oymh-NVIL3Hvej{($=#)iTwRzpIugysTQ|v}30phV+cdj==Wp2(Z)ajKIsP z1=#ESr!7bWt>;NDU*V8oVK)L*)1HBqw7gI8n_)I!NFJhf=nWYO7Jl$xpXO1H+k{&c zj#Po7O@SgPMRdR)Ifj{iMj&>9$Lft0%G$di?dTdEsK5#`R%js#(!@PuWr03XTAD5BFz8K)~iJbV*hu&a@MOaH^_SR4J1`f>Hl|KuX@&I*DJaI z-+a9~3J_VZ#&SuM{v)hc18Y>S{apSJU9Ua|=$3aPzyEKpSK1$WfVB@*@A<#uQlriT zk##cTk{oNb1t!_-A^u4p0b@J+vuA^}Zj|#u#BsJ(^h{iX4e=|xnvvq!wm|O;=k<5% zt$>A`^%`p_+z`@(^=#x6`>sWUM08%I57qG8CL(R(p+YeS9uTht0>Tv&5UyZqA>ryu zBHjk~h9swmm#kcW$cbnm{>kJl6=u(j?k_U#G}+#%Z|bp@wjW=Ikx|?mCv(ufF|{W? z{n@Dn^GBNMbiaDBDvOuQ<7IMn(8B7sYdmd5j+;^%G0YW6d17HOQ{Mlm?Lbv{a@&Ck z;p5s4aKyu@RN?H2#Y@g4M?&l~^tPGqf;K)alNXJLy^u0L;9$d|gtOlS1|8iXz?a*^>BE5_P8?J*d-s^70N|9sxq9 z-^wLR6IoP;d4Vm{VIQvLRZzcD&0ly*+kwf8Pc)+kj%gj<_Ih=|{hZk~GUR?SneTql zTv8fxucwsTo_r1hYW(;pUWb*7{!^&6o^tTmP`+j$y_m1clEiX)WvTaNZgT|dYa@5 ztHP?yRg}QSxE7{mel96(aId4I!tb}e{@Jzz1;(9X!KI;Ts6u=$5v$z9M840UTMnd8 z$;;8YaHI2|6rO?akMin+gX}J?!c>YkM#o?IrAf3o6&_2o4CQ-}fqyYyDEK$qu`@@GUSF2B`JztEQlb>e;cat|FsmL>WrsxFGW=#td-S&hu9 zK>RwFrmPFA1^=pWLI%g=RG4WqM=8Zu^nov<`jfA5dD`IN)Po+oK$c~=84!KP} zbKg#}SL80>CPv3Ak%EA`qq2hGB9t-@RUMT=dd>C$f!nzI3qoGo2mXN3p0RW)50JGW zor&6{k&qom#|YB6xrGS%Wp_V8=6yTmoq-iWBgRU#d8DBmGXm?$)r@G<$ml5&l-I@v zCwdlQ_sv2d=EjdJz!HJl-19KRFs<_n zLUE1~jNwT}i{=rZqm&`0j20}5KVK*?d<{}zJhrX5eNSpJ%CMQuHCvm@)bm3GRs^gv>iNP2xo|M5YA2Ln-)b(>-~oKW%SEc#f{N_xmb@ME8;KT z`29w({NmL?nphTC4%jk2RAhBBH<1dnO86!`gZ%ZC(5?0}h=pO`3 z8IiMH zn_aY3j&@WHh-_z$WtwGlOq5=t2b!_omzgnB^-ba=k`+i^o%}@wMsf^X6`3x}0F^A# zDVM0s?d%%1oY4%f)hg7HY}Lz|V~fodGSg`C9Mh=l;o3+sbCV(IiA$P`n4`dSt^SBN z?AP(7nyJk&gkRI2C&x6ivq?>UU8XKcp}&+Sq@c5!WdU-TUz4JQxyECm%0@o8R?2H; zY9=R(vB}@nBAGnZ`g=1`aX6Tk6+$VJn`<^DN2?r3NR?!SvgDE4OlV1vCfHmAL)&b| zO!PinhMBR8^Xp8Tyqizte~|%sDJO?dyaeU%PC<6j$CbJc@qHU%^yY-tYLUpXSQDk-y{5apk?h)jZdg z_W<{^_`8pM^ZC1jzxR0Nmxjvj zM3-yXL|{CLzhVE+%1LhrJvB&P`QDGE*D~@7bK+tmR=3*VQvjl~U4#|3a$im@RH^&TE$Pw}%veu#p>KM`SHkyagGh3F(Qy&^sm11ffQ z#7j}(I;h*86I#x}LC1qp%J066->tF{`NJd3kKM9pzDgB2TcctYX1{YIE?nokhgk0> zMoJBM8eS-LP0YckD-hebcM83jLe2Q4N8499WrnXjyu6?2^1PI{7C}N6)fPF2q9T)> zV)E0)l%CCvkjWgm-zXtp*v?)ev=)so&+wt z$gEdYw)EHq=Hs%O)$FeOYIkV^o4lhiZ`E^I=;qBK&de4%AvAg(RGF`W*Kco_9$%VY z{N}1RU_2gu1b-Ewbv^q_h5Im93CRl>Pbxq6?vWlo)yRQ$@DGvc1lnbwEGuG~~-{VNoo zRXndDehnUguPA<{kPdOfufR#*lLfAURaek)2vFUaxPsrN3a32?Uj2RR;3&MB+IIF3#+oJxgFOo z#$%3P>RieYvec+ql{Yo3(wJsd`ZTLDpjj0$SD}Jy6|3@3{UANA6S_%I{3|KVnpL@9 z@=%jZgRcpzA{8=v3E7`kPZ^*URKlvPx8BV%E3ec4@GFfjy}>KY7Ys_4UEwK_W>?4- z+0ogbX_*;saTy&GG{@52T(m(k2&#t?$7_aVjzqYYWO!~sOEWC+6Hb4o8J25RE80JV zVVTlA`KrpZ0wnkqwyH_&%wBffduhF(EsV=LZs%!2K@|&vH3K4muz`yzJ#q2_ zl^wtrDd(n5ZgOk5iw^@y=Uxf)YBA5;W4PDLX|?S(&KKX3<-@vok$o)jUle zC57nkn3iJRyg-Rr$~6h3pLjUOk2Fx17xu9i9JtRt0GXeN12U1|+p-Lu@N#DC>O6Bp zo!iBahghpud(E!8{KU_}cKKAO&;odq_uD(SFY;*(lhWs7 zy#)Q;W{Y6kH;*hWhjpbvSMMp_AQmcCgeX4u${J3XWps4%&c=2)88WE+fjj97gS&(1^x+M~! z6mow2_+jy>rL@U+0OP5F)-h&0=py8#C^$H|p*7$7Tj%zG)gw~+T9*WIt&11u)oK05 z##WUYa6h2VuX4sQG1lr0#69Oyqv$qZAY3#U#^pHG(4rpIXhG^8yS(eF%3D3vwAbvK zo?65rL2o8TL5%3l=>%wcJ%8#XV`&UfL%!!)MiRo7z_tWwsuslnNv&_n50SUmxSCBl z9LH?Sch#N#oZ0reyWUv6xvuLA?&)1uo#y#?!FI4fYvG-d7Im|t?ex!NMOy)cU`|4> z+on`UhNU5STOjH9}un{~7zFIfM3^U}7rh zl61V}d#?q$-foK12B+fFZqmE%|bX_eW_U=J2dkQn_Um`5@dsqJ#=f;N%byUGq zTCs`T#@E<{lBT4s?L78-zel$G@HN7dZ>6?WS<@LJ#9*{T6r1Jukz}7H9Ro5+x#FXQ zk)Rl`RRdu)qyT;&P{l@A3XlgJkV~9Wh+cD`iqkMyzKI{#a#&~3A5QzTE+eZ|6Y-3x zwoCC3I!tPFqNUyOWmpbIQTbn_ZQzwJ(z$lwQv&W5Yp>l%JH;Y&_Os;PXuALwMeI;j zLlOnzg<{DXF0pH+fxR=v17lwAjB>dsi|cd^bg$!9CH6BR{I4<&3(#K7b9X%{Kx0aa z#QdFZ7>rZxS&WwkHe=YEZHm325r}$|rvb7*JgnDLbtcR0FWstqTDI7)vgKqA2=I@S zBz8Q?-$ZK5g~st0!9EQ8`3Apz7n#Z6_>K#{X??`_A<`u8(0jOOeMBFF$^L0YeeC)H zR1$kpMc6f{)4SO>?Q4j&a-6Zv+2Ynde4FLijiGFI9?Q0h81z=#zo7qPwe~l-WLxDl zmoBNWU%ke0_ei`-)uL0#Q`c3Md#O0EgmcAS#lG<%TNqOw1CpMU7qhw{7g)vnC7=K? zM=*PbJ}fM$_2;MjTT}kFRK6S_mck3zTEB1WFI~8tjHUjX-LZ1}U-aik0THdiRREF* zQMcJ2D8cEW1gD2B%IV=+c5S48K^GM>i&YLu`Qb+~jI=xl$nGs@Bcv|L_NiA&J;Lr` zzueU=_!0NsPR_|!i~{6=dMi|tXWWb3^_bIjn5gUc3{}T4LcJOt7xTb8IE|z?W1L+Z zuxw^YkU*_Q$4R`ClZk_B320s>A9P;sf`?jNRL9=Qez?VZd+jnf8}JG*DL*^GMA;!` zusv_I7|y36lT-l-8!0_#tq)eMt#=ayW5BhD?Ps!@%c+AmJM44y2jOQWoDf<=X0hMd z>I5KsaG23DwHqaZ)zi%H@eG!l(iQSWs_Zi6NM|?jhnLEZ!c2zm*1s^mR6~@yVn`C| zVdB~P$$V_JZ*V1VR8Pt41cMYFaa0RpG+o?0 ztx!p2xa;0a1c0^qIaz8&N$a;SKZ-TlM`uOmN?`)+3C$}?l)}Ydl4qZtc|S$o^FJ&> z)jElQbA|$h@lDi215;&FPm%E+Nchy#naa(gQq(J5Y2OL_diG zQCXhcpiU{YK@G|JT()* z6JTehIZKXs3uu<6Y8L~JSwo%s$R!gI<|5K(>5T#V&5?-Xr>MC`k0z5gR(a9~RJ+Sb$(YrN{J$HIw&dhB{ zNpr7D8X_%NqyC&DNH{A(%5T{ejCZJF#J7!kjIUVLMsd=SqGcZcM*6&GMdHJ}y!*wP zecJ%m)T-%f^-h&71VBBrTWWUe&ei-VQOM zlI&kXN;QIEGET%aU8Yx;StgNW0-!c>T6jdDiZDJKk~gQy{&kZ2Tqfo?!nAuMW%dp{ zhqODSJ-}@sR+|iBP;MUwEl-}KL?uQ`f-EXD4qBcyist*nMP}R7%3~uQypxWzm#Sip z2LtUts$1^zl=q=AAkPh$^Umd1M4X>Wwz8-`3PD^ZCG-bs3F|$A z6Jd#;!Hci&6TT*Sj6E?^j(vqw_LEGP6nUSR(u~Kw*j9_p z^K6MCL4+Pw0OdCaQ=}tuWa8~u4fE``0CO~6x^ywU(lkPM z>3h0MCy?}qQmKS!I=??rCU2xHRrcao`fdO!HO9`TV36L!j$^64o_^90r+fKb%A=Pn z?O$hJeG~xkcL4z5K4Ej6zMZQgbkJ`>a5bktXW9=^=3)JrWt9mXPV;8tpaNrylB2@j zYe;q&m=o=B86eU^jtrvadWGRd^-v+~3hpepLeb=P6^i$PW2uOonksws1nB|P;T!EK z6m{f66k;sd0w<&k)=toDK|S^`fZzuW#%^t!Q&8}skc0|aQoB~M`~SiG8)Gk_&(u`8 zm>b>aLHaQ9l7l9qxAKjdNR>wP!CW+%R886-G|5cBGwq4#QV)J1Q|e*Zaufb2Qd4pP zxG|Bw&6$BmWoF>@P+Y?ELE8S9DarmDw*qsp7sCQI3I8f%1Ad%guXNto?V0?CK>{~$sOCG%Ij8gIIc0wKCam}a_{4i5L@^Y8t6F1;FxPgk?A#RKu zmL0O*fg>eWXXp3GWuI^n^@4N$kPbc?@|A5tjU57=t3%d(vI!T0aMa>!g-5?f61+I$ZPQd`@S@xX1ihs%zf{{QZ17Pv6Jh$(CqK_ z&>~~?v(ZF#vclZg?Iv@0QvCb}ryeukc~Oz{s2n|;Oy5(j$3&klFnw>goWf58H^-aD zM4$FBh!KK$Ctd#j^#ze*d8{|;{!!DP{IY5M{yq2G={~!I_iQ)v>x!Ibt&jHQhYQ*d z(T=wH#jFiA?aX`p=BwNW=-!72FW1f(QHfj($%p#)BZI|h$f@wKtD9U;f zo%TafJk?nnL+mbF+tM;5L5Jfd*WbxJJP%76MV^V5Hzj?q=CoRGIRBJ-l%|6iIb!Re z7V{fqLP>m2A)Lf9ZhrFfexfT`3A2~#z?fb??6SHFBIFqz7cgWT2pq7kMD#2sV35n2 zQBddJ&0e)tWXfxd7C47O*YZ)FsIYfg z#gzeeM&q8sn(o-hfNxD8cBv;2yRty6&3anB%Do#-Jmw~L2`;oXpvD>$wc^97d=)!4 zapY8ZsQ4xlH3A@Dz2)Gco&?%~9J@8`KZ|BJcA+QiiOwi+K}STBjK1B)hnE&))b?uA zwrCr5qQ#9}T7a{#so?ARD11Wz9q@we zzeYEp(s&f~P6LU+))5|Eti`LLL3=umKMcvrY85Gv~baU)h*SfyRDR?%lD|Q6zdz^-AFrZP*#;k~F~iB+&X-a+#_0q~>{t9hY>XGpAG5PCRdzDU zN{*r@NGbPi97_y|9Hs|DnerEA>wg4eRDJm{*2G31FW#j z_?aBzoftj(KHWw~efdfJ?eTUmott8h@?hv2+pO{-WN)P^(1sk zWQK8cu96vw)3xl#SdR@yWFtzE<;+n&s%(S1BVH>1gb@&rGmBHFY_@Rnl77$;< zsxP(wS)NL@Hc`Ko<$FXC?%GMBIre@UC$?|Q|{*> zRrUz4IKSTLgn!A4jhV?i;yIEipQ1vz3NIL?AqeKE32U~CG6Ccy7aTHrjZxfMB_}w* zg#8&nf^x8#hGM)@yoW2Bg^>wjBQR5@-}W*!{Ti=a+v|Pi9=JP7O}>E9BkZY@<@cE^ znGs=r&Q>vGuocMg9t#K|L;nY@1L08(FcL=Fl)OlVDEGZ+PFSM5wI8frgyhR80b2=E z@9=itrD}V69W~P`c)OixEw8WSjW%g3+aWn|^=fnC>djiLIJR-7=I{Jc0(pgP^LanB zh~dk|)f+E)4f~i$IeGt^;PUmBQunfM5myg0ZWbODhh1u@jxHb;Obwwj!b4Ewq1ZY+ z^tr+W7Tfgln{GMhO^UXz+Ft!zt^8gqBTBDV2dtQ|ZnzY<7FENBEUdx?Q8qSqv$27F z|H@(Hq=||~GX5{ZDM7zbi%Sj&YGDfGCGpC{NOxPRmW?DpU0gva(88;IdmB{rq+gH3NRIltN zk(Q){UXNQ6G?p_I0*1&MdJ)*Z;(e8U`lrp_ud#|F34ZNkkEd%bx>&_XaYRBTwNi_&Krq7v1`5TWPG9n3vOkd}I1Kqdev_+KpI9V<^X7a%NR zdt+GEc(=-AEX|rM)yw=O`C$v?wRP(BMM1q@dHFohL>eR3OgZrm7&Vq6+#d15SFItq z8-Ia;u)jvgiw}7LLb8#ue3ZP9bWN<(2fwJpmLun~16n`85A}`I{VV2;;~f4lS_j7>>c_MH zOg=uIeN6v954}@T=j}i5&u@GuHtUx0v*g$vnZ4wv+?JdbpLIr0_L$|b`Lb@EI$Mr% z+2_AjJy9-NtN!fUzbe13och8r(biyjjIh)%JJkcRG7S!Sj(lI*RH(AIoeX;)lJ{gv1$!)x z^=Nsh|CDN@5B|XT8|vM=zmFxTo%|a5%CP@R}>WoDyxt$@&%UHY}(|jD%+~v z2jnGXp|Xf>|C@&T-!#PC_;*FF-HogxcgZ?(m#iaq$x9@1muyAyW8zCM3KSXl%xa_2 z-le?0a$mq_bk#cl6^@|eqr$3+eQPSNsqxhec*CF3UmBv7@*90lQBAea6+YLut<2QB zanB1>`b~bU|MDW;1R>$6Ku0#=w+_e>-qi14_<{O1s=@X$@?d*ecauKtY2?B7vi=9! z%euSst0Q-nZ?L^wk-OXn+shTX+g&2(DJsvbHa;BLw2#r*_HhL5pZsUh)qNGZhwA?7 z$Yd%+rW1w8WGY0a6NSiBKvB69nJMw0Y)U*Rn;tqSn-UMoriTv7ribeEGAe4etSu_9 zp~Gl7r>e3zwWOrVS6yvt!PHAeEv2k3tE|Yu#a9s!Hxs_9ilM3>EvHx3Y%G`FXWdtn zR~BjCR?e&l_%{1=2WqpavcsgKW#%OjwIuGw)ru-LD{VtYLH>rc)SUb^xfw=YwI(|wH#I+FLuyu*xZ+v+ zv--@{tE^VyD^4r&2WqN(c|}{8-<%3`>GjBS%SBZISGctD%4%P_Z);hx8NW_^tNp%; z0k!z2;|*4Xkp~NIGc{SA(wd6RxWS$;*oIbngYM)iwbWA*HRlcHt<05IwBki_& zP5y?}D>h_jWUtO$Z`4|!xoT}{R%ZGJ{$G=E0(}PUZPg+E(^jv_H@(8d@5Gayu{JZ! zMkML3TD>77H+OZe#38cuCgUe>LtaisTIPz(4DD#$(=%42uF1;(hyH9|-H?}>os*T3 zr?V*WJ9;M`lU8U_q5dSl$Ghj{XXIwA-jKI?O>UZvUgtl1H6;qsnsVi>UzMgaVat)5 zu_8AkZ{i(YJPrh=JGZ9?tBjFHsobq zW*S7&$cS}*AxOBePUsilI^C&J= z)dBg`jOQY~&J}y}DmMkT6;=6+c2K{vsH()#r`D8|ZDv}cjy7L_}NxdJaT$)t+AEns$b-g^4uz&Lc(i;mDGFG)w^tugype}5=$EGqF9 zm9zCM3b3G=ytx1OospQB=u&vXhJ{BA9}yW9J#tjc=rOTzW5+Exq&pq$_r59YdEG2b$8r}Dzm6;b`l9jz` zbk2*!IuQTAi0?v|5#yx#}X9sM1$wr)I8lYfKJu&rV#D z6ce3V;Voj@UuLS^TUu02XDjh}i_ixGzAgTMH&E$iyHMf{l={4BUMC;rWgDxCsv^ccF^AJyv!^TAd8!-Dz}hCS+%#Qy4ts8WBGP(Nsa6?ycI;XRkDGv zvWl`m86*8#9es4Z_-9~AfqjJZZmiji?A^|$-ksNl-pqg(uUjgs1K#qot9`^S#bKjW zQy%bEZt@n>TO~1SO7gUzxN?iXj9ra4;mqRls=3}xH5J8DB9qUe!Aw=K%GStP%F91p zi1hOE?4mMLb}9E_DR)I>!0W51tl3=Zt@alcQ(nBw_$UvlFn4_|8d6^aW%rrJ%gs0S z9VjK!l^g{Ze)9Tor;{k@q!F9saWIh*@k9O>CyRTH-sDN|8T8>T^%eO|OycjHzf;a_ zWv+m_?FPf0ebR8%fs(%y?koxCXDjI4T2>XPDJmaqBxy~ZfaHsDagzGqP+8$)l%7fF z0lWd(xDMoN(YX?Cu-uhQl`QWjj?OJ>qJ281aAd`mupZIQ$M~MNbGZrYpFHtDX$1d>nH*Oqt=IYbPNZ zmDz4f83T>ZD1AVNK}|(XwN&c1qW{IIfbt~jdOhKI@Kw-~l@(jq%i8jYe_gL9^j}o9 znYFqiP(4t3@vq0*COH$yfcDE=uDiBOdp_N(d39M0sa7+AP)p<3#%s@z<~ELTy)tX)%abw%a2iVJCXTZMWvGCew)317UO=hdyCRD!Bd zHL9GyxmuG@QBz(HJ6!(pDkoMA8?J_j#fE2OWbpfi5fNu4svPl|;7!gc7!j$?NlaXq z!>6!buf97GSy)=gqg1WGmM0P)YJ`f61S0tp@zaMI@E-S^k_=-LT`v zoj2Y5gfAsp{ zAOGa1Z~W}dpZEUam%lpl)~|ol_uJpS{m#4Z{dfQG|M177fBN%Zj=lfa4?g7E80w!r z;GFyb^N9{P|L*etyVL)t>;E4eFi-BT519Y%@~>QZ-j*%r4Zd$K;hFEv=J5)%oktIr z?Cdj3O3pMw4sQWc?VAA3y`0I+J7w{>s&Z?HyqXh`IOqBN95ao_)SAsT)x4L!xTai3 zeldGq37hJ#DwDS<*+o^wrJ~?j;oDeM!vWMtgej`fBI!z6iufgNMVt~JR6+Rd5|_jy z;U$d9E8^X7iTSK$MOB&Ql*%uysj423lv?L2sqncJ`D}~DIlHn#`^w{`kHkWJig+Zv zgi-htKMHr9Rc{*SMEQWpyL#hi*!Fv~ zcf5F)%L&_fO0B9Y+HM27^@Bk;#CsD=y7}AvzM+xfQmBuVUOpNOlofMK)Q5`ARAq^Y zxNu8RMbT#V|69o{C(zv8TOuGDMgmWnd{lA^k7Ga&|Iq0PM&zHOIZX*!&3 z|E-(!SvI6)-N`xq#QHm373SvWXG;IcSg9i_tSJfbc7(xH!66Fw<7z7;I_0WYryWjM z5iWlxtWuZz$*R)i&pGm!lvNK_?Uo|H?Kw_A{JWWv^4k7-!pykbPnMa&YF;%IRhj0H zU##(hJmu7ha%d!=DK)fX;yCLDyY}pE)3TxC*)+ zO5kieA0&w4c&rGnmV&dPGob|+&QkEe=JhuPqzAy5I4ZNr+FWX#UKZo3~fmeG}5zB^tHf-<*s?JWrA8+%d3XB?gQ&Dwb zP_bcyyn=Mgyn`AP@$WAZXB%ANEAbVVgEB#un8_K(o@R5;qub&>i|rP7Tij)_)}r5H zp~W1Fci&;+OL@?s*J7l_z6Wf27FXJEDHiK(_+%?5SxmGz-(rHrSr+3hj<*i-i_bEXG?r)?mW*SnRYI zw7A=1y~R3<1s1a`rdUk07;CXVX!B(;XtCDfN{a~=mBquhzqMPewOC-$>8F{_dwO45 z6>sbrF?nn_cz>Q+QIh8`t4QNhH5r;$`>HB@<%6F;@u9o@%w!#}^((jK$wr3#7Wy^S zzACfH${hTFA=M58LfSy#vVH(t`^ z$xVnR!|d zEBi~fnd~;%bh7tk3o1KNy)R~~%Z`_gFZ*A%!R&_F6tg#Gi_A`0Hq1PHX3od(vs7+g zdfqR3I)3%=&WRbV%O5J5p(foT2jk-NuE@z(q0&bkKchl*_{kZkR4e566QaXU?0BWFgl^m8#1k2!^UR7;vr5C% z)WAsc8Lgu7qf|Hrlr^W5a34YM41^sXs*^nMJ&dnGZa;3FCq7EW9|%|DoO;L~tcQNW zT`(~;Y>1Bd>v8`zCFIU$hz>uUxPLUnPl!&^noM~i zcRV3F{Pg2~!6~7B+&a&tBh;ly(P|>~9!tGTeQO=O*5Rgg>!Z|q{NyD?sY$p+(LP#V z5Ty#x=ML3h9;Gf%8cti{U;3P_YtO0?YL!#}wjX*fj8GS%i%p6g=$Emxl)4w{d06^N zxQf7C;XhO_{WVnQ!3fMa(v$w}xnzX8WJp@lmwMUw%wfYd{t>4iMuq4+r;bpkQYLpf zC7kSO<<}Il2ExUJ=sfdAs(HJ@)XdspYJ6$98XXuzJ&ji3jiwJLvMae6x@{nQq;l&# zr;b#o9*Urk4yTWXjseeQQR=c2)TiXDkbT?NA$PnXI{d`48QcW9{ef+mNj!__yO6ujh3N3piTm)yp>v8`r|XG2nnfL%u|A6a5u?I?Y3j*O*cTx87z)vm zM&c5sJ_ot;5u(FS5ALTXh58B6;m42rcZT>0(cvfdEb0z&=O;ubY2iNS>`*^$ooU+< zv~8rFe`J1Rygg^iTu<1aLGJQ|=tv{+9Lfy2{e&ND4aO=E7JOupjC*C_hB9>Z}FDh}N!*W8ejs?>VukP}xRT)A}~2~!eb;@D`? z@4*UD^pUCa6B&dh)#Y~S0S22W- zAfF-n*l-m~Se+j4@N(I2+$MQ&(sSudz6Z;$+hsN1xPfAy91N4_(s`yts41j7&eo64 zGxG6yrXeVYA}@vcu#nF8lxSVX@q`(Jdo=D5)V_s zdiww4=EUOEE(8s-{nGEU-D z?>42TY^Q#t4-!X+tlK)&k7xEsHTw{2*@01Na!ITjlRrj{WM4VrIm#<*+<|E7XAET? zO_^gT^C-PWdL~CQ{wJsjCF50G(m3XjIOWNXQ`tvHsPm6Rs`-bal$WrwX2h3_QsW65 zOT43gNxaiXsOenZiz{JoBJq)yIU64GIe(Wtu zZG&!;^iPeX?9w*FRZI!vET8?a%iYvHX%J_W-m8vet%znXY{%Zl!L-_MRqC4CXiumH z@=P3|%Vy?IXI~pe`^Atc$`3vKb<=*rPluANEPMhqOJrUCQQAF3cYr;WJKTiflp{t( zvxY^mM+{BFq?>aGeFk#U6}}d_&6Q4wZhWK~PdZ~<@w(&ignM+|c!r0m;kjYDKL_h6 z$K6UD(`6yuBcoJ^PUdBFk@;~Ude3>I)p(jaB14|w9_5aSt=XZo1oA!}sp!%9ti zguL^mY)|Yk&QF|Imk-oQVx08T#bJp~UEKL7?FaQh^2CiBVfTWAXL85yyvLbOAU`CJ z%q59WV38F%NP5nC;MRHgy)vg=<0eJuJ>FR6s2K7j@iID8$&*Um4aGhsu`1OD|0a}Z zWgUm-NfpL9z%wga%?f;jy~I8>HvgMybketI`){ks$zwC-9gR_Qj*M0_4vk^o7OPGP z#NltO8q2&rIxWgGUWMgIeX}jldG|iU{Vix8_En@T!mopNiyR)N!U-Fqn;5Ak68Bi* zjwJ4I8H27kJfk^Z*)b{cb#`Hj1nPT^_?)?k_K#qG3UR}4@LAS;NcTBuQ&)d;yLm>1 zsZp{9Esju&@e@Z~O8ds08pS-W*LbsTC$Wa@80Gp95_e6SBBzej-+IGK_AG4;q^`#$>)w%=N`SB`S41$=)hHKL12TL zTT;lJSVTWA)^k{Q7-g4yk>=3%LY}!J)m-!^dS~PrF-(nEJ}gJZNz|NJHRtG9=9F=2 z+M)64lmnAli{sVUl1Y?hB56$+*dwfci?)Oc`;PCG%`(|N6_XlGTz+M3T? zN#Be8E#H@b`oAOfE@u*R-f;YdxSt!Y&LwOFak%xKX~P(=oUJxWACdZnc;`_6JEiV} zO87-BeZHYBME)t1B05<|Wlkn+h<OkW(B$E(afqy8xU9x8u^_+-8c#HtV-eKPUS z>^C8|AGdC@H=OlT*5f$c_i71a_cDG{=dr5)L&nxeN8mZC(Jy_K9;^Xn!cgeC*Aj` zFD%Ag2sKN3-r;wXvN$GlVEeQRJOXO&T$DR@8lOJ`3)eI1hd=H&bS zDU{(Ah)t@_55IS-`>Ip+7ttRTw+RM^x@Vxzge0_J+{`g*=Fv!X+7aG$9ExWD#atg4 z%|0iF`FWHY(KxuSeLT^l?w#aOh4ChBJqKS}k44XEG3qq> z=@k0uB-ZzF^mF$)aXR@6PW7k`NU!P0!goUlWsSFMXoybMeddU0`h5g->ke<$BeTEL zai2=uklq7GThi}DegaCAy{MjVOkX@sPd}BtY0wpiiQmj462E_%M^&HZQMD46U3=X+ z&)5johq0^=acTtZ?-?QQ1-`0G-#&T!zwgEF&~%RqLh?vjUGTq#j!0TkFN`0z&NDGW zzYlVM?vpdaqpF~#2M9wP!ruZVh-~9HPDi=j;mmo}tnr^@PfabW2WOH`C}oz(e=&R* zyx+=tO)BAxz&u|#+oN8CdL>VU6+V3q?Ju%z|KoIob%!(WLLyWQYeVElQ(r0kYU9h$ z)aQw3%5XL1$SC$BaqJ()Dz}?wX0)1lh6b4QTs(F z{hhqW$b8H>FT{T=>)289NW77vX7_U@?ViOR^>fHcTlj5D_+3-kbK0~; zz9Y$_l0`Qp?GXPbNZTF%_0?=HvVgj2EZ}lE>~La^j{&si_AzLo@%4C0tC>NENwbFx(x59`z&0TV%u8eyqmrw0D znR@t7vE#H?Z7bU9TU`_2f)F+X(u(}msk|j}wDy{iQV(cNW`)~Zi`6-vng;!>s@Xzp z)k;0##6&D#di?N z?G1z4l|>aL<)T{^mc_Rm?H3r48^w>@s2Z?0vr`$1J3|wh9d^)-_KH!eL&*yw?^1G5|-gdrby2Y3asI1zas(zqWaHA_ttgonQ@geuM ztPO{sYqwRHHj(0`svl~3h1f+f3Y8`ytoadFq=Vnj*Y*p>hOOi~x2a-xK*eib^2Le6 z6*^zviO($Iy^dN@UY+L)7#k4dw4cf?T#%>!D#*p#qFL*!5|ca`+!t#R+1^f*bol0_ z4wEDI(U_ufO-*C6{<3hZGqQz$PtuTRwE3UU49hRC)>(R2^qN~Zj4Zh7qFnq8rIi*{%YUq-wH|QLC;PmRIiM z8z=Lm#!RI4(qfsUBx%ZbFfc@|)5XY8jbD;VRqyN3kTLjOW>Zg0Fa_fGcn9^@lZ05O zE<14u>g~ZWY?D=O&+%1hYYTk+UuTa-{)L3e$GC{i?+TIa*s**am*kw7rctRVBM(WnTB!1SGAF5MS%m z1rn>Pm#kH$FGxZZG~{vY?|tS+=Do$0xC(W@%K7yW`==kW7mnk-4)0~;&Y|2hl>35m z_fPKd1!I*;Ia4X`6wc+R;s&Nn#XtArWaAiI2u?#5nn<`wsN?Ym$$dJxFPC^4pL;|7 zGw?H$ZJ3w%rpwtIKj`GXmE5Q5ng@Y}3y70=<-VHS6_UF^a<544^vInZxs&6aO+LtX z&K%N$?8?h*R!Q$sMTRxwxMPpG^G1UjT9+zaHvAUwA%0d+&KL%)HJLSa849%v@C5K4y9pj@aF`W$p8 z^dPhs`VRC8)C>IyivFobodV5)&Vnw2@}bW_b-O;JZ}*75n@dTeH1uC55RaO9Ya)Rq9vRHKau8de*T zbi9bIK%>@X1Pv<&2Q4SI1&7*}9BRwZv4w}vA=Wyrb@hkSACPU99C@fMM;o)_JjAzC1X=%_t*}nc)TWb|m26-m*@UcM zlQB|=KPL&Z+EcUvOQga&MiMnY)E=NHO^gI{N}%&JAV^Y3YXm_bD3y*_Z`IZA`Gco%(sC0}-x-@}MbCEXZA=VkicZl&r6m}Eo?2yrz zO^@4Nqg93)Ycxvt2$GP_5DKwEX}pGZVev4~<4$C2l0YZ0;D|P~LhQ!SmH!jkiDV)8 zUwQhz;E9!p*b8YqY-RRJTJE+odlW72bKGYex!nmr&B(hQ|1*rd%ke+m$hB5xFQwxv zwK9v7mJ6)RzDmn0tz73da)qTFdcPW)G|7NGr47)$*~MO!?VcYPrwK><_hk*vjlLwcKrG_KsTK zXJz)0T5fm3FE;XSE3?Pc?z`I>Xl3@@ zTHfV^w{oo$UQDp?lse(9TwrDP{n~w{l{vR)IoZmbVYHlJWzIKRj<+)B8!bmV;U^gR z*o}5Pk2P|il{p7#|A(#2`9{m#j{k{9-e+abKH9zA%AA9=yxWl{8F`nLIU{NJS|_}n zKMJkPc}u(JSef&PmQ$?ExlGGaXYMEQHd7u)=N%%)T3L3+@*KO>`nR$5TG@%E+sa|q zz0=CWtXyy9a4XkZIl{`NRvvEU0xOTO@=7a5S~=OuQC9X^Io8UNR*tiB-xp0zxlX8` zE-TBgWXscT<*`<-b7UL7(8}YioMUAZn){Dd_5_W_YvnL2M_PH9mHTfo`3bl3VJk;i zSq*u*tUG5)or88Ob9U5ny_GpbYPr_RoF}zh=*X*$%nt(@eU6b6t;|6~>%CUyT&m?* zD|4>Zva&MgSuOYNvhn2`xyQHcq_6Yu{G#-8*s>3L83{NLo~UmfeojZK-HoZQ&azdEP?cj=w9 z3+VB~o2-*Q|95%%H^%%Q-X&7{%>3jD3+KX&Qq8Pmg*&$Im~N}I_2-6ZXfb%hgS{UL zmvVib#&-Na+w_wruW>%^fBloN;{R{P>8VfXKh^sGI{v@kc%< z9|`cz)ezl7^W0MA-Kyd(EcbOGZmjVpR&2m3-o=U$Sc9SyIT{i-Zgda0NxTwPa111A z$fPDZJ{I6Tt|8G+heXfE2-;t&m8JiPdk!RFcxA8s@!DRayz-a$*F%yvukW>f3+RRX z5FZVwDoFAw9s-P?;DWh?-fYg zUx&m!o=TDWaq7(3zZAY`_9^05o`QQ!`{_voIl;=3CwY#2$+%0NME`X-9XElXx3Yi+`u>2b7;OpVq*qHSj;Gfn#=_?6YWAw~s%r zb0*6FQEYm>>ymlfdH6WJOV&c?xp#xam!FCpRY9wL8fh%D=~ ztg}JLUBsbt&rlifAl|4grV;LNd8CR|B?GY8~^__{LuXT|3!B8lN;^6z02D5 z+i!87#V0LxT71}IyTzcz-4^RD)>-shEU{Q%G2dd2#Vm^}Ev8#cvAEP?vc)8ei5BNu zOt9#+7;7=y;)h=|`wb`lqgH;$;t`97E%sRKve;>{-D0!F-4^RC`YlE=iMacuvtQ>5 zO~@0p`~KchW?%Bp;^*z-oF^m?lIB2OBwrtX{ITr2W!_7HK4y}s18-n5mHna2Z(iv0 zP@Ug|?f<x=r!mM5MPs1XF}PKT(6h8df*9$r3~=h5rh0+ zBM11D`$rA%Io};Kz|T55*5T{!-96Faz5Ab@Z20hJUYc@8lJE`h9(-lWbFZyR@%BIP zl>dzON1p#$SxV29AI*O2lsi^We*4ChYwmsh%W0z{ZlC+;11ax66HI^ihOu|vu;ZI4 z&n*36>-Rs-JgxS**HS89=)LW?buV4?tuM8w?!W2kHK(6@`(OOM*Dc@wvpe2=|7#z- zef^$G(;9xg^;ZY~F!#)zH_S;-h@G_O*xuM*J%8Y@>2J3k`r}{T{>8=De);b%wjjFlf=9;Z9t;{Z1ex&V7=bnGozQ^Cq%Wiw?$_t*q^88yLxcjn? zuWapa@OI_5+;&dU4?eo}vRe<&zVep$f4X_kmyiAN^k*8oul!kEMb=ASz0do_u-w7} zvuh}?dimhX_D7{ZSa!_?(XTi8<-cRgE-N|z=c{kOuVU2@bo=j{`E`C?mm!reogwz$S^@)~tW_`p5FF8~g1I%U*x)%-e@QefLchK1g3SYgx;0&uuyVcb{*c zx9oEdHyqhta@~rapRKvD__M$K%>^A535WjoA6KGmk7dJ85;^-dC=kedqe{=B_uN``ib8FHC#j zH@hxdch}Nqa&DXvzv>d-#*c2i^U>k=d@ko9jK9UGB?70@Vb#0lO3eTW~ojmTf4TgX8=5kG=i zkQd%<4^nJJz6a%_7aTR7-}Hl*yPJ-UNWm{bwde&OflA@!Zl_}lQjo7yt0&P5W<$;J za`)4*1u1w4I*eZMU8oyg?uI%x9|Z%@_=oro6L>om4)3<_D7GILPU15(^nzJX0=(P4 zqu73Y54r-q;3yV|EO@z3>eze~ya%d7FZc-LhnM@Nj?G8GBwjW&qZiDE?tz#4sE*A? zLB8&$y3q^13+;oK`>Kx3N5KH}4tl}cp*P^=?(0NeR`fsW(f49oEiZRtFO-)S(g(m- zEHC#*H?!Fvk6!N3z7I)Qxi@<|B>hD0&z`{x4e38}U-nff0bcISe%5RBb>P(LtfT0? z;I|?1-vwsPF!9KJ+P5Lm%YECOGpQeVxpzBi7Bals4y4$LdJ46SB6JVD z7u*X;KIN|Ma_-l@fnM(3{tObm+_`n^LJD36sYg5-E8+X`FZXjD8<2t#3G@g22%Zil zz`JcaioM5Yp<48UKZi=;+$zc z5B>$m%;yjUFZYif8;^nw&{6b)&p=1ugq~JZ!QuKn4K=a|bcQRlrQfx-9 zf(p?KRzNxMZrhJy7jpCx&Ufeq=R@`Ia?jbZ2Pya@bO62J%Ob`Ey z-%)Hojz5PwLNB-g+6gar#T}cEf=@#G&wSQU_SH)dciHwL3p_@{ywC~ z?76fxq}v*td!EtDz4BKe(aT-(_2(PC+$sMXBzn1PehVb=$er_r7Z|)3O)&q z$3COr%TPGH+)H=tM+)Xc$>;^QKnd`E;g>NN2oL@k5}T2NUrS*wgBScdR07`xo|8&{ zfKLI}Lt+CfI zUhd-0&ZWM-Nj%{EJjTAn3FhY;KW=-CV%za2kb2ys@$+lw=lGZV`}eKI&KG*Q!++*F z@((X}`Jb`8d`Dnffk~?u9I)xQ9{w`)_!mrt(&62<8pV#|U6)f2=mj5xu7h{mXcQZc z!7J$>=ml3_g)H%aj@?GVQ#a6u(FHB{PWe8=>%8{{_-z{5<8}LH*-L zaLSGBCE(q*5jUX=+ey6W1*bu8zL(t-H0TZZ98l~Niv2=C$9AD$m&oV^Tkm8| zhZptv&Z(#W!6$-SA*uf$=-4Y1obe^@?BGZ6N$4QFVAwtEXW(POOTNt7%AAk` zuKx<*;S0g{?`Lj-S6^eF^8oWCyxSI_*b3bCAnOHs!H1!C_)c(D(6mbq_&dw@gJ(6E z`6mTzgv2JGV6c(;f)}i4QbbA}f=SKHhwx(GZ#^XK;*<2z1ZISEhO>ugL$3CPa*g%NXA7MIP)>1PXwzW(bs{Mk2AE0N9^+50!cje;EX3s zy}9l2iLJhGLHqD8_#jjZumOz)Njxh z-=eL-q4Z1O!0?L;qF*~OX* zFL*Ol0^bRK6B4^Tf;T@)JE9l74>|xJ1Un$HucPrf#bzISJK%b#A3ufQHb~}&I`Dhn zr7ZaA0Y8GI?CJnp4oLVyuo05Az7u>OlCbJ|`ZFYa4!Gb2`YrJ!g6F(QdEvzt-v&tP zxeojdByqZJ@QHoC=U$?`_!m6=dz4q=0XIStzu@Hm$6f-x;4~-*?**@cy5Z}<21vIB z_-9C$uIYx2!ktZhLfM&#n_Xj9#$jcl1ek z!8@Vd@NV05ZrgKWo6i3>^E)=)1oytfo)cd1CFn!K_JCq9t{lDFZrrx_*dzQm;}N~! z0;nEd@I|N&z6TuFZ^pG3EVjJcj-1$-+x7?6LHrBe1090z1h@W?v%@o#9lZ4@^#kv= z87KDS9{&^l6TRU4KhtmF-8SRIo?Px<*khv?JP56X_kKXPhon#TfNy_Dp3%GQ#EBib zv;Icgp%>f^?Siid<2-zaQQ`p|8*py>Z(;}TaVWma;8kI)$?$?T&@sZ+foBfmyOQYL z_S(dzTM*iXUhp7P3*Qg^G@SJfz8CxulJTe__|7FH``#RI=?L~p_(=i3D7@^cz|*mD zDf&e4ElA4V4~9n@zGo!m9OY5(NLcXg(WC+Iw#g>8+S1}Y>WXJA!e_x>0gfKa_cq}L zcSE8Ng1?3ITmim6j&h+F`)lJN$-fs&hV*y`KY+T#&jj|$ke=JYJg66aA$T36$1=D+ z9>33_2d{%b$AcEqn_2RY>Z@ZTHM=A5Cnh#h!|7 z9sCR447I}x-Usc5ciS{`+dUJzXv3$`AHHj_06rXEunam%ShsyMv3>R-RDvJDR4;W1 zUkL7mcER_6|23Vqg%5(?gru&zK*ye$;2AUUiyy&@p)Pp09Wu9_GO=Oy3N-$J!MEVU z;RR>SB%g#$1kamAeWDjTWSbyKS8R~oV)-CAWwxnLFL;&Z-L}Qtw#URS*)C|`0fTMu z?eKyZo=zFz-L}PEM%Oo&HhkXThcY>F$q3?(uj9g1QGA?4l zd!h00L2w@=~IOryNbM^7p#Jo!q%k`hag=>(6MzTSXf3o zNc`XtXcxTOc9qz*YW)mtj$W`EItbqb{_$%3!pjG1lOV~P7hDTT-U`7lY(e)DeG!cE z(;Z}eiH>Lp0V2qt6HQb^83Dd1-znWKW>dr;!D`1$nt zkE?-jonw9j3iPs-hzFBFKtIOa*x$%Gfj$ghr6Ijwk?o}oq<)znf$*3UY_rS|2MlD)^0VN`>8&UgUhrl zdshA=kM8FyC>Yf$!0p#ERiQQ$TNyWGeZ*X$HmOQHZ`FPhv4@bzR}KX?^1o6$u#>>d zg`X|FDk{SNc5+jMrcM*^Jr_(v&sU$d+g3O)wiAkoRs2Z0#k`95 z>KIGFRg^jtYYUkw6-m;oBE5w=jS4lBJUDqyC$4HjOIiE_DT_xbq2#cH|Eu`lOP%@g zT|t~#T1X8o;imFA zaEtkqC!gEW%*cec zVs`37B-0x1(k>zVLh7KLKY0qc{mjfq9F=HmsJ}o+JATr-%c2|`iA8Fd*Kyd&kh%(u zcW90Mz4}Tg4rXs1pHrg2UdcIu{w%dBDN6q;2i8dX#GBR!8Cexzsb z;l2FUsOrY8x4Eymzxi0RYKd%#ZHaI3wj{J9wj{Ttw5)8&X(?zaY$QZkP>^6` zFg6$;^ac}xiNWMxN^oT`Cs+_H43-A{!P;P5a96NCxH}jOwg)?d`+{A;?qE;waIiPn z7wiun3#x|5hS-Mq25&<`Lt;a6LrTNShMb0ihQfx@27g0sLtVqJhWdux4Z()?hR%k4 z4P6c04LuEq8+sf18u}ZKHK@kO#@NRAMsH(6V`5`+V@l)7#+=52#=^$ZMt@^%V_oB} z#`?zHjlstD#?Holja`l1jXk(AkntPgiX>mnsduizuTDg!GuA_B>v}_lx+DnTn zTGLBQ=KL?WVNkbUPg{T6u{PBn*&f>--|lTsXiscUZudXzf8^LB@q3f^7VNFvyKk@b z)84&(dwJjcXyl``aX)7Qpq_SYrwzMlzdqV7l6Fg=%~sN0rL@&9+Nqs3>ZX1AXq!k{ zC9$!Wp6cyL=t%5H?nvoa*^$#x&{5b?+Tri0?WpV6)luKEyCc}q-qG2yucND@yQ8P$ za7S-PUq^q(u@1E-a!>4@_&we|340RvB=1StvvN<)o`OAvdrJ5C_tfsG+p~L5=bn9g ny7qMM>DhC5Pw$?-J^g!*?TLJ-_o2Rr$nvMpr#0{|uYvy$>lZeA diff --git a/Externals/OpenAL/Win64/soft_oal.dll b/Externals/OpenAL/Win64/soft_oal.dll deleted file mode 100644 index b47ff952b78bf43db6b7d507b4d7a9b9f1d2d810..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417320 zcmeFa33wF6)&@M2Odvq86A6n75@pb^N))a{MP|qZCpu^p1XL6hji{(76XI^dB$##> zjMw$L;(Fb8*;JTGAPZ{%1tM1oi`vbwqpa%u@2RTZCIfo)`~K&9p8t>Nr_MQb z>eQ*~t`S#P*^+HGn*;x1F`I23uJq?(zsLV6MezyU7o1@Gtj&tk=GlEKP8&7pmZ@1& z?!NQpyRW}JYvT2H+;OKr>xP@M?k>I~>y|sRJeQ5ky8X@@Z|dK^eOsphU6^mP-8duN zHs`szLR(gfZB~1mZIA7YtaeFBoo%V0?037(b}A}o;$J#FG~qV-W%o&(Zo5sgrPz?5 zzs3}st(DET?$p+-T{c@5%jVD0Ed!!o^c>(GDIql=#pdfkx#BPEuuVQiOW-;s#ikIm zj`cSo#g?6*Oc|JB^B(89{{EZp@#DF0YqXh2q_(3S=D#dk;e`G-Uhlu2GPCF(>d^HB zTupy2+k|lcyLrV%za7Fv`7~Vnx2WgpKZVz0ZA4pbT>%E zgzB6ASiKvjPNghX4^m0=S4#BV#NjcXgZHe>-zR`~3$Mpy0@*M<*wvz5xPRUiqX^en z`YA*`QimifewWP^?(d(>=<`xN$coi-#MdMK-8A{mi8d~4$ehWdReZex!_FE=fPj*I zN(H>M_#b{y)cok>0?Ltob%*k+L^A+2)mNymCaTeKpDE zt=Q<5Q!?AZZpkSfaq)M^348093GoINXI)bxb$8k3k^X5(kIm*Db>*1R3~0p~ue@S} zytw$mV9L|G9kz5;;`3exm)_dg*RB_OYsEBICN-*V7+y)LMN#%P`cYb&LDCeRD20_=2zt%mjCbpF2 z6z{mn8+7y>fNI|0*i??U+oc?w|2%JQjZ~futRSGt31SXJPmsE!J*+@NflkOCBBWcU zAY@a{#$ZaUO$wSNm3KhBV9H*k(Ae^=z!gl{D#}t(Rl{WN^fz;iOohT zo|-Sv9GhwNnOeuJVz{0*P#X)TaNp9eOe{2^~p=*j*s?DwiOQ#rd+s_^vZvo@&ou#AS*f0 zxx-3of!!w829736xZSmu%P&_kd4FJ&N70A~U-j9=v z#KvD^F(R$vCXi87r6cTtN?O7#FU~oje2khEVYih3v+Ab0O#WIGW&cM>46{^mJvC^V zRBq+SlN9MF-F}225bC9_lM+@e&!=;;E3Jd9=!3Y<*bg&CXaFs z@X9{tV4v)9W-I+(PqHbM|4y>`f=GIUC;>HhkwtGYO4EBa5zvS@B`=c-yE?clP z^)!eal1oA*Z=lBE&5imWMi+oocJE}sioac8pKY`Gs&;&r1j1oHfd_->LUCDS@qk z6Q~9HUH%t?od|vD4u&3m)Bi)TG7a^W6@Bb2VUKkOIo1)ua%UAGnOI#Aa)b+V!^K_I zyC779Uj>11sxKGT=4z7l`CW>4sTWcOjsFWAAe&nH+FW$43=}O$Mh+SI$0;WUp&6~O zsS?IJ=YYIQDV?Izd$Kp=9V{PF-lrzWO^}F7da72r^j0X;9`QUI5BT!~q+Wh!mb_A4 zFJ6w%y%+zm%SmhdZf%?bK66o0^ob@Nl%6iI;@%0VO}(FJ*kx47_!v3V!YQ z7k!x{;LxF?x_+{;D?4x`NnYt6sXTP2&VkW_>UX0o%YO>sGn$nGAmOBDUvr&$J}9Lk z(lDjJr6>zU``uD{I$A|l8#(WBTcgWMjGo!@DtR4Do$~7)It6|qgIRjdlA!Gqpth;btL! zd9PsJS`+h3^3(YT-6Q^ed3zlH_9?2$iE)zN4b>@{Zbk?W-3^pQRk|oA#ublb6xpDL zrOn_A>Osv+3_gdK$Ma9)7uT;-4eBlzthz){XXuyushJZSi$J}`q?MMUFcopt`o+Q> z6MtauvlnE6;Q7=Kl%7YJ|KRU~A^EN&Fa>ft?#^X*g{io`fZtNCo8NXJ6i^51$)@pn zzzA|fV6(sR$+c4X(^M85tlP`66)~wih|E9?1L==I9?XaPhWiy5^j!y**uC=ZdCjOG zRnXMeb)YUusyLP3Ii!k#xRWC}Ya(j$TaNwSH>8Tw0pl&yIghS@(-T)1Wirp;4=i+D zh1T8SxALA&4xvF(@Jd@wtYS^^{bjptFtbG2j5LB$aX_lL1*TGvwSbc~ODAipPSzMA zYjsW-WF4pmUGMta*0n|>Acs1~f$AiGn<7dhl@!=wm&&gJ)Y{fIbtJCLo+-DHq=jwNjH$u+v*fa_0pO zJT8@g166@~DB zfS(gwaT%Inp@os5&O$w5FUn%JQbK(KvH~%OR8ICc5Njh6TV<8QK41r;*hi%XC^4YzS|0Hatk>t45<$r=wL> z>I&X$aN;Rcs8XW;Hfq>VroM+Cga6W;R^HHqc6bu@%6!|rO&~~ZhHt0ISDM=?pd_I< zsYr$p>yp&vC^eoBqS!%x2rG4{^H56M6FR*E@OW2S&F{cHSmysqrx$}@(&;a8tx81i zwJ6Z&ji={IDr?b(LCEF(D6k#W*E!T@s8y5|*pAksnGYbNHlO;-gZ580sS}a3K9LLE zv^;St^*!T>6e_PW`I{Iq^5wXc6 zpFk|xU!;%0xgU_ykn55~L#=z9dM0d==nwf7+x&&zP>7sLkGw@0$Ke&oVSjJ0ybtp~ z;&|E2#9J`OrW9?CtE?;>C4&H=+;NR6iQ2 z581O(S-k-{p32$VP^wj8y;!G~dF(CxA=CJN3k@^Gf*SwzV$gbe3(N8w9V``6P=WRL{Gd%A;wL~0Xs|K+M=Z2}aYi}kFpXAV5p%=2`NJ%COkJQE zO+zehXim5`K+Uw*1!y3kzoM$T@?_=#BH;~$9o`|fESs%Ztqa&rqY7Y3z@guzin}7# zzY+0(zKn5?c3C11Z;0*=YEMd&4G|Ti)46-Dfh&|aIj|QJ$ zhEZM}JCRf+9pGqM=95*qTKVK%%!3a2Pw>e{Fx!89AN4^O=uyQe;U4F{)_t9OyeePE zgi}sr+Ja9I#sYbR4-YNEP=jDgWiUXQFhO!_>WrS;AEk;xptB$tnvG|S5!D^6cmWx5 zwY$$#q~Y$|uOFHW%7=!!+HyBYGq)fw{-FsAQf3pMRK*60)dIlf(uBi`#;84!u^<%> zvXBFwuEM?I-^(4Bj|=1q%5cjs5@zaNE_Yyuy&!b$;7daOe>>d4&frY}$X51jvco4~ zgpCNYr+gEa2CD4^xd$(i9rbRR6&0^&L7`d;P1NU2SG@x=KSPd3{!u;5b(AJ48bfQm z6W4kpTawj6P_Fr-Ik6lJUn_zIu8M|-#v1n78_XXJ#(M3Cz*&qkV^h6#E@~}}@m#u? zU~<7LFL$G;0-tJoY6yZB*QNsdz zX)IQDn0_VS(t}OXqSf>7f0z_Ah(S#>!E0cp{iqR3$kkPU8WVOpwN zt`9_#-H~R;+9RGe;lLKDP2<5vG8nqOkn0aN0-;+DyUUtO(Trkg9%0LkNFyQ#H%N=> z%MKHc1q{)pKy)N#d-$ZH$Pq_Q*d5q&B~Z3$^yGwTO5}kmH6pMym*#my3IL;uS6UR7 z7CP)9Z!#l=(Ls+OUa0j?#`m%v^`Ic1Y}J#_F6dw$xy~JO#iUtJBHxGEHD!83enc=r zPvqv^@J*IXcd(vV+!u@$Z1a( z;pcMHXrrJ)KU*n5L;CU9u1Te_@Tc02(m%bvUb;deF6p^IX2^@xzC%HfkaEul>6 z_qIBZGn16Sy^vw~Dh7_Z7ZF|FiEF%eM7c&eyLczAr(64Kubk=hhMp{^MtMVy3I|;g zvq`0D* z4@bRd3tip1VvXco8#$8fPR0s9&T9U54BTE_mgEPEYW4 z_Ncl5m~?sNg)&dcZG`$nnv><~$dT^ugGU339k<)N+Z$IOYO}}tY`*m2xC&S{$0P30 z$kzE48{JaDTK5;k6EMjBtReR%3i)#hJdIeED{|tx7g7T!1@}RliXT5gxT!_Ovk?W{0bb-xh$FTo^ zGhNdcUV;&GmXoRUIA=Oo{Kn~w#n-V*&(2_YPJ>VG>a6kxyE^l8)U*M%#=OU0>{%*di` z9l8hN2t)Jg+>t}c`SuN5D(QOQ-(1LI%GT!X=cjq zdDQy@N63^kx(`&_q1LigJ_O99CcqA&6{)Rgp1@jC@ehhDYfM$;z=0vx3 z=PFa*!+;d6^5ia=wl_MD*~>qqw>J%7#N(WpFErT(+q^9)j=_fx9gAR%!QBOe1-;T- zpD(LOCjKTJgTJ4Gzt3|1F8Z(d`zPr29+O_3!94_nIe$65Wf5DcAeuP*LqZO}OB{ZT zahUNp`iXTt;t%=V&&=<>Y-~-y@`{6hlI0ELLfNH79#2-JIbBYs6$)ax(o&@b%cuPu z4IBQ|{}8?395@!eI?J7$JDhu@9p{!*{coQdqn zAcOCSu?`xTMF#zt{7>QSIa$i)&|q5#cmmtfPq!^-426l%FQrA$|NT<$$bRXnT7+?R zscdd3l^4+wrssY$?PqQeqwoFw_U%La#&u`yTf)4)mR-8%FHBy4r+xd-zI|xlKHfg8 z8r2m4h4zX0uNVO~fXNsE3glH-tb^F|<>mgfxa9hVb9R!C<&ON2M5A~%St+a~Vi-8& zv+q)__!&c2?v9d7$cn%ivT~2FktaK|;0icNL=`cFMuOv<*&cY8P7HG%d5;_89HizM zpq#QFU@BWOEETt>{{P%j~B^QPIhVyd{M1E-Hu`eOvhl=4{)M5~)`CP?LfA1WVJ@ZHl zGclvwl8V{WlOA&YNoTyddy0SX+V}gQG823u5RCZ^b76e)VR(O8kiQ$#tXOP>eRqED z&n0g`iKwj>C8BtT#Xm3G5yubmSpGNp@gP{v{2}n;C-4Jq;I<@B=*}3qMVucoe}5}K z=71l8>e3cG@#QMTn|=0ZVxC~Rl<{OTv~Yy|Cr|D#C9fyq$?^F?{r7*9AH@mvBOe<= z{I(=bKhCi7V{T?L>4rn-MiS|U`iHu4Bf62$jrS7qL7(4S?OB|D{BQH){y)QyzAgFT zE~|#`6VH{cf5??f_v&1EGZ9x>*h9e&M6SFt><9YGOy{%cXa9>zB9%{v70^3QtYyc! zEadNJD}ZIe`~ZW)nO6QR8kLu1VT}(8qa^G&h_=h@#N z{Hgr!_|wnIpSi@JmI_2%+VV$SI$?Jlmu4r_B2zr@`1S_+^uKC<@6*-jIQEy;z6W6o zHN~K82z+HG50~a{t-Mv#czW+|dn3nO$ID7Mdh95np{|SC< z+VL0p@&B&9spkC&q94@n#AF){*f2WzIWaL{BTS2_wkw(Z3D}#7nlEx`D6LPlJHp}V zhy&LkMv9ntn|cJqie#)&R%0r?%>NHKI0&d-V#oCw`CAO{ok@(Ij6H_`K&F}Yz7W z&)G))Aymy>m9rD^ux!)(AL}q@p;gKgKgME}jy_&g%-vO@z}JC!at9XMJ-I&>H|X(W z+UHg%Wiw*3K@7BnXtemr`Jn>f3>P3U0h}vx!a&(gi;qfk(pp!hVMdH-d2I;-c&mK& zWp1QAxpl=~^NnJ|=Y*yfRA*`HmRY$X?93PeiLL@ZY+@Bd(K z(x^s9@<#c30D(b<{Bpha4!wfYB?>KxNHpk85VkdA0{bpSO9Og z0$!$e5`bx!jfr3lu!X;K0Z%7*gat16Yi2~fx)57bh!Jye6>upSGZ&*JX(;Z8e29Au z&wdX!Wxk3GgMLC?d~$T8)?bv3TTLvQHi-5^IzF6F(QoYJENPbdACew<30uNYa8-D} z)VH4a`lk7zl4VvhUr;*>G9^JK1yp)~3|xoMRdlF*MBXW!-kqG`jNhQ|I-S1r&8Vii z_7Q!%8GS`W;3oWn!d9RVMOTIQ2?`zN$4ZR;XC?Jfz zlx~6fs%%AY3UaYi%7y2kpRMzyg<}wiuS>=l6fTM=sqWHW?ZpcKr5>|P4rMii5}il1 z)gLuz>w0Y3N{NL;-&eSr>FZDQv9T?kLB*OO$kTPMX|tJ3|AU;wIhP3%=QQdh&IOLnc0_GJw%)(3<#(WeskA?5KCR!VXF=ci-4fh!`(>R^PQqM?BAf%* z^-HGf0DykZ0T?R-;xJ*hg;=AhU?ZgOde#rZl+sA ziEsdJe%Uju!}=xx8lwsTj_EkO4wqh>xA!FSe!!0^?+p61Nkr(dg01k z&KELPN8w>$H$aVB4r8lHB-+ItQPMq?r+6y!>~MW5^O*05WetCKEIo=98h2@oymc8N z&5aR-Jrafc6Tw>EJ}mh0wY&^Z?h0u}3EJn8SE*y^n!94!b{fys`;j{Ke3+;{cKcKQ zu>Id1ul-_iavX1egVFwK*8X&NWP2)W|H!!Z_ZIEf7JS%{0X|f_kitwlo8KZ*8Qg z3^+^&2M*Igz@ajP+@dnj53PQ_e3^nS-kw(W0l)@`CZ2R+;&4;{WcZi54E$%ppQ^37QsIEZ)#_2FB# z6LF5IViFD_s_}Hh9r=+zy{AomG)z z!fyD}IV8{Glhw9BN%Wc|D9zYC6ka)oyP5^ieE4wvBPE-1*5KM$vK~vHHE`A&ncSoG zL`5_6b2YsIwvfQakodb2eCSF5Tk8!q*~O%~lB>x&^##BnSWg}wR!_}ek`@uXc->RY zKv$?237|uDpm3_%yCE)8aNKvy#l1!_(%t$YO>C;t__OrF1pN6BndF`Y7=MU8%{gm` zJ9u~Lsv1nT1b3EFi>l$~lBQteRLDoGGo{2G&KhGsAtI%DX7(TofnFrovqpUoKnPf| z6LZ3Zu%J=@JdSE$(nXcn$<{hqfU9bM-)`a7*Ink2Zx+|gI5-(q_Yk+=p| zD>RZnZ*R5^4_lG29u?SL8VB?zGti}K1%PQo34$Z}@*zH&{HbB&t^W`uCFWVqAc9Bh zrc7FeXPvHJ~9mJFp7K3oc~7s0QKp)HyNZ7HhVn+E2z(2Gqu?(c9wE_ zse0E7^a8|1%~`#AC5Csyl^dakk4rG8ZY+HpAW5`i+QXF^x?*sEq(@A@w3HG z2>l^!&M}$rOG90sB2{MeX|{ae0kE?>jSsNqi_*L>c-YdbnR4DgbyL1neFGo~^otDi z&CHbVJ&M=7F^gY}L89-C1@Kle-ZOg|JCE7ZK4j0&AbV=E=l$@i0yfp8vXC*h0>PZF zK=s5ny@t%G@$jB#gox;3B4Tn2A{YgeOcYQ=)oRf#*w16w6B%qk?7bni zB4hqOl!1&nT@7Qt2r12&7eqEEaU<1H{T$y!kuzrqWs_#SjI?gQA7=KunXI?;$ORC* zX2GM&32P5vCG&*(-NrL)WFx!b&KF9nfLl$Lu44w3upy(9`X0W7Qe{T>6f$&k_%NBn z%?w!+I3Q()rK`g_N;Y16giSa`{~(@`X}P5 znO9CP*GD4Of2wY8f|&smti9&$__f+y!0MckFcUn(evy5JUtNlgTox)}zu>G0yS-Fh zf~^%q1bc|x7*>+_cqClK73#BqM$D>WP?@Vp zx>yDaO)g_Xd$SntulUa}?2Xuch8<`b4&CfvJ=W|&)~NjjrZX5OZg%d2dz`bAI^PtA z&}@E$Klj`~!~P6PWPh+XjC4Ix1hp@M-h&GGaMj!#U4^F;n3aW{#xnr7%O``%(pe>cO8h&1{wY2MX#%*P(YiiWjMm0s~>1 zj;m?Zp@{>*7juWjyCMH>LjE*+FijlLf6QWEuAVDEp2djg6NkVr#93qFAncEspKSgR zKif4`#`)W;H2z&DZ6pMR9)X%%8p2*R!djb zNTaLCw&+^B&TG=z`RdoZxYjPmH6I~Ibog#r`^mH01`c)m4Pq86KJDk@9s$VPiS&*i zQ32bEQ%>EP_h%vhf57LBcB(wVQ+cVqaySf1ZL%+S9lo;!k>gorVKC~>qsf|Ej>r*d z#*1)=+@+W}HpnZGqi_f3To5G`u48Z?5w#JMWgGUrV^yAM+*^<&dUAil=yc-~K@kdZ z?M#oTh;a2c<6kM2--F81Ttbf*y3!Fpww1C7*AaX1VmSg|7I8s5$S2HSU{6PWh+8uW zxD5}_@NXpmga$z0_e48;DpPB*@>1yqf-o8k9p6F1pVJ|yfnH$1P=dIdTVCyssOhY& zD?D-o!V4VVB_@0?V~|LMZx!Gj58r!n`1lANhqX>%UG$en(*f9rK+5?n0&W_McHosn zgJg1onS3@3U=%a?oX%uTt!L6X!7LqU$2+JRWV&HU1`4rMj^H^VnFd08nh9-j3$$i? zIP}kB&(N_ml>p*ZX2dHA@msY2LbHFc<7P9=TDzz}Ywa0A8=={xjmK#3W2kIsqlUGC z6tO`xm(9n|23DMikG_P&oS)Jp;tp+ne=-y>C+bOh}s1_@l?huz%8h4 zQUJG%$;$6ovxF>az!iBf;_!HocbBe=iaTS{oPKwK2(i-3m_UuMV)$cy34d4CdJTVL zV*KA@l8M?JKf>Ma$dOc6>2LPpdP2Qgpk@MjMb*`y<1ahotdgbuw*n%!P8-NNeSf6%?2i z(X9U$_tEr`;a|=1o7u17NB=t+l@0ui?aK*sgTTzjqc;>o_=k6xh0hqit2aZ)3}Po? z4+{-@xE#e8VA_!fR)ZG=Hg|z7f;uo{jq+01!li%NDm{n29mJd@6N#f+lKAwQ28mfl zJfbDBx1u79w=mtF(4#b7lSPDrER)Kw!_#0M z5hNlNOg)z1Iofv*HsZNxEs^s(HVJ71=M{n+8Z(XdGJ1|=>-0p=M-T<0B7zLG-KrUV zk%cGlNjkE=sqV-QuC}LFUTnuppgL8b0){lV9mF~jnKjt+7Ab;#XQaJHFOWyJ5m0xV zj4q&8Qb$w%=*C+ zVQjzp%RQm=>%TEou37 zJ8;-*~v7`ENY@!1sUS;qGhx#>3T(f8*ieRe$5*?3I7x z;f>4x#>2Cg#bS9OhaQmOLGDO%k{0KdKCJUdV#O7U=m{2G)lc5Xhb+lya5pF-P!qdW_BU)ET ziw!IqM*cC4vtI%L8Pe?xK=dmj?sM7!0hdoVNZR<$?a^qxzaQHk&2-L&eXo4d`6@0& zc#oorC;usuAMxZTxD?N~TBzsLLBLOR^b>T@^sEfy295YwHH_oW_|uKC&4b-vh>EXa zCRnWEEp4-u{EAXr8F(JUm;;Z51`XzqXIFadm8QX30x%eMY2ip_*MYf#8+Q0(ud(f8 z4emCpnQ3ouhaNY;0;c>8xJXl}w}|*D=-8ThUA#>jU)m)SS8T$9hzQY~_B}#0U1>pp-aiLZ z(mKIrv!z`G01=^Cr!DQSP@lqc^n3_c%_-iz)$A9U{jvM9SX& zX(bI0c-I}1$BR)JOi!@FyMzKH#-n?pHAF&N6A9PFks#uMy-oOAt_B=RH(~!3+)Nx` zJH~225C)ifidZ(}{o_xs7mmQw)QEgsjQ}l$+6DhOyfcjcrp0G1OMF$PO^Oo6bHxb@X~tUr;@jLd(g&JVoq(FZ188Tc7(W$sUtNq6q<681i$eV6{ehnh(+#9p`mdc(n)!YZx8 z@>qUoJOzK-_xO$m=rskHWnLC?UZc^+=8IRKWV2lyO2a2=F@NoMc!S0Nszvyf!d;sG z#pkblrs$>l>q&T8nnT}M!2H#dZ?o(&Jk0#BCFFl8!v8WXHZiLYXkQH+-ScES=wlS&N{%#V(b5WxW`KD` zV0nCa_eSf8?-B9vpQ!73s*kt=N?P^V9zG_ z-Avf;io;$?>dNHxZD+&Z=t=kyaxv}aigP&LM(xBy{$irRvZhu|EO-{PJrWXip!fd6 zI}lxs4m1ZTYX|DAKHCX>q{^^7(u`8%@csh}4wJz5C*j&yvO()Suq{!x9@9f0&1s;q zq$dz)V@WrTEJV$xu_Om+y+1M4!Fcj8aK(=&HzALYCxoAkCwzOKZ0Sp2&`ZU0+`n52a{lGHV2e+)xS4F&UfTwbjHUVSy zay}l`=d0MciaD3N6n1j4Hc#aNza_-U_Kc8tmrb*mmjSW=RALFXAu>RweHIu}44-+0 zTJv{eA)RVCUmgMwLv6HfqLC9`19F@?Ir>E0L=<*F7(~^n{Q-}fc?N^4&)ke17W(@7 zjg5fa)7W1@Z|Gr`Z`swg)w<5USY5T6gRjF?o5h`iaUsEi*1-(Jq_!~Wmi<&qQ4^*- z!Tha0p-I2kg#4v%5+WaJLf&G3E>_K0#MZQ-ERB(nXiL{I_UG0jmZe$rZ@~aq<&JbU zEcycBVpfvwLv#-0;xqUTcDb4r>dGYq0th@Bc@Qzf%H|SDi!dA-T*B62gn$_T` zZuc?#Wb6my4&ifslUHA)wLz#`OC5&txxX9h7US3hxcU5j1Tx0h0EP`3 zSFsIX`X&v0@5eBIi`BDq90Z%Nc0-N^@-702c$MZ28?Kdgg1<`r2{B)KdK0dOTu8Nf z`!Pm23D~KEKK8zZDFzWIk7otADgh3?wf#)kcHKE*6DL02X~ZsG9@lA*WAs=_f1&4va5+N3Zz)8AGs63*^P^uv?-o zM?{-gvlv%x2bgl}Ry0mw|7*piF*`tqagjlrNF`PW8JuD&0cV{H!`8pqasSYYpR zJe7E0_%eQASU@D@m`JKvrIB?1YAZ?1-)Pg$AgC7+WOn!y67zN2V>$i!{%D-j&zApR zTgvT2k+vm?eY#HcpP{&NT~v+vle2P{kPYsIX3Jusx{Dup+wjoo@n)c-Va z3}54_jd)okZ}u*c)_q~|F~uZ*jpORCw@=^ydMy1lqCJb%I|Z_vaivX&)KNYqNoqS0 z^(N`?IX)xa2{evCi+)1!PJIjFa<#R<6RS5Gb#$fHC^3ZLb0&Iw&eHK2`-2lUsM#F8 zs!?A80+P?uCPe>ifrz&OufPBwjgJW-^S7nMBw>Z>5s)u1L4H<;ta%>deHXv+JqF?L zCqw~%&#gGC5d=svk=m)hx!HLJq4CSP5I4>zPIU#V+ZvbDamILTtj>pV>pHnuJ zQN~}hcw!mZIq{JI^J^BY!*9Y-vEmhc_J&1{MlU+=QnpAF#u|f)*RO%bQOUu_RjJLNaN!W zJBf3m|4@9Z_*C`IRG@@^rd$JBjKG#OqYwpTG@`~g7dFC4#5WfzVbsjuT;R(cr!X>T z#zW(7dmyB-QFGITJ?drXH}o&zP;1e@26gcgE`l#{HHGW6FJ0*Ha#+01x-nnJ4wBoH^)Fk z+4sc^KGdk!0SZAIZ6JUY2aUnNE%vkxxeWIj*V#7-h9Scge-`?*9n&7BPwgxyr5Vdm zK!d`&`Zq@Y!?fvl=$ZK&BYZpA3QSxRiCaJ4phbJp(rm=_n} zD&{rqKWShCfSAw3k1wz_+}@kE<{O)MH=Bpc#i}I0w`Q%-`o!USYoFjK$Yhc|*53z7 z*efjdzE=I9n#=1=Ts8Xl0X!}CnWr!R(Dk9k_?WOAP0V--bA(=u+QiIo3r6%05Ry>T*vvGfW8*vQ$iBs#wRzRSMm9A zI~Zs&Kc+LB*?widEfrgcvA(XJxtY2n3St~HcS14M4f{ujqzP2oZ;4tZ>HRawFYx$7)vDIgqg$= z2fkiYF&cq>oELjOioD6}3wz=tE$#3wr0PUA^>>rvNENZ&C}~Tu^#1Cz|0v*X{h7gw zE+YI|=KH(w#0F$(_RHkoNEMf>C|!WkMDTvu$>2TD;OSnTRB?nrRxpr|2T+N9W>Ur8 zC`xXNuYW5cxiV4xD(r$&&u8_cq7m=^gsf~?BRx;2UKTN8z z8?$xwR)S^HPgD67RDN+>xd!@Gunze8Snx4^cCp~YH`xX0r3ePAN58c8wb2B2=$TEOrw@viHkWdAo^!IcwCzNH3s4L#+b$`Q0zL<6o{?c7XCq0eLef*$nc0 zq`*hC-jtk#5rEgrMMve&4keSy{&e|UzV8y)F&0P5NORtEZUBCK#RZ>hxovI|7CpZ9 z$T;Z)AB|rcO~b3^2*;!a4t4gQeg4VCSRrw^@UJX5$&ve>GmIxa!6~Wpl4j!r<2d4Q z@mR|@TZ&K+Rq4YpR1+)KZk*uDwbW8wXCohj9bt4GFniALe@Z{DgLBTlBzSr-d3ozw7x}sVZj?clDrbj!Yi$>s7pYjukZH)7Gp*m;f z!QWyr`Ot!gn_EA0aJzgca;SUcNJ=mIsu7V|9&+FnxsGRp7VJbFCVl8wpxzEB%zrVR zpAp!R#m^Xj_7^a<0%wfl^geOMxHnij8&pa&&$dJBF2zyfzR-jz`cdO2>h=k{7}yEp z7X>@u^ufJ!(zeWxESJi+0YcD4y3-_%;Z_y;6aqhkFUwG4wbgEIevFL|!A=Baq<(0& z|N5ZU>yFS6NzitCh=pAC_;h6w0DMPG0p@IWR%;nyc0 zWaldSAHs(Xrx@c8V+udpxS)*nA)HewmA`>Ua8~6&<$~LAZer*Xuaf*eK3*7>m-w#@ zUc$IL499lngy$m;YQs6c#F;&%Nj7;qHKXV}`qH8QL>yv-V-e>;{WSWyEZLdb+R;hs zV8lDL^594>J52Gga`$99Oi^A^{8%uL_IsGlQoINZihj=Yb3w{%&ddGy7D6- z)u+SUqiflG{(w=H(sb4(`&L_Ehd211lODx;Ci2=5@?zL;Q>Z6{?vb}M z@DFkDutV6|f?`>TDBa6(x+Td29hWD_%)of8{(yo<8w=#>=qZMNz?s2I^l9$EQKwY? z5TVBypx zvX3g0V_OK477?M=}nj-HcMI7|d!2 zwCOnh6lhCAp#07c(Qur!7cB)kfGBoRUCwcZb|oAQ7N8oq_b%V;logM zWJ@bgC@o3et~A5%MguB_f*y4=V8UNvwu9P|Ol@%^Qv=6%fOa!B2qtU*l;;E#I(bt~ z#}67Z9IAtM01q~vZB9~MzyKMKCyff?%gUh?CvG9*v?`Sju|`=3UPb~OEXt;+s%(E*j{Kv$tu?;*)Zc;sf$MKD597x~~_y^C}~7r}gpoJpg9d{645^$%a@p@Gy# z@P+!|SO@t~$}Sw;>j_?(68-P6vUMQ(+q+u-13pSW zUj^cG8g$yFMiMk3{f=a}xjvHBpuG0le{bR%z{J^q9?Mm9BMiYbreI>dH~EASvOq0eV|DcDQ!iE>}?Gv*j7_hS5DDvEJ*IdMg^@q7q*Zj#Vo*!Y)F3oJVx~J;!7Db zm?pKEHdY^3j^+Ro8^NqyXDhr(*vnvEI(kjpUP^AAH0u*03`#O)BKltPZ1$kC005$2 zY5s>VbU&s#hn1giz_cbW6Z50s$Syd%mV|H^ZapmF;df~KYPcwvS?S@rjoBr>Q{SpY z!s)C>QF;-4`ZB!z?8#N6^827r1aS)>>Qv_gshW=x-JYLAIp-wmW-uT4#yqf3JELG? zgEzTdzPy=cD^UNe5%M0T>0OSX3<%V{%p#{;2`Yk)%IM1fLOu~pmNfZ{X(6Aj{K#(R z9iE9&O+J@u^2s;L$E&yWngNOBled-0hd48d9rs=i;ozKOO)Nd|T(q`IlgG9Rnmjzg zOSOADPKw6MT%55k_56`U3mm47u|EYxW0HEm<&OZyB zzY3fu|Apy`^w>>ElFn2~k6n#hh+qkGg{ECGVq(~roQ%`HH4)IM^rPS5B6taKRhoh6 z{+KS`k%VPG9}g{>T7z-w&9_KgRnb?g*m>ZD{K6 z%dPgGgkftxJK`JOqVmgTNMr+gCk|cD*%;lSh*u?r6@>mm15g48Xt z9#x}ddVkXUa{&2j5xTmZmmR#wLEmG~>#O`W4hEnQxf-!t{KkA+@Mka_UdA6EhAE8$ z^(OvsZ}$$^6Vij;#28Q6Z|#UN;{;=xlvr9d_Ob={DfmgZNKvxphsXYJ6M5w+cQYKQ3vDYB)WW6;Cs?O`p>WW_EbiBNn^137fJ>IPA-zw6-T4gy|YMM{M?Lq`iC!PDMyQtI992$c^ZVpK02vFEU zPsKLT)Thm~({xqz>*%>E-U$3Op3>atMf(1<_~3ZZl`gm9bn=SlqhipNiY(-7ihKq# zd4CKRc0tgTeb}7lS~OVx>lHRw(gE+SqMro|Gg$?ihoHi%s4$jSK|kvtRhr@ds9 znP_Q%Z`q$RV5?B>KW2ZLeFgxS8d%lD(%ggw;tHpt(A=LU#+8qxhqcBg(8m>_M@g&X zb?8!o!);2WdC)YQcWv|Ak0m2AH%2*KZw_{wnmQSeoO#GpF@K2-A-}UBf_xTY*Kiy0UGoY7Cc`PqUto^>ew-apibf;iiWLOXb-1@w{y?JgOrv}<&IZCn z;F!<%jVm|BFSCR0dvbQ>9H3ov^74xC!{gOPP(VR$sp46F=a4Gi!5ziXmH#e|j)*Q^ z&P-RnxE0QOuHSjjL(>W{)J*Z(6)%F6-a1z*0K*=&qfq`+sD-$*vf>$=9?F->@1lV= zWD34ZLCEat)Osp4dlO?DUJFXef5II2a$dvE**$V zPmN1Yj7yJBKW>uz+V~Pt zGg+~Vwx*Sl=cl!w(v_xkbfFbLfgygLi<@MB4+8IRuk&`{X@Df9%M7B_7he>z*96OE z0v_E_`*iqH-!SDxKWG6zr9fUYjmyg?uU2mbOp`o9DZO693{(zZJTVhT)-}eO31q2G zGE(j-yfp%!+pi^IpQ!krxby?2bo_ZKI)Arj#mS$i!GIL-L(q$|Y}VoWLRuA0L5 ziSjq7d@+^3Cd%hhxnC=16qxywBEQl?p6&r$Bt=yq%k419htjEW z>9n|XdR#g)F5M+A-8C+q6_<9#rL*JGeNAb#9kIq}AKKsEYJZ+P)!cq*p?e_j8`Nho zHHx!8#6PQkU2S1!llE z;QFSk;Qnq*o~WNs^?#!Jmk3~ZA35WyR84<+Qh6Pf_Yvg_s60(8PoeUEQ+Yd4{v4I3 zYvsS;J2!VfLgfc>N1b8%G@*Z)HNgKJF z7^uU~54MSZVb#x0*8X|q6f-=yM3=wx2mN!hN&mqv_oTSAxqndkjdA4@;?m>d(qrS& z@%=Bpf5!LU`2KxC9K3jY5N|IA$JLLwFY)##-aeV_7v$I3Y7ZVg+05@hVGlZ4?ZL&C z=V1?igA0rC(LCNv$EO+Y_LC~VjytjkHyj) zK$Q2U@=03xl~m5`NgrM=1*RpnuqUsbq}h{SzD50?2;NcL5i!i3+^E6JAb53D-cI0S z_GE%q{y9DWZz}&nJkRXOIIX;a${(Tf8eVSLld;qniz!#PCl70NG<(AO>*cJ@P+=qP z)aq#V#M=K^UCo{h)#_U8iJjHa>`7;>j%H6R_GxDm(WlvypD0B(QL`r(P#YRp9nGH9 zXmvDuLcXMK?_OkerwZHigjV+kVSAX3y`I&%Ow^gE)wxjA8El3(h}G>O>Yl6BJyFz! zUGLv5gVl+_Y>^x~Xmxh63_dpK^!2hirQN(>SCPf-z~!Gd?@PFXmwr^ zbsRc$QFyCQmg$O`Z4ICzV#@QOe41|OXbkltX~A%t>$6vvAdj`d;x z85zBFoV}DW+(&nCif~)VZV^7r7(OaGl=|zR0pKzKcnknuZ!l=W?G3snaQ=8>&8GIW zuwP3tdp4I_#-I05_($UppPxZ2N&XytCgI0}!u~A5>-Bf{BRy)3Pg{_^$U=kvMf$`1 znK!7sJ(Wl4Mg0CXQ%&O^z))qH(lGl#?KRJzfR^w-fDJx}k{;@S-(>$OIu*Mx^T!jt zo77P-1w;?V*QAoR9$BVI4d#pbNLz!dnBUU)`mSkwHS6Cpue{Em0Tj?bp?VKuPtEZ} zCZ*?*v@#(0^gI$)1_?er55k&7!eTk8LR~B()7BS`qfmfDy2OE#Dhc4DqOa)l%S8JX zmF3V-v0rg0JjcLMs9h{o2^vQSg;HWnzN?QSLX z#SuQ=;QQOmdlj#)HS3$cU-7kz7!=xmHZE9+;1NO%o0Oe1czmN7>Ee+TYAL>!_7E1| z@>jMhj=##-swk`1LnROo<>8V|1l#|5ReY?(|BQ9BVkJ`;YUDppMEJ2AU_cd2?TcIA zid%2i_9x!7%n-pnV7X;~BI2kp9ejVHRK6WeFDR=cVL(3@5GVNl#J9&9`x86i5x9B_ zcToT+NZhMS#t(QH;8IL^f{Nt8Y|6yiDNnt{Q)77QBc96Tsd+qg3QvW3>bIQ?N86u$d0XeX?rhg z#Cis{CRR5v5w+Y8`L7xT_!8`gEQ=7Um8JPik=d5W#;TmS{gC>4AlAFEhg}(`VZrV$ z+UaL3l?ZV6b8u{f*HE}+Wxv@=(M8X6%S~=s@nRpQ9EnvCX1-yHFW~)BO)T?(#T%va zO2G95yWMgF{7Om>M%ujqKUhU?e?D@d5FT8xZL(^_#Bb?+qk_oRl;Oc~T~gTtw1d`@ zyD>jBELQwI7W}b@@$)zbP6udCxn$xfdur(g8Mfjjfun7t@(-YP(qjhzJ8;wveU-{z zz{7!~2#nfs15A(NB`f*Vy5Un+EMGpvE6-r0hf)H_t{d(bnX{=qp_J>Oe09U`L1HLs z3T@40H6IX}LTNLp=8RHg;zfl;s5}ohfRM)2cSe|}u44*2L#S^fPm%iS_R`G6k0Jme z6a<4$De4iEnF=XSoWK%Vxf(!aw72Z24fSwfAsYL@iP%*-g?201r5U}6F|?kTauW8= z$fp`Dr}rz6noZC{DI0l8wDl{V5{-PBr$p1rcq+`Fo5)k5Y56=wO;dZpM(OPn>nYg( z)*eL-=yt$)^WIpjcKAR$iNyi_5wnF@W}>KWc&f;p&2gQ{B#_p2{c9JZrXcl1Rx`cr z`ib6A_y(5QW%GTbC^O7qJ^^9W4ez>QxsQ}WG~*6dGi%s{AI`5E z?)>1QSB7Hy|JdAt7t{^!+c51Rqz2$=2xSIq=}`1|G>6W!qvo_|%up1xXw0qqC^N1x z6~9nsTw`pk=3v1K(U?DX6AIDP@ceTU;$G;#;_B({O95w zp1K+25z!yCU`9E+`%fM?`z&t3)UB*eCCm4EkUyK}9|fn7dW)y7MJ=R0;;F~*Y9dmC zQ>%F@%*%T4lpyO$o?=AZ3wIs}x8Qw5BBcuT1>J02l%h@GC{y%o?-+XI%>=(G<#ikgv>5>H)1_*iN8R3y#_$oVxs?Y&1N6*3Y%RA zuZkAmh84)F8$*TsEi=-y2{Btg{i*6qkfypgCS$Un8?DLka~Xp8YG zQpLxo0a7o#(TaTn>!s{{N*99`w?@l8jh6ETE&q_RzjupcL@{6xyQ-vYK;aY(pf&eJ zU&2PQJlZRB-FP$p*V+L8$|{W?gd3btUcf*j_~2=Qd(nlQ59guzj1_c>X{?F~$HWIO zp%vr1-gMpGiuK1Hz;9+=2lkLnr-w^MNi*oVN~1@Y%UOb+i_3mzgXrm2`7k{-(e=?6 zSgIzZa=sy-=aH!sX_8MMmB~k=CthFtG?s9ExwHjc&kRYZFJZ{Y+~h2vwkpf-Wblj; z3f4r|m;J3R^l0+h0ief}mn7(jlNakECcZqo;7`bFD)5_$pU56Exbc*%FBd_xe0kl&8Eyy%0)ayeFmvsJS9v_JDw6Y zZYN%T#&cm_a}`f9{)JLL<|(2+C#?Asmi1+Z&$7f^q<)9$e2MuLeg{u#F7E!u67yIe zEir%QoDDG2tOxL0fLHfe%dLyeLEV$T>0Vu&OoFEHlo0C`JSD_Bkf(%LJMmPQLq62Zpa`*k%Tpv) zUuaMoD9kzFowy5*qVJZSG^UQQ|KgLk3$i6B8m1|M-|s5^HZbHXOo!kbc12qXP#@bD z9wBeMBM&IkU8s_gH;L|0B_nS#-Q5^;AtxhmKxN)QbP;oe z0rLFjd*a(eSAuWxI{prd3>}}zQ$pf*@RSgBAx{YzpUqQYl1?Zklc$7K4}8a9lE|bP zcc9Z^;`j+(F^0x|L~k00I{wTq?dQ_PLalmrf4qmI_kV!C7xN#czww$o8wD*iciE2# zH1|iii*f{qUEVmJIf18c&XGYU2r1Q?q` z?9#pvml23*{N5KEry6LVmiEWumD#03rk)M6;Ki=vb;T#-g!f1vPo2OGZB49WqoANr|714Iimk#Mj(2F~K;h1gY z^7vq^N^WsIAu^d~0ych?lfLGYcTHIR;)Z}bbvPt3aN^_P* zgEeGBTa;Ji#b<;V<`hi)Tt44N_=081q_Y;VU%Zxa*cKDs_)n6 z@H+v8h{b-a-nbrTULLCe-EJYbJly<_W+I;Uk^h^ z{zQEJ-W=uyo8s%8S>sCaI7K$&?Cp^c%>IHNU(XxBpinsTs-U-!!n0L(a;FYP%T_#^ z1=lCA;QHjh5?oIjMy8*C2VkapBhz^o+Q;MTV_1Csm6q}KCoLXfv_g-spAEzJm*eXx zpBW;ccegC@^>dM7#MhUi^@y*BaY27rK+F*D|GPBpyi1FqXB@!`jtBhhc?5kb?+=OM=gNE3v~s|}e0F4^2%evgv4ee2;K^WK zp*3<&?`y|@PvAAgC8GLrnerqhkNZ7=>9E$qepR3wZ92;^!;m zb$E|b>1trPS({gHN9==v8p=UQ3 zd7swzOjF+%QG<`8BUKtQW9p@l{Tc||G=lLyEqGKt)g-Ue1 ziQhscI$q3gp%NX>;+1_M9DwUw@{BL3G!T`WD36}N;>jeqD0W=W#6mO<3I87jVIw#3Ta#7VN4El zp=v0Mi-&d#={D6 za!Xt=?31@)M@6m(hmn1-LoGnJ@&qEC(PcV6wD`)*4|P7|w!r;iAI=Bpmnj|wF_`#p zKG2%liz0?n>A@nav`K*n4?Cb9=+WX$A~LC@8Tc*nFV^<61pdVFufhRlIzEN>0r)NB zU&z;pFvkZ2hyz0&8a?s);m4>X^urSWVst&zJE4A{HyQ2i!Rh()@h^N^%0!PQpB?Y( zbhMO@B) zR`O?mrye$dfZ!iCCSO-4WrHRt(^%tu4{1!8RWpjDY<$-~!{^LW3b)(IpTw<{y&=l| zZBw);J6Kka_E_R)H>fnB;PJDk`5oeCVBz11pLNOQ@iW5q&=iWDg>e`6qJ|j2`xY5K zmQ+srvMnBwRDLV6S_aLoLoV~5E#48EP-vZxzn{V8dtN4Cd6|^GS7}Eh6a|{`g6SI| ztL$jobgUQmDm&`1;dAzvX&$n&2J3aqyrJ9EyQE&c-n;O1C{6!C=i<{>cXtBU{m#C4 zRqj>}V@orSgrS>bni}pU#c9K{|sk{jbG-?-E?mfnSNHH}Rt);5jJ6i*4M#tJ8>^D%OB@*!DpvgW_U z(1jy#a0J>WDHDRRKrn{A-|nqgg8;EqUJjm@9p-}F2f;pkdD&qSH~*Fzd#g4|_LKTY z9c{{!%JHT*(%2ONj^SB^9BuydbXB15yYejogRdE{zWfSRVf`r;fYG0d--SWKQR;Z% zc)U6VZhTX+p##NNH07ChALcdXnKmC54{XXazf07!DKFjhY^SEYOe5)c>FZ%)|3L=} zWhtOcn{Qu(9+y7SVIpiU%`bwF%|;7_n3zB>qKe6)0G){BIz?MEC}NsU z(bf!#n5I*-HG?9i=@etlaP`&1ei7^5B=!}Mic*2mhjUq~C?KQ9I0S!z$Crw<;u`xvXu2BbqSaug@57_fusQz=fsQrDEP6j-jpDy6-#fLBWhzxk!UM2=1 zK0&(y=?5cJ@1-2qv*ZmERzaT&>cl@)qv;aBYr1ivrcwVyp7J70ENf?tzmu*s_i)6@ z6yU4^U>5*u{TEo1z&MW+eC<7qcJfBQFJU8&P2c~7 zy^hNNL)*K+M_F7C|4GO~RN@nmC|)R0qYa3bsMJJ>X2~XOBq$03R#YrVsiLK_3n&O# zb~j=BuowlcRjYWdTD5owR7^lv@PdF>E-K#I=W*2{SOmP}{hpcU*-L``{r>;=^YYQ` zGq*Em&YU@O=FFLyms2GIGt_D4IYNhaH2_WwwW|r`>{PQufN|-~X7Y7+i~fvHV*!yc zjIycAk!E!sdlaeC9~tRlX-}n}?xySfthFN4opRP~vks%SWJ^oxcDWL6{`0Fd+zmKy zc~Y1=cV4nk_Q?_XbL7zZncmP3Y8LSFA<`l+E7gh@l;@1*!pknd)H}|8sV^nVATb~!W*VFU%km9`EH z)p?-k0})Lx@YeRX(Q?0uGft+>z0esszxT)Fich&^U>kBzam89c$D&KLP!#_y20>t? zBM`~&463`7qlV}U12400x~r2sd`PD}tE>^=(-1$mpdmhlD?U}LG120okY1Iy`a3F z;=yX&ol?2xFNJ4E|8o{-?^;hGVx6I0D>p8jkfOG^p=R;G){ zL{%*1I>@)5;paiA%8kf&)j9u_pP32Cl;Y`svC)?vnZncW+~LqWB?MNJC%N^&{0#Nr z;Q1xIO_e#bM`(R^KH~m*70PTTx|O;FQo$Y7U>2>K>adAU%gG$+Pt@2kf8K z*}0w}m&m7v_%QglhWkvmDlJ)o7y}#seEWtn!qr?WC< zNKBp4jH!%S>@-QQAhwm?f#t2cS8ICCn5c!rGIn8errDu=d3j_ouKOUgFP9?My`#pb zx`iNPe1!IulemnmIn$mE?JJg?e-G_DoZsnhh3pc3!~42TUsv9myiMq-)u$P~L;DUQ zY1-1zzHa;m9_AijSsb;5>_Sx}clxbF$!)SByBmsDc%Nr_n3(g3;ly!jzeHCh@Kn_` zo$*ucwWg1D= zaGshiX0`uVflvDt9@U-OuliZFzbka){cT!rG$#}d6lc61+UJp_ z;VWrgm=0YOA1yVSajv1)R4?79do6GWz4^ADZ#0+9n4HN6%R~0@s)6}NlemhI`=NAu zWa6Dxrm1K|r2WRcdHfC8LSLw2G>KaXeJvZ!iuhUlCjDtddg&~pwS?@06@%m%P2vwl z!9m12<1=InUnr;_>%`t9X7bPfNI&6|$-+O1O7PF^ns%+kZ`536M3)ekTs4XQ7JXv6 zKTSWOcQ*Zk)04NS=^>+Z2K1J3blp_NH(Bjf^cv{WOZexyU#Dm_<0Sjs4(*X%4)%8F z20ofzrR0LQ8D9>uW_)885tr(!86Vp@D(ui}#wL3w1WV0FSP3?;Eo3fip*_Q+>y1b< zR~(1>$!;x|$gN8jDS2rY4M%&9eoHQ;+p(vbG@BX;R`sNXfm58oVG=mDUic6&?(G(6 z3HriMw3kLn5uI%-kCOBWKaiI*y@;2cJb&bCmw|I4Rv-{DSI#FN9!Q|W^@QcyhMPwY zXH)htU*&CR6?j-)QZ&7bFZUx~E=lzT;@(cN;QJa8Z|nz!m=W;+z<921c%(H@AKS}y zn7g?%GxnZ*aN&H&E(PQ8zC(@X(a?!qn`7^1e`rFl`RWn_w?7+V@2DGf-Eetp<@bK0 zZm+j;dxKH4Be~4Hv?TPszC4v}?;LaZF>-f%nRVI=*zmV-1JS{J82?x+SGSiL|JWPj ziPe9+y~}U(Pw;qEj~w}0C0{6#X=-Jp*Bkv``I&U1|L}rcTveq3sf2tu=!MRPFAq!lO#7V;d=ym06>2%V|T$p6vIA_R2to2~qMnIDwLHMEd5_V@>-Y zBgvZ2@fakEt6wEbCJrNVkcX(|bxcu2i8SQBD54~=Q340)%rYMsQE|n}KG3CfmfKpW zL@f*bT~TVyo-lckrR&CIcfVP{roIvV1egcncq7uA6y1K_A8f4>&Nm`mRQC81;PSp; zT6LPN$mKUxilb1`XP!mevOvb61?T~YxW&>==2K}U@B%}PrZzwkl=;SpEM^v$bfftO z-8@;e;a;Jspyr~;1>~WCOh!iZcm)uB2lJ{IPY>~t_{O>hEal4O6G-JLDPL)cAZyEU zBQ5_af1;FcUZZQ5L89*?Amun!XAZqYK&AvE`XbrTi@YV}t%iO9NPGosDXsJiGRmB5 zL{5_iG<~I^dQ{X#L9yvi{O#03fUG;+0SJN;tVjiwouh8BLsOz1vKqf>6^a%qiZYn6 zfU>Ix1~Qc!5xF{)fXHPd{I=8$Jx$NS1M?I~@@ST$VcS-8J5yEO5-@YYIPwbsq6;x; zXkv?WHNv-P&@#maAGhZda^(g2Wg6r?SbB>61EZOneuR9YjRiw3_9eRLL5j7%7Odv2 z<1ab7OH}hE2q*j3WOCMnS?328FGoR>e)h?u6R`Iqbpccc!3(m5~f?Veqsr53|!e2TJ@ zB&YOcq1U+V4D}t#d%0mQ6Mnyr>0B_E znSM~m^oiN&Hr7X}wjeutGtrzki*6R7Xhe3xaXzz2=5kXVMe&&nW%}lj*`f6ZwbtSn zb%vNEPAy-bG}7&nsJ?zPkCi!oRTHX<{E|Pnl{Xyy=7j~m%JsqRyaO`x`dv(SaPGyP zAzZJ(1k?XqH5J-3sh7bc+OrY;g@fub*{F(thBKb)W3SqMDdP4Qu6Y;Ti5?IyUaEcy zC-TGDJZl2#guVTH@my>5hIi!pH(3n_wK^kgY^&N$M_sWu<4BRA&+GMWH5lpXjx)!c zv)C}>3j^C%#wrL$^Jb6jJg z=9cg$3~aObs{Y7lG|*?j#*xqatk2(d+Zs-`Lnx*Yc4rI4KfiDWT5q8?A7Qshd z_pmqKD6hkDlyAmewn!L<9zbhQ&>Vjm%Bu-OUBRTf%BsXu0WJ7eI*7~J`8%R7-KZMQ+9Lq%S$_ccP z^CBHQj^LygGbCVjjOhCsrH61P5WbQ1l9K9z7S=!z;*sT|QKbVFa+^SosLip_1@>F2 z&4QoOH)ipn6^B2O(5ZjvSHHQag{rH{AZOq(Gc1FdL3&WwQX@0?oebRzouPZKSaLU#qV%!-(jTtw`J)cV%F>87lE)d{s^*+X{97mwSax6eJF!#&f6D>;wt%%a zlVef~<7f}lB+jEobBjZ18mHQuquOgkA10@Nf^M{ZCjmti?=qpJwGH7btqBwF5QZP_ z6CG2)FP2&m{~c**d8PHQfW}{h)3iU)D#g5!I5`PuDK?e%nx6hAYW+?&1|9ja#d>ga zTEFYq-&($&riqoqDk8X|^LS`#q_KJh+@RM2T#~Pr0s$0LwO!Bs7`o1uRWJSL$ls{Q16%HwAx3Ge z;RLfJ0g;$UUrFvO$??V=T5uZ8a^H=;MCSdJKB7nag2igIAHol#{aAjiAJw#Tw=j(*hLNTiFaeZ-JR?q<4^9dXsG&Ee~#ZqiNzYzvh&yR??SM22vhGkx=-W&cRH}+@IQR-uz=PCM3 zC@o|?)s+VgCN%XHpn`BFL-j+~o!;=|fw|V^!)a`)MDSf^IdgHBr3%32K*7%NqXoz2 z1$hQ{x!+WcPNT4m=Wjij$+hw!$7XgIEal!YJV=c}5rxB^5w@hxDvaNIT zRrAF0_hWPZM#@-!u94Pc&$44p)vgA!xlwAGu&O?u-&$YU8a&ET^|gLlA8svZs6=0r zsiVHKckpZbGrpW{gf?sTn{;t2F$hM7c(TKh>hF&J|LVQ2_pFPcDcx8vUMrJDjPYKV zvEY2ZaM@oeZ8stx)2j`1=n84~@*?7_Um#3X?{i!8VPsBJ_sYq6rY2F{Tm6uQqaD>{ zQa({VK>rNXKh^rjr+@tV=XCv3p??PJpJOx>q~YATiRw}bt*suOlL%{yfI-|8vO4~k ziR$jU92iRN1v)fVm%Au;ZS`pWACsG?9;Z{r>z|1_!zkd4$lC~WdK!<-qn1XJdjKm| zGdWQ+dmvwaF&y!4=gSFoluOkUeoVztV^}B4*NdsRb*Zn{Q(y0=zP6{ntkl<+&KIuD zQxoA<8VLP!)`oXVd?G9cKKW-7Z>%wI zAj9_r4r_?*C)7^_LTbFEZ=rYZ3(N@WG)g?D;H+ly1ZRi9gLb`iO%+7ew%4O zb^pgV)+etMjHMX$EeZbY{U2Q0@ut-pb-4>Kg}A?nM`ga^5)0Y_&xwDswQz2xE3?QK z$6i&z8)tHJvo$*n<4gtP3+oYqA@X2N;0oD|o&pVO*?p3$SW8kf&S~H$R6B_(WCvf} z4!)ZAKTy+L|7F|y;7g?7Ix${Xi=56%?!K)(brF&Kfs#V)} zS>M5DL~%eV@JH#fS%}p|oFT(~e(f9&jh$1LYV0iPk@}|H*s-yVV6OE$b#cp9InvZe zw{L?ORf>GClsL%eHzVqEE7#7olTW95@K_)xA4qN3_LShQuD>n(#yWAW)jf^9&*8U9 zjlJ;OZ>86!FvG0@d*Qc%DZE#&S9rr|Y)W5#sr~e98FWl2I-Ih{$L#vpH~Jz0>+&zM z%gm)r3f=1fn0!2i?gR<`9KVg8m!i4LZ(-(tm*2SL`sev=KgUqB`EBny-32>mb?kx+ zetU~do%t<}Qvxb?2Y$og!4#>btZWq`kw8ssk`@?zcp^I*`n{MyELG@n>zfTk3_hiQSm+-xv z@O>RFb-3Tfci#^wd{g`rRYcF^pD^$;k)5XNckxN%o54Q@ieYA%b10KS_*6kK%|FLW zFoS;vX3DF>(^$LwQ{!TdyfQoS5BXhrwSr^$+5EF?t>&Ml*K7VsZ%JkF&muB)=ASCO z@`Qibyg^zmE|q$?J%V6qtgGzk#PS%zu1q>#VBDG|k2;R$!HEA3{qcLz^HTGN=AZv? zK)n6!eqNWz`@X8|(41HQ{$B`rh# zL>199`KP8s{io^rJL8+dKfl_UjdS~q4F1{m3J9k8=Tix0@K4r!_b$TP!P@1YE-u#a z&wrIaD6Ogn2NL$S;3~O6|zFdZ5x5tdraZL5INh=vVHmzVpTUArCzd z#F!9nE3$^5ZmO0;I3x15N)_65c1Xf(U=EqB3{^&i^Pig74d%l_{NYjFx&DC2dNT;T zJpm(mc)dx7h!LWQ_~GU?EbqPwejyJDmv1Y_;5)mt!WNk$^Jlbud2jiQ?BcKWMgixP zW3>ehv4QT34ge!KxrpPU!vTLT%fq^Xxx;yUQ(k8KfnwBZMBb&i7a#1(x&kB0IS~S* zkEtAe3|p2eP*+mPliN|bUqZ^2;t$1IH@ETwW8qAdq1RoU1r^8E-=hQxp(?Dt-zgHw zsw+BD#U6k_;}ubr9I)Eg_3lm5K|^=_T)c#O6IfJO;ura|N65FNXLrYFDX( z{@A>AECUkr+|`PD{!hqJEM!zer$hHUt;?r2tF=`SU@P`=Oe3uU&rVsViyeTovZd0D z=(gZT3gxu^m|9PSDQtf&3*XpU`x}-XdVK0}Yqkh0C8}qOts5Q>9%6&H;t!suG>1ri z!EeQO<&WKf!3UPjefV~1=mBxIo2bWy56A1y$rTKy2nGi%q`Ofy^u3qKIYi;QOb|=P zdFZoBa89oWN*Iay%u-PN+ugOi^>^g58dj?VR{C8H+XomsPbQP#^|hgj7k%g)%k*gm@4i!bHh&vdFfqeXTLT0?2v@-LE<3C z^BMh{yM)Fd%l_iL$2&hsdiebZF<+j@mPne-~LQX7%S<+GH}z>(?2zbwqv)`*(jSIeGOwYY86 zOvPs3>R%z?#Yhm|3o%Dd4ZP)8ZRMspTYQzRv)@;~Wxm**(gVKOqWSzJ!V9Dl{-q`c?3&3nUUQ~wDGZzH zHT}nc&NrcU@p%cHVhy_;KbL*n9Cn<1wDD%|PTuqU?i=mH+(IFZzkL=IwEB<_gX15H-BG-Yls*4FBYIx0^of3%1y`Ws(*5Z-y9l|v@!S>taFE}; z1oCeSS{eQ+f!{U6n{p17wc0`~&N=1l8zyY3j}OVku3F&F-I;LO+lr-aUGSUwwoeW| zHy$}W=U`-Bi%wLgAfZWXftb*~U^lWp)S8oz&UBvu&5AFG?{41Mv6(0(f~kwicM1eWk2u!CFlHdB?V zXk|j}ImvfIy+tF?66zHh{U!V(|JH^y0wEWHWVpp_md1zo=FIV9p={*ae^xoyY0}>f z@%jSc*+c8YZ3Xpb{c*1mxr}HpD`hW4wi_n2@_BCT^tPA+;-YRu#h=iDmUK}Sf*a93 zq-b=db)67$L8SR7*S@R&m-H$D zn0J|QawmE{$X3+8_#ufcyz)9VxZUGbL)86)zc1pf#As=|Q^a%b?@w&y$2 zYyDOKm0roigt;_3$smC&fs+-}Ss!5|_M)-PMx)v4T_&k88^l!Xcm+FkLc_N@^PGJH z<4&(%x-3!Tw`#!4o*)A?t!#8=zh@4>Z|k%8?V=RNmBrqukG*Z}|AQidIuJWmMDLI6 zEL_A#U}U@&*7?*QpHnnEJ|&W$JcRQ~YJVs-K7UMR(ocl#ozH<{wvpOy{yqKS&gTnh zQ0DNwTV}}E`zI->Ub$w@HM!fO+vc3fwp^oRoWL$=o4@UoF4o6CC<|+#Z*1#Hw}}+w z=2FQLQxGcOnRA+yocjhE%@RpraSN40h2hk!rRBwMp2e|h6 zlq{JhxX31E?H_(5K#|U)HIzG|lE<%{H>QnZ3P|*ALrzxx*{}sJO zT@6!`uKZ`_9S`!(qq|$I6Q5!GIe$qT)B|C`9!|wdq*Wg8F;cDcbo~DOEofjYuBN--r7Af1IWkJIp5om2}C^| zo^G$1%R+hnaz&zMc@zUi^NGi^JdRO_mMsoYr9 z)CdHvAT@NNH7-iB2`Tz^db@c>K*Dm=GgmfE9Cr@-i#4vb25zvIQU*sA#N*>KdM?0~ z0iUFMJAqHFOYV7!ZcqYCdkrx=i((`W7t>DC>oL>w1?vy74a|c~DeL-`QZjD|m7YbV z3Mq|=d~#uyV0F6s=Cl#Ws)!2f7lP(Nl*pu~>b=Q~^7-E3wEPQMx25(oPyrnxyYy8= zHHS{|R(kV|a9_&7`Q=}Ui_{<)Am#-)=1FK6A=%Jj>p7~np6e%Ez`4CuhajEu{mlao zcM>1h`_i;Aay~^Q7ek>soi%qC=<9QMGCqcMPo&0zT}@*knfN#vk$dS=0^;Wsn8}B7 zON%a-EDn=~_@3{*D2u=LW$qVJN<29N*YlygIHEUD#9l=nHNR;8g8kE!f5G4R!M~u5 zA8Yjokak=~Rfnsp#$;8s5HKz(@`l%Z@93=bYgM|EBO-tN@$;uzuYN9MM2M_0BJu`~ z-+Y07M?kn81J66`EUJeQSx>4HA-bCp5e2+66XpX&7NSQjb!34p{y|_@mAerFoW!c; zmsPTH94M*kB0on~<;zdcDv$geQq`3oBl;^)iq(xUo*Ox(yfuOVd=w}d9dxH?KAE^C zl(18K%u3S9mt9CMMPE(@C`U6_{=*{)wa%aoEG=AB--z^JI3((3i#M1uh*_)tBeI~( zHG{cJ>7C(PF}fuD%_~~~(Gb7#bPbU5Xcr$_Uwj0)hWE0D{E5*!ytlrH-0DS$)L7F4 zWV24(!I_&ImB9!b(e0uE#EUPOEEu`cP8p53XdZh}^2E&XgZ*cQT9Rkjf4;Ly1>0yl z_MbUIp!l!~HNLFvp8{L;wi;(f^f6e%Uas<}NkwOSR%dha+$MQ$l{~S3Lld>9ubZ2^ zvwnh?k<`kd+mSDeP4OQPH-hep?oUxNYrjC>{{i!BcTssFiT&9wNc}5`R8l`up{AP6 z5QZpyCgL55YM#hnqVzO+I)x-4ToOTsNkGm-1gE5?p?e;8ST8x#?QeldmomT7KSom_ ze~Hp(5SB2t8m@n-K7Vj2QKakh2Zj!4PpsXDI@SxO=TW4A$j|$_X2{PIq-K$yXcHKP z)92{{rc5Nwav3fGF_IYbo+E%XEy`t`eAQG$&AeA=eYRJYFLM&oLb9omTxvd2h1D!1 z(~&+XP&btU4aymFkr8>4h)!b_sXPiftL7v3Jj17u*Jyf^3cymIXBeTP9u-n&y;^m2 z_A66HWI2^M`ekY^I_xnh;><-tk+i>?(g(z!QELK^iaf03j~cH;Yh`0K^d_LsBTUzQ zuLY=hx2EPBA;dwPMQxL5X|Q(GgK&ebk+_iB*OC<=N=b;61F^+u{zAjjy28n1NWMT8 zeO_UXFv+|M-BtR$g52+w{7b4nvK~hl2Bz|%{4t|4zqx&R_qEcOdnv-aB4DjSn^7=N z6_go;*|2cuHBODgoPs#TXA~SnLDe5FzOP9BdB1Qnb7CPQbAienfpyYcy;$X!6H-#! zpWNC$P!T=6_)KR25YIe^Kiv98sq#-a<%hWC|LT&oOy=|gq$>ZIHqN-Uc;*@}3Uc5Pc~GSc+vfS=s&*%80x zIxY*p2Z{UN;8&f-FZ1a&`w}(Wed+%B_G;LY_F{$njs{Eg`867I-p zDS><6Lyo|;XR7KoziIt);qR4xIgB6l%PaV?CcK4yIhdT;PXrp#GgU2rS_1W)h2?>V zf-DD|p&$>KIzwTwy%VNL>nj=lX4?Pfa=?l{vN~|K+M4;os@tqDw$4a}*m^w+Rg zguj6DUFw@!rMM+z>{8+ux)IMhz^mh$0it;xo=cFMlRTh+Bg3a|+uABQ$nHD%N z$YCj5xNYm2?~vv%rkn<@1z^S={N)n7J4=6Y{PELQ)X7DLob27t|GTZTFH5y%kZR3- z>*}peR3b2wzWd>2z5AYaz}o+SZp5xJG9AgqV(wjXj^}hQaa4C5$$ITkEs&;?>o47&YJDM_Zptoe#-*K_@xYc; zGse-3L8=+Kf#XwsahlVNlTyt<^{Ku@9%V5!(gQLP7G$}t&HC~`V3bJXlS1{=`$>4B zlfTdQaVgYXf1iU~)H3`79(?Hl{sE2D1-rNg9=mZgupDcTtB;Vbnq*C&{>;oH$(-pQ zP$T$d_$Qqv;d`C?KSpHp2kar-QIf{p<&NR+r^tFGWc~U@%^m$xWZizB=8m^7Iv{sw z|3ju!%^xWWXEK3i3u_+cg5)zP`i23Ve9*nGM7WrIqe@3uH(ZjUu#4s2-b-QW153Zc zGPCo4?O=I|U3L#Og0&u`T}_s&vH&3~iohD9`4h4c z%o73MBu}&u5Mzrm?>uG`j7F!ZZ@IdQ4+&AqvQQA`TIbijos|$He z&j-8Zl4b3%k>bIzQi-#e(GAur`O~_&S|yi5_5jn1Bk@}$Ao_XmQCrT(xbr=+V)EoZ z_SC_e8S^vz1M1BlY*Ntv%2h^ljDo{CjliCyag&^_V8_{*KTXBf7je+TxM`A#U2n|4 zln);!x(d}`u8SHd3#QX)xpNTbLYzPCw?x;=IN>4w9QH#*X5c655u;fylVH5tNh#qT z8JVpEdaWSJy8SvadQQFYw`xxP?g}-h780_I*O^nFC0km)b@Z3(&eY}1f37^MeA|i2 zkY^r-Tql3Ijm)f>B5LUciVyVmx}$HTc+XevV$1Y|X@X^x?^j+DR?7Z%KRS8=>*+Q%5|QaOX~ z{eL=MrBAYOoWvha6j_rG%|6glCZK8ljx~591$!GejS&IsGLm}}m;Tl7vBWl5(?+J~ zJS_ARB0DE=JbP-)ZS@om3#t1xbtU!@Dnp|phN?Dg4@=e8 z<-gVU?q4$NTi4LBK3vr@>-(F^@ZalObYZG}XSwZj1VUT+9&4hm(HaLRb@@M16$OI} zccxBB{xdDlo%eEeD*UVNFNA!jYw$+oHCi3|DX$fjBf=(gszN_?QK2T4BI-xrVwbWa z?aHiw-A;35n@Jd~&3b>BgTuhfR)Z>qxex89Tz-Sxaa~j$Scyu&`qlI1xV)Sj-cTIsVZ1(&)fc-kX&MkIibZ6t#B!*=e*i z`SWvSK$Wd^FIv`Dl0sj~3!IA3_p1HNKz(X}1qREXV5T>`MO0p;x*+x;ayr5~MlRZgcLG=F~gQ`J>aE?EaJ1lxDW(2wKyr zF%bZDYR~hkJ;_%=UZ>NZ-Kss$XS65zXewQ`CwWIIOnbOUbysq}(;k-}A3!YA4jyfm zN*#Wj%eTvqfh%Dx>6+nLU1MExTZ$J&KbFq%*LUK_J`O)}O*;ID{dH$j-@j*0ot%74 zBB!cIj(fps>hoD8@8PfH-_uOhqU8Z{QQoc}q;I>s@i*4zNN#6F8YeaZ)B;Boy>M%$ zXn5SuZpyNB=3gO?l;UnJ%E}idpQ=B!Pxx|fZ>#19w#(!?R~gFb@$KH1b^~J|xpmUd z;a8ik^0I9Fj?SvLQ1I)W&Rm|tZ};NNc6>gxBYyHeiyY>0Fm(Cje~I6NNMMJ49q^l# zRqr*_Yt2k&PUAN+D_?CV{8ob>>zDtZ_<7P*cIe-2i!$l*MjiOQk4$zNlkVTAv+_Mi zzU=7Ed_~qpVx8C2%I^0R_G_s z5*6{KMD$}gWTYSEa;p~a1%j#)@7r2rJngNeqmt3;gEo59hF1_}Azj@Vr~nZc%qumTybmoRSwA@~&*B zHHVqTq3kGb%AZT2pSf56m#O9OnYYL_9%8qGm!WUJR*{>z|Wd|6J;y&XutTcvm2!{hjOo zWp@2D|4aRj{_~pE#jSd6;A$qfjY#4ed}PmwFZ$_M=(GECr=K2Q^n>%s>j<(tj{2>5 z0Umm$MTUvobBz45AF6Tn(b#2^@noNZpUB4~JD1Trxf;o(KhyeHYP~nm`Xgdqb;jC2 zkvVoY$n+BH^SPADRPg;`xv&<$K;{mfR%6*K7R{vjvWfl)%AL$_u52Wt{3~y4yFY$R z!e9AOfNPGsnJp3>+Als_M&x$B{btQxe>hnXequhMTr&D&-GXleN2lK1LUj38{`lb4 z{>txzJ(6eZ`4NA(0)hG~9H(PnG`Cn}L&>%p@S~O_^R^|#)SHbv`C;(2^Y~EZN5M@U zaUZXnRYm6;KduZ~aaDs)vnxe`%z30^P4nmRN99LFgh8w9(U+HnN6A%x`KtpZJ z@-?g50cz27R;ku(0fu${CYVYCn)|%eGKX3^QOd5#ppWv0$K8AFb&ntptjFJE+Pp`% z%sCUT-vMz~9oj##FxuKB$7)$AmMxG}ez^%xBay;C)*rad&L8v4BrN>O1q~_twJL8G zUMl4WO16Y&IN$Ow;W@|o(uLG~kmm35ZGN8VjTas)MQf?rEIf=)4igOXDg?NCsc()P zN$T_c%UyD&bN<7#hmY9S+Soc@bAAiN3hn^FdLqeYT>*?(Uv9ig=0w2Jt?db}B+>u;iLgjJ`Iq3Ng8t`E)QpfXNd$)c zlXqbGO4N*(L71qSB0pAtx|AD3MC>ZK){#1*H5E~yB8u-lPYj?n#h4Gy=FXPjC6$%=~GDe>+~?` z;aOAiXIyI5j7!u^mL`xokW>T@$ERX76aA*94+79r^CBdQg$p1w(eks?Z#>y&0MWr6 z;i^x!=jP}EA6ipjI2*uQnJ%$2z7pipeB9JV@D7ny+b)_$P=5~%)uulhr) zTci(i+pHO?ggF&1%#{+s4dJSJfaDIXGO)7#6%=%679G}=(&g*DFG~MeXJ3!_VEf^M zZgOJlV`~G0ff{DKBkWy#l**d$OeCnXpF?&Rjz=Y0Kg`q+KGno2Bi5R^Ax%glvcn^E zDJ~&JChg)!cgip~qDzTi>q#yL_FB*TFYqIv2a|P(WQ`Yk1y+NDVXcB+e7a6Lksmt9 zx|URO_9r;s^Q25HKfIyp=E$lL)6Xr`3|#4-$R{En;wPJoe|lqp^ak_I3i;s9nTA-P zl=n3$&9PIj@m$xzC(rklo@7LRq}bpA99rZTCxA#Rzv|5I4!Ul5?91W(zHOMm<5R=p z`RkQWUU;^rfa*q)&*b^3;juT9rD^%foY64hdos6YX68z{v&G%M zw_sEGO7OMeu^l|(DN!dA#SmTIIJ@+ulkqO2TPmrphdV}hb z{lnse+f{PIgx9DCME{i!Q&r_S6`mz9VhIWdH#AI`tyatg^!cB}VAV+Vs%K{)?EPkOzb)`_{Dh_R8~q`j4;#4sp=cT(<$(bl4vM`eZ^gyd0^J{;S&$QaHO)VY=+Iw!!-$@Z zRI_E*F4f;MhWt?ML`a3$yOfbHR;X*p(?D1HZSjug#KDWMd{tyFCpU%mUZ{|s=?Cf6 zOF{ad6swPq#@}{Ssh?3%ms=lu*Zv9+u04b{E@wow7vITWS2jFJtEqfPKv#}XfggCv zk5{(8d`B_G=lm%BP>nx0+s~o+YU`9&b8%*sAsCqMujG_P9I_*m;dJ@n;qHDvatOX5 zwmUGod{44?QVTZth6x+E&CWB-Jf^#xa;y?P_=EL`fyy<(9rf~@_kM}mMHEA4gMY$W znmTGDBCc(Rr+$JjzhG^CUaoULC#0>9-w0_Z&|fre9Nb`iH%onwmd?CWAV*t8x>N_s zkt{5z;>Cl=CX>abH_F+z&?_>p=nXgTrQXZD>H8mD5|wBYy);co6yVGb;F8bLo~reb z1`hi!gTrLZ|%U(+KZQxTX^{vNn~ySLe&%+;C&{y z!94j6QhC2t<|EkEA0yrR1x^jhlVc5M&(wI4kyvd!cPhRb?i=&|_{iMgzp5L58W8vu z56uVq<700`#);gEeeLh}VLkgP@#5nJ6?xVE9YOcc)WQLIa{A+!<_2T-Pv6noaePM* zVXyhf8ZZ7rRJ(ZLRfMc(Q7G+a$is3w*B%O&kRc%XVEQF%Rj(TnB}ikQfp0+TZ}5bY z8Ed2@a+8B_RtEcwBU-V~Zn)NGtn_@!2)8Am(VZ!;a*b2pyH0(-gSl)8(2#n!GS!z6dB%X)ip<#H1qn}g zsa<+k-WC>-G6SHIY7{B&(Q3<;gsiLn4urSJLlxU4 zS+YvSK_lULWD|p5s#q%IlN32T>la<8zf{IL$lrKoPOyjzQfC|z^V~>&J3`)Y)y;fD zn;8V$+QYi`V|DFyQu~*W0$hBv9r>SOFY&WJ_r~6#%ZEOt^uLXGF!^F@Yh$ll4?Y4n zg{!U+F>FNSde_?MXU4*>gvq$@>>z};5&aaz%iA;7R`)zC$*pQ_g-C&$JPknb$FI&_ zTM1E}wG~c+?ZrbsmrTQ^I_n>VTh@Z8Ku5GvO6U0Q33M&B{Bl=WTwmaeU0o4gcW6w< z$32^`m4(A9?^&k?Zjf6I>cgwLd&A%N45G_W=Ov#}XKV`#hkjtK?0g81s&AyH-)F(< zcg6W?`t2E+FPXH=KHEW6b4{Kw9C7jDkq}zqmVqFbkNEc577U`t@345UOMI~jgITia zR&PN}b4x`&7pul7ramHC7E`ye8sT-Dk&5MO zWC(9ZP=d)y+Dw1`ty-;_^zz~h>68vlVlt~xRJe#^2$~AV{|%ZFUA{iH%K9}IDcN#` zZ+dxkyhMF0QJy7q`+BRVL~N9XX4(hL!t+4VUIR2Ozc}A%7M@9*^(1j{N1!{@m9yZD zPzw(C^pM8tDE!MtXK*OXrsA{2Su6Git-ALg0O>A3!d0hJ2F6?$!RVVr zmVdS4S7CRtf9ON1O2v@ps}+UkXi7H3CuB3E!bC6jF~hYNKlceJ{XbgopNX`}V()%B zq7@`Gd-o>7)$5M&%A}UPwolYJ3;t@f4rK-4*ZS?%O0}qEk~xE3Mdx1nJIdnEI^a1a zN9x-?&l?u+eoFg$GAV^A!?A1(nLl+6Zu6PNLs)8XJ+Kjtk>Xb03MbLmT{Y~Xz}^OF zfc>q4JqiEF143UzPdL!K3G~9xUKi**i*i2D_1F#X=pNqNJ#d{{*NwWaJFZggxWx1< zrHo8oWdh8sxmX8%q7Ot_y?BY2EMA_4kzeJrh;^0Q;U4EFJQw{Y+iq zUv!0oeCDueZ$dMSwDDYO2XIIJ~#WsN2Zk8Y$TalifO2Wgc9;teSi)a!OR@!By&G=&C)Q z9f(e>EQ7fsy|qht#}9l0X&lA>JXrP0j^B%&bK1Dt=$?*7o*Q+Jl`6;8<7>H(s)L#5 z3Z3IFa)_D7XpVwKLtNRfsN$h>R25YuXV`zRp?0$UNDsXVam=cc$Iy4U3`*o6;w7iO&eZ_lzGHz3b5LJU#-1m!@=vbe>P11|N6%L9pPQ)QUjuyWI)VEiRY$s}T6vK85po0MTwT>LT~(e`)lI6Bd-r8Ldc3-= z{dIqsq^woLFbsmdX*{!ec zC663hNy!Tb-b9_(qw~HfdD|rK$K;jSQB4D9Yb`^GD{&O29UC5IN~@%d6(K*H6>*7Jw}Q?$J-_GJCfhC3 ziIRVOPIEtDM^E|s_KmVnSY}VAtlK`e3o3w9D{vYWoWgp(DSV1sIN>?T`Lr(6InK~I zj!EY@(#6xj^(bUQ<& zn6o9#4ZXSdDEi3#JH;M2k}TKKCDxX|LX%P)FKKm^L`-H84u3rYO=$CpM5#6>Jjc7A z)K>t4kjr5)55<){(EBd~*)Nw}oDqTZr=2`pMA^6G7XKydYLRL2!f)9fvTi~y=>@;u zEyI64yuXVPIfTsF@u~erQ3ghcx-vozxzb&SYyr!7;RC?a+R=W7eS2|tx|Qg=7`Unz zV;Vx5Hj5PYm&tXeFE8KqB@zHu?ToRVBGI!!C(G~Uhwzh7jVB5Iq*mt z#%aJ9>R&Z|mZ_0L2A7@T58FsDi+D@p^raW;=P?Hx?6ad5@UXOOAy9KzO&_ ze0n<89!Ivz`AEwv(%CN|`UIkbJ9e+$t#*V{ z^et~qljdNuJ%$J}^XCgS8m0ZqSXH^$9ya|jjqNhAItKEWcAHk};Sd?0`s{+$O( zJ}_-N*9X!l8UM9E1BU9!fZy(-Bode%s4qLyM&qE{C;h7kOMU-0kUWOPE)?g{1tU=<3i>uE!%#-oLa>1EB zMA@_d!)>xi3cen$`s_uqST&D?(&1SJ?BXf27g!mQsl>I9z;jHmgHSzwk+~Rh;}goG zOseEYRF3kT8m_ttpt;kJ1%*#fRb(5lQ5b%TCYzw}<*mp@etkaLjYY@${th67mjFit zIX4Alg$8o822zj#@KZ`9+;TQ~PtrorCl2;|hNH zdK#m^zC_8a@#5;=g5Me+e#750gF7e&6^h5DP;8{IoaoqM{hAuxQzdBU(e^nPbA>B! zqm=In@9jDR-^k)m;Zrkz9_+Ru9?xMpCX;`gR*c@-@$js`vm9Ul1zSMmcr4T|=Adfh zp0&v(4#u2eDWX1Je2^wXAtKthqM*!%ylH*L^;gpLJv)v3==2!i0;uSonT%X_P_&O2 zQMq&4C?{g2u3!rfe$lqrF6(xx$>@rDfTs1s!6(S%n;UTPbSXQ5LdZ7Ggk7i9L(&>cD=!9I}!{NMuu!{BlmNatq6Ozwt)HjgPfU(+G z!26pOCqSmT(jINEcRYzy6BWw#by9IlCV$xX2Z}rqxXfDS^TZ&iLkZ8q~S#I z!)*+1^!G{r%C~|CCnxwTUkjY%kG;xeBucE~?DM52^eq&yuHldJh%C88>mUBmD#;hV zz92XFp5F|qLa{u{C*TU{ry<lWM6DS>3pj2#UiB( z_=T3UaQankPWEdtdxZAOt!ja)(EcvyOTn(OHlLZlFg}9WI1hW(ZE_7H=b!d>BUf-^ zY?aUKew$+!b_)kr$5s)GdtK$G*n6>ejJkdOeiRprYO2kyz9Ak_=s@9v`YV%a|4}H+ zFRDnfxhb2npZ}xcpe5Y$jj#oQ|WFMyM*wqtbvnI!eO);Mqqc>Ea{~>Bnxay2&nXG;0 z1gJaB=QFSN8%^wCGRsuGc@lT2n4ws& zKDMoA%Gz+ebq5wCeM#n@osU9C8InJKR%2X6ifceKK{&PGW*vFRKpS0 zYI!=LOaS@?RzXf>WV(3YLe#6=y2h|KAQG^#)l;vZNRsBu| zYmOw4nT->3yq`NXyX<&dJZ`LRZb3|Yd#ob~*#n*VPciFbLiVo0i%@N%c{L50r3e>o zb=eS7R`6&8%Ja*h!h2}RI<t{U~U zs7^Z| zer@axbyY9(i@NgLh*lq@i%uA44ruaKe(p7fe(CM^rMd>+onx6Y!XM8vB4d~dd|Ux9 z44^pXVK!lvV=#1tJB-L6a)e*av)fTw%waxnZhT7Y zl6a2uASla|@F(BLR33Af-&^@c;25_=L7<1^IY#CA&dD>f!dv+^d6X@BPg|bOGe`1# z{9{bTs&`5oAiL0WBZe1QpLA()HU#)=bv{!|&mHKyd1A^3Q~75^=P-W5Rh#kUV-I%$ zcsIlg8_SgXb~6Kt&KN4&&GEt=$I%%lnTjQ)I8xV$TtWd?U%cl5Bz@I0sw3BR!Cbzxf-oYIayu=_U9q4mTg!s<- zUGWoZAZm`X0-FwHWlVk%W+;x#^n@w@Xe)enG^**}<3N?wq%yplck zP5D>Wdx!vYOz-ICIlMYNwCFr@R7nAYlLPg<>lkqwWN8~imV@evmyj1eZ-q@3{u-|-IHiX1mokI^!!?(I^HzEbF`_Ir()9=7U zX=~0VS8s7&?S_UEQmhLGjp$Ru=uc(ZwXVNUaA@_*8=JqEc{ko9txa?l0hLg1uFG0_ zc@9nYhj-A8bp_TjZlR_|av70<5%9#pf${@z`GKtRQ>1^e#Yw2Q{y9eflu-KRgtt_O$~4FU5<)-1PRW}TMp>H? zIfx2&%e7SVD(FvoWp94)Q$D!57B`xF4mp`kODL7_&XmFl?`-)oM~u@K|4YChKd&fJ zH(ovyb&Bs3sYe*B>k*F*2=Y~!BgR{kBr5KC8CS7H-DEiqzP4@(pHl@%uI+wU0SYLT z>t;@R=E#0oMK|#>UOcEn?I2Tgpyqv3H4T%;^crifwnjbyR~a zg^lPBkPUP!@W8)9SM(>*kE5*!sP~S?X)by(VO#ES3-9md&TK|xAv_SS%B2YYNHG*W zaQlq>RCA-o?FDeNt`Nko5z)|>a_=B)56A=}IUQCL1)>S7rf zCRhdzc6k}rb%j~P-Kp-c;65CVYN!aoya!ZU7KC=}BxbPlu_5elGWRak!v@w-T}yYl!~#DuH% z{#|v_EQS3OYU1sbvObNF{4Y)Y)OxH$tJU^n zczy|&{Q~6!za!xR`#aHmK45DR?M~3zEIX9(;=cnEye2X?F-3&|4Xz3cOJ11J6Rhd^ z_E8+w?%fNB{xnDFerv71YFDawvIcRi22q^}qACN#lLF#QK%g0vP}dP;q~@NgSn=@y zspSa6AyPsKIMXv%N{pa{t51XP^+zkM`x!r7<0#O}@@bz@r&Vrenc(WcGp`D<)zv=N z7n@e$i_P-Ilx~b~nIA8%iLt9E$7-h7n}l2$6K07!*|yKM#bJ$Kfj@6yn%KGm2m)?zFoj%8ytO|VK|RSQjQiQ8cm#c-R*f__%UZ3^l6KO3KV@Hq;(06sPU1)s~a z@Y%v>Rp%745bDwap+)O65fb&k%sPiW>fm>BovSZro&RC4SYCiw#!Xejqo38wwf<|M zHhcZx`H5&-x86zJxShv6(~i&M+y}k|gO;VgjN-|bL6JuSI#kAkyA>P~Ny-qPjUkfSVGPP}PF9exTdrvkixJnruLhXmC???Gg z9e{s?lF9YXep9Gj-ToFS7F<|w8#l>%Db${W<`BrA)H3Hqt-mC1*S~I6SVtPkNKVzd zn?|Wts1;ZIYW1Bf5MDKI`dWoFP8Xk?%Dr+@OQ>Dp5cw9|bbEfI>g)nGMpSM#4*%HQSa=nYiLR2BnTJJ4Y&2`0 z-$`U$L4m~9RFrT2Zrb2PU6HgeQKvMhSY7u-U2o|UIwVn7BAphiJI3VY@VYXQF0r~& z^x{O_Kp{=6Zh(C`6+&W?0{uhnN&rQcE3z@CfzaI4fSgw}DYu(~vQ z!Q1LvDx714{w*95Zs(B+xo=rnhnyW`K^)RqNJC9ua3lPFDh&MKA!ZFPUD~UO)b>D` zs^q;d8FhUOyo7?|rXmfww2nlVmOM&Qo3; zh(3|q>i#6GTWSQ!>VM9Kq5X2RIQ8yE;RtLE?eD5;oT+Ne=R0_7@|Dp3d|h`$GCfP~ zYx$V{7=?BG!vu}!WC)Y|GxJQ`Q!5!4g!UInRnhZFuqJ*k!@Jdp$ohga@fc(r93Pbw znI|-kIPX3mRw$k-IcaD=m7#D2vC__0Z$(0yg^MH@_cR}Yo)KM-;9X}`*EzD&vyen1 zx>J}*;RqD<-l*vbkYbBpoipC4u7W7Y{6>zhZpCMUPhpL~r@BjYb-g4Q_w>%FZd0vW z-4P@jQF(hJRb8*u0>$&=JgS?lszVRqpLL0VhY->4h@I489kNwrd`2>kCdxWfGVsb{ z+*1S@)mgT)i5E)Dm87_5EQ*fZUjb$Pzg?A&NO^gZ!a9lw`xTYyqrSgyAy`TmX#RHg z2Qesb{*;2K%zeuDG*463trEbyyCSYUZ1&vI$Z7YrsrU~1h4_;xgH39`^2mEL_A5^i zdc}+P9Hq3uL4=ryORVWPbl9(C2>^@EQC)l?< zi9O7v(pzf#(o_y)6bZgz%>f2`mPe$=n}~w3!hjP5ygNOn{Ts%Jf!*29oGJU6XUTr% zMN9O4X1lYWnR#Bz6F6M8X^3vq6@;)ts{PD+u4ie`F8i6i0Kk5x>|L5Qz4cCF4sm)r za&m74p{IthvWKRMY{*>-1VOp@Nw8&C&zdqvAXIAzD_Q?&2(=o*#v>J7XJ&R&634&v3yq2J?K&#Q8m+S~Axu^& zA^#HLyYxqn_4&svs(2YP5nkd%tyso~5tY2vdlGp@bg}-*H==j)728za+GcmbHixTE z@XS4{@`5LXKgkUmdit-pk0huf z@_`X}G5HZofStV*eVp&CcAJ$bET%V66=0S-DR=Z?j+9t^kI=$P<|AUUm&J z`~|KdiF{iQQFPK@OOV}WVdO>;5pP+0r-MKx_K!s1N;xCGQx@pOzacfq#=7&~V#eH# z{Y&SRA!rS)ibOdj-wBm)`$85leyyv14U*XWqU90$I06 zoDx9nt09c_e4ws8R35>fya@R}bm_gpx`nWC&!bXjwAGJ7euT^mM9rWhT^^zqd2bi2 z?M5k)!DkuE&g6DyzH{I+W5!+!6k0cm?Lq@T!z_II2K@i}V}>#dALf(k4=SqlgH=kb z7$g-#Cn%K?rA`a1;{<;@1wU|+Ric3h&KD{)7uE|%mY5!^nFM^039CyFt>@*Gr^ce# zEIgTbxb`WDL=^r;D%+`>xVnW6$!A=e?XjMCfjU2-3$pj0!&Qs#fJtcL^gh~eCVH4+ zl_%6sVMBM8a=SEqHLmRcVE9n`8LI!x!bh%$5+!N0dea1}NUS4n4?6U;k}HJheWp+# zXsXfg#nMIsKBJ$$N}P`crAu_o;!-UeHmIkc z%|}(VIeIb%)DZ*yW>X8<_@0z+-Z+Kd%etGxE1)Nz=N0ki6rb_jd82|o?K@Z$`B}%2 z#!+e&D3Z}HtVsTP>euz)(=E3UzD&*{$+ zIGm3pv5elugh|Rnk!!1sz@1G+6!w`H_Tm7g%%a7+=0M@N=d71h{?FF3V)!K2Z`5Kw zY3fbh-NxnHY3y?kD`H%{OKGBSBqVq7KPg1o%EwgNrCX?FRg~UoDp3V5-aW?~ABt5- z-Nex=nol-mo?g%-vlujamH%I(jXk;xoCQrUs^}gK`Qz0_PUXhnCSwfNQuZ5qVcBko z=ij<({jAmZQ;EK4N2rf9JFd1|3vJ~JnH+VH$G2o$ze%sV!I}X#$%%d z1Ajc);uU=YGzWsFgk@JC)>NTGvXw-rnvk(jJoFU)^)cQB|E7F1PWJxTMs=Bh8R_Z> z`QRaP-;3Xj>iq@mr9QKWUAlUxE^kJ3$BAqe<0dqItTekvY%;&#I=1q?xlht?&!rWd z#rSuw>T+x25FDG!)){3xjk1Kb3O!#gCK*q;re0DmK9)-*PJh8D+d$DA>s~Sl2_vOb zNM$o*ENUGiBoM#`m7jc{mU~x-Go<21BYKcX@9;~OP|S#YkIXZRzmnM}?&%7*z%(z@ z4cSa!?;)EY`V8}-# z4=VqJ{COOvZ~sI*#m|rmr{d@WFnYT_6b|_z88z0gxmryDBL}$%8&Ahdgq#Co~jT~;rkH~fn zp0P)$`4pE{bFoL#D_=Dtck|o8W5<>}z)@TI=G>R<2cVEt>wTFtc;@6QXiBnqPxL2( zICn23I&`DDD@bP(mNg>WMkSdCgQ=}{WEBWWBlg#Tu)R!Fx`ZtEi5(%aC#7OVQ6u&S zi7igW%2*>dUt(qdHr?YDAX1BQ>kqZ;7Ww0Mk3SWziS1!4&l|omrwcD8QnY@;E8axY zc*dIi<8z|(3FjZ|k4L(WhujDO{w1oVF4(!18|qdEzmPr0`tX_pE)U5er9Qm2ptkad z;C+5GEcdI3q3PmM2B%x52#`9L2F<<6cxU8y0C~t@8@t% zvp3O^wdy)Lmu5nJBRUwUW>lC*ZmwF36~&PWGiBnA?lCWzoQRZ;0JiM(QFg>YRdxyCm=-rgjy;_}*UKB37j#$9ULjfK zyIp-0T`ZG&4;ACg{1@=*Oi}#+{&)rAU8S-xqbjjts!hd6>Dct=xD*25E$mE@1*PBW zk4ULVA3C|{`fA`^>?3hpX+R>b@XO!&)8((XLjGRB#Ti9c93!89EaCI_rBbAqLV+;@ z;G&CrtB}Kd7mqWZyWk?@x$8%(SecLKFD`wKAL7SI_VI+DCtM%DRi;0G>}Hw#B&4Rh zn`QDNq$j_d_2l;*`Tg<7N=s;1L;S_kf$H~x(j0!#|I}1o_=LE=qCd;yq~_wo^o+Qf z8Ic>#>djmAjJP>)nRzfe>R42!d7lBcHiD}39bCqdghoZFanT%3-0nkCa%GIPa0nzH z%f-t*d{Gso`4`J<+9SVNQsrH;9{G`EUnRd2WRid0#Q!1gUEr%KuD<^SPB38NK50p% z6(3_g)__P!AF!m7njY&VBurLX$RQ*E`aR_m4G zwVDLTK|~FB1FsP;-G_KVQAE7(|Ndt7$%VG>^SuAh=lQ((z}b7xtXZ>W&6+hcYi8Dj zmIcqGYKVCwHx?zdh#6Don9n&oi&ZK9Bq*PnvN% z|2I(%Q?A-gly?&$>lH%5YtS!GE<^-pv^!(loGVZGvf)eN7!spij5=v2_u9wwvxAgR zQKA?^<iirw;e zbdkhCV=ayin_E-ub^@nWXCTbQsZMfvm}+T0roeFbnW!`NtvyxFdC&55?sLwv$$1JN z`{B=rILUAG4mUQp?B$pHf9keCP1CInoH+wUZR9!XO_^^QVGNq|D9>h&L~OJ3TXWegr)nI_4X5=aP#b;(j1f=1Nf>N$ zTED@I7$R2mmb_*I?o6H5i^SGahWNAL0xC`%U{B)8)u8@I9%S?H;|29CL<$4c#zbf>d}Ks)VlbJ8xl4_g1&0Z*A{(Ie?SqqCSqa{O)g5R z-9bdnize8BIknrfAvN<&>J>J%0jfc*Qo=?Bfj(irx`MAd^Yx6r$n5q=qYYmZF#zPZ zE65KFyDd~rkIC7j3366QjqR-3`T^Bc8th4nvu3*a+HSsTt;SHgIpnY+VuQ)$B^$pU zdWvoj8eI(o3$?NE^ab{%7Wqc~NM{i$bz~bpj50-cY9-iqbF2Z7c35GVC}vn7pc{pO zw6B6U3*MJ*Ma1xz_$~i5K4J963d<~~W(QfVh#1D0B(U%1pgcibo3e9inZl5X{UC*5 zkSPFlu*7tawGUg4M4g(aRJUlPY%!(xYIcG_#a4z!G)OK@YQlPBveeTA4vMi1I4H1D z)PV?%26^U-A_Vj~HEa4PHqv3TgkrnBSX9|94~A7Hwe9SCk@e?}NDA^85Z{&~4*k<8 zBO)eKxMFDxL~DiRGI18I4X)Wr>wki>SXtxa=}awFmp=Or=B|*GObgAh$P(|Y{CJos z2p{??c6&~UqfMhk|A-^oRS{sloY<7Nz&bO2Qpx|0o&x#jO(v86J}KFg~Omji9> zj4l4O)DRRdev+4kheJ$w!b7~m9ML#?8|dqvqenY8J0fD@#C^Au;lZDz2PYXtJH-jF zy;)o_cchV9(HOo-4rbr!~y@5SRx$GF0z zf?&GF@M-z{oLNIobx-OCHKS%#+oik}QbS0fWMCvQJL)5_rKF!+z>=jzfUZw0b~Qe1 z#-;2UAZkBf8kOeMe}lAN@2yV_U#v{oI?MJaK6$Q)TuTB8>Uoso+!ba}?yMZmJa|Cf zs|}nXQp0veW26v4=W0;dE2n=K3m%T#2nYl{B!MNQ_93w>H3j396)}z|w1fy^&`azm zhK?Hr%N>Qy_nQ|Lv^F$I$Ojqv58*r6tQicSMWI7z8KHRjrUuAnptaZ;`<&Bim3;VS zGqX&a$7GntO>_e+g`LuZZmP&FB;1ZB!nJN4I|HA{ecimJg|w zi=9%9e`@2VYfx`edu;%Z@~pDMwHl>lv`yssk;Qs2yHY-H=m%SrM&2ErdCp8msAqKo zaNdW`*%}DFWf^+z>j(~G%vx*kfeH2n!}%(R^By*{HY}vrOCKbl*IxQVxElAYy)=Nz zT1+hlZ-q6}rt)suW8Ar{;-M+{Qyhqn4h}7U;9%>ib2^eLDIWcpGq&An?IMfz*A8<% z*@&2MR7z6vZoL7qJD$yHcR`M9r~4G}wIG0%oV-5~fK6)pjXbbyvY$-GQ%!1A0C_`w znCXF6c;|)2dba6znkMBn-HP?>wcKi_s*Myfp|UE#Idb_^O%>jYT!E~eLee9 zJ}UWyt0SsxZU-`l2&l#4C?RItmK}a$6Go4lCe=G2Pi6zt zL%PVnWfYwp<@tx%La_-~`#Y33Ge#c73nf5F6rCTLZo13a8(_&cHe}(d65Snh&e@Ik zN_8@w{-MWZyCmo#fpujG*O!YuE6ls{E}*P1ojI|6 z$r_8W{31z;${LGGv&N#*tg#3*-4@0gi#WKJkE9JS6U!c}K293iX?>kvxDfPLnG2{! z=pm#c1lgIxSu^50Xtcd*2!CraW*}bSo*$XEJLzWAcHjKV!EHBlGGOwT)GQNZAjC+( ztBeQCW+25_;ooF!aP3KKM9pe^`s*|@o(nzM_F7~biwOu?Xmbq+On_;r4EG;W8&aj! z@yxW_xl-}Jml$o3X{Jmx^}Hka28bCyw(E>SZxIP)L z{Oe9n%KsBHJd~jGUsK%;Jkj)~S5S_NGfQA}-}sR|?RbG}<4k0#z%0@9F3?=f0!=!^ zNRsuLUBSVCp$*%l?`}E@`qj&w!;7=5oQjWH3oE%j8CY3oo6g6Xfhxz?s-2I9Kz{1> z2GA_Y(d~WVth}GH;Ud4UukKwBjt0j2pbHkWuMUi-=V{n#zZ$k@8bD#?r+5QsM#*#yt8M~dadw)I`ZuRyM>)AYIL^ViX_(PV2{r@b**A$I{0vRLwtZnkz&D;}p zWLw3jvk~Nf!x%u~;vX9%SlCy>`$X~6BhI2 zB&%SxU>to!zcFXZS`#FXtb5gCy4yL2$_jsbccB&(QY#LT;n)A*ryO4UbSN&ny=6L( zz!ql?h*x_z*gYXQyek8-cj*#(DV+!&#}Fqz*KBX%d|D%U;`=e3D1T2k968=q3d!DZ zbQi6&+B<7sb@My<&9|v1%mpy+9^}tuwCVfx%ilsRa#`u@PU6K8ebTQjR(4LHzcQUDIU&O4WW@!ivEql}E z34Rh48LUq76Hvsxr4rr*E5v+Fb6<i{;p zR}TNDh;_AhOSi>8&w+^wrpaLN;mLAqu0}x0F*t|7ij!9;u5AYF5ib zQM!_btBu?3W5^@w&5GkEX_s*!wSS1S>`($3X>U0k0cE-4uv@Y5D$SS9*%@X@1uYv%fJ zLf2%ykZ{|h!97`?({oqU{V=v{?)mcFoNS}>j(fkzR};Qsgnk!|L{&b|e;JKs9uA*T zqBjJ%rpuaV(Y?IRYIDYREj$iA++h{~&b9WK;^WzXN1tp~5%+_!_5)hLW}!YKqTi{d zAeYHU(`Yjtyh5ubwQW?K&4Vsa)*A8{`*gnyih~R`!@+C@!mE|J+Wn~DzY8gy-wt)S zZ}HMagjs_yAn~e*~Fb()K3fRtzW{|bd=ttAXx-NoxS32~enZ7a-QO}xX z4_oT%kUt5UcDZJW+9{%5(9br8(BD)HqoxZmCWjB<{{hkjJTI=-$Mt%~B>hfJ=y#SZ&{tp?uGuQ12_aWh3UG6JYD~fjz6tlR zQ7}Dqrj=FTW<3@h*-cNa*9w&2-%`>=bZWw57JLkQ9&=_DUrKVqnK_3qDB$G@r?dy2 z*2#B%(FKcneUHSoZ}2s1zTOPce>adY+pLg<&kHMtx-B|S%TZ?W=m}-a(5;3=j_}Wh zD_CnKHO$j%KiA79IQLPp$^CVG?_@u~Ho$70Vxj6K6H#==MZ&Vplo{+(7wD}+K&k;u zkCY1{`8@**Z0$v&y5>#(cLV*WMwpUm(}28meMYWh)euLS@uz>%y;@~|ak97i25I5u z{Ris5JaI5H z<#cKHoRS*;S5<^_XIFe~M?809j5TaC9SQnVIduJ18^dSQ>H0$w?3e!U?pQJNmNu~S zlI_=-w{+W(Y`@O@N9AGOqA|mOd5b^w9y9zo^3mbuMuZcd;#sEEi(_kf<5~Py`>eQ| zCqvdOYj7J)F4da<))gD}>@@7@2-wrho3O;osY9A-wm37fb6L}kQ-d|QuEUwh6q40B z8m4Bn=d^vm5?J3o3=Hf0HrY6jBqC?P_AIlfE-x6oXtlN`#2Gy}EwfpSiaK|8#;?t+ zru*}M!p>?+aOCT31;pNY!XBQsY`^49W!qt&70>bLRY4@g4c5&bbLfuPLdk(#LYjr$1f1``G1&|*?DopRM8+cL z6JREDd;9 zD!%Cx-J;v@mUrc~d?`M?RN=!31v0%t>NKlx+xnu&2#S}Of^NO7dDym$G@M3fzX?9JO{z5<%}A$jp*b4QzE9hyUoRe{>byp zp|!vYovK(tB%26(?Fpwi>qeej<$hKz=fJ5GeoD0S$m8aa@*9nx9#em3^2Pews^`8G z&+XCX{Fd2T>8QlcjSqkq{7ycdbtinARF#dNf8R-7Lm7BGran=be5ZaYuNC!CE`j?B z5Ns&?`YJZnjESH*4A7AR8X+^X0G%Xz0CPC`{DiWve^ww)%khJ?lJQp#ysCPRgf)1d z=uE(ZRNf(lW|#j6#F}!?)Gq%5#=jXIwPT-ue84EjS(mqpWJxUY-(x;D>0BpyDo@r? zeonAGHJ!IA*;ap;vu=>lZ5_Fj&TV*C2^jTo6>Mkd5Z(F8UCMB6%yAI!Xx|iDcMFdM zh4I(y6%OMSH)Rc9$?PZ2s~E&Lsn|2wx|0Bo)cB`y!ft!Q%e&zU*?2>haj$^$f0H&! zJfJ5-eDpvUOHv#rDSVKxc*&(>V0MJ}fwDxY~V5 zS53C>50!U0tdT+2wl#Q6-<9YOCZ}2$^&Y6|CnlCt1vstX?6y>>Vz8%hE^v;ANef8CE|`^|Uc} z(lHIYVyPdo8TGRR^*^Rh!0`l-AmO5-7hV= zu@>Eb@-;2@HUB7Kyd1zjd$)u#xrI!aP{>~wi+IY>G_U7@jL%(xk-!qT(R((_xmLA}1fQi%WSN{G=#4an>epi<}MavCNz zypkQ5gZ;=kfgUQPjT3qW$#Q|>n&};Jn!}MV@{0kl%m48()yMjI)CZnKs&S5AovzAP z(}N;rQJr z1N%6zIQ!E!QU8isLuCEQQEyt9ob%nyI=4Yo)SZT_?ZVR`l6%y{{>Gs|ax1XNiMxX{ z!{L=tA(y*^DcH$h=V~DIXEy)a4uR0Q%KUVqV_x3#Kavaq{#^_HDgc02 zTJR+TA20Buh%S34bC@co;?GlcUtH!lwElkkrOkP!2S-4bP6_1rH?t2I!mkklE}lE` zenK*T2;_6pKu1Ofr}OFv5^(hXuc-8K#;~Rfs`R*P$RB3;mea5)o{~Fj8%I$3<^8Et7 z$`^$fan|vSeE*BH6~~#^_xwG)Cd%KeAHw?Ph@M+$G+V2n`z1l7^V)gWUpnv6;LWhn zT#6$H=e_6O4jLbD3=G@)lXx|mCT}LUfWn*52nx)PR}X<jA*|^;8zJ019JD3F9UX!uz9 z34bGnvrKcu=89W{XJHp2us_eVljBveRN-$qY?W}&kCaT~$Yf{|2M%sG{^2hpEx-?0 z;4jRh@M3_0>!ZS?l-e)#H=RUVJIl(4?h_&LA4uiPQ!>OlziD&UwLxns_g9$qmT=bt z(PsVcN?nVO-U`KhmHfxV!~0TO`%B-P8v!wb!oVC0n2ASZ)cQ z8u#0)1>TK%tV#e|b^YqWWskUu9nW z9@{MX=#~6E5GMow9wMZEWANuWqtWP*ia#^*gS+%p@eC6qz=!mjy=~y_R&rDAv z4euJk<@ngghKv36hj($Q7ahl$rRme$E%L@X-J3DSyKp=^UyR>fV?Xq2OQP<3QTN?x z?#5}UHIbYW)0IR=Js%y_Ic?ONlT#rlnwm7K+TB#`Za#W9^Us3j7$2z+4iIHa51)b` zKKuZf-9k0mmNqC@T}hO`(C`XIpu>)4;UHXaHT)8MWnDGg4d5l5Iq^JGNu26>6=Q47 ziX(HnzmS#BOs9BWm4stQe;lRv#t0jVokUr*3I`4u@_B|`O~z!01YeNMY)#d75LfFq z8knMjhnyC<)QIIi;a)g?fQFKPtERV&L~yKkx-)8tmV`&eaCxf(y+XjDB7AWr+)nS5 ziKaLUw1a?r%x91I8?A#rB1NK>b}&HI!fXBMBe6S{fzk2ihssoSjXZN*Tl6OGcFtb$P}qwOZoG>Rr$D1vLGMFOR&eZUloQ{h_J zF5lmfa?gwyM;N^%*KtKj*c7SbvbKsMTzDy4Ly?EO3CeX zvwf_+k@Rn^-7|{}pJUN+8@!aSmLcqse;e=qE^&j5Phuo<6_wdH*cSeUC z`|2mtQ~i(Qof|kKT{(a)z?i z_;h;Q`>~PBYK3ic{iy3pB6cGT+MSU%fpC8uoK2)on}heR4gnyb!r_k~Jhu~%>K_nF zv)1N=aOmMUF0a{IlFPO4hlc$6`1^lH@PGM9IN8X6TqPk4`m8`8iAE0 zE@+CoalR*)G~56Il{n?JBveAe910nbU|zker}u^EwSIWnHuPmWq|RRrI=B3}MeoCq z!m@o*L9?G^Z7A;q-h=(zJNN0#r?$ohTf}X@5Yj*!nL2pb8OxKV)5x^bT|KyqJO;uj zl8EJEm7NQP8}0;p!k=;H0%(2T8ooxjZu4S@HmyV2#t!vpIScwm*VbPY?8y9-+6=}| zlKM1r&kcL2wN&v5AZP0TCSOsP($4P8ZXkgE690?i(LRTfnr45k(NAXnJYanF<0?=b zJia=Mz<)Zv8ZdrodixfND}Mx%5N(~5@?+qiG)L0S44~46tTyMt2w7u%7w~ek-2kF3 zn2i=@t#MwU^B0ff9e|p`oUtN;bqy=-BSU3-s>R93O{(Cscf4pk;Z;{AxZ=dSdlfJ- zM$w6wYd7L2yz8$84CotqxE&0^2A@dchg-w z)L$@AMTjPJeIzc~^PFDw9HldWq}ycE-EY&i@eumLCrJ_W?v)~8bEO!hL=qfjwwouJ zDJ_|8GO=}$8bxghFyyTQ12A2N=$pi9Vc2d{-lb5WZ?qV;2eB$OX}W{h4{faEECGM! z5Y-k$seoi14-$%eVy6eOZ`jzHAmMbP=9sASnb~#$8 zJjjST68(*QDkD>6H%Hd$li)UwL_D$q+Xv|@NWMwRgW@wz9aGC{;RU5ip0PyKRqBK3#S`D(tk?eX@%qoLji#dBY+ z&V7lFL|dqI>bz+3INt0r=ItUv5k=o0kJ{D@dUo1hPj^l}oWvtD1|^I-89>hj$7Y>K zWFH+^POC8sw3_JFSe+7~YmIOspg>IXvQH>;cVlpvsH>ZybesC)7h|JXB(w5)bO*8+ zJ6ebQ!o#o8Z^1GKl*;z#-He#4bhaDzNnAg!N4?OI*R7ZJp|+h{rYU;dluibpCU^Jo z&62}otaEJ&Fn0+**EbTz^J+8bqo9#yK|W(4ZR@a750Ix?6*op2APFVtHt`V2!tRtB z_XfjF{7W|8N=U1pw>@Ks44IPel){C`t-WDozge;Mo}Wo z#0?~@u19b$2LK}l(4Q#M@8W+uoFV-fMfcLgDO(#HGDOu!-9546uis5Y!Ns|YkJkRc zqDX{~@9P8}r{mRCoN3-?M)G-|Y~C3=CA^#M;b@M$j%;G0CAM-#C&y$^`?QkJY{?OO zM;QF!<{Rzvrm)(D0Sn`ZKoBLw1R)6@)#DGF-rMjjB?d@aE|ua~w>c;}ma{corV-8)V()P~_o^M`zqOnOBX zCar<+v60fAe!p5P#bizss=a=n!CAw5xS3$$3^%Va z&~-W)aW$q;QtEtt*kgrTSZpr6G%Yt+>LT;OBE1DPf)Z|?XtC&Ap2ze<;W}$=u~0K( zl2~8fK?F=9&~1dWy0;DU>o%~P@O4r8F3H~JrD%*Hc?F1$iA5Il@x~TEeA^^tA+*gj z#08*!Q^|D#y6z2&Q)mpUgc#`+3szZt^y}Bv7ws`>dD|` zv7TL>buWP*#icW$W^3sS!avf`yIS~@MhRr&Gl`yop*Mo8S3Jn_w(;Zwl=N5a%cR^Qgf-9b zpB>1v+7wLH)Tsj44T}_S;m2&3G&F1ka069(Q>npI%U;={R<=dgE+Ms7DrItm(g~A)jdS^X3~7 z4L2`0&)P!>yE>_NN>*TML<2t(cAEs+1unl4MFPwwno3bjpkDeyDUS_R!Fpk}Iavs% z7Ermh*H;GlH`?cI7wO5CV0nJ<7U%=UvH`WWd5Qg~S&s>l^vyN})kE(RX|@#^5V?iA zu`+;tg$iOXxL9d;CI%e68!M1P3X<`YZa0Tk-Fr1C(;kURr{!!`9=)|@_=PVbGo)jW zF^B%7A~3H<-48H{bE%hBCc>+)SGJt_zXAQAfECw|0GHGH6u~%1J1ybvC~IqeZ7^Gt zym)H4dUMS+M0g0^7#p_^lm~~&6Synf?u;#*4mxMq4It^8e`=3%V12JP`)7Z_WKoAE z!%!x7c}Dx{(4_PrI>DZN`~d-a zDSRh*IlUJTJ00>qo=B*{swQwMv)w zV?FStm?OJDe-OjyP30!zBqT$B;UaswnVfnwe0{Bkt}gdnf9g zlkR6#G(C$(-mSqfCS34MLqNZbcc8jW&o@@Z*d?0)ta&-hb?L^s$aH?qfFdhjfIJ~q z3z5OdH9?RRR9_1?EuyiX&EtIfK6P@;ARf9_Fw4HduMkT8F?usvUNM$IMCii`)aPMN zM57a`wA=1Xf}?ay7YP=2Kk|1YLHBi|(=@#_?W%?r~~u_Q*)oId+#qFlX9sHuSgc>RCNl_*Nm&g*#j|8+2f z{9&_>IGaN=Nc?QBap`S?C4aX}h7;(BpuT2nrK8P{>^BRdh3CH|4s~qGvj>lkoXIzG z@66oloVDILyCc(pbwusrj2hKGS%haHw&C+6w&9=E>GwP}95j;on1y8Hc}?=bJO*i~ zleU4x$NEddX17)2gFqSw$$t|0+#sEm8v+QCNvXW^WkQD&& z;3M)xiNeMh6E%`wlNGP+eAO0zl})e8lR;TgtA;lAP#J>?VwrsD2vwaS$c}-+d55b2 zQY0Wdqf);=i;>A0aefvh^nJl}{Z5^U?9x-e=v;Xl#KF`ztDMsJ5uaC;;hVf~fFtQU%bsX;8Qz!@(*?(N3o-d^X*%Sovd zog>+yYbKVPrle6<@eiosr0k;t@GlTdvAz^n-yUzg6q%%_ZA zRJ;b}wJ-RkN1ODj2S&{hun7V^8-lI?XT(0h(tiz_W*0z{}>p zBglX2!8xug$;rvQ$tuLE#)?r9vA*TY4EanCPmiDG9xAFj@4lT@aw_M?-KgnX+WcRj z_7S9m`uiWTgF_NB$9Qa2zmIgBuj0`msQG2pFm;f(1hi^=4@j$dXU7e9&LA-6O-V%m zrchS7sy4Zs+|v^zXt#F(3tMOP$Fc-q)14C6vkmN1re|*WIJ=%BTxSgTH;PK)+l?!g z*?HwE30Y4t&%hNzxbTD56nx$$&fC7W=whY4B0sYOPV}xHNw#*vZCbAFH?{;i;>?}@ zOqoFs%52t0R+(J`dKhBH>m6Nr>Jw+a;GEU&oV`BtEw;HLMz8g-gwQRa*_7Ez#_HoI z@}1ekZbS-~h*bKee8W#(Nw7OJpVe)DIAMHk%Dl*zOg9$v^H;N=nLEh9ShEa{H~J#p zB_aTSvNseOGn0t$A0kM2k3%}7&j+60*BC(dRXpfiGW@}G>^6qX_YHLnNxN9Sg z0AaOM)?!$d``qzO&nWEpySJNfVUnqkG`B0Lbt~Hr4GSj=YM-7)+&x4opcwsPG51!}Q-QbvU&@SPUgqxv$2KSrQo|im)Uc z4GU|HJ+)SBo?%{R41j7rZ4;PrQO}$|WcYGv40mq4hp+^$lqzEDyJASS88D(p-l9V-} zhg8~$FrgcoewU+6oEqN4P1iyOO488alzwPX-3J;|GuB>u-97^&dufp&P+3ST2&pte zlQp7-uQEnfw7^y4Y~dtIF?CNL^x{=o=?0~pPT2%fLuQ+VXN}3om{+grXI^y!^Qy(K z!iqv+k^&K?IRU0RF!{nX(PCm|TI+sh$>+VuVwwss@1w8FNIdFH_X%s>l_Y3@2))?i zv8@_m338H3Qcm-A+&){x05p8}q`vYl*kjNOwQQ|se8d81-J2HuM@q93^sftjBwLUh z1N2!-tKnb(8osr%4}HB1Lw#Au+PXt<>`1D6$!1}!x$H)&c|lo>%w{2-2(Sua)){-V z(8i_T$=n*t-5pqD6P{Iyj0(a9txW9H_Q^^EtlHPe>S>mIjN$bag|Nz1C+lfHyQ@4t z77cHufiVKAl$e^4wA!ua zH%m)3Dv=c1OQ15Dk|X1?+GmdLI%Z}h7As$4x@N@{EMsH2WEQUo%o$hlvVriLuj*%p z40Sct`TC_51FqmA6I^71i=qY2vP*O}WU%e-W3K7RW7rNCLlZr;CbRVP3Gs{&_^60z z^DZ{LcI5Wi_e_Jn9xL0K+jDakPQhokG?B>bX$u1@Fk{z^QA`FY#rVV1`0P|n( zc+l)`zHty+HntthaGr5$Qd26H_P^JyjfJJ)=0HSciJrm!M7!yy<0ZvUwBh6Q2=@LA z#d#7bDs9a8AVzx?ui*S=x-xDfrrXC%`>3&x#d?5eM7lBo&Fr;FSI#kE>B{+frYjfN zN42+-*-cj_8FL*&E!EZdBK=zo@y-IK6aY7R(HX6cbN3P0t1{mDuPnz4Y4b zn;Ew$48XgBKsK_3(@Xs<$kKhiZ|Xw~Fhz@EHECE;wrv$f?zX`yecwbY*nQs3J!A?@ zH^#H6(~Z-E*L0(1{rXEc&hLHGtloxc=5F6KWw&oK+S@mYjeT3*`&JXY!NEDbfig^3 zz{S098Yk;7?ykC)*SHRMm_71#|6ob#l3e#G_XFq7t!9!HpUW=(j!J*ZF-B%}e(v%HB`^t93OmW`A17mjNy1g#oMn~bS|IT*ep8#d`+^vb+o&L_F zb8~wBkX;YxU!DtXdD5mlnFGbEP8kddVeirc@67yBo#kId-L54kJ9l4n&*K;WJk9zZPRwaGgr1UC5@CV9U5e$?F;9R=lIcJ5>jd}mvH z?qiAE*ObE;QN3oB*>4zkH?gxj|3KJnKTy0UIyh%lpT4&8R>@kz10#$)KJPz3!$vVm z$jamHxVXDmJI5lE${tH&{E&!olcZ*AI;gY;Q|W^_IbqK4T?S^8ZgQA)2O|QN+RKS- zaVhkrVC~76{pRByBoW&s9|zwU;e)#Hf#N1gFCPWCQ#*~%p9`IN3+s(TIpaW~J`nzl z<0zo{lRTSkj3s7MH#1kdWqvt;!7mOE$i|C?PUvFVS~2b|Tv;EIj)r2)cA8Jhb6P(q zcP$?j7HrGSNe{+=Yd-Vx_*8gtQZK~Ecxrz(?-h$p*yuAu*c95a4`KkH-Qj<02Wc@A z{m{e~O%4;w9=N(qT4v}lVD$ByK46zh{s+$J(?XypOhO&-OXE1)l{)MQ4r>z7hsNc|F8nJnNJZ znE*E0z`h0FXF;ry!sd8i#$NPs7d4)B5@y)ZKq|fD)dw%dm+FO_j^LTmc^|vpWuTuT zy@7r*cqx8DFF@;=*<`lUC6%24D||Ey|40`8ZvniXnQIS*zcUMeM;87s0lc0A?!Ptk z+>nL;Z5IAN1NaKTPwa=kyr{mwEz0~=Rv78KJv!~!Z@;XUYXW-r&z8>!)gS842xXd0 zihqQUh6bFMob}*1N{#ND$StM04VAj9wBb~KLk(vSxTCaw*ua}chYq-ibTF5cY7tYI z$~&VIbME=3Fx9W?gW5GnSnK~h;Cj)X>rHX`+B?lzj!yi5;W3a;@TG=ObfH4F3kxz> zds!txKj6m*{){-`7nkz2f#BNdlIu+dO^uSXJ-tSYNf*zN?1xRP5qPqzL4e0cNL5|K z$K$+2=kU@&BQUmkgx?zHouXk#`6-&iRx^6mSFO3U=oD59ITP1^GdAx*e``+Ta1Qsc z6;d^i_YBMG`vcG8EN`&ZR6h#T@<4egYg;A>>6H)ZT9;d?I#B01-v!x$?g8=?^ryP| zX|w50UsR4QM%xzRrBe61w)!?{-{NP$ z&<{D7Iq1N%_iHFb5ZDRb!J>PP;^Emxm)7zDN$zVF)JlESBLNDDy3Ot-vYI9)8gE_?c-+Ua``qK|I z?bp?Ki|9^m8Vh!B*}7+HqS{i(-AbMapc>4nem zmF@Zc;p)MWrqZ6a0r&%Xm|wQH3^$YR6VC5B9T1C*V>9e{m4m`hx*vKQo!?jJamkl@ zW7FCA=86f>!1dP6(BE``<&DOLUyYhnF}IC`1UE)`TlNSjbZIQd-F}ZWomsZGx#E)u zY3bCy1-UqoIEKf<dgyA%9jaHe^~d?SrUuqg#} zH|-?5LA~@+n);Q^6|VAgT18azo9rDayl1mP{veO$&*e}5M&7=}fQ$E_Tl)_()`esRFS=mnTcxEX_65~YOG%F^or&B1_auGr5MK{QSW zW+pH-z|?UA1~3}MP3QDQWE^#SiKTL*c@)O}IsOh4*?YnEW~7vdWfRq9L+5Ojsxs2Q|kivs87ye~fv_2FuTXUwT7*b=W_dP;YX` z=6GhPVJ}&Ve>mF6@(;}T=Mm;F0Sv#Qc9NOpnc7{eI@#GXN1$yh~B_i**BkL z@~HWwulqZhdiiG#mu$QrPb1@+%i5ZlY-&RF#r@NjfJV>ioq?6ImnojQ5Jc=zU#}iD zXLV0gd4@kmcWwmh*^9RCiRFF&1Skx`qX99(MObyO_3YwJE{o{70# zI4BIAa?<#sMbAac+ue>|e&b(5m5(pF7v6H5T>!jeb8+s0cCJCFGX4z8 zVmmo0qG(-|u5lFwt3PjQDnbU`mtQWh(SY5bcO&h=a4CSymbZHD6IG-9YIh5Al&eXt zcHal*gicKjFQHTM7kpWhV0jQZBy$Noez1}nh(4?)0sH(NU!rEn_SbRukeGWxfj~3g z1+IGTGcx7%yl_zeQi59vce7eZ;ZMIxcNB+0cgKO^1>=KWyPtez$3ssu13geY1qg1r zc873beX4LAiFKm0!ynR*6$9I2uQZg<9wk%m^OCA(Y24mV@>||0v(69{EK<09%n|# zA`t^bV!~@93It>`X?N-tr=_hR;#N;*=`VRn$C8x{UrtV4a-jJOe35+&bhc8oC{_5| z^_;ge1M;%A>eS-UwA7q@HUPEve4T52E*W!5I=03jsA5tDP4dGLE9X+1J509W&>=Ce zE>!P~-Eiqs6d0(5QI%?V$Qk?0!V__e9dlXd(dNhSlG`hJW3g@aF6=gh)IH0S@4EMx zNop&$?y;PCdnGq2E&R2xj8T;=T*fL=z|@Ue1X;31c%BVN(Y`3qP&swlF9%xCz^<8V zDxGELpi8sz1O>^pH$t`-Te|>)ou!<6B7;rNQa0-La>{E`yC`GE@|2b^mN5vk;{)$b zTSYTsqL9l{<$I7E*BiG1=}`IIN=OMpw=H_wUb8v&t%cuKw&r9HSuPyKE-i-F(8{hd zU3kWxE(G$c9kL|pv=`f~pq)x{#=alJ{f*Q5rifJW!o_>r1;+X}On5kXBN2RoBz#e_ z(iUIm&UI&KxVY26*1=V?hg>_{z?%8c*j5@zO3B+7p3=N)5YVev-)I6hFD!FPF`I%6 zc?w^&T4?tR-J)J}v!4PbvE~3uVl{*!=Jtxanh7%vSU6$m=_c`RCH@YfX1|TrX=lGh z@P>daie<>sNq?1UwJDV|cC*uZDwLA=gj|EN=3UE!B?hwy+$GH2ZH93wH6=79MF;$E>i?+b{%B9M}Hya6J zPn5Ilx70S(DGjxG;bqWF=XbzuzZ7D^t4&*V+k0NCVu^0A(UjR{$DWIxFJo__*HBJY zCDQN%^(lu9MnjH^x}h?F|1))#8Tfo05MMUrO;C4KCN<4b;;|b$iR-`%bO!=#$+_B>(!4aHUsDOgPRDP z)7lOgt4`%zm%LbIm~w0Z;XQ*v-iLXLx8l02j%2Q?Wh!;X(Q-E7B$6sFLRFMZiZPdL z%sdCZaN-m%X5v)qdG}z80`3DGbc!V(4q(N4(pgrl1zDCAj$wtzt~Id1H+IUF`1d>@ zP;QGY$-G1a48W~Cl=l?HNuS#D&&M3weNIc!Y(mXUN5;S7k7$D@J%XPe%>mhuibKjB4V zaZD@Sgja-$iA>^JlG@SUkBT8C;O7cxo=Jetz6g>z_*WiQkI0U#^itLAi_T+@rkAQC z{PnOQyiMm#f9a(&ZP>}_r8O3gw>tAyU721g<*7x2v~goWM!c00roZ&kF}#s2Z{v7V zaC)hhS2dTh>!V7mgVEhQn-}Nfx5XnqOJ{E9s9~Sgv{2scq(Lko5gT-H@@0^2brq)M!-!fKRn@RK5*b= z`=1B3pu>Wd|MUmK5aU@HWC6MNYw5{tC5B5%AYD82V3w{;j;=H?}8fE@yF)qhNByU?U1I zgVo&L(r{dsNog~bA)G~DahZR-iC3z*RRi|gGg6ZPW~X1#*&HMip^XjOvsH#@J@G)V zXbB-BGb&pM|L?@(|5hwBa^KpIjCljefK34z_HCe)no=7nwd5-EHy-~=n{5*>I@Lj& z;0^g#n;^C_6IGU}1qXVHvh|rLe@iBVcXORb4vU%^Wlmmk1hjNc$<29ys-arn+Ve*z z`H>oAs$wuvggkI4F$#Xg27gR9reGydaD*42Unlqh*#H707^4-u{UGQQA&}q=f-dZX zKFS6^co6hC5}{PZ9|b+E4|=i`b`bQJZ19hSyC2=3TDs3U z2zs9lo+9Xel)Pqx%MXHXv%$v(!C6XfB^VRgASM-92jHltnKb1ZY+oT@Q5wpC3H25C ziOJ{FIh>V2k^dFIMGQzOnY+A>|! z=r(D%=`?0~GzLWSEK?Nvj??lDQvmc&j5E69rOhh+@gS*cdBa)xeIm_9B-;tZy}C%e zDs^TqjufQ}tIFA1@XFXM%pVAE#J`a zdR6)Q`q9kf1rhxW)6F0z z`Fs#o{*05nlRmKLwX(gL>*@2TjW-y{P#gEJGqv$PUtGH7KZesVa~q6T{N2N3dv}sY zkP!F_3}Eqc3*Qbrs=GvKexo!W(Gi=4tISE@@23i?l@FkFb^|q%D(=72Vf876Lm&AF zRUpp(pF2w6PR@K?Hpjj`ch%YfWLR}5#n?xN4I4w4{%pS~iM0Kuf^ENPd(cS)^pSRA z>bSP7zEW?lKHL&1eWgF!hZBYlvwiquyv-q&w3V4l*{|P^+_Hh>S~5hgMI{BQkAnvg z3?)v^l!B`4Kqe3U_=rlExfL;eM6_mZ(3|@G%y0Cjl4Lx+sqC31-g=EAyd1P&{}ysY zVmcvBBlG1XVf3?`P<$z;Z2)08{u{SyJdp4zysr}(d~wc$VY!f7RKiQS7Hh8f{V=U?EK^H>9gFT&6Xrr!Ap9`PcV=9*-bu=Ip@>GFcua}j zulhF2gV=M4YTlRcB*%ip%bNj473K)3b+)%`{am3Z+0dkxqO>5W98d*SR&^{gkHS~) zVFTk;ucHIBauRUA(A^G)1Nx7JiGwoR4U)X;0Eg)B*u=kA;+abP0MXe}#5^lktU9~< z$?%6j35Q*H^pluU+z&>*z${>DNA7yFPQ%)xVNqF|ameQ7T`|;@D7lno(2w?MHv5Ov zzF3e`_Rr!@F!TL^V2%Y_ZNb6%`2i)T$R(`u_lWynoSY%NriZ`deJmyXKSw6!czHn!|x4x8NzZx#Q{ng#3 zKGqu{D*O^(Rc=PA-T&Kbc!#grH?Mi$;zh$M_ij9dP6PpndB+|DE;_*a6G^|!rf;_C zx823oC6-tvX*^3CmB6|03EoQ-=FbPIvkuCd{k%!PSah+>Mmzi;ehPo&j(a)P&|J}R z2;5`!{L^>j({#dz<}qcQ)A|Qcc>nf*E2vFc4^E319lR8&m#k z+bF@gkq;|4LpLHeSJ^nk1~Ew5kEpvLO0tD~^_PkHNWr3<`r?>(!uQEaU&sUpj4!5w zqNyqSCQ;qdy&I_RUC6R`!UUice8}M;dyS@X?@5v>rR;Ug%(j+py*EtOaL@;_%X8A6)4|1_U5@`yY4o&5zl%Kvm_Y-roO z@~(OAkVRD0k$2H?1L*7>I_4}IP3Xxx>1St~bkxP4%-^kPI7ckKxJ zRpMK!_+?W&g=79=Td7#BRtiVVXfEo0BI^D1FH;r0MQEu2O*D1+0r!hUDsm!pF3?yx zF&Ixl5Q|%2LZZ%np$L0^%4c#seA)8|4ijbd#Ac%WK4T7N9Z{n?oOQ4hx|fH(Wyp4x zuOzZ}?WBxR5EcW!YcGMk&G9?+Mx8zqgiQC>@|Iao)q4}JBM0=Eiuhv+MG^O#k``9q zPJ{gPB{aazz4kPKjAbT_Ty~)8EygY2Y3J8S*1UA^ zR^zNwJuI;2TGrv4q9BL!s!#g&d?X&c&jiQ+lU{8G)18)2K0cxeD$bZt z-CAUBXV$lFc+R}&;Nj7EQFmr^5Z^O%XjN^wxd@Tm^uC;VUfN^AwYd@ir=^48IiGLrE&V57F zGBYl^{a=c)HVXv0Xe{}v4xRg+r3z1^3OD=j?dh$;H}u+Dg&O|RKR?BQp03$Renuvc zbG;?{cuUUDZ-wYFBKl>~VE4Z@=LnEfx2 zK9f(hVaXkm45)YRdk6LG-1%(4jZ@0@GP?g(uRc&-HKtk&SElg_SH5An5*^xE{_eb( zJAT$B&qs6Lj!Bze@(3cjKrJmF(gyIPR>%$&vVJ`Aia%kTZPYfqS)R5W`46g+q311s z>gC8(3Un|>Dz^t5`I8Vo_<hJVJ{TtMtTN-oc z7}WCv)HOXfiNLQ~0+TuMv>!>0sevU2poqwdle(*dM_9deG2BJe? z2vAiP$^|MK3`EBRYzHRJvY&D~KQo&j@D|tw!u zQiMWV0yE!|i2&m3D5b_rlI!<-iaT)feak5HRvTvkjz1c5g zDCmFSfi)zyKtW33BuGiPPa3ZU9K!8*E*CQ8wE#B;XF*d(SFUsR9=rvx)EPK4D18!t z22d-%D1PD=@pRpcAtv3k9TM0K4)yjE4(c#aK=t}Rzb7c7XFy{uQ;VTYB|_k z2vLVSksZ#Je?r8a7BwAWW{1pO&f&S*aqzY?HuH-M3B6P{wg2Ep3!=67v@@RnAf#ra zzxR(yI6H5pr6TW2^E?kDVYqO%vW6ce=70p?Z838wVvlpKN+2$o%V3gfW;qSNF}VQ3 z(yQ{sZ6CZJ+y3*`h9uxUw-7ACpwa?}sLVVh(yX^0WRJNPlmphI*tP_Nsm#kLNloFK zi?8%DEg zkGYxP^|6@yiG4NF!*N=91Q<>5jv$zWur`Q1p0w{A*=N6lhx+`Lsrys`_ADsq3aiNr3vjk=A9mLmQ6#R7_HZT zJ=&aMwzB=y)Xc~8HDqH1Sjq58eRW%YoFlQj{>zmqBd_A*e6j#3)Vx~HV&eJS_pbTW z=_OU}F1M3iVH|RMpZ{C={|Wzh@c%VNFu3Qrb1VPfpPZUB4iU-S?L0c^GUw4y6xOB* z9HejFpW^)x`#ymE3LhMVXPKg~P!JZ>13t;vJ`$ofMyF3nEy>HtqCKTIi-BnS@mSI` z08LEx_BM>~?ang!?aDmENThFn?LqBVRjplTvRldj$&EZY1!Eml^0Fe*W9yu$bR0Je*OChw=k;cvMj$6)a+Wu{unlO_ z_>Q%in@mKL2{@hUp7vUL1DVhJJ-`zZ_qbe23oyzS= zYM*MGF}l;r*eHKWYP@NL377UbW|*NX=I-=Ar^D2tJd=yd05lP)N8~2Fe<@1Yss#L@ zs1rs7j0{ap4KEnQy*2^zQJZ49J1JG2zP-Wn5ItRP#N)=7S~M3GQk!=NsCXugb4OZM zr$6Fm+b5k*jHc}D=1DuHf0tHbiHPJ*>(fjGU~#v1xHm*Q##Tq9{_*5QHKZAhqJ+&B zA?0YZVUaK94c0B~bifG%}zT2>CHxt1O8<;cyMa(9_~&F!7@sPIN?>+dJyPO4Pfpe;zs}@kEAs2 z{uI-n9=rZxbJNj9?$i)l%AMBrv;o*Q`en(8Jh{~#+XVZpYy>Ed23}CuX5lT>;>d3DR3XR|d%K z=#N2K23zoBQ}?tcSlLMU3II^=+o~S@F#-HnwR52c5$u5CgBP*&G)S*|f@Q>fK8gZf zS9A8NJwM*`g_MNTqWgx4WhlugVv_vf(JC&|&Qqh;aFK8$aEN|Zui+x0&4y(4T4`3V zl?HmPX@hj*0L!WNlR@J}>efm)0N=p#P9lx6}e zNNuJIpQDIrWxHIxyFp{$D2pt&DU9L zH3LZhjLq1pxS%p`2*xvydr#Qqe#A-nT)n+6yMA1rU;k%rm>fq`!ybS38>m0tu4($k zM4cgK_lI{Fo5NZbL2OSG`{jcD?B0?0K8LVl>p3~@T{_OFOn1T!g!w;yT{3^#2>%E6 zrNpnXFQxt&dePbHJ$_8DEql3<+3f1?J&(az<^e|-&y)fjSJsxhE$VJNH8t`o>`QDa zf`xWJ4q_E9Xwn9?*j1_pMoD2w72`6-EZW7X;P7cko4Jxo0*=ITMwygF1&y-*M9bGN zy05zZ^+EVu2^W0zUn2`At{R93KP?3#zQ3OJ`W_uIjLGVPGq}Cy)r>XdKPir`k8Oj}!bg5OsGmRKD);fK-1aHXBO|{C!J`>d$ejvq zGcDmAi(c77_9O*S{W+YUFz_lu=zkA@duxw5pCYh|-n>pHuWSyFjy&gI=Ag9daFBQ| zaqK@|JZSuZ(HYlYjr^KhQ=j#&TElylw{nFdj4LWPXSt zo8~es(V~9!#>RM?li3l0yMP#X(0{1Cc8b+qTE!*jaws7YS@Qpp_AY=?7T4c@mSiCU z@d-*4Td1iGHBqTVrIJc&RyMfN1f!tF7F(*8QtQv6ZUFDVZh*(fRaC@FZ?s-od()~_ zK&uG>0(j$6m53L>OP?ib5tUojeLvrsXEzDzukZi;)0&-UE@#f1IdkUBnVB<^=-05s zZzLhl8$2gE|C+LMmGdFKrN}a`&m{jRm}1E~Q+FYKlJW=6K~BxAOC?*TAx2bU9nr!? z_<@M*wMVlAf=S{$ZZvy&26Gh`Nt_3*B#VXCEz85$5Nq3WU@Sjri&vW%=Zxhl#f1&G zHFk86)VAe7g@soP+dUP#?K?TP`$>~hwb~iC3B(#ho2mjDTX$&Fi-Fjfc=MCc zD|7?H9U?(MS=WLKZfzw-B=oNvjngtTN6y{N;p<7Vi9)OSrJh+|*C&?Sy42i}@Q0G-o20pe zo9yQ-K6CcAh&S$<>hfX@wotxpz|3eBI689@YJ$b5UP>#)IQzeH`XvqQ)cvHv>(_ud zJh;}271w#i(W*7hoP0_|E7ml4*B6q5q_D&bv- zNY(#bGUJcv-;*)cpCrFpEmtyIODK6(pT&L;%y0wz9?m8aWgV!T%{(;d@ z8?VE@!yqE7eexmVGD|HqUF1AAsqEaY`mDV1V#h?i#^R_~Qyx(lwb04Q&2gtkzaLw` z*soge%=sy4G4HHG-fVV~@`s~4AGH#tP=`C`?wdC0enKJ-3eq&heePkCy>bH`*}_4)yN7&}aUs;86APjE#VrjHEEN1!s-Z zCxL~|4C#1howrC#Li^MA(X$#~AUMt=kw=E1pn=?i51<^8^NnsJ}wzlzm*{5q|j0He>q zy^_#sm;}3q&|B&6p$+PIlSFFNwL^G5!&X!8wAoLZ`TZbdGOg3B;w)^fvLeNqdlY<^ zgg8g=D?wvs9f~!kU!xPmZ&rBEGoX=pNmD;)n0cjQi!j)nPD1{wwCg+L+C*yX+l(l? z2uQ`iZD&KOz*YZPJzXat>#LSGe^9w5y^j&fOq9dFq7BkY|FG@Y{efvoXgTaVEschq z3HnGQ@KoxNpjr)fbSe7qe*MY#39?JHnXawaLZ4P{NUw*HvZG!KTlz9%)Ci~;2tp(M zBtWO7$I(Bc&?f4l$|d?CzSg~I7D44f8Cdj7n<_F!LW}Yc(#h6{d((Wr$$29`%|}K$ z=CZM7{zX>J-Jt*nN%rv5YdM5QrfgNqow3*gBCh%BdXZ@LGbor!I_A#eYcRbFSXHBc z1XY#(1z1pAsC6Z1s+d}AqaAP4@);WQ?j9qLVNhk*oc)NO5F){Al#ujnR;~i&bz}#NC*kWx5WOdT+Jl+R!T~_%G?sx9(@N zi8`9)Yy5|1E-A zbaHNl<*KY&HRCa3q}O^Wd&{GjQyMI9dYQ|qkdSmLco2ZUNHqRlf*6(!Zx-}J3a#Tu z%kAVqn2&ZtE36I0qki`z>_`MkeiZ~p+!+Lh-xdUlZVCd!Tmoi1bMMJe4DD;SEFK#n zK&imgd}2N0`?Nx?*o&Lw!|*)JvNA)=EaXa%R`AT<0gXenn~QQpa`~;PO^&Py@56ei zUs-3h?kE0PeQPl+0ySapD3{}Q8LM$KuNboFI-4f+zLphWsVzH^BkC2Dx#_m_U^rvM zaX;*nMujP_6C+Eww$chXQG}1=n59|tlOS8e{e+`)ePn8u8rj}w>`s|X=H|J zO+_-Ihf;fYTy7qxNA2Cuk=O%{v1V`D^(H z0t_xAgBXx$hR^}zl0#G+mW#y)ndFFQB&#NNzXIo`52dNGD50^MU*6(VjpqN{b_+;@ zNMnxRO_$;k-}(WY9#A$K@}o4cRC#Ft!5Wd~)KoOg%`=>FFCanMyP=}&%TF3A%j+z= z7jGI1Uva@Ltl&7hUmN;YV%y2JA$FYx72M`-Z`(dNVvMwSU;>TA){{x5`hlLC&cCE= zo{X3EF-DYLx9bz4Q(RBpn|8AE%{Vlsf=|^H3j4y%014OR;Akb>x$4$ z)YHzqAFz~Zdv9>tzX!998jO-UG@CTH3h5hgL@lopxzE)hQa*GV*7Ud{s2xdN=mI|pwc6dZRT2FJ;3#AN!-RmPf9vo_ogr1Lt zBt=Bo=t)=#_-+0lX-}dM9cWu=#$<894QvJ+JyB8wsS)KNJBbP4#u8%j^9J5#a~C8y zv_S`Jh=X&0FbtwmJ&6D4V*Y3}52DqxS2R&qFD=JSvyet~u@W6@3`T?1O+%fVi_p*1 zn5;-fRm`BUnBx)M>&2e)1)V-kTTxRhxiQ;nM7?)e@#(1o!h=pp9pgayl0(0ToiugA zY7XuwJ<5TzANtKAe^G_X!f#Y4qW&D(-3rqORKl?-W`kLJ(T zJRW5tS9A-@3x-Gh9NKc!+SK<@gXti>PlrM2`P^JC)u;GN=JIE!DKYvCoNedwXXErf z7fw2xpQ!bIt;xLBo3uXsjs4+FoA z9<1o>oOD!M>hz3_A1FA~F=?%)NOZQu*6X?8y;{)e`IXrsW|ChML2BB9c8C)p#fyl#!Q3cfJqxGx}j+fYABG&{iaqKt8OgYqt0Pr_cwiBQdXKe z?Ni-n*UoLdbMCIh*3Wd&zH&2`FNT^f4G&>v7^$pvt{wpxand<#+LC<|Ex9Q4BB@R6 zn2Y?B;VY)RiIsf_PNu(Q!B(PTnIxl3BB7np(8mH%Q%|BgLOoq@1I~{i7#@9k)1DpK z^>yxA%+L{Jqe#jOH*k?AV93YKKd2rJO)@=2o7*CGHW%lyhq66V@r3|}E~<6+)rLB< zxs59jvw6r<#b!^ic%VrC487D84ShhLad2CGHd1|t8MKUb3a;osaMAv@N<_Csu%Xi$ z4R0QW9K6msWP{W4556ncKpQq9s-`T6=)A%5@u`WgPK&0ZMR|!f4(68kk09K~BS@>( z0te|f5KeC5rdLIO{>z)O##1F=aEvghQQPb5SR`o@ibX0|l@%A<90_frt7&&rEf@?c zxS81G&60>FPOM=+Q5l?@SYzff*^42Zxoi2*?8B^fmqu39o2{Xf)}y(#uiUL)8p#^aTt@2UYv_;SPt!f(&369`JfPf--%}>M_^o`WbY59ZJu%M#m zfo17!Aj@*9>m7KF=?c7Gq4%@ByvMng(7A2I;6=w>W9 z=e|{20h$Hk*3wAmB_me=8_ms6F_>R0>~=;$YH%&P9FRSlV!~eouhxcG=^;s??wX_N zxU4|1pF`|t!AiO^|ZiDg5~XR-NYXz?%(T3%usa*KmqA3aR#Q8C z#kvNwX=pn8vX_)aBdNMRwV~(CAa1X%ct&!`bOXZ~>BJBoye?XmW~z5qEg#RYf#8hq ziayQHnvrtQ23~%34n8~2`ZzA%xL@p98gEPs>}Xha9l|sNC2P_rVxSa@mSzPivSy@s zMAR19W9cK%-WFv2>B+=A8I+qiz0L-jcO`1gkFvU2B=!AIq5H5au&^_fXTul8H;%G8 zTBkGb2Ea;BJA^z|Z=sJ)L>M9&2Nj&iDNAP3RjsUb*4ZuJp8m7k)>Fist(?#(FPKxc ziM8wvXyLFWTzUBx_MWE?N1?NsLWVWxNToyW8TPz^zk>>HXx^+GRcUEU^+ zIYyNuRANR4DK)`w%>23$+|Gxuu~`~}C|=bF*C~qk>I^aG(h`5p1%-$pp{0 z!Kt>H=okC9uh(G;G-ul$@2Uv4zgvF|IUA&E28-WTg7Avh4nAnK{S!N0t9AYbgSX{!_exxeG2h*Wc9rePksI`*uU!kIV>r6$pwju!K`Cq3J&We2x zTPEX}>pbCeZLrixm;Vn{YriO{T6;!b(Ku>G(5T`Gw&G{Un-+do760KLQ}O!qa}_^t zgFPz_>=XFsMQ_PVPk@yq4=gD}1+|)A?!8Bf`DGo72=z`W<+mrC06^DGuy_=eGBQ|_ z&Ro$k`-Q>xB>{Zvj}+C63oLR`70Wc1ViBHS21&I-h~+K_DwXR`99;pPxi>i31n`IQ zeH!M4GL7Xb`A1?aH^{vO#!{0btGe)O22Ersl`{&^Zj^2=GFEQJ-TWD^BVTZ3;jX%F z43DkYVR;byv)!=Vc7;c(9E(+U(g0%NSuj+bdD&PZGbMRjgqPYNL z|L@iK1(`mKt}EnB1J15Hxe}OR*IDD~6CWza`X1`vWv-Nh*yi^yQvAQN0Q4 zDC48=jDt;%OiAGzeQ+0_SP{d3#B~ccWWwhfREnnZ!_|J{vL4JPfSLal0Cq9gBt^sh z_lJhi?TPB?wg&t=-&i)87-!z_{_3ZaMRZW*8l8NY9La1@Z$FDMh=gVmunn2qVx*!+ zF$+fQxJnhx!`x6hK3Yx)zuMGf3#7!tQ_)nEQaOS@W#x|ZB8g1Nff;ct|Efb|mhBgT(S*9t= z%yPBI@K>rRR15@nyJWw=auMhoeQvaq{Nq4`$qf3!$x&k^6S3(}T?RAwrr7x~h~g?l z`0JF~69#A8_$WpHV%`}bPVF@o!5ZEXyunTHa0@1b`yL0I&&R{gY)=}Wlsq&dtcglJX!WIpWcMg z4ekdbwAz4uStv*wrNwP~@~3c&5jma59;Tv~S8gC;2@!@Gqa`VhgYV4lh+=hG>;Mh> zEK!mi?dc{8+;KdE!bvWpJrD&|;6{r^(p21&Jnq=hM(uEtbEqMhmX8`>g9T2@g9H;# zmaU-Lr+z)M zvU@x02TY>T;E>gk-5>GNj61f*nI~rO!k@KT(yk-#`gF(G8V;r9xu=gwZ|B$0OE&z8^??x4 z0)^lX5+e!rN39TvBtGFZ$-!8>d(B8k;88R;BYk`pvkands#PE~mkGy@(Y<($O;X7S z4Hg+5K3!h!#|TZ0MFrc-+{`00oM2S27~cc)+e{gRE^SsJW}KiJP3qVY;hyOeP;455 z-dJD?1Y$|j+8tZ$$9L(-5N)et+2J-Lj2aArMmC?gSJG$}&D8s8ruk|!qbm8VfCb{u zOuQ#iRj!!_e!iK`eEcx6u6ojlHLc>)_aQPH&uLkj)x@=?{CH=|SU5L7B9 zcqEIFuvpFEA16o5LAyFkjUCnwYVl{slr0!THfR1vLK@b&lM)mb2kD=Po?|rV>&!o0 z^3Z1BL^3fgE-@;)nEWsdvlx2BzM98EzTWo?^0I8Wl!flaJdqkm`mRFhXH`3$&#cT!@YqQfcKk4Rr=i3)9uU~)9|7=O7NdX$RbiN|YQOycEJ{MCuYtfMt?6KLQz!#$j(;YAp(hcsi_v-(k_qn44abDKSwr9YCiTffaJG$<}Rs@1_I z`y%=&YT(O1kXbxkr~+AiFj0LaI~bwq_#X?$Y=Jelz}sWs0$1l-V*X1^pKzkgAx4Aw z+6I=JRlr#w1&NH*b8B}o|9R+kM??OG% z-y61_c||?RX5RHMdpA`eN!mwi$xRNyG;lK`KbQudhiepM8aN*==$;0iB~KtvhPkRh z2fY8T6Pi}^gV{dYjQ=2mAXoEA=xeMs{LQz6okvbPf0A*w&G&rMr3PaVpe11 zqCm^fC@DuP^L3~;%YEsydwx7XYtbJAAI`srD-C^}Irq_N)qKu!T5bm6>@3?iJIgwB zOuCsAlfNf^&it>UhNXv5O*enqnLOWVIfbtO-)8Rg*Hs&xU+ANVm$}t`s#0ozAjKU$SP4Uu>K5`sDXbmT;B2vMkoZ)4YDjHO7k8n&C#F5R~l7Fd)h6ywT5bE6dT<; zr)0ao2O~V`EH~NM>wb#C2~Kxc8JteCIQ{)Zi_=iy^h+9kv#Z+eVIn&#`_xE*u7?;6-^2Nx8DNbAHu4EkU``u1Ti=?4<<`LYKBKmp4(#1-}-YheD zGR#*9Q!OeK0)9h&hGykWd^BqN zIxV`c6v*Smo|93kL7`gW!fC0pcv4_i`aB!fA}0&7APe$%fgBQm?B}$+O9uslz(J{V zT6CWUe8N2n_sbSmj`Zf8CWG-+&wP}vAt%1L^plriOsn6gkVlORXM*+ zE9nx+h4lS|f%_AieYDN~Fxh2*I83=8#kvu6V0xx4DY=%u#Fl)*mi){xP0>tB`rB@z z*ggbursR%i`{Ws3o3bF?2!aq$)K9 zv%P;gQWF{tJl^)w6)7-KW%1iO#*Tz{c%k`7Py}3J1(&3Qcf#1MVT%Vt%Ec zF?oa{6)#5J?M8LJ@;GnA?;l|d;yERJp7``-nG|Tc4h&(=u zU9(*Mug)#?ijKOI26A1{tXwlC6JSoz84yd=qn$Q@s7%45IsHFNg?hs4^M&wUxuX}n zeBf209O?x(LHrLS*}cxZvBvhGAorqAPxzrPgnw0U`1h>t4PUO+{}=dne*!);JG#pX zY!!HI+K(!OO)X=yRH>#G+R)#&;Y8|yKN%U-$rajS(1>KxG-TD+06t1ZF8{`RpqYKc zQ0ACx&F5U%`Sg$WkL_S z!!qqM&p%ow@R^ND35?b5xYEoCYU?ERI!m#T#Viz*AHiNW#266e;w7Ghb}Z z8h}b!?2LrQqp4S3?!|l~m*qizujmiAL&K6+;A;?Sxj~qLsu>7IG0BvCjfN3dj<>v0 z0SKb|DOzttjx&_^5C5HvaYco=NUlQ%$WnPp!D30rHE}IM7b7AV&w~+*NXPd_Xgqg< zT)BTH*dmOyXINw9q1oT%yq740;pX5Oeq!9xZjf|WL?a}zJ2#t>Ud@T>2Arl9tT zOKos6!4hsb5Nr2|4S@px4OteeT+1|L~=5RVWK8f-xNzx`B98fB3 zv)DLE}$Cj1bY<6tPdJ*(wp_DA@E!H z>Zq}HFTYAz(38m0smJ5engoP)wd89_(l3P;1>p=_~=CSfInjmnNelCW!XWb zdqpwQnK#TBDw<$Eo_pG$cuG)`9_2w*WW0vYVMIc}hmRHIO0G6^EV}e)FgUh_`S;#l z@>={mvc+u9mKtp6OZ_&-x;Z0LGDX!{ekhHPA;ru+%j}SO;1;2`dAWvv^8|Hssm6Cd z^b?9{_A$>L`QnTi-JHc7e9E(nJ!@60EL=t>W7)_ zH(oeKg_WCuaodyyOqP;r`Qf99jCtmKPuTx9b|9J6h7BWj#^&@-G!2@6+4FJSQj9U+ zLA1_&uFn0Z%;;t$I>|I>{zLMe*Pg9Iai|$L)Z`={vd@S;|CBRmP4y=WXm%!!?l@{I zK^&tDpkmIf4XOH1{D_!$h>)-GpZk>&t8Z}*xavR6_jl_PW`h?W$eEIh;d|OQBvIWD z5yD>PouD8JjOKlG(!5~{r~qEQlAqKSA-tof2G?-uF5mA5bh-!TOb!0NsW9e-&rZjGPild*_+n0CmpH>V*>9=JDgvoBKh` z7=qS33SC3q3vAELu2h9Zm+1?UQ0lkNVX%HjqO!Za|F87_2tjXJmcwN^&GM>$d2^2b zvk86~{TqJyU+KRcZnX5D_lN!I{}^fBu#r>%{SV`(H~r`R;tS}%^Cn>o{X0+ZLH~CZ z`+q_Ie%bc+qW|;tUqt_H2uDWx?2-B@`aoZX{x!2dPygUNn^7o@1{=d-J1BD&JE$}J zGE}9nmdyJ-)Y{ODLeOcV(ubUso$u)G+ii8n9c!xlRUnx+&eBW}L;SAk;GM9K!<#pmy(?p0UDUtg?awmqUi|<2b%e-T$cenl4c>Ld z-lc;j{-W7+4bsY)|B_@Ik(C=ldn)|hdhC0#3Mps3X3Ivh*K0miOjB0cD5hL7F@;L; z8=_@eO-ri*Ivb$)a(o-WF|F#x4`GK)>#s&m(E68wxoodZ$m0g;8%DPJT()|b+YhaN zy~)HK1|dV{dUMVlT+B|CK(XwjGFwH+&j$ue$CfqjIfEVd6=qu2H8bwh4Bgs%kW}FQ zRd7|CnS!HI1j3IazhS>VhGUCTeEF-cW1`t0dp*+&YPMxJ+=}=&f{$6ZakO9Ok+S}^ z>;X+(U&52tkLO}Eoy zOJ=pZf&vu_pQ>(_xjJ(isAlj zmNs>OZR`p^Rj?SOb}&$81*;Zo@2%UoC6d@u!A1_NfkgGr-(nekDxbX5H@NHlg_tH7 zdo4$rvG-1ek;QlM#jd}9>eVRSJs~bRFt6V%RKvdlgt6_kXpurohxkukrlHorP^%q6 zoD`z&-Ny!~W_J{OMt9H#<#f{qb^oUenUt6y(8+7iKZm8~$z3fwP)8U=Vb~hJW8O&` z8|i0w>Q}SmrF&Rv!-2CZeVm(0??1_4aj)t}~d=N69GO{RB z&X<(LA6$hjI)U6dZgN^)gItD*d-D_=G#PVamYXI8;hOYc$nT9>xR?>VD?W>=Lbj?~ zZB_pmZmat6N~-z+RpH)_0TVyt@*4cxVQ+R?)_@{Bb%NQsdNTN6Xyv6J3_ecQ$M1p< zV}sV)VWvz!Qs!r~X{YIGKDza#VE)XWU&n9Zn)pd9A`upO{`KNHSssJcWOi}s@ml<> z1>`VOYb?{l-=>{xzXZNL-;PxE|1P!=H;*0J`+U1OZ;gi!GR3^5b}D^NV{0<|59p{hW^Xh9cs!;%vFsQ#MKG_r?HaTfIP>LQWLL{4Kq+Xx3NPCl$p|R9^f`tx z2S`3c@xJ^mXg;K))*J~kuO`u=xO%s1CTSdNmhS{YeVybw8{&k>UkG{Old;mEmh;wY zxU9_Z@2?DR6;1sHljLt_Xg|0inw8bRri?T1d75Emb$rq6y;e^DiWHd5$ZyR~VsFl4 zRBra4<0)XT!N}+f{Kb5j*0pWPR~E#b)VU^pR-2zRmCF){a@CFC{pSgQ2)*G!c@>3da;y zpizPP6u!YchtHAaeDZrj-fX;gTFE^U)J99bPZp9jh5^ipkUK!aY#XLd#dcECUurWN zMKR*%r{38$vK?bD1G;r%$n9ljGJLW!C7eH|E>%-(&$i59S+rbuh1$D{df3xii)-Ef zwV}=!cc0wL3+vqF&6vPpcxf#{Ah}wN`2RBm&=LZoa!6D|Q4>ddbr|N4Ur?>RQ#Q*G zYnH#+2iYY7Q){-F)7yK=m!O}WBuhvg8)&%@5f}6zk53pD$wwBOme*`G z+81Ypqz8~@*wS!*Z+?XP%wjd*#DtawY_HFvp7dp^pw{fTF4gc+Wm0m|%R~^>Eb;pn zL!GF^`cnN-g4y(6XcMGLE!7{BpyHCzz}4tnsy|9FV*LUVa!jj04cWhxds%wrxK}im zfz=$R&GE|of6@YVN4gn`VBg7dW%>b;q}xAjPyIQVtXb7DJi2#-dq+#T?kQSrZW+Ge zC-EoTs^awSt{@5!&dOQpML!}lVbF1Iri$QUoRqQnFND9gP-vL?XFxBUaTtKi(k*MM3t7oGE?%$ zKZCtd%u3^z83mie^V_kv2m#rIe-y(q67%?f6ZXk`SUG~~A&5BHZ@>_5a&aqWuYcee zwFmKoW1>KdV?xyy!1<9$ENE)-jIFvyoV9`jrl$twHI$mqOi5VCF>r>{0+PZ(t{EUKG-nGyxy6ZX`vL@cbD&;zYSyfAq#IqVq z6}j(Ao%)$_adJT3D_PRr%gTc#9S{BTO;rPJRl{smtA|>p=d)=jJ*Sc*C*OMd1Hpzi zUv$cCn`ZglKO}C4!DNzqC@b$Ij-gH zTmIWGvKmjj9sZL9RMcHbSF#DqrmRLz4IrEcKjpwiy*Hv5qGs*Gcy_0iE%ygCs{hFz ztle2cOofUp+I6G8CbXI-EOviT^)kzFXYL$|@bFXfFjZ%`DPp+IAUheL^KS)N0qow+ zeUXLxlf>r5=dlG)1DoogN|K3QG@cJt>CP*^X1epDuUZ=4{d2m~V43_L`EZo?O(10P zm#=*xuzRFAbMb!Tn(O$2pV2>xUV(k`*Bvk8z;YUq!sIfJ(fuA&&?u4JEp*2n*m{!K}xE z09^jo?2hBi61t{mz(HC2&ak6y*F^51Rb|~9&}Q>@VR`S! z$=PW}9GEp+nmZD#KspwR@SEdHA^OKarH%qy$G;D=bquGDuDg++iR!z^9Gb4HS_3UQ zou-?L>M7`d`aibe>huMRsR|{bUX&0Q<>b2|xJWV;UL~tJ=3BX;yJyrX>JNG%eT{}w z?*5|e^#)t^^ki5Cjl~w@vn(3b0mfH=Ng7Mk7wtzQYVWxUk(JwjV#nr+ePC{OlREb* zWOk3fs}mJ=_bA^6wR?0YXFP~4CHNY$f?zqp3v6&C!4t7z5Q{byezMC1YY2YbW{447 zWHU4p{Kbac{?lR`oJ{O}HkjLg(k)wK|3N;jp@sh7OMojW9e(9X9rV8!TGMSCNsF=2 zD^Wj~Rw(kN3#8{7o*Av_yF&uYUdNW*P`N7z!A8IP7c?$O5+MmU7zu|6zLrnCRZ-(nmfze>_1yC$R=YH* zf*L$(A;6*U^Pgp^hK(m-#;Z)<)?656VX`;W{BN(ML|`pF_f7vi+MlQA#6&N8uB4D( zL!8zz;Yaw=zmD+IAe1RN{rAQq!h4lPO>C-iu7o7DBxDwnNQOK z@yy_LF|WUW!E{ zik=&6B&02p{&Xr6LdgtD(E10+{Ho3T9h-Tv&FsHKwyqnr!M2}%FtY&UM;!}N7+1v13!ySP)=<|^OjX7+{zCPpMnUVv9u~)RSnO)Z9n26Zna>MWPsVY5d6~Y#$NN)H0I_* z)nq)8G`MNI!Sz3A@hw=@hsUWQeq6o#PWO&dAv=1d!H(WE|39-e?3;rfy}#tftHAm1 zRPvyyTkw${_^hr3)O2odhD!;gzi)|tXtrv*zY|pd{&6fWu2IL$ULn%;n%Io|*pI$b z4Sk=E=ji)qf?r7A_E}l_{)p=v(02|wyXkukU;fkNG4!3nSB}0F6_cDn9n)Xy!3OE?1Y<}uY2uhm^}W{^CjXnV07LjyVo&)i-_cfzj`l-WVYn^ zWB>FI@9C9Z=gpE)ZT7xa>^$*4AGR-p8!|hbw#K1sp8)R)@}qPvQ#x>S`Ty}H`NszN zl}`R%{A2cJ%*xR&n9O+te8`zWQpp>S@39-RDnFDd`Sf?T*7*mkQKuKOKe1R`0U8@%)J}p4aI^IM!r}bFyJ_I7L)II)ZXv{)K9wPYGKk5!@$}VLyB|ijv zvTQLKD9u{-QJ~cAzeCi+X+^fb_M=w}RV#KG(wh@!oEkue66XA7HE}w>`R$lDqJnVc z=InVp?`)QS8{&f+ctaL>vejQs&FBl?G{*#1@+?PJ^DEg^BR95t;ZTzosd_EG)f*SJ zcQz9`cjk?c%}$#;n%Y*HNz5`m^<$U9A6+Bdx|hO#jJbamL&;>+;%5oa(PG3RpHn(o z_L$iE)O|{xeVwuUu>ix1c`BO6W8J2hf8lB@jpMO2wrnSxe*&M*c}3!w&g3)VRAoYA>zv^RA7yCjkKBYrqZMFHIKzTz63(3#75S%fy=AvRO; z54emq6+5g+v%^}V6{pVrKR{Vl=e!NTeg*k{DF#f539MG~R+Bh`eGQxbE1SMWrEJXU z;$PV5PgfJw%?RnsQ2xxNl^KJVs z8BKipfB551K>ucak$wZZFx7l(5Y@4NVSb8ER-@SJ!k}xk)@lxG|FZqvNB?@8PU`O(o0I5$klvcJb z?Mse2_g&m^*Qc%>TJOH_VeC&)x4FFD^}BHRwa#RaKBdz*EQi7rvbk#M$fgKuqw+e| zgr#+uOJqSQm9xBH-MUs`EGwGLhi&{d^25pq&+w4ewWEz=u}Eg47N4W(=q+Tnx$5zq z?iDqwRA#+d6!L6qTR$!6M@DcO7D?>m>cx4QQ&Y7=dY)mc)BWY}&$zWK12HGq=HH#A zeR2FuMD67N;oBRy$v^ZcC8mK>CSey7()_`YD>o zm$s;$_#wS~mYBdBekfR0ZpIfbx~FY}NEWo#9L}5=mNZQKr=S`CZE63&D`CJgjjWtJ zIy+}!V_)4`{SsFf)8#Cy!S?h*O%4*%$n8LmXG%U(%aG4V^i0VucY&@qeA%yv3&is( z2Hby_(1X87LiZBT+d-far{xhFf_a`Ggcs4u z*0yv$-uZYr?@x?$BKaWWVG1R-a8?Xa1|wWI)V;L4&fTSF#Emhi&ON6z%hES(Ay3SG z1)i-$Cc(2Y&%^~8Ov;fqg{LhHFGrXPBhcANUPs}m>o2oYs2y#w)TF+prV(#AErM>* zUui?2FHz~PH`wpOHG1q%@&3WB+eAmfuH}8=2Taj7&&~HqYzxKnSM_6e`<(KKdudZ$ z{yB`;RU^|?@VU`H%?P7Mb2kpGUy7W3q;PsKawE&HInahe$=6Bh+T2~epgv$L$EFX`*SJzXulsuBp<~lyfn%~q628rU z5-}DeQ5NQL%9O)b`doeB1L;iMDx5jG)|)Shixc9gTQ|Dad3?U+MHmbx26el4IuAx_ zIwCa^nTgi?HouR~HRQXIG4V2mLh{!d21cLqp)lzeD@ii-I0XRv7KTJpK_#qkRShKWLRBdgsPW*dWJJO!AqS}=dM zU{>`9%t*i>!Z3Yx%M)@AvN`A2oWE4gz9y$pX*(ij+emnC5Ag02ud_|P+$)+ym0C+4 z3Q%CZNokP(wuRLwSj*7SsC5ryXFdd+_NTfY4D_Rph}l^67q$jFM`>LW>Fyu$n;T48 z6v@6$er@D*Js*_+g7ZTtr+-}t8dl%z)&hSk`O#Yo{Oc9;Z1?1EB~>r~Z#~YBjYjvI z^b_iJTZ}2?zpz|GJbiP&Sd~Y^y zUQ)0aP(4PH**_r3B*fqDq0}8NG`nvO#1WC!3t8$Z@n(JMuUquv4S(qlRzMFC&dnFb zna7llxyl#9t4E*1S`%CLBwCB7xO2sal^bSXYbc5e_Yii#I{bF?Qu6J~D_fa7gEWo+ z;C!1B;sEDyQ&4){+30n1t@6D&1VEncXTKM@j9Kr_+LszUJm&S2E`Z zz;5hMG28y^^aq=nvSkE~$VX*02$bffPbRvj@}%?DMhhBO7;k0*fAGg*119iujt~Lm zzb$652HJcIhyiG2%$zKbSTS!j-kmmK^ zzb5aenB2{DY3G%g`+~vcd2fO@5W?eMw-HbQDbDs6I&{L z*lwj;f0mqWB3Mf7BOjQcEbB9On4m1{@4+}^kY#Xoo^FGI2fzjPepIP9>WK@CO{f%`+aCyG6EgEh&ffOOrPdyVC1^hB{yltqqnZg~ zpuC(P{p$!%3qqLhz5=KQJ|*7*qur(5K#nKH{{i0=|3@L&UwZYvYcWn(x}=ro|D&G%*LG51_aI))V!wk*%{8=Q z`wc+0p;uj3;ay!w0!n`B+)wPrxOjyO;fgnrEMZ3=s;rjTD&i6k68XwN% z&-w3Y(iqQT5cOc9_?AO|%Ky!lX9?opZ-Yw@Q6+bE z$KRwN_r1WD(%!&7_}2)7RJfKHi|^5d5*gMHVg!4F-l<*f56v~GV!sCU2^wT5GQu=y zfdBE&3{zBk;XkqD(dC)u>8`zJnmxN<$5Y2Rqi_8!l)fC?WX~Mn-$`NSLADUJ63X*^ zuEq5#Od%ZzT53)OeMjYT`ZY;9#Isa?(ub3jDOqzPmnjPUi-F4g_w$gM9xtL5^v>0M z=>%&_W9}YoZ~U_QUiK6}F6;cM7aRQiEkEVAm#tUT&&f1pZuSF-B)QH({mrr&EH z&90dz5ON+wo9J-I4WUP_m>RTTTygwp$c0Ku<6iN-Q(;)MDi6GlV(k1*kG6P4IDFFi zlrHdmE@PhV?q|>~x`{92?)8rGDED&r+J)np@x}h3s;gt15q(_P{9DiSMLpjy!&9d5 zuWSU5qz?MfXz%B-Zgb|96kTwP|-%<$L}Ng1ktNhByjd)W*C_45gWM zoC6(k4p{MZjHQ=17S+gUITpsBg}WgqIh>HrOO)c8?~Kt$lQFg|=f*kbj(J<1`%)cN zw)(1%r;GR&ucOjnSo`CMC@lJA^31Ad3e)AZngP;Gpr zJ*)~tD*n=9ektF;=qI(9dQi`&WcA?M>Kd~dMpOTDhUMj8c3;mzV-3uwktjTW;B!iD5 zG4pHvpFhhjMxq*nDCvtj;U4IV&s){8l-LPOAAz>lWP_85J>Leu+~2c3FP-hI9;6n9vTmU>!;f%LcNb)a&k24n4}Omde!mj@ zo)Y{X7yM?+Wxu!2w{Z6D_q#Uu{!UOX3pZOXo4g-G09Z1>d&@`Lgiu4!*w=q+byHX7RW+_|BH!7UaJ? zh`&7e?r(mx`fO(S4e+AqpZ&eue0QgxwcqzqLH>h+-#)?b&bby&_Pf7{7k`XI*rWD$ z{*;;S5{WYjzgVU^0!>5pGek375$yC$>yI#gf6VHkdZG#O>cbokD4+p zF_|;{BTb=tiPi8Gf^rBE1~w5FD$UVki#_@DIO6hVs;?<@%}mFuo<`D#6Y%J#O@w(7@KAk!9$(U*9wap<_&osXxtI0OVV0MyL zILY+_bKz!I^AiO=Rqz@Sd7PsU$12+ELa#NrKQ6|3p(68q_dx9F%&-FklXz&IVKp3K zvhoQZEC6yQnJF1Ehaf$19=l7?#GZoYBQoJnCP;zwwa90gmRQl0-FZlF{~^nk1&KX1 z@lLE1&yp{)q=x!5nWNdmx^*G=@QK+dUXSxWuXg6B?;d3&OCcox`5s8_MR6Z+wwVfw zzDooTE%@X3#6%Fy%VT>+OFs8)7;~~W?0iaN4eB3r-vyD#r1RT5!nMSSGyObK=uXb> zn57OoXHWy4YURn3Ej#=R98y!Go-r!Zuoe7tgug;j{fkws2yU*0^NG?5tpaU+PrvIH z@pr&=RoIkorG#eMmc371zSlGlg~cx?Z1tU}m#>?iKle^AV3j`A zn^4G@a9U6-8CdND;dUo+tSFPJ{?TclX6l{V-pHvp*^wC-o!qX3e=@y zTI$Suj!cPt7^=U`Cxl$I8@hGWu2y0H0Ig93_hm!W>H~lav{>rw6?Ux$I4_i+uhHh# zav#^`zkIV7mOsoGVw;I!1)>#$G4QciLwn33~7aJ<#hyxjFbVqdAf zGLhIfONlyf1EPvP|jnF1ll>C?;^2XAMV+*~;LjNMEHmRcfi1wQZ zXJwY;FLe6*Jdw+c#$m`s&X+49)yRmgDU7)#x9bzWdecbf9{PNCJr{n2;pw(B360e7o(bu_2Zti81T* zns;_Rg8$4jj8&-bhsM6%5q^hn(W)z{HssbrH5{M+xv*Sv-0$8Pao5p=vb&J6s`mJy zvE3VE?y&QfBe9=<8O|xJyhiKwi*#h+DuV9HOvxPmc4SH(=2wTzM!KsqB`+$UyDfIS z9>ZEfd-w;$%I&ereX+`&v9B+WRlO2F+`PQ94!XU@Ml*BfJNoIaHn!y1^Gi2O`6uL9 zc6@+s*Lo{|vchMYY%r;!p|lo%F2cbZ){nl$P6StNGIQ=v6s^sEj#u0xhDg5< z;cDsuC0HxG0c_GUp`&3*qu+R;>Ra;iT4$V6o#N;6pBb}7G+s&6A0zdt+iliSMAYQ{bJVUxTW zS5z~OXT`6p4ine>PY@VDwEw{OECTjMlqRr?O+scJYu%P=_VHWer*UAPGK(prk?J?+ z$_TQ`eA^_bOq$g*Pd28%DjHM|Q}NZ+H}Zp%TcxzZIXV1{@ytdTez7z;1n|7c!kyhd zlu$SO8)=A6ZKQV~wv2XRvF|!hS<@0`HrC+xqK#ca?3dVE*pKfE=I%=R9jT2h7%odn zDc!#01I=x_5VabY{sE9nEgYOBt}Msd`!$G$G#QtUBxikUxaLCxA9f$rFt|m`pRl%zVxMMbXrwnxa=ATl?tIV&)&{rz9yXO?T zOF58@&EyV?0UXl&bWBv?o^1yEFZz#ki&W7RP(c6SP>e6w7jUV-tjfvz?^oTNP=u9KFs+8e6t~*C_=|=+i-~%b&8q@N4`HXI?@m z7=GPg`L!j>uY1qUg1y6nb&^vk9q??|J!VwIe`!X9)51bIlm0P(?0CpB@S_2c_{HFb z6-5BVIhl24n+sp2W{)r6-!%dMex@n&Wb#^8Gjr<2K$7<~E`((K5%5&{Yq<<&eASU5 z-9Hy+_;Zxvb^$H-UR0_m0vmFUkpszy#z}n8)$!vwz_)mYqN>-EvViwEUS#W4uh29f zh}X9G0nCbsoewn2eV^lJo10&ykKPs(+>yZ-mdrmq-yHhP%hregRnl+7R z1ka`G(@g&Okw$uSgiqvCgGAKkd@lZ{Z2BT!`?dJCOcjkLCR1{d5L|2Q`(3wX)td!8 zZ8*EC;d}9ZQXis#x$w*}vC#V2RgJamIBr++l|u&f;jm;jod@4SZO-G7!D#5AA-q}D z7vtv%8T?GGu0zFdNY$?{uOr9dvxK@A8yF#>YTb;&d|dHVt-X8zD}eI)s@2VJRknWE zp4~rkpZDt~s1zv0MseV#1)z|bT zM_p#M`mb$Un6(#vEw0Hg?>f-7C(&LW<6!%dR%2x`BLUc#s-XEcyBaq;ciHtU!Zy2a zAbMMSld&|NDU_aNj8WkbP>cu{Hu5UgLVIjYI+F-J%?Cx3YCa7@e@qpXsO$nV7*~@A z$1V(?tkS8HPpUuVoaw|qeT}op^7bC}Z6(Q{Wa~Qv5)_#d;k88bG>-H5De8efkl?Jo zF!YGbTHf%EwQYq2gV(d7EH0OP-BojBDSKs%`~zc|XGHo~)w^O2#Wmmucv;cC2zC$~k z59m64f!eryuy>kPcm0?Rsd#A1=Ied$;(@Wy$1!HNtW*l*_j|qKvhOK|CpJhd3}H^15k9ARB;kA$9@|_- zxWI(ZY92y3?5S#V}!teOW{D97u^mmj8+)%r>tkQWzrgV#7QV$<&;w`-7~d43tVOAQMUO!GS>JHodHPhX-;v@-Q1D)b)bCce2)uACFhby zpv;`KQ;3(^>PTPbKhTJ>b3oAFZ?yKRX@ROJrFhq`EdMwy7eM?sTDvyc?>AbNqpxzT zQkOuV(XwsfUq^okmHV5 z=O>+)l%d0|U?6Yk#La8xn%BP4)mP)^wa)I+h751CP8pt8JEb}=96$KANo9pooP+Ai z3U~5wIOT`5lkA);88yVp^9fvXUJPZNibu^mIY8qCGJoyEM<6x&H5&||yKSAV+2C@3 zhfl#%dakc)=ubSrmeM z)~Z__Zw@6)Xzo%%0ZRzcG342m9u9Ei)#qTwNAyIr`EdO3eHCWt$3T<*Ax!tY1#)jA z+$rA;*J)X0+7y5F^Dx(>wSA`XknOcK|E;Iu-&QYW`%Ng@&Z3V@e_e=$N&TcQa&G8= zA)FQ+=J=w%J=LuIUh$6&%6zVGd$!_kfT(8*XyE5s!iiY}LN|H}NGC^kj2akX+f(J8`uU z2aVLxxcQp0$%Zif)!1C_&6ku-6AG`dQ3k((L=!cstO-C|jrbfshM-CL8`hBQF-&}o zu~^Es)PHlIZC|!+FVbEi`=4!w33sGdhyV-z_fGt^0b)B*1X8D(M%-R!S*;mpR%)bI z8hGlNnfvt&Ozk8m5!s^~lN0z(-wV8+k!WaaqY_Emli40Cnru*J%*@ew7}5V6Vw^d% z_!13lzwC65S!aqp1e^PDXhCy#q+g>6-BpNBo#Yzg(i>FG0_8zDAglpYgR>XXoED8f zGwdHV@{VqdBZrVho%@0s`A*O71>0%49x&Udo4iz)j z5Hs};WTqY1*}7?Ur~mp^X6iMaA2P)bH1jH^2j&|C^h@)9VQw>j_JB`K_0*!8zC3@q zKktii6#~>Bv*Q*j^lhtG+8UfYMs9d;`jOkH<{C}gh(@)EE z66kLR{_p9VZunmZ0PuId9_R-UKdT)G=pO@Q(s+c-EKqqh-oG$_LCGa5SpXD^D?{*g z+gKqPpmq^Zx<_4lkzn=WzuSQK#r)S~SgRa_%X0%i)O;3LtPxjS-LTU+YHfEOLO4z# zcZ@Md*P1fBR)m@>Xc(tXRSGSH5R*h7qZATW41L|y-u$<&-QYbkpqGC&lQ6(W2Aw=f z1#_7fETGl=+i~*E%Rerkbn}LjUkh)C*qe{)eEW?povpvV{KQS$nBTX)I&3r1Z)}Va>#^F>cV>MSj-T9#0QxUF z@~deGVR&8S=ne7#?S;n+sQ>-m38r)SliM$8)F>b6R9s{FUsKNxcOx|HxT>uAh{Qg| z_BjmB1nK6B>%+$6fMo4aey{E2*O zHa#ZdenjC_m6=H5tq>0m`d5v`dO||#6wY$3Vqe#}DNJU1qh#KzA=Sj}+_W6c9%lFf z;iCwjS9FC*n-u&uDZZU}e$OlV329(qew}%t0NRf%v<_0%&-elG!{^$3ZPUM=_%zcj zeLnow=8$z7PF<@+jDTOb7^38rBs(qtrgz;P>-~7~A41f(EB?`XpWju@J2G6i+)8ST zA!PiUhLHU!IqDut#t#AFsNWKTU3YX9D*g(-L=dN(9*}?<3A;81mU5X`KV(QH_Ov=T z>Le7cG%akQRQfPjZ};o};BO|q*d!K*qa+wBv1&+PO{|qaz84WzmfKZtJ{ggP4i}KX=^876MUupd$(;I%JwY=6_GG#+;nc91($&UU2>F$s2<*n$ZO0?YNdl&Giit~T`Y)Bvp;06d96=e~qL{LFciCmJC?1o+4Tu6d|#fF$Hk~StW*#K&U z)lJlGScsLj)?&p=t!?>Qs+KQW)C829q5-skS_QAWL=^EtfF%3>yfg3YEeUG-e4pR* z-{+Y<=QA^B=AC!mdFP$WnM3ut2N5Id^S8aF_ZXt}R-X@1BEkBEK89NVvj(O)haYS| z&;niiEql~`3r&w{zi_?I>qRuZH#?=tmTWKGd9Bynlwxj*(cK+^y34mis398eEwPxG zTw11$(Md+_?B@WSgXfmYwyqmTr?>gdJf zd}$WuMGKSc-q=R!ZhU*EQyBVzuYGSKT2n63(7u-CJL-L1tJU)_Yz?ADhmZe4jLdW^P=;KRP(Wu?S8$27|oulDmjt*s~Htff1f>`f`g$6ISY zQ~DNPbj1Yrug6Pr#5(Um%ees@-mah6@9ToU?*1$ZAFmWd8XNCK@=e*X=ClLGRivNs z5lpOqPPe4KZ%#X5TuJi-*piId(mLI{1RuRTim84qKds(}=kV^-kR~}}g4I)uj7T?m zzH04`+k{Xw)$jHl!h80k&Cg=ZT7IOao(Ln`0?)M|PGie2kv~<+O$$U8)!lL#DMLF$B~q81=R>VufhIZ0>WX~))9_lF~$37brKAQj)3 zYRXE+!o`Ee7tQVz_py;_Tb%jeP+dH}fS#heKQX)@xa>Kozf4c~OyGeaPY-MrBIh41 z(?9W!ui+vNLni*~kvGeWj4z(|e~Zy+10;^#V36w|xv5k`kR4RI|15YngIfLNg_K(+ zXckXXiq!~H>qBT>^zxVe{*?Bl=Ivs06xJ2cd|Q_c5nGPh1G_v)yuS5y)cXly|AP01 zkkrolfPY4>KNK;p4f<~|tkSd$_8=qc_?$w}K$i?b9&E;i(nlh(TQ zm@T!{=CyrhZS}{Xk={1~H8k*fVo~ZIec$3vsD|Kv05s2WzWotb@P~GxSEZr4P$6zhntmSXu}t7*3cpHbhCEMMBHF&zSXm4 z%!9bK<8an>;))O6X($Q$WoEi-kt@6TK)R#9E zB!NO~_dvtiWn4vPZ@@dvxY~m|oA){ccFs)t4qG&?@g{#uDS4A?GQG}3tO2bQ`6J5& z(!RSXHIYU!p0oy9WikZ-SiM``>h3VEcrBB6{o$IK?KLO1@%!D_;ntOo4tnVAGz0bG`x0Hvz9^kHw}y5_`=%?9x}6`H)Po*0tf zGHep8Tb6_MnhQw@Y(NNvV4?5BvBaO1V~Eqff1D3rSsOGLeF%QWajN>qsp=o6s(+lS z{&8IW_`nR(ReLeznE|4`xL1lQju)?qa(R)s<{v29DA)&%O1k~y(8%nbe{(%Z`^Wgw zKyw-t%eDkMZRUM^q64qHeoRL%c=qU6J_7G8#)h+zIbM3gCl9fS7y5CJ{H_ma^TuDm z$9*c-*f0Saw%NFP7%uKpHe(}p1i&O4{z4n<2(PSSpLYx?1awL=?9s3=Yk=dFi#YgX zdmzMb5_qntekdJkXC9TZDKj4B1CyyCc<_ctgJ3sa1eu4=EH|X1z)jBynM9YZyD7qM>l(KXtR4> z6H7w0L5D>ikIpu@PhGxzy8BeximPqz))+b?5&Ll{y|fi$Grc4JO_Zp-vb`gIigdEQ z3(jk!eDUmxeb(`q)X|?GDb|-x$FCTu-*uXR#hCjVHHF1y&ub@eTHw37(R|Rq8%%0O zd(1LSpNI9gvovk`GK^JmwPBAT_a90)p<%4v3+&(jZ5Std=VG&E zT-KX3*4T^TX>1$D(XGK)?k?ksfo_bvt~9RtO&rAbfagf+DMOpPLo==#1@6$0#poOb z%TOkZfy;OJ@H!{9CzKFg5N|vNy%mf(32)yt2(yr;xi^DI--HXn3N(vN0R1)#KVms4 zC4Ar1JicPgLMT0oipISB68hXIcAlJl5m+X@Ntc-oUqYHG3Hrber^4M#ws*n+kqkDo z!~Sg1(_S^MzH1OQ2H6ia6~yXkZ=-8jX7sK@@lyA@11M=7=1`S-#H&+d&Vwy0OLXhwo~rh>lK zRSmU>LM%RRF(zRHM@tfsNrPfP>IN)+Zj1|nKI-1^Q>ZAgoG^~HF;6;#H0q5Fn?Nn5 zGmH%>(6y+uD-XRcKGjT0XA~SVfW$tCJCi_1F~0BSsv|RyDv1usou?aGVcC;#Ho&Vc zF%9oG7+2RopHQ{0haZW-23%?Oz?V7#EO42tnG=YzPST=nP}8V5t3=`fJ%P;e@6 zKPkFt4YI6L(4MYrdreH;Y)9z^zb@_<#I45_Q!j5|;%A5Pp8kTvG#xeqcV@iNL8oAg z%2`2jhs;Nd%uo8x$JLHk@u=G(6KWt`slKtT-FM+I0!3r0#mLXI-CBxGG2kWDdvE}_ z=Q4`KJr5r84<)=t@KZjwO+4q`5*jokYEK8G$O$YdZ+Ock>GYxCuadeqxfctnA;oQT|O9DVv+hP zcpy98XS4VmG?Zn@=rXq&SJ6jraUfL^-ltS&AEH*i#RCwJRrEyxQj{y*&@j}0;cKm! zph0A+yDC^&XvMS==9F?|Z2T+g8$wqPmT7_A##J97`f(i-j1UOAc5s^`m9C3PQ}H<& z_h}^EAI-$LDh18iefn(U>Jg%a#qHcd%6MPXpk`Eh3mzkb=B0rk+qk)96O0A)JuN|< zjJc_)I}Ms)hr8oSVglrZUP(^RPofSlR-&69GN&| zN3|fL(yhLSzoflU*d&4%AF-?W8Eor^!2w&Fdd`U`s`;863>GiKIT|m(i?eOPYO}XuaKLk=v(9mv7K_OIqe9vAsQw~@m`Aw>67uxKfntw zD?ZKUk7Ld9#_H_{sD3@WLixig^*fMfYey``0LE3XK?cC*!5yd&oKAvn8~YR2jCqB! zar=@yduZCt=%QCdj-}sqm?rqpjZtu`KN+(_#$Y8`yekt75G`nzP)EJuS@$6$rx#31 zq#{#9BAguT1Mg;$KrlsP!>t`+W>;3&Bp3oo*t4iTWpHAAJ9sQewwG=>o(X|Kj!8QL zTlRF+eTa&e@%@wWGz>jsqaB5Wk%qDfdq2E>0R%K1Pc%I$Gpv;op^`3Ef+mYhS1MQ^rekWUkSqQTr2|xMIG6g z5L5HV!)$EIpbxz?egk{Y47E3p1{w|TLNjo$K=Loz15Q<(Al~kIQFgl=W z-%Js5(07&aVS7aOq-od28@;d5$?Zss3`T6`b06v_UJbtovgz)?r-_=)Dsa3xz$8Cf)uH#Q^fD4+^x9ErC=BkkgD77#ygmdH!qh2%Ue8 zUWmFQOX|1&TcK`v4yo056ErA#^&kzB&FJ>mA{pOv5M%1=*V7eDJ3yWJUh!8T zX&w)R*$rX*GdAcbCK=5mjjPTQA}*7#G?n9Zb&NtsAsk0pqBB}JX=nQoGE2-&HzDj} zV`CgW>odW~?-;q_6HI9?zsOp;2Qy=cWN9+rAFmrX@6h-8(so!pK*rT?pBh@W)ts*f zUJ(Z_j+ZHkM>tj0+4)=1KAVxpHsd{~p#O=Y$}MC$E!ZY={usX0LWvf0f}BY3ucYDD z_6*noK?%;st#9j3q?A*|$<-|XA$-69;;>NFXX>ly>wk)-Mod%8NnI}(#_aRo0HR2G zTYb;KPVhGXf@LSr8T+#^W6_L~Bz?_Y^J(syO_U{f;nWBCz6psPqWTsiCCn92z2HK% z=6@LJ;*oi{hq%dVVtINTUR*xk7h@?{wtrbDF{9xBGrCo&Z`G6#-Vf?RahoBZWvVx} zqc=7Y2a-IMbmLX8{{|27i1c{-kue!T1qn#uh zCY4K-#UBHeXlzJ44lW+>w7L&R4ity)ZXw%bCn;N6!k6|5-iF0tf`mr$HwHz~TvPlKiMCm|mAvRH8N zXVhdd#w12jZv}Z1g77&aiQeNA$Th@%M(xYADTcl>D0VmrxZr7`xL8wX35#y?t!+WE4GD=wyA>D9cN%g^> zJp6QOh7v(DsaVx-ahsqPt{OeADS#MBC-`6fJP?5WMT-(2vvK@!dm!K~8Vutk-urWd zarK=bh9`6p>C%lJ~E!M_!)(S52Mn-B4@`&6Z|@hY?>Fy>F2A+Bge zZOG4eD>@J|rO%@npkXe}nN#n|{b5Y}Xt9yNP*!eqe_61xKXJ{*`tVfP}8?=NFDpngS3;Bqp%nS8KEmx54Bwv{TkIsnB-$3MYNLpA*OPo@k>18#@Fi` z-bQ+1MAE6)NOdpfT%e|ntF53xrQM{bJcTFhNJLb9J01<}cCHNU-~^}wajc>L62wps z!O;E-I!r$;hGG2T_rl7<60~t;EU;5kS`^9l#%5X! z2mH103(MR;13fG|e*2_?rMo?{girc7AA)OS(s(C{4F)6o(j57<7mUQEqFQ?5av ze;)jOHHVODeljY7h*ctpw}wjhVga%_#k1?gJ6MR5>yQb7R&bpnhH=-Qgmj1tFF~1m zj`)8E;m3Y}ZngZ6>4fm5|K4^7bVo)}=Mgr=6^+L0ETvz;ymw~cWun>*hGX}}rNa~8 zr|4-!c+&+rGw~|hKHv%jiJR9zqi^F2U}W4N_|YJmj*FnfCcJ}=VWe{&rEF-$ON{IA z{-@kFAl_YcAu1g;<($|Q_x43Ng|5R;cP?I)oR2)js4TFrDQ>e2aDG7%pOjDIjEhI% zEyn8)M4dO{p5dXOu=nZk+V~D8X9vh>La-#~ej*3otf61}g0rhynp6PhbJ2(@8f&(R#BEPiOBR#SIVyfr0NjrV_)3V9wgcUdtV|XKd-=-9& z;RqJF{trk(1MlLemJ9Dmb(q7UN5*>Q z#e1p;$=Bz{`C=iuG%YtynWh=&EfCX9CuwixRFQE7GLBBXDQ;V~%){ns@$9svVub`R z^PTEvHSDt9b&5LlrEaS?8SnTFUyGRS4N?5Uk&}2G*_q|OEk0qzr6}r?)JjTmRtLV< zbq-2OXKi{$zzqbw#7ln>jkGa;A<;b;OtU>HI2}q~y`R=}YceF??wyZy+&68d2dLH1 z`wFv~lAG-KKDW*Aj@`3wmM6IhV}5IEyUCpP#)=Q=y}KdPmJYfz#ag;8u+6jJ-W1PL z3eA*LitXJHm%ZfHJoFbKpD+UohzM{oXyr`En< zQlNdkdf!mUkLNWxSs5TUpso@<^HNybi}G#_l`m@l%Q$;!3HHa-fX3Hsp8b}zZ|*eW zq+1-7nN#|y&GV+c^w^}GS>7pArqvEIKGNFnx_IA1G84Ji*;@K9t9Kc82UIkt;HYJ5 z+LyIB_=Y4wqt$zR+N(>C*}cC=$??ujxz@Yj@svDo+5cjZ|HIl`$$v}Jc{UpMiC2|r z>xUm~H{%=SO;=d4i#W&lx2-vbV>yN$IUd+#*afsD*4FAbS<_xydeH1aL)nfk0&gwd z)cD=W+J=d25k8y&J<#_#IR^OK^K^zS*1ub?#br{(6W?4E5nx8C`=n7%zJ z+8eStlv>)r^L2w8O>i=OK;Izk{__}~;q-y=}C?dvfx_6}eF4~$*$7UzRa z$#?ta$|}G?jB?+}Bv=?B5fj;e%GyC zwsm>Dp(W6owsl2^Zvk=uQ{>j7#_w?8Q_Ax5P_V4+v3Cin3AC8gwyii8cmorl8%9`5 z=O*K`$Ph5+Z&R?AMEhxerf)VOss+ofsc%`DFt4cZ`w*v+S`yx|c!pS-Qb_W!q8h93 zYqzIuTl${+)fmW^#dEIF@^8E^iW%>Dkay@V-_t}5X)!btby%g|ltc;Wo*|S5C2+Kz zCi@zQJdA#>O>WYY&8a);#^-tmc}eTpu|MWoZ&70WwO)Gy-sz*m{{5KlNHnJ<)SYEZ z+fma_Z(FZS@+&+r={szB^O12S*hXGBb1>Oc z4P}v)Lj1F%ZP`lENje{Z+L;SQQvX|g7(~ja-gKVc6i-cz3S~__XieRN^BZ+f0+kM@ zHkv%I;VTLDwEaupLRoY0^%2kZC0B@ND1Psex8d006Z@f}uSNVelRO+#oS6;}ShYtpeeESdB#l=XaA6Qre5Sw->qM#VzcCb}f6=QIS|Pe&$TlgdAt zf1-awG4*6!OvhQhw}JshcO}`pH^k?7Zvfk`>(q@ew!*H_Q(N2}iO?D=Y~pYSvu771 zEwy#u5jkN@dpzxF@7LnvDp?(vZ}M7)<0}c+;+D{2O+fp{3z`@uiq|w>NfFx-LH}NQ zqJL9iM~-Koj_+)^j|_CC>zl??z2K`9kjWN(-(gQ1KCq$RwUcJL_xbdMR$J>~lP&G* zCH?iLpLXtRr|>=d4kaA0C+ukdHFCu;=UBSj)!G)`-%0tHD4HjR+9axUm>Cubu~Xl7 z7A$Ka7G7kJ(@{w^!u;38DIF{5-w3Ku+q-lsa+211BpD0ld!TKxF0=VH#NF2}ta7p& zpEu#p0@6}<>a@|XHQ}JgidF}7M8{4ovnPMVxjV5{0n5MEN$#=T~*4HV|5hypoZ)V*tl>_#K>ob$q!$lRQ| z%X7ARROoN?WPTS~g=&8=uG;%y6OD0WB34cscHS3X_tn>7?!uBsgu=yi(a0;O+5cKo@b*$U!dQp^oL6GWeiVY6)qT-(Eb!G z^c=w=*e6n6#LEmB=*6vGY*)p*`@UCb`~ol?16(ObnC8QwML43>_Y}gKvXjSWCCd;R z6;3se$EHbIYaIvE+H7dSn&p*PA8b98OiIJhh7~@s2OHn7K^(LbC#{qH>==^89)2fY z$(7spw_-vIrwVxX>f%wK2}Ag(Cn41BuWj=t_7lg{TShJ!DT6 z;sZaV|E;CAWKSDb6Vh7k-r2GB#^uv+I>Un)h}*sSv31k0^Tyt9#ra{h%rL&`TI^YD zp(6{7wzQVo^R4)ni`Yr|l_(BQkbIDyYTva8=S%!_YgW^O`{PB3?s*rTn!fKNJ?&lR zdOGA(*ekT#`nE6mHzIte>;PmG2766#&Ipm(MCOW(JpwqyU$X~{gZ zdjx96?1^{Iqin6I9pv9$z?*HiXQd!@v2Tv|i`vrK#j3M!$$O%`%gRx8vvuj0))Q}I z1Nj9Ql2GL!eNGdn$7dxwpB6?nte^J#WPMT3KwHo4Uh`e3@-4OFnrtc9%)HY%u>BmY z*9cn>+G$Iyy9EllZRr>2nm6w>?0^hW{}iT5#9JKU`lKl{ISr}PkvIRkv%eLmY~z5* zoOs`Tn4M_469HRkS1XR!gS#F*uxDAaxoJ_dtrUkF+TAIle0tL)y(xzJUg9B6&hx>& z-|9=U7}{IENWvC#!!a|K?kt`Zykw6_nbspoXlz>+>7EQc))E`^wPUX5?@bn%B8O<; z7JHXHtz}7?rRiKs9G|z@r?<8vy}f47UZj>3d=6R24CaaSkUkzp+Aek~{F%&?IahJMi;qK~C<#&mq<?G}<7&DM0bapSd+gPIuH^V&#Dkf_Uk zFpNF_f>xk@;o1OgSNjsDW+fpF*K{LhQSQOB#*H}|t-@c}pYG3|ianDB*o*K_DrWm& zXz*)_F2pMQKQR_JZY;V$YuH%N4U zJ9QTp??F}$rq4DGG&UT-y`FkdZ#|4{bM`S4TqpDKdK8M`I$4c_qKQwQgV?r?ZF4ZR zcLV2m&YHBBrWza91JNuTeQM0o7@!Z?4Kg+!1+&FU>q97$SZTcjH-R0CnsI^}<<>N1 zjOT0jrz5e4+ud#OeBk~7se3y1bl_u!tyn2P<#W@{hj(oriw3bbu6hV%f(_cd9Wzbn zn*ykuw0$eS^1PGw!SZ2PLU_RhLOgp?zuI>y(^KS1Awpv9m0^!FTS1COq(mPnG@TiPz14$^Jx+s%y@$V;Bl;xMuWFucfq+UYVF=@4aSWH zIMs6SH$!lU8a5>uHzp6E?S*w$w_ii;Uq8`;ygTFuN8M=ImCYNQG0evBJww{NAw1licPzSBQOSUj3;UR?m&!9^PJH5&2tAR!JLO!13)zrH&_+8XYq}+$q zKwlvRKOPD$MKHibBr3DzMbdYU&kAQVi-{~A2I_8pSz z1bUVOTQ zQ6H5$qTO?HzR#eSU$_aOTorVltGQ_{rwA>UhZNh_HwL_w(Aak)9c*qJgs(NBSigYX z?%D1+;_(aifG@CKPGb7by)#B{jQy?WxY2SF5mUeRwIHemVjC;AV$ml#Cx}D$v9{a~ z<8AT$c)Z*JLP(L)J1Kb3R=Ok^QBA%fJJGk{24xbW{50s8R-Ig*;{Ir)a|-6zHzW%! zm->#FV_!Z>Fqvqag^UAWV|bf+0D|zsC}idTJqkxll9Vr$m$A`>ApdQkh&BgEUx+iE zo8>Qs@1(u{BVZ6TfyfR*laA^@zX7!{7324>jg4C{t)l;P4we1Wz@Sgvmp0EHe-)A!GVE^v z?XY`2(T$MC{4Ya(H2(@@A-?F?umN}az;yR#Sjl(-&-ovL2bbI51P_)W+7m+s)VF8z z0@eT&LGy1zbZElHHxTANZCL(+w~*?`SB_N+s;`ao40S8*uQK0Y1-{^?Nj0#{35xWl z*fGys6xe}HnT=zSn&%x+=bnQ?Y9KTEXtXD+6P&yE#9sH7i~JfQ$rY&&Kp)vOQTEI{ z*NmO`Rv^qDSyRS_Z-JU(Xnl!l&a(wcyARP;AWSdVtxX2(J!-alZ;!Pb&8PJ3vpNw8 zTFPq3@hrX@$kJ3kwdI8GMBn=~hKpds+8$Wa^~z1NDD zYm5z#A|<=`f<(}xd-l#khlQPmc&{x1+(Qz^dofe4nbW>7u9`?bCkL#^wWXb`wY><9 zs$u>{PP3)%#x@=?Th{tXjGp?rxe0SDp2KF(0kkW>Iibzsc?a_Yc=yIrfO#)^t#kiU zeC-N@I=s7OythS^Cm&nY4v51$i8gw>j*iiS{%rhCoZ#woAb;bkD?td}05iJ#;Rc(r z7B%ZlVj9jPmN|3M-l+XT&STQ(!j`tJ_A9+XNYjh`pUi0vjx_*#~pb zU&QK7{h=>E-von(X8(f+sEf(p=0Iy;8}>V{n2U^BKaAC})n8B8i+Mz_m1y=qjf&Q{ z>!M!7+?MBCdhDbvzHqI&WTxL@)OnSz&4orq4q89Z3>oO&J~+{EmdnEGh{ zwd}7b8F5D3yt-Yu??-9ir&#X={ zLxzeoy0_qom$>r&X+m*R->~DgyH8_Mzcx3`i}hf_{GELtqGzH4ib_kuR17MOUgqnl zd6zhU_dQ6Y{a*K}R2vS6U9*MW)A=QmBEk6+t{9qU8epV?r5H|Spod5`HmpJb8Llt& zLromr5bIxqL}*?h!wxB*>bn==c1Q${rH7xNjywvL+t_#wS{0Ywc#rtP6P14)d~-b8 z^zHpok(#JJ|8%4aN*b1c17hO$CR_N`h6FL|ZspVEJRwB5pq7J&$!5?S&Hj@p!nGc$Wm@>4+B{ zA!#$V5n;1W%{P}u{pZ_IaRr&=Sp2^oO9Imj+ z|1l1~iNg!{n#fn>uga;gN`ELn{}9Jl=^htY%{St^F(z4#8ovGot3aY$eEm6JAL8p4 zzV7Yg`XT$D$LS4ato(n)_!7R#^c6ig4P_pdwtpQ<>ozS;eANkWCAlDXaeHGgIG47MRH|2Ig2+OwEn7bhNN&{-(?c;gkDIoxUe zmpE`Tr+KY>M@KhVo95Hx_-!fpyEVz@MccxrNz6}A#CqmJELe?4ROF2LMHq(oWC!k@ zFq&wdxmnB)V!j1OeISEz$N;1*!wft2i{pDfap&V%oD0#6lV1aeknODB<3xjd#dr$n z;6pg4gERoq3+y9ICpa@cN%;B@o{y*f*&#fN@KwOne+R}M!MYY*ACvrsKm9GP z%KtyTW~?s#MfkJVD(sTJKVwWfkA99Qyo52jZt=T=F-A?|_e;iP=hJTuW123e-~U9# z-^5s>ad$7_hdJE9;WAd=|BCLuVtik?{*dI)x|*8=pG;19U05fteWm+<<$o>HWAe)U z+g8bI%j*9(^vq^@nxByQPy8d(#n=BUKJ=CDTvcC1OwSy7&ERWa&;4KdFHrn>TGCZejQ`i3W?`3ZeAwwEsQnBD;QTVmEo&Z z_?;53RnOlh@n0FQ%agc;@kB2FzZkm~%kWPbAG%rMZy6^s9`FZQUKf}De8w7=?{dZq zGv)L7jPn;sT*Y{UL*fR;rpXd}88-rAho6<3m#= z-p@FL@yCo8a{6B}K6aIi-_6*>IN=dl{`@Ot_;AK;yBEs-gz>~TB)(GNHzm$i&oiFG z*!8XqFJZj!J&7w-`1=yy!Fb{!iSK1x&3FytHpY)Cd|1Zcz}WSn#4U{1eI#)k<3k@y z`~lq%*63dW{260cO@e~|b$j3+)K@uQ5_F<#F&W1S4&$an+eR>r1BW%%nV z{$mm!RQPd;KVz&tA@R42TNuYYCi&I;qzq4Doc||@FJzoFP4eS16`yg23ZE{+^HezF zV#cn$GQA4M+8&AP)$?yjd@ti_#`iNm_O=XP%h>fViJxSw?U(rPDxC34jFS$?@Yfly zV|7We%OyPe@{EdqLyu`7OOMbO&me|O6;)@cW%lOb1iN`Rm-YW5BjE^x+W9)iG zhG#QQdR5{g#_JfDFrK(ghF2*(N@5S==46SVWSn%i#4j<{MoRoPW0OhZqm1)8e(V#n zyh-QC@DYrg8DGUXBSnVKX57a37mTaVmErfO_`j9-A;!mkC-KvalYTGptBg0SmH0iz z3%Na=Vr-frrQd@JK5)^Bdc zZI{dN2UL81Sc{i<2jdNl-(%dIAj7}UzAIw;OT{~;(r1rTjMX@<-;MhcRBk*dSgX(6nDOmah|N+Fu#>S^4{rwnUz&MuiWsKt(r!(%)IG?eWEYtrPV*}$l z#xaZ=824kmmT@fOKQoSF{4(SIjNf1^bHn+Vj1B9g&liki7{~mX%g1;a<5D@_LYQBIkFQ@nFVB8K1@YBx57v_`gX0nHXQlcogG_j4xuG#dtL1LdIhlmoOg7 zxQ6i+j8`)L3FF^0p2YZB#uqc*!gw6x*BPfWKFD|?V?X0qZa91m<9NoEj1w5U87DGc$9N#)9gGJtKFV0>moCOizr?SX^eKHdjIq*p7cfrd z@{D6Vobfe`&t{y*Sfed8_!ToYFs^2tB;NPaw0jv3W&9}P7>@re<9>{{F&@J4KVUqJ z@oC0%Rt^1(|0Bz1U_6#_EXTiwaUA1(6^=uD=(kXXGrpB^f5vw+PGtN5Uo8G}j;FQH%#Lp2RqwaVFyg#)XWNx%`Wx@Li0D zbNGW%_*urIID7}=(Tv|`EDp2;Kfhr-mctYOCh5P3@kqvJGrpSfIgDpB4$2o}C0~_{ zm3%E{tmJ7GVNbW5w@*8)SKvyj;Lo z$;(8>N?y#2mAqWfSjkH{Vw8! z_2-OL|K7=1_3wlJF3YR>_YsU$|DMWN_3!D7RsWvDSoQB^j8*?$%~U z#umm&jPn=|VSEGQp^R^4tnsgwv9e#>jFtWJ0ONk^?b7h}T)8UHQD zF^oT8+>dcP<5 z9~t*!yoqrv<9&?d82cFaXB_t&)9aG-B{P;t(?+Xs_P8<%TNtbLvbidp(_6$?rB|oI z+2bA+&hZ~&tk&E9%vi0j?NITXWddI@HZVTxA6y7u7-!+VR_@LPttNa!+rrj*` zb27$uTk%`TcmU%+F{W)H^xMK%(R+w7y}3fa0ONrYY9lsEdT~sU_+>E07H{z@W{geS z;#bd@PTHW~1B{a-)c(qt%?WJ>V^)WFwOi)L=7KixeQBpHjPvNkuY@s9 zdlA2S#>$>w#aQwCF~*ADe`l=ty@j#j_kPBT-(NCT{7&2?=~evx31h`?ow4HgLdJ^U zF2;)Ae_*Wmy^*mh&nt{odER2I%JVT}Ri1AdtMbG?FX>h3nHa0|G8wD%Zj6f0Y!17) z(y6fv2X{W*U)hDTbh-llr*sAWIk_uvGu(M_+pp*fEQLEcsVmR`7ns-;xC`zIxX&){ z3fK_;WNKI7akv}d-nyhK;D#GFzAJELN>|{eb3g;!^JjMj7QrP<>k4Ee{KLUrfi-aH zaK{IA1x#>n4aApeaLvVa2g+fGJBf0wg}eGJ&^@dx@DNuBV$+KKDb)YbtB@wJr!}&z{{(<0@HB+C9WP^&%*VdtGWU)aE&PYPvG9bGZPT^ zpt&n>n*}_~=n4$M{WDozff`&tLOCW3?+UC=2F*zOKDb82pN_Z#)4Kvs;nnY4xKHqj z+dJWs;GUk|70}_HMY&CIFJdEH5!_YlDYWoInx3Z&lD6)?j&;2PjQDhau7fD=l) z0?D|Bw;wSsLFYjBtQeEvo@`k$9>G1?rDCj$dtsB3BEtP3_=_>NfduXgc>Cl*m?kPTv zcj%tt)7X*jDL##RXe>eTY0N|S6raXBbWibVY)SVNpT<2j)}Z(_=AnCvPvafBr}#AX zqC2gT`2K9o#QoZe(Y_@g{ZR>EaM z$pOXbOAb`sQ=Go)Ue!0n>8rlO`4e4t(e+K?^o#DNmHpCicf&mmzie35@T-R3G(6Ps zhla-*o^1F_!_y7VG;C~mq2Z;5)`qPOuQqIN*xB$}!|sMR8}>BpYk0e1f5X9scN_lQ z@Imb1*bieriv2kDlh{vVKa2In`eTp8w#R-Rdo=co*e_#`y>iU_)hl0_kH2!<{Pine zo40`-CW0?mO31M31$1vUgW1zG|-0&Rfsony&uN z`rGR3>Tj*TrM|r0QD0JjWBvU4IrX#abLwsNmU_K@X8rW~YwD-gUsXS){)+mE^_SI8 zsK2CsT>Ve#$JAd`Z|c0T^McM1o#%I+*LiMdO6NJ9XLk3VYgQgGKJaGEJ&56?!Hz!O_*c?ASe)E6@14ayZum9Tq3;K`f|6bhMxCL<| z;@*p08@nKOMC^P0*7mFDXYV(m-=Kb<$Gjf1K4xW1MT|XWLd>9;&ke5|)*DtDoQ5(( zk-==3Vi;pcHpCjf(LUDR(q7S?)1J`QXbsvjty){GE!5^|`I=SB(57k=wQ-tBOMwQb z_U$_2YIpfue%BYSFI}Izj=DZ{edIdiI_&z?^_lBq*C!d@wtSoMP0KeKCt6NqeAn__ z##b$0WgKfcmhpAV*BQrKj%$C>p4J}Ip448@Uecb?Hfq1rR%v%@_h=7kf6#uV{YHCR z+pq1>_G$mtKF|(o?`p5&C8SnutF~KvQ`@P%_Eh(#?)$nQ?Dlncbnoas&^@kuYIl5h zO84UKW!={9dEHN;*6u?M`cPXtP;=t~Qv>mVl)&P^GQ4IpFR<>^p;M+)3s0>(edx65 z^up8YIu3Q1Iu>@UJ9+4&>Eyzb`CZjrNnI1W+PaQ)HFs_3%I~a3wM^`6>pa%k+_|CC zHQbf#I>&XkYlth!HOw{Cb%ASyYozN!*SW3~*ZHpVS`sr7TLxwfY>Cf^Z%N2VXgMq6 ztQKR2v1L%kpq9ZIgSG3m0_|to4O+IAspV?dYD=^lZMk;4wn)24tJHq3jn`7O%e70< z35?P%hN_;XrD^H-K;2|*l6JLrnju7wRWy zTt#Ci8XwV^lg0o!_qjF zR5+Uj=(BNV3)~2}k#HBmjfG2vyADeze~u zOM*iEE8O)c=ukA6LvUMB*cVaQHWW61!rD>L7r-n#3OWD<{Q|nXKMGoeg1&dYru`9L zXxKOk-53hGYaG5OJ^`=nPr^ACSK*A1X`1$oj&Yn-)0XEUpShZrwh&{aa!tF*iS$>X zFlYFo3L<_ej_A9o9{{PM{=y?fhl3s8^D`J?@axCF*r;FJ_x$?*m%jo3kAGBpD!M9m zbaB70c>gW=Ft?^s1-Y~g&7?tdh`9jQ%UU;myjT5>!JmG|UZ($+zy}$c)}2ZB;@47~ zLB9B)tR5R+rwA}rRyj?J zs_H7s5M}OM(v#soN=iPIFP;exqx)HwTuXs1E805@Q=PlgPkj97%o!8P#C^f0m(ma4 zUL@{!ziywAx$qNcsnGB7(T}FjOPj)Sr2Jho<(<6N{Bn7^ma*2NX}62aNzdf#X0yed zWwG1UGm+P49=;rDNLs3fy04-8JCZM(x%>6kXRzGQl>VXT-oN#+^s1r#BIrZh@1><6 zFE1yQO3%Cdm%kgN<+>f`FfU%8srWL}cP?m&%=i4k_oYAid-IQ`B~vf5o{64tzSth7 zvboZ!j&7ZiDClaQba8rg9hI(_o$;U4k==H^Eq7Mm)YQe?F7hOKQFR3FrK>vH99J+i zng`E3yqehl%`eo$_acu*ISZ*tod=$Gdr{JxJbM1fvl$<@z9N*G_hocf7qN6Alr zma+BQr^J2C=Efd;sV}+vKdK|Eo;yn~I1@1;zEE2t-t2zeq>pU;g}BF)>Cy7C_LX)2 z5iMDILB6HPVkUu^tIzL2RJg7~+X3HQ=@0$xcR{_|{Z_|}XkC}SZN$v~M0We4K@s)R zBQJ>Z6Hio|CS9l6QQ(<7W=89}`1No7NBxn|FIjm71vYbD?^PA5Bg6ZdLSA>jJ|W}Q z8P|&Yz^FTCe$!PHA*XH6?(9)--zU4&H==4RJ!?jBg|4zrh%Y-HoF?)ozI-=s0kG1R%)?bPwqJL31Yb_{|6qoU8=mNy`66x1g6m+w*z@|7-wg&QkrSz~d%}pQnX=Bbv{B8PKmp(JIH(JaEb7sx5n8PbJ;$HSgvQ48*qF!#D z(O++D|GT*N=nH$;{3F`4GtS%}xzeL)p-j!T8*VsLGa|k`^t*FK9bN4iCGt<)@6l05 z;=bmWXZ5fd(zkW?(Kou%Qy1jHcK<^Uz7Q?>h4Ztlc|~U!t+}YZ3R;|F=8F6q+rNVS zvRK?#B%JI)%aPa-XW~l+@wYd=Wa))Pc1v+#4mzgZO>h_bxzeECB{}(S+*+YusC+b* zjJDyr9f2PG(Fb{hiDuH3LH)A3;Zcj`8W{;H9KJm{ zgLIvuCE8}7G3<(;Z;oh3KZ2GViy1?KUKvAU)=I&bbF9sRmIbS01T7;Q+h>vtMf1h* z{;nQ;DcE!&%h31o#jY33>SLJXN^fkR9i-)pc5P;3`zS#R$4c$oBlvO*$3=HzGQ=>@&%ybxcMypZiuu<2() zc8Ld4AEU8^4|r-Hskg{e?x#_(xFJ1!?I+*%2+sE1l+n6fM-I6)nVBb>8LXqeXz5GYQ9n(538!WM;}e6lkUU50y58FKS(jeXL%;MzOJB-P+6)WJF((w9a?@POKMbRU54KmKr9`cQVg*U?=;zQ{U?oC~5l%J-fVLEn$5 zqrQ}#;tT0I#h2Avjt2Siz%_TxpfQrtEp(;6`~1uQ-9y*?P}%KE*^#~b^sG@4@?t%F zYNnE1;z6|RlFa~nJc7PG7rpy~+fiT2j%aCYA0qky;tk1*v>Dc*{*CFR>!ckX;tY*1 zqh*M6+~M2TMCiJ{WVbJ6NAg1R8{zGU`Xj}c-ueKNq3AaK_A)<@nL>IunigA@C11De zS$&&!Vyq_kLUV`IhM%6*ih9{9#!Xo+q|JD1EPyY2_l(wDZA;|P*lsw1L>6g#qoU{Fshz_{kEkQ!3+nO*($bf< zbEPj>ohfJ`o)B-6pZ=TR%YxNgW?r!KlNskNH%xJf!DY9y<4vpj{V9OHXx2v?%>TGD)-?zP&61^&w~>eIMP9h*!~LHPji+DgAI- zdQo>oi_*J_7HZRq7HZ?sb~e$1{xU*d&W*huW%|Ppr==HlM}4Cjt0`Kxe!C3z%a)lm zE}^=M9;*@WqG|E|wi4;A{t>kFRCmhWr92faiTfYOpfMxKOK){Vx^CmwT@kvD_IFin+tyY3W6?^rVGkl=`Ia#%&gJ52SmEmbB-r z5pw!p@}(Ee(vy~?+cyeY9{OFXSQA#X#Eic;f)?r*qUlroP}ei?<&1M=cwWdZ@rCNB zU{g2R&+9^NC@gwSnCzV1=3iv#LTy^>y^ea(EIs+MZ0%!$FS}n~KsJLI^HY69ujdh8 z#`eD}f>(+k>Usvg^rBgM(sF!5l8{}}H#DD0bKkw$Qsf7n6QN%e4eEL(TFx{_M&mN7 z8{!LHX-qPC^0T6j$mYD|v(phgpt_81=ZXe(Jp(PhXt|zzQEi&$;Hf|Ai!Ws7{3mU? zFdvie#g?4>qWQ3>X!2XppspcZM>0vW@cHZ=VxD35>nqb~p5cbFX+oE(C&-S79>Xer zsH@;h)IKsvOCgp(3$4Q9RS5>Kp>ZSC579znHR1{N1w>zTe?)Pj$FO7j8^~sl=o=@` zIt0C27-rWIU&Jy=;apoz4%Qy?^YX$sxY7FJWFaq<2elircQtJt?9BVcJXLg?rg+iz zF0GGZ9SXAMpfOIb>qn9=Le=$23+Xh)6YyA!k7y2)Xd%8tj~i+160Pex3QJ*I3`)P? zhBabcH@c3f8YC^V=I7+6cw$=Zx z;XURVdatAGId*#=q6=Dx9^%Vy1I;st|C;txhTMB-C;dBvY=+J7SGKq zxUSHeN4xAJe{$|n@`dy+)d`JZiC4-++YG(wV#H#0wob`_=XUBo}o648zhzHwp($-Am6;>)5%S0Kav!F}Y+7i=ffuh)Cs@DXZ9 zWJ^(>gz+@eZ0S>8XwD;Ah7=9z+M9kc=jB+6i}G@U#1ShZezX_oS|Km9yT zkR$ntwhubCn6Pdixi3=jLtR64Bx#{GE%;K1{Ww@DpJVTBr&4GhQ_+(A^u;=rk!YcD zqns-Zm4W1WQv8Gnc_A92=P|?iBJ>OKg{<8oYp?r*Fn1yBH`2S*2arxpT`)|S?fLZ? zWUEBa1(9EL9VvdOYcyY|B%+Q)*BB~Sg=9Bsf1QiuDtbLY){Us|U?0#YEoO@)KTFS@ zpBJt0TsA@mF7OSI6ul%j=byx@j1kv`FkpNrbte??1HfyHv2Of2%BY|LlHxQJ+> zItu3t$u9U4QAaOeZ9jTm>POYl^?mJFCA)65pk+h9&!$s<1i8(i`B9>g?1*E3x+j7! zL?5-Ys514Cm+1Z|2lFq*Rtt8ZN7s!?$pu@xTGSEQbR-L;cU52A+dg>Gbmq#! zNqcV8hT~Yn{dDHX$#+KZg<_Zs#0w?GS$R1*7VMtIMho%|`^h$KD!n#C*}K-m=LPLu zlGB|_UW%ZH^iZ^|Cus?_>1bL+-^jG&+lsI^zvnJ8vUk-w3F$DRht>mVKNs11gu@6I zw}l{e}Qcv_lA<}ko-#fOhY~GnMw1f(PLPm z`G?pHyQ@ujckqtj7&ej?F>;I0y5Y2to+ElBEg6vMJ&@m?dro@e74b##FEkD~GcEQx z^X5bfG1&~1AL&Fwu?|l^4&S&nW`f(1Jf%pAzFw(k`E7L&>S!H zZaVF2j;4j$(SJir(VW~|OZZfWtX%wu#`dJ!X$(Sp{YV$9{Zb1*$&YB$B)idT6SO`} z`d0BrjRSVu&kxEjy&q6qScHzTC_-j~q<|JRo~AsA7Mic4K7i(fsNSOOI?_44%^iN< zcv{jjC$qPAY$QD)n?cb+^72IW!-5v_i>8J2OHW#~9%~cP{gI$02P4Lw6Lrj*(72Ig zk{t9u-Vu9N^iw1oQFB2q;$8H*AGN*j8#fAC?6%ATJ+du_*O8i+qWYk*Bh8V~eo<=I z)Q+P1WI;=GfBA!H5u4#@n`(%H&|Qcx)JId9sh?KzLh{`C=UXFWm*Pb4-6EL{pJ&+k zb!6X2{gL2{o(Y|T_Z%biilT<>7dhua?V0kSI$FKu*Fs*1zUXm0@h@t;kHlQmj!16` z{d?)Cp7x7*PGQmfUiULgTI4#cT;n5JNLHyG(K;;IygY`Dc*m1u7qmq9opUfZqD_l_ z`oMMByX~VxZQ82m_pVn$d_kT<@5+9L`kx0NFQZ|TKP>FL=y4g*d?sB-{k76BO7Bt~ ziJ4vT-b7!_3C-`ScM560l$zhAI*XRm-t4;Q`Q2!FQ6+!#MB&VH4!(i?wU8(1Hn^9i z?JVX1Xb-bkqrq$aI>sOL9-q*kWHTae2FhlJu0Y>%3VZDTne8Z9Cf`EG8)(Ir>}*RG zX8HAb1(xeA1({lpAoh2ZF0KlH0JC=5EmdW86(!E9ny`QZjN*!O^2~GW!tg6|l$Dp3 zI2~p5zMIMouY}vO@M4M?Qw4L2vkNS<=U8&H=5uhb5zRK;o;PbwXf}-2QQgkm5ycAj#AKTs;;T3cGNg;yT&we+1QCwmf>A|izWPB ze3BLV(KQCH(BUkss;en=ELsw}FAu-JYRVFAmWovtc8^#=|8j~&Ka8K+XKz{+RlX#F z9lLkyn)V#p56J`lOu+It>9R>C-CmfNU1Y-Tm6uIY0esD?c2w$iQ&!b2x71aZJ8#qS z>YS#kMW!6bEmbwQVUJ$rl9Gz@G85v}lsL<)DuX`PmsHd_g2+-?cS{iDmfYgda;r?1 zni_}$XHi(S26%|#brbQ*?72vb8%2ZxiTH`3Gb#k} zBtsx?v+R&_J7kO)L^#`Kw`faCoLY8}9#nj#siNv;(;`r)&T62_A6u(UFyXJTuDZIa zhVr3IiGpk3ov4+S*OuH=;kdN4y6#fPGEj$-YPGcvtR`W6?4p0wMmEL+r{SW4AjL|CkH5U_g+w9HN&&lZbnq zj8S8%t|+;USf8jx1(cRlJL_s3@Rt>A#(Kvbdr>iKF%VNySK+*rwH#G6SWruH+Cy?C zaMq=ZODZcJ6}8%&%GzMPD^JOHSzVVpZ>x4h#0vA55kdPc5H<13tER?fx>)*MY$~sX z)Z!Qrp)Mz&h@wf?kOQBh%tLkbt8T@y=Xkc1p&LsJZf5Xi2m zLS>GFZmO(WT4|!{M+dQR2hMMWtA=yIHN$1V<-_GvRaR+*PDhQSN}F9*QdUz^y|}6p z4H|0NR9J_mh*MuAC@*tpSB3jt9S(w-D$#&)s#c0r9yGJ46p1;dPKAQG^imO}%pr7b zZ&8G@99x}gGCL|9PKq%Wtg1t8){Lu7MH10r7E#f?hh>*npqL`;5)G{kYOze|M;HV6 z<&@XfQYIx%sQa7hoQ_)2v@2MZvmhh}<4M`>Jr1RZ({RwPafl9y|JYhm)cg;@2dXpG zRhL0ynMkHh%f>>i#4jYDbN~-Max>1~fdH0Q);b*}Dq5Hvi+CbY5tG_gSloOl$q*q# z24&tC35#o-i!^INQ8wZwYMF&sWST@<1MeAfrvkVXGI1$rBI$v>QD`xtl@eQOO*c`a zURv&4Y=T;LmP2_^mp&!D$hD?%W9v|jO3{^8RXWiPi9Qk=PKs^0nBcXU(Px#)C|NQ> z&w7_;j;LGE(L*fsx@F}Rv`EI6bc(K-u{TFn}VLfekfPw~@*S{$x^)B9U^IbD4I_EwBzss>`)9 zm=b7iOUo;7xkan2LtnkLWC?m&WlVq*#igLMvaVXwtI=1K*~`%ZM*YbCQ#K&kfw5tZ zqJp>58Y#9_mKHb`kze>P6mE8i@a!6g!z}C<5e?zYgWeMe3lB>`RbJ30Q)XR+*%oQh zg=HE>pn6cH7-=r{H1$AFu_bp-j->!5K9n;Ij(J6N zRDLtHtDKTwIGBxDQs&7wzox3xQCrIaV z57}x9z-~uPwlL3v*1d>@U>R5_GiFbV=+Z!!S=#)#1N*q2E2#h%f-J#(W>ppG5#mTB ze}IG)!6D|VI&_o__@RhrB#?%ONJ~B;y;Vi_T93#nvKrwLUW=sK9F^!#ke0fi91bw7 z4TY44-A@h&7|IH|R1%Z|a#B#F7=}fnVVIH%gCglL%&Aw(9*BfM*eZ??w$;je1j!pB zK;DVG*^{W0x0EA?hi+9VI5why2#&=i;vg=rL`*$Lj6fnq8IX^`ODKO5?+_|*pf|$Q zfTAhC1OtFDh)08A+%ROK^1)!3crJ)$*E#AO(vl;d$tUJiVki*qJU>ph9$nFxt4VzLAl+}eLuvU z=;fg>$u6wBiCO~p3Q{N|dkXfeyD8Ee4DT(rYG=K7MP>&EV{^nXrk1m0>mkxpw(v5J zBGKeXShj>iK}cluphxhDpil52`2^-FBeRJ1pvlbWY(jB@$xiOYFZd|gYuOm%TQs^W zD!?Q#-Q?)k<`opvd=tz`>0`@{^3jWm3T&BkiY$f2g|-{yb7YW){KbQ6lE`ei9xo^t z7v@{CY}qy}&r?3VdQu`X04WEfhwMw0V(;-NS=hgpTq3oG zdkB#7$8oG;OA)7sc7i5=qfwC!?bOH;^wM6!y#J4~w}7i+3H!%qcJ~ww1}X+BDvDw^ zii#qbD0U$Rc6WR2?z+ac+k3Cw-QC@-2uPpU-I?eA?17`8_kG{rfBoP&GdnXo@ys(% ze4n$Sp*S|}M_#n%G<#rFMsFQ0X=ItTQe=Y=oUG8u2HNySWsv^w87x`a z(@rw~Q7m&_HLA8hK#Nh<_O%_!P*)2g(Gr@Q8s`*~_ML`nhpEV@2%P5D&BEzUoic$|HG!qEEK zx>fW4@zM4|8Aa@j@_*{$uZ?BS9IkIG`_zTwM4&fNdk(@y+h@)kVxJ>3<_v%1Ga@46 zYX)IOMxlSPb@rTymd%lkX4c5$I2waUgT8QCh?bFx)x*`RLA zti99H*{Wz6*=pG5wJAEU+h!T|&&>Z^->6^9XD)<2`|WM8TG48b0}0*t&6*>1WS&pWiva(im2n9bYI&!j9bYx|% z=nx)$R&?ZKsp!bcTG759jzMQGf+K0C3rE7fnvR5{?~b&iOOCYTNse?@nFSAx|Bz&& zvI#6d%Vf{aBCz}{k~K4%5EGTjrLy*-;*Ukk){URpS%u!Hdf^D?L+0xc2(|B-LOTi{ zc&0V`$(gf0C8|jSE!^bCvoeqFUvu$z|0Sz+GslS$fkLU{7|D7rWRc4pvQt#Ex=k}r zA-lK4Zt2##>X6YK;@6Li=6HD9e~&~f^_xhBKz8kysPWcMO$LQ8?WbEaPVsDd0?u*- zisUV`h&GO#tfG}euF-HfcC3S@qo6p8!XO@|h-byeWuB_P7e&s3rR@TxD+C`v{hN5%U^1o$ft&u5uI3%jf zWHUtWYLCiHBEZOw`qLhs@%4u+nKhju(`16794%%h9W7=iGm!+?;BVNeEO{C{>Syv7 zP?SSYbhPlp-=X#K|0fWwiWr-hXr~YnlIOKkMz^+HZi1{2$X`&#vDfqLp12 z`Z<(LP#mf*|4}K+&5WuUc)1__teahC|F5OOiFc?&zsy6H8+JQD7Ap83ME;+>&RDsy z&?ezcGxU$l3C%)kj-0G?mUY^3QL-d6D9lkO8!2VW%tA+*`B@j+LB0QR>&G%?-pjg% zzf{Y5E2CP*{AAYrA1B@M)c@9(GVlI2bD4zUAYzSrnza1U+l;%&Ju^=tdpZ=^wic#m zUr?<=Bu3=cwKMSSJmn|X(2D+YFD$%an8pR8LQp>oweRL%O0>m@DoyLrD*xn0_Sr&P z>o0hKjBWJe{|w7xhDR|XdT8_j#PR%Zm$paIf2)a~zM0=Mga=3JH?Hrvk*Oj%lA5C9 z`2Neu;>d0qlA+5*{>aco`)rA*-^yet^NvEp>~O;<^g!F41W^cj?b%mZ?c5QQhpAnWzky*0A5QM|6uq97?n!zg-jprx1nLvqw}0K;>tR9(@oFHayCK z@p05ZNB5w?QFd(L&$5~Q)G&D(<|`BR;P4G+S&#u51}W=>?^^u444J@GsvH@o0bl*^lg;gpBwl zQ+qcqW}zS*!F%V>_;3$k^ z)$0B%=g@~71u{OhInG{AQv!Z(&+!i8pY1tR>g??~-aY)YoI{JwUe58(;h*IkigWgI z+L~qWUxr?oy%eUfoHqAA+jA&{*-L8U&0a1;56oWb=eu@)w&yS^WG|_WH+y>yJ3{ty z+IX{y1}3^{uRQ%%J|nD^RC7-sG5ZDhEHTL<~xHe2@GbWFt{JbK*N?ft{3jt z&S;o3{0!FcW>x2xIIGL}tb-qzAD($X+ukEQVWb+q@yYW>vSNviepM`ir-zt#VBJpa{B*7{4FW?7kRGUucNm&%|uot;HBk#=oprSNU#Y@SaO0wAapR*W0GuB7)xreyWGx zD`{~h_=)>vvOSIoU!pllE0pD`gZD75D&zf{S@P{)yW8PjzJsHOB6Qo1uCIYG_a43) zfIkybZjU6%EH^58=s<){)zCr$hDQ6^C4=Y~1bO;)L%>468jdR3iy-YUh0Mrzge7RN zkj%LL>$&#FBizy+ae=`c8F)%Wqh&OLh|`QF2lgD5ty!(b|7veQbbk$Ripb4D8R&Iw zP>wGCFa5|YtpQXAVYErKFNTe>w7SFKN77 zqfd?Q8)CW+rnNu&h4C`D;`Y~!W(cAPC?42rcyEM7kMMQKr2fTXe24YyuA#brQcy;H zjNhw)zl~WFe>XV@-|1D0_Z$^8`1Y)z_p!@^w79mf&-MfjxWt1xJ_xFXG5NLXYSBDR zkPhr}zxGbMCK&H`v-ZHv+V28xs8joEd;EPJ+%FN@p0rm(UeEa^){Eo41d24HZz-o20z5nFED=b&%thU$ZH7cdWY1Yx^G-KZJdlFRG;PQo8mx4XQ z!@A|D^)Tc9+lh7FR7@TakbWh&bIp@gLk>O8$e%Smqu%HRb@G&{-%2T*_pJRn#POcr ztaJ2}mb5Y$%hkV6Hx2Zz(XMY6oH`1$8inH;+auR}{n6o7lK7U<;)%)-UrcHB>-QX< z5%D%4dbBUbCWY7cjTtepyB3^ck9`~M>yNA{Pz!?_?Vy)72$w|cb$ESk?*~>I=J>-% zCM^=oo?E^OW;_1F8x0Xv-#vP;w&ApYKM>m4@%LH))KG+JWuoAJBD|dlZngf{KRmpL z*~8_=4CpqfzZPoOvQlB?lE1M-Bq&QI&C|ekwPaId&DuaW?~Z zpOGR>e=tHs>LRLlsBgcX7%KQz&Pe z960XifxQrOuibVO)rw%>`)8o$aY7Lwr;VxZ(4knk=K$=bHnG~-ioE8(_!sWCvv_oB zXD!hp8lr}40UyIivCS+ueI-2AbG!)v*6x3*%n=i}gTa*RHJbRrWTt_>mgEeTGKjXJ%1* zlnutL;ql?9maQH}GmNyyQerp*2Ib&kKN3ecaCo-r_`FPP{Q!F?CQgTTIo7S`$mTII zI4-Sn#KA^v-UT7EJk%QwzDwsQCZzoIXPx zy~am5%A+|Xddx7bO{5{m#36nhCl@2}Fq#vEg&4bBRx8vVF8=w{wze zT7;yXQc&=)$I4^|;@PP!?Z9Q zjTY@+n)VqO5!SL?xy;YaJU6i#|aqyimF&r>I%rLaJ_ETjtFVp*}KLm2;$W$j0##rSjD^{}8g%7{cyGR%dGmw3Jgf&B41z$P&xJ2JUw0WJIk$ymtk9a>(wlY2ajoe1O0d3e~rL}qyf8MYcyu}f0xDd=5|Hf1(cA0M`1>E`H2-#ne(*O_)?u4oz#$iLS7^TwWC)bMmk1C-#C@f!Xj8EWCkl{Sv2Ko;bCmb;(z8fpQ>upRKxX zB6-c5S(jU{!9r36T7VI9BE{}wAGs$Vr=DiLculy4^VbI&6kJ=(#U<7`M)V+0gfYt5 zv`^M+VkD`^Y)WCn0mKEkZ_z1Rv?dCyn7jl!XaJJyFBBM=u_x4gh z9wSa;JpB)gw{V!wXHA)(df7IEk0XEZcl_I+T6K#20`<~z;l zfUB!C6+*>jY6;5)+dFax1b&iTV8zsq%$JlRIU$yP!CBwTn{zYk&4D+9ao|qIL*u+| z1&5iUohRe|%_sI&M_SyKt~3a$@+-`X_hQ}o5K@?ULMtALW0=epb`R^{gmIeFK&c}IVVUY>4NgE-UYfVSR)3k$VRj*jbvMa(0+;uZ~4_*k$!3em6d*v&?1aEl>ILr$o7l=pt zyAIA|I!wxW+54@2zOj)g(}GfSUQd3^FNp<72)Oa0yfaLJ74Q`{!6$wcOi0IO-VCWX z2&v~J+=KuaoU>h?n}+75C*lyHkz`~0Z4o>|JPq&p5mu2ef$q=|?!y*Pcs!JVrBDw> z@&h<3Pv`@up%L83`DdQ~hW*CwVyMtT;;fTR$4BD+TfxKG8}=AV5e|9Cc6iOV!F^sI zykIxdUL^8`&M+T}!{uCF`ED6z8ZQVd=?)w}wO&w{h*QW19)|0;8P{2X3TPM$g(U2M zBS^-1y~JCNCd3&E}y@av4H8mFo!M@J=7-V=E@#1n#8dvwIW*t4Tu-%N4k?L|m26yfnYYC&E=g;Tm^WhXSpOoHiUVT^00nt{82bo%%rjLyCpx>J7QP8q4P+ zoxFm_Fc<5L=83re@7aFd7oH>c>`Ycc{(}4bwws1HB?*_Hgjmn^D3!|r!YzK7%}{En zk=z}6k#eL3H051k9`1ui{05tZ^S>FAA&kt2yoJUUo9EQirLI&RW>eAHAuT5xMII?< zSc3WisdpQD35!TSHh{I|G02rJLp9{zfkjxc`Nk`*JEba6k zNUbGI6F-?_Z3|T=l8;_d3-HgR8C+wB;R+kYi?G^Qe=;A%qo5(F3Dp7~1$fhM#-^k? zDQ4Jfu9p%Z4l$InthX5Cb?}&$P#>#*k#KNjuizxR%}<$PDFNatoV}beMXxtxV=twJg+UePBJi zt}J8&d2OhQoKfaOO06xE$EmW@VfHs%m0V;cuD-3AsVuEQ{zy$uTPc(mF7bzaA>WQ? z$y2pC$`wVFl`KEbo`JL=9pFxh`vK>i{&X1wm-#TMv^*~1fH}-~okWsQ>#gKtJYA?n zV)4{`$xgsxbrNgHS1Xg)5#9!xk`Sb;XT`dd5>4-23JW`U2ceWKr7km<(^sOS)ZS|8 z^nSMO^dd=zcBB{2!N;l_SZS!ijO+}a|1P8~u8Xb6!Q#7&-fpYJxxB3qsccU(n-ioz zg`>(X^`WhZwH=%w$N75L!T0lN>>^9z-khm#`3l?@(WE+TC?XcM>dSjw6YHyw#b~}h z{eIdQ;UCe94d<7X?q+|ONqb;_qmUbn!@B4Bbl#D9kg;R|d`FJZq+qVXlTCL$g2mHn zchQ+eTdrHupe_yMEy2bfSpQUkcoRKzWbN_P{F@)<-Fa?a3ywe+;LsbE`!p>m8=JV@ z6mLU0@lQ3cwVTIIA1N+++qH#q;Dic@Ex4=3{jsiWfEdwm) zZqOA@K?-u0l5oZ&!0Vb6Z}=uk;w0%XQ1%ZwD>fuo@TBs?lj{oXLiuqG)I@rl4ptZi zH}O<#3)5jHOokkg?9nqvJN;#25vj2_RWkFp${{EuisT|nj8))0N`F1@|I^S6xy@Q! z@q_RUSML*^#9{CkG=Pqt8*?bShQ?1~JMoaD@H0s06W4 z8oB;yh=DQSgy)$Dwp|BQ&ybw+b*&8-g_S}d=@l0g3RlHlWGQ@MMR-Z_FWF7*5C+8{ z9o!%U&rgDqS1O)HYoR6F;5BpP%x%*RGz=CzgtcNcD{t$~KB6qU7X0v>&x?kp)}#mN zOO8M-(i_KI9d_{?unK(1d=iSMTA5r;@-)}m3_XRHw1?PSjj}vfBq<+V$vdzLyaTb2 zQDhq#PliDx=>+Rw0=z=m?KPf05(y)ZAu!LTd>?ctjjaW}FhTTJMx?)#)1}v>6AMv$ zvg@#t!6fdBlBa=GL9_2E@GA7w_lY>eG+O9Idy6TSzf+1T z^Yn$tSLJW{tlAf)#981*x{zi3GCW4Eb(vS?&bSU9IQqTh27L3a<#$DzXv!%}Cws*- zbH$W2`K9y-ZmVr&MPd8~%p`BI{6Ib$`t#4c4>$32z5oJANiqvpX=dSR#oy~2Ikgc! z^TML92zkS2$Uz1oMYS$6w?ve& zrORCL6YD}v=Gm#k*jSjQY~i)pZIl(qut(%HX@gWd6?*U&{5kuVEk+q83K$F`3t^St z$`VTrd)&53BT?GfoHin@F*(LgSmyKUT!j`qNx@&Eq6z#le+RyJ>Ka&aHWhpKi9bZy zsw7PDe_!ID6y&i|TFgGetCU6QWAIy!RDYJj_fQ`aqpX81bPbQ@u4Dmn&^78l^*CxF z-S`=_C0dx6(0u7wbyev8ue0 znp?fY3-bV+&xYhZUs>^wz;xR~r!w?AZ((4``BM^%_oZ=3!!4)OlHvwoqYcy!f;;R} zBS{yOA0pK-WfyX>5_}EJAm=%)24y#zN16h7ZSukNHhFu}22%x7pQJ+Rh2=rQI5En0 zR=GwM?yjyxog$tOQkTi|@I;)9`eXj$>epwRwQ-b_gY*uI)l6I5YGj5mAhb7BEgr{RKBpG$eTmp1WGjBYmTYB zTHS02vRoqfoJ{GtzwRM%o_V>i4Ei1>WEntAM92TkX;hXwFKE%%QP`Job zA(U6Ep0Dzs^r~^YB?(>||1c+h>ctv*oFW4I^exSN*!W3c$^&&5KdN?uKy?7|X0_#s z>=lba&Rmw5U{96G6%XkynEKgXK$@I=VW@ zrGrpzx(v~Zjvr@fwn@yFp9C`rCdHs-`R8RD>-)O3Ws&N8>2F)TZ2VzMnUY+$*sxuorR3lV|`!ABzBBdcQKnUn6d3n?pBsPWiu{B7g z=@G{2qSYqyF6nL39?+9?6F-eTxXd0Y_1QE+_;}?De}&rTI8q*_m3UEntZsy-MQEw6 z5<=C1X=hWP=mK;b4}O)C#7=Ad9q(PuUz42YBBbK??oxZ!cVIo$OqC8;^7^y zQn*s#wZ=|4|Dh*rl5~eHw*;g&gubFDuS+kpooV~kM#5p7t&8d;YY?R2&K^W|KsQ?ui$@qoRivPTkirR{ z%UWX#FL-;DZyMn#ecO9@-q-rdE{Am0sZ71t9$S8SC`v|C;4L``m*pw^tYCv0d?-qc z4|x(>z?SoWkq_<#^p%i*plxA*|$s>ysDwzd`JiC{7tx_NcanN#1vskUwobr%-1Qp#QR4C;sBbO$|;Qlpih zLs=vqC5C&b@#aPw0Lr3#6+ebreNM6;{%{}U*;n7uv`T6#gb6aUDy8^Sg69`~MiuDA zOM*9+YK(GAeS#blPyCChKfmICp;Y07a#2^;R5zk8Zu};06W$94cw1JKbQWA`E|dov zl8>nWtwLEY9<2by$r-e{6@nLNz3_qkpd&71HOzJy;d)1Upr0ywh+oAW~OBcld>3^wEcEyxyVLRJ$q$`DKWF0=u*K^}JAWu04y4)j%| z%F2C|Q#LCh`IH3-Oed1X<2uJdS_aq|qrd~9Z{0$XR9-aWx@TpIs9;r+oqGfj@AL^dq z*-%$qKVCQ>v=IyP)ySQVQhT8}af2}EPdM2@=8)^8B5Ev;aQ&vE1tJnH0)xp5QkUd_ zBc7dd4%FS$w-KTQqj+DPX9cCPR9GklZLoidWF0++^5bE04~`%mK1Er!1@uRWIvi(m zB(BiqoPXv{m-ZThg(X5U@lR!>`IFp9cc1QK0jvQZMds2i#Eo{NC;^cZxDsEGl5W8O z;!NCeg|32M-k`ig#goQlx>_hAzOYSAn=9YZ7o?GDIdv=h4yiCJ9KYjPYqlRe}#pN`Mp zg*)I0ZwHle4Z4zx*#EwTU3^{1V^d*aAN3c%q@PM2rHnFqlQ?<2T%H{PFO)IM;QWo} zHk6-dAjkWIcfq~T41b_5k$eKRsN~m+EHbU6Z^)lw$F!o!5y}yLKJrf4W{XnmLjZY? zT8S;krg7YAwQ34yTTS z)#`PdkpyEoRc)<)qSdG?c;Jp7g7%y4c=jITuUHSrOE!?raHC}1lA|S?$9SowQkE}E zc1ceY3dn}^F{CXFp(9u?`2cdFE~ra+lN7d%cTy{}^L#Ywl?t8#dT1Z`+`leeo+C)= ztVHt>i95}A3`J~h5_g~mI71AEwzhAipYVk};hjicHkniPo=Tw=Yr{49|1d97iIv)+ zT=zO8UQ_0fT;F?}?>Q&SP2#Gt>%=S-qwB5rK^7*mr|dnsqXzOGN&&Ss%)#_|7E0M(QIHOsPHGmcrrK6q^qjt(zxYv{d0e#R6zQc}cdZ&3SVrpE4Jo zv&n2Y(&c&HyG8u{UC=ww-|0r&nPfN5KcpUC1I_o?S^au(OZqsqffU1ME8+Br zx{tR~n#r{wmEB}-;5@0o>o)9Cp>}LNmlethQpt5p+`Ytmo)=8FzAR4tAb--`ljfzn zDHFxEJVD+|W7JB}Tj^^Hhbw4>-35I}EUVtQYNcFXe4Xl8^N63_FU4Jp_w_90-aB?` z^6T{X(i%fz`chjT!H<8Fj!&{I!}rZhEEi+AkI?7be~GSeei; zwwJp#NAvi(iDi->i6KtwEZ;2uQX2#LAU!1ahob6M+bZ0_&3Q81hQiFFd6}y1W3BqS zY5vkqj}nRXKG$%)nR|TFjPH38J_#F~H_I!`+eueGPPUMq@>i&#R+C?Gr?XHr6$j3-p-rBO4~Z}POd{jRbRO( zo?a^dfUW3Rw9mi0QD9;l>5>zN(-x=>(PSr6{jKt7!`SPiSu*R_O=V!g;N+XCj!TUjq*i|=75El&(kuvV{% zI{L(8sLd+3*4MIb`DjZyr?PYTKVG@WO2vaFnGdEsN)B=HlNMPRwEx~NIlrL*Qg0368c$JT zk`4<~ z)a&FWAIIvdN7SomNn9&mM4!M7_(-nvQ>FhX9w^vy4W&nIp<+MwD)n>XEJM7ZpzROn zZ7r1)DSQ+{ln!9vSJ_sag{%AD2JF$~uyxKl7j$INz^BAxx`PfxFLE_M6HCHV}-jKKaIkW>O-(3Zp8=L3e zNCw(0k~c4B)1|ud&(cRGicfe_N-eds^cg*82h-|5iu2auQr=s*0xQyAsJo?8um-IL656{KvolP<6Z9?Gutvge zlpiU^MH_ z%Ay~29{-Bg|44ET+UE$$*%Powe7g2uxq#oggXnAq4Se>M*^+2GD z(3{l@q7bB)69%C5YyscL6VQXiQ3CI8s_XL7u-VvFcS2}GC%_2ajbBCSf4g``oI{dW zYm}a+pq;oR+R+Z9{nH11P{;Udeh_U~PG}h~W1vob3~q+KQbDmIYDxyOmUO0_gf$`; zpOO|R!<~i3BoE4OA!ti{iXQu>kQaPWlJh|{!69g+pKc7%57t$XmWeII{z5(am>w1s zVXmkO0b~|Fry=Qy_QPk;2JKCVr@~oSh|;td%ExmdjeF_V=u@RpIv-sRsh<=fjT6@h zRfS+-I2t1R5VTw3vmc<;_Zr8sflRf_aQo1An1psw6VA&TshZ)q?!5l3-c^@dYA-$$ zjtiBA2{fM6p|xp8e9C&1`1V0Zv|}D8@5ln|a}Ts#1fm7Q#;Zb@uBS;d<~LY%RdoJR zL!lJ)qY-oq${drag*-vz!6Z=8+80PrpCkLp-)N0V6VMU{+~u`((mLT=}69@#d`_rJZbO;`AXKH zJ+=?$PKVq+>aJq_`r>q98?U9jRfD8w;!*TE8_6efpYB9|TsL}(oW=FKik8!%7q;tau4&1Y#V7t&jVnM`GI{5u&aB$Dpb8Fl#ixP~&? zEIHavA7R)v{JxR~CGgl!o(O{+H#d$($`C-~!Tav*`kd+iQfVU@mX-(3K{!K4{ zH;u#{R2F?Jw;&n!Vgl4ey(}T0SDxjhnQ0yk5(f#yIyrT++|KlXoRx#s6qW>C=r%m5 z=FzL1p}n{ao*MPx1w6w!8BO|=(-7dh!{-8}C6+j(}w(ls1G>q&50qMxgz83fc}1piTNU$&Y8qZm8m4u|!AKz)2=S&{zsj zK9Mw2DXRl`sm`*^QQAUZQbCx7dRGPB7Bsta3%(IONt01CoJv&052X4ZFZmEurzZ5O zI!H`QzLhMhi_ufFi9eGksM8rDk;E5>KJw=$paAaoWcC+#f-igx+TTx;gK)iM%YY!E zuxlw{tK5S|CcjNN&Fia8lmfIjTf`=--Pkg*4N2mak)B5IVAzH@jAVYAmBN|bk7sbV zfE@v6h5PQq#7(v)@Gx<4+6=nSy36W;7#huY8lsF5C(#Xj1lkd%@TG`8aYE~DTQ(0@ z{~@lwRCZCRDs)Enbro*on6B%H$2($QLUk z80W850;SP^@qwSKSgd3xzTLaOxXgM(?Hu3HI@+l~sxe`M_>l(a!dYcYu=r7+>>f-c z3)M}0loHAc!%X#09!NaNS?*EerGJ`rN8Ue$TDIwIOzc#dxrd>7f1t2gSf&3Aqs_DF zNpX_en{(1!9mPAyozyhgsm^81(SQ1urPi5VnkO~!?jh{39i<1p>a9z2G&Ya;Pzt!v z+2~J==@K0-eN+xH8$E#ziE{E&#f8MHBiJ(-Nec5eVeQM;`!X@dC*r3Bn^t_jkoqC_ zN@e!Dl}bBdg7J>PQqOZgU4AxH-HG)_^89jdc`>QaUaFf=svE=;S~M9K zxEA^7ni`z%B5D4nqeUb~oX&|XDUhwv7iZh$X~JdY1^1NyvQ;9@SxZ)vxYG?RZ(F|# z#h+jCnr-V%RQJIj8YEBjS*Ne?Dk!ZW=cX;vzND3ki@q^CWXmUZRpvuOIm}vwG(msB zSCl_mvpt=wR#^17s^_h=n^J`w^WT^I-a7v*mm{z8rIfecHSIABPfD^m=|rqQS&Wwf zPTBmeGTJ@1vy0FjHOdE3!z+J&INI$%${+f+xu$=p^KC`G0y+A<@kxwI)tl-#KS(NS z30w+7PYN)y{LUY9K8 zaeN~PYU}6=LF3+dIKTh4R(~gl{B_=|M{YHIol`4(S6@FDN8||MH&Pa{Zltc|Iell- z2^ZuY)&xWkv*5fTRvn zzCD>NSINDX&Nf#^zeS2%ot(Fg5ckS0EzNjgw4*=Z%g9*1uic8EsFbIs{NHbj1)RGl zO?)_BYLh<)^A$!st(w{{_afn6>o`Q5T~}I?F17+?a6-d_wiJWhS{U?LynGlZKB`CfdEZJ%qAWR^?u6g63mhuzkt!UTDAdJjler;u9o z8M(--N9?E)#Ey83PB=~v8ak#&@6$-AoM0=F%OgF}TFh9>GWt!^QtqLZID_>7$Wymsu0GTQfG3N&#mWE!P}zuF2%~q$H?5Y zc`5G_PI+#VqS6wDH=lAP-gX^CW0+2A$-mkv+g7r6;xIME8i4P}nMr!19F$NyvdkH4 zrMwFJZcQgTYwP4m-!FK!(|t{SBAkeS8h6t4N^nu{A|gpusJvD^B@SnWt#il-@(pa{ z41ZNEU&-Ri(tMZrPRj#flj4^W9rurW11FahXYo<$sMz<0v0`Og5qgbRVH4RYWi$F6 z&e?KOS27Kz(mdRyg5u{3AABzJ3+5wIK1fZ;6~|1$>gO^s>21+&{X<;#TWDn8*C_ z45+6*=M!O$(wA;VDR2$S$Icb^`3{DBMb?-nr0miakxR#gCx++UuU}@J;I`PhE@7f! zG;uPYP_9~+veN9lZ2;t9OV#{B9}szM`Vm%@D(~A(3@JEW^-h{Xj>~^19ZGBL8DgBP zHZUc~ro=xMLf#0-kW_SWwcf&qzl+zK>mB?%2`5Ek&zd(|1l}|rzN!?FY%1hEd znk%~WHCWYjeRp+i@@h>+RsMk%%4;r=6x$t`#{0`w^kJuPXT*i36{wbPuyI_TD&&A= z2HB;6#lT50ZlHdH~Iv^zhJ7T+{E3{se@V&bn^W9~#O@HUUx`=lv2 z*B~L69F8`_Lh@CsQJ+&9&rXP2I8QIcWcaQwLtE!~dJY~cOZZeowpL-Q&^r7OC^?n0 zX72T-PG0?`4oVr6)!HcUZPUdC!aa6Js0p(y0_#kSNb3fA9%ZjF>UY+Jr7B0*Symo- z$T|r28lCf<(dK?tx~aAmj*zj4dn=3*a}PdQK*W;O$ScytD8rN`PGmStS5L7r+>;Gt zb6F4cq8@|09+FqIG0<&+I+%_?ybMRXWp%V% zNr++dMPL3av;zmY=k>T_aCJE^rIXTPCG=GPrQG0KNijqd2a=YGFI*Rn(5mDyuZH@= zU|t6id|lW97LRzyA-J}uUHsj>3{j>Vx=pBcc~aD@mBw&Vh^3o_hNPj|4L%G0bQYpz z){;&ng`Y#|rz0YXuHfl)7SRYTOz|%B4GWEn^^b(f!U#GGed0r4g0NdyO?wdxB<1~t zt@J76CkN1<;f;Qn>xd;eik^rPa2C->Ee*tFxnZtut`1Ol`$!kilJqmVLmy#Ft&zr; zLq2TDA1&S8$YShoPL$hnp**&L-{3~509Ey2rq23yy2AQ(x;xT$v7xXRTeyjSkHt9O zuA~}`L~n{GaU%ujM0x{t$u(#xJ;?7PmM{!z!D*eMf33S<7-cZ&b4UZlXz^cqiL}AF z>WSm+NfeawPLmF_G?nrDbg~>R@PqkY?u8aWPXIpFu+lV9zs*p|kfQrX98ax8Pn)3j zm77dN4~HIcBIT$gG!mAeF4qRJFVE2Lq96hz7G>e%h)y4>UtzjxC~OQgY}MTtyl5J^ zLE6#bR77pzU-bIiBN0>-RtxuWJU(cJpM%IhFYre^Y+gX_#}68|IW^Zu8n)<4N<+m2 zQi=Rci4Z`W(w?Zlb-~_$BhTnkL^8}mZ!2d*`BdHxJ(<36lAE!$RR)vO1YNMc0P29< z5Cboh3)DlnM4wQK>vab8gf+y69;B^>YeIdL7l(6^KS#~e4ZTpI$OE<-3pvM0U!{-Y zL)70T`W8;n3gTS`Vjh{Cfb<}p&KASY7xFr9{oTOP|jtV z+a+m-E>##TbQEr~ManD^E17Y%cOwF868%bs(Yl7N-anwHRBT`^IeGUrh zfcv;N(r_$T$tc>G49e$}?-tpqUm>K>Kx#=Fnl@3A4K-LCE2m6kW9V3tKswQl=&74V z-=oj;B4R#g!vwo6rV*~vw}Nd7OoMm&uV}OQhvZ9no7!6+Z#b)7W5;X)>w`V6N*|I9 zydob(7vk7A@|kQh_FTgyU!xIZVv)eYPViV?j!q#%$i2kPsec*@8@8)2n7gf>dIopQ zRHS@gz5&q%7Sz1%^D^u!--EXMMx+bvO1k--E7p*7*LR@v_-n|MxGMF#f#~n3uUL@H zh&JDPq`8oX=y_2#9IZ#k5Px5sRYF|YDChtq(ZhVVs7tAEsh92{{fKC#W{K-lWA!#E z0MYZ?ZA=N`FJYt*Nrtnt>Lm0(ZbnpgA;wud^hjUkE$JMxph%n2#K}Xyk2X}-r~?vb zrMA$07XA1Mb(?LD`c|C^p$A;MNr_8`y5k2ID_PCQc|5DLXrLVZoFfmd} z4OYh{np0DS$CE#_=u86|F$!ctIwzaP=^v*<0gkMv)VKc>|Wa z4RWhQO^UC2DzQs?CsLR_BVnwwtpgur8_1uEKIm`z&gSy`q&(`TZP`dwM*me8NTxC5 zYKdnhgIphb)fL*vrPZ-XcP(b#$Gi)9g}ZewnQ2?6u9Au)X0IvY+5O09o~-B*!{p9V zc_)a#6Y*B*y8bC9TkcfaLf)>jqyvh`?|i?F+Uaw%n;2y4p-$9YL5*`T_TUa`z@?OW z+=Zp6Um2p%=}K^^;98=xZmkcHg|?e~OR@p=`2C-Asqe(V^fFgLkjRb<9IQ0@hp4K_DNYJmIZ`=g?nSV*M;PP!Ga= zr3x3td@OI&)9P0r_H;I2e21%NwGW-08~ToazVuxxIj*RN+QQ$KuZSc*uDJ2hf-5Xk z+F1SNz3OSwN}bIMN@vxgF{gu)?=07Uw_Xv?dVGERmvhUaAKwUXFYqeX1ztlHMBQniWL+&jOQ{M0amX79^Y^>0Sz2o(S z@5=0cP2r8tMDOL9N5$>MK2A(-XGP|>=_ zoS!|UcU6o+Ky?1}!3)DqJ+!e!Uj_&P?l)eImXDNPMu&c=o4)^R0mC+zCDsya65%arQ2KTzX|v5gcvD2r%y`Bd6^c_wnQOR!HEudeA@ws~wqB8h)h zQHl2|^zz`BZzY#{TPh`kP{dX+?Sxt!JwjVigN#%U zb?ntN$nu7sdbz?{#4YcK8t;;ezV!CRy)fr_=j0dWU$DAk=j<$AuD_NP76%dLBdi7e7|_Wd7;2lX*=d0)NuKIb>k{Lt0#g}nL4 zt*7E+sUs{f8{|Kw9o8+>jpRxTKpW~*{)v1cU(^k43WtQtRXq$Js>H<@&L`}CF~Mt# z|9$HQxBT(+#bl>4oSE-KC39oj0DUu?7YP@>q`gKg>@ns}(W z7Ag8%-{?9gceTlSS6&YNalX8NgU_WGTD^*`{N67%hpALr;@g@j4~libcnEH7f zovPnx9pH5;sX_cxQ-ty{?Y4X?{VTt#>`)dWGBCkfT;Pa7-9QI$*BW1nPEq^%O;1^# zNDap<^}qJ`ZYhwW*I7?_Y)yNbP|dVheUx58(Odd*57k>X3I6IkB}_QZPViNNjaR7o zPtk|*`->eG>U{ePwy3taa!Kn7mg3iw54u)T$C>N7786Iwg~(jn8Fty+Iqf97q4c-a z0mgHa%0eWcT)tgVH}ihq&U9#eIJv4sB<@Id@jgkvnVUL4Rz8~lHLVsJtN*}ETUE}j z{mnJ_Fr|cC5#}M5Wd-dFi%O36wJD7Xq|wBrJM@h*DyeU3q*q7bl`WU)s(RXzrcV(j zsdeDIyo`O4U2Xj^F7%|llj|`WsWjRF7ZoX9z>}`cXA(TqlfQbth32UsKFirrzgXEz zYcMc>H^-YkNJ;W|@jSe@trSWKXV|~I4Lg9Iy8$c=F?}B}F7!NW&-_8pOXp6=bzIu! z6=Jx@I?@}gu&uduhap}(q__$@?PhcwQBcHwY z<|wLP<8jci5}fIEURilzOOYSkjapbjp4KSa8{R>LL_EY zj7pvAzR`1mp^tlMLnqQeI0tRi19E^EB78xg`yupyHl%}vEg0!Y$WoMI7piM`UG$~b z$JoNpds`xwOf%@*67?6zHQ^$ej`-%ObT(~)vTrpZ7A=ov3V?V9ME|eTuZ$xSl!B)N%T^w1;}}-O6inN7zAj3OVRx)`GmEIWSJ( zCG1A@R~PgeE3lHU<x(mWAl-2!FV-l$goery6 zD)}rt#Ym?XB$yVUwV^k6LEih7H$?0}dtQx48#g-5mm&-u^^J8O3|k}_dGj9lM)T1S zM0YiVN>KTdgtZtg% zhSr*X&=0K*0kpKx1GTaf=zUB@tWOg}YyORx#=X2ApNTOvE~w#I_;iEbdAI(mai~$% z`RP{+5qvqnkDeI=O+ioe389S0Q1>bU!!YtA0&ZguCh=vw8hVh9^ZHN?dKqG!78sbJ zilLEik5ovkiN0zp&i5sxWio~MBBJply)Rs&TQKIM1^V9pKaS2iJc?xP;$7W6o{2jV zNJ2<(cXtT3xVyVA?(S}jUfkUmcXxto1VTJxEmifM{r96LYyGRiN}S{cwT~V z2R%mmXBDpfN@Tl`T}1u6#oWy{UOp|QNNc3~5(~SUM~+QblYiE=JP% z5|ddfT;C~hJ_YhE>=QiXE%_O9maVDWQ&Q!*a)D?U{$Zn~-i9^!1sjMc?hrG@H2ia; zSQtTvuk1WB%n#rk$c1*2icWDIUcvg=>#1~Ea>`Hfc^?)?hl+*eY%+o*3NJ`;X%ERJ z-^88d4k;$K!}Hz&_gp7D4TGR#<=|RzTY^s*et$7JNq!-gp_jBfVh8yJdY*p^TS*ad z8)+z-#b_~597>vzWr7`djW1U3`f!qVf-ky;cNxDs(qqYA?jVmBCGEa?TbeFcg3Dnx zoWz^NT4W13OD2#dWP=z;&Y+&HivMR35~x4msP4&M`$h*Ck=$A%_mS@r>IqQ`;6oS> zee)rd!@tQS5+O#Bo;aJ4qAr{#F;G+<2&?b}d+-!(XI}#*22~QX|7?H{ITC03A^I3KLUxBVA@2>za$#vUw>Z~m z{miq(q55gM2#&#FLT#)cHIN5yCfr31t~C#2-e^hmo%Tc61((S#^a)h&7*8b`6TUwep<7WnQ-Y4X(M-`XL}tQ;y=jYZ{)|29U6dN)|MRPpzst< z;*U+c4aN8+Man%uzT4`vDq2N7RqIYp(}zfKwuEPR2(sEkam7mF^DB|WjfWby3U7#8 zMXJS(6v9lijc2Lgxt)DO-00Po#%X0Vn|_2eMOJ8{_}{%g6Hj0rq>zWu_beLg2Ze$? z6^`7JMG_M}NV5&|OiZ8PDxaModfBVd(pr*wMteuf(RM6JOoHOKm7iggQGY(xy5hRE zWGA7(h{8yICHh$LM9U0$n5iF4ag@s5Ds1&SN~_^5_FH`hKYtW!Al7ByP;CU@iBRY%YjCb$y*`WSS7k*i3j!uMuYJW4R_>cede`nk7<9ncZaBJ$PwMdnux>L4yqtG zJ&JW?6Se2m!pv|{m4}Bnil2=BQ#{63v<@%?(O!@EwXrI2~qN_T6;=}=k?`fURISOU6W3uQk@)Pr0A^n#Hzu`yM zM~{;XRW7qU(g|1V1>LN#W-aMTEsAXdl^}(g;HL56rxMr1$9UxjUNed`J+GQ0TKtPu z*ES2^T)o^Q$ZOAA7^+=n3$@SscfJmumTLS_>2*b0ns$YqHC)l# z6&!aqHx5w3+)t%=Po7gDr<`r+b}?BqN-?aoeghiFE>yxBw3;*v4)}LiKUY`qjo&8R zkIXi_Qc|5a-CL~@u0^@448B^JYc2P8Y^Li-d98`8uqoPcT=&CTY1U19t+y9m!$;kS z9k154*uS2((R)mDTo2rP)IZ(<&Xd1h%14EDj&5vU!6YqLJgQuhq4cOvvG3TYrJ|bt zsRa^bMUe^`Qg3C+j4c1~hqke9xAI1v=vT z_tALmD{rr_(5?s-z!>nMMVr+qU-GBTKgH*7^?{bH4D$c3wg3EqZZ$n|jnHY{R<((A zPMINXBloopbQpc66%{V%qqLGj9(W7}eQ}$+Rkpl8X_@bz1b5w4&uafLp~A-SL{Ko}X4pRF%EbLb6}$O-oaY?%_-H2wg^&p*yRnUG7q~TJIP6Qf>bQ@?Y$pD=yGi zZt~8{F~p3dmR>hERQDB*DZgd(y|huZ9%brpcoDzq`;oqzge=pkK4+`%d02?_@x5Yx z&te^KLg$-Lyb8uM3KC>^H^6wd4K^kv8~2z;!%dT{?5 z&fBkr3tpG3&)B%!wuNt4lb}oD-tIR^PRwsg~8;OtzSNM6yjBtEySDO zq_y}Db(CubRQyog#wVkTu~W_c`$nz3m-FFq+-B>gmigVj{22S`=V6)isD;e)Ztmz@ zFk9H@{*GF!1sEiU)cekDJddTS4S8__512A%YSB8sFO8L}>s`HSyAyw$DZTvtO=rbpA!+boSFvL$NMO)8Ve1DERVBr7%!Ix9Ciz_l%NtpIr`?CMh4hMmk7( zp>iqy*FVIk$E!o>zX1c>P4eT#ua0RdMT&O0zFhlQuumw%O==M66H{n2(r;> zF7XKeqNns2*#36?z&UBdz)Kv|z71&HSf$e#Mk_>1*R&Ml?#D zWjAL>Ib2~!km&EBzRDfqX{~?Ftxf9dwcNvzmGFg6b2Vx}pYDB|3{2hPJCoJ?H90pi zqf;sm&xu=}I>Yoo_n+*lVGX3=PC;*(Kgd;B*K_6zE7@jO6|#)hLqf9^KTHR8yD*Y(`*Zo3hN!JKX z;48DT^PT(FdiV2F_yMh7>SoWmoZjCS*^89^kakUPFILFT30P$7?p&nxcWrf?=XG)` zxc0FOr9Jr3&y!T7K)C z!(Mgs-pFSHKI`?=9JOY_12WukE_SlfN{0U3Wf9UFEU#!g2ZPtq*$IKCj z(v$Kp?Xr?8l+uQ)YuO6riQ0;lrz5JiiP)U6r1%MQX6i{jP#Bzh&vPKi?2_DlZFkk9 z+DG$Mp3QENHmpE8taVdgBH1-d8_Fwa@3i%F4oxdFrI2^t;8@-AJTp{3%o`Of@(lJb zq?B|ww>b4BT60q_C{>AM151*Q=*!h`p)>Y?flj%zn*arHnNQtn4O4HDu z_Fv9&dJ*Dq_3o^Wo9Lm^12TyAlzx&~e7@k}ci@72Our#Z-j2fi zj2`fObf|v@k^l!+d?kCXZieR3T3MoOH$7xMmBI2a@-MYY3FLq<8XdK@qzjK`f-sNG zpaIYbD)C-?4BO>5)UOE%_W9^l5QB_wd^9?FDYKhVbV&!+l=cFUa5uT%e+L3=j za^wh$U~70;B$8*N8r|%D$R|Q-VV~l)lelCIlKHgP3!(C$)6`H3)*JSH7b zD;+=<@&f9h6F75Q=sI?cU1Jug2zKjHyU{q&a>JG?9pWoV4)*SY#2p}byc73I`-Cy% z7@3c1uQUA1A9)2<2<(C8s6Aa^&>d!**?IGL`)`BC6zLT&LlGeZK}kC#EtG}`2FVT% z)NY{|+yt5M8$Un~@G<=#*g-2$53GQK^ay#n3g&39?#9>V2+MB#(lqGYwc zAJ=aI-$WLRUSukg)8)7s$%SNiHfn(a_k`_(4xqB;=5%XyL%4adIl$0dW>RmVF#j91 zYz+24W5vHnFSyk1vFU6Nyf&XuyZ?>8ds%3JpP32O$2E4?c*x>ytZbQP?QhsFZI{QR zLVhg06w$2}SBVRu)SuvU!0NlpXYd}(jpR@tXh`4S08EDh@s+(d-Sc{5_A#$EbuqM* zzvGyL$sLebzLHMx7Ysn^wH16ji=aIm0gcQLn%hO_A1_!E{0m>%P4>=|?e)jp%~ahK zZmep!D4V6BWFSZ&J%wL10vUy+aEZ-^Ya<;bnf9zARI7_PYZ}z+noy9gvgxMMwmrrv z#@oi0#@+CNv^T61WpN9LAFGjdzQZrUCtilP#{K#ks!I>3Pya$g%3?!!1yr?pEY`f= z_QTM{kSTwWTbTUJH4RQN9(u(h5lSzPyA7Vb`_N0K;(Yn?)%avd?qP2kf&U=`eUuI6 zj<)vlcDb10ymV07WteEJW@sT-l@5x-rC0FDUIF*-8uAMd;TthPL9#)!%7F&@9iOcP zCyd#gWo;{Wl7}14%SELbNNx~=(KuW#F3pm9%9lw13uhwKuXo6REI{S^pY9^ye|tfH zyNBoCw3%BUi1E;Grpn!=Lh$6B5c|qIrGxSqBoYcFNt^+%=Luvk*Pw#`3I#Nq+4%wF zV1Ge}$z$g&2Ct8zBoBtqZG|`siGdWUoY)Lq|2@(@gG(MLZ9^Kl3b(N*v=68~W8fNk z$QGe{Zb1_GJ4?2X_4->JZ7`aS%JHNtdX4=J{$g#gy~dC?aOC%vJop=>#FOx#cB3Du z8w7wZ@cpDf6BvX1NVt8p&q#5h+{XB?Jd1SFI`Eo?Kyr&UL*`Z?1IboWQaUQRp~96x z?`R`CO^Y!ZUaSrL7$`=ixy{Gyr<3u9N2VI`623-xEUYqihD&@c^2*c2IQW2k#Q|`T zEEavl8N?+FE%<8as zp|Kc=8rh5Nh1x;k09Ydw0W)bd`6GC6982(CG_u2?)x(zxoy?DIBZL*s`ku*_m(st= zD!5-p3C+bMx)d(Svg|O_ZX2>2&Dl+?gCW9I5{q2QQdDqV!dpceNnP^|uX_Aq{v*#V zTOBdL6T;uqxk4ZDw%(Lqg(t2J{5m&TC1E{%#;Sm(_YC^zPb75v3ttPFiuj7}jaBSm zeB`!N(!9En^R8bk23K&4xKn?`jtV{SDJSg(g3Nllf~~`vascn6W?<{s`Ra(j&1by3njz6~0vw(T zU`aiSoL79gxq@u>dQFez6!nz$a*!*I@A^`#ts|#`pr`5{C?`MkA@E&? zfTCfbLTa9AB7W>C5(7TnnHW`{b!I^>mQk1$yFRG2;)yOeq7SHN+ z^|QPrs;73WGdwy>@2|Il_HJS-vJ^Ms7sTe6SA|$?gXpB(p`O0R1h{tW>?(W@$Aw{Z z9QV^}Xj72e&C@sN!AQ=I(m|PJ92)F;wt(I%@iFG1_%7mv-JsC?81|32rr;ZyBz|(W z#Zwvs-$)ZJRml<()m=~$254>2LplTk&^y)$>7#}E>#_%8t7sRZ`}&V_{3=*)_$K`R zJz0#hw0F7DVU_f?Vw84M*}{iX z1=Z|%>E*LhMDUFgnddpy4sFFsX^=JjcD+Jqd(6&-;TbNL!?6YFKv zDfA>dC9h%bSHJsm(8r6O3jt>KOFgdd@)R|E(HA@G3ANmRc>ufCI&weSnJyt`*&ls1 zxH6;aH7;fSQ7`yeTw}+Lti<3orqJXT`L_cH$mg^)<(gYFywPSlGk9xvN%vq@4p%as z-qLpxGap6EAxAd2`PR}4-k_W;foH-v)EF&k2}o5j6G^pczj1S|1V*V6p-l*`R*0r(PCs1^+>X%AdcIW==0!%P>2u zb%^5I>-FrEYt~=Bi!1?-!g-Mv*N{*oqpTUPja+o~w<^P;4R?&+RAV%PkKo^-ZM zbwLL*)8bN1eVyJ#Sf+2Cbhv_YVzeI#nZTxIt_?X?qSVVLFJGEWezJ8ci_RM-tW*3w zJH!Kdb<}pOxN;mUmSwb$*h+5>M_aa9dWu}xbaHus6cD68O#c>Azv9(b?Vpd7sn0F* zJLzJsf#v91UGZXr{LNYnt>gJGxtvFKLfi_nYl!%k$q3+n1=+Ecd`-a(1^kRoihlFX*7HKr$5?|k~4-&UV| z<;cgdpsuyTJ~w*t)#I@jvGg}jF8HWb<&rBzAkLb4j(Xj_45{Dc?2WJ;b^ROKP8~Wm zu+E=zMSRBiwDWv==j}76c9XP!UVh0h>Q!K!YH~QM(v$SHYohSNc~YCIwsDVR7ojD8 z;!Jz4P%ujS{GHbD&E){Ed~eki_TFOHUb|?X=hc(!P>b2V(eT9Ma*a_|Dos5`+MQighrzAaTMJ{$)tAG3TV+2QY&c@hQIt>DGlo|eO*zSxv!`>b z^_yvyTG4ddbH{VT5aQhK`JZymWz{Iv(N%A%k5DysNsa1XzqLELq@kU>Pb>cUYU{{0+zvMQDzgAtGuz=tH+}@OMWu4 z5Tv)>-)p~~Tl#54<4=~{jl90+wa4ru4puGoujV{R$>ckr}-QlC_?)%ONwFjt@sp@)lryks^Q(fiV>q3<*wZE46 zQ|nJ}wPa*tC}g6YP?7?U5X>Znlr}zxBaYp4!duePuB|{i8mc&jMH8!6NsdYQFgH$x3Bt^deeEe zJi*U0GAc*O^*NUs-r6I3SOJru*^4u^=DOHN0?C%C#*8hah#SXo7#IO(io`&`;Elo7G&aQz|UP* zdV~~kANYemB9T)=FH~xC@I6QEgvRE-ewD-Cbfoh&FKn*to{fF{T6KcH670Vu`h&-y zAAXPxC$+@{B+0Ej6?EbZI+&V^*@OGJJu$B>Z8OU;5MkZh`6JW69wb4Gi?o`0HSr|h zO@oo;{sSLDE$q81Bbk1gmxYI80O-c8V%7!@R-94c*1EY3k&)3n^>}mBWzb_j7~1OH z^b$ysIOsj3mnXuLvR-J2)N~`#N_b9Z!aebomW%Qa7^J-q?`kdL7{c0`q^WV-*cgl86IBAuPFT!5@|EKr?W?-J9b!O z43SX$CdWjJCN|3(mB3I>~Dny zzD;fGX)8Dy--A;OKLg#s21^f-6{n&}Tp{csB}ij(QYcP*;KnHdH%}WlDkj5M+}&q~ zy#?X+j@IKWl8gg^*2KR_5%8Dnk|oi@>%l|O7Yd9(29R(tdmqEu@|Pr)uN#MrcqS z=?JgWwnyR%uSClg-i_1}|79bD(cpIvMj4+hWs+u+1xmt1BrQh6@%{((mmd;b^O54H z3ir<{y5IWRT2?-2dt_RKe8wgCX9f#T<-wvsdSMtN%_g_VNj@G`zX9B}IB+BGg8FqA zedt2}sW9+mU$sz6fUH<+S_Vq}#c(N?M2iuI>(XMWx%`au0d-&p_R4EI?LW z;m|}z;l7;=<*qf3Vjgpv-rB~RLai>_0Mi#~q%7f>ONa~58^1^j;7{Cv8Y>Ky?nTu5 zh2Y;g%JxFL+QORR`mJTp*=uv0_fN}NTbON|v6~@Wt_-#6EU8Qy^CRexCZT>A#bfb3 zc~F}|pdyTUTnSjTu+o*|Dk)R(S`Tcqa5`Z(ae z+QCLbt6BEn>9%F{Fry-5>;#K=kPo!F)tw`9HlG-mId~pGJeJ@f5${K1(%+*t$sdWX+HwUxPxMN=|{q z?+-swO=FxfRys)D;BP#JQ}8z1glB#c`gX^0CEr4Sw8KSq*b?AX1mwH|!#4RJP^)cH z4LMdQ5PFG)rSb+JID>9VBgrx17Re;gebUZ;_L!ST<_Ti6$B_D>6UXrj z>SYr=*9QXcg>IKJ4MDc?LX>+gNiz{TNUul6^GM+h{6AmVM&S*r^;*cC<>Kk9C{#yI zsR$_t`qL$_D0&9(32!RTHNLd9hwV3w@Bktt@QDTgej2Bi_pgjg!0%vCsJ?LlNsyk3lab`ob+)hhT~a6NM^pyI!J; zS!MPNu6ZN8jQj9ZbU+7pk#Hp389ha+YARy?s6Whi8!lLux+~~I#M?;tR3u<+(7E{a z{n<=tK+nOm+X@$J9(wWjz!RE|t9dvgF{YV>?7e-K)*`=^v8Z*K>!kKT+z!%FMd;?8 zs1Jufisgdlkw<4j&sYjIxCr#H|Cm0n*@npLu_fe77G^K3X63~hH(NWn)~adPHFRcc zpmDWExA_^5Vgq#<^v}^06HGw<^ydEPKN#U8?G|My>NZTWPOyJcrTkvg`etge29`Z6;u!eZgRisg(tXjgWHc8IQ0w5_?9?T4){9hrZWbho z4fcwD&^OV^TD8&(3m2FD^f}TowqKnhB&ml~ zRY}+4xu(scN$~J)*KO>V7FoVYY-FA*a#@jn*_#W@VJ{2jr4XMmQ?>jot%=kKZb(sR zqCVj<+Bmh1Qb;Ssj$*dOcC20RLGzfekEwDr?)0B`;Vp}{&bd-hChBgk>FW-kWZSa* zbM9m$m`jRC<*7Hp(N0nRc($rR^p>`t9>udil~&`6^is7h7QLF*B{U@ddu|UWkIBnA z{9%yyJ|DNk;`jh!(O@Y-xTVFh23kwCt%oUA+FolyH*l3!r$_iH{c*!7aq&NHhD63K z$=$B(Dz@c!t#`Y;M)+xNN1mN!3fBye_#J?dFHqjnZ`LOyNuye4C0MKE z9-=PLlC*kk73oJ;tGD?IR=@kg_}C}oLq zqLc#Vsh3hg&2bx4r}jVSliP@yCa8mj|FPZuh80V`yFR3B)Zy%b#8dY1pY&&+Ou_yp z<)*Wt_LtjYKW}L1-o)xE3lv$|uYhu?N3daJqi%%H{4kXUk0>5+vvbJwh?7~%nRkW$ zd6yo08;kh2^89f1&>K7M+0K|uZj~KUIx4%A=1LZlSWbFh7^Rm|cavTE;$bICmcD*8 z_)d8BOs;&c^ud+dX3TVas5(RQe{_ZX?cG#+=eeg{&zoUtZ@z?D^@WzCw{ve)pMfi_ z=%aDvHz_%|e=3iRESqxsUEq@tpY)g6$<+@Ehac}|4=x7u2wtCp1WdKN#t+YmX;V#e#Oc~z*Q@;1 zhE1ZMG>DZ|=ZGC$d(ORpQ`#_+D%X`BL@FlIp}$tz*_;z_ogY8D(8&kDV^wn|@$F7dp6v#Jk!doo~*-`1bY zzl3-Ta=JEJ{>S*h<0Ewdd$F6gQZ40ftodnq)FoU~`}Xpw z?fj4*P~W?K+MbVdqHWPVKds1%5u>FH!RRjRcqJ`V*NIy#Q`AP{F*?ojS?Q&Ha9Py? zHIoVAI<=s?TKo5xQo*OJ_0sQu^a=P8v;1dLb`n_14!%q)vNkNHTd_t&AO)R@s(J{b+fx$<#6NvP<$$v@Gq zYNWLQ1g3SMklav^hE!Cn(Yv+g;JSEsJX&vX+UL+QroCzQ??1HonDeeuY30QJraDTb zd{B9)brp8G`^e?wFYK$H4vuFDenFe+Q9VPIt>{Ea?atI)|L0AJzri~r<6E(Uc7=Uu z+0@r0-Q3Dk!_-uXQJ;%Rj)T0o+?DL06Uha=99*c=JnuXMT>U8H4cd0ARWYYi*h(@# z>)?-@e?~-pm&T=plU4SKV_tE|WtHA2J)SSKZI% zf_z{pm}o#{kdT50Vg<1VeTZofomdo^sLn^ye;Da12e4M|-dc)U!ri{jp`b5c zS2Vn>N4<(iTE15PDRF^mLRNQ76zd0i{1~woodS+@9hM+W)UQdJ7$f$Q-qV_DL%ojn z+uft_nP4R)wDwxE>um$!iC8_an^4$tHK(n4rm3iNGp{YTq}TLBVnp3Jk-DUh;y&S; z7{LnESa9fHdD_+<6>%U-Dba_W`0gXb(f)c#;?xgnUY2NKy0RIHO&pt}wuI+?Co(+$ zQRRl>{EY<*Z#pW`*8E(>a^Vjhmc&!6WLks}0^ZkplBYX0*>XzQtW04ag#oOy)(SJI znt~XUEZheTIDxc8eg2HcW5!NuiTk1FwI#9t@+Fx@maI1A6~yZL4SlQmhpevE4y+JWDR>?1zQJ*T_W)*wHw)#uQB<9M=H z+e+udr8)#|;|T2f%L!|VQJes7dktd2gtK+ROrc9*SIA?&Ei6@DnEy-vq)WmUGL{9g zHF7iYD|SeI;PN(84^(?A-14o(o)}8siu5B+Bm(Awp!y&(KBOe?AH37h&oKy!${@am zR08+0wDeHabU%7oNayWn6X7O^2&Kp>aXIJ-Iq>L+@v~!Ohg5Q6d&`pdXuY}SdH7p~|ge&0Nzh;S{;{(70^S^CK z^ccWXea=6UOUQLE6Pt*cv^v|3)WI&+0L;R>#3VK##l`j_0bl(Nyczw$V0sud(0{2= z*EiiT420ht^dRQr z8}9Q{%(E9YE~HOUXZ97Ui}QpXjFRdifqoPsc9BH!s<<4EmMh?K6ahhU9_F?sv-tmV zTy%~1e(x;twC%C+JYNB))HbkU>XQxJ8=qJ~Ld2EuVI)ESxebQNQ)rm4xwnAVJHG<$ zA&Bj!Eo_Uu+8PRMO^xS-Pvi_gLDq};xYw<6O?j+11Nocj$j|LT%~KWZ%s9~KcY!J* z^J%E8@-U0(y0xdhxq+IG8Ow?ej0&})-YqK~5SPmq`2xw}n}q&wKQ%=L%7luq61bNw z;M-XNHKG^XFvY?DxMw?Nyk@CyY9-DVhl$tZhlU^-3~td%tYGBLBaO%~RQ%UaF_l4P z+m5|^GV0&EV2=z0m9M#_toJsPY!Z!Nz?fzl{E>HTi0)!FA&l(AT`~?yp1JT^>|+mT zRj^M3p+nU{K5Q>~*MsmIQZ3QmW=j=Yd&^&@d8Twx1y!yAyvggq2Q-r9c*Z!qOJ%U% zJxmv{6-ex)pz5xIin1g0h-z$x&E$XE+vdH)^joSYQp_Yfh5B+R95buK#I5|c9g>;FEyNIGkAB%}iouF}f zVeaV&sI~K02$YkeU@%@l?Vkva&KY*dJ0mpBYm+QW4uh|0J@HUCrY?G;n*(+O*yoMhN(bjkO`PU0uIE%+Om(tb&h zI+Hc{wFanEH`r*F&8BlyZ!8RY;s~fvqoJae<&VspY(FHIY%y(@gGmR>zFI9m6H}xn zhC`ru_9Z8fT1vyw&P3{M5QwXPVVdj_+zrXdV(eh=*>TGn`*Qh&{Lt7EyxXQEQ|bqO zBSv(K8OU*cf_mGAjKl=Yr}*YrJ{h^M3mjq$SiImc!#~#9I@3GKFwo#I9Y;^CF}a8o zS0iCM=|i6434TRhVFoUeY-FK;X&T&#UmOhu)r|lC9v-^WY@IFE_obnNp};f<+VNxZ zQ?3L?ObR+4Cxkd;Aftsxm}_Q+o|!Jx#r@C{t~80Sf)eNj1#TTX;FaaKz)0nh=6d2X zt&v#55Q#T+B38=&Q2Z~!brmEuLdW71Nf29tmogUl&(=7P=a7SBP=MBWw+I|)>?cn$ z7Z9UXAYMejV*=j_;>~Fj&8{nL;0CDn^u#R*m8DP;K#kt^c@p=0f z58Y<`Ap2Tga;9V%2FaDw=M0JnxdPfuB`9}Q(K{&y1ttcX%QjH>AAqK0!L-%K=tNiL z%>uK-{J^hmZ#hQ4DxXd7rAwYsthLmU%*K2{H}3G?$UZQ*O#|STT93&QZ9xO=4`1UP z@QLp7>%ngd^)&1?F10+;-YHWo@zP0mb4IX+v;njD5|T?7K>9Di!&nMdtFchQu#ZEY zZ64;IOu}k>E%b5ZEQ8tf#j;GTsW@3{KB!hh!k0#$Hu#&%S=)O)d7|yfVvMsYdn7&=LgC#S4&wH5WO!e)#&jVR z*vt3@MfnFLz}){O{Gg&b3vDk_${1+=W*z9Zc>KM&c+~NO-onfTow=d2bf;(Zy21>8 zL6^WRNWter@H{-G_h~mAM?IDwF*L5Usi*P1t&69vYlD5ARM8nl>%(=oj75P~HGp=} zZ({;5m@8PBhNBCx0oN^?9-`jR(39AS$jErO6%4w~s7`jw_ZlhRb)L|NlFdRl=uVIM z4yuEGXcr#pNqAorz&+I-)At78_l$)KQIs8sj)~8)j5D3Il~kV;#ChdN7hK=<4#;+u zhhwyb&=tG1b8Il?CIzy5x}S{$^KUjwr=dt=)Q1P?Nz9!%Z_7d34O@Rtu%oxvK_Ys- z(|opHh=j)88rpA``hi{&rqgC{e|(24Y716^2zpk}f|u_WeHm9TcE0(bPgU>Eu9NvU zyl1fjw=a2$IZ0`_!>jP+q?!6i|C?Mxuc#Ch4>&eiBntwM{1mjbJ9JvH8-*tsW`xZ0 zRdY`|!u_Xt{&vqcw1m>t0KRcwc1modg=xDZX&HzqV};gQ4frK#+n3=g%z(Ks2wlcfCe}dc_%m-gNhR)N+ zgPvYRe}Q>T_w`)(qkHKVx=x#}_tqO=Lh;g?Hxo-{oc7rg=XRuf?1e7>{Qbx3U&wUO zb>7uk&ZBp=zvyVbQ?G^UX*+d7%`1W9-k|1bGxcEBTQA(eohYWwv1i59b-iPy3k804 z{%Pm8*&OCx;`Ectu+Lf-Z54k4<#ibu$+-}w>zJ&kfuhq$|A{HFrlto=R{ZYm6&59c0#=zmyHC3J@j%^&7gY{xV`v|8$KZ=P>MA>_ zmC^zfho`xYx#Z+=$9Lr$zP)OG7gjfWvd_1KlCK`7P7eSJ)m>3ZWQEkj!Zy!v%~!ul zs#*N>6a1;rS^cavQ?|NW>5ceQGO6psit%qo8~22j&zSGsru4O!wNh*PFEs4*SkxQ( zZqI%a;fdCdt1h9L*HvvADmLS7=!3NNUKh%_UZtj1 z@*O2zQiIfFD1P6_9d{8-rJBND+MCf@^om>`a}aD=O-F%Rm^Kxj_D-l0@%o@?eqgnf z6lhFSlWxqC%Z|~K- zhJUh4HU^gXvB*%d!l_SB(+^wTz$>~?BK%a~xF1#ZXB94`TuXautiyVfo$4nj1n=a%&L3>LzQMD~w7}vk zE@s){O7}3&CTEoUms(%H(79!UXFs>H7{5j-7UzJn1zF8fR~yRd2Z&pDIjrgmLtCd6 zUcXGYTW)8$YS^t`5ML>M-D6y}-1Rl44)3z9zLe^1yl)xzvzudWLKWw!wANB{^^cfG z16)g$@`eo8Wq4VmJjcZrhT>+0RTgx8h6EB$OiB@3^eW)CF7g4^dn%mapa6NZwd{7vt zpWN_oMycHGobE3OUp%tGfsO8J}2)_STR*}vuih99IGOVhr(&wFfos(V?- zbM-d<4iCwq-#+F$oBM2*F68C8&gw@jRn;`DuUd@_6bC4?(CJRqYHOX0hfH8C&cVkx+-b%~#@xRuoO9Gy%y|S(tDtUR_ z|6?=UhxAdTC;X2oaNFER8o|j6oBWJfQ2#qezjZe|x_O|PSl3%bMo7wBrF?(vUvldw)J_SpDrj#|0+~=ZhrT#J>6SX(d&z_HSeC_u;)4AJ$@`e_{v|p-;%Yc`p1i4X|hs6 z4)O%mphJyEHIUZ!SX4?{o66n=E8jn06=*xTv)IlNN4>q%-1po+;aho0$EpeF1ZE4- z(l1gBGqsuuciB*J4tmU-yIaOYu1OzOp@DPumji;Pc!`Ci4X!a-ar;TNfoCof?gyw@ zt52qYc|VfW6gR<9uA@$Mf<|%#Qyn@rSsQWfcX*jlHSGHUeqQ^-E+AbvLCdgqq)U}3 zeoLswZ0de=bgzM5zlU@MB_>qN!Co=}yOKpbyXv6Am-L0f1Dpx20ZM>UVEn-QxV}rx z%$L;9dJpZkaG5PqMv>R>0aV0HyOH7?nKP%ZvthI(<^%LDmlw_G=)e(bf#b1yM!hff z6#94+G0D_izo6gOz6mAp{gX&XR)hT{YYDOi(j|1~gP^M1=RHVVi3d@`c|hPreYS(@ z<+KXoT%oS|R`fN_rM2NSZYk(=u$Bta`B(NYIY&x^#`>An!9?=v)D9lRueh}l7U{gd zNbT-fG(oG3$!Wc{?c!v-E#Q`=TX+JisP_^Mvq(6QQptC?P~LH0@);elY+gbf9JMWc zrs<8(zcfpIucxRf;u&GFHdqWd3`eitNfjKcH+5pCIR);UAE2Q=1sn4aNEi#@aDPTD zp#wuF*)G}L%tdSIPt{9OFj=X+COhO*yd4uUx$!-Zrla87=)x1oD{>89tW9EVvAnQ? zO%yVP-hoepYk3u5@Jv5+bH-^_%iS;y-(jn5OU8`eeQY&I&8M)}TOkyc9ApqLPYq-+SZSD=ha83m z3JE24={qLz_Co(R6%2@HKBB*B`Dp1xD#5+bjm{L8lKw1-yca*h=d}xyFIS*{9xRGt zgovp^!VTy`3xs3nT$@25Im!EY5B2@W^1<>N^E&47NcLR3MV7NT@)Q-=VqpybKw`yd z@S?0GiXdT*-Apo;%VyLj{P%_m4z=<%?G-pDSjQ`2xuy%}FiZRxAzPQF*bnyjEH( zabY|3y24N!SE1)!6I7goLKCosy-<_KAk(pgeX>2YYvxRIgjfiC(_zF9#Fg*FZ1^ni zgHqd`&*v4P18fB8c@gg<8~_1zHs)`hN&aPjmL~n zFbQM_+)~R3W+kJG>_B4fI%Wlb;me@BT!iNE4$~iB!H=^5z5TC(cb>hIbq*XW z@o-GpptPo9=FE3Y|CBND5X@4rZ#tuLZNzu7WypV(hME$Jiu6DA;0yA9e}#v9Zx8X5cjoeIARM4yO{WY=k8w0-vW3`e0D2yXH2mi}{cHetn$Xz=# z&L_PIlN-th;I5I$9ljJkkA6_vPNV)^hzwjQT(idT%OoK8B*F#d0DtH|ACl4bIl$-> zWIjz6Va?!DChpn};7=dHDiI@8hQ^o+w@^j?6URRRskdVA65WOW>H%ueZ}|LLtK0vm zt-ay2cFou2^zu#JT-0kH4vC)pgQ{wijcSU zj^9a38@aq;sRWm%{7E`MhKUF8v<$>V!;Ab5uHHDDt0`Eqe}MR15%+#AejnGaIsPrC zI9XcwhFT=Ub;Ck&x{xi6lD-MC;$o>TGFzv~|Hxa+$XJGJcN5CncxXR6;VU_aG}|*a z5otd7J1tFp&6W)LhM}tXf(!CO=?cFhw3j4lkoZdMhShQ|JTp;z2lqg=Ylo>_Z^8DN zi}Sf28ro>+N5y<&E#b!I#_J$Q1sax1$Jt+)IjfU-WEy_KMzC~$9yGQV`wG)px1eQXgx!PbI5wVX2X!cx`w~w z7D^+@S^^4sZy^YEC_E+X0vqr3DBy34%P`xxg3o8m3>o5Pn!!cU0gbu`iNL#NER>sA zkbIg5bI4LM78GSCbm_PF_ml7h)U|gG^0BTl95jvtQO;_-C_d5id8GJ6IL_|~LrHtC zQI&Ot{xcKvE@nZ8S`HOy7}k&gT!l64rgxu^0?U1w8mIAtG|9M7>;X2&PcYA}!28q& zgxF}fezLLBY-9U)DEc3XWHr?MBYZ!e4G&x4J2GsKrIOsxl#h(kC*w=>}1=Rvas!h6$)YF?;4dcvy3BXPoyxTF7C3AT2i)gQ~F#(8p=o9wAIz z${(R-%f|Oif#Yrnl5S)16r6{vuM?)|R1^Lq0%hXfJQesma-n&c^v&c${n;UN0sp4j zNPV$6Z^Cx-+rk3q6)&MRa@rI#!zS~5jNlhYq5S`g^GY2Fzds;LNjB=nqQL7=4z-C zZ&?4wQk07%NqmfNT!SfjGx;E_GvV+ay~H%oW$3tUAP{IIm=Des!~_!Hd6os8X(qhHhxl?D1s~KKbU48N z#HyG`pXj^jKXg(2;9>=acUFIEJLhgy@=8UAf6M=|_tpVbW#9YoKIhyEmo5_(u7QGz zqS%U{VxXef9Z1QDfQ0C%BX&D>cXxM;U1N85Au4_IoW1w^T+q?a%zQt;?;C%wzvXpdD9H^^emPd0}VW?7qpA|-cwRtdeV~yB* zB@{L}ef8;;WxBV7;yUzmL#3PR_3X38smOU4El*W;3ftvhl*`Hxc^w@me1-p{v^byl z68=COdno%;(aXhIpIS-Y9;VxFp`~7YnQI>E8j{5g=WXMJi(rnvE&9t7<=*rl7>k#o zCADSigfwJ*%4XFO2{=^AzzS-6-ThU|7ff;05DDlT;8v@}*F9D$53});Im5yD zc@(aH4Xg%j<=<5&%yrBO%4r%Vmj#P(b+Iw&B?L$Xup;XffBB#stb7TqTK8dQv~Z~0 zCAlrF=&<|KIisU(1FT`%o7Jkj=6Lfwxe2=@KbCv2Dae|bNh+%Dz!P^`=_|LAH_HoK zENig%;{+y^ovCD#Y7R?2EH@X}%n|k&u9!}W2h6SIY357pSLKr2l^O(l@gwP|o{gEN zQHhejn0@4VZM!%4{Y@IVT(ZBcwW@4?<83*bX@eGGnu^S`iDskBO(kK4UM%aBN}C+jv!{jUuhuEH~RC>3St9B%zkGgrUWG1boJT{(W% zdYvhp#p~b8`SJy1-R#5X0V{tG)}AD34r^drpspgPDO2QLCST=xZ>h=XCqdR#)!Ks7 zj_&p)KdfU~tM|sG{Gu+(`~fTEiY6cAxlKYXsLS$I9yHDRf%QP;g4sin8-m_EU{gQm0B`jNs#-c~6moih8XI-oaJ zTaTA&$hXZq*f80tM_RKn88f67ipy6gYai!opTp@sp|P%kReSwdgQ6T{EAEW8aMxGO?|$8@Qk%Vx6QuGD| z$aTYX%txA-?NrPx@LS?Gr7>@%@e}Kqi^D6>zSH{P7J0!|qm1DneiwgtI+S&rs)Vt+ zs&|WqXGS!6)@It*;uyx4-f- zj%9Nr5n;DaKhVB|(Y@dbEyE|6W!S&po6`he%sEC2f2c|-Q7qRw3uD7;#V2%G^NwbF z+kN`qUo}=X+ePY%^JBn4MA}U=xWlHt`IXwxYUw7FbgUMKkWfJ ztlit7waR|`XS(?>9E{wyrfCPprlZPOyYa?$23zHYvdTQk*i^WqG#6g-e9Y(GO72o) z({a5-m=&Od8cNxoK za%bAuXR#Y!tV#ZKQ+P3pod-TK6KIlmqmcaWiW##%kUv-{LdgKIYvaAp4KAJ-fSFqNwHF7ZyKF40dG@-3HNj;mW;X%-uDq}v-s_iT9 z*ZRm3W3#SgSJ3ZPZrgja5&8A4zsECx}>^~5zIS3L*s^gZPe zSe2`jyjI1$$`>z)VVu-a zy$cL9n~|wQO}YyYf}WNiYS6pS$vu@@T`6uFXRYIYy8S9&%_d_Fx>}CKO#6jtwy+SZ zjqS)KxJdd#1+Om{^sRu!{YA)Xpeip49bEFWmg=KPB_OL$E9Z?Jt@f$hjg$n*!R!q0 zWKKl>L?4<8E|N&rN$P^=j&URokwO7nU-P=>0`)3~Zuy?F8)jJ>$sVB7Y9gQJ1yf(* zpnQPGtGS$osF2;XJeW6&@orLpU}57uq`1M$-@Ecf&%-uTZC-%o`-*Z-sSBncZ&Rx3 zsA`>DhMZL%B5Gwc@(+cxN3;o6{`(OjVFD&)5Ra!fur_el7V`+T-DdONtfDUvPji}- zK~(5#@R3ecG(gVGWaD^G`kJp~H`oL)nWT}*;#k-ceuE7!3cX3+vfgE0*=)59Raz(= z!3i>rH^j(n27}2P1uF>5I@j_pY#rZ(>$r!k!{x!}Iug+gYryDn2P^Y!rG}LH#WvG+ z2A!n5;L#+6pJ#Qz1C%D^(|F_;9K?pf&UYSszfbsdAnLCQ%fzQ*B3XjDY#n5^_bL9h zxSbubJIanJWs#|+1?FmdX%8V?nhgAUXGA)^M6A~v77q(VBjl#JE_@bq1ms--j^zR7 z=Hpx^7JFc8vMEavX*lT$_TO~G+e{@>!LHREmWLCZ!t>sqtiqb3I@C?K?IvAN-y4Ysgu}@Ex)!(<7jhgi z2RF%F;tm^VORWE%vg7vcoHyCs)U+V;*g|BzJ%kLQ^)OGat$vSL@Oz+#!iBT^J(wb_ zV67|#-qmB^;dqWrs5)RMuCm(pC7iq3EwLtK6-GxYwd1RaBz_WeRF8$NuvdRVe>NRf zh~8Miw&JJBAjFXMA$G_<^9MZ8k!-#FP3J({idLbp>J5|Dsw#?6;!GgiR!T|2U95TC z;6F41XJ7{ekUOw2>4-l_1ODt3Rv-p&83#C|x?a%iS2ZFtrFYh8>JFATHDJak0BcYM z+tow{rY>B;y14ifw%od#Do=ISYOz%|><``Ho8Q5` zFw=g3x0lO)MFyc7K!HSJ)%yzU8I|F+Zx8F070NkQ&c46v0=vW3mK-|otTK@E`2s%y zlv57^JOOw%BFPv$w|2ZYY%cM@4Gn<}s2bMcePKaa0l!`YC+CvC+oVfVR9;pd>Mmj@ zewOdYn_fqHBR_Vw&>h^zpTJst6JG1Ju$|Y$-s{nq=fU=LnN0zH>uV{s#zh#fN&)*% z6G@G=RXgxCwF75XsBlNf#dH6NwdNDpD%Jq6vl#IwyJ0~O0D@{M>^CLtXO_@9G!jb- z%cKakN!5jT@&jP~H6q_|J{aEa;91-S5}_|_iI_RSisOQoP>00u&$#+Uthnt{xAl$( zRhvjv(OvaMRYRx_pLKVj#V|SwW084j2i`+n(iYEb2!9R4g$#sK0a|)TUKQ3MqfHOD zs}6nD{e&3dnq*KNCM{VrVKdI#h#W)S*{;G9au?Zm&*05Xg*|Kz-d`!y-U`6pePuOy ztZiSnat;UJ6*7_p$yt4msMsPf-$Wt<)(S9J)fN^BGe}dCj=t_5Y{3QmHFEO!kWRp4 zEnrVrf4e%x#@kOvz(0#3uFBui*Z3Xt=~9X{7hf~^n)`^8$|AD5FXte^Lh z+GHhK&s?m7D%ejh-p$^qnl0`ijih1fD6)&jVVvCncFj!ihE3p4$#tO)Sq#gICv3#^ zP|vF(7ghkcXhxx5@^+|RvWERgm0s)s3*rg27xAal$rWJ)d4VXirpQna)=nW1>*g3B zVU{50!gAO_Gy*Jqu(VBK3mqGj&a>Mkjg(4*eazV^mtR9~eH9oWUogGjM#}?xFme#j zgth1hYGrX!0c)7j;5ixu{Gu1{>%6SYV!Qp~Tj>Qd1tnVr^J&Uw@bldVyY~v%%T~cg zH4wI+Td?LwAY=D4WC6NHo{+|ahT21~|X!;$7c| z4WuS;YI=Sd*uA0jJ^TiJVKt6JR%kW(3>-`t-&rg}JHhrc@mH;3cf>x{_mz`!Cvle$ z3*?Lq7%HbA&gU@r(3kQZV48d^{_6J$K zl%!OY-q?&moP@jDS-PuaC`*VnpQBh|Ts(xH?>cS3dmmt|D2s)6}5H=$U$`c%N$M}2F9QFu`C)A5i zEi2ZDcf3kBNVTzE{-il%dTIP!<)u2MG*$daHk*f)XB0d+6Oiw56k5hIM5A3KZTJPH zG2&43Sv75P&3^Ww{Edpp1>}-OZ=7ecQ?*v9k?V0RYE2sWFXz&iN^3-OzCjBzBLDXT zWFPMg7MP)|9Pd;qv*tdHnYo`7(?ykOGIGH1+s#h#%oNllQ zmO>=>1h6^z0*ybGR_5!g_}2_kueRB*sg>s?RI~4^J8IM;@={B0m?iLEFOEu^@N1!P~l|WThZeu+UwZ zBrjLOfOWA22T_DDQ>+Z;@3-j1eg%h{8y!Ut_?4;AQrYDyIM{u$6E%+7+?qx!&1K=1 zISg|l8`uvLlr>7e>;)TEcY-sKrpO!G7nY@a$UyOcmaad$=5*a6m&eZ4vj+38_9b%H z8<%OGk+r5jl|jOE(-W*AJJM_NL;4k?bw}{J)yDZ>BOmk&pl7$RDNQ13_X1btBe%MF zqm`C+cXOW^?`TSpa;6aFm=I$8h&B3M+Ew8S!CUVJzsg&oA?ouTU=WiKm;180RUN0y zcXq!QJFfp~KA}m-Gnkqq{wvyKi+mWX;G@1LJ2PuKSqVmFgTo|4d?cnLcT9h-LoDBQ zR;SI5dj9Vl+U$3`ZGL9{Q$09eEr(l|VhQHTre4BC!*%lng(FgKx?+t?+?TnNSXssC zRrDiUVW<7fZnb~Z(CT#)>k%$9XqfU*+*PnhUSL&^B3F-LBROZ7YW4;0sTI447`D}@ zgHy;T^(nLmjW8Fi0>}86&gUA{eKF1|)8P){TWbqlb?(X~^;qSid|bbs*EHJ7c3_#5 zc#d+Ie2a|TaDmI<{{Eo^+eT0q?2ar~}iOM}G(7c5$ z*6pSf&3<_Phv-w_ZvH^OD~oopqEz8was<{jqPRmS+owX{yO+0Bx$LY`Or;|Afj%oQ zE-+0KXu(rugS;F^@MJpj1_+q3BuH{beETqNuMps;xinh5+~;E8+_zb(K;sx$RFCAh z3$80u$ZpeSl}|xy<(k~o93zjV^~D{CNyRcu+DVrJQF&E9k4yq%#0skVy?vV<&WKj0 zlq0Nz6ymg9op#P?H`7 zdipGTCM@c{KX9P#lX_fcR&FE^tZVa6V!pjk?q|O-Z-vo~^fiAmpOJ6ycXDZ=4f`ni z098E&E9|DQ4fqH*~)V@TZfJ z_BRR|nK(Fi9w_6CTX{<%7GAriszVk&II@jamqsWLlv(6i`-*jRs$F)+-)wu|g&f!P zH@1?_81G5-9X{qBHRYJA$N`F%xi%tkd+^C*3s(G3ge2m~`iKd1DkW@q>$A0!t#;Z> zeP21VhuqNS5U)bd8tgS0n!vmW#mkffv;5c1wM2!5;0V@o{+bM+L=SaRddzg4<=BPvX_q)Pa%iW1Mul> z5>u7c^fy+#WsdhFKG$K|hftjg@6%nXEf?s@+n!fz@@A0`*$J4@UyUBpCO%O~Cy9vT zxrz^e20rbscL z9adt&BN55UNgBbOpA(KLhp7j@+k{kaXY)ePKAN6)*zT&mJ(yR&>8+|teZ(yEvg5^MZ~@v2mEpTRN!`KXw-^22YiTgN&EY(?(({VPoFc3jf7+d! zBCb>KLbiujhDaq}x`hl|=|G@Y5Nn{tHU#2fJ-h~30}unND7Z?O$R`rO=Xj)+ALJrh zJ7z7*pGn@SR*N3wk||vAko=huvzDE#1S0A5yt`1I8~}@FYhH{bA`-raxE-r-7k;MH zB99@iDb}8Oy9@g9hN?fryTlW5!h@0Z;XLx?V1xkn+a8vOd&ofZ0<&(!ZSc*Q(TyNo zv5J3DOkc*)ZKh^xLA1`qL{%lJnBcF>r(0nMXd%2O9Z~0204K3bYy|#RJFGiG*a$Rfwd%6ILJ>R z8%G9Eul?YKFW@gR3(w%Yo%)yD>+ET5YZOcs$wnzgnj{p5cWVJwKnnd^m46Z~<};Pa0H;MIVx8WqCm64oTL`PA^O8Z>2HQYyu@(4V?Zp82 z;Kmc=*(3`P_feAfWUKic%&kSNVH;zG-qdMWiT4hk>Zzvda*|kGHAcE5s>O1|NqC3I zlK`PCVzxG8|2pu7Z(##4Yh3~SeJfZGoWZTRfK+!ZRid>+rmBV940hY|s^aRo(h;nd zBwU@XkVE>AnedmkAsW>6saShBViwn#ry)-0Ab$-W1b;`lcvt&zswjGsrK_y04oWwL zuE=YC5}r3(Ap=o2&Ed7Z1fTORL@fQu4rAQ0AotfJQsgXh7;JJ3DzVNkS|##_?_Oo2q4cr;rsprqy2Mm0*!K- z=>FQFo7e|9_4Z<-sz8_mgb>4=zXbT{FJQIx80-DV(p%(p7J!>+ja9IYy`fjwZ4xKU z;U^sP-G?~ogdU0y9WBmLbp^}L8sue9fz6-*>&{={Z4DtQ(m6!%T?7^*0`s;fz$Lwe zU7#JjyOSN>xG!=!EOwAbD09UAYAdk^PeO*BSKy8K0>+HVm}A6nE6F4VU}D@*Gsc_yNdv4mi6yXNT!Ks^yV+=mn{+L(GzFPCceT+L}JYXclSnyNJMY|tpzePnDlg;RB3(jP~J%AWjv>9V^>m8 z$+gha@1gftG*K|>YS{sP7RVo8V8JloKPt;A>*&17(g0LD6GH) z*fREsrXe@nI^GVo;yIg%9`OTh?K3sN*KL^b+9#L1u8wsa{Y(?``YRnJJ-uu$iIJ~9 z&i{~^P!AS>FRB==CcH!r>Dl14zK0CXW9a4@`2j;66Xgn@FK4?s^>l1zNYCq_G>`_d zI_A5iGx1U!(BH0rwR#blyMI$!ksjhW{uLu?9lnW7rXT!Q1WdL`=TpD$1d*K#T=N4~;RcN45vF_`lPNtv+l?%fH|)KtkFGrBU;*H_}jDC9%@75kx#0)a0qtrF=&||X#W;ff({vU z+@@ek&IbEQb`JUG+$F3Y@Sptcv^>{DCIzF401orU;tWB?xfg}-DfDE*P zdWc1+LPFRD@?6R4@u0Q;>$>_Gz{1}_9Fts7UMt)gmpKa3^Q!u$H26B9*BW> z;j8HkDU19Dwn9lVjqU~x=^@P^TUg$};-QzHl*%4&6s09VQ8m`ZX9{c-4H2{9dujuo zvi|&6AyV99lF2A#8jysqcpCVLJjJ2#=QQWtqsn(&@i^&=A@92Cs^+em=v1FHiYEzMN7YUbrHU({1=7pUtM z^v&39oolC>usC}Pvm{23*z;=OaA6FteNQz`wiBwRdg5cE}kX*Y7eCUtALnj&3UFf~e0g4ei-9``ZTij96#-2i6hHL0CiMJa080uu&ER| zi&fBE_^rAN6d6di(1hq0VGF(nXXf1OW^U}_ubH8D$Vu04qX`ZU#w=XnYVh$w0YjUL9_0|wgX1u3tj+fzM`9_}G1_y`zP9i6N^rSrsw0!=yB&BJ9yk=`5uytg*+11+c#TDQ+cg zg}H2g=-xV=MUlP#vuoB$x5Lg3w6yVT)_zjPuB$FjIE*Zr4}}0_5F*xpLsWkltPZ1v z^00l^kji09)$k52%lipd_sOW68*+Czm34f=91MGM+6h-QzWULU7kXGG2(+bWN46@< z*n4D6{Ve1GcX(Qw#FI%Eez4i18aIXRrkQtp@H1`&>gwRN-Jx5`=4!U;M*&eeng$5H z*(2ciz+z5)5&3Nbf@=>}F;#egG?e$O`?SU;`&mlly;eF~2Y=f=Vzzvw;DUToMNQLG zC&>-vS8*j9MO=k#jM61!vC^I?@E)}WUfM~z!!K3aSvA^eC!h0tYQX@Tmzr+iix_X% zCfAp=%2w%j(w4Rn-QX!q6RH3;ypCiji&-pD@dt>p9U*?@Wh&jTywG{B`2O9%f>&0= zy196Z%`hF3Cm=WbUU4;fL!HGjVDsN4LstC1t9kDySfS#x?7UUjQ$C$r&1a`B7 zpobr`Pw~!Wt(|1)Nq(ehr5GdClZFZNSy@=TMgcqi7;Fvokwrs`EV`+PN_QY9u>T5p zWj(kPW`xs;SS+B-1BZ%|tebDXBJP*QVExh^qx)x!y(7gxkO{OG?ji?B`AP6S8?XjM zJ}ltx?(!^Qh~P{Nt_R$A+q;Q34147^QY%#wqTmnmDSR&2DlZDnV6_=fiU|&2Pg#Q5 z*erMt)L@C&36E?k%#42{9b6Z?U$Yw{^f$d#9!tg4iOAw`26L^}LKd%rHdX~uzy)Nx z&2gg_Y*%RHJIH&XIbF%gI1QN%bMO&_nCt zyRHu0K!2=NmXSH|4t61T=|!4`exxig(kEQDy6?6-CQOl|=@hA=dYLpwi~-Z@E7(Re zNj7Exzrll~71W5vwjsU94j}|~=M}(YKHyu>lihcjP$s~Bws1n8Nso!0R1T5}{B&uE zOow*`>#z5S5l@%R!lZEnBI!|n)x(EAo zF(Cy$o73?6y@8*+3wlcMx5E}egqra0&Y?hJz;`;7=ztBiaZU43IiBIn{6sN{`Ks>7 z)?wIt;6~J$Tn|1D)F!QT=sXvpvT+eP(w}ZIo2$ zraBt$bOdH9QOt@AfKM<2zPc9hnjHm~<0>*lN@Ivi;e%K&tSS3rc0J7XVfo9>ZP|2V z8`)nq-fE_Bn)?Htc7`^@^V14VU@cS$Re)N&k6C|NX&*30Tft&rWl1#>6-EQ7fRxN*xM>R>bG*mj6{=nud7S>PUB!DYH!0V54OQH{`|=dwTD z22@^LY^R)B@X}mgJy$U6>(JJMDnDpg0 zfqL5o)Upd{!pE>LbS&&P*MNmsLF-{PE3n8i@9THe+U0hA|It+4?wmsdW~XaS1H~M< zIc+6WavUGT3IbmLzV$6nt_}F_2Dr)fy}$V(B1R_PZhT#hUNirpxLrR<gEC`2e=taAXc|hOCXa!=KCrJngH{Ev<_fTd!_5MtpvWFM7Vi060* zJN9QF3zA3`d8B{cHuGHeed+xs%DBZX!|rz-%_*;3mR2g~O+#Sw7)KYgjbH*9NVBN} zvR?#n58(lu1Qh)X?kR*T_Zt;&XV&ch-0S^7(=JyJyGsQJv-QdX@s-luBqK`W02N^Y ziWUYaiOBm@oF3sTh1LxAGsM98B0q*r@b&hUc|>Mv#$nmYJDM=8{&;r&3Q9)ybQ*3$YhtT1=w;A^{SFjkT*ESCM1HXPo zey}k1$n*xQuBAXpTqWm)Q}T3RUR^MIIzrNcWse~v$tU#gIo)b^JpE>^zv zj&_>!>X&!zGWuE%b$nuVH(SoAf!q>}tWKDIL*|s;$hb9Ccp#;Mn*8GWz=H}!bSeQy8mL?Hav}NG+c{rp@hutr4z1w;_P&1&!4YED=VQyQ@ z)vG(qHE`iK5@)vN``9&s%469ZQ#`O7Td?kI1qPl3SQ++`4?~K#NqxKjz4g`7wrxv| zBh~Wz7OXR+vAvFc^)6y-=4y6;&7-$?fL^D>yb=BQX0XBbgZ-ul3l>eh=isy!qdq2o z{BWt3ZDi@y!jt?cy^rZQTklv?cbdepKg=x%WhX>?WNlk+ehAOS9sU^>y62cfq=>Ki znSs%PHeb>{pS#pR~sY~h0ko7GF>d7Q<1MAf=0_H zfq^jq`!xX!z$q+AOyq|{2l=O(cNO%zaY*PVbe>2`RSI9}Rtz$F9>|~OF(!0a9 zs4|Qn5cjrLX@)FE!PvhX3#Pw{Wr-`{#D$HAB~}GLQj%{kua?wFzMI=!v(4r=toGkVeuNtW&lBc2&0%rSjytCw#mfYXkwMm6}yq%@|yf-R`YG@ zvyrkTGU*6!Al;K2f`zz03q#+(0qe$M@VWmk8%zj}Q*h4xA&xYNwdS9;4qp58L5=(q7nsdpgXfp)VW=RN4uQ#r=Taxz65{ z5wtZV0o*U%s(9;iqKR&Yb*U5lbN=wMEEY0hqd!CXfKjU_f5Ap0Ywvtup?0J7d%z3O zfDCn4JR_xivm}>MIa;?7hp>tK16Fuv;CUE}yKRA4LI{w6*SP~f4S(lJSiS0#J$yZ~ z4R!~v?P=-lp1UMw7L|Ug{Z`J%NO^|86l#*0!b)V`iottJK_u2O@`W$qscaiOQT2&H z(t!h6j+_LrV3t;E-${AkC|RaTwz?|ZqVb#x_xLqDv2KX^>;^x@G9V6zB3kJMZ0G0s zMx3<|5KfrS!47(;^fB!$@;E^bs0^Kd39|j%>SMfvC$uukixD z%y+Q8UgXEnbB_Xx&Jh;k{-FFuDbPEBDh{*)=8QClB#r#$UJO5|*DHRV%O^xgP(RKW*c$?3v1*qHBOjlUCb!Vx{5 zKVm4sqs*4_8srn(N)`$kKvSWmuykVA-mD~W?~i0=~-$@Y&3R)iw()xd5x*F^Hil!{2&|HGA{?Y=tkh3$WhK zLJVbChUzB0q)2Qfn5&;CpW&%_hfE0dfF+v+ubdH_WQ%!btWs=SLFiwpToj> zVLMQxT14;W@`u6=*0bLJ#*2)>Uta;qx7X^8$)}(hy`;%jW}EYr`XmhasUh?_zrt$L zH9$OW5<0`5brEYQ6FrJ}_DEvg=w?6%UEi#mK*Aoi8g6=>KSO!18L!+m&r{wZ%Ce7K zmG%bStrk{fUOWwU-wN=~wZdpR2D55^;ZER$raXI0P6)qb7i;y!7@yxvQ8Z7G;r*Sg zM~y2hH>B0j_leX7tBn|Ve1d>O>I3Y-VMGa!7TUG`H6ZNM@A)J7d)rubFXP_4QA$-C zFS!LcHmVX|pui5m%l`+mH?7Uahw&wiy1j4U{aj-{ z$wF*9h?n&dxr5n3n@uJ`NHBSkKNMf3CCjFvq_PstpVNb41n+>>c~m*d*3l!Z9SQ86 zTyOiM(umH9u=N#Y=#X)q_qI7;x*&cw_y_~(4mp#}0&h`@vKIb>;;N1SVx4Etlu4{A zUCJ7gY5hF>uRTCquDO=oCbF^MaNb+8Ok-zeQk20PUP)x&rDc_sgHi)N#Fc%C?}aC^{Cu91Q)MwKuZ->~V%U*k-s-TfytGcaZ90oO zc!MOspOwWz)VV+s?n7SQI()Sf1}n>o9#g7Sd+E&T=S+4UDNW70qI-nc`#8GXI#~BX zm=E6QZdgmY3rDez%V*Wq=izsY;~8=@ehRSxk4WiGO?*zh@2ccwt#|fQH_9KbA0b(b zB6qfaUhrDDhB@Oa{ySYs>ftS}XNy(K*bVe1Tu$Vv@K|3X{%tyYxBTKKkH}i(wBG7@ z!E=L+*jwn#uc^!EKj2AkHzyNkc&_ZgR(gj%mAo*5I>3`~ho7THtWaw<-t2uU=YqV^ z*h-Tiq!|VpJ;V}HCq7x_Ypw~uLuVx!C^bhi0RESuY>23^_dsAS#wgPSJY4g6x7ypP zBx_R|`%9ZmLon;#AkO56q*a*lF9E9G8Xo)dKyvP6W_lO%fz$jsX@}gOQ{g4; z#a*lQsJz~M!qmic%BqnnORi~-0f)g<-bKn)o^wgqz)Hi?v>yHUSNN|yFdtaL4KB_C3@$@{E=9Rz2!E-P>g@kz##O*jQ<%J@s9yZ zUY`sEo;(XPa3E7FJgvB&)igQE&gzeb9_%oYi7woicBYYv=5+jZon7w zmu&isE#u?B8*u<*@NmQ*Z055(GAfiKS;l%aSCyoC1a9TNY?`Ph<3$~xPHGEt!4@zd zUU+aqVEu1F%`d~OZ5zDv28=Jq$ykrziZ}QnV{5h@88-s>I=KY10%yEhtcc!;!FRqC zh~wYDW?%M_024z4$J;!~_Ps|wglWL5IOwTFYH)*g}C zYk^@-gAK_A%!!LIvy9@={190E-tuWeHb2NxwNm9L%+64i%(mXILOufXVA@p7L#)bn zUKLn^eu&q9hZT1=y~7l&{*D3{ajI|@o(V+9O?IP#*83NFM;9ct(u`CY=n_*3og&Ug z)QW`%!Gzcmfz%hQ$ve6OtGZcu3-giJ@enHs+msg8kxyO|s*aS;7yKfsY_?0~>2u>H z+7bN1D!z`nBl7%;Ejg(&s}8USR+2xJBs%P#@fHiLIUt>i%P9Pm<1MD)cbUJ8ItQkl&CKtms9%k(+Yv~m_7dcvkm1wpBtgr78mA?^r_jZ6?@;x&5 z%mco=Eo#7nfK~NgeCet0DRs8K$R`>X=#TRm*0aq6X)hWrc=1OvVPh~)eTmVu4$fbN z@59~C#ahUd`jOT`<6yBq|G3yVPQ0pq#{!McU>vWYd17kGFsnf8eJ582O8*7VQ1)Xq z)d&+=w9alffrOkF2vwge0Y%dH`l2qQxczp}Kh;_h9 z^EK67Q$?veFC|YwrVAUAhHM9Z+)*OPit5Kb6+3nb89`(|v%RL8>$^XBfAcJ>Hq=UA z#;`*gqrR!UP!aQX@fDjckD^v|ASp))xHpzdlW@=Re5e9mSaACVkqyDOeM)Bzr4FXo z)(v?#eTbpC)Lr#}PEtphZlM17%V*eC8UV!Q7GykqEG~xS_X*DgMr1Kf$7*6tJ!kLC zEc7hmJh1J}GSxT5iEip`v=g$;%UCtpP4-2G+;;gZ!LpjB5G-N}5_QMO6c(enaWVd!UUmBj}G`!$8t7o*UBw*ebY=bZqnAg%k%U2;?fZRJv+XDsY#@)$v zV5nw*&$T%Jty+1XWx5mkJ*f4&#Q{nMQwH;6gVyr$hF@6OjrpuG`^=;&HDc=D+Z9OzSga_saMv32-RH#`ynZ0N&bVU^0Fysph z1=@cpU5hB1ZdkVkz@}r*65tQ&;dk7}C(qkFK;7N?47WG8GewdaDhE0M2%Y0XaYWM) z;LpCoj&>gJaW#5XBmV_)Kfi+CAq^Ok8Fh+R>yVQv8&y{7h0M$BZ4MJFsdvcPz-f64 zU)dzQ_vy%#U6vw_5T3Wbz`}&`%V<-xXf7<|vl~YG27aBZ92Q52qY!!c#GEb7QCBh_ zg5_Gl_|{Qri23hCwBIVQ--m+tbvRg6f1wlDO7K^1Aj6u*`=(@m0iyF3S;d;medGZ3 zI`v+Yy-8HE*2mB3-umwxJjHC8iDU)0qH?L~*6A>X}MKEfHSxfph^U3O&G%Vg8>3n?V!76D&z9*>o@$JOwKLA+fi2 zaCCHZu(z|dwY7up-+r~Wwz7Pzt^e8vo46IT zeB9iy;rHz{)>dk@TBTB{k(&MIjosXe6)#@G@+n^YKX<{Au>)9eEFbLnxBZG?uac!K zpOVoPd$Am+OxbcC<#3??cAUb)SPt}Gj`RQedhkyE zzj{9ZZ{E@WlX~%gqw@VPYV-fl5`MInr%qRbN*=!5fROY+ls_!52gbj#-(FLpcSZ85b3)4QmmqjlduAQE}Rcgw*(yMp~~(TjJfa zr4P3Kv0X^ZmMyi>aS7om|F-#$?V=NshGLtP@R&wgzY$)3bw=3YI2{wC;=_^>5~Gq* zMs`U_NQ%-%hsWadMcXup!$#gcdiapmQ7PTS<5K_S=hg`++Q_Kku@O<)3SP+-s^j0d zz9vAy-l(t33 z(4Wp*_(Xne7l9p9qO>8Qp}~b`YZ;$9G%6_^*Nj6Xr-a8xME$h$KTaH%kdSCgEEoIz zQoK^}0Dc@lCJH~rj?fl8r=Jd0cpX2Uz|JsF*qt> z$hV_vlT#BD6O!;MEpOo8w~vmEkJN^L-x3w!UoYs#^+b(GiHc8-9TXS!{rxBZ8JQSmsRD(cAJ5^Z_Ys~N8JnPuh>MM~)V}|?^Fr`6-kmDC6+AWxo~)A%C?K?+)GCxA*yHL$z%8dBeYRTNeM}XTUi?Xe;()CTa64)3IFLh-|sLfDmgJBJ~`_9 zA-v*n`$Y}3ux0=ADt}zzw-#OaGV$Cjdy+1A%$EM5N9ce~-9oxrI*6`?U4|At*7u7m zyuzY?zTHpfZXA;Sodr`m%jOc;rv}TGa2`hbG6M8$?XLrFX&p zg@538JjDS;z1x8J@S#y8I02`MN+F@)L!w&#)$#~79~4z|+sOnE{o6i-gvUjEKV)!} zrD^@`{6GC(c#OaOOuUluzqX=RWMS7;bS2;V+1A}cg8!qlO-`}YwtsZrmI0%vG5q7V z)I_}2f9cZ+X=$ku+V5?^@Q-GyCfoG>{+9vPI#r_VYL22eznYKY!bz z=;{7*^KU==w3p>M{`dE1c_NmU@y{3e-}n3eii_&u&+p%IPRl2_u!1xjj#?OwA*oAI zT`2nP$M2YFB!0W@A3qgpMf(?y-v7Em(eIYl{jWcNJHO>&eEa=-qx^QBqW#0Z-T(Ji z{^KHwelKj}-#7a4BeWmq|JR>?I{)|Izh6Mno`qcy8vVEHuyh;$ar__cJuQ5AR7kw# zPXB7tmZ7C^{#R5BS{9Ci-y3yN|M_F2|7l)W)FSb+6H^9T<_2i6Ken^XGyl24kKez| z82)44_~X|fv!TCcsFn-Ioc14AUU;89V&g+Y|L5073V;8fAAiyBmi@m!-v4-d|NNtK zNGljYnsskUqKBqviDeY~);7|TFz-aaHW>5KC=7mH$=@C>iN*w&Snh(P4Z^^i8W&mE zmn9Uw3jC(6;+0&bXoqk8z|ioxxP*vr@5%OWC%_P9Iif9=7KHS`VSlc5meULeitfyA$|MO|C_|3f;fTIC(!EK7vDtDcFy2a0RX< z{`Gv8>(jQf+++_tpQxn5-GBP0aDU5_`1jp^+OkLu#UoDhO{-T&n}iAyJG5x9!7$ON zXr9q5G7?vlto2I7bj~tnXk&+Bo#2~{u_iVlo@lk*W0O)+!{a)oMkS5>_Jl1{V#~aH z(8v^wGg#DM#Qk=Z?-!ueejiB^lcQ226VQL-4TW2dsZC5uNJ)rDh|>;_N=mkT;T4H4 zz3B7b_8Sz70nM^b`DyzamJu}k`&kLBPsuu?FflTNdB%u8pjT- z%y=Zq9F(;vVJOZhmhUYaCdbDA$M*5j#4_s|Ny6jF17F6G!u-FM12q``d-*@@^S}Mw za@_yzwi~`}djQw`(+&NrYH9Oo6m$o`kQ2ndA%i!H3yK>`agQ#yEA6M;`&VILpr2n;Lq4ItIN zzZc1==ZfSn#zL7su|{D%z2zEFC?`H#TqvWiU$;o@fHeqjBP3&ZoB9^HZh`wy$e{Nt z{MJFv@i>3t0c4%Zx*_&0NcyY#BhNK!LDoE))T7Su7UXh=n4xF3w;%y?2fpk1x<$~; zgColAE*>0~{pP_t_jbYa?uT04%t;T%aSJ~urafA`@6L)Q{+qYluc!}c7_hk@m^y8& zy>ju)o0?;Nyjmpei1fC){Js15zS|G^?ffO<)dvqAncqrh3j8E>Y!F(zoS&&p+W6j0 zP9=|h-m!S9<^7dL8S`V$LakZz7QroBk?=tgkx|jauU2jUI(6&SZ_x1jX3dgfUwiZ(VGtGfhkvSskJtn&t0eo3^9P4OvMPZlUzzM9uf3Tg?tQ-(%j~*cu(Y`fe!ul6FYf#@ueTCG3@@9sT@qjnH*Db?BDM z0wlq_;vvt_{O#{ow_i=3mVV1+#XAjY>gSnk{kPv;{`R-?-~P7!+utKT)eH4{d&A|_ z84aoSS}HY=U90MM=8nsr@kQsi``h*ofBW11Z-2Mnd9?W6d#+Er<+59Y<9l5%aVN6-)?$n5cHG?R#jHd1N`5%Eu5(Yn zsM{`w)}uF09c6m5Ygt&s?)ZCc(ck~4`Nz-C^8eTW7f-;Mkaj5Km5PKxE_NkE1APr7 z=zB;h=per%9Z|e3+dy_l@q<1PG90B2^hC&EC=H;eLry|z0(}moQwj8*(48UMql7^Z zgH)F!q_5?B$SEjsmhB+}F_?^i9t3$FWh(Srkg@2%7C=vge1oz9dJbd*3_N=*+e0!B zLXJSU3_@;NSl*#)AvdEug1!f`MtMTsLHC0kh(YQLbc=k5LSC!LE6CtVnAJiLgS?JX z4Eim|Mpf`kpa(%##h~T~-4F5}N*m~}AZJv=aiPzFtWzELV%Z)t4`mK?%RsmZWefB@ zkb`Pq_5?i~28`Yp(3wef7Bzk_! zi!|0DB+;^cU5wTB@C>0lL)NHI$QtN=kX;+#SwSBNIkX`mx1c9Nj%kF!4|+P}i^g~+ zZ*hFc`T@9i=s}R}THxNHhe19M#<48hKqj=p{X$QKjA~8D3X2XI*M^V-79FzLY(lO< z4}<(X2iFZf2QqCQ>fSq?7xL76%q5_ow#Wr|j?lG`fs1j!(1Re~FU5JG=Ri6y$2p)| zEjr{^lo8N#ASudd=vbW*2b6T^ z&XDC$CPLRj`l3vQ?gtrwG81|bWGKoU=wXokP!>QR2ss;N3G_LT^H5emUjw-lWexN_ zkS9?#KtByxemm+mbU(=YD0`p>L589nfF1_f59J8-fsm_EPC#D+xenzt^gWPd2i^;G ziv+zUxeVPIat6vZ=yMURl0}ypHk? z`Yp)kC>hXSL0;X3KEd)m>2QmZ28+s0; z4y8JDghY`z6hG*RkZCA&pr=D#M`-~47UX@DCeU9&Ev8nU(6x}aPN0ri zwuh{K67>qYALOI6s6WtOK_;9--GH75nT@gmdJg26^LW3|(;=NM;N3xYhFpzu5BeHN z--~$W(ET7!q7* zq8(Xu$QCGlp@%_6pbUhb2ss8N5_&r1ER?~}=RmGRiG#idawke6^#6;!Zvl_1s`lTL zSJMaW6bgj*00n}Sb|`5Zp}?d~+62;eNK!}(mzg$6o7glNle7dx7&e0dgGtHBb<80{om9;seC##(-jIFkFOc2fYe7Ab1K_^^MIgt(fBpyf zLNfSGFQV^54uXIEkLcr&!{AT91iv81!594r`2*Pte$C71n~?qB9e-wwy@ECcZySb> zkb~fxUP1pN8T_HYpnpM*g2(@g{so!1|8>LxGVzjsAP$hd;5{RV1LO$!+V^pMha3Q( z`2ogi$Zqf$?z+`NCO*aCU^hT^f^6;&ZYbY!I>=d|I}H z9f0fve*`o{`ryqu4mJ!q0KRyFgN;D;f`16g{R`SO*TMFH@*qdR@1E#j`H(~4mrTOL z1CTx7zc|9dN+HL*JCkn!?7I|;Of^ubR( z+QD`}c7rbi?Sya2)OSP4(5UE2cLG1gLz2@{9aHk*$+PLJop9K3BCuk7jgu=V6KDhhwK4A@_Yx2L3V-P0g6Ko zfxiQK6*4Puu&Y2Lkp1A7&VvuH!e8*?=EE<@F7Q`Cd5{y}-&){cGa-k;FD`VjS&%*8 zFMtXm$H8y>q=OYh4uYS20sMvR0-tc9gIx{T34SN29&!kL;z9>&BOLrrP>^u&V=qFR zLUw_F>SFi~IRJjgCCEwA0sjdo3ONS;9_RpM=0WZi!FR}B@GpVlki+0xLBo(E;NJ$l z3ONe?D^LP*9Q+N?TafY5Pj(e(1hOCei^XX7*I*a?{uPK1;a#?3NeA~0&fRZLk@!1twwG`4uJm*R1Y}@e$!RR2hst54itnO2d}#Z`9S*M zw}9@290K1C>VzBtFZ3b*A$!1o3<^VzfxiOU0XYF)>_-eCd%>>(4M6sTH-RFM1K_Qo zy^w?8%hsarlRo(L8uT5=E^t363Yqu=paYPj;JfS4k03|D7q3J7A$!4d)+6SSo#4L( zy$?AKzPTRb!|SjGerkh*IU&2j9|7e-j)Jeb*1=qm1K|Gv6+&k1hzF<`atQoCuS33( z4F2{Fh$rcM*1@j732}!U1pg5z2ssAs3?j!M6Tbs=FXRyTgEu2?kfY#RZ$W$@N5Fq| zE8+k-4(_@QeGM}4>p)LJ4uZ!)L!<*H#?l z{sL$OavVJO5!gz=U+@x8E@UtGZ6GJ)5cqyj9^@GK$|(GV><3>5nguxk{s;&&0I?|e z*+0U#1KABe53~@n2mI?G59Ba-{85bOkcnTt9|YMCKIbPm20?a%uLE^J4uHQ43PHvM z6f6hS3E2t0`2cboauEEOCy41O!7ibH}A@IjQ z><#z`e*LqE1LPq15r0B1L3V;4`?`bO3fTqzNCGj390foA4dejf;Fp5-L-vB-4SEuC z2)z35$N|WH@TqTN%z^9#KNBXfg&@bkp9O^>$HCtK?SRbQbFfLE0mx49<3SO~ zF7TT`dm#tGkNPLZ5W>M*K~EA6zW-mS6XY29><`d(klo;wpjRRL!M_hmK#qbx3wj@N z9Q=e25!*LWCipd=T*!X#Eg&c4FnAm^12XYVjtu6490czH6+n)F{}Hqhasqq^@A;IH zKKNHNGgvj`F!&>rGgvL;DEQtP8LWe3@XKeSEXaQFI4BC4_+@8iuqPpV!E-*5!Cr#w z1b=!?2FrR2I^dsmXRt!ZLGU3^G2!4ZfxM6t;9om0gH=HegWozggIx_d1pdOp4CW_& z@DWfuWOfn!0NnuD1HKD%E940HWtU{IyC8ePKV6c+_CXGUuUeA9o`UQL&s>_ph9Nt_ z=d8$J3CM2n1>Ouc${N&3s*olx`;HQG}A-longJzKqcoE1A*$Z9+!erDe0Dc!} zA>r2L4A-JLClT(N!5N z2-yW526aFte(uT))(P1SejaEGWDj@+C=A&TeiLX1kt#d!M_J;gB%6F;Ckc( zWDoeh&mbQN2Y(LK2{{g4egonF*$e)5FoO+1W}nMoSAh0G_Je;Ov>$Q^{G>aO+mK!0 z+d$7lj)32BC-R4Mz>oX_@{)AGe})(TobRBX;DdL=H^@=&fiGpSnUEvklfMjqAv?i0 z+>3mG900!s-K9U+In=j=qk zfb0hUC1@7ufY*1S9U%w6zX$R_j)Jf4MjH?g{#8&l$m+ zGI;ht1`Cl6@!e=g$iz?DgIGg$fu9Q62iXnY0E$BPemjG`3pxN97lUjDC`S6=OF%=U z1O8o59C8%=$Dmgs$H1QgB_PMaUjn@aIRSq8chK&T{owt3k@N4Oy}<8(80`)@4E|ft zEXZ+i&mhJJ$i%M(c_912&-pI$9I_kyobO=_BpLjH?;|FVqu>MkkOPn-;NBmieIXP7 z0jPs?z%O|Oc@EhF{(DdlJH-Vmq90czMy#zS|{yykc$n3`%?2Dig$RY5u{b<+sP*3nmkP~tQ{2|Z`$Wid; ze}Y&+j)VUTG!rs=EQ5UpGz)SN{JtjkGVwi6W1VpD>z+ZrK@NiVKZ_Vbj)1=idKGd4eDib2E7AdvzKys+X76OM zAA$1m-GLZ*#t3|e>;$g>6+-rd&wn=qU#H7L4k13Ea>!xu()SPt$X@Wxpjya5@O%CV z-$@7jr|)BIgd78Z_+JBa=l52fqUJ zBxFDMRT-HqMl$$unVIY*$S&|zptlGI{}E^eatwTVRwjENvKM@Hb|%Zh`=x&Htsp1l z2>3`&CYu47O@N(gnJgc24E&~}GMNW*5d80;YRH~rGTG-qS3?egZvoXp4ujuyY$m=R zf^z;pTpZaL*XCj(t4TR*(%c+(wm&P7>CK30>sh#$aWmdMf)5HM?>8ZfO_-bM&hR?| zjwv~8N%vpqw(E3qEZZ^wZl;zI!X9OHxtdDma)ngI#$!^6#>MNHge4Lic zrd3RKPx4O;ITt0PsL%9?n31rP zO>$54=LRNtbD~+XjQIZ`e%xesTzxs}^fkRs2is=&{dL{%gW}zz=>H$YPj|A@J0`G` z+H+W5eKvAry6*cdC!5u=lAYdO#ZIWNgwC$?bc~qaukSk=ZrGg$yHjEJ2-rPU-9&$*fRTZ-?al1%+MfPJYS(|L-_Td*$sn|v-}_I$i9XE#e@2JPFz&uvJ)hs((}#@kl%ctmBiB%R;L>&ZEvte?C+c|DbH z2g{YQ${%fPr~Tyf%H(>;@lV#3&-LUo#==weWqBVtj+AdA_o!}i8%)n-(~-YZke^oD z8eo(TNmZau_IZ;UG^{8w!BTmDVZBF zIa-g2TwhrpZLCYSohqje<_jGI!oS++4%0@k<2_wVqYp-jJ?9XD38iM{s?w_dnP*? z{XXS&gE7`-V|+&6d4L~#>nJqGQ1 zG}?6r+Vv>3D`w-apN@8&r~CQeZP$xuz}9rwqU%Qa`t1zemhegL3&IDvt&;N~d0j3? z9LuPj3XGMfPGP6^_uNc80+r7kZfqCzr!pRu&eMdiw7xSJq38uWV<|G&ToqdnVfUBwU*xjcfBG9H%k+2o9UBsnXbUl-};fIGiH) zCT8ONI?Fu2K4v022JPiUdrd}r)Lzev}i`9wZy}K1KIO*2}GMvli4^3e113ByygZS!6PZm45 zGn3^Zw~j<^9f91Mh_6`~`lBANQ;bEz#tBp4(^B~KCB06$IZQsgaNs_%HC9o51&MqT zc_47&0uy|+<6&|csq#L#T5a%M4 z*Yf!??c0KS$Zbv-)s612I_^|sm3hwAcoyVq#3o}9xbJC1UQ zp0DjIpHCX`N^$Q_)Je80%f^0p>$zj#U(j)CL($f9dy+g_Zj5$}Pc;^eb$plWo+=jz z+m;mjR2bD)9@A3AN!~8oO&%MQx5@27y7KyHu@JEo^&n0;C}J(RY)kAzoNzIIrSkWP z3E4+HFfo&7Th#cEVze@o`^cp1>`A}Q$uxSY7q&#*4i<;x{-3-q{1kN%zQ{38)=6HM zV=-F!qFm#+lFhOnMg7U97$;7{x-*+Oaa_p7*S(B!Uet*=ZBNA)aa`txjU1NsV$!y4 zSf4Qo=ZrY_!1d^)d!#-;0sklAp1Tp#2WULx>#}bL%NdFZ<;l`xaJ)MT$GanOyqk{W z9q#M5Ps6ccDvk|j>-|_RpJF6pE9a5GMvE=gYf*~(-^u#PeSqxA?MyaLRN*B-|xg>&{ZvyHa84>D1{E1LyR%Vt9}vyJyP={-$)uhQjW z#(Q&-Fywpj`0M@5cps16y`y*Q=sh|QZQBaE2+uUmfKCYbcdHBzg}ixStvCDS7c854~GN@4(Qz zFZ7NKy&FT%?9+4j^t?VjgCBemW#Ijj*dL(#M|v+1cJU618~f9{9Q4iyy{|#3Mv5ww#_Lr{~J)nQeM@oSxC9XSV6Ne0qMI zo&%?6#Oe8QdOn<<-KXcr=^1r;)}Nl;rswwQJpp=#J&5%%jKpQ}tK(~Ru0_p~R8?+Df80c4^XF)H4 z{swv%l$D>&P6nL=Dg>2)DnN~(J3w1O`#?VhJp=j^=uOb1v$NT;pff;oK^{;!XccH3 zs15Wv(A}VKf_gy@f%b!b1^PYcFQB(UnV-mJ(?O?#&I5TsUXTye3<`qo0fj-kL63rd z1Nsx_?;v(gHai030u_K3ftG{Tfj$ko8}v0$7wG$-$3VXVy#V?v=p9hjEF9NCCxPaI zia_O{D?#<3&7j*r_khBn2SNKmPl5gb`Wqu?Z{}U!|PHCS&fBBQST#H0H$YB}ZcRk{Ou2{VM7ZEA05Y*^EBT?wY!#Eg86&6rUrHM}`B-Y^PG z>gJ4A=TnJXByCeHrm2p^3ZL4oa>bG=8{4#&bds@Dsso5+jP-`rHJG%HN@~EIT$tiy zS#xb&Bds?FFsEV5k~KA$1khf;f+m$RW*2HSt&mq-A_q*7yyB7pHgO|nMQ9f;(NQrTHvHiu0X@_qyOW-TEn@j83Qj|vZ7-frDg;YCHJyY*wG$1xDYHn_< z!{keb9$(?*@%-Y3`5G_LTvHQ=N;9TpRQ52^$J(UqF6vO+yvb}nqlIpsdxT-IKIMxM+U5B6CJHvsPy6oL|fPAPjPZm(SODabj(L zL9)J9K<(ya6{SScv}TD)@eO+EfVAR-OOR#4rCWE0^VszzNQ#NOVZN_xk#uP>dXg0JVnod9ztzk5twL;#B6$*kSQ=5quS;=sX znhMkBsbeH>08wMUN`-QfiV>m}M-%X_+0;q{ptMF6;H#LSP+74zVS2tz(#UJ-SJYjL z$*iqC%vF0Ing!I_NGtZHl}(>cRiNsUl|804+d(65Owe}K&KSPMP8SXs<^y$gwJX*E zF)CiOm`}Tk`LFo=zNoQ4>A-AG?zk+i==bz%djq@8h@8J9% z&bM&h!}$Z8@8kS2&SRWE%eiRJm-+g8oKL#M^y7HWXL0V~TwfNS!ttsmDD-DApd!0}+xfpk)xazbFVC8FC`Pn@?oz`*JYExsK83TBI zMlx2?ekHyDK&X7;&+a6o()jR36=rHLYQ@!S9Z7h>8(XRxYBpdt{H8W~3Dy1@O>$VK zWtQRM1X0Dk3vnr2mRVkhiRF`3S$QUX4}r%FHC-XEqmF}_#MT6n< z=Gej~n_t;vT)5)xQ(RAQ8+VgzM%{}K712z}Yztx5#}G=|Yw(2yOeoK<`g^k~8|&%< z>^oVN*EY1()K@i&_I)_3s;*^YLlZu}B9epc%c^Q@Eu!xTV0Jr_DV^94NkZ_=`%RC~ z8cdpNKg$}`G^SePuAuxj6pIYIwIcqcK zfMY&<^J_gm0_9srer~eY&5tSIez|YW#@6*dqd@i;^I^8YB0Nqu|E%H2ZPpx^<14TJhZ5 z{>*jj>)LAAV+LbV9#f+YpcU2WqzNzjy_ufjh8ZEs;+4>W@yZ8Xl)Iwsi|WVvQY6g zjdeB6gipfS`t#guN)`_&J1T2q-9{raGYlz!tUrdNjm`MhMIK3LCj76Qg~}K~n43lO zeXnW6bSha0WlcR|aj_v$d>50%qp*Zze8-EiGLo9e%rcS!Yg;z3Dw5ioQO-(J+SJGz zvNnrw;9s7_&E`m5#y{nT(v@#s(U%n#H&?A`-LR}~;}Qzer?I}WiBiG*dK_c7Igspu zD=^9V8r%z^#$)V3N2PJ=Z%Iq@#>M58WyNeit1Lx_s>CP8u;Y^EM%=ORA}x#9@ie~T z=0)B57P|d|Pm$E(YYZ0=%0G8i#3pBW@i`!~A6p>1pV6l+pl6JhTa1r~lr>>M;x`q) z!4c!w#J`}4B_|yol1n6GJ|3bQ~q+)rA_E@{v3#umUnSYkh43>K;SV7G z=Ov!YfKFv;Nx2ADE!G9CtSqSzitWG;2VGgVeAzOy8N{XL{|)Z+dG2rU(@Iarnnl%=wgDbKUJV`Tr(gKCWvT5pZQPOe4ft*co<(-COQ*Vg>4?yZGeBU=ZzMze*Jh&AY97TWs6Vw)nQ;ZT{``+XLI%w+DB0>Ye_b^*aMQ+jjQ>mKTkcMo?bx<|TMPi~L1C$GoVli%a+DeUp|l=gUgs(buB z^*w=}_MTu*M^C7yvnSls(-Y|#?1}aq=!x|V^~8IIdlEe(J*+pk*V&ub>*~$#b@vwb zdU{KHy}i}F{@(iDKyQ0*u(zW()Z5t`?(OM~^bYn$dk^%+dWU-By~DkU-jQC`m)qy; z%jOOy8eP5ujy)W3;(HH9L>_A%`+NE${e%6{ z{saB7{-OSO|8Rezf25xc40~jdcZ$WKM)vb9|#U~41@+c z2f_nA1CfEjf#|@2f!M&%Kzv|$ATcm9z;@;Ca_-98<=U0M%e|{`muFY$F7K}DUH)D5 zy8^q~cLjHK>yCb`!yJNfKyA!+F9_Jp{9`_#49`7Fip1_{qp3t7~ zp2(i)p4guFp2QyJ#+*-%(Q`T)j)mjlM3`-LZgnBMJzKq7{aXWDgIhye!^rgL*4Wng z*2Gq}&AH9B&ArWojQ4K~YzuA+Z3}OUY>OiM|i^cJ6-549`qDH zdPxvHB#hn>MbC(%S1|Ml7kYySJ;9G&5JV3MBm1Ms{5Z0nA>&=hb`LV$k1P)&!^6n# zC^9>atY*k)7qZ!dO!gy-gUH}8vNwv%jU#IrGS-D`^&nII$kHG(G>q(wA~WO2N`{Pd zAsao&L_e}HhztxP`=ZFaII@l*<6Ou#4>HYDGAoX(V#p{LvdM!?@*|6a z$e=K?CyLC8BWoBk#)WM0AXEIvk{~i9jO>UaGvde!hKz6_8$8GaKe8aWJH+$AxhD@9 zkk8w{9qrD%*?6W8bGl;;D-1*Mo9ir`i;*plkdK!X5ts#xhJQSiZ2bE7o9B0PjWzw} zL_nAY62GRtuJJMQzbOKEbX~MRjhL82+HC)OIG?k5P0O6Nje$AzS$TXob52bQzSMSZ zd*OWF`~v#!=DE1dxc=Jn=gwJQQ*&;?>;<#u&bhX^WrMWZ*svDc=HRXozGpwD;rzn+ zb84GGAXqDt4?*>lgIeI9cJ2PTo9GvHyagSIVp z8Fgijv}<7d%N;b?+}Sn%KCiY?YdLc8QQQ`mkvjpmL)YWWdHC7XL^smvYVo1EHf+hZ zw-`Xigw}erUy@o@wy`nG)HdY_NhM9750bWB7pP+yS*ATz!I5jN^IB!qnomP!WM$#@ zBpy7>aNd5iT+z>J?%aM_hZB~j5XE#t&wry&v!_C*)26|jJ%ki(GiHzk`V?))- zRVQ_Y(>Q?ywhjtt}dxq;VY@GDp_9ayRxjR)K|2;m}S`8 zS1zwuQC{w=tg0w4S#c`Hha%NAFatyu0WEn8ky$+B#f;uR|wm6z~h zi;G#dy@{$=SyZ}&<=EJ=6<1WV3HG|TsG_Q@sN7dkvK01<%F9`(x%DkCR7A>YgKGqECbJCRvZAU|cC-!i2pRA(Hf&p_;8wC@^-ZN^=B7M* z6F2XL<>PFWrvahI+o;e*TCx*tSSS;Gq75UpN|u&X_==Yp4QfXBBzwD@E5#*VWOK># z#jDuKwnin=VHB-XRIQcEi^}m`&XQuZB-(6+x2kMeQ8{ysrd3(BqN2o7J5^Ql7A?LE zC2?=dmRByfG*44C&EzqneY(1(YL&O7yri-c?FvhkY^J)IYU%bZTIKUruc%;W*c;8> z?psz?iRMLLH9OInwgOtYe8tk0G-4oMjGSd>*_%teW!mO^dvj%J*^;XB*x5EhU2e&e zijop9`-F{B+g12hE=Sie+wGi`+ZL}_j*p#IVkD_#vuuqeD^^zcE?v3I>nkr?R#wH% zwKr8RE-fiuSzf|s+Za`0Q5Bn`B4x|*@z%x6ZKGbaY(+`c$_iLJPlYQ>S5#E_maJTE z3~Owzy%po6uh4yd;Q}8ji)hk#cfP&Z*s)}}uNn$SH&$S8D!O7tS+VbmlEr92AF6^; ziOsV&i|)pIW7)Emaeap`CT~Su#LvDQ1 z-m-i}6`I6bR8~=hF`8YVZZRuLU5#C6Z=u+77nXP_1ZXcrU|~uPYx70+<|S0ZVl*WV zGCuPF!Y;Nqqo?_bmafF7)UCslX|8N_iO(DuSX4Ts(Nn8e7NPIaKv;qdrzBofvK*u0 zVjMW|hlgEI(G}I_%`LS0-lNhcjLemlD;E2Zr@pEcG)UlBQ&P@;oI(eF%PRXNm2wQp z>?fE5**HS4!GCnp5xU>;m^efiRiG;_M$7P{Ghg@8(S#qFWvFlwKO7ribrFuE=26&K zUsQQzk(VEH4Zx^HHl6$M^BnVJ!l8&P6Oh zoTj)eL_SNwNsG^C>|+$}%Jkv?-3?96*EaclESLUw_66EnSmrtZiIbU$%W!tN5i|*J zh~mYw$v&UaBg)HgIP;ZdPslwZ_bB{BhPjL#kR}u2%)trgOg4G)#aLx5a~j05qj36mG&^ewzTldL{U%So zVDg2ScLNQd&oXmQJOasL;n{@e9s`_|XxE7jN7+$?PCAv99W`e%qETRO&MrIZk|`O8 z)W^$57J+ZTQU;!mK&w0cIrRvd696fU96p>^M$)ApzRD=B{m2fRm?5q>Gw*abPCIS= zD)*+#)~|P8RDRlNcwO4zco|CgECPQ2jTM|do32;oOVsqQ;gYWl@!euv^3JZOnA(?! zxaYEdZR5H0x?d}{nYUozc z&4uiws?Y4Tt*u-I?|+jHib+~#x7!8LaW9i5vq@TJ)7!z^7?oh^;Lw+}dtnp( zZN7U*uYB`rVM-4?rO4YWMSZBm0gzwl5WpS=1r+4RK!OT_$ud}oBWAX|3WQEL?EJxG z8qBL8CjfCykaaLo2n#95G9Vr_fn5$JuV66+xfw_Rjb-b614u$adZ-*aabqH%zY7GD z2S`W^hzo(Xb%udN6yzNs?&-45bU5tCDUi9B-tKq6hUh!6h~==gJI{H_bTjAURJ^i? zoF^SL5c2RP{C-l^X|ekS^=vce6%{6O>^{IE$IJ)T?3|}P<{%nz9*tBvPdXP;#BgS5 z*dl-}2ja!BMKL6lu~noqRo2-6B&O(m28ajeoOU^wSdax3pd1j66?! z703ua!H4%6Wn?nCNMM1CoK8rgjL>8wagbeSdgafhcv=F4DG2_q#JoWAURPnwqaf?B zmI#`*kT_U20}0+NBewvF-XbGk1me0?M!pWjkLuYq>;e)1*~quC7EzFWSPLo0<5=_D zA(#9dki?xb@;4yP&&x;-#_z~oGIA0S{}*NCLLgBEDFNcXTh^iDKv+Sp0^$kDI(0xI z3K9U~!oit(iW$St&|de*NCzQbmXZ5_U}_X;uN^?53i53rAq;JH$&Uc>epN<(4#eLn zBQF36D#+h~gcamNAW;RGhTMr;h&W!DV=E)3Ana>0vI2-xL9PMfQjjJfZUy-)5RZa<0f<*YwgB-fNFR`pf_xW9SV0~K z5>b$+fkYMLB_M8`l-Yj03B;oybo%L45GN47f}9K_tRUwCi73d0K-d=9)}=t43bG1F zNI@EagcSr+svGmL*>&y!5><4*N;yaLjQj$Vr53m38I-aVrQNsR9a80VJp(>wqM-$>m%R#I;>U?grvkknKSH zU9!#~kVv8;J8k8Tkf~ zu!8gfaX%#M3<8NN$d7?|aIs?7`6(dYK^gfI5Estg?PFyE2&NC?h&37;qYaII-KR75 z6jbcxaF53A7>do&c+g>6F(ok?M^RyOG#*9+eNRynqp=@ju;G^@ehI@|Wbz`;-roXf zjmGp!k~$c(%*hx5e!wH9)y6DwDs*B(hlz-pdr`!2XiIvYD7}d3=EXHW9S_Wi&5)fm zWDzk;dCw!32OKNXBBFt59qnj{IZC96;M01{{lkMtV>anLBInp8K)efH9C$0v@BQ)~rD;vR?#GI^8gSSjLDY{iGP)kVZ7YQ<+J6q4%0kMEupBBKz5q(#JV zt`tM_RYoa**vEys1b8%3)tQQ=_6!Og!wwzaLkdF2_ppM{@jap-bbOC02p!*J3PQ*C zxPmN4dnFX)Dr(cH*{0N^aMu@zM?tQoR#uQ(f%p~V9v}e)`4*6%f(!sjD9HDK;D14B z9D9QHdQ?W90pi>*BQF98D9Eco5judvd&H*Pb)fuKmxCtI_4Q8 zK7YjAugl19fy5Fr5(naZLq=W$5>=3Y67qLhXW~>u<4qYk9*7&KGIk!$0^}CeDFoto$vTUHI8T+4 zoOc6tZZUW+0kh_3*&yaQSktXIkQ%1G}Nhk>Yw-d(9>3077 z5D3k~ZX-Vf5?7FCfCMqmx~=mkATG?@ZX<61@n6m(W_UqYnJxvH1mtoHS<`q0CLU~V z@mL7$b^>(1pdhn=1Qp~WAT0{A0?2j+Sq9kYhiIu10zCs2&Nq}Mtw zy8teU>(eOO-)x$stV6=@Nz6BT|rE|#{MqG+9Rcw?T27nRo}wG3&_ zLo~u78l$w%Qs~e(73`?40utwld6cOG!f-K6IwtaIAX%_(x9N>Q{9K2!9LGu8OVPn6 zY}gmClH2QHAVGwJ_ApC+9Eb;NcFDg6;t$Gu{Rv2@K(5bQKwR+9E(cTQGY=5EoM}M9 zO39}H>AhMmc`gu_QfCkCb%`9Gl|cMA$$R;Mc$6Bp0%42fz3u?wRFEw|N|pNbQ8|hZ zKK#QxpOI}n4kWH1PXh_wAnUvYWKhw02Z*aoj@aZG=wC{FP69HdAm;-KDtlc5B(CUG z0ZAxG3y@(2`8<#j1sMSHsnv3w9|01$RIcGKfy5N#Ss+}OBmO+yol zbA+-1d3rQTUM{!AaX>-}avqR~f-C~!!8b+hesLv`n1ZaQa+LbC07)o1w*m2b<#N6b z#IGRV0TNJ--#udzFm*5lB=)-U1T3PR^DI z$3jOzrURjQoXAVl)0u?eOE7lC3V?)h)nShk^sEG{mvt(DxG;d*IzAvFMQ0P0ql{y> z1Mw&$$^EofgIsbC5KN9I)#pJV0i~QLfK({R3qXn$vIthx8l1ONSNznSpNl> z$5YhXab*c(511i9!_p$oCD6oX{y5?%F}76I;a4{v=o`l-M^xEvl*6xXhOKjnJY9#M zODwd`CGLgJPTJjC#JL1M;9~X*$Bx;?;~kcUeWte_dy8|4O)1VLu0b@|wLH%7FV(Uc zI?>O`ZF&okk)VuxiORWIMz#WRDtqk#;!%)&K!OVLQy?w{c?JkmkiSwnH_Ey3J`nF$ zWMsneXyqLO5$E%!r>Lc4AtJV0aaOc){AAI}xWG(W#GP9TyV=S~3Ro3qjC8q)0SC4s znv!V2Xpl$D5pytn7f4>jIe!c=PNh&zinB`o#KJ9BE7Rot#*5BMTc3bvSaoJ=jgO2V z&cX}B>>1Dr-pcF4YSyhcrlQ2>jZIGtokHjY`bAU;Dxo+J$Vdec|1KF>1LVtA$+TA+ zkmzn%=XM}*1^EgP=N?&S2N17<>;)21ke>jFS%_$N&rT|bVt6#Jpzfn8Sc_=)gw^iW zCQH!U-9=5JETT=rq8H!|V?_ZgA~zydZr}tjX%X#C`D32hp81~9BEUBq)w!>#=yWweA z_)bZbVp#~C_ycl$mICqbm62*7?gwS07D#|2b_`8h6vI_$eq1g~%i)e;sTD)7WW^Lk z4EG)^hWuaGi0Iu8y7EyM5$7MsaW-b~#f+rVpZU#*278FdXOuYK1|6r+G0fZtBseHX zwF`*rdouDc5I0BcIGeU8&i5kDNnSw7=!hW& zIgOAX%H_C$#1!NbAi*bOopK<~-^xfe5Z4PPVz;2_1-0NQXEJ=VPG0n$f<{hS#Hen! zpdJn}Vn1)S;PXkP*eysS5?RS~RN)sFcG4n_4lWTN#}v(&XhC{j#v0WtFujS=evH*2 z8qqk9hE|GcbTdWl4x7|3$HvIC`44$S->49ZpJ%h%Gfr>W{p#vg@_ zo9mEojQs*g*g`~n%yP*0XQ88>H6HHxj9BqORgxAFpM6$*W0TRId7Be$v7;cCkGgojI89IL4Z!vY$5nbp!4IS?oI!$i@XdhaGsbHXpYWS}l+a2sYj-DfqW_dfl1?E0JH@yvVrZ5_F`R+gU#hrv zC^7Vm<7}`N|8JQ`;bO%Ot%w+g5N9)nbWN0W6c%s&h>_oMgXX!!C8%^23Vw5^j4 z!Q65`qOtle5e))=2&6_qo&?gWAioE)K|x*va-)LaL*L9lBSSjA9}OhV5pz5~9fF&|9#CKH`6x4 zCDG$@5iv6wq?2@g!FycTC(bTXv<@G&qH4r^$QD+#Xo(3d1Pex_~@y{2CXbZDG6z9_?Y0r4@yGDnrE!wTN zXgBI8|A@AjWwk|$>kDyr&T0#nT!bNu?EQ68TeP;y&%xm-9z?^rfJbALwzv#B?n^|( zsQ6VtJRX6F7@Fl!45uQ7lu7n-xbrz-#gIl4brCTPS}`0wpJP@GN6+U!TQS6Ek&I6P zt4EPKM8j2NMk7@}rP_U#VkmTs>VAb{s2~GCyb7`(NI*fJ0}|qhnc=SiaV-*UK}9>@ zuG>OH>zFm9)|rlWrm?_Y4tMM1<0hFo+T`0txFlL=X6K5a< z{Sin2f8E>nQr@J!6rG$i(59ub&U7Gq6`h$t0%fvJ0T92Uvy>2V%r)w>8c0w<8iBMc z$c;d%7351mLQ2UyfOIR!!$AC3%k|k0B%tU#L*-l}>--srOVN1`2=fUY^Tugev32HP zcroovj6aqRL1zGoD9D9CoPJRb>0C}a3bGD}Td{r}knmb_FSB3V38Y?$#+QKv6l4dG z5~ZAnfw*era()UVs^~lq#9t@tyapt0>4+X@W*uetUtEkWRE~Y=^|%5Ghq8!s(H&Ng z>ruATis*3xtH8!&zwMb-V=? zukFGppTkO9P(FtgM2oWFX{ym1zCc2C>f^=?__gV)edXtQ7 z0`gmHFVRoUT%~?`H4Z})l#D%;erjcJs{gY288urcu5Mn!QCM9>UoOYfjoH{_&R&(I z!=Lh+iT;jm2%RVKd%mJ1`sv+PKgA~tHg43qX$PVa`5bQx#cR7b>R%&D}^?K-_q^$41_#y(~oJyxH!QKZ7_bJY+XGq(jMh zt4$raC6lyR#}v`y9CNiS6FKk3GpyOzKhxpVb$HGvtej6kbD?5Q8I5>}9Uq?S~}$X>)0!% zAdXqE^-XgxGwY@SaeYfhP66V!5Rr9e^j2&+RnZgK>k+;?YBXz>UxufskKT8zxh$+Yv)K)FyJzNt z5!@SuBea)^%ugwHtIo|bjG|D%*Vk8a2*NWq|Hy#p7Hs`X%6 z*7G&%BPdq29?`6~Xx2N@vQGCQ67}Sc`lpE$dmD^@wJj<|XyxE$exj^&!nV&8@2XK3lWila}=vnss^?Sg}>mp;>on)+1?I zcWKs#HS1x``lXun!L+P1&3cb!-LF}HOv}1xTGpp%)}xyBcFp?xn)L%|S$AsI4`|kd zn)OLq=DrYonLKabLprRLqMWrt`y5&e;y(|1WBqQP2I% z^QgJ>ub0t+4qV)z2gwUR*V50d`-&UQOt}i(W~S!hb}56~slHjd|K-uW;4I z&mr?gE03db zZ`G{3(z5Q+tcNt~rCQ`4(;}armi0o-dQh`os9C>Hv+hpI`ukeD=W5oYTI3tG$QPz% zJzw+PuUXI2d@t5~_oQV#OS7J*S&wPHZ_#`&P0RXQTI5H>2r0&&f{12)xn|v)mi11} zcMpyiN*^p3(IUTkilxKHy6Uv7pQu?c)gn&^CZ#^}Y0g}ZaO?iGtiP&7epriqSc|+{ zi+p`r)@kk@#jklIn(ufGQPr8hUpvYK(z1T5W<5`9_n2m#rgc#x-=3EB4$Zntvp%F* zpQ>38re(cYv)-vi-m6)ELCd<1w5;c9)?J$QAua3rw5$uIWu4}tQnRjJv+mM-U#&Rcs98^FzQ3sX9!|@8y=FbGS?|<*|4*&Q^`vDzs9ASvIe$R2{-0SdB@+sAaT{Ji=67iQJ(`wvnm0`;dESuL?jgZ(RCK=5Si(~^tDNg=GP%z zzrUp2DGj0_l<}vaFgXwB->ls!9TC}bNY;ln>-4n`)w)Ns9@4C{t^AJAAz6=W*4s7f zZq0h5ZJlS`6$i;W(c|oLM30kf@gCSu2%G>gY-DN&f-p&RA=t{hJ*MnGV>$! ztDsc0*XX@zUP!d^=sF8t6}jQSp)G0A{5qtpi;0r0ajag{M<4|*;e|lvS7=#x-9aKR zvd%6?WSwM-XPxUK%sTHlvd*rv$U3RcJnQItT4Rm#AE93b`J%l>&!~9;(aNLiEO<)f zhVkJ9HSI*!S$-W-*6kA|i;SA*74;EFL9XyZAoFM0S;w;_Uu4T6S>LN!_h{Bf@TUPl z``L{7lQiq@w5&%o>xG*2gl7FcOf$pl!+kGI%ld$3-K|+4)~vs*S@)!6eNeMrs##}R zyC1JbzBDcCQO$a_X5Fb-_t@5Xf2XhIjn?1ASZBvjjCE3+c?)`l7aze9mY$X~^5-B& zSi8<*tdr`@eW&jNj^?`<6Fx$}3i3pIjXsXe^NUsP&P`m^~95w^z9fk6PnhvwYIHkk)k2|av7eEQXlOE) z5$~TK)GyvTxp=zRtWR5GYwM;!^0S{8qIJyrxKhT4EMH13Xtj>d*Iw&eW6sHp3tJou z4CH#~V9i8muT|J9YVD=_z8yN$D)u6-Sm{f+^aN$f?{16lfLm>vqP_Tx0Yg@sQhTY3 zXww_4Hk}Cts=d9;UR+T%v%0*v5Rl=Q(NokE<~obr2h&05MX9(E0l)I`OPORZyqwh@ zK(;M=J4sxpi1r>;2exLeUcI^)I;JhPzD7BuQ&d#sIhc;&dvQ@IbVjvh>a4cfJ=I9U z^DxiK!y1|nsjgjm3R&bvY#jZ6>Li|BEO7F9KK zsYLN~G0ie;j-nJ_brC%-Z1p(ml}RH2kH$hP8iCfjO|{MEw$wE?ORuxv22T^*(^OA8 zljVD%4;o4ty5p_ zML3`$Er$|St7PL0L@ETLc-A^9o?tiTLrc=(W8H`q`2tme%HeMc3|f(&36wI@Uc~Wh zxfS{KH8mSCOMKD+o4=woS$9(rE=gnnSMj0mFz+Q2&7mgQHFk_w`InJ4Q z_0FTk*|bG*-iMNs>dcRomaSCdvzSL(lqu>en>YHY#(8?1HE6zR~lU>^%;hXull8{{k|6 zgdDL~fzTC0+{ zEk{@lJIWJLt+k>`BY?VysODKwC7q-mCuSqrDBjmYc#{?}l6=mJJWe+@BKp!uB7FDm zrf87wNrhll_nq2WU4-v6gQe-ax}DZUeZC^sr>(vv`32o$(K=>*Tq)~AWi5bCSlA+f zl>j-QAeBI(hF{|Cvj7mQhQ?mE0P*Y*nLyBXAaM)P<8v0;^mJoi@gw3B8b@we)*W84 zyTwIrbXd9JwzdgDaV) zY}F@FhvU7RhDODHMy+GiXY@0x7oZanI>uhFkze1ITQFk|azjB*0TNe`1wfqm7=k?- zUkW6sAgh5y6y#bU>^t&a_X7zj$ajFyzmw)@qsRHDI0Z^Qwu~pvR>`T(@c9|Ypp`$> zMug-akw1-A{u#8Qkc zT!mRW)-ldRXhbs48RZHbN{?gsH*nMuiAT(d1~Jb!QjBc;ob4qmV$|EzI*DiuS<%p+ z$ENx}PWgic2MG8zj9=Z}Z@A7>Lr1?-0L=ctb*33QTk)%gR%D&uh&t{;ff&@ z`Wml~5g7-KNct%7KG#9lKz&Lz9TCI7Sut#ESc_BNxpqQXxe>PfLNQ6p;q;5zi(1KS zuLv&VQ@0njlG$E2C)LJWrT9=(%=ow$9ha?f!+w`j zYVpSVEg`OztG@`+65cT)@Kn=J}5pT1Sh5q>@RFROL*3>Wv7?Q+DuWyu!5 zw;cHhT9ErSms-d0;vn~y?K+El%Tk@W?~_r;SofAcLca=JqP+xX!T!;M9OH!VrViOU5#1jhNm>q@@BG*uvyRytC*^1w^a=3l38i((6e{8IF58A%Bt!bL8IFG3|fH3C5 zXM~KaQ8kqfAH@i1>U=c5Up)@r>5GG7`Tj-AcYG_Mty%HiL~yrf9KM@6Fa%C{cF}X4&V1#zSp%U|IrV`=+lvd_+CS24Or|eyPES%BrNVRTGzs6ITW7@ zaXmnN!(R09&}DDrlDKnw(EB9(tTNCf?lz|=ho4#9V8w9sv&!H&V)%p=!*!T+xJAhy z6T$J~k+H{2Q|I9M6A@8OHTH_<9K0UYSVhP!vBUke_+)a z*C|Q!7W;gJVT>9_olPC8^Gb|S>OIZF7H8fEJFPq%{aR+n!Saxgbs=l4OA%+@rc?2! zoO$(!)A^*UKOjc?Bz`=0o0>WlpTA)r1YKGVTYR`*tXYiVPRWWXiaP@lD~4)aNK1@k zk%PsM$LAC)KE|0|ZBvVVH1zpQEWUsA_^iWZ+2!@e$MG=dmPD%G|_|pj1 zUa7t*c?hHW;K8E7qw2JxO7l!6-P_?;(DY5{vCfv~*b&p7_`n$>%Erj{lhGq4t`tn2 zgJ)FizkAf zbK&%lh`oq=O&%-jf;h3EKY{H<+-s_~Bj3=JB3s%Kjp)l`XN##r@wwPG!llC&AD%6r zwd%aFp;da)P8jY$o!OsxCa9-$LWSJ}9Y5ln1H{ahZvhD^$N-R-D96}y5QuY_muw(U zP&pjQVC!1y>KYqb+pH@EL+2UN5$DDR@<%FJj4cN88W7Jbavr`5B&;A4aE0Uji>xyp zNKipe1QPzM&u#*+4pP2t@QIvvnw2uE0NrE;48>dbZFJR&7T8ifjlup)TS`osSv8%`4U(RRL?F zH_^Y_=5c2)P&^DJEuuF?#hBnIP%8sn(VOnJGP5;hYF>+I_(e3dQcR{SVYUVh6KVbO|$D7t9KibS*hVQWt$M)USA>a2P$VqYLR{@7>1n`W*clS7a zzYKq}n`eXdwK#uGeo2eH3EzX6nK&jK{GW7FhkS2AqWqh3UR*P_h-*fim?bS@grqOo zn`44n7g87fV&TE!!}~JJBHyVswd}Q?Z?Q&f@$AY1KW==|k<@ycWgdNKe9zN-e;p4s zsn+w-vL4rb@6mksYrY?;S$CynJ)rqc-+WOcAJlyRl-BO~X<5(GtS2ya8twp{x zE$da9@APdQ)%Q}(_tP}ry=hrbXucoNd=F~AFVuXmPRn|S<~x0VNA*3T`QD@X?oZ45 z4Vv}1X1!Ch-l18qPs{oNE%NPJC;(IOvC%eqUmp08PtYrgN*eD6uidZT7Ns#$N>eD`a< zN7Az1saem{az3V6k7?Ei)3Q#F5-2$~Z&(}a!dm3(wa7=)vi_7d(uOqarJD6&ZKOSr zmi3rsy+gC^(X0(!d?PR;tun(rfNS+CWsM>Om8n)Pzc zcb1*b_4|pMb(dy+NNe{2&G+22tUER9xtjH;W<8`?ccx|id9A;Pwf<^WB}6^<2&Rh}P~A zt=+HJtQV$by%)O;`0e4naC-jkN~8JcycX8nNXd#C1mXphz9TQuLj zX;~lE`um{P?g7pBGd16<)3W}OW<8==uh*=ftXcP`WqrS9J)l|7*R1zwXIAxTS$|8j z9@DIMXx2+L-ven`-=bxmOFO$5(z5PZE$iCTvi`p2dtCFqQ}f-g`5sKmdb{TPkk;cu zn(sGizIUW${c6p6ShHTOS-(KD9!kslOwGDmvp%dvexDZk&a|w1H0$-6b(iM*+nV)o zTGp#I>z$f)uV#Ig9eMt5=_>1Av(eu>w#N&_l~7HbKhS$i0|TG;K)bkS3z8~*XZvQ&!f4#OyB8OUAU(U!Xh^gGHbNu z*CG8Ic&|3r6>4K$0vTY`(E2~_Qtc=+D582u)^I=rVGNXxoYv+mZc4)2w?m>m!==w>9fSX<0AO ztkbMoil+r`E%LW(k&mZkyn)-Vd@7)9&f<^zJ-5(>=C#3A(=1eS7BabocG_?ViU*NLCo(M zoT@r?>eQ*axA$_~AA)6b$NlCVaer5i`?ERj7joPyIqtXah&$bWbVhmddXD?W9QVg_ z+`X6IN#vxJ|Ud?W}j1+gT5| z1W4)IS&Qa&7SUjmr2h0h;p65e*c>E+E1&w)?Yi`e7q??K^_^SoeNBHZH>MYIvuP%` zOL`_}NiN?J_qS?aRLe6tm)ob@%5ndk-6biFdIjWBZ-n*wVaNHjq3)jpE#a^+{eSF1 zOdk%Z2VVlO`%lR1r;&u{_*;NxUjI~M`}^P5NC-rqE(y&JX>TI;{RH_i5dGWSf_xl^ zjvfed1&IFLB|$z1o8^?`b)jxu~2FNv~34*+V zXdL8iKyKnAcDA0k1KC5Zme(2(y)H{V5fD$=A3@#+&Sc+h>lg><>8GU z%>Xm%^Q}MU1F~l)46*uIWSEqYgVeK=}OYxT5(x(CGV7QtID{7yj%lc!3aHWfz3s zE(dVQj0I7@dJ=tTdV`SrfowUv-V6kzk*awf2$rT4avq4=hdm%i)cU3Rx#4*;C?);u za#694MhJ2 z4QqJ4yAQRq6zn4Tvj26EnM#S=g%25VdKOF;IVKKw9{3kHdjq#M*jZ;@rzE&W~4=$)p>^JhR7 zowh#*M892ycj%g}L9zw?aoYYLpwY1=spp$OXuPb1FPXK!^dU5_2J)O^k=_jCz}QS` zdlATa2YC$0C8vJ|K#rTyp;8xt+;VFE4ItXz5bhrbqT?HPdBFxgt&Wm=M#HI|KL*W3 zQ%|jx6iDl@m|i8CXF;=w|5_XM91!{f2L9&>ude_ZaawWrPeV6es%d;5UnTT?sxD<| ze+)D(@@616jBmqw*n-T?SUe0G{mWUx{Vb5K+hahEI`aHFkRwLN9;?=aRtR2>Px2&a zjyY}rB#??z&oe;IJNomtKyI3rQhUAx1XQV&`ddJrcS?Pa5MxP*{^;9bGo5+*dLVYy zBbsR-^Xkn_Y5OXWifI?o{49{0W=sj$0`fJ-X1*85oYT@@1+r!8LGQ5jJK^;FZ-a*Z ztmXebAO}u8e+1-NQx8%91(3^*Jbwd3M>C`qUk0Loi%pPk1JS?sE{OLKYIbJ#j{xzU zalaqPRfqdqfw&&^!$58s?Zx+v@s4`alU>PiPk7ZqbIqye-Bh!~>-|7(8k%Y=47=1^ zr#C(d8n_!=tJM4nAQz1$G?OqSukwU5EB};e9A1A9aPSse|F}+1&EF?h=dOTxp1GhZ15^0+NT^xDQf{1iAKG{E2Yi?dCur_mw&nj z5;~10b%CbOp#wr|o|U$y2SAP*D*+4Hskgh{1!taKrJ9Y75s%LU*>dXn5)fB6z6C^|`QGL6 z7r;>RqG?4h6r(WW@bZ4f^PV#OOuX&|GINmjcJ2pq&fz`695~4HKyEp@`W+zG z9G$;=4l+A5M}ZtQZO8lg0X7O)9Vp(S<@pKFkhGL@3_%1qWSRxS(3DscoUGL#{a3e!hrVl zBc@cd-inhDUXvrwJW5?Kyr||gK&($fNCU`ar+)@Ot~vUA0mwf%tLMjn=(woZji-Q| zFeAu2aoEf`aImxcuc?$H&%Xk>X0*q>5bQ(g8ebPi1Lj!2b$wX zTd3yW0pdBxXMkKa^$^WJ0lDe4^gpQ{hvo$!duDXNy-pDi`m@~cEn?hF|ImJ!wsD@( z7D~JUG$gg1gAV~&1ZL}50dn0Luk%3e28}J%0dnBb{34JePS1Z3$j$rHJ^wV2V@5)f z$Lq}fJo%_xFnR><+lcjyXNH0-C2xOIgF~C0lyf=cGM0P&n& zodL4v)LaH~*`aw1$OT8kdqB=RZGS(I1E*I%0;J;T#vcG_kfcVQzXEd1(WvV{ju?5G zyFL6$Ao(rnRp#G7bB#;scKsKSIa3PNdq1=wj4ZF$0;xEqUJv9YAhS9@OEd@R^?eyg z*J*nL2>sbo10Xj{k71{|fREL9PdW9x7c_IPPPhGIK+daQA`o4D3P{E127RI|g0-7- zWd1a04h%1nuDhLB?PI5>i}}Xp?L<#B_j{fd;y65-DK&pF9SK}l=>!+o6eYi56Cq~ zo*!L=goXwKh@UG!Jx(j`1I?nLA?|Mia`|QHRy+jc%8@iu19H(RbsoqiN5T$}u4xyo zm0LaNn8W=E(2O|sTmo{2%G1%vvQcr>AmZ2e;{~XA1XOuq=T&l%91aJYAXTyQkuJwRwRx4QAm zKpdDe{kTah~12sZ|se$Wd#n_;4p_zZNcpM#B! zUbv%Etq31CRfU?ppdEVn^(4Q}p9qmqaCxO%!!b;^7sD;-_k;RY*g$%|)mp}{I3ieF zrC&LQZ=Xlx$5zXQg0}+WG#~Cn^>Cd&yB9K$daR)KFi8|0Iwaorg4TT4!r@9`uotzW zptoOYHu3vi)m98W4O-=7NCxmBX!8(w2l(l*Kcqx-c+TO4h|TconmgRGBDPLwdl{c! ziGo)2L?|s9E**(5OtKv=Z~KCoc7{+U-WvKZNW#L>(A-j|9yh|}!BVj6wdvnt+@_z- zN@~FdcBztGpxhvrIUiEl@^WF~6i-QdDgxP!dkqhXYCr7y30g>riE;%rHL=!X<;xqG z)QDj)H9DdhOpVN#g4MwWm94HW)GQXXyR9&BvB5^wfnkG$wF_&>7UCW*2UX>FX~Tw7 z7nv|AJ8mCgy);TjN#)zeNSQ>*P*yNii;;&bGAU(aQ`On59q$zM2kvy-UQfc_LL2&n zA8+l1D{ZLFVgNW9Jf$2H(l!RpwCENl)D) zhR|SXE*ebNXfPQwoow=$nUtF;1FAC}SyKA1Et&Wd%97bcIWg{uJkW$yPc-A@k*2$P zQf9ysgI9{)q?Cm)rN|$Wgq^dJPQ0Z!XsoeDRQOjt)j0A8VSRsLeWh3{udew1$+79l z>2b({MwjSn6dsA8dPH0Ha7`z{;>Pu0jpTgtI}42lc|EE?XV5+qv<9Kq>ZWuso!Cid zp>I=p5hYUHo=&B+noffHP1Y0~58%tvY9wr;oX9ii1@pJ-x#+|P-l@vP3 zH9|z4)~kk2Q&p*Kt~!-Q?F;0=VHA^7`xs#COxSfx0p(6Q8>y*@R4yv3#)DoxTy5eg z6PpbKGEeUhlj+ z4HvrI*1n8@hbbjA*lWUb)+N@$-Kc{xanmMQ?Z;i4Nhy<62?hx^!MY$PZK@UQr}B`p z0_2BydUDieLsv5zFg-GEDmFbWjWI(ZNj)%L zBc;-|(LAXXYAt~Pq@eRr!ka|ehL<|@*Z>LzIu*y*b9N*l^G=?5PRb+ZTeul23#|$e zYZR9fD#1n6vnr!fRRl;onz8aMUMO)ovIzR-5Rp z4)qH93O}}150|k&Zc#eKzCmIi+L2e`k2F}@8g#a4W%T%Ii7x8$Q=!)j_N%nDwn=#` z?SXnF+-1B(zm}TOkExmI36Db5DGHeS>L9^^X#+biehCkVl1C%!9Csu8OJiR*OKhzd zbPG#G-81#2IPPu)_3c$uC(#~d9qN8P?lhxK#Hj1kv32x8FlhC8C{CdS*z3Zclq7B$ z@n=S6NxdaFB^7$QFi{tSZhz1V735VgaY-7T&P>e7i7BvRF_iOxs#O)X0kTURo1U5( z%SprjMjcvP+oCgZ-CL*zSaHzn;U2XHPq*TYprunFNwKJ7XVXFhPL9otj7@p{{Vsp- zo|0Hyn!H_0C^a#WlVN<+!(eTMxZ)=LmT<>`!HXfRLZI{M=(&UV9iCP5QzHOSb&{E;`4CTGFX+pvL3w2R?3SRuFzD1Nmo4AWZA9H{Etn}dti&R& zmP44PmN4RD*08!=nslpBz=F2v7Sk(KicGCygt#jo!~w=@6}O$Ap(}N<_x>TuGC8A^ zMGKWGa)`Phx|JD^8JH{;htbt!DeyZqXl{CtU5c5JNme;@nW`eOJu;8TBF+kQ-KYq2 zBWI46gY8g}D6_1EQl$O8oZwT_`wj}bGg_q}>^lLPgM+s^6fao7Zi)xhBL3eE0;Nk|W1;TC;! z1_ou(U@67fa6iaFNFh-1bP^LFom|hP#Y1#il6Qzzx)If38yhn2>e$Gj%2}~wSpuab zmO!1uln~|8h3Q$9qeq960IX;pJ*(pI=Megb6X*~dRM%_(RlP}Tu?(Qh9F zY{O5&zTe`Pu{gQuCMh?89S=Q|n@aNSI?1W`;w15#@X%p)@RlrJ3CB}io?t#Ok04HE z9pe&0*aRaS>SVXiuAca@IssAOK$A;U$BhvofIJ3+N>}&W8_;BDNTw!6C#F3_S6ao& zI-HZt+?<*inVF%beyvvNMKL-t|1aSYuZLooz(!f(0hNX&PT$1#OvbiK{o}+E4&ZPm(Elk zDLv|o9{UTu2)5jO5BHkq)R_ioiEf13#)6(g_>VoKUI6QQu52CQpsOfS}oLWOI9f^ z>wIQ{LG1MBaqb&$R>L0oUpSuUU%Gf8n-2@nqMeJ*KfR7Npa;t(rM1$^ z`m%p&z3S6LX{}IOT|1nzwQbcXlM-C^e6)Lx>q*7R`l_`9Dcm>7zwN*2W`Ceo0 zbZkDrHHFS*D?E)W5#%WjXsT6kU`1gHXV#BRkBm-cp>Y_3cCZ=MmxJDR*c%zi5{%7^ zIs~Ixg7MKYb_xnl;IN%^>tqD`cXE`$#a_RO5F^e!VTzW*UN>wI#IatEZZ5|=5Hy8l zL>`A{r*<4f#7+V|aAA5V_t?}oWItVaqKLWF$6=LhuXj`!Po))Km4aZwe&WIEibF$| ziH|c8GwAM*kNHK5bYsjR7eXke>mv2RMpS2rJR+XjKFNrREWpoI*dPaGvTC)IB2+0R zrDyyqG{-owZN|35@2Vh!#S!em#e`va+#Ler=mASto}BKmTNo|@-qlu|X^Tugvqfav z>|$LC3&^n~mar6SKG)1h$yi1d#xkvB%oU9wvA)coDU5`iN=e6Qk&JC}p&OA(%Es3t zKV5C6=mv_Tgwx}*V-p^hTC7H7JpB%Z@iHVc(}<=w8j2*BJ2UBNuFJ_L`8`>ZS-7+- zgSHMGNxN_@Y0!3}2k>$w)+7YH?{mxK_n&CM_*9nP%q~%C~P{af?<+N&$zZCDPaSd{_YE}s~Iv4Sq@3drsu8VT>9vDj$w zRV8pjsP81&kN$T{1LC-kE9faPk41(aHK%lj8{7 zSz6sNJ=RXeQG|CVnFgtJRF7L zqG^3`J9lDiY}PaUbTc%PHYH4SyFs5A#qlRoxnpi5FtzIku^cS8>VXu3p68N0W;$U< zh4Z+ZJ$ZXzd<-MHi@v~x`t$-Qxua7$x92Xw6pqJ5BkT>6?ZnewKe_YzS)Bh&w~da^ z2(!BD7_b2Dl1Y&0Kt|yvMsXahBt}o$^*_sNA`@xDUJ&=m&?i2ZHtR2^QtL0LyKF$) z@c4H1O9Ob7eZRwB{AkeT$tJlbA342nQ?eR-_0wlp46$gu-$hqJZQAdJUAmeXa-7lk z`9%&NZ`a`*?qnCOIynMYcCU&Z7l&2-ZWxWvO!+-{j8Qv8@m7pz52V-)68WjZsnO{f za)}$Uzsct)K8Zqh-6C`vmv|(uT&<-$%1Kxs(7u^#fjb#*M|9a4m+Br!W!@e~F}iZs zrmd*2+qRiBVZd?Lc%+6J5Ar?_&~0RUt6MY704#Hn}mZ#{2-6} zgTxhIMDr0*r0>~=Wo(OZqDOAe0?zs?C8al+`?2C zlfuxBjF0Hs_&?a4{meywxx$Z|_#DJxWy73+!r|p@za2N|Ovw2Od!(Zdf;pt${`^=0 zX-se@P5TpE-%nIFqJ90ivFSCVoiN#m5b?!aO8?Hehshbpm!cwPMCcQD()^c1}%p@hOs=054Bv>-ybP@V`^kKK58 z(j>bhlPAX}W)P$I{Z_ISH8mApyHfOxsM%DH8)LfWhN&6dP}igso)mt3lBAw-$+o_w zo@pyfeWj8?XCGav%cS}DdoV0ds2uz}v3i2$;5TbkLVmqgCB#+$YT$UCO@?YYn|IWP zO{)49AU+#LmuZ)S{uT~|&~hn@@x^5rx)V$v35myy6nH);q{)P*8TgBQv;RjJ;fw^A3&W*}fnz zEyPL~E`lj7q1>hFYYwTN6zZ+WHDYxKufQ%983xlb;puS?mn&uwrg0# z3v^*Iq$kg=Wvzaa3}PSm8F2KBr4;T>!bU%l!BaxR03jxiIgX8_G@9Or?5N>Go(~7D zhub$e$xixFJ>fx5a3RKzn^aSMo7U_$7EhmjsdA^vC(5WS-te1r&OjC`O-~+R4}K!4 zPdj)#?)k}JBjM)wP!hURB&tQG8y}>zok&WF2o}QQMOZc*Q{e(CJ2pyodGA=M53arO zog75ZQB9Po#t+)bCf09mwV;-{(bwL%S*mO?F58io(pA27MfdMHs_x0P85QXuX)sRwBAbxIX3>Z7QnMUa!%|aR z+n>0Fw}a|ky(a4UfJr8@r%peJ2^38&zmi=hPfuk~gXuLS)o4pfI|>*KL#s?uR^>6h zP(~kiQl%)^Jrnfs5=*~GpJ-6L(9%B6b80Y~uvh(1)$gGKJ`Wr4C(zPD=al(`0R#J zld~Fq!GS#n)T(C&EMnJAB-6!9X2uJ|uPVv`)z$fN=-pA?I(Yp|*&NW?$*KgxSqzo}w|cdg3s9F*sGWMf z1+Ty=l$fWw;iJtntc9r7u)Z8J4D)iZW)^bQHIUR<8WlWr=1D`S?s5m^%&J0u0G6YW z%&uw%8`A+BRonv5Mz(H@tgoU-8{uZ8r;QcGF1^)7pnQ20FRIY059hwWrIjkTmWqTZ zLN(Y;yzh)K>yr97nKXu7qU->d_Q(OI?nZstk#{^%x>zlg?5$PswhLXr#l2;=)^OK{ zUJ9V_pcJEvTDX?ktHsOMd`5J8)UwX4`M0|lkvFY!94&k>59k{cP~2$K=&EEX&%v4d zO*rHkvq#;bzdNNwv_4AU+;H66UTWVbwi&m`Odx?YA#GFOKA2r$dW|f1V4c)$ zIA;?FZ$skG5@L2k$y9rKzhN~?ZzkB1X^qV_gv#she4@m#T?%;!YX6T3VwAHD+e<+f z6KoM3%J|j-O8b@H58Qoqrjh#buMH1SE*(R(5Y)#Wmfci7q{htyeb@*O z;LzJ;sj`S?sG}7Mo$x(FzT1`Y9<(Rv*+z+6(2)Y$+2I?*A@f-oLo5*d8BJ)k37<%C zBch;sYCABj4sLSlAX#0EgBl^I6!!ckZT5@@4i@yup_G!T5Sj|-k<+lXo%FX6{{~gY zvEXo=v{t^*Y3G7iS=zU|%BMmJs4KmClNL!mbd-czI0VIkhC^dItO)XbY)zQ$AE{D* zen_T-o${`VVQ1>-m{8Nvt&&W>-6xki<;Ml2die&vkVA6ga#u4^7e$TL7l%!7X6!me zEs^rP9Lf5j_D#-$D^;Y{B<+Lcxw|HWIOuPZr+fHz5wQHeOxR~am;$DQ2ZB%&>7upr z)WwlIJU}ghkGw(B7a*ll`9f$$rL0-RNM&P?5JS1v+B*9v&OvvIx67Mwh^q79sa{IN s#N~yt7Y{`o+LIwTohNj!Ii_Zp-fNiY#ahhYUFJ=0df8FCN_V65e|}O@l>h($ diff --git a/Externals/OpenAL/Win64/wrap_oal.dll b/Externals/OpenAL/Win64/wrap_oal.dll deleted file mode 100644 index 1ab0365711f7e19ca409b5353f69e3556ad08bf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 419840 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 gg3Q<^ucz`NbX0qr~MwvPBXyMui|* zA6(!VGk{E5Pq&jD+pNdWlH@lb14upqAS53&TDgnIXywKgCd_RqM(Zy5<&uNZ%5iK* zGdK9Fge`HkA)&p>4p{4TR_@m}TDiDkv~m#K(VUK7LUc4!1we<1Laah7eBC{(x#!XbN zN@I4lF}tQ?+*G235y`!0VX778C7ed{!MwZnU<^?|Si{CjOhm zEg5XyDsJAiYBX;bw`8;Vb+}Py@Y~V+4t}NBn)lGbl574*Tn(3)&BSIjTlh5vo6)>i z+{9)y?-#dVYyL*u#A!4i6gM#&&EJcAkGP>w1s-BInkjP~J_~-E&w^j>e6{h1h0ivA zMNhimVeX9P3~?)ZxZTE7xoaLEZbeUyxD`DE#jWVc6}O@%k8Zo{1bZpEKb;#Tw&iCfV#M%;=XpSTr00lLGgJ_vrhJ_!D>stJ;DKoF+cn=9l~RfCCe8?BZ2?P#vXFWaUmk&WgW!ZkCp(L7b$ zjA=Aa6Su@{o-S_2H=1XNn^=tI5Z!WzuZ_npTESx%t>CeXR^cJhMsvO3QR&VRw@SA` z+$!BhajSIai(93;fNr}81&>{Xg2ygG!DAPp!lTk%BzRQ1OU13yT_$do?t|i1=`I(y zO7}6k?V=Jqc2Nl)yQl<@T~x$_Td{Jic^K%Fn>WJFB1U~>rVLlrE@{j*F`2?aP+D!r zGD1)N7A9M{m|Cg3mv9@FWgfET=X3MLrvu7iM&8^qD?@w!zyLp0oSsMu)Gjb?f8AGH zw3wcUOJH_kjRWb*8i?HS;)gj)1LG0y@|Pr?si(Z{^qu}*Kh#@Y!UY<%=5eVa!}AA1 zhOaf3h6^kz%wP(bLouz<00kIJjxtJoc#Sbif_N1fB>}t!8YTI78t{&YL700_ zTKm)&G^m`VzOTM2^rN^#9+N#>RD&sM$pD!hGRNs*H@o0VBuke}!q>?mBb7^}3eF8n zCU(A$df^_|#yS}5n-seuXSzxf8@Wl&Wc9U8kyD|*+DXpo#5_4N#>zA7y}=fO)^*<)=hvi6A;l z1kqU{h|Us0be0I%UEld7pph{zOyYS<=FnOe7PTmUNe4!_SIi0JpSbc6$k+K7L^*K{ z(xnO}iT=w;QR{gQ`9%lL!qu^ z2H=M)!)K>x`R&%Y4OFaDr4558@VJ*%BfiitYt-r_vAG+Qsk;Z3^7!-`*@|u3ABdiz z5yO}W|FrOJ(+FU`Qv6ovJagSJ91s}VX5GLU_Cgjm?co{^698#9=fejzOx|3XVF#eH zbgaC0*31j-E9cGKqzDEKPe{?`(5L2GB>W_^S*BLrw25zGe!A!BS>2R9*q-(X5MtZQL|ucuOvNbL%M1vU zvcf*Rix*Qtz@1EdyXTyHlo$CuC`eN6N)lUCGd`CrM~jLBB-li0;`vKdmzYx0gGdrO zT>K)_R7xPz;6s+UReQ5zJ2gkWk7@suT6doTg-nGf)cYlo0C_R}wKUoAAvTtKG8EJY zFY${FFUpJ#C|BSK0>Tv%xS4^fN(@EdbUSbw-ljqIN%40f|5qrt2PPzY%#LC0Uui=( zeWgv#)bVZgdfcsD6e?>N;VbR>O{ia{UBBdgtYAsRZ|g^i`K``#-uZ9wyAp&$v5a5v zduj~7>Hb&zR+XOZwSwjEBRx>Gu`-OEfDhLEX*fWJqA2WEGDDq5y)*IQ=eR@9D_I{o z%$S1Sy-SqWNug2Tl(b|uE|=A8IpNH9&6BpzNH4@|Kn5Th2npp)GbJ)kIR6+YoS}GTNr__qUZ`-GQudt`+%s&Bs>LibqkM!-Cl9Cr{JrJau29=noNM^e( zX8$gSDL(WGC;B85#X44EJbp|O%bjzEtm{#u9KEkgzXSv!x@4EFskI32et-b?9ugA@O}(N;|4^D z^5iPZrPS0Cm_#7<`POj zeRI01t_qz92@GvZ&30=@0wSo0iyqezT(APYKW(YKK~1PxLOg9h(16R zBfr4=K|@9+kdMmm|oX@ z4qECNu%A=Bn2T`nMMocyCZq12@=@fo4^1WQ9xTkslntGQHZsgL&bq!G^7gdt-hhMm z;!X*30TYL_`(ij$iO~>tajfRBzPMd0Z;xN~=hmA_S^D>{@_-1LtzMKNqbr>WSa)L< zCWr35I+s(epW~ZHej8RZ6^K{abv*g=NIxE?Wfhd&@hpI=ipj5j?1s(p_T;pGfX!pt9hj!QuCm*zXPp)ZrOBQ|j?-5{B3 zkFJSZIwohPY##yT7v4Vo>mXDhrq1q>PR>s-@~mvv@}a_{>4mDaEtg8~(r#U_ zmiz(;{j2vQ%z?@L6bHztw;72vWPx4Hn-j1jMt^f)Z5vcCqQ42Hb2e75|ML>_HJYUv zC+1@6t9i0+o3erPnDQz!U$af%q#R%+uP+jq_Rqu!&M%Z-p6w@QaNbsa-u6fukm>(S zGGDXCfsrv9ou1RhSO#-GmdgVP`th2@g6o_Bu^g|K|!1@N0lcd_PJskn)ca#YVVXYfie$FAQLS z8@wRNoHZl0wSs?{i+^bz-SPP8ZmjcB$C*lfJX+q;_lb*8|GDCe^i<^o)F`TU~beWAdHh+DlrBZ_s#!*R_{4S0L0; zv2C`!quZ`wb4L9am$63S_4hc@!y>?}CK?Emng&3ln~rre?_*9wtvAmzfdFJ@h?+Gzb6=d&C^m!;2P zITKpKZf6)T&PG}44G6Mczzo1#N#spk^jr#0bQqzNS_WJUIE(h1C@8h+qevxl^H@qc z=pBoXYUP-p$RJK8*F$CJD>#|8W*O6jwH>(4`EZjPmF~tPtWmn(g>B(Sh@uFNa%53vjil`4wbOU4IBqtq}tk&x<_zgae8PzQ&Xq)^vT` zTpBcwa@PBK^u(e$ZmJQc3^3Jpj4)+~d8)PCVr|go--)6?X59ma={Ukg|C`{C1B{qO zfitC;C0j@B7~||1>ZHjQ>rb632KQ1E6K7sdoI`dP?x_Jb)I>L=z)t5omM~)FTKCvK zpR!s^Do`^>A~M^lEP=1b`pkw|hY!XY6@&4~y^4-M+hI7WfjYXyItBb@j_lL2?$N)= z;$MFkz|=v#@v3@bPpmqq$H<+6l!x==tlsZcoN+jG!O+9%vxvv_ZWP^h{cs%DW6*Z> zIS42A`04+WMAY|JhxX|66nsosCgL8rU@&DLPNnxZR&sk*rso3G3$=#S7~$Z?-fYGiRR6=<1Lc1RBG+-2P17Cb(#k%r-g}8kx}ISjvMQPro%>F6xj)BSeB?l=w|C zR;E3_=ge8B;5TEImxq;f5k}hlKcQ}N2|i{3h43xbqqaz#$GR)+@IX5UPqlru=Rbfw z2x@Fi+287%;M0bvBULcujE+(r=7U2{vJC-Sq~rBzjgNpb{a{jU2#EU3y2#XX(6rEX z4Sj%rWU5wa|vU;Dm7D4<=z~)dRP^r#GFp-ewKwAee?=q!VV+K#1;*F7(Am+}5=h zrV0M#ub zF}Q0>SfI#^K;dl?0wUJur3hwJd<3c75O~T_2LjPxuv{R#f|$`&4DS-?J?uu;S&} zKNOz!ITK5wAA*Y*Mk6$>RzkOH^RN=iK_3Y=8NcoxB8HwNZ_>Nr7f!|jAOn!y=$ov&z1EAen z`)7sW6Dasy=seJ}2Lm~bi(ZC*gqd}5IcZ3aehfU?^I!B)Z5+nZSap5~PmHrrL+skv zca}flChi4N6FXFe1Pj#E?#81>F|^oXwPGM+_r2gcDjpdN$)V|A0Q4{N+4vEhpmT|; zInlaiSCS>vPJ=@xHEMX<>xbS!T__5$aXTKYu6j)wL1>egNa1VMyK&A_Oseey-&tFj z_Q-YO^-d%M6&FSZs!@oOcY&n7GtVK8Mge-Ou8-*Rs@o&IrJSqRX(M%x5b9_^PgXDR zHf5;uywwNmV+aFn)B(znWr2KWnTyo>0pfMD-$xS*{^fStQuKNsrS8LAf)PIF0I#FG zwsx&e0*N}?0xFHS5(Wu}uA%;g^{CQ^#CD;Okl;|Af({vYf(jpeFQHb66=uG04MyWk zst!=L)vqHmTU#}&QPrD3LUVs&Kdy2|h{a#IM96joX}~loSh4HcAO4OLd_;KzkC?7| zfOVB|cJXI7e;#1wwcl8(Saqsc%$M~KlGU7)8w<9DMuOHQGK51jgDw>Fn5scZ0A=G? zrWC3X=JIjQsv_y&hJ|MrmPlErA7xaj(|hy}Q^jiu2W8^5of%w@TJbuNVqCg?cD@}= zQdBTd{SuMx#%eVoR%P&iZbd@^5|!PSgpI8}ER8jC1t`9y#@+iPUocC^^nX4A6cZX|F3URe)J zW%5W(8+m{mE-m)f0 zB4k_%L0}$?oE?=RRM-T2s)WuxM7g21@%e(LY~#bam)gZA!y$KoZPPbB4+pbA>0tpg)l zKpjIt_YtPdfw{wh;grlxYaL+*J22xNm;fB8bI#evcL~*vCMx-&RUM(|3^-g&Lofm8 zeA|IZabOOqhV5V~A=I-D)Vpw~{KMg5T1c414$Nu?hC|aBn*IW)$n8SV?;Mbpco5p- zh+M(Lkh77>%$aTq|rG5F`QTZUmD3-^j5zV&mKI<87ZD~ z@LZ1Pc0BjuS%v2vJjs~|!&8Q5I-Vvx%kfBk=E^mW2&oGoRt6lv0i5@6PD<#|wXl2bhKfBPNfzX$&Dlf@l&jE!~- zb)J5Ub?4hEhJEgp_Ey{};VX97y@CyD4L2m^UB;@PLqc<`Yt`57m{2C1ByLdQR}vZ) z30y2K?+F$;SwGy)!FPMa4~Is*6O>Y8i&gr8_~B$drk9e>LQFe3oAPls<%*B3KG_RK zkne({{pq0!Qx^LmInSIGz;6cS=Qit)GHI3SJ(y{i>{>}6J_Z&VNl~tP7e6x~O&0mPDI(Sl4RzXjx+VnU$^zI^U?#1*` zvg*DgXopD-#9)EIfo)EP+?G^=J|Zgd2rTXSAnOzlnB$DGs1%+coGbUa`j zaK#SX1#qCcfI2tbb%fl9YAY0GIgsga;1Ij)HfNS&6d7lsu6NSbm&AxO4Aukpn}l@b z9)+Y(yMm3xk?F7PgLs-DsHi0r022;{N-~{`rW$)}JSON{v==4!u1Cz7*Tw{0geIfp z-X#pW$W8Gq$bJ!VvB$>uVu#HC;@J42CU1&o0iGxE?8I{jPi_`uAD$U_mf=~8=Nmj{ zpq^fW=cjn?#sXIS?GENH&y!Pus>@T0)!Kc&OvH}`7uo)ElZXex-Y z=7gY`)V*kt@?6drJTvK80Xs>579Vq=q!JgPbl?h&157OCqyJokq(c47g}d-+Et+w( zTRDT~!v$&Zd2-*;?!uk^RYmxq*m`J=djANDGupT@4;Md4YPGr7A`@oXEzp&ts-zv& zxTgo_;$g8R?OJ%gglaEF+0(ATSFq)w{fK4w)6KL?@NM`r0$@c2eDD`v zg5h=Kx|qm31G|^)j8N?f-Kc6JC}k=>sdHov4y9Q)mT?^aYQXqY22u#j|C1Ll>sE*u z9`v3O>AO04IXsHs5j4xu2n)AbYwiS!@cIT|paC3vzfcq8^jlgZ2dE8DcWaG<;My4G zUP6?=QN$Vq1$qG|0XSbYC(qZN{g-~IxtO#f3}b-j=fi$jclP(`;+Y%g`6)eH*7)H0 zcTk8}2OOJJKtSaFRR!YzkM8X21+8X%2l-4m|skYF}q!=qIgB3{mk4yMx9W zdUj_IRpjIY8~lj0JNp(z4M~J-P={5Z{zW#{5H6J2on1l@;2?-;l5UYAz^4Ml#~7RX zK7=Mp!{->rSe>*Sq`Z5myZeGR40)WLP>ei)EDYgDl;T_W;MskXJp$kPSHL@>Sl$WY zFLB}TJ_erpXch$)VR@9R347{x1z}>#{7!4++(8u|mkiMNqO=OEGT<;5Qd40z=i^sv zZH1`z3~Mjkd7!I!m(~o$mZxwhg)h!`{h5k8?WwQLcK?BIT2e3Y7q73oDlqKBV9I^u zv-HvHta>~eYZw-re8p~{kY8|xi7RFtoq*!bE z8pJfbB=l)but|sVwQfI%qJ4@brixZ-c;Qa-%8UcwwxnhiZ>TFYUmk|aaY`^{A&W0y zZm=>WShpi6f^&fFCiYG^ajZ)C0ytncGo>V{L}s&8sQXx< z{4E)t;vIE;{KK{z_o;fuUw`|aRDW?>-D!c*5~a@TAJ!HaB5p&XBYC#dn8rUAJkguU z_#|ZSVW=~DFl_@!9}bdMfkn{wm4t0MZxzlb1xFA18(yIyK@*2E z(}U(etRz7lIyI=TOJbLSGezKVFl9qfFY?sx4o>NiZ+%QYD1nd*4Lmj#)qc*!T2VB8 zCBN(`8#2kB5xFckcZX^*iu)z00T*(|!xRwA?zIe>M#4%_Iq^T2wPHlQnZ%b<0T)P)z%~Q+twMl-xJ*muG8%${nnyKr6tG2ytO1pdp)**{X1H8yz zr-+;j150H+xA)3^Vh&zWbzdfM=a$=!+EU>vM8HIo7^3aZ-4AOeBN(P>>#WgmaK=t} zi2QVpd`(>qfH%Vkwh^W~(mQCR9oAHX$VZPYu=Sb`=*3y~iz0)>t>g^HS zA49!?G+4AZbml-TN>8jl|AH`=Krr}zCW8Gwr;&>dtJsHoYLUMNm26vWB&JfT`80%y zbpg;IKj+Gn*_tW|J}g5t3`}p9Pgz+<=gEV>YAA3X{DnvG5gMZW`S5Gvs~x}^t;LXg z2>z5{1y%(I=BNSYK~zF>leM2A=C+N^LbCNGKbziWFIf=!QBYq)VmzVYhzjw>46j+J28Dg*`2*B zneGC(Raid4P>T8RVCMR`(}vYkL11@wjR)Z^nP)w8GCrPw@)5M>02pnRN01R!hR#H$ zCKvFju#rW5c*sn|jtf(CjE_S?G*<30FibfHPj|L~>~tPhgmCdf#Dp{Ak^$L9eK`Cv ztd()uoy-A-NAPl>y0fP$&kA^UXTJn>1IA;O_((7wBTS4){yl+B&ANInlI}SkQ}})* zAf^uyWk9BUJC6z-1@J|F;s#%Y~X;AZT2; z7hVW?moM?ZLHTc0{%^ScCCY!j^55Y44^#fni2v9(UMHUJ(D~9z(Z0b+;!U?w1n$Ss zb%By?);A605*p9p+IJ`kF+{y^86!szSPT8(Lw`s8IClI}4o-3W!iwOGU+AaCFLoKQ zOPq2fDLQ@$0z$?wW2M&rXXBS7#Nqg5JFBJ|zu?dj2P`B}YoaB;hL?mOt!W;C%t3#B zjr@2!G{_zQj}|dOdH#TscW>85gb|o%gz{Om26m8Oacm%@3C1kwCtz27ith>%(Ss>nAOH&x)44!2wRY&LS3p-s+RX?{0=xYO z{@MOn8piS3Q`?8F4QQ>K0!C&L0wcWxX68sZ{KcDR_45zg9Bv0+VC(_T!kwjBE6xPj zY5NcC$Go`+*f6BeGWV}Kvng_wAWq@+6w8^6_SAl=cnWwcd<7HZSH3@Ghg=gcdy+BE z*IIYdKiA)Vb>-OKdFtnDO>+_3PA6z)b>B;DPP(g^10*S9WyGnm17fHVS_J)psd-be z<<+4mN)6L}YGU5>lx*J)6ancHqGE|*;d2Hgl@9x-Lzl9Fp6b@P08fX(2;vrN(O;54 z64nF9qXu8;0w^|MCoW;81155whz=Hw4>j`6pD`zPG~iY6g*(dt{u3w6&Ym48QIY$g ziPOL1%`J*?_j1~AX4h^VKk- z$5=^g+yQ1@gOxkkCx_i}rRJV;dkp(m1O+|DK;6Q7!L^h&uidttKqrMZ@)hr6bQ zPF90Q%0uiv3Yx$2)^?dcE-maXM{L;j_@b#RRDh(fd>b0LSIf<5=~fAyGrR~mee}ww zkyagUD_cXyF!_x18gG8#HxFQ`aoC39{j)>koA!lH2ly%G5<;1;aH5*>Mp??MR&yN& zYhvmk$;LqvQa*>IuI<}!*Z8E`ek9ZUac2lp!C$<0qfVwI&APnQTyMToxD#_F;(2%) zsz1|9(%TRo8K#mFAS7i&orcr^6_~$3&h?W${?~3pJ3)xwLR0M;PsN{Pzr<`rGP2M_pqmWW7r3&iQNr2q>Xv_mssnSK?!wr zZQT|1wj!!bUo#DY1~;Np!W67dgWJ0FdMcM5@&G~MzR{xAG>>TWxZl7X?%%RVdoFDd z#C_ki9Qi$2e*5D$G$=Uw3DHvxz+hw%VoARTNrt&^MZLb}ad;)wr5jIhBUR)MU(s#l zp}|m=mf)1B_nLhCTv33X1-x6b4G%UjsXZu>^AU6sR`%Vd(ggN^OT8gen;4^Y92X;txyN`Z?rsmQ*}(YSFGWuep; zF>?#{0-P^tBhxnYPxjQEj&$0rmnEI5v|pc;j5E%|)r4dfH*}!rVy7n3iS#T#SzizD zodK?6YH)Nn#$ME*H|B9aLb>??d#_+=;XaOm4k8z9Fh1*)TL6yT93<&#|$L?T9SfveyaNMlU7`N9pE ze2wtR3!Oeb@&eFl;+;Rg5}}L$Q~{uRrXk4#Cuv~y@|*7lTW|=M)vC-)%`+pxmZg#= zdc?gx^nYdM*6xZNOc;j-&Hm*rjeD6f%)0*swsW}cMUZAsi}j7^`eEP9=P>HJq|AKR zJP0{Xbc9%+WtI>0v0kFRXLVnVRfFmH)-f5?KToRNh&>VJ0^vM0r{Sq! zH-s$920|8kq1y@|Xp10d{Xg+ns|i)P`A(T}o1BpFp?FY+7ro_{A=O2N`(!EfFVYTC zco33k;rt0|jqjsQLT$(?Kw%q)1C?cl9z;#Vt4O_k>czPjJS*`6CmX;>mJghbc-j1& z4=4G{@~p8D6}FYNEFmhEVhw+$v1Dej@M=^U{#3ngS4BBpigK!5l+&D|gx-bvekm2L z=@%>x3`Z(Sa|H?}Gt(^?t?4Q|w1S~Qgub5<6N=3_9y4tWBeY}>+W9>+KI(=`u9Xa- zHaC;s7X3 z-Vt=W4Jszj2r4%3unsd#)=qLv? zXoGr~571iffL1u56CKdUZBVZby21f{+5vsW0ZoU^LS`%12F;)iLuSh>4$wM492wF6 z*MvNw3^Bh(i3U@;IH2;O{e8nu%D)PTJQ#6e8Ga^*Gq`TzXD}#mOVEi%NM;w2C1z|4 zpB*)Ahs245ErGDUzWdPO0s^v6-r}B(~_o zSUBhIUGAo0p>z3zwZT{P6p_`Ahl6-(18@*WZ802-UVDL1$>#0Ox6AF}yb=QpuVnbo z)OX~k5`)#W9+ewSqF&^-nFMD6S`x&q3?Z{yprOZzJQcxI-4SzA~G;%GA_d);WCU7F3ZIf^Q$L=2X-yZEV59tns}bAwc2@}`tS79? z3^-U?dI=0}pjKj1rb3UA02Z0{4J39q1oEns{Y*0@McmM)@M+H4k7f;lQ zpqbO1oxYz_QGfssE{WaVeN6#@z7^saQ$#t+qEYTP;d>Rs@NTo;o9y>?ydlJ&#>(rGfxW@Ys zvz)7|oJ^mOEchDtVSd(B96W;E2xhhf*79K!KQjb@&p8T-lq#Gv?ti()&x1;wXm^`vAH!6AqCBPq6LRywxl z8>`g_VGq7BI=~cc7S@-=27LqD391DpL)ebEKuvief96Ki_q zqc2>vwzr4Vw9ZoVsMb^p`2!mVnVp)Y?<+_v2V~%G&mWDFDMjLBO8c7;M_7Xb4T|&VF%k5=M>haU;z=6XWkU z;sho*WsB1NbZ0*ZNYwAM*+7c0mQp@!!*P}<`at9rzc=T_NJ_vw48gDyr`*e1RPI~U zI+gh*s&jt2Ck6b#RINMvGQqAj9fUkU6s->~=&Rt|ii)DsK7&|b9c<1)u-5n*eh~z? zZ4@+ELaa#Y&i=a7fnukvHF828Y-wf}QQngFcM@T4lOcEE&ce;S02Jvy=SJc(w$@mW zUnqDMl3k(&@|&9v{Fx<&`0q%{mE%Z?^dld>MdV$dFY%teqjm z`YZGiHXalR*WpOMgEiRF8l+dt!|ba3FR({+lKITvzAx2pZn*!zcY$G_m73qGAqK{q z=Bq&?C1{kO7b=11#@50!DjSA%t4HYT}^2OCjyz=oX zn*!#JJ?AB?+horGX4I7t*dvt<4~kCMwp{CVbd{=qMBlg;PkT~h+x$z>KSK0;@*?C0 zFaBaH(wZ9Z3kq4D>>Z)be(zIsII#6iA1t{>12(7t@lkoQV^o6{#3+&&+pIUhrZO&; ztJX|0T|`hFh^Bd*m(XL&D! ze2rJphu3>>rqHi{pQVX4aESOV8@}%@ zo3b8T%?rk$-EylrOyxDo^{Hv|wqUbWN+x-5kY;>zq-ZGE zPG01tHgn9jA->eRHEjW{lVXt3w67zjH-ubANvh15O48HiD}(*Ham9d+5^o>z$noNZ zy=F}uSi%-+B*UD?u_F{>_#&Q?+$e%;;S;4bB{Caq(i(Y%0?NLIuzk%YAvq;-LkBmdcp}#zsMJgwMEX)9rT*|< z+FD$1l49Xx4{mCsKCwYqXO#p-)(^*uk(rs=U zX7bJR;_Wz@wI1%e!I;vNo1(Q;3dzX%W#<1;YMdsj&N{D0#W8hOEE7o-udT~a;KMeh zyc|izew0nv6u|W!YTV@Ruq5*%LM!F+6LjNji%@{cX>og<7BC-WH4Y5h6G-_Wf~_kb zz!_fi4*Uk7>T6A`WTsA-(faH7)s(JODINpptc#dmR1MktCmlhh>;j~BfHPO9U~r?J zxr7RCC~&(gDlzB%rK`8krAj`al=hEbO+Hm)@g?a2CMH1T5XqI}A?^p;djB$WvvrRR z>2o2eBSF*(yC{IvCzzq^#|i>wmslVXJ%0lIaI6{_5rc*>*1BA|tByJOU&(EC2VU zTqz|GL~RBBE!O5wxZcS56nvn7$N5U}!67U+sRyKb0|w-{&zna~NE>#w<1PGQLeBD|Lioj7Fd zTZW(DeEck`NBhHj*);WDP8}h>SLNf4*~Wjbw`UtzheDNU7(4lo5DieJ<1mbAiHhO7 z+N&DI2I*ZJY#2M1j?h4yl=J?27h*u8e(&pi<20SY{b-R<4P#FgpezBZw*$-OL{6s% z8gV3xvE(#3(QvG3hI3QV)NuNm2hx4;N$Va73R|*sUi`jWKbSUqOmG>x?QgEJyKRuT zl8Sr0O9pBq_w%S84hVWnaa?yshNc7oYY;eOJ(o2s6~K z&E>M1N`e>l{fi_fCP?Cp_#`xZ3U>V5Fi;z@j)sxcDKi|r&8HP3oN>i5Rha6)AyANB z-EIy16bI)O#oJIlW8#lor_H0V1lVz7zlVln$6gFjZI& zq<%ftZossiSIK%!n{~g7Br*Z%M_Dw}M}&13kx6x6zq&6*Je#;BBSVE;Oqk6;E0bJ~2A4mP9!Gr?51I7CT+W7sZJ`jQOapnF%%Iu;* z(cqK+kb+7?J1kA3dLyuCa58+frgPQD*N@<%@o&=JhDs{P&|N6=sTL3XmQlD};c*m0mrPA_LB!xS2bg{}4=QJ`ggb;I*xqL1 z$2;>Xq0alT3pk+)FPV%DteMQ7Q z8Z5`Y5G31HV>N*?Brm4jvUPQ6b9t}`6$b`%{stFvegK3V;92M|;r)$jzF(n4Hd+Vo z;apt!=(ggN{gFB0jcmG+5VCtkE--A9ig>f&A|4?861l1V2V0Y+^a+9mkuL%4{<_hm zppI5og{qlDga%kt_zr|zkM@AnU%t|A2a81^VIv3>f4s^Uz@NW6@5-0tg)A3bU)z>f7gcO+AFz= zt#fK|f8p9;YxRRue^u-^HxASDW4-d}Gd$Mk6m!Ecy&%R%`_0~d?8LSQTNdOkN9z7n zLHt_Tn5Ux6F@*rMO$-5NU|?gH>tg30Fjg|f02cvdPW4(Ur zQSN>`54$jk!XJiAhuQy@rFqNwslSq>Qud=i-8A-ScjrXVh3=c7nBHR7HNPEj6`Q(B zQfm(kvv++3EfX+xrUMpDdDKH}z5Vb(Qvj3^C^*%6FO=4!TJQbep!E(IFQMjAKpnUB zGLO;L%T|D)vE6!?AtGDvG$L?X?{s{`wqEiDHP1Wv$k)-<`z_q6^%6fqGne2THQo<5 z%6HYn4eBke_wepStv4RhyO1%=l{1jM(EG1jZ-|t-t(Or^oqqp8>&<%3ZoOmvpIYxl zcS-9dACK31OTfeG4z$I#y13TM0fgOp2jCE_T^j#U>&>{rZoRL)AA{ikx2<Xx)F3;Xty0ldLo2`%jrBws7#z^9 z-}QfKdl&d9i|hY?b6E+O_yi$}3KAt)6wxT4!GLBV$gV6E1T`o{EQ(ZZrLYUMUP#=e zVf(n1R@>U@_gi}Tw)XP<*4B!EZA}P}0A2##z$7oQ06Id9*u zKS9Dw$1V%s8&36W-q&!~Mn2@lCd0Pw`VB!QkMBJ6F;Y02B;ToI&oo+o$!s#izxoi%6lo_xT&~H^DOmsZH-3AW652bh#|B|n(zIoT6Mdf zE0Ihkqp3&VAW6vW6-o_cuJ(ATdbTE2o_E_(Xc3}aM;n%pui;BNSgb~&BJ-i9tN-N2 zH?$%Vv)`>w!Hn?E@@n$qdrBfpXze_{df!483O!m#a4nH2KR{H?&dF%jzI79^yp;@J zLub&K3BTgWvf(%79R^IIgV`ozoHF8bNl`3xSVNP^y^HMEc zMW!HLRMr*b-)CI-<~t3qfficdWP~PX1O~adK%H~dVAI7+>Kpepu$^tV?(Cg0os(}c zy-whsO6@Z;*CR>KzNc~)F9g~oQs9S3^3m31$2lXmcO8>WoRbjhQI2qG;8L98V6w4P z^e%A>F<|Zs(bV{--F~gn)X$!oZrb^WXJ+wa%7C=ywuB0rYE&MwQ*)@Gor5-DqT|7j z(*>7Q7PtdRS-@g7lsqbw>{s4ZrBX~0JwT3sn$*#hg=}*vxeJYk3d}u{A-M?IOcS?< zFo`r&UwcpG&rGw=!aLIn3OZO8lYADwH{{+~Hw!)rc126GuFdoea zilkMElU>eW85j=0&-_*VJUR~*mCWhPE*2(r zU%09j9pKQ31%Z!31%ZQ~O~k*%--VM30xS6Y6Mt#`F1*P8-NRFVTl~LIA_W2cU3#(o zYvQTDO_$iek(li0Z-M_Ooxk?S*tqOAI?*A(cceNBxqGd$%xTz4I}_{G+35Km;l=8< zj3e^Wi+}xbI-^SRRa$Rf-mOM5wy0t+sI=Op(n2z@yk^-kymZOuu1V9yx2?%vmk9hp z%iZz9v(~wVS9Ajwzzxnf&g2{X52$j$I(urlb5`+^r(mcf(8v}4m=LSX7H{Ap%Tr_Q zJLYJqM5Q@esy)0?AD^w_=FPd|Nur#yUa+3|C>7*JuA`E_GT1fqWyqN9vS%(~uf6N2 z0@r*q3L*A(rnOu355dp3Gi{RaR`_8HGO=^Xrs{p0^Wy{9V;`9)1OHhD%CR|P3SE;l z@gdg9GLu=Z&7BIFdSjvxL-C9m)YYx4-e? zX)v-M8s5;JE}d=Tv6W2~U#A`09cilnRJyd14>EYzxlLST$R4D4vso+WTI}a*=N+Sm z6JAH2OihGI6%Qq-If9+1`^h6AYz}F|%xV?f7FcAEGF{PQO|;hKZe_akM+`KZhzZt6 zu<0u*lqi-O5Jq zUubJ}dZ23yc>bUZ3(rwql$jhdl?F6f!VdwYs)OfqD6!C&F8E?jd^UdO!{@! zsB8M@7wbPfrUX8D*RM$Jha2uN;X)HHI`Xz^6-z0_Chs|>E zIn|X#&XDnXK&;N>ot;`O)V~!3fwBG|D1I~FZ&JSh7G#usjf3e#Z_Bd=z%drUN8juQ z&?xv@KQx~U?B|!dKX-kp{;dH5KBfMxzum?2+{9aXu@U+?f#PEQeEXL*nAc!TIAjlE zPuExi?FyVh;I|44Bk(;1PVlZaMHR178L1&(HAQWqDfoNDU`Kn<2umlR8DRpLXSe+h zcRs}5`O|y^VqO4tc(geqQbY`PuNWh+y)~J@Iq!gm>Xn*OWH;Qz8egY?QWH{e;B`mS z{J;O)Y0%LU;!ZXU?VrYgQqePP^rd3f?myS{^HaHm~9rCAb%;%yBR94&DGbzF~%KyrZjkG<7?-iKOFPUHt~gFjkP>vy)6s z;BijFwxcvH;jhOWA#V3}oudZ1%Ug>~bfCE?u(=>_^CZrwWNmm5TzTs!V@rG3IuLF% zx9AYBV5Jh+poC!kYfFT)p{O6)oLEkwe3IWEn<&QkwxLCYl+FwL72;j>G!;sydU<5j zgG6nKIzsyA9Z&MnX+V=+DfA#d`Dh)X>Xj4fnhNw-ZXb*6W1)RqXCGJF$7~+S377FZ zy19C#xuubZjOuxO(LUz$;K;VMXnzz*S#QR$J!uY+XP19o5j{{@Em6Ks3&IIdW^8aH+X!TKYjK5=U)G5rV`@K z)Zre@YRuGv^G#0U)utA%EdcWw^JS5~$o?1cQD3M*B@YJF!@E>bUkDjS3M+)%Szbq3 zn0_{rD+yud={yoVhtLAqwq43V@B9iD5O9Ld1^)9I zo*Mb3VRK7#=^!=|r@0%w0}IfimI3mvmn}$wciP|}w8BY(D<_pn)LLX*wznm!sUwC` zjEWjU`o}qKX2!5Pt9((_-TJ)rsHAyjoJ17x8T)f4F~c9dNn5cKZ9u$fC9x=~4+(N9 z>dKwKOBK)OkwZ~0HCu{0k6Z^+)G!lgDe8^KRGUL6DxktXJ4I<+|GO0RAB+&6ZZvu4 zP*g%=M}?12MGqq9|E-uq$vseKPW6e}#epRE!w9VAg{Jo)^CF5qh*U2f^}mxUE4>_2 zWiYE{sy$rBuwb?DS_Xu4G%O`%AzTnb0Gfr}4Ft1LuVox^*YQ^@yyEA|aA%$---Qg9 zC(p=26zMGF8_>p?G*NdeET=5}{d?63wpi=85?~amW3BTvP^ET4`}*2rTvHuBKI(28 zy@TqNsqfOIWBv?guT($;8wSG~;!zW0 z`Ag3aWl9R^YS;92hHNIs1)b0O19(u_4&V#nwi>|a%}2<*(g@JOhs2>|`0WNCv_XyG z|0c*7?i@>^I=q$yoW`?F`mC20&c5paiSZ|*9!7hqdYj7hsCReuVyuoGhYnq%d>Z`@WSH2Rrb9;b2DP%zWL~)Zk9HLQ3A{0ReE*L@Zq{lDp9V}5F%ALWrPN( zr$JS~fe<7&!W#aYivB5^Nn(c6(2q>rw8Zo`k7(bu%jDE`g{vUVB%X|>pu?I%FHgbD zdrBF9BP4FNbQad{!C=}+9_>AJz6gTUJq+>xbQbc|a#%y`v!K3)2`M`^+# zu@Pbs`c6Ld%OxiL=MQ*Cji*CrKSbvbdVA8nW`N<*5@&gUs_chPQ?OBzyMIA7!`YBs2(hqwKFc z0LJ5S9-4UC{imY!zSDp1_MaY4rZFWOVS~!4!_zfM_9_T#4r9u&Ss6;HM^$SLN@8_t znxEz7C+s%LZd>B+LVJGt2K!iQk5R`sWeBgiiSLVah8j-{l2l<>ns`+O7!xWN|3LLG zRgCNCGz=VVAwi~Ti$yY&{tr4+bLgG5vq3jsS1U`ZG{GljDrrkRKn$pXL4d4)r0$x^ zhefQhegeGBI}1P6T_N{wvp;wlI?QKoJBFe{?la7i^GwmpyBNn#JkRe%sLW|-7?|zFzOw671)Rj|6zWc@9c7dt4UZGY<~E5HIDls3A->ZRgIrBB zKUI2T4m`owcQ<^8hzVMZ$4{hKO|>#Rkoh5xwLHxJAD^?%%NStF&1Oy!M$gak^yE(qM)1UUUsMlO; zE$fADj)CxQ0qR|SzDj9pRz9?wN9PBYxBA)RB{eITT;|(zcfQQGn#v`YISpF~bpu5^ z=;mcbCnGm)P6!&SS6P9HN(3ie`s5#A?dDuU=PFasEwm*an~+#hm@gkK)U3|-Ju;UcsDlyjnGNCD1%%J&7IBa^1R-(G*X@4n)sSZgIIlNCQI=p4{LX0cJOKQw3p~@RPu)2j2^$BZmL%YiSRjS zZ3+K{rN>WpTWdz%C*D>w@&z6F%e(IlUb^r_WR6S_HMxK!FZdraMD}kEjOAZ~Dx+pN zNO+zOhp{I_yk(ED5zI$Mm~T;kor%$Da69Vt@gO^Tj(})j^UyHI&K_QyJse@E0ie)VIU0U%hZZ85UXM@~a! zaRz@yPQ%Ykii}K!4wrYz48HgTSj}Q>ZsQrWp8aBHLnJGTl@IvTuke2A)Gt%vI;Y_wK12HIBt%B1;cfy{ zcxp8jSrXQ958b|2GP8y%*t0JL?8UdHQtF=2*BQ91VMYN~cE#>lUAWJ^{6 z!D6cwQWZkkI$qq%-H!KUzTT~YPOxBm-ra8ybnmX?cO)~5-fne#c9=A;U1tKKnRt6_ zO;XMP%hE9bE7;(l&+9F}%tpvSR(g=sJd}wkT#Tvuk-SdH+Bz-fG)^?bG^ZVWHr&dd zc(RS@E~OPUnqf#(y(Kgfe=Vlc<`?@S95U{IsE$HxeYt;9<+?K$QEx@pjGTEZD(?O7 z8y=^u$-9-rqM>SolUT!BK}(h27Tloup&IatShr>Ah2vb2@#47MFR;Q>sH$bzwV{IM z!{j^7)XipEvc2m9Kl{1<{z7;D^3Re#i&0Z;AEStI;K`k|ye7HiR{oafnZ{N(Kx*qv z>r`VrW@As4nSg5wT6C_lg}FF0Z~VK{@7$h~S^k3uv-rKgRm^8$@jYi-wZ^u|=kkmi zr{OzAh!D1=cWWp)>t8EbG6z1aaTYtK{+3#emUwUQU~!&D5o?#r}#%#!meG5>4>sRi7<#sh2EEcFB=lAXMA?gdDd8o zUG0R>beN`G?M|)?rTP_wsvhUG1lF?iBU$A^>;Utz*hAW zr(q+TVivz;PJ_BL?A~oz_>S1kV&C?PY)p6H)%JV7tjK9rDKIH`R)b~mAt3Cj@XFg5YhiZh&rrfrwr?)TJY}glcguRhUkA! zvU_LB|0T)pX9oewcF8t0cL$U9yH3L_gbW|MMNT4N+HD4$bPCrqUeCBi%gZz5$2Fhz zN5tKV|5EpP6dwm6=-dn?aTY2o`mPp&ium!p0{922yf61Y3~8YxXWI*D#;;HxC-E?E z^qcx)@;S|>>+U_A45Te2D>$qrsrWea9S6gkV<*`87<~iX#1~)RAXK<_HxorW7rSQe zuG+e!UxD=~VBSwN!b)};%#~RV6|w#uxg_*p-sFa6f0nj4D0TLydeC0C;0A5}+X9a- z&bUUl;LeNN`%0?Wn=ADo2`yRVOE+kwsz*mQX%#V*Y&z#pglTo68JYj6vRb#G+(qgu0cd)hI_X z*(x#b)|gzoW)GC`y?$dE(V@AR99vDl{k8WG)UB(AvjJpRY?_RsD)AbRB|`PM-^t@e z*j*RkvGf#3-XHf*c~5h2I_y4XyvlCQt9nQY7w?h1Q>7e~7#q*4TI<)95ueYL9iJMu zZhPU-#eIGzBkg7;TVutSaoTI7k^7{K%6jZwt9irs*t;qpkG%hG|YsM1N)v4u{A6 zR=gqBN3+ON-d{Lc?Kf5`wmrs0jFkA6D?DWL?u#wN|M~xzjF-B9Hd^OfD(lnI;@{Tm zF+IA1I+Xee*Iy}>Z=S*2X&XK6*9&2rv10);kJ{jp=6k9#6(|kLS@9ZS8~dU757gZ% zJ28I@a#$US_e~m;uLIn5#L~tIL;p)!iNErO!c{0GvM+x#3!M?K3O_7YuVP_O4@~EG zmbr)x7cAW_l+CiUN5zc$x9FYO9EO z2l0X`q2zdpnS&~!;kd6yAKX|@<>rr|2P&x%w_#JJTtd&eiXJJMI*6Z{?08X!h5Xi( zbNZStnrCWqEx+us@Oy3fB7U(OHsKL|4bA5=<`6TB9$LwH>%ddM3)@Pf*x<5wRk9>@ zaW|2;T(r;^#y6QG2gQ#yy`SG+7i&iNc2L~e@LB~?PWvRrn8@PMm$HK zPU_LSVAAi??w?tU(GGvCgGz}JY*{an94no6Fpc_tbY>nF_R$#QN7AJQE#1aex7TaoEf~u!}{upU| zVqc^as^zP6n|C5MnNZ|ovCli}=Z`5`GNrp`+>arLgL?Ylj!;i4nJx3^Pd-r@X-QN} zL>g*3A5+IuW*Mt_VwS;X&5d}EHhv)wcfJH(%#nkT>$&fH(OcDuZQQxz)!(V@2}=h4 z1vRl1Oa$7&3B=-wPxInm;Be5dO3ZPi>k^M?)fEt_Vdb{X%g6at-HOWsv8mz2W2#vo z7D|`ibe}dj%w3o@?vu%;cH+S{t+x9zQ!c~y?~&cab`3~;njb$pam$#1ww1Sezmu`2 zs&?qvh0Zr!f5Y6U&!)hZ+= zSy6IXzvQx#c=F#*sA_9Tc z&23X|(j&R-*5tC9wx$P&(3;&DX)xR{I%3s&DcU4VL61FPY!n{I)f{!LO~lM@V%}KJqr9U2=Y#aTsD+*`#SHP<{X8HscW)o$jRMBbxHtjL#9Z z)vaGB$JI^Rzjy0zGT~JwyvT&_G2s|tdYG_n4cwA{;IRoI$&`?M_ z=p9LO9N4WN&s(wy#W7!W1UT9B2NSL#+}6}gnE$j9dmi35@~hF5e59RFvT3b})qb_w z=+=h~gbv=_`lty%W5Ux-c&7=^GLYXO%zq&5=F!&V@oOQ!O(@y)l8N2RuZ29wK==pm zZv9{rK48LSCj7Apmn-~;Oy{i6)HdTD)j};%tZ`P_)-;fCF4RH1XP}xpsOv4%G81p1 zO2chEVzxEOEXF`Jm-OKVly{`OwkETy1|qz3zw$|%<0BINMw(#0f@LOHpkOIM&TrQg zB41*{JP!uY)+Bpq(XV$subZ3nF^^b1sBiL-c|B4u z^SZ*-K>l%~<`3#7^GRK_!O~?eC*PaQJy3~Cl*pVnaq--jjfwBIl{(5+3g5I!8@n*K zHhoNOexwhPKMNpvuUg7%r*GaDP2G;Obu-D$=_avOx+CNB)jdjfUcVr6f}C;2 zZ|7QIL2)lH#8%5ry;BnP>P_x8G@nw1$JDq<#jp*rl+%OTx4(7TxAh*eD~(X{Zjpm) zXkg^lP|_6*bd7cm7~DHd>BuB8F(WsGFeOxyk_iQYeCgCLDoiGHULcfc&d1knQ7Cbs zk8{T*ObK%dgw0>fV8!n0zTwLU=2^Box#QHjGniISC;(er`BQl!HrM7y*K$E5$ zo&7oFmY57RG9IdmJFz8;_Yb$Ulq}fal1|6-|IS6ATS_{&(=>mzpOfBgi6jmbEuQJD z*%4Wn=l_d1zuiuB_2QGl`*$Vw^oku79oZ62mV^u1r@8Hs#O@0tEuBZj$Jv)&ycERx z3+SqF5?|{rMUnKD_&=th=IgVve>mL|Nw>%Mahy-5cFf70Nc{(a!FZakQ2OKytWRg) z8=$3{=T821lb?sj-(LO>#CLYxV>5;woVh!#1@8X^l-uwV`AQVf-uNlr*p_`Ms90RZ~9VWMZRzTdZ9Z z5oJmS-M;@|USK`^iu>fJnciL48uo$Uu&S{gqiTkn%An^Lwl2Wo#plSfG@4ti0gziF zfPX-$n$*SbMto>{SEw4NP?Ac=+ArXplqpeO<#zoRi$r-QJU16|$gEs)LFYm_1}JdD z&M_b)yp9+CJ$NBLS)Igx6U;;f#uK%q|NBnu@Wi)ufV^a*X^e_pY$G1WV@L5TRDndr zPnzd!;%bZ6=Y)Tr6aG$4`1YLe4LRY*e!`CH$2 zPVaynU3cThX@PAtIZEzqFPRurR!W~;y4*&-1jwJYmxT18WCP%EbU##%?t{_!&D0d{ zkR^LVsk%>LtrI?BmL~7mIVNxI*r<8V-b=c%l{w+^YMz|(3*Hizq5lru8F zIoz^mOgL!3U?I6ku*l4T8z18A*LdXv#nTZ!R7{VHG~oQZIHV)gazlo`yLs;VqtV_P zazti9wdp)^edf#=uZX%G(P7+F+&*nsd;RNaHhAl|F+pGD26_Xhn z7w-CvjbOw#&^2~9>N}Jum6#StxH|H$=g8z)!D+$Bunm%Ys#D`# zjL5JSE?-fq0lBGKoJNUC-Ia(`AxlUvlZo0rDT)JuroKdVzDB(}f5H5`z&R$k={I-} z`5`Zvln2t`s*d>B%eKT6pxJkGy(uPE+)5sr_f1LJs(wRp z-zKi}PJN)NOW6mD_ZFk-{8~!C0*_VIK_|0y&*A5L4mA{u-8(7XW5+bV|~a@!w^4Nr`C*qthu6te40UU z57z8?Ve;a4O_ZPs!Fyg2ujSD3-V4LY!g9)chk;H2ufAJg9xa_ZP?IATAR9PW?Bj1o zSf_b5hg-Zcqr~sRZ92>qsA_ehuiiQ#+}1KyZ!Nd?dX#!`vEs<~@YAn{)7v6$b9h** zGx^o{pz!{u?OXV1G`4NwVQucK@%(fvDy9-upgG%XD1md`BK8-YD*aZA~Wfr!HENb*bQKC%L1Ib0Jf!Tjvu}D1W-j6vAD7QRxt(CU6A=Y z$bLO8^Ys{gEz5jGSX15;GhhF45nuE1AMcE?Y>t5Ck5X)kVQOb>w|V+3JaZvV{YG*4 z*85(34Y?V4thQUaGU%O0t&Kc3&zHyG$&HdNBHbJov1=-gZ07bsU+~J6P%;uvkp!+9 zuAWIvKLLSg6{;NxFDC;_#=_pv8mgJtSbMO*^;MthGqBeSbGZcoY!bkbuKt=S>wq~k zCeY+6Gwh~$QWku+LmS)UJq5SJfc73TpuG&}y$19tK4>^@z`L#+G_U$+M8(F7D9F;q z<$L=#Tg2XRfHhD7gtKAUR}nde=dH977-)WmK^Xih#l7#$?cn_d-ght`OB6wLna!U> zh1tPklcqNK2`1INOMD1+X2VKX8{D3KpM$7UD=DEHvn9CmYhQ9shGsho!hPG4ek6Y6q^fgRk;4c0GgD=53dDaz!_B7#~D=9ry9Akj(4i@cDTM%Db`l=9(DWK z@}f>_Z~kT!VNu(sM1>9FHBzFuL5eF=+z2f)6~9~Yp5krA((Q`ftJnkaUq$LYl@O^v zpof!CCGARb9g{vA{8`gI+7;{3 zUeiAa(#vfB&==~KY&Y5dY02rIs9&D&dqDUF;n6;zepVlKLc~+tZpH0XTnF_sJ*4iN zK}SYy&1?r15!wG=_0M|x#~(!IVeK=*i4S(mf}zRmC1apb!3@etYuJx7`8_E>D}CJr zn#pg^?Zvu&OT5hc5kk?rlSt)V#$>oItg{ZiaWd9D5I#7-PPAS6;Zn_V5Gnkvq5Q;S;KILEX6bWWtZ^@U%dm!oi?@AdgWT2 z82b#nSLWaM_(7aAd0V9WF5iBAobW_fo8pw|P@k z>xsFw#$yjnGqx<*!o4z5AjG6grvRCAr_G?38+$suUYQSP+7G`lACUjL)<~ZwY3IBs zx*50lpL2SlT27aik`UaUEOeB4ZKOAV|8}bZe7&EaZ=j@ywoDmHgg*}Ffte4Xip`uY z;(Yn{)Vry9Kw|c&W>pt;>zaw<=GA34<#WUoi4GmO<{71^j13F9=K7n);#Y4#<2KNH z@JjI`wb!O45!bk`M;?!z6mrcmwZ`B>O6z!IF3Cw-8QN#Q;_xz*Ffj8C9MvqZ3kyH= zL^AYAqC&1lSH=J}#c*fpMc!6~Z43a-jx3%+Bz;gt2#E8t*wcbq4$y}=)5#z&uTHFP zC;AgfQV5h7Nr0f~SGS_jk3Fme6^Z2o1M!)btMhB_`)tiig&s>BIDT0HOx;;?94E5# zQWO1{4P|ssVb#{yGb6X!lF&B))Rdww>n;M4n`hw3BFTH`i*SuK_Cj&i#&~}6Rud)A zIQS{7+6%nB*_yMoPyE=xG!S*u8PIIqbBDX+$;!lp;;Rr4qAqm2C62Y>miQ>|r;Oku zqiGWqV{ww$SP3?E#GbS$2svwdN4U%_2LVJK6Tv6hp%~aPaw|<11bRcy&JICw_+2nGzTOn?DuAhf1C5*zf&(o$7nx(ao*KS8?kq zX7>D;PELlafN)h9b#u51wk~g_p%Mj4;u8oCQg9Hr*wL3#(>@_SpP6s&%j7?i&qgHp zn?!=HgkH0MZa;Le?O}&iM~f{z+eXBxaleFbB=b7Yz7~D6##@o)SE=AozUa_6`}=v` zF?`Tbuj*|@-&H{T)CQa#1R?ix^WtL0j2_Ky! zF+$9#vu&SoQKy;h`O7=H*{Ou<=DU99ExQMp?mc^N9COaX+GIc(|?kvI?he3AFz zWhTMhN{~PLMelqXq24zf5H1kb{5f4n2ywL`ce>?Z_wmQ8?cK=kTVB5Mk?IRQ5@>$$ z+7KGT`*)t$jN;ZqcFvhHZ2#cSjSJnJ#>?pGbZPTadHxBly~m&l&zCn7VI+W^vCq+_ zwt&8*OIHyM76zwFzeOnOw#pcief z>pdD${{dXn->uA5c9v$ob{ei{R`5Q&$_$lx-j8oqxvg;#dT`8H(8yz7HeE3<3Y?ix zs!qsyKfK8VPWAG>WCBCD?C~2_3dWB~1V@rKFSBnY31{j;W~DXsulH?gl0gIF%49c~ zo@#s+e(P2GgN_(i`pOK|+ao$2^k!)HPA)3H4R*Z(!TE~dM1Yf;q;3O#;=}y-LhpM& zz~pgfJ~A5}7Vz4xQBK;6ceezv-QrExGBmk~x%8!&aYi!SoOUqq=wIT(ZIgzVj-lI0TMA>$E(tBAOJ-4CPg9+QWrJL5_V)y7`zq&!81 zK}0*_rAdVVk4b~?~*h7Vayd6fA7?% zL>it(XPj-sRb?8)x9rP_Kw$6v9#hJTvA&rPq4d+p1i?hQAU-Y&^>6q&0aVfG7bSOf zm2r*dV7!D}L1yq9Lt3}>N_W_@-B!DRmrRs9R4cN>G&?>u@wnUFB5yrp*F8?V@nJ}G|Si<}U`)t%~RIwGU~_V@aVx^+#`FBFA`wbPkZTb=JW zTed*=)N-b`-6$&R`aBk_=EN+jAGwBNyJ4ZU>~gsrY+?jbO*9-*P4Q0(x(!A_hhG2B zL}b)>+9li`n~_l_VaJGe0^OC4)_cd2%_yuga-DbO zSq4AdsuihzI$~3Rm?^>l&4oq*AEC?;Q2Yf3nh(`g6=tA1BgB~mUF6Td6+n;wZ_xk4 zLiYr{?of5r&(Azuot?%o@P##B;R&WtaQgV%ePOsS^5a$s(+k5booA9TvFAc`IisWm zGRmBVi7nNM-Fa3aRM2i!LE-u6Q%>JPo8P^}Dt4MyOA*tp*g5a+T*c1mXmw`?AN`5q zGD@D>hL*jbHyd%=`B=IJQ!;ckr9U^%*@}Cbcm3Vd5}09>I8e!zJ(M_x4TzpHE!w+6 zlywk2{h!c`w6HX99s)~lFVnq$IXumrI_hxv?@2QPnhT8r(!Ve?^OqygOvf2M)XzXO zhk^cM3*AuUVQ6M?26{$kXz2X^In6ve&C<+FG;X;xQ((5KGs-|qGmjW@$f23CncXz= zdq%Wq<|pQP5Y1FvmZ6#1rQbFQeA*GexkGe{bmIs;wdCp5}Vg7Oj1n3tK|NT0`vNG%hAnNJcL!FhjeJ zmw#2Y5LKJzZa8e!{&^ZzYcJGc#Fm^UpXvjT4YB1U@`ZCxi-9 zI4)vfblw3J5Ei(^`NkKJMnYJ=&=TjK*2%IQdzmjt07Y=`&RSC1oJ*##w14|>l@}6E zA&)i7V3|oonKs?P^&-g8;N3e{)$g4JXJ@QuZw9UZV9~&=J=|9pc!Lqz{H|8D=!u5% zI>2>qBjMpHU<%08LWP@cKsXN-co#Xq%m6FAKa2ndj$+lgvpy3XYO4wA&8{^*4vMw; z_BA@OQ+8`UO3mE+^jB!f>82%4!*d{9*gJvukh`J9JI-0tp6I+i@j>2gg$N+%{s!IN zYpn>hYkU~TT`LLwX%Ig~{2JNmKJoN!q|H#{hM3Zq?C%H-+winkp2yWv&9a~4NSN|u zXz*h66I`f7=S@-3bn%Y>u8r7Z72DX0SW)!Li>RgcX-(P_{n$2QIlr*E6FrdJcsF{0 z2I6d!cN@~!;jjg@2kH#!YuvWzux5~b2NRa?6{&Am&*gTBQ0blXIeH*yi;oqndUdMn z-=RUhOgvmMsp*5YT?X`Wpqs8dbTZ#{DuA&+_-y2n>DJDdXc|YaPC!mPiwgM1dO_45 z%Il~v1HulCGndSQB~AF;m*u~tt#i`9Du{~S@?%@k=Ja6)@)@eE6t_&ho4uoNG=Zm> zzqwChfi_^z3Z4xFW`1w!H4F?n2g)!r)UpQUa5QOZQ^gJ`DaFi(J!dQp09Tf#~Co0H5qx=M}g*F zR3|r;54zmHMHyU754&%nKZ$auRZG_xBad+1pMyGT_}f!a4G-(UxCo77Lt;9p5#THoiQT0QOWs=?@`<*gy1mJbRzzRgV2!j5!7`=nIi zmX_W5BX@>Up#n_5raHgvw{faFYvTdTGSMKkAPkpBhHVNLY@g~zH|~{yJV;V>%Uk7> zSqPJAYq(&mQlM!gtrC<(hJAv$X~Z3fC-_^-iwvlO?dyh7r^v8pN8(8o!-JOB%ENu1 z4?q1@C^fY_@fuf!?g%Ab%ZpvJ{X2P*M40fFR)~k z+)uG@7%8GIs7#A6_$m+Y-yTXd=S7A+AxD;dJN(3pcVZvL*3QPF$o}oqhCR_0Rsn~H zJ6ui{i!vJ1aH1K&uaygGxNk`Yo|l2=3yalIR8_~4qgRpks8FKyDCwsD9;te6NxyIb zZEDRUy!aoWx_KR>g3csAG;-U>osp+IGYcOFH#;vz`)*CNj*%_Z{MJZ)v)O6Jj%`}s zmdWUdi@QbBXy0ZHtm#plLDm6~QD_5lv#a&R>-USx^q-6pO+I&Dx5}!kbtgpbKd5ba zrUq%P7k1*biG25$uL7!k`Ra*Yn>vNp4jNT6>!Xu9F+0LatVIdLEcjQas3kKpuVv=- zWT_FH_2}$yV2%G!Z|F5v_IeZ#vSdlhW{1=aQKKe;%HdR5_AWBll1b;?N=!oE$20hP^3B-GR z+sxlz^!-lrefDtsoI?$>q}O0c5RFhf8s-D>2iK6$j)N8v@4 zdHr5JRUr3#Uu!BsVYO;@rzY~uFziv=pPNi`iZAG{QSlvFK(@9gbbk{byMg7hAMKyn zbJL5Q5xZp*@3uJW_YR#fXz}kRI(L*np=R;7_+6DsIq43#0TT#0cDq?oLnl80i$j;8EZG0n?JkcCU4Z2Ow=43g%vj!XC7>|&KZ-sxpU>-D}z*{+Kp%= zNZ8EZ*xlbZ2>2&qv=q=wE%%ewa*ulLKNQ9Dy=ABJ`-(9`52dPCwCp|(`DGEsn%~(> zh_>CTdM2SUK*#z#6<&d4u%czpaUtb{e#wW)d5sUkM9hAHqIPA#^dNsu1u$(G`L}x} zGI0wt)_AC)Bos>y8@53wL>k3SdQMN5%Qle_oFf_Aa~~NX#xfDoDui@9zo${I*^1x8 z$;ZnrsnxbdFne5ZDCmrQyc$560uE?7^zo6v8X5WIT(DX5b?JNCyY8j(NXnFjo$d^n z4;5Qv;(AESzWrua18&NjM>%EihG1!1s_* zQ@=H&_1Tm>6ysB!6`yfCuIXB~UL(C$mN7@RZ+R0nNTOXXe>h#nDxgDVx7GT=`>|Ce z8xteht*|(q$H=J^z4HuDgyy`B^8kR)l{|Ona_r5>rwzAxo6W)jm~8Y{uoF7%3mg+L zd-L;5S&!G9&tk>c;c$YwrPW!J*U%ip0eVYxxD`^52LFm`n-#%XpsnyLiFYG?3g%dUp(W>Fei!j(a)?I~KEznq6Fd2KT zBJY_oO1wK0NmKkPrzzNuoQKxcMq%w4uSjgkuYQ;V+)C4R3a$rz zTM+g+CmJIzXAQM6CuFrDU*`O|uUA|x?c8;-<1_1BXU$Z0wlR*Hc{8GJ@gftQjCMG?VG8H4jX$oRr4is$k^+y??XASu-gO;@(lmO|Nd?34UU| z62DLdKcTy-vAQ`Je+F}t&v^qRg1?%T*LLIYnsLI|1I^^_#$UKPC4{z8Aq;BVMr@W+K3RL3AtZNV~aK*J7gNH+=}-~k+* z-+`U?%ec>z67qf|w#7%SrQU&7C_9_R z*q>B1;@_{?+_%v&&28a&OjIpp-t@1CCQ&8H9xAc1;wpwAquOhSRE!_jnoN8a+~d}s z1!#sM{H4ac0P;am%#%SS4=|eTALIJHUdMf1dhqXV_h9lK3OEYQkHhAC3bm zHg=M`(hk8nAxNmi8+Eoa9nh5=CRf$iDzv$bRNqo_tda%2HN&Aa6Qz+lDasJi%<5B| z`M^z$)){+6ILQ_O#&k(WEfzBshU~)XV)%@$M;8W}7R0p1cjDFFxh(!ibI)SND$^Qc znr%Jr%9CN#4R1gd)<|;gv6M{r)pDyf=1W)4y{c7~evgvBG3~N-cS&2Kxp(+p4$>{V zz^_ITALpJ8k%DKbN67gR8ZYjbVSbR&>=W<*586bud*K2OK(bBW?p^wn_VO)0GT5m3 zrY*0lC=(Lwi2H23cWCqEz^I6>J8DedeuA@xi+>qID<=Y@seAaY%%^%-cU+trf4*~1 zOSs?ztR>U2-Vyhm@W^)~1s>NjgjO*LxzEasa4r1&5?l|nHVN{x2?}o9v5y2bfhmRif~{v8{}$jlHn4771xH0w zGx9=fQ4j~b!Q3g4OAX++2PtqL&*fKeD0Zc)>;{X+Lj0pq;Yw}o_EuYW@&)5Gx+Ubk zCpVR~#>rJ^o#@IN%-EH;j?=uKuml!CTAIvIr1(fXG-ar;)0Dy{!VbC5u14XM_$VC@ zhWkFMRLD*+GD)bZ&cl`KG^+Y z#$O?tXYgdL9Yf+U(x8P3|*pc38#(m97ETrSh zy}Qm4lJ`dKq!zU-Ct5XX*#%}s^I6S%<^otN8o+3>q5&h7DoM?vP^bR&d!!M{O$9X$h zmt^{pK0-z-1ANBf`$PJ9azh&a@^e+_6Wg=5s^Q$FxFI#E@5n| z`J{KM_5zz@gQzD|;WWIG5A(Iv?c71QZbkm6c(2X9M#&tUbA#ebYnSu0u9lz8y($`C zTz?%QXEIXzCHX6-umC`Tg1op)A<2yleexc+RPO$X2&(NNHOQ-V%Z|B zvpiFTpzko{gw|eT%V^vY@m)qZ0m@n%BD%(zoO6N{zHxq}@u>Ll%~SF*??X6fE8rM7 zMy1nE+!Ctaqcf}-YU?T@(b-B7b+JLl-u=b+QK6NC%e(qVaz&TW%EIz#jmJ9QkV~A5 zHo~Drw~wZTYG=(8C?HhG)82w$MPR{%ae<|U3-C(6vX`K;A}W-KlGya|*S2+CzM%1) zDUuir7`FbN)xcBUgOAFT&J6Id+S-@wSAxe>7ogJp8shkX94?p zA9DX@Ze}=p&zya3JtJ&bJY0T3CTGis$OJvJ?X%hHS}ImLRKLd<)U0`b`D*ne$1RxX zjioZ&tW_%&L<{yC&0KCIr5=1NWUY8fe~avQWDT`)sX&pvqVzz*;rqt33_+J z0&J96=}J^J3g6@&{sq!Q;_ zDIuo&lJaQk%P?p^n+)2oCYNMbgFyG&R&2>%*BgtW@RDA{vr(L zFxPlm5!}iT+EjFd9XN6Gg@<{*@X&04=LiqngvmRr`{9KLm##EZ zOxKq%&W=4R$pKA3x8zWAu;d`S*D*B(n-wonp~47uPkA%o=ovX-i20Be4KzSTARm+k zylo6^i3al|8XV0vQH-eN-Eu*-#DL2XnC?~Ixxtr4X4@=*N$#CJ)8+#>Lkqc`hX_nv z)Iu(TPxHPy;7D!$erZNvdS0bqCvB+L?$PQlLXDFe7UMOc#Kv?2EBjGuqkLJV2A?f~ z>iI6%&hs4pF|tyP%U1n1Z~C=90*(rFeHA3taIJDp)o$nhmc)UNZyj5;>9(`kKs-9T zhK>Jo<)lx$0pP{+N!?d!5S8cs1R2W8Tf0?B$y@r0yhUM3D|w5Ha3ybD{=Sgv*B{T= zs()7g`Xx6%A%6*>p)ZJMWfyk@5Vb1l$m?QD_?;a4GQSISKUKE! z`I^}0_zmg)&)h^Kcw1;HGY(5BllVvpiuV043EKYQC&;PaB2&K`O#KGgs$~Qx?|IQw zwtAdEuL!fd(`G~W6QxG&R`BYeLRH=qXA5x$S?uAA^^_`d{J#G@h3>G^@j`WW2z z_40?&2Z>gcIq%X-lMci&K{@zzl=36`X4VI(;@eK_#hHz(YqTN?E*#v;$kVmb>M^Vt z^wIKK@4GJp7)(zOLz&aD-;@MdsRoKj!uo`Q+=%B;2-`m+0BZUXiw&(4wZxFd7Jc6& zU`e;tU`Zw!{D;z}{MQ7w8p&Y2qTJvM21;=133~JQl9RzGv2DRqh{Rm6xh*)D5UgGq zP9C9!KD|JAh#y{*F1-PZuw?K~(ydcMZ~c4?({$;@#G}HkVjneKI+mBjgastR+lo#1 z9nz&s2l8RPiZUm0KAlJ&yR`7B+VD%QBYa0ha{sf}*5})w^I3_#$i2pW4Hd@v<}~7F z9qUR~Uo6AC8?R@={A2k%%~!%C^ZR)BRkM3FUb>-*#Op)tHe>a^wxZZT6meg3Yz=pl zHSzlXuDN_EL@DE}zqY)h_Y%kY4&GqCe$-XX*SyTvK71__7Jg>Fe%f^kU-Qv{nY?|M z4B)jS*2i9JRcF$CVxk6;;>~_bir1AX_X6|f-A1g9F~?g@-D5M6)#?c3$A{2c50Z*n z|Dk*}fyC}TiS|4ubj6BNaKXr=A!X4bwHcaeD96k(Fxh<^b45cs-cRAHi3vB2K{}7m z#oqBsY+Gz9QDp^hPa0gJiZFaCZ1$3-6Ayf||5R&tm%QGZl_;y)`>mNV;=Nc=#0auI z&SpZ_U|z2i7Z+Ru(|e9r(*>29u6L{2%pM&N%6!xBU+a~`YG87F{QnDjs2~1W=;11g z&ZP$p_-Yqx2DU+}GX!B;R!PV7B#5WTdt`$6o%wnsg1Fm!{nrF>vq^I}g1F3lfgq^o z5eb4?X9(i;M0>%%Nf2LTJSHYwb&d$)N(ka|in0Vj06X&T?t>&yN!}#KZ0r_^4A_6= zS4#Ykfg)lEdp{wBf?ULKJwb!ug@zbvm8P2*wq(BcAcofe`QM2lmtQY3#yQ5`CE|WS zX$KYjfJUcfweFth++}$ zmEv4GyOMAGi(SbZn1DLvrne^?3xYVaJ!*HGc`Fll(7FCp@!7yO_N<-^UOIO%K#v6C z6f!BZEFH3z=3S5etK=c$8$VNT<7?2EhIcjo>s&M>yJ>B66%x}KW%ubw8TlUQ{KCIT zpz4Rrg#y|72w0hc{66Bvks#ZQ1!V7;Q8pxp%26ZjFDxBU;zD#=PH~DqV>~0lPHp_(L8Clm8W9IQ!&bN_;_^s%W?}{&z z%9Ltm$IfFJ^0pH8{kdy0@0|TxGAc(1GaezrZh?x(Pj?srtm@Up>tJAFugsd(tYy`SbU;QccWrNf$zWx}-~-3%sB3IXGEb{OBx74WBTrj+?}MNtYxxHD zfR~tX1@Ho~t#0rt0y#i)nwFUG3b;*fv)>zo>tG(m=^!5x|I*I-Qz}B$4=lzc3K;-RX^PZ>&IXQBFC^8ch zUVI;sDK?b6I|zA`ZABa;)zMqz;5uE(`6U&e#k<9jX^&JTB{fJIgN&+#KB$=N?si|O zaXYOvbSnM3Dly?Fr3jNw!~N=p;J5TbsAlExNd!^4ErIZARQeUN#=r@MTRcjyVe^U~ zTDp*>U<}_d#%Zk{?D`?ovga1AdS&s@aH1*@J1*>2dF6uuQFS2JM~bjs07!RqJq?M@ z5xJ&{C-CrAY3YzEoo%BoR@7}ot(uHpwvVm&gsbWF#y8?a+JdhQwDk=!yA^rmd*=qG!gHgVfLuHUgx|2mh-F{W6$fnd;^*ZBt+g-A}cT9cZX z*ZET$VaJS>1yZjJf=|ymx_eEBxdcNhqPxRkU_n#BNxxQcdb6Uys7`>;8xx*pt zor{uymB0!)M9|pI)Yh(ljH$gk5qtWZNHTh#`$5Fr=)MBJtBPVLnEln}lEg>HEvApK zIxwwfr>vDIC-DlsYAEM407 zJag!uwgm4LtW@ztlC77UNbj+khleMxp1z(bHDLhBQ3$cMmiS=&((@2*PJ5Zc_CvFn zLKOgayx@-9?o}hTGkOoHp3aextUt+2J7|wL3!(XNY2}MvS|+uZbkho&FL7%<^V% zZ}@epGzI4ktt}}t$nw4qdzB~)P3HE_I+nWWbm@CzNo735$IcCF_f8Jo=WmnZqBdNB z){n!E5qH+(taP_PIUkzFM^hm*W3Z)PD|ZjDKBu$~@n75dmud}jATKu5zD_d8aT;6b z>BNLT_EqOM{(%>bUbI|8@=w(AQeqd58PfHYB8k}1Qk*BCwe)d|-|mX>SaP$4_jeE? z@W$T&8xa zZgz$+%YA%SFpiD)4Xu11AQuQ`fISE8pk7Mgz``hGtvq4ePB0(o-UcZ2t0Xsu1}0q( zY#M#Z2>4(MKd6M|xXy>90t>O8&JFaOige}mYBfMo|7mV6|C?6&v>Y9Sp zEr-^?q@R+L{MeL1-{t43t(?4T_D% z=*YC^1GQ(8X-}_5)t;`Qse~G2xa^|&<3Z-)6L zYt<0T1@TdT+A+PlJ;>YoVQNDsl<>iO6iE;Wa@B`yL!fV_?*L$Ahg^1=l^@RVeh))G zvi$Ij=}%)3R@rJa&c#3IFW*|!tTLP)e(gC{fTDhi&oXT4SO4~EO#vypk<0i#8!Cam z*`y4um6p)^#g8=wu(3co(H*#gI`@#sDgU4%LB|5$V$J0%PfX2QbQr1+^4 z7`D4Bf`JHECtZV7FU*!j+1c1lA~q+rQgWYz5k|FRneOQPE_Jk5lU+*bYV>Ym(xo3) z*hW`p8~yv$w$W>CqpLHGW^(a$X)N%p>PU^QOqZ?(hHdn>d}tNv(pw1THu}ZsD((x! zb~kzoZ_yOnq7;SxzXbh1PQsSJMa`X2xkI{JUhs`vr2g;U=e z0?_q!peH&K?^!neMADPC1uLny@>YgEC4WutPgjQ0@i)cQVZL$_$7t|9KB>NJh23QD zAFMN77d#H{!)D_G{eX$-bR$?!&nlmef10y|FQ-8Yx6yb@;>vg>;o~B=^)X3&EAw?$ z45n1ow)pQ9Uw%27??q5xto-tZ=Gd9en#*zLyQZ1z(U%>|UFdMKi&N3UMG}jCU*^5= zpXu~BFQWdNF;R@~a3}Ypij`uoi|ED*cXDBktE+si){AL$J!R6bhRnUeHz09OE_5$b zu4?srMmc7t9_7>AfU>-8^cJGZywjOk4wD1k-7^R0j)?O!{qs8Yr)|3^LwA3$u{DJL zdZgfiyx0I|O~c?tRIILd$;x_RrR$^z^8IMQ)b%d&qkC;OpJ7$vdYqHP#87=5f4FM~ z_ywjxYNmfvGk=ttSSH_aM*})FDFfz&#D^xTEH!EOL68mcwB)g>+8}M5=~1+C6aRz# zE~>6Rx5rbnm!RbkwCKb5?<@26l&H-IGMk!L!e4Rll~~&h`U5d+W6UOK*H_kwReJ+2 zGrq5Ww3ZhEsbI%*D6BqKqiw6fdlLoe__53dFP1`UQWoK_HWu`5mf>yOPCt$v<{VWKjWy#!;lI%+I6?zVzE zOP_<@gUk@!R&f1fuev5LX{_H8=}+5&KSQ$7zxYXQ!Fwg;5KfnV@r=Acb;G_`jc>o! zRh3A85m~puL1kto;2;RCh0U9n`XyNO7GION^Aw(lyt4an)$|Ti zdN24#^2WmCjYY{D`-PJ?mV`$>oxBm2Ci~68^UbDy;%|9u;K$#Eo$VSxIVo4{EVQ-` z(9x0GGW1UR{$ghl>?3-xv%lcG>7R@wZT~6H=y#;Dtd6EeZ8eHPjyo9jx$W!Uk{ijqZcWvD{m@4_5WkQreH-#m_!pcqqMbETU%-CYi(k5wn=^?D%7_97`TV#}OtceASMgdogS4bg1i#sD9f;Y1Q6=z2_hhmdP zuUtsOG+s~jM@uN_ZSg|Q$~{AT@SZu<-5P%g^b?+kXWMXnG@c)>z|1aO)HBHoAP#eV z=Oi@L2#IfOPhS1Pa(>D!0x(4PxnpQ3Ly_OVP{SPOpKQCAllN z{vcjMe;O4fkuEW$1_gtL4>%*gVMJTslg_m}CR`kS4@ptYh-an4 z5_!)`=OjGOs*d~7^BXojv z)YWtpCmO`WEz)q#eXLty*n`AxzZawzT^C9VwV0FLou0+nLmcL0Z>OhS1@byQEfUzl ze&dI{y20~lGWv<<_7k`mhC#TjpvmZL3pt#*4yJ$*oQZupZ|f(rmTx~^@;wzCchba; zHfJC&JDqKh6sYDKesLt{NgSxz;>QWjlFZZc$-LGn*%E&TbzT5UW3x(fFO->ILPT2Z zv3~Ukz1~@MoO(ONshhL1mPu2}K|OK?eX)6%Wd2mU>HHq~t*cQM&}usgPxS+*TJ_{V;0{JciY9r|lHVTBgCx;7?J;n` zrSB2@r6zLCR;`M2NXYwJVZr=O&R$%S@m-XQ3n)d>zrhW1kr~|f=2r=u!pBC(ac`Ej zSgyu4@0Jp*cN=Av-CZ;|$E=JT^K}j>)S8x&9#r8wA=Fi6L8dpO%U{bX>}?K2lt@yX)m$%yWkjAkZf#L{~PDB4E3|p+J=kR*z(k-BABr zHt*nVO+F@zTQ(H^9vb(Z-Y^C{ij$ioE%sRVN%rV%TpR(jcB)r+y!M*~>djhzh}|)= zj&1eG{hFb>Azn|e6p4nL2NoDak-C{q`q{0Cq*mR{199D{1MyT>>HIOH-dG{vvmbX1 zM~Q7*s8?JVE9l5V714P>4C)SLrgiycXO3(QnTw<=dZR7ULC*B~mB#tnenz>129AJI z;+arNJQGTZXF^FIXF&Nn)JfCQ6r2U3tOlG}^sEi%G~i694Zzu&0Vg#aVbNss1H}5~ z)o`^8O`z5sUd!DiUy-ZRxN~PQR1o);gh%5;#2UqdF{0z;{X<2MA+zvG2FbdV z>M2HNxFy7k6gBLAQ{LDRq$Uf`0eV;!S|#5M!Uv!*j`HY7ih8%u!DvF7`5tPE9!iEs zCJSFbg_Ah*41&Mq5w?lM4_WXZH;Jt12K@>WIDCt6C<4lFWx%=@U_>j+v+yF}pH)b< z#?SrRu(JPW5vlfFe}=-`1yab8U~>MTv1XnYX6;LqQZ z7WAjucRqU&1;r;4Qm;vhatab^AtAKFfF^n~dM%sqwpjT9btj>MFl5ey{v<(D==hYy(X_a{RW7kZ?==oqD z^-}(tYs~|Ah-LK82Eb(DJwR8Bh$`m!Ipx)$Yq5-B7uS0yf!|Q=@AI|YML^GRHQBAl z_oupPvdoFgrGZE9rZd&XYa2OD*310NAVrSAH!sQuN8%gpuN?jyU2Eq5oI1^Z z=0ELXez5)`Q!z}VBnt}^JUKQz2c*0s;d#xQ3D2Hf8=k%sGvVnF zva0Y^Ny~)iN54wJ^E*|v;$sw8Q*d?lCBOlt+D`#r@l-TpMlr8zL@LhCGl4=ODndGT zu8!5~m|w?c>DVzkHc!XgDrUAYz&hc>UrIsdGD(Peekv_f44U1fYg+O=#&RiH)R_P| ziQMrK9;L|r%gmTs#iDLudE$> zuJ!`Fb;R;t{!FIa4P@b5(doH_T#-C8ec)v9g+Rt8C6U_W$$)^_9 znB#>L5qG$v)ERKakEYMe{*@ z`T~)!W?mpdd1MeUoe8dDRtD(ghdS2==ysjt(Z|R+&CykPbe(en`uBjbO1hDLKJFSh z=PUTgn}FtC6yVijcRkLR8IEG^>6k@-Es~>*2nc*_NDi^V&=#%?#O!O=syyL=yFr8& zB-yS}ENPcg+ky+s!@{PT)}8cX;9r8PHH%X0H^eIZ-SrZsBPfZg}XV(1D68-$9}fR4$&;wj`Iw}^pos`hM z*PGj|yM!`Oluuo6qBM`atW_s2?yK>9&;YWfd^0)?yMJqA0G{oclc@=8poC8{A540MD8 zJi$NFTX7*0^IQ!t4>*Oeukl(RYR=NY$=}9TVwufw4B>+cJ{Z8X_It32-p}n)U1UPZ zOZsb6skgO_BO3d z)58jXG(gJyg>S{8U)Z_I!rb$FNl`}To`-d?fPBBz!6JgobkI-mmpWKN@aH1ohGL&kHUz6|+@ z)XLP38_^f+8_R^A71IYL(6wF%k=XRom~ozw0>$Y9#iC;}q4*TFJD@OplRq^oKaKFQ zJrf4tV15tCD2`}}GY~;p_YN0`er5N|O$s8M zbWQ%qsQf7M+`on>4G%)pu*@vn#bnwO2I|aPaMB5r`r8#XrSFy}`wVwe9ezU14>)f4 z+TT?811d>;%v2cTZg=?Zs02sW#IDPe@iZs(hbk@KqTi9vob;)LqrV^=z0HmE;zyF| zQfe}SG|OsSa0dS-Y74#&!LAGD7_AeE8|Qp?Z=@s?t$OTv*nD!v&i@ZWRse@A>?Xrj z36@r8vb#t|pnzzD6iTXby=0xuIM$ex1Ll?Py2d=^+!QyqlS^t`f2%X$QN1K{+n+4V zVO*^-WL7FYYYU7@+OlW@JAdN4%p4HKWSr zKPlkFRxj{xZ1n_V+2fbumy7!qzZ?lMYHxj8wjSwMS{G!FEL9fHu_;@vH=#acX@dy8 zBEI+yyCUj9m-UQ>bx}45qA)jz(`yk4xwwW5cAOIn|ww zd8Abk8JEM)cy5$jI}P08$}FIHBXre<(T;>m3WD$OO$Pr82B{Wt{w#GE4a%fx%&v)U zaM#7o$u?Fy*bt1$o}jO`|7jUcqjHNc_G8tes)s2{!;@~(h;);}H-E0c-vpiGrY6hz852&?nCw2};XW;H zH);uWzv&LS&fijFRx=pc@>PfIo|hJ^T80$YGAh+{&yHS_=S-+!OVAsDL!a@t-fL9u znIEk-->xw~)t$pH2863a-TNtc)Gh0Q-gGIIIv>BEhljRI^|r)YD1{zr6=wlMRzg}P z6ZwckjOb^$XTWFZN6EtLhsoyCt3It^)*u8IWtz80CURk@vm8-Xv_C77O^JcT&}hFa z;wA|6Q*G#BGD_a;=p>*oVA3VZBrms8aoT_fxgG|s=+Y%!z9o}MG4p@FZZwRH+o*%( z=i&>I_REyk(tdG9eOpte3!BRFnm{0 zS9u?-?^+pRb2M9D7#c4sb0)+BIAz?NJalzwO|ozs*Q^2a;%E4nm9TH#9i?iCgBKz=&=v1n6xNxxELlUR9 zv|bkbA}gE2f$-#5t`s&Rj*@Ot`?GD{eE5UMT0W@~t<%Os z(149`l!Qa*jV`gP=*$k!!O%Y>epWVGeI;t}Gc->XqO$(63xJ{v>OB24qP3l8^mv|Phy)MF1`SNow*Z-f-tHcxReyLZ+hKhiQy>3|uuQcV zQ{A1ymnr(g-hWd}G&!eHcmwwGJ@Av%T*J@M0i(w$RSO9?q_z`b{(7&%h)qjdDo>4! zEbl@GJMh%0VpGm~L=u@WqSdH+uv6zK^V=R#7Vte)F0Y|*{x(hZ$8kr=BsoOq;UtQT z{5sI`xj&rE@6gCkRcRY0Cza}9!dc!YfdQyD%4 zcz9xAOzm&S;RdK8nvF9mzAxX@QaM9yppju}d|j`)o+l~XCoL;(dp>e98tuN8+nlE& z(RZROYVJ(riv2wt#Cy8T-feNVx8tJSOe}neY#1^_ma()8|LJkqs7^_@3Kn?YNBo6iNo9aE#qY0x|t0Uk~(}>LXsnF9$1-8Qp=ks)F>33SQW?gLif9 z@%^9`-DGj3A1W;?R4x4mY&f2G6hq z9JknChYC^{RYh(Dq?f$G90rAW=>3Q*WbP52zK|k`#bQC25sK=tzRRI3)F_%PD` z3AE9*h~I;qqi!W49l&z8EdewiUdQd_pFVilD`s$i1WeCqbO2<-_+;Vn(qs)zUXN!8 z>9R%=mC3?;(I63jbG{x=FIYy7+;LHtHa%|;h1~PC|C4C4@NeE!5x%z5WfH?86O02$ zdjvz&qsEFpSrcXxk-l{3ZNZGCdr(G{JQea&7TR_=7@O);<_W}06n??3hYA3((c;t! zc3SYE-Gja1s|UW750z#k%5gWNm#68$vFcO&3bI}w?o6Ux{t>*pWZ^Lavq-Q3Q~b5n zOP@AKpUwga;S*2gdYdj_+uFsZ7{--EWD5HRNvgkgh9|UCpnawBX_u2oAy;AQ>VrQ?qIKmB<2vyouu}9X3@{)3iw9)!3$_J8hhEz5H7@AWGwn697QFlkk z6szix2c|awwDf4!Hx!dT*{c0hmWCgd_#5>1_5X|CXKuab2j(Gbxn(yKQPnP{LCEY_ z#{8&l^mO(~Gq#NzA0C04CCWtw+!6pWgOk{;&2dReM}5&>@#(nn+|0|f)|}$SeZ8-( zlSmCJQ;`#uDU0!GtvWIf7Dti685to>d&Y&#ZW@BwFPyZL03O}lzik_#;*%?s%`Uk znOWx3kCU$onG71tJyD57`Af{Mg5*gjwMx=;Rh*mBNo|rerRpacN$rw!VO1<6X^|uq zSKXbFbcZAjuY#oRisa}T7n5ZEMCw-3J#G*Tb?UY=+sir?h)3xqnkv0|ME0X(9Ozyl zSA@;cdPtq_Jn{XYEgTstf0BOA4_8`@{OYm4*)!(;Qu;n6xC~YHgbP9kw?e>-lN_oL zb#_!#OS15{ZkaL6Snks#7&Ld*lGtb;oU{e_T*LSanBuPNjHtlkm0C*+on)4HGmq#MeYwtk!#3OYf%3&!WBVq<+-jKI$zWZjzE_>d8|xCH zsYsgCQ2|!!ywEDWwWvD{+lpHlUJQ?|khw&K#WB}uYf=uQmIlN}^&-K>sU&VHtX$JP zKea{a8x=0kbeNp7O!ZQ*?Ub-m74GaIB0VKR%B#-vKY!~*KPD}Fxx8d~|4o8O%|xp4W#`t}99E=SLl z&Ra<)`8NSYqB+Onmv@Yi4fZ7j1!=$hg<}B#K=So-_@l)wd=xVEIE79p(l5@CB$aIG zz-xH?J%BG}u_50}SiAziPW%mOBCc*H5U;>^2Uc;ZJ!j}MGjNsMj&!XbMhwDBFa`!}HxFr2SCC$)D zB;>~@%W^Ip`;Ws(7Dsg7=nrsE->q(SEO=nevRUeiy(iWzyHUAf_G~A+Tmg4*S84bC z(bq@QXO?`i&9$bx-^2Ym030`BEuS&}st%*kO#Bu8Y(LQT;yJsYc-3$XTa{BiuO_X& z>K(u8NEP0d4qr`~^*C3TJTfr#TwGEA34fpIwEDwyFC=zQT~kpLYZ0%5Y;5NrW!$gs zrHDcOXMZLh^-I@m>*t(@U;9uiS0)QXg$;7w`5})gvD04fluRM_s3|p2#nm5>sB-|- z`-7`VBNgz;tkl%*U8oj__<0AJDDH9EfBR~tYsNL5a-pfLFIEi;DImx|FRp4tatTl@{|#0({$BBbf4p`7GYVngL^=auZ1uGrhR)1f!|GPk%q2`Y zztq?v?P~ofUfjnI6rVzya-->B#Dg0|y8$-vm~HB!tu*2hu?RomBkpEjR z?k}j?W{jB&h5aR7+-HkmX}0afoe`<`JYTBT+D!4o|L?uHPte$5)H&*@y|@>p!^+!x ze!$Mtdx@IlJ6Snk59O1b#Zk{nS6By3RFI#izfJii7c7+WO+GMi1?rN@Y2yC9JT;hG zU50l4&bY&jmdQoKsLHcTAsMz8+R6*zC9ay=|4qTq>czrrS0=YQ*L>4E{@@P()} z&_tT9e8baRL9WX0I~S*1J?3MO4)4djp`KThRzGH2I$ZD)c@FT$MJx3@3kqM>`30$e zK+W}!c9-3x@EGX*>I8qF`uaBojZPyVIDZ}Jbk=8D;fs5RKfS%&O?rBELzDNx?m*X;}+-`8Ex z$t5gpza(eKoKz6qhyPAj=hPx|QV}nrd*6$0%=*2^h*1lVe8sAgQ$IEgu*^`P{)&z@ z5X0Hs7VAMoroxgI_D?zCgOiH9vXycwtMIk`fjUeyEUqjl#UcY^D{3+)6{Eh{{tm*% z1sC9{j6(iUE1*m*Fnh&ztE|HrSJob!&jQg+(paDqBF}Cw2PRbXlAnk1N`?Gw3u@P) z$6*}9lZ7=Kij9OX`?|ZvHF9GDK5yZtmebKU(d!S7DBo^w!Q?B;x_Xkd2|ML8q}s)* z&cw0L3XT(*S{d2Q_0|Z$GJ7jO4iB|^G~rS3Wv~YafJ&p=7r629t`;e2upCRB!0;o3 z2PyLd-&1k)ZTlt_1&}jDZ!2)nAoPaj6>yjfbd-dmE+?Y#^@+TI@3|K_C|a*TYYV^y z(IHNAh=lUm`xZW($nF^;D@c*g8F0zGSYvCX91RYmFHnT6LIZ;YE9|R@&chGC*KiJx zw*tI0;#QuVhkQ@fIgS9fL;;I`SXYNvVD&xKoyhe)w@Dx!qalsBJBPpm9s+-Oy)$}o zGIF-%T1Oi&G%3z(cY!L3ad2<r6er2`yWEv=(tr-?8#ypt3e1I-nCG+o@#RK-a5~ z@((!OmZw;~b8Q{}eejii*nga2)sFBdE{Xt@{@HXJlR<`Lizw{V~FkZC-f zzuElN20FCYX?;JURsAa6PI(Z0IzX^jv~0ftM=#T&`ep8w;2 zIvtS{tj52}z-gD8!olDJofEZ?8}~a=3o#d|4?N$H4+^cH^V=;1ud`CQhs|)zN7l0`VFXx1CBbuQTB;7+2=s!K+8ck%qSVwer99BStJxp_?5> zJ5RUP)`ehQ#-GaPpp4Y4C=lv=pm;A`TN^99_OFLw1LL-usIPr1P$22EuBxMVVxzwI zhEfm;O7tsItIhX=$T~t23CK@vyg*=R z`OF`_ir>@10e(xv=kPlwT*Pmgul-%bHkb=xlML36@6|D^lqI%Z$DBI0PGY`Q?*g5? zd{V#6(y`x3tmU(_Bc&#YwZ{u54p16s$1GpxVx84}aHque2R|SUI&4-fuZ62g*2jXO zt@1K{J?YivApt)WzdTiHNzepI^>`5)s&Z93eVym2f~7-fcKkGAlVW+RrMzHlerT&s z&eMg|gs%p`S>bAaZw?>N?_6JdFFU)mDOUrvk7&z9H%G8_-Qbk;Je|HtvPECQF^;tS zX&v+H*q?|Yf0W$5313xdk>gtyIL}w5WT|wWGfK`0<5W5BN{AbzZ+I#x{HGyB{flZu`@A@9(%FI{Hqm5q-plE&qv(3@3D)lcLo=q zD}BMD@U^|{r56;^37=&bdWtBr+)O?e=-;;-PJ+XNtRcNR;y;!TbcM%cRtU&!v8hVK zR4RLlUzL^1y#s|m`a)5YDJr9`*`!Dp}S?*!6-bYPsS?gFkvW7a+ zYv|yHGO|Z<28P}^xS@cg@WnyjawNV;C1dv#cd^EV`!%f&@tjO&t7xj~+w&ojYB{sa z)|ATwDrbBvCl}vSYWnkTn!M|1(}l>#@=Yja=Y5F0N-|1K_F94IW!4kp>SEw}Gk4Aj zzSWNBq?G%ac3kSSt)CS#E&gq(W;HEhwX?=m+EuE!QJs5XmP$1PqDSTJChjEXwD?!Z zMMIBlJ3?H8F*nQ}ITtKMMM*lq?h)1Q@OZ#dpoDzEQKi&^ew)-|ZVnfeZfL^TNrX+^ zS&*c?q0-HvZHH8a&&lb$eYbq{?j9vx;Dh6AoC!7BVt20{8Q zWG?Ktwp=0|?`yjp5t7lj!5=PY>ikM-1mYVQ?2PDgqNv9Uij?j%TGsnny#YZUcK@q2 zXP6(}ns2P8L{<_AByl}CA|t>IH%6{BR?DY4{gUd+!wYh%&BH-R%TQvd(VF}%FBhC^ z#8zKNHvG_7mkL=TBiUBGjCW$IveP`6$Te0=R#lEtXhiJ#mmRQGe9v(&5Kdeh`-B9c zkpacKlD)+`m76PM-a$IlLKNG`9#;sp;tFAj+JLkmL(0XMhGBl*`c{ind!jVqSSo3v z5^L9sQV_U71RYyd!%nc@UnK8W4tn2GIVJ)sSoJPLiD*`E-M^SjuhVcA|8(hDV+A;t zM)HMnuRL8RB)+AvpRu|i^>zhJB2fwrCx)&#(+*a*_2KV`$gStNFGr)czN{lyd^OVe z4-%)VcdSdtt;edm0B)$RCP(54x1IW?Z;oEIsR@(#rmUg7BU5YD+&P`!0KD<^4D+pC z*q=afW6wC>a-yfGOc|v%l9-py!=zLhjzOGyYkuh99@TMrUQx5Jd8h)QIm=8kB)59? zd`jT5`^|$)r)uA2%qIFPNEe4GLuTe`ND4!12u{Zzh`GhUJ4E}Yg&q;vo+7f)o*GD~ zgYP5P#2bIKf7}9>;o8uFqDsP<;Os$$j_``>HOkp!O|p|^CHKHlQw9bN9hS{j7Gog2&Ak|>$rv$@ z294?!z52Z>B$1~d9`%s3&NBK8R2n{C^kKgC9UB_)!6JmUq5_~XAQNutkpqt=&o#-B zI8`r#FXp|7ygCmg4dhICsybN2FF{kl+V{ku69xNTf6jLw&^>@ zxE(9_JLO!r<0k&*^7jmXzbSJ&9vka+JkN8(d2UDWe7ECrp3jo@8fhblf1hxe=lT5Y z;#~>P%lO-K0o(sD=P(EV4gAZJplg_0r+9{C5Ak?B!-h!IJ2Yq5u-svJ!-nO{0UuXZ z-1;WYYtWYZ82L9&DQYk=@m37SnFUJmJl*oNFIiLay#W3wH?YHE(*enAdT#uiQyVwn z2xDE~+O?pN3Ws&e^IFLgBvr=gy^F5nEPgF{m4-o$`4bs=VRDva*leu*E2s03);%1S zMI_0WyjLHDDhq$b{+5yVUY)lH3P?RYFvqVi;nXa(ip@q#00g0IHryB?`9;^XMcQI|9(dm7jlh9` zEg~B0<{?3;;9Jr5wXWU7^Z-tDCw307IjUdQY>q&h&4Fr5Moa%h!|9a;9B&1_X;K1t zMMGnKJT>09fJ?CV>b6?yh3c|`k7Xebt%F`b@dAwD8K-@2}a2g)Z$j7Q$4 ze={DNdyY09Ptu1%r+wLYjH1gKk9T22r29BM9{pPfjmP`j)Oa+5$k3U~=wDHjXeru81=ZiT%N+~E$1v{M9L_9?aXU4wE<_PpW^Unja|BAJm zBP07eXFm=Rsas9)ixx)D4_7a5QFx@x=ooGtcr3GAec7L=PxzT14l7T}J(Un^xI+5_ zO#2d+1+DZi#1gW`ycO%6ZIN@W`v(=6F3R3Vp2jJ@a?nVDWz0X?_@d}Tc5RUJz-3*c z%yb_Tp1J2*)4r@AfyZi=f^5hrNR?2A#{}nsV&79fE;1SFdk!C`J`1PWaqT8jAo%9d>r3SFwW9!qaYj%x^K2k3OUDF*0 z(IReowc58_?mY818Lj&qElozZ_ zPHi$)Bo`)5WVQ@LlQM_3C!aCF zg3V{x^qJZ1+V0xKHH7jRhQunP4e9r}ouRvL?)8$(YTJN0XwuZp9htw%L%JjApf09)K zo|;o2m`vT+H}^8qGzL5J!oHP|5srA@Z&MyadOVANHku@ygQ_7Bd{-b6sUksFDXG`1 zcvs85?U>~P|=Xvsi^h_@@It+LdYA@rQ%H%Y0gxd zs9cfeCe58n6J;&ZF!kv2rqUp&BuzDrY2ae~hoGZ&aBI1NIIQ42F}0&N^_!vHdtLS$ z@8CB%-Fvg_H}1i2a$Q~ai!5GHfhw-s%Cl3Qq*^c2ZI7VTxKm8ls4iNQSMZ2?AmV+* zD-jwS4dv0MwFLuFn!VOP5Otca(;W>=%}YX64nNOxcm{YL!;|#LS9LjFSK=HU@_%lp zWF_#MBz5>dvr{l!uv0!&&(=3t4vtp;XvgQw3bJ;;=^0Ar5K>yI(U9NC8Kl91D_~Vp zgMXg{rs3E{;+>%aogQjHxmT)cXiyo-%we6OX^D_(y=nNPd%1EVtJCnSuf;En{>@im)TGWsTY3t*14p0<$lhQz!o zmSi1B%&lX%my%ePjvdr7r;c$DGO&c&>%#e&Stz;E z{n!!_U#;VQ;!=I`K~6NPyN)%?Nz*#BMetQ2JsALvA>FMZRj0|jbaD#2VNax7=Rv%& zW0X1gC)7`g^u%ll`7IM+8D)j^@*A9=F8V_LYrl}c1ZB(caSQy>L#~A9)VI9Iq+Wi3_l7in7fbdinwt(DhG?{Dz@ zRT9d0)Ka1c=|4DO|Rty!J6*AJOa)7yH;1G)(3wH_KJPd6IF zo|G-R_Hm`#g9@Sb`gR(<|Ki-W7!65l;^$Gxk@gHJ|Mq@7aT&l@&gH6O<~^P5z}hi3 z=KEX37subDw|Sirf2eVTvMb`Kjf#0oO|14s1~1oom4gk)`)rsj1?;w=%Gc(fXcYgbK=d!0-e+VJwgpd2AD7T%}d_RA9+_23I!dx$P~Y|P6qv5}gG zMgRChaiM=gbfMQNK8!JM{Kih^0?N>*%z%LGJQEV2K&)$CR`v_FXR18artDGY0N|0d{f!*&rSH<-BAHJjtnwTSAmVM?%-e`BV+UoVT42MUvahp2Z``H%#?h*u zh|?)d@*iS{id{O&n(=GgO9(5)YW^h)1>fnGJJt4;bv>twVd-0J(T{k zFX5}{Jn7Q}sC~2b{xx`+fN8pmx|4;aucW3VJt97I=?sMwGCG4sXUxz1W$MEZ{-&0q z?Q%`^ht~gY+=cG=-{rjL+8v5c*dt!WUWCm8aJXL{ZW#|q^YZrSQIHit-#$QTslJsb zO46<4>aL+Vjh9booscsPnmv-!)H*+>C^riOlQo00zfjv~K>KW}HMiHgx}lu{BO$Wt zv#Z;8&FiL_$v=-CF9>sF#ZsyFM(lzUK(WOYwoHp?}Onk+*>HwzL@cOw11@U&IBk9 z@;#RS*C!5RztrZOS?6|`_q5jXz{V{3I&=GSsnN`z!b34dS>m%3HM|Ju7vl!KkV_lB zqFN?dxnpDqO1&pgsQ3@cF=BNt>r*E2 z3oxp^C~Z5~&X-0Hd-42tI5#{zde|M#t7RFXM^3LL%4*H$$QzeFJb{!j7-F9i|9L%MwLZ$AMlVxym>rSy)El3hFY^TuU2v zF(YTGk(mJk2wWw|8fLA}EC))Sak?cmbJam}39P{pVIQ zP+=Z1Zq)Cel=W_*qH`Z}fb$m$7w^k#h~;OiMt5vejb^3#+7tqb6~5-T+dfmj^R>Z1 zlHRbUa_pyb9#t7$qS;d@9zXq(kJsnu*OBz=a`k$Y{W@R0*0MytJ(-u*{Xf$KH84if zD8F^fgACL&3h1l|&cq5Gy3l0d7BI0?wi=cUqeVe)Jdv$#8!B8kS^$R%`JCfWIhaw{c=>k2u}`q6j(7{H9=U&%5A;Y`38xj>!9E!UT{()^X0j%DuVY~QN) z3KKzok4Yef&p-4RK(2f-Jl48bdW{lGaLgw>+MW1RF!T4>?~k$O+V43eAz_uNihP&1 z*7dwdIr5bPFoEAvXRfaij~V1tTO%CF4(Ws_7guv_^${1qs>#^S{+-DWD-(X$STJqI zkfk_QHk)ZW%}TMED%OgKJxADJiuc9c*4yPq^x=tB{|)}w^S{Wf=Scq8+fZ#OF4WQZ zV*)>RWwqw3!Wvpo27oi zzw}?lTI|x8JKJi^%@NJevD>FSE+Vn$n3zPMB!0BtN}QwUVa*@Re2;WDj>DE3$+b^_ zas@kb0Mpklh(~IOQ zeUYik^fTu9+8cO=a)6QG@y`%(3-}^gIO_#<63Pz7u5>1jPZo9&r^s!OXX`6IFmVm~ zg4=?fh0l=`H0x$pw{Kc70pk+r3Y-7NIlkifaIVZ%Ccyi&1|_-DjSPlSx#{+tV5|n6 zgu2;@?4Y@crxE=m%hz@b+#BHawap?x685q`A`~?LBr7Xu?nk7F2O|>?BD37%ez}xH zWx~Az^(jZ4xq*wneAQbsTJrE_X-RD(2suPSzPl#!i|DuW2OTy+lLs(m?g#+&Ue^niRkQYzst?7MRbuzAA5sGetT zOBbe?8Q9ZOP~6hr+_jfyMyGtFJB1w5DR3FTv@330Yj=elsYI6kGrs8=Vt2*wr`lb? zZEvZr;0O!N)|}bApqMQy;v!l2?j|+!0=hlGMB6LcySN`0J7u~{;$@NCbdMzRQ%$tn z6=A?}L(sagS9N{tvfhZt+RK=`RV(-kfnm01od3%BR zq|7(eQ{fd2F=x9O1j|Imf?`|Hv=p^0H>Xu@V9xp4L^rH9RyW(+3Ntvhimc7#XCmN> zG`v-o2u-dv(f-UF&V%%Et$F)AnW7t64qo3~Z&5M0X>X0W$#>_gM1-PGjR2lGZe=na znwyg`QKN75GBvH;-7*$$g<`3(5YvS8Sd5zTC1U|--f*O@v764Om4)L(K!2UrhS;n_ zOOhthPJ4ucY6f;zd&B4IL89ee21mxh{2N0grvSh8;uM*kq7BD}?+b1=cMTqrI_3t* z!m8$p{&e{KI$WnK)#7qe5~u63Z75P>Oy}9d{2cQHjVz9|bw#1_7p-$EXr2i=G(m?Z z=rHyze~Li2>1lJF+{n}-J=!_T8|s`_6d21&-BjDz&|BL%%L;VNqtoNuj~Fx$_}XJC zgq`jq(k+^D)fKDXjg!?9_O+iyDV%tJ$iwt} z{`+i7$_jTu*F7Vg=QqsAtjvPk<8GhFOspTY)tE2IPBTA^xh5zm!OY=@7d#YNVQ(V~ zYb*E8{plbq3K^?6l$>-f)Y8~jPIyihF#C$|?(i+wb`ASbkIP1;GcI9J&F3twPCJaQU!wHHmBQc#V-M10jb~D_89yxal33*Q>@C1%9qKp zhFO&?^vRalo`l|pvfg4%lagiadS&f4pDzoHX<{->Or}ZfTLpvHu8=?>S-;V@Va9*i z;x){8-I0s;&EHAcUtGK|{Y5Wc)~yKsSiGTu#XAl{ip875!C&AHuy{}YvtGQiEetH) z0-fu`aDYjwCt!T}xjOZa>pE|GAF4wp&zBpt4haDfg7B<$AVkc9guskRF}V!bV4 z7_rx`(Trp{pG_PX>!Ivmadt2~Pp?s5O~rFp{vMt3xK2TqkpHqy`PC7nu^z?8h)HV) z%B(5kgGcoT-_=F~MpIK$oTt_w;efc5V`w>fdaxO5t*1D`Z_Oy6l1vfq9^n-=$Hs@*)n@!a%RAnhpgr z(7;ROwa41BG_!%~g10B_2HL=<;I=`2X8_uNFKSbxsE*dcS!`e?;(t|n#TMm2IWk!n z!Ali<4)M0LR;x_bR(eWkidcjMzC<~2DQ!U+?He#w(h6qe)yje2`2!6dP!60ad41L! zcW2}sP)0i^r5vcr(Her>lnEWCw#T%|qk4@yv?{@EbIYYJD(sNq^(}W_ecA@4x#w$> zQ%u^c^#Eh6LGJaKUp!B{t`4MJSNoAKuslb9iR)@Z>B1xmkMLEkU8{(mLjazcAVyAM zZN)7-O=F~@edxO~yjQDM5JsSs7Uw^T8iI%dIeSG;#YJ`fV2#D{F3~WQT?fnp*uLd_ zX*W-DLT5*REt>`k9+~;lD^{&n2<=@fhmp&AcE6HIPLdN*crt9o2Oi9JC{`z=Zij@y z&nJh*;Sf7TAXsNz#7PL_OnebRTPI#)WA<7jNfamU6zb4LkA0mK!){Svcod?RC&^><+ulvo)Y;u5TH}$ z`_Elk{-ErHcJeZMc<8qaz{}(W+}nc0hhXxt`S_(|{ZF z;1FPuEj0`-d>}oe%5;xQU;y89*4ycZf-3K-E9Z*QnK)*a8DPC|B~`bslXo_HRSc`8 z(#PPN>BU7s@)gwdbo)I&IX>al#WyWYXVxa7sd&2fBk+}y6q|9miSnBY!!GTjIU#cZ zQ58=4y~0FGWfrv;uKS(BL_fWk!K|!$>|uq(>_g%s^3H3WwM3?D{{SXdh$?jxrC7RS zSYI)!+sZ;(n|Xbtjf&Ii0PK}Vy1UDekE(;dmiL>ln(w#nAMNtGtQmh6#>&p}2!u~ES`%Fh$)0CK4+kQ{d0&*s z&38B)E|vLsQDs4i<-^>UDmUtD@rgkG%B9~9)9}(RgP=TD*&C+@a2P&%mOSbXSzO{ky z87vy~(;bNuH+X(Qszdgo=>F9t=aXEX490FONaX00!xxHDa0`R>DPtjHwgrIHkZqxl z)rf7$A|L~{#YsSo*Lx$(wOS4COsxfXl2(HAX&ty@TDPRe>OD19?|Jo5$w-}O4^*y< z6aDaBQ6i80_CURNyq4ZUDF`POT%4(+qUCoSc0_)66osK=!lQ)lN}N~n1##XBzEvNL zh@Z*EVz1CNzC-`#kO2pWrCz~V^qxvV@ffV0VEulP$bg3eU&t2tVnilO1xo~VkMRU9 zzD6pQEIji`#Yg~AR75!5E+YzBKNd;addfKBYkT$epewJOYkcCt)y8W#<1bURk4*Pg zWZf+@H+q$-VEP7Jfww?#l3eFyyJ;+6@e7?B07bPwyn$KG(PZj*Lfr8n$ zGsWW1M0GimcjnN!BfP=^>2Y$+JjC z07k<(R(-14(dop)t*4x_^wtp+(IT2~oFpILfV zl$!fJ0)c1OeZrhl?k)C`QjP%?{93Ele4QQ-ng`8;T2F#=fk?j2wH`rRj^4k8#{h_0 zZl~b3?qz_ON^!jLLdZQ@9O5a?7P!Nsmm28)S|NquIZZ$0Dv`jJc4%KwO;TAsX zG|0~R`RG*KTwEW>N(Qzj11-s{a5lflL(TOEw?5*GjIsOxz{jY1__KGD<4SW zbySZzSw3D|@=>GSth~7Fhk?K-oCHN7@`Hy!V~`|OKs3d4e?oSTx5d}?Fv-?^FgoOF z>*=gio2e4>j3DQ@t49KMe~nq2@9^Ej2H(eSA*G2N2NUR_@FVbhP9#~lUtYZf$E6ll zIx8rIVxF(ozjFaxai~ON1(on-hqYyb`XIbT3@SzC8#2}=CuL0w zC5}osyj|3(%@?6AOBgN4wIGKXzDO1h`-`-X285Rg4GhmJKlj_Cp+7O<4w-q~l31@T zY0NxtHNd3Ay2-+<|I&SvEeJbEH@JF@%Jse_7sJLw77@N)l?V;qkWaBs%mPuQN=%iH zVmd}Tnq8Vv@*{Sy{|aEy%&2wxmK1djnm64^wx10{NhOnzNRgxt#%b+lU_T(n+hH9d9fqaMc7JH0-KVIJRzq!^Z zT}SH{oudGe;i+MVOcve@S0-ro$17FrdOJ2o#irS@(JD64jtwWK2Y3`A=IH%5;)5PV zlES4D5GO@<5?~_Atj(8MyPN^1Woj;oTf+8ta1rlo8==0RQ9QeR6SR!LH|HE}>hGM8 z6B)L_l`o?V^jgy1?G&5bwN6_K)65mm90r2oGzH@XaXKecK*>EAsWmb-sFJZ1l7+_t zJ3GTzacdluNjN)Hx{Cpaxb`gx03F*`tZ-`+KJ;}reTzvDKa&^9!YTi$d+2y#3Jqtn`^iV>DB>o{CoR=QE03MpFF@gJqnyI0D+;dl)! z-@dIsh+1*_Sco32YMiX>=JMT58Wwq|F%C6umbDz4o;RDNc|0vtQy{%QgQaY+c^o5@ zJok9oNc6LNPO?H&q{tAT zs!=F2*-b?%D&)=Ycvgx1YzEOY zmr<+`KN(7Fir?UmdZyluj7-=Ljsk}24mnODqTvqna6bOmygieO z*xM!*h#xzfvw(*=A$i<0a$bEtnDn;im7G2K00ri?TD1Xih$?P zIqH0Qxh4HFUtZ>}I6=BZbpQaeJT9ebB=VW~pmU^P9xsT9Q$j-BzUA36jg9CHI$%8c zjaA@P5X7kW8%8^p8jDem*(N>bP0o%YYE&PWdltuL|eWxs8ydZ3;42P1#z`LYJ`rvL=7m&D_x>C;cDzeLUx%Wqi* zpptT@MOq&o^HP znAc&3gf{cs($;SjB^NT3rO#(TdoX?ksPR!-$P?`@1F*AI(Li#$ul1YiW1xwD`Vtvp z0FXR=sAQ1&4JRy8YW*hsCDZa)hSOU2g8|hn(>O`ZWHmq0XI>(%?=h=%hQ{T;V4?_l z&j1Tw85{cbVUD_HG0w_rlH={6$S9Fc6bTD38?%sL=P7EeXDKTaSf-NR<77f4Yg+sH zUHF5s)~9m>%6|^5pOp6UOsM_Q0BNwP9SeBrQb5d5Bdm0NnM{cD$TH&a(y5@9Evq5W z!DbLyU_HK=z7a;Wk|ETZ%Y?gLTY15KIGE>@+o3pC`N#ZJai#XRDamhb<>`lh!s`*5 zJ=LE7;XR6>6=oR^aIB6K*+Gi6j&r6ZO0bz2(-Z`{N2o>Q2};i)Fi2D?n-nKL*yFGY zjOc=qj>wG|b{#c7flPzHmP3QswmOi`HewVm0t;v*4+-Db(6RFwpjn>4+aD zDj%S#*cTaLJ;e)pQ7c2nf5Xe_jye%lhiCK*fuL|CrW@v^xU|PsN4p@BLx8?{LC6XL zxf-&L`xodyE?>awU$FBbrR0$;v>sNQ^(nz|IwgYQYcibGIRseJ0t9x~=49b@{~;%m zA4Y19(wf#nT9c<*bE?#rww+dYJy>IzubBlZ{lvt{)~mM+w4b1Af4Wu?6fdJN;a)H0 zDIMF8F@;+3@#M1IKSi!CP0(s47E_#>#GimL7*U{B0N z|IvtDlDwaaq>e7?C|!e(K#vktly0nR+&Iw;F7fYpJ(gF1;fA~N`8gha16VAOoY+~r z#LxcKxOLtb*@ie(pKemOxkrw|!OE`YYMZTVGMY8qdmJv}5nYQ-Tkn zTrI$Et*LzZ_G9U*d;DlJs;-U?6PY6-kgmu{%+y`7br^0I07 zJ)<!}OB*JF#*O$2^0ds6DKU3D4`%%4Q0dmC_&S;IHM2VD@PxZ_{u1de zyqLtDx4scHJ!kxq{aej8+>2M6Z;8KjfpaHt8r_H0#P~2+x|fOZgiMTmzUZS;vH5~b zj2-ETaf*SkjEPZ$ioBW^TfX&yBO#EA+g;NAI9{p>hwJ7r?4! z#1qU2fl|+i+R_7RQpj|8Ba5kFIfsM7J;yyD7fEbkz!-rPpgV0q536z8y5o(~-hMZHYz$Y8tZ&APE07s4hA2H+rCaqJ_!r}qnwLOl9*zU1 zqw<35e!-OkOLj6QrbohR4l1PKTXl1>fAsx=I~Y{mqSVkzpAT+IY67O_-+!|`GW}j; zA_ywd(=QZr|5Q!C(v50PhbmuX{y95?52*R~0P`=-{7W$Z%=`y`E`6Qe1m7}jMJw~bafXGtgvwhI`+%vGOSdDgj z{`$Ywo>UX`f|3&_`?$i+AZyupLc!9i75B@{Fi-I-;(!L(m+q4l#nr}QY8GIU9DJa- zg`^WVDfvlDFn3ch7mO0^N4S7M7C#YF+$f@AAF*!s4O}klN8`UU2WEtdXV9jaUi%-o zfBjB4)c^nf^)L6YEAuk;ujYIIzqx-cfKvbe_b+?@GIC`9`aZ{%|2g~DlboJX`hgUA2;{i}dhn4V$${$JX^kPjDW5oYSvV|BVWJ;%%k z1}(;1#&#(-2ck{Np$e)S9!DS72O>l!!o`ewOBMMI%%fmzE|l3T=6gYt6WCj7quIln ziJW1@8V4~&6lH(at zoBU|xFxQTYJs&PDyPQV!P_FOJ524U&8oSLUt$Tlrfj#^la)n$Qllx*5w@mQP%`;ZY z0R~-5XX5FQiCIpEw2AZG_=505EuWNzPjC5TOn7+9C)nh^Ehi8~?k4Wmx?{S1Es2)Q zs3ZP8cqx?sEG0Rll3=VZtG0A~{A;8iQAs3M-;5O>&pY39Yoc8*NBhV7?!1G#U{yU9 z2Hg9^J+=QQ*nlrtRKO!79^O&tj%Vw7CU|{!pzD5Q(Z065F#8nbRcXlM+jW|PZGH*& zoqjTI;VGEJ9Y1GS%Ym|>>t&;3M6K(!M3(C{V{t*PYdrf_j#QdPWLr14jg$wCnf`dprdMcR56kqmoFWqF<@B^fg^=_(PKC7Yl^Ao<0)7 z(hT_io&iIxh9R7W;c*SaLn#;-31elhfUyDY1C7>BcUwLg>br9!A6LgNbJdmh#2?`; zqgWH0_c?>;GggY6KxRt(F8PkRalFip+f@(m=AEI;$m6qlYpfh16?{u&EHlI$3@u4H zZ_>Ux*E+rlf8285yt-0?-nm!n!s8d{Dyi-d8P$y@6+3Ic6cWCPiUBDZet^m&H|mP; zuAGebBXDOO+}4Z>)99fbY{*H#-sGJ+Of-FM2RKL5i$%UWL^G5rReUec37+{w-Odgj zso|JltSTZIsbu0dwJM&YyAmrQ`4dkdE&l||c$9xQUKE$juaWl1=#-*x!U%|W{;Fy4 z%;oLE{B%oi-;E#V%k6X-(gOJ?ci??5-4LJ73|2Op;{jAbB6q#w0T-B}Ymz`@kPv=P zgz61Sst25gx!rocm@yM)zSMfF%Q(0*=)&3EKO^3ttF5>|1{7!3-e754aS;)twO>H= z-7TC8B9AAS!Al+@!o>a0yFhW#0}Uu>_}XqI?N)sM79P4AqUYdFdErA{vjGu!h2vRj z=XR{%dh&{Ny8-9>QsPPnN)s9U1{VNxfqK=J}jtrHeI zT54nGFK$LYmo0}OcwbJ#yu@3JHRx=0CkUcpT%Q#%|ER4QPc4_`2sAgbetgTfHMQlzo&x9&sO{HY}CQk7tb9k zyso&4Bl|dmZk^SH-y&{c98LV#aW@ywj1=(OfLj@|-V_hWr?9w-1>lUVBaLz2bK@&~ z+_@25rjLw4^PLc9@#)4hg14KNGE$Rb!7+^F-{EI0xZE&5u8Vz*cF)Lbh`#9rpD#z< zZ+R|P{`mfLqdD=@U@XrYgpK71R&JV;t@#^_0f)3t!|tYNmXirng8&-gMppaog{zI| z+px;kWEr?Zrm}^1$wa9~^$NezXxlcm_GEQ6am##AAIVWD+&j8?EEi3h-PNux*LK|0 zbjL?myEf%+4d!-}9d4q0%qZ0Joos&77H&#-2rvAWdVTBlzU4hl%tJg8HW{u@a5FH? z8Rp849;X!BWo(Og?;E}CK=OWOkzC*8*F7CU35YqI5Qmz}FZY6}dp>$u-2jCaq>dBqPVj&UKBW zMfHUYS>miFkFMn!m6kZ3J(N1Xrei~N>mH=Ja5ixVj^H8z|u>cDb-xjlq*I9 zd24^Z$Oq^`(}l;_;!})hBT1= zO)05~xt|ypG<(cf6v>x3(|n}~kB)}$ELs%1u&I1g;y9Hfk)tz$NgSj$p^C#;hnjLB zN1BXIgTp(Ip+@KBS=F5eTicT2Wn>lE@`TUDaoz*P4sZoBW}$sjMq|qF@*|7g4zKBU z%;xVQ{?1zBc0A7COZ*uzw_`YeyZKwd-`Dy34e7JUcQVgy#L;SWxty*q{>#exVp?WO zR@PD}D_u^OBkQRDoX(>rrxTsd|F_CfoR3=b?_U#l#XF_{OwT*F3?dR)0+)Lk`5@Oh zF_pI?TX{XXP%d_=51KV@g`tcMlkR(gdBOAk7x?+P{QN?G9+013%FnOl=Rx^dCO^NH zpWhtj=eHLJ&EsXdO;ZlU1k06$vo}o68k2DI>u+L95y@1)fYh9Asx94)?JH-a_{3Ff*sOm^dT;s#I0$+6@>uJ29Q{d|;cEvZ zIl8=!SF7?olqZCb4Q1paii(W0i|I%e^NUn5BabYmb)cALim^YO%!j&B-}urmC+jbz zK^1(7hp{zu=k($qBD?607l9MS8oaq1h3uzgTPWXM{q3%TI)@`RGE{3{l_co#2cqF9 zOH$C+Y&H|V3VmmL-Ne|Eth{%gd7I7p?K_-~)q-KV4;9FcZ9F3za?rP0973IM9DJ2a zaae^+3$?e8>X5ztRlVusAmRkx37X}$F=`Ncjmr(y{{4yGzd=*7e{+4_-Y@Lm6Baj@ z*O(}bX>ozt!Y8wpX|M2V7uQmS)JEP`{9_u!!njQB<(Tk|5Oz%AALOF%R0bmdEV)8Ipy){4ClyuZexp z-rJ979YjWgg~eEePn*d7!+5{Fya8KzBB^t`{PJD&0LCJ4Hq0tN_zE+Ggu@u?yRX3G4WMHzyO8XySf6J9V^5sYfD9%2aOVMS`O5NNJKi+t+@-muLs^;~6PdKuq2za&^i#Rp!>uk_(&1H;tQ7JT^!|KutNd zbnP{ZG_;4-%d~}DSVwTSMi2Dxyu?iDoo_bf-fVvkq|NrMW#y{nt5Ako%|fXDP?xO` zjIJT!2eqni&M+{K4M zGohDl`)->+Kg^2NmuFU+C?jd1tq|&X+4-kako-4IAO-BY+HTG#o zuIisio};bmKl0*;1_-WEt2$#%>jll}0=fFXUD2E_29~t1O}IvCIol_U2ECq7{oh~D zqae7Fio#b1VW@mPY1NV)ua>MV)c=RQZ;y+z+WsDeQ55hQOv*}=YAn1{Xj8{E@-z0#|pI+P38Tr zwV!8ZKs)F6zQ5le@8|Qre0XL*d+)W^UVH7e*WP>W%QM*+`deV@R9h^!Q*T#7BGRE* zUc~HSHqW7WQz@7`m^OvdFu(>IB#r+um^W*jaahkYEe~pjnjee{PjTIHiGLVJBRFH_ zgBs&@b5J|{1mkZ12ermU=Jt)RL)s}RX`$H|k!*|v%D853LsDupqy!T{C_PLEjW|e+ z385*pj@lj;%|$SF47hd>9M2Vl_9LEx+%&wAY3_&s;0W6910)adF%(=taVjO3*2xga z=>#gCjJkm^2xkcXOA)|ts_M~I&_LbOOjGD#;=a>ZdgAg(NEs=Y#}Y9Pg7tL&g8fg% z`3x8s|LibA|L&7%*4oeuodu?<#(iF3!*qDT{(0XrCV`ff6wE``sz-v+d)r)JN>87o z`eEh3`^trJ1IlA5!f8)dWqWLzK`wL~zRR5eo(e7|RRwo4g}Rff!ftd`(>&Q##|)q; zc_V7TZGl!JBuQ00I#mtVp-gcXu(_qVu%{8v98v-{+VYB6l_QQuriysH6wzw|~@a4FB@F4|U3dj2|5mfjK z{dA^GCL7Dl^ihTO?aY0@G?ttQ!Y4s@niq`;8nq~^PcZF?b`u(xn846xt9tlpzDg4u z*Y?1fY{74s$>KyRB5;g}vhIp%K<+U`oygumnVzDbW&gghY&UECZ3VmT)RS*w;TvKU zBE6fb52=yf#mV|j*lg8uvo8$$ElW?X!I1u}cK)1pIF;C0T*SN(H?_#`VZK1emOF3a zInn#@p4C18u=dUz8bedjS|YERM^g=4=87{j8WL~)e74w}UmcU+BYm1X>x4D}?Q zk>=5hP(r%lC?1pPRTGE^x_K|g=K5qkV$80a&9T44?ZjuQt*$>zm5*Q&i>tJ7?!WTE z5ZC$2xw(zzDXr>qPTTz<;lx9NMH_eB?kjPBZrEL=KVS?k;l*^i9I`!XEHWW4v%%C(}Ag* z1V|j#axI|lg+z!>Z0+H*IJn1!zMMt#pwde z(~lG5%A&EBi3fN!NnSIB8v-tpa2l_gUJwl_Y>7O{>?p$Lr1r?UuvI|}@R3y18@^kE zTh%JtwZ0E+1e>#<7m{P>PNZxv*jANi@td?B2-xdSf*HFXr}sKH4hdIwU6TcY51#Or z%qTh^u>i%53xD8F?8|=w`|>SSLmt9As)Bc+w_q1~j}i+GZQ>g9v!+8hw~0gR!wv!T+IT4HaT9C+xI?xzfpGl|v*mT~YmpqCS6P(=9hlkJDQUk`} zgQ0QZ#dn~PgSe29^YM;Tx?D*5kbN);*$o#;yU&`cQAk`79}H6glFBmlil9J#2d{oR zigG3diYkip-D?5Sq(3N`Pz!#3lazMnt+>W9pc?0kJ-GAEioJ~Z1i>FM$}yDTIAz;1 z+U5LF!&^Gb=3Wld6b-2w-AR7+6}nxU{Wn4#UDol9_wwjBz{(wvd(+`E)8(*sLLr-1 z@$MGgXqW9rXb9VRT}z~KHrgT%9^vq}U^)g#@wCIrLR>Wp!SUY*(U~}TX(g2?;GTAI za3c}qUiIJxvZ~WzulzR{Rx<>L1dm@2LKn`;OcPYHGDNA$KC%`}O2-l4}KIr4K|13w{Zu zzkQ~O?f(|n1)RumcBAe8Qpr6U7--Psw3BOr6Gs40qu{WU4?3si)Zh+VbZHitBuJsj zogYAsC=IImka`?9F8p_xM`>*zqEJFQksyWzd{8bc59<%ztg7RGb1khpj1E}Q#Ko0 z_6Om*I%fx*w8Ys%Tohx$SD(~NVnpS)DKI{NMN``tx#dGT^(&RXPXz*#p|dN)z$2`m zwtF(h7(h;@tI2!c9XZ4JKg zeVNP|rqE>x#{I8OBGS3?Dp>uZAQ)A)74qPdEqa0SYFvKFKTh(?8|x>&&ja`D|6p`o zG-AxtPVVGUNJ=>W{WE#PvMe z2Zt}K7NVR&ZuVTS%FR@Cx=m+CL2h!8`>#9r`XlYT6c0&p8N073bH-vk)DEX`+-Pwm zSGO92$cUi#-hfG3QRJHTkh#?&&McXJ<^D`5k_eDEU6 zcb2yS;o!zMKs~k2UAugjctG{PCPqF7o#AbO9JN zpv|?Ml(`L@ABO$?$_cEcIndA7$>URneja9X)%(*kK7pWt zlY0hMU1v*ZnXP?MzcNPLo}-0U?@m*H(!l}8u{fH}DFr827GXqwwkSb<1eS0A_$lBl zCr=rdjKoG9R`{)SC5sZ{OaeeB@H&yf>osw5NE-H5>2@5rE47#^1G}`jsBYhY&d^UE)*(oT5f^HXgDDj*?S9Cpr7hNO3f`{9SLgJr# z9H!G69Kd*qiV(XWjoNtbcbp9oHX14u*5`sp^LP0=#Y>;=Eo+SNMj6k!g8=UwQkArF z`1P}t2%Irs2+s~<+^)jw%XWvL(=50RKSelZRNS*{cQ7in=teq#5Px=CNYM@OS|#(h zv1h$GMrqyeL8nx17nDWL6kV+IN&fc z4%gxPD|=eJ*C3$%rvOHsJh#0R8m?s?OOh2PKZpmnjIJ{E#e4Ko~_AY;|FUE>Fh`+gDMk3Km^n_-7xHF#N8_a zJA1_GHQ4PcM+ZBD%MwD`VK78?LReGVAz?-ctbi~Wnw32|q4;b-5Nvdn86o(TC#8}; zO{N_gA(dfzBaX2JgS-w#wgF&O2lU;7BTh`8=SuoIfOL>&!RlJsb}YSpNWI15A)2E8 zU|a_FEz~xl@2YlrJjY=V)`4X@&oNzSJr-X~NC%!&hC07MHyI)o#J9Rn!xe-t`S3O& zS3T^qE>C3;aUN`jy)(2L%t0Lmxs9Q2Y($cPt8n+^%ExhAA6=M_S;C5=m?c0AF=kNi zUE|r9Z`1~P!402~vxGfllwk81e`6WPwt{H+fi5+SqTyLfWXUvAfZ9{jXtJVwfe`6& zPAdEx4m;n1=73q26CZ;6n1Eg3Tds(Bl_JX2F9-7Ykj6_fG`JDNmj3b^LtCkF>gbhi zzPs*jX$ggWf(G;$on_bXm~ez#4l@A87p^9`FXWm=8t+&0NW%;B)&loq-0ZK#KqZ={ zHsNw6S=VY4qDl5^6S|YbNHLybv}zM2`g9gdWcbsj;NoH2r~rn+u<@K5dggZd!d)~B zr~bv)-S~STxd-UQX2?DuGv3*$*2p>G9;)AA_(Ws-T>cZHLf0OCE*nqDFTe)& z>E&gY|LJ>5Zn*eHmoezVk{oeqK z+V3ZCM+DPe<%4LO$G;#TR}q5N^-opNs`;q*cNj6iJdCM86u!%g-6>X`9NT!grF3HV zbAPfW5%-YbW)fEMG-1Ja6emL?_WlR|T2P%Wz3;{Eu3cxOadoF9d-%mVjpnoz0WFMv zNT*7pKmO}h@z`{$(LAZ84T?3q5E|!^Z2XnPGm`G!5d0YN;}{i;A1i*c>dqLY2nxTC ze%etS0dz%FJw>GfNY@EZdxYLg$&9{amJmNVpjSsR3`@8~9-Z-$4xinFr#b*!;TK&7 zi%+6{hH(=L?3Rl|T3Sw{qjrPl*97!$~83mSgoIlNZOA# zo81liVeD?v$H28pwxK5A2EEbPcR2QM-Pvb}Ahr5-t139(Q}2MUQ( zLZT={qL4lap}B%>a}d1H0JEh_9AMf^SP}3L2bAkqBje4TL|8&M0Tjb)N&uSQl>*B7 z#^KGB6~d+~VYH2XvsQ$S<1ko;HiwIVP73xC!rn!M{n14rqn5upN`xI#!j@9lts-nU zhne*H%{PmHEea5A4%vK*2wS6st);MbB5auwww}V;i?9+UYz2p*l2C%IYp4ps&5#^f zxAP)Q&*g5jbU!Y6-vlVcTvLpg+py~wpLvj<&ZYH<#dT=L%+|q>Q1+(iSea^z-%`stkzZHNcEV8=cwgESxtF(CU=EY~ER!+Yvm+_C8j}>zUesKqm-=kc>)=9)%k>)ZvP|EAG9U!$@j@~|%6xNB z6o;KlNaqc}A}b)hM`AFP3m(kMkk0c0U3z=KJ3 z2*!2_a7je&K;&Y5u!saC(hNf+Kzu35<|R@h4Za&hQ+QgPmCK-5S$EtM3?(l%9C3w^ z2##o9FE}aI{ZE^qWSm__1S8bhaYP3=McC>-sHr&EBt>sGOM|M5gTcdUVt((JCyBHp z!l03>*0c;l$8ZS?Fp*0~;;4%heNn0y1FBq$-)`8eoQ?vnQ_{i&gd*OJQf-Hhf|P^u z?TGUfhe^?wp~;#XdvSSmBWyJ|uhSJClQig{G@ptokkAzLKOs2+7?gEHM?$h29+Nci z;G7Opxkn_f1A=Oz6qM{ysId_>*{Ff6^Nq9|!TBy+`d>=m%?FD-#gmD`;#?r!t57JA zqOjvomC)k@zqm|#yxAK^=nIB$vO%1z&%a4_?tqdEcP+$SEen*NsfYt+EY(5*bubAlG z2l&X>ClJ)QYPo#xWr(LPati{aK^LfVLspJc3f;4Ur05Hj_XhnBj2J~;1R0Q`QD516 z3ABkTkJ5mPO1jMAj)cIb&pcbMmyxi&RQ@y^_!c8|6i5i~Fo#Ic4Y+`%At#!XuJ>xJ z;lf>}p8^=Xtk7e91TT(lc(k3z^ZNnh+aL`(KI=v)`U~&1SA{>o?b-1Sl6?vA8a(Kg z`!|DawV;+t*uT-M#dUtMzW_m|ehSqmaY$PDHpoOXk}6)t3mQ|x@IPD7gqqbR#PT@5 z9FZ(8Pa>sT5#4HEGn%3_BX16}$~p+f>?_VBNXo|tZIrT+B&*qbH_KlvBOJgIc{>0V z;mwBFW`TS~bPM+d%HXJ~U;^EZoK+d<3vwV3LNe@iKzEpB;B%IN9V`QA1&;7na*3hi zJaWlyk^u*{dMUC;dgu_pUklXQV(`NyI*p4+X4$YNUp2heS+R-jQ$8VW*C!#z=(wST4$?r~D_+EP zTBjii>tWG4EoEz0kqc7mQO5lR1HrzX1<`;k=PjJX`Tfi~(6g0FQ;(nQeP_&){R?jt z((Eg~mWr`VfSaYPFGL)v*e`$w9SK+Sz*BRsr|+Oc^tnlbAvTmm!yAlA)id=L6kmSs z4=R}wG7KS7^dY$ffk3yGudf25!AdE*fom;$4-{5GXDRv^aqS0hq{1tYG-zu9?s$*> z0VOzwDkPZ01oL$uObx?)4H$e+NRTH*Q)~Ga&rb-3=tIAQ+N_gk1c-@1zloi0G#=~^ z@`&wGMEKm_MU~8y+j9{Xb2J@TZUPTn?TnQ{__BkM>@ZksL@Ek~H$>jgDFqr>ud(q} zZ?_UOz)-~u^R9~BEDfao6I&7Rn~9xvQuJ?len!b02f5b-sgv|shy|7SwdrT02oN8~ z9)h7V<&#`NIs6U^sFJb9Kv7iW->90=fsy)y7!Zx{{3tNkq4^+1%_8s+qm&|Wc`QJP zwf3LE9_*{e?0Nc!q0M`!2!>z$qFAj(QOx zr2HMt__5QQy&1+{sT_NkH2m@-=qURW>+Fvq1eB4fL5kiAZu|~0M9+-M=5FOHLW661 z5aR~X)Qh?0ldz{ysn4>;mc|jd16m@Yi@Xm}6w2@j1@p$a)##L9`8`T%2A?>oQ5r`r zmeZz$$jc}a`F*EG`csCPpZI)OgPLb7UMU+m(z79fgbzZX_iNI<_K+#u^|z zmNFntMNu{fm9ha_GieE=gi4I)fR}OG<&K;mI$3IVfc_R>^*~2bT}v}9fFGbADtHP_ zwZKTs3B7%g1I&5UCe*al_#Ld&z)HMFP}`5_jxHEqQ`17k%k^}7HWG%%!yb6XB9S7c zfe19@lW{bT(r+QrK{aRTGs%fuf~8ku(B7cEO#c0V@9P0M_8KUcdRDsCtaLrBbV=}s z^nZZzP%5!w9cqf?>QfB*>1D*FaYCgL*T>aiAd|UgGLW5@7M2K3QmvAVpv^ll49NNp zk4N+sP+8-e5Ct+giaL62CJ@3s#Npr+MWS(J9RYBS{Kk2zQ0x~)$pNtoxn^NnpVfo{ z9VBv};N(!6QiRUiMFp(|Eno=tA&|m6iBx@SjX~SM6Nd~QQ2%Ogq$n>swl9l2K(0@C zJLA2Php&wU_$!rgn;cxrEMNf*EO2oV=ur!cl5vSJ=5auHvOG*HN{e@;mvm^SIk==G zA1t#}QW{2rc8qhjG>ekb)P|Z@gHlS;D%r3OM1(Z1f%TV4NFbtwjn5&7Y8tmmgBuVg z6dTmGmGy(yLi>F~7`IPZo?^%zEWCIMKNgdX$eO+@a; zPv5P;eTpnrH0MzeuEj-}djp2|d{u!F?jBbssI2?}K^`XxtM& z1lL{RenxFiiaYhywK{<9$Bn+A{6bD8*+_^Wf690p8`VgiCQv8kP`H_ zmi4*6B`Yl$>m{PGS9S-0y%}XBol6r6bX1c4JPQ0X7x*F<_&h7F^F+rb z5LGLWsX>9EtKr!jP^Nrkw93S*McPlD42{63xso1jBBFNkV9=rccnlY(UU;d4_cvAv zg+bkC)dn_FHU%bYycmQ$i0}Dryol3_(PD~^7cuFl0}x~yqXQ6ZDuXd&Hv9lk%>&WG zdVmmN9-~d;GXX-I#&ZRzYG{a7Eosrh20_`8QG#-dq9mnT!x5t5)e3o6?noE+!c6k1q!FsI<^Pj2;u_{_r+2MHrHz! z;BtA0NU~W@b(egMDvXm&Qj$#jhPRnuC0Yeod^M{o{FWi~P4p&|Ie()7L?<{3H`7-2 zpe<>WES~SN!=grh`!lqVs_-+qFl12^yI+2h0x+5(BT+2u?{}AlAYUZOk`}(DqX{{7 zDIgA0pDAQsjlnzFrD(j&b}5~BScxvVqkxbNd`1T^ zTlA|C1wq%1cqCoC3}|{!ybKwMkbv_cMjYI+cV((tU@yzGxz0%o9+C)#*HKMzbM=#? zvilHXa+P%_2L7!ZevQy_m_=vg|?- zwqEe{1K!(=pM?OY_a@_K9m&1c_!)KqXuMsFpMgM)w}ZH7#%1Z|ir1OJ?Of;yOul%0 zZ>DaShwKR3qQ8g)v7}fqkk=qj(&Rf_E>Y6&Jl|ss=)mm=6zp+*?r97<2g5q1pkgG4 z$!IPB!YkHOBlht3P^Lh9)8qj^x3rAF?iP)!{>e}b|JrF_ppVD5oSJo#?I68dJjc3J znS(8!hAx(V9?Qg?)_&V8FIvu>H^Q1&4zggxhlLZ@OJl!!@pVR*n1#{}#8}Ipr?cRO zlA=@aO66FAMzc@C*MxB>-4!B74TAl)Y<382J~Y>*D1>%K=-qZ*Ax2&7zc3KIw}biY zI|(0cud?7WQ)%69iwpOwSB0gLppV~qxuuaPGGb>(vc@^p)d@?%)8tK*gtBqwSuu8- zf;`?p5al7M0ndp{RPVyS&gIV?ms`9yGYQ@sgmaB>u;++u!CH2Z(IoIC6DxOV{XB6^ zQbH3QTU}R+&bq3967A@)NaYi8`W>A-Prh`ReBpg9GZo3>gZ7xK9%?}~@t}K|z63?1 zMzccLIPkWbr5ZaDaD3YAy5#w-3r>;JeaF}&)RDF{Ek_cm;&^9j2a%8V{j+71Yw@c~ ze^9KV(r1}ZXf|r%p?j)&9*F6nG4`vqRYmRy3)4vJ>Z_94NuQa_827Ei-MJpQ%W@jx z5@Et>yj_aMc*=osRaTP-p)S?_hZKDt!RV#4a7!1@fb8f)G4fB4?7?U78xagRp388U z=}a&M!a*n|L72CpCl%nQ8T_=E+xx>!r$v&}!HpeIHf$6bi4sJh1R%dN$j4TW_P7ZI zB|{m_no%f7vc}vGCYyB_eyqdgw`zH4)5rfvc?9KDMwMvF8R&ylE@CWuHBMq|;6|^E zSrT}O&fiV%2=vfIVjE(}XjMZoG%cv1(A~r#H!;-DJmL{TJsj%i&reW6;Lj%z1dZSb zIQ8>D)OD3H7#sn^4tGX<``L5_kLrn=41kvoS1*klQSE4Sjo~`iBFtg1hDp(=y9-Re z3~q@;Uae#n;|G?) z=xRKeOOw=sOky?t(D;q{z3mF7Q!^mh1pj@E2ltuY0O_0p#g8@}-Wi8?tAgi!OcGf& z9PRA8s-zC4s?_$Ts-zI68T39ua%xLP+apEsm9*}2+!tJx6J)Bozmp=a^(4tklk^bu zgE$@8WjR36Hr*6CMzmLtNC0s_fhn#kDVX!AO6trgq;)VTi|AHj>Bgmab^SYlY9FJ> zwE4eNm!nW+O=m`-oi_p5;~{8{YQx6F{7+2(5a|P9HG@j4N)mMj!u$jYh7bqqD4En( zVE_uuK>wZx81-Dj=RL1v1tf@b481xlpewia>!76T>*l)lv*Z6zZcthP~($RHJk(W+YDIGr{K_c0ZKI>+YJ`0{{?DreQ zq;pwqhpOywY27vwpdjou%+y=J!?1gWl)zlh91I@i<6c-gMZrsJDX`OLfu9&VSvLoSZTh_62|C6cF1jxKQ}ia6qzBAgo=6*60(VXNytQUZhWjQNQIHL zW0#^tSbJnqKf@ggYYkQ()I+fL5TXP=z40d6R!WFZ@Y;81EqG5NzLnr5qJL{$98nBW z?!NV0P~x7&=Bgvk#8W&59YLN1gx*JR2w}z{AlSi-Ga~9S9|Hm!V4@aL-EcL37+myq z>%O$Q8dVO6oFRC&K7PR?I0wg2bM`S$O(QHLLVva58%ZcDG}2+rI@V~^ov=pZ&O?z$ z>P=`nD~%Lb(1n1a=~M@!TTnX{$f@CtE9A7YJvB;Qct1pWehw1qEhz-*jb!!T>$RlL zB)=#Z;ovo3_UoAB8vt)YEu8JuiVWDt-7h-B6q zOuwce*@{aqVAo!70?RIB-&jOKjR82#WHEg=Gh6& zB2;L{-apJkB%EL9SZfSMlYwrx>dJ5@ZJYop{tj^+jAfXqwjfB#g*51F1FyiG5DFlaP@`(aF;#Tw0JziAPL9}X2fE|jsk0^0*Cn1bN0O2E}MCs$h zX|Il@Dr2~_KQva_*AW`o+lhACZ^xHs+iAiu?FqjJp;p&H`S^8|@g$gUdb7h86&!T{ zABakud%EF2U@yWAWpjA=kaR~en$T8D^SbdMy$mh5^}rAm5G;&b~oM# z9Dz7PeK-w_QU5!L}USY>*-=Xo)<)&URCD?;|aZfpveoaGz<=gy(V-x%dK{$443nP;EK|gZmeXe?2)rbW^ z%=haM;*l!)QNTZvTCP2KWa|vJ9c0cB8@{o>8|)PSTpHhux4^Y zu%`Sg;kG{v+vU+<&9QGVF)ll4r!MUaC<<4#)W@lh@7)44QXee-!*+$$HEi^UeScZ0 z9p*Y$b-z*zT!uk3_JiWLn;z2#oeDwfzh9|Mg@XDowZq~@Ad7uS()`i7Exyo9Unqdf zeZg5s-n&K2EjE0}_+f zuXIuX`0CPpivoTO;0?e|ODYlLL;UblRCpt9G!sOvD9xXO5=xH4NJPf|2nQBObk9(^ z!3{Clg6W^u10B1;2|G=2F;l_M4j%eBXt577UppBQcySRWw6lf54bh1x=VD9Is2_zU z>=i*POuHVX5~;zd+M-HS_w`^+-9Brv%oD`{q_PePrm+UDBVue3Qti~5?! zgQd#l07K;HjhF?)%~%5*YfD2qX;~sFcM&$!_A_7Lg~aQkKe6MjkWS&0_<`k+GTJbv z+kliEHB|CwO7+SXC6xyFlq?Kxk-L`A+emtqvN&QXfQf`=Wu z79yBfs$Haiai)NJuY_D4p+Xk0gCT+`q-2=K>PlBoG-7DiL#bPM9IvcZUS3?UL^lxZ zD&dKEh2a2SM*+aSk8-SZl25YJHUm58jd(_3eZ-3@oFY+DL?u-QC3sPT4p|N#Rqx<0k8I>-QvgS2PlDB$@B(l=F6a_#i`;|5Y zq*-0sT&JXYB}$|rB|xo6Q34{(?*VC6ls3zhMp03Y7xf}xfFhtoLOe(dct|0DZwKfH zRp;2P=m7E`rXPrmuCxJ(koN%>OiZ*Yh7mq~KF5z8wk126$A~V+{2u^F0q{gDp3nS3 zH~bW(7s`aKmM{cSV})WsV~tK=j63PxY-*?WeZa=}6>M2B-|+%u#IpIsM&K40eL0Ga zO0XY+gd_L?<=CI3D!>)d5XdL$u zN_zyc1Lfe82g{I}6^^g;y8Ezumg()4I1kT<31~QoB?z%U+*0a^fy7|}Q68}QGT-R%1ug~QqXOKOV>uHp zRH)ebY^hoz;17!Qh!Fd{@Pai_43_YMRa5aIc5x#FE2|qj3aV3Qos$L!Y<|JK)hoQk~uD7$+{X3 z1s)WSy;?RLq-AqpK%WZ;2F==qkb0b<*#~OB0tJKi7k8wb_j|)=&(DcsEz^PJ_G)_B z39PiwDM^PA4~6WeVjg{-xDb)ljY2$f=9`=o=+tR9B1*2gmJ5K*UOMdT(a8Vh7*;f~Eh-|_q*8DI+{2!&{_e`880OnSbOWM8$=*uj zP9>}$w-y_*c-J25Dk{BObTirn&est+6mDe&jpvDCkpU9!tE`~WJLgeB19iMrS60yA zocDNb=RG5b_^<-Fri%m$!00~80==jdHy$wAp*`?73U`FpvdcqJW+KG9znik#LC^&G z3Lq*gvO*{?A6$Pz#L-Wx2$0!y2F)c~iC1&vNigMPnx$1{UWj|I>&aaSS9w+M4k|{Gocdu{(x%xF}ge-eWg=$SdsXsK|J- zw3YD7Cf=@YM}Tg~OaZV*UWe9twqg>VHGXBKlXsqKGQ5Zszcj{P{G40D`=LX^xhC|+9RdY{)i5VWgkG9dNfCe zc8?N--V|*dSV>ykl@&D4Ai1fmpt%FyAmTJBaN?B6!0&M6ZvYT3Q@SIawv5n7x+U?% zbO;`ec(QB2(OK7{FZXuy#i@y?hex4D#~>XxucKr%qtpJ2{Mc`bR=j5x9rrl})@XYI zJ9?~$wcH<`#=eJdsHdn!Pl0}{*&B&IZP10{E(F`SgxE-Z7N~y7o+k<)=@*LyPK?`Ri|LkTc@^jKcx^IJUYKzgJkrnrJ zyGTIXs3YptvUkWwR{8q4>>WhM*J%tPdk}%_g9$^ORE5j12}eCrA{z%>Xm{%E2@N_V zJGxJ$|5tL*?UkP(T@Ga|?D2&Hi(*hSf8L8wSHvZ3d6 z)sv-6?FJW*Msd)u1A-2FgYkQWnmmc!_h8m)CSn$aLvQ!~0`Nq?GUmiSYLYP`uwWo4 zC4$dJ&mE}{y`;KmxcAztheIhrk&=vrzW}803MEGu@qo`E(&CLc%7|>k8z@h;)k0H= z;XYo}2>=Y%P2dbd#KZzf9f!da8nrrVC;`no2tJCc4jiwZgAdnH-aY?(infYTik>oF z{dI%0JBLZzeN!w^V2#{}eNKSOCec&IhfrhKa2oMKG?cNtBUB{cC68QjnKp~66BXJ5 z$`v;b-y(v!yu_rx z5I0FrzYlzL^n4W(k|i$}5;0<1AD#qaQ3f50PCKd+FjbEP)BX0{&GBU9{xKfrLmh6* zM4zHFlNjCKP5NjLtwi8{As0rdyz+;Ugzh07`lC8=mf@iufG6{YBd0rlQiHjh%t{JD z$y4#8lPDC%Q%XR?E_&xdBL)HyoCX#YJGBs?k|HK8vGhxd!V-k^ksGN^6&Ba_eo1=v zIg&75KtCDfkBC+xhH(TL6qOYHl?V(OsAu&@#3&K*2+FLma5P5pj{8lrTZY*krH!GZ zR#C2lphDhtq6Jr8Z^d%QHY!a%4OuWH7>1QPTO6o%tRtC43G!)-iqjFW!RG(ijMoY! zg115NYJY^eSz7GEWfG8H)C5^>a_PV|*A#3yGu7`*R(?eFY;`>lZFM~yV|9J+zcB>H z+bNTA-rTYg)k}XR)=jwOfd1y8=fIKz_rfKJfz;I7u$__Kt*&}2uKT>T9v2f0wql{^ zRu3#iFm_uvAr^m4^GX|Ag5Zzy6ep?3Lug}gJmd+uXpDwm6Sx!Vj&)b1g`03KIo7AL z3wZx<^vwXnqFR)E{rA-IZJkn6cE0Y39-DOtkKKVq2U&A7>mhB(A{aXefbR8JfauB6 zK<&r3<6ef)qE4XN!;uu20?0Wx6$K*sI7%S-xI#g4H4-PJx`g;UKfrmA~? z2Q*U(H!1``^25g!YH`&lwX8H}7mzR{3+H{H=bKoOH^sWk&bLS}<3b(hJ&5hu1;kP< z0ODIHm!5ZFIULNvMd^se_T1Cbedr}bZRjRZo#=k|cEhiDr!;s7et{dIUOY7j8!#4y zf~!qr*FNAbcC)m%iEzL<0GBnOi-^}=UdZrDxP8D+?9b93Y!#k0;8XV7weR}E?E_x& zy=Ti(`Fdg)KFl-_q-b+Q)URYDQ#_j`5nSb8gIMNbV zFICi$04dEiih>I7SH1BD^4>;`wEXYTQvqt_Eqt#BD6yXx=5SCkn@ChhWBSaQ zCdFGl@?ccstVqko{Wr(Xn|ru@Jk|RP9(-)bJKVDI%(RqXa~%SESHs@1^h)usmPF08qrkkK zLTr6oaFjOH%*0U+oc>9ppTTr~XEGr7$RRxb&uWGTmKQ7+`K5&*jr4Pnz^^0l))0-K zU*OiYN5*$}(af%jg>y+qeCxEN%KlsWfKI2Vt>7>9fl~_51uu6Oqk~6!iEcsF2RiKo z2!Ujr#WSP=M@CSTfYyo<^t>Cahua(X;uGW$2Sc$Lnv|iUD|D!EhxQ$YbwrL3m<|CO zdLNoBW&Mb!=K_w;LMKLH_MW@vagIMJFg+g>=@I9^Aj01BWsYZ9$gdq;kq+}MwN3xe z>XNQk(Iur*gf4mT@L%eZt{N&rD_t@gsh~@K`!~8ItQA5i5ug6JfMLUx+T(|GReRj= zSK8w`Xr!y?4?}DH!BGE3gFNsg700f997n{jra=-o-qBOI|7{Htte_L_e?@~Fe}V{e z^c3#@ga(Pn#QHBa2q}RC`icE3P4MVBp$S?y^2WDu@dqn_`w;J?@%tY6d4#d}qAmE< z4)@Jsn(O<8e&`v!r#zQ99+CA{-!4NaH~GGxhe z47isOIl}J|E?}|-+$P=uXCKg2yhF3=w3p{Hf#??;NS~$siT(6$*Y4-{Z0Z5L&WX5D z6)(R!2OwE^?F~#0x)~bs(hw{g?^L$F&^ENKV6Yxc>y9o$r+rBPV}NG|E?Nf6#`{%( zkp*t&XO`)DhdnN`@Q=%p9%Vs0jsk`T+9V!D!xNgiAsbwbh+kMtsH=*YM82%Xwm`UG z4nQa!4Y|dr@#6KA4~+z=D0VDh`AD~89>LX0Q-+csNCK^VOr^59 zMa2zQjPQzEAq0s$#IwZVgL{Vp$9Q956u#OR&ycKY=@jasaoeJAjA!wjz!m3=Wr5VbvqgALN@Aas1YM|N&ALAO)emMj#ZhvyagxI$MvA&UB0z*Jg zv#aQ75+NGtv8#^sEdA;&Wfw5g!|z{?^nw+1!u>DlX%-sjX?Cx!r;TL|Jk&G!Cc;dp zIvvV7gUZ{$BRX$f;2@C3c(n?}~{@MJ5k z=syR|tZTscWt^SJlzj}ku>n0#@1YPHY5vQ|o#JeP1aHP*vTXykfgCi@A5>DCxPjgR zKx&{=2>DA~@76dAy6ZpT(zL}jk9g7wS0&-<$G8UdUJEHjxlGtNHoqKMp+IO#4((io zQ!hN}PK~CxD?$fMz?;zM{p-Ct3Q6M-GO_fpcR~C2t#<7^cc|=GFMJF9i(fCa^uy2? z$BrgaH>joW4-u0VyK@(5HM9a+?#`{i8{0V?kvAgVRsCYw@m{!ny}i-XtVI^p&=J&S zZ#7mex(td-&tK}uG-815=;^+LDeAeNT{3^zd#(t0U*vnIbu}79vx$UOFYFXRW+a*& zQo_Tt23RM$QMdLQi{P3`zR3qhwo9kW^ousMLuK4Pu{kk76^JW~lbwF&R9g!gC@9;}4_K8NbikLThb zuG0a+<#3ca>nF~i#mD^=k#0Xp1zGKGa*>bCXtf|1_A^wW8zCgcl!^nYDU`T^fsBLq zPR|r@9E_i>BXJEzo?{g->|lG=Jq3e6MC^6fQOA zYd`8SIhXp(gn4c@&g1rp-)M6kS37wf2!_sV0*DPG8gi|l2yH6CFn=CrFB0*Ij%3%7 z@wt01iJkGB*K?u03kSh_1=UvtKa0!v z`yHwp)zvo9J=zuK8STpSG+U*0JMru%wd`r^Yzf+j@1c2`db7MkdboRmfyQ&9Gl5!y zc2Y9g7cUGZoR-mu^bNlF5|D!tP@D9Jlz7;|m5c)t*ZU%8UYWAa7m52AeA$Y?pnWt% z%|#+AgIffGa0;~tP`^=0=|hzkko$TiPhX@ZAmy62DdPiDu4X8n?f2C@r0Z1l)gO#hoK4hPBKcf-hr2Ep|4- z*oUI(O2qi&A0b|9Aw-~+uvkKMl=!5Y7~iw4 z#PO%QxGCVioi zs#2zpx`fbb98C*X$0eE)1W=z$%9mTRM-GE7flenM67CG>OSs90x);zG154|q0F-1< zaipHMa3HiBKKltxHDde2SVRw@xBkOOFY3bk7qi>D2f5f#q~wFnfYDW96`b@5FBKLJ z^K}liQ+VbOGq&4ah|3B#?v-Qb#j7X#T8U@s4>XcUa-? zA~~p}c_*2_Fh94`9N3Fo>@xOnCtwmo)>4{TVq}YL>%kaIyzI?+xnF`d}qxwII@ALN1yMk$Etlkvg zDqd%UJkuwjLXu;T+Nv_~)yaPK$K!YoT6`Ynqa){;t6pK;!lx z3N31~xsVp7R2&oAO4s6J^msi|H0qaL<}XyK{%(rDTKUeSYS3uw$05+i?jpemPya@X zD$tIG(>VFmn(aVIEly5bI3T+MEQw~ON5rnq-1ZoJ}J6xXh}QxvyYaTh7>a>ZS( zxEmC=T54*0<79?p5S!u;SVkSBcha*d^#& zp}0>g?i|IPthjc?9i_Mf7565^tybL2ihTd7xL+vlR>gf^aaSwu^NPDjac3&-1jXI2 z;Qc{yyC|+o|6-*)s}y%moARk}nj5qwm^x{6it7tkUe>P(;&}I;id!7a{BSdEV1rIP!cCfz zkIit+2pYfu~zfA;8z zrwprSJ~0ySBdEx1Q+2Uz6g7#1H%V`Fnte^ZPFKOAfE^I+6SuxE?t1AL?E4Yq#A# zl)}_MO!qY*csk*skt&ufa136fp$$E_$xcJvcLbhm@I>Od4i9zEJ@E9xa|@o{c>3TO zfCnZE4P}7BYrrH8>^Pb3y;rR*AB|O))!!9N~ z_u(nTvmB2H&#!o*+G{jp@jQ#?3p_nA1kA@%gGUd$*VA~~Lp;jx=sIXL|HLyE1?`H0 zHsGm2VLw4(>rvPi6xN16reD2q1?#|U{_Dt1iCOCnA9tsoi2lDAYN)1TU z5br?>^PKn%5;QbVh3&fqi@Po7@nDUo1s9FC-~#QIQ+V3`q4*jUSA!yQJ^rV7$km;S zJRyaqMEG0D9pugL2MB1IHxFe@40DPp zLqp-_M0-xMH6=AYXRJ9r!@U;IDPKK-DVTPmhSq@zK*JGlhIYZAtWH z4g7x%=YwK8OxARiPc8P9coI@m%sHuJh({t)p))--H903e)n-dgOw36%CS<0jGd`m= zJ;yjIBQ-rO6TJ7uP%07Ms>+mnMeLRI1cWD>K|)4O8t534V$BpW#7BD?C``%BFZdT zVopZtm=q>X(B~sNIn`u_2&(X=)U-4k3Om+pOHHt5I@*S-ELX$L_DpjMiF*b@kY73) zggM=eN)dj4V^IAmCaN<2qxOM1Ci0Ta$*JigH^P%Z1v1*KrX2i^L6h*otKsI9G094B zD|iS_CWyKM-eewYO;8XK{*=@lb9%ZU1$1AH3@VSBT`DBNNTNlE1HuEz3k+xS0^m}N z$+)7<)+$^06LL)EMB^A+W{%Nj!#mNKL6w$ZO|&Xp6#V#4@d?JX%rWWaoD4{z%}li+ z(y8HUJ|d6SSr8q5IHKXo_zbiIb1I2ZI!I*nOn-7JIN2&x>JQO~R=o>W#9Um#&HhfmYAv0qH^96kwnNV120Me%! zTk}87W^@GBj}=PXYE%>+;DzMoK!@Yy|14f z<;X<8m6(`eh6<)BpL>we9*;{-SxIeNsQL0)zfA9ozk255^RE()Os^V_%&rmP2*2RJ2vg`)J&4CVB_q$t zE(mA%sfEt*(Jpg$C zyuaQ>ylK31yvWa5C_>1`OfF5uf3lF;nEPz~_(WDrl7+Iz#n~^wggH=}D!i{xqZ)epJ5z@yo67 z`|C@I7y0|({q?25`|3;hnWbueetj2!Jb)g5eJP23`Y!-^0KC7xtc3!CsPos42vh1u z^>94sw?WkNrn7{ye5rnvxRoD7weq9Ht^Bc*Tl+!O_t@Sxv3z37p#Wt}Wh{>CdR<6LC z3kuLw`H$0^W)w}xC+Sn-6Z2<`XK2N5o$kzgD34Px{HPf-^7F<|_rZ(wTw@&1=|u&y zUrFziHzmE#pW!T+I{hIff6zUBJjj94!5{S4)I##IkNhH5@lrpGVgHqL={E6K%!!qB zzVVY{-|^XP)bwPBBI{m>M)S62*xw&b=5+J`QktaDYX_5oW5jikmDuJrqNQv}$TTvgS_}Y|F z4Zf-wL6b5gDnJTgf1F-CK7Z<@sFd-KFs-VeM2(16{fgN6{HZhZ3Q+JFEDV54EpkT9 zm>iXy_sEO_Qcy8#f4d{=zWRu_-Uk21fBLtD7hbx()Ve3)^_w+O>q39bEpOv5YvWHm z{6&&HVQ<9WwwTNrnXqlnNV(TovoGSKdxYQJ#=qu`4ng|&_eZ?=BX+ADs=ejSHvaij zF03iua3JCneC4`nz;_j;ZT#=dwDkNf+?}vGEd8!K`%D~l)5@>5u08c|!kV6M4*NMc zbL#V5+##PjpE3RIZTX!ctDm`UQCvdLvrR)2pIMpvbHl^g-<$|(`R!2cKTUso=aElx zp3zLYb>qStzq{q#6xZ;sv-f0=>HT{*ev&@fv!>!#Y&m*nQO%tA^7S{q z+vVI1TXxRLSrYPmp0#x7{A+4A9sV{wT^c@kc~jymhaPxt>#EK%Z+Gz??;!tdUb(P? z=l&aJyw)`TyX-gh!&0A~G^o=~?YGCMt^)raS$N$U+p}Tjg*X0m-^!tV%yJ^)&pY@)7cl@*Sg5LgQ)wW!B%pE7^ z1jIMk#=Y=lfZu)N$}aN*{0+AAd4GH1K*Zl(CjK65a(C3cxxeFqh`-+?@RxKqeBJd~ ze|*@f9zT@D`t#S^xAf=t*ZKXqmn%a*2=GrBKPhT_K87HQ&|Pks2OGY7?$zFh6Iy;ciWaH-#jlJPZ+f^(JsS6sZ9^_}8IHA& zq?$kK5N4?cF5tV?q>1mb9k{o4d$)qu3dZM8Oc+1YSyYghG5!&Zhg5|d5Y9bypnrUU z6M9QcmykcBFwc}%Jar;9G=Df+(sW-ig+tN%6{qm~6{Ya|I|AXqvLitFRXYMDy{{vH zzZGHdw<1WuC(J-kFxy$!md=Etf&z3fN;L5n@TR;%XTgle0s=*NMo}S(I_ZjVA|5^1 z72(O_AI?((m3$Pwk;+wLC{OyM`51QyiL{d9_baw35f8hcVu~YJKb#V7W=oog!7K&i zgo#mY^|%^t8DB6dP`}?lzBtc1J#z|Zo1`#+domGj%+I$VBCnt@Jr6Q8UFqaBGpn(l zrtE0~Iq@sqDt z`|u{rcw{Ep(gaLUosUJ);Gg+H^g@?kQ4l5kuL|O$&xap$6T+*}P2mA_lQ+;Giw3Bf z{Kh}oRMNCWtd};laXFFihu8V)*E`tFwSOS|?XEdRZ8v6Pfp9CnU^jQpu+tRY^zuL0 z)m-jyhT-0Pl->9@zGXKzB;|JsuRrn`yJ`If|H1x_|73Ulllrsd&;7?Lb{mR%og@Fu zZm+Prw6b?I`Qv|F%kKK2L(h}Hf&5EX%Ir23&-;`7^?$$qBD+x^3Aelb z68U3ZxXA9Rb*nFvKdm^8u3r~_eGOl|(r>NBP;ke#o4THvYPj(;@9MM%PLDYM>83wk zy)ea4@<7R(FS+hAoGsfubL)wGgZYK^<&V$HH2ibl1AV7YoMgznZ$;lXPh=VNQyw-= z(N8hdAKe;1dO~+Yc9)_RYYt@^q`q@I8j8jla-V%Kea+HohM*^!?bUt54WIQNb?0vv z9fsqHn}7cF(0D`XnosWvv!@y&Rz~(-@!|wSU&A*?I*c(I76m=^k1ZSf816d$eMxyQ zvq9f=+z)+E84c6Ad@}CM4<;DOM~oSI`bd)Dd829A>zyAqEbrKNf7EwV4WS!Gcd?$E zY8adN`5#BV9&LE}@&3CO>dl5uEBBN<_4Q=KZ+Bm~JZj*=`1@i8e5tcmxG&G|mzNZo z6c4T-{P~ej-@fjr5lMST%w3W>X3UsvBU2tE_w|w4OW*z|GNN>3-V23Q1)i}!J_>F& zj06z=wkhuGBO~~)bmVpUo@?^~f5WPF`0uN@7Yu`I$G-l3&ssy)%Gn>KKKZO6Z#GZc z1Ulb3G<%zA4N{3voO)XF4EQT)Lyx8;AQB6jOXFMl>z2A(`8Bz%<2CVZ{HxmFZ}9m= zxyAapA7{NU9_#b?+u`#I_-#J_vwAE3t9^cf!|n68<+oZ7YF=vnsD8EHRR24ZZf-Z@ z;%`2D?We7JZTS-kKK}~oLYFlm&tk8E_%mMk{I;(iT;z)%@WO+CTbI4u=lAa3H~RW% zAN%}gnvV2-T5j^E-z{hNyZD_iUdY=|K0k749yQSKKlQ_xTYi>D`_c<}WPPBLl$#XU z%HJINZl(`DD*Q-G{j6EEJ%Imy`}Cb}=~4XwZprgMKTmYz9@zW_xh2EA>&b06JMlwu z<44tTxk~Jdng0!qeQPK@>IOI0m%E>>j{VttcQX91*4^Z;x^~N6a@`%T*~k8lrv2>K zKYD=N_}MSfZSI7J<-~pS@q^^geO+^i+>*^V9wt{)9D9V^25-_)a#syiq>w|chuwx9@y94$bH``wx{bq+lRrLaBfGhC@BE(p4gdNlySeLc z{ek0Wzr=1ygziW3N6jy1w_)!&c1twVxW00)KgzDV*XW-aPxsC2x;sV7jOW}kcCqK8 zk^Jr>53}2F_)FpbY&gN`Lf&LI%GkwA{*q-*b~PQ3u)Au7;UuTGzshdzNbN72F5@9~ zSG`!rZdA8Ezf$dF!HuibL5_)b#hr8~mxb$>y zgLCh{URwF;NJGZ1xz}E^;~v8*d$DcS2S1LOo!YjWbMZeCE6NCk-nVmi_3Oz8+P~ZwK?9wCA zF!`2$9savD*)aCmi;+WLN>cDR46AQgx8?eKMjO@_J@?A-_0fiDc~c_>8b%pPn(ukV zec5D~-fi`&`NQrv?7Vbw?T6|28Z-Q#jFWC(Gua+j? zJ#~!X{hhle-@Iy?VSLAj-kP?2x|90oeOvCISw`X)rnQZvzM5iCx51DER{`zRa%un+Srf*8F{Vsg0 z;g5vNyV`3e8>}aP`{RSP6AX^L$^X)&Jz}VOtp29%Pfs)q{dVqwZY6n!4S&yGck`Kh z4ac8mOs#4<6c7gMYDYVN_OqeH`$HpypG+kjQ?VHe-rl~nn#}9 z%>ItIf6DHYUvWQDlK!0N-}@zR*#_bx<{Y}X`H*kMb^2t6iKB-&C{f_&q zyT4+*%_rC`iG7LtAjs`#N@4rT6CkDc(>Z`l*6X*)2KKN%T`Sne49m=^yOI=g1;F<__++ zG}(`_+tBF#U+jGgT$EM%|1-=01ELIw3SP%Mni?UMBF+rnEj2<^Dos#EArVF{islxX z7Tw9r&@9PYbVswYauv;rHY+kqD=TWP+-i%=TDz_P?{m)c!aJkww%c!izt8`(z54K+ z?{jX?xxVN2o>AO+C{(?_%Ht;~Ue|bsexC)st$5>YUDW#w`Jmr#CpRfhhd))^Ik3Na zuho4&PjQdu5yh*6zEr$X#wP~nDnRdkvv_HFxAR=}bAzh(6z96`eW7CgWiMRrT66aP zi~&KJu7t_a$xEJ_<+@{Oao!`-vt55#v2E)Wy(hXhELrmO&Koat9oc-z>Yho3u0@tN z#{C>x;QH>wnz0`w&U2mYeEh`Ge)+CTI(;y%{yK*%A$8&QsV645ss=y#)7jOtT?@nJ zRc!erTf&*=N}sav#@nXNbN%%6V+-nsX1j7;wS>O$rq?y1`|I0wemdWk(|%Ibt-krL z^Ui+pFQd`FzjN8Kw%>i^bbZ&W@Ak&0Qd}>NiT~L4aG`70h<%U7+9Nt z-neAjhtu}VcgG~2X=k^+{n+fT+63F{zb@R zGhMkeA0Ph7*OOeE7j*n_92SM(o}-*X1tzyyMmzX1RuZThyV;4VSuZf1=wi z$3?SUcYNOdjStt&ca7NhKwST+vt1MH7AAUAqT)Hb|@wphn7Buru zcsexY3HQMlp24{O2KV}lzYgs=ewMrG)QtM1@)Y+pHNbzu{r=_GDf`s1Zx0&*d#*zd zMyl}%4X~?uH6+G7rd-)W;K?u4>-!0}>GRQ*_v`t5Q!D@T%`*$IzLY%&+rAv~nV;YL zum9fuD{$WRd;j&{-G2r4OXz2et>Na*VTf>nmKOY>O8Zm9RnI5Bk0P564DhWc2**fjuoBIIxbq zdcnquWJ~|uZx*$C%;fRA2ltJB?>=Yttd7~+8}O}Dmg2=e>!2IsHuAStitick?7jBdD~JBO{zP9x zPeU)a=%dyV%9nRdon2Vmk{c>BFqW%Z=BDx$AgrU7-vqi9vfDwcpg-19%kPHyUN?C* zfNutV0Om(vw-xjRWIMqB2-*Yr^RVanA?AYRnCE#gXRE_JtPXRia?Driu$ETG>s;Rg z{{T)@k#~6L`qmF6+e$piT_Xo25B#Jux$($}AsctSkvwM42g&R1eq-pemkuUJMC?i4 za_NuBZ(Ok=IsI>`$)RuEmRvTc>(DNL{4)8(&>M&L8@x4nbj`ZtxbHqm&PZ69Ja%Dq za^{+DLubDKWpdq@uMEAX)6wL*PhU8{@ROCv87J;cZg}#GA+beUM>O2}>fT`w4jDnd zttlsdUUBY25B7I~hTl+OPswieWU{4o+EA?bH`f!DZD;uN`}^p>_kD!w@caDx_xX48 zyxW+E|Caf88Qx##-nk(D{0C}O|9z(UxO%^#@_ElnNJ!vH__y$KKHFA)QggiDfQUvG z7L6{;E0MDpMDvSh7Z!QF`Tzm!i%JVh^5%P;UOqYE#P_fKF)W^p2^USCtffjc87KWs zkVaiJ5g+=sNYc+s7@X8PJhi}?jbp`m`Z$j>H@nz5ALk>S*^rl%c<1{{oF#=$97oJ? zmgIV!Bb`S4`FXR7aG>6qR{;I^=tKVELE&jQm00X`&c-PfoJLkYOriHJb{3cVe1%1@ z@n+9=&OrijO3jNfV4SZG6b&-c!}<+w9X`;R+M)(d=sG7(9zOvQK*c#lh4T?bUa>Q~ zxY#>?R{mmVPAQ*bbQT~eoCH*^@(S`w@^G?li3&bEgWcm`FDKXwpUzpObAg?UaX8qV z6N8-NOPp{zzp%K(nV&b$i_kd(aFDY!U!Aa%YuX6(Ot2ymnU3lpkI=@SDp>!dRnh*N*`C*PHf#Vs8&{)ToNOIT> z^iLeZ_ND3&Dc7DB7tUO7woiw|?#}-Q>0Fd&@~FzL#ou|q=&!gW=O6exm;L#0bj-Oh zuc)LnJHMrnxHMG+tQXqFFXaEsLM)Hvm7I;r1LiE@gR#weoimjEwWPZcr>wXw6yvb2 zGe;db({8!FBA#<3pD<)W`$5g&+-Yf{>`J>+`BaLS#T`DrFUc!WN1V7u%rpDpaDO>} z#8VCq*SDym;%Tj`f~mQx&Y;MPWAr$zt($+kbUr9lED+AmLqkJlBd9#ZOi*cyfIWUM?MWRm z5}#R)9XI}h3nxsRbWz&H>60_2Or4f_$)%S~pKIJ^ zaY^aIMP-YZT)FfQS6xk*0I6rt{JgT+I6pZW{d|r$jq^q=4PQ7q9p6F@P8>9fzkbKL zF|WVYZHSr_>MS3 z_RIYD{n!8QeOEc3g>zY^b!&A_$p3s$wVK~z4ZxEs=ZuW=N5;7%$ORWSo04 z&O@P-P7JJ%zt1=Sd*_?RyuzpxzpsD(cdvi`JNvt%a87a8vrQeQ_j~yt%`a8I6Hf(H zO8NNLPgS}2g3|na7(@6!UZ@VThEPb5!!~;K=wN=%O;Gn9QM_|VT4t!7&QC~~mKKWB zdg?}avS;OH;UOyXmEp0&1%;B`4ra$chBOnC+gZ#P7l6(ICD5EA^n{SjnO~R#Ml*94 z`wH<*+sxVcJ_|TMN87_%t=G-bV!|*?eHu60n}-wg_$3g0=7zOUD$Xk)j9Lpgk<8gH zn=P2LB_4=#nM15N#EP?QyfF{-jx55A5aa#H7<6NPmRgWA*_T%^636uUle>9dd=-$7 zag92$&*$cix%f0p8w(drE>V*amQN}67F{&!3IsF0Wdh4*{`rCZgzVyyRK&3m!zN#; z97Bd&%XDxw5no(n&-IQdEYm)5^+9^es7i^ct{l{2)+UR^+z86AS$6I6 z71v!~al?%_-F(Zfw^iQ0@{Uz^uD+{k&Dy)y-E;5y>iafq+_ZVi{WT9f_|U_TJo;Ge z)@_e(f8xofc0B#evpfH|Yj@qAz0d7?{)HFoU;5L_`(JtWwT9OZym9c&w+ zy!ZYGjURsW=c6Bg^69a^eD?VlfBo{Srmv5GbK=|Y{&w>FAAbDl=f9u&%@g!ro`C{9mVk+_>cV^OIZd8_2;kz&R0*lMRdUsOB)1%3h6Bsr2) zUy&NDP0TKuZ49`^cxM%rVuQeFvlnC+D2RCR?fXJP_#8GNOb!oJKofDL2Eqa_BKRlx zp~>0!PBTZ}wK1kBPfXbF$So}@Zbn4Yyg3D4lOO}jmTWz-ut2$*jIS^`6of|zhyAl3 zf;)CYus2jyJfyt*y7FtvF<`b{SAN~H@|fUYjF?xfSP_g5029j7$}2GXjqf`oZCW|T z!x%KDrB%SAGrqi{9KHy{=G@#|yFIkb=Ue3S`Hh#)>3Q*_)JgcBrsw!cW8jwgD8(l$ zIgILl%~Pk`BlSI*?&qK%)P%NB8oDD1oD!5pb^)>qIfjfw{vjKYo5)n;EwUIn%^8lz z$={jsg+NX{WOYv9Pq+(<`m!Y+=g53)qd3Rq;mcK&;$kO0o}FEk=QEr*NAS*$c9dFF zl)YFyn&mBCuzBQ+*WqR?_IU#XgH4v&%5dV!8w|#=J;C4WI_IK_yV}dWQn_lv-A$sKX#4ye{Hxqi?MPG6=lgkhd-*;+c&%+ zV`Lv?8SYwkJFvUc;v&nNYb51Ysc3Tl50f64PbU5RawyOp?@Jg7F+0ri5`Z^y zHg9d312AP>OZ=!5XY#KT5D+T#MlDkXqjCe-uidva_^cB26NPgmS2(>~hftmiXQ>)u zSY%0!VSG6@DVBozfKpP1lgl-ndc%A+Xdvh;P=C+oc(~V0>xuZWB@q45HG60 zySfXyH_T^)2D)9+){3Tgu2HybjefbEdDP=)5Gj!!9ysfffVL!E!>2VCGET`ZiW{V zU9HDor>=gt@LL|L@sssq_b`t#mCx}|uafaq1uI=YT=k&q#Lr3CM=Bo^5iEo4jYl>Ro|d@ zesKZ*@87LH1Df)t`$hZi#`4A2?bhL3=+V5h@L`^|$M+1!z5lEadL`pg-}zOqS@X7g z?V31uRph{wQHe*BpBVmT%Fv3Nhb=k3t9#wx4Ji$yGKcLfxntN5f1Q{7_?1P&);!yO z*v61IlJRRg?t8!LJ3M95#lzRy?;dV_?T@URXYgSCz4fm3_>OzjfUz9gx?Ll``{YQv zd&Sa*$1nNzEBE2rx4LXe!MRj^JhyoiC#P_Sr_GEBn_qkR6SqFs8|E?2_ZmEOdd%QH zTW-f)OhM(TU0-p>AGbKSzV)s9;d}dB)$ht9?$2Jaem`bRxaX3up4zi(!|U#!_IH`q z-5KJkT)nsQjrfP%xBM-3`vr+#y3g&t<@%E!U+iA^>au<#IzH>pb|lW2b8(oIO_SvB z^Sd8!#TQLnHBSs9}m~%vDrO0Pu)kc zyYh<@aQ}nrJMY!^;r@wTWe=TS`Q(?~T_Y~vKjz)g2mbi)o*Vvm{fYi=(c2|@x5U&x1F={K41m$fxfeKc>9V{aSeV$rH6}-4{$9GAHuQL+)qS zPJOZ0(!1OztLA^zp>&Y@(jn{OADc1I{oJ?l({J1R@owQpc`*O|KAHc*`(&;<`SfkC z4!+LwOZUjkTy|%t1Cb-7|3EEidFs}`a-8c;)@#<*9`MFKVZE5skPC(}&$8T-&OH9W zd3nrpukUdU^R&;#-^JY5?*7M^*Wa`3dFB=a}z!KTbU{ex_gp2Ph0NIU#X;BeU)1fqWG}hfSH3oO&ZTF$ zefA&U@0b_n9`gRWy^*Pt-6=mlnbvXR7`JD7`GTL`pXPq3Rhz@>x8Lh_Uh>M7Kb>0c zJ~!!wC+|qEb9erE%C=Ukwz|_=^@%As@V+k6+oxb7W%N$(bWN zdy==D75wFG6FuMk`IRGAb@6&S{$a|f_80m*`|b(<(-T`3dY)O^t7!k*k9nSW$CdYf z=Bu9Bvmeg1ym;8-be+fQ{ZC zu3u%J==wG823@~uq<)o4{c8Acs9*7a+-sY%ez@!Bmo_!cd3mm@;^X+m*_pSw#@+H9 zHN1%XrPd@)y65W0TzTmgIY&Qv!IiOR%+oa+Uv_PJ(~w?7}O>@8T$Q3iUqkdJLcjf9< zw8Fiz?vcn(`7O(^dU?IJT>*Uz^_7^{dZcbp2{` zm9Af%@748dS3v#B`Hl7KXNMkV1gU|@u8t%8+_0*BGUXJ=?xbw=(hD^mcE-mY^OB}7g5}J@?EFE# zoLLCa^w>i}DD5^Zq@Ljkf-Ki$R}OQH2^(HG4Azq$9-}k&fC9r!fIH(cyK6W@nCyxQ`|;)9QH4T!*1+RAvC1&%<1HK(oA+)CbQv}IX`B-ekiyTtz6wl-VgVH;lq9?bP~36BbuK#rg={9!%ZCZ4_P- zLBUCF$SjX*Ya!cS%q}Xe>ikID;MUYVw++Q*^r5(<-V|r)O3{suhBkE(zE)Y8;734#{{7@8 z|7N*`t3mpzkiH6} zuMFwSMfytcgJL-jO1K>7ctM@-&}s9-{n{X1K}eSs>9QeR!AMsK(iMet`TMolgUEis zmeBp5#Wxr6ftuqp<9`;P*)7V!30#9`KERi7;2^-o$u0Q7w&n*Pa)Zc$y5&fZ@L4)XQ0JW1)H$OSbxsPW&WW*2?HgknqU#*K zxDGb5ueABBS-M^D$~MPcxdLBmf|hgKoTePRpUl$MPHmw}+oUjRn;6;9x=!odcs=gu!`@~tiMEt)!SYsoiGo97uF zfin1WRHJQ!?5p9gtBtzmwjz5@4?nr3E%M$HOA$@sjrN9+I+S8sPy+Hvl{fUwh=Se@ z>b$Z=Z%b@A#iGr`W<*jf@-TL#t_NBUSq5aNPq9TJzq<|HjXYnCJdZ^m5{ocn5oYW* zvES&RjcAMaX2entw9PoQ&6op@rZ$Zc4dHcmUuafHf~9K&bwyk4ig>#s-mZwZ>&lLe zu?_9(EE^oO0pYJf_$!Y_Q~QhQNPpy4(S2YmcmA?(6~XEQcI)29mA<(No(qu6G0u(Ry(48b}WMKG2!SZ+EUC)zkE%zaNB{~7`Tmr z+n6GUY7frk7Mct4Ag_$JYnG|L27V&Zb|ceuyQLKtY6~*gWwXqp>Zyg4juk<8Z(H%+ z=J!_wg|9@PqjV30?sn)N3f)7fV>%hBaUt6-H?VICJeP2#H^nWqb_CRD~>jtey<-Hc#3$m?c zJO^3S#bYimaDui zLEfUQIB(fs(?$!$ZL(0c;cuVz=O>4|ge?}j1Qh7bEZ1d@x`nbc-er~dTWAxg>~38~ zY;FK$Da`$1gtBjuVQjDugfLFGgN*IeSnW*qcy}V~_B9roz~OfdLH`p65$wnTVhcEmZ1%1$=Gq5g^C}y&|ygvn`b^@p&g8Q9FiNO?3-my zJ2{W`r`UaGk)vcV*)tNU$rMIhSBz^c11PwG-^O~}nqbj!W$m@l8qkn+oPQWU;r&i0 zBFRtwkewdNK)ZllIP8LR+W6U9T8B{U^svUzhTuA@F9>5Kyyy2>=uJ?i3YV1mZ@^0# zbKW22Rmc!^KSk-gipP(~nz&+42I)tM4g;Q%8KbY+-VKxd&M2`A`(m1_z$U;3qOW7Z{ z(G$o^vn(D*Yf$bzQCB)4|AGVTEpfpVH>+J^TVHfq6v{}oowqI2@g1Z~g-Obs0$j(K z^Kc*fbl_&0>hmzK$q1(=lV4RniD6Bljk*S?{ym_-(|tbr`iwC2`RM=Cb)Qd1Ei??2 zbuXujl=<6FQU4h`L&%9fFIxIIcGqmj^|U00%>FGM!l?t^uO0Ay?Qo!NQ&giWQS{g8l*HYCn05 zjbb1V4v?#O@lM2i40Q!{BM0-q#2|7H4x*bmJWgAHO#2CCKPrCTxk2PPKZqJs{0Ji> zg#2V2Mu4ojzf8jTUyc2B+zms5sP$0)xcy|JW9_gYIt4Q8=qD3*9#;@81)1IX$&i0_ zo*>#XB8Zx*IsZtR_W&PO7=140@U#Q@iZKkkYq3KVt|#M&^v$EO`w4>0RtX&p?hlR8jqOALkhbepTbD2Sd1na3-BGU#4AD~NssDL0%4 zD04rVs;dDqu0wNzXf0^@eaHjVR$HUoBmCs59X5}FFc(=FlBUPd7+<4K$D&TgCdwFD zje+n!gv=OkHCz=$mtP%3M>!5vuOi4S)Ag#g9$Tp~JI3W1t^LO4x{gBs`_YDLf+%5w z5thHKxn86FaG6Fv5JYL9tY-HZpP6MHLa4*O2>ft3zkku!BkZ?9tJuBKM+e9)p;ii= z#cvfZAFjW4N_a4cDnMqv%rZ->AZnE!nqcwT$%}rjJMzJ#0Z_%jn^kP7BW|EIlctk=HedJTC^(ji7OVl=3bK_m{zq?@vLr45a3rT)&dg z51D0f(**nzsCEnLa2RJDD>@&ad1a}H>)FPb%mX7$qlC! zN83|mSs2+5c7gt#{KB?G*f6f?K*2s+7RS@@W)K|$b>6JwW%JTQNVmdV&LPUaS;qPY z$|5ljDADgwb9hn@)%Z!Rv6Ka2JY=PiBD^osu=WeHBPpC5MOYW%aUR;FS|hpCPM4w% zb}`jKOIsVY6~C;v^M@dEfmFV8J3!dMu=kV0UHOkebQh@C7M(see*ub680o9GD*F~0 z)=OYN@TVX;!Fj-S4Sl1ZjPnrwLePKug~xLAry=N1&GD)_gZFpqWM5sqBn+ocz0E@zVWxGk(h`vQ9p)$FcS{MzMi|TRxWdm4{wdB%13^nsM~pFzzYOJrxgL*o z{N#x?N`#!pJ7&3FJCJvo8mr(v+Y$PKhCIk|U_A`xL!f$&Q@#7}e#E;g7=62+oqGR< zpXT4!*-A%1jVNRFZshTjS%x^Wx>#u;Xwx&|CduY6s(@xD)%(F zTL?0bC;Vgxt_k+m?*3)rCsXrGtj9`O_}Rg~r-zkxfDZFop!CURnQBMy%VSAPYrN+Y z!&HCo>uIGDkdeP^z6;cg^PAf;)oVHjuj;842dhH^i zua)itE$1*thSNyQf!bs46NNrDLe`zlZYxVf5&@RrRYLh&!JKB22 zK#H`)lO5wf_HWFKn-Z+l<{T^KJOux0+<`H>pNy1!f4E6wH!5GS769xgLp?Y9(|wxS zn@M9mDbY&9K&vXesc9b>4~*>|9Ik#bf6=-y~usC z6P;h*mCoMLjr!I&sasWd>R8c(+F353mK~YkG#kdnTrODVQ}w|)%}VK@V;r{{%XA|f z>Xcco>%9~89%C;QDEl|+Q}v}*ns%9$COpb%#y$kh^Fc!xtMDA?yCePOs;u!&GWj*{ ziKZc(xN}-lx16)6TSkAZh4;f+cn{NBxYofgY4GG(=@Zal(Sgkm&qE)_nA=FML)kaW zc>U`j!rRvq>tAOfPy3TO488u$uQ>(^yj(8N)LgS8~(88V3t{;(cUxS(1*sNy~n8b z&U)5fZ>3$JI`+roc77Kmh4{%WZGw28NxgR*w^(T~$h@B7CsX|u)^GjXVJy1RO72xi z*EUWk+IeoUzl{9_$Seoi(1EIO+ECF7`zj^g!y%yZ(f#utb2T3jO5;2NUp2z4FRk$OB}r4K=l2eCeZhsz=j=30I5Qkm2%}U*#L>jhAy~4hj zS!UsPXjw3I%jJFDw#egXiagNDX9>4ZIKP9{eiZh*lA@^n%9i~o74}Xmy|N4a($ieF zq|8_EM%uWnxm*!0+xy87Po1AXT_-$ytn}SpsV7n=%rZ45*vt6^_ZUMoVvaH5C5#u1 zxB_GroV{qP+(WTHVLk#H^|;oP&Fw))RGq{xsKVSERBwcZGCfU(wNXERT!%2W=Dpd# z@I5bEX$;7SkIi0CJjc&zL->9&9(y8uBRsQzHTEmgW53E*tkmZ zd(Zri+82c}Nwl9lt~1vAvB!v&R3CN})VM(D5`noWbd2kd`AaV5B53;|bBC+UO+6X+z(SCyLibkba!~Q0Ygj!7V>F8U(5a z@iP*938+r6?qh7^3ANE)kh%Z&lfiG6-9|gGcVl}>%BCdRPp0%fp!cvG*b_(s`MpEU zGOlB&FJ^c8orHSLb1lxdZCD?Q;r(<_hUr|6YM)VPpJxbw5;dI9ZHDaP}e`XD`BV_QFnG6XooM znw!hse7c?oIxz=Z3990_`8~f6x}nba$$4A@Ik#K0T<>GZ-h7b`&)3OD-7vORb9sKp z;Jxc7Q|;ehro+KnIqDbpGZwdv+|Zln>XI(ik2K<3%!N*yyeFY6-iv&u%umkye`k`b zF;jqB)+NBddOv=o+j2rr8(rPorpH{$Z7})C)VK)cg!8q< zTMVCPYnlJ6d>cU&rs`PBdXdo%635tRD99%~N{zoT?!vgT9n!~Vx2cIE&N)`^+7Rn)f%G`|)!o*ysgN`9vLG z^WH`p(xdcj4Lw^yPmC9fTJ&5$$wrTY8ijK?I4-i$$TS=6=l2%BW6<}TWflk4QZWX^ zo(G@a^YQ#$<=rfl!NAs|yJ4Q(3FCtfc(=D5*=AeI=`>RF!A!)#@ib-H=tq!oR+G)W zF0s+5orstB6cC1=ti7GuA8bR>`yz?=e{C3ln8Q$eGskTSm=B)Yv&4ZpVIFm-N^n+eS}<)EYeEWb>P#0mfbk`XoOY?-BDD5bIdMD6?9Ve^sBcFTlF{X4|MN z$3`VaI9Q`K%k=vqig4yIOTA~)F}jdGy~JyyeV|4VKiaL{uU0rT2=lAEN!}MYiD1+t z|1}mPyyx?5^eU+O3e8p9NJ5=Umz{WDc$VQdJ>N#xgBn5na9U`-jTV4L?Lyh}d-}vK zvLAfOPaf9;_0F=Ja2mva+=nhy+IiYPiZ`LuMzcY+Abu>HTG1w~>#WI$q1#bc9ea)Q ze_AKcQuLdkh~2t>V)I*|Cf1SrwxbxQ9mE+i^;XIaLOjNN`d^KxIsT?QY;^Hz z8|~!y+F_64M0>Iy?cgVmdoF^WI~YsPVyy6ZMn`%m3HyMSPHMiuZHdED?H_%xMb(=p zNS${_f57(fu#fB8YINMl7>wX$%}S*o7Z5} zq1*1a(N<6sNcmHJcFP$%-8Y|kZXEKkjh2CGLHuw&G{Afuq{d_Xt}DUWK9fwh4>fkq zV)to}*k~R|&C`L|ybMHpkdMlL=;<=7Ntpfpqp>owl8PTi-vn|zru9sQ`7Mw~aQ7?h zbVWuawZl2p)_6DYHwQl0ZKy?`06mn>D?=J>4MBDM-i*OIgn69E`R+hGs_d45hx7bE z^#NH?=qHS`mPVfc{G^RSpTc+=#7`8y*NDQLCn}v!Qn$44w_x8HdwyAQeV zv54D+c+W+APQ(|B_#BAOj`+-BTiOIu8_PK2d0%h>rvrMQ#Mt;4#-WF?zFglL>ELe( zB9RW{cm=*6C_^RB#d`CJen>}uq~R=#l?RZc0p$zY|D2>D0JGh7pdDh*=H0K`XdUCr zV(2o&n~r$LBVG^UJsreW(7`Vbeh))OvtE{7 zA=Jw?M*T3p?S*k`=tsK!Wqo0zn?TF=ak?=cJ&e4oN8ar~-qqktpxGX06mw7F+`=)O zTY$TXa5oC>hQVE8RV31h@k$xi7IHEFGWoN#3Z_<;KBT`K(DC|yz`Ge#$MIqvq*DdX z?Udm=je{{{wzI^CQ#`&)X@@gr?J&k{cU;d!jdje*pD;)I*?*jEmZ>v%7?8Hh)#E^} zp9z*=vRQ+v$DL)C@jF=J_LD_@Cm{)F+RC8$#d1$9a~ zW$9%3!D8&wv3lkA>$QUl#2@$|m+?dO!Bl?+JN`zFALIM6SeP3mEM*~ojBn)3?s%SV zJZUes#GCOl%udjsT4dkt52o54!PNLti>%-P&h0{0XL45ynXhMy8zX$?jpD9JxSiv{ z;}kx`zzBn%XyHM^zj$5Cj|kr{{2Ad73a=7=o$wOjvxKJ$PZ3V9=y2Nz?;|`>xJURn z;hDm7g)bCdA-qcXCgIzK?-l;4@T0EJe-a)oW)H~=G zZ{nur-xN`IZ{I_U5Wx6?k+^-%OAiT}Qs67{`m&3><8Wah?x(B~dAhgQTS5;A!Y$qS z&5{S3QK1hdB`7r~XGH0oIq>_4l3Y|;qNAWa1`dpbb{aN18d^>KBV3~ka?-p-d4)N& zR^bct^7BV8#MODU*Kn`$kLYm&7Coz6AYJ}J)6<4r1%9{kGud0BRi--?9^svvS0Jgn%LrBC z#t!%RNfRfktI^LRm1*O$3v%+kbeDBnc3#Pt!lKEz>n-1_ub3QNMqR8e;s25Nhs`q7 zO^-y=t&{V;xc_qjjl|WDC0;|GE?6m*O7tUc>-2h!AJ*AmK^pnD(NKuEH?5dxQqTna zI*-`HeRL2ihA%ZA*UV8dyXITi)sO7pJ5yzs?$x%j3UTPT9iCl|EX5C*6^Mr8bBMm8 zG5N(vz|`z~+!ESWxhb5FizyLbfj5;tXUSA=Q8BKOA6=G8n;FY5x3LyjP_||mzmp_# zqS2n+W29dF?spwr*_gf4}a16T(r|sUi^yLTyGJIyO?X=`$6d? z`BU{zTumuhgnR4pc?HWR6c*w`{xR~)WN5g2KWhWqplaa?Mej)bavOgCovvXWCl=x@h!7HV;EiprrD0M)D68;qFlS zlFJVcbopIj&B!lS#r;>7E7Ks(TT>0mXE)6y{sp_!m4!A2rDx|Adz(v#=xxrowAmSj zoJQ%5-eZ~0a@79*9Jqg#H}YO=aL5v@Lx z-JWhiKm3A^X|&clEicDAGB>*@qi`bsV%UhqC0@Gp%;8KUS|4lYB zGi+Q>&NE?Dan!Bh?8j7p*Xz11eo|?O$p?B>A6^&;=K()g(`c&nTpW2SeT}+PTAa&3 zzirT0*@M#XbAr03liz)S#wi?nGmK+|j?_E12)UmlzY-z83ZdSM^YI&zQ*ha-{H`JN zkAXzDpz*lNluM4t4Oz>Z7WY-=ds}|gLIwdFN>*ag0dJYNu(kp|Q|K7R0y#K)*!X5J zH9UlUz(=w6uvSyktu1ClR*Ubg`FpR%Z}43b=5kqoM`))sZoC=(U$9X52@Cm7f)EZ9 z1`djR;MMCe$NAPmwco?f4Hl}t9^rh4Z`OXWP}biptZdT!2($&Cl z&);|QcbVn;@lDigh~ssHa}ahv!wh{B5O+cazID6{vYX)lHt-ukH^c9(kOP-vuFv0> zX5D8|-)ZvqRQ$aZf0vf98MFm*e4okRV)FNhS?_{Ag8fnG@+AoA<#WG$o{-P#R>xw$ z8N}yL`P@)KSIA**U=H$NF3V>C`3x>`|X|Qja4jIf$520MPfu08K1HA@10{R5> zHRwlB$RV5&1@!?XfIOfy&@9kAP#I_iXeFo`^eAX2=q1o0&{5EF(BDC=4&$3>P;XEI zCo>7i-4-aChukxN~+O z4Z;nx33Lu6(qKxWbLl)fANw~$DVc`h4qDt}i`MI*R2o4eX%vm7F*KIO(RjLmE~E)G zktWeaxO3%VN~g(`K~vE4Ov7C&m(Znj8BM1dxZ}3@?j7ziMyF8Yb zi!ra+I10b5(+pZ%%vsnhY;l{%LOm-mx;O(*#?PtF_7<~!UNQejrZ%a*iTm7q#)bId zS#Qx8{8B7_@uwM2^95|1uJ3VGaYj9J-%4iWZ7ij+>xfTJ=1Yt(FJg$!VJq}0)Y zs*uFUPP8#C8$T)Rk2ox`%*XEqm_dsb21=#PuXV#ox>t>~{b7rr$t9SC8kP)Ntfmy; zM^;Y{kkhDDQO!>qTa?$S^Lf2F7tMhk2Km|fvyE{)&zUi6%fnEhMat8@(}a_=`F8=h zsT!X3ePs=kB4D80FOA53#?>W7^-9F@s#M?B73p z!jGp;6-Hm1{2J^Fqpia*s-VGxABS^)f60H>{@};O@vZ!x{aJ^d3-?>@9yN^Df(H-& z<}`n42p?8T&jrK7-M1nf)-wc4ysRg$E}tnrLr++{SL2~b?us=se%4_iN6KIZ}bcg@8JF%d4)TWQ$B$F zw!Pn`@M`ue`}qz{|9puMf4FlQcM%VECqh5=2l1)g+y9z^Q_}Fa?lgZ8t7pORWY3&A zTijcq=WTmSQx3pm=Fsga*tLP4dCmU10dx6{fjjmX^XR9Z=f16R6-j&!$XL%X@K^Rb zMg;1~e%aqE`<_*X?Ik>YqAV1qmy?$l?0MCNq7q~~j--(|yQZRHT))zZi zcru&w1p%mhIWFbE@qHIR-Ocry<3qBMpGhfgl)omvH-{}IE(r}^cJ664R{!EeA{o%<2!hxVRwHS!hhFa=-u zAYNN@e1Up~9~$iGH$Bqz2=wE7#Q6y7IrfKB+QHx2HE*L$^Znp0`C`;F)|2&eqdd9% zHlg8hezu3dGu0P})w5uDNa~8ux4LgZxpBYrHsa&@*#Wk?U()4Z=;@RC5`O50ROsox z2<680>u%K!zfIx&DvpouDrY?ne|b_rSA708+F!2wR%u5e5+8Ql@o*o}65q)o!R5#X zo}(&$EC3%CjJcw+uNRCtq{2G{V-BlujbO}86|NGDIjh1If-$F6xJ)qS!3yUJ#{5>{ zOu?A0`|ETj?45!!uT|JC81rF;Po6L76?{xE=Do`Puz_#VxZc1wYrI1+ z=Eur?jbO~36|NGDxwFC*hX30&E)$G-yRy$U{NJH*reMtDmHjxw|D75S5sW#$vX3|H zU(h&KFxDNEyQ8-gD){hh(Cm3r;3J(du@c}qC0NVrb$t0a#BfMjRvCgEzKP(t)PYTxu*zYjx z#eI!|#eJ1vtW_!h6@szWrLa#h*1Z(YGTaMJ6O8pSWj{_Z*4GsF2*z5Q!U=|ZpT+dkT&wMmoul<@5?n9X zu&)tZw_LmDH=6mW5_`M~PqDm0u;HdW0Q&-PRshZv%p>O< z7CJpaf}0XFwhC?(Y!lodI9PC<;1I#JfGa{it9lL#4ia1^*ebY2FqTNw zQ)&1YTqfAA2hEfvI9TvF!L0-*2yP=dR&bPHyI_k`$47#L1UC(o`Y8CAV4L8>f*peE z1xE?qAvjuawP1DNl+gYJTO|K{f{pf&DcEQaLj)V`!712i4-UabdmzC^duSS<(_@$T z8U-8eqh7F4Uup##^`+9V$C#O)T*F>)nqVBWQ%{0mqdwUUdx`(#Sy~_M8b?J1TdK9> zu;3uUb%L#eYXsW_R|*amTrQa8$rWsbpC;G{e~4fse5YU|e7j&H{FD8qe%I;>IRwu3)R!ry1_WK0$Dh;8?@G;FJBdzBa*)f`bLu z2@VllW4PzDmUt=+_kw+fd%yn0l=EfSOS;lV7>xbIzx9erBcXD`Gk5Fr#9G9`~Y1YA512xOE zUM=gP+U~dOWvr)icwCOWrpj>{>#AlQj5SuX>_3%X=5j=QY7K|uGS+R)Iv8uXW*NIB za(XncuG4nEJ->`~NDj|f6XrOKbzvQk{yQ0r*NDwBc57ZQ)^@*LFJrx#!!y>LIWA+} z*{p-H25pwHTl0Ffw)^dR8SB{`p0TFQaT)8{W*xAErq;O4GObt3dbhUw?RuHxFxJdD zE@R!?Y;UZgn`P|Qyq^BA>c#H4Zwu_djP-c7GS=idE@NGu<;LTHf!8DrtT~rs%X+=Y zesjNStQT{5#+tv8U%bw#m$9#)hvPE8 zAB}w-vkt}{k6EVmYT576__yn2>=zk&@tzTfZR{JFbujjj%rYatAcMdEx%Z>7A7$vJ z_kqgY#=ewU2V;-QEYo_m>{n_0>)RuTb*6sR+<$R7@}3umZR~rQbvS_lcn{1h(|X*T zs(E!C@6E#gH`gy?KaJyJy}*=S#=aWMjc1AMu^Cu%ZjUYdZU1V1abBG%zszwMdv+YQ zv2SO#H}>$%GInd;&(n7Qv*l>)2`asi2;=vK4LyuKLIaBqcyG7t7yhey{Zf9J-$PuE zyywVz8T*cA9gIClvy9!IslRVCaGPs*_+2S7_DxxCJjNcXfi>6pW$dRK`lRo;*VS+OMgKIv zIE*vtW$eeYy|E|DVH^9hEH@rwkJiANt9+4mZ0=W;-1G0`SDIVT&y9G71mO4p92_u);pUI3uiZmSCI*RyfVT zV($@*bHvI%UNFuPE9?-A^Ti62V4OWxxM{f7A7_shZWN3&$qLsC#(8FiYYqDj8dn?s zV>PZ6j5E*5eVJgKg;uyZAH^`K&?#T#XuG+E#wa79vW{ylv%b1crTDt)rJth<38hsV> z(kk3p0OBWc!v_P`;FI=OW;hSbIe6-nvF?*O*T0?(a;Hw6m7Oy)o4-Kv6qn?9Jj(x> z+peN66@W7D6Re8>Y&#kwQhbm+6??#;Xg_H5o~8~I$!twB8=!JP%i3hpZSU1H94fb)jy1lN}k z5SIm?nd9?eTu#hc#+=KA?YJ%(b{sDIWzKbv!{zu{#^uCi!^CpV2bS}C9phBNBL$~{ zv!8U4^Lh}w$HzV@{7b+&?tBo-=YyOeABfAS2*kQ_I#{1_5bJ!6@MYj^e=UgZmxDN* z+d=(6_X@rbob}rT;`r_dvAd^0tlz63wm$@7`&eWO=MR%nw_*GbJ&s>|bcD`deEvfU z{VxZbJ!^K3ch210yesDA&o3zSEhs83DP6dzY_T+x)Da^`jUF?0-1rMFoG@|HMQInO zPtKS!bz0^nm;Ns+`X7w$7ps6Y{a>sC&i|lN|93(Ee_kb=;UVP~EjK@He41MJT-@Z)qTpx#dx7y{Lba?IBDiPSG<#Wy8AZ{zu)*hj*VQUeU=pK z_aLulv*VEgJ~(gwH=e9WT@Jq#*Z;M>sw2Oo9OO+M&aA(0fzDrAsCoG!&3)~)d!MA+ z$Y%o^^%BLR9%I~V@H35TOYphw%shOL>+v*eYWOcV26oLh|DFNWtB&8h#)Dh6>Ub<; zJgWonEx_jYGCm9S!?y+C$^eY3+)A4oHkbGhvEjVAWQ*f?e9vAVGCD96ou4$pJeK2UoM2Jx|q-^#C+ z$9P|Jm>j2}i}8Ln)G*`*_SE-OdIVyN*`d*i8;;Jvc@As#at0@UB6iR8`}2Da{GJ29 zAqTkM!KOT~gYj6%1LD26a`0;~SmyBzk5`?bt3mo{5+gP>)$^6$=7wHwxa9Gt`6>75 zcHZ>0o?oR+&M;g5%jUFEzs-MLXPKvT(VUZGR>F+^`kU$?PqVxF;1=@__GYtZT|~1v z?YYQibFUN8hPixoReQti+_@`Gn{B&a>U3)ooA3MU{#QHgePfcx*>vv{zO!l`dH$X} zPs5C#dw<;V){Ejkzt*#0^`SdQwh6wa-(&ZBzTaIv>aW*C-*(Nir#-t<-rVxqsqx*) z_P*gMe4+8?zm&f;_L)0sQg^PHH>K~;TmI&2TsmUsd$+#-{XIW^e$|5)kG$`bg@4|E zyx-Z&ujw-?-qGQ~laD(7{QSNjMty$&!EgTd`G*%Qx%0Kr-u*A$-e$|A)p38`IHt9? zLqzE{*Oe}OY23uj5l8R8W9YDRcWnFX-^_lz69e|PSKcb@#F@9qutGu|sNnDElwcR6niO3&KYyAy}6e)5ug z<-W%Wyt=X8H=tx zb^A5LZ~q}VZprN4BhRUOIHmgyuMb%^_O2cD^Pyo!Dl+YzwjTTQbz7{%URXYQMCg-i zO3#0HQ1ajfoe%VUH}T8ym6s0Pa{aElY42=awq?T;i67-|i@HC3{isWxat!D_{^-E- zk}jJ3=&SR3-*$;@Q{DS}|M26n7rNg2X~m_}Zco{rc5RQ?Nf&x&{e10hkANm+LdnnTCOQ5t7&Y?*csmItcm(6onUY0%#IwK8PQ~UoyslJf-LA$XKDN~0H8FBm`jqaOUM zo_fX#pDg@*(XUSUe3ADP|8qp1BD{@on{cBqyja}dD)K)HepJGHUifulUnIDb;ABHz z!S88xX@_v$Kj5dA*ncVRmkEDes4MsaVHud&{+Q|!N%aA#@fge$Ss!+SFPye{_diu^nY z??>U>4){4P*rpiTqq~*C4o^V5{&w+Bp>p?<)QU{?7hW zIe;NoG8TnuDsj(PU!qUBqTY^s%fK7@<9rC@%zpwMh8b6X(KY9wuZEjS@aG0&?F!}w z@Gp|E&-e_&0dIXS_Q)Y;ejmsOGxLu@nJ_c&ht8PI%$JIpd5`n8ocUfcGoLj?%bD*K zGxPRCwVZjen3?y&%Z9^eK3dGor-Q~p&b&h8mEeznSZC&Lyx?kKW_~@W3TEa9#LWDx z6fI}|vY44K!s#z|&wPMOo0(ULnfXyMGau>JZkT^3X679{TFyKHRDm#=PZxO>_#zPh zP7m{!F2K3*mADfRyb)xBnRcsIkZ1H3PY-7~M4f^}24VO|X?ftmS!&?uN2z_(A; zWm*S*@)F?fr~{WmpUbtG`6v+oP7m|%=3wm}ewo|nLJydkCxEuY%zP9`xd#u%cs>h$ zna6_CU}o+C^@5psF{l=1=Cc>z24t9-Uk$n$W_&wNM?j;VLVCg1;AQ1pg|vX5Ta2G@ z;Bdgd1|5VM--^?%AU5MWal*IZ%FKMfnDPBLby|qLLpaQ=4$Y!m(h-3X5Rl5@e4lSZKMVA1n}5T;g0=+pZp8(UC7VRuqpHvei{yD<|!wU zZ;!+LJ^GMSXilg<%*?+Ab%vQ%;CF06tS9pfP!{CO zr-Ra9&I11)#PJda^Y?++TnpasdW)*73E(S1T%Y;w*w4k>1m3Sg%lZD-%o}uEd}l1* zGt2qUeCCbX%y+`hzy};(+>3a@GjF!gQq}?dI!rXUUGROe-7tt`Gv6co9Eke?zC-qs z+b#4ky9Xb#QoG@MYrEc|-5B@QvR}TxHvLZRhVQk#V6}F`ciKLGmzMK=wcmk`B24C4 zRTkRM;e%fV+6l99Z|w;-FGtUFn!t4WY+NSFp^Ww+R-VrAAnNOg6VP<~Mlh74r=0o1XcdO_Rc*#s_I0*;qzR9Z(wjS4y-twBM@iZ-@tM??wgvBOP*a+w0v*oRZ6$Z6A4eH<%ls%ZCI zGWR6or8Fp&!E2zXqqQ0@ZKqypEU2R*MnyTlckfL-_VJv5`keDu!t?TbXJzfR*ZTIi z)}EQn>`fi&P2_4T~GQ(RK<(iQ9oY%c+)WR2wrU2%zVd- zOHdN8>r_Y4Sk^#s_7>JSyto`0ysjgC-&1VQdZOz|&*#Oyysj(V|E%M6ed(RgIbPR@ zJ_4;^TXD+^tY3KXHPnn3-#|_HDm>&x+QN&IQ3)^p85Qv2TWAeloc0pyKVH|Jp7sj! zM;_|>(^}8PQ&5PtOZ?ysatSZac#~Yhi{ZD)CA_#AdGWe_^}bd2TmS<|_l*<(fYwk) zyz^c1881HQdhr?5M!Bw+J?uT!R=l|RecHi`e?mpofrs;DA+7nkF89^0*Y&~MK5*7O zT?_ow9nLze>wwSv&|Q|Y8K1f9 zKl~8wq(8b&`E5vE*YG~Y)Yv`%UqV_3DzJ7~jr|(U3;kRKN9E#ayb#w|0 zceGm$`&=J7y2jkmNW1J;`~hzw2Jqrq)QA_~cD>keETY^8mm=*q0!JU`ct3o`^%c0o z^=2&fkzF4iGtR9KZ+5)}UvYgEPB`AF6M)ycJ_0wmz69$|aO!wr$o1l{U2nkw*H>Ya z-)$4NyFLn^a(x*#jCbnz;5^rdVafHPcY?cL7;?Q>biG)0y?EM*HRgKaCPpXLm^Qq) zl$L6W?wMyV~!*3h!3G6z6>wBw#K}M z7ssw7H}K*lR8oET+f_C8bLJ8({(|E|xj6AAr$5zOY3DZPJo^p7nhxU7$@4UL9a4D| zzV7$}7-+ zms2jrTwjEBzjn&KaGvX{F~*g4;wIK-950@LM$x{w64h%g@CCFQFYc2i&Ui71LU_@e zt1;)`#iP(+7Ll!<%s4<(7#^vj(F*hJPhVZCvcUEIQ>O_=M}raLV0Ic?52{m*dX9%J4t#b8;yPcm2kRzgf%NN7V##AMT4@#*0Uy z^?32RUdDzOSFWou%kkov2Uvgb;$iDKSK-BAxe+c=3L;oxX{OJWQ@C zCUElOZa%~RM7qzlICC@Syd=-<;ViV1cEWHa()%0YGssUJ@lE8zSK&@n#EbX-p0VJ? zwOi;vUTk=h{^7-Q%ftsCgpGf6=9(Xdk=BF=+>Cbi5?lB@8byAJE1u^br+D#<7l-NNIRncRp*>8CXk*F7h!O~eLes;AeC3(9&b9w z+6#Y)G}kP6(cc{(f)63(UKvKWa=h4=xZgH6e_+j9&b;%&t;n9UaOvAlc?2$~5;wLD z!#+uE!U^v>J^;Is;#PzQz324J2X8_ux8Q;AJMr|vn~=(*A24^2+6?TdF>xech0{KC zd@ZuGy6(5FY)Yh7boEOB4&?vlko2S<7q>flb19-8YZ#6!P7yWzH znn&>B4XA(@A3DPTGLFMVHg-$>zsFBW}jO7oK=K>L7I=^US9e}eeodFg7?9u z{cD}`7wkj*l#9c;hfgnFJRT+S;(2H_UibL<5mIi5-{T%X!!va@e~urdj(7(e!0TQ> zxSWcySjx2QQ8}gg)WLDX0-2fC=;(V=2P>P*aZge&O?|k2>O^+$*Sn7ssMC zc<~f;Jzn<~dKpz%E5vc!b7&jo;w9*1yzWDE71Hw%@ipXSzv2#L@Val&QAl-kKcmNy z;-LE)?S~X|aT1z{7r%?f;B{}KtB~r8SrnpNd;r)|;Z7ZK3+kX;{1C0ei{Bhw zYnI~!uov~?#W&F-c<~c-AKn~MYvv%uFbtO?#ZbHrjlqla$8a3+VjJ2?eeq{#8$Jq8 zIGUWJjvvO*D!lk%W336{#SzCa7Q7d(JeK)_kHU>eaVx_$WAT(*@cnVz^9e8R>1Ql> z@fFmEufmbz$(cOwhrnY|5HE(%WW3mi#^S}-Py=4vj_UDd0{MVejBq*{q+HB2(Jo%xV-j-~FE*kgUYvwVc(K_n*FCOYM7Z;+Pv>8^}4Av9QYd$y)4Nyn?_lvpD7hb#z zmGHX9*NjUTdpGA_xCk}j#b=QZFTRevcyZgM%sag93HGDbT5~Br0;eo+aw!1+hWaTN z3s({!yx16_4qj|VtMTGovCn|$rHRd1%>e9 zsn;`n=y_5OKYbEi0RH59YYR%24@&Id2nz182U(!9l-$nLXo#8x*^gN^p zKSFkSmYC<51KJlHgU(sY+=R_Y{RzS%Qho9CJagpkI-9EsY=e)&To-c&UxZtb+9|^k zd^k(*3kBe+q7%0$EZyUH@i4w~2brJi z>TF)Sf!J|O#jR*3b;OU*HoSP^M%EU!19v>+o|wqxgCIMWX}sY{_ku{9r60D!~rk9 ziq_++aP&5(eepSDep6@jC47}S6*&Ga)=bI+a2C=WEWuY@UxoX>?Uegq7g8TeaEI&7 zJM>t(1%2_sL<^fqy_#@fEmcJ9&t=;5wu@ zl;GwMh&z9aEW@AdAXlg(UiA^@CcJn(%HX5$rccNXwFB27yB(DwjkgNhK6TC)<MV|%ws?AjlxikQ!XZu+AqRU9*>z$eIJ~J>|+Wa zNA~&&=hits41dK%U011nxDMHUhA+6j0>^*FV;_qEd=@1NGuVB40%E zkYnN%dwEQia`7=#QT@F=W+KvgP+W=p)EDnWqwwOrXgIzEUqRZhcR1ri8cPWN%Jmk! zVuZ&8DG$R6vR}W$#UnlTaSTJVkK@I)UXNL*_TiKJQ;sjgzoT}16)ru%X(s~jMPpcJ z!~?!c-|*s7XdCs#H_#Ss3r93~%vkDp;eH2uOf%jGe~CKq;su9zOaw26P%B=12esg< z@c2WW@%rIn*N5R@qnvyY&-@zurM|cr_2R_{%HX5$yI<#6;DhiPq&2ewzw09ooNL4% zqZYgvIh_6C#nNcTf)__0!T9mw(a3}M!)uQue^`^n%}0?}l#5TH<@ho@@o0}3z>7)r zEM6QyCA>JS(PN5u@mADJUys$CgF>Trwu0EZ(;7f3iGkJ{n!jsXO zjkF1`aD5nB$ex>UqwCA?Eu{6W3KyQ`F$LNQ!#k1YpanM|dkusaeVaJ&94Q0`k=7+& zGyOc97^)9&EYh}qxEyJYnC~!NWEe{T&O)jahBqT0koQskz)^HX;4JqXIqinMe2_ z9Mq;kQEco<7#-(=Phe$bK7J1AM&{VwGvYavE#Wpkw zAA$KFGWYOB_&Boj2OfQulh1xwK$>4Ac>mRIp2Ihgon!FAHm5uUZ+5-+8pevWZ5ST5 zg1E6SA3O=EJOIx@!#D8RMfe=5Qb)XDC37AxK7~qn@m*BJo9oz4Vq5W6G#xLV`*Y4) zc=1Lw1~1-?4#1b-)|;6N_$oaAR^}C6TyYoU!i%rQ=ri6MXInIYFTo=c^b_xg_jWR8 zIX{-+Eh&ySd27Lw)9x7IHsq&H74DgFav%WbXYqPn3?I%Df9h0VvOwSPMYstmXUgzB zq;s+OjV_K2UJRl&c=1Z4wMblv3~QbEDB4CH@ns1wj_76`zW>XAB|qd(%f;KlEM%)G{nSD;b&FkFjDc(HXS zamI_kK&$al_|~Vi!*c-fuwC?la&Zmn$BU1-K4N(PWf;fpQF0!7YI#o!FBUyKH^hs7 zK|Z`#SLb-~NY{%ex?Y@uypIx3c>Y(MHpPARWZaaCN1=1@;`y!*!D)Mw3zUc88^fJ# z#kC{p3+3XAXboQ6=6Z1lx}I{g4}Tj&6CZQjuHeN#?O$gGsV{zr2Jqsi zs2?wmIDq#-@m_f0!HkJ*qtHSX)`}wh3^g*>{?#95H9!14mj8XmL>gcd1on^fdp;M% zqu`g6^XUN7`X%LivSGw-!TE1@J1UP-WckLJUS2kms`gLIm@(W3{`1GZwS1X`k_*iD z`TtD&Uh!vh-}v)*d^Z1|h1bvTJnwv_ZwBjb_k6PUA3TlU`4DGBe)Gkj1KIB|T3*i8 z_7<4MW&0pZnYU`FoK#oB#QIK3B-&Q+?D~#J_peUvBt% z0lf*^k9_8I?s4xkwINK_9rsHLWZ#SK)kYJ&S#* z&6CZZY`eQ}Q~B*OGso_8*si~X*7UP`-`ewuW`bSjw_~w;+l$zCDO)d~-_AA@?EW3k zv3B}7!QPj~zud0N{pg9v=RN(heVk?XrGMv8f4*H?Q3*3XMRh(|!B;HoNPV%)XR?fP z0+IBalkC3EHDCWiJJV@lmYGYti{Mgor5%mW$LYj)EUlbLv|G&QPQRH-zMM|a&)~OH zsng8=Tql~V9}Xi@PTzFYHNM^P(IXwr&-bxAmdDeNh5XacdFCM62-3z9N`J_)SpMH4 z^uHZT-dCFn|fe2NpFil%hwKO*z_jNp3*%q6~UV7I-PW3rH%%G=#J zwWp`(nLKORvU!VUFTBRrwrJtvWm87~aOvWcm(6LNw`kU~af=qrS-ND|lFOHmo3mum z$+MO%I{vEhqkW5JEnaZ>yk*NTnzwY>f+dTmj2?fyfApy%_L_Xc?zT=1o*q1X>eRE( z`*ur_}LN-b5+Um#8EL5)=eD?|`Z`Xqgx$=sfPVN>-o6Bh7_9Za{RDUWc@0%fb;s#pV-vweNc8*7O9VvR9>tSJ_VHOGRnmRKm(8VkqT zVv$&TEE?;GS+Pv480(FdVtui4tUp$X4aBOk!I+8H$G!1}xG&xq_s5&!fp~K~7;lM( z;;r#;ye%Gyx5uOLj<^-i#EbFXcq!f&FUR}i6|V4CjSt36qCVkGG$ee9#)Lo7ln5l6 z6Tw7FB9v%NgcEIvNTNLvO(+7HMA40csc>Fp?Jsurc9uH(I?J8?ot4gk&T8jir%BbP zys3tiFV&dxr0-J!T}t<*%jy1fB|VU? zrU%m|Q=jo>8Zy32W5%Cp$^%C+Xgxwc#+*Pe^!I&xMn zlPl(WbERBguAJ-7RdNHlYHl!R^7VOdz9H|+H|G8MrhFjZoDb$(@}YcdKAdmMNAm6Y zXuczF^hzCvTcUuY@>3eAOJp`{Qiv=$+*L6x`JJyu5eeRE81ms6}w7Z<*rIswaavSyM5jM?m&02 zJJcQSj&w)6t?puXsk_`=>8^I09&eAY$KMm^3HF3~!ab3mXphxX>?!q>dn!HE9#iG- zxa7OByq3@MTLCL*g{-g@v7(k`6`3t%=0TM?dA91co9o6oH`#3`Jll0z(lPioj3=h9WQ&fuRTtMPMibLlGE? J!2eSO{tJOSHnIQ! diff --git a/Source/Core/Core/Src/ConfigManager.cpp b/Source/Core/Core/Src/ConfigManager.cpp index 79f7d4686e..dd276fa2ad 100644 --- a/Source/Core/Core/Src/ConfigManager.cpp +++ b/Source/Core/Core/Src/ConfigManager.cpp @@ -393,7 +393,7 @@ void SConfig::LoadSettings() ini.Get("Core", "EnableCheats", &m_LocalCoreStartupParameter.bEnableCheats, false); ini.Get("Core", "SelectedLanguage", &m_LocalCoreStartupParameter.SelectedLanguage, 0); ini.Get("Core", "DPL2Decoder", &m_LocalCoreStartupParameter.bDPL2Decoder, false); - ini.Get("Core", "Latency", &m_LocalCoreStartupParameter.iLatency, 14); + ini.Get("Core", "Latency", &m_LocalCoreStartupParameter.iLatency, 2); ini.Get("Core", "MemcardA", &m_strMemoryCardA); ini.Get("Core", "MemcardB", &m_strMemoryCardB); ini.Get("Core", "SlotA", (int*)&m_EXIDevice[0], EXIDEVICE_MEMORYCARD); diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index 4ae51d78a1..6f8447a46b 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -516,7 +516,7 @@ void CConfigMain::InitializeGUITooltips() #elif defined(__linux__) DPL2Decoder->SetToolTip(_("Enables Dolby Pro Logic II emulation using 5.1 surround. OpenAL backend only.")); #elif defined(_WIN32) - DPL2Decoder->SetToolTip(_("Enables Dolby Pro Logic II emulation using 5.1 surround. OpenAL backend only. May need to rename soft_oal.dll to OpenAL32.dll to make it work.")); + DPL2Decoder->SetToolTip(_("Enables Dolby Pro Logic II emulation using 5.1 surround. OpenAL backend only.")); #endif Latency->SetToolTip(_("Sets the latency (in ms). Higher values may reduce audio crackling. OpenAL backend only.")); From c774fb488021a7640b24532d9f6cbdd41086fb56 Mon Sep 17 00:00:00 2001 From: skidau Date: Sun, 18 Aug 2013 17:09:01 +1000 Subject: [PATCH 09/27] Removed a redundant tooltip text. --- Source/Core/DolphinWX/Src/ConfigMain.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp index 6f8447a46b..e9da722739 100644 --- a/Source/Core/DolphinWX/Src/ConfigMain.cpp +++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp @@ -513,9 +513,7 @@ void CConfigMain::InitializeGUITooltips() #if defined(__APPLE__) DPL2Decoder->SetToolTip(_("Enables Dolby Pro Logic II emulation using 5.1 surround. Not available on OSX.")); -#elif defined(__linux__) - DPL2Decoder->SetToolTip(_("Enables Dolby Pro Logic II emulation using 5.1 surround. OpenAL backend only.")); -#elif defined(_WIN32) +#else DPL2Decoder->SetToolTip(_("Enables Dolby Pro Logic II emulation using 5.1 surround. OpenAL backend only.")); #endif From a5613f5c103f5dc5836eb98047ac82d4bad2e658 Mon Sep 17 00:00:00 2001 From: "kostamarino@hotmail.com" Date: Thu, 22 Aug 2013 20:14:10 +0300 Subject: [PATCH 10/27] Gameini database update. Call of Duty 2: Big Red One, Medal of Honor Rising Sun, Tony Hawk's American Wasteland, Spider-Man 2, GoldenEye Rogue Agent are updated/added. Fixes issue 6515. Fixes issue 6516. Fixes issue 6517. Fixes issue 6518. Credit goes to generalebison for his reports. --- Data/User/GameConfig/GK2D52.ini | 18 ++++++++++++++++++ Data/User/GameConfig/GK2E52.ini | 18 ++++++++++++++++++ Data/User/GameConfig/GK2F52.ini | 18 ++++++++++++++++++ Data/User/GameConfig/GK2I52.ini | 18 ++++++++++++++++++ Data/User/GameConfig/GK2P52.ini | 18 ++++++++++++++++++ Data/User/GameConfig/GOYP69.ini | 31 +++++++++++++++++++++++++++++++ Data/User/GameConfig/GOYS69.ini | 31 +++++++++++++++++++++++++++++++ Data/User/GameConfig/GQCD52.ini | 20 ++++++++++++++++++++ Data/User/GameConfig/GQCE52.ini | 20 ++++++++++---------- Data/User/GameConfig/GQCF52.ini | 20 ++++++++++++++++++++ Data/User/GameConfig/GQCI52.ini | 20 ++++++++++++++++++++ Data/User/GameConfig/GQCP52.ini | 20 ++++++++++++++++++++ Data/User/GameConfig/GQCS52.ini | 18 ++++++++++-------- Data/User/GameConfig/GR8D69.ini | 20 ++++++++++++++++++++ Data/User/GameConfig/GR8E69.ini | 18 ++++++++++-------- Data/User/GameConfig/GR8F69.ini | 20 ++++++++++++++++++++ Data/User/GameConfig/GR8J69.ini | 20 ++++++++++++++++++++ Data/User/GameConfig/GR8P69.ini | 20 ++++++++++++++++++++ Data/User/GameConfig/GWJE52.ini | 19 ++++++++++--------- 19 files changed, 352 insertions(+), 35 deletions(-) create mode 100644 Data/User/GameConfig/GK2D52.ini create mode 100644 Data/User/GameConfig/GK2E52.ini create mode 100644 Data/User/GameConfig/GK2F52.ini create mode 100644 Data/User/GameConfig/GK2I52.ini create mode 100644 Data/User/GameConfig/GK2P52.ini create mode 100644 Data/User/GameConfig/GOYP69.ini create mode 100644 Data/User/GameConfig/GOYS69.ini create mode 100644 Data/User/GameConfig/GQCD52.ini create mode 100644 Data/User/GameConfig/GQCF52.ini create mode 100644 Data/User/GameConfig/GQCI52.ini create mode 100644 Data/User/GameConfig/GQCP52.ini create mode 100644 Data/User/GameConfig/GR8D69.ini create mode 100644 Data/User/GameConfig/GR8F69.ini create mode 100644 Data/User/GameConfig/GR8J69.ini create mode 100644 Data/User/GameConfig/GR8P69.ini diff --git a/Data/User/GameConfig/GK2D52.ini b/Data/User/GameConfig/GK2D52.ini new file mode 100644 index 0000000000..d8267fbc92 --- /dev/null +++ b/Data/User/GameConfig/GK2D52.ini @@ -0,0 +1,18 @@ +# GK2D52 - Spider-Man 2 +[Core] +MMU = 1 +[EmuState] +EmulationStateId = 4 +EmulationIssues = Slow because it needs mmu to run. +[OnFrame] +[ActionReplay] +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Video_Hacks] +EFBToTextureEnable = False +EFBCopyEnable = True diff --git a/Data/User/GameConfig/GK2E52.ini b/Data/User/GameConfig/GK2E52.ini new file mode 100644 index 0000000000..23d53c182b --- /dev/null +++ b/Data/User/GameConfig/GK2E52.ini @@ -0,0 +1,18 @@ +# GK2E52 - Spider-Man 2 +[Core] +MMU = 1 +[EmuState] +EmulationStateId = 4 +EmulationIssues = Slow because it needs mmu to run. +[OnFrame] +[ActionReplay] +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Video_Hacks] +EFBToTextureEnable = False +EFBCopyEnable = True diff --git a/Data/User/GameConfig/GK2F52.ini b/Data/User/GameConfig/GK2F52.ini new file mode 100644 index 0000000000..0b05c6d201 --- /dev/null +++ b/Data/User/GameConfig/GK2F52.ini @@ -0,0 +1,18 @@ +# GK2F52 - Spider-Man 2 +[Core] +MMU = 1 +[EmuState] +EmulationStateId = 4 +EmulationIssues = Slow because it needs mmu to run. +[OnFrame] +[ActionReplay] +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Video_Hacks] +EFBToTextureEnable = False +EFBCopyEnable = True diff --git a/Data/User/GameConfig/GK2I52.ini b/Data/User/GameConfig/GK2I52.ini new file mode 100644 index 0000000000..0f733aac78 --- /dev/null +++ b/Data/User/GameConfig/GK2I52.ini @@ -0,0 +1,18 @@ +# GK2I52 - Spider-Man 2 +[Core] +MMU = 1 +[EmuState] +EmulationStateId = 4 +EmulationIssues = Slow because it needs mmu to run. +[OnFrame] +[ActionReplay] +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Video_Hacks] +EFBToTextureEnable = False +EFBCopyEnable = True diff --git a/Data/User/GameConfig/GK2P52.ini b/Data/User/GameConfig/GK2P52.ini new file mode 100644 index 0000000000..32d0de3b03 --- /dev/null +++ b/Data/User/GameConfig/GK2P52.ini @@ -0,0 +1,18 @@ +# GK2P52 - Spider-Man 2 +[Core] +MMU = 1 +[EmuState] +EmulationStateId = 4 +EmulationIssues = Slow because it needs mmu to run. +[OnFrame] +[ActionReplay] +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Video_Hacks] +EFBToTextureEnable = False +EFBCopyEnable = True diff --git a/Data/User/GameConfig/GOYP69.ini b/Data/User/GameConfig/GOYP69.ini new file mode 100644 index 0000000000..3128181698 --- /dev/null +++ b/Data/User/GameConfig/GOYP69.ini @@ -0,0 +1,31 @@ +# GOYP69 - GoldenEye Rogue Agent + +[Core] +# Values set here will override the main dolphin settings. +TLBHack = 1 + +[EmuState] +# The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationIssues = Videos are messed up, skip them. +EmulationStateId = 4 + +[OnLoad] +# Add memory patches to be loaded once on boot here. + +[OnFrame] +# Add memory patches to be applied every frame here. + +[ActionReplay] +# Add action replay cheats here. + +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = + +[Video_Settings] +SafeTextureCacheColorSamples = 512 + diff --git a/Data/User/GameConfig/GOYS69.ini b/Data/User/GameConfig/GOYS69.ini new file mode 100644 index 0000000000..0c54f77e43 --- /dev/null +++ b/Data/User/GameConfig/GOYS69.ini @@ -0,0 +1,31 @@ +# GOYS69 - GoldenEye Rogue Agent + +[Core] +# Values set here will override the main dolphin settings. +TLBHack = 1 + +[EmuState] +# The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationIssues = Videos are messed up, skip them. +EmulationStateId = 4 + +[OnLoad] +# Add memory patches to be loaded once on boot here. + +[OnFrame] +# Add memory patches to be applied every frame here. + +[ActionReplay] +# Add action replay cheats here. + +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = + +[Video_Settings] +SafeTextureCacheColorSamples = 512 + diff --git a/Data/User/GameConfig/GQCD52.ini b/Data/User/GameConfig/GQCD52.ini new file mode 100644 index 0000000000..bed0ef720c --- /dev/null +++ b/Data/User/GameConfig/GQCD52.ini @@ -0,0 +1,20 @@ +# GQCD52 - Call of Duty 2: Big Red One +[Core] +# Values set here will override the main dolphin settings. +MMU = 1 +[EmuState] +# The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationIssues = Slow because it needs mmu to run. +EmulationStateId = 4 +[OnLoad] +# Add memory patches to be loaded once on boot here. +[OnFrame] +[ActionReplay] +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] \ No newline at end of file diff --git a/Data/User/GameConfig/GQCE52.ini b/Data/User/GameConfig/GQCE52.ini index c43660dae8..4d7a73a134 100644 --- a/Data/User/GameConfig/GQCE52.ini +++ b/Data/User/GameConfig/GQCE52.ini @@ -1,20 +1,20 @@ # GQCE52 - Call of Duty 2: Big Red One - [Core] # Values set here will override the main dolphin settings. -TLBHack = 1 - +MMU = 1 [EmuState] # The Emulation State. 1 is worst, 5 is best, 0 is not set. -EmulationIssues = Black screen +EmulationIssues = Slow because it needs mmu to run. EmulationStateId = 4 - [OnLoad] # Add memory patches to be loaded once on boot here. - [OnFrame] -# Add memory patches to be applied every frame here. - [ActionReplay] -# Add action replay cheats here. - +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] diff --git a/Data/User/GameConfig/GQCF52.ini b/Data/User/GameConfig/GQCF52.ini new file mode 100644 index 0000000000..29e4d50f68 --- /dev/null +++ b/Data/User/GameConfig/GQCF52.ini @@ -0,0 +1,20 @@ +# GQCF52 - Call of Duty 2: Big Red One +[Core] +# Values set here will override the main dolphin settings. +MMU = 1 +[EmuState] +# The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationIssues = Slow because it needs mmu to run. +EmulationStateId = 4 +[OnLoad] +# Add memory patches to be loaded once on boot here. +[OnFrame] +[ActionReplay] +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] \ No newline at end of file diff --git a/Data/User/GameConfig/GQCI52.ini b/Data/User/GameConfig/GQCI52.ini new file mode 100644 index 0000000000..5c4a86a220 --- /dev/null +++ b/Data/User/GameConfig/GQCI52.ini @@ -0,0 +1,20 @@ +# GQCI52 - Call of Duty 2: Big Red One +[Core] +# Values set here will override the main dolphin settings. +MMU = 1 +[EmuState] +# The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationIssues = Slow because it needs mmu to run. +EmulationStateId = 4 +[OnLoad] +# Add memory patches to be loaded once on boot here. +[OnFrame] +[ActionReplay] +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Geck \ No newline at end of file diff --git a/Data/User/GameConfig/GQCP52.ini b/Data/User/GameConfig/GQCP52.ini new file mode 100644 index 0000000000..68e6d65851 --- /dev/null +++ b/Data/User/GameConfig/GQCP52.ini @@ -0,0 +1,20 @@ +# GQCP52 - Call of Duty 2: Big Red One +[Core] +# Values set here will override the main dolphin settings. +MMU = 1 +[EmuState] +# The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationIssues = Slow because it needs mmu to run. +EmulationStateId = 4 +[OnLoad] +# Add memory patches to be loaded once on boot here. +[OnFrame] +[ActionReplay] +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] \ No newline at end of file diff --git a/Data/User/GameConfig/GQCS52.ini b/Data/User/GameConfig/GQCS52.ini index 6f13ad7dbb..54fdb0d90b 100644 --- a/Data/User/GameConfig/GQCS52.ini +++ b/Data/User/GameConfig/GQCS52.ini @@ -1,18 +1,20 @@ # GQCS52 - Call of Duty 2: Big Red One - [Core] # Values set here will override the main dolphin settings. - +MMU = 1 [EmuState] # The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationIssues = Slow because it needs mmu to run. EmulationStateId = 4 - [OnLoad] # Add memory patches to be loaded once on boot here. - [OnFrame] -# Add memory patches to be applied every frame here. - [ActionReplay] -# Add action replay cheats here. - +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] diff --git a/Data/User/GameConfig/GR8D69.ini b/Data/User/GameConfig/GR8D69.ini new file mode 100644 index 0000000000..e314d09dc9 --- /dev/null +++ b/Data/User/GameConfig/GR8D69.ini @@ -0,0 +1,20 @@ +# GR8D69 - Medal of Honor Rising Sun +[Core] +# Values set here will override the main dolphin settings. +TLBHack = 1 +[EmuState] +# The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 3 +EmulationIssues = Videos are messed up, skip them. +[OnLoad] +# Add memory patches to be loaded once on boot here. +[OnFrame] +[ActionReplay] +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] diff --git a/Data/User/GameConfig/GR8E69.ini b/Data/User/GameConfig/GR8E69.ini index c2879a4b0c..9114a39003 100644 --- a/Data/User/GameConfig/GR8E69.ini +++ b/Data/User/GameConfig/GR8E69.ini @@ -1,18 +1,20 @@ # GR8E69 - Medal of Honor Rising Sun - [Core] # Values set here will override the main dolphin settings. - +TLBHack = 1 [EmuState] # The Emulation State. 1 is worst, 5 is best, 0 is not set. EmulationStateId = 3 - +EmulationIssues = Videos are messed up, skip them. [OnLoad] # Add memory patches to be loaded once on boot here. - [OnFrame] -# Add memory patches to be applied every frame here. - [ActionReplay] -# Add action replay cheats here. - +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] diff --git a/Data/User/GameConfig/GR8F69.ini b/Data/User/GameConfig/GR8F69.ini new file mode 100644 index 0000000000..4bf6f432ab --- /dev/null +++ b/Data/User/GameConfig/GR8F69.ini @@ -0,0 +1,20 @@ +# GR8F69 - Medal of Honor Rising Sun +[Core] +# Values set here will override the main dolphin settings. +TLBHack = 1 +[EmuState] +# The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 3 +EmulationIssues = Videos are messed up, skip them. +[OnLoad] +# Add memory patches to be loaded once on boot here. +[OnFrame] +[ActionReplay] +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] diff --git a/Data/User/GameConfig/GR8J69.ini b/Data/User/GameConfig/GR8J69.ini new file mode 100644 index 0000000000..7b3a2e8d96 --- /dev/null +++ b/Data/User/GameConfig/GR8J69.ini @@ -0,0 +1,20 @@ +# GR8J69 - Medal of Honor Rising Sun +[Core] +# Values set here will override the main dolphin settings. +TLBHack = 1 +[EmuState] +# The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 3 +EmulationIssues = Videos are messed up, skip them. +[OnLoad] +# Add memory patches to be loaded once on boot here. +[OnFrame] +[ActionReplay] +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] diff --git a/Data/User/GameConfig/GR8P69.ini b/Data/User/GameConfig/GR8P69.ini new file mode 100644 index 0000000000..47e646f884 --- /dev/null +++ b/Data/User/GameConfig/GR8P69.ini @@ -0,0 +1,20 @@ +# GR8P69 - Medal of Honor Rising Sun +[Core] +# Values set here will override the main dolphin settings. +TLBHack = 1 +[EmuState] +# The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 3 +EmulationIssues = Videos are messed up, skip them. +[OnLoad] +# Add memory patches to be loaded once on boot here. +[OnFrame] +[ActionReplay] +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] diff --git a/Data/User/GameConfig/GWJE52.ini b/Data/User/GameConfig/GWJE52.ini index 9617e3876c..02db0d617d 100644 --- a/Data/User/GameConfig/GWJE52.ini +++ b/Data/User/GameConfig/GWJE52.ini @@ -1,20 +1,21 @@ # GWJE52 - Tony Hawk's American Wasteland - [Core] # Values set here will override the main dolphin settings. -TLBHack=1 - +MMU = 1 [EmuState] # The Emulation State. 1 is worst, 5 is best, 0 is not set. EmulationStateId = 3 Issues="Error to compile...DC error?" - +EmulationIssues = Slow because it needs mmu to run. [OnLoad] # Add memory patches to be loaded once on boot here. - [OnFrame] -# Add memory patches to be applied every frame here. - [ActionReplay] -# Add action replay cheats here. - +[Video] +ProjectionHack = 0 +PH_SZNear = 0 +PH_SZFar = 0 +PH_ExtraParam = 0 +PH_ZNear = +PH_ZFar = +[Gecko] From c2dac38ca1376039cb2116700cbf734883518f7b Mon Sep 17 00:00:00 2001 From: skidau Date: Fri, 23 Aug 2013 12:19:10 +1000 Subject: [PATCH 11/27] Removed the Sync GPU option from the F-Zero GX ini as it slows the game down by a great deal. Made Dual Core mode the default for this game. --- Data/User/GameConfig/GFZE01.ini | 1 - Data/User/GameConfig/GFZJ01.ini | 1 - Data/User/GameConfig/GFZP01.ini | 1 - 3 files changed, 3 deletions(-) diff --git a/Data/User/GameConfig/GFZE01.ini b/Data/User/GameConfig/GFZE01.ini index dbdf33b12a..eb92d8aa74 100644 --- a/Data/User/GameConfig/GFZE01.ini +++ b/Data/User/GameConfig/GFZE01.ini @@ -4,7 +4,6 @@ # Values set here will override the main dolphin settings. EnableFPRF = True TLBHack = 1 -SyncGPU = 1 [EmuState] # The Emulation State. 1 is worst, 5 is best, 0 is not set. diff --git a/Data/User/GameConfig/GFZJ01.ini b/Data/User/GameConfig/GFZJ01.ini index 22a0191407..eae0416fb7 100644 --- a/Data/User/GameConfig/GFZJ01.ini +++ b/Data/User/GameConfig/GFZJ01.ini @@ -4,7 +4,6 @@ # Values set here will override the main dolphin settings. EnableFPRF = True TLBHack = 1 -SyncGPU = 1 [EmuState] # The Emulation State. 1 is worst, 5 is best, 0 is not set. diff --git a/Data/User/GameConfig/GFZP01.ini b/Data/User/GameConfig/GFZP01.ini index d14cc8a11d..08ad0e44e6 100644 --- a/Data/User/GameConfig/GFZP01.ini +++ b/Data/User/GameConfig/GFZP01.ini @@ -4,7 +4,6 @@ # Values set here will override the main dolphin settings. EnableFPRF = True TLBHack = 1 -SyncGPU = 1 [EmuState] # The Emulation State. 1 is worst, 5 is best, 0 is not set. From d9485cbf2306d81d1ac3264d238203a15d5566ef Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 23 Aug 2013 00:18:01 -0400 Subject: [PATCH 12/27] [Android] Only show valid files in the file browser. --- .../dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java b/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java index 2895196ff7..92a360ca25 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java @@ -50,7 +50,6 @@ public final class FolderBrowser extends Fragment // Supported extensions to filter by Set validExts = new HashSet(Arrays.asList(".gcm", ".iso", ".wbfs", ".gcz", ".dol", ".elf", ".dff")); - Set invalidExts = new HashSet(Arrays.asList(".zip", ".rar", ".7z")); // Search for any directories or files within the current dir. for(File entry : dirs) @@ -73,10 +72,6 @@ public final class FolderBrowser extends Fragment { fls.add(new FolderBrowserItem(entryName, getString(R.string.file_size)+entry.length(), entry.getAbsolutePath(), true)); } - else if (invalidExts.contains(entryName.toLowerCase().substring(entryName.lastIndexOf('.')))) - { - fls.add(new FolderBrowserItem(entryName, getString(R.string.file_size)+entry.length(), entry.getAbsolutePath(), false)); - } } } } From 7a5374258e85ad8b1c1a41030eafe10164000379 Mon Sep 17 00:00:00 2001 From: degasus Date: Fri, 23 Aug 2013 10:52:29 +0200 Subject: [PATCH 13/27] ogl: rework DriverDetails framework + detect UBO mesa bug --- Source/Core/VideoCommon/Src/DriverDetails.cpp | 60 ++++++++----------- Source/Core/VideoCommon/Src/DriverDetails.h | 26 ++++++-- .../Src/ProgramShaderCache.cpp | 4 +- Source/Plugins/Plugin_VideoOGL/Src/Render.cpp | 47 +++++++++------ 4 files changed, 74 insertions(+), 63 deletions(-) diff --git a/Source/Core/VideoCommon/Src/DriverDetails.cpp b/Source/Core/VideoCommon/Src/DriverDetails.cpp index 85b7d3a47f..0a115e1354 100644 --- a/Source/Core/VideoCommon/Src/DriverDetails.cpp +++ b/Source/Core/VideoCommon/Src/DriverDetails.cpp @@ -11,8 +11,9 @@ namespace DriverDetails { struct BugInfo { + Vendor m_vendor; // which vendor has the error + Driver m_driver; // which driver has the error Bug m_bug; // Which bug it is - u32 m_devfamily; // Which device(family) has the error double m_versionstart; // When it started double m_versionend; // When it ended bool m_hasbug; // Does it have it? @@ -21,40 +22,27 @@ namespace DriverDetails // Local members Vendor m_vendor = VENDOR_UNKNOWN; Driver m_driver = DRIVER_UNKNOWN; - u32 m_devfamily = 0; double m_version = 0.0; // This is a list of all known bugs for each vendor // We use this to check if the device and driver has a issue - BugInfo m_qualcommbugs[] = { - {BUG_NODYNUBOACCESS, 300, 14.0, -1.0}, - {BUG_BROKENCENTROID, 300, 14.0, -1.0}, - {BUG_BROKENINFOLOG, 300, -1.0, -1.0}, + BugInfo m_known_bugs[] = { + {VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, BUG_NODYNUBOACCESS, 14.0, -1.0, true}, + {VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, BUG_BROKENCENTROID, 14.0, -1.0, true}, + {VENDOR_QUALCOMM, DRIVER_QUALCOMM_3XX, BUG_BROKENINFOLOG, -1.0, -1.0, true}, + {VENDOR_MESA, DRIVER_NOUVEAU, BUG_BROKENUBO, 900, 916, true}, + {VENDOR_MESA, DRIVER_R600, BUG_BROKENUBO, 900, 913, true}, + {VENDOR_MESA, DRIVER_I965, BUG_BROKENUBO, 900, 920, true}, }; - std::map, BugInfo> m_bugs; - - // Private function - void InitBugMap() - { - switch(m_driver) - { - case DRIVER_QUALCOMM: - for (unsigned int a = 0; a < (sizeof(m_qualcommbugs) / sizeof(BugInfo)); ++a) - m_bugs[std::make_pair(m_vendor, m_qualcommbugs[a].m_bug)] = m_qualcommbugs[a]; - break; - default: - break; - } - } + std::map m_bugs; - void Init(Vendor vendor, Driver driver, const u32 devfamily, const double version) + void Init(Vendor vendor, Driver driver, const double version) { m_vendor = vendor; m_driver = driver; - m_devfamily = devfamily; m_version = version; - InitBugMap(); + if (driver == DRIVER_UNKNOWN) switch(vendor) { @@ -68,12 +56,6 @@ namespace DriverDetails case VENDOR_INTEL: m_driver = DRIVER_INTEL; break; - case VENDOR_ARM: - m_driver = DRIVER_ARM; - break; - case VENDOR_QUALCOMM: - m_driver = DRIVER_QUALCOMM; - break; case VENDOR_IMGTEC: m_driver = DRIVER_IMGTEC; break; @@ -83,16 +65,22 @@ namespace DriverDetails default: break; } - - for (auto it = m_bugs.begin(); it != m_bugs.end(); ++it) - if (it->second.m_devfamily == m_devfamily) - if (it->second.m_versionend == -1.0 || (it->second.m_versionstart <= m_version && it->second.m_versionend > m_version)) - it->second.m_hasbug = true; + + for(unsigned int a = 0; a < (sizeof(m_known_bugs) / sizeof(BugInfo)); ++a) + { + if( + ( m_known_bugs[a].m_vendor == m_vendor || m_known_bugs[a].m_vendor == VENDOR_ALL ) && + ( m_known_bugs[a].m_driver == m_driver || m_known_bugs[a].m_driver == DRIVER_ALL ) && + ( m_known_bugs[a].m_versionstart <= m_version || m_known_bugs[a].m_versionstart == -1 ) && + ( m_known_bugs[a].m_versionend > m_version || m_known_bugs[a].m_versionend == -1 ) + ) + m_bugs.insert(std::make_pair(m_known_bugs[a].m_bug, m_known_bugs[a])); + } } bool HasBug(Bug bug) { - auto it = m_bugs.find(std::make_pair(m_vendor, bug)); + auto it = m_bugs.find(bug); if (it == m_bugs.end()) return false; return it->second.m_hasbug; diff --git a/Source/Core/VideoCommon/Src/DriverDetails.h b/Source/Core/VideoCommon/Src/DriverDetails.h index cb8b104eea..efb0c7c6c0 100644 --- a/Source/Core/VideoCommon/Src/DriverDetails.h +++ b/Source/Core/VideoCommon/Src/DriverDetails.h @@ -10,7 +10,8 @@ namespace DriverDetails // Tegra and Nvidia are separated out due to such substantial differences enum Vendor { - VENDOR_NVIDIA = 0, + VENDOR_ALL = 0, + VENDOR_NVIDIA, VENDOR_ATI, VENDOR_INTEL, VENDOR_ARM, @@ -18,20 +19,25 @@ namespace DriverDetails VENDOR_IMGTEC, VENDOR_TEGRA, VENDOR_VIVANTE, + VENDOR_MESA, VENDOR_UNKNOWN }; // Enum of known drivers enum Driver { - DRIVER_NVIDIA = 0, // Official Nvidia, including mobile GPU + DRIVER_ALL = 0, + DRIVER_NVIDIA, // Official Nvidia, including mobile GPU DRIVER_NOUVEAU, // OSS nouveau DRIVER_ATI, // Official ATI - DRIVER_RADEONHD, // OSS Radeon + DRIVER_R600, // OSS Radeon DRIVER_INTEL, // Official Intel - DRIVER_ARM, // Official Mali driver + DRIVER_I965, // OSS Intel + DRIVER_ARM_4XX, // Official Mali driver + DRIVER_ARM_T6XX, // Official Mali driver DRIVER_LIMA, // OSS Mali driver - DRIVER_QUALCOMM, // Official Adreno driver + DRIVER_QUALCOMM_3XX, // Official Adreno driver 3xx + DRIVER_QUALCOMM_2XX, // Official Adreno driver 2xx DRIVER_FREEDRENO, // OSS Adreno driver DRIVER_IMGTEC, // OSS PowerVR driver DRIVER_VIVANTE, // Official vivante driver @@ -69,10 +75,18 @@ namespace DriverDetails // Adreno devices /always/ return 0 when querying GL_INFO_LOG_LENGTH // They also max out at 1024 bytes(1023 characters + null terminator) for the log BUG_BROKENINFOLOG, + // Bug: UBO buffer offset broken + // Affected devices: all mesa drivers + // Started Version: 9.0 (mesa doesn't support ubo before) + // Ended Version: up to 9.2 + // The offset of glBindBufferRange was ignored on all Mesa Gallium3D drivers until 9.1.3 + // Nouveau stored the offset as u16 which isn't enough for all cases with range until 9.1.6 + // I965 has broken data fetches from uniform buffers which results in a dithering until 9.2.0 + BUG_BROKENUBO, }; // Initializes our internal vendor, device family, and driver version - void Init(Vendor vendor, Driver driver, const u32 devfamily, const double version); + void Init(Vendor vendor, Driver driver, const double version); // Once Vendor and driver version is set, this will return if it has the applicable bug passed to it. bool HasBug(Bug bug); diff --git a/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp b/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp index d1684f0df5..d7cafb49ca 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp @@ -538,8 +538,8 @@ void ProgramShaderCache::CreateHeader ( void ) , v==GLSL_120 ? "attribute" : "in" , v==GLSL_120 ? "attribute" : "out" - , DriverDetails::HasBug(DriverDetails::BUG_BROKENCENTROID) ? "in" : v==GLSL_120 ? "varying" : "centroid in" - , DriverDetails::HasBug(DriverDetails::BUG_BROKENCENTROID) ? "out" : v==GLSL_120 ? "varying" : "centroid out" + , v==GLSL_120 ? "varying" : DriverDetails::HasBug(DriverDetails::BUG_BROKENCENTROID) ? "in" : "centroid in" + , v==GLSL_120 ? "varying" : DriverDetails::HasBug(DriverDetails::BUG_BROKENCENTROID) ? "out" : "centroid out" , v==GLSL_120 ? "#define texture texture2D" : "" , v==GLSL_120 ? "#define round(x) floor((x)+0.5f)" : "" diff --git a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp index a60aa15a9b..bfeaab6282 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp @@ -271,9 +271,9 @@ void InitDriverInfo() { std::string svendor = std::string(g_ogl_config.gl_vendor); std::string srenderer = std::string(g_ogl_config.gl_renderer); + std::string sversion = std::string(g_ogl_config.gl_version); DriverDetails::Vendor vendor = DriverDetails::VENDOR_UNKNOWN; DriverDetails::Driver driver = DriverDetails::DRIVER_UNKNOWN; - u32 devfamily = 0; double version = 0.0; // Get the vendor first @@ -281,13 +281,12 @@ void InitDriverInfo() vendor = DriverDetails::VENDOR_NVIDIA; else if (svendor == "ATI Technologies Inc." || svendor == "Advanced Micro Devices, Inc.") vendor = DriverDetails::VENDOR_ATI; + else if (std::string::npos != sversion.find("Mesa")) + vendor = DriverDetails::VENDOR_MESA; else if (std::string::npos != svendor.find("Intel")) vendor = DriverDetails::VENDOR_INTEL; else if (svendor == "ARM") - { vendor = DriverDetails::VENDOR_ARM; - driver = DriverDetails::DRIVER_ARM; - } else if (svendor == "http://limadriver.org/") { vendor = DriverDetails::VENDOR_ARM; @@ -308,24 +307,40 @@ void InitDriverInfo() case DriverDetails::VENDOR_QUALCOMM: { if (std::string::npos != srenderer.find("Adreno (TM) 3")) - devfamily = 300; + driver = DriverDetails::DRIVER_QUALCOMM_3XX; else - devfamily = 200; + driver = DriverDetails::DRIVER_QUALCOMM_2XX; double glVersion; sscanf(g_ogl_config.gl_version, "OpenGL ES %lg V@%lg", &glVersion, &version); } break; case DriverDetails::VENDOR_ARM: if (std::string::npos != srenderer.find("Mali-T6")) - devfamily = 600; + driver = DriverDetails::DRIVER_ARM_T6XX; else if(std::string::npos != srenderer.find("Mali-4")) - devfamily = 400; + driver = DriverDetails::DRIVER_ARM_4XX; + break; + case DriverDetails::VENDOR_MESA: + { + if(svendor == "nouveau") + driver = DriverDetails::DRIVER_NOUVEAU; + else if(svendor == "Intel Open Source Technology Center") + driver = DriverDetails::DRIVER_I965; + else if(std::string::npos != srenderer.find("AMD") || std::string::npos != srenderer.find("ATI")) + driver = DriverDetails::DRIVER_R600; + + int major = 0; + int minor = 0; + int release = 0; + sscanf(g_ogl_config.gl_version, "%*s Mesa %d.%d.%d", &major, &minor, &release); + version = 100*major + 10*minor + release; + } break; // We don't care about these default: break; } - DriverDetails::Init(vendor, driver, devfamily, version); + DriverDetails::Init(vendor, driver, version); } // Init functions @@ -491,18 +506,12 @@ Renderer::Renderer() if(g_ogl_config.max_samples < 1) g_ogl_config.max_samples = 1; - if(g_Config.backend_info.bSupportsGLSLUBO && ( - // hd3000 get corruption, hd4000 also and a big slowdown - !strcmp(g_ogl_config.gl_vendor, "Intel Open Source Technology Center") && ( - !strcmp(g_ogl_config.gl_version, "3.0 Mesa 9.0.0") || - !strcmp(g_ogl_config.gl_version, "3.0 Mesa 9.0.1") || - !strcmp(g_ogl_config.gl_version, "3.0 Mesa 9.0.2") || - !strcmp(g_ogl_config.gl_version, "3.0 Mesa 9.0.3") || - !strcmp(g_ogl_config.gl_version, "3.0 Mesa 9.1.0") || - !strcmp(g_ogl_config.gl_version, "3.0 Mesa 9.1.1") ) - )) { + if(g_Config.backend_info.bSupportsGLSLUBO && DriverDetails::HasBug(DriverDetails::BUG_BROKENUBO)) + { g_Config.backend_info.bSupportsGLSLUBO = false; ERROR_LOG(VIDEO, "Buggy driver detected. Disable UBO"); + OSD::AddMessage("Major performance warning: Buggy GPU driver detected.", 20000); + OSD::AddMessage("Please either install the closed-source GPU driver or update your Mesa 3D version.", 20000); } UpdateActiveConfig(); From 23ff31451fdbff600e02b7279f9e54061cfad9d7 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Sun, 18 Aug 2013 09:43:01 -0400 Subject: [PATCH 14/27] NetPlay: Rework pad mapping Pad mapping and the UI behind it is significantly confusing, and has been confusing users since NetPlay was introduced. As part of a large code cleanup to help NetPlay more stable, introduce a better pad mapping system where local pad mapping is handled by the client. Now, all the server and other clients know is which player have which controllers, and the clients only know this so they can show the pad mapping in the UI; they don't do anything else with it. A future cleanup will use this pad mapping data to completely ignore the pads configured in the settings pane on the host. --- Source/Core/Core/Src/NetPlayClient.cpp | 211 ++++++++++-------------- Source/Core/Core/Src/NetPlayClient.h | 27 ++- Source/Core/Core/Src/NetPlayProto.h | 2 +- Source/Core/Core/Src/NetPlayServer.cpp | 145 +++------------- Source/Core/Core/Src/NetPlayServer.h | 8 +- Source/Core/DolphinWX/Src/NetWindow.cpp | 78 ++++----- Source/Core/DolphinWX/Src/NetWindow.h | 5 +- 7 files changed, 163 insertions(+), 313 deletions(-) diff --git a/Source/Core/Core/Src/NetPlayClient.cpp b/Source/Core/Core/Src/NetPlayClient.cpp index 33f31a1815..fc8f005fad 100644 --- a/Source/Core/Core/Src/NetPlayClient.cpp +++ b/Source/Core/Core/Src/NetPlayClient.cpp @@ -23,22 +23,6 @@ NetSettings g_NetPlaySettings; #define RPT_SIZE_HACK (1 << 16) -NetPlayClient::Player::Player() -{ - memset(pad_map, -1, sizeof(pad_map)); -} - -// called from ---GUI--- thread -std::string NetPlayClient::Player::ToString() const -{ - std::ostringstream ss; - ss << name << '[' << (char)(pid+'0') << "] : " << revision << " |"; - for (unsigned int i=0; i<4; ++i) - ss << (pad_map[i]>=0 ? (char)(pad_map[i]+'1') : '-'); - ss << " | " << ping << "ms"; - return ss.str(); -} - NetPad::NetPad() { nHi = 0x00808080; @@ -200,16 +184,8 @@ unsigned int NetPlayClient::OnData(sf::Packet& packet) case NP_MSG_PAD_MAPPING : { - PlayerId pid; - packet >> pid; - - { - std::lock_guard lkp(m_crit.players); - Player& player = m_players[pid]; - - for (unsigned int i=0; i<4; ++i) - packet >> player.pad_map[i]; - } + for (PadMapping i = 0; i < 4; i++) + packet >> m_pad_map[i]; m_dialog->Update(); } @@ -223,7 +199,7 @@ unsigned int NetPlayClient::OnData(sf::Packet& packet) // trusting server for good map value (>=0 && <4) // add to pad buffer - m_pad_buffer[(unsigned)map].Push(np); + m_pad_buffer[map].Push(np); } break; @@ -361,13 +337,36 @@ void NetPlayClient::GetPlayerList(std::string& list, std::vector& pid_list) e = m_players.end(); for ( ; i!=e; ++i) { - ss << i->second.ToString() << '\n'; - pid_list.push_back(i->second.pid); + const Player *player = &(i->second); + ss << player->name << "[" << (int)player->pid << "] : " << player->revision << " | "; + for (unsigned int j = 0; j < 4; j++) + { + if (m_pad_map[j] == player->pid) + ss << j + 1; + else + ss << '-'; + } + ss << " | " << player->ping << "ms\n"; + pid_list.push_back(player->pid); } list = ss.str(); } +// called from ---GUI--- thread +void NetPlayClient::GetPlayers(std::vector &player_list) +{ + std::lock_guard lkp(m_crit.players); + std::map::const_iterator + i = m_players.begin(), + e = m_players.end(); + for ( ; i!=e; ++i) + { + const Player *player = &(i->second); + player_list.push_back(player); + } +} + // called from ---GUI--- thread void NetPlayClient::SendChatMessage(const std::string& msg) @@ -381,12 +380,12 @@ void NetPlayClient::SendChatMessage(const std::string& msg) } // called from ---CPU--- thread -void NetPlayClient::SendPadState(const PadMapping local_nb, const NetPad& np) +void NetPlayClient::SendPadState(const PadMapping in_game_pad, const NetPad& np) { // send to server sf::Packet spac; spac << (MessageId)NP_MSG_PAD_DATA; - spac << local_nb; // local pad num + spac << in_game_pad; spac << np.nHi << np.nLo; std::lock_guard lks(m_crit.send); @@ -457,13 +456,35 @@ void NetPlayClient::ClearBuffers() // called from ---CPU--- thread bool NetPlayClient::GetNetPads(const u8 pad_nb, const SPADStatus* const pad_status, NetPad* const netvalues) { - { - std::lock_guard lkp(m_crit.players); + // The interface for this is extremely silly. + // + // Imagine a physical device that links three Gamecubes together + // and emulates NetPlay that way. Which Gamecube controls which + // in-game controllers can be configured on the device (m_pad_map) + // but which sockets on each individual Gamecube should be used + // to control which players? The solution that Dolphin uses is + // that we hardcode the knowledge that they go in order, so if + // you have a 3P game with three gamecubes, then every single + // controller should be plugged into slot 1. + // + // If you have a 4P game, then one of the Gamecubes will have + // a controller plugged into slot 1, and another in slot 2. + // + // The slot number is the "local" pad number, and what player + // it actually means is the "in-game" pad number. + // + // The interface here gives us the status of local pads, and + // expects to get back "in-game" pad numbers back in response. + // e.g. it asks "here's the input that slot 1 has, and by the + // way, what's the state of P1?" + // + // We should add this split between "in-game" pads and "local" + // pads higher up. - // in game mapping for this local pad - unsigned int in_game_num = m_local_player->pad_map[pad_nb]; + int in_game_num = GetPadNum(pad_nb); - // does this local pad map in game? + // If this in-game pad is one of ours, then update from the + // information given. if (in_game_num < 4) { NetPad np(pad_status); @@ -476,89 +497,36 @@ bool NetPlayClient::GetNetPads(const u8 pad_nb, const SPADStatus* const pad_stat m_pad_buffer[in_game_num].Push(np); // send - SendPadState(pad_nb, np); + SendPadState(in_game_num, np); } } - } // unlock players - - //Common::Timer bufftimer; - //bufftimer.Start(); - - // get padstate from buffer and send to game + // Now, we need to swap out the local value with the values + // retrieved from NetPlay. This could be the value we pushed + // above if we're configured as P1 and the code is trying + // to retrieve data for slot 1. while (!m_pad_buffer[pad_nb].Pop(*netvalues)) { - // wait for receiving thread to push some data - Common::SleepCurrentThread(1); - - if (false == m_is_running) + if (!m_is_running) return false; - // TODO: check the time of bufftimer here, - // if it gets pretty high, ask the user if they want to disconnect - + // TODO: use a condition instead of sleeping + Common::SleepCurrentThread(1); } - //u64 hangtime = bufftimer.GetTimeElapsed(); - //if (hangtime > 10) - //{ - // std::ostringstream ss; - // ss << "Pad " << (int)pad_nb << ": Had to wait " << hangtime << "ms for pad data. (increase pad Buffer maybe)"; - // Core::DisplayMessage(ss.str(), 1000); - //} - return true; } // called from ---CPU--- thread void NetPlayClient::WiimoteInput(int _number, u16 _channelID, const void* _pData, u32 _Size) { - //// in game mapping for this local wiimote - unsigned int in_game_num = m_local_player->pad_map[_number]; // just using gc pad_map for now - - // does this local pad map in game? - if (in_game_num < 4) - { - m_wiimote_input[_number].resize(m_wiimote_input[_number].size() + 1); - m_wiimote_input[_number].back().assign((char*)_pData, (char*)_pData + _Size); - m_wiimote_input[_number].back().channel = _channelID; - } + // XXX } // called from ---CPU--- thread void NetPlayClient::WiimoteUpdate(int _number) { - { - std::lock_guard lkp(m_crit.players); - - // in game mapping for this local wiimote - unsigned int in_game_num = m_local_player->pad_map[_number]; // just using gc pad_map for now - - // does this local pad map in game? - if (in_game_num < 4) - { - m_wiimote_buffer[in_game_num].Push(m_wiimote_input[_number]); - - // TODO: send it - - m_wiimote_input[_number].clear(); - } - - } // unlock players - - if (0 == m_wiimote_buffer[_number].Size()) - { - //PanicAlert("PANIC"); - return; - } - - NetWiimote nw; - m_wiimote_buffer[_number].Pop(nw); - - NetWiimote::const_iterator - i = nw.begin(), e = nw.end(); - for ( ; i!=e; ++i) - Core::Callback_WiimoteInterruptChannel(_number, i->channel, &(*i)[0], (u32)i->size() + RPT_SIZE_HACK); + // XXX } // called from ---GUI--- thread and ---NETPLAY--- thread (client side) @@ -586,13 +554,21 @@ bool NetPlayClient::StopGame() // called from ---CPU--- thread u8 NetPlayClient::GetPadNum(u8 numPAD) { - // TODO: i don't like that this loop is running everytime there is rumble - unsigned int i = 0; - for (; i<4; ++i) - if (numPAD == m_local_player->pad_map[i]) - break; + // Figure out which in-game pad maps to which local pad. + // The logic we have here is that the local slots always + // go in order. + int local_pad_count = -1; + int ingame_pad = 0; + for (; ingame_pad < 4; ingame_pad++) + { + if (m_pad_map[ingame_pad] == m_local_player->pid) + local_pad_count++; - return i; + if (local_pad_count == numPAD) + break; + } + + return ingame_pad; } // stuff hacked into dolphin @@ -658,22 +634,13 @@ u8 CSIDevice_DanceMat::NetPlay_GetPadNum(u8 numPAD) //void CWII_IPC_HLE_Device_usb_oh1_57e_305::NetPlay_WiimoteUpdate(int _number) void CWII_IPC_HLE_Device_usb_oh1_57e_305::NetPlay_WiimoteUpdate(int) { - //CritLocker crit(crit_netplay_client); - - //if (netplay_client) - // netplay_client->WiimoteUpdate(_number); } // called from ---CPU--- thread // int CWII_IPC_HLE_WiiMote::NetPlay_GetWiimoteNum(int _number) { - //CritLocker crit(crit_netplay_client); - - //if (netplay_client) - // return netplay_client->GetPadNum(_number); // just using gcpad mapping for now - //else - return _number; + return _number; } // called from ---CPU--- thread @@ -684,19 +651,7 @@ bool CWII_IPC_HLE_WiiMote::NetPlay_WiimoteInput(int, u16, const void*, u32&) std::lock_guard lk(crit_netplay_client); if (netplay_client) - //{ - // if (_Size >= RPT_SIZE_HACK) - // { - // _Size -= RPT_SIZE_HACK; - // return false; - // } - // else - // { - // netplay_client->WiimoteInput(_number, _channelID, _pData, _Size); - // // don't use this packet - return true; - // } - //} + return true; else return false; } diff --git a/Source/Core/Core/Src/NetPlayClient.h b/Source/Core/Core/Src/NetPlayClient.h index d44a4c84b8..23529dbb95 100644 --- a/Source/Core/Core/Src/NetPlayClient.h +++ b/Source/Core/Core/Src/NetPlayClient.h @@ -50,6 +50,15 @@ public: extern NetSettings g_NetPlaySettings; +class Player +{ + public: + PlayerId pid; + std::string name; + std::string revision; + u32 ping; +}; + class NetPlayClient { public: @@ -59,6 +68,7 @@ public: ~NetPlayClient(); void GetPlayerList(std::string& list, std::vector& pid_list); + void GetPlayers(std::vector& player_list); bool is_connected; @@ -84,19 +94,6 @@ protected: std::recursive_mutex players, send; } m_crit; - class Player - { - public: - Player(); - std::string ToString() const; - - PlayerId pid; - std::string name; - PadMapping pad_map[4]; - std::string revision; - u32 ping; - }; - Common::FifoQueue m_pad_buffer[4]; Common::FifoQueue m_wiimote_buffer[4]; @@ -117,8 +114,10 @@ protected: u32 m_current_game; + PadMapping m_pad_map[4]; + private: - void SendPadState(const PadMapping local_nb, const NetPad& np); + void SendPadState(const PadMapping in_game_pad, const NetPad& np); unsigned int OnData(sf::Packet& packet); PlayerId m_pid; diff --git a/Source/Core/Core/Src/NetPlayProto.h b/Source/Core/Core/Src/NetPlayProto.h index d4abf60cb8..432b9766e5 100644 --- a/Source/Core/Core/Src/NetPlayProto.h +++ b/Source/Core/Core/Src/NetPlayProto.h @@ -24,7 +24,7 @@ struct Rpt : public std::vector typedef std::vector NetWiimote; -#define NETPLAY_VERSION "Dolphin NetPlay 2013-08-18" +#define NETPLAY_VERSION "Dolphin NetPlay 2013-08-23" // messages enum diff --git a/Source/Core/Core/Src/NetPlayServer.cpp b/Source/Core/Core/Src/NetPlayServer.cpp index 134045c5bf..30b1d26664 100644 --- a/Source/Core/Core/Src/NetPlayServer.cpp +++ b/Source/Core/Core/Src/NetPlayServer.cpp @@ -4,11 +4,6 @@ #include "NetPlayServer.h" -NetPlayServer::Client::Client() -{ - memset(pad_map, -1, sizeof(pad_map)); -} - NetPlayServer::~NetPlayServer() { if (is_connected) @@ -29,6 +24,7 @@ NetPlayServer::~NetPlayServer() // called from ---GUI--- thread NetPlayServer::NetPlayServer(const u16 port) : is_connected(false), m_is_running(false) { + memset(m_pad_map, -1, sizeof(m_pad_map)); if (m_socket.Listen(port)) { is_connected = true; @@ -155,45 +151,16 @@ unsigned int NetPlayServer::OnConnect(sf::SocketTCP& socket) rpac >> player.name; // give new client first available id - player.pid = 0; - std::map::const_iterator - i, - e = m_players.end(); - for (PlayerId p = 1; 0 == player.pid; ++p) - { - for (i = m_players.begin(); ; ++i) - { - if (e == i) - { - player.pid = p; - break; - } - if (p == i->second.pid) - break; - } - } + player.pid = m_players.size() + 1; - // TODO: this is crappy // try to automatically assign new user a pad + for (unsigned int m = 0; m < 4; ++m) { - bool is_mapped[4] = {false,false,false,false}; - - for ( unsigned int m = 0; m<4; ++m) - { - for (i = m_players.begin(); i!=e; ++i) + if (m_pad_map[m] == -1) { - if (i->second.pad_map[m] >= 0) - is_mapped[(unsigned)i->second.pad_map[m]] = true; - } - } - - for ( unsigned int m = 0; m<4; ++m) - if (false == is_mapped[m]) - { - player.pad_map[0] = m; + m_pad_map[m] = player.pid; break; } - } { @@ -221,6 +188,9 @@ unsigned int NetPlayServer::OnConnect(sf::SocketTCP& socket) } // sync values with new client + std::map::const_iterator + i, + e = m_players.end(); for (i = m_players.begin(); i!=e; ++i) { spac.Clear(); @@ -279,83 +249,28 @@ unsigned int NetPlayServer::OnDisconnect(sf::SocketTCP& socket) } // called from ---GUI--- thread -bool NetPlayServer::GetPadMapping(const int pid, int map[]) +void NetPlayServer::GetPadMapping(PadMapping map[4]) { - std::lock_guard lkp(m_crit.players); - std::map::const_iterator - i = m_players.begin(), - e = m_players.end(); - for (; i!=e; ++i) - if (pid == i->second.pid) - break; - - // player not found - if (i == e) - return false; - - // get pad mapping - for (unsigned int m = 0; m<4; ++m) - map[m] = i->second.pad_map[m]; - - return true; + for (int i = 0; i < 4; i++) + map[i] = m_pad_map[i]; } // called from ---GUI--- thread -bool NetPlayServer::SetPadMapping(const int pid, const int map[]) +void NetPlayServer::SetPadMapping(const PadMapping map[4]) { - std::lock_guard lkg(m_crit.game); - if (m_is_running) - return false; - - std::lock_guard lkp(m_crit.players); - std::map::iterator - i = m_players.begin(), - e = m_players.end(); - for (; i!=e; ++i) - if (pid == i->second.pid) - break; - - // player not found - if (i == e) - return false; - - Client& player = i->second; - - // set pad mapping - for (unsigned int m = 0; m<4; ++m) - { - player.pad_map[m] = (PadMapping)map[m]; - - // remove duplicate mappings - for (i = m_players.begin(); i!=e; ++i) - for (unsigned int p = 0; p<4; ++p) - if (p != m || i->second.pid != pid) - if (player.pad_map[m] == i->second.pad_map[p]) - i->second.pad_map[p] = -1; - } - - std::lock_guard lks(m_crit.send); - UpdatePadMapping(); // sync pad mappings with everyone - - return true; + for (int i = 0; i < 4; i++) + m_pad_map[i] = map[i]; + UpdatePadMapping(); } -// called from ---NETPLAY--- thread +// called from ---GUI--- thread and ---NETPLAY--- thread void NetPlayServer::UpdatePadMapping() { - std::map::const_iterator - i = m_players.begin(), - e = m_players.end(); - for (; i!=e; ++i) - { - sf::Packet spac; - spac << (MessageId)NP_MSG_PAD_MAPPING; - spac << i->second.pid; - for (unsigned int pm = 0; pm<4; ++pm) - spac << i->second.pad_map[pm]; - SendToClients(spac); - } - + sf::Packet spac; + spac << (MessageId)NP_MSG_PAD_MAPPING; + for (int i = 0; i < 4; i++) + spac << m_pad_map[i]; + SendToClients(spac); } // called from ---GUI--- thread and ---NETPLAY--- thread @@ -415,23 +330,15 @@ unsigned int NetPlayServer::OnData(sf::Packet& packet, sf::SocketTCP& socket) int hi, lo; packet >> map >> hi >> lo; - // check if client's pad indeed maps in game - if (map >= 0 && map < 4) - map = player.pad_map[(unsigned)map]; - else - map = -1; - - // if not, they are hacking, so disconnect them - // this could happen right after a pad map change, but that isn't implemented yet - if (map < 0) + // If the data is not from the correct player, + // then disconnect them. + if (m_pad_map[map] != player.pid) return 1; - - // relay to clients + // Relay to clients sf::Packet spac; spac << (MessageId)NP_MSG_PAD_DATA; - spac << map; // in game mapping - spac << hi << lo; + spac << map << hi << lo; std::lock_guard lks(m_crit.send); SendToClients(spac, player.pid); diff --git a/Source/Core/Core/Src/NetPlayServer.h b/Source/Core/Core/Src/NetPlayServer.h index 4ef601bf06..5fbdb42802 100644 --- a/Source/Core/Core/Src/NetPlayServer.h +++ b/Source/Core/Core/Src/NetPlayServer.h @@ -35,8 +35,8 @@ public: bool StartGame(const std::string &path); bool StopGame(); - bool GetPadMapping(const int pid, int map[]); - bool SetPadMapping(const int pid, const int map[]); + void GetPadMapping(PadMapping map[]); + void SetPadMapping(const PadMapping map[]); void AdjustPadBufferSize(unsigned int size); @@ -50,11 +50,8 @@ private: class Client { public: - Client(); - PlayerId pid; std::string name; - PadMapping pad_map[4]; std::string revision; sf::SocketTCP socket; @@ -77,6 +74,7 @@ private: bool m_update_pings; u32 m_current_game; unsigned int m_target_buffer_size; + PadMapping m_pad_map[4]; std::map m_players; diff --git a/Source/Core/DolphinWX/Src/NetWindow.cpp b/Source/Core/DolphinWX/Src/NetWindow.cpp index 7f1b7c6866..c01b3b788e 100644 --- a/Source/Core/DolphinWX/Src/NetWindow.cpp +++ b/Source/Core/DolphinWX/Src/NetWindow.cpp @@ -559,23 +559,13 @@ void NetPlayDiag::OnChangeGame(wxCommandEvent&) void NetPlayDiag::OnConfigPads(wxCommandEvent&) { - int mapping[4]; - - // get selected player id - int pid = m_player_lbox->GetSelection(); - if (pid < 0) - return; - pid = m_playerids.at(pid); - - if (false == netplay_server->GetPadMapping(pid, mapping)) - return; - - PadMapDiag pmd(this, mapping); + PadMapping mapping[4]; + std::vector player_list; + netplay_server->GetPadMapping(mapping); + netplay_client->GetPlayers(player_list); + PadMapDiag pmd(this, mapping, player_list); pmd.ShowModal(); - - if (false == netplay_server->SetPadMapping(pid, mapping)) - PanicAlertT("Could not set pads. The player left or the game is currently running!\n" - "(setting pads while the game is running is not yet supported)"); + netplay_server->SetPadMapping(mapping); } ChangeGameDiag::ChangeGameDiag(wxWindow* const parent, const CGameListCtrl* const game_list, wxString& game_name) @@ -605,45 +595,39 @@ void ChangeGameDiag::OnPick(wxCommandEvent& event) EndModal(wxID_OK); } -PadMapDiag::PadMapDiag(wxWindow* const parent, int map[]) +PadMapDiag::PadMapDiag(wxWindow* const parent, PadMapping map[], std::vector& player_list) : wxDialog(parent, wxID_ANY, _("Configure Pads"), wxDefaultPosition, wxDefaultSize) , m_mapping(map) + , m_player_list(player_list) { wxBoxSizer* const h_szr = new wxBoxSizer(wxHORIZONTAL); - h_szr->AddSpacer(20); - - // labels - wxBoxSizer* const label_szr = new wxBoxSizer(wxVERTICAL); - label_szr->Add(new wxStaticText(this, wxID_ANY, _("Local")), 0, wxALIGN_TOP); - label_szr->AddStretchSpacer(1); - label_szr->Add(new wxStaticText(this, wxID_ANY, _("In-Game")), 0, wxALIGN_BOTTOM); - - h_szr->Add(label_szr, 1, wxTOP | wxEXPAND, 20); - - // set up choices - wxString pad_names[5]; - pad_names[0] = _("None"); - for (unsigned int i=1; i<5; ++i) - pad_names[i] = wxString(_("Pad ")) + (wxChar)(wxT('0')+i); + wxArrayString player_names; + player_names.Add(_("None")); + for (unsigned int i = 0; i < m_player_list.size(); i++) + player_names.Add(m_player_list[i]->name); for (unsigned int i=0; i<4; ++i) { - wxChoice* const pad_cbox = m_map_cbox[i] - = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 5, pad_names); - pad_cbox->Select(m_mapping[i] + 1); - - pad_cbox->Bind(wxEVT_COMMAND_CHOICE_SELECTED, &PadMapDiag::OnAdjust, this); - wxBoxSizer* const v_szr = new wxBoxSizer(wxVERTICAL); - v_szr->Add(new wxStaticText(this,wxID_ANY, pad_names[i + 1]), 1, wxALIGN_CENTER_HORIZONTAL); - v_szr->Add(pad_cbox, 1); + v_szr->Add(new wxStaticText(this, wxID_ANY, (wxString(_("Pad ")) + (wxChar)(wxT('0')+i))), + 1, wxALIGN_CENTER_HORIZONTAL); + + m_map_cbox[i] = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, player_names); + m_map_cbox[i]->Bind(wxEVT_COMMAND_CHOICE_SELECTED, &PadMapDiag::OnAdjust, this); + if (m_mapping[i] == -1) + m_map_cbox[i]->Select(0); + else + for (unsigned int j = 0; j < m_player_list.size(); j++) + if (m_mapping[i] == m_player_list[j]->pid) + m_map_cbox[i]->Select(j + 1); + + v_szr->Add(m_map_cbox[i], 1); h_szr->Add(v_szr, 1, wxTOP | wxEXPAND, 20); + h_szr->AddSpacer(10); } - h_szr->AddSpacer(20); - wxBoxSizer* const main_szr = new wxBoxSizer(wxVERTICAL); main_szr->Add(h_szr); main_szr->AddSpacer(5); @@ -656,8 +640,14 @@ PadMapDiag::PadMapDiag(wxWindow* const parent, int map[]) void PadMapDiag::OnAdjust(wxCommandEvent& event) { (void)event; - for (unsigned int i=0; i<4; ++i) - m_mapping[i] = m_map_cbox[i]->GetSelection() - 1; + for (unsigned int i = 0; i < 4; i++) + { + int player_idx = m_map_cbox[i]->GetSelection(); + if (player_idx > 0) + m_mapping[i] = m_player_list[player_idx - 1]->pid; + else + m_mapping[i] = -1; + } } void NetPlay::StopGame() diff --git a/Source/Core/DolphinWX/Src/NetWindow.h b/Source/Core/DolphinWX/Src/NetWindow.h index 75f9964e9d..3f8502a6ee 100644 --- a/Source/Core/DolphinWX/Src/NetWindow.h +++ b/Source/Core/DolphinWX/Src/NetWindow.h @@ -124,13 +124,14 @@ private: class PadMapDiag : public wxDialog { public: - PadMapDiag(wxWindow* const parent, int map[]); + PadMapDiag(wxWindow* const parent, PadMapping map[], std::vector& player_list); private: void OnAdjust(wxCommandEvent& event); wxChoice* m_map_cbox[4]; - int* const m_mapping; + PadMapping* const m_mapping; + std::vector& m_player_list; }; namespace NetPlay From 654b0dbfa813e913fa56f8125cd3a79806c8b11d Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 23 Aug 2013 09:43:55 -0400 Subject: [PATCH 15/27] [Android] Fix the removal of duplicate items from the gamelist. This should have initially been a nested loop since it now guarantees every item in the list is checked. Also, removed some unused code and documented some things. --- .../org/dolphinemu/dolphinemu/DolphinEmulator.java | 3 ++- .../dolphinemu/folderbrowser/FolderBrowser.java | 13 ++----------- .../dolphinemu/gamelist/GameListFragment.java | 9 +++++---- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java b/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java index b708b756b5..a616df609a 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/DolphinEmulator.java @@ -128,6 +128,8 @@ public final class DolphinEmulator extends Activity CopyAsset("setting-usa.txt", WiiDir + File.separator + "setting-usa.txt"); } + // Load the configuration keys set in the Dolphin ini and gfx ini files + // into the application's shared preferences. UserPreferences.LoadDolphinConfigToPrefs(this); } } @@ -148,7 +150,6 @@ public final class DolphinEmulator extends Activity String FileName = data.getStringExtra("Select"); GLview = new NativeGLSurfaceView(this); this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - String backend = NativeLibrary.GetConfig("Dolphin.ini", "Core", "GFXBackend", "Software Renderer"); NativeLibrary.SetDimensions((int)screenWidth, (int)screenHeight); NativeLibrary.SetFilename(FileName); setContentView(GLview); diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java b/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java index 92a360ca25..26e170c6e0 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java @@ -132,17 +132,8 @@ public final class FolderBrowser extends Fragment { super.onAttach(activity); - // This makes sure that the container activity has implemented - // the callback interface. If not, it throws an exception - try - { - m_activity = activity; - } - catch (ClassCastException e) - { - throw new ClassCastException(activity.toString() - + " must implement OnGameListZeroListener"); - } + // Cache the activity instance. + m_activity = activity; } diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java index d77741016b..5b42fe73c9 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java @@ -95,11 +95,12 @@ public final class GameListFragment extends Fragment // so there should be no worries about accidentally removing a valid game. for (int i = 0; i < fls.size(); i++) { - int indexNext = i+1; - - if (indexNext < fls.size() && fls.get(indexNext).getPath().contains(fls.get(i).getPath())) + for (int j = i+1; j < fls.size(); j++) { - fls.remove(indexNext); + if (fls.get(j).getPath().equals(fls.get(i).getPath())) + { + fls.remove(j); + } } } From 70dab0d8396db540b8759307f7d19384cb1f960e Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 23 Aug 2013 10:15:36 -0400 Subject: [PATCH 16/27] [Android] Document most of the native functions in NativeLibrary.java. --- .../dolphinemu/dolphinemu/NativeLibrary.java | 70 ++++++++++++++++++- 1 file changed, 68 insertions(+), 2 deletions(-) diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java b/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java index 8622026b97..dedd824c87 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/NativeLibrary.java @@ -18,17 +18,83 @@ public final class NativeLibrary public static native void onTouchEvent(int Action, float X, float Y); public static native void onGamePadEvent(String Device, int Button, int Action); public static native void onGamePadMoveEvent(String Device, int Axis, float Value); - public static native String GetConfig(String configFile, String Key, String Value, String Default); - public static native void SetConfig(String configFile, String Key, String Value, String Default); + + /** + * Gets a value from a key in the given ini-based config file. + * + * @param configFile The ini-based config file to get the value from. + * @param Section The section key that the actual key is in. + * @param Key The key to get the value from. + * @param Default The value to return in the event the given key doesn't exist. + * + * @return the value stored at the key, or a default value if it doesn't exist. + */ + public static native String GetConfig(String configFile, String Section, String Key, String Default); + + /** + * Sets a value to a key in the given ini config file. + * + * @param configFile The ini-based config file to add the value to. + * @param Section The section key for the ini key + * @param Key The actual ini key to set. + * @param Value The string to set the ini key to. + */ + public static native void SetConfig(String configFile, String Section, String Key, String Value); + + /** + * Sets the filename to be run during emulation. + * + * @param filename The filename to be run during emulation. + */ public static native void SetFilename(String filename); + + /** + * Sets the dimensions of the rendering window. + * + * @param width The new width of the rendering window (in pixels). + * @param height The new height of the rendering window (in pixels). + */ public static native void SetDimensions(int width, int height); + + /** + * Gets the embedded banner within the given ISO/ROM. + * + * @param filename the file path to the ISO/ROM. + * + * @return an integer array containing the color data for the banner. + */ public static native int[] GetBanner(String filename); + + /** + * Gets the embedded title of the given ISO/ROM. + * + * @param filename The file path to the ISO/ROM. + * + * @return the embedded title of the ISO/ROM. + */ public static native String GetTitle(String filename); + + /** + * Gets the Dolphin version string. + * + * @return the Dolphin version string. + */ public static native String GetVersionString(); + /** + * Begins emulation. + * + * @param surf The surface to render to. + */ public static native void Run(Surface surf); + + /** Unpauses emulation from a paused state. */ public static native void UnPauseEmulation(); + + /** Pauses emulation. */ public static native void PauseEmulation(); + + /** Stops emulation. */ public static native void StopEmulation(); static From c2aef25f4c504bd1d0de6777b54e104227b8bee5 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 23 Aug 2013 10:26:15 -0400 Subject: [PATCH 17/27] [Android] Since we don't show invalid filetypes in the file browser anymore, there's no need to check if a file is valid or not since they're all valid now. --- Source/Android/res/values-ja/strings.xml | 1 - Source/Android/res/values/strings.xml | 1 - .../dolphinemu/dolphinemu/AboutFragment.java | 4 ++-- .../folderbrowser/FolderBrowser.java | 12 ++++------ .../folderbrowser/FolderBrowserAdapter.java | 5 ---- .../folderbrowser/FolderBrowserItem.java | 23 ++----------------- .../dolphinemu/gamelist/GameListFragment.java | 2 +- .../dolphinemu/gamelist/GameListItem.java | 14 +---------- 8 files changed, 10 insertions(+), 52 deletions(-) diff --git a/Source/Android/res/values-ja/strings.xml b/Source/Android/res/values-ja/strings.xml index 9216a2ecdc..fa466cc25e 100644 --- a/Source/Android/res/values-ja/strings.xml +++ b/Source/Android/res/values-ja/strings.xml @@ -17,7 +17,6 @@ 親ディレクトリ フォルダ ファイルサイズ: - 圧縮ファイル形式はサポートされていません ゲームリスト diff --git a/Source/Android/res/values/strings.xml b/Source/Android/res/values/strings.xml index 50bacda5df..d9c8cee4f1 100644 --- a/Source/Android/res/values/strings.xml +++ b/Source/Android/res/values/strings.xml @@ -17,7 +17,6 @@ Parent Directory Folder File Size: - Can not use compressed file types Game List diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/AboutFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/AboutFragment.java index 41e347a697..1f35a58f76 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/AboutFragment.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/AboutFragment.java @@ -36,8 +36,8 @@ public final class AboutFragment extends Fragment String no = getString(R.string.no); List Input = new ArrayList(); - Input.add(new FolderBrowserItem(getString(R.string.build_revision), NativeLibrary.GetVersionString(), "", true)); - Input.add(new FolderBrowserItem(getString(R.string.supports_gles3), VideoSettingsFragment.SupportsGLES3() ? yes : no, "", true)); + Input.add(new FolderBrowserItem(getString(R.string.build_revision), NativeLibrary.GetVersionString(), "")); + Input.add(new FolderBrowserItem(getString(R.string.supports_gles3), VideoSettingsFragment.SupportsGLES3() ? yes : no, "")); adapter = new FolderBrowserAdapter(m_activity, R.layout.about_layout, Input); mMainList.setAdapter(adapter); diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java b/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java index 26e170c6e0..55f88b3931 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java @@ -10,7 +10,6 @@ import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ListView; -import android.widget.Toast; import java.io.File; import java.util.*; @@ -64,13 +63,13 @@ public final class FolderBrowser extends Fragment { if(entry.isDirectory()) { - dir.add(new FolderBrowserItem(entryName, entry.getAbsolutePath(), true)); + dir.add(new FolderBrowserItem(entryName, entry.getAbsolutePath())); } else if (entry.isFile() && hasExtension) { if (validExts.contains(entryName.toLowerCase().substring(entryName.lastIndexOf('.')))) { - fls.add(new FolderBrowserItem(entryName, getString(R.string.file_size)+entry.length(), entry.getAbsolutePath(), true)); + fls.add(new FolderBrowserItem(entryName, getString(R.string.file_size)+entry.length(), entry.getAbsolutePath())); } } } @@ -87,7 +86,7 @@ public final class FolderBrowser extends Fragment // Check for a parent directory to the one we're currently in. if (!currDir.getPath().equalsIgnoreCase("/")) - dir.add(0, new FolderBrowserItem("..", getString(R.string.parent_directory), currDir.getParent(), true)); + dir.add(0, new FolderBrowserItem("..", getString(R.string.parent_directory), currDir.getParent())); adapter = new FolderBrowserAdapter(m_activity, R.layout.folderbrowser, dir); mDrawerList = (ListView) rootView.findViewById(R.id.gamelist); @@ -119,10 +118,7 @@ public final class FolderBrowser extends Fragment } else { - if (item.isValid()) - FolderSelected(); - else - Toast.makeText(m_activity, getString(R.string.cant_use_compressed_filetypes), Toast.LENGTH_LONG).show(); + FolderSelected(); } } }; diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowserAdapter.java b/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowserAdapter.java index e77205b527..6de1fbcb79 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowserAdapter.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowserAdapter.java @@ -58,11 +58,6 @@ public final class FolderBrowserAdapter extends ArrayAdapter if(mainText != null) { mainText.setText(item.getName()); - - if (!item.isValid()) - { - mainText.setTextColor(0xFFFF0000); - } } if(subtitleText != null) diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowserItem.java b/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowserItem.java index ebff901961..00e41852fa 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowserItem.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowserItem.java @@ -10,7 +10,6 @@ public final class FolderBrowserItem implements Comparable private final String name; private final String subtitle; private final String path; - private final boolean isValid; private final File underlyingFile; /** @@ -19,14 +18,12 @@ public final class FolderBrowserItem implements Comparable * @param name The name of the file/folder represented by this item. * @param subtitle The subtitle of this FolderBrowserItem to display. * @param path The path of the file/folder represented by this item. - * @param isValid Whether or not this item represents a file type that can be handled. */ - public FolderBrowserItem(String name, String subtitle, String path, boolean isValid) + public FolderBrowserItem(String name, String subtitle, String path) { this.name = name; this.subtitle = subtitle; this.path = path; - this.isValid = isValid; this.underlyingFile = new File(path); } @@ -35,14 +32,12 @@ public final class FolderBrowserItem implements Comparable * * @param name The name of the file/folder represented by this item. * @param path The path of the file/folder represented by this item. - * @param isValid Whether or not this item represents a file type that can be handled. */ - public FolderBrowserItem(String name, String path, boolean isValid) + public FolderBrowserItem(String name, String path) { this.name = name; this.subtitle = ""; this.path = path; - this.isValid = isValid; this.underlyingFile = new File(path); } @@ -76,20 +71,6 @@ public final class FolderBrowserItem implements Comparable return path; } - /** - * Gets whether or not the file represented - * by this FolderBrowserItem is supported - * and can be handled correctly. - * - * @return whether or not the file represented - * by this FolderBrowserItem is supported - * and can be handled correctly. - */ - public boolean isValid() - { - return isValid; - } - /** * Gets the {@link File} representation of the underlying file/folder * represented by this FolderBrowserItem. diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java index 5b42fe73c9..0866deba7a 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java @@ -77,7 +77,7 @@ public final class GameListFragment extends Fragment if (!entry.isDirectory()) { if (exts.contains(entryName.toLowerCase().substring(entryName.lastIndexOf('.')))) - fls.add(new GameListItem(mMe.getApplicationContext(), entryName, getString(R.string.file_size)+entry.length(),entry.getAbsolutePath(), true)); + fls.add(new GameListItem(mMe.getApplicationContext(), entryName, getString(R.string.file_size)+entry.length(),entry.getAbsolutePath())); } } } diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListItem.java b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListItem.java index 16ba06a65a..9ecff70b9b 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListItem.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListItem.java @@ -25,7 +25,6 @@ public final class GameListItem implements Comparable private String name; private final String data; private final String path; - private final boolean isValid; private Bitmap image; /** @@ -37,12 +36,11 @@ public final class GameListItem implements Comparable * @param path The file path for the game represented by this GameListItem. * @param isValid Whether or not the emulator can handle this file. */ - public GameListItem(Context ctx, String name, String data, String path, boolean isValid) + public GameListItem(Context ctx, String name, String data, String path) { this.name = name; this.data = data; this.path = path; - this.isValid = isValid; File file = new File(path); if (!file.isDirectory() && !path.equals("")) @@ -115,16 +113,6 @@ public final class GameListItem implements Comparable return image; } - /** - * Gets whether or not the emulator can handle this GameListItem. - * - * @return true, if this GameListItem can be handled by the emulator; false, otherwise. - */ - public boolean isValid() - { - return isValid; - } - public int compareTo(GameListItem o) { if (this.name != null) From 1469342f8301745fb7695c5bffd0bde723419ad0 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 23 Aug 2013 11:17:24 -0400 Subject: [PATCH 18/27] [Android] Add an option to clear the game list. --- Source/Android/res/values-ja/strings.xml | 2 + Source/Android/res/values/strings.xml | 2 + .../dolphinemu/gamelist/GameListActivity.java | 49 +++++++++++++++++++ .../dolphinemu/gamelist/GameListFragment.java | 10 ++++ 4 files changed, 63 insertions(+) diff --git a/Source/Android/res/values-ja/strings.xml b/Source/Android/res/values-ja/strings.xml index fa466cc25e..1231c753a7 100644 --- a/Source/Android/res/values-ja/strings.xml +++ b/Source/Android/res/values-ja/strings.xml @@ -19,6 +19,8 @@ ファイルサイズ: + クリア + ゲームリストからすべての項目を削除しますか? ゲームリスト フォルダの参照 設定 diff --git a/Source/Android/res/values/strings.xml b/Source/Android/res/values/strings.xml index d9c8cee4f1..01d454c905 100644 --- a/Source/Android/res/values/strings.xml +++ b/Source/Android/res/values/strings.xml @@ -19,6 +19,8 @@ File Size: + Clear game list + Do you want to clear the game list? Game List Browse Folder Settings diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java index 62a9f34189..3678cf7637 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java @@ -7,8 +7,10 @@ package org.dolphinemu.dolphinemu.gamelist; import android.app.Activity; +import android.app.AlertDialog; import android.app.Fragment; import android.app.FragmentManager; +import android.content.DialogInterface; import android.content.Intent; import android.content.res.Configuration; import android.os.Bundle; @@ -16,6 +18,7 @@ import android.support.v4.app.ActionBarDrawerToggle; import android.support.v4.widget.DrawerLayout; import android.view.*; import android.widget.AdapterView; +import android.widget.ArrayAdapter; import android.widget.ListView; import java.util.ArrayList; import java.util.List; @@ -248,6 +251,20 @@ public final class GameListActivity extends Activity { return super.onPrepareOptionsMenu(menu); } + + @Override + public boolean onCreateOptionsMenu(Menu menu) + { + // Only show this in the game list. + if (this.mCurFragmentNum == 0) + { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.gamelist_menu, menu); + return true; + } + + return false; + } @Override public boolean onOptionsItemSelected(MenuItem item) @@ -259,6 +276,38 @@ public final class GameListActivity extends Activity return true; } + // If clear game list is pressed. + if (item.getItemId() == R.id.clearGameList) + { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(R.string.clear_game_list); + builder.setMessage(getString(R.string.clear_game_list_confirm)); + builder.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener(){ + public void onClick(DialogInterface dialog, int which) + { + String directories = NativeLibrary.GetConfig("Dolphin.ini", "General", "GCMPathes", "0"); + int intDirs = Integer.parseInt(directories); + + for (int i = 0; i < intDirs; i++) + { + NativeLibrary.SetConfig("Dolphin.ini", "General", "GCMPath" + i, ""); + } + + ArrayAdapter adapter = ((GameListFragment)GameListActivity.this.mCurFragment).getAdapter(); + adapter.clear(); + adapter.notifyDataSetChanged(); + } + }); + builder.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) + { + // Do nothing. This just make "No" appear. + } + }); + + builder.show(); + } + return super.onOptionsItemSelected(item); } diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java index 0866deba7a..b72509419f 100644 --- a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java +++ b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java @@ -51,6 +51,16 @@ public final class GameListFragment extends Fragment */ void onZeroFiles(); } + + /** + * Gets the adapter for this fragment. + * + * @return the adapter for this fragment. + */ + public GameListAdapter getAdapter() + { + return mGameAdapter; + } private void Fill() { From c9e13f6b7a7164ee2807cfdf64491659888994c4 Mon Sep 17 00:00:00 2001 From: degasus Date: Fri, 23 Aug 2013 17:52:47 +0200 Subject: [PATCH 19/27] ogl: fix ubo workaround --- .../Plugin_VideoOGL/Src/PixelShaderCache.cpp | 5 ++- .../Src/ProgramShaderCache.cpp | 38 ++++++++++++++----- .../Plugin_VideoOGL/Src/ProgramShaderCache.h | 1 + .../Plugin_VideoOGL/Src/VertexShaderCache.cpp | 5 ++- 4 files changed, 37 insertions(+), 12 deletions(-) diff --git a/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp b/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp index 382784b502..3fac62bd73 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp @@ -33,9 +33,12 @@ void SetPSConstant4fvByName(const char * name, unsigned int offset, const float { if (tmp.shader.UniformLocations[a] == -1) return; + else if (tmp.shader.UniformSize[a] <= offset) + return; else { - glUniform4fv(tmp.shader.UniformLocations[a] + offset, count, f); + unsigned int maxcount= tmp.shader.UniformSize[a]-offset; + glUniform4fv(tmp.shader.UniformLocations[a] + offset, std::min(count, maxcount), f); return; } } diff --git a/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp b/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp index d7cafb49ca..95c5c3f46d 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/ProgramShaderCache.cpp @@ -78,17 +78,35 @@ void SHADER::SetProgramVariables() glUniformBlockBinding(glprogid, VSBlock_id, 2); } - // We cache our uniform locations for now - // Once we move up to a newer version of GLSL, ~1.30 - // We can remove this + // UBO workaround + for (int a = 0; a < NUM_UNIFORMS; ++a) + { + UniformLocations[a] = glGetUniformLocation(glprogid, UniformNames[a]); + UniformSize[a] = 0; + if(g_ActiveConfig.backend_info.bSupportsGLSLUBO) + break; + } + if(!g_ActiveConfig.backend_info.bSupportsGLSLUBO) + { + int max_uniforms = 0; + char name[50]; + int size; + + glGetProgramiv(glprogid, GL_ACTIVE_UNIFORMS, &max_uniforms); + for(int i=0; i Date: Fri, 23 Aug 2013 16:10:55 -0400 Subject: [PATCH 20/27] [Android] Fix some redundancy in the category names for the settings menu. In a menu named "Settings" (which is shown in the top left) we have the categories, "CPU Settings" and "Video Settings" - but the fact they are settings pages is already established at this point so it's redundant. Just made them "CPU" and "Video" instead. Also changed the description for dual-core They now look like this: http://i.imgur.com/qieaKmL.png --- Source/Android/res/values-ja/strings.xml | 2 +- Source/Android/res/values/strings.xml | 6 +++--- Source/Android/res/xml/cpu_prefs.xml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Source/Android/res/values-ja/strings.xml b/Source/Android/res/values-ja/strings.xml index 1231c753a7..8bda085586 100644 --- a/Source/Android/res/values-ja/strings.xml +++ b/Source/Android/res/values-ja/strings.xml @@ -62,7 +62,7 @@ CPU設定 使用するエミュレーションコア デュアルコア - 有効/無効 + 有効にした場合、デュアルコアが使用されます。 ビデオ設定 Software Renderer OpenGL ES 3 diff --git a/Source/Android/res/values/strings.xml b/Source/Android/res/values/strings.xml index 01d454c905..fd8c0f0c87 100644 --- a/Source/Android/res/values/strings.xml +++ b/Source/Android/res/values/strings.xml @@ -59,11 +59,11 @@ JITIL Recompiler JIT ARM Recompiler CPU Core - CPU Settings + CPU Emulation core to use Dual Core - On/Off - Video Settings + Whether or not to use dual-core + Video Software Renderer OpenGL ES 3 Video Backend diff --git a/Source/Android/res/xml/cpu_prefs.xml b/Source/Android/res/xml/cpu_prefs.xml index adb6fff91f..83dc830791 100644 --- a/Source/Android/res/xml/cpu_prefs.xml +++ b/Source/Android/res/xml/cpu_prefs.xml @@ -3,7 +3,7 @@ Date: Fri, 23 Aug 2013 16:17:02 -0400 Subject: [PATCH 21/27] [Android] Forgot to commit the menu layout XML when I implemented the option to clear the game list. --- Source/Android/res/menu/gamelist_menu.xml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 Source/Android/res/menu/gamelist_menu.xml diff --git a/Source/Android/res/menu/gamelist_menu.xml b/Source/Android/res/menu/gamelist_menu.xml new file mode 100644 index 0000000000..dbec1a65f3 --- /dev/null +++ b/Source/Android/res/menu/gamelist_menu.xml @@ -0,0 +1,7 @@ + +

+ + \ No newline at end of file From 367d6dfd6569ccd7f1788768bb6e593df2dd4c5d Mon Sep 17 00:00:00 2001 From: Pierre Bourdon Date: Sat, 24 Aug 2013 01:41:17 +0200 Subject: [PATCH 22/27] Add an OSD message when taking screenshots in D3D9/D3D11 Fixes issue 6486. --- Source/Core/VideoCommon/Src/OnScreenDisplay.cpp | 5 +++++ Source/Core/VideoCommon/Src/OnScreenDisplay.h | 5 ++++- Source/Plugins/Plugin_VideoDX11/Src/Render.cpp | 9 +++++++++ Source/Plugins/Plugin_VideoDX9/Src/Render.cpp | 1 + 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/Source/Core/VideoCommon/Src/OnScreenDisplay.cpp b/Source/Core/VideoCommon/Src/OnScreenDisplay.cpp index 29a3837a9a..72abcd5752 100644 --- a/Source/Core/VideoCommon/Src/OnScreenDisplay.cpp +++ b/Source/Core/VideoCommon/Src/OnScreenDisplay.cpp @@ -58,6 +58,11 @@ void AddMessage(const char* pstr, u32 ms) s_listMsgs.push_back(MESSAGE(pstr, Common::Timer::GetTimeMs() + ms)); } +void AddMessage(const std::string& str, u32 ms) +{ + AddMessage(str.c_str(), ms); +} + void DrawMessages() { if(!SConfig::GetInstance().m_LocalCoreStartupParameter.bOnScreenDisplayMessages) diff --git a/Source/Core/VideoCommon/Src/OnScreenDisplay.h b/Source/Core/VideoCommon/Src/OnScreenDisplay.h index ef7d899e1f..6db53f0ead 100644 --- a/Source/Core/VideoCommon/Src/OnScreenDisplay.h +++ b/Source/Core/VideoCommon/Src/OnScreenDisplay.h @@ -5,11 +5,14 @@ #ifndef _OSD_H_ #define _OSD_H_ -namespace OSD +#include + +namespace OSD { // On-screen message display void AddMessage(const char* str, u32 ms = 2000); +void AddMessage(const std::string& str, u32 ms = 2000); void DrawMessages(); // draw the current messages on the screen. Only call once per frame. void ClearMessages(); diff --git a/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp b/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp index 761563264d..ca849ccde5 100644 --- a/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoDX11/Src/Render.cpp @@ -745,6 +745,15 @@ bool Renderer::SaveScreenshot(const std::string &filename, const TargetRectangle // ready to be saved HRESULT hr = PD3DX11SaveTextureToFileA(D3D::context, s_screenshot_texture, D3DX11_IFF_PNG, filename.c_str()); + if (SUCCEEDED(hr)) + { + OSD::AddMessage(StringFromFormat("Saved %i x %i %s", D3D::GetBackBufferWidth(), + D3D::GetBackBufferHeight(), filename.c_str())); + } + else + { + OSD::AddMessage(StringFromFormat("Error saving %s", filename.c_str())); + } return SUCCEEDED(hr); } diff --git a/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp b/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp index 625db5f44e..80bfa54c0f 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/Render.cpp @@ -742,6 +742,7 @@ bool Renderer::SaveScreenshot(const std::string &filename, const TargetRectangle PanicAlert("Error saving screen."); return false; } + OSD::AddMessage(StringFromFormat("Saved %i x %i %s", dst_rect.GetWidth(), dst_rect.GetHeight(), filename.c_str())); return true; } From 9deb63a312de7292353ba94cf3adfb55c321bcd1 Mon Sep 17 00:00:00 2001 From: Pierre Bourdon Date: Sat, 24 Aug 2013 01:44:16 +0200 Subject: [PATCH 23/27] Simplify a few OSD::AddMessage calls now that this function accepts std::string objects --- Source/Core/Core/Src/Core.cpp | 2 +- Source/Plugins/Plugin_VideoOGL/Src/Render.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Core/Core/Src/Core.cpp b/Source/Core/Core/Src/Core.cpp index 4aadcbd3a4..7218242ac6 100644 --- a/Source/Core/Core/Src/Core.cpp +++ b/Source/Core/Core/Src/Core.cpp @@ -375,7 +375,7 @@ void EmuThread() return; } - OSD::AddMessage(("Dolphin " + g_video_backend->GetName() + " Video Backend.").c_str(), 5000); + OSD::AddMessage("Dolphin " + g_video_backend->GetName() + " Video Backend.", 5000); if (!DSP::GetDSPEmulator()->Initialize(g_pWindowHandle, _CoreParameter.bWii, _CoreParameter.bDSPThread)) diff --git a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp index bfeaab6282..ee159929d1 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/Render.cpp @@ -519,7 +519,7 @@ Renderer::Renderer() OSD::AddMessage(StringFromFormat("Video Info: %s, %s, %s", g_ogl_config.gl_vendor, g_ogl_config.gl_renderer, - g_ogl_config.gl_version).c_str(), 5000); + g_ogl_config.gl_version), 5000); WARN_LOG(VIDEO,"Missing OGL Extensions: %s%s%s%s%s%s%s%s%s%s", g_ActiveConfig.backend_info.bSupportsDualSourceBlend ? "" : "DualSourceBlend ", @@ -1814,7 +1814,7 @@ void TakeScreenshot(ScrStrct* threadStruct) // Show success messages OSD::AddMessage(StringFromFormat("Saved %i x %i %s", (int)FloatW, (int)FloatH, - threadStruct->filename.c_str()).c_str(), 2000); + threadStruct->filename.c_str()), 2000); delete threadStruct; } #endif From 9303b57db1ad3bfe978296b765a1d0767d7a6f1c Mon Sep 17 00:00:00 2001 From: Pierre Bourdon Date: Sat, 24 Aug 2013 02:13:54 +0200 Subject: [PATCH 24/27] Refactor VideoCommon/OnScreenDisplay. Use strings internally, use a multimap and std::function for callbacks (instead of a flat vector + loop over the vector to find the right callback type), fix coding style issues. Simplify MainAndroid code a bit. --- Source/Core/DolphinWX/Src/MainAndroid.cpp | 25 +--- .../Core/VideoCommon/Src/OnScreenDisplay.cpp | 115 ++++++------------ Source/Core/VideoCommon/Src/OnScreenDisplay.h | 13 +- 3 files changed, 47 insertions(+), 106 deletions(-) diff --git a/Source/Core/DolphinWX/Src/MainAndroid.cpp b/Source/Core/DolphinWX/Src/MainAndroid.cpp index 5fc616d5ac..d5ff986841 100644 --- a/Source/Core/DolphinWX/Src/MainAndroid.cpp +++ b/Source/Core/DolphinWX/Src/MainAndroid.cpp @@ -132,25 +132,6 @@ void Host_SysMessage(const char *fmt, ...) void Host_SetWiiMoteConnectionState(int _State) {} -void OSDCallbacks(u32 UserData) -{ - switch(UserData) - { - case 0: // Init - ButtonManager::Init(); - break; - case 1: // Draw - ButtonManager::DrawButtons(); - break; - case 2: // Shutdown - ButtonManager::Shutdown(); - break; - default: - WARN_LOG(COMMON, "Error, wrong OSD type"); - break; - } -} - #define DVD_BANNER_WIDTH 96 #define DVD_BANNER_HEIGHT 32 std::vector m_volume_names; @@ -321,8 +302,8 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_Run(JNIEnv * { surf = ANativeWindow_fromSurface(env, _surf); // Install our callbacks - OSD::AddCallback(OSD::OSD_INIT, OSDCallbacks, 0); - OSD::AddCallback(OSD::OSD_SHUTDOWN, OSDCallbacks, 2); + OSD::AddCallback(OSD::OSD_INIT, ButtonManager::Init); + OSD::AddCallback(OSD::OSD_SHUTDOWN, ButtonManager::Shutdown); LogManager::Init(); SConfig::Init(); @@ -337,7 +318,7 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_Run(JNIEnv * ini.Get("Android", "ScreenControls", &onscreencontrols, true); if (onscreencontrols) - OSD::AddCallback(OSD::OSD_ONFRAME, OSDCallbacks, 1); + OSD::AddCallback(OSD::OSD_ONFRAME, ButtonManager::DrawButtons); // No use running the loop when booting fails if ( BootManager::BootCore( g_filename.c_str() ) ) diff --git a/Source/Core/VideoCommon/Src/OnScreenDisplay.cpp b/Source/Core/VideoCommon/Src/OnScreenDisplay.cpp index 72abcd5752..b66c2019c9 100644 --- a/Source/Core/VideoCommon/Src/OnScreenDisplay.cpp +++ b/Source/Core/VideoCommon/Src/OnScreenDisplay.cpp @@ -11,56 +11,27 @@ #include "RenderBase.h" #include "Timer.h" -#include +#include +#include namespace OSD { -struct MESSAGE +struct Message { - MESSAGE() {} - MESSAGE(const char* p, u32 dw) - { - strncpy(str, p, 255); - str[255] = '\0'; - dwTimeStamp = dw; - } - char str[256]; - u32 dwTimeStamp; + Message() {} + Message(const std::string& s, u32 ts) : str(s), timestamp(ts) {} + + std::string str; + u32 timestamp; }; -class OSDCALLBACK -{ -private: - CallbackPtr m_functionptr; - CallbackType m_type; - u32 m_data; -public: - OSDCALLBACK(CallbackType OnType, CallbackPtr FuncPtr, u32 UserData) - { - m_type = OnType; - m_functionptr = FuncPtr; - m_data = UserData; - } - void Call() - { - m_functionptr(m_data); - } - - CallbackType Type() { return m_type; } -}; - -std::vector m_callbacks; -static std::list s_listMsgs; - -void AddMessage(const char* pstr, u32 ms) -{ - s_listMsgs.push_back(MESSAGE(pstr, Common::Timer::GetTimeMs() + ms)); -} +static std::multimap s_callbacks; +static std::list s_msgList; void AddMessage(const std::string& str, u32 ms) { - AddMessage(str.c_str(), ms); + s_msgList.push_back(Message(str, Common::Timer::GetTimeMs() + ms)); } void DrawMessages() @@ -68,58 +39,50 @@ void DrawMessages() if(!SConfig::GetInstance().m_LocalCoreStartupParameter.bOnScreenDisplayMessages) return; - if (s_listMsgs.size() > 0) + int left = 25, top = 15; + auto it = s_msgList.begin(); + while (it != s_msgList.end()) { - int left = 25, top = 15; - std::list::iterator it = s_listMsgs.begin(); - while (it != s_listMsgs.end()) + int time_left = (int)(it->timestamp - Common::Timer::GetTimeMs()); + u32 alpha = 255; + + if (time_left < 1024) { - int time_left = (int)(it->dwTimeStamp - Common::Timer::GetTimeMs()); - int alpha = 255; - - if (time_left < 1024) - { - alpha = time_left >> 2; - if (time_left < 0) - alpha = 0; - } - - alpha <<= 24; - - g_renderer->RenderText(it->str, left+1, top+1, 0x000000|alpha); - g_renderer->RenderText(it->str, left, top, 0xffff30|alpha); - top += 15; - - if (time_left <= 0) - it = s_listMsgs.erase(it); - else - ++it; + alpha = time_left >> 2; + if (time_left < 0) + alpha = 0; } + + alpha <<= 24; + + g_renderer->RenderText(it->str.c_str(), left + 1, top + 1, 0x000000 | alpha); + g_renderer->RenderText(it->str.c_str(), left, top, 0xffff30 | alpha); + top += 15; + + if (time_left <= 0) + it = s_msgList.erase(it); + else + ++it; } } void ClearMessages() { - std::list::iterator it = s_listMsgs.begin(); - - while (it != s_listMsgs.end()) - { - it = s_listMsgs.erase(it); - } + s_msgList.clear(); } // On-Screen Display Callbacks -void AddCallback(CallbackType OnType, CallbackPtr FuncPtr, u32 UserData) +void AddCallback(CallbackType type, Callback cb) { - m_callbacks.push_back(OSDCALLBACK(OnType, FuncPtr, UserData)); + s_callbacks.insert(std::pair(type, cb)); } -void DoCallbacks(CallbackType OnType) +void DoCallbacks(CallbackType type) { - for (auto it = m_callbacks.begin(); it != m_callbacks.end(); ++it) + auto it_bounds = s_callbacks.equal_range(type); + for (auto it = it_bounds.first; it != it_bounds.second; ++it) { - if (it->Type() == OnType) - it->Call(); + it->second(); } } diff --git a/Source/Core/VideoCommon/Src/OnScreenDisplay.h b/Source/Core/VideoCommon/Src/OnScreenDisplay.h index 6db53f0ead..a4a377b5d7 100644 --- a/Source/Core/VideoCommon/Src/OnScreenDisplay.h +++ b/Source/Core/VideoCommon/Src/OnScreenDisplay.h @@ -5,13 +5,12 @@ #ifndef _OSD_H_ #define _OSD_H_ +#include #include namespace OSD { - // On-screen message display -void AddMessage(const char* str, u32 ms = 2000); void AddMessage(const std::string& str, u32 ms = 2000); void DrawMessages(); // draw the current messages on the screen. Only call once per frame. void ClearMessages(); @@ -23,12 +22,10 @@ enum CallbackType OSD_ONFRAME, OSD_SHUTDOWN }; -typedef void(*CallbackPtr)(u32); +typedef std::function Callback; -void AddCallback(CallbackType OnType, CallbackPtr FuncPtr, u32 UserData); - -void DoCallbacks(CallbackType OnType); -} // namespace +void AddCallback(CallbackType type, Callback cb); +void DoCallbacks(CallbackType type); +} // namespace OSD #endif // _OSD_H_ - From dfb34ddef4125e403988ce59f2cb07fe91856e42 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Fri, 23 Aug 2013 09:54:22 -0400 Subject: [PATCH 25/27] NetPlayWindow: Make the spacing consistent on both sides --- Source/Core/DolphinWX/Src/NetWindow.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Source/Core/DolphinWX/Src/NetWindow.cpp b/Source/Core/DolphinWX/Src/NetWindow.cpp index c01b3b788e..7d50f42905 100644 --- a/Source/Core/DolphinWX/Src/NetWindow.cpp +++ b/Source/Core/DolphinWX/Src/NetWindow.cpp @@ -601,6 +601,7 @@ PadMapDiag::PadMapDiag(wxWindow* const parent, PadMapping map[], std::vectorAddSpacer(10); wxArrayString player_names; player_names.Add(_("None")); From 40243a4fe7514db647c55bbd808471f59c6454f2 Mon Sep 17 00:00:00 2001 From: Rodolfo Bogado Date: Fri, 23 Aug 2013 22:28:17 -0300 Subject: [PATCH 26/27] Indentation Fix --- Source/Core/VideoCommon/Src/VideoConfig.cpp | 4 ++-- Source/Core/VideoCommon/Src/VideoConfig.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/Core/VideoCommon/Src/VideoConfig.cpp b/Source/Core/VideoCommon/Src/VideoConfig.cpp index b05f964891..736b988087 100644 --- a/Source/Core/VideoCommon/Src/VideoConfig.cpp +++ b/Source/Core/VideoCommon/Src/VideoConfig.cpp @@ -96,7 +96,7 @@ void VideoConfig::Load(const char *ini_file) iniFile.Get("Hacks", "EFBScaledCopy", &bCopyEFBScaled, true); iniFile.Get("Hacks", "EFBCopyCacheEnable", &bEFBCopyCacheEnable, false); iniFile.Get("Hacks", "EFBEmulateFormatChanges", &bEFBEmulateFormatChanges, false); - iniFile.Get("Hacks", "ForceDualSourceBlend", &bForceDualSourceBlend, false); + iniFile.Get("Hacks", "ForceDualSourceBlend", &bForceDualSourceBlend, false); iniFile.Get("Hardware", "Adapter", &iAdapter, 0); @@ -253,7 +253,7 @@ void VideoConfig::Save(const char *ini_file) iniFile.Set("Hacks", "EFBScaledCopy", bCopyEFBScaled); iniFile.Set("Hacks", "EFBCopyCacheEnable", bEFBCopyCacheEnable); iniFile.Set("Hacks", "EFBEmulateFormatChanges", bEFBEmulateFormatChanges); - iniFile.Set("Hacks", "ForceDualSourceBlend", bForceDualSourceBlend); + iniFile.Set("Hacks", "ForceDualSourceBlend", bForceDualSourceBlend); iniFile.Set("Hardware", "Adapter", iAdapter); diff --git a/Source/Core/VideoCommon/Src/VideoConfig.h b/Source/Core/VideoCommon/Src/VideoConfig.h index c1b0c87c72..4a773d30e7 100644 --- a/Source/Core/VideoCommon/Src/VideoConfig.h +++ b/Source/Core/VideoCommon/Src/VideoConfig.h @@ -124,8 +124,8 @@ struct VideoConfig bool bEnablePixelLighting; bool bHackedBufferUpload; bool bFastDepthCalc; - //for dx9-backend - bool bForceDualSourceBlend; + //for dx9-backend + bool bForceDualSourceBlend; int iLog; // CONF_ bits int iSaveTargetId; // TODO: Should be dropped From 66c50ebf191b1b8d3d4cb696203a1cc225085eb7 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sat, 24 Aug 2013 07:37:28 -0400 Subject: [PATCH 27/27] [Android] Better description for the dual core option. --- Source/Android/res/values-ja/strings.xml | 2 +- Source/Android/res/values/strings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Android/res/values-ja/strings.xml b/Source/Android/res/values-ja/strings.xml index 8bda085586..12594ca2ac 100644 --- a/Source/Android/res/values-ja/strings.xml +++ b/Source/Android/res/values-ja/strings.xml @@ -62,7 +62,7 @@ CPU設定 使用するエミュレーションコア デュアルコア - 有効にした場合、デュアルコアが使用されます。 + 処理のための2つのCPUコアを使用して。速度が向上します。 ビデオ設定 Software Renderer OpenGL ES 3 diff --git a/Source/Android/res/values/strings.xml b/Source/Android/res/values/strings.xml index fd8c0f0c87..dac787e4bc 100644 --- a/Source/Android/res/values/strings.xml +++ b/Source/Android/res/values/strings.xml @@ -62,7 +62,7 @@ CPU Emulation core to use Dual Core - Whether or not to use dual-core + Split workload to two CPU cores instead of one. Increases speed. Video Software Renderer OpenGL ES 3