From 5c96b44e4d39250a777d03df122cfaa4611d21db Mon Sep 17 00:00:00 2001 From: Zixin Zhang Date: Sat, 25 Sep 2021 16:12:34 -0400 Subject: [PATCH 01/18] Add some comments --- src/main.cpp | 2 ++ src/pathtrace.cu | 2 +- src/preview.cpp | 1 + src/sceneStructs.h | 10 ++++++++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index fe8e85ec..de1daf8d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -31,6 +31,7 @@ int height; //------------------------------- int main(int argc, char** argv) { + // Used for creating a distinguishable name for image files startTimeString = currentTimeString(); if (argc < 2) { @@ -75,6 +76,7 @@ int main(int argc, char** argv) { return 0; } +// Save an image in Project3-CUDA-Path-Tracer/build/ in a distinguishable format void saveImage() { float samples = iteration; // output image file diff --git a/src/pathtrace.cu b/src/pathtrace.cu index 056e1467..705ed40d 100644 --- a/src/pathtrace.cu +++ b/src/pathtrace.cu @@ -129,7 +129,7 @@ __global__ void generateRayFromCamera(Camera cam, int iter, int traceDepth, Path PathSegment & segment = pathSegments[index]; segment.ray.origin = cam.position; - segment.color = glm::vec3(1.0f, 1.0f, 1.0f); + segment.color = glm::vec3(1.0f, 1.0f, 1.0f); // TODO: implement antialiasing by jittering the ray segment.ray.direction = glm::normalize(cam.view diff --git a/src/preview.cpp b/src/preview.cpp index 4eb0bc13..33a6e28a 100644 --- a/src/preview.cpp +++ b/src/preview.cpp @@ -10,6 +10,7 @@ GLuint displayImage; GLFWwindow *window; +// Return a string of current time in UTC std::string currentTimeString() { time_t now; time(&now); diff --git a/src/sceneStructs.h b/src/sceneStructs.h index da4dbf30..420e8eb2 100644 --- a/src/sceneStructs.h +++ b/src/sceneStructs.h @@ -29,19 +29,27 @@ struct Geom { }; struct Material { + // RGB entry in scene file glm::vec3 color; struct { + // SPECEX float exponent; + // SPECRGB glm::vec3 color; } specular; + // REFL float hasReflective; + // REFR float hasRefractive; + // REFRIOR float indexOfRefraction; + // EMITTANCE float emittance; }; struct Camera { glm::ivec2 resolution; + // EYE glm::vec3 position; glm::vec3 lookAt; glm::vec3 view; @@ -54,8 +62,10 @@ struct Camera { struct RenderState { Camera camera; unsigned int iterations; + // DEPTH in Camera int traceDepth; std::vector image; + // FILE in Camera std::string imageName; }; From f22c4ba5b6e226fd2db8228942db316fd210f62a Mon Sep 17 00:00:00 2001 From: "(Charles) Zixin Zhang" Date: Tue, 28 Sep 2021 12:40:29 -0400 Subject: [PATCH 02/18] Update comment --- README.md | 11 +++++++++++ src/main.cpp | 6 ++++-- src/preview.cpp | 17 ++++++++++++++++- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 110697ce..4ae15980 100644 --- a/README.md +++ b/README.md @@ -11,3 +11,14 @@ CUDA Path Tracer *DO NOT* leave the README to the last minute! It is a crucial part of the project, and we will not be able to grade you without a good README. + + + + +| | NVIDIA GeForce RTX 3060 Laptop GPU Limits | +| ------------------------------------------------------------ | ----------------------------------------- | +| Thread block slots (```maxBlocksPerMultiProcessor```) | 16 | +| Thread slots (```maxThreadsPerMultiProcessor```) | 1536 | +| Registers (```regsPerMultiprocessor```): 32-bit registers available per multiprocessor | 65536 | +| Shared memory (```sharedMemPerMultiprocessor```): Shared memory available per multiprocessor in bytes | 102400 bytes | + diff --git a/src/main.cpp b/src/main.cpp index de1daf8d..aa9269aa 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2,6 +2,8 @@ #include "preview.h" #include +// this is a global variable with internal linkage +// thus can only be seen and used in this file static std::string startTimeString; // For camera controls @@ -31,7 +33,7 @@ int height; //------------------------------- int main(int argc, char** argv) { - // Used for creating a distinguishable name for image files + // Used for naming image files startTimeString = currentTimeString(); if (argc < 2) { @@ -76,7 +78,7 @@ int main(int argc, char** argv) { return 0; } -// Save an image in Project3-CUDA-Path-Tracer/build/ in a distinguishable format +// Save an image in Project3-CUDA-Path-Tracer/build/ void saveImage() { float samples = iteration; // output image file diff --git a/src/preview.cpp b/src/preview.cpp index 33a6e28a..a7ddab9d 100644 --- a/src/preview.cpp +++ b/src/preview.cpp @@ -1,4 +1,8 @@ #define _CRT_SECURE_NO_DEPRECATE +// This header was originally in the C standard library as . +// This header is part of the C - style date and time library. +// https://en.cppreference.com/w/cpp/header/ctime +// some types and functions in this header are used in currentTimeString() #include #include "main.h" #include "preview.h" @@ -12,10 +16,21 @@ GLFWwindow *window; // Return a string of current time in UTC std::string currentTimeString() { + // time_t: Arithmetic type capable of representing times. time_t now; + // stores current calendar time in now time(&now); + // sizeof expression + // yields the size in bytes of the object representation of + // the type of expression, if that expression is evaluated. + // "0000-00-00_00-00-00z" is char[21] (includes null terminator) + // sizeof "0000-00-00_00-00-00z" evaluates to 21 char buf[sizeof "0000-00-00_00-00-00z"]; - strftime(buf, sizeof buf, "%Y-%m-%d_%H-%M-%Sz", gmtime(&now)); + // gmtime() converts given time since epoch as std::time_t value into calendar time, + // expressed in Coordinated Universal Time (UTC). Changed to localtime by Charles + // strftime converts the date and time information from now into a formatted buf + // format: year-month-day_hour-minute-second + strftime(buf, sizeof buf, "%Y-%m-%d_%H-%M-%Sz", localtime(&now)); return std::string(buf); } From 7ba60942044b46b186d04880c5f643af0c6416b0 Mon Sep 17 00:00:00 2001 From: "(Charles) Zixin Zhang" Date: Thu, 30 Sep 2021 15:40:11 -0400 Subject: [PATCH 03/18] Pathtracer Step 2 --- src/pathtrace.cu | 208 +++++++++++++++++++++++++++++++-------------- src/scene.cpp | 7 +- src/sceneStructs.h | 12 ++- src/utilities.h | 2 + 4 files changed, 154 insertions(+), 75 deletions(-) diff --git a/src/pathtrace.cu b/src/pathtrace.cu index 705ed40d..b55d8980 100644 --- a/src/pathtrace.cu +++ b/src/pathtrace.cu @@ -115,6 +115,9 @@ void pathtraceFree() { * Generate PathSegments with rays from the camera through the screen into the * scene, which is the first bounce of rays. * +* iter: 0 to 5000 (set in Camera - ITERATIONS in txt) not used for now +* traceDepth: 8 (set in Camera - DEPTH in txt) +* * Antialiasing - add rays for sub-pixel sampling * motion blur - jitter rays "in time" * lens effect - jitter ray origin positions based on a lens @@ -136,7 +139,10 @@ __global__ void generateRayFromCamera(Camera cam, int iter, int traceDepth, Path - cam.right * cam.pixelLength.x * ((float)x - (float)cam.resolution.x * 0.5f) - cam.up * cam.pixelLength.y * ((float)y - (float)cam.resolution.y * 0.5f) ); - +#if 0 + float3 tempValue = make_float3(segment.ray.direction.x, segment.ray.direction.y, + segment.ray.direction.z); +#endif segment.pixelIndex = index; segment.remainingBounces = traceDepth; } @@ -242,6 +248,7 @@ __global__ void shadeFakeMaterial ( Material material = materials[intersection.materialId]; glm::vec3 materialColor = material.color; + // could use material.specular.color, etc // If the material indicates that the object was a light, "light" the ray if (material.emittance > 0.0f) { @@ -251,9 +258,26 @@ __global__ void shadeFakeMaterial ( // like what you would expect from shading in a rasterizer like OpenGL. // TODO: replace this! you should be able to start with basically a one-liner else { + glm::vec3 pointOfIntersect = pathSegments[idx].ray.evaluate(intersection.t); + scatterRay(pathSegments[idx], pointOfIntersect, intersection.surfaceNormal, + material, rng); + // +#if 0 + if (material.hasReflective) + { + + } + else { + } + // + Ray& thisRay = pathSegments[idx].ray; + glm::vec3& thisColor = pathSegments[idx].color; + int thisPixelIndex = pathSegments[idx].pixelIndex; + int thisRemainingBounces = pathSegments[idx].remainingBounces; float lightTerm = glm::dot(intersection.surfaceNormal, glm::vec3(0.0f, 1.0f, 0.0f)); pathSegments[idx].color *= (materialColor * lightTerm) * 0.3f + ((1.0f - intersection.t * 0.02f) * materialColor) * 0.7f; pathSegments[idx].color *= u01(rng); // apply some noise because why not +#endif } // If there was no intersection, color the ray black. // Lots of renderers use 4 channel color, RGBA, where A = alpha, often @@ -277,9 +301,41 @@ __global__ void finalGather(int nPaths, glm::vec3 * image, PathSegment * iterati } } + + +/////////////////////////////////////////////////////////////////////////// + +// Recap: +// * Initialize array of path rays (using rays that come out of the camera) +// * You can pass the Camera object to that kernel. +// * Each path ray must carry at minimum a (ray, color) pair, +// * where color starts as the multiplicative identity, white = (1, 1, 1). +// * This has already been done for you. +// * For each depth: +// * Compute an intersection in the scene for each path ray. +// A very naive version of this has been implemented for you, but feel +// free to add more primitives and/or a better algorithm. +// Currently, intersection distance is recorded as a parametric distance, +// t, or a "distance along the ray." t = -1.0 indicates no intersection. +// * Color is attenuated (multiplied) by reflections off of any object +// * TODO: Stream compact away all of the terminated paths. +// You may use either your implementation or `thrust::remove_if` or its +// cousins. +// * Note that you can't really use a 2D kernel launch any more - switch +// to 1D. +// * TODO: Shade the rays that intersected something or didn't bottom out. +// That is, color the ray by performing a color computation according +// to the shader, then generate a new ray to continue the ray path. +// We recommend just updating the ray's PathSegment in place. +// Note that this step may come before or after stream compaction, +// since some shaders you write may also cause a path to terminate. +// * Finally, add this iteration's results to the image. This has been done +// for you. +// TODO: perform one iteration of path tracing /** * Wrapper for the __global__ call that sets up the kernel calls and does a ton * of memory management + * Perform one iteration of path tracing */ void pathtrace(uchar4 *pbo, int frame, int iter) { const int traceDepth = hst_scene->state.traceDepth; @@ -295,89 +351,111 @@ void pathtrace(uchar4 *pbo, int frame, int iter) { // 1D block for path tracing const int blockSize1d = 128; - /////////////////////////////////////////////////////////////////////////// - - // Recap: // * Initialize array of path rays (using rays that come out of the camera) // * You can pass the Camera object to that kernel. // * Each path ray must carry at minimum a (ray, color) pair, // * where color starts as the multiplicative identity, white = (1, 1, 1). // * This has already been done for you. - // * For each depth: - // * Compute an intersection in the scene for each path ray. - // A very naive version of this has been implemented for you, but feel - // free to add more primitives and/or a better algorithm. - // Currently, intersection distance is recorded as a parametric distance, - // t, or a "distance along the ray." t = -1.0 indicates no intersection. - // * Color is attenuated (multiplied) by reflections off of any object - // * TODO: Stream compact away all of the terminated paths. - // You may use either your implementation or `thrust::remove_if` or its - // cousins. - // * Note that you can't really use a 2D kernel launch any more - switch - // to 1D. - // * TODO: Shade the rays that intersected something or didn't bottom out. - // That is, color the ray by performing a color computation according - // to the shader, then generate a new ray to continue the ray path. - // We recommend just updating the ray's PathSegment in place. - // Note that this step may come before or after stream compaction, - // since some shaders you write may also cause a path to terminate. - // * Finally, add this iteration's results to the image. This has been done - // for you. - - // TODO: perform one iteration of path tracing - generateRayFromCamera <<>>(cam, iter, traceDepth, dev_paths); + // after this kernel, dev_paths will be populated with pixelcount (640,000 by default)'s + // path segments. + // Each path segment contains + // 1) a ray starting from the cam position, shooting towards one pixel in the image + // 2) a white color + // 3) pixelIndex ranging from 0 to pixelcount (640,000 by default) + // 4) remainingBounces initialized to traceDepth (8 by default) checkCUDAError("generate camera ray"); int depth = 0; PathSegment* dev_path_end = dev_paths + pixelcount; + // Each pixel in the image has one ray initially int num_paths = dev_path_end - dev_paths; // --- PathSegment Tracing Stage --- // Shoot ray into scene, bounce between objects, push shading chunks - - bool iterationComplete = false; + + // * For each depth: + bool iterationComplete = false; while (!iterationComplete) { + // clean shading chunks + // observation: pixelcount needs to changed after stream compaction?? or not + cudaMemset(dev_intersections, 0, pixelcount * sizeof(ShadeableIntersection)); + + // tracing + // observation: num_paths most definitely needs to be changed after stream compaction + dim3 numblocksPathSegmentTracing = (num_paths + blockSize1d - 1) / blockSize1d; + // * Compute an intersection in the scene for each path ray. + // A very naive version of this has been implemented for you, but feel + // free to add more primitives and/or a better algorithm. + // Currently, intersection distance is recorded as a parametric distance, + // t, or a "distance along the ray." t = -1.0 indicates no intersection. + // * Color is attenuated (multiplied) by reflections off of any object + computeIntersections <<>> ( + depth + , num_paths + , dev_paths + , dev_geoms + , hst_scene->geoms.size() + , dev_intersections + ); + // after this kernel, dev_intersections will be populated with pixelcount + // (640,000 by default)'s ShadableIntersection. + // Each ShadableIntersection contains: + // 1) t: -1 if no intersection. Others if intersection + // 2) surfaceNormal + // 3) materialId + checkCUDAError("trace one bounce"); + cudaDeviceSynchronize(); + depth++; + + // TODO: + // --- Sort rays by material Stage --- + + + + + + + // TODO: + // --- Shading Stage (will genereate new rays in shader(s) --- + // * TODO: Shade the rays that intersected something or didn't bottom out. + // That is, color the ray by performing a color computation according + // to the shader, then generate a new ray to continue the ray path. + // We recommend just updating the ray's PathSegment in place. + // Note that this step may come before or after stream compaction, + // since some shaders you write may also cause a path to terminate. + // Shade path segments based on intersections and generate new rays by + // evaluating the BSDF. + // Start off with just a big kernel that handles all the different + // materials you have in the scenefile. + // TODO: compare between directly shading the path segments and shading + // path segments that have been reshuffled to be contiguous in memory. + shadeFakeMaterial<<>> ( + iter, + num_paths, + dev_intersections, + dev_paths, + dev_materials + ); - // clean shading chunks - cudaMemset(dev_intersections, 0, pixelcount * sizeof(ShadeableIntersection)); - // tracing - dim3 numblocksPathSegmentTracing = (num_paths + blockSize1d - 1) / blockSize1d; - computeIntersections <<>> ( - depth - , num_paths - , dev_paths - , dev_geoms - , hst_scene->geoms.size() - , dev_intersections - ); - checkCUDAError("trace one bounce"); - cudaDeviceSynchronize(); - depth++; - - - // TODO: - // --- Shading Stage --- - // Shade path segments based on intersections and generate new rays by - // evaluating the BSDF. - // Start off with just a big kernel that handles all the different - // materials you have in the scenefile. - // TODO: compare between directly shading the path segments and shading - // path segments that have been reshuffled to be contiguous in memory. - - shadeFakeMaterial<<>> ( - iter, - num_paths, - dev_intersections, - dev_paths, - dev_materials - ); - iterationComplete = true; // TODO: should be based off stream compaction results. + + // --- Stream Compaction Stage --- + // * TODO: Stream compact away all of the terminated paths. + // You may use either your implementation or `thrust::remove_if` or its + // cousins. + // * Note that you can't really use a 2D kernel launch any more - switch + // to 1D. + // Ray terminates when: + // There is no intersection + // There is intersection, but it hits light + iterationComplete = true; // TODO: should be based off stream compaction results. } - // Assemble this iteration and apply it to the image - dim3 numBlocksPixels = (pixelcount + blockSize1d - 1) / blockSize1d; + // * Finally, add this iteration's results to the image. This has been done + // for you. + // Assemble this iteration and apply it to the image + dim3 numBlocksPixels = (pixelcount + blockSize1d - 1) / blockSize1d; finalGather<<>>(num_paths, dev_image, dev_paths); /////////////////////////////////////////////////////////////////////////// diff --git a/src/scene.cpp b/src/scene.cpp index 3fb6239a..04d32f39 100644 --- a/src/scene.cpp +++ b/src/scene.cpp @@ -11,6 +11,7 @@ Scene::Scene(string filename) { fp_in.open(fname); if (!fp_in.is_open()) { cout << "Error reading from file - aborting!" << endl; + // application will terminate with unhandled exception throw; } while (fp_in.good()) { @@ -134,13 +135,13 @@ int Scene::loadCamera() { float xscaled = (yscaled * camera.resolution.x) / camera.resolution.y; float fovx = (atan(xscaled) * 180) / PI; camera.fov = glm::vec2(fovx, fovy); - + + camera.view = glm::normalize(camera.lookAt - camera.position); camera.right = glm::normalize(glm::cross(camera.view, camera.up)); + // pixels are assumed to be in NDC -1 to 1 camera.pixelLength = glm::vec2(2 * xscaled / (float)camera.resolution.x, 2 * yscaled / (float)camera.resolution.y); - camera.view = glm::normalize(camera.lookAt - camera.position); - //set up render camera stuff int arraylen = camera.resolution.x * camera.resolution.y; state.image.resize(arraylen); diff --git a/src/sceneStructs.h b/src/sceneStructs.h index 420e8eb2..21f65677 100644 --- a/src/sceneStructs.h +++ b/src/sceneStructs.h @@ -15,6 +15,11 @@ enum GeomType { struct Ray { glm::vec3 origin; glm::vec3 direction; + __host__ __device__ + glm::vec3 evaluate(float t) + { + return origin + t * direction; + } }; struct Geom { @@ -29,21 +34,14 @@ struct Geom { }; struct Material { - // RGB entry in scene file glm::vec3 color; struct { - // SPECEX float exponent; - // SPECRGB glm::vec3 color; } specular; - // REFL float hasReflective; - // REFR float hasRefractive; - // REFRIOR float indexOfRefraction; - // EMITTANCE float emittance; }; diff --git a/src/utilities.h b/src/utilities.h index abb4f27c..ea2c4807 100644 --- a/src/utilities.h +++ b/src/utilities.h @@ -19,8 +19,10 @@ namespace utilityCore { extern bool replaceString(std::string& str, const std::string& from, const std::string& to); extern glm::vec3 clampRGB(glm::vec3 color); extern bool epsilonCheck(float a, float b); + // Split str with any whitespace as delimiters and put them into a vector extern std::vector tokenizeString(std::string str); extern glm::mat4 buildTransformationMatrix(glm::vec3 translation, glm::vec3 rotation, glm::vec3 scale); extern std::string convertIntToString(int number); + // Get the next line in a file and put it into t extern std::istream& safeGetline(std::istream& is, std::string& t); //Thanks to http://stackoverflow.com/a/6089413 } From dceedbd0b57b710b52759585007859ac4669c0c2 Mon Sep 17 00:00:00 2001 From: "(Charles) Zixin Zhang" Date: Thu, 7 Oct 2021 10:03:11 -0400 Subject: [PATCH 04/18] Update inst.md --- INSTRUCTION.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/INSTRUCTION.md b/INSTRUCTION.md index 86909c34..be24c4e2 100644 --- a/INSTRUCTION.md +++ b/INSTRUCTION.md @@ -68,7 +68,7 @@ You will need to implement the following features: * See notes on diffuse/specular in `scatterRay` and on imperfect specular below. * Path continuation/termination using Stream Compaction from Project 2. * After you have a [basic pathtracer up and running](img/REFERENCE_cornell.5000samp.png), -implement a means of making rays/pathSegments/intersections contiguous in memory by material type. This should be easily toggleable. + implement a means of making rays/pathSegments/intersections contiguous in memory by material type. This should be easily toggleable. * Consider the problems with coloring every path segment in a buffer and performing BSDF evaluation using one big shading kernel: different materials/BSDF evaluations within the kernel will take different amounts of time to complete. * Sort the rays/path segments so that rays/paths interacting with the same material are contiguous in memory before shading. How does this impact performance? Why? * A toggleable option to cache the first bounce intersections for re-use across all subsequent iterations. Provide performance benefit analysis across different max ray depths. @@ -149,7 +149,7 @@ For each extra feature, you must provide the following analysis: You'll be working in the following files. Look for important parts of the code: -* Search for `CHECKITOUT`. +* Search for `CHECKITOUT`. (`interactions.h`, `intersections.h` and `main.cpp`) * You'll have to implement parts labeled with `TODO`. (But don't let these constrain you - you have free rein!) * `src/pathtrace.cu`: path tracing kernels, device functions, and calling code From bacaecf558583f8c7c4d6aa6f1ff6a74ff1a64b7 Mon Sep 17 00:00:00 2001 From: "(Charles) Zixin Zhang" Date: Thu, 7 Oct 2021 19:33:13 -0400 Subject: [PATCH 05/18] Working diffuse material --- INSTRUCTION.md | 2 +- README.md | 13 +++++ img/stuck.png | Bin 0 -> 145851 bytes src/interactions.h | 26 ++++++++- src/intersections.h | 3 +- src/main.cpp | 2 + src/pathtrace.cu | 129 +++++++++++++++++++++----------------------- src/sceneStructs.h | 15 ++++-- 8 files changed, 114 insertions(+), 76 deletions(-) create mode 100644 img/stuck.png diff --git a/INSTRUCTION.md b/INSTRUCTION.md index be24c4e2..c629f874 100644 --- a/INSTRUCTION.md +++ b/INSTRUCTION.md @@ -150,7 +150,7 @@ For each extra feature, you must provide the following analysis: You'll be working in the following files. Look for important parts of the code: * Search for `CHECKITOUT`. (`interactions.h`, `intersections.h` and `main.cpp`) -* You'll have to implement parts labeled with `TODO`. (But don't let these constrain you - you have free rein!) +* You'll have to implement parts labeled with `TODO`. (But don't let these constrain you - you have free rein!) (`interactions.h`, `pathtrace.cu`) * `src/pathtrace.cu`: path tracing kernels, device functions, and calling code * `pathtraceInit` initializes the path tracer state - it should copy scene data (e.g. geometry, materials) from `Scene`. diff --git a/README.md b/README.md index 4ae15980..33164d01 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,14 @@ CUDA Path Tracer ================ + + +## Progress + +Stuck at ![](img/stuck.png) + + + **University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 3** * (TODO) YOUR NAME HERE @@ -22,3 +30,8 @@ project, and we will not be able to grade you without a good README. | Registers (```regsPerMultiprocessor```): 32-bit registers available per multiprocessor | 65536 | | Shared memory (```sharedMemPerMultiprocessor```): Shared memory available per multiprocessor in bytes | 102400 bytes | + + +Bug + +1. read access violation when using thrust::remove_if. Fix: use thrust::device as the first parameter to indicate the correct execution policy because dev_paths is in device memory diff --git a/img/stuck.png b/img/stuck.png new file mode 100644 index 0000000000000000000000000000000000000000..cab788c9b6a11f3bb0b35c0af45075b31ca1004e GIT binary patch literal 145851 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

^Q+`ju$by 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Ν5-i%8ac!4RIM4;BG~x+6dUa z7)$)JDY)&>lVoaIr@Ao)*m6!AfdUp|mz-l7lS2Ag|D|XETWJxVt;!-sj|yXa!8+fRsJ3qc|)| ztugIQW?1-<)tcMm1ZDo{fvLpHH0ar~7NlxWx>;p>{;zfO8O!`njLd_kcfu6r8GC zyhZ8(97&u?1WmdV<->;fTH+Go<-$Y(H{Mphs1|#*>)ZgFrx-NPpLHYa&OIJ?-!Z#A z*WE=mUa`Y-+&`ISpEbR{KX5))xz z^=H79UeJvsDw@uG=l#KK;kfQ5 zb5bPmVraZ2v>bVWKQ)=jPwUhYihY*EUBA;Y3>}x%Nr{gTd!KxmX6rfXbKlk(5u6`q zIX2Jn8V9rbIftrq=R7s4vg#*3@eDbPZV_V5YtIj6>&CT!0`+o*k-hZIy-J^M_^2Y{ z5UPg;%v}9)43qL`w;#%fWpL!L`;mb#aZ8mw6Q|VXb@mm5_J9?_Sg^->&`}dwi zH2hdd0%~M5*|kN6(wwe?)9Q@>4_YW9)bFTW*uy-v`O-u;Hs4ldW*UCA+9bWy?;GR# ze6Ml67e7JQ#oHmMVE>pYl@_N+4~4xGu=}#j`ZP`Gapvp!w~akm1}zVHCXN ziK~hJU=DLX^2b@@c}`(J5SX_tP!;WM2GO_R1mW}TW%5t<%ewVXXNj6;o;XQKP=e%Q zmgqUv{_2uZ>#sF-8sb5XXyT-|L5;<}s>g#Xw`kk883J^dTPOy12c9ZVd*|v?7x>~q zIt^%yHc^{6%@*p4;q*qZ>hzPbgWkg1KEuK6OHQfv`f43;X=8W)9 zLv5S%Ua?R>`t5X$1akc_BEQeObI}KXEq2%KF3Z~?qWy#;z5QJIM!)t$OJ5pQ=F=`& z=3k8=m4~k(`hCc^cK5pKJHe(0`jh87aQJay%R%2D2gu_qx(XL}P1OhWZf^}0CvnE6 zo*?%Sg$PRt3t<>NKg!pu`J&r}=95NA>~(X(_ouYOPd|K&V{WNRCTtGK&m~^wO+Ox{ zmA(oWe5!9baL}_76|?s>4Tu?UaC9FJ*=rPw@%a3e2|X zTg8g(_H(y>ak|p+A^}!qzz4utouZ8meXXQM?( z23A)y+q4~1x#L+IwpxeOuE7!ku_gL7jMP@^B4S+^?M++C%bUf|X8@u6+bs(}HuIx} zE+r8cNXcJ|!ukS}S4~oO7x_xWgcE0ZWj${GOeFv~=+iA1Mkc<~N7_J;FI=K(e4d3a zLAJh7!~}}dTb(>M^ox>&hQ;WF(=Qg2vG$Ts#X-7!#EpF-*;1Bsv3^6wa$v2?ziU;z z20?n(ek1_YI2-6u#{@saFGaT^qu;W>6f z&!`sam>4KdCPtmQxn7->uGt}7zHOnLy^^9DCvmp=g$?P6e)ITx;Ps%Q{q_hY{xE0p zVo<=w>v7Z2zsa5W=!nU&R=5)aTRE|Mpx#^89$8LpcyEZvVrdU0`d9GnuQdx&u-lo~ zt{J9CIBTSBp|q-RGiHhp6W)w66|Of^G(>sZ*T&z|Q&N8d0(`>0{#DTuA+9URBX8^t z)dnI~j;Nk4?BwB(od{-Np^{g*W-tF$i=sp}Jr^>M^zM7U>`C=>EXaM&v~ zkaBL^u6*@ysDIxO=TV~G;B&`Bx4_EMm}jp*ZE{k&9Db7G^E)%dMsjF_YrF8rSDzN_ zmF{=+Nn3unM>@mZrld@f2-pom^CLN`F9rq%d&Uh>`%OecRwNh&XhNmZc~~2svUhx8 z3vRLBW9aV5geZ6#wnjsUP=!?v@_$0>!lr^IVewB-u-&v zmyQU8J(_zl6z6#;VeD&3aPz$$``PE zfgb17V)A{Bwi7O`hcdP{qOEOB3QASlsM)W=q=)=3hn!J{S)Dcxpy1i1ox#m!uY!0D z4qIrEP8mkNENvtLPueVV@oq~#T_bHDDKF2`y{S6iBUz2}hc{;q+IA*$`6}=Id|uDV zrIGs(?Qr;|^(XE=N5Jht>+)g!prAzQ!hLo=s@#wyy^1)ik^6oCR^VafxDIg`#g#df zkPm!@CL<@*jk53}pCQ{hRgGn6MzEIH?<#nF^ozO5Azre8jrN8i$X%w_+{;Fm>G~E? z6PCwfwyNaOffkgu0N|Vs?Qp<-b&AebiYjG(Jd0NF6Eqc*qXk%-3`cOPIRr+=u(=j=bpkr$-+zM;{CicyIc)2!SueO z-Ry366?qofiyY{I21F_GUZ!s2ENo#d^)2Ot6wu(s-&i86Xj)_EmTDJ*)rZYcjaQbv z+Up$`EL*t{lL+aL*^DDecrw*^U+-zz|0KZ#XaqF{lTl#qjH9D54=z`l{oN4gLR1P1 zmL3Vm4V31=Hdi@1&&JL|YHS{$p|225d!7bnVMGNQ-S2dxe!)193WX)DwI~-pwo$CJ zNA(3z6(#|^i6hAI z{*hTB*62mJ$wFPaD}chs);E`kkP)3vmx!!IfAxEEOJWr7%!>hsaz#DHqt^+AmbCF( z+j_lV;rBy}L{WL~PyWS7w~*_k<_-A!`XGn}b@hNg-^`u^+e@+FRfK8g75{0!w$O-> zhoSnY(s3KS8P+M!BhIv3Rt~~AKVETpR8?Tf%`J`KrmK{Nqve8(kx<|ioZXwAAR7`Z z`k1aIf@P*qX&cS&C53uYfR$5!L1)|NB3l#v!-pn)-(UxYjxUUGsEHaOB9Ip03kbk% zr9ed&Z!a=L02+mqQDdp#KL7b$<0D_#X#-p~PI0ukP{-MQr3G{~{5$I;Cu!5$f|Fb% z@va-ix4p)e=WtdAZo?fKZx9xy0e=l*EU7~=FdTfAVZvr;mEe}0AK z#QUuO?)OHjDy(srTAV^*OoG1XI4XFU~qUD zp`^S`vxiS^Ff3s6CWyNdy>lXWl>wM-f(O_Z9<-i5WJ(2b@88(T$_{Mphc@8Jn@Vx- zI6t)gLTkfkbq+*>8pchdj_c^X3n3gRnR>_e=&=m?Iv>nIM)y9^e> z+7hyGIJGSKvPP2bQ-9T*N}phmRMzlqvnn54K%!wSZAn}QFhdH1J)-S(XIV0t z$b**(we>AFy#t1C@&QwLHXbQClV?g3}GamHf+bzcNlO+Ajk!Zt+h(+w{1L9_j^gr6Fhcriu4aD zFVV3Bmbj^gl6WoYdJYyJzlUp*MB;UILXFygkM!L5txr-Wp&ZCRbi%Y?_-@*@l*l^1 zRO6n{>5(OeR~0LnH}?o*FIT#Y_EyfkfwuqD(secyXKYciXPd4vuEbmieq^Wb_QRE$ zN&;8U{JGWUe3^c4qn?1oP=%XMf|Ck<-otqF_4CV_)rb6L=RR(_cShME?+PkbQaABq zuBr@{ztN6)`tVkI86$k1`M|(1AL-l{MH-i}Wh1(s#1<}}fWZ71(d3>bWt4=j^wxrg z!Yndz(9f52rYkj=l+JR6!SOUdE3wt>rk*VwEo16Zv%`YQ=s*wymCM-3j#QmPwK(z4 zDy#{;{7M8Kf1Bh+YQ}XU?AMHfY;V0}fRlM^eh!o;P3xXfn>HjYnYy`1p?xN{f8tzi zYc@2bis`Q%bLpg;D|$C(nd)t;^IK8}$it$jw`+>vxC!Oy=Q*jFjRfZJk!5%0c#J&_ zys}Eu?|1L>V0_6fnh*n3s^96=v*o5<6+#6gx6TxInULf?@6ghx^yb2#F%(@T4oH7^ zpJ^!(^a%(j5lUXU@vPKBV6e8$*NLxnI=~J5Nz_5GCU^ry;(F}VV-HI2nj%2EZ{R41 z7Be$aDKxRYQj(ZB5su?xEUmCiCLxp{wo#|;1^7-U(_HY+nD(^n&?b0!O7}61v(a7J za5Ux&AN1#mbB42ezmC7`ccLg-_cX@vdCPCY=W=DWS`Y%NHI>st-EKwy{OZQmQDOeU zqa=5vx;CQu)HLy{a1Eu=Y14xY%|ij2_~c|9O2=a zs&rOiHhj7&Z7{rO+RFUa=E6Sa$%ju;V7aw7a%k!F>ELWpIB%Hk^j-&?AOD^8D4oY{J*CO+G^uBKDOGt@F2&KlLv#3Oe~_p8t@WV|xO z(TQiKQ%EHvQRJTNNB(;h*cVOGai)rDC^E+g$q5fmoaDUP3B*uC!FMt};rdu{2L{=p zG8n!)5_S2NxMA7jV#D|Lk2C9m_-#YD^4wANYH{)3jfK%qEE^&*wRHVQIq5V%??Fl2 z%aqtNd=%n|-12VQ%|9^FBHv|!|3o7&*Ns{tK6_)V8uRmM6-HBifLu52F|Ua5N7EcV z)A^dQlwJkQ=B1d?g?g-@SFOHve;k+N=`~OQW(-;CX$&x4u0_N8nY{kS{Hrg7b|e#fJPwvb8%Q@nJ2SMDYpJ2%o2YuK@~Sty z4bRG}X(UL=lvgi5u;<~puJO-YCr;{p!9F1mTXJ1%?T!Ae%kb7!39GbOxn&n`vF|N_ z(!EG@=~ui6AX|9l>kV6PzEk(Qjw0cyP$u>LFy%%a5>4%A+qSxA=d;0n*j-Y+r&!V8 zpyF*VOxv>1`D>g|c`1E@E7?4>-5)^)fp`!RqvbKy(1R>7eFk!lbmYFMT^L+Ta5~}? z%U8fA`>be5ZYq%sv7aZ_W-){3JtB;$_m5hsJZo?!_04Xf$d*2Z)sJxd+M2$~teJSErlSKs6MEeJ#2hagoKejw))+tvzVl5VC% zedu^)a5_Hc_5x;L>pe8g~+YX3ISkn?FmbKU z9Vn{R)*O0nEkMyo#I6@bT{5cc68`hXc1(wm{B+3rTNcKqbU{F${~8osrY>V)qPEM= z^eIN5m5wXHGQWgC0(Nvk)p&29qS21cb}uR(;LUptol-L$f_<}s{E z0gp1%VF$yHrW)xkPxM_~6N&3sgddCUtmUs?q%j>^^tWQVp$yLD3=_Aw{dp@>qoEBx zesC!^Ax5HEtYnX4Z8k|USG|h64T$qvD+Ks!6Xq3WNj7?YGw1AO&RS0D^32Uwf3Ul5 zBe$LNc3->vgpZL-IRkIN4^b>v8B3hy!BOg`2U;~LN=BFD>~*4~BiBPcGB}1wANB6R z^zE}u1i662(+BQ5Q3N~j({cgadN7X1N&0ZwcrmE?FzeW8O<@tNi-tJolB_^LL)vu= zT`EuR3eWw->C!f9!Q?wkD`2`jjNWP-3Yt0EX=4oO-I4&7dV;O?gi_h zHPS3`iB-P)8@$vGM#9%K@qD$^-#QJVN9-rDcN^+zo)&0RFkUV{(8U9tMF6qIRBy7hG79^>hW`GXEh_bplXhZ|QaKGvii3X^6 ze)|hxbcTZ>@{!Lda9y#W42WB3L%j#;WJSB|{1w+qY}G$?d8uuM+>M)na=hwJ5GlWU*Q|0t1$xRRA2wtvfK6SX0-J;&qa3}QNb?iO;dag!R6SosCnC9u{*&$Q8ZK z;1o~MZ9R(lQV{5A7E)%Ro6vbU!0Jo%u~P|GJN3lt!%^a% z_ePVDEysH9*Q6e@RV&EeUbi8;!7#`86Sj|k3 zM=_nuuoD#1oC5a&0|$w*CUc_~fkNZar1cebX^htsgFdcu`iuDS*FW@l+HG*z+t*|g z4TS`VhGQKYy%S@f{Tz=olT!7Jij2TNe%4p^%9wW@EnhuH->o159qb!(4xLX|TP-A; zhXrHS;`VadH@s=!RI;<;WQ?qZ#PF-GdKgtBVXLO6uqNsLE(v@*uqu)~(=az#qDQ=9 z?u#aB$R_S>6wZ)x&L-W8i-=?Dzk;&hE(_mN$mpJ)!DZAWyRnKt53o7ayS=$^{s|6y zw{3AN=gT*lROYQ5e!q#pm{sDAZVqjAF`PXPsFzr@f?7Uu+y!L=&&*vdi%un)+pfY6 zCcJ~|xyis?c*W^7#9slvY|X4kzbMBMAu@1-F_FkRZ`EVxg{Vg*A&U~H<37JNC@U}s z=W)ZJjEnQ>*ryh?p(CF!0(0_7wV(Z>`SiJX1kebpAT!y}*B{(ZGTEo=3cTqoxaz=U z8di3y3hU8p^NaP}!Cd|9P52<_n)#>9tW?QhWVL0Fiip;8&%_qoRF??xIUo0a0ACUY zmEFy&AJ+|hI5EYe9K3K@Pxrl#UltVyYgr`v&cl~=yyf8|kNQxL=t1*%_N!xW+c=bj zOp3cUG_FvX2fr>^OIR@g0$`Ch%kxtljRlgQecqGLJ<6or?)VGtx*R0axCR{wgtLYp zac#SpORvJ$J#R-~e4k+otKKWLc7^L^ z&fEhKG0)I}wBR+*Vq7F(o1l1g>(&yg@Vx|hG+4qtFT)rZ^}Kfqn#f`rF;fYx`Hr! z=s}szJ$+c``PEdf?IL^H<(^8e&N^f_KA16#;$w&@T7S!47Cw_#Gf_`=X3H~;F3V#*8uR!=2hF= z;^$kBDeDGldHIleYrtk-*u1;cpr-wb(cG<(xq!KWRe-WiTpgG%253C#L??d21c}}r zoRiwv4%`z#(^_F|AieJ$EWkMb;?cDh8v6D9wx7?Nwrpk*HPGgA>-_#LY3Cxuy_@Od zgw+y8R??dL#(c0KgbCWhe`(SCy&N(;M~Yg*x~C<=f6Pz;@P{w<-D zj|9_}=TZ{oEbZE*@%M-D8N7n!id!A;3I~JonA!*}ZZ&$XFG7VxP&#^K?TAdmY#@_PT-I`v^I{K+O&1+bpRok7l9_48OV;4bJ!4-Ncvzk$f2;A z!}2_icJu!8QzlIP4R6g!@rufqr#$SRfZ4CpKQG%p-i;1yTD*^EYQiQYi$S7==rH7a zVD3^2;mO)6gUS`lI&*J4_N@Yf4UM3zF@(Z^#j zXy#s_O*hyHU3?U$4cB3gzvMNrGPqQa(H8kup}?pV?>;5!(2b>}kX>#_ogD}>NPG~9 z@eb?Q@qum6?*Lq1BqMgWy9k1ALu)UG61NVVi_4GOF2(I5mhB}0$v%)=LN3nWsR`yI zc}jnTM`E?$R-189um_>F6O? zOXDC~MPWw3(N4C&n`4>8+%fyGL-NqrPE73sGV=2^R4sC2>-2>K+{lr#wo;sW5Vk%w z3z{1LM5fo|PA0~|Hkr?ZgX^1576l&W&TJ!`z$e(d?q9Q)-1s|3*#Uz7d|`)1C!33r zX})H~7t=i~a=PxEen&MM5Iwk41v<@ji<`LM%|!Ci>HZ2r%b*}hPEd~qO;+5Tw^XY; z0ltzaIRtqp6p5h|TBB6JeeklRMLv;_f_Sv84y)Ywi!X`lKenvDX65~;vg#6o zcmatVFpc*je;f;I=>Cky4a|&FF^i$MQP(%OC2Fg>&5odKyV(6x&|%dIV%ky`gFjP_ z+`A{}W@9mKf2DZyzJ+^rWMi-YJ^MZgrz?S{)$p1wbTPC<+$K^zcQXm z8&=jiXpiIR-l5g+=!L|wTnSMO5?~$Hjh&Cn3wpbj@J&YX>lUcoe8taLA-|EGeVrf9 zenq~n-fOdXIalMqm)pD;ye&RH=`QHpnmc(L#x{nKwTBp%_f{S@O4;}}&_A{0lK22` zy>zqAB}V}K%T-7`lGWyG7TNrj{DcAT#U)Fol!^as-l&hFzaTNCNouFt4W*jFZJC3B zU_I-~b@T$w|oZx#^+A z%ByON6&T}(k&Of%ei7fD(B9jGYlyh;MtT2F#lM&75Wj7VWf_Ci+OS>mdMnz(Vdr$X zc-+Z~4kX0(O2-rV5V<2RZ4Gw%l+lbbCA4kuZ45P2-lD7DaCL^F!O$h-9T zn|-R(?;Jzx=n}-v`2gr?3$3PwY$8ZF{UM+6+pS%#qy(g8yLMcL2xH%iaZBOTkmDnn zd^%@Uy-<>ErLR}NKIE4)3B*Fdsm`Hg^l*X!#@Nv=S0nLnoP92jpCI!)OlYy^jy<)g zAd2Bo7nlN!eYu0hHhOW%AL?$%`*nTt^Lc?b=KS|rB(~r#LnJs}S{A!(G7gG`2S38* z8U6A%~ z6LA=caB%r7;pVsS@bG=(ZXYrR9sVwB&9%63IF&BerZ8;%~0RpXS?G0}KeApH&oI1LaLi&qn@D zoq+sz+5(G#Sg7xv(0X_jqLU3g;;l;8Ur+q+^Lu={yhJuj60)i6q$a8=H^}ci+-M_E zG&*6bDy_&GerA;UNa6e za>L)Z``5?sTlgP;bJ+gxJA~Zl5Y3ME>h(&O(X;=0??4Oz;DWL`tz8qg_J-vO}e33;vDC{H~?f18DMgd!@ z8KD2$Zv!z_fFNoYvN!7f#AFzGMrYh&3^zr6+CjT@-pV(-h?b?6D#A;`F<_Uw%4US! zdezjxH#zKlAD<_3?-t$jTUC9R(#arNXFsImVaK!c*{HxQiqTRAlXIZKv_o|0HY&|Nw@4}@a5;2umSh7q=dAB{xkUfotckWTA z$^+9+8j9DzLZw22(OexrUjoa}xCHUnXW|x!K0wmQdAT#gH!QFErnfe028jt85uk@5 zLv?z3+CRQdlksAY@@SzV5lq7LTT5|XjUw)JK)~a)Vtc1+D@fe=M9^Mmj!;ji{hw}k zGMU-xc{#YGNru%pjMGf-KdS$hrvUQbCPJ9BO_>#cvupx7+@H@iEMWdU6HVeb*sy9a3-tYYC>l8Mez znKpy~HtHQo5ken~r*GF$nvRZaX=!ON4RiDJC0$}$T82+eXDg3xz*&pBgnOq-%?aSo z?3+!0@GY$n39!P?I(WYbI6zZw8%VTGl+og zY{23Ne+yALbXOGehSTvoqwx`>3hqe$rvt-3Oy4oaAtHq+Fzwk^FrTRL#=lXqu3tsW zJ6VP2n5PA`%90Qv-Tyd3oc^{!+O;SN3j&~!o)csTEgkP$pdpwT7q=>0X_@vv9lb=M z5OrH|LJKAwKxJ7VQW`jeq*TfEZY_gm+$ zmWRg8%s|WmAHh0Y7+hh=%omWAPYV!tP)-xlDZ@8x-!$qMe0om}**+~X+f$a2ApYfO z5A`u=#qiyU-X~tP2h@fo7d!a!hLO@cLylZ#t!t}XF zycA{2U6s%DsO=sv;l5`cpUbPq(6&3#lYj-1!n!Hz9x5N(KQU|E_+BI6j=#-r8IlFZ zx-Ke8#W(9|N4jqTHY$4CS1{Plbr>8s(zEjl3g4bZ^qSd#BT2MF+YXKBi90U|QgIl$ z?5o5lI^EA!>zcM0x|$^!H~Lw?&x*D`J4x`M)hyi>1g(I40*?(z(yZ3~i*;u=mj>On z{QaF9Ex1ixPsHzSmL&|~y0<3~D%8Tt=k{PRwc=)EiR zILkt~oH>}1rSg#1Di)0Y(GEhzfhB1mTymez3^x!$e8~+sOYS0_7O|-%HN3f&ZU;F+ z6_$!qUmG`ZF<@xQwyXRCH~dJbC&%KGht-~J4{8^FLWw#2tcV|jgNP}mtfNCP@@})b zEO!>NYmZk)?I|(hyNFn_)@W90%4VXeLOYxVyeZ2CI*0vyqeyu5g|&hhg@EbeavR2y zGkE2NwfrCr+gf}s&M7LYD0cxgSQDq5R^nG1!5*$_&};H{!-raM*fc}>cS5HxOZZPW zn%IX0M3xf+1K_o225=)*;ir@ANlM-O78};~w{c8;{hEd5KW@&l9ghr72S7J|fr`#I z;XC5(4?T+KTR2_elfu_T?bD3@<>{uY;1;#;l->`|%1=89WoO+JL9~fC4Gp;7Lifm( z;Q0;5PY+pKgi%$^u*x%wx>Mmt<`-&<<5p+z8VhS%L3EqgR9TkAqFJzgUH`l`(0mu7 z>mp%^-jz9sYi6jTT1h^iE-D$Umq976R1np6U@fe6&_3)betzg7aJ)Drh(907AKFNa zT0j;tkrUfa>73O{rNu(Fb{!#W;#8#%X$z1=eOk+=aBGFuj=_@87K+Od?h3}9K$gXM zoqf-3sF3QS$hmoUV_>LLcH!sF1e-mupj-H;=mDgcyCj~lZsw{lYiefmKsSHzLZt%u zza9OWgrAkCnBBiYpE<^A@It#TpiP0YSQM8TLLgdHyw{F4`p0Bowc|W7u z9r7>|sliU4fnb%Yn^a#asa+7>6!E2HGmdxiZ(*Y|d}d})nFgWfhlHKctzip=A`g#}jz9#FluomstZ*)h@ zzW0vpb&eG49tU`<{wET+c7;6WyIXhn4|$#E*#C^0X-NtCAOcu3)0u*aTe6n{&x`)r zlY0=wt>R?QVL7GaNQZQ%37t>9NMACD0(_!-jnYxzO8~#23vb|%W3|W=F_w1UJ~-xR{VPU@t$1HRK3X# zCAA3khLYwcg95J{i)rnAu1xOlJ0HVhOY>>(E`tOah$v--Sx3Yt-E$glR-rWxL^#N8 znJkq+T}HF51YLgCT-d@dQ0qeRVI$@x;2`XWFSK&n%`kBSjRYj?_e_-Dd@If*TpWwu zbFM}HV6Rt;dd^6lpC83NHWLLnj>e^1w-p3D7NgHmYyS1oW4^O7lQ{oQ>HnD0T$=3W z0RXB?&B7kyRTp6m&jQq+O{ApSv>m4+7iyh6HE~MBaw`lGFS1^s4=>WT-CJh?gS}Gr zAN4|ucrK3~cU0NtFLQ5DA=0wsMbs zwF9Mkti2Zwk;0$?CXxk&LjGX)IjFm4+Vpve54}>v;0`P%DjNPUs~WRx$*5K1HY9nP z4M~-Xx)b>@@EGNgSr|mH!{{>q9QZ*@S{m-Oc?1XQ=ai1^s3$GZI3Qn_R8%ftWOlv(;0vmc<}0kJo;8KbdXs zcG>S<0(VkV>XjI|f$7q z@xmHr@y2TNdxY129ALk@Z`c@^r;DA`58y1z?iq~}h&IEf%d-S5sSqd?`N&=)FZenU zy3QaSCPuReR3oOJJ}?k#`w3#Zy$m><4}yHdnfwJJ7pq8Crwslbf7^H^?;Phw=j9FV z`Oz)BS^a!BABVhvyk^q4Nz?~!5*waOZ{!7|MERG}r>h@%F+1&-|4*@mR)L$JCgE{$gC|WJ$mw>UF)k0Uz1pv4WG^26 zUzcgq8)2qCx0Q=${_Nu02;7UMHIGZ9j)Uum_6Y;-=Z6Mx@4RwaZ^P68(^MTj zrgR2SG>wM}#I?zu&F` zHhyJts^mygzc}~#-brQqQvEZ2T6v;n;=(qk5-!mrv%KDfJl0LG8bYML$JGltbXz9d z;LVjG|1~YhgvDBr7w%cI(3cpFaIPL%BcVL8tYZ3by&z0_G(E_?|1oTnTHfV&XNPk? zWT39@ZVSZHg9E;Du$`p;V5efE0T9taJS>Y$sM%9{I_{A@za~yX?)!C2e9W5_15ESc zsOLEqk05Fsu*S?@4$uHMzey3=DxVRZiH=(^2;GST!;=t>OG)}7E)(%vHs#j52wWg{ zL|G6U#2!i2&ip5o#1|tI2a8YCx3p!{Ts_#=Jp04u*vGp{qtYQBqSuMaxoPwaLlYExiFr$S%q&?HDv=g|aSJ3OV{|6f2lvvYijI?PmiYY*+7oM}mYz|M|8Hn<3yW(o#j!dZdPd zubO^1vpMvUf3SnV1HBNhTHphA+rxiM7a-*KsH17m*|LjYvl`}K zU+Vwws;d>Q8u*{C3l9%PVj#9$tQ{9a)t``R9NA8Az1wR}FBJosp+MxI~3wO(BEPLr_JI7pDzbJheVQ*UZVoa%6vRTVQMnn1{{R$PZ*q^TD@QeOCT(~F{P+(9g^)TyTbiwXmG~-|(2ITI7 zS1E3KC<(B7`q2jpB_Z1lz)84C=ic5>PPRbB%=H_>5=WO?e0m2TSF-WA(|3lX1pXj_ z!-D47FV7|##DxiB5z{Ms=uE#V%R{wTc-8oRyKCcB+k+62-uS5Z`2Z7WlXLK5pYEH1 zWek`iD8Wk$9YToBxLM6f00y1O&a#p*!3`kRx9eM6gr>|HsO>_ti0?%uBqT&J89-Qw zYqf6&5d_M^|CqPDs0my(f&Cnv7uK)DPh`fsMcufD!Ro&D3%Fyf^4c-|kNzm5fzmtj z8twU;kA<$%zS|a%#V<;Lvgj1v8e=b8K_94SF#c+kCZX90#>ZFdN?bzksVe$Iy-Ya= zCIv{m>;eKTmrf;lT_RA;n-8})GS?Il9$I`}VM{n^E9NZ)tBp{X@JtrA`e&HuomMC2#m!vIGS$AC-qowSZP5OR4w4wd_ z0}Eu9*ftD30BAf+#veT%U)X6YKW)(bxea`&fdb(FchJzhol9P9D$n$uU+}=N`NB;? zfkXT)LmF~>a5*eUq(?YQ@+7MR!n@x1n&MM`i-$ytFfa#&TktV%mt3{|Qa0oMI=y)7 z?r1A?*i=kTF8Xgvt$8Z$?99$(w@k@`!+vrhO&J`uKdm3}B+q$ftCT=Cf%G4X8ITCW z^L6x2DzgcN;|AM>hu}`&fAOfb&TwALBsQEe#;73`tyJ3`Pr~({tY2C;TL;n5eBcTl zI+1NUt^lKGH~a2J=Qw4qVez;9EYtf|h!8En{}21|U{a%5?RKK=>ATkIdI8Qi`;+?E z1Qv<^H>6sI5f3v2T5&?8y#`5=pwVcLAPaeR8_!OT^=nsr^tKE8)3Zxv-$FxEeYf`F z7ogsEo(nI%jS-9v_ zY~xvjmH4M1t5kt$l=ViKj1>>K?9QcEeP)pT*OMiJ(>N>{7`g+5%}9mY7{12-5w=JL zT@f6W8m5v2!7lJmE}4q06Vm5SBr#pi!FXpJ2uC8~{GvtZ0elxp@FwA=+eHq| zNQUMDhDrz71T;Ed?J6898lqKmvJq}K==nawxaH^M^AJQP<7V-m?4by=faRT3e3w&~ zt7b(p6Rp@y8}HDPg>zQPClEo$R?|`RUzqJ=o=QE~WosLy=0}d$%Bn->7ouA^gBYI6 zV+F$HbujcS3^e)SvUGo;4yrL*kLATz_Ad}8rll5tPoVWQ_K0r6Dx3A=ANyN?o6k!e z%!LD4v$pHj7n`}Z=7bCJmt+gVzEGbJt-8E1BM>NaiPzlle09&#Riw^`isqV#8*&H# z>9qkOf?JB0`T^;Xvp6mwl7qWnibChWP*)JIj6~;))+HmHDxxS+yN{0{0-~fuv_75T zF~DckR`;gCMJ^RHu=|zN>q-g44ue;D*b0EcuFRNv_{y*FMChHuuq)AIQ@BG5M zxUeFk603hLmAJVvrl=f>~yq;iqH)~S`9&iaZRayzgsmf;F2?1_$qDN=zJ_d`35NImg$Q40K}N=?|~n_x}gI6+^UiIiK~AfDLPp z@A#*NGHhlC)PnWo@>j1y-Pm|fcB79GAEYEJRR{M1MDE6PkS^zjStSpQ7#M@r5;M7} zdi@W~;8IB|(-n!z_l_VSZ>j&Lw~oc;gxSx0gqqBPQ4wQZ9z~csJ>N#q*6ifKOHB01 zp_?4s#2KC59&T8KHR`o1fxDf}ar1|XJ+*XvT=u47lspSu0{-0klIBy-g`~uWj}ZjD zk@-bQa7tMtmVKr6GjN_U1P^$&xTu7CutC!#2?yQxCrQttukFUf&=$k5#A9s`Bz3od zeGM@@{spKO!f1;YWtz3xXzwYYJ}@bDnsGOFeamm(@Lf^~Dk8?(_6vW}#q2K(aB$)v z59|miqTgmJ5Amx`BKcDB6 zkHJ#d3Lr+Qd;p12g3uH!6vg`*_4%>#e%xA>?WY?yvTYCQKqqwOQc zaD>I4N_KK`s#iQIA#0OK-8SmDZ?1%+jw(W>vF zF#JzBxP)ENe|Tr#R{Y^;raQqwbdq7_q->f#RfYIk1jt5H;(#WF$mYGyW`}rU6!_Y0$_C)MRMX zBvutz3fy91z7?6_e;mLNYWF%?uwR8CMh#hO_N0q*r zkbNIlrpP&nWGEPOU(hH}7WXNdUB8Sm&>1y3dC_#PQgNgLr z7rEbrl*yNY+GM)uk%x_dZ~|EbWQrqY#9h zt%P2qrh+Od_!{C!9J1bYYVOo4RiDPZ^>~cUyxZpf;b`6GscK5MQL(NZZX&!E6!hcU zW+X=qS@>tD5_=9IuYK!@&HYQs;-C7VK=cF4XEgM!m`EmwhOWXI)4T-wYbVf)uPv+r z-?CzU$j6FC=wVz7lh9gZEdZU+`|edN4z0x`4;{W^Q1dtD5J?kA{JzD^_p+w%Za+cy z+jheUbj8gf3}(k?I2|s`QSm3sUX1w0)-HafNE>npR}N@W+^!yge|~?_q+kevsEwHJK9B}aoI(KQe^7wI709Z# z>rqUT;jH>a8GDVj_}c;vIQ(vNBS``eS5O5L`z*Vdj`Cl%^l%*I^Y|TOkYQB#M;gsZ zw-U9t2^mvv=eg-|i;Bbuedq}QQl-jjxyOlQQ$Ggp33XE&`qZbM+qI_;o7q-YrheZ0 z-4;S~4O*CLYuYP_8pp$N+*lL(JCPuRo3O{7o~B}VgCu#*e!b41Pn^g=u94kB1HM1} zHX#aYjY2dKc1zfuaBX(s_|0LgcLE98GJ(073$;hZd)Huj#49ABm6)IB%ZCh47sU0} zN0sA86=o-{#T@mQOuldJ-$RImg#+H)YjRWQjl1 z3br-MHXVq+AJ8M^n{%t@LIX^h4D`1oZQo&$=9o%jgiG}mLW!>8l6kzc8kA2wuSS9RZf-^eZgiYz=6pENrv8KY%r;xl@y-Tcs!PGtenCK+6u zv#WSxuI;S7&yyM7ES;rPHqAjbwaw?cZ)D z2j*5eByHDsxPppJ!@1Rv=XYyU%mTXpQgx!9YUmKc>CO`Qa*vVWclIHp{Sn4g;DYwz zc6%hz+B#Y${AtGB@S=F0Go~Rl6z1u+Zz~h}?8I}ax`kcC_J>gFXM4rU~XpoFv!LW3HCVHMl!b#N3Y*j zEe-+2SfU%bbytBH`&z6IRMz1P8gMlPIgt|8q1|p8@#u9_bij{FI>D8n7ZH`ZjvRV+mR8y&tt)+4p&jtK>$h27pgx2%T z1;E*II>;%m*0{$QDHxdsfm?A630m=ewEnz~CV!<)dn$N6aEWxOGLfW0UO8N%yeO%g zc%-kZ;zmlc;~Q#PDzf=Ok>TM1pLGm*0m2!39JWB7_f#Wy;aSu)Q;X|?0;_6ROhmS> ze%QnCx7aow)!68>X=>lwg*xaf#IjpJ<8}Vym_igTQdlT_`^jLqniQ%&omohwi-z*k z>3L@e99b@F@wg&ElW_F$4-%>IfJ93hb>dt8QslhN4U`;1hmt2f`F%_%xogXE0(_Li zI;Gob7*(I@*Yn@ah;gWw5Z&@W`ZNK9Zl^VO4}yuttBJf7*WCcgzSW*wfHzbB1JY!q zJh=Z1aUQuTi^nuh0Md9BWyIR%NaR^sx;XV-D$TZ+M&yf=p!l34~#U!MXBvt*HW6Y%Ry{M0jt;+XTw5P!l%)iUiO?A_43K6W*Ge`I2+BxGkKXQliA~o4nR7 zARDXk)9;vU1Q#K2cRG}HPydLc==#_yjejT6Z+K`I<+!#{+0Cgq(H)&GW{97I-s=t7 zgK0w;r7T-7fWV*wfx8OSxJta}FYDiyKL~)cYI1++RLq&KGiuVk2+1~~t@$Ov=-s)< z=FXgAs9pZRn<)CQ_qF4*VpH?L?2s`B-ewtb8?_mN(B4&Zp&8fLxzAf$4*T4RQ&}C7 zEgJ&iHhlfAM3H16OFfaSy#|#&Go%--SbsyGKC34q;jpAuee7u;WbSF0tm?(_K6wOw z->NY{`4iRF8yb)S1R<|Sfy7r`*^SQLEME$X^pt_c)9Wta%dp(8pOM?jumdVAgH1o71(V!(b^Yt@DhE|2s!f?ucQi1{&rAi3Qh60}@i!aL;jHiy5LVi9%$ir7a zI@3Ka+K%A*^|P4B-e7{=tu$fA?yJ!x^;1DBw5Oz&=9}E_sqZN;173T1#BE8>EE`^z z-;RE+ZIA&of3#a@R6goqt45?7Ys?+5V^*Y){lD=$i8z;kubVi41EPSSPY0;}TLO2| zNyvYgFoh4$dxzFjrPyz*kjxiRCe@NG)eyn$&xDEo=xDqNkhL#I2>@gmD)VVCG=3M! zlJ>)TSk_H7Ua8xh?F67FtZ}P?U#J(>AF|1{7ShOP=ORP7c31jOiQa&3?1`)vg_2pa zKk_RvrLxyTn?OpT9tXPme0xsP-<3CykTMA!-MiQMbO9T7magyURFY%Hn{N5cEk--E ziU}u)@KzTVcrz4qc9q+Ajy1iR9A5G)ZTm#rP4LXqSGI=-3Y|6Y9;E)_yFd^z_=U?- z+`+3{&?<>n13Tvm^h7TYnD`8jbf)yop=!QD3tJLfy`IZHVFG9kZiOCp@QK{$ozu}O%xBVDj84u5{7(-I_u7{&Kop4}9x2-5%`|Uk# z#NHaPs3XW;V@r&k@XCmu$sxYkR(7|JKYyecT3rvvcGdrS4ne@D*2dk?elT_Hvi584^DqZli;Y_hhQMkNXh$_PV+E8V8 z6Mu6(qdON)%?q3rnPn*AhWS3ni&3x+Up4oZe{R3U9fZ5oo+n+voh{n(VVe(gAnIg@4t%P_;Vk<(R@H30y`#@}}A<)e) zL977Tq7m`;Idm8e-iS%J2Z4qh_%+t^^#3L~!ghDfA=1L(QGi$%J%ZzmMD<^B^j}6) zJE(i1xPkj^DaP|Av#if$j?%hD9}FW|-V~U9qy={I!Ke5!$z&blH(t^%E!GW+$QvPj zYXpg=p2f(dR)2c%dqrL)(|>Hh)aQyKFZC%^Ta)+en5Z=B%1u-8%6mLiFM0gr7h@Ro zH~lhpym4D#`cuxUB~P60{YZkWj4!NKch!!@cfI9AW_UXv zp`+IWt!~HrGB`Kk8(=Gj;{n;)g^jzaqnENT1VCQ|Cbt6u|!> z?X9EYPP(n(NgzOQ*Tx~Z1^3|Y?(W*Sli(8E-GjRa3-0dj?(Xn)CNr6N?!B+9_v?Rt zYXMDHSDmUlviCj&&+d%2^Z20Np!L3ijVgW^U&WShWvIn(5%|Dt>_^+~A)FAH;R-0^ z+<`)5dM8@vK~Wvwv1O=VH@89ADj@ys5$d!rOW)k)Etov)7(2`9Hr(oow*>vy!+ZT- zwHwnb(TKnt75Q%$$*%;+*6DOA9GMJ|yUzGg!cf4!=%{E=52b>0EvtT{icg>1NsH>6 z1467c^onOc;kZ)_&3a-XnN2()C{NkEph3SlH}`_NRJ{^;5W^l&iIKmh)d=|mzj7fp z@RAeWF-5WleFpb5Gf&LZ^-beLvO{x~SJ*?5_o+3Pe{FqpQR~If&pP6CvC80~#Y{te z%Zn;C`oD@?rdWekoL>Vy8(b295i7R*cZea+Uu*`~#xr?>&sA?O`-8@632wKK@2)yW zf(*KTb?pOW#@V@Z+i7$9`QqTXD;Mnf(r?dR(z92I?3-gWp`oeO(&q-WuNEVjq%Q{x zEKVzLQ01=$EN*6&k96KVGRjVnx9mq;tx|W?u>I8wQHk8YD||E?5O}%}Q3Aa$b$inS zB9$hU13D^Y+#S$ex<58u@byN{Xg6ZaM9C3NBx9!M`ZGe*Fp_-DdFb zSLAwbBy-c2sgJ4+f! z*DJeJg`8u}?{f6k)^uj2@^RB~K5kajd`VLTZz|A?JgLn_2Fs52%!)fXgzWNM&U}%h z_jY`vtcg@|!-n-a<`m`6dmWT9kaXk1{E+*z8PqC?U+EK8o6tlHbwjPf7z5%9W`-0o?L9Iz-FG#|aI(C}NM{g;~Em}(u;vfzu+q%L>> zU4hQHfJ$-5;Ad6Zx>pC@aJ;fTCtTsVdwIa!i<712BXvkfitaIsrJTD2%t2@f@S)W6 zZWST0ctS4`)+8~m?3K<*uNNemrhM|^0XdAH+6BqG5-QLnE~jR2c*6}UjOg=9r*(hf zwQdh=J5}1J?>WjyZ=dOnAfl?rqX|DO?Ll!(iE}^RQajx9Vj|Bp@eMUc$TP z@nUx{S|dux(hn8L3*Ku5eV)z`5p@H2JjKR`;?7_*WpD>wL}>E~NQYgtYjZ8Wu%o^{ zSSuzJ(a{kcov*RqxHKf1A~}xAQzx0ch5mTnE@LOVD>m%A;-e-r%2$L%{%Q-!<2pa7 zmrSdj#*Oz-v-elcjVOE6hoR6Va~wpc7zLHliID$Gt!N+bD8MhjBE!mnsgVh3eD0#{Blfs(<%I0l=7^uggq?t&MND4^(-HCx_Ma7n zzg~{|ppv{+?7{45Z%Tc0;A|`Kt$*!7inRs*j10><^ZBzgS6XE9-<9?~#&8gA=Oi{E zVNd`ztealoPeI2e$ei&YrDEm&f2cg;x<6q99QXJ4dK0-~7k?F=L1SdX{E3LjmQ%Xx zGImWYnq{kG`fDWPCdmIs#+s}Ev>Lw9d9jd;l-bPU+P=F{K@}e>N0`(rKNEG{{DZl zTMQZzjH|JVl}n>Beh(S3dCVV5_1V==G6-}eLzT{@z+1p2kDdt4r_f~< zW=lOAzB0W`t~YH^CQi!hK|_BY*~@#`284KfvKC29CvYcb>UiMrgF^C8iC8Ocl|Xl@ zg`x|&T6=EFdfb5JGOw$*j@QilE=JGT*GjJ|%P!CsHm*vZ+esQWEoj9m=Sx-T)@BbqoNMsEeeDx9_-|F(t$G|5Rbebqbo{pjVX}!|Rw|e5h zLTp?8o)01-yU|2NF4NuRz`H|}c9DEO5iR%uUbpuqv)rE4SN4E{I^0{2lt+AKMy##bQ4n zOce~+=7oT;L(rR6U*J-dJc|{ml5g<@eWlcAf9Q&dWVFY0w0#~EdcW}uuNu)B;-j+4 zr;z~-G0S16Ex4X@n{y%R{~*n3WRv-!SX&JN%9qggtMs^#Wbrf+0l}xg%$e)xAKcHl zZkSe~n+6PrrqoL6&pxO8{1~X?CS=#uyFXTQ-y}^@_a$3?HsN0m9(ohA; zM?rr}8qPa@ZKv)_zCjK17q( z6%UJd=c`HM{PGQZdwG2eZLK^#kz+2TXq!1Zln=yZfQEtD_W!+3ru02VAV%FkiTtS* zNci(H4cLq1+M+i-IC#QKopc5rC^$d6S#(vs*>CfLuheOT>yfR!=^#eY3xbvX5LZSi zC^1d&UEyDwUn{pqr`z{dF)=|pP@D4JW`O_r3)i-1U<2D7`8E96|1Kx`;o9@og{B!P z3n*VI0+}prC1js-!Sj1Nf#6h@sURqfuBs*_m_n=pi4 zpWaLJx)4jRc!GVzb49&(w;Nx01G@WurTdh4c_V*NAywIZfZZr@m;!X&Bk=g&Vf~&~ z&_@wNPWNB>!m<8_p58G2F9<}76IZ%_(&IvL`7#HFO* z{)ChKqNT<^W=@+UAtDmc{j(2z8Q>}L{+6mOav)y}^J(Lyo2Fw^QSnu7B1>E}Pu{ z9n2aNNf-s|J-#b#kaA6Is$hoBvE06_??G7GPXhAq*EnLBT(@tGcpyk$SE?3Fk)!V? z^cmrJ!u*FJs8fC9>T$a}<=X^Fe{Jl*!oNaP+y_MtuHfhhnSVnugG_^ZKtLgj7X%I} z+_6O8fv@I!=p}q>MH*>zp(eL;<1^g&IYsHdG1EXF0!b)Xu_wo3f7R)Wvb58z+j z1iXLwYqUM0cHhoC4Y|(&Q;pe1$+?S2p1ZYBOpS@!3oBm(mPfPBhGoW9T8M>~j)NXo z9M2L0_3T7&DPONWV^2yIb#&PNCzvmn{b6an{`JB1#X~aliB&`o83=V)YcV@;_$U4H zZ=a2b=%NdA)?JBX>>VHFQ|rG# zmv;E(=H?YYfsOxR8vEy;ayI#o&*|e!PkIGHU;h&j>Dc}gA^7{1eIEEYlok*G`}pzW-vY}2;WmN5pQcM@*48~By}-Z!zz&}p9p=}<7{nhZP@?zuaCvX#*PFrjsLw(LB27z^M49J+u{EW5dGIY{yz*aii%Oewwt%S zWB8D+{i;#>Ams$6(VoFtov!tD2wc@;iZwV$IO@I_=Ik8>-oqq`;6ss3I9UubaDFw< z<%W{F2?Xe5chmQ3;9t3E;O6}`=@M{&tEL} zlFg8)mt2D#eEW(Q|1N4ErOZX7^H$<8@}X}OvCRYTZH`YS~5;Rk` zy4uBEZ{OyKo9tF$O0B6MoO;aq*54g0oBR;NKF0L>B_?9JHqPDaV1=2+sG9vuO)GCp z)h9*L^S*_E`?D#H(ZS;HJ&5szfkLI;`+-XwJ}!rJli85>0W5X(4qpADN|*DRr%0z6 z=iXg{aGLuE(|f+q=uP*4d?l&FE1R#v)#rTP( zLu`)B=8>;6(X0Qe^Wzf_leGt6*Q*{+>3U*@`AjSs%vbIn8c9oXC@2Gk2q8n^XZAQf z+>MzL`u({)+scd&yvk8WkdM z1vsvhWxXJKf!`;9)>`g9+}6mu&B1Lb_p2rlIAr>lj0m?n?BOpNk+o?Dz%Je^#eu~X zFKnnOxW{9CP@3*rN@wETV6w52839ex|A$k&?QSpfY||)_S16*c#K7e=il50HSpq^x zuRVql(Z*6>Jiu!1J|Mr7$+ZLKC83w_`2tf=__4opwlUTn*@ibZBHdooA}a$uxSy4b zkhbUClhbm#mYl~0J?WJ_VgX`1hPx!y2gf?Xx0M57@pSZ)nk@N*wUm&!Ie~{~&8H?f zxV+t{=LL#Xo-rA3gqZi^ta${UdTc&Vju)D|xXM)KFd>o8*6?;W^Qj+Xcgkshgi!gc z=UKPqcH#r;NeHd9!F`^a1v@^3XEg&%cn3NPoe#$s9!0J=!0E#HmVD?1yY4z?br5Xs zr-DzJnKCzAc%)y85qGJ+do%pPV#>I+i#^_cp5ryywTlmO)W8Hym<0iR;T)S$jkpY~0$%yc zPxXf(q@L3cg**bs6&Mi@!5o`ty;bvsj=&Q1#vQmLy`f(pfwalOTl}yApw1Zv^y}YU z1VtV?NR}-=QY@*DE6N2NT_>@*XPXR$tlWlfdP$|22FPJw$U{3fva?-)#P6=5F14Cb z1Q6>#z8yD12Y>hYqrh6@!CF9w{eq{jJ&6X+^R(7FcUAOB6FGWv`0Q4pGcAZJ`SAD* z`s#~zvy*2S1eOZB=Y^Iqtbw&PCk%*yfT1@XK;% zgSqT&F_uEQ`seid6~Mwj`q%VE#8fJr4Sj@f+yWn{() zNQDW#e6&kyGIgB`P2%8vxLExZ*=UC0&c{WSIWQ3)eY;h!YaK{F+}-Nzuf@JWT21sV z#!n2d={i}R<;O?$^Fy<*IOxX`l|JN68ly=ILTgJ7+*k1Z8679!d5tq90!O(dQw}|L zjI6|A(VuRRsnyVYBmbzSmm0%_rOzkP8(AK-y|1Uf;KF)7Pfq_#+NJ?&@E}AiNZS_^ zWKiKp{2c#I_0Fh`=Y86J{CtCCYW;gq3v=Ie@@4~z4nDfA!3wrp`9 zb-O%Fkm5lSv|Eb67Jz>naw)5a&-CHTp@ZPN;?oFlI`7buSYSw_{0;fO7_|aJRQVtACWa(XHj!Q z3{Hz2B1P9{pzM9#eQAG j{RSA9;jYXc=ok=d7|Bzvneq#S_DoeY;*_lZqhcye;z zMnIEtrR5DQmucBVE@|#nN}MLTi%(L$?(-N*CcBXY3ToJqfNHuh_M>eA^ng;W=xKr)F~tmVZVY~%CRulBqvfAIyFghDKK}8p z+=b0=k}c-{0#!>tb4}}=g};duVr^w8VvQ-ShXQhDA>Aj79Cr-) z`5S1zJZT|`0g}Xxw`0okeopuASERm^-)UDNf7#!shgi_1DZDAzu41r5CrY69(*`t+ zXuq{^9A!BGI~Q*R5MCO0#3F}kHFCn@JP2R*2JYq%>Fe5T`u z_4Y&1;f@02;l0~6!pXSsh|pN{yN&Ope2bdk8ZBgb1a5mDN(Il3%;-tMb6QINIL5=s z25A6J7)nZCeEG(OAE-ku5<@ntjqmrqK96Wg#&_Wvi|u<(_p!xkTm@=7jB%(z1ep27 zILD`@ZSPB1%_=TcYl@ZFxL|G>-1b%sX<`G3_eGu_h{GXB>mjc9L-G+y^(`vT8Z7?AHsX(d(yu@_Efk&!5SY7eLSeg5hqt@HUQa{y zA>hT8Jl8v`#mFM4-hDn~B!&>{7dCB?gv!AALXdNpG(lwee2NO+k{-ALK|oJ|$fK=& z7BP`&ya;N0UJMr9nt`|+67rRQ>!`0i_%*eCpXR=AxWt#H55Jv{!_=`gNYq-Oz0O>9 zTVmV?gtX|pC&8cB$jgHd@Lz|zg20ZzYbW#O38TJ$wjLZ2pNg-)E#bo7sJzV#_1g#a zeQ)Slg0=uoe_p521rlXTg02L)&x{(?z@xD0jaLuUE#@5J3D{~y0&{47RYhDoC+3@? zyVHKE?T-i>*kIID21s}X{y#CP0*+%fQ-rTEC~S8T{{m{dsCkS7%b<+9xg(5i^^|=- z3ju?m$2*F%kWK2Q5$GM%36NVceRa8IGl1yqfg+i^!830+H>T-j!~-d6z-Br^-qf$V zPdaGYnN>98gHrobk7{fe-|dd=7>nh!Rz4d?$ugV7{@-SQO*8tvRa zs2sb>F4DVs7Y$oplXPRNFk(o^&95Hn{RGft^UQ)Q?wMCJI2i)xO79Di3;af z6A3ETB`1RLoe7y3c0YeX2w%T@rId@&3XJwn`_WpeG;n_lBWPvfvzWuAbIysd4h=V0KkLihA2i zhge94H+)d+V$S;62J$}|DU0t)%+LO8rL42yR4C73_7#E8wC%P$$RZj*Cep^JT)4(c~H9QntqdEWlkigW=IJ*-X^QEId`n>S7pzw=4R)z}&}cE@>V&)cnCXVmQ>r^F#Y4 zm9@SWe7#LiNZ?wdecvi+E169bw*M>JmtpS_;o4?3eAN#r?l+W3z=PQ7sEbx-#U1_K zXLsP5(suH!*zG}&2Vhk;=m3v7W*L^D?BnXkHz>LHZex^nwJ4{r8?YCENAFBnb~+;h ziKRj7VANR}S-4MLW<;J>1pe5Dn#_BTpiK0xG*kbs7z$3X9|gC!3c4YmVn}qO`OlJ^ zN+-jwP!=vahAgTw*H`b_3Mw=P`b|l}>NEDibl|%5f;EEMjk2o!ZT4OUZ~H!^O;>-D z&8HsX2qJHpGA=HkoP!{n`;Y8l;%6n39D8El`E#6Kx zF`Cg5q6KeuJ*#AH>ZCI6ja!rMV_RCoY&{AIv=2UCYmK}DV^mSJ!|pFB`PK*EV7SB^ zLdz5RWx85BEi-V%Ls|zu0rV11K`KW_rIid`^8>i6Rnq30DDF?lyE4f^+jmWxOStA| z-d@fZk7mA}NkJPMKDd^T`(+$wrjjnUx$U0o-Y~sar(_}@qGOFNx{y4M>Wo!HyX*@! z3)`wh-n%zy1}w7{SMUOYiH_7Dv>H4&OX5$pj)7CL*b!-S8h~`SSQwMZKwj5b?h{jJ zZwr$YhqnVcTk{2+askb2hN1QYn&9{{%}=o`+9EGMp62ods}uUli#p{5!LjUQwLfK4 zT@B5^=YI~2lR}2NcSm@oZO-t5DZHaU(VP^1IWCE7gC&VVOfo7XbX~RLKf#=sXz%1n z+h{M+e&dlA+ZVProZ_~gcd(@22)vW#&@e|179@%iB>_Dy*hG1;uO%zHs@kDE zaM0xH;e$CZU}jbD2bb3EZhxpBDhXTR4Bwl@K&^WFbYTiO%i}wJ?(4<}I^M!{O43Dq zWQ$|w-sXBaB}~Pe;!{#h#heIaoHVgL)};@2v!`ycSiilo1uR|4qCN-q?H+uspLvyr z=8$>vJ^J#EIJQB8qK;2L=sonnvaW9!m{D3St(yn^_^chPd^Es=XPTgq=L%5i47 znHHyrW?7vT6xqv!5>4qw5Zw1%xSp-ZL<0RXL7Wj38)Q%B`bkzTa>Z^fTqgH|`3y9e z4IR;bRs;haBEPv%ip5evB$^A$oAO@7yu29SHqNpnS!-uMAk0ofXWVVy+j`vR|})0TFd~ zn2xf`8WZ&m#ip1O?6hYE@nAMKur|5w3Giq}zri12!;PpbIdv-F=+53_WXd9ywx8Ga zszotGZw56cYDMs_fH=NoU$j}_D~ryP>=*=7hCj z=H235+dR1YcyY+fEs9S(U;y}O*dm-HQv$8TAEy%1*w(ClhipvF`=Z8NE5tw4&9tq` zgXl(hRXTsU^;YXIHh=(+ih#8<>>6{D%WH*{osD8P+|I2Ce&o#3EH(C;ZH^d;4{P!Z3VUy76&AsLYaRzQODOlUd4Y#qQ(${Oke`|^2P)*!1+Y2@f^QFHkK zc+aN_qF8~`tV4`EF%Q-wjg{ua8W?$SlP34anz~4PLcuewcj!(X zE8{LOcm~;QtnMP{zF+PO9}JA37eneySG8xPT1rdl`vZCrZ$x@w9}jp?t=7YA_#iEh z!(eB=ZLV+5FcGavA>WV8a;4lM136T>3dx1{GhDm4a4&%F+L#Q!5>=vY7r8b)sTvMljsh4{wP^*?Zg|+R_p`5n<9=GO>l3^Q zjm=anoio}H@`DmAdKdR+q~Npxa`2Xzey|RW&5@A*h3q0pBl?f>uW1Dl$c?RZ zcfnM+s6;b5WNhN+`S48}c?GPM@3qitb1#S7rpzp5IrdI9jb5LMBTh2z1h-GIqC_`{ zWt3QYVCz?u%owYPj3`~!j$-2`2P9<;~ zJ83S{XKf=3@VD|p1sBo+>Qa zI=T^LkapI9@zsKj7X4T&qL98jK4{UEtm`waB!`Yl4(eci?3wVOU6d_SDT3Ne<4%0> zuZyOFYm?9sMLh7djYxcvYK~;K93@{WpxTZu-tmtTEBZ<6gKM!y%^4&i`6WgiqZm;V znUv2ysFYCVJ)RPlMY%%;su)koQhdU3pM-S*dyKCtw|g`yD<*B z=Q-OiyA6+7rEefzT6zG+Z{zHA!@@%0tBb6+>d|ysTtY)NZ0t1zD@PVlPWd^GmX4=e z&WLS9-m6>^j3a^5vGvD0vtIOaF3vsly84`wFCOnzoKx_JIX~ITL&W0a#NXZ02_QL> zDkC>k??SzL)O;b`-*D#?DNi0?mJ|GDxtu>Y+c&Th->8NTc7Qd}QeK&&1`z+AKiAxd zB;c1EuP@$8+iyIr0bqviisT>}wcHs0k*@x87&`4&s_=fjNx}`UaSYR=FWPleZmtgH=3U;*N^C5_Na zyzr6hsW4-Y5*-!GC2o9VK>p~zIRZKiM9^?xGh8Z;&Vmw%*alBKFdYd%n zohLFWtD(+F+CtqPTq^9yyycV9_rI-$-E6qc+<8Ce|Nqf?E?}kX|MQaS=Wao!L=_SzQlBZJxUc{K02C~&V#F(~ayn|!8VRKU zcUGX!r19VmVl{;J9aXhi%&D!b*4<*4KSw|F|TM z&6`RfYwY1JoNq3C92mtc{UaYQWB1&MLD$T*blQG#BCEKx8mYdYP$sLAhU@MRc!A_E zHjf?meF-sqa->JQ=}L3Q70wKPn(v!wzO8 zU;a3^d$QtpBFC;U<(Cf7o3p0iy*Y5+3>rs8`%rn2`IHZmQ?8_DUa=6JY+v}}oRK)Z zZ?Q7q%|j|>yIn{doD&5W5xd&*3I(omoy#?iw4BXkat0lQs1TbJSKhX7B@6Nfbj1o8Kd*87y zpKJwyMQAXE2U<1SmRS&&NmjHqud~F1^yrwnl0p+rVi0qKzbq2fCOqj>qT$8`tUNnB z`w~~AYi53l$4$arp&hx}L#V>x^2gFV_jLuiCPMG`wEo#f*88`y&evVIYF*dUfsD>I z87Ltbw_Drc+ci4#_9sVH@y|fX$2iV`1Ui}VY@z8(qrv#XSJF|ko12?hDw96OCg)S- z*S0;?T591qN@-P+rLC!wLBDNt9cKw>M>>g5UiQeNX(p=|k1{6i=o0SGGv{3^OVIV7 zSS^=_DyUBUG|b#fqOTGgRrQXI!(X(CHcX7I1*24#U~J^-)f={nGr!8`=k8l2n37MpltMZ|#TVYYvIE2$fzwa)qfqa7tMxil`CL|N*LKu{Dc#=1Ar6Nj0 zSGlgaf+(IFyxf#(j?p7i>7B(@Eyop;o%r1#+(N--NvO5r%%Pn^r#YzHaOi27eCiu{ z+zPosKXSP0H^Y=O*%8a{3F-(3mzKV}F8g%M@(x%NM0zF9 z#8Ngh-!s}7T~?-^l5%myHfZq{=>{H^mUw}k4CBI8UC%m;_@WOh+|pI^I`r>AmMF?_ zCy5--5~nRZzg~}uxJ0v(P98d6e;zO*x3ug^P->6r9kpk1qZ&sQ9#)H6CseetQUG(W z?$A@MtOQuL8YAsRyg$7KFP}@{1Ihw+S$W#qjO>>zn8mo4DC2wkM`0|4aEMmI7TO}I zU{ok?5HmD#H~6A8Ufe?B8AcWPf) zdaEJBdXaFQRd8VA{g!fvtgSqU;}gL97#riJD_0^xM2?FjHMF}~o$rD@S?^?v|4T?~ zhZZk%+;!LRG_<`ZpnlXZYRf#LR?R5{GN>{BvsSG~!+dfun?u(mIqZR4|JOy0FbLqg z2<#gX!jDXE@+t3ub>n*bC*d;8q%EH3RO{i@IsT@sIgL&q-g1rxhAtkt3U+rA@659y zV1y_+w0Cp>?6rspHDv70b6I}irhj%s(`gpu&Q$0DZgw^{bNQW>DDy5)uFLk~$Us_+ zsXT=?JJ1YzTZTgCC_LjxGvQ%@(3~P1IJO_HjNVcZ}*N!~Tm#{p90j6e_~N z0G`me+JIPtUa&&e+W?Ml#(d3BX%)3oQK)$QwgtE&L{^NHc%mU6sN11Ws{)=*Wcxxp z-~@T-4g+$+lFlxLUeat)Qa%JYjOMzCirv~FB%GX+5s8&iZ-~0iuDmZV+TcD9Pe>@> z6jEzzb))M&aYa1)eCMi)r+t3rGH4+m*(W3=1fVMBpK56*YG~L35YA>OrpNt`Hjs@< zZ|p-}Hn@D+l80(NcY~3*w_?j;cxY4iVqR_UQ|cR=9VEh!8TU4GL>q9s(!4S3&#PC! zX`Vs_H(Sd=7sz>mD&i}D$P2U2V2Vx5;`xVZ7Qd?PD199LM+LRR%qT%k)vv|{sxtbD z)Z<7D8$o2_E`a`_w~zd96!DeQ_5Br$d(695H?Kg|ARU)@2|gsj-fv3r4-IVDHp@F5 z0bnKGr+@5PTd?90Gg!!g;;?1F(=CK^N7!?kq=zA@v$U4(Yki6;@8-y+mJqUc!lr>! zm9q@_ZFY1`oj|a_`p!7x(VZdH>ysB`&R$=#2J0NJq=!WyROhoFpgi2&Sg#FrD1Gz> zxHYGhEe}@E;F@vR6kd7%T>8|+IpN1o5OGHCdLvw8Y^oaheOMlvVv)v7um?G28J>v< zAuZ84d@-r6*iBy0_VNcaf0+mhZW2!h#dqydelj?Ol5T$1eKP`w?XytAlHNiK` z5|*SJ#s2VH`?50vaNB9-t-@14jOE=16h_&%X1akzZr?XgaKtk9+{JOE6y*Cn2YQD^ zP$OSo6OM5NpkydcJ5Fy$bPQiv7w0R<5q58T)wDMS-t*|ue=N;xqg*KIl<)gzX=Tuj zNGJmZNTYYdluIQlZRHS-Rc=bO9YfNWy~n+_!?j!7#+zO3ubV|8QX9$oQ(WBKCaO(j zuAkJf=e#%)PVCJnDe)7Mw1QNH*N4;Z0MVr-4DS6cqQr;`e3~7 zWY*OGXsa3^kR+PDeYY#UPf%g5jL2((+qJrNv5?PhF@xU5u>#>+AlDAaNKxC*jC5g4 z4Sj9uaDgw2#i3{-cN>cnhefO#4|LE%pZfij~gZ zI!uw{Ut@_-Q@Cot8glID*)*hT?D*w)1`7#fNl42aC;HlbN9J1r-}hlbvW=t}M%gHj#Ekbx)2X z@W2yQ^bOTH=RIw{S4*-*cb?$IRE2$(;VqF1`F$KYZ5b>P6V)T>Z--m(0y8QE5|lR0 zAkiP^dD(kmZEFFhTHMxzvVTaf&Y3w+ad|DLv)Nf->B>QBUtVMD#B&|-Qp8pVUlqTZ zBNsgDiIx6QPtHN#4Rn9c6Oke`dy(&VP=$nX$+khFfS7-J0}K~ihwCv-yrzc9=$sp_Do$OyZr((i8zZG z)(ef%>k=0e40o^Z-7TWW0fNyYO?g@Dk2}Qk=J8Iw4I;yXH^YTc)eED)f z_)q%sueT%k{%Nqm!NHnMPE!9Etfr=>=}bwI+wU*&_s8{j{x3h911RclPe=Zyd#PZh zCh~^Lo#?cu+I;-|vC7HbbTP(o3aiSf`_*37O9EHM-^Yl@!BpXa_dlV=Ujyuiv+M4J zk!Ku`!#<*+Y*4YH1Z{og;+zI>E;B*(!v=>N0KR7zKWDc31T+NG5X><~b#sRr#KbJBjy1CvO&qC(ea^ueLjn{$!vY2*v z4yTnjjPbw=B81e@ptrR>>!3b3{BqwI?)ng0T-VZN{{h3UA&HLFy!bKyf;}kFci)l4 zVk4E@naa+HHC-6wBuC_$yjNj$!-#*>Fgm-4F!{YT$LV>U;j|%6%$zf>53*BRaXWC! zHCu;jEP~N9wV;Tbr2n0AtmiXIKs~MW7x8lXf|PnEZugRuq1|WiQ%1)}Bz4wU4Q2_u z&uVZ7!!3OYfhY9(BbXN!38ZR>a~V;dMVkt_SOPq*p+!y$j$+||o<&4aPx)umU@*Hs z;;azeH60?QgEw>8R$&r$Iy6XYAazWa3a`4E78Gwfx=DGBIHfZkWAYgz^)w7fj&}ii zN3Dm=3(`%A21n;7)qeG?OJWM>siC_mo(ZnI#lX9HiwJJ0h!cl91K!iN>7eL$sTI|d zFilBuxFaX`K*w=fDDfd!F(pZ^y+o#4$K%poDTV>hnvnXJ*8bhW-L=vfFd3Opk-_R{ zk&Zf4xTdR3Uyu^p(RO}`;267X%?edB_XT5XIzuSCJ*rU;NY&aJLdW}>bTgnu;xvFA z2QzvLe$YqBZ2r_LHq#5RQ=4^|= zT4|wbcoI3oQyV{&w=c93{@$ELTY{-E1M zI@?K^b5%8!;l@lea0PID{jr;qLH^Qxdf*J(>!1l^iogvO_+bmj>gpsvr!oQBAXqS( zG(Ty)1Yua>TAVweyg9@)g2XlTH2+h?_q9U`zd+P1zCNp&@HHKrRt@N;M~hhu(({nO`m>zK1=Y4}$g=OsW<;)H|TI zw6%4}(jBi-q+ZWZju6MgnRydes8jydpR3fB_VLCzT~)(k_ib7pjh#>Kme6MJG?7gN zBM15q+~bu?ek5K~6*Oq*@pHAhQ)MF^6NlAz`Bm3EO10d0PfdqwQ@r;a=P8w>u^e_CPnHaBjGQhd!YQ`6+~KLxX2q$qWU*A8d~F(? zk}k7}(zK_gEG8H-ncbuGYw+XyxU?AU?OW%j%Ezj8pnqtFv;49+d#f5HxXiUQHHJ!a z!pjO-TcPt$mm@^!JqN;`G>r}C(AE1Tn1$W|Qu}-J4Z#nTy<3gcYAsRAy>#|uw0vgr zB+*x09)0+)oRWzjaY)zUArr#4zOILZ?xoz`BI@#M8*wBY(N_0Joe!^F?8h@;Vs}A# zm+}Y6^zbxT{bnteaU}CmUENVS758>Edz_>wuIDx^-ucVXh5}q7JCY{d{i1}oYMZNj zN)LV933fw_a$Jc@IO171aTS$QS#91?V{n%Z^w-2A!|9#Z#DpXij(N2h_X}`c{fsbl z>apGT*Y8n__9OBd@1#92ZxKp17dFIFQ;1sg@O12X72SDo97wgvyyKqsf`}P7#F{8w zmHh$(tF4zgu3Z+mKu)tuycazqV`qQA7&l2YM%*li&!&W|Gn?c*?BPuZerTo~hKqen zQNky(tsst4xY4!(5?ri~l7+fv?V$i9tanGR>h)duKaKxqn24=6RL^V7ut$6 zC`3e6eGnIG-PZ#rmYbZmTb)FRqPQa1X064;_~SRIzfipnt!)PLRyb^GkAS~J$_4D+ zQ~|q@y^_zdPtyu_l%(I$T}YxL^tVMVoEczM_jR zx7yyBCqMqar4|(#`J+FEY=$4)H)AeJ4(SS#{z9HAF~8iQiMJkku`WnX7*({A1@lpnq4@s7at)}Hv!&=l{$yZ-+ z@v)w6uK3C}d{DTVSWPG2bgxSd<7{{rWUY8vMY3^a{w+L3K)GDz5e^~_g)DnynFAY} z8ib1RV}Ggwe8)fulLYsehTv%~T%N4B@wE}*52RfCa9~fm6QjSrgLQrai&-~$rs;Gy z<9oXL**tHeH7g>p!lJ^2`Raw%`El5-6*iw2WfghXWLKb{4$p*mK1%zQHqYxtb!5n9 zV2jQgnavcPW>JOo$0U-4J$JC2b3@Ieh}W|&xJuQ8uLe5Gsb_xc?(T_cg=3}+$%iNO z1o)Tk2Qhrxr|h6U$=rtWXQmH3)ZRCg-9?>h{&jDq5>7KE)HqKpU40|8U(rrk<0nd0 zj+xqemx%A~#Fd+0DMiARk+vSsFo{>F!*Xso$qKBmGK$kvShYGEY*N;ZzU|(`fBAaA z%L$`Fsf_w~z$LJ7AN0{B11uv>ccvLONjhs>{e#D9>{|{}++_OuNpDb@oNP6)S19qV zP@>&g*v6!*cYjl?Q^R1Jz*16uE4m}ut7x_Qn=SjQ4oRsdMCoVlbbkYHWF8s9l&gV| zqlxjlw{ZcXPczMc73(_8DkJgr$4K1%`ffYg%?+*CvC&L(AxU{0JlI$zg>~% zcdud9+QZy19@$sio*>-Te&&RPE9?1s!tY$re&bM^w?@B8CD#P5tpAz`f83<_OP%P@ zpc4L`HmcuaBW`eF{UYXP^1B1I-x|ZKm0U!Fbc1c*jbY(2?N)9vcO|e%JKEGOkFUGE zYNJ94d&JEP9N4y+<(o~%n~KgBuWGI6@KQyJdAVbsje(2Q@GIdSBf@QYkog}h7Zk7q$Ikl1h&0N7*$J+EB*pV8(4w%J-a%A-!epq`svvNgszcpQ2R;5Tj7a<#o zYx)GDM0q)3D&17l;x6jod_I`H8@DPi)3Z&=H$*!T8^O(UyI8&G5B3{1&JMNTV)Uz( z$W8ZMapV2jrs`gE+$)K=Yf_y+Z?`o297?*2`X(amGJBVO!-}lt_c*s;%*=sQb5V>- zkL8_NM{^_xn0MU5#7Xr`8mvq{K9e`vzpMSq4jqp5#?tbg{!}jEfs0mVM8pvhnT(a_ z{9228^W+>$zW&nSE1k<=`mUKmO=Xt=eK>o^7h=vrA$Vm#SK((q`lSa&t;J)JC;6jW zS=OFiG;06#9c z$|d7=!pegWzwJVEU-4x8RhA9?ii}{H(Ur@f1lBa)3|z?dIQ{WQtr+t)!5N z>pD}w+c`qsP-&Bb^1x8c1X zggZtN=v@%LtO#}dK~&S&Df>_glEpLkgb1~15A-KP{?tbbMsnuu@th|0sxRw+Shb|K;}91!lmbwJ4T zM&m@r-^?kYyCMHtHAym|#NYhJP~BJ5V_MwBi^vK(1>?7ibb3IFD9Y~c zZ~HP~-2;RffmsJp*G#U5hxXf;?D~S!*(0XMQ?MoS?w;Z9kF*qOdMPA5+eMu^Q{0r@x zloB$TjgZ>~qMi#2Il;cULMHuXi;>%Dq=r4^+kg8|_TvS#Xjy~8`3>JmjJd`6EkE$v zN29rFaIp3Ud?62<%IwgH8sk5sagDMRO!Kvmd^q+pBF8!ZTrp+e(vP-9osQ#Wz^SUMQRNAA|uwUoou9>VE`<00}7jCbL zrhQ4xUvK_Np?4S4^_8^vON_Zo$nihEZKDN~t`T1~e2b$-~3iMU}=EDabrH|<6HYF^lg$IX>J?%#ZinnL)_8O}8A)q!eWHbM+D$Ejo+-h8VjS-n2# zPq?cHF`{BFCj|Gb{Nzv%8j6m9LiiyVn_>L7XcssyzSUnm=dLLX6wE~fUa&lTI0sIR z5pt<^JrhEP`1E_xnV1DFDyRR3P6+<)!tIuC!Yt9j$T8xZLti#19rTf+qqfL!`H5iL zlCG-`^Zr|nC|N)oNEIQlu=k)?<6(TT_$U0e4vaD8#m3Ti<5BTmWAUC-1_R3l32gip zgI1iON9WuO+vO6oVl??Bh>;&QPw#hI7YbGF#oLQl5op5i4@<$?MR8RHfe0@DyF42M z?(tmP6GXTwWZUCav4Qw+g?;gc_*ZY5cKF+?SC>J&3*p+(B=7SkMg-oJ8`dCr(&6=GI=usVicWuyJpcu(@EmV=FAFkz- zCEuCMbH4dr|S*^Gx`55OquC!#P#y zpdjA0cfif32)>0(b)f}{QSqfG`FMzNeiN8k;h3)|wfg-|&sXRBktnt{>FaE=r6s_in=n6-VQIWvY?NwJJ(PTF=N>@yj)NG| zxdh6_MCr*#`?uexNAnt#DddS`$^fcB$#;&P0aR-3@tK-0Gs_nT1KOH(>1=q$0<(rwh}zSJ}|!k&W8o?5Ss zVcZ+W-w^GDjT7Ewo6&!0AF4iybXVf;^-r1bR%@yiNpBQfO?L+;JpBse<@y9F+DAp_ zL6vVVF=6f)np7%?n^BojChR$?N{7to!>6-o#=qQBX6fl%s5*2r^)d=)=5=ZJd1qDW zK+;XNkE``yrNc8phiALG{4}dAooo3Tln&};OB{WQ(fZwXe9|$aWaz-#<2o^*T{+78 zyNSBSpmb2sSy+p@#+#ZQ+cI-{RjM1eaq)NfZTA&JS+^=cxrVMrZBu$&>KCPqr*f9a z^@A7K`8cCa1o4Y@u)Ql(6=hLXIw%Ow*t$YxA+GtGr8rd`iVtmp~v)Is#& zgw&@g9TXH>ZBF?_Kcp2L5dDq1xvfHTNMDgQr}{(VB56to1uI7=UJVuw5PsD9LZV&qS)Z-h+h?oFj$iy86tli71tSLRdRTz8a# zT`S^~qI6IY^_-h;WtxrO$b{b}^T2sG&O_<7=?sJVG@!VqbWpIc%}2==BN_VZEEC^w zqw<^(CQo~v+9mTDDIFAqOzNP>q{Z;@*Dhtm@fAA#eTHEJn+i8m6b1rwD;x?Gr%t~G ze7EEt80mk3Z;=W9yH|aI;)wB$qN3d@48^d=f{#Md0W7z$v z)?qTEw;rHzDebx`bpAB`UGyObrH?-gQQ7%c?Zc4Oe`0FCn>5 zP|gy|rA1HLRmpD{vvCfj{eZWq@(?oS^N12dc~9!_=!*ByS8x#xNahs}MR6H40q?@r zB%c12^Rt$uUk#CCgfQA?5`Gngka7PIm#0l2@=h{#z30mn54q%ttaxxNj#G^?SP5Y) zDd=CqPv6W{Mm6)Tg-dBgX%$1vp-n{H%s4kDJ8ZEk*AS;P^Okq$RH{o6^!8=zncj5+iUx>lJ za78+f?@6c1`LNU_b7$udywz{V184i>cEv+tbTn3WW?Wsjka;(&^FhzDI7M9NnppvS zEU&V0+EVVf8%T#zw&;TYVQ8!Waoj{!F4ku%6FU}5Qx=Fi?T5jmS#eAIoh`-aGxc*i z7E5dO?jQPr!J}7T@^#_Jn!iv7DzaM1pwRUj`1K{x$Rxtrq0qv}WQl|5Bpem@1B8>w zB76V+J-oYEwBe$lG!a$EtT&;El7&Uy+d38+{9$;{n8Dw{l!j`5O`X|vWk3A940Z@l z7peelYCxT`u;D%Evdi#JcKBC;&j-WHl|{}F-`hI_YUE(@vYAg!T*`Q9byshD?5s=EUq;Or3I6ebd~%f@qKOi8wOg-2NN-buNY-_c$=E zD{D;5h)WFFt=UR&r}Dfr45;fS{CI)CUMt352Mo`cq~d%=Ea*iMkx%dK8O@j;tEs(g zJ6+0UslqZz%;}%_qIG|QwcixJ?=&^hj4gEx~IPoqg zR(!$lUwy;XTjsdd8%di{?^36*y-1%#uKnGI34?wi(I^|FhBYaU=p-w3U?MK;B8S%h z%&wJ3v2HM!Rz2!cNSP247sTp*MOeN&?E}tzck}UxYPjq4#9Tkho`05eXzgxwHkhSf zBZ^lngLlcoByD?*AE#y9FTVm!{@6yB@($?qv0U3Wi(ki&=ggH@?8^_J>Bl2@sZu_X z=k?q_JdMvg4I!gxFV{DBGyDVLzFJwNFE@(&rRp`Je9aQXtZ2y;Egc^%&t`!`F`R0a zHOMuWcM^U|+g8*R7B2V|E`Vqra!5S4FJ8=M)rSq1Wkvhwt;jXkxvy+X8l&AZMaqf? z5wFR~dNt1`+`G)7?Hk#C)UX+yYxyR$c&P$j%0Omf2%Enh%dhEXkmsZ0$g$LQ2;uU% zbDTMMij!BB_^~8kiCWZeT!UgRN}?nZviV!aro3$KgqN?V#|*zjs7qV%ptKWu5$|Tn5u$zG%KGg`x$9bR@Ge~_H4IoZrsdQRsU(`O2d{WA$M?$%jC$Em zm1~kBF0=2ix$OLVAJJy{@oCte;`JI+qo|Xpm(s6zFkp_)*b@xvRb13ldLs8tWLUS+ zhCy}Z-h|VPc%_Jlmn3d%e49@O{6Kt80`-(vJm_O%iL^ZiC}i0RVp|Urxl9Rx^-Dfx~j2C$c7d4{Mu+< zs#|fUeBXqM4yL}Ff(>0i>&6?EME~MJDdKHK+!58_r<;Tvd|SBc2;=I( zn?f#C+Jc0u(0LxLNa<9H>U^h=mutF;I?BXKh7>;T029iK{3-7J@+0VbUZOdnBO z3t9YBkdUD-!#_$@AUxAL5V{H3*j*V=7jd%vSEzSZeJg8>Rxvz{6%U(5k*X@<O%z~ABO)sot~d>)NVWg`{MYN@lUI3%p1~T`bSh2c_GIu9z;EooGj{Sk++iXo)>b_ z47O|z$EWkhv~N=q7p3`&Im)8y71*S9$8|WAY@)7;FgS*DvdGj}TZTolB$tN603g^UcV^}o(TW;QQ#;x&K+JF28H452@dM=5pe|2E| z2dlIf4WzC1h$lM60y|q#BSwaBWcxyPFWf|IInf_^vkj$`0O;?rd$cQaMISQ-vw;Vh z_I?F*;#_pdLH4ZvlS7;L3ZIG)2E0VMz%mplTax&#MVL1&LmcYL(c;ftbSy0rS@ioZ zZ<@*CPe0|{)kqvl4Wh}!(KIXTs-{cSfzSD{>qxB*PD9t|PsV)L7GE{-l8L-_n0?Fs z$G>~dqI0W3$;J&STe}9%M+Y!cTd|* z1K-qX&hgYdn6lzQgjmQ1icCh5kd3zf%Elj8q)#)^uR8ioer8O6(5OpJFvqj7Gx<~d zQ7&}+uqpKli1r|8KO?_6XHedzBa!Q;?-Q0%&t`*5hY5V&uY%~U#c*=bV1_Nqs@IrC zss7XWw0%*vzEKI^&#d>xvHC$PEM5SV)Xj6~`~$F4QzLWHm^6ZZbOob~KnkVA^nLBXyFw%(~-{~TfA zD>}-Whs}M8VV$e7J{PP46s3cLH8!Fi(6T_zuoda1C><0m@?+=wfO!%&^{H3MRdp}^ z^cu##@fW);#Hd1PmuTaOhRJ3A6DZQ;A&TiN~j0nRDX ziAVz<$7l}!G?lOBA7SsgP(vMP=Y+2oyo{XtXD4S;6-@D5*}a;7a-?)nILALb&uFv6 z1@Twdz4{;1N(Tkemz#H7m4iel8=7=9Tuz6`^Mfmj`{Fe52Fy3MlP(f<(t8G_gR-jN zo37AC$W=kg*ntTD2GOZ1DLNvjlu=3XY>ggJNqsR5FY(Su(MeG9NAew*(i!~w!e}9z zDu$xx%n{!dzg=T0vIzTlmlDIE-TjiPi=5OqyJ z&g&YT5W14?9Ociq0+`hQP4;hI&#BojGxfFEoKO{JRuroHK4sKZFNWVmhkry(Md=_S z>gu|oOlVn`Kj)?ySpKO^S!Vwgq$CkK`x4Y2GFQMpmv|Lfgq zd|Jhm8DFJov>q+bnkJoGQ%J})*)^|)+A-*}DNLD?(_;iZMTag+9E4o0C><263X1kI zr-F$g&)z$;j_*cKWbR*zf#q}Rv3tdLOkR8tb!voYb1T%WmO);*!`f*>7(8MEQ-Au6 zzqcPX7-kml?p-&ZDPR7f)pZtl6bVe5;g)ot5cN6j2#HDU2PDPbPP=Y&TsBrZq(kw) zj)Xf0_-*0@Q9mmFzsTV=Kk)6UQ|dqi*53G+H0p^fMDFCrsf*YhVi?8K*?3W@_3MoK zdMe`wb)#X?)Gnh5ba>QnOFc#DppWLnA76-g`j<=h6(1&X|H>|wO!<;O)W8e*qEZ8z z8n4#Tc~PfAQC0Dhe0Lv9r!D5+ONQ_z-M_-FCDZs}d$7ofI;?#wP_wN1R(j0rL|MJZ z(KQQMd3ZnnoL2S>x5U#sKjtAjSoqya4xc>F4K>S}Q*gbzD6XyQK-ZMd*+r5HW->x#W z?;?cW{w0N^YCs=zhigV@dMzSeOLsl-5$V%A<;bXXPzIn&`4>>*j_9MTn3Ucq__@6s zS^4KezW+KKrNbkjk37RQ<9cCl5OK*V!d3R@O8h{#mIkFmV#r3ms~y1Hv7d2L`OdDN z*)g#r^M5#!YJ(~>NnHE18|zN05&#ZW1~Xu&p)S@{m`BeJiqb(()zkR)qdHW0lQ5No=lu0)mIf?}%exyy$WxV&9{Zc-HRHo$6bS28HIZh^aeA8y!->y+5p4O3OQQH?d!y|@2(f}_exR!s}2a+ zJlmQ3&xY7a~SPZNC%MaGW11nqu;kAe*=P?Yaa-jWt~I*|siRxyz_0*6Ya@KyJ8 zj3f9`Rvi`-M4e4v*X$88WJ*JsV+=}%=%AH+SHC#_`}|vib}wYdkTOhNc}>k%*aT3l zllrhg)E}pf-Ta5>l!iAsny_^KNjWko9fX_SpMOj(Md=`9(tV#5V(J)0>7d-ZN7z3f z@KckftiPlL#vI=!<5AWwo5o7rS}Wr8Vy4vgVdlFZiGJNWPW;e;sh@2pRL!?ecvov^ zcwEJTa+Um4r31-lS>LP*zkD&lP|u3v(&AyP7}JvPI~2~WbP(9~{ei}+(jke9zt!W@ zH->Re9o!djb7~sPI~3#Ry@t$UU#Yjcm2f)DJJNkjD^2MT&8Y>A8P-7fVTOo%#r-v( zux4mOzN~4>`1k)X6mEe&^q^6kuIKW-l+IAHDA#G%jgRz72ZfC3XZ)Q9;ZCEm-3>|y zk#0w4HehVG)@)v?d}l5Dr?=qS22EIc#NeiR{zkMOZ(1l-CxS#@W#b4xCcW`?YMOoB z?=K8`MH>oL9$>n_kK_UG31+J@Nh%Nd2i|1%d z;Zqy;a4vPv?l{rDuV(XqK#FWBmNE(K>7PwO*%C zgGxAhIAfu{pddOKcAhv@Zco6_Nw^j>F;Zty1-F(pQC4pzU06rx*0i}g5{cwLLNzZu zwR+>)iR}bu64*jHcJa2M<7@ALdv@at56x}%%=v>O8T!upE4%o4jxv~*L#`}k{5vC= z`RgAn{Aw_RXY4ki!Oxm2OULof$eH~5$3nguJeV1~vwwS;5U_(3VN*n3$(Kwh2AYcN z+PK!`tzb0K1dBjuu8m9H+5v-2tO`jK9iQ(+2TZ|QbQXGM&>;=$03J&3TqMr+sp5AQ z+rlgN?`IsBcmUSI|#jt-Fzn+VO5Ss~sMN#2efAxkpP5ijHg= z@m$<+&M<&0QrN+#sCxETuxv$*y8db>EB^9E*8gzXaNU@Mjci$d!r;E6KP4JwrL>LZ z+>$PQ+Iu)58K!XEI&ckjEKzjotew+unUtKAY^ckuoXKCYv^v0&Gm2BCZ8 zO_Tm4a~COueRH;OMY&<_PT{7l43{;$`*fw0i}Ha)uB{)+{GU#k_=Z9}@zJ@gEdCSd ziM#v{b7w5$go)^h-1`ql)XBqUI29^R`fg?tQBhgPss8qUP6Qc7BrM%MDDVWTDuv{* zLoAu{J)6=QB+wIj=!&*FMj3d|yvi zM^jS@2wi?^Rw}M4UXyO_XVV4~R)+Mq*|FuQ!F_9Aik2}_eAoxz>1^np#auegK4WjI z#B(j^rlI~fcf=uOi<_vD@qd2u~B}X%TGX*=!)-FRq#rfDXY+rfQghD5t z(`)y0Ub$iBOh749nh!y87>AZl=ciri{h$v$#Fg8IcEa4zg$%pLJR*7$QwI7i-SIB| zL-C$h~Nj}8iy+^VuG+E?Bd&>0ugXV$tXgATY#gabq z1gqa0h>1n2d546XY?$~PAN(9jZi&oufQK^!p5ion9t zne;oTB(VLj^ITD~jn0uWwF1&+qG}XqU4)X#;ILk_frl;$$^G%sr40Be;~FBcYj!Iw zT4q)pfYX{-UO2$8LLh}{M@9Q<5cw!Ciekon4$28}!e5&Oa_SglTAL}})%2?-xpGd3 zrJAs5@0vDvpH~PmQW|6=RtRzXG)0S@@cUzwtSBe?GJ%?qdqAYy1``97SCshH3R^xu zsBbt;hrPeMK~_$>N9a`(ZN(EN>EFS$gLUvq0t)_JjICvYbJ{HV7(5RN5 zIsmD^_%}-zWE>n9B=2PT>Jy4y4Qz^1qPKe01fm_^K7>(ix^p&4tM@gMSD#N^5o}{G zBHxI_B<)$98wJ{Cxksl7JgD2UoSI(xd;8cl($wq%T=v%b#(R@RoW903Lhuuu5w39KxfZ@oY|-f`jxQ*M>A{j zA1s(Mi1%miGfaZ{50J+c50+Rre^pe@O2&>OV&`u}D8iF5X4-Tyh2#VwSnnqI=TV#) z-jNf7I&gCQ1TOEoM1m;rI@`i{y)qEHbhEC78!fuyS59nI$ zy+xQd0_9V>E}88Pc~Z8phiEzlQIXtv5@S+9`}z5=%pbnA?{BT)&N&I;M_KdBJQi=( z_N&bm34|YA!!Pp|v-!${-%b?5^k1h8=hmW^Ge~rtjKzbG+N+bS)UBA7XIMEqnd;9UY(va91S%x6gF*0gS&)8ln@04hr&FA*KA z)i?3iMf;dj!6cd!Tb6PrD?udT23KzyMy1Rh9a3kn=Zr*R;&R_w<&Ffd?cc!GhaJyJ zy2HU0v-ot#2aNq;6?;V{j8`gooh8ox)#>>DSl+CkVfBbZaeUP+=k!8;yntvfO%fY& zU+ZjI;$FaLU?eJtFs(ms8&J}O9Rw?U{PP>)Iw^w4%o=DxG^cj`ZL|fFM)VmDZc336 zO`vn7NI^q*5^h}Od{&Rfg{xbSD1!?w?wVgRkZ^538y-61AC@SN?LW;eC5e6Fh4RD#=`$M$Je>&WK+p1><%<-?{hoLJM#^J@8w_(bwm~|{?n2 zF30(vZ}O1h!4k^`Bk*lh#9-|C$S+)9eJpbW?CycJ)>)0(Hk$L(CK0~>1c@<*;U0b1 z0U{TF#MRw~y>oRQWpFBM)G6@mPQKdyqUa|OxoZ*O7oSjzBzZKfooH0D5VzMZ<8ChP zJ18Vy-AR~u_x9Q~xwP+~U_rrxKC0WdH|5g4gF?b}qP8k-FXK*b?K>z$T%>iWLi8%- zmuveD3Q6bxG5CG$#$4HVP)JC)!^JJj4exKurF{p5=u1TWV+i}*T-tX~NDkSjrQ7OU z+ILWhC*kB;gWoqk$i9Ohb`zWThpFjfRk8)+=d`6}5nHw6=TNvJul_uoE~V|%-*=Dg zVojEN4?P0ONrpj;=Mcrnw3<6bZ@$T^>Lmk(plLC~sbW-mTn7D*r|1}|tBOU$))*t| zY;CKfjK{7NS)R@r2d3$E()4(eLH+A8s4$sCvGWUG4>0?e)%>bXsb8ezX z{TNBw-ktBKZsWS5)Ye(yR=hqhf4-TiM&{?`usneUhY-|b9))QBCBwmMOl|Dw{&2UU;rZkrVa~vI<(%KpQb+#Tnt19@+ zT&vP~@GH~~a8f(8=1zXp>@t|w>w2plxP;)N>@um@&xC{Vf~UEiC?^qF5VZfGCcR`tz$N(l1?xN56h z^!Ki7+f6(?Nq;n9=Av`Nh+Jjo;)G(?;mWFhEco+98SF8E&YJS=sxfI+H~#$n4K}VB z$Umva>kO)%VMN{-eFT3VFihIf*%hKz+cZ_0&ZjWt0+iC1#I3{US@oDl3JYoFNGIyf zW#fcbvN#%OOK`13TbFU?*Uv>Apmupg5IY&mtOcQ#)|_WDDs7Ai-uOmvaiI9l$C=%( z|0I|HJ}N@qd$l^8ctbR?9|`$6gWvl-&SefpR7_cMBRVvL-%szR@saAj5Jifb*o5Q1 zhFL>D!wL_POY=AV)wE0}jyaR-WJwiKYhR z;^Ii@Mz_Q$DpQ=DvdqP*|m=HCaNa>q|1k>ni`Shx5f zA*yo42Jc#(8M|r@Yfk;l@2fwcTNTByG{j#1hglyz*s%0}jgUWKzc$OqvjV)L30bxK zKrv;Cv8bnyu7eblArFoCPPDNSNeJ%tre+O2E<{2P+n`SJQk5!YQnosJCL|Ia@?T$B z5X8;fimeratvmS&XFp_QTP#2`#+<!BUTc8xHmlT2>)>Y$QbyVLZXzsu&%I zO<-uxMpP)|iK9r1JT%+sp-H;4pCyw=@%1``T^60SAJyt*Vdx-7B#W+1tWkeN&&_Rn zIi;>-FvGc6BVHXbg_(2aFl)*v`n;qVmKJY?A7|yyE3#b0^t4Ehi_x}O%PYilY5hz_ ze)uH|*6!s(Xso6ra-?AKnzVj>6km?*L)`*7otyX+F!RMaMXpJR&ec|#rZL08!_i>t zLO~x#Wa!geYWI|}_T=5^J^AXbs#NiJ6LpPc+TeSR&~xR_vz$;P-jaZdMbNBc;NLm` zWx)uEVI0}^BsO5o9ZB)(B>Qw6Jq{N|2<<(ol#I;S6cF#e z2V?3%fTs|#pQk2M^auWV9p<%wz=EQ0Ao?D;OZTUUNQ2vtS!wlOAvWr9FVjlq`s`Ya zs`3(Zf8EO2o3Vzzf`u&wiqxdp$E%sLdml|JJ-SR97n`ztU%?C~2XzguMDm{`5A*>H zN{2!ntEsaTlWy+h>ioHie!(>N!%5Ia63ndA=Cx%a><$UqWFHF$gYi$ZTD>Wt8i%^a z-Cf&B&Q}~O-}HyMl@=vBD=Z46TrZ>=-;qcpFA^nr=fipwG*9Nv>HVAtzDI1zzK=<< zMBF;h&P6kLtJVM5b}Ma2K%x-?KO9lIYod-70{`1xM71gE@PU<;`6EKcz7F3nH{3TS zR`i(EDm)psjuh``TODP2l!gY&)K?7%8Sb{$>#}gpY+vGW5FM@zTR%Ij9c|Rvt>}|T zh}Bk6Bqd?Up4Pbe6cZ7nUNwOg?g1VK!)Y<0gk~_4^gMFwSg>aQz>z`?x@Kb|z@1V} zOBxIrC*9%V`qhTZ|7Bt#F)SEK;`-m+)7h~weONN)J!7jZkCB+2>>byDDYYGWr$$}A z{caV$wdD?!lf~v+dDI0DG8cDl1!GM5 zH~sPMD&X*7L8^?XJwv)j=K)qZX0>EX#utDMJjeyban*xSxxWu+06QXZZW6)TlHyI%tnM< z)HP@KGxOv5v{SZZN+FRujh|&h5 zldeI_aU!W6a9GTRHHKHx5J|l3qCwtP?4k`*R=Ns#ynBH9kGRY5wJGBff}dJIDJ5Ho zm#^-DuG7UgGPt=lj~YH5-bC~d3J5=n^E)SD=xiY+X7Kxu=MB$3Zc?_s;vS5joZd~7 z$5a@XorYFtjjg&I{KZCpGfGo{>ACt>W0P`R`oo;@A8c0NcJqnk<+A)%VgqjSPJt6fd= zAo|24HC~kM7~Qho`AXo5PXWW47X9sz%-cP_aCqVAZjgavBJL_fBa&=*#>43*ln&p2 zMbsTlz&6G8>!fT6Yvo=n>i}5Wq$&&a`Xs~Pn2Qr;>R^pCZtcfVZ0Mv+hhJH()^{v} z&%l)HA7Ja0yPJ?Pxo;{ zT@jJ@v2-a%iynP=rJ^!J^H*tL%*EAz3fNL$h4?yOE-di^`K#4!#&lg zbm{KMx&iyr+OK~_JT=a=Q)2wJW}rWg0tuII9v=H?Wr z`X*JfTK4bz0ktZ4sGZQHTSqv$&2agJ#LOaR0^G^1gsAz(9M{4x@i=V+J_<>9{^ju3 zZJA!LC_n57Q)M)B&oTtoGTc`Q*-WsucdCO=Rs3>oDE%Z?Ln760<5-mPogT-?e9rRh ze+K7@l=4^9oO+^zE^xwdRYX%hDit*h*eSC8FVhyYYL$1xOdrLGe`Yg#(n#Ka=PkoP|C<9DJZwDEf8EUaM~zHV#9rp= zEyFgKR$jgo%@d0PbeNexnn#lEUt#aM`Aiuxj^9rhM*l3mic>zlmEmWH{vMIq2(-?v zAU^8Mf%NEH2J`BBH6CcZQdfR1?|xhtPf_?1LpCw5`N!;0ti+n=rLj8 zMdNqAFDG#2SP*B_=N^ESFReb9%1^)i%$zR<(7+@6mU^eQAEdcR*jD1mZ7Y{T zs*!0C)s;#JaY!814f`jWHY%-<52|R-gbP`*`Wjer*YwJWCyiIe{i75_b^p5PQ|@jASUbbg5b>XShqx}W{iTQId|LFVr@C@FP9Cau^+JvET{Gr=K- zj;)Pv_4G=K9FfSGD|gftc#7fa(!E=&S04>C%$`C!oxJ6eHo?H0!ZjvknQppbGbpVI zJ+W8!2$|3jUymJ|;=D3y77Koz&#ZB;QvPAYax*h*9=5_w!KVPOTHoZ}t#eu0EXjyn zkp^_?-IKP}3K%9D{zu4BzxBzGLFo{@nJY6Npmb13yiD9}Lr2u2U(A^c*scX`*wQn~5`ioyYO*X9MZh zu_r^OP2;^9IeXjK$h325n9>3Ai#Sz{O8=k?MP(*(CmhlS^L<;v@AVDmS>cqi11==C zuXbqyzYsLKegPe`5;#QL;*?8a#J43(ZlH+7!i}r&?K;!pcv3iY8Bg`1il>vfvG05K zr%c}tna`2a;i_NE3)H2>sJ13LV_sC8ID#tq6yL{l`QI6w);~?(=ZrhYZ)jU^IZ~wM z;0GI|y*iUU$L^?M*SS@p^_N4*G#9|KHqEEMOL=9YjmUr}mVLzWXVH6pqFmv&HiO^R zw-yzvHOaPfXm00}qt4^wBZM1Q!VLo*I?;hjH?F*m{kyKH zGl+B^wdpi-NVa(;v)|)6yJR=l)D<6g1om1?n=IqZ3M;#;<1^QJ_EEXKg6SiNGIVH8 zkIz|{?Y_HD0xL>1t3^p=GvwrOj_=tut#laPi)CxJ7gpBRJ z&YH^IYtgCvgI9aRA3w#Ovr1)Ujz?esueAzLmG%1Q%WPj}yk$z(RC?oM`Zp>@K4(`7 zmTASiANR&Tn`Ha(j3{+VJ{R@qtIeQJc1f(rv{~FYHZonHFnm#5$mOC6PBAL27Nv{` zH&e_YiE28t!a)@7FIq$O2Wh(=7ST4xYm>VQiil2UT}rq;zbo|4YJsmac%%ryB5+X| z2YN(Yy)F6|FXuqHcu>SqiXJzxR0e-!!D`Xo2CIARL4)SPt?YKt$tK+*j|5>bMQM$H zsoHsFAUEg;sV?dzIE*&R)B#l^4-Q z7$=DSC|mahsr9rjUwyiL|7P~-C1lc!_hV+P<+PgFbQEkhmshiiv+Tm2eCC#6kXz?U z@s`3LCJV{qL%;hQPF^(>GTXAR(&H5q)*H-f(dz4V6jt)OXlsuwAH|dDg6eo_=xBP@ z@Wsv19p5UQ`FLb|a<+-pZ9-DUntgof7?@p!`(Uif7R6U>Pw#X6Y*5Z7*ZB8f>}NxG zt;;LCF=i%H2Ua!gQt%%@5xK@0PM;ro@ z2~T2X(G$kW%?7`cIg=J5!s57cIzv3>kn-irQ?#hTdeX9G#(SbX9C}ep+1c3<8XC%l z3r~0V+Gpu@3VFc~{{?ROm!o6Nf>@ckQnYy~eEsrMs$L+Ksu#c}$qdJWZg_f{6MZXM z-H$vIHZByd;Ek7$c+T5!_*Sh-)c{8!szh@2P!RXrQtmln5pkbLZHZ=qCXH!S!Wpx> z=lFBcaczc9VH&?xfr6rQcK6geR&O%QI!t{w_BwkO?J+sav2eS-bgk^E4FH(q?CHqe z?VCB1qm7pf)2{C;R8AS`P-fjY-evpdGdbF~`G|O}pAhbCZJ?NssNIGC!}mbj#hP*; zBch{m!~uF%7f~plEhRcy{c5AmVviEPi;B)ir_L~bAbdFj`WJ-ho3wW|t{#V`qBGuKQv^~ymB;f~^#dK7}bJz>HS znAi>6MVRy=p8p&zem~Z&iUKL$uM7Sn{5riONeOp}ymgtVs6;G%+EQoiQu@A8gZ#q% z#2efB?Vb0znmTrE4lzEw&Et+9(n@Fr>0lb=yqQjT7Xjj!;9eho^ zwvPGzJ|$G^)T!7O#k+D9+qf~4!bb{J!#ZNxS>nr&XJ$lx$VKGJS}}{<5#Lws{cGHwx)7vcTwgNxqtaM zSMRxG;dg<13u<<*PClz_+!KCktoTWM&+v??J#DWOQ|wi0lo#$=x>2loZwmT25gTQV zz2>${K^GDCA*r2t(aqu3<-!zcCGw56$TwxXQmb`a@)z+UDc10wSJU@t@b+hP7(Rt| zt$jGUIDOjM*M6J2RXjzvIF_sHzvOU^rhTT+o^Bg<(y2>(e9F}nb*cq=EuB4Uy-xih z-_oH;5u7Y^B;DG}+ArpF-Ds_H#0eewS~aDRqlF>eJ9WXUL;w~^I;`>=zENkucv=mc zLXW-;x$@)ubOy!sK?l*-?nOCo8+2A4lxXudfmJJEW0P#~N9k9nJ$N!5$9_Rok1bi| zh1}=aMJHkr)?^nNxA9zSM#)y?WB3 zvad+@l;=Y@vTna=qq_0oIFzVO+5A?bc?zIXB|q$w;)pi0#l=OGJ8?MMCKD|h*wkKx zl^<2=SHMeLzjt95+fJGoG)xJjcq`pA4z+o6>|okdDM4YM{CEjjIw8d^H($!uY(UeF zJ$bou0ky784m-^1pG7|=HR+SNdtHxTm2woYwZNrtRq9j-Ait|yp^Q3*dMM+y`!L5X61xR@nl=_vf+Y)f*q zk{;SiDWrtkCV`M6>)5YFsC{5P8Wk0dpK&~=KAS%Lao6wRT)HZST`aKmDodT}CGm2% z!!pU>wwrHRYBqR@7VSIHqjeF&*Bhssl?ZozDtOtDeD4CgwxxwD4SNFXHKM4C$Xi)H zBZ!T|yFyI@oXoJvUy{nDgp89IOQNM?YPvgFh;m{u=x4y8CVf91K&y)WczJr^CgQ=& z*6^%n@v6Mkq9bi;_+euvq9S+?%U5LKwoNhWx2lG>5;y0z@b`Y>S|uxVSQn~?Z^;s= zb%Kj;B}%oZE%KqLL+%D~?85!DdmcKXZ-yC^4T6NDqAly8wEt$f1$GzdZASQA2mJdi zpzoA-sI0WT7cUd+D)PH%=RyyB$}Zz+>^cvs&Rk5}(hkBWNnBakjc;b2Q*R|6|CO+E z1E>;Uhq+?_#mdF7b;Zt9x3k5!Htp*c!d@52l)YtCTT#2HTcCyF1&Uj-;_hDDy|}x( zdnxW-+}+(JIK|yP!QC~$Nx!|vxM!bx#~I`1Uy`*}GS}2K=X{^1NY20RCE&#hvsml_ zCFx<>L^_~NjBm-^ZdbJ2jD>7J$wDIpZ!`Zr%OS&8h9Pgl(v#`x>f=1Uh$d=L^;PcA zT$HTC+l;pT63wM+B%c;$U8}E5<<|8tetbeGc5F4fG0|NX#)v!yh72ZiWG_!9uBoKm z0>6H&-r9)dT1OZQ?>C0+jQ*j|oG?O-DP_9)6PGoHsHw)L47eItA_a3CMkZZthHlZXj~|w27JrF zO_eC7DHf`Lo-l09r-oHw3=-nVeN6~Z2u!|f5291-Q~7%#-^Wj~R36IfLS0shxTD9E ziFs!<+64{dRgZ4M2kH&ilSYO+tYUqc{e3A>diea44gt`O6zwb4tai+Gl?@Dz4Bb9R z;v)w(1bei!K32DtuHr@Z>kUL!(MFZSvaSg&p#$AVTk{X6!QHWqs-EKH2%KvvSUXs6 z4qtp@Hc7#oeK}t7!40<^aTAy=cwq-($)b@6)0&SYKln<(HHg=62=YA4~G zJSfdD3)uWuw!K3=OzupE9K(ksPWfzX$IdX^e6V}oY9SMxKNX*3KxU#mqhQIL6aphq z^m_H14j0;*HZ|UKf7d5LPb@Gf7AjDH=S#<5rUDk zGQJMU@8bI&+WkS*@1Z|a4Yr66Md(~dBKBq_Kxip^8_R-7Sck#gB;(btTZM1hAWOkh z+V(EB6dA!H{~SmMOuv$oK1eW=wxUux{2BVw<{W|5cMgO%W2w)w_L}iCnU{PX!$OFPS zw(R&WN|-sS4ti%Ucc-J;^d+YdD^^iUsT_|hrZGz{Tdry1iL2pju)5k>jYc}OnkiGj zKq!*6L(@p#Iylwmb*^nn%#MS8ve2DWoj;TRT60Ewd?M-^=}(EOeeFpTYGHjbfOhkv zC>%3d4A5E~d#FF4V{p@nNx-^rG$EPnc3XB(u^2Di*}CfvJYSs1WJY@FoTj3_7j;ou zG1T+rdeg0_kcP`=aI!uy1j@xIT8d_q1Giu-2@xQiIPZ5kzTmjLQ;?7Qoc%f$JQi_Y z|9A@tgKdXWZmZEdNlX}|p>^G>BY>N&e(-^&iNyM;#3%cfR7w|I*ct1tWPaR;I_+nw zP-~Iv2By{;49!)q(POjU)ZxFFDF}VmzxDwh9Z5}P^Do?#sg#tz>+49*`agAa>daEV z6zNOVt@CsQza#677t@N*8g%K6r>%SiG`@*(teZ{^phdl|FeT|5&YH_woP-VzE_5zh z)qNk}+;0%6QPOM_#eVn5X^|-NW-sLTb|;?Go-l|G*Q=_o8efAb1{{#EWJ>r;&n z%8h7=IPQnPF}W1Nal{p`Onq7|HXKvG)4zY$EhOEoDzXokpJq5~=>Z55;F5ksI%}au z7n8VrxSF=@a@(n!`41ncySZ_L%?l_TTWh6Azj!*a-r;iC7(xO{2WIR&E1K$G+Ja|G zKJhY|c>rd#1TyB5Y_b&g7~WAFAu|qmm=^6maJr+bXwJ`+-4-`Iy=leuVV7qb!oD*i zDmj)L#B;o=nmepEsDUrZ!(#C;vJU2B_&)Rg)%Rn+L~e3CjfFX(b?ZmjMnp5g!D$=% zpiaZ`N=s2b*~jj(L&+g0Ge3;){#H&Hzg?12ar;6ioUokTn>(q&Z-MtRiatCSjGig8 zC@ZZg=^Uf1a)Ydzw}pJL)6Pdr^AAmnqt>uSlh@`o%9T8s0$`M^H?zOXX8D0Rs@=?A ze6PK~H+yH`i(6(~^n;>2SicO*dXiG^l21h@b@<2Jk?Oy{shb%e@9zN&x7VSPoF}^L zr?*xIqO=$x-hr$LTa5JgM?~8SPm^@tKSP1nef@hY2Y-ABai1(%5lnM*MGGk%9>%@= zp3Od)v;4hs!)#}6)EDt#VVqE&84htcPNxVM{j51JwC~T9;om^jtTxDV{nqpStCBd3 zY@CBBzrMmF|HO2?i0vlcD^0QvMr-|>^>?tH5qc>45IkwrCDtQ7d8T%!`QE{1r>rpdndb=5)#gcJJ z$vf|_a0h@X8+zV@6RrgK35259gL!k-;rPial-JPv-16C}QCQyrzc)@36id0v|6>1; zUb7TQ(L5b;U8|&rk0;-;BJivq-Q=3R1)&a7**@!y683aG$(X+M4_~ zO$Wo#+4D|gGtKp9=iRr;vPWYkm=p6RYy+>`77mswHI;$@Md#~SzP>PZ7)PdfQ()lI zmGAJE^fSL`V15-Z_i#cDK=vw`TL2`_QfbcY%EYigA1nLC)`iD4TnyXmtsx9{69{^? zkbl$2sR1xG(zzdd^G>*Uz|<^$J+P%I1pewAoEFeF!T4@qT6=>Z@8`I zq*-15*`qqn&j}?q;gYnKD`F?s=!rae*KS({!ayr_BvITAFrH`G-#R=lNd0r2XNzd%hc0_+H$RP_NB(GA?v8(IRE zb>$Us_NDt|Jzrjj*pYt4>vX9q39_v7dMn^iIkiwqPGeDYw}`IXdhp^Ycx!F}CSNao4fFY{`u>o4 zpoeAErMC=PeA)>b;bx8ee#Rt49s1t&@)QhC-ENEooO=g@sKoTo&lzWgQN0-Uk;IN1|gWrQ&!6eV_d;^+JMZVuv9Nd*XP`I`$mcvtR* zIalH;C+}sjpng0aeeHo0e8`)JX_lMbTJKSB%80jQE}u-XVs)QwD0Amv-M9;Sn~O!W z4~Nd=_WWq}mB3kN{)wXDZ^QRZ_1V`T$p^R*SDNDM5a2$uz^Nv}FkK+Sv*Gamjccr* zjvQy4oydvmOe41M!#^O9$So_2VG^Wiv2P|Wl^>djBFqxh?x_%ep{2;u9?BpFlRq=8 z2A|g68y(IsvZ2t?t@J$Z1F)9m!C!yL`}#m?hy3`AgUUub1Uq6evpi#ON5B;cmnh*d;X}D(axm zO={d^jknLSOS_PXijAD>If?a!-}SueJx%Z-6Y}AC|!G0~6{m-1T2A{ACIcyK!%taR&4_uip4_XKg$$>7` z5&+#v$`S*zJ)etYWC1-ZKAUx?(BjBA>bom>ILaonaiY~w`^ z&rFSHmm1i1Z|W-Wa!Glg*){koJLe{c(bkMTm%(n{yEWWOGioQjoCqRo^Yjxuq2x66 zSW|CM=i$3p&mQdi6U{o<8yE)eqQKCK@M+NVWK3_Jhfa~znfDa|`!0mU@*+!?xOlk4 zIGH^NP3m;Xh?;o4(|F!*Rz(tMT)|@;|6zjQi6nWh8CZ`OKqXrb4(CI@`6`0>l+52F zm?*ZUyfc{PWFbLOMjW-x-XB0A<0da<+Ut>0vdM@lV-uaI8jr4S2&GAUyo~Ce_fHZE z!kN9x`A}#Fbq@=m=M~+`%sc9WZb&$VVwgZ@Y7IbhbdoNLOo52wj~KR7BVFvHvp>_` zTwA4}Puet<@jD+BkipU6z%EAj^G^vKpiv;sK=Le*ml9j+d9@UkYV+^64(>Nza57c1qrVA1l97^1cNFI}49t|U z5W@NPjK!`<*9+Ld2}ThOo~n9t5jrhVp(NeLl7pW$-Kw4g;K`yP);4^8L*9KB$7AI; zenMdnt&e7M>zI=S{6n914nB+hnPZ?m#K=c})8md*knn$bM0OTrky-~=(iI4TlM^|` z2&=?BS?b&axm#_hFti)D!$yGlIEkABJ?D_fM1gDa3c>Mz3mQ6ojDdc8o%Jjd>>OPY zn`b!##g5^pnwN+f3}IfvjTG=Z=1<;}l{QHzvGThyU7dn{tlCq-;hp6R=T^GTiN^RG zER_f7-F#UhW%qBYZ_HXG$sQm&>!rPK7i9wtmYX#;9Rx)o`~s&R$IN_lx*$OyczCZL zd>4D*Nkk;@M;b;*yUw?McWLLA#kn{9`cXEaaNG5*0!!+!*&^6PyafnL4mNpZ*f zObpGnJR?J0q)oGyf|rvRO=)3P%kjNA%$oiPT})XQ{WU^wOC;0=?0@^24T70@1*R=S zmQG2LW(*yE45)WO{P2{K$sh4W#neFR%VablNl-HK3Q4`#yV&I{%MRR?UeKj`xeW4Ps)nb6kx{Iy#saArWaG4 z3?6H{p8g+Of!-!2&_j?c9_~mqVuuE29i|8*c8CafXN%Pv)%jej)k4L1uEq%c+F&61 z+dad3oPu@AztTTV?3-0%#c6tuKrtTwIi4kXAXT!jn#g=O)}E;{93Bz``$prvbq@k9 z4K=*=xb{VvrWbmUstQK!g~m20^H7mHzb4K`5!HwJVvB_P(6E&CPVDfDn_Rm)=_HX% z3~}ripx{DERECA$`wl0{rm|XF1jqHhAC~My9wbK?f~YSTcOX^0&4>5kwKVGI=}c68 zOn&XLy|W1@1QKWZRruXt2{1ZB;~)Z)=eT}yS8k{t7Dy_y(DfDx`?iGmxH zr^eTryX!UBe-lFyE#bBg;;A0Zg*JbC3=9yIZqvUeuPfZeS4mxN{;c+lBM;^Yi^bAi zI+r4cVC>By0rwu!2%}b^iII;M1Ejy5%5&6e(OHIkNQ|k>_|Az89y z)}H-fjb(e^S-gG3ivoqA-QDbsMmx#U)m9O#hfiAw{~MU^$+cdlU%_W5eL;8s6(8Fa zQeh6m+gzgn{%h4MJ}mvKtKwNc6cEfk@=3&=XHmJKr?boRQuN;EW2{n78}BV_r`3_WX*AWseE>ipQ<%Ltgtk)vi_^pS!u{;8U*>W(C8 zGyETCEq8yEo7g5vL+Hd9l~nIT!!A|ZK}Ir<>&Hi62l4}LeC@VBg) zw(ED$s~%Ju;cbG8Ge@^M!E^`XVku;Vpv?%P_odag5ImQ{ckuO=`#p9^+b0g z;H0wqCnr&eiHZLorgm6(xDqA`V>_hz^6NK(WhWe70-WuR-+7A;eaE#lObm~W*jAes zT9khZI!7*+{x_6^WLW}bguto(+rtP>_nRw5C}Su(8YUxo!q;2!A#rrSSGo>0zu{$6 z%72Gn<4g|^fAPBd2vE?H-BKu;6}qkrJ6J{qrPZAi2zBhUYSIvrCv^4>Zl!ixpsG(+ z?Tw+eK?ru4M(4RPjdn}n>d#0W<*<%C`CuQ0<87hCH8E#mn9{>eheBWxT6 zVhO9p`#C?;sSSMQ)5n{9h$WfN4m6u!9{N8@T+09WzyI#+`ZsmH&K`}GRKo*|uYu0Bf)EUz`?W?mN4rfGO->H^YSCwn@`0so++Fg(TJ6j;uQpl^_?W{Z- z5|a`8Po{G1QhRALkjtFKq|Y3|$Qfd(PJs^3K#%(}vG&t-!4DsUcwm(I;_}t;>;X|s zH-zyqjK^+u$|b1w3dEV}_A}yN2lihXO>R%B{!eH$y6tXYko(^v6+Rh3QE~Bd1h_Jn zILT}lc~{SeM0X3EZHX*B7|Ww-U4JEq^8Q~V&Z(>i+5&!Uwf`+0vA#ki27Bk!v=HX2 z>cX8p_ZzR6;wMg0us-ZM#XVtM4sO>Ivm=EdC;B&vIw*IdI6ON4kS9-Xxm)6P%4IgI=It<*WC%_e!N0DDdlxH65NxkVMKo`4n%B&sE4DMiwIe zr&|idGwPAV-Lz_tY0vqAvZt}ul*^&j87$Tvd|w?dW^6a-n^@xT?yOS&G=84p>t(<^ zdJ1r`*4edhc2TFpIrt<86?l$(W{!{?s#58G2Zu4#l z2`&WjebquRO6qrMhr=^hXA|Q6u;tPX4_2_}-W>cb)yYT4UYiW|-y@!$gMqr=qF3kh zjSSGnQQmuY_pqDrS8}O{#2yeSWH@{g?;3?D z3YzbKyg6$e9H&_PHobJa7(9J6ywr=N3d(=d?2Sbylcmy*E~}8a4hH@etQfkSJPp;@ zG~i5!;vG`a{K^_!m@D|$D1}{pM68GOueB7Y2<%{p$7rZZ9NQNt^D{(;ORSt0Jmomc#0FZH}fj5ntZ=X;^O zaQ7sBC7X{|Ahx!m>lAy(iwVgYSz4a%`T{ufzcys55R8%U;z5HUn1(qonLCaIZGQVYgY9rd1P1YD6rtSEWyAaR(A_&@07svOLyk=W89cA|XNhr;0 zo=3;?z?ikk8+Aw|u=LX#fSAK^_m#f=+Z#II_B|sqiZdg+R(3KWr@w$#GIgZo`Efmr)d z{^$EWkzyOvsVCe%=2zPYH`)uJ=!SdfOi?8UggY4newNx)>}yU#fNq|=mym?tuqVSnZsZXiGugtTI3PyOqJ z_+-IFle1X7XFAtL1vd@@qon~2wO-OU#Pr9CWg@KQA3cl`E8txt>J2zCn!!IpVZ}yj zAVbq}o6{=<8`*<2bsWxonWeNqTvG$+GrI0Dy`h3p*-bF25?8C}hwkEMHjGj&*&UCiV z1H*$_`zs~ks=QXsH42u*l$As*Q^$N+wH(rHGBVr}Z%;kZoSWr&)PxD2c|GGiRs4*n zC z*$47o8LkV~##l#EI@(1%{_*me@Ks6g`C0AkY&Y8QJ?0aD%vJy21BnEDh(JSLn;Vio z9Hm%R4I7DB%ya=R+X#rzyrlj0P-zK{c4jrm<~_W|A3GqyWT>577uKb~Oh_A|MG4aX zKeZ^Ys2#ETJMxt_ZIA%h$G9zQ0tz~*d9Rck9ibRs%nS1MZZ7L%)_s*qvKeDQ0+!Kx%sQw>+C z9Hv}%Q{vOmgV&u==*}NVy2EyIuAI5@u@XduALtGG#Wkm7>M5VL^eQ#HlO<=w$t6D4 zJsp(PlFDBn&eMz0`}fn`*Yclu7#}iVy*X!qDEqm(-_Zr%U4FqgFrt?UT#*`vs3$8o zHZJ)|lTSfG9yj7T-5E&WM8f%>@DC`Fb{5M4VaPl(;4=30SIaLc?psWbSVUW^IM+~keP;F z#s~6$qn59tuMFvkiB<`lM>+$}o*);2H!$2EyY;cO+;6{=K~)I#@|29`D0&>ITeCiQ^9jCiL~ zox`Rb8F|?*?P)|LPcL0&Vn&VA13+={VsqcC@pGvP8eW$Tt-88YHh#8}9x{d1jJFQh zkohX@ep~*V*#i{mLK7oTCBKZR-fRv4gQy8S=*sUX;kR?l=pUb2_4{8d2r;0b8=h;b zQsy-~ynR}z@J#Tb?@(OQujBYSQpSFx$=HOVxh;AG6ez{;2G%$q_h`1^DUrr^{yKEP z0drt(B;SZK)SM3gmW46!GIGD)S#niZx`X;7R{E%?Hk3#2=*l7+E{oD36z28)-vDvs zCKiy9#gU5J8(r`opB?Z9>y5gJc?O`Mz*j3Qrp^dOmm(5P`~}#s-3gJroPx}{qVl_ z2~=YpxFf#2)*p5}T~|w0bG{u1Z1zxOPVm|Na*KVDEuCgtsz{X2OLc?eJlRF2=)=8^ zevsq(J9Z4G`XH%GChr;kOac}!IS`jU&qAP9t#P2Q1~R|3oV2C#<;wSt{c4KzY)u;M zt1R}YGLU1$`HdQjfjE%ly(b43Nv{Mir5n1)@Aq8DSec78wBVAOoItH<_hmup>g>XG z-v&{U;jgez>ne6SJDhD7>wYfX8o(e*E!*B9Y21a$0EKjiqHyryml77d-00S4V?;vY&>2Z@5I?q#z(ribfq0gAXf=GU`UH)0dC)iic zkaZ}?o-Habb(esFFU{iwWBGK~AQ)!%0+&R$#xiXpeRp0uvF+sAEr4To;F@}!Ps5Ri z3Ufn|LDOQRe;M>(*SZ+@l-Ieq)nl?lEc#9}S5IeNWb0D1U{^*`&je|}8s*XrAdQy$ zLMK!m&aE&#mfy^=g{$5Q#d%S8q*6y|!(QY7OO+~NYOwabSs%uNd~^3YuNf8;9BM%3F_MAHMFf{M!1;GCBub`a;;NDk zSS`gajVa5Dz(AU_Txvnu_j~#ErKNIQBUQyi5;XfqxA|seV71i}5G}>W69`4ZFl&CCS^1< z!zh-XI;Nv{c$uRNnYMu~p|bz`UKhHhV-1c*H>OWe|Bb}uQvTWZha)*hLFc9-92LLl zc>DLt*U2cc16$ct4Y*j7z^h&4PtS9PLmpN*PyE0|iu=iv-WoyND$-ga$#>f=MG;kk z-7kYboTcK=r3L1nX5H>6RFEr#>&|08`9_lN?LI8D(aE3I z8m7o__8PcAwz>B+HQb}gGxSZ{Jgm0Z=S4kpb)t9<|EyGFK;;e~z$`wW0yra zWMfu2+X+w9C0eMJa1lwr=5jGAoh2yHv?zmkI8o*^#=pR!u~%uapv_%_-S&FyPYPoLRSh zF)yx!upq!b74g9Vv~Ct}-cffJchp%hwiNmY zBUGiLp7A_}0~V(F_iigyK52hjw=qIusO(a;nP{kSSB=HH5-JUTN{eJsCq3u_4Tjru z_|oLhp$^sUu>$GTVsX;pm!e%w_VXzsqbbxbjSe-Htkt)HTH~7did4WI>YNqlUXYSN zErEB)g_r4!xXmf;tdz?)qM-c?jvDsd(vn1_WqS-C6JGq1JJXtQE{M*DVx8l$0{5Uo zzHn?=!19W6_Ei2ad~>Y*csV^P)kW+t<2~ihwJJJQXdTD;hH0SiqaaO4=_T)}e)k`# z3RVrt!}TO~-$=tjRlkcX>;_rcbZOQgy6hu{Y$@}VwvYN%9^nZ2XFTu2I-BVkl4vt& zr)zC&dp=o8<(<2apM~X#%r}=pmkH8c`4hW%H4Vj%%qT4NhjS7J*BzZ}=T29sc4D^g z+Zw=EHzaR7X_vo*lxfSmmDAMmz7~53VOL$$_=qH>U>s;Zt?g6-b`Hf$x)&_9$171AG8q9;g=0Z@kJ_Sj7ajUI-Lq8DL>4-$+ZWl4 zm?aJZa1&cn1M6M=!5HQm0tYzSvO}Km#o#A&%;3)Q!nF+2jfj1w4Wy8)0@ZgPT>SvX z%}P;tPG_LKzQIvY^f<4vLZOdEtkN}fRH=-}{;iAjNXOgnGFj{U0lW!2`ce#ehDmzx9qT*X2jZ`?8)M!5ioeS(RPYK8Rqmx0 zPq1bW5b4UZl}7!>NCIYSp{+dmP}Ic+S!Jt#w=m{`(q@ZEh9vrg=D8!nvQ-Kb`3m`fJ#VA%@FRWs% zHK-_XE!m(m#zEU)Uy6MH_s@chg|(1NRKo+-xL%YN3b)AGJYHiAp?`}(Sv8)?Zi|dx zGCP;a#-bT}KA7%Qmk1r@<_2x7lprB@`2M9NZe%8OV|7375(t^`%_t42YEa=x6%U=0 zdG+WrrCv{RcU|;IvJ=k0Vn2K|Q@46vuDHr=n3Q3_sSGW(9;DI~7#T`q1g9sB04M9-~ZTq*x*LcY}qV2Sf5BnblJR2}o5lc7` zs*5`UF|z%FsUMS&e(fXZLX}S<0q2OtXA1MN?Zn0X7FY^s2w4gMH<*CQ^+DUBZYJlV z=V`h5Ce~`Xk66(b4@YC=vjGG6HiX(Iz0#ov=!AB}ggXtv7#7M>19=>A5pC?%eySFn zAf~Q0UfgQjf}7mi-3D1{PsYH2J!mnj8E~SU&+`fP?$np2SX4r_jU^_xegZAC%Z>td zDZJR_(KUPOhC(6?j@K)Ci_fOY(?a*=4YBb8r{>j`AP2L}fF!JUR|sIcYV+&+d;ydj zwdv|O(Syr_a?EP006gsp4{y1TciL39SMap}HB4DZ;|+q1SdRXKA}1#+l~Y85eQ~B~ zU*W5+nT}*J6t}rj0vWJ$@RtJ~6?oUt% zb-q@AQLg`Sa1X`*-qtrvwpIq4Ki6mf7-Ii4pmTii$y^l>7Z(#U>y~yLO zv9UoBSY@RjQmG|x*k3dp=_z;2$klJI?^5tvNfV6$F>NwKno+@Q{?98Lx|8{RtIBH! zt!(DAS34gq^p5~#`lCC*2HVsvGGTL#jZt4S@zHcH&Qmm`xR@>8b0G+RrBz1CD&s3~ zCc7MS_Th17x?}yr38%D)hrInNC*(3w-PzVD5gWaP!(HAbB+fM2V6~oNPkwz0Eq&0$ zcQPL>Ur|&3Pru>2e52IrCb6mElNNAcs;h^&9zukE2CBV6Iu*GECM3C?iCIb3G3MMZEzZ)Xp=er7Wd(OYmPpnYi(_10}_FgmW7L< z!Q0U{$NZqviP^q?C{V@w25uuc?m!G)A}H&|&9wIW9gdiuFCxFGNNh^0RbaKZJ~AUo z6QT`Qym#$aoXS^uJ(yuP!F*Bj-9od4E|cyn{62 z_uy%FlhT}=(oxTjU!d*WFkFA=&w!%VpJ_r1#~Pi-v`BY%K@A#5J@Lo*z1=>px2ek* zCw^|Bu7)$O;lvDlJ9=$QLU;R^Y*R4Y-UipB-9D`qJhU`~Ts%zmG=b&O8MRX#Mn-GG z_gVdu+OheQ8RZ9Pk>!uRKYf2TE*b--Vv?&k+mTD7n#opJ|5Bc=M7$7|5fS*N8yu=X zwa3%M+=xqmb=PAn|LT=O?mFCGq3(Mq!xHb{!6%He*U37v+Z-a<-HNA#>uR9eL=ZJT zkypWZ8be2cAce~K?ReX)P`r$4A`c7oQ&Kw?s@b05W-iUGW_|*p2b5zhX=6m`Y(27} z=3oGYSeay(EBXl9r{`OmAhg?xmS1g&ByngVL6PcldH0wan75e*v$arB%P`4&*CP5}kRoD)D~QXIlPT`=%dN?pN3Y6YaFRdn*X|f)9A3#&d_#ltFs0n_HtCYP z!6@qhgtw*3X*NW}^iqh0v>Z*xdy4=(54CjPBsl4<7uR&#oQ-$8_?pm%;CamOgV-xs zyRR>qU&vhS+tuu+Ldr|~yPhm2mD~;(#mzLrIfHEs zRmQ9O^`|z&AI4Yv>4c~{hJd>JvP=AlWejQSKO;50D8kXMpSH%gSU+1p?9`}2J*ph9 z4-vE>uvYbBZi+BHDn1Kbr+nM41bq<02OXwKT5TpAOmj59?bBeZ_ZOV8zI1&pnl(-= zj`N?Z^*V}#MZ#<6^uPSp`<ES@gpHs8J}J}V3_U@|>t{qBo{2ZnU`ys&3*M37L~IVjJ{5zI$Q0^S}Va43Z8tlT&>_M-MDVaP2G6RstcM_RdL* zJ4{njyRrHTFyK|q+a8OdS&)6~GiS>$j2{cm>xzM%u7*2nI;deLQk(Sm_}^nW!CLue! z2}jH6l(XFVYlR~gCg?FeB?_0jMS(8T?jA9J_KxovHrJDngcDmXiYo~Q?biiz`7$Di zC$Hs>mAD4gmb@5mT{zb&cxKu*zisP#<;5h&A!9CX#KH_$ll@G*)vO_Ck9vadCbEH9 zarAKVLUki(|K0PEdwc_Ld#;8judU@1ulY(?XDh7A($-&O-pIWeLJ4Cd341rBdbHu$ zJ$_!49ccsT-F-WY>2A1oHbywsG6GAe(7MBi_v_}{Z7sgkqHh#qIIz?YweLA&wWpW# z>238~I9Q0z=J-D|t69$U9VWy{}b?b-RT?dQN9HB0jXPV+|3Ssh+Wnms;Cl zT)wc$U-7=GjfeA}&aAk5!)yijuJp#U{D0xQ>n5!Mg%}crCSy9-c%g(iC%2c|yu+HR z!#Q%Ah2?g7`u(>qQpt!s%HruW&*YqmBBE&g1E8|Xdyqz2Tb!Bi`LP5Q6S5xBNoG71 z!fan=QfJGckyh$tKDUR{s-JIHztc9eyJ?MjfYL~{`3`$+-&n!d!H7ANrj#FntDEet4u?F-MJQBj^%$d^w&Blv z<0}WA+I*jHw|QQn{LYUCoiLrq^2BMvV8op)65#h)9yws;xtz`Ri zY(;c>A{Rn~^;(jsl`~Z$dban-j{T`EmH81{$8W|#40a5uESjcFRh1o?IZ}U%j1i2RIu(y0@$?>t+uF zI20C!uK1E~;AbHMJpe4DZMX26&{l3WqB~3qiHSa(EHSkW*Zb4#MIE{^Z+l&h*v>Ur zkE_~9@=s;0%x7d(KYR^rl*Egjly1yNYlfpIsnaJ{9EMEah;f!XCHr0d$9iW9jRx>< zzAK(LyTd@|(TB@SEL5k$l46mmzi~w=QlGm#Va?rMQ3FPz75xuCH&zbl-Z+Wo;Kn$< zYKs35x`L)0X^5Tdra<)X{7JWcCu%Vss?wgkewdQV8q@O@wact z1DDb!42RJxD-XT7xJnpfE;^%s&W)CGnQ*t?*?m-Jm^2UG{_B3e?8mIXJN=HgMX>Vg zk7+PLzQcx%$m2v4A#H#HG;hq&P z;Y2CGxr&ON3kB@;T`<%QCr}7yCN9@;ouuKLyLM{@!0Xo{LH6*gANU6r(1iS?#xcKB za#qC&X=*fdq`_x)=QKWfgl~P?r9fKm$UE9?d#sewOm!;Z_dwlmJk87iY*RJeODf1= zfNbh<%u~KG9br5o5r(TJ2Xo zlBUhev?t{9S`4v1CK<;Av%VzMrvHdw0j&4$`XxU$GI3v$yG;>9AeOA$nW>|?N>q!q zFeC?`&>wy0U@s44ebRO~@(HhrwHKmgo*Yf+bIg!A;cRHsGeX5a7Z?ND*ha2tY>L{{ zeRKTXrJ(AU!S|Z?XtsfU>L?jgipW}LwDRc+hQbo+GXRuxK$P(grhb=?hg43yg8u9R zy3Nm)xbF5H&DJmsdY;f_654F1eY0)pC}2;Kd)iE*qhE5TxN<@>KoZKV-N{!FD_5Hz z3enBMDW%&a-Llg?lCw2~xI2D{=GzYy+YG}41y#e5Y*%HnY#^}gLuMBdO!wcOMOfsn zsvV&16wzjk!Dz7$>aW3NAPGAKa>!6foC(GD$leQ=8w-xY?deRDw=dfj+x`t|09>=t z<*ddZl~G@i9)922lk`hZpMP!&Og@ar<>edVdM6mc5DZg~yju6TSze5c)EfFXNJ8Uz z10I|LpzH0y0K5%O)-}a7j7K036|tf^g8AIRQA%aqtX3~c5)Or;=o9onisS2ezMi?RDyYPXmQQt5QCR^nYD9dMIRNh-U6=BXl7p{bFT` zS`sw8+{yPjTSTiMKI^L#XKdaBqe3eXzBePg1zbAV&pTXXUKDA^uE9~&i>*Pj2M?@) zLm0!<(KV#{&h;G`uCL0|Hg!cSEE$CWzHrEmsb&tI$oTD7vb$l;RcoJRAHz>gFtMO& zb_1FohFO7Z=sgn?t#9bQasGi;c8$ySVXL>0emu!y7$Fj0t2A5;TGaYRQ{>_PITH{v z41S(ua-%-Qoc&!mspnG!BVlxaEK2Yo><|sEtz+q8ACr4LK`(o%`?Ol8qT}4 z6p2Nb=@1F|5+@}vzQN7ieWQNw33B0>NKT}n>R@&gcwf}&*#P4YBJQ#4eWY?YbvHw* zJPs~rhB|*tQzNDagZbMd<3Zb4xp!jQkZlCDM*iC!H$OnORy2gEj%U3rM14N%y19!+ zxie|&Td9BjrVbc;yfAXh)w6~0HF=u9mUg4!^ehVIvPn8|H*bp6fhSim4PsfK|G4vz z_{HWdN2|t1D;VE!k0lqg8Wq7%M)1p0`QHmG&Gh(@v$0&5M^O701;UTfqE?cw|In)i zcP$Ya@W1HV;jdqyuET>}qD_aEw_r~@-pAm5gmj8TXuPT3cl>`eiS%?b8DtRi{^wS>WNF{tXsAzD0`NX>z zaWiP!!tFh|O%ubV+`Q3EheCVKkhy}|x)Y77g5_^@8HsQ>c%K&8p))vmaSE^G=;y?p zFU}2jSthHDlU*7?5N!0oT}I#-i?TCC-B4#n%=!0PMQ61O>85$ZNRvuD#kRnZpP63C zBRCLIVy6V2weGOS-|=#t-_XFU`Fx=tpUMB+{}RM%)n0p3nfYR-?*^?$1?#w99L8pH z!%HEdX7%&jsfb##ZI%QT(z}|7>kTh%nHfwIqO zyF^^(@Mm}fx$D8XHDwf3IbD;u3WM;neFh`xp7EL)S3?j3`raVpn4P{wF%9pxPh(~> z28UW0$gS$JH*?G(b$SHnMC(y7Ej2s4Anen_qu$9jB$vJ^L(nx$>)AnUiVuo5cJUuK zuoXezXikAEy>&CT=4ZhMXjV0%UYKqN{h@5_bKv&qiUzga)^Z2)YN=@e=1umn5 zWj`Ib*^Iba0A*lKrej6qS%?oP6Nj|Ds}!)o{gK7ZP9$m4QUhY^{Xi}uF1&eDm3pnt zgwqzf1TPe6#>se%KPP)KQcy>c@|x6c7%(HfUW6jH?C{sD8FgW2KGcE z*5yznolL^V?xI(CSv>llvoqFZMONzuNyB-b(%YQv{5B;UIzXuf``XH$br7IFo`}K4 zRDI7g?(W{+t+Ct9c7I!U{)D}XP9vLNGcj0MENyt9i`rp#U4~g0ldP1y5$SQwHL$L> z`dyHz;fv62TD)g}L243$Ls9ZsP@N49?$VY)UVVHf%@AHVE}gWth-!BND;8%8+h9@+ zpl^^&0bE?S})Wu)opSj8(N%VsZ+%Fk-leN zAqc6*?m^~5Hm`Gm==TIgnVUGfn<%P@!v|gG)dUhYR^6ZqsJGy-T>}FAgBb3>kUEeX z4yu~#5E$y^OW%7Y)cP^f4qz-^qCB?2vUhZ6Bnx3+B|T%hjvG?(Bu<0FQ|Irr*M0if zO%urYFZBsdF2X%K0-wN5)z-W|JW2X;6bzH3SMVrEj%JR{fnUr~<%XLXK#rPG4OmaW z%0>~9*2}3%7QVL@zCW*z{QgzfJ6(-9l*RYG#ha?k){1Y^a6?Wk-KRS7fX(`B+uq8> zD#znSk1jF2{-*E+Cf7IQ?rlXQtw>$_iMFPs!~DMdK?@Q!9`X%++JTiFBQ1YVvd9Kq z&CI5LRND@qrFo+y%0jtu5%1nGH zY>@EvI* zOy2k+umUhv6vzQ{l8Xh&J@4?qM0dkcEJ#QCLI*=~ns$278|uiAu+|P$-dr8r9{jbx z@WS^uKG?lVsiaFHez;UxkeCfbOK9?0unQGNJhMN?yWcVP>?OJ1{c0`MpV`pA)FBI} zE$_7@d%d7qIykF^*Jn{|!85V`?iS7ajMU5)e)tVT$YX@U=KkJc#y7m*KXc$YQeg+1 zAxR@O9ruP2YTu&(GTjAJ_qVEXIxxUqKgn?q{n~|GZ#_ix?YAY3aahY6t?m>gXvt#G7!NQH*A(gqBWXHlLPBVCDn(Y@vHZ9>YK?leA9%3U zs-I(`E1{R2q?pI(Y`c2y6*Mx3uW5h8rH<8X5Avf|VEGf50&t>@DIE_eI4Mn0Q#W-Ah$#LS zTW=W`NARo*2MF%&7Thhk1q%?|-QC?iu($>d8j=uP7I$A<65M5RSlkv^;N^eLJ@?!X z@0b0}?DWo5Ro8U)RzFYGvckTvDduwJ$pt#z)SvEZ%J`c0Ao1mYfD|?4F;wg+$UsPwS_fma)ytbY74Ox%a(m?H_lte-2@EQfEmDmAIH{Y z*G(#Aw3bzfhn@yYZ4#tX=;D;Xc>k&%PfPox0l|f>X^@z&;|Il)O8{7$0_qTjb1tF3 z?C$|%nji%d1YldRx=xBG(YWebqO`OlJd{ANb6%jNtd~t#<*g0H!m8!=CUhO*6qPOF zyT@RIwJTXb;R7pM0)RsCUe~g3aVO1=0PO+YIGFj)OFJIzxuIDQB*evnw5u$z^rSCz zXzT<)43NMty#h4)`r}_&i|MZ-jlX2K2p5SRW4{NWTYSq|{sk>;)bAvPGO&6b)rwIG z3cMwtp7QskuPul(vRJz-aW7vnbIFdYkLA-}ZpZU28V%UgOl>BuC3v1E&)q-eRV*Cs z>Yd>8(Iz-_{9JnbUfXZyjBnZBw@k98!rw{Sx0;%B{lJq6k0hu`THFHIYmbo|VmW=F zxECi_caqnKqI0{CNT;UAtd63T1JM(bY!YccoeG-TyHBBsn$A}+w=Ld7Hv!DZJxHl+ z4M{4z2lr>Rjf|v!_N>Ph35dyA>^^!nRXMsCt8hfa%ZROcxCmgr64y}EHKQnsUj{QciS&Lps zKEBHOYot2iUTz8^=%iTnv8Z_HY9etM>1?wZ@0R;{)R}cZA#jmfTpMj)h||us?;Y>p z19>@Wojb*N$hs<(as>%^;(B5o1aT?R4*M?Xuv?W`H@B48*FWV?Xx9OWD zM(^Lf<-VLTpe=GU|8Z!0$us2rh+i!+S-?nP>pV3`z&gMA z{jv%M(mrjs=4G-a>^qLBKV08+9bXd_2X9=JGLcSu*e_qhb3y1gIwLdh=L-oUkPbMq zUX6v^$e3()3s}m%KO>4C@)w2IbBs&reUN`Fm_(6u=Q>9m2LcfjhC6o~(zkmKu?J1U z!mG4t8ON+#X&g?3qKrdFYuSL+XxEMproufvSP|Dl+vQh{mW0x(h4RL-6?KJad}H3E z2yAL92^|U^V;G@dF=*GNeSb*uHjcT-et2%PbWYX&jf50`P4)#v*0EJzC>u9AL!A(y z4M+t%(CJJ-#_5VaRF}auU5&_!teR~zvdY-@@^#1M?te{tObpxnuK3B5=2fA#4eCCp zc_UMBg;8#?()G4_y?TFS8QvgMM6^DyLFEAnCHPQS>HQl~!mb6E<9Gcv5&OP=!-rHn zO>Xj>%?M;jY+Q$aB|gqAM_n=RR)yl2e%3P+Beq3o?{P~iT`~)Q8>EwL30)9-nav!~ z9`l~)dV>mU$f#rfo&RjB&dU!XvdC>lc*bG4Ei(Q^Nn@Gy zm;0!{dmvL`8Ee&4a9k=%F{8}l1p7IHZCZWm&(`qGT#P7V(P*y~hRU{jIuEOR-U$+M zwAlrU-llL8YfmPnpU6rnNKnrkYYgXawVAo!1&txCiIMpw2QTV^oIc0nvcE6CV}&dU zF`HW0e$%%VP#j4j>Cltzg6Enc=>@GzF^7+Rk+tl$3zg!9aZ+g>!z*UMNCedgHLvNL zq=cDhvD068Nv7vQ_{E9hU`=J{=te=A&oOpU#sk1biHlk`Tt7Flezr4;qmG~RvBEhL zFsH^U%U{jB_1<-#PSI3h`RtFlFwX0SS~)6lY;vMPdHRlG#fgd^14AbEryww$V9h`y zqY#xbO{vlGNPpo6IpveRe`?UUlR|a6C$L#J$^HTt9afely4gn%!yy0TuZciW=XN+|xtW~=8;_9sM0Qz!U^E@kSDK*QD!Z|aQhgqB|9BAk zDS4!l?aG(-wlJ;XfO+qR(S-eD*s3+Q-`2S}U@avfZ;&W+t*u*hIkY?QtNbz5a{Y7K z$bpo;$dS6Z+jbY;LuF8F`PFwm(kD?g4`1^Efq<(|^)hVkMdxO^UwKuCEjCJG4n<#r zGFa-Hx+PfkeDTh9mizo`Y7W{Vv$4e3<%2_f)Bb*%MU3wCIAG_S`Anf-X8}JO|B=J% zb=%;tb}^ND7@D;1rM0@7waQ32Ch)pMEsNC`ZNdHqXJVcAPX2-ek6RFx-G@*+8_m2& zSk>=;q|C-(?1}HU%FH%?zmH)|t4+0gUUTT8G$EVY9@87>D?I&TJYJiyLXbXZd2(gL z&Ko6;j%TW?x$U4F55;iAieY_VmAFEEIKVw)tZS6oM5umBxR=y{jP+J0UKnYpMY@}~ zv|72J8dRyjSlYm0^JBl&8w#S|kiWJ(aQSo=kT9CvmDF*Ivx+A6cX(&x`=_(Z$4U2t z>KnUKNyl@c01bKU_N1ZS+iOGEyOL$87~J{*>UwRHo1-IPxAYO4<8MdGzc)H#2)fmW zC_dNJKzu9c#o@oxsx8U1&fHw!;N4BgFIC~9bW(5{Umz9MxgKieI@(E~1qKF|8S4^r zTBP9k_!C<;QEW!gp|{17G`r4i%NQn|_quh|BX`!rKe)&j%y|YQtJ(^En|5E_0NA?> z`o&y78i*Png#AiG?Z|t zQ@8M$m;JofOFrntSI&uyJdP1*kNqskSKFq!KUD3{bCgMIlWnt@lwN`#k1z2b1$}p~ z(MXH^+zo6dqbcg0b@=7vxP1r*rfd{fc8GPh_x}W}K}q}XTXoUpZj~=N8O$~leO}iQ zU-2>qague6ehkMh>%$I$l_{S&L>7ElLNajzRhId(Q+vn3(xCp+#q0++a`x8)7EOJM zkIf(Luwx8RR_-YUy2hnz1k-NuSnNQ-ll)iY1beAgZ0T|;As14Ly2trG7aX&(R zf={^y$TGD)O4QPb5fVM+4PJ3myt;BHKcXYbi`c4`t@|(z6(oaZoM=gao-7sRRZ-ku zv(rm1s#twKCFoT2PpT-Aj3pKIZ5ysI^SjQL+q3x=e303l?Sa~ySBo8~;O>ZaPJ4^= z8CJ=q3N;RpWFF+Jq+}HrSAUoiA+TbjWegH+hCxMZ;yBcAo!NejhQC@YWMZ%jzhXr0 z!{GNUa6FItBgj7{7gfify**8>A4-}JTg+?xMhR`_&5{hfb>{DZbp6;t((3+KPw_9U zW%+e}?`BUS=t7$LW43Nr_ zr39-td8%LDn~$Hp8z$Kokjszq4x?ye@#e8MtHfKW3|jK#BQlM*0)H?q4`5Ms7uWVL z1RD-yl>glS)XC^dQ6Q)>7vRO&Ss0yBr}@Td$;5Is34#6_ZJ^`)U_C%q6DrjdC1f2x zeWr=Plm6$6@<(0}v7nC%03L2q_QT$i0e!4nJjs$CGbZxUFG~l9IN#Hi%h?XyZ>ze@ zqug(lM9b}d0PF_nf04SLasVeu1qU+?KmU^yG(Yo){bHH8_ZM#OrnAIrSKJQk^A1TCOVPD3f8|R4J z8eeX{g(sRbx8*cFpvxIOy9m(;@rokG`u42$;3U>~QrrA2ZjBGV{H~MC%E95(^@ejP4D693oihqEZX1;Slt`(zmV?6@x+FjZ4hzF?H-la{sY&!U$rJd z7Z)k4K6CUR<#FK*-yg96iZl5tn#iJYnfkds{$Z7A&h>{LSoVv7AZ9 z+twBn*^-W9pqUFw2|=3=Dv_KLYHsZ*!^SFK1B4qPmN$J_44tC^bR{yV*}`RI-ulAS zqyGSN(SR5_6ZXEDmP_3p1SEC~9LbFFhNjB2#Q3rDMw+PL_xg-MM+`s4zGT(FurQ$5 zt|6xp}`0^bFOp(ak=Uu{Q_gz^`bR1h!4|E(qb+ox0Jtbq0|)MB-{VCtnXOZ3^- z4C?BT&YCr9`-rfY(O>C0vl->5MUwa4Ib>ocSis2$m87;J%tp;TlC1#XGsJy!A`B7L?%(JQHd})E507f~#g0Nff zu8rTQ7dv4$-hH&ZpL8A+7mmR6Vl;>TkRr+8OX}NfX>_yE5&6Ay8F%78l#QcgvArY`F+ubVd5H_zO!)?*!*|WQEzqX^L&6iHcaYN;bB>Mqyz8RNh_kn?v;9l)H zvP~-+tWftshneyFsBl1G<8TL$fsOyQ>c9atdnRIQy=++iY8zRP8bvbo5G~^g<9LId;=JP~nFENM08{-E{bG2mfNWkHEK94_*2{ zWizidfgzVbDX7LnesqBv=!rN1suj^nkW66XPG&R(U`Aj)fE4@Hu?{D&ka{X zJ8@2ad9Q`c-Jo)&>XIZ~S?YWT&|8>z zXZQ;489R(N;miw}Wf%svSC{8a9=1uMDt~r^L;Htli z9q(;zuCT>S;`b8wK13v$sN9A5w7tt}DF-t*UTqncWDeQ2-}qA)h2hd6!4Nmk$S+PR zDqC-*{e@*0$H>Kp_}_ByhbXWZ`0DW7ouJk2Zg?ps^#YP!Ew%*5uM$!JIbQihRg8{p zVyNL5A&?AoCT4-kM!zc@>;y5MxfvJu<*}CPkO1X6xd<31u$j*P)KP>}u?kduy{h<{ z$r5AP%CGdq3uxx8IkBYecK#lIkq3e)U$=i0bF-j!zHY^qLDd!8t@K6_1#C$slzDGi zBhre0VZNR5sdy*DACjU-L1{6fH);3b6olX#G?)L|(+=SA7WrYPV*FHp z?a`{TA4pS0T=Yi}%L$#$zR5*M`E_KNAXtQZXQ2lvnIl(g|M)@nRFfoFx`i?F-#{l8C z>RwgZ#B~Ax1dK0IIP1TbxZ^4K3`QD^Su=oWON|a&nNSYi3We#>7PEBN+Urk}X$E|t zqA*J)?0NlK)J^??;0F7JN;0V+g5fnEJdDKRTP}r?M6iMT(VacPv*f47JHL%hcA8~W zsn$S$gniZgWRp#VZB=t5Cp^Py-po*Zf3lz*L95E}_QLIOIxEevk8f@f=y4YLJz$ksB^0>vfd zguBP%+23!NfViyEs8S*aRl|L{)Gv{JP=8}VyH`WEH=xl>CK=`Ls_pNL3``xn#ez~^Cg7Rw)R$}e-VZQ~S$ zo;UduA6&)v3-Q~}Bbw039?Qmga{7vMvR?+c@XoGIqD<`F6{sRBX&XJ*0yO!2QC&EG`rvOl0L$AO z4;OV_wLC#Jaub}>3HsjpgCS^Ry9i<`yZxEPLE?GnpgQNsXnxSH>v6j>YtP(JggR2G z1h2whUE`?ElSPw&E{*6I_uDx#8X#g{$9$eU%z@^Y5hhVmrBsm;h9(v5OZ|S=^%v*W zzGf>r60dR_TN+DF(~@{(X$ejFpKYscpK@P^`oCpfgB5^*d*QEWq<@#9#C`V6)=mFm z<0zSHH~ofaQj`2v4Ey2nsY)LXyoZ@FTaR%P+S!`2-)rX_qH&RWPcMsL%w z1+2?>vs$>_kHhQ`Ax+y%a{9p5RJAUkYbM(gC(`L29$FJhzt8^<7>3`3pyYWK(Sp3BBaj>`FmPKYEOf; zP>Q7|e7QbTc(MPMIocGw22t}6be0g{YU`Dx|1weWbNpDQ>?LcHdG7WBt|9CVm+E~A zDB7IuRwe!2YI%yw7$;4fqnL zq0?w6WDL44!ZK!jjojaZiV}cpUXvPN_%fHX4t!)rmwY)Wy4w3pTgZU16Wd#F|7Jx3!S=<5mb{u*Vz zfB(Fr{x4NJQNo9gcllwd^pM&Rxf_TbQ!?srW#pvK0-xx*8DcOZ1gXIbPMtaT0``F$ z`5Pd2B2hw_AaA)Mjf6T&N4wUHT)XU)`?|wd87BBu_Vqdw{ z73Z%=XZrCyTa|_}zT*(n{GTsgzDQ$4H>qFT5pY7+NFSRDkqP_kEGv01VKptI_5dZW ziTGwbYnqRA;gxKm>!ANFPk)97_)E%C`@zd+<4-JYU=&)AYmnI%VqUTUB9RXKig0W? z@x^p$?_L(1etkj=LFTc=M--djr!&=~Z`K`FF(Z0`*hs zW;582T4fU=EXn3|o~eMv+Whm$*l?p>#Y-3J@!a07VrNN%R<8xC;q%&s-T}Bz$J|>_ z!6!W~_~#A7!kl{jcR}XQoz+xWU1OAPKlg~)vFa|uhWaN8Dl0ePES@6_o595Ksk7~0 z*Im1NG+bK)riZ`6Mv3l=saHdSC6AkjinR3y>p7<6)H!W(-HDjbs)6w zp2NgIs2(@ugvQrQtHMO#M&3W;@A%L3G5M%~**6Z7m0az8jasX-Flrk^7?l=}Ue#|MH9J*!N%ukGZRKDK`} z@WaUG#;1dZ*nOWl><|hwtRmdC0UxE!whq@=xw>1WG}CdPWLq5G%HeC{hYhcm@{8P4 z#e2*iSiBr!nP*!j4<4k&9!&8Cx!0^);YHVTdqYP4OdAfAekH*Y1hp}T0uNHaU%36w zyv?;riT^x{kZt;muQ%J>{()9K`H@IC5D`5uV6(IK5Y`j7Y*7zo9|KQb*b*sck-H@b zJ*N@###VMK>-pTG;AX=HeiwBQ=uxhsd#J){TGWiZsfCab$bjgnqbOlftDqI8y!S}1 zD%++#E@#?{m`L#$C54o0!7IC=y1()@`=TjO!>9&jx^>d2I)n22a^&ze%0q+Z@;phk zreJ{P!srnc6ivyC#zDB-{iK)_$`&bC?xUBb;Mk7CJ%x?kgwq2{=vQ=;Qh~#^;EYG< zOv^3Za&~8edwiml$`;6b9WK^xLcAdDoELP~dGi3bGq-X+iXMZ=J|?VfKCWijLX4hC z1a}ePdkszBZb>Xt0$1nuWR7J&86M}$^Rmf;(rC%z+j?Z^b5S?*G{e~y{o3P+*V@GO zSP#LU%)#r5oa6oO2o`?M?E8kR2l;I-#w&N@ZhU$ob)7-t*Y|ZN+r-+s8_jByVr~*+ zt~dP=4gdN@{^(rnh1GIfUOIa;h&Q1^?K3GO5|p|*Hfk`IAAovTX5xN_ zY&E3isLmOZ zO7dsSGsJfRtW;)(j8(r=MUbDc5ihE79Yzy8P+sqyF+!G?>RDS@$R^vQo$A`dh!A-me3%{YoZqEn*mYo?vH&VBj7p zk}{jv)V`e_2-AiDHFxm+o>6e}Q0}gsS+)aWD|1Y3sFOZv+!NEkNX5cwvVmg`xfO^B z@Mx_^$n;yx3bp;n8DQczQ*??00wYc8b z8Z-DHc9zeNWo_(Hp!8wqJo1Z&3u@1S$5E6<%hl(HbFN-N*$nxe%kG|sCW2kH&|X}g zf&~wIfCcfu1%ASl@YBQ_Bq6Zl{=K;2Zc0O~J8U`~<=_MP_@+>!>Co_U;SOWm<*C-( zvjfxPGjXz2?6Oi%IqK1nc4pj%^u*i~~a%u~VKP~*tURkL0GkR)LL zxvDc&4cD61d?na;&uFIJy(K^8`&tvD>ukfY*v$%MoMKnk!vS`{3)Zs5)^u*mXlV`tkR6tx8d z1iP`CB*>yr+myJw93%*DwiP28wSX3rfSx|cjXv`+Fid3JP$O4~BqFmrzR#0qE&(O zUt4ZNuT2vea1c^V&Q#7o_Pm5oe!x;Y4)`S!TDV4aB7oT&4V*GuGfTg?X9=UPcmE!c z1?Y;8d699d-J!ZiyQ)zjVzDDCy6>NED20VQXTk762H!8GjpFzVU#~$Vc|;wa&TT9@RB+< zDHV?2W-C{hLnUxt)y>=1PB!6vpi@fdxaf(daO~Rm?)ku;nCm3i zbNge0Iuv?TPwV3Y203lkh2kW^J$U+m%3REgC@E1IHT0$i&xp6DmmV&yJ4Se2*SZDG zpK8ubQzfw;s1aFBwJG(k{#HkvXDbhv*0jIj@rGWzi{gICbu}I@VW$6S8P#Go4Hv`b z!N%UHEqS`2-)#7*SY1f+Y{J)CR&M+ss**(+9Ba^WofrhOio6LgdvN-Suk3>1GnNyk z8l7C6wkc^u4A6X`W(}U_dWb}%4cpPcn&#pHeqyEMXIbKEkAw3o{X_RawP;+mk+l_u zD@L>u)NhY5KV_ulT3N$FR{>inHlXKx|M*6BANu>;K6rK{&1Mn3FFC|=#D!wxjlD$h z%()jOjw-m2)c@r&T;vUq=-^^Zt06HZyvgC8_*+1Q$9-b4?AIZaGG;(Oe-&i|nI5R8 ztxk|igfzs_fIy5%nBt$yjCb7@!4+jPfq)9K<;0?oXFJ7X+qtdd^d z_QnKa(yjSSLYj5DEc1_huEBEH_LTruC!Id^O-0=_josvP41UTz80L_aTuVB&>N4_ENROj!LtJLC?ueVnlR z`dKKqikSlx+Y>NYb~B7nG}S` zrXW>p7!!=}^?SHFQo_2r>Tpe}mONs?DUpyp9-^LA7LXhN#DdjYwFIJRmU-Z@X>!Dt!uEHR&^;@6P9NMML^0o_=*G}%JI1mBbl*@f=1Y4fP~Ci zm7@y2N7x{Q%E-RR&;etnD@36+a->ZMCaG~jN|-=@jTh?Fe(>r5iEul=FTeT6V7N|=r4C)SyDv$K(Tl4go_kqrLi5XT!cOuaY zYy{^(nNrYK0XFs{zNRkF`5F01{%vS+0PZQVfylG}aEm@{oRjd#+sYey&Mi@EJa{`a zGc!9t0X))wsZ%uH$OA0{UDTUXh1kM;;1kH2KnOk_%|nKXFCAR073~Imh>O$W=eg=W z&JQlG=BwHTpDwLY?}4RZbQG(+*whnT4GLSNT!WeW2v8bSv*;b4#`)hwl zsWf3(E9RwgcP^mkNqc&-$W|OQMfCH_ zvC9Wmnz$fDE59C(4~eff!vAZjPAPN}Wj-tz1T_BV9IXd;ec$+5C5t+)t&w_j3I%L* z+l^I}X12Z9ycVK4@2d?Q3V$g2g*>iTHbrSoH^fE4vM2slqvEx|iQ8Z0B|Ft;>()kV z0%An!3oxlyCXvIWCCwWzx!NpBk(ReGJ-&^npLS*6C55y9CfOSq0wVvgY62xw}@Z|ztr9NS@K%) z{C#@^#p!G|`$VpD>cCy~Sy68a(-LNGb#{d|U;bo2&Ty8AxthGh0~_TAVwRu5!zVFc zh=sGY31=R&Wl_^}LP%(WO}>7zqDMRLGHg7ix7O+1BHyQP(SqS}DQzF#;U>t7E}c7i zqcogtZP|ovpME|$wqI4u+i=+%Q9eN0(@CXcGBJS<4+w|X;i zmXlIEqyT5@PTOpkUvGv*x&8LdgnUIw(%9jh{3}Dm%cng~W^C4i?%;uOacvd{BMqrp z1jBdFyvfc`1S`8LJ%cx1eZQF9jF_{84|!jjqQbba2E_jlJq_=Lfa)_Jbk038nx;+WL-M%72J>KLxDN7RCZUk#QF^@k1m!VYM27B zb^~i|YSP9_R>o^BXg#W$HQvmwys||mNd^hNVDJuc?6`RNaS77Szx5#hyAN3<4gKK& zG*91um)jd16nu=Y1~3G#9w2)sw2Adk;xln*t!9*zz%q|Q0wySl@)ys^?6kX{j${A? zIP!ZD72_$l(%by$JM`UC7}d9ynTYgm(meUs1Uuu$G7{%UFS#ZlQe8T;zJ{!Yvw zI1}K#y%lGzpqAL%a4lL_-@#{FUh%g1P}H}aUKg$h{G_ zqM^4gJY7D-&PzctAVIlykcP3~D$rHgtm%z67BCT9WhS9p6P;9A_o`v$gz z=;?p&g}h9Dk++l;s-Y5zO4~f^gD1?y%CAhgx4hDoeE+#L;X%Z==9|^U)&*@Ml{djj z{~q(Mcjgb0s_#(h7eD5A7O3%c4eP2ZQiJIoOCnAP?J1#*jkbDh0?Rd;ijE@pL@eK6+Th8*XrF5y&k?d1AWQ0JxDs~zo{N?jn8DmiWC9; zqtbKGW=#jQ#GN=QGV$RU#Fd=Vw)l6|a!@IZ7B3J**_X=kZ7HCitt-=9k*Qz4%NCzW zRg_6I<|eAn_n}ScirQU+|HQ z{N}E&jn6XamVPp{(Kk+|eFU>A>xXH<@;iZxj+Yk^fk{NzooLT>=C*p>K_3F39?GQ6 zC@mY70z#!AnTQrJDlN6xK`nPsD77}9&5_CkBKx5vd1*!mCruQN^oEiSkN**dxA&r* zV5>O=nJ7h=1gvg6GhrZT6}+u7Vg-|genFN-p>_L?SXWk~e$>lvvgB2GZt%rxlo;r{ zN+>%D7pEg0{2UTA*^WkYo=Ta^Uxnnv*^+UEGc0iMMsgfUCG#Lge(4H-_i{_mf`Rdo zlsz)lZ@5G^KG6bXx(cO-H?kn z|4eKlw~{E3I;sR`5MsXxK0^KvF{=@=B7WyRk{R6RA*anK?(N+o{UBZf($wAxQ?tZ# zBVcTI!DvSbx=aX=S}lN)7tP_`8GM964m20!;fXN&tf0u(Sex{=@4eMRHQ$@!L>@r8 zx?mc5Dv^mwD@z%&$_jNJam(TR!6{i+A@)M_Vib~iQjm@#jS>(>D%x9mqA>B)#K!8m zV?AQF)j#CZT4GY9Pt8%`{~yDCRG*}>KX`{x1Gh%@9;PnW8uteoUb1i}#@`VO#V7BwdpiLEAOQ3?c*H9ywRXlE|)7G2bqA9oAw=L!in zAI}=mD%?K)4*LbfzpCLMYVEnV8eSnKc|*83d%ppR0uWD1rw7VYYOj5yM~rkx2lOBV zHMe2r_Az92i`jH^#{$ihkC;Kf25aAxpgk{MNN+ZO?Q!BRF=NwioB@dOQxNN_4fKyQ z@CB|s#j;YN&_>~4Iv*laP{CInV$8AAVSLNDd4JeMxb(zW&5l21vAqNk!uK>0ZPhZ@x}-^;O6Yw{fs*sQR1g{1NGpwOhOqecG5VkFfJ zn4TMjFTH^mpvww=qe82pZZ4pHKqWV0G3C^4^d+O!23b!Sg&$y8L5`HxmcHOP+=y zQHuCV-ESc9gl@a8#TBz6yLfOpJFYVD2dD`J8T{~I!oIBS2Rsb#z|Ic9W-CYQ9fH9j zArB9Q;z3uh-Ke6XqBqC$2}NeD?zFGx9h(1*tvWnD?(gf1D8j}p`KI>P<8OZXUmvk| zWgrAvdU;)4BD3vJnOOhx{oBRVMY;cazy7x|3X6dD<){DW{H>9t%>Q4b3pgdUap|>6 z?W8|d%HLaw{_pet^W&>W@1>6_ISkZfmApgDX2V#~jDd2hqnD&8p#)4dyjDlAj+wFS|811{=2ZU~4NUfiw(>%1>$VJWkdhpc#XT-pHAAIPbl)nr zd*7HGF3VI!~1F?x1 zDi9m&K_lL$PPy(VN(gf(^*i6VxV_yw2)cuezCJNRAdtUrg%CnR{{!#qIsfwC{qdu; z6xq$~Em$`_o${KU+VThFs%-KiJa!B}-J;j$hEEkw-N|+QYqq%IaEqhaD^+~>MZk24 z@&?PT^8A@6cv^w-;vqwrM1PU&8^qq&L==nfjwo&PKSS<+^^1fw!yH%&J8+U|zza6* zUVeZ`=T$rtLB~@UZui z4e+4bzEaeABlhp=ir`$~j!jJLvQd=HMBu0x_eFp@E`&JIJq=i;)m{O!#SFUHY8!~l zN|1scEMimOb(K}5hzatxSI{Nj|MjL_=CpX^@@bM*p9)MFanxN@xLC1ftZAa;fmy;z zoX`Wr`ZiB;1o?~ya8S-_IqJ{1gaa7)s4Z%1#iawGOms-7g2^=AC)EBTDbGZb9G|3r zL!V*nhJAOXK=&GFQrn!Fbk~h68;0UJx1gZ=Hm5NfA)WDr(nwPRyL!f9f`~J^M^?{a+qE6P~~$_ z8WHq8DK<9kT`ew3J52NNb+nbYiY#kqaa0K#spu}!N=`{3H96zttD(Rbj0z-+ap@*8ua;(D4eDn-0u=~|~V*X>*UA6`2)DGJ2WDxr4#~Z4%-|h+* zLzE!-p+yV$EyNE~P+V~s?6ge+v=$j#-c{;qbCJaB8CIzT08xdg)~R+m^$J_vzi9hK z*lGKTw4b95e0};JtiK4gvsf>?Bsdo*3ffX0Si|pFWN~70-x7~ zT}wfoeTff7TFe=W_bIBZIN!# z-rjj&P=MR1QQ`Dtw_SVD6={8J_hJo0#t|bY>H26wf55G32P0Zi0Ad*nlEartK zn}e#W_rXnc7}tcu=N_#4gNqCz{)nIly<|dxf@?Sd*vJ5}lF=szk^6cY*{_Fi?OjMW>GEFDHCyg}8rmnV_Ic zA1iqhFF>aVqq~bRMZpv2(AM{L^?!y%T)p%Bx1SO;$khk(%~<3c2%osi+{owde8U0d zQm%+VZEQyN^_qoH-XThnl%e=sfTaz5ilQI4)vR@6`5B6r3?;D604)UH$e;f#(gOMG zg-eeofJoYF_{Rh`F}KSwo;P$5Qvfp58&-503DDwie7c24!n$Dv3pVoOKfmTiPPv@) zkB?IP5w@_)n-`4E^x|)%Xdu^mEgaK>4=KA@aRx2ni(WLj5w_+W#SMQ#j`l6I|LD&b zJ$+o&{Pba`@POOrz|G!h7MCb~r_|~lTWQ5bK?vb<`|{=H`1JlTTTXKT>&k)$pgPVn zua@f)2DgT_%}dknUNMU{83mI2D}QUc{%>qHqnaV2SV`;V35fo-4*s9HDOll)9Wc6@ z<7TkFVqz(K#He-)(aO!PJC%(MDxnFED#>-i(Bdk7&%wV1&&&H@pczlkz|c2+&T=P# z@wM8GSYM}cu{~VDu$i`MxxKl&sDE(dld<7Pi&boo2Md}Wm({G>VmIc{G8S>BoR2%r z>xcqAV-6u{3`bcYtmbp_W$SGR7S8$nWIZ-oNO!e`b@^#pLwNBtasQ)=(hK-O@`&f?p%zTJ^PNc)49aM6Lgk0)6GE zjROV#BS2(xA||HTQ`t1i<@q|=*^cQUo&E#gj#GV zUJjQLoSHYJ--oFQgxhtL+wb;?w9Nx*$2_256L1B1zlaR09WrnO?ZxyUBVy1|E zo+beyFX*icffyv(*aGY#BX~vIOH~UbI%%Nqj)gh=_cVn=3BpN@?mbSUr zHQ5HR?Fzeh?Mkvt%XEs0IKHwNv#Vszd`7*QtkU=lOZY#tG|Gc|#@JgysSf1C2i_Xx z-_h&x8>Sg+KirrI=u3y``^v7ZTUAX{(7gPL$KF7Kjp&)SwbIKHAr`+YE~e%wqd%|F zg?*U8r?A+tB3dhTlLa8g-}?OkCrWPL*vOOQg!Iniz+i3NIuO9lxHzC(NFyHx=tnDQ;o0VJ_-3m%sX^%t9X zk5o1wFPnEVSy=WuP`6zyIz3>$^di-eP18w_Z2wdqki<03CV<3o`8lrJ2=OrP-{-|y z@<+pr0r+I@n?^#b0@Or<{CP(or!3nnT`paDPNZ>+{DX zj*pS)2`rjtu(%S*sljLb6dVxod-8#*;0;D>y|9ZRY@dAYr#xS%Tb~%zOgR3Nz`E%I zqS9*O-~$Tnp1`ehoTDy`y`#5~4pwm?9*U+c+pJ%jn&~g>*LJl_oZoV_Y|ktbqJ_S| z{&Pec+ak_QhC;+0xqK}fe71e&cFP?y#&VG-SQQ>^6*TZ^y>B-;LX50MH#i!#I|=Bu zY=+WWk2Z{?GrVC`F1;5Q5};jA*v%O$z1!4jp}ecq$=`%>V)Wh8TZ@aGdIf)2;2by1 zj&LfmX0kt26Gb!uxd!tw+-Xfu1lY(}YMD{OPi6RoG!-+TLr=aeWknvm?3 zvclS#{ti3z*6SlrjGC#J_p2`=aZ&7dc8)agy1u<%&D6jQ)OKPTm3B_{y0_U82iVfM zyLp$^-Y?)x_;ox9DGqsc?3_)ixKu>S-F{_Fq6n_qW-^I3PSb2gM=Zd3~R z3O$MF_e9jwBZ;>u{@;vIp9D)Y)Zoj3loKc3Ux#xf&G!nVF`mDM2Il_UP=1g`VZqYKe(l|87zLYsFd(U!$cxJ9RGCCm zND54=<#x7T`2qYGV|p;CQlcL>A}6o33-NLr&WM2PK+-G?v7QSfb|pl8c4{BQnb zcYn6KuHJPjZlaZ>?m&HjJfQ!KViW~C0hhJw7Sp24fTc0|XDa>NepyDF7jmI2y8J?g zGA4xhbVu}8w+!~g{^&B`H4(neIaioOG3cCn50+; z9!r&zGgd-yrHIfnN@lCa^u-0eB(DtB_YSTP#?Gyl&L&Beev^aZiPryLV^c1tjjl@3Zdjcc16Z zUp&K^nX~uVd+oK}_g!oGb&rKtBo?VT@b2u(#vI*66W^SRvg;t|j%g!7{R)}}!t;}o zOEMTg&66D1pP*@ih#u0ZH7F-wq`bfh_J(YHJJS7m%QW zsL*G-14SCql%K@9QKGY!&t!GNUO#d;##4zVjhS$Ws%OE~AR-`L6(eVgyA@?zuAdDS z({2&4eF4p8HYb32uIU%7@{S9b(FQ~!QK$a1S*qAJ#aoKx7h!V7YgtHCxlviatok7DPG=Ej zjbsMbYbqWLiPg$r>hTAd7M%%Nm?=*D?A+!p8@kFCb!OIsg|A+u;>=L6@bP`byF{^PUJTVSOjt`XKUpJj{hEkLW9OGau&* zo;8i>fND>*M?Mh~)E$v>R>ev|;|1ECjg$7lq?t+SvJYcDjv+o=qZ_Fe^p9a83w$sX>sF!9E znOpO30_+hcKd&71d)|UfG9+Wbae`+uW2U!44-?7cW4}DZdt`z#+kAP)0SduMT>M&w z35flS?}z|}0Q7WP!--e%S$PK*JVJ1r2A#DaX8OJRMRy822%M9i*W}1JPn*Yj4o=_3 z?chC73{UiFD3Lv=WNm-x>O!QYV`&*=9J8K(SXCsn%OD+M6oJ!rh?J@wnvDhW8&WcAwp@7xEzD9Ta(%I%7^@9B@$o3p@LG7 z@PsmFU0!UO+m>963CfjgX04AD+2#XyTJH+fh2Hd`Jxm~mx*IAD@pq+3f2Z@;>q4V^ zjx_`7JFB!U09S}6v!rH(SQm|0uTAMJez7IeS1vU2UjEV~MmWXDvGXmc#8j#_-J2et z@m2LFiz^)GbBrG-`DEClyW0*HY`$VTh5o|CT1)h9>@XWhH+mev!N#A7-AKT6lduE) zQuZFOKA*}HT9Z=2>c~j7=hJ%;l_fUAarV9J5%+U9piTvW(-t(}EyOQWZPwCL>!<8+ z!3E1Er>7w4V;p|a4?i-kkJ>b0gOStg=}U>tidM1gl&3(Zxr1z9(3@RX{S|{IQX)i3 zO2dxasOJYzv0eVqmicF#jz&_gmPVT!*^r<}8}NR6fZI!I;Pe&K24BPPZQD?a&>Vj4 zg9~P5XI%6mTKsx$ShM^%WVF;lL7#Jad+FE#ECgq=fBJKefwggsW&h2&Lv=po`H^!+ zG5Sx=U08e+)8NYcJ80-+4D6Nn3D9NK4=AXbedBkT2EnUX{>)!vA|r8ucCmfGAi4OY zBn$-wg+LY+F|vuBojcrIiMv<)I_?E4182bw;m}~AF9&Vg@x>ZR3pPyT1gMt#NzOUe zUX+}oEp#zYf2*Pobw3<+IB)f(#fF!Il$BHT^9(4UqZkC#D-8i9f}VPmqdBLHM6|Tv zIs18A`4gfOEc5z4gp@Z^Jb!pb;4l)p3X~nUMcEVT%cJa>h4)LsHa3v$TdQmD8|ZHN zauY&Tf5lOXn$;+MH0Vz+BK;;R`aCPjYa$8^w%rRqF#KyG2uhk-LY^z%Z1P^qTp}vNji2Uvv<0K zOmcx%XO5eBIMF;DqY?s}dtT-BoP6Ziswwc8(*_v;)M#7=O?U-j+sJB^@4QP=rJkzd zZ6?f&c^4f74FT1=S;|PtM209+@N#E5C519bWB>)vKsHB(szS~}STBo+kW=#~cP38l z(srBLj&Oe>r@M<>07wcjcD$)9>=udNtpJVH`Ki4pR=+{Oq!NI#m@?lfF zGMFfcLA@p0va{`+Sv13gfOVt|S!*dDn%acbkUFvAy)PPj!5{EgaC@n%?8trEYrA|Q zKn)*^&!X2Ima*y;`HzVg}FdVc_QGm(70+54!i>uAXWauQ(2TW)N| zSJtH?m?Jnp7El(d{K90I_P0+ zBR{or5i+%!X_CrQoDcRwQYGgc`!mXf1TfE!c(odkf^lVBDadlD*29c*CXRa+@DG-C zPzrU{HQWBB8p|}SfE9)QlH_obo;bbXo&Xcx(d3uC@+OZQb^PZ;TNUQ--u5*>~<2#c_hh z40hapq2VUsD!rMlCn}9&n;wP9`rp7KCgza(a`OZap6-YS$v- zI+M=`yo<(Jb5q@Pq0UF1PTmGG4Zgv@B))~+7aauKztPuJsy1)l7DTi({YlIF6@yU; zN#=%!Vt97jSc1-c(U(Cfi;nE;y)QDls6{JzwR>%DQJ<|d+?g(OT)HAL%QRtHTD+8<^w5jbmT=#@PxJ$o0==v zxZPEr)Aq!Q4jPK^14Km#T0BE++S%Ury0FJf0Cw}4qmC*JC_=5xQ)y`E$2?1ntu5d> z%DJE$0vwS!CnQUht7loui#8Pt}JM_Th1s;)HYGcy9o#6$yRYjUOT1 zNKlQV`!e z*O_7w3p=^iekW+CwD|B0%YVFxa6X@Xdwi0uT1CMFd!Q?(U<#ktFhr5)>xQjR@ zD)Y%w7Nzww^z(*JDp$UxCnSxa#2^z~LO&;f-ux%b{D2Pt^@<;2zty3-CML+|TfA0R zrz*{dF1}YLU8=AynN23N0HzpIdCWIoOx2i=iO$b=s9b{B0}s*M(hjK;eSNx#OT4RF zc_@dCy{gJ$4*ja~wd|Ccw`eDiC;LOWc3ADg4j@ji$ZH=yVU}4JHi~%~seG%BJ^^{w za-6o%ONTX}__6)fku|%a%+E!CT%Dw0tc4)w;O34Lgb7AMzdf0&hh7Wo>gmA%8ecDQ zLIJ54uIP2~wB zBYXla=kWyze{7G@t{OpzM1o=IP~V+(o}}mZ(?$*9Czch;tCKZ2zkjc zeG#lhwMS3aF-q8hlP@@MvPkG)sx4O<{U^DlB3J5t^yp?U`WWRuWBav6$vx_RG6Da* z_k%Sqm=F>chPHTqIr?nQ`|2KVk}b8KzJ5Y{eCPF_pS<+FcBOw1_RpU`FE#_jgl*33 zP4_~d5Gd>Ekxl{&{Xeh$xd{ImX>S-0Fw97y&)(u&Dzyk_lAmMxaU)fa|It7EepAooAHMhJWCH)`RYP(#L9_-o{^sMKd`nD7 zAbBc&Z*YW3${lf$`sdx%D)9rt3Mp+JotsVWc7eY(H8AY>DWywZJx`Zkuy%f$alS!R zDb`mS1%30Lzy;xYd-^1rw{!T0nZ{4=6p+DS$6em03Oje^)22>6?D%lR;_(+3x2CZD zFCUG@GtZ*v6B>}jSscIFW*qP`x^W)h8M-LIo91n=qZ(jC!yf9%S(PPu>o}i zZ($C{>vkEv9JlQ?BdRcI(gCuo#2%g!7F+XCYceAVm8%#wej*wkZ>;o&89sYmXO&Y` z%_jhmJ?bO;!AbW=aY<*oY6PVBb5xh#XGKW1f`q6Zzx*uwmIVbizGW^jrL6XlnKWCT z&(=4_phQHwoRImIf9TPJeiP~*CT7fu;+yCe78a+cmF6u+K?{iNY(^fV@_~*3CK?)U zfdC0j_gOr48Z0t0GJ`6Mteg)2W8sUh{jW$@z9)x=lwj;kox)cApL*(aJ2gEUF7kvt z;Xu7tcuc}*affi|_b_pMRyB*u*k#i8j|qv?I7wav@(S;^YL{c@GirU@iA2ZGq`$`5 z4|W{U-x0x-qkedb&R8Lr8}hKgY#}(F-!Gxij%w2>-4oH>7+5Wo%Dgn}gmLOY+dT2-z<2;`|L~+ls1s><~3s|yFbN|o`n2d^xSdNh5#XpT)c*+ zF+i^H$6{Y*y#Y1nS7q@Tf?<>o1J#3HsjRQiX$*e+#15%0Gl0oreHXNz9nIoTWj!0V zN4N;|0X2_-xn9dBN%bCRr9-CNi~#D9AlPBzE0_A*@*Vdfucz`wz8R0EEgCXf*C5z^QoW3Xy zsH@_&cnWak_uI2}Z=af_RGa9Z7{RI>&;^d8I>^GPc93^|8zQJYN8t;U5^4+0M%h(> zti<};9>sZ!(!%hg9IeOKf^V+Af@QTbQheHiCih;{+@<1qV-fly-~>5fRNgk4kIp(e7UsiHwSqb_pLt8QrVd`8NVJ+@OGmkW!?% zJNeNa59aC{nD&&fWd~SW9Xxqf#JbXgdm?Fytf(B-(JQs24rWCZ(w41Ycu5Fg`n1)6 zfA5M*!Y?lh`#*775a!^Pi;FdL`&qWXr|>D&8N6`=6rapvaAV*zb;QRc_z?$_KMV2OZIk z+oIM=YSemA8-x$xE97YckLMWcWB;gHM{5g_bd7*5khLuujWBw44f_m^+PX+@=hc6~ zd7E^KP^`JmFPTXW8ieDnu;uc2PN^x~OLQJ6V*$9ueS5?^W`(T$+fAP46optUVv?$9 zBTGVaS7aDrr7 zgnaKn7Ib8>+B?a1=KB3mFN4*@$?E#0W{p=WsDmtn&x!;6eciaOD^1T0s-|>E6~r+l zT2=HUuRhi*{OKtJ{?c({GORZwN;5opFM-}%qhE4yQG=>we(W#Q5vUhkj6W2X{H*_- z72BNh>(DFKQsCu$>+u;(yGGye0f?+Z**%GCDX=ou7($XDP69zvMB#7Kf$%T?Z}1+H zuD4m2!pd=Ygp%3qAp)#GslxHrLiWaNf5$|ToD2QIbSC{PuS3>QJVM;##V z1S=7(6k(2T-XNVF8)eDr0t3p}TvoT4SS_XB(>8!zjNoB3Fpw@ci%Rm=3A+-ASpE)& zE@uC41kJfOeivsaRXKD8bK;TR5)aflJn4Icyv2Yd@p4vzW+6mEV)b7XkrufvG>1!H~}<|6|PY05UOJq99%L7VQ;U#9?%(MM!qF z{3<)J#t1cyd|bl2p&M>*G9{I1{%7SF)r zA4ikxzA>{Z>3$m<50UMtSXm>OnI>7LNG1FIBfAMpAHEe0D-F>79Yg$gO)sJK z5toV7v#!>sFp)v%bft)7hcb1oh5iYHb8Z00f!emc=U_)-XS48k%y;QlH+`!I1iy$@ z+?Ut07F~MmpCC!RwOcg9ui7Zz_;b^Nr7lC9-J6_zk!XhFhbac@UBiUeK zVLh`G*B{t~Fae;#wzs#3Kp={~&Gi*me(w(8uRd?)-rUB1Z)W!JzSKXCHbg7;x>Mwz zVH6O20YTnhA13~95!(O%A}JIK1zR2<`ClO!*gDbdQnu_Mh%dUe3_dq(gj{%ME}WU2 xYRR!}t>2Uqr^7li%oO9NX7ewPz=3R8f-B*CuHC0`eN~l%v{{V#0Emr^l literal 0 HcmV?d00001 diff --git a/src/interactions.h b/src/interactions.h index f969e458..ba715f1d 100644 --- a/src/interactions.h +++ b/src/interactions.h @@ -1,3 +1,4 @@ +// ray scattering functions #pragma once #include "intersections.h" @@ -50,7 +51,7 @@ glm::vec3 calculateRandomDirectionInHemisphere( * * The visual effect you want is to straight-up add the diffuse and specular * components. You can do this in a few ways. This logic also applies to - * combining other types of materias (such as refractive). + * combining other types of materials (such as refractive). * * - Always take an even (50/50) split between a each effect (a diffuse bounce * and a specular bounce), but divide the resulting color of either branch @@ -72,8 +73,29 @@ void scatterRay( glm::vec3 intersect, glm::vec3 normal, const Material &m, - thrust::default_random_engine &rng) { + thrust::default_random_engine &rng) +{ // TODO: implement this. // A basic implementation of pure-diffuse shading will just call the // calculateRandomDirectionInHemisphere defined above. + pathSegment.ray.origin = intersect + EPSILON * normal; + if (false) + { + // specular + glm::vec3 reflectedDir = glm::reflect(glm::normalize(pathSegment.ray.direction), + normal); + glm::vec3 reflectedColor = m.specular.color; + pathSegment.ray.direction = reflectedDir; + pathSegment.color *= reflectedColor; + } + else { + // diffuse + glm::vec3 diffuseDir = glm::normalize(calculateRandomDirectionInHemisphere(normal, rng)); + glm::vec3 diffuseColor = m.color; + pathSegment.ray.direction = diffuseDir; + pathSegment.color *= diffuseColor; + } + + pathSegment.color = glm::clamp(pathSegment.color, glm::vec3(0.0f), glm::vec3(1.0f)); + pathSegment.remainingBounces--; } diff --git a/src/intersections.h b/src/intersections.h index b1504071..33851257 100644 --- a/src/intersections.h +++ b/src/intersections.h @@ -1,3 +1,4 @@ +// ray intersection functions #pragma once #include @@ -22,7 +23,7 @@ __host__ __device__ inline unsigned int utilhash(unsigned int a) { // CHECKITOUT /** * Compute a point at parameter value `t` on ray `r`. - * Falls slightly short so that it doesn't intersect the object it's hitting. + * Falls slightly short so that it doesn't intersect the object it's hitting. (for shadow acne???) */ __host__ __device__ glm::vec3 getPointOnRay(Ray r, float t) { return r.origin + (t - .0001f) * glm::normalize(r.direction); diff --git a/src/main.cpp b/src/main.cpp index aa9269aa..47f45dab 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -94,6 +94,8 @@ void saveImage() { std::string filename = renderState->imageName; std::ostringstream ss; + // Every image will get a different filename based on current + // time on the author's machine ss << filename << "." << startTimeString << "." << samples << "samp"; filename = ss.str(); diff --git a/src/pathtrace.cu b/src/pathtrace.cu index b55d8980..b0fb94c1 100644 --- a/src/pathtrace.cu +++ b/src/pathtrace.cu @@ -5,6 +5,9 @@ #include #include +#include +// #include + #include "sceneStructs.h" #include "scene.h" #include "glm/glm.hpp" @@ -76,6 +79,8 @@ static ShadeableIntersection * dev_intersections = NULL; // TODO: static variables for device memory, any extra info you need, etc // ... +// initializes the path tracer state - it should copy scene data +// (e.g. geometry, materials) from `Scene`. void pathtraceInit(Scene *scene) { hst_scene = scene; const Camera &cam = hst_scene->state.camera; @@ -100,6 +105,7 @@ void pathtraceInit(Scene *scene) { checkCUDAError("pathtraceInit"); } +// frees memory allocated by `pathtraceInit` void pathtraceFree() { cudaFree(dev_image); // no-op if dev_image is null cudaFree(dev_paths); @@ -139,10 +145,6 @@ __global__ void generateRayFromCamera(Camera cam, int iter, int traceDepth, Path - cam.right * cam.pixelLength.x * ((float)x - (float)cam.resolution.x * 0.5f) - cam.up * cam.pixelLength.y * ((float)y - (float)cam.resolution.y * 0.5f) ); -#if 0 - float3 tempValue = make_float3(segment.ray.direction.x, segment.ray.direction.y, - segment.ray.direction.z); -#endif segment.pixelIndex = index; segment.remainingBounces = traceDepth; } @@ -214,6 +216,7 @@ __global__ void computeIntersections( intersections[path_index].t = t_min; intersections[path_index].materialId = geoms[hit_geom_index].materialid; intersections[path_index].surfaceNormal = normal; + intersections[path_index].intersectionPoint = intersect_point; } } } @@ -235,58 +238,46 @@ __global__ void shadeFakeMaterial ( , Material * materials ) { - int idx = blockIdx.x * blockDim.x + threadIdx.x; - if (idx < num_paths) - { - ShadeableIntersection intersection = shadeableIntersections[idx]; - if (intersection.t > 0.0f) { // if the intersection exists... - // Set up the RNG - // LOOK: this is how you use thrust's RNG! Please look at - // makeSeededRandomEngine as well. - thrust::default_random_engine rng = makeSeededRandomEngine(iter, idx, 0); - thrust::uniform_real_distribution u01(0, 1); - - Material material = materials[intersection.materialId]; - glm::vec3 materialColor = material.color; - // could use material.specular.color, etc - - // If the material indicates that the object was a light, "light" the ray - if (material.emittance > 0.0f) { - pathSegments[idx].color *= (materialColor * material.emittance); - } - // Otherwise, do some pseudo-lighting computation. This is actually more - // like what you would expect from shading in a rasterizer like OpenGL. - // TODO: replace this! you should be able to start with basically a one-liner - else { - glm::vec3 pointOfIntersect = pathSegments[idx].ray.evaluate(intersection.t); - scatterRay(pathSegments[idx], pointOfIntersect, intersection.surfaceNormal, - material, rng); - // -#if 0 - if (material.hasReflective) - { - - } - else { - } - // - Ray& thisRay = pathSegments[idx].ray; - glm::vec3& thisColor = pathSegments[idx].color; - int thisPixelIndex = pathSegments[idx].pixelIndex; - int thisRemainingBounces = pathSegments[idx].remainingBounces; - float lightTerm = glm::dot(intersection.surfaceNormal, glm::vec3(0.0f, 1.0f, 0.0f)); - pathSegments[idx].color *= (materialColor * lightTerm) * 0.3f + ((1.0f - intersection.t * 0.02f) * materialColor) * 0.7f; - pathSegments[idx].color *= u01(rng); // apply some noise because why not -#endif - } - // If there was no intersection, color the ray black. - // Lots of renderers use 4 channel color, RGBA, where A = alpha, often - // used for opacity, in which case they can indicate "no opacity". - // This can be useful for post-processing and image compositing. - } else { - pathSegments[idx].color = glm::vec3(0.0f); + int idx = blockIdx.x * blockDim.x + threadIdx.x; + if (idx < num_paths) + { + ShadeableIntersection intersection = shadeableIntersections[idx]; + if (intersection.t > 0.0f) { // if the intersection exists... + // Set up the RNG + // LOOK: this is how you use thrust's RNG! Please look at + // makeSeededRandomEngine as well. + // (iter, ray) has a unique random engine + thrust::default_random_engine rng = makeSeededRandomEngine(iter, idx, 0); + thrust::uniform_real_distribution u01(0, 1); + + Material material = materials[intersection.materialId]; + glm::vec3 materialColor = material.color; + // could use material.specular.color, etc + + // If the material indicates that the object was a light, "light" the ray + if (material.emittance > 0.0f) { + pathSegments[idx].color *= (materialColor * material.emittance); + pathSegments[idx].remainingBounces = 0; + } + // Otherwise, do some pseudo-lighting computation. This is actually more + // like what you would expect from shading in a rasterizer like OpenGL. + // TODO: replace this! you should be able to start with basically a one-liner + else { + scatterRay(pathSegments[idx], + intersection.intersectionPoint, + intersection.surfaceNormal, + material, + rng); + } + // If there was no intersection, color the ray black. + // Lots of renderers use 4 channel color, RGBA, where A = alpha, often + // used for opacity, in which case they can indicate "no opacity". + // This can be useful for post-processing and image compositing. + } else { + pathSegments[idx].color = glm::vec3(0.0f); + pathSegments[idx].remainingBounces = 0; + } } - } } // Add the current iteration's output to the overall image @@ -303,6 +294,7 @@ __global__ void finalGather(int nPaths, glm::vec3 * image, PathSegment * iterati + /////////////////////////////////////////////////////////////////////////// // Recap: @@ -335,7 +327,8 @@ __global__ void finalGather(int nPaths, glm::vec3 * image, PathSegment * iterati /** * Wrapper for the __global__ call that sets up the kernel calls and does a ton * of memory management - * Perform one iteration of path tracing + * performs one iteration of the rendering - + * it handles kernel launches, memory copies, transferring some data, etc. */ void pathtrace(uchar4 *pbo, int frame, int iter) { const int traceDepth = hst_scene->state.traceDepth; @@ -373,12 +366,10 @@ void pathtrace(uchar4 *pbo, int frame, int iter) { // --- PathSegment Tracing Stage --- // Shoot ray into scene, bounce between objects, push shading chunks - + // * For each depth: bool iterationComplete = false; while (!iterationComplete) { - // clean shading chunks - // observation: pixelcount needs to changed after stream compaction?? or not cudaMemset(dev_intersections, 0, pixelcount * sizeof(ShadeableIntersection)); // tracing @@ -411,11 +402,6 @@ void pathtrace(uchar4 *pbo, int frame, int iter) { // TODO: // --- Sort rays by material Stage --- - - - - - // TODO: // --- Shading Stage (will genereate new rays in shader(s) --- // * TODO: Shade the rays that intersected something or didn't bottom out. @@ -437,8 +423,8 @@ void pathtrace(uchar4 *pbo, int frame, int iter) { dev_paths, dev_materials ); - - + cudaDeviceSynchronize(); + // --- Stream Compaction Stage --- // * TODO: Stream compact away all of the terminated paths. @@ -449,9 +435,18 @@ void pathtrace(uchar4 *pbo, int frame, int iter) { // Ray terminates when: // There is no intersection // There is intersection, but it hits light - iterationComplete = true; // TODO: should be based off stream compaction results. + PathSegment* newEnd = thrust::stable_partition(thrust::device, dev_paths, dev_paths + num_paths, isTerminated()); + num_paths = newEnd - dev_paths; + if (num_paths > 0) { + iterationComplete = false; + } + else { + iterationComplete = true; + } } + num_paths = dev_path_end - dev_paths; + // * Finally, add this iteration's results to the image. This has been done // for you. // Assemble this iteration and apply it to the image diff --git a/src/sceneStructs.h b/src/sceneStructs.h index 21f65677..4f0aebeb 100644 --- a/src/sceneStructs.h +++ b/src/sceneStructs.h @@ -15,11 +15,6 @@ enum GeomType { struct Ray { glm::vec3 origin; glm::vec3 direction; - __host__ __device__ - glm::vec3 evaluate(float t) - { - return origin + t * direction; - } }; struct Geom { @@ -81,4 +76,14 @@ struct ShadeableIntersection { float t; glm::vec3 surfaceNormal; int materialId; + glm::vec3 intersectionPoint; }; + +struct isTerminated +{ + __host__ __device__ + bool operator()(const PathSegment& p) + { + return p.remainingBounces > 0; + } +}; \ No newline at end of file From f545aecf5593ac48599703100b808b075e3432bc Mon Sep 17 00:00:00 2001 From: "(Charles) Zixin Zhang" Date: Thu, 7 Oct 2021 20:07:12 -0400 Subject: [PATCH 06/18] a basic pathtracer --- src/interactions.h | 2 +- src/pathtrace.cu | 12 +++--------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/interactions.h b/src/interactions.h index ba715f1d..22884b32 100644 --- a/src/interactions.h +++ b/src/interactions.h @@ -79,7 +79,7 @@ void scatterRay( // A basic implementation of pure-diffuse shading will just call the // calculateRandomDirectionInHemisphere defined above. pathSegment.ray.origin = intersect + EPSILON * normal; - if (false) + if (m.hasReflective) { // specular glm::vec3 reflectedDir = glm::reflect(glm::normalize(pathSegment.ray.direction), diff --git a/src/pathtrace.cu b/src/pathtrace.cu index b0fb94c1..f8e1c0be 100644 --- a/src/pathtrace.cu +++ b/src/pathtrace.cu @@ -437,21 +437,15 @@ void pathtrace(uchar4 *pbo, int frame, int iter) { // There is intersection, but it hits light PathSegment* newEnd = thrust::stable_partition(thrust::device, dev_paths, dev_paths + num_paths, isTerminated()); num_paths = newEnd - dev_paths; - if (num_paths > 0) { - iterationComplete = false; - } - else { - iterationComplete = true; - } + iterationComplete = num_paths <= 0; } - num_paths = dev_path_end - dev_paths; - // * Finally, add this iteration's results to the image. This has been done // for you. // Assemble this iteration and apply it to the image dim3 numBlocksPixels = (pixelcount + blockSize1d - 1) / blockSize1d; - finalGather<<>>(num_paths, dev_image, dev_paths); + // original BASE CODE: finalGather<<>>(num_paths, dev_image, dev_paths); + finalGather<<>>(pixelcount, dev_image, dev_paths); /////////////////////////////////////////////////////////////////////////// From 996a0960c3a58c08c8ebedaa2c4d61bf12052883 Mon Sep 17 00:00:00 2001 From: "(Charles) Zixin Zhang" Date: Thu, 7 Oct 2021 20:42:21 -0400 Subject: [PATCH 07/18] Adding sort by material support --- README.md | 12 ++++++++++++ src/main.cpp | 7 +++++++ src/pathtrace.cu | 13 +++++++------ src/sceneStructs.h | 8 ++++++++ 4 files changed, 34 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 33164d01..c5e3406a 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,19 @@ project, and we will not be able to grade you without a good README. | Registers (```regsPerMultiprocessor```): 32-bit registers available per multiprocessor | 65536 | | Shared memory (```sharedMemPerMultiprocessor```): Shared memory available per multiprocessor in bytes | 102400 bytes | +1000 iteration took 55.934 seconds with sort by material +1000 iteration took 21 seconds without sort by material + + + +5000 iteration took 285.831 seconds with sort by material + +5000 iteration took 110.662 seconds. seconds without sort by material + + + +For cornell box, sorting by material didn't help that much. Bug diff --git a/src/main.cpp b/src/main.cpp index 47f45dab..d32083e2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -104,8 +104,11 @@ void saveImage() { //img.saveHDR(filename); // Save a Radiance HDR file } +clock_t start, stop; + void runCuda() { if (camchanged) { + start = clock(); iteration = 0; Camera &cam = renderState->camera; cameraPosition.x = zoom * sin(phi) * sin(theta); @@ -148,6 +151,10 @@ void runCuda() { saveImage(); pathtraceFree(); cudaDeviceReset(); + stop = clock(); + double timer_seconds = ((double)(stop - start)) / CLOCKS_PER_SEC; + std::cerr << "took " << timer_seconds << " seconds.\n"; + exit(EXIT_SUCCESS); } } diff --git a/src/pathtrace.cu b/src/pathtrace.cu index f8e1c0be..12f2c2b8 100644 --- a/src/pathtrace.cu +++ b/src/pathtrace.cu @@ -3,10 +3,8 @@ #include #include #include -#include - #include -// #include + #include "sceneStructs.h" #include "scene.h" @@ -17,6 +15,8 @@ #include "intersections.h" #include "interactions.h" +#define SORT_BY_MATERIAL 0 + #define ERRORCHECK 1 #define FILENAME (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) @@ -240,7 +240,7 @@ __global__ void shadeFakeMaterial ( { int idx = blockIdx.x * blockDim.x + threadIdx.x; if (idx < num_paths) - { + { ShadeableIntersection intersection = shadeableIntersections[idx]; if (intersection.t > 0.0f) { // if the intersection exists... // Set up the RNG @@ -401,7 +401,9 @@ void pathtrace(uchar4 *pbo, int frame, int iter) { // TODO: // --- Sort rays by material Stage --- - +#if SORT_BY_MATERIAL + thrust::sort_by_key(thrust::device, dev_intersections, dev_intersections + num_paths, dev_paths, sortMaterial()); +#endif // TODO: // --- Shading Stage (will genereate new rays in shader(s) --- // * TODO: Shade the rays that intersected something or didn't bottom out. @@ -423,7 +425,6 @@ void pathtrace(uchar4 *pbo, int frame, int iter) { dev_paths, dev_materials ); - cudaDeviceSynchronize(); // --- Stream Compaction Stage --- diff --git a/src/sceneStructs.h b/src/sceneStructs.h index 4f0aebeb..afd8414c 100644 --- a/src/sceneStructs.h +++ b/src/sceneStructs.h @@ -86,4 +86,12 @@ struct isTerminated { return p.remainingBounces > 0; } +}; + +struct sortMaterial +{ + __host__ __device__ + bool operator()(const ShadeableIntersection& a, const ShadeableIntersection& b) { + return a.materialId < b.materialId; + } }; \ No newline at end of file From 45514f6f50f5ab9310c68c3d00442262abcae0df Mon Sep 17 00:00:00 2001 From: "(Charles) Zixin Zhang" Date: Thu, 7 Oct 2021 21:26:34 -0400 Subject: [PATCH 08/18] Cahe the first bounce --- README.md | 4 ++ src/pathtrace.cu | 106 ++++++++++++++++++++++++++++++++++++----------- 2 files changed, 86 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index c5e3406a..1934078c 100644 --- a/README.md +++ b/README.md @@ -34,12 +34,16 @@ project, and we will not be able to grade you without a good README. 1000 iteration took 21 seconds without sort by material +1000 iteration took 21 seconds without sort by material with caching the first bounce + 5000 iteration took 285.831 seconds with sort by material 5000 iteration took 110.662 seconds. seconds without sort by material +5000 iteration took 104.159 seconds without sort by material with caching the first bounce + For cornell box, sorting by material didn't help that much. diff --git a/src/pathtrace.cu b/src/pathtrace.cu index 12f2c2b8..fe4d2c31 100644 --- a/src/pathtrace.cu +++ b/src/pathtrace.cu @@ -16,6 +16,7 @@ #include "interactions.h" #define SORT_BY_MATERIAL 0 +static bool useCachedFirstBounce = true; #define ERRORCHECK 1 @@ -76,6 +77,7 @@ static Geom * dev_geoms = NULL; static Material * dev_materials = NULL; static PathSegment * dev_paths = NULL; static ShadeableIntersection * dev_intersections = NULL; +static ShadeableIntersection* dev_intersections_first_bounce = NULL; // TODO: static variables for device memory, any extra info you need, etc // ... @@ -101,6 +103,10 @@ void pathtraceInit(Scene *scene) { cudaMemset(dev_intersections, 0, pixelcount * sizeof(ShadeableIntersection)); // TODO: initialize any extra device memeory you need + cudaMalloc(&dev_intersections_first_bounce, pixelcount * sizeof(ShadeableIntersection)); + cudaMemset(dev_intersections_first_bounce, 0, pixelcount * sizeof(ShadeableIntersection)); + + checkCUDAError("pathtraceInit"); } @@ -113,6 +119,7 @@ void pathtraceFree() { cudaFree(dev_materials); cudaFree(dev_intersections); // TODO: clean up any extra device memory you created + cudaFree(dev_intersections_first_bounce); checkCUDAError("pathtraceFree"); } @@ -370,33 +377,84 @@ void pathtrace(uchar4 *pbo, int frame, int iter) { // * For each depth: bool iterationComplete = false; while (!iterationComplete) { - cudaMemset(dev_intersections, 0, pixelcount * sizeof(ShadeableIntersection)); - // tracing // observation: num_paths most definitely needs to be changed after stream compaction dim3 numblocksPathSegmentTracing = (num_paths + blockSize1d - 1) / blockSize1d; - // * Compute an intersection in the scene for each path ray. - // A very naive version of this has been implemented for you, but feel - // free to add more primitives and/or a better algorithm. - // Currently, intersection distance is recorded as a parametric distance, - // t, or a "distance along the ray." t = -1.0 indicates no intersection. - // * Color is attenuated (multiplied) by reflections off of any object - computeIntersections <<>> ( - depth - , num_paths - , dev_paths - , dev_geoms - , hst_scene->geoms.size() - , dev_intersections - ); - // after this kernel, dev_intersections will be populated with pixelcount - // (640,000 by default)'s ShadableIntersection. - // Each ShadableIntersection contains: - // 1) t: -1 if no intersection. Others if intersection - // 2) surfaceNormal - // 3) materialId - checkCUDAError("trace one bounce"); - cudaDeviceSynchronize(); + if (useCachedFirstBounce) + { + bool firstBounceInFirstIteration = iter == 1 && depth == 0; + bool firstbounceInAnyIteration = iter != 1 && depth == 0; + if (firstBounceInFirstIteration) + { + cudaMemset(dev_intersections_first_bounce, 0, pixelcount * sizeof(ShadeableIntersection)); + computeIntersections << > > ( + depth + , num_paths + , dev_paths + , dev_geoms + , hst_scene->geoms.size() + , dev_intersections + ); + cudaMemcpy(dev_intersections_first_bounce, dev_intersections, + pixelcount * sizeof(ShadeableIntersection), cudaMemcpyDeviceToDevice); + } + else if(firstbounceInAnyIteration) + { + cudaMemcpy(dev_intersections, dev_intersections_first_bounce, + pixelcount * sizeof(ShadeableIntersection), cudaMemcpyDeviceToDevice); + } + else { + cudaMemset(dev_intersections, 0, pixelcount * sizeof(ShadeableIntersection)); + // * Compute an intersection in the scene for each path ray. + // A very naive version of this has been implemented for you, but feel + // free to add more primitives and/or a better algorithm. + // Currently, intersection distance is recorded as a parametric distance, + // t, or a "distance along the ray." t = -1.0 indicates no intersection. + // * Color is attenuated (multiplied) by reflections off of any object + computeIntersections << > > ( + depth + , num_paths + , dev_paths + , dev_geoms + , hst_scene->geoms.size() + , dev_intersections + ); + // after this kernel, dev_intersections will be populated with pixelcount + // (640,000 by default)'s ShadableIntersection. + // Each ShadableIntersection contains: + // 1) t: -1 if no intersection. Others if intersection + // 2) surfaceNormal + // 3) materialId + checkCUDAError("trace one bounce"); + cudaDeviceSynchronize(); + } + } + else { + cudaMemset(dev_intersections, 0, pixelcount * sizeof(ShadeableIntersection)); + // * Compute an intersection in the scene for each path ray. + // A very naive version of this has been implemented for you, but feel + // free to add more primitives and/or a better algorithm. + // Currently, intersection distance is recorded as a parametric distance, + // t, or a "distance along the ray." t = -1.0 indicates no intersection. + // * Color is attenuated (multiplied) by reflections off of any object + computeIntersections << > > ( + depth + , num_paths + , dev_paths + , dev_geoms + , hst_scene->geoms.size() + , dev_intersections + ); + // after this kernel, dev_intersections will be populated with pixelcount + // (640,000 by default)'s ShadableIntersection. + // Each ShadableIntersection contains: + // 1) t: -1 if no intersection. Others if intersection + // 2) surfaceNormal + // 3) materialId + checkCUDAError("trace one bounce"); + cudaDeviceSynchronize(); + } + depth++; // TODO: From 20846e2fdb62e68478c5523c38c00d46026233a1 Mon Sep 17 00:00:00 2001 From: "(Charles) Zixin Zhang" Date: Thu, 7 Oct 2021 21:40:25 -0400 Subject: [PATCH 09/18] Update README --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 1934078c..1e312704 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,8 @@ project, and we will not be able to grade you without a good README. | Registers (```regsPerMultiprocessor```): 32-bit registers available per multiprocessor | 65536 | | Shared memory (```sharedMemPerMultiprocessor```): Shared memory available per multiprocessor in bytes | 102400 bytes | +800x800 default cornell box: + 1000 iteration took 55.934 seconds with sort by material 1000 iteration took 21 seconds without sort by material @@ -46,6 +48,11 @@ project, and we will not be able to grade you without a good README. +Saved cornell.2021-10-07_21-32-24z.5000samp.png. +took 349.176 seconds. + + + For cornell box, sorting by material didn't help that much. Bug From 67081299e3e25ac30b18758ea536098c9c2a3ee5 Mon Sep 17 00:00:00 2001 From: "(Charles) Zixin Zhang" Date: Thu, 7 Oct 2021 21:40:38 -0400 Subject: [PATCH 10/18] Bigger Cornell Picture --- scenes/cornell.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scenes/cornell.txt b/scenes/cornell.txt index 83ff8202..32014c20 100644 --- a/scenes/cornell.txt +++ b/scenes/cornell.txt @@ -50,7 +50,7 @@ EMITTANCE 0 // Camera CAMERA -RES 800 800 +RES 1600 1600 FOVY 45 ITERATIONS 5000 DEPTH 8 From eee2dfb557249f3dade46f4b858e315ab6ed19f5 Mon Sep 17 00:00:00 2001 From: "(Charles) Zixin Zhang" Date: Thu, 7 Oct 2021 22:24:07 -0400 Subject: [PATCH 11/18] Added some useful macro --- src/utilities.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/utilities.h b/src/utilities.h index ea2c4807..99d48035 100644 --- a/src/utilities.h +++ b/src/utilities.h @@ -14,6 +14,30 @@ #define SQRT_OF_ONE_THIRD 0.5773502691896257645091487805019574556476f #define EPSILON 0.00001f +typedef glm::vec3 Color3f; +typedef glm::vec3 Point3f; +typedef glm::vec3 Normal3f; +typedef glm::vec2 Point2f; +typedef glm::ivec2 Point2i; +typedef glm::ivec3 Point3i; +typedef glm::vec3 Vector3f; +typedef glm::vec2 Vector2f; +typedef glm::ivec2 Vector2i; +typedef glm::mat4 Matrix4x4; +typedef glm::mat3 Matrix3x3; + +// A collection of preprocessor definitions to +// save time in writing out smart pointer syntax +#define uPtr std::unique_ptr +#define mkU std::make_unique +// Rewrite std::unique_ptr f = std::make_unique(5.f); +// as uPtr f = mkU(5.f); + +#define sPtr std::shared_ptr +#define mkS std::make_shared +// Rewrite std::shared_ptr f = std::make_shared(5.f); +// as sPtr f = mkS(5.f); + namespace utilityCore { extern float clamp(float f, float min, float max); extern bool replaceString(std::string& str, const std::string& from, const std::string& to); From 2cb29baa800ddd57f3f2f910808ea7749d5970e4 Mon Sep 17 00:00:00 2001 From: "(Charles) Zixin Zhang" Date: Fri, 8 Oct 2021 22:35:23 -0400 Subject: [PATCH 12/18] Create a ray class --- src/intersections.h | 14 +++----------- src/sceneStructs.h | 30 +++++++++++++++++++++++++++--- src/utilities.h | 16 ++++------------ 3 files changed, 34 insertions(+), 26 deletions(-) diff --git a/src/intersections.h b/src/intersections.h index 33851257..8ea283d4 100644 --- a/src/intersections.h +++ b/src/intersections.h @@ -21,14 +21,6 @@ __host__ __device__ inline unsigned int utilhash(unsigned int a) { } // CHECKITOUT -/** - * Compute a point at parameter value `t` on ray `r`. - * Falls slightly short so that it doesn't intersect the object it's hitting. (for shadow acne???) - */ -__host__ __device__ glm::vec3 getPointOnRay(Ray r, float t) { - return r.origin + (t - .0001f) * glm::normalize(r.direction); -} - /** * Multiplies a mat4 and a vec4 and returns a vec3 clipped from the vec4. */ @@ -83,7 +75,7 @@ __host__ __device__ float boxIntersectionTest(Geom box, Ray r, tmin_n = tmax_n; outside = false; } - intersectionPoint = multiplyMV(box.transform, glm::vec4(getPointOnRay(q, tmin), 1.0f)); + intersectionPoint = multiplyMV(box.transform, glm::vec4(q.evaluate(tmin), 1.0f)); normal = glm::normalize(multiplyMV(box.invTranspose, glm::vec4(tmin_n, 0.0f))); return glm::length(r.origin - intersectionPoint); } @@ -132,8 +124,8 @@ __host__ __device__ float sphereIntersectionTest(Geom sphere, Ray r, t = max(t1, t2); outside = false; } - - glm::vec3 objspaceIntersection = getPointOnRay(rt, t); + + glm::vec3 objspaceIntersection = rt.evaluate(t); intersectionPoint = multiplyMV(sphere.transform, glm::vec4(objspaceIntersection, 1.f)); normal = glm::normalize(multiplyMV(sphere.invTranspose, glm::vec4(objspaceIntersection, 0.f))); diff --git a/src/sceneStructs.h b/src/sceneStructs.h index afd8414c..07ee9ebe 100644 --- a/src/sceneStructs.h +++ b/src/sceneStructs.h @@ -4,6 +4,7 @@ #include #include #include "glm/glm.hpp" +#include "utilities.h" #define BACKGROUND_COLOR (glm::vec3(0.0f)) @@ -12,9 +13,32 @@ enum GeomType { CUBE, }; -struct Ray { - glm::vec3 origin; - glm::vec3 direction; +class Ray { +public: + __host__ __device__ Ray::Ray() + : origin(), direction() + {} + __host__ __device__ Ray::Ray(const Point3f& o, const Vector3f& d) + : origin(o), direction(d) + {} + + __host__ __device__ Point3f getOrigin() const + { + return origin; + } + + __host__ __device__ Vector3f getDirection() const + { + return direction; + } + + // Falls slightly short so that it doesn't intersect the object it's hitting. + __host__ __device__ Point3f evaluate(float t) { + return origin + (t - .0001f) * glm::normalize(direction); + } +public: + Point3f origin; + Vector3f direction; }; struct Geom { diff --git a/src/utilities.h b/src/utilities.h index 99d48035..76cd5ede 100644 --- a/src/utilities.h +++ b/src/utilities.h @@ -13,6 +13,10 @@ #define TWO_PI 6.2831853071795864769252867665590057683943f #define SQRT_OF_ONE_THIRD 0.5773502691896257645091487805019574556476f #define EPSILON 0.00001f +#define uPtr std::unique_ptr +#define mkU std::make_unique +#define sPtr std::shared_ptr +#define mkS std::make_shared typedef glm::vec3 Color3f; typedef glm::vec3 Point3f; @@ -26,18 +30,6 @@ typedef glm::ivec2 Vector2i; typedef glm::mat4 Matrix4x4; typedef glm::mat3 Matrix3x3; -// A collection of preprocessor definitions to -// save time in writing out smart pointer syntax -#define uPtr std::unique_ptr -#define mkU std::make_unique -// Rewrite std::unique_ptr f = std::make_unique(5.f); -// as uPtr f = mkU(5.f); - -#define sPtr std::shared_ptr -#define mkS std::make_shared -// Rewrite std::shared_ptr f = std::make_shared(5.f); -// as sPtr f = mkS(5.f); - namespace utilityCore { extern float clamp(float f, float min, float max); extern bool replaceString(std::string& str, const std::string& from, const std::string& to); From f68136557d35fde1c97a726bd795c9050882b5ef Mon Sep 17 00:00:00 2001 From: "(Charles) Zixin Zhang" Date: Sat, 9 Oct 2021 14:11:20 -0400 Subject: [PATCH 13/18] Before antialiasing --- README.md | 10 ++++++++++ scenes/cornell.txt | 6 +++--- scenes/sphere.txt | 2 +- src/pathtrace.cu | 31 ++++++++++++++++--------------- src/scene.cpp | 19 ++++++++++--------- src/sceneStructs.h | 7 ++++--- 6 files changed, 44 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 1e312704..9ef65e3e 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,16 @@ took 349.176 seconds. For cornell box, sorting by material didn't help that much. + + + + +Changes to scene files: + +- Use FOVYH for half angle vertical field of view + + + Bug 1. read access violation when using thrust::remove_if. Fix: use thrust::device as the first parameter to indicate the correct execution policy because dev_paths is in device memory diff --git a/scenes/cornell.txt b/scenes/cornell.txt index 32014c20..79f9a34d 100644 --- a/scenes/cornell.txt +++ b/scenes/cornell.txt @@ -50,8 +50,8 @@ EMITTANCE 0 // Camera CAMERA -RES 1600 1600 -FOVY 45 +RES 1920 1080 +FOVYH 45 ITERATIONS 5000 DEPTH 8 FILE cornell @@ -114,4 +114,4 @@ sphere material 4 TRANS -1 4 -1 ROTAT 0 0 0 -SCALE 3 3 3 +SCALE 3 3 3 \ No newline at end of file diff --git a/scenes/sphere.txt b/scenes/sphere.txt index a74b5458..a8221ccf 100644 --- a/scenes/sphere.txt +++ b/scenes/sphere.txt @@ -11,7 +11,7 @@ EMITTANCE 5 // Camera CAMERA RES 800 800 -FOVY 45 +FOVYH 45 ITERATIONS 5000 DEPTH 8 FILE sphere diff --git a/src/pathtrace.cu b/src/pathtrace.cu index fe4d2c31..3d774790 100644 --- a/src/pathtrace.cu +++ b/src/pathtrace.cu @@ -76,8 +76,8 @@ static glm::vec3 * dev_image = NULL; static Geom * dev_geoms = NULL; static Material * dev_materials = NULL; static PathSegment * dev_paths = NULL; -static ShadeableIntersection * dev_intersections = NULL; -static ShadeableIntersection* dev_intersections_first_bounce = NULL; +static HitRecord * dev_intersections = NULL; +static HitRecord* dev_intersections_first_bounce = NULL; // TODO: static variables for device memory, any extra info you need, etc // ... @@ -99,12 +99,12 @@ void pathtraceInit(Scene *scene) { cudaMalloc(&dev_materials, scene->materials.size() * sizeof(Material)); cudaMemcpy(dev_materials, scene->materials.data(), scene->materials.size() * sizeof(Material), cudaMemcpyHostToDevice); - cudaMalloc(&dev_intersections, pixelcount * sizeof(ShadeableIntersection)); - cudaMemset(dev_intersections, 0, pixelcount * sizeof(ShadeableIntersection)); + cudaMalloc(&dev_intersections, pixelcount * sizeof(HitRecord)); + cudaMemset(dev_intersections, 0, pixelcount * sizeof(HitRecord)); // TODO: initialize any extra device memeory you need - cudaMalloc(&dev_intersections_first_bounce, pixelcount * sizeof(ShadeableIntersection)); - cudaMemset(dev_intersections_first_bounce, 0, pixelcount * sizeof(ShadeableIntersection)); + cudaMalloc(&dev_intersections_first_bounce, pixelcount * sizeof(HitRecord)); + cudaMemset(dev_intersections_first_bounce, 0, pixelcount * sizeof(HitRecord)); @@ -137,6 +137,7 @@ void pathtraceFree() { */ __global__ void generateRayFromCamera(Camera cam, int iter, int traceDepth, PathSegment* pathSegments) { + // x and y are in screen space: [0, width] x [0, height] int x = (blockIdx.x * blockDim.x) + threadIdx.x; int y = (blockIdx.y * blockDim.y) + threadIdx.y; @@ -167,7 +168,7 @@ __global__ void computeIntersections( , PathSegment * pathSegments , Geom * geoms , int geoms_size - , ShadeableIntersection * intersections + , HitRecord * intersections ) { int path_index = blockIdx.x * blockDim.x + threadIdx.x; @@ -240,7 +241,7 @@ __global__ void computeIntersections( __global__ void shadeFakeMaterial ( int iter , int num_paths - , ShadeableIntersection * shadeableIntersections + , HitRecord * shadeableIntersections , PathSegment * pathSegments , Material * materials ) @@ -248,7 +249,7 @@ __global__ void shadeFakeMaterial ( int idx = blockIdx.x * blockDim.x + threadIdx.x; if (idx < num_paths) { - ShadeableIntersection intersection = shadeableIntersections[idx]; + HitRecord intersection = shadeableIntersections[idx]; if (intersection.t > 0.0f) { // if the intersection exists... // Set up the RNG // LOOK: this is how you use thrust's RNG! Please look at @@ -281,7 +282,7 @@ __global__ void shadeFakeMaterial ( // used for opacity, in which case they can indicate "no opacity". // This can be useful for post-processing and image compositing. } else { - pathSegments[idx].color = glm::vec3(0.0f); + pathSegments[idx].color = Color3f(0.f); pathSegments[idx].remainingBounces = 0; } } @@ -386,7 +387,7 @@ void pathtrace(uchar4 *pbo, int frame, int iter) { bool firstbounceInAnyIteration = iter != 1 && depth == 0; if (firstBounceInFirstIteration) { - cudaMemset(dev_intersections_first_bounce, 0, pixelcount * sizeof(ShadeableIntersection)); + cudaMemset(dev_intersections_first_bounce, 0, pixelcount * sizeof(HitRecord)); computeIntersections << > > ( depth , num_paths @@ -396,15 +397,15 @@ void pathtrace(uchar4 *pbo, int frame, int iter) { , dev_intersections ); cudaMemcpy(dev_intersections_first_bounce, dev_intersections, - pixelcount * sizeof(ShadeableIntersection), cudaMemcpyDeviceToDevice); + pixelcount * sizeof(HitRecord), cudaMemcpyDeviceToDevice); } else if(firstbounceInAnyIteration) { cudaMemcpy(dev_intersections, dev_intersections_first_bounce, - pixelcount * sizeof(ShadeableIntersection), cudaMemcpyDeviceToDevice); + pixelcount * sizeof(HitRecord), cudaMemcpyDeviceToDevice); } else { - cudaMemset(dev_intersections, 0, pixelcount * sizeof(ShadeableIntersection)); + cudaMemset(dev_intersections, 0, pixelcount * sizeof(HitRecord)); // * Compute an intersection in the scene for each path ray. // A very naive version of this has been implemented for you, but feel // free to add more primitives and/or a better algorithm. @@ -430,7 +431,7 @@ void pathtrace(uchar4 *pbo, int frame, int iter) { } } else { - cudaMemset(dev_intersections, 0, pixelcount * sizeof(ShadeableIntersection)); + cudaMemset(dev_intersections, 0, pixelcount * sizeof(HitRecord)); // * Compute an intersection in the scene for each path ray. // A very naive version of this has been implemented for you, but feel // free to add more primitives and/or a better algorithm. diff --git a/src/scene.cpp b/src/scene.cpp index 04d32f39..990cda52 100644 --- a/src/scene.cpp +++ b/src/scene.cpp @@ -94,7 +94,7 @@ int Scene::loadCamera() { cout << "Loading Camera ..." << endl; RenderState &state = this->state; Camera &camera = state.camera; - float fovy; + float fovyh; //load static properties for (int i = 0; i < 5; i++) { @@ -104,8 +104,8 @@ int Scene::loadCamera() { if (strcmp(tokens[0].c_str(), "RES") == 0) { camera.resolution.x = atoi(tokens[1].c_str()); camera.resolution.y = atoi(tokens[2].c_str()); - } else if (strcmp(tokens[0].c_str(), "FOVY") == 0) { - fovy = atof(tokens[1].c_str()); + } else if (strcmp(tokens[0].c_str(), "FOVYH") == 0) { + fovyh = atof(tokens[1].c_str()); } else if (strcmp(tokens[0].c_str(), "ITERATIONS") == 0) { state.iterations = atoi(tokens[1].c_str()); } else if (strcmp(tokens[0].c_str(), "DEPTH") == 0) { @@ -131,16 +131,17 @@ int Scene::loadCamera() { } //calculate fov based on resolution - float yscaled = tan(fovy * (PI / 180)); - float xscaled = (yscaled * camera.resolution.x) / camera.resolution.y; - float fovx = (atan(xscaled) * 180) / PI; - camera.fov = glm::vec2(fovx, fovy); + //assume |n| = 1. Following Games 101 convention. + float t = tan(fovyh * (PI / 180)); + float r = (t * camera.resolution.x) / camera.resolution.y; + float fovxh = (atan(r) * 180) / PI; + camera.fov = glm::vec2(fovxh, fovyh); camera.view = glm::normalize(camera.lookAt - camera.position); camera.right = glm::normalize(glm::cross(camera.view, camera.up)); // pixels are assumed to be in NDC -1 to 1 - camera.pixelLength = glm::vec2(2 * xscaled / (float)camera.resolution.x, - 2 * yscaled / (float)camera.resolution.y); + camera.pixelLength = glm::vec2(2 * r / (float)camera.resolution.x, + 2 * t / (float)camera.resolution.y); //set up render camera stuff int arraylen = camera.resolution.x * camera.resolution.y; diff --git a/src/sceneStructs.h b/src/sceneStructs.h index 07ee9ebe..cc3e4dfe 100644 --- a/src/sceneStructs.h +++ b/src/sceneStructs.h @@ -33,7 +33,7 @@ class Ray { } // Falls slightly short so that it doesn't intersect the object it's hitting. - __host__ __device__ Point3f evaluate(float t) { + __host__ __device__ Point3f evaluate(float t) const { return origin + (t - .0001f) * glm::normalize(direction); } public: @@ -96,13 +96,14 @@ struct PathSegment { // Use with a corresponding PathSegment to do: // 1) color contribution computation // 2) BSDF evaluation: generate a new ray -struct ShadeableIntersection { +struct HitRecord { float t; glm::vec3 surfaceNormal; int materialId; glm::vec3 intersectionPoint; }; + struct isTerminated { __host__ __device__ @@ -115,7 +116,7 @@ struct isTerminated struct sortMaterial { __host__ __device__ - bool operator()(const ShadeableIntersection& a, const ShadeableIntersection& b) { + bool operator()(const HitRecord& a, const HitRecord& b) { return a.materialId < b.materialId; } }; \ No newline at end of file From bbc8c0f69a283d4e7bfde6031de4daf713a28dd7 Mon Sep 17 00:00:00 2001 From: "(Charles) Zixin Zhang" Date: Sat, 9 Oct 2021 15:16:39 -0400 Subject: [PATCH 14/18] Add AA --- README.md | 20 ++++++++++++++++++++ img/AA.gif | Bin 0 -> 166525 bytes img/AA.png | Bin 0 -> 14622 bytes scenes/cornell.txt | 4 ++-- src/pathtrace.cu | 11 ++++++++--- 5 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 img/AA.gif create mode 100644 img/AA.png diff --git a/README.md b/README.md index 9ef65e3e..3859a2b7 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,26 @@ Changes to scene files: +Antialiasing: + +Without: Saved cornell.2021-10-09_14-24-58z.5000samp.png. +took 110.898 seconds. + +With: Saved cornell.2021-10-09_14-27-51z.5000samp.png. +took 110.509 seconds. + + + +## Anti-aliasing + +Visual comparision: + +![](img/AA.gif) + +Performance comparison: + +![](img/AA.png) + Bug 1. read access violation when using thrust::remove_if. Fix: use thrust::device as the first parameter to indicate the correct execution policy because dev_paths is in device memory diff --git a/img/AA.gif b/img/AA.gif new file mode 100644 index 0000000000000000000000000000000000000000..7555d7cd35ed455f3bb77f701832eca43fbb0b31 GIT binary patch literal 166525 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