From 6b5bcd70e028a8203cb139c9c6bad5bc1e9be6c9 Mon Sep 17 00:00:00 2001 From: clach Date: Tue, 17 Sep 2019 04:53:53 -0400 Subject: [PATCH 01/12] stream compaction done, character recognition WIP --- .../character_recognition/CMakeLists.txt | 2 +- .../character_recognition/common.h | 2 + .../character_recognition/mlp.cu | 456 +++++++++++++++++- .../character_recognition/mlp.h | 15 + Project2-Character-Recognition/src/main.cpp | 208 ++++---- Project2-Stream-Compaction/src/main.cpp | 20 +- .../src/testing_helpers.hpp | 6 + .../stream_compaction/CMakeLists.txt | 2 +- .../stream_compaction/common.cu | 17 +- .../stream_compaction/common.h | 2 + .../stream_compaction/cpu.cu | 65 ++- .../stream_compaction/efficient.cu | 165 ++++++- .../stream_compaction/naive.cu | 63 ++- .../stream_compaction/thrust.cu | 23 +- 14 files changed, 885 insertions(+), 161 deletions(-) diff --git a/Project2-Character-Recognition/character_recognition/CMakeLists.txt b/Project2-Character-Recognition/character_recognition/CMakeLists.txt index 7446175..c5e28b0 100644 --- a/Project2-Character-Recognition/character_recognition/CMakeLists.txt +++ b/Project2-Character-Recognition/character_recognition/CMakeLists.txt @@ -7,5 +7,5 @@ set(SOURCE_FILES cuda_add_library(character_recognition ${SOURCE_FILES} - OPTIONS -arch=sm_20 + OPTIONS -arch=sm_75 ) diff --git a/Project2-Character-Recognition/character_recognition/common.h b/Project2-Character-Recognition/character_recognition/common.h index 6aede64..f7a42e0 100644 --- a/Project2-Character-Recognition/character_recognition/common.h +++ b/Project2-Character-Recognition/character_recognition/common.h @@ -10,6 +10,8 @@ #include #include +#define blockSize 256 + #define FILENAME (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) #define checkCUDAError(msg) checkCUDAErrorFn(msg, FILENAME, __LINE__) diff --git a/Project2-Character-Recognition/character_recognition/mlp.cu b/Project2-Character-Recognition/character_recognition/mlp.cu index 5a3ed7f..543cba4 100644 --- a/Project2-Character-Recognition/character_recognition/mlp.cu +++ b/Project2-Character-Recognition/character_recognition/mlp.cu @@ -2,6 +2,15 @@ #include #include "common.h" #include "mlp.h" +#include +#include +#include +#include +#include +#include +#include + +#define EPSILON 0.0001 namespace CharacterRecognition { using Common::PerformanceTimer; @@ -10,18 +19,455 @@ namespace CharacterRecognition { static PerformanceTimer timer; return timer; } + + inline int ilog2(int x) { + int lg = 0; + while (x >>= 1) { + ++lg; + } + return lg; + } + + inline int ilog2ceil(int x) { + return x == 1 ? 0 : ilog2(x - 1) + 1; + } + + __host__ __device__ unsigned int hash(unsigned int a) { + a = (a + 0x7ed55d16) + (a << 12); + a = (a ^ 0xc761c23c) ^ (a >> 19); + a = (a + 0x165667b1) + (a << 5); + a = (a + 0xd3a2646c) ^ (a << 9); + a = (a + 0xfd7046c5) + (a << 3); + a = (a ^ 0xb55a4f09) ^ (a >> 16); + return a; + } + + __host__ __device__ float generateRandom(float time, int index) { + thrust::default_random_engine rng(hash((int)(index * time))); + thrust::uniform_real_distribution unitDistrib(0, 1); + + return (float)unitDistrib(rng); + } + + // compute random float value between 0 and 1 + __global__ void kernRandom(int n, int time, float* out) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + out[index] = generateRandom(time, index); + } + + __global__ void kernComputeLayerSum2(int n, int inCount, int outCount, float *in, float *out, float *weights) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + //int inIndex = floor(index / outCount); + int inIndex = index / outCount; + int outIndex = index - (inIndex * outCount); + + out[outIndex] += in[inIndex] * weights[index]; + } + + // per OUTPUT + // numHidden, dev_hiddenLayer, numInput, dev_input, dev_weights, 0 + // 1, dev_output, numHidden, dev_hiddenLayer, dev_weights, numWeights1s + __global__ void kernComputeLayerSum(int n, float *out, int inCount, float *in, float *weights, int weightsOffset) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + float sum = 0.0; + for (int i = 0; i < inCount; i++) { + sum += in[i] * weights[index + (i * n) + weightsOffset]; + } + + out[index] = sum; + } - // TODO: __global__ + __host__ __device__ float activationFxn(float x) { + // activation function: f(x) = 1 / (1 + e^-x) + return (1.0 / (1.0 + exp(-x))); + } + + __global__ void kernComputeActivationFxn(int n, float *in) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + in[index] = activationFxn(in[index]); + } + + __global__ void kernComputePartialDerivativeLayer1(int n, float *outDerivatives, float *weights, + int numWeights1, float *input, int numHidden, float *hiddenOutput, float output, float expected) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + int inputIndex = index / numHidden; + int hiddenIndex = index % numHidden; + float hiddenActivation = activationFxn(hiddenOutput[hiddenIndex]); + float outputActivation = activationFxn(output); + + float partialDerivative = -input[inputIndex] * hiddenActivation * (1.0 - hiddenActivation) * + (expected - output) * outputActivation * (1.0 - outputActivation) * weights[numWeights1 + hiddenIndex]; + + outDerivatives[index] = partialDerivative; + } + + __global__ void kernComputePartialDerivativeLayer2(int n, float *outDerivatives, float *weights, + int numWeights1, float *input, int numHidden, float *hiddenOutput, float output, float expected) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + float outputActivation = activationFxn(output); + float partialDerivative = -(expected - output) * outputActivation * (1.0 - outputActivation) * hiddenOutput[index]; + + outDerivatives[numWeights1 + index] = partialDerivative; + } + + void getWeights(int numWeights, float *weights, bool training) { + if (training) { + float *dev_weights; + cudaMalloc((void**)&dev_weights, numWeights * sizeof(float)); + checkCUDAError("cudaMalloc dev_weights failed!"); + + // fill weights with random numbers between 0 and 1 + dim3 fullBlocksPerGrid((numWeights + blockSize - 1) / blockSize); + kernRandom<<>>(numWeights, 1, dev_weights); + checkCUDAError("kernRandom failed!"); + + // copy weights back to host + cudaMemcpy(weights, dev_weights, numWeights * sizeof(float), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy weights dev_weights failed!"); + + // TODO: REMOVE LATER + /* + weights[0] = 10.1; + weights[1] = 0.9; + weights[2] = 20.0; + weights[3] = 0.87; + weights[4] = 41.0; + weights[5] = -54.0;*/ + + cudaFree(dev_weights); + checkCUDAError("cudaFree dev_weights failed!"); + } + else { + // pull weights from txt file + // TODO + } + } + + __global__ void kernScale(int n, float *buffer, float scale) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + buffer[index] = scale * buffer[index]; + } + + __global__ void kernSumWeights(int n, float *allWeightsDerivatives, int numWeights) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + } + + __global__ void kernScanUpsweep(int n, int iteration, float *buffer) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + int power1 = ceil(pow(2.0, double(iteration + 1))); + if (index % power1 == 0) { + int power2 = ceil(pow(2.0, double(iteration))); + buffer[index + power1 - 1] += buffer[index + power2 - 1]; + } + } + + // finds the next power of 2 greater than or equal to n + int nextPowerOfTwo(int n) { + if (n && !(n & (n - 1))) + return n; + + int count = 0; + while (n != 0) { + n >>= 1; + count++; + } + + return 1 << count; + } + + __global__ void kernModifyWeights(int n, float *weights, float *allWeightsErrors, int offset) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + weights[index] += allWeightsErrors[offset * index + offset]; + } + + void adjustWeights(int numTotalInput, int numWeights, float *weights, std::vector allWeightsDerivatives, float error) { + int numTotalPowerOf2 = nextPowerOfTwo(numTotalInput); + + // reorganize all weights derivatives to be in one buffer + // buffer with zero's so it can be used in scan upsweep + float *allWeightsDerivativesShuffled = new float[numTotalPowerOf2 * numWeights]; + for (int i = 0; i < numTotalInput; i++) { + for (int j = 0; j < numWeights; j++) { + allWeightsDerivativesShuffled[j * numTotalPowerOf2 + i] = allWeightsDerivatives[i][j]; + } + } + for (int i = numTotalInput; i < numTotalPowerOf2; i++) { + for (int j = 0; j < numWeights; j++) { + allWeightsDerivativesShuffled[j * numTotalPowerOf2 + i] = allWeightsDerivatives[i][j]; + } + } + + + float *dev_allWeightsDerivatives; + cudaMalloc((void**)&dev_allWeightsDerivatives, (numTotalPowerOf2 * numWeights) * sizeof(float)); + checkCUDAError("cudaMalloc dev_allWeightsDerivatives failed!"); + + cudaMemcpy(dev_allWeightsDerivatives, allWeightsDerivativesShuffled, (numTotalPowerOf2 * numWeights) * sizeof(float), cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy dev_allWeightsDerivatives allWeightsDerivativesShuffled failed!"); + + float *dev_weights; + cudaMalloc((void**)&dev_weights, numWeights * sizeof(float)); + checkCUDAError("cudaMalloc dev_weights failed!"); + + cudaMemcpy(dev_weights, weights, numWeights * sizeof(float), cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy dev_weights weights failed!"); + + // for each weight derivative, compute delta weight + float lambda = -error / 5.0; + dim3 gridSize = dim3(((numTotalPowerOf2 * numWeights) + blockSize - 1) / blockSize, 1, 1); + kernScale<<>>(numTotalPowerOf2 * numWeights, dev_allWeightsDerivatives, lambda); + checkCUDAError("kernScale failed!"); + + cudaMemcpy(allWeightsDerivativesShuffled, dev_allWeightsDerivatives, (numTotalPowerOf2 * numWeights) * sizeof(float), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy dev_allWeightsDerivatives allWeightsDerivativesShuffled failed!"); + + // sum delta weights over all test input for a given weight + gridSize = dim3(((numTotalPowerOf2 * numWeights) + blockSize - 1) / blockSize, 1, 1); + for (int d = 0; d < ilog2ceil(numTotalPowerOf2); d++) { + kernScanUpsweep<<>>(numTotalPowerOf2 * numWeights, d, dev_allWeightsDerivatives); + checkCUDAError("kernScanUpsweep failed!"); + } + + cudaMemcpy(allWeightsDerivativesShuffled, dev_allWeightsDerivatives, (numTotalPowerOf2 * numWeights) * sizeof(float), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy dev_allWeightsDerivatives allWeightsDerivativesShuffled failed!"); + + // add delta weights to weights + gridSize = dim3((numWeights + blockSize - 1) / blockSize, 1, 1); + kernModifyWeights<<>>(numWeights, dev_weights, dev_allWeightsDerivatives, numTotalPowerOf2); + checkCUDAError("kernModifyWeights failed!"); + + // copy weights back to host + cudaMemcpy(weights, dev_weights, numWeights * sizeof(float), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy weights dev_weights failed!"); + + cudaFree(dev_allWeightsDerivatives); + cudaFree(dev_weights); + checkCUDAError("cudaFree failed!"); + + } /** * Example of use case (follow how you did it in stream compaction) */ /*void scan(int n, int *odata, const int *idata) { timer().startGpuTimer(); - // TODO - timer().endGpuTimer(); - } - */ + // TODO + timer().endGpuTimer(); + } + */ +float runOneInput(int numInput, int numHidden, const float *input, const float *weights, float *weightDerivatives, float expected, bool training) { + int numWeights1 = numInput * numHidden; + int numWeights2 = numHidden; + + float *dev_input; + float *dev_hiddenLayer; + float *dev_output; + float *dev_weights; + float *dev_weightDerivatives; + + // malloc device buffers + cudaMalloc((void**)&dev_input, numInput * sizeof(float)); + checkCUDAError("cudaMalloc dev_input failed!"); + + cudaMalloc((void**)&dev_hiddenLayer, numHidden * sizeof(float)); + checkCUDAError("cudaMalloc dev_hiddenLayer failed!"); + + cudaMalloc((void**)&dev_output, numHidden * sizeof(float)); + checkCUDAError("cudaMalloc dev_output failed!"); + + cudaMalloc((void**)&dev_weights, (numWeights1 + numWeights2) * sizeof(float)); + checkCUDAError("cudaMalloc dev_weights failed!"); + + cudaMalloc((void**)&dev_weightDerivatives, (numWeights1 + numWeights2) * sizeof(float)); + checkCUDAError("cudaMalloc dev_weightsError failed!"); + + // copy weights from host to device + cudaMemcpy(dev_weights, weights, (numWeights1 + numWeights2) * sizeof(float), cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy dev_weights weights failed!"); + + // copy input from host to device + cudaMemcpy(dev_input, input, numInput * sizeof(float), cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy dev_input input failed!"); + + // compute first layer summation + dim3 gridSize = dim3((numHidden + blockSize - 1) / blockSize, 1, 1); + kernComputeLayerSum<<>>(numHidden, dev_hiddenLayer, numInput, dev_input, dev_weights, 0); + checkCUDAError("kernComputeLayerSum failed!"); + + // DEBUG + float *test = new float[6]; + cudaMemcpy(test, dev_hiddenLayer, numHidden * sizeof(float), cudaMemcpyDeviceToHost); + + // compute result of hidden layer (activation function) + gridSize = dim3((numHidden + blockSize - 1) / blockSize, 1, 1); + kernComputeActivationFxn<<>>(numHidden, dev_hiddenLayer); + checkCUDAError("kernComputeActivationFxn failed!"); + + // DEBUG + cudaMemcpy(test, dev_hiddenLayer, numHidden * sizeof(float), cudaMemcpyDeviceToHost); + + // compute second layer summation + // TODO this is one thread + gridSize = dim3((1 + blockSize - 1) / blockSize, 1, 1); + kernComputeLayerSum<<>>(1, dev_output, numHidden, dev_hiddenLayer, dev_weights, numWeights1); + checkCUDAError("kernComputeLayerSum failed!"); + + cudaMemcpy(test, dev_output, 1 * sizeof(float), cudaMemcpyDeviceToHost); + + // compute activation function of output layer node + float output; + cudaMemcpy(&output, dev_output, 1 * sizeof(float), cudaMemcpyDeviceToHost); + output = activationFxn(output); + + // if training, compute partial derivatives for error/weight + if (training) { + // first layer weights + gridSize = dim3((numWeights1 + blockSize - 1) / blockSize, 1, 1); + kernComputePartialDerivativeLayer1<<>>(numWeights1, dev_weightDerivatives, dev_weights, numWeights1, + dev_input, numHidden, dev_hiddenLayer, output, expected); + checkCUDAError("kernComputePartialDerivativeLayer1 failed!"); + + // second layer weights + gridSize = dim3((numWeights2 + blockSize - 1) / blockSize, 1, 1); + kernComputePartialDerivativeLayer2<<>>(numWeights2, dev_weightDerivatives, dev_weights, numWeights1, + dev_input, numHidden, dev_hiddenLayer, output, expected); + checkCUDAError("kernComputePartialDerivativeLayer2 failed!"); + + // copy derivatives to host + cudaMemcpy(weightDerivatives, dev_weightDerivatives, (numWeights1 + numWeights2) * sizeof(float), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy weightDerivatives dev_weightDerivatives failed!"); + } + + cudaFree(dev_input); + cudaFree(dev_hiddenLayer); + cudaFree(dev_output); + cudaFree(dev_weights); + cudaFree(dev_weightDerivatives); + checkCUDAError("cudaFree failed!"); + + // return square of difference + return (output - expected) * (output - expected); +} + +void train(int numInput, std::vector inputs, std::vector expected) { + int numTotalInput = inputs.size(); + + // determine how many nodes in hidden layer (average of # of nodes in input and # of nodes in output) + int numHidden = ceil((numInput + 1.0) / 2.0); + + // determine number of weights in all layers + int numWeights = (numInput * numHidden) + numHidden; + + // get weights + float *weights = new float[numWeights]; + getWeights(numWeights, weights, true); + + // create weight errors + std::vector allWeightErrors; + for (int i = 0; i < numTotalInput; i++) { + float *weightErrors = new float[numWeights]; + allWeightErrors.push_back(weightErrors); + } + + float totalError; + + while (true) { + totalError = 0.f; + // train on each input + for (int i = 0; i < numTotalInput; i++) { + float *in = inputs[i]; + totalError += runOneInput(numInput, numHidden, in, weights, allWeightErrors[i], expected[i], true); + } + totalError /= 2.f; + + if (totalError < EPSILON) { + // finished training + // save weights to txt file + std::ofstream weightsFile; + weightsFile.open("../weights.txt"); + for (int i = 0; i < numWeights; i++) { + float weight = weights[i]; + weightsFile << weight; + weightsFile << "\n"; + } + weightsFile.close(); + break; // break while loop + } + else { + adjustWeights(numTotalInput, numWeights, weights, allWeightErrors, totalError); + } + } + + delete[] weights; + + for (int i = 0; i < numTotalInput; i++) { + delete[] allWeightErrors[i]; + } +} + + void run() { + // get input + std::vector inputs; + std::vector expected; + int numInput; + + // determine how many nodes in hidden layer (average of # of nodes in input and # of nodes in output) + int numHidden = (numInput + 1.0) / 2.0; + + // determine number of weights in all layers + int numWeights = (numInput * numHidden) + numHidden; + + // get weights + float* weights = new float[numWeights]; + getWeights(numWeights, weights, false); + + float totalError = 0.f; + for (int i = 0; i < inputs.size(); i++) { + float *in = inputs[i]; + float* weightDerivatives = new float[0]; + totalError += runOneInput(numInput, numHidden, in, weights, weightDerivatives, expected[i], false); + } + + delete(weights); + } // TODO: implement required elements for MLP sections 1 and 2 here } diff --git a/Project2-Character-Recognition/character_recognition/mlp.h b/Project2-Character-Recognition/character_recognition/mlp.h index 2096228..4af4e07 100644 --- a/Project2-Character-Recognition/character_recognition/mlp.h +++ b/Project2-Character-Recognition/character_recognition/mlp.h @@ -1,9 +1,24 @@ #pragma once #include "common.h" +#include namespace CharacterRecognition { Common::PerformanceTimer& timer(); // TODO: implement required elements for MLP sections 1 and 2 here + //void getWeights(int numWeights, float *weights, bool training); + + //float runOneInput(int numInput, int numHidden, const float *input, const float *weights, float *weightsErrors, float expected, bool training); + + //void adjustWeights(int numWeights, float *weights); + + + + + void train(int numInput, std::vector inputs, std::vector expected); + + void run(); + + } diff --git a/Project2-Character-Recognition/src/main.cpp b/Project2-Character-Recognition/src/main.cpp index 11dd534..2c644de 100644 --- a/Project2-Character-Recognition/src/main.cpp +++ b/Project2-Character-Recognition/src/main.cpp @@ -10,6 +10,11 @@ #include #include #include "testing_helpers.hpp" +#include +#include +#include +#include +#include const int SIZE = 1 << 8; // feel free to change the size of array const int NPOT = SIZE - 3; // Non-Power-Of-Two @@ -17,136 +22,87 @@ int *a = new int[SIZE]; int *b = new int[SIZE]; int *c = new int[SIZE]; +#define training 1 + int main(int argc, char* argv[]) { - // Scan tests - printf("\n"); - printf("****************\n"); - printf("** SCAN TESTS **\n"); - printf("****************\n"); - - genArray(SIZE - 1, a, 50); // Leave a 0 at the end to test that edge case - a[SIZE - 1] = 0; - printArray(SIZE, a, true); - - // initialize b using StreamCompaction::CPU::scan you implement - // We use b for further comparison. Make sure your StreamCompaction::CPU::scan is correct. - // At first all cases passed because b && c are all zeroes. - zeroArray(SIZE, b); - printDesc("cpu scan, power-of-two"); - StreamCompaction::CPU::scan(SIZE, b, a); - printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); - printArray(SIZE, b, true); - - zeroArray(SIZE, c); - printDesc("cpu scan, non-power-of-two"); - StreamCompaction::CPU::scan(NPOT, c, a); - printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); - printArray(NPOT, b, true); - printCmpResult(NPOT, b, c); - - zeroArray(SIZE, c); - printDesc("naive scan, power-of-two"); - StreamCompaction::Naive::scan(SIZE, c, a); - printElapsedTime(StreamCompaction::Naive::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(SIZE, c, true); - printCmpResult(SIZE, b, c); - - /* For bug-finding only: Array of 1s to help find bugs in stream compaction or scan - onesArray(SIZE, c); - printDesc("1s array for finding bugs"); - StreamCompaction::Naive::scan(SIZE, c, a); - printArray(SIZE, c, true); */ - - zeroArray(SIZE, c); - printDesc("naive scan, non-power-of-two"); - StreamCompaction::Naive::scan(NPOT, c, a); - printElapsedTime(StreamCompaction::Naive::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(SIZE, c, true); - printCmpResult(NPOT, b, c); - - zeroArray(SIZE, c); - printDesc("work-efficient scan, power-of-two"); - StreamCompaction::Efficient::scan(SIZE, c, a); - printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(SIZE, c, true); - printCmpResult(SIZE, b, c); - - zeroArray(SIZE, c); - printDesc("work-efficient scan, non-power-of-two"); - StreamCompaction::Efficient::scan(NPOT, c, a); - printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(NPOT, c, true); - printCmpResult(NPOT, b, c); - - zeroArray(SIZE, c); - printDesc("thrust scan, power-of-two"); - StreamCompaction::Thrust::scan(SIZE, c, a); - printElapsedTime(StreamCompaction::Thrust::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(SIZE, c, true); - printCmpResult(SIZE, b, c); - - zeroArray(SIZE, c); - printDesc("thrust scan, non-power-of-two"); - StreamCompaction::Thrust::scan(NPOT, c, a); - printElapsedTime(StreamCompaction::Thrust::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(NPOT, c, true); - printCmpResult(NPOT, b, c); + printf("\n"); + printf("*********************************\n"); + printf("*********** XOR TESTS ***********\n"); + printf("*********************************\n"); + + int numTotalInput = 4; + + std::vector inputs; + std::vector expected; + const int numInputXOR = 2; + + float input1[numInputXOR] = { 0, 0 }; + float input2[numInputXOR] = { 0, 1 }; + float input3[numInputXOR] = { 1, 0 }; + float input4[numInputXOR] = { 1, 1 }; + inputs.push_back(input1); + inputs.push_back(input2); + inputs.push_back(input3); + inputs.push_back(input4); + + expected.push_back(0); + expected.push_back(1); + expected.push_back(1); + expected.push_back(0); + + CharacterRecognition::train(numInputXOR, inputs, expected); + + for (int i = 0; i < numTotalInput; i++) { + delete[] inputs[i]; + } + printf("\n"); - printf("*****************************\n"); - printf("** STREAM COMPACTION TESTS **\n"); - printf("*****************************\n"); - - // Compaction tests - - genArray(SIZE - 1, a, 4); // Leave a 0 at the end to test that edge case - a[SIZE - 1] = 0; - printArray(SIZE, a, true); - - int count, expectedCount, expectedNPOT; - - // initialize b using StreamCompaction::CPU::compactWithoutScan you implement - // We use b for further comparison. Make sure your StreamCompaction::CPU::compactWithoutScan is correct. - zeroArray(SIZE, b); - printDesc("cpu compact without scan, power-of-two"); - count = StreamCompaction::CPU::compactWithoutScan(SIZE, b, a); - printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); - expectedCount = count; - printArray(count, b, true); - printCmpLenResult(count, expectedCount, b, b); - - zeroArray(SIZE, c); - printDesc("cpu compact without scan, non-power-of-two"); - count = StreamCompaction::CPU::compactWithoutScan(NPOT, c, a); - printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); - expectedNPOT = count; - printArray(count, c, true); - printCmpLenResult(count, expectedNPOT, b, c); - - zeroArray(SIZE, c); - printDesc("cpu compact with scan"); - count = StreamCompaction::CPU::compactWithScan(SIZE, c, a); - printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); - printArray(count, c, true); - printCmpLenResult(count, expectedCount, b, c); - - zeroArray(SIZE, c); - printDesc("work-efficient compact, power-of-two"); - count = StreamCompaction::Efficient::compact(SIZE, c, a); - printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(count, c, true); - printCmpLenResult(count, expectedCount, b, c); - - zeroArray(SIZE, c); - printDesc("work-efficient compact, non-power-of-two"); - count = StreamCompaction::Efficient::compact(NPOT, c, a); - printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(count, c, true); - printCmpLenResult(count, expectedNPOT, b, c); + printf("*********************************\n"); + printf("** CHARACTER RECOGNITION TESTS **\n"); + printf("*********************************\n"); + + inputs.clear(); + expected.clear(); + + // collect character recognition data set + numTotalInput = 52; + int numInputCharRecognition; + + std::string prefix = "../data-set/"; + std::string suffix = "info.txt"; + for (int i = 1; i < numTotalInput; i++) { + std::stringstream buffer; + buffer << prefix << std::setfill('0') << std::setw(2) << i << suffix; + + std::ifstream inputFile(buffer.str()); + if (inputFile.is_open()) { + std::string line; + std::getline(inputFile, line); + expected.push_back(atoi(line.c_str())); + + std::getline(inputFile, line); + numInputCharRecognition = atoi(line.c_str()); + + std::getline(inputFile, line); + std::string::iterator end = std::remove(line.begin(), line.end(), ' '); + line.erase(end, line.end()); + + float *input = new float[numInputCharRecognition]; + int length = line.size(); + for (int j = 0; j < numInputCharRecognition; j++) { + input[j] = line.at(j); + } + inputs.push_back(input); + } + } + + CharacterRecognition::train(numInputCharRecognition, inputs, expected); + + for (int i = 0; i < numTotalInput; i++) { + delete[] inputs[i]; + } system("pause"); // stop Win32 console from closing on exit - delete[] a; - delete[] b; - delete[] c; } diff --git a/Project2-Stream-Compaction/src/main.cpp b/Project2-Stream-Compaction/src/main.cpp index d016553..9ab2cf5 100644 --- a/Project2-Stream-Compaction/src/main.cpp +++ b/Project2-Stream-Compaction/src/main.cpp @@ -13,7 +13,7 @@ #include #include "testing_helpers.hpp" -const int SIZE = 1 << 8; // feel free to change the size of array +const int SIZE = 1 << 20; // feel free to change the size of array const int NPOT = SIZE - 3; // Non-Power-Of-Two int *a = new int[SIZE]; int *b = new int[SIZE]; @@ -54,11 +54,11 @@ int main(int argc, char* argv[]) { //printArray(SIZE, c, true); printCmpResult(SIZE, b, c); - /* For bug-finding only: Array of 1s to help find bugs in stream compaction or scan + //For bug-finding only: Array of 1s to help find bugs in stream compaction or scan onesArray(SIZE, c); printDesc("1s array for finding bugs"); - StreamCompaction::Naive::scan(SIZE, c, a); - printArray(SIZE, c, true); */ + StreamCompaction::Naive::scan(SIZE, c, c); + printArray(SIZE, c, true); zeroArray(SIZE, c); printDesc("naive scan, non-power-of-two"); @@ -67,6 +67,14 @@ int main(int argc, char* argv[]) { //printArray(SIZE, c, true); printCmpResult(NPOT, b, c); + + + //For bug-finding only: Array of 1s to help find bugs in stream compaction or scan + identityArray(SIZE, c); + printDesc("work-efficient scan, 1s array for finding bugs"); + StreamCompaction::Efficient::scan(SIZE, c, c); + printArray(SIZE, c, true); + zeroArray(SIZE, c); printDesc("work-efficient scan, power-of-two"); StreamCompaction::Efficient::scan(SIZE, c, a); @@ -137,14 +145,14 @@ int main(int argc, char* argv[]) { printDesc("work-efficient compact, power-of-two"); count = StreamCompaction::Efficient::compact(SIZE, c, a); printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(count, c, true); + printArray(count, c, true); printCmpLenResult(count, expectedCount, b, c); zeroArray(SIZE, c); printDesc("work-efficient compact, non-power-of-two"); count = StreamCompaction::Efficient::compact(NPOT, c, a); printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(count, c, true); + printArray(count, c, true); printCmpLenResult(count, expectedNPOT, b, c); system("pause"); // stop Win32 console from closing on exit diff --git a/Project2-Stream-Compaction/src/testing_helpers.hpp b/Project2-Stream-Compaction/src/testing_helpers.hpp index b28a8d2..59902fe 100644 --- a/Project2-Stream-Compaction/src/testing_helpers.hpp +++ b/Project2-Stream-Compaction/src/testing_helpers.hpp @@ -43,6 +43,12 @@ void zeroArray(int n, int *a) { } } +void identityArray(int n, int *a) { + for (int i = 0; i < n; i++) { + a[i] = i; + } +} + void onesArray(int n, int *a) { for (int i = 0; i < n; i++) { a[i] = 1; diff --git a/Project2-Stream-Compaction/stream_compaction/CMakeLists.txt b/Project2-Stream-Compaction/stream_compaction/CMakeLists.txt index cdbef77..185a604 100644 --- a/Project2-Stream-Compaction/stream_compaction/CMakeLists.txt +++ b/Project2-Stream-Compaction/stream_compaction/CMakeLists.txt @@ -13,5 +13,5 @@ set(SOURCE_FILES cuda_add_library(stream_compaction ${SOURCE_FILES} - OPTIONS -arch=sm_20 + OPTIONS -arch=sm_75 ) diff --git a/Project2-Stream-Compaction/stream_compaction/common.cu b/Project2-Stream-Compaction/stream_compaction/common.cu index 2ed6d63..edadc07 100644 --- a/Project2-Stream-Compaction/stream_compaction/common.cu +++ b/Project2-Stream-Compaction/stream_compaction/common.cu @@ -23,7 +23,12 @@ namespace StreamCompaction { * which map to 0 will be removed, and elements which map to 1 will be kept. */ __global__ void kernMapToBoolean(int n, int *bools, const int *idata) { - // TODO + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + bools[index] = idata[index] == 0 ? 0 : 1; } /** @@ -32,8 +37,14 @@ namespace StreamCompaction { */ __global__ void kernScatter(int n, int *odata, const int *idata, const int *bools, const int *indices) { - // TODO - } + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + if (bools[index] == 1) { + odata[indices[index]] = idata[index]; + } + } } } diff --git a/Project2-Stream-Compaction/stream_compaction/common.h b/Project2-Stream-Compaction/stream_compaction/common.h index 996997e..a4e8345 100644 --- a/Project2-Stream-Compaction/stream_compaction/common.h +++ b/Project2-Stream-Compaction/stream_compaction/common.h @@ -10,6 +10,8 @@ #include #include +#define blockSize 256 + #define FILENAME (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) #define checkCUDAError(msg) checkCUDAErrorFn(msg, FILENAME, __LINE__) diff --git a/Project2-Stream-Compaction/stream_compaction/cpu.cu b/Project2-Stream-Compaction/stream_compaction/cpu.cu index a2d3e6c..67a041d 100644 --- a/Project2-Stream-Compaction/stream_compaction/cpu.cu +++ b/Project2-Stream-Compaction/stream_compaction/cpu.cu @@ -19,10 +19,25 @@ namespace StreamCompaction { */ void scan(int n, int *odata, const int *idata) { timer().startCpuTimer(); - // TODO + + odata[0] = 0; + for (int i = 1; i < n; i++) { + odata[i] = idata[i - 1] + odata[i - 1]; + } + timer().endCpuTimer(); } + /** + * CPU scan (prefix sum) with no timers + */ + void scanNoTimer(int n, int *odata, const int *idata) { + odata[0] = 0; + for (int i = 1; i < n; i++) { + odata[i] = idata[i - 1] + odata[i - 1]; + } + } + /** * CPU stream compaction without using the scan function. * @@ -30,11 +45,34 @@ namespace StreamCompaction { */ int compactWithoutScan(int n, int *odata, const int *idata) { timer().startCpuTimer(); - // TODO + + // copy over non-zero values to odata + int currIndex = 0; + for (int i = 0; i < n; i++) { + if (idata[i] != 0) { + odata[currIndex] = idata[i]; + currIndex++; + } + } + timer().endCpuTimer(); - return -1; + return currIndex; } + /** + * CPU scatter + * + * @returns the number of elements remaining after compaction. + */ + int scatter(int n, int *odata, const int *idata, const int *bools, const int *scanOutput) { + for (int i = 0; i < n; i++) { + if (bools[i] == 1) { + odata[scanOutput[i]] = idata[i]; + } + } + return scanOutput[n - 1]; + } + /** * CPU stream compaction using scan and scatter, like the parallel version. * @@ -42,9 +80,26 @@ namespace StreamCompaction { */ int compactWithScan(int n, int *odata, const int *idata) { timer().startCpuTimer(); - // TODO + + int *bools = new int[n]; + int *scanResult = new int[n]; + + // map input to binary array + for (int i = 0; i < n; i++) { + bools[i] = idata[i] == 0 ? 0 : 1; + } + + // scan binary array + scanNoTimer(n, scanResult, bools); + + // scatter + int outSize = scatter(n, odata, idata, bools, scanResult); + delete(bools); + delete(scanResult); + timer().endCpuTimer(); - return -1; + + return outSize; } } } diff --git a/Project2-Stream-Compaction/stream_compaction/efficient.cu b/Project2-Stream-Compaction/stream_compaction/efficient.cu index 2db346e..68775c4 100644 --- a/Project2-Stream-Compaction/stream_compaction/efficient.cu +++ b/Project2-Stream-Compaction/stream_compaction/efficient.cu @@ -12,15 +12,106 @@ namespace StreamCompaction { return timer; } + __global__ void kernScanUpsweep(int n, int iteration, int *buffer) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + int power1 = ceil(pow(2.0, double(iteration + 1))); + if (index % power1 == 0) { + int power2 = ceil(pow(2.0, double(iteration))); + buffer[index + power1 - 1] += buffer[index + power2 - 1]; + } + } + + __global__ void kernScanDownsweep(int n, int iteration, int *buffer) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + int power1 = ceil(pow(2.0, double(iteration + 1))); + if (index % power1 == 0) { + int power2 = ceil(pow(2.0, double(iteration))); + + int temp = buffer[index + power2 - 1]; + buffer[index + power2 - 1] = buffer[index + power1 - 1]; + buffer[index + power1 - 1] += temp; + } + } + + // finds the next power of 2 greater than or equal to n + int nextPowerOfTwo(int n) { + if (n && !(n & (n - 1))) + return n; + + int count = 0; + while (n != 0) { + n >>= 1; + count++; + } + + return 1 << count; + } + /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { - timer().startGpuTimer(); - // TODO - timer().endGpuTimer(); + int nPowerOfTwo = nextPowerOfTwo(n); + + int *dev_buffer; + + // malloc device buffer + cudaMalloc((void**)&dev_buffer, nPowerOfTwo * sizeof(int)); + checkCUDAError("cudaMalloc dev_buffer failed!"); + + // copy input to device buffer + cudaMemcpy(dev_buffer, idata, n * sizeof(int), cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy dev_buffer idata failed!"); + + // fill rest of device buffer with zero + // TODO: is this needed?? + cudaMemset(dev_buffer + n, 0, (nPowerOfTwo - n) * sizeof(int)); + checkCUDAError("cudaMemset dev_buffer failed!"); + + //timer().startGpuTimer(); + + // TODO: hmmmmm + dim3 fullBlocksPerGrid((n + blockSize - 1) / blockSize); + + // upsweep + for (int d = 0; d < ilog2ceil(nPowerOfTwo); d++) { + kernScanUpsweep<<>>(nPowerOfTwo, d, dev_buffer); + checkCUDAError("kernScanUpsweep failed!"); + } + + cudaDeviceSynchronize(); + + // set root to zero + cudaMemset(dev_buffer + nPowerOfTwo - 1, 0, 1 * sizeof(int)); + checkCUDAError("cudaMemset dev_buffer failed!"); + + // downsweep + for (int d = ilog2ceil(nPowerOfTwo) - 1; d >= 0; d--) { + kernScanDownsweep<<>>(nPowerOfTwo, d, dev_buffer); + checkCUDAError("kernScanDownsweep failed!"); + } + + cudaDeviceSynchronize(); + + //timer().endGpuTimer(); + + // copy output to host + cudaMemcpy(odata, dev_buffer, n * sizeof(int), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy odata dev_buffer failed!"); + + cudaFree(dev_buffer); + checkCUDAError("cudaFree failed!"); } + /** * Performs stream compaction on idata, storing the result into odata. * All zeroes are discarded. @@ -31,10 +122,70 @@ namespace StreamCompaction { * @returns The number of elements remaining after compaction. */ int compact(int n, int *odata, const int *idata) { - timer().startGpuTimer(); - // TODO - timer().endGpuTimer(); - return -1; + dim3 fullBlocksPerGrid((n + blockSize - 1) / blockSize); + + int *dev_in; + int *dev_out; + int *dev_bools; + int *dev_indices; + + // malloc device buffers + cudaMalloc((void**)&dev_in, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_input failed!"); + + cudaMalloc((void**)&dev_out, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_out failed!"); + + cudaMalloc((void**)&dev_bools, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_bools failed!"); + + cudaMalloc((void**)&dev_indices, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_indices failed!"); + + // copy input to device buffer + cudaMemcpy(dev_in, idata, n * sizeof(int), cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy dev_in idata failed!"); + + //timer().startGpuTimer(); + + // compute bools buffer + Common::kernMapToBoolean<<>>(n, dev_bools, dev_in); + checkCUDAError("kernMapToBoolean failed!"); + + cudaDeviceSynchronize(); + + // copy bools to host + int *bools = new int[n]; + cudaMemcpy(bools, dev_bools, n * sizeof(int), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy bools dev_bools failed!"); + + // run exclusive scan on bools + int *indices = new int[n]; + scan(n, indices, bools); + int outputSize = bools[n - 1] == 0 ? indices[n - 1] : indices[n - 1] + 1; + + // copy indices to device + cudaMemcpy(dev_indices, indices, n * sizeof(int), cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy dev_indices indices failed!"); + + // scatter + Common::kernScatter<<>>(n, dev_out, dev_in, dev_bools, dev_indices); + + cudaDeviceSynchronize(); + + //timer().endGpuTimer(); + + // copy output to host + cudaMemcpy(odata, dev_out, outputSize * sizeof(int), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy odata dev_out failed!"); + + cudaFree(dev_in); + cudaFree(dev_out); + cudaFree(dev_bools); + cudaFree(dev_indices); + checkCUDAError("cudaFree failed!"); + + return outputSize; } } } diff --git a/Project2-Stream-Compaction/stream_compaction/naive.cu b/Project2-Stream-Compaction/stream_compaction/naive.cu index 4308876..18dda85 100644 --- a/Project2-Stream-Compaction/stream_compaction/naive.cu +++ b/Project2-Stream-Compaction/stream_compaction/naive.cu @@ -11,15 +11,70 @@ namespace StreamCompaction { static PerformanceTimer timer; return timer; } - // TODO: __global__ + + __global__ void kernInclusiveScanIteration(int n, int iteration, int *out, int *in) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + int nextIndex = ceil(pow(2.0, double(iteration - 1))); // encountered rounding issue at 2048, should fix it + if (index >= nextIndex) { + out[index] = in[index - nextIndex] + in[index]; + } + } + + __global__ void kernShiftRight(int n, int *out, int *in) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + out[index] = index == 0 ? 0 : in[index - 1]; + } /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { - timer().startGpuTimer(); - // TODO - timer().endGpuTimer(); + int *dev_in; + int *dev_out; + + // malloc device buffers + cudaMalloc((void**)&dev_in, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_in failed!"); + cudaMalloc((void**)&dev_out, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_out failed!"); + + // copy input to device + cudaMemcpy(dev_in, idata, n * sizeof(int), cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy dev_in idata failed!"); + cudaMemcpy(dev_out, idata, n * sizeof(int), cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy dev_out idata failed!"); + + // perform inclusive scan + timer().startGpuTimer(); + + dim3 fullBlocksPerGrid((n + blockSize - 1) / blockSize); + for (int d = 1; d <= ilog2ceil(n); d++) { + // run one iteration + kernInclusiveScanIteration<<>>(n, d, dev_out, dev_in); + checkCUDAError("kernInclusiveScanIteration failed!"); + } + + // convert to exclusive scan + kernShiftRight<<>>(n, dev_out, dev_in); + checkCUDAError("kernShiftRight failed!"); + + timer().endGpuTimer(); + + // copy output to host + cudaMemcpy(odata, dev_out, n * sizeof(int), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy odata dev_out failed!"); + + cudaFree(dev_in); + cudaFree(dev_out); + checkCUDAError("cudaFree failed!"); } } } diff --git a/Project2-Stream-Compaction/stream_compaction/thrust.cu b/Project2-Stream-Compaction/stream_compaction/thrust.cu index 1def45e..f7e403b 100644 --- a/Project2-Stream-Compaction/stream_compaction/thrust.cu +++ b/Project2-Stream-Compaction/stream_compaction/thrust.cu @@ -18,11 +18,28 @@ namespace StreamCompaction { * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { + int *dev_in; + cudaMalloc((void**)&dev_in, n * sizeof(int)); + checkCUDAError("cudaMalloc dev_in failed!"); + + // copy input to device buffer + cudaMemcpy(dev_in, idata, n * sizeof(int), cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy dev_in idata failed!"); + + thrust::device_vector dev_thrust_in(dev_in, dev_in + n); + thrust::device_vector dev_thrust_out(n); + timer().startGpuTimer(); - // TODO use `thrust::exclusive_scan` - // example: for device_vectors dv_in and dv_out: - // thrust::exclusive_scan(dv_in.begin(), dv_in.end(), dv_out.begin()); + thrust::exclusive_scan(dev_thrust_in.begin(), dev_thrust_in.end(), dev_thrust_out.begin()); + checkCUDAError("thrust::exclusive_scan failed!"); timer().endGpuTimer(); + + int *dev_out = thrust::raw_pointer_cast(dev_thrust_out.data()); + cudaMemcpy(odata, dev_out, n * sizeof(int), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy odata dev_out failed!"); + + cudaFree(dev_in); + checkCUDAError("cudaFree dev_in failed!"); } } } From 963ead6aea8a4270de0a25ccc8fc7208d1b2c430 Mon Sep 17 00:00:00 2001 From: clach Date: Tue, 17 Sep 2019 14:37:52 -0400 Subject: [PATCH 02/12] XOR training seems to be working --- .../character_recognition/mlp.cu | 90 +++++++++---------- .../character_recognition/mlp.h | 10 --- Project2-Character-Recognition/src/main.cpp | 4 - 3 files changed, 43 insertions(+), 61 deletions(-) diff --git a/Project2-Character-Recognition/character_recognition/mlp.cu b/Project2-Character-Recognition/character_recognition/mlp.cu index 543cba4..72a7e09 100644 --- a/Project2-Character-Recognition/character_recognition/mlp.cu +++ b/Project2-Character-Recognition/character_recognition/mlp.cu @@ -10,7 +10,8 @@ #include #include -#define EPSILON 0.0001 +#define EPSILON 0.0005 +#define MAX_ITER 1 << 10 namespace CharacterRecognition { using Common::PerformanceTimer; @@ -46,11 +47,11 @@ namespace CharacterRecognition { thrust::default_random_engine rng(hash((int)(index * time))); thrust::uniform_real_distribution unitDistrib(0, 1); - return (float)unitDistrib(rng); + return (double)unitDistrib(rng); } // compute random float value between 0 and 1 - __global__ void kernRandom(int n, int time, float* out) { + __global__ void kernRandom(int n, int time, double* out) { int index = (blockIdx.x * blockDim.x) + threadIdx.x; if (index >= n) { return; @@ -75,7 +76,7 @@ namespace CharacterRecognition { // per OUTPUT // numHidden, dev_hiddenLayer, numInput, dev_input, dev_weights, 0 // 1, dev_output, numHidden, dev_hiddenLayer, dev_weights, numWeights1s - __global__ void kernComputeLayerSum(int n, float *out, int inCount, float *in, float *weights, int weightsOffset) { + __global__ void kernComputeLayerSum(int n, float *out, int inCount, float *in, double *weights, int weightsOffset) { int index = (blockIdx.x * blockDim.x) + threadIdx.x; if (index >= n) { return; @@ -103,7 +104,7 @@ namespace CharacterRecognition { in[index] = activationFxn(in[index]); } - __global__ void kernComputePartialDerivativeLayer1(int n, float *outDerivatives, float *weights, + __global__ void kernComputePartialDerivativeLayer1(int n, double *outDerivatives, double *weights, int numWeights1, float *input, int numHidden, float *hiddenOutput, float output, float expected) { int index = (blockIdx.x * blockDim.x) + threadIdx.x; if (index >= n) { @@ -121,7 +122,7 @@ namespace CharacterRecognition { outDerivatives[index] = partialDerivative; } - __global__ void kernComputePartialDerivativeLayer2(int n, float *outDerivatives, float *weights, + __global__ void kernComputePartialDerivativeLayer2(int n, double *outDerivatives, double *weights, int numWeights1, float *input, int numHidden, float *hiddenOutput, float output, float expected) { int index = (blockIdx.x * blockDim.x) + threadIdx.x; if (index >= n) { @@ -134,10 +135,10 @@ namespace CharacterRecognition { outDerivatives[numWeights1 + index] = partialDerivative; } - void getWeights(int numWeights, float *weights, bool training) { + void getWeights(int numWeights, double *weights, bool training) { if (training) { - float *dev_weights; - cudaMalloc((void**)&dev_weights, numWeights * sizeof(float)); + double *dev_weights; + cudaMalloc((void**)&dev_weights, numWeights * sizeof(double)); checkCUDAError("cudaMalloc dev_weights failed!"); // fill weights with random numbers between 0 and 1 @@ -146,17 +147,17 @@ namespace CharacterRecognition { checkCUDAError("kernRandom failed!"); // copy weights back to host - cudaMemcpy(weights, dev_weights, numWeights * sizeof(float), cudaMemcpyDeviceToHost); + cudaMemcpy(weights, dev_weights, numWeights * sizeof(double), cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcpy weights dev_weights failed!"); // TODO: REMOVE LATER - /* + weights[0] = 10.1; weights[1] = 0.9; weights[2] = 20.0; weights[3] = 0.87; weights[4] = 41.0; - weights[5] = -54.0;*/ + weights[5] = -54.0; cudaFree(dev_weights); checkCUDAError("cudaFree dev_weights failed!"); @@ -167,7 +168,7 @@ namespace CharacterRecognition { } } - __global__ void kernScale(int n, float *buffer, float scale) { + __global__ void kernScale(int n, double *buffer, float scale) { int index = (blockIdx.x * blockDim.x) + threadIdx.x; if (index >= n) { return; @@ -176,14 +177,7 @@ namespace CharacterRecognition { buffer[index] = scale * buffer[index]; } - __global__ void kernSumWeights(int n, float *allWeightsDerivatives, int numWeights) { - int index = (blockIdx.x * blockDim.x) + threadIdx.x; - if (index >= n) { - return; - } - } - - __global__ void kernScanUpsweep(int n, int iteration, float *buffer) { + __global__ void kernScanUpsweep(int n, int iteration, double *buffer) { int index = (blockIdx.x * blockDim.x) + threadIdx.x; if (index >= n) { return; @@ -210,20 +204,20 @@ namespace CharacterRecognition { return 1 << count; } - __global__ void kernModifyWeights(int n, float *weights, float *allWeightsErrors, int offset) { + __global__ void kernModifyWeights(int n, double *weights, double *allWeightsErrors, int offset) { int index = (blockIdx.x * blockDim.x) + threadIdx.x; if (index >= n) { return; } - weights[index] += allWeightsErrors[offset * index + offset]; + weights[index] += allWeightsErrors[offset * index + (offset - 1)]; } - void adjustWeights(int numTotalInput, int numWeights, float *weights, std::vector allWeightsDerivatives, float error) { + void adjustWeights(int numTotalInput, int numWeights, double *weights, std::vector allWeightsDerivatives, float error) { int numTotalPowerOf2 = nextPowerOfTwo(numTotalInput); // reorganize all weights derivatives to be in one buffer // buffer with zero's so it can be used in scan upsweep - float *allWeightsDerivativesShuffled = new float[numTotalPowerOf2 * numWeights]; + double *allWeightsDerivativesShuffled = new double[numTotalPowerOf2 * numWeights]; for (int i = 0; i < numTotalInput; i++) { for (int j = 0; j < numWeights; j++) { allWeightsDerivativesShuffled[j * numTotalPowerOf2 + i] = allWeightsDerivatives[i][j]; @@ -236,18 +230,18 @@ namespace CharacterRecognition { } - float *dev_allWeightsDerivatives; - cudaMalloc((void**)&dev_allWeightsDerivatives, (numTotalPowerOf2 * numWeights) * sizeof(float)); + double *dev_allWeightsDerivatives; + cudaMalloc((void**)&dev_allWeightsDerivatives, (numTotalPowerOf2 * numWeights) * sizeof(double)); checkCUDAError("cudaMalloc dev_allWeightsDerivatives failed!"); - cudaMemcpy(dev_allWeightsDerivatives, allWeightsDerivativesShuffled, (numTotalPowerOf2 * numWeights) * sizeof(float), cudaMemcpyHostToDevice); + cudaMemcpy(dev_allWeightsDerivatives, allWeightsDerivativesShuffled, (numTotalPowerOf2 * numWeights) * sizeof(double), cudaMemcpyHostToDevice); checkCUDAError("cudaMemcpy dev_allWeightsDerivatives allWeightsDerivativesShuffled failed!"); - float *dev_weights; - cudaMalloc((void**)&dev_weights, numWeights * sizeof(float)); + double *dev_weights; + cudaMalloc((void**)&dev_weights, numWeights * sizeof(double)); checkCUDAError("cudaMalloc dev_weights failed!"); - cudaMemcpy(dev_weights, weights, numWeights * sizeof(float), cudaMemcpyHostToDevice); + cudaMemcpy(dev_weights, weights, numWeights * sizeof(double), cudaMemcpyHostToDevice); checkCUDAError("cudaMemcpy dev_weights weights failed!"); // for each weight derivative, compute delta weight @@ -256,7 +250,7 @@ namespace CharacterRecognition { kernScale<<>>(numTotalPowerOf2 * numWeights, dev_allWeightsDerivatives, lambda); checkCUDAError("kernScale failed!"); - cudaMemcpy(allWeightsDerivativesShuffled, dev_allWeightsDerivatives, (numTotalPowerOf2 * numWeights) * sizeof(float), cudaMemcpyDeviceToHost); + cudaMemcpy(allWeightsDerivativesShuffled, dev_allWeightsDerivatives, (numTotalPowerOf2 * numWeights) * sizeof(double), cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcpy dev_allWeightsDerivatives allWeightsDerivativesShuffled failed!"); // sum delta weights over all test input for a given weight @@ -266,7 +260,7 @@ namespace CharacterRecognition { checkCUDAError("kernScanUpsweep failed!"); } - cudaMemcpy(allWeightsDerivativesShuffled, dev_allWeightsDerivatives, (numTotalPowerOf2 * numWeights) * sizeof(float), cudaMemcpyDeviceToHost); + cudaMemcpy(allWeightsDerivativesShuffled, dev_allWeightsDerivatives, (numTotalPowerOf2 * numWeights) * sizeof(double), cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcpy dev_allWeightsDerivatives allWeightsDerivativesShuffled failed!"); // add delta weights to weights @@ -275,7 +269,7 @@ namespace CharacterRecognition { checkCUDAError("kernModifyWeights failed!"); // copy weights back to host - cudaMemcpy(weights, dev_weights, numWeights * sizeof(float), cudaMemcpyDeviceToHost); + cudaMemcpy(weights, dev_weights, numWeights * sizeof(double), cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcpy weights dev_weights failed!"); cudaFree(dev_allWeightsDerivatives); @@ -293,15 +287,15 @@ namespace CharacterRecognition { timer().endGpuTimer(); } */ -float runOneInput(int numInput, int numHidden, const float *input, const float *weights, float *weightDerivatives, float expected, bool training) { +float runOneInput(int numInput, int numHidden, const float *input, const double *weights, double *weightDerivatives, float expected, bool training) { int numWeights1 = numInput * numHidden; int numWeights2 = numHidden; float *dev_input; float *dev_hiddenLayer; float *dev_output; - float *dev_weights; - float *dev_weightDerivatives; + double *dev_weights; + double *dev_weightDerivatives; // malloc device buffers cudaMalloc((void**)&dev_input, numInput * sizeof(float)); @@ -313,14 +307,14 @@ float runOneInput(int numInput, int numHidden, const float *input, const float * cudaMalloc((void**)&dev_output, numHidden * sizeof(float)); checkCUDAError("cudaMalloc dev_output failed!"); - cudaMalloc((void**)&dev_weights, (numWeights1 + numWeights2) * sizeof(float)); + cudaMalloc((void**)&dev_weights, (numWeights1 + numWeights2) * sizeof(double)); checkCUDAError("cudaMalloc dev_weights failed!"); - cudaMalloc((void**)&dev_weightDerivatives, (numWeights1 + numWeights2) * sizeof(float)); + cudaMalloc((void**)&dev_weightDerivatives, (numWeights1 + numWeights2) * sizeof(double)); checkCUDAError("cudaMalloc dev_weightsError failed!"); // copy weights from host to device - cudaMemcpy(dev_weights, weights, (numWeights1 + numWeights2) * sizeof(float), cudaMemcpyHostToDevice); + cudaMemcpy(dev_weights, weights, (numWeights1 + numWeights2) * sizeof(double), cudaMemcpyHostToDevice); checkCUDAError("cudaMemcpy dev_weights weights failed!"); // copy input from host to device @@ -372,7 +366,7 @@ float runOneInput(int numInput, int numHidden, const float *input, const float * checkCUDAError("kernComputePartialDerivativeLayer2 failed!"); // copy derivatives to host - cudaMemcpy(weightDerivatives, dev_weightDerivatives, (numWeights1 + numWeights2) * sizeof(float), cudaMemcpyDeviceToHost); + cudaMemcpy(weightDerivatives, dev_weightDerivatives, (numWeights1 + numWeights2) * sizeof(double), cudaMemcpyDeviceToHost); checkCUDAError("cudaMemcpy weightDerivatives dev_weightDerivatives failed!"); } @@ -397,17 +391,18 @@ void train(int numInput, std::vector inputs, std::vector expected) int numWeights = (numInput * numHidden) + numHidden; // get weights - float *weights = new float[numWeights]; + double *weights = new double[numWeights]; getWeights(numWeights, weights, true); // create weight errors - std::vector allWeightErrors; + std::vector allWeightErrors; for (int i = 0; i < numTotalInput; i++) { - float *weightErrors = new float[numWeights]; + double *weightErrors = new double[numWeights]; allWeightErrors.push_back(weightErrors); } float totalError; + int numIter = 0; while (true) { totalError = 0.f; @@ -418,7 +413,7 @@ void train(int numInput, std::vector inputs, std::vector expected) } totalError /= 2.f; - if (totalError < EPSILON) { + if (totalError < EPSILON || numIter > MAX_ITER) { // finished training // save weights to txt file std::ofstream weightsFile; @@ -434,6 +429,7 @@ void train(int numInput, std::vector inputs, std::vector expected) else { adjustWeights(numTotalInput, numWeights, weights, allWeightErrors, totalError); } + numIter++; } delete[] weights; @@ -456,13 +452,13 @@ void train(int numInput, std::vector inputs, std::vector expected) int numWeights = (numInput * numHidden) + numHidden; // get weights - float* weights = new float[numWeights]; + double* weights = new double[numWeights]; getWeights(numWeights, weights, false); float totalError = 0.f; for (int i = 0; i < inputs.size(); i++) { float *in = inputs[i]; - float* weightDerivatives = new float[0]; + double* weightDerivatives = new double[0]; totalError += runOneInput(numInput, numHidden, in, weights, weightDerivatives, expected[i], false); } diff --git a/Project2-Character-Recognition/character_recognition/mlp.h b/Project2-Character-Recognition/character_recognition/mlp.h index 4af4e07..4adde00 100644 --- a/Project2-Character-Recognition/character_recognition/mlp.h +++ b/Project2-Character-Recognition/character_recognition/mlp.h @@ -6,16 +6,6 @@ namespace CharacterRecognition { Common::PerformanceTimer& timer(); - // TODO: implement required elements for MLP sections 1 and 2 here - //void getWeights(int numWeights, float *weights, bool training); - - //float runOneInput(int numInput, int numHidden, const float *input, const float *weights, float *weightsErrors, float expected, bool training); - - //void adjustWeights(int numWeights, float *weights); - - - - void train(int numInput, std::vector inputs, std::vector expected); void run(); diff --git a/Project2-Character-Recognition/src/main.cpp b/Project2-Character-Recognition/src/main.cpp index 2c644de..d469896 100644 --- a/Project2-Character-Recognition/src/main.cpp +++ b/Project2-Character-Recognition/src/main.cpp @@ -53,10 +53,6 @@ int main(int argc, char* argv[]) { CharacterRecognition::train(numInputXOR, inputs, expected); - for (int i = 0; i < numTotalInput; i++) { - delete[] inputs[i]; - } - printf("\n"); printf("*********************************\n"); From 5e8e7c97a14e3d4d013318ee31c94f34598e464d Mon Sep 17 00:00:00 2001 From: clach Date: Tue, 17 Sep 2019 15:44:57 -0400 Subject: [PATCH 03/12] readme outline for stream compaction --- Project2-Stream-Compaction/README.md | 46 ++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 9 deletions(-) diff --git a/Project2-Stream-Compaction/README.md b/Project2-Stream-Compaction/README.md index 0e38ddb..e13714d 100644 --- a/Project2-Stream-Compaction/README.md +++ b/Project2-Stream-Compaction/README.md @@ -1,14 +1,42 @@ -CUDA Stream Compaction -====================== +# Project 2a: CUDA Stream Compaction +**University of Pennsylvania, CIS 565: GPU Programming and Architecture, +Project 2 - Stream Compaction** -**University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 2** +Caroline Lachanski: [LinkedIn](https://www.linkedin.com/in/caroline-lachanski/), [personal website](http://carolinelachanski.com/) -* (TODO) YOUR NAME HERE - * (TODO) [LinkedIn](), [personal website](), [twitter](), etc. -* Tested on: (TODO) Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab) +Tested on: Windows 10, i5-6500 @ 3.20GHz 16GB, GTX 1660 (personal computer) -### (TODO: Your README) +## Project Description -Include analysis, etc. (Remember, this is public, so don't put -anything here that you don't want to share with the world.) +This goal of this project was to gain to familiarity with writing parallel algorithms, specifically Scan (prefix sum) and Stream Compaction (used to remove values of zero from an array), from scratch in CUDA. The implementations in this project were mainly based on [these slides](https://onedrive.live.com/view.aspx?resid=A6B78147D66DD722!93669&ithint=file%2cpptx&authkey=!AOZdbr6KT8OQ9fs). This project contains several implementations: a CPU version, a naive GPU version, a work-efficient GPU version, and one using the Thrust library functions. + +### CPU + +The CPU implementations were done simply to allow me to become more familiar with the algorithms. These are straightforward and simple to implement, and include an implementations of Scan, Scatter, Stream Compaction without using Scan, and Stream Compaction using Scan and Scatter. + +INSERT PICTURES HERE + +### Naive + +The first GPU implementation of Scan is a naive one, and results in an inclusive Scan that must be modified (using a shift right kernel) to an exclusive Scan. + +INSERT PICTURE + +### Work-Efficient + +Next we have work-efficient GPU versions of Scan, Scatter, and Stream Compaction. The work-efficient version of Scan involves two phases, an upsweep and a downsweep: + +INSERT PICTURE + +Because of REASON, the input array must be buffered with zeros until its size is a power of 2. + +We can then use Scan in a GPU implementation of Stream Compaction, which also uses Scatter and MapToBoolean kernels. + +INSERT PICTURE + +### Thrust + +Lastly, we perform Stream Compaction with the Thrust library's thrust::exclusive_scan. + +## Analysis From 298dedc55f2fa486418a1c3dd74c9969bbda27d3 Mon Sep 17 00:00:00 2001 From: clach Date: Wed, 18 Sep 2019 13:59:51 -0400 Subject: [PATCH 04/12] updated main repo readme --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 3a0b2fe..2474c95 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,16 @@ -CUDA Number Algorithms -====================== +# Project 2: CUDA Number Algorithms +**University of Pennsylvania, CIS 565: GPU Programming and Architecture, +Project 2** -**University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 2** +Caroline Lachanski: [LinkedIn](https://www.linkedin.com/in/caroline-lachanski/), [personal website](http://carolinelachanski.com/) -* (TODO) YOUR NAME HERE - * (TODO) [LinkedIn](), [personal website](), [twitter](), etc. -* Tested on: (TODO) Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab) +Tested on: Windows 10, i5-6500 @ 3.20GHz 16GB, GTX 1660 (personal computer) -### (TODO: Your README) +## Project Description -Link to the readmes of the other two subprojects. +The repository contains two separate projects: -Add anything else you think is relevant up to this point. -(Remember, this is public, so don't put anything here that you don't want to share with the world.) +1. [Stream Compaction](https://github.com/clach/Project2-Number-Algorithms/blob/master/Project2-Stream-Compaction) + +2. [Character Recognition](https://github.com/clach/Project2-Number-Algorithms/tree/master/Project2-Character-Recognition) From b56e36e44c96f01064eb91b834a199a0e6ce0e73 Mon Sep 17 00:00:00 2001 From: clach Date: Wed, 18 Sep 2019 15:11:30 -0400 Subject: [PATCH 05/12] cleaned up stream compaction code, added some images --- .../img/compact_goal_visual.png | Bin 0 -> 36811 bytes .../img/compact_graph.png | Bin 0 -> 16716 bytes .../img/compact_visual.png | Bin 0 -> 67317 bytes .../img/efficient_downsweep.png | Bin 0 -> 118154 bytes .../img/efficient_downsweep_visual.png | Bin 0 -> 152210 bytes .../img/efficient_upsweep.png | Bin 0 -> 38845 bytes .../img/efficient_upsweep_visual.png | Bin 0 -> 118082 bytes .../img/naive_parallel_scan.png | Bin 0 -> 41328 bytes .../img/naive_parallel_scan_visual.png | Bin 0 -> 157579 bytes Project2-Stream-Compaction/img/scan_graph.png | Bin 0 -> 23571 bytes Project2-Stream-Compaction/src/main.cpp | 20 +++-- .../stream_compaction/common.h | 2 +- .../stream_compaction/efficient.cu | 70 ++++++++++++++---- .../stream_compaction/naive.cu | 10 ++- 14 files changed, 74 insertions(+), 28 deletions(-) create mode 100644 Project2-Stream-Compaction/img/compact_goal_visual.png create mode 100644 Project2-Stream-Compaction/img/compact_graph.png create mode 100644 Project2-Stream-Compaction/img/compact_visual.png create mode 100644 Project2-Stream-Compaction/img/efficient_downsweep.png create mode 100644 Project2-Stream-Compaction/img/efficient_downsweep_visual.png create mode 100644 Project2-Stream-Compaction/img/efficient_upsweep.png create mode 100644 Project2-Stream-Compaction/img/efficient_upsweep_visual.png create mode 100644 Project2-Stream-Compaction/img/naive_parallel_scan.png create mode 100644 Project2-Stream-Compaction/img/naive_parallel_scan_visual.png create mode 100644 Project2-Stream-Compaction/img/scan_graph.png diff --git a/Project2-Stream-Compaction/img/compact_goal_visual.png b/Project2-Stream-Compaction/img/compact_goal_visual.png new file mode 100644 index 0000000000000000000000000000000000000000..ee72925518ad0dc3e14ef5876a89e0f30f14cc02 GIT binary patch literal 36811 zcmeFYWmsInmNrU&puq_Q4KyLR1b1oN-5Ln4jk~)O+!EX&xVr?m;Ly0cI|RR-GiT16 z`M&uvfA4*6KTr4Gy?4p7T2-~yTj7fG5@;xdC@?TEXi}1*$}li+Kp2=eNJt3KCl0Wp z8Za>Lq%1^46s1H&$P^uHO)acUU|=M}lQa-D6Xpm7UI#xJyzP#~y2UmbOvdVtAR|+; z!-^N`4kITIYhoxsfiM8pfu(?ma&@6Y(eg+@Q~6ddZjv+ux=!(O!khZr<~xBq&&;b= z+m0*mGfsz>S3yLW3{a+OYUm+sEE7#4rD#Y^VPQe7BtOg>Tzz=+U!emjG7A?MUtop@ zpU*BI5b8o4X4Qsn#_wNgJz#UvF<`JU>_0sH!8uOyVC}@8U`)x$*QO zuzV-$Ri+$M--7b!A5Pr4BCoN7jY$YZR+vV#2@(Y2P786^M>AQsCa!{A$Mg(zv}xBW^g~ zBaAbYi=D{c)3Gv~K~mn!7WPQ_quL(xNaRVKUU5O>o3dC$v2i`WWq*pJ{x}SdA?F(= zdO}0iFp5v^)n5p`O_R9-P`~Jqn^!l*rsZGgeohRfvg87r)Z%Q4+a-VNf&AgPG%jh9 zeq@bUHf{)cO_m%a+3-~ZNK32jeN&3;rK!dQi~LU9`z&5+&Afz-Mdi{fUMQ)!Yl~Xl zsfbNbvO8dEIt0LGyRGrMmu#PBiTh4e+BF-Tn@^24E+C+g)cK{C0f@}&9wb4XMaZfg zDf9uaqJrcIS2~{k#&Bh-djdY{4AtUmTR&+L$`v5V0~|KGEf!9w$5)KWD9J8JO2_a` zL3uCSZ1?r0~0SKjvSsC|oRER*u49A+2?-qHm!!TA02IG+m8j|I3MX4ONbba;k_x9|(x&Zcu2@QIJjdiPmO84b!24|4=rOc-X{D`n~&T6Tk6Ix5$OiAV#zOXB!lq3uI<& zB8-sg_Uz=mAswyflx5%2joJ$EF|`eDqM;~q4wuit&y%tf_Tk*)gFO=Ey;SZ+jj{dT zDHq&X&LEhxNj;F^NR`Mu_c5-^8{P2}Ap0(BCWofAeuNo53wvO{ ziU0W^K=wP*_W(s6c3lHKX~FlvjRS_*9Uf-uMvo^A|NKG|?N_yY2T(m9vN4SMM$sSL zD_7R2^rG7f^I__JLPC}>jD`P% zHY8Mog`6w2OQA>peh`#TxDY)t1|dDAGJA(Pv{{Qf6x6b2b|h&oiBRd0{aXOH1R(7 z;2G{{QmTit8ouX*i;bwljx`6c}?|`lBzgw64L-0iV0`u{g zAl5!SYXE9j)-Os~N@JW|%weRYAl;yzpxSebL&~<#*x|CdaFd7vQ5L<#n|zxno2Hv@ zHl+;lt3$aY0dcaDjQK*!#NiUOpOWG@;%?*QV=H1kq-=*k#xgaC+yUwG$+0Q%bVHs) z149~vF+(D_x)CIOS=bU-io43{N-oMEniQJ$MDh~SS${%Fx!hgF6vfiwsF~WC)|nI# z2m}H7fK=*wL6P+(bscj&l{Z31Byw51vRe~{)3|j>bt`oVbxU@UUbbFIr^sua4+fmkJTuojfi1dz z`F<_&$~Tk0y8OVgMv4YiYuP>ezZBQ(0t_MystuwxzVz69?yoa*_~HIr?RVgBqThGo zyW&<9Ig<`~;(2u9w%-OmgnmGc8i~UApvUQB+s%T^ImE7IG-c&5j?3xHkzvR);1qeF zHU07h!3ehhd>}D~n`>8tb>{a1eV0|{0(z}Wt*|5Nm89d(`_EU?yU%#Ck(iOhkvDh) z3=i}K$->EoBR9!Z^uA^UHS=YB>hF)HXTiFT*X*u;wM$_3h3L`rkqW&ZT_+Sf6d|-V z+G#+40Cs?904y&`rB|d=G%BAlR$QA>JJ{TRUxRwMc>-`*IG$opW`@|78C$K)r&X|N zG=Ss4fk%P%zwN(lB}aov@2uKR{#;*x`?H8%hek&j#;uE%NL;<|q)ug4v{&@pxIEAK zE%_?kr}!!O@ZB5S1hUpygt-hxg0#QBs~q~e=2q|SeSLe8?9SP~mVb2Vli|FCiJtay#r*Y*|o8u;Ri(1fs!aE#{0GHH-&w>cKh?+@{B`*q^KB3zdJ zE!$dnrAxi5ZM|hZl$?V+AXb+=WTq*o|kW4moIK`E$sznEQ#vw2rXpfQt|dB|)kK*}uFVlsSkb`rxV z-N^V$dBWsS!sp5~FHQ)fI`$GV;%1Zm(dKC%Z!doDD_bxZrH}Mzq6G3O@)gb)B@4D0 z<*A%k25xE{?SXuaQ4OG(L5#}8L)v>dZKi6b{^yFyfPyabjdH3*DpxsWMq*}s2c5Sa z=uaKmv`3Mr98;Q)QAp3XO#*z=)Un@b?pDcT^s8ke1VP_szO@s4bhB^cS=Il{SJ;`h0PQVYjrjs2Hz14LmWIub=+-4T zZxh@Xn46uOn%n58yh}_Ap-aYX9Cyxa^*Y^(4~swB-MIR5wYaN2s>kx$1$!HCf*Ke6 z19b^+fu2@(rj^U#B9n54vRTGQ>#)J;WJ*J?z-Ja@`L(5~ZtrNYl4!VY#Mp$h6Zwzn z5sTLkH?0AO@tw3}Ut0V`y)wJf;<7(g0iBzhji+ns-n?xrV3PsbGc|2>91R)uHBFp0 z({WIHJtf!^BKLK!F0;PF>$w!ImP4mFU9s7j!a2{-$W={NZRGQkTq&n_F`k-UC2~2p zB3Qk(?RM0(YnM(N*uZAPz6PqkdFHri&|acw0+sInikQ&@uLG@Tg6wOVs#LpS1W7saNHnm%EQF zK27$_5Bf{wYa&sCi_e;#-|d^)kS$V|*e2*LPi>^Y2RtkXlG%V(@Xe3LY_C4cSfheWBc9D>jOpKg^wP-GXjoY zw_91{z6}_%B>Ucso&ryXeKH9tt$K29vm74;-Cmtvj&eA6Y~@x@-S-|(mmg>DVnTPl z$h?am_OGjNRIZC!d+vLBlrz5-Eu!e#Wov1{w9TWz@S~lQ@Vv>ESIN3k4JaNjq=kRM zQO|m-wu$!Z6cZ*M9}W}lj#_)YD)2kP*>JgsGLjHKzeK3`wpJ#oB_ko<1?DO`MkgDh z-wetxiG}m?iQSEj7+!;##y4DA*#dgB!ARo>OW%@;p9>lPD8Ha}hWc3T%3|O`_ZG-@ zl3I>1FnE-Izi*_JKb=Fj9T^s?nogQ>vOGq%){F+mwuUB*Zq|0t(l9W5ZamOiYZE5} zGB;~08%G{De!xFU@IdeXK4t=t{iBEzm>-}ir${DZ>tI60&dA2d3=lveBO~K;FgE2; z78UC9S;+etE(%cD=VX|gBjBoZfzE76xbu21j=rCj&PI8%K)& zXyiZJ5jAl%aqf(ZbEdN>kLr+Qh~Y+J^uaD;wWG%Ku+){;S7-tEu&0HCZ_RTg`ua z^Us=mOn({pH-`R0TK{+o6_)@CAJe}?FMy)h*Oma)2C;>xf-3Y1`&Tv4PZ0D={m(1( zUY=~e`>Q?-j1Y{JsIaQro8xx(DjhYSy?f8cLhm=^IcV@eGGusc-mrQv}TxU1nuPmA>pmFg6bCbc>6Tr&+c?s?vgvrD+72GBMxTCpp#g(|*ZNFPdyXPNy_V!)+Nu>UTDcX->9f=F} z-!C(mu+H*9mc{kYMLhrQ1+;Fh~e_zp8qXH z1zbh^_p<+}nZ1i?2T*mCI~AP&Kbo?Gw&ectzc&y4=btL_D_n7uz4=xDzq*X(oKFM%ZgM(KZ436H(|zn)?J|4jU+JpWUN|Gy^w%Q!93{Z+#zMwmLS zLNPv8a90gH2BxK^9(SWM)!kq1#oXcLy{r^v`B8L)qzCzhXC*&YeTD zxU@8KIgNmbD58D5+TKckSJ{x3>ALEk!!P~Z>fzx5L4i=1iSWmlNnIUp)?nm`JzY3%*>$i12b@@o?KUuDEEM zhdNN3yYU$LH-}em>}(@Ft)4w+K2Lspo*ZH#-g@6gWRAG{{%Zuq#PYJ$-HL0L_v6wU zqt6D{SjXisT@Fcu)dEX&XGOW7KMXnRiu+y$We?1}MGR}XO_(WH(*SUJy`Ra4D z*w&{GnbmHcO?o0Qdq8`%nqMUx(>fB9Iq5?DSXb%$d_?&wg(3K4XC4X{HBjc0Lr=2$ zPVbjnlkK1bZ}egmUB$Z-yOa7kpN-UM{`2QEU%|RShIGrDtIrvyCnc9>p}dInjkVJq z?t2;{y!2W%`ShJQsPK-{YtQ=<1~xo%ha;Eitj~o@p|uTKjx(K)r>-adh@{l_ zMfZPXR4(P)>U`R8FkSp0ySz8TySFcBRV&5xk&zb*)V4$Nn2>D2QPg3uxfwUb$@_g| z(f0$Fr7cr?_Oa;x#3e`CEfKz!ZXT-l{V0D^>qv`l^=L&_N7=Dx@c|frai(=_{1xRz z3+dXL-+X|Lsa)I9Q!H#ELC|CVCBJ&5V`h2d55CZP5uEPr$C_ss+aKW*9TIa(S!{9* zbg3XzFI2&6-SOsIf#4OaDti>8ZD2y-kucWDZuK`(V@+3ijn@ijO(6dLl?1Z!FbH*x~ayNx}5 zWtbALrnS0r_67^#iX*mqhO7|X#Mk#vwV3V_zjfN zgPL{%-ltca>gF@_qzt5$i%HTU*;=bqoSY|9t_ydS!nF=wyI#U{q>NwNz0o*1IEuI{ z_5fAf%!mvpfa;gxNP)p{MI|>{m#J{YzHEU4L~bk|%J0KIaX2|OB3@I7(BVoW`o0}H z*Wj`FQ2>T7!H3O*t$!Bv?J_uVszv)PnTI?K^Z!ui)jiNHwwkY-6i7V0r zQEH6XL_r=b+9??Mpa{PNt{qY8H{ubk@8iHoy4+5B*F0PCORp)dU6HY;#)aJv-#lK3y`{Uvy@XknyL zLer57U_4eSGLUxO#9vB4J0$$euN`(#IuhkCN&C5Q#fWt(D2e}~zVlZelr|X3U=b)U zF#Kn6@oeB&mSze)&(6 z;fiqx&@~WzdN0kt2__s$;=ib8I)}>at&r44ER+|aanF3596llCmwnMZ`% z(d0|n1A;bW-b&^05U112@Pr2|^~1@AsChm~jV>I=xl#%mhH-gE`6OXsqt>*Rwfdam zk1yMz=7!%w|1elaA>ACcPjaW%QZ$#5sGiLFWT73cnH4M?TG@*vWT>o}pEx^1%0Q=^ zqQ%QdSx+ysvO%|{m7T2l&3ezi@!JK>Xi*J{-fbJ(RrxN#P$QUt8rENRJhYNL44EFe zJ^20S6!U2;+0^y<;l}0l`EDtKLHoqN;RlCaU}?IEg3F+fz`XUi38GceSAC6ru^Yj9 z*+$AJxgD=#i1dUBs4%T`YnUth#WjKQTaLmzD&p(8mU{XfPORQQWD;E5Q- zmScOYoD;%{xjFXvJCNCYUk!@f%qCQ>b>DDu;#~GuyngZc*7Su4@|)f`QfZHM@FZP`vrfSO-o{ z_$&n4OkL>z=uak)K0wEMMzx2SaG$^PegOuq^aB$16j^TpRy#cu&luy;UfAzKaJYwP=&mY1U? z4zH@Y1WG@tA1Jz6e-gIS6N%A(OK6hJi;o1l(0#S+1BgP(&LWV!$s#APn|r;>JNkSi zx;B#}gY0OdKu}NqTP`)ljr(0~LGPO{mj{ur;0}};)!K9_t9fyxymgC)E0!&5wHv~F)()OZu?`=NKPBel*iG3n#SB}H8@Vt z_s}T>Hq=iZCV7X~a}%1?fu_@?KzVuXgOxOEG#!rh1>1$xMvHRd43qgO?m z(|kip@dd-rW5tvJry|@pM~MQDIFwlKg1?mr9#tK2#Y%@4ut()&2vbk^Mit8D20@_M zJZU`WNt&il;U?WqgdI_o?c(xg}7`bBt#GK`&t6F zQKOv!Cvj$pU7Bi;y|=W2Yk+#beIv{at2;k5lEYg6yO{Z34I;@aE7m=pE%{^8sq(rtkj=IID(G%ex(*T3Kse;rn%)>!)IqCf2Q$fZVF+M%g!$w5JR;!{#|GRDy z>`Nb+3j669^r5L@jtQ&xQz#lW{3S_92G0gI!;r5KVX@SO<+A~<-VfEbk??)& z32~Y*^ zEcO1^QxGI6z!O=M0xY5!+>VpuCp+}ggFQoKu=%s=>k`*Y5x0e8g=U!w#fFYT4(0wy znFohl(mgn8x3V4}k}_=Bu2cV4JrlxMiVzeJY4~e)ccf1vKJ8dvQ>uzM8(I2)WY8Ux z=P?)vebYh4$e>7D@v0w+k~<-f174EuELW-n5@%cW?dFt@)_mp>#DW|=Z=z#&7Pobc zE^D|MJ@G>z;fe-2{q}4X6m{BuS$P72+8N#r4O#nFr(2Gydl!!^f}=`e;a+Kj6SDvj zw^`ZBU)|k9S-Yat;o_@4w4##TqHDZ}<$7@3J^INmdFUGzN~~1Lq^61}L6SgmGD&Rs zBaPn;yYHdQWLTHuSMdn%pj?{OxAv23rWbU*dq5(KS~SAEB3KEzmWSk7htdW? z&*q+qYqeqW+*Af&Qz*JL%-KraILo+?agX-^L!JXx9|Ettb6& zA)iMSx3oyq$DQ9(&q@Y~8{!r`ue!{8=)Lx`Xk&onjRzNlJC~*3^~u(WvXbj_2Yhgr z!L*N59P-q~?e*oEuzvl-P^t>sCDsT|`gZaO^& z5d^plMILWZM&4=V8Ilkd4xz~>XBE$mxzO0`#|HJ317vJTt6ChX5M8sQ)9|$hcI=La zlc0mrTuWPRd~1i&V3QARF}UXG9B7m+NM3$i>p?!OM5h^Y8fUsSR*0Tf^oC!nw-~!1 zH5?Pvk*VivC9;H}WuuWYD+d_?C+n=^DKwfkcg;3Rk)?E#6{YB)-*Ia(R!L{$nnUL8 z08SqK%th`Nn%yGfk)CCDdM?9g@`o^5{)Z`}HM^*0pq}6AS}PyOu^IBcM{nNEua7Yj zE!N$^(^xlKR>(Cw+b=wy^`uPrwx{CrLN~zWt;gz~=Us@_L-CXss#1-J=)_fzXPs*t zFZ%|MnL61W_4f<@eWdNt3tA!QgNYyDLWmQ>Zmx zg+i#;k{?g`%cr~BRKuOY;+cn{)SJJcg9AHidMOnCt*dTxmvg!ATFoUPQUvp6Aya%> z+NKy$VMB-!_ozYBZ?te~w2u&8pmZ%l;=o9O!D zdzPaLoHLwDTJc$h7O#H0`50=x1@{&y6=Dr7a#wR_^|EM;4n=cx{kL<_g}{0e3RXA! zsSz^fWwS&v#cq*>e5jZD62m)1wn|zN39Q>_t?~X9jz2Tev3y;|s~OixsMeQgSCLO8 zQ&}Z%0q_ey^87uL5YEd1+#^7{tk1Fp|bFAUv8rJ+?+!a7xV2n4jAu=|WwU)Ph6_9fbLhP&)8R2OwKX*r~ z)cvJ?;e67^HHyx@^YQV;=5Z;{@(ZDsW9Q)CasiQOXU> zI+kl~z@o)Rg%tcAqG|JU|M@zqK>ygK)O>rZeZ>%2zBTMvCPfM#r7{9WjyM6KiiR~K zSiG-)@}jXkjhDTiEtKMrxEgymB>HHqwgM0|3WA z-ZofZlGhQvQ(u<;u>JvO5EDP1EDXL6cY$J|wgz&wJOFvzmS;sKYRap7g-~+b-1fco zk-JBqg~bA8r!4STD9;T#dHTaX6oP-b5Z@UUjIPf3eU`jE6Af8S2*K;xb}5KzYx!Aj zXu1mZM4AB1l9=|IIggJkj6|ODOwBIfWW36)5_gE-Z8SXcq&02|Jw0}l$q<^M@iMh( zST!8DT^dxZ0zcs6od*x;|4-4zJlloeCS|t0RRo1YX`|}o z&$$tyL=e7C!Ns{50GOho_~qAkCjdN3ULsod7zP#^Hp@1|W_vBczWjL<4SBii5V?)P<{^{kw1E9% zdS%=y35u0Ygbs;MQXl@Dn-Ai0{#lk#S19>&G**w-_fnTmB_rCsl8^l%YnZhp4(Vp( zB!BOIh2xU}MbV!=)3|Jc*XKTpy1vtK1jxk_t-?R(i7DT2p*jxucS#D33Cr-2)`%mWKU*W|K z)$ILy$Y3Wt}H>DShTp^Z^|LdxFGbA_asI7dzEhT5!5Q* zpZKtg1R>p?y4zR6cX|_+O>K~rwmS*5n6P5RYm&u>FWCfaP)ZgVs7P~b% z+EJp#8Z;K3xRKwJFu%}?Md9R(x5yJ}ZKWf5hxjfp)tJcG4e`{xqztcej#jArRwe8U zS2PL7wEjkghFsY4o|QlBv7!t}F2*7AdC-tVr}&~_1K5|bDcl2cbe4`~KB%CCFlrpN zATY!zk!ygdfD{zd;S=+w#i?XKZVUPv2j3%Q`rdWAN8<((B)D363$ml6IGVCKthqz3 zXg&2K=n~oz7lIQ{FvS2gI?~M3<;MfSb5g<$dtN#|)0I=dv^|}7=HoUr4&A_)A9bVb z^j3-kaCNsl!~$5xefc&CU7w*6={qHyyIe|{|K^Mz1&NYzX;V;dHX1)|c=ywye%`Tm z6SL^mb)=h6{{E*aKX}<(-jWiG9*DF-=-OZ-#WB)1l|QD$p9G9Jk-=4{6RnPnq{ZzV zymOf2a*g6mdf|qE*Ey&o5Z?nQ7)(Yn9TV}~(U0DeQ1O%J!<7FRjHc<5&zQ2{l>7n7 z7i(N%;vWIw#k=G?^g%;g(BN7>WUnL>>C1P=0fhG-e17x18l;(s1$6_1BErpQABf6A zr;4q#oEfq>S4gK}4co`5Q6B}c0Oim`lDQQLxUO^n7-XmJ#mlOnmdJiuH2nKITDDCO zRcmYUgtj@eDp`?InjJfb>6472$Mk0tI7<}{vak9{Q|nO$&n1%pHnK}cS>wb$6i3j0 zv&9K8?J@}!ID8yJlXX{GG>WiO2uxk<(gWMXCoR?XM-?DuJb}U{-~hl<%4J=ZIb%I_ zlwFmmJ0g3!ROBj1Qm#4Hl`PRO`zHf5Eu=w+S{aI7(G4I9$VGN}{*e zqAoI6*&)HxW!5`dP#c*()H-hlMp_TNK*Q4T$W*{;iS)&W&tZz{pl`oBY>poKJd?d| zaB8JSA=%e;C!9RsJ%4epXREcLS@Y2znWg6V6{%ftY27xAb#7E;z01}lZz zuiA`xHze4vmt{YTBJa$7p>3GkDa71ZTUiNg$;1WG0#6f}~Pi}In-rW1F zyQ>+7rYs#9J9QgFv~+U1D`l|342dijg)Y_D=u;2}F%N1zUz8#pX$AVOo4>-kU6pW? zTL7<~Xh1TOK@wXOrSBp{q_cRMWKMJ8L_8*)H51hFs4|O{L7mVUk)Y2KEn-IBpVZ^l zh@rToKFzd2Yl$J!s;1_T5?OW`J6kq4&D8@H2R#rsV%Y=gtc8?HUVT^BjC?s~jBJM= z=&3AQMZScC#X^!tcC4$HS2U}toDbbmy-&f)}baVM+NmwYHA8WeiX6k zBHj?1NX3vh4AV9wsN#&NHfU4&*^~O!lJI=L+k2)GYkelF>d14run4Y=v^CYa)snMe1pFe|0}EHl`@m*xz}KSBNBpD6u41*u=2$XKdc6sl`mMfiZ9%?IDh z#^KC$wWei8*#qx0yILRzKEO1O#30Q@zY;XiX^8qn!< zl@mjAZ_TQ~Ic3EXL*P#~!{3a3j2wklH~5E-r&L8#j3q-3KHFWD-JXt=W9%mwII}c)=KM#978T^_ zWNjbgw}eIDQn>K8ZKjrIK8b1ds1AWZZ5`NuedX|9U%6x%fb<3#c3{%iV-4yr(I>w! zlsq(B*|#kz>S11omd3#M;iv`9>u&W!s>NG9QsO^8MO`kvMo#f`Pzi4_TjxatXAq)R zax8CSp4eeN6e^ppQKmFS?qG8^0;`2Rto|--H*JY{=u_wltWT4))pvteuxpYYRJ&b@ zzxiu^AYu!vd7TM|sb6cDUu4X*j;dW;2H<`n9Kd_~F1gu=>7;(ucT(9MG2hR?C*n%M z@M}qrt`eRVg0wn>9G3^m!5fb_LGEn!5y^>5BTBRT;9Y7f+uU?^Z5As%V8-dh?|Np^6t%>`Fps4J2+8`Xg-8% zAMhY(wLedETY8ePt0DbU}@^n2AmwM@A7xA3Y6xU*AF$Y@thcDRz;tu;Zo(W zI5g9l$4YDKD`UO20VCteS^*WamM3&-X2a|SdCRpHt1)G!fFKA{sdF8f2z`3W%96Df zC7$r389*v0_95}YKUfly+ka)I8Cr(fS#eZT-%7pBePNmp0DC>PAP3fPVP{P|P8hp=-J_ ze%Ntri%U{nS;~;$D<4B9kHjbHDCJRT2uLbEHm9dOBIanO+fBmSJO=me@b?cWqG1>0 z-RSK+#KXF*m_doR*Bc3mZpaHx=^8|Pl%5wcTBFt1HCcFBT z&d-50TqFn6n;|EVl5LcP$~4;>>m+-@pQdwMi-FwKppaEug2mhxHSl-gkbE9g2zkW_ z(;ap4e$0|db*bIY_mLByn;BjP{PP-QM4jVS(HbpWhQsKhxU)K z1b=+8A7RtZsS1$B>pylyjMnV2Zd?pOBci?E|H5DD5{3zpkj((=5#*6Wco7Bq?<7ZWoB8g;Q`bVv)fBf0b?+ARbYZKqI4=Q3f>dqV}Qw z{dbd zHB>QTZO7~YRjaI!{CvIuII^dEIwXDdzRTw3yg%n%ki=Sc}Le1k@cHedzH2MJS0(`pDg@}RqI!uk4QwRPgph?!ep`NH~^nZ)0QIiM~wQTWy zjzcrA-b>f9KT54PKNPDuq(&vSs6LVk%YNHvbbBlmv<=}skA~>00!s{<@33WX%OoA5 zP`>~{5&7xR4I1|($z%K9et-XO`<)dJ3d<9?9sYWh;;D1H5;&Y++N-STFF8C_CfzWh zj~4NnoKiuNk9~n&4jD%iTI67@+?ddGLQ@ zo=P|XxGH9MbOoY44sfZ^Q5n(GhjKN!&4q%z?a;tB>Oi+e!8Vdll059G<9Vo@l5 z3pr8YnE={>{?7jrZIok40W^qWH7O+Knc=MI|B_b~47V*d6* z|GzdHuqhbr|gtDkZ*3`82TP1|;bWfNC8l=lwrRZlZe12X(+mb-~F3Lw#x%crpd_G5D`z zR~*Or-&XQw1Rl**HvUZ`saq{rV$_Y+-J^ltFOKYCLSZ6_BI^)X_aE)hgo}M6JJWY; zbvTUfM&%r+CS*jZiyHKwqoK=g`Xz3C258n~>$m}nMKy<=TO9021$Q}%IR|F1z8%4DPILHtl_hy1E0Tc z^;IZHz-wi(v!)lsl&-ZsOek0oUVN3+u(UnLGa?_fYwJF63eGfiJcQy5?^*(z$sb3$ z7(Hzd-rlYUVl2*ezT7;?$Uk27Uqm|W?gS5D1^AovsF!hUi0>6&s5vJ@Vh|_mbLv%pPS0R z_%V@%o5s{Z7tZvOG@Fen%bEnd8^Rta{gOA})}y1>-*O$zFEuPA>nVM-pSUN_m^wFGe*u0(E4cfP%O`Y`1RMPTd z)wm~=`Hbbyc<`OtCC5Q?i|^iPt*9broybwF0CsMLkO)_&t=HO)!0*X{zK?ky7nDb3 z_L_bvRSBNXEZ507&SWM2K;nPh&)Xm&zme=ZQ#wLiQ{nYmUQ~7gTwmTcmXQ`nf}4|) zQ+;bJ)!Ol8gOHSsFNu*J2~M^EMarD*qlad|=;<^3p0=LrXw3fO>m<$Bd+4c$c?_R(xX1Gz4226O%e$JlsCYpx zO&cLZ(&*hxzV{;&=+^@d$yOX-Z*Ol16jlR0G=csskT68eXTDtkfj~@2NJu!mADq%S zg6+z@ANzl3UWx2ne=>WWCpxmiUgm3KA(pQ^7#*Zw`J~!=4A+3&ILWL zi%Iz0CLSIit@VYrCEjWz+}^sRv022ArgO7eS;Ra%gy;CT9TcVkd4H#I+J5VNm|--d zpTKK6^Wf%&UArH19o`feZS{9?d%53Jc%ig>irC%VW&Z4Q#pzqSE!lRv2;Ly6c0PjS z-i=9x14)R9-zD9D(&8RV?^(v#dj@hEzZg^)yx3Y;eDTpP8yc6BlM~O7+&QitM?bMk zqsJ;>RN%W1H4jw~xX*{4&scnfp0ikd*<^Y#?0)G`r3a>&c<&z{r(~JRFu|P zt~$i-K~d^j(@~TwWiZ%XrvMXT9vLc$hXq`)n24*h zj(fvuWxa2Igu4iZtCca^C>9g*I1LIsUr#gp*s+=r=UC zw_gT=f)Vy=Mi@~8T$|xnSV@*HynGh}QQiQ_?)URzjsr0SkVKK9c$u`qXrwWMXa>iJ zlju%LN-JtmncA4^21KVjq7e~aiJ+&@J`lm$pZe`Hn^A<}m;7d!+{7R-%ry9#b4dUk zxzEhZ%(n7pV;)dZ^5|oDj3vXB$IK*PH4PdTfT!@;_2N!cHWC@Abb;@W@%tO^*gE5X zNx>m~qw~pa<7BCEoWo|>oT>df-XQMz&sI!%X(?S3|2cN+W(3{0d470Xc$?@AK&W=F zsC{4RxqenR{F%}AyYhLgZ#y!b#ehlJ%ZNQExZ;?~pEIL3*;KG0J(=vcPs zT;&-XNu+%Kc9~m5*0*Ags04QZq!_*5EEtYN z*AUd%2y69!hjrFvkKZ7(WQHj~mWf0YOSbri?wa?k&1k8?8kLc{DPtW4@uCaRXgN#E zd$;Tu$k9-@)_=AOJ(-Au{ASl`*O;D9)3fSuJ$_Ii$vaw!95`7M=!}T!P)4m%b$iYU z{ilZ5c&e#XoV^{ezK#sDkYl(JuDuJmz1Ke7>cc8Fg&r#8#wyu;(M{-#!lz{i5r@6? z*oxu|AR~QF4X0{4Z8-yM(D z^_m-GxtyzRMpXy~aUzO2{5ngZ{*Vi8URWHMH}w3}GKz`WzZP3vZHtwD1owSF#oXIU z@49)?tzkLK>or{cH5I5F*-Xl*z3XQA?ZO~Zn>d+#_q%bFI_X%mvK6co<|~Sc*gu3? z1ODV5|NS=LAtvcx{(s4MFEjc89=(E6$FtkrMuzz0ss5H|LghmetbVX zYt0&G4a+&_?6c3_*S_{X`v(u0PpSQ^=u3b;@CsZaS&hvI3c`Y+w<3<}my%TAJ`W6P zA9TEulYU=4+jA?>6nPXIa9`Z}r!4v&=~YF#PUYlJ-n8e3viNt6wo6R#sCS>xBr~y= zr?*th$f|(Pc_O8&w;o=1n`@3ND5okPV+G8}%HB>f@+bGDXe>G^A)SdE6t%}ZUYxWC z98_s_&&vt!TZ-IMZd{BLZIdX40E)}&O2~)*HTnXl4UC4bZ#cE^=VLZLM#Rqtd<`IW zt5+3$zX8|~bdl4*r1H8>fxzT4nZXeY26;XMmDcqr-!R!UjdqR_rg~-}@g(0Zyd^q- z>iBf>+gJhxF>5`~qKMC+@G4^H8;f@G^KY9YZSAwN{c2ZN6c_~oPZe@(K|%!1^xCz9 z%Yt0oXrS*U;MV9v;3^wyEMr zk2(zRlbDcO$4||A5lc!PS3$=qs_V7jM*T7G#k@oUZ86!+`HQL>c6raV4DFG)D`L% z;aIa^Fo3-uIx^nud;!~#ZaNLzybR9x7P)j zBOax-+=|4j*X$5RBCw8TO3-!~`~c2FM4gKD7n95o5|=A3`(&-48YHDSvNnoetx(;U zNP`ap(fJwb>VhMVzKUSO+6tJg?N!cWFYJLU$Bth>4<`uwLkh6yLq^$jBox-wrk!af zfPbnF=19An%r4Zbr%irDI*Hl>)dxNJ{9RX!oZ|IE@L=F}lRe(~tSB18?cOe#n+7uk zk|vU|q1L_dYu}8DaRe^+8Agap|6K7^jgBe+aEX2S&Fw%g;D#d6)jZLKWtOIKyg+N8 z%-gxWFrNh?burU;i8HHVw8iWAufe}?m%?Klfy^?zat}6(+>NaX=ZULfp;&AevQ+Du3IPt4``)ppr%7!0f{Ywal5xd}XHv53S%_p! zErH`rE}&N7E5**bSMP#<&|AzuX%!+SsBP>W(QkC=jPgL!Y0usD9D^9}G3#)(3bhP< zbiahfF@okJ$e~k<1A?=ByzQGmD;N?Oc0O?GW=FcixbReHN*%KZ8(r<@J)AMRLQuAf zb*;;%5_0di$;6V<#Z|7~~&y-87(`8P^of?bK1CJUW@=vmuArc%msWZ(}@&>2$5-KS7|C)w!-_ z8$`c|$UbzPweyrZVJe>fn#l$<6Z=jx#~dyk`eIPFNRcJR0hfmwi{4W87LL?GJ^+HP zeL0Xpw2n#;-WHwaf^=<4CPg(1`kJi^H6-fA3daQH;zZM&n4h-Zk5dkOghue5IJWHe zTuP#in6;;O^tB7TIt<$AIHBp{Bk5P0w%oFyBkVAYBEeR%FGU9mAfW+ zPy)1rKIp^3!e@@O;u}H~haiY)fr^46UfeRJN^2JwR6A3d#p48MX-GrPct?i_E2MVzH7SXPin7cjHZ$e zx50awOcwLFgg@p1kVR-E!ohW@=(@JznRqYB)FJxfnZ#e++o(&@@hNTQgO~hL}!Ndc)T zFfoDDT-RTj^2;ac;v|SIz__ql@q6tuSaAa$88r32Eex`o*M-}GHx;_I$484GrjN3r zPZh@CjvzoIwdZ}$%pwu33pERYWI!s1iEnqe0*2xhgkm}(4eRjCPwIjChoP8mni?&6 zCo5L$3DcV2%M***vV~A5%O||mt-z2*(2vYJq^s{gUz#o!t#v>61W1tJPJ$i&K3)En zeA%EeKE9oGrO^UG<*_-z7|8b%8kQ?I=#*1B-^3O>2*@MbI0S945km6sz~+QZ7%pZd zPGVg{x{l)Rl^?$3UF#~$RRbMCmSoqeMG~%e*FZaa3h2uBARVij9y2)W!*itJE5w^j zZT!)WN!}En&`Dv2^PUao{l2cY-9BOD=zJqU5R7jJFLowmFd?94pbjR*VY33W>j>9^ ztgP~ygwSdNrL>6w2&7C^^1i}sIWm=YrQxFQP`h-VR@cOQLk+NsBp$UdEbL=aoVtZe z+u4^=f9kIVT~W~l^}%igsIlyA5Gx)j3;I>(P-lFxKn6R)nDsQ2X0;L|sMLcT_8VVS za_U#Jf~M30`+g}wenLOI2=Q4;R6yeiEs^i1eskIb@;KkD3$KmTD|nZjTKD{7iwF-j ziOPhcGcP11oNtd6oZeo3(&0ClZwSp|Ayrg=5JMG#$7MIt_IlcEQ+gM|DSh$Wxg@rh zZhPC{whM~dok3Kq1E0>)DWJ@w<_3~OA4qLCpW8=Zn$bxI2fut>VqRf(zYQ00MD(nF zDf;@v&d-Gs1Wg`chG<5bmG!?jU3wrnooFG!Uf zgB`dH+=kj?F=AQK(1S51=KzupGRn>1m`~7I8JI1K0m2)8`s_JL@D2e! zG8r3n3d33X?MAZORz){$RVS*s#oOD);aAT%rQ z6}`<=@v|w2w0pqo2Oa6O55%>3newVzN6}#m4y+xsIq!43bg5VP$A3rSB@j-?SY+kP z+o*plC*OAZu<&>G7hnsDiEhneah2t>xo2|H=s{>45FROjJHjujhy+@{D%en(2kL@B z^oSZ%4+vjDGqZ*lWmGL}CHyDd=xZWu#9MkU@oJUoZ;9`N-CO1GTC>K4H)@x)Z8N}HS@)aU=me* z&AIC4w3U>BH^Adjy_qXV zo5xzs7$Fqw+5Oe&jv9bKK7K0@Dra3WTp`51I$}1)#VDoQ=x!H*P0s~FlWhdHiJ2WO z;rwSejBVsgyTIui{$7ni4Rcj>LsoJX@G1qvbi72oMY2=kv>8wu9otD9troKwd9JG& zxo$e5l`Jgb&TL(_yS)sU85W>D55NVyJ|vLL4o87wu$kk02}dFDAe=yl??~xFq2#D< z4+G0lICabCI_TfgVkcu;MM}W^huy32A)D}X6HGV=QNB=G^`e*1pz7u02<$dA#5sN& zb#Qi_N+e~Q!xK^r$NiYCx_WoBWhI>wab3T>f^e@W<=O5jA`V>YGtniH#AHNzzD-P)F5cisbJ&F6%+RDL zXot}zX5BOkjvCk*PPyp4K&pj7vEW^I^!~T##pw+^R=agA?3UNXQ9ca1P+JD8Ir~EZ zr-Y{ynQ1`a5VPSJxW8k7%$(5|*H@5-5LSq+qv$Sx!1LZhcJ&;PyJ3JOx5@4L-VAcI zDpd+^@;>}K%vH~9RuRqE6N((Ijhwaf1)0>qYFYF>p`rBve?1slexU$PEH#Or>yn#x+H#mKd9#Sbf~FsOW$?hO>dl_$UF9ms3q;g!F_^i z0yT(~t|&SO#7PPQJ0g%D&R8&#E4DB!Ep6NqF?i1(y{M{UK=lfmMco-O}2B2bNomP@9PqXjZ~6FI)5s9k=far%vvH$?8u6}1vrnauj) z9#0!5SJ$DGR=L!ZMgQrfj=(4q;?eBt3t3(a9Juu2R!+)aoGWU;NTvgcSs?u9(>#A! zJj$J$EFf_JS~ThlK|zCYIYLG)v%HuYKScnD zJduF_ZE~)(VI{)^2M&GzeAu1gfwvO|dngJchy!01+YCK7a-6nAjM`jHdLG^q$H=CX zyueeE2JuzIzobYaA|hq%#b*o`W>rdFJMN7No%)=c@)z@NZasH%OFXyiY@wRc^WEKT zWm&;U<0!eOjc@?r>p&I3TMmq}Uzy@Mg$Se!>skF?=VEr_$~Hpzw!UXbl?)*`rU8zY zyn5wbHwkEc8lWoeeiT22X=48A`^{f*V7K5=O++!B{%G&{j}z5U3??FKllfeEGNB$w zM+AA!n%P^|r{t?)d6gA_h48OoDj466D!{5lPlP>!8LWV{;2yIag+I85GJO**HzWA0pl<+QnI8YbPURp&Rje}oLw!}#2vT~0- zdy%I^obh4AuDGt}&+fBtsS*QTCF1sOv<{!nW`%D$r|rmLTm=B_->$EJ=%aO`pgc0Z ziS;%!^~!0Up4QDa9lud`=7kWpkwaeuLRL^rAsDR{xXagded@V=l?Zl+l07aRr%(&2 zGGrAJ!l_x^tVJLfY9{|Of)|tU14fS+i{;GNvBdg|&P-nxmiDdRmf)7szpmS_+_Ej* zJZ5IS!&BJK%{Y-_K!c`QvrgRe?ErdAujDG9~?7UB8Egg>BSK z7*%!C`aG}&;%GN2a`N)T#6(A$cR;z4``BZ_N&X2#bD)n@+(4%2#FsB$NvbyYA^Hok@-|q#2O8RcX<`fgn;V z&&s0hUv@Tqyshf?{w2d#{;o$RV;>%y{w_Cd54s$9D;R#6De5tmCGHcmUak9pR#&A! z>nArcE~<)$M;+kO20Y_-Hqswis{PzMOMaq;v;Mv4$>+K{L9r*5lN&)cLR z+ds!Y8{7{`Y|iB#1b8Qd8>9Sje`Nq~K|9P0-Q7Ft2hGOVW`)U)k3sw~PmORGmlMiS|9 zXp}Kzr7&bs&KT>C(ZWBSaIW+q%l$e*S43%KW_ zY0bn4NZ1QY%a8K?PuAYP6vCJwFfu8v5?X6L4DAlLL^&6uI-zcD-#0_1Sb~NyFurX} zR)y4s2fYS7B>#qj12~UnKI9{>cl@OMw%W4Kz}II1A)tsr5FaHf4h$z(zVT)Jx-U;4 zd1oiy!B*oot?mSnrx1gaGb3~cfRvJF(8Ky&j7+C4iq`T-tbQjNLrIYbL9D8RKvIOx z??7|sq6A2(&G?_&-CzY!NWMd!B|f*t1{KnUJkPgO4x_$XFW9Dz&yaZK!+3lj*+|Ry7-XtH%`EatLGDHw4 zeloO}@+`voHx0^mhA-ERuW{vB7hXg1#?&Q$H(xAs|2mv7rjvyTlj`fgmO^Hqu1^90 zp&_nkJz7}I(-ZP@det_+E*zqgh5aA}oqD7DxMy8@ql22(*=J{O?l7`J0_23Hz5}%( z08|{6z)BU+2ts(Q*D`IVo;kVcPJ(eT8HgL*U{77qwac@uP0j|` z#tBO>JBml!bMg-rivc20Ob6-)y^8p}k*HRRPPWSs1<eMmf> zIvjXW7c*?iRJ}ROxeYUd@OirIoIulecXl#3IVOlXXpMA=v30igMOF@>&ONiH%fgUn z$k-B3pB>!)NYegRl8;?N&8@2F-FpOcr+H_vj=aF82p+^LHh23C)6E_yr;eWAO-=D3+Xm+XL+ehK88$RSCP&6Xjv+im;$jT7zNZr(KSK3tPv>xRHt06CyxLGr@AEN|HE zIX9DoI$rgh%IBNU)C2t)s3V(OMZ?J=go6ryl10NzBIrFqO7FGky!2y+83L>M1W?Z; zXR@dBOGeE5C9-IZ7<}s`@}7m;eLIYNIt`JW{xnk6E*={m&dJdh3baVlo1dDeY+G!1 z1Hx9DT3ImizL{Xm(-azlil&FV5FbUn97>APb=n$zvW!*4vC$M|= zr+dq}tY}I@eVE1114fNY$Qza%OZ02lJp+w=cRL{;BBWL59$w=%=pFRSkv%6q!(lko z$Tetu^tAs6BqED8t00BLkItCE3?c@oM+5Bwsk%C`3_@*mdpfPe(|bX}pcJo^0s~B& zwYEI(_0_Fooi)N!V2!f)gXN*YtvR4U<77cVq{#;^!oLM9A=WPT(pv6qk8Ix17Ms6j zuiPUZtx9U|5wCdl#HIGa0)u4he`Q}Ce1s^w0c*!zq>zckcqJxwq;kgQUKr#fuF)_(JI13Y}!~Evcf-=e(B?C zIvDl-Q?uWl|)>`aM8ysN;oxeq!MC& z{XGja9uqu3fAHzhb5He!+)gE77is&H=i?K$wlp7bP{$?Nv#bKA?ER=bEZDccny<>b z1_vnf1bJo#_abF>I{a!&zNqCC$=$*esM3x4oea^KZ}zfeSGNG}4mQnB=@}S{HR&c1 zfV1B(yU3}uX1(5n@vwA93_^Ge)WY!-!%aST#<1VB*$Z70jA4l>UV83i1snmi7HNzPRQhUClb+Y&1z%euzbX9mU zAn!m#vJf-W6+}>6-42bcvV}C-R@I3JDQCp%)KLKrbo`2P)UwG{?>R3Daj}$wkGn^6 zt)|N&CK~jmn&eJ#yW(4~I^zCg&JPwfl;!}T0#JIk zDR4e>+)NfD&{t}$l!nqp$}lW>eLA#R*K%nGks!C>;S0Oqy2s|MdIPW;ug=!(vclV8 zQD(H##5I4iy!L5hr4bWGKAfs*(U3f_$q?y~^}Fv${%t>BNF=_|!}J-VTL4kWbYlp~@yM;UBhNdz{Rv`3k~U7` zvqK4#ugtH<>zXZYlA#Z$$^U#$;zAX}L+H-e_}o6ONpcn!R%PeIi{OVME z)b-|G@r&~)X*9%rqHKwixsY7RHM$t{y^5c_^5cOP3|C-e257I7fohON)g&scUy+rlEa_MP5Tco=tXE)Zm zz?_K~RN-o1BqnYhYmW*KFV`ARe-dsPAz>bSNoHKdM8#6#>}1k;)g0 zod*!J!}Hne8Hfy`C(+Tk0qWT!ZL;*%D;qS_hTiIrkIw^_N*vUSk|{jm~LGnz)mGFoW+cp{Ur%eEH z4o~5@7sc&6k9U;0?aQKVB=Q|%^<6D%4LMPwXMTOLDk;<4Dm$yP{z$$SXBl=J)DXn1 zPmbD6gpgLiSN<#xCqGB{5%_<{#XAONjREa~hy4NcA6~i7_@&@fLS!f|xl|F|)i zdq>eqDGcSuWIangU7@Fv8YDQG8U|m=v*e2Furunr-u;6xp+qn%( z2YHRr-+09vEU21e5vsAF-FHEcFTe)?D#2 zrzv5$0(+zK1_{Cy1qeu&fN2yE(^?l+DprcmWY;eQnSTxBJnk1>eMhu{)3#%;9Y35O zFJT>UwVw@c!eBn+&$7vSvNY&-Frr|JPY0jDzwZ;xLeV5X(oe+E-03KI#vVD`8O`;j zr}^whSy*|Gr>&hF5Jv;AoJ5dn6eKT+07i3IZt|jIa%8ew7rIoOB`+*YHdsU&xvB|j zdSqTVP;XaMGbAF!okM$ORXLPfZu8UqYUT0UmZHX&@CeO-J@K8k@BQ#XRwGbbIXUCk zos}!8i#eRH!^}wb=I(Q3w`I*e4mnRJNoY@!5m0+OGY8{5_GYTi!U9T|8d&#!L^YEl z1LX#rzUUoKEl;=i`?sk~Hsz0J*IhR(+sykzpQ+zPr$7u%AEZP82l60wKwaqBZW z-o1fT4Wfkwp7OtJJmfO_RI?}Ythfn$d^oubM2}@aH+j=sD5^`t_x`p^DO%hats?^X zG@TO@AMQ5X*Ke&>Cjk5PnzQ5s-E!!zj4Uj<@vru}k-PK4=0slWsK!i`PZRag76Hc= zZ6(lv+T!Dv3Covh%O9AzNfjh#Z1RWvZR?EoF>!MBT??m(Z_kxt?AP}o*h+xc-%v}= zNA3MI9)dlEHrCIbcY^vv!)@hjySExvX>SU|@UI>QJtKrGgr$c;@=UNB^bNv1&i&?% z8kVs4;xEF-&jsc2blkV6Ytp#DSSNeS{X~+BtO$`7udD&2o968d&8`bcGFAM~6G&>o z`lV%K&SRpV{oKoHc4HoUQuz9P+HAOf+<4eV#fTt$`Dx{5*QGEG>m% zNQ4IFNM(3?ikRVNG2YsjQ&p+2j(bBJol`e^p87s|^BgDlg;4Q7V6T_up%;8@Owe}9 zPNl^1&qnV@jgOXJiJ_umf(6G#p9$fwe=5Af&3)c~X1ijyYA_zF$B9iuu2 zs`4}48jFWT7{G!^t~;>PAQ|cE`q|2$0y*!6MMcnK;78S&5To>;7jKx4K+yM$K!nC; zoM$7=2n~`Q!iyq=M)1Q=R?7bx!upPbGSR{T{y+OwB$x}v$CF(xkpfYUKIrI9{NE7z z-FNP*kRKJ$4WiOKKb&0lIi`~*IJp?6IwQ&d8sbOtE%oyCJz)YQL;He=&Jb>8Ch^J- zSO)2z$aseT4N)D(aJwiC8z4}xVK$UICxk!!sLJp&}gIZ8yQ@V_Bm(J0(mgKj+hX|foXGqYzPs0a!>v>g!Yp= z`}I38dhA8@Qx2Mc0fr#Pv3)v@ggm9vLrFB43)r#uA)c+d7jrwj;`a}tkV*YvdsWeD2 zno+Q%og1vf&8jmgMLt^R?~p-*ZmsRJ!3lwW*Odpa2N)I4cOEN&XtEw>WGjLSlnlBF z|ABosJ2U#Z(hd+CD)Yg9DjA&1H_Aue)^$;W%CKg#?=pYf>Bx0GeRciS*n^3&RLGym zxBnlucntWV(4^%${HdL(Oo5XgY@He57j|SrHCqK$pU;s*oD&m?(9L#1CYY3F!$V8}drSBwIU|n(C-=je{3XHN2B-n*AIBY{1A$u{ z3nchx(X#7~$doEKTkv0bat*r=$?b|I8ybJK_*m_uru^38S5?tb1|k8WQA}o-Nv8@g z928aj$a1Snj^BY1<0zk=8QWsQw5h)tIIWh)`hS@K`LUnWR=@gMvIOsO*?BZ(h>|&M zmx-rdK3Mg^;C#cV|M6oMVveKwn_oqeR`b7xj6S{f&Gf?$fM5Ju&+=9el(M&lL)l~C zKPExt6_B#vC5e>@-5uG5lw&WbxgbahF}CaW8M<;wEMoBP@9w z^Vzf@CGHdA<5&c)-!zN%##^giwLj&xZ=R>V?V5V^hLUXeH6)`@@Zimzo-qKNOY!22 z^-CC{HJr?9ZNLujsaPBiRDA7g`x*`9UH-XzE`t;J;6%}yp$}I>X6sD{?@wN_8{AN` z+FX2+Jv-rzc1uk(0%!BI9A|SpY0qpwbs1EK2`f|pfAo-W>Z&KE( zdb~aST{-N{_3pKGKy@%=A&b?MU#OO8d_K79*pSm0o*hg4x!kS?*TEJ)`03Ndq$UhJ zqb%fH2x|MbZ5_cD&MY_teekzfxP2beqku5C`j6GWIw4Ol0K=G9Fm!kNWanBi^yNV? z_Jmptx=4`8Usi0cEbT`;aE*js0={}Essh37Y`MQFy0OB04 zKBCYN{>-87s-={MNIJCAVle&XCfT=IHM$XIGFH{`KSntV_JWW)@Xv&RmL)&I!!Ki> zZCbx+H|CQdAjcgERP*`kmsuw-)L9ds&+zkhQ6x@{*{{qr?AepOmym+Ok~f%yHbPKk z9BhG~cd*-c6bdj&WU&;hXO>94u{Z}sw<-__qK=bV2OKYaQVb$HywfOJ5?HY+U%N?D zyJvI^B1r9An1QXH6iGKHRMi*{v9;o{!qI?t_y>r^GNUzTq1hfkHS1*#zI8|1ih z?D7&jVxPetdcDSPqcbZKN-A1|5?mKj&LMD57T&CQ;G}=+BtzP9d1Dz(z6eqGe^J1> zg)_zfV)Dt^gY{$hhi>ebCfn00S%Sn^_C2}#KJ-h2nf&cjLsKF*SS43|@_`7>e4L|li)#{!uis!OVn)-NNv)Yc!sD0teAcCuj488OJ zSvIi{@{$;iFuLDT_bA4HRa~&=%T&qY-V-!qG4bTS(z=2-p%9}Szj(hFa>t6vf=BV8 z5wwE|GXd%^UY_R!GHX9x;w>PDPi8;%X#$5`ZCeL0HyjT%jnee1SIt%L;s#xs`l$ z6vtw#$P?)aCYR6MO(T=E0RpFUQayGDSCmGLV_|+$AIq&@Pabfs@2zT0&@1;3DcbpS z;^g9pXwyaBEs!{9oB&R%&%4*Ul|ZGv*I@H-MPzyoZ-3M?*nfOqQx`-+dH60j$Wo&A z;`O@BiBeblWA7He*$-Tj{67Zm;kBoFGY-SFwoV?qVX80m zp5q>!FDx9hY`8hV&#Ya&WPh|Ki)Frdq3PPE^w94pW+$`y>XkCA+HLqqyun@-7A8tR2q!Zjd z{c%%>7U!gTu?gfQe_OWGCh;G9?|zvz!35(Q40Wb<*hRt&U9-Vo?n%~n@!sq6d~-5K zu=h7YFH3Xl4TCS&wo!xWab8?Kl(YU>L>|}kXAKHg6=Lx2AS1~;CkcUA|{A5aET76rHL6s0JQ(ml}Kwo|d4S{=IDCe!+9qYPWJ2*N?9 zyo~ojAhq-c_k%z9EsBxB$KVaNIJpvUy?&kYgIy@y9e~HZNLIE@(MSYs=G1s)jo-`8 zXIl-0u4)V0;Iw{N^EiTbcO2-0wDt3f!rP zKBQtzyDW7Yg%weJ#$qhVtPU;=@2s5;Yx(jOta_THe14;A?qOU&%xX4XyglkXP0jbc@ZYxDz{bf{ zq(9}%vc@vQGWunUzQxAb@G@nu^b zmPdyV0l+VHkjD>F-1T{qM~8naCH7^e5&vN9PH8CZ%wi~8u=K=MSN1P|m>?SZu($^T z!c&Kvzxe7|s*OC1Zw=<;b6q~wXM_S&ru(7@qETjSm}n)~yoPdN ziBZ?Bb+YzRJ%6`Q6gOktLAdZ;#&w`cF4wje40ZL~O)Z*uXK!b;A~_%jXMH>+l6r?( zIB%>s{k+d`6GU~1g1yadQZll*dnQ~M@lXK24j3Zt8&8XRo8aq7{05lB#=Mkiuo}1g zNbMZP`Vr34Uq$*|iuF{!dfZk)j_hAFXilv>K;XX;0da2cc$d@T4F zEfTe+Wbij{j3myJi?SNmX#ck9N-&r@nFgC~zkL@y9yf+W)}|c{HL$RbNe3l{WItCB zd0CSU1TQKYEqAn8AsHGc43YjRe{R8Y$auC2ZC;nwMO{cEd}wTBUg-=bXc2I_@skI* zv;7y7h@408m{|!V$NR&sHxl~Y`a2%efn;4Pu0*copC{SVdCFa_yOLwq9 z`t4HNQJpZX0WqAL9JlS}-rvsh_#lCu~rJpU#+Klt4&IQfi)k83g4 zi6Y=JNrT4b=&U4P_WH@-!cTu79I-_n*xf}~XH3Hf@CfpYq zsY88NZ^mTomC5zo7($fraDJO*e#O^n~vX}1O*^dvGc4*ZJ)m>fztJ|Qh^^5;Z^@(!TOmZ~@t$cH* z!)Gfz;oWxDm*BK_+@7=q@WQ!;qG~5&RzYq6M3JN)qh=74p@l=(>mhyhf`tQ}kRJfb zdc&3d^C)3hkU5}>DEUyMf%;gk43B|1RIT?B5L2km{wD#|%Q8#|j~FgSQaSqkX3#$P zs|w1U2Ch%{4OlipGALpq9=bG!7iwtQyS7VE?Iv#L#RnS9q$E?(6T*9qN^*mpwr=j|*vKOkyJ9K3^azClP2%fKc7R^nH_hx+~&oz(PU(@dzVb749UCac>^qntv#Q-cHlwtryI&r z|0Q_y8GvmB-IL>f^L$5hTRcF|CN%9ggKR`^39ZesrlYe~M2n?8j9H5*pg{JIt>9Uo zMC1!y?FXhYGWW0U`z@xNr!!zyC^yUY?gs};N64_WN+##scX6Hb0ukLm6-X}W zJlV=B)FR$nF}!!* zb8s4jRiBm$4ioGWl=no^)nh}HB)lxUwnLJ9Hg~iXL7kuSzt{$4kUf*w-hdE>w8t);o_a~>o-{=s#3W`zBhWp+P^S=!ARD9krEBBfkHx`dv ze=i$ALfYFLjop?%U8=E+_b!ObaG!O7ESo=QlzIi&lN!-03!F!##T7^UD!^Ia7@#_6 zw2BW)CrC8SU_TcN7}*c0Wbr%{8X{o#X{I)9Ou-|PN~^sWv;3pMs&9c{?-WtUIKktf zKj0F|h+y}TIlnXUu>kRofXrasiyOHw5k64NnQGi<{$SO#Wf+H{oScr9^m~J6>T**( zymhsd&BtqguNjHZU@%^On&krk)P%VhC^6r+^(AzS{4%@B%2|e$F0XnzF>t|U(rbVj z(K9vr*ft2G@;zwRkdlQL_C;G?4=IRWxcBT=hXKGg>XU%MR#L;b&uZ__?+?(QUQRh-(0y=qw_StU=|Jkpz{aC+?0s_}dGt>9;X ztGsz?;!hfn>BN(HI{%aThe1oCkKBL7{7Thtyx!EuXC5wrN3;;Cvl&GqeaQEW7!f{* z3#hUHQAVirjCy1AO}hHgK`-h3;W}l5P$OxGW0+{ zu;=qdqXA_Kk*Kh{CR#69OF8f3lC3iOTF}4R`*%lcm*(RErn+IeLJt8<1CO>;bYYgp z8KzDDZp5V#ZZ-YmBOBk=8W)4#9f2imjzt$Ci^3PZhL+7?W?Veq2gKpaiO3XWrQsyUX-dUVlS2DHKQ0P&yoMKG zPPtz!EP+NG&cDjNg$xUK6zUC?qY)a)Id0^4-aq4pUlm?hlmr;r-71y6G(x!2sMu94 zpf5C%DF*>;uw)4rnmZhxBLIwQ-Oit=1MtPIx^4^rU(BHT9^h7GAL{&$Kxq5`{kV;S zBcw6`)hK=)N50Jm7~}k;D<4AmpGS1t5rptXO{HsboZN#q>k)THwFU--X;YO(Rs$qB zsH>PN5mHQPN`GGw#1vfdS031V`9iEa;_5E~VC^$qJ3K$aV0^SG2eYps%Gsx$3ds=4 zc;&NgB~ZbTp~78artm&6t0~9F@1Oo_azwAB;H(5OPX*~=+Wc_-I}THWDp33jVhs?dQ;9bdny-`e0x;qd%D-5zWbjpHr2fO5PfDw z$Mw&3Q}F>8=AuB!F3Uxh#NEz7g1m2YQbiNS)zb@lsiGBiMw8!Ly;3+^yc-|S8l^&t zLuLw>*<=Bh;BR3Kx4XKm4o_709v49F<;{X89v~S#>8)W1BmYwiAE3g55rH2nIk+B* zM>YkNcH4}7RHs{g(sY**0_v*NO|%e@-j$ns@|R;puOD>`*RPj0ZX5y64t)J+^cCad zIpFED<&E3TK#PuFsjg#>CuVLg#cYN5b2XOyxe~aPzS~FO{SQGpG3)?n1$6TS;n8yr zstd);%*?QnI;)X9tZNn5vv7uT_f35tpak63%4*Hgc;x&X=NnK*4pePvy?taEmwuOg zx_STVL$K%3x~RJ&^WS$VG+@&S0}Gk|VQcRaxKbFD(SY`wAEpiJ+}f`Hd@Tz_ z1&kPuls3_SCwliGRu0g-iZd0k| zwlwg6e+j|>#$`g$eEdJ*->!j=6c9t#U+&D$|9H%Q{{H{Of9GLtOwa!lKf(Y1wErYv ZY&1GDX|wn>aOVa^Nls0+6mAmye*mBH`!@gp literal 0 HcmV?d00001 diff --git a/Project2-Stream-Compaction/img/compact_graph.png b/Project2-Stream-Compaction/img/compact_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..531b38dcfdb5fe35091cebfac7092d6fa7181c09 GIT binary patch literal 16716 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 literal 0 HcmV?d00001 diff --git a/Project2-Stream-Compaction/img/compact_visual.png b/Project2-Stream-Compaction/img/compact_visual.png new file mode 100644 index 0000000000000000000000000000000000000000..ce64f38f84c16c577f412c9f39950d93f022b615 GIT binary patch literal 67317 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 literal 0 HcmV?d00001 diff --git a/Project2-Stream-Compaction/img/efficient_downsweep.png b/Project2-Stream-Compaction/img/efficient_downsweep.png new file mode 100644 index 0000000000000000000000000000000000000000..60d90c70b0d5594a31e0a6390d500e68e35085f9 GIT binary patch literal 118154 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�O!G{K#t88zB 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 k`0a`q)MH7$ux}2%uFW$q#WxDL40{D z16J=Bm39x}e9QRwcrVgqa#9ke$NSSk?bNe2r&}uaP!dJI`_Wl>?<>|-52EEudE8u` zw@0V?wm82NAF`*qQ(`<2oC`Z~p9jw6?tV1) zZOU`pR0evj#qo=5CJ^R~QK_CI8uh#xk;k#7!*;ioMv&c0Z|Dy&lZ?xLI2{+~Cdm~D zs%!kIo=EN`YPx-)k3q-VUodbqx;2+FFc=IZNNGL$7oqHz*JDPXjd#%xDJTQef8}!c zK`3|zb{mtD5rr8ZeKc8fz2C;NcH0Do^9M?# zWy^Oz?fb15Lc5{g+g-Yq%ZfRO?s4u#@9o3fAM}2 zO&OG9)*6{B{2}Z~Bz&{;R}Up-fRelrl>F=0Sq}GFNM6b`zh0?Hbpi9o_`}T}fzh*)`5Fi*V%MIL^-ohS#v8yh+c2Mtx1 z20b0ThfNSgb~mfq3RpmdJO0)nbO*~Mxu78a?7leG&MyJJm0_*do_56VTZ5DCqmzxf zN(0td%&V(FV}!9prTuY~4%4Yssl9CyBJj8cx5)pzS3Q;#@Rh?5=Da@WDaoI2*tibN z{bRGSTwy+vDWGXE1l9JF%UE@DH<^9_4jaoMY*D5vO|Y+VnHKHySKt|U{01(ky1aW|g&#ohe zS;eEjb`V-?vK70l%xw9-l+RlM8Mu0|{hV2{7+-S7=JV|GW&&f((~b z(geJ?f?Jq-+CGa+2l%6?8Sv`?1991$?oU^OYTX;ze((z&SVuffrE?<6Z(Hi7h4yv5 zHCF01k4cgE6!g_%zMDhSXkKi45pdf9KGivv=+I?Xe?nt|#>@uM+ssT*iQAv+uxwobjKd!rDDri+QAK<+nqx1iEXD{Hf>SUzeSi{)!KPn2JkPY?3iTh;$%fz#y=M8 z;`X9v>^}t)T=sbh4ev~%_Ixz^F^e7@+Cd4-Y2d^jt`8HW7t)F_aL}(i3LO?6qb*%lOi{9^bmjuhjSXSlhS2Bp~ z(iwGcnKTxmr%|Q9!2Iw$s|Mxr!tNm-2QRC3LP2lb2ZVKonbbP*t)SA+P#S_CPtz0{ zS1nefH4*5&czknkk6TR({$$Jj&X2`@&or&TOj{Qrel0sWmXf+URl(Owv8T5SziOFnxf zj&)Ewdg4p_chCKceUG{dF24gcC4oX=W>d(PP}84&9HO!NdE5hry} z+z&D@4%zDuty~*!rPckgXERHNSugDWZ~^ZZ-kku@@iEiWc5KWTED6_G;8VD;vkn9Y z$R2#96&fw-ThnBO25HcXFOKW z4rUqaQ^2m7dE_LJLp$=#A1D6`J?tcUNucouvat2Rzw!~RAure(ec@fL_Ho+3OOF10 z9C&X)%q5UbSb-aakcNJpx@Fdcz%A-!wbq1P35+1MVe3c7V63~0aA`&F+w8U4h5@P! z!pJ2t)6h~^Mp}Zm#_DhM7(p7*C4LLdjvYmYYk^Ot$BDv_Ut!$8be7FFlxAr}dot(g z)c7BHWy$Y$2@;KM0%%vno%e@9ATH*d&&?z^=U`aRh=!Iy$kT(idFJa5PPcL=_HhHM zH>vZU{9d#UTIix9m;FZ6%bjLrgjkJ#vg3#o*`w$uv_Mk+bAX^szUo7et;iE=`Xq;Q z^9azqWt^fgNO&|hm6esc`{@(-RwE81W_xj&{m$1=81Cx^?XF*=m8lN0{kk9s)^T*G zvMQM``))|}LesgS=;1~#U-%E$-|VK}t~k$hR8(^1aWoOg$3uisR|KJc@Dt#%@=FEM zzh?LvYtSieg}Ckt!mF}IM^d#+H^vW&Whtq=wTgd~Ay zdnvFEj_iuKL^6;VC5Mm@OuRXb9YmFtWYoFM+6Ig=^(QQSCos>Xz}(rWa3ktv?5bm_ zm6d=}JIt7#@!9;dYX;f6I(a7gqlsUjz_1B8Xq6GC+&C&6eiC18dbt!XvQBzA+Wlue zbv5nwDg&S4a3UXW&jvpca<}G4^{tS%pNKOC?RtOxKAJJ_FXC>#t>#1~6?sY}(s&hn zUNr400~jR$1m_xxZFpx#As*{gJXMHxU88&`5knQSH!#rC6XIzgAnr{wBv}`{(w|TS-E~-JLAa zAJ&-+A_$Dm$vIM`rHur+#)8A^T;O8x4R`Q^_?gCl{yJSd{$P6Qe!XGvyOI8_bH zoy;dAuYEyXyRCsZ%sE5TH4R#1@YIIDTMLP_Xb_B$ho7{hWjffw$TQ`BOC z&Zvb`fg&AKY-&96?t$)h6}YsJF6T}HFXu_3ZiVh%R6WibKP&vg72wr8Z|T=ih@OZr zN3{T|#_XurKljjvva*Cgw+)~3jmE?~Mr|nMV3scRV_z?t%_sd6(wJH6QxQWe#3@L) z*#XutBBCVvd&s3*Ae%<3@`Ft|cnYw}43?$X{!F#f8Y3xkOp1uKH&k;0I1k>Sysd@k z(qQ2qe$mN&8(!VSbi}i4$cs02qS;^f6gM`}(G``*PV7lGI==hk*jHe-*utU4?I~iz z&jvKVP@?{GI!CMo12ey zeD$2_@VH5m=)bv>H>Dg8w!t`_tk7##Tw&$jaL+H|jmBe_Ok;cfWVaQP0}D{yL^add*sv-#VELiyk2p! z<0{+SX>7fZlf*5p-7H)ZBYlfn^?iQ)v}&!%U|qoh&i1nq_e14huh&{MnC>zXF+B8t zy|0=GXKpf#H5+z@R-)<#8Qq!n2BS(ZH<3vMUPsU@qBwxpyZM}FcY`Oud_`Y#&Ew;Z zx76N2TC+&vyo*nX?v25DR7RKd*T4O+a{=5hJ_-ul4TTXZqHSmlAaQ8?w4t5fkS~Y3 zxD*NZY%B0*wceMH%hHwZN8ktwH};%i}U8AVci+r zzS{_W0Xq6lud~z%seV|d6sYnl53XaC&No-ixkf#aWH)jFJ}m%gY%2QhOo$>L>9RGb zM{q-Y56s#ekIA%^wsaWt`G_mBsa450@xfPS1*%=*s|#1VPYFtbPvU@;>B}PWcHir7 zJ$nsC9O6t*N;6}Y%1~j509?&KWEhl!g6|xim=Aa_`0m>tacN>rh~oxo#UVXVc$7dc znlen}%d$^4yv^&y$9r{=5ZbHpXRKa)H%lAtOVKy16qRr37>k?vIAD<3gwbB#WWG|7_)j1!G8&J0Z(gs6%Datra*rI zl>B4V?=?rdM9mREVssM{+L#OGot!koWXbElQH=&)U6pZ*PT~N+@*Y@VLEg(Csn5gu zt!ycY4jAFXD;!`0J;^LmP8~&pQ(b}cixEG}z8T!m`yvATq2;Ssz7+$Y@)Q88RrF6{ z9r024*uIPJ&Qcm5o2owqN`nnKCfA{&VryYK%_8ATiM( zQVM`Gj9B|%_m>QAp$$ve?_xh_NYI|-6=cqSNe(oyJO`&6>ovK4U1NCK=e|Zet0zkj zPu~Q$+D7i+;NsQL2l4WP0!vqynksx7oV5`1#`cW6Tyi!GzLF)7W&cX7kS`Q&0T{Rq zoiw`5+r?k@niMT_P-kU4kDt|;+BrVWdTv@a1G|*Z@6n6CXouxTs0~ga-h!PYyJ%`c zpQOXjXBC;}@I4y<+l=QAIu zt&LY9dB<%ukgPm}ychG?+!>NtelRy>9O&{JJuwD-UXE*ToBgIAXba@-5p+c5L!N&( zcNGrrbitaWI*{1;5VCou-kSrI*!a)slQ0;=L&-pfk9QJ@>t;6sRczv03h%u=Y-;_9D^)8V%ae#y4+`%2`JH0z zZ`${)S@nXGs&>Ty5Pen44o9x;gPZrKj)jGVlKZjMMr+Q+pH$hSlz7s`13pX)+Y?C? z5&N22TEO~WhM9ER0B3Y}whf6UD>)c@>QF<`Cju_o_Mbcp>de!ZuIA2I165$jL(7YZ2)ODOeq74M>s3aN!` z6JP74ALQ4g3n1@Bf}>w+r`6+R0C<4V-5DP8>E_z);>iEm4O3Q(hW6Kvs5%e1Pa2{Z zLdVrZebSXk*xCCtH_cY8YwMfbk?x`eQyyEu9Bw$}RtQERQ2Yxkbb_x+ow0pu&?r(= z=poH4O#X~}cfq%PzjU|h)(zv%+9S7V-KXW}?7h{wKV4#SJ7#2M{@wvqY2pI#JS=2h zQqKUZs@sD&jH$WuG@m`bx2Kg3oZb0~vs(I~b|N_UuXiFv*6clZ$JU>K(mam@jy%)) zi={n^C2)f>ViB(q@w=n0hRcPNN{)k=hk1v~@F~sWYVzW~n<9K#AvB9pE=ehs1WK(FXmyuam1Sj_1;v9=x*;M%9@j@IJ0V-5gOkO1r_cC%~fM zj(+@6E4&{1#o1EIQ)3Z3L`km1Q~S-Vg4xGoZ_HC&xNNa5r6TWgM(6+$k6A`0K+pXr z#ib~!=@HEjT(D!arwDB2>%5%&xH5C$()_KWoBE5|vZ*eg%Ce{H@A73Rgr`5JorK+{ z7B~vJ)W7@PEdgvO?U0t?2K=W2n5V;h-LUH)reMx_p6U^r$$6>g1K|OcCJRg1|Icc$ zLnoN$83AmQ;fFQ5DjkodoX9HON_?jd2GpLBcPWfznE;z*-ls2rMo~%S;|bLrWR#l8 z*>Js9-MoKfy`3GnDJA>k=|qIBQCu&Z#@;oL#%-7u+yaum_@B>I##vGG>N8|#mkdVV ztS*ZbCUrHAE1RtfS_kQb9%E;v(Wcb5mE0T#ItdUCFx;PRB2#N9Y5NN=V+XPO=zw)UyHk&h+hjtwJfI)$i>v3`N=#y`&i^LsuOhopM{A&BO1_ zY*7F%hhE|a59jjZhvn*&9CK#@9nMhc8!rPzI@4;zdYm-Xr@t$Ou1F z_{-t1___chr{xK#)k}`}pg2peLYFt>q^LaoIOWS>70TbiK0bilnZY#>Ht^PE_OK z#*)TlCj?-KV9e*%y-U-4t{mk>vo9A*!v<7b_S-VPge}3_KdKfaHgsv z^39R;^FGJ8R#yfLQMh~>JD-k7jqoijASwB74q-*3=tA3n;ij}Ws*tS|x2F8pUw+4O z-c!ru$}aZJ{y(S|*b<}I+kKhxppW;9kKYJ_&FfBx!8=(e0*-_!3%we zWBZRo++DdjeE=`4s5kI}=$<=;DB-BHkw)GMMcH9n;V$0u(;t#kYdvQY(0akyp?T*i zPFh!Y7VUL+zWq5rgKL|}63|mCr6rYD*qeL&@2s&Us$%>KBxA{ z{J^1hMXZ)yyv{y{7POsTl^x3=N{+G;j;|0)hT^l!(Uk8&Bn`t_R?Xc;>X;eIU|{b& z6j)AoJr^%manYd!& zb#-|K#swPV2QfjUJdF&r)Vz>Ky^+Kn^h9uq8)&=s5_`)!0{N z+JG43Q2Ux}xpX~?bQ1EReYq6M0wN6?&#ou(<(cZ_7NE`Yd??uGBkIaab;BM0j%bTd zPEnhqM1535Fm*>9`| zd+G2A*CFvc{a`wkGoSS+tZ1?@69jcM}vb!kN6)0u=M0_&r99sgYI8Ftm_O))Wl{t0A;y* zqtbNr$bD`O%ZhBpIR~o6f2G>f{f_}iW++|lQj4{FY|?HTvyT9#0u@R!KURZssupOm zFGtjkDHyGTBn_fVR9KDY&fq^w0r>M*#4jt3j7G1mU#@ibQ!QD{LgI<~1^cCP zbX&lg8-DfoUbV@ok)<$}FEv!%Ov&}&vdT^c^>7pPda%(NiFz(q`>Ex6s*GNE&^WdqN=+}MeX7>`C1-zbP1ms zi6P;r&;R!gv%0BGY(j^ACWDj5hsSOE9Tb# z0&KLxWEPxJ%K9fPu-3losff*}*!tlV#qHgdCk z@VpA@K~!@X9n1ZV*vn`&>J1E!zdueY5u2ZxA^o^B`Y6;W;#Z4KB^JMo>_HMiEAq*- zrpWnLzrun-#zS0wn$3RJ|G$ws_pK0>h9<6*hHU}#}geL zHXR{GwTiE#z#l>9m)}Oy!13YWD27@=xWyu2xB>?g7f|bFL?A2;OFaPb(-1vR1Kx9U zY@*>SI%W{`_l#$HWv~^R@#7piRj5Bd^?o?AYdf~p8_-n9US9U2jHh!lTWI`R>xy%3 zs)qXOOi@LU%JErppWDVpd@qceh=!NX%WNv6K<&XV2GL9zJ?HBO8EJpQ1A7rofUMts zhO3_e<<=>+hy_L<7rkbn?TlsA4F$^z_7tF`p}>bSTI%QXYfhKOrL<8aucYk z5yBfAyP5>cualF=HE{Z-0tcGT2Sx67$BBT3^C}!~+Ji>Fg?%!t0;>oSP5kTFI~5B1oAGI(tD3S@QX&RFB_#{D|Vh+I=lI8Is4g8q*}m{7iU6H zK~fpxP4$f9AL4dC_(m6r*{%PDFtqU6h-3+!d++JSD{y-GeyWYwGa`;v)A3YPVc55@ z{@VyRfEvNFVge0;@j>E;+GZkd5sB^WQmAixi09mdc+9T`gcR;?YLAa0Ldii)o1_v_ zXWIJhLvTx68F~>q z$RmU-5lfCoV?+^*D|XiKoiaw?yc$t_c8C8gbuKAbAhp}IT-DAca^A^J!fO})PYlC= zn_D?`C0cp3OPO+L=st?)N4a5LlzurubZ*+PkFPi#;0xCGYg#gt7$tLUP z8XFHH?2M{I(d^hp)xp6L^L;bkIFFsIgWed0)l-rzM+>vG%=snTtDQmFUjp{uSo6kq zA+r=EgaEdn;*>(t2X3f^fCeWjRUtEhbb{|&Fe5G_&~~n-ZH)&&+NPfXs!*>$uDHzk zxr#8)fpKm1GUF%vx*>?!e|jF>KLJ6NxWRml%(ro?V{h3 z(O!YNU!j+-zM8k8vXG~;SuN0F!Mn2CJrcAC+-bTqEl85l@5>oIC!{3qU;Kbn=z=nI z*RPsQjT!ubsTQiO5Psl3D}e((!?1Ak*Y$j8Q`{C8LJXkD)n-CUHU0^uX*;rj+6d_l z558yI!9k7(g1Nu<+-I5<(AIQyb0&SnxD3gaJW&G>r*i#6+7u1&3H#f*vZo*Lz;eyR zjItsDpw3d^;(qW4o|8uqZM>So<+V9`gp~yrDLI6Yj`B`=n4Pke~`(_d{1xs*#h1Dk% zz+)3pp~zB2;tj0YYvoyc(F9`%zvQ*CL79()9aXEGg4)E zRaS_9!h#TjihWE6LmV^_;QaPz{%*%6_2>;~ajbc>S9O>;2MbBf>La;(51Hed=vbz8Qpoo8-|36m5KYnn|yOf-XUj5#D zJ9m>dqW>?Tcs>YD9JPjLNwUU&F(ie_;4^dAV_qQ4I*pvXbGE$1YR%UmHlY$m=V2nZ z!>eaLWbd~VBM`9E)!hn8olDEh?#GW%iL_R0&1g|%^T9j43qNwf9Q@9z z{ocy|dEgMlYgOl#YfUwfn!9abZ-_<8inBar2VLR2STx4#(JJyJk>}&>TDD;p^K-M| z%v4fAmg)<0@Mfmz*z}F@WP`UQbZSKw5!gn*xH$e<0xa$k$NtIUG3&Ekm4VLbTS86; zVBg3|eQOB9-`e9ygu43#$m$ngi;)3YzgiL8Dj>Fpn!J4@UIx^1>4Wz6PLn-Wl4i!J z-efN!TcU=BS!^sOCR3f{w7rVBS0t>R>yW;1{iqx11g+j@dWB4*gD6Bf)ByG>&WSL5Ccw;$lcP2WNsG%J*+}Hhm4<`iHV8d zFXZFS-@i2#MtOZ-Tb_IEE-EueZcJJa0|Oz{p@}L_NuI-9bFvc>5@0Ymx&O0u^!#V*Q2hUG9sj?r3zCK~BxF=P63I5+M2(boacThCIZnKZ1K_9A&rVSkdzBrX zqENSSzeXb{`Z*Xu#zS=6x|l{;9K~lbX?1V$e3kimmLFv8*Gxi=7=gM> zz-LTZ*plCP&SDM#Nf8T>6L7^S3$1&eRQhn^U2jeceRMo;Pw|~z_Va{Ce|m>PI3d*0 zJWI+{(7c6*B^F@AkIalp-MWo5XxH5eCAYL~7k;ZT?hPbc>%2hDa^Hc!>sRtiphx*Q zN$nzed9&}_xytTbr$b)u8V(RM5iunSc#k7~wGM>QZt5_6V{tvLJPw7&pne==T3lSb z{$Gt)juPe=j@{(_xMRm3OBt!yiV|!~SMeiUl~ht(iad$-&ljd5R!VPOn7iWtnK(yG zV+Hna>X$pcn(xD(+o*WI8F@RFO~*0TauqEO*N@TAslaH^1mh)AZO!mS;9UtGQ0N2BFlo&}cX3j&DL!7B^ zQD~+!BnbX}=A?kCQ=VK5r<=5+RQv6K{}VcawpaG3Ol2jqPGg(Q z>3#SytRDn(zT{#bN~y^w)q%^TPYE_V^5O9q6!is6+!!kI?FHl&DGLjq9UCj>)B?L^ zgINf)!Pp-4dQ1B~Zt}{?W_J;N3DC*`j88@%fjIbolHYh-)2ndm`YTp}{X7?FzEgpQYdbWG>|B)WSEa$P09m)w`v_iNLp6=9$p zMh@2P1Kin!G*T)G=K?-PV$)!;1jlUIUfi#x{3|4F{t1p5a1LutmCz5x$WQMNBzN?e zbv`d9>%S6aJ|G~cq=ICUg0H?HKIGA@z$Xye#;<;EPg-!b>^^MZ9Y{f^Qp|an0{asL z<8<~tn{za!a`r!eFb9XtPm%;G3dk@U7CnCKo=b(NFqcfe!XX~2K@+KLi}>JYt|K~I ztkN@=JNWfxh*@5~%oc7=8G}F4cR@k{poRwYO!mP+Xc*Myz?DId`H>{;v?MHMk6P9Q zylB?8GPM|Wml4+Q?MYwwAijR9j#V){$FHYRXp? zCcLvlIIjovgNJBNV~#RYilD$$s*va5cUU8ztc~m3n8?#GMH~yHKmB&$jU#{|_K*AdSFD(}h`D%!7dz6r}SG$#A|CcPJN z=f9DUOtN{DX$<)2soL@sDhv)W&@0~{M!$l8xqG@fC?{d+xD?GMxd0pq(a&GuTIwDS zT*`!&XGz4_SOdDf_0#nQ$P8i@n#Kc;xt?w<@=pi)1c?(*ac@Iu5uZijG#5YPGkd^Kly&v)9PvQqsypwBAHke^U9(=4Z@@yj}D zS&h*(3gb5y7&tCXMT?tG;8y;B(W8Jc;zI1b)yJ*IepB!aLoS8k=p~-yeIK{?YaenR zNUUxr-`rcWLO)0_J`Uh;$PNqHvZSoH}{2|WlDTa5jaAb7!qTtn55X$qbjo{m@ z+Fd_@Ubg%_UW50)Yd6VE@-FCUOGcz@K+$9#&y#PyonE zJh-H4=|%7(D01T5b!LEIz|aGii!nLrTyj)0sRFD5w3{knPb)_GCS6$}sLmL&J9Kif zXHU#+mocsMorRAQOi~CF8yk851k(3lt2gL4w26yFMl|QkE~AN*?rgmJZTJB7mk2?X zP4#@AKAl)!l_f@<7|OI1ZU2Ty{xclb*#Mo_zX!m+b8>d}u`4Cwa|KQ_Ag^@x?=kugz0ihsXK&x`?(SA;fOO6MHxNua6&OyfTb>eO z|FW07jly2Sj>W9tEd0>XZy~8oBk2t2Xc+w?x{Hc4hL!xmS86DBMK} zM;MgC>$pIS<2C#3i0Kb=OdH$L(RmWBb<}C^&h7m^m!@*xih0A8sx9TW(&bu|85 zHHk_=SifAyt{Z=uzrR8kQ!fGlP*gjAY~LU?&EjIFf@-*+LqnnJJ$H6o$QHz?MW#(^?N&G^lfoy$qGtBaQe;@=hZMCIM$fJFYX&$wmcpcfi^Q4ePW{ zHKZ=v2rm|M<_sWvQpCd*r-wT%1GR5x##bS!>P%k9bh@mfZPps4UV;I~$MV9f<^KeG zPB5YZxPg&S18Lxjg}sFMO^&y2y%h4-cn>5STuDblT+~F|L}An4J`ea`{n(vGEfn-H#>AIQ1Hwmx1n(p3yF_oU@^LF=q_O0tv}>cY z=)B7Kgp(Ol%v1Tj>um7+K~Mj)vgdbVU`4s@8j1~C(X6tkJJM249mus=*rFVHy#e-Etv4lU4NaZ;0|W=QVI%DNF5YCPZc zO?F&Fmpb%d{&yCDEfFhTvTo7X*c(=z)wH8JsxFg+RHV`!GyozsGhZGOO)=eua;+>n z$p2nAkMA@NM2oUHw*r@|Gf2n{&cFhZf&AZqP|>>k5PmQ=LW+?D%1Cqr@;U+$k6T1= z)Rp;_JpYdTI_b8UGjSKcZmW*Vq1?!c1)JLF4C=xdGo2qf`YHCyOyenxAT$c8`(r>Z z3x7_v7-ii}EWe$+=w)X6$M;Lr?ZP!zP2Y^x;W*}Pq2%yfVA3$dJe?6q2>dBiV&OgaUtk=+BJr$H{`$-1v6ksg9g*5&JCP(3GZFE zoE)mW9vxGfrAdLm^BckB0>s{@HXHx4I9RZ8i?HGJwn8kW{@{XH_xgTq@Ux$XUzzvT zZz7FQTTq8^WTpYbE-wfI7X$mIshg`ho@NzqDF!v{&#Wy^t_!IdnW^rmY)TZ3Rb`>j zPEW(jE1<;Cx;voB0vSKSY9ce5Y!C|GR-qFcvM>7t7@7e*LX;aul52%Vmxu^|h5zR$ z2hJ}({Ma!rV6=PhXc@VTajRLLk-Sv;V8udhx-W--M*~DcFDk(&cnqh2@Femx6dKoD z!gG;KX+FG3d)qn8h>`-1T4Qosf{^z(R#gT|3bU2(1Xs&Bh!c5vd4`DciB_2U)97KR zKU2@e40?>>&_HEK-y3;Z&znZC0yoK$E%d2A`qDfkp=;Sis9Ja88U*6v_Ra0y>`$JY zVBff*GR}lS)4U8$4VfO|yl}1>1%$iGX_dQ}h$MqDXc7|;|3X-G7es?P9yt_*WCOGD zu25cnS`(3ZIf_>26<5wC>#D0&y!EPRoSL-uz|F$bY3uJta9THLqs}%*3o5;Y4NzMe z84uQC(QA&(=1Vm)$DKLtC2ReRT6S4}nH?w5Mh22Je#@?eK~uj#;$$wmD^o;)M9GH2 zj!HwE$e#QE{zc=JEPyEZ%Y*jCpYjEYRNul=Wq5E_fA<(?feS*o+7gpdIzLP)r9_;C zEZ*+>AjEt`SQqDae(Wq6r-}mo7ifwXLJHdDQPx18Kp=g}-J=)AnEg12$i6(~4G1Le zK1~(?JN_ccp~{ECAX8+gB-~9(I-1lG7>qOuD;H%7C6an+e~R)5TN46S08^Z51?$j7 zK)0fJi2vnEhvQky#fjQK#k+PdU@!39ScW7V^DIg&xkIy3x9}~{bP$lNG%Cei^$Bjr z1|n@=5ZoaC1A(KUMW-RqAUhhwD5r>ygkq$HXnyOF)kx>gYKlLbl2Xee*fL$GPWMxq zh`^LF7>lx!If@U6bEZj>X-Bz%NStc*NpZ)ZzoFnVEi|C+Q&R9^u)A{2(H5Da2bB2A zHYpb68w;sgG~29vCh@)usL*d!)#kdn9%sf$vF-X7CIK*yD4oQpz2C((wSmADjJen{ z)IaNs?u2hU{`+@0+*zpfWsx;TW{|;zX>rkltP;@f!})a*Oas{cU1Z1Og0s;sQ&8eOt zX2{q7>oK=V(tIg6=xwAM+g>|m?$;s9ffuf zfHm}v%DT!7M((w)(UD_2urSZW@0nxX8$zRpS><(N0TyTGo2#T_*T zI0{O>nV!3#sa`WlBFu?nGT}zEQk)XJ1kE3rG^rD!!fG2a@bvT~*Fzd3o#J4H-rlLq z$A9C-3MdO73;v5s##Kn}eRkSTsuIVU+U2Pg(lPIgID}^Y zd;Lk#8BhTu!djYqV-DCw%ukaQXsnMvVfXCS-RQhHnWzSTQF%nwVu#@8>5C{p9^&3@ z5Nxa}nhHuz7xesDXq~5`;vlrQZ{pu^E6FYc2dO2{Gov}RktEqEO!qb`e)=^zgn+TKvVpWznJ3ph*-gB45I7NiFWrPKro8YKLJK^a&li+&nQP@ ztYkF)-o^rdXdE=0^lEMDYB**G(IIU6ED18{pF9YkTxf^_LW;TCk&MwYDLT^}XIA{k z2?q0?VB0e2Aq5Ef3iX0#Nn_Dt9&iC1SXoKL=We#{9`A;Neaq~eDKxdnyu^A>kB7_c z{_E!MH-!}@LJDg6R8l}z7#YZPio>vHqidnllUXF|?~CFuttq@Z>wwwjkt{7!rUv%& zp*_uz`{&%PGXT0ZU}n(O{JVtPc${wYcM~Keevm1ie#zYz4fY9$l)n#IUDZ89JjF2c ziw-U+vCRDr9)sqPc@K>codV&{zpPI^&LUYON=zTH(i^jl8~^DH1b>KvxoMEfuGWjA z34zGH@+YgxRe`S&L=wk@5R&i|GRB}7ahzAtM&%6kJg5%jqnin&S1=b~Nz^JiWL#PR zqdpgWdpRiXBQ58PEW2|a|1X}-Ixed3YuiH)3|&Ka*AP+g9#{Lg`N_Fil6weEG@kN-vo$yhRZ*aD2Ad6Po!sBNpN zQFT}XM6{Ys0V^-6EkpqY#`Yj7MKEVi*_gFn*4uEGD|cQOB45|VhmYKqMBuzmr@d7J~Da593>JAEAf5^}$hEZHL4?#{NL z=vZw~ae%r0$L*ey7k?aaxbcUvMGDggBeVZco1;(M6odD&dV16HOQ@QS3<`BP>&yU$zbh_JhDKpmikhBZ6b9e28}|CUwuE$V;Rg4C<1Wlj6U` zMui>z^>;uEm=1vde`q}q;bbR-`A)N*p)u>v9jVcBbolPOcVFt7UZ=?Ea&OmDi~1{WW_E9MK~HlaF{)qT&l%5EF!*f+huW*N@X8CZqeOX&JvjL$YgGE zhh9!q5o(uW0h2fYqVnrDGoOgSsG?nrYrY6EG|P+%pRuk*10P{ICN0+~fH`>x#N<(x z+`QG^@Jtd`v_mN5y4MY9Nillt_)?J-hrfM-o+cH<@Iph$Se=%k7y|_NG79O@RHQ-= z^W-H|i;Y%5PfiTjquM`crC$T+jP!-LUq6{Y3wzQJE-}@mcBXyQEnT&WcY?85*Q}fo z-G9%|9Ef}o3qsosXlp_eiJ6D{V2>o@Ed=^z3wC5RmSWDEM+g*9bCwX2+WR>OGA_Ub zRTLh$Nj{U+@=X-eGfW);0Fh>1fq>k>pbfD}yoq<7>_%_5mmOb?(k&qWB-0*yW-)N{ zNb!+XrgKs-=RG6|V>tS$cF1*57|C%X&%s8u>UzKPf0f@9U;C(bFmG``MsZY9+qb0- z4jIej*;lPCyr&g57kf^XC(~Sw`uABjIsZ<1-QQ4&@Y*h3y^uQlo%yw{UI4|Tgy{S7R^zu@5WThV-UBpC1Ug^m9$dK5^Xtsa{-(a9skO^dK z7yjY+J$PVo>7;y~D34;(LkDKA!~KXcsm_}k7nCQTzekU1!JMs|yVFm(zQcn_^@d(Z zsj=vbsgiOTQ6DMGWrS1F_r^S#qW~ziBYV1&V^jq@crw9~@O&NJEe;=4uXufn*H)H1{D9PC>Sbwy^%PbbWxy%_qV#EJT-smQL3w>AXU9=V( z{0KW6wvfNIDf_VJ2zViDBnh@RyoOdRa*_~V`}oRmT`u>@0OF2=DIqJte|K#o0Nfc9 z(K>+Guq{L5y608>WNg-Il_pqCPc&u=<`t}SL9uu=na1;sKdM>a0rl;AY=5^99Gb}< zY^B2^By2{>Hkac^X=-t*L<(6G^=qhBUaDsm*|Vr`<<{qQCBs^OzB6N#$@bZxP$lVU zA^9Q~lYh;=@`4onS<3%j_XGtRkjL z@h84NuaWVx6HIanMb48v!*Qq{+Ni)-;v?uE_K~4EMBh@t;fvEn?hZ9 z9l7d5zs9&S;lBU)O_1Je-2(7Hp3>dJ;TNBbtmm(!14>+vzla`{`wSc4x}e+e@==C?oPc`ke65W*hxoiSs%t?*@dFH$D%xQ*7#U=;8Z*-;&S}uQ`uTz z?n2_XGxgSr?96NnscNakg-oBd-`VGF&vVX~zh~We_i+*KS0Z&%4#}`?yNPp$d{Eo- z{dphaQ7qFwO)4*iO3P&-aa5n2#6YjhcXqnY9iFjkZH(%lFI;6qn}hGnB}=daz!n8aQmKk%QZTvAjZLDx!3nx zGRY{GMvnaTt^WalJ24voDrg$Tqb9n;AB#9p3{qIEg+=XGegz&m<3=_>YaJl6~;rM7;Tx^iN z9-#&J7?tAo$#AzCuQ|ZujbPQPscxZXnzbxeN;tFQ86M$}UChqtX*! z(d&wLSD|~NS9CSOMo6-l2Rwn|fP6a3cxl~uOP0P-z2g+h~QgErp4_>In>`-wR&^YHi_vkdZB44sH<;3qw1 ze=nBjC3D_DDyd4F7=zRo=@4NQsAQh%w#sqihY!-77L%`yBxzsC+9p(Wy-LnSZnuni z)cj1RldZnbk&VB{L-59E0Z``Nx%swnle?*?sk0}{>9a7Z38bRFlKpK9$7ndcL5RWW z-NMaIdzMrZ?!rC``W#`lVfW;KiG3G+4Pl99Lj-#MN;ogNrNc#I2ZrYkVJJNQoaChTV*-%BU){Puj~_)u6yRQNVtn zEZFh5IH+YsU#*XZC;|uZig|5^CgjEWGsZ*eQ21l=jGw#Hf@>Ed+gW{G&jm;ZRttxE zQF7hn%LXhlH_aNzO+FTm)Fn*{cMhvpHk|%u1W#kgG(VbTl{uE+{h&uCf_q{&hR4cN z6Umy-REdiimdb41?ph8l2lq9(^l8lr_c2y9Sx(R=m@~NZB^!L~6YU9gg077eB|vpp zr;~+xjA{(CSZ{hv+$kjaGC}nDUS+8X71BRi?}4v%EEw^p_utohV*20LGqV5FPsGDN z9ZYFg5AAx@b!abrdWeUcQXY6xkNW#(^y-Hm zIeCjj-?6Vzu~n8jUkRZ8Diq`4Sa@xKDVwwaY@*bY7-GV=g46WaR?W7KO{98sRH+FD z^-t)aRkutJPi4fu(1aXRo0r$gmVu?^gkh|iaSAVpxWCQu>rkxk45>OFuva3oF2;r; zU+7nKQ|VEvGw144#W)4l&gA#9jWv60*taa1xcho4^vPG93_NooPYMv z7<=%*+8{8IfS>@4{2J}*IHd!FhR<1|u|R)52Wez_5{PYh?4@kB-*HWz-ZnFdmYtLFg;-FLV+f9~RWKp!|3FJBqZD;FKC%fzTJR6q& zr#++)iisz&{xrKhz4=!8e8l(x_431NR1imf7MP=+&<*=qAwW>Q?;HqXZY}dQ&23Bs zw8&auei|Ix+=UmdOp;a;^5-$2c1pC%C^ z%SLxkc*&(^6qpF74Y0DjR?-O_5rr895xLpSS=mibiX`T+kMXLoU>fp~tCpDAk|>A} z1DQFKQ?w_hYHzEjM*t$&Dl#asZ7T^B8|!8DDAD5kgD`NEOuqTrpJdG86X99)+X5#{r4IDr>L zbcji-2;JStvh*`Btz@$B6yp7P^W&7nP404P6bEYmE3>f+bvlAB&~;>a>5MxSH}P&@ z?t-aS?;t^)l*@&0_ZGH1(xGOO6LlDtadyq>mLJ;!$EOolH1KT9<3Vo3i+zkd%LO`nid__Te zJGRBIp()YMoZ`N;>ZHzv#tI_Ar`D9~cD2H;ao^41wwYz^vcV1tFAo>{)B{eV=>_VIek3m-2k{$Mg0PVO=am>t*&4S4XM&qdxTk zaZrl%2$8COEpZY-RhVKpq`6&Hu!?w+u?gVp$UEzLiv5G#bNoGqxVq`icWCB7?62bq z=9p?+F+P%t{MB>Afx$*6AYQfvNo>=PJnc;`b|BhPrtD#-O zW_+u3t|?nzp+$6ecU2tR&woMelt@ry$>mHhTrYkdtGr3pZ#6kdRz#mmA^WnS^uZpM zIhsqp#se?#Kj>NVlUrWF<07g$A~86&9Tej-%d)$ftmsf+b?0?2y~g3-q3`s* zjn*6}^zXkxm7X+&

580W+^4so7ZfG0vwLG%~)FNF%ap{smx8!A9^9Q@j$gHk-xF z_tt0V$Jg|2N!iyp6bX5Oz}qW$B|&CAY>~n2sU7EqYp`LWeLTOz@zLnNY2MrNGAv+oFF4Q@U*%C5p z_fLpc*#)S-TjaI`N=t?yXg`ABzsx>h8EzE6Zc`eIw@h<10P)vnB9-jO>%=4yTNVK8 zz7c!Mj9W-g6c;Jqqn8c}O?}7m40u1u?a!rfY2G}}vwlPYF8Tg_LOwB6Q>#UNWAWUC z4q_M00^;LHoUOda%l7>vBiK27CbBr53MRDB+QXnD6_4Y=59S@j1|Du<-G@ui3p!;w;OJN<$N{bF=RSA!k05EY`1 z6(9#q8ywhWXYd~+k0!J~hsIZ-SdyD43(vHJWhC!u-R(9 z1WGWG=&4A?)wM@(1L|?haYN>;I$8^s}c;#OT5q{@-w+TA!;g|g7FAogXr?t zdk?B_UCL()Qmsy~+o2zUy|+m+2CAPc4}!v|B@EHO^O_lsNdIBd-}d}psuTa4>ImO%mHJb;kfV9HHW;pg z`jxo1Nz0rC&^*TdG_S%3?2XE=iLTR$6t|H@2}df}rNB+nlhushe_tg*b`?j*idpc+ z*umQpC!terD8Yr)Tz8RBQzBvVlTE(kI7WI5F_Y<2k9WdHz`0L2^X2rNK&qvwuF*ZF z;CtLk{|ypTGE6}Qc2kNW2F}k=7nQ>!_A*-$qze~ABHHd}5N?+WTs!m2#b`G@1GZL@ zu03q!2zvV1z~rPILy|8o%nNf2{av^Mi$LDBC&Liw8L@j?j7^j0Z8 z7mZ_0ynfW0(8h(-amJz)7Ehcnc?V5@({!X*g)kBEQwo-yh5DJdscQNq=AB*2@7I38 zj4Eejon^IxRJ1?R3pXCLY<`0BT1z(^JH^VW2=AmW#c<@sKOM~bVPLOePx|Wb*kQVm zKTF88fBEp|R7CYiM2$D7>8;NmlMp%X{leZBOsV97KS~*;)48h~$bfdDmn=FVV(FA4 zaZagGY$#cn1fEacHGV3QJ>aj#naaKCd8bEVz4E;2jY(it0-jZ-^T{<(q-Y5HqXwz@ z<*-QY@X5OGVcUVZbI`s_WiA-U35sr&`8S~&&n9bt0i;BMkta67 z6kX}q>Ce5bHQy^vhu69THl-L9K>uTY!l zI3FOO43v}YT9@~!U!k23Qx!OV0=hEMXx}t&0`g_$uD>L}*V2qj*N25=cy8YwSj4_x zc98gWIa4T4aqAPAUwZ3cQ^19PHVZPN>GemG|J zcD>sOq&0cTCWA(6L?C4w`FA4SWa|b@sSz{=LmCz9u3lpv^7pNsFXc8@vN;M_A2jfh zF2n=1ZMQh%7;(%4^H=tLdGa9`tm=JeCU>Tz@aymPzYeOR9IaQ!F&LSK`p%p3p9VvH z&GQsD6kB{Vpy^NFAO8YK(e!tFDju6X*kvC-rV#}0DV#;=1jqx8TXtZCul2Rh`Hhw> z$~F4U^*+hrK6@EcARO%S`rJ6So3{wG47*u}vQV>@+0q3tQJXw)^Fk{<@-IGIqb)v? zeN(!uoDJQeUI{6Ool%AKhqG>ZOGp3CJA3gw?`7^(F46MdkBe~nhpYYr2nh+v8Fj}g z^%)>=EtlEe*-<)i8YwI2MRk5sERz6F$%90drou^09*C~cmQI^pR9NSwB{`%lQnO&< zrI^o3a>7fJ#1(V zRwli6rH4FJvjf?OVEJgw{_e+T0)L&pnE{cwUVS*;>U!BEwQIu?P4l5tgX~X z^B{`=hU8s%;eDqO(-=`D4&U-y??c?SoTes%+BY3RKp*N=yIAmjo0peYsgC6JUg6`X zq)=$}#=x%5zZz;R2JjYujr>)WzsCO8@S`iM*SdmB;hGP%T~y)%<}ih;Y~pAEFsXiG z7bjY%Oz4k7lUCv3++EGE%01NI5DmE0`MWBcvSzGXvegg~!ms&nk*r%O_vq`JJWC&3 zNVh*)ujd``;Fc^{l5V{1y7=oGDjs;R7VFIsNlj4=r$UgAb zboH`{CmNIW9i+#Q(4NFV7>a*}mG^S+&7$fG8l6q{Tg64Ew+ebAGhTlv>SouU2-<$W zaK+PXKH%7sR`7FCR)n6+DhS4+cKZ9${G=J=%=kPUZPqGnJ`4m>vx=;dA@t3M5eBq) z?I(?ljSW4QKBx2pCNyT~>+0(Z?R-aGDbAx_MEJq4KY)~z0zP@#D{9Bi3|A;XiwK6S zw?GHkpiL6FN2XaB6*M-#;XjqlEX$BE_pUi+K0%Zj->#<{D2{w)M{T|wpNP6BL=N+> zhxOVZiutW6=fi2rofttVR!?#x`NhWlLV~(lkU{Pz>vF$h%v@WP?z-O?an!E_kb}99 zTFkqQs%t``JflxgPLWOsel!r51!$jA!Va(p6CgIK1WUa8q7l7WH<1?6q)&$)w4?kg z28#aUC%#(?0&BdZ^H=XN+{~#-OkMU}Ow$v8SF$97{Sz#MmYOP#Ziekmy}wxRZ7i9q zkZZ-4FRQP6fDsoqfd7(mdwbj4`tJMxX&tF&{w|L5PWSx5sk8b*UM`81FrHxUlmyJl zrDIgFWJGz&Ca_rIikQkkgvnS+Mb6cRl`O+beQyvk5&Dx3yk|P`DCTmGzJihKQ)hZR z`cwn+aMCT|27QLDj+`ZcO~mpa(f@FverkTcbe1po?(lgrF!-vjq4Di}YNVyG2bIMr z3;nlV{~;nP#EQQ{tz)kX>FMiD3ek>WVXW_d=7e?%@0H!R4^#71uv2Yj+lYR~r$t^nyY{ z-_Fned!loFMyLEaakEv%&dZF$K4d)>WRxgVQG(9SyT0q8+o@({uvj03p#+>Kl@?Dd z0U?78t;;hluEdC=N~)~p^Ia)QnzALKr6xd30*5vi1)l2?`$&C?fx?D-I&Lh)|ISJF zZhVcHgiBFnBVX=eU#20-i8I=fKl-bj! zzVGT7k-qi17+K;%yhz`{{>vvUf~BV5-*(M=7sGSONJ~eef9X#!J+XQCYd0q z?~pz%1qFpOiH>uLcg?nkDevF6&g5o%`@d$WNXB26xLuS&Cye3e!p+LX8hB*9vVudJ z!Q7}WFp68=J!WrH;G}$Scl6^E%MjxyEnC%hOQuyxlii1`_1DHJkE6XALZf2wu9J>3 zS=CD`y3o{Ke-lUe0^S)r5^I0rYRsEjT1@`VZsC=4b8!`wmU4{DiA1b{$*py@Iwn?w zINB53Qg{JBf^UP=XwW?Hn_iaNZhVj+eow*8*7;5ivjzTzx7yAG!Z>fpHU$3YE~M*` z8T%dqSGdMWq9k7_CM4Z-Qr$&!eP`|AZcVsV$7=mJ_u=;YUoTFgYlYXZuhj|cE|+@9 zt^K*6NuCac@55zu?LT2ITURDk(qRsO^MK>6HtLzN`RY4M)`%_0wh?vbKo{Ssh4ic9 z*)al!q#&Dd6oy=^pEv^w644V*D!H;17A&g8>D1-#-ce;U19YN>h5=fiWkvvZS=3|z zu-HOxz8SRfJpcNBBk(#5D<1SPEOvGFIFBYo7%KKyY#+1b~Fv`)X&4( zP4|-EB8J2|2F*z+D4u$d<2gbM>ajmohZdQsKKVMDT*B>VnM|eU2q}#Q>O~ez>}hOV z+=2P&X?(Ex9!be#K?l}zz)KnUv3~ZqKubg;gGmHGewj_Bn-imvY*8LG6G6Nf^#>d7 zW?Kwi7*P+dboPu%xp<{+^E9SNURr=m?vpScdOkz&lRx9m=%tyZ9wD|d#GOiNC$j51 zOKbN{s4(1e?6!cPp1ITO04S2EZ9!zBtPj-S)df3XkkXPaVuRla8H_xd?%eg>0<9AVDsbw$W$wGG0 zdv<7_6hl+_(kEYgxfkGhDt&0M&e>BjobS0!IosMv4uGC3%+5EbjE-nTEx|G~nDzDU z2E>sBDn>15Yn&YPa+}Mkv8x2ZR|){q=P8g=bkIZ6D=RBgX}S-e{jaM`xC8XMG{UeV z(LJ0Sfh+ZmW=GqM74u8Eplf1NKKstVt^;VqH<+4bE)7*~>W%UTJMQar?xeFGlUMKU z`4^Haxkzz~3VD40{*sraT5g{i9w4DFu6v`pO#RA!H)N?m^tn4JVrH3U(jw1&S?Rkj z?)W~?M8Q&y%zh?SN?zsWsfzK(SENN$&iCg7MknpgI$S9(#h=vtCWE3viNiyan)R9i zLp~fV)>^M{BYVI2ITk4|OBVyt-Q%=*VU2}W0n!Lb$z6Id1DO6qOiWznNa z*?;`uFD~)RhL#J6+XPB+TMNMC7`cFlo*qA#`ii(YBTK3GslqpL$31aaBU@-dKC3mBWg(JB_h3)CT*{SV}z)^Ma?~A zy0p4On`%)<<4zH}i=A-tn0JcqJE7<*E zexy)1zV#dmo5r-Ka19zn`>jD1=|eyC1>-=al?6i`itV6*v{WM95kSiYDmN$+8NpAT zLNJ06>gmt(OeBwHH=U%|bJ9Ggo}H^h$um0C-=>QuZNYnN62-kV2|q+(Y&cM&?ti6R z+S$l5DvoOdo{na*ny^l=0g#X845 z`DL5VU5IBGb-Y07GM;I`8O~;jRWZA2^)y#9enr!(MSkcu!pnyp{(*i_0^OAbbfGI9 z{cOp5MoF6q)7NBS#rpDJ8+v}=@782dA@FE!KSeo>eHHVm0|SS&YLoJ3ig=rdfCO8h zyZcm*8OJDR*;EDvd)0a2RE#&v5IdW#o?6t3I*-UFcCz8Qo&Zjbkwo0mFN!1}pq`+* zs!M%ij!s`TwL^J?l#wlVsIh1}!8$gUxrOW6>rdHXPURk9*iGeFFueLH03d0Tyf6Of zC~(G>lZ)&6mmy%zp`Uv%w`~mrIAbDKA!599{#}lU^tXY*AHU7sJn!pO>Dc?gr2*NE z#CLz|HGDObha2McS&IAVyJ?{!PEI}3ThI02{co3rz6NsS`3J>G_X*}hhylIkTSDj1FR-=+IbdN*m7_fdT0Q=bNpGR=e$k)ce)(09)D#>eZxTHR>R7r8o}r3YRw z{Jf=^#tEv^kKrzyjo@*mCvCIu8RwCnX;o!90rLsqm z!G2ksrp{x^la;~j{CNVNI&$p-tVEfmmytrAah-vc0wg~Jk*7JUnAyy2fw~ce1+=zY z5Y?HgeL|W}Nx4R*=e<=PL`P+_(^BPBeweo~g8|P_k~e0813teMhz`L4n;$D_^+B?N zbh9x02D(YuoIg+$eI1Vw@A&WDFMGucl+^f_GOS~QUDcPtG;M+Dy+ZSB?Kbc$c1)C> z5&2yqxu~^6Kf|HVFGo3&2CrBsqutf1k^4=V2vp)(-Zz~GG7v&GGL~pRFjdC>THMI) zeToOClD!ZKFtqdWo9ExhnaT`}YyGYMJt^G$`Esfp_A4Th&Y=0C5QCtuC63|>rO3^5 zgFyGFu8Y1hA@Y)~WC#?g?Ek$#4_$--?}>$Opkuhaadm9B&Y=j_(7<#N3!_R?-jTyg zkIX|I-u@SANxQ1%(60a=#bTuWR2!!q*6~7{+e}Qwft97aBcSpY$@8&ypHw5DZvL!E zz6Dawlc^+#^{XI1!+8H}OqF{#(v(my7mH&7OSs7WN_|Y#5tjyDOqARLQ zZ%!H_Z4-SLoswA>=)9cM{`qrHC!7W-qcO+dk}sP&Et(+D4}Xnct6VLEPqU} zoMbUm2-S{`NkpYNUm;ryG4Cges~ty3(~F!eE^l2nm%B5{41%Es9XzY00grG}2fktc z$O|xl32*UE;dQQte;a&F`XVOP1t`(J`(ozJnvR+^k`8Y;aL=*cZlGg10=BXwa<}Dw zCAPnvBYCNh1B+Ngy@O^U&Uk_uu9CN70({bq5!|Ji~Vd4#K*AxAvK?8x|+ut3=A9X5|7BUR;LTZedECZgENt>S03>y9W9^3kOG8=FSHG8Y@l9kjV&l7Odmy;M$xQJ)M z=^A$Kd^lDhQtDm+By3_z7X`${#F{fqDXjJ-Z28xirh3>5k>m!51c$~#tD5U@;G$F^ zYeesWdt_Z+5T-@>=3~1^jf&D+Mc(fDnOc@GXip_Op^K zj~>mFaGERhXC*0zvLj)BOcX*Gu*6y-xxtVYf&F*1rEF`xKHYgU?E2Q)7n{jun1|e-rlSbkZrC0P9PSiNr6Q$NXW$FbWv>8SVG`)#KY*iqcN2L@O-bjuZ)QyhC=)0pPq-cM@!H6PiK{VKtJF%^qG&6VZAaS4? zG^C&R2#gs%dU-Mzj@O+L{bsr1Ro-D*ULat>*L&{UsKR45mqS;E|#i9rN+pAWXcWJHJy-GjDw94;a`Pg zNZV*2ne=eE7*Uo1?8r!ejso>T?0B)KA_1`Vb|XDcA|79T1tVUw-!fwBPm7;KxFqE6 z(#U;;Ao*De<9dKLv8u87^>`Nx*)tYVTQ=C@A%#q$^@^xanW2?PgH7_dDoT15@6d)V zhVDxxJO06MPd5n~kOYYDG@a@092>Q$Zw9%~7_;eLwCI!Bt6-Qsw*9~ZI>&m#y`yW& zdUcK?@ErbPNspxy@J3L4kb3d)-^7k}6>uaUerrnTYp7c`FpiTxiBNnL3fB3~ibrE$ zgDN#Rav*V*IEs}XLyI0I;?`n3uvHh0VSgfs-C5I?bvF#{Q!Sk@fQ&Zn2aP&^)^+SW z$RI|astj6qTX!Z^#%c^NK{z~;ZKobH`io3cIbgeq@=w}sZWl)%P54@@`I%sd#}#vC zz#6B*%FW8@l9+YVfQQM11Da{%*23dj+e$Qin$y2fOi2b4e&*ug+C~W(BQO0D>u8_c z<%3I}-TH)^G-Vm>B>Wb35yN5-UVF_t6L<&oqZ1RC;lXIR6P3~d@*%3~8wGEX>yp^T z3;I1cFb(&XEU;>hD~oyF$sGkU;&hD`kdMOUr%;*z7p6EK)l{uL z?xm@Pw%1SxK*O)3NMgo~8%p2QQ;h)fKU%n>{-BX~k=P{&V2sq^eAu^)H z(XFj{20C!mtC)JNu%W%v0lE6x+G1|>jIvLAyYEK?!HgVPJYu`7mTf;LL=#XmL1i@v zWQWz8Xyj@To;`6X@~o?@K9)STBK{Oh20$0^-Q=U2e;s#cP2k|Nquh^IrPSVnZDIY{ zY}_HfJzg|m^ zB)`C;MrNf_p(NyMt=x(A?5n&WK15ycD!m}~GH1lXLuFUQrCzn~$HpQMs`-YMf4igc zk_wd@Z97)W`P0srOxS*y$~8FF*Y6pTjj_1LKcU)TexKVC`7N?aiTef2bch%zU3rb= zl_P>CLl1*QZxPb&wncK76W?Wy-X$4d{Q7|6%!#?dhxVf|v$dF*!49(=#4$)W1Z2DX zhFxVz^7b7;#dg5PnPxm;MA~GD0km+GY*UX8AJnKhPjPN|jwvN3xdSQ1LlosdaS+50y z5?-{0y|@)mwQSy#M9a0duMaAxo|+C6l$0sY9QEZ9gVfHqVN|I|B&#=Ev(i%r8+C@2 zUx#-Nciawl4E%2YEwz7mNcw)1&FXq8eS1=c-Y{5I%OYoKpNf9Gjb@a*v-#$EKk5OG zL+!aoKDH}!6M5~5Hh)Bd?&7;7X76hZQ=P%zy+bg=##XtS9aA=&Uy#5MKsix6P}Jj! zcAF2$yw`(Y4<03fg7b!kt1{S|SavbWyL9i8LcAr*x5DeFDnEZV{T}($D$wwIWT8s@ z5VYe;X#v2FrKHF%5JU&qFY%CrW`MBFZ9WlnP$+{iUs(xM3#g2y36;^EbPeh6#gtvO ztRW%mE)9coi-2z2Tw=55OHAVr(wz+6%ob=hD!LSu{vQhf-_XXCRa_=S#1L!yL$aQ@ zd6}V2D)yhDY$&=lhYan|{JzZnmdv&lfb*VZFDWVU`gqmDE}bu(n3zb!CzSEO3-GE@FW>mUk{ULyQP`;Sp|QB z+sQixianX%%bsVygCBnDKYhx6cXxLN4Ac(+fLXi2;o)SU{<;=&sa%!4{Vf_pL zYRLL$aa}Tz1yjd|*(txjcg$xU8_)9(aMyZiwqB>9?O)`q=EH$XfoLDrVdwQB9XoMO^|Lmj2m~L)O zeK@k}1BeadY=ZpED6IJ)I`^GP&@~$L9Xg9YN~d|4Ocsqx$|qeSk+3zX6D$caOJkIJ zNEJCcOFSsdrnQ`;ooa|YM(Fw2z^C?Kynr>_w;9+fu!slg?>Fd&fDZd#rUr4ozcBHK zuE2gLa?#Z2&qP99^c?9wRW!+v|q_*z1*0NP+qR`M&|w;TIK_MA=KNbfwl6t)pPq* z<~H;?Z0TsOWiyIBCt-QnT!0}k!xh!j_@A^6{GWE5UrcTNHlh7jY{)HMDlZ@$qtr$4 z1rdHXEt5}7!rr|@P1vi0QEs=Cde_Q*;m8X4s-G@BGRJJt%J2UK?LOTe{%7eqCfu1X zFDNCVsj#j{GBsxvAG>#|$2pZu%af(NVNbu`eDuY*^iAdM(b|30qeqVhPEKl!TKP-a z_L6dP+TST;1{O}D@<98UrXnt}Sx1!O+gm#*Q>|PE;NI&&D&z?+N&~w~Qwd*Ko@4wm zKUt2RD?o4!zx_nI5~&96)csTX>a}iQ0eRA)%L(wZv_^EeIA1Yt&+ikoGJY}x8iTl1 zs{0@=&f%a!>JaEPYJJ8<`1UsZ&z8*nGrz;y{uz33Plk)9u`JoqI&{_DD2TCwAa}yM zRSy0OkX_1Y5EbW@joCimfqsvyB+h2$0a>Iy;l?RWHNKmA>)&Bhry|}xkDU2PWAjWf zTr>EwDUUk8&LI+Zh0EjxC)s$Xzf7SJg%Y*x_O_+tb#SQsn54VvHR4cBWAq*h zPeAcYJY-a5a?81D?YNQng`GS8LHe{zCs6%64%!r!%HZvz|AvC*=l>r4aQfnlYw6IZ zKJGq|zsJF_r7&g)9Z)KvT?k0M=ji}S9~UeNi{j=B!#jNGnOX#NPX^{R8K)n1-9p<$ z0l>Jd2lM9e&w3QipHZq09gnYm*x6a?T<=IzvOoD8bUmFrB-(z8=jh~=1jMi^ zZyVk0v@|wOPR_2Ck#RgHln&}49tI_^CwzBjW?bn%72?}#b|QI6ook1ekg@kDQJgYG z5bb;}jg0#A;mm0?X^8zTd(9r4Un^G(Wvv<9k%4LKD7Q|7mNX6L;ft5mzd*U_#lKP{ z+xB_s1vu7NS^rqs+bgx_eYnthFpxe=jOPGTLZQ+hi>bfZpZkc~qpZ!;B!z!A(~haw zuae#QMtap=W4-l7C$|Rb3T58~`-^P5<&W6P#e^F*S0;Y4ZG0L_g>IobhE(-JRctkf z>qp;RI3z!cYvMTN`yPcpLS%r}3iGdCPOW_+rn22zQg!KdyzsC+n0x?5w-i$e*i)b< zzV1!qHJgF)5Hx0TXDB9(4~MVemXb?FSsikQ>tbkMYzYR{8_@DeP! z;2)YDL+qCF7`XnK?-P3|WiQuaelOVTp{Pw(8JoK*G~!MYqg26q@c5QkqY07F21jXRN9WKFoLiqiyp z1S1Dnv#rkgtW{t1AaxB{MKjMBsK3P4ohid_7pBK^t4?Al2i^+SXGY)#v%=>&KMnVj zUnvS$7A_7ufqkn1$2v41iHrj<<3eUijNphHMZ=>`GdbW&?h_dglH%?-IbnV_D$da9 zVo+%k$Q|$%1=YfXuFO;qT(|wA79Eh0fd0h1CKg~O_g6|-;?Kw$dMWO?@NXZ zkrR-$$+C@#MIZT89u~;(+ZVvxK2C@;fj@IJ)M|eN;FK)I-hWm~efN`xfxt%~iV%&T z{rc5m_`QmT4-@Fx!vOzfxJ-?H9dRv5OQLE!b^Kfr^#TBPVm1;A{?`<(sr{?)WbNag zSKn|IXFdN_&5fPqgWiQEk(Bra9^XzY7wY*VTbFn7t;Z?N1*-yvZFW~0t2E9>iU-Do zJ-N<_H<}NgUtSKs2!+~NyBgc)pCMzE?S=HBiNux@TNI>Ig1Oa)Jz4P9A!^X4tw7na zkv!)9ZlUn_J>BGCam6p5Z8sQmp?J|xYj=GdQLV#ukEn$pQSuC6Qfm?T)DmmzSCG=GUMa_P@S^mdNP zqorAIWAkTus8yaRdfk2&8wY`l9JkV8oPUp=AG*mMO+t8qsbcFP(~{Gttm46XxnK(U z_j)kd46BRm-mQiUw7gvOKYXx7Y{wt+BSbfH6Zha-o0m?UyOBNAoAQ9l*n_$5boHB& z#J5-@jQY*trKPYi!w;(_sGW;R;FgOloTwFVC|8F!p8=*yQ?F~IQLzqT>4$5*ukcS} zMC>Y5#Sp}ZWO-BzD>6Woo$m?Vzydq{m`rSRjaMmh#n`SI=-5ff+Xw$k)Nh{yNN%?g zkmkw8`w&y2)M#K~HZs{e2Lz1dSAluSLk{iok$hZtgHGw&&b-v$aP3LsWuO2|)Fq20 z#2hMkXW_fbN;|Nbpcq#K^bHs?CgJv;X8Hoxne~i9?|2dKK9)Icc;xf=1eovc>N0Ns z!ZCb%59DgC#l^*oSLIZJe`N+D%uQ4R)43Uug8m2twtC7cQQSL}uq<7!v$$WK(24i) z5m;QLtCN;H5=;PL;kX#?V^d!hGf2=--?YUB$9uc!_aq3nt@Zfc(;{wX@fk z^E)$`-zQ0lcw=?)TlR(CRgr^&%`@UyefxBl!tKB^G(r=CV27{A1_Lp@G>Ir`E7rmk zLU)x3+rV_0QOpa&4mZnn8UdluXyEeV^E2xjqs4NM8}R$fy;gE`+;6?@9wEx7nB}Jf z%G>!k^TP*eaw9~M*^lgzup0HLv@UU=8al~-f_M$RV_ba3W*S$uNur_8j3Ge6dg^=Z z`O(^p>-$^l!=9FIH-_-j9Fd5B_$+WehAZ7V1_{fsMe56XFvpnl;MrP=w=}i91;88VglFVn5s$Epr&J*_vs*m(tCw4P&S9DdzYK zkU%^_qEzt-j(qP@*K)AG@_JX^I~VeMFs$d3$r530E1-fL*=7TtonJ}dLOGFClnIDFjiN{%OSk*^*@iT6b8kX zI1H*vw~)20Tu1tpw#Sbp;IExb zckS(WIv#F1cK&?NeQL$9eg!Z~{vUg9_0U$(^$X+0N^z&S6bsN&++AASA-I&{6f5rT z65OE_cMa}dpt!rc``LY-_dVzK`vblkxJa_I_sq)7nzep1{0}fhBbPs^At4cnG~Gu& zW8720OTQZ&h@ayUn_JReS%>TeTaM~t9@)4s7XIs+v|})*K8gHXr<$cw%xh7!&^aur*+sLCv~x&+kL@&TZ6gU5jE-AOdxeZ<1ZAgPeo1 zd+g>fh4i>B_D_Vxl%1X3f?qXqNNFQ3(Ee}5ncHFSxiRQNay1Gef=)31rH(pwyJ_R)@l+#gU~Fur z$*+3Stb8u{Hmb?;Kg$=a_F5q4RsWYW0axVVC2oEy?J^_XrrD66iC_P};EEW9NK@5g78)6-NUNg?knv(NMWOCqLd zwc3h5dHGnyWb3A>6mDoBqU*VYp3j4_9emO4S>lxwp~^pGC8KBjak9&`0L|ijOG%m; z)19moQlvje%ez!HwY92v%ot?6J;OftpKV|Y$qoEpx=ULLrkM~(k6|!bs@7IIHP4*X zPK|c3FS54E{#XgpAz8b9v)_+E*>6{eh8fYBr0eGu|A(UMjTXBg84O# zhyb*MqCoBemyVZdID%93H0jL8EIa?RI9*bNlkX1EO}7+9(SE9;G4fVGYAv6YR|&7lYGEa)t9kSkAh@5UOSf&boJ(;iGi7DZ>1CJCgE^d*&A~^M(%6WCvS6G8U#{k=(s+;e>8x^h$FBnOA zD>_Nlv&SSFS6QH+>R zPgIR?Hzew}7g1MhrjP8v)tss-+GeKY_Z6F-uR8H)G~_JOA1Jo3;eHT_Ula251@XF@ zR_7?B9uiN32)WJyzM5o~!BbC@(e79Vuf`cC4p*63&q&*U5jqp5zN7D;Y#;rDTdr$e zn-A4I2QpPcm4thd8kzX5J{**b*S-S*4U`;6O-I}GM-s&c(3|NARZ4*(7psr^>(Pf9{E$z*3Y>$=>j_G@mI7;{<|J6e1@H1eoEEM@n=CEJ zzS`|?v1V^CJ`EgOKhpQ@9_dzHA0c$Oh^w`0p!Ozca(_C!5bn$$b4s^;2<1SmKBzG+ zoBZ^L^(Kg&h<}+1l#N%H)3z?)h#-{}EDOaMnRcP@iL8S#sVBlqKS+wZoT=?4B-sA`{l;|oJz1x3;eoc? zUioYLMd1@_70zN^#Y&Nxcvd4IIHtB9V$eGOf04Z9h@S<{HnNDsX3PL-;1_Lp#5aD( zanSo+x?0d`I3vM@dZkG^3qD+^f{q#1LTG)i5V@A;&A~_buu?(wY~Sj|NWPWRW(TC{ zBc=CJKJv=F>Lw2)znZuCJ0QfhRHM1Hp{Kw43w&Q`#hmE~WIlwrEF<$u{<$0pgBdPW zI5|s{c^yP@duUmOM5&wj6Aan-)7Q*f73-e=vt0n(zskeM*4%f@5mp)d@ttj6Z-)A{@YI8f*&Za|7`>!>G~pLB#rK~(K;KQT z?zPXqig>vr1(bw;u2=m>gg^z_kq!rt5;pRJW6bm_>fk=vnkXu>yj~Y$3hdeH(mE*qZiXm>dMtxK zFCAY4{t75-MvvjRthoIm74+bi&l(_g=0U3*>P7Pc5qNYiYlZU|37wo9)ncu;pjYp! z)*8nR4fDXQy7}?=8No;SmCe07S4MjBZR=nJS`Hpo)hvHlx8kvG^XYQ5mCm~ulWL4d zmBa78NgC6?E7qUPr(i`pkU~@rxu?QlDG^x1<@5b~n!xjm^ag)$KC7K^{H6ajk*M}p z+@a}tQcB8i!E@ht9>T`->Qbqr|3P>GIO9!i1HiNWs6b*dfW#W-l0YB(c6-VQRMfLk zr6_0dOe0Q8qPU@Zv#Wy>TP8n-Wj^s$wP`7LD+j%h>nB>TtgS-5Hl~l;_eS=PXTKNI zVsa(HiEu_A50jgD%T6CR>?Z<~TZMYsL8+SPkVB7(r_+X4Iqieg1U6PeVeX8tq0!Nh zaqpMQ)ZVS!_|AZNDr64260{Bp)|$0*r@B;1P)DYBNlLR?jZtelQ4=)hD~ z0=mueZSZ*dsEygSuVxDaP80BF1$fr3pm*s~YMSv^8@DJ4Y4HRfFw}%-2hQjhHWcSJ z`rW%H(Yg*&xcGXnEg>T=5n&~7;uhyL?-9i%7Nj&O)0LJyL-F`W;S z;*kUXDgK)$k?EGTcU+5~4>Fb2DmVS>E*2EaYR9kS$hE6@r0j+fCRlaO;&SkL!ooI& z&(fgD%x-MP?VsB1B*FJ5uLE{Msy)K>!;#10=}fY+vVZB{|JMz_4R@Usm>gZx+HoADxw-bj?G?XYwd#x$)ET9ANQSrWx=m(k$XJD)0HM*)4uo8h;=j z@Egk`O|g`2Q68dg>ZVocPc68%YK{41@9eCuFlHrK^XVTl-(v$OOA#|jq<)^t3ib|8 ztz{3b9BIHaHz3_~bBi5Ym4AlywrmPMPVIv3$QpqTWThEvh18%Mw4qOCxQAT&BKplvEjQH+g zi4M>jiTdb)c@b}TT!n4dP(^`ckH1^u3mfVf^@EtePN1d99jJ>uRSOmc5lVOm@9B$| z=$K4BU{~|jLmDyuoWm2U^>f80;UDW{K-!0iPC!7IYmE!WA=YzB=WoO7c^)k%~J5^y!*?&41wo#3mzVh7md&I0ZGZ+ zqg!*;N_0AnV!i~U1~zcmjZ9gWNSSN~W;dDDQ=G=f4nIp}iYLq_;68+fGN3;&Gz`*@Oy z#*|Jnbta+=!yV(CEH0_!(j`7jB)+O=m1mby01uq3L^^e8sHVvZjlr-obq|l<>M4z8 z1uTqARCrA?J#XazX^_xaYc^$>rd1)uV%G839#Sl(n(1X;sUI#s_Pw^abM+DM&X5&T zSuXI;#&e&Edzu{0Uo>_~^pQufO07_Aisov1=qSvFx|bBo6FWb{U6npiu^I0m*Wv1@ z5%En&xeV#7dGiR(P%VFi=ZL(q8d7=l>{o?DyMPw7VX9*bRc-eWU3r+czeb_^wTI)f z>;xIZ14JLuqx|mwE2IucmiV$%e)A=`*=}iJ4JkPfXgsIrESC**sKjJr+JozRPR_U$ zhQke)uf^5c%r*+>oiIC?XrFM8_vNg4!ddgC^cT`$$=v@b_BD6e4! zNuQ6<-Ujll{}Hhc?NNa{t=a7J8aLw%BY~W}Xb1Tx^Hz*mGSgpM%5e_O3C8AXn*CRm zP<98ImtTipm_NV4Qf;5gvOPDPh$3{q&`gtWg+=^*f-+c5_d$fJDGIq+k?OD2p*d_Z zVbg^2I_$)i$MWG2V&723T46RCW0#ThGJRC>B3zzWpt=`U71WIjU~0zX3juh! z%bxL{3PWgTZ!Ws-oMH!gx`0;sw;5a>qi(8J8*%X6Np!*Uq-loK!12Ytg15F!(>A`E ztzrGDRcwO~iFMKY5uEbAhBX}X^01UMPstZPn%_pw#!(D&tj-sW!prQKA5+-TqBPl@ ziKW!!R-cfIJ9)AAT3I0-X}gkjns%86M{6OZ^|T;pGTN3c5c0M>~R(q_HoGX z2c&+Kvz57s9HwUd_cTMY2$%NGwX-XvV7+|iBZt1bJT#&A*w+1)f&C*q23j$G@A89^ zJs_+EAge@go?X1pNFK|`=2QCy!S~*a-YgXW!`wh=hR(I;Dp`I$OO-O-woc|aI%;qP zhK7Fm{r!=-5R-zybwXu&x+SYwcqQT*TIo${%N442L?wkEX*u>TYa6<{w;|>J+)sp; zGj>F9>G?N0|E4)f4S`*wc+V#g;7)kEs2>M=MuzybvCKE7=VxNGTr`(Pm;X17vHi9e zH0V$6q4-S6YI9k%3Vl?Oy0^W1xe$x(nTifnT(-Bbn>EO^fD7);JrWcY#dHnji{LSu zg@^5>g1aZ`9;T$7$*q&hq@>l)Jvph~S`*0;YsN(1E!wfNV zV$q>B8v-`$B;_A1LXOgh0R?H^mEK*#epfwJUnRL(sw41ZfshkpgFx+%79` zs;}XgKf_9=9t+?Xr5zBKd9So<|4qDicmp50=0-Y07z*pHt$bXXp9Sc$Y(Z(Xjex|+ z<4h!jNghx0kM{qv@%!pK3gN+;f+sm~N|zssRH3kwijewl3$s2XY`JnWRC z#jRBX!*_~>-JN3X$t;YmXLhqo0-jaRW4aacgk3_zXMI^mOL(f?RST=RK+YE#?g`7* z*4NJ(j(VuUpo(|H@0q#^b=+Gg_Z`AojFA>3zCz*hy8Q=E-A#P5NjtjO8K7UeEh1fU zqc{*+HER>TXmpk2U4J*d(R@{W2P4lYg!m-#7o-SVzeb?S;b7ydkZ?@k&WN81phPZa zvbP?1u7iguaIKXjsJV6!PrIJ7+k9pu;}q$?XcbiUQ>Ne~Q|}x**xd?lzskzOg_g`y z*}$q@6Za%@W_0kM7iMNzvmF3Srsr5PieRT3Kn9|ICo6>j9ym6tr)3ddE5Py+*>_?j zJo%5)oBuL#woym*_)yLHSwS$wxqMj>mVNO-tAmRt#1dkesD2yu z!@uzj%~blkj%A}>u?|zLR)~&n@M~mx2OCdp2!xXkq%t`rjp=|&wE2_sVS~nU}5o~BY{s5F6Sl?g-2u>|8 zE;9X-=DxbR3RoY44<>!nd4lj)_meP8BS*CIGY<$^=R6%29+p7xSH4k%aHr^oFik22 z&%i=H4XvC52TgdMK^`e}zv1J}F=cydQW8E{@PtyWmc+yknO_92uyi}x_U3y#&AnD~ z82ukrzlpre9&#+j@2?Q6#aTty`3;|GXwad@^^2;qpa0VHy5E#WNyQ-W{_Wpw72HWt zUyJqXJlY`zr}a~eU>7)!%;3hk0Xm`)|m>Y1;K`KE7itcrFvmmV$hM( zjNC8(I9Y09c&N2N7W znWS2T5uCNxu)-O>dbo?0Z>w#dlnq)M8jvU{Z*T8`Xiw@lSCk^XjD~7g8~i!bEa}vK zFFuwKKT^52H-8_!LJvn$ln`g$)#8EIosRai*5wE0pnPi1$6@ zLdyF}ic)~}oim_Ha(^lG>iCvI)axt|elkh7V=@&s94T|EO$4p|GGeASd!ONK&HUY* zpsq&4#ip`E(57%=fuilWz-@XIynj>C!WxQ^e&^F^$3av62>zjv4K z&w)apBwwCVy*Hg(w!iB?ral3np-s+PEeIDk$S$+P`26{twO!LL*kuO^nq8siM!f}j zxgYli_f!65;gXNCBhB=B*pJb7JoABWPM3z8Azw$B?jUC{&5&C&i|GH zrgaRybPTuNt}yk3`95GrSF5;h9E^M6JOz3?3o~CnUtCvs>%AO}zc6oQ-2pa@F%@3d zB^L{!mlheKT8z>*qt1zlgj*vwGGB|;UJfc=WMvM^7mP>SU#@-$O#`t^h8`i7T>NXs zBWJ=6rk28v|D?@2>jAOmDQD&7q2g7$zneVX|9k-BdY!BH{3-K8Y>J@U6ZN}&?f~tR zj1IK+w6=SfR|>yVIyw1=!b+VYp@3CHIM=)GQ_pi5vS39G(6e3)U zbu4RH#}G}T*{ZuCjW&m4GTXBZh`yIr|K?UxP#_PVhngyvYv|#tIfBGG4s8<(FGl-) zT07CjcPdPoc8kLlTr?xi1hL>JQj!;+6*sbAvB%;cq$lmKFK=ICN8bGNBx1wYR6r{w zb9Fn+)#RY)C;k3Y2|_IWIwui3;mG?f5YLronQA7&f9+UW?|{SRWLEQ>-9f$DSgPwC z^vbm(-p`&5X0Gm(hxwCdxB1qI7~TQFIs%x+x?NM*MekADX2a#Frgei{kSSW|XGN6Q zoDZb^RmeyN*eO34*0j#Tz5G^x_Ihaj<)zb4Y1J_t?S)Smj4;J|wxZ;^i}$+c7Mf!H zrwW6?W&et>%F!W*5ZUUd0$@83B~fo#0k%#qK4zo@K8|4ktqNr zs%*ojSQ8ENxoad0jn?B62DsR4(Z2vDh1FUj=?b7@Tcx~p1Bg*>S$SrB1QfS<`$E@r z07gf4m4+Q7AS>D-y}r^5kWK5)hN8%g)(U>tf$Ua<;oMAT|CdOtX^s}-$VAPlG^xzM zUtJGC#=qCBR(o6fKuo{jzK{V3OfQm(9rS+)*}ATJ0AZN3uq%o20jF4*>Rg-2>fifx%tuV&ZNC zfF1_<$Vb?~=p3WouKagS>^%N6f>?9F2x75S z^8^A9BK+we1ayL*S56lov?Q^~=Ia9!n$P0(dRmprulo=Bh>ypvQ_w z@X9lQSYjP6KWPMpD5JHjwE?(q>vcTRRbb}Xlo6bPnMa7Q`p;uyj{YNre~KQ%o(1?X zv=P|*kpJ+)^j|#y4o90O)m1t0%_e)MUjd%CDLU?Y18{9ae~=UJe+1qJ+JR3EEH0%_ z09z9U;3@=={)wZuL47cw;YEfccfvK=BRcT(zlmma4E$~mOvZ3^2_JAxb@K|lQy^UI zbX*bpxd0So1g@_h@YS%?X)6Cryv1t(d_MMQUQJIO5b`K_;t#X{ZDwI(RwxS=TyC3% z-1^-If=u)?WeT8>62VK{SpzT6t;uDK!GPqnXfG-NF@%fHT;~6fmLZG)U4ynb$oM`S z;A>xeMtyt_OjS#$h7%yHUpl0_z5vJ_0P=qaQNT5)=b4t=fgoDK2X~$W6Awo%VepT! z(=o7v`>!G}VFh4>#4q=l?f(&)yBK1@ zHV|~6;{sj<*mDNL^z5^2t9UUe5r~HsR1YpQRi-8a``p-|{{|~YMPazh#Ua85v zQM=e<(-1Zt^u|jcdjCuX7$rNqn~ZI1J*kUl**dQUZVE5*v0-2Y>y^&9M2r2IySzNP zCJ9ah3LH)gv~+z~pW0np1w9-2!Ow2nk=L%(p}r8pJ0G0-hK_ehHwai+ptIJko4cOf z+jVzK0VLSf=>NBKcsw8KLjdirfGg1@n+A{T68%Kmm*-b3xd+%Pn!uYordG|bZ=FeY zP)Bf_M~F1Mr4V;f-+361ZAaa?S|P1T?7}WxvSXx;!FN{Wd=Y3IUj|pK+;+}F9tPb4 zyu`>I*0|-YpWdf+>uz+8+gYc z5f~qeMr?Po-?!pdTl>RQNFWtHLo-&Vz zMO7{FBzXW!f?O)?0(k3rYx;Dq<9W-DyC;apmXqX^UT|l3x5~yr|6XOq)|qdUcsJ4b z!o$~{uowaqtm! zXleU~PRb;zJ>`582ux)x9iCcBxw&@Ze$TtP9h>+=uO!Qm$WIq2Mcb{M*J$6vf`4k~ zMs@2o*d#{$?YY%V>b$4{WyV5QpjVlW_e9tt&fd@(5*v1A&oh0T5Xd)UURd;rr1wfsPMTk?~O--z1&8lK_qmRvC z!HqGXZc-(!BqsNIJQ=UA3oRpG6oHEU;`HbR$4;1ZbiWx4I1Xp?s^xXY6VG9nMXlLq zH}_0b45Djw6gM*lyHB3#3R$jrp{4x*j<#Rylx=$Mn559tnT>fGuNd2NnV0IXN$Ho1p#DOBi-}OGentj;eI4vD(*{fDS><#6wn_7in8rr9szfFJWJ6cB28} zkr|&t9D# zbuRgxNiO(U__XNV#*7nR!@(oaKt&zw@M{zmYJt?ZA2U)*!))QOwX*0uu=#E|Y!xSv z>l@o+FQSERsY=^@M%J)PrXZa$&eVe!gEjQ1$_8#N5Jpp3nUpa)2G2j*W5?KKi2P;j z4Gkr$WX*tWMr$eT#cP|Z`d57my%`h3WkVpEqJ>nSR= z?{=C2Ureai?}hL6TDGS>>odn0cJ%2@!WQ@7sC;4<^oQG(FZ=~bG^zTZ*p$XyFFlra zZZNfN=C_2tnKoKmTUOPKWI0(>j(pU$IVnNAa6xX?kJ8z8#->dD)vzxYqo+@zQLTFP zo0}gwqAkM}ZAq|PWkMWfsoHcJ2V9IWTn|Fsw?p5pmZN-_k@~B5(s%2f_v9_)re}G; z2l=FBXp{QT7oWw?nDsJ{L98&Er=4uP)+{-FRziQc-Ja85QVtM~ zNJtK22=62%Wa>Sha=IOMa~Kh0?_d7xt9~H)>mJrgr4J{w&;aodwRqX-%UUcb2=w2s6|JqU9bTT?+yI|QT)Q=Q{re#eb%)e1P2;m|H=OrKU>ZpmRLarPqfQLJNg(CG5+~HS$0vQ0T_!o z6*bP4cAyc&Bo;JP+nS?r@Tn<>^`iR+1SJW&k-@I~m515-xfZ2&(dq6i=h*LK=9=ks z5!@5Smu_8dZB_;0njewMF$$mRft2(b(*a$X2FJoU` ztnk8@&)IUjckZq>y&rC`Nk2;hGfIAXz(f;2cJ}da8kwu%_X)Ava0t1&(q}?4kjrVuc-9G$j_3Gk%l7%U5n-H;)BoU$fB6vZwwr7j9O~5jlTUZ zb1{%lU3_EW;UEb++`HDP{8({U_ZAiEf$VrjeM{cKO>;=v;RadboejudncC7mKSz!8 zUq(Eg1qY!I|FL<`&``_b!qRG5_f{vGSMJ2qHl+`o0PJ?wC`r!-&p9m2YT zLS?mB|7CJ&>RM6vjAU(_tVEL7b$@T~k1Vx%6ZE`~L_1bhO|4*)jDX-5fh0_n@sPV; znGph5@P1I?<@GoNB^_@%@fAdc{I>e^JN!`F09}g@1x2nOa~Mh3a1Y@}%cp+!6#0>@ zEW(dAq4s2)_HVF4{gA_s(gxa4k;$B6)KbY3cvh$I@kb9&W-ChcuiZV%v+Bt!N^F)N zmW!L6yl-8+`lrkF9{Yn9e-&XeT=k$i%(VpHCa{HlW+Yk#m4E}P*i!WC&1y<@&DdU{ z+)w=i8pDiQD2eTD48;(xzA<$pB+N~wIxeA!#9g`N31j+YI+O+yzHd45d$YWB5rzyD)Ouv0(oo^*?1KZA_~%%$ zmZr%Mv`$9?KaU!NEZNs9s8N$Fa6x6Mf9*AXSeI`i8xK}jd~N|HS=nuxlAcRHq~`WD zUN@JQubQ&x8l!-MqzwvQhfPV;*zsw!lB9d&zENrrYCP(%483hHjK@AH{o&R64e}@{ z+JgK_i_6#0gXT1<0|jS(Ib4zw#Q=ph$a08;LKcI5;M6G+H0Wi5FatJ!G4tfHZ4;lY zp6SNst%r)8tV_K*bPP^nhUClk}| zptr?^ggg%Uhx0Y&J)V)SJS0i3SfC>5^9xGcqj&{DdnWZ#MYy20=Ia?9)AhWFI8d$4 z?a6Ynw4e0mn|JMRfQBL-o9S?pz~-#uP0Cz56{X@{D1oS!m*;7nO{Mh1ZIvan$#Bv6 zrHR^({)vymPxj)C+H-mX*lv!K_}fdQvz7&S5f%Jk)R@)8=B^DA2uhWDR9&^Fg;*&23xx=>JeZ zi#MTQUWR#^r)Kl;#CcCoFuq|DpW^y$F*oy&Mvzith^D}FllSEK-R>S?rRk$!>>jx) z6;gqm2*ba4%71qWj0vlA+A&GHVUQD2V(=UJ5 z)k;g*6+s>I23Pdc!BDdQc&{Eds!ERT2elrL&+dtjt_yL(ry1f@;8Zl)wCNtjZ0e>@XDwNWs~wYufR`T zek9sj&qvmCgBS_AQ{r-}VuFXm_mlyYtSBF;j;;zC3X2uclqe%f{{D!GjW`Uj_hwk{ zyp-Un(eJ7y+C6P=&62~Lj=%!#-h4BBGy@9W#TKr>X1N4pf<-j)q1d!be{#f@ePH2r z0jEjb&f*Na0M>;xjiWdaw6k%{&BoeH^oNv zmjzceR?s4=aUZs}%U*;yo+3 zwOKmAW@u=j4XW1krp$Z=juE;plt`MKKFL}XCB~-;x@(1lg6E8bl2C)CU}JA%xAiuC zesMM&0fu$G0Q=Un8QfT!Q$e(ap=#}JISMao27S$MlIo8~LV}Jey_;05w4tE{{8&gg z-wr7n85ndlbF5~oGg~BS#xoYcCOvYnl;B2Ncj4PF@HV(y-2rHE|Lg@iT3B;#}D9{$>}(|G6(FT5Lt^OdVR+G=`v4a6!&ih0srO@ zOm;5|$w!l=CI5#I5mWPVgDR+ahU$&)3GC~COb7m2ZrRQx__u<9FuWH;er z?p4mH>-1LrpU(@@I)e)VLp}OMX=hAP{`Y5j(SpPT(FC|((#glm+h49L!uVErIls@0 zOsXKkZ@H{`&X(!7gV_%z3&L;kY-y#GU|`sdWyD2Py+G=@V%dMNK@t*zixN4QQjli@mEdwr zPY;^1BggxM7(7GNo!*unC>}J@)vc%LqD&8q8celf4s2~tS4k@;<_+MS-}po%nQqo` zm~nDc8<;l`U;$d|R&JH$IZx$Y%^~Hb*c!Gu|IoEbrM-bjJ$Ya>#8+giLnc?`U$x~g zqdzp>RnuHhT?CI@wYOZCQUq4iN>b|f5bb{tsWJ%4_o#;kI0|~0WV#MyP})o%S3VXK0q;DW>blVw zvF?u|E13_Wkf5MM=JG}N<#z=nrW1t+F$fMQn8t?^nU(>Khk`9s8k8QyQf~aEsdCj)E< z9Px5{E4ze7K(0UEsSYj4c^nl|^V`E&J3X51-LhFH`{{syP6~_-(`xDT)`Xn8UfrrT z?sKsOy+ZpT(@&d9_HMBq?pqV>9@(A{mw>z?%Fs|q=~$cjFFHvmzj9>=q?%*mhz7Ol zByOipp&{Z32B-JRJ;(&9v!v@%VyIZb|3#1}lt5L2R$~3)a`9nEft+)aHu6MQ3Ez|U zx9uRagyd&$9=o$5*%uTPiq;0m@j&|*FR!oS8?;RPz&eP-dG5EXWK1N7EYj*^$MuCr zU^BdqH%dPCJit$ec@vqEGheDrJVHWgUYI*OnX>Nc^o3*0I&ScrB5iC4M0z)Zm%E|| zjVM;yrQPybT}CUtPzLp>pDKKej;J5SyEC8n%$-g|0Q^K~`hw0Lv@Wo<4mxcc!lLsK zt#)|ceAYUt+U?Jx1aqA3zBXWiygs3xnuoxMO7%sO?1DY7)!x$kk;;7eqK4N8XsGAE zkiQeSifIAbpiXg-4z$WCd@ki_9HwE!RpsDTZ4|r^0?`D;a^am%mVc$`k1(-K_(hN5 zD1E6AdeIl-+K3U6O$M_?{B;2i%e9@!ny=k_vr|bN(p_9kAPOytEFK8$9myq;D9iFtluo(&uZeqby!jvuY=}3GiLNl`78A&Nu$P$#z z&Bh%n_TgL1jo9!&=Ip{jQj1O8`_HcEKNC6Ytb9=*k*6KEa>jS7uMn*k3N$GFcl+{U zM0R~+pJ{qc!^&SEIGa2)L#0Ep99R1q^eq!OJ5s^UF#qDvuM2J?e2|)w^~rssb{qS1 zt?U%uX`*T2I9`36mKH6v13THge&bw=z(?Pk*4H(R*TvTfCCxmZF z$zj^O`wZm}kA?go280uAW4j1E6f|Mq+b*3fxxHn&R{FO1gvoQ}L22k2lu`~ukb*i` zkFGHL)#3Y;b7L_Fk}9q~W`be9?k!~6=r6BWmqNR4o035B1+_%gt80o7f%-;)O{DBW zXHXpC^ssCb`I%AoFNEBPuHx5YF_20fS`V#fzouUbC{rEh7mMTTeGegli8HWNNz*S& zc*anuoiTQ%FX$r^yr)K;#fwX^P8**ZZU2%fNKbj*)q*`vC+&jkHeHgSRxo!MceO4f z!;2X?55$>Ub8(!RIaIISdU0pP{Z!!1;ADlq5SPcD9W4>^IOSE~Szf3Ao0c}u$7Voa zgvl2h1!e$Al?fBr3bBmfwH%h6Wqo-WjSYjPY*2 zwLU6Igc%`mq8mzT1v1?qZhmydZu|7}%A(izr*zg^ScLm6Pz+&=8YXp-XJNP-%iMh^ zL4wrZCcAafGMoZg8?=11UD!|r3{18dn_vtwWvYH^(`q>)n;tnEB_Wqb(J#<5IOo=$ z#Le%qUU!X;)2|WEIKNnNQW6I;CEO+|z0_vc2sf>(k4q$jAtJs3JAW zSoXQI*4|%!sm218e#$LugsObZ5XQ$7wepj`qXh4SwM!H2hvP?nFF~Oqik4m;3j0`` zXL*t9yT8G1fB8C{wd%NOQpdsC8$v)0-f+lyc8%$an=VLPdb31cbj?8M$1&LBVPBR{ zm{DVw;r_abXp?8Mh>}M`eXg8m$s=Q}uSI`oLP*(yHlCfw;mhy*lmO+|k2cGQ zGE=Q&{pI(tt7B~bUs@L1W|LuK=1%S;HY3qU?`NUYrcX-x2x_QI=c3JzvfCilL`!p} zT1iG4u8!3=`dlXj&`XM_^SSxfQv6GD7oeEA!JBEhwb^B#hA`LGc; z4J^%DB3ERm`F8L2pxreTm3A*r>xwK_kzV+eD}Y&BlKUnXHr`<1owAnu?<#=}LT1j?sh!TFt%Io+$dEWZ@8oMX6DetmT^K&ukbV=ylYcfLd0g#(j9&d60iyB6Jr z5_lLWB8W8pk;2q&Vu{gU2u1$ZRYH%Sh}u7XbnbW0kstX#Yf<$^i!F3%nZKxpST#

Qux1NiY`uU`J=zbTNY_F9m5vvS9LeYsTu$a_2w%l% zPS7OnwwtPGmp(&4Q$n1Yf=A2>F_%>LWwQK+HI}4|^9EusnzEOw>#5hLRZrgUO^eOO z?R+trzFa8=lG0%tNpT_wo6cRWil?4cSBD=z7;H{}fOzQiaq(fGMv;ls=}8*0yy(<2ELZ{sz7%h@IME-qP7K-7pTF-er}H4PeE z_bu~478kUWRF3rub8eYNKToya-oX(_OL;yi8q(u#dt3%!U;_fQAoX(H2Ndo~Ze%!l z%jscQARbCp?w7HA@(R4a=mA;T&P41+0mV`jd=yv|AjPWehmJQ0qEs!|pU(Ywk?PQX zN3;7CWXRv4yi)Q9JDXyx`@&F~AXf*;fB8OBs?>{tfV>62h1N?Arf@*c5uFfgO{bPk zkzN;>&*1BSem?cCIG{WbF%;D+0v8P{U?@cs90bmyi(^r0V={SdAXX!(fd7i6^SN%- zWB%+tzZYqWZz7xc%VoR5uO^H|7le(RdjK5mG(g!FHx1V5MOM)z1t>2%%wMb6N&6W^!d*Je8POpd-;_Q>HkIF|x{r!%fOH~AQ8 zRY?Nm-}C<%VM#d82teHI!Q~;oSSv-Xd62>eYBB*R(Wi_i>(d+N0UNOrA8^G?vZ>~U zQ;Xi`p>T3;(3YST+IgH7;Lt@N8~NGcL-mlCDRBe45XdieM0MwaD)aT9HVB&EhJ}`j z+WOIfDM%EfF{1)N=m(KNk7iiUVUSifJ0_5!#Lsqw#1@*f>(hWzOoq#lyr;~+5ok^Z zW=iKXfeV7JeAb!MwWFY@KIy9U~dPAX5*Ouhsb-guGBB3@Jd@;Bm}+ zJNz(n^=0Ts>-_fFdvLkk4srk~Ziar=zddLr`eG0I#qqb31+17d7rYQwcyB5DGx~V6 zs%rg#aL0xEWkzyyiWU{4=STo)enFRp$g!2Vaqf44h=_iEC(nBBHBXO|Cc!ji5?3?n z$!{GxfT+NoEI6h-?F~HbEW3drfuS}1Ci6C!jS)AHzBt86*vBeMT_{aGd z-#Lnakjk7zo0ie_bf`guJBqvlaHU{x0v(|aC?njawZo(IA42c2Epq^QM@77{D z2TS^0|AdvkaQ!4xvum2Lj4G-(y#*1c7qle@V6s^H4LBhEJ6wBIK;LQ?-!UB z8b6OJ>p6vPD=b16t(Tr6O~mF{P9BYnXq0Em;?(03n!%*6p41PGt4l6reKfWNIE_H9 zBZcIny~t8|hRLPt2U_ecGojKI^!Dbw7R@JT>Fp-5%H_JpY@OGNjMSA!rcgaFeH%)Q z{?)RA&A~QMaF!X_X0+IeSq)=%Sek4}?GJZ@_8dozKL|@-ejg08Z^6I*%K%LbXjG&C zzdUsXG`hFa2%K{?mVj?DuP{MqGzkpKl%&_~wM1Sb`|YHi>+rjyRn}~A*VnR z;76`-8C16nqeNnu?kzep+i)~j63&n>-e(2La>9;kQ0uy6FkyyD^~If#k(B&IcU+dr zdg(}MI*Epud0~TAl=fM~U>YbqfT?YPG_fIEqYMl59y{=oEB+fU4Fj|EhX~?)y%y(#XWwsS z?b%x$F!)A3GF-)&=#EMu;*26Vpn&>6l5{V3S=qJcP;Dx*)mO3{{`AAK3_i|Q&VUI3 zp6K59tB)GYmf5-U`EUIkN@_(KGkuL&N^Ack0LKouxPjBBD z6;;!$OVlAb48Z}EoZ}Ex1Q~J|K!RieL9$=~$qX5kAx8-!h~ywi1c{O*qaYv|h9scC zAUWQ~^_{!cz32Vb_vfrLfA+A4)m>d(UDf-kr)x*OYvZKg7_DD{c6Q{u=^rk6?OmFI&wK?1$zt~%DZ?5&Y^```j zd2v{m-Hjr}-l^0*DeB~LNL}yQE?3Z{Lc~iJMVAQ2(6GDrxsfpHc0|y5WqV@ux(4=M zA76SDj=l4cG90_41P~dyqy>*!HSQ>=5hJ~N>H6f|FH~rEo}4jXw;ggdSfh&O_UYvg zs}PYllp+lYT<9jnFY*2IKft!Jxb{ia0q#jh{SW4|S#1iznGc(>R0yrl58ESNvPNj; z-1!21+0kk;!uRRjwoEw5j@<{tPsy{XLi6LZp08C-CjrKqg{q^_aeTOjB6ZMGlfR|q zUPQjv!c3%l$q_;WrKE||V+GS}y(32)6i>8E;fJV_sNb{Q5TA%HQwOO1G$B;_ttHB7 z0fsQY?Vu;_wq`A0ZBxpg@4xVpP)@N0VLR6xn3i`t|MbNF929q4KRa1LW-2rUAi3Ij zVh_?MvGYs3UM{Tz>cziPg%lcKSfv8vnkUnGzlrh;Twcm%ahkK}81Zr`e6tW4bL7u7 zCT8C_uDzLGP~XIiYM_broMBtWc&L*al2fk;9hn%)7~@A7s@=d66GWyg8E8IIhZy=x zNJ@LHC0Y|2FJ$#%%hjZc+@;v7axm5bkmkW%nknSKDW5W@aAmJQCRj zDI(>DcGvmE!MjX2m)Zjpy<$@X^LE2Jl}!44de7~ZusBCeWo&5Td+AKS8(31!ag_4M zrTFbV&2ENPF+N@TAgod=S2&!XuLm=|@dmn550E{W!!Y`=w4BczMd}RRx=4F~`_~H{MCVH)&nG0ejzdKk>3Qj*}M59 z{y<~?cTm2eK;D{i1CfgxrzvOtBIC7qVi%&>t3yK6CLw|R?TR@hk_pfDS_0q+W{Fok zOI&|`l^bTa+dJq&U_-5_CxSkc(|Ze#L{*nFqv+B1C#oO&D8G+`w38V}L6qdx2ruzy zx!gx3@#T_owgy*{QD>WXF-C`$k%f@Wo8`3FB2S!~WekF6rmCgJs}TT^hrYVaHvCjT z*UA9q9roR`E$^u-C3}-+XoD%W`C>(QdzjUaF?By9bpJwUUPWFIT`=gO*IBHU7gNc zI^4r{byK0LUr++Cbhhp18I~SlM`Tp=gB*Q@%>Fv^Q5@Ey8Jqy+f_^?$*>i)c8l)?{ zj3JZzJl43gA%0Vh#{COtdgu!6QqaSdUQ$D6)@_8_`QZmgiKU%)`VOK70`8k%#IEmZ zr%5$FtvFttX4k8XBr%T-g>R}bd9^o6cn9(8%0+IeD`nb>)%@;?!gdtD4oy7&wDL%k zT64BRz*nhYjD%iAdMU@2h~F!4{YPEk@y8wg(+Pd+6V+jifbU122X%&K8UELBE)w`Jd=2PZUb&E7T%;xK37<r?Cfunt zf@MLwt}k73IIcTvbE|{3J<>5`&j>>i*s9(DG0(M$*Hx&5vkr5U5hJV|ZQc#8apa*@ z&0{e4r9hi8rV zg?PE35rsmbeJUwEW?Z}q#;g8HqB_39URjeY#mM^oOZ%1SkNp`gtfd;RiazUF6SgL! zkMRzZbju}$7jcgyju-EQq9;qqnIjIWlv`P1HlF403%M(lt`<`JrEdfaSQ}cjo-c|G z+Grdg$g9tOO?bDByqW4Jlq$}@Qs}G_lL`D~ub%$m9gnU2x=J5))|l6-s0FSk%Ry!0 z?V-PJUu%~VFwX_PLK@xTA7ahiu2+*0$(f);+pOr!P1%?nQ+GjKw<+!_y5Ju+j@1RT z84p&E7G^}yDD4h1)*ogQHXO|M>_sI{l|FXVf3u^yi!wTysA9xA!;g>iVF(dZb+z)| zXhtblg2DDQ@oza=P3LFF`ny3vAU#TE&YSY3>2Ucq!$$C0s9v}AZ#lsQ1c)4-y|VTe zMiEd{wsMsC8&?A+v9s#M9Z6Lz@t;|cAm$e#Fjll>+rs2MGY3GDOAPYtldaOWorFB5 zeO9;{>^8W0$w;M%n4@xkkjySj1F4H&9wui^M%RRI#BDqegUO@NE zYGUO%45a!ZE)y4%v@PY<`41YDItMenA6!PNACIbRg#E- z=>9L{&y2)dTh0ma4hsJ}+Emntl8NMa@&~+}LX`BDA{ch0mR7CRdW0!7^=lPu2~HZ3 zD~f4Bd#^Q&yt^`46rPjqQua$KR%l;Cc6-a-XSW@H|8z!aqjHbJwRN`k`HKC1q_@;1 zd9Kq^w4-5;>7RoA2secz{1f%uMD2u8RfN2!ktzGCBI2?B1CFEI#oUvy`+N>AD*`6@ zmcqwZu7~e#iTqCPYbP7zq=_+8+MZR^{jspSotv^=c{_&wR%m(B{j&9U)T#!h%324l zcXrpf(|8eFvQ|^PFbw=eAF?XnqOVcv``t8g#_V;s#7w7|UQLleeB$uB_h`_^Clzzi zBr*%l-xj#1{8G{0mb`)tBcn}gY&jfOB$w*fhupiHiU$w2zn2)yOmi)g4@#`1@UnJl zsb6J`Nx{I5!s4q=H+M1vLI8WU-LP9`5wIl8Z zS4$Xt#{Ym`i0d1jQi5-BQ3JcLV9uOw?H)2wiC1qtu1BrqJj4^rD2>)@s~Ugd+~Cqd zW|OWe=?E`9zr692d)LtUm=n|fCBE}`)5?~wrR~K56Vq)M4RSTD4C4^#;-IOs1?#$F zzgf1iCI@}S;>N^|+V`E4eo+Pe#10%Lt71d9u6OaG&9%c%z-Gz=5H5zTmKR?Vu)ZMK>P3A1H3NtlA7~Ib z;R>aZpq9-lhv6yLZi0{KLl=F?X_sEXwBLoc{b_5P)Ff8NLf%BAcX0C8Wk|^k%!MZ& zyE{{Ops;po-#ircuI4YYD#*tA4tT7z1j+ky!oZKsvX>yH_>mAHyNy#iooiuH}62MP_`x+DJKD|*Yi zrd$R3d`WRz$yRCI_J?WxX@0)@8Ll;sgMo9_N2$>Cj?aK(QOI}e`O_WRk7hS@=#mnA z-lpu3?Bgd;lTrs1CH1T=`o>$oGHKAIx$2^oek%$0tB0Vv`7=mT<(j`o#TyqCI`ZWR zrPc{iDiP(rkbeGXte{{dxCQT%Pn$bN8!cGNu>?! z_aY(vp^c4`<>pjMHa+!^oWTP%t1mn9A7i}h-=BHc$0y5qsItKj5=#tEzrU@s^>*T3 zz)SGw(hVWf7vQ!Ei2NpfKFn&oSo>LtJVM7(yQ}EWC~`$rx%KJpETzToP?{$KR^GvN z`a4pa{vq_a5D~(b&L8-3*~VV&#nz41h#gh&r^nLgcZIQ`&aXuFtFxx31cU2(b|1(? zN*;zw4W{>R4E53vac__&rVoHHR~!(b{x!MoWrJHXeR^HRKoej5ULhyHFw+IhJ21H}~-qlDkN8 zHsab>)s-wOv<(g#?<^c&_<5*OE2jyB#NDBo93zNeIcrsCpk_3%fryaia){vMZx5D= zR#>+}=`pqTcbASgwd$?d`X6vTiWr;8ETqm#-y_-CR8wvE3Ke7+b78a@VM}51 zo06Uy>k7eb21#YnSiZ96GH*`O{$3h?n)kuFWr1G5#`pT>j4-O>+py@^;=DQtV1s zCEk8PGfT#yK&M8^g8P%pL5F)s#+cMw_zouF{-oy$E8R`C>TIo!^$1}p(npm5W6#}P z$}9DXmwgx=GM!y|XhPHF1@O;B`qlEPYncPf!|^S9l9{e)0((QxL= zcOk%wrtx`WQo|Gkge9MjSLX7m6|mc5iH9IVm*okDAflmtsGRD~&0O^1wzrd(v%)p) zeW#fQ<2Kt)kn3N$dtXN>p|*=X4eTs$3H7|o&-62CG+G-g+f2Lhxacu4bHg*yYp~}+ zA)H=k!jy_3G=~aN+xKwt5c&+E5NA0jaE3x7%1!OPCZCghLh~3(7($2JCX8;s&hF7+ z$&7IlF$U#o4e+8PB$B8;;<5%3X0+t#UeCuv+~E{hiH^zucwF((gy-Pi$>6e_sK! zFI;AK@}6bvR#v2Wm!Y`PoSULD8$!AsJx-(FExf8y0V^zzZS{1PZ8hBs&(E;)yY4V4 z?VD`TPPQo*Vy92NO`N3jgp_D&KKl!J6%Nm4@ntu|MD>Cu?bxNfw*m^5&$U~PQUw-k z>2UFOkUzTk^S47F{i$LqZK1+yoHUotubjxRHQHIrFpWpC$fcxHUkOGLEJ2D=<$^E0 z=@z9C$F+)G8{!re)NC}r1?{tSkjj$g5fz@;rMX#kO*F9lO^nQuYB!~>;;ieiCTjFq zQwE9)V2oA?USZ6tLS3aGLHdYv+2FkiZ(Pd_^A^X;yOfqFKo_c$743-d4BVOjks_Gw zE~i8k_hJH=nEXInkK>2aXhwW?^M_xA67M9u@gyPsKE)&sNDou;IxN*%^4MJ2xwKwo z4k=u``YriMX&5H?Yjb#8AT`DlLwJ4uI$KLv@-x}+Hk~N&ch?G2E4v^I9t-PLL6aP6 zpF}or*q~lrQ}d2T{`ICnywuxnMO2b>6%QN2y)U^D6-9%Gq%z3@g)S$>Pc-x%+A*=% z6k#UmM!?Tf| zYUMLGu(^1yDKG@_TWYkXFt+2evL`dZyrDklaZ#SQY}lC{yLsy-p&j6%{UmY-f+4bY z2w882To$SI+o)a9lNfq`|E9hLpx2GakuFxxK|k2`Gw2UQGDx73xNpvQX1};50#jLS zfucy|jfGn|#d&mF>WPUd@=EFUvGfYBa#e{($WT}H7$`5%ZB#PPNQB%0t8)N(j^1@? z84lfI>wu3NXWIr~8WUezoh($L|k81E9>^0S+h${Nz)bn$Mt zj1jS$qb)-Azl9}lmG3hH%mB$S?|%c!c_ITin|M3;Krx(&(H8HZB7rDkVn`8;>yQo` zA1x^cgK4tIT$jYE;`(wJpHj7=wHxOg`Gt=;0%Y=U7pNB`JfmOZ=)0UtMoLSX z!Dk$rE!*cw3L_7|MRsHCx0o|EhTD;o8&oBH zMfeA@5Zr_aPpC8F6z(@CRv#!7oE$GNiJcO=z~? z4+QnEu$%&mR??;50hIv0_yk~E7~7e3kgVCHyQCcqL*NI{$s# zh2iU2wyWc@Trvs;QU%dF>gRc4XlpI@#ju=4((iA8W>jwxT`XUrzY_fC<$LeHrj;f( zy4;qI;DxNw#X`8cEy6SwmP{8&=5iC{t`x;K-RN=g9^`}tKw>;u^0$C;Lx3mJ%opiN zLfL0jEZU)7(nVaK2}87C9X`^7W?ES-+SP;HQZF1x+lA8K%sB!lAtT&+Y~QZ#`Qtdo z32XFv(>%HlA@Jc$RyT)SNp85DZTD|5}SM(Kdcy_7|2A?UVCD74ztmBZH%?z~?Kp&=Wefd-H_~8?Hyn z9>!m6y&r&bEs|UJd`@s*J|ge-ekfE$O*gM=g_COi8up_TEic<^Q-Yh({B(FD?WKD> z*PVZ!=B$-iz+``_c5l4GY#TlC)9>gh`$y)UL|*Ejg^#D}^pEG?>nvE8yb{3%p#n!U zos!u~;2?yQaQYvos2jp2KkoE^*T?aoLu z&br?q0?K8nfyh#2dYHpJEDNbhT~U~+4ZndsFK%<&K9|x0@%BsapEr*nnvfgeU0NU} zeposE3RPmS$=3Gge^R_vBYwDMk-M~xNo|MvbqSd(&IFPfv_|WCo3oH{4k`T+|43zKiU7 zmvnrV;yAlU_4{Q56@vS2Pl{CsSkmNyM2d4K?^a0g6ZUJ(GQ!{nNn@pEuLHI^K6fj; zAa_1J-iMwvuaA{^Y<@m(TBu3-1+$PBbN#731{mYNZbr_Rf%2Q9em_73MsgqcfEmLL zr=On?K^a@Y%k3EIk4RGP%37&)_umr^NWDT`P7kT&@?F5v&Ii!$_Tu&GDr7KTR{azd z#4mE1SkRdxvhVdx#8>Zx+RBF=;SLW>ojYg)GndmO9IKE+Lm@de@qz@j{086seu4uE z)sr3DUqHDU1}d)4!G!bka|0G}WklDe${MSo%U``t|V8EQL(g9UHN_6bj$Pc1opi0HCcFLyfe z1OH|L0$>GuEH{>OuWcgZUpM~Y!hr1yw*%$8O z|GlXCT|~GunQAfdfBN~tKw>XKI>+4a@_+6F_~Vlce|+NWWM>Z~|HuDgy$E2c&6AcC z|6PQ?0nM3g~5V(@IL=zv=2yzsdit$~eH(k&t*wmHfNW{;wIx0TQw*d>~}uRDuUSYD#w% JOXV$s{tqskCvgA( literal 0 HcmV?d00001 diff --git a/Project2-Stream-Compaction/img/efficient_upsweep.png b/Project2-Stream-Compaction/img/efficient_upsweep.png new file mode 100644 index 0000000000000000000000000000000000000000..064d717e18088508ed2b939ddc0872ae63009cef GIT binary patch literal 38845 zcmdS9WmsEV*Dg$fBE{V;SdrphoZt>ci@Qs3FYXewc(FpEI20)E!QG3y6n8!8e)hB9 z{hssh`}gI#lC`qd^fBj0M%e%;JBdoIY`|7@iIVExu)m=usj;jSiYH$nW< z6JF5siwGi2wrP(Ya(-=dYrpW8t^bFsEv5A2g9*CI}AfcW~uWJOz3XI6hPM zsL_sUZbE-PY%-=Os=*>|_`xJt3+6DB!2HH9vBW#8rHa3P7qLtOTMZ9G#?d3@i=_BaK>bHmmygOtg9w;0Yq zK6Wy9ciZw{Hd%QOSHuHtdbKm=p~Rymv&w=*jGAOriCMjnO<$Ue(HIPl3GXXbW?~c0 z2x=OyYIb5ji&VZK6m~r-tLnyt%)&E$y5w+r8$Mg}TAU3jr_`A4*;}4-v(iSn2hONp zWj4@7IXR8p7}e+=hH6Y(iQ(j3I;k>ywk2#VdiNfwuQDn-jwsdbD%eD& zJN*_G0|0EU>l)uXnbvs@@Mn^;&Y95s!nbH+!otca?d(18#F5{7g-E~6CFWF%7A3^5 zs31GUl}qHlGFhJN8i$WPL9sSy=_4M60XL=W-thO6z zxpPX_TXxYIErz=GiLC?n4If9RT>@MW+0)3=X__}3?CB>|GdL=z87nD4H4RQ|Pepjz zHH?T5QQ-rE(hR&HK*-b#7u2vDc?IGGT#M-hs-b}61w3c|z(&SCNiIvM_Qq*-b|LXJn$ z4+#%B3~}iCt+P>7!+KyGIPir;Dq?&(>&|PWQONA7OX5rvg3;tm=kP}F44Dm^1S71v z^-F5OfS%4%+OL4J_1X&Cqqh#Y$tFPLJU;*ZZ@<6)<{r#H+TSHp+s)u#)EeCzPCMhz zb<>48nK0Bf8LE<)=Rd-AfAv0!8xG$c*0yu8+Eh;PXOzEsc|O<*xzra#6@N={=9%$% zP-$?P_}Bd};ga1qp}m7Q)N8}3qbZTKlA+8zz85GuddLC4v{S<~n<-!hPa^KQuM)rA z3sVk92kgI5f?d->Pgw}q_vC>g^@4}lyfPHXBse|OM(e0nY7^HioLwJ8d8HDF?whah z>2=ksxGHjtH8faJBqYQnQBoOLYa_a&8l(zKqR((U!L(mcKYW@of-6Dz*oj_+c!Y>3 z#>w|aDKNK_b{x4P_`TEBWl*sZObdbpQcwb>K$oZjrhE^&vzQ>JAq^6;v`GRy4cdTc z4Hj~~=nl0Z6&^&lka!_(np%WXIzb)sx)7x)R#5alfdJxzD`8#o$|i2HU{lpFIaaDb zb`O<{C^oCtO!mg{Np!TPPjQS7iX}(RBf=8eK%{0w?vPO&oC4nB3OIy zoIxm^xgE3$v}QOvn1e_uA^IWRA+@L02ed78*pUkPa1)5avDQ7L8-g2eHY_$?ZOEDs zREP7)0Kf_|EQO+Kq><8$G$~*n@HJQ|p(4Rs)^R}BOuhz@KPXEnH6bmLX~1Woe?SWo zKOljtA4S%ii!F_%vZJP{>aM2CkjBuOOjSxg6G$whn7^ZvrczcCJ6${7Je{Vit2?Xf zud80yqZ?gcTGuuwPyhic0H>RrE2A6wzTWKqT+!a*A;{J1CyJY` zYy95IG}*N2UejUk{`O({_)?jN*h!?Y?5cr?p5Yh6(sqfLI)4l}(|I;NRN+mgKBYb# zsmfOq9i5+S6HHZ%t5&~s8+E9xIt3X=8CM&}uCsSL(Dl_>g3`T)HHL$SNrrEvcBJg6 z^CmzAQUy#>jxqg&;e;r$L$MfyhP?icT^z`~1Kc{MlXjpnTwXVxY!iWg*XVtnsb_Ws zQ`o-K{^WRmz8x*j>EQ+DPP?21^jh~?F&C5z8JBN&bQe=QPxuPan9-!sSNQ$!?wN^F z#Zpa%u2Sil11yPZ=D!PS;vJ&eb_@e4%bUKHPT`qnk_U?idh|YYy>RSsgz)A#*M6gZ z*nWY2TO}a9VXMWFCGuvd8kvAD0b1`Fu`=Yy>O3 zCWWX43A}!I3g@nIi18T@g?uzXtsF2|^{n^uySzS2_2TuuxtqT?yPdxOb;*4id!xVZ zvl72XaL@obDOr6V;P@i`68s#1(1@^waD?W`F=3qVv@sef6gV5$((yZRS?v3lm@oEX z%bl8?Eo(p5!l`(uf)ezp;un;TNUw#jYgHOlboSQAc}W9CVMhnpn3*}g3x2286A|QZ z5qR_uaRa&oC3-{)wYFLyNva_wdnMeeyiGfL!VNj^*#;~pgJdo9ttTQUW+pI9vrNs{ z%abMslISWkeR*eDG_jXR5jPs04>yi`-}eyoyl{o`(fZ4cBugV7BVXW*(sE#1(jF`N zX5(hmG43nXnAQNA-bvD%d&~I^W=>a4*MD19?^o7myHd-r&fqJj%}&lqY-93s(!H%i zoANI9QDn{ZHx28K*&rgY$QT{Y^s-AGWnTF%K@<`*9n(rg;pyBWuwq2VTg&6}X>8qb zO9U?jX%^)^B(ST#t6wKj$F?@d4AG);=osg9G^6B`NnE4uqaZz_rR`|uuf|`?P2FDK zyb#X^?uhQBY3>vC2GSSsYojeaWc3TpCy!xYg3w;W)mSaC@B?zG92vMikzBin7Hrt| z2Iqgt&&Y3ZQQIM9oMlSIZ5VUQY4$zdOpHi8*;&81y;$7&IAX~0(g}MV^cw{nnvSxB zzrf6>Ki$j+I?JJ*rfrh<*E#s%`g>B#u*iQ#*T&#yW8Ll{q>^N?Zph4>w;lP`;*i5P z-BYI@G`5|Y8o)@9Z1~-&tmOM`RZ#oJM#J%{rr-M(4qNkn#uJT?nmAhWnycD4Ef!Zq#lCCZ--53K~OnONwQ@ekJ%ChLy7M(jxAH{!gIdHG)R$o2woc;K?MBTtUvoNP|OnLlv@yyC{aMWe>&R?s2$W^Pi zBEFfnx%r0Xh+q9g-LQSm?xYlI=o*ix&0E{6bfk^_=RXu353dKF_-mxyrewx$m8YPah{x zo(bagE?eh)2OiYao3$R+4O{&Af2}W1xGwC1k@S{nud{SDop`zyu521+Xi`(;I9`ClJ;>xkt?!)n~hv}R6@Eu=D zzmogC%jzrj%i`wlyY6naoS5RpH%3lhbaY@^=Fwn;(2mIjUVTwg&%O8%R5JFJ5&juR zGxxQ|23p54CQKp$946e&+mCBi!JiRM2FtzGkVJ)qq{F4QbaKdTScnDBFjvqq+PM%v zO~2`oUN}7+-&tRee{WpV@QP38i?AVMDAE|hQcOz8(^r;TwP&>UaDTfU1q@thY=P_~ zqvHYtgHQYC`$|@g<`f3zRkrm9ZC7nY1p!k>dlq9eM-y`vPkSe5X&4wmPXXwyy}7F~ zrKi1}gNuNt5a6#80?_+Ek68hfe-&}H6#{50s!&Qeg3KwoS-4o(0K#u5DJca(W)=c! zK&ij0L;nc@tXy541Xx);JUm!DI9VJ)maOdj{QRtJ9IPB1@1P~#xp+Ca8hgHTaH0NB zBmZp&XzpSPvUYN{c66Zp)2^|JqnoP`0Pv@ye?I>ir@5!~|McYG^7pi$6J-7KhLxR# zjrE_lp;ZO{JQYx}_B6NC23p&jJGemm5a#1x6a1_E|MTX5di+;So&TxH&dvAln*Vz9 zcTGXoKNI-Zg#NQye?5gRm+%`w)_;~>_zlbymnu{mq}D*?56~;@AJITR%FyrIzpv1H z%~xy1Z-rrCL}6rsVjnzT9c3ea#?_d8R=)ZIcq22)w?#^08Ac{l(<>@Y zXUj`3axQXQNVUS}jj^hbwBeay@n1!MlI#E&{q+|_1sg}p)pYuOLI219`xX^8b$mYZ zKPCTH#VuWU=DdOW;?d*Af13KA0?4u1aQ~~9zg~$}NOoXn==mHR#eMw0hr#@(BmVy% zc0^ebVsVubF`T_S2&M*zJTY(lEOz2Q(E|^rNG7tn7fQKF%cZ(1`F)OGB~z`sK3--b z;jv5Lww;w}^}Z@p%;W)ez9x|A40?UR&T&1C6WP(`_h9yPe^q0@#IsOs8vgiLYfwcm z^%ghrV5UsI-e!h|pI=8VjpcWMS-}5VMTj#}Pv|%h09dbrKyJFubJGAdCm+ES0kVqP zZy55dRmW12-Q!%_xnyl-6rQ}|BFiIRJ+y<*TP zP1bXrkX)!EaOd2of?*f&*9-Bg`0+fDmK0sgwslt!FPx}TYcY^78NKyz($0$+awYD5 z^~vY@h+(xU-EQhQjlb@~yMOI@OnUelpw+1!PI~9O z&&ER4(R&(@(kt-C3bX;g8yZ=MYomVT)v1a;?2Kv5r`yf=^KJ~0y_PqbTBlQmg*4RN z?{9v&6p04H5;MpuW&{uQT|Di)s}Q_ws2bK|RNFPt5@_()T7;_Va+?+E?Req)lG7Tj z4A0RoEv*%~{`UiVwf)>N18zQ}{JThVdtL{<8?9vjoD&%?SRDYDjn817M1}9AGcd=i zHzkOX$yViKp)#xV{Z)Mk9X0(JbYyR-0x~!)f;S?H1~7(~ef#SGNpiN>n8>xU5Z9b^|5q!vA~d z_(=nqu`(Rn-L?<1x{Z3AnOJ;$-kTR$%v?_n~C%$;8rfrH*G^ zi;qg9P$~<$AAKHZ2He=Jw0H%5aNZtF`8p0P(=0EvU-~iG;Am*Q{L@WXypO!}Z}pP( z?vLcqNu9QbD)sJery^Q}3<^^<*_(e>QjcWvgJezRtvEnx@AA%6y1L){KYHFBlvOHh zmsjXF%Qd_I9u7}PFaOw(F_-%8W1;8S257-NjR=EHqj6N^@&P{#FG$}e+tq3r9cz9u^`xa3(a#W+_w66 zu24(hSK13x8iD##7w0RhbD@9hFcvXn;<{2_QR$i6Btsw%ubs51q@-jRG9ef>J*47% zJ|hLTxVh9&}m4Bt0`QW(nC0Dv-f?gUk1`Z7pE)Wn~6P?YiyB#SV{7 zF`JEwI=E}nV>-UMP0D4Z(pCzRYBH)K;W=5vF)2>Boy^kG;4u}B<^^iuF>cA6ndBETU0H5r>>FFjx@e(WfnTlk6BoIyq_S*V zp$F|0WQSe`f8QF%)Ohc@mk{~=PGjoP^ztG%3YWoz@wP}>yvf4%E-^Q4y^?;`u`v7t zyxDRn3PD^w#QH_r6|)IEoIM`nhqp_hrl1EWo|Ol1I&0gl zxW({iV;Qu#FsWGL^uyDqn^oSqYFaMK&7*mHs9}P|4}6Rjjicg95{`$Q@&dw=fw_s| zHgA7SmnheMjpHiW{cL01X?}g;VLqg(wKMEyexOjvb%~c2ZZ>le@!eo^aHky5e1p(V zHCfVz&q|m<<7QLLBdE@ra@C$7PgM-4`7{xyN=^!-NYDhcii>3ANrdk(iNoa;EY3DM zZ*E=98S;irbOgdF<|vG0aHD;|6lV*Xrj-8J;#p0_4beSrJ`w(=CYkP<)mO8PrBlZT zD4UJ&Z5sHvk0BCiH+Sa(49KmNWR2SMWiBe*_AUQKK#DgM{Xr3bf0~`<_fiqv<>10F zseT&(pl(_6!Nu}4vv}p^=m4_qC$6T(uUl;rnVnhu!}~yA6KN!oR^IIRS5x13Xdxov z)~A-@zF3mXAUFa;U+2@!4=3zdO`5{bx27(?MLnlT+zzJMn>4;R8+V88zsuOMVov{jvr>A$EP%db7gGuiwc!S%3&oiE+NIdTv!TI|I?;Faa4; zaAmEj)mk$O`b2F^k9=cG$5m>xQd`Z}s_ATk8oZZyXaQ6DUN5FvqZ*a2MBF=Xje6ZN ztdo=gYy`GVyFYDKf7s(p?!~7L&%BKhkRG9o50{y^#h^a#`~cp;rQ2ICc|`=S^r$A2 z_7}#wyHm0+u=jB_tk+t5H}~Gc4``ELAiR=MdyNAK?kC=K_`O(PW7G*to!QlRQTC!T z6TQuLBpX7{0nWW2A6LOO1?>!{bNJo6HXZ*w+*gkVg_DzU$MU&sdy1QcPJ5T4YNL=QYXflDXjKlab;L zMt)FTFz-jF;;g)l@lslkA$zZ{)AFG}kjbs0Vy+}_^eLa1j0U@#uVil8z^{IMPno_v zzmK$1KN=~&01WGxest?a7lOc{Qd4r5N`!Ry$!srARu2*uvBiA zWy@2RC4dTOK$sAaPYc|er<=o?5PTyk%0|g$xyXr_|F~#dX$}87BHecQ9rhB{SSGI{ z&m5CW!eP1~eY(&3Q6KO4X(`S;T9;5}MJjJF6tUdu=Ne8`!bBiYWkxR0oB#fuTG+efj!*6PGf zhxWb43V9-Vns<(ER>gw`IggJLP%2&{v5+GdWz?gn6(47BWn`kJC5JuYRU@dLscgDK zFu(O>k;kP-pG11GUQvMIE|QLG_rN1spHi)&5TCJxax%|ehM4y}V*2YyMa!KM@W;16 zU22^|7ewibpB%D-sfvmnHQp6$UG0zO@)BmJTvI8neh=4udw}%iv_8xfV}4>%|LX-y z(C_-WKL>uG8zn9;q*~5(XZE8bw|P34ft@XZ{pi?8?s?7U_;AD} zK7>8e$LMABthi1o?g%2>5G9_U53yz*ezBP;4YGXcBXLZQ!kbaYBIHU7tpn+cMo~60 zFfdpk(-_+YzolQ=%DUN`=!RfW$v}F1u}QVf!&dG?!ekCcv)?NkAk8ssmwl|WGJftm zt8(2}bBWnX5H0k-$XrG0mmo(D^D`h%P}|A{%6G!<>!)*=57$HLZIKlXgdeWw{}Tg@ zN>O%)Ah2@QRLJHw*SNP@?md;z>_iZM@0KX@qo? zDSK6T*cx;tngcBW=L4>gaAK$II;!GCjC{8F8a^*7Rhj-i<>^%tt{Szz6nw=NVM@0{ zPXr)W9=~+^N4?h7cf?JTrA=DS)Xp^BU@ZO<^hnSQ>tTqSFsMpFWMFQV8q)v5b&6W-v{ZAa+#K zeAa|%sH&eBMob*OJGwutP(0@UT!8aS^BD&$($XKJHF;g$y(_C zd$I3Ml$@Z4C_e-Xw@a2UP#wpDgBSGq4qnjn*WJ3%D1yAzd3XAceyjfkku0!8 z04`!Xwn?HwLmKXvFIYrjhTC>KcIB=-@$SO;{G2FKG z9Ead%3D`4qVbIpA%>1*ozGN?Jd6|}#OPRhi2HkJJ1msegt)uYPH2R&o6Jq8l z9oN4V=Wz6~HL*d!l-#H^!bhBbEDi4OlVhuQYMTch)65 z>&+oyCG#sB#`ktT{CxEN31Lkfe54>gl9-dIuV$rzy;*3&t9&MpU(Vr?73{@q5#Vw$ zZ%S#u`%ADvt9Sb0SIu%=3k^MW8Lr52EHon}7a?bTcGiS1+51S?!~m{_W%tZT4zRTP zPgiRR%?Kq*6xzhW>qsTh#)!4)GOaPaIm@3PO|bRpyx!0$zWPlydZMUexShF>?UWL zpDVWP8%;^H+{j|MQX=^aA-c`zXg)1t?$q0X6!~L??@Po;b6nSEaof6NvFOS77 zSF<0bERT25fbA%ivZfD3W&^7H7Q#H0tyrmPt5HZb1K7P>W41Dhm&f~99s%jV=TX$WK-?+#lnCS| z&N)4oSTGDICn4Z9A{HUYFk)QrZYycWS3-*4BLN!;4U9z!r zH0Q1dNBMIEnior&f%ms`&NE6bnbG+%Xt=zJyGQB0CH>qOHm{6?wzR7&3XsJXoI`No z6G4X_tWBMUe!Kr1EPPnY*zw^EGH|=#SAIBMtokM?b(Y`xGubTiYTp(sBSQsD%&&h% z41Xp9%W~EmePRLajxY{Q*r;uD-Gp|*cILy7aUF0}wNs;!geaJ}VS+T+(*bY?k6Oy@ zWl|9Yt!F~po#tbgLgWUCncy)@w9chy*VpAjpxQMEi@1am2Dw9_WwP9kpA@1QY&sF^ zN3<2l3lB-y8-xbrc3U44=9IDph-3+%{ZMixm;*$hSj6f@m1cJ0oDSmJQhu1=*pKxDqwLb; zZF67}gk1%3i6CJto^!c~M^z9hU=8P!_64dq96#-w#Kc6CD7XYfxOFP&Fx#-n_TkW- zkxUYhJbZ}QR?=bU#UGRZStf7wQ%b3sKh0}v!kNJYtwawzQlQMfA+RgJ={AuQG<+-E zgDQ?gx}a!9`N<9^ouoe~iKbO71m{;m$i1ZW3RsYokRAFf zJwu;RY~qv?BU17w^v$ym3l{QLqpkvGFE^CF5D&u3>`trDIyRY}KAFCxG0K``L!^-d zv^Y{tzzgJrv}yZmi?me&uK0%%fO{{VR@U&4H`K!lB?z{ngC7|CCQcXmE2hxb%n(yA z>oug+3I8^cbqA?WF3ech*nAJK4MT;sVH{${4H`CFRF2^xH>6BE*C341y(J z;D*AKEQP<_{~k2uJ9rRnUNu%mos#9^3w`)2>O{!IU<#8Wx!j_B@iV+hAZbh+jz8kn zw0zc`;g&(mX%`9|aj-P;7(ZSGB=buRG4jr%g{b>{0P1@=n9WG3oe*P%jmDEak&D*I zrx8wuH%8Q4)zu12;+xXA&sUWJ124}fFBz;!WxXvI(XcA!F-T}2S%^{+onnj`+Gcjs z+R(2A8tjQLT4?9&JIpT8O`E$m`k(>YuiD{;YXEv|Vv@W_q41-CcmIWLF=IP)sJZ;n zN1i1Nyv#vX_m@f^L8_<^nfJ%4U!U1c6%w5R z#J1uHRuR$;gNPKqMj-NhdI{Zt+A;q^_!=>{YEQHn!q#168 zR%3MU6pweu^$G&NI_QgMENz#Fkv}wVjkgrH=D7bJ@#E)e+hW$tnb`+f$?S!fJZ@6F zu(3WXMSq!e3A0z#kGUY%i~FtO9DCq3OdCKntLPejCo$kynmEDQe-fO8gB&aJ0=jo3 z$s5?WgdG1JUOfCc=9^mlOXu}WT+2sLT=w)!VGeZ@b|~uobeLZ z4DW5bf`{=edvOVIjy{qnjqy|Urs&BUh^6lxE&_QN%mjkB<9GdLO-gak92_yL4ME3^ z9|FWI0F3*sBxQJ3{-S`BmJ6j#{+j^`1CMjd2ybvmoUz?NtgnWq#(RO_N_k@!R+CCflT` zV&7W#w&CEVb7Salt5&p}+W-yxc>!*v5nQG8U(XE>HRI3;+SUELDDf>V0X0jOv zG1U9sZKq{g(L~-%@RJU^MZou5{lS!g!3bH9zKBF82dYcpN`xl%x2A{V=2#$eMpf1T zm5UHIvN?&KEo9z_{Pw|`n#(e%^o9(o`bghDDE^&ciNN?{zwPEA!EUPE;{ zUw5huW+g~W7-gFZon=}p@_%}O(F}jqfHZ(~zDI)uB$C8)c-B*sUUwwaVilg5_Jh)}>4? zTGn+n@%U|xbTlbU{La6@$+Q0VFJq{Ac_BP#oM1WOm&c2*#AK>6iMQ5KM5LHn-ou#S z!Z*YmV&07^6LAsfsuH>5nAH!C-qNI-0DI~N9pg3!eEdV3AuE+!nn`Cf^gObZP z4i&X)b9a(P4rIZT5gd>(CvoFe=*$J7DV-^jC#daDo_NhFcnGwFR8kU)hJ+1T5%xrq z%Jd6o7h-kkR4{8-aP$WOw5~yQSS34MC3_Os1qU&a+zl2>e@E=>z^45N4);$_DqZLBrE0%k(zS*st+l4;_`2;DFjcR3Ne4h8HHy*+}S}&?V!f%A5sH+iOZ@W6aisK>RfT&W>hORO~aZZDqJGHh!Jl$eEx|t}&n^z1_UrOiRR1av`W1yuzM<2%sk{AS^@OVR|vGI1f^|-OYoh zW9Uj>U2j#2IuZI`3Ep>$I#9l!cujnp>GCF>vLp#|c4YeWn{sH*ki5 zpf|DM#v@(lvA=iQKs@|3jQNzO0^<_8B1yPNn%SP4Iu5TI{geaY+>Llk;(|Cp)$KTo z!azGY+!{Lw8pdk>gaqcxK$)TszuVd*_mTg{3pT=nkp9Up0d?4>@oj1@aZ@%w$j=t; zj&33HZ47lPHN5w%!YD=b?Hi7W$=w^odV24TtBO8;!yzr;jwCyPUEH$x3~K9?sk0nZ z(8?&oEs>{R4rh!5U)>I6$F6#^p6QyDnDUtzv6ouum=tO}(sg|Tf1(PXBW6Gk`=snY z+UK8JZoeUk$XW&4y!NRBGhM6#SmWWk;pMadYzgNJ;9_T%Pnkbj-i2V~1mACcWn|3z zrYT7yxyw*U$M@Fmm2)`m$lRg%*z;QPL8qq4hmwRcP+bCQ<30S4Y^#jki+CHa&GcId z0J|DhY%vMusj%NYp&IgYLhKsU_X(pyOHh|la>885+aOfMiqRF}*klcMjpZ1^%pXXi zCt)DjrI>^ldxMT@`@%Wf&E4ICL_E%is~skeeX%>nJ0X;xH!v`;bARr#@OY(Wj{#7m z6#`)B1w)8}sjbF2rKzm+x*>CvHfNA4WCzyb*4^7C76N8%qY7109wM?ew6ALldLnY3l9C;LVf!9OlbCweTkzj20#*>x(m~Gbcgd~n|lhEt2 z53}owL|@<>;TUJm7EqeJ1}_5D0Tm9nr6Wqq$>^6!-NviF+T3LX8a>w&VXbKXMw?6T zM9A8+@ha!8T#0yTg;q+a8|31fzX|^)7W6@=X;;KK?y&`D)8@=SJfFE#Zrm1(RmZD;U*)s!NWQ>u@FFYICY*oK z`47uLbORHbr<48Vu)zH%V}6JHDxU+_SG(ROg$nSYk~$YvhgizVX^m7gM@BVv&cJ5` z$nSHxXAI(jj08GW4QKJYC{Q6o-fV?j-G$IM3O}s;O`Z6YXZjWU3Cf;$cwA_0K-xlv zPasy)hG`gn&kDcJ4yVWo2~k3F#H<3ge10b3OM63MQpw+yV!8^I*>;b2lpfuVMF48X+s1 zIMv(MLpdKDfgRJ|)Xjf2I)CNs%iy-%ihF;Y&>4)FxhL=X>J=o$kUv2NmA35!nzf=9 zqJDF6R6CYoQIAP+E(BSKq?0VytxqIzXzWa&0to&%(4^2TzOT-Gt%3E^0gdEYFcbOQyVeeI!z|L(9qbeaSa%&HK& zfGkU&C&a!oZWt-rfa$XXk=@4DlMUL7wrDDyb3Fo(Xu zOPnl{mtXG+y}AQsASw`leBMqo+$zrXPlWoVkTgSo>r??lWnh6+Y@u8VqqQ&7;mb-( zug}WUZ9zi?@eJ8F&6x>P&?QmQ)zuRBmIC|_hs~B|(2;hBwm@~+ZVpr5=r_GcpFrwI zGTS}Z6bgT*Q2r2mlDg){?P_xpZl^+Dul^S;@c?N6;NhmZM%nP!YTF&%)fsy+Ya1A`N*LwflhEzRU48wr$}~nVFeDa^bbpqc#(anm z$|-3#pv!r2zCu6iB`}1PYLsn3VYp=IxfuN2u*w3(!?h-Tz_`rXY&n^=hkv&CIWjDt z!`CsSp-0IIW}V+M;rQN;B&66epEzUI=K|5!9cR8saRu-}kN8kdqo(Od*a_BK0Pl>Dek)x8 zpKp^gs8HU1^UEcNHT>?eeZhc*^K>sJq!`|g$M33bc7YCFmImGz?HxuXaFv`udZS#t z;XqvL1rb%`eGaWgH%9~ud6fzNS8<(jdMorac!R}$c|NPd_fX*2%;IdL_Z$i~5REOv zVF*%c8F&@pvKr{M($A)3xFy$GqV-=|RQW%7|3xG#IUdKRm6O@*iyb*RT7YZDi|$~6 zZ?yEk*O?c*B&cvHba4SUJ7CDpFfQyW3f1#AT`Ui$b8gqq86>^IW0Zm74MpBp2Vv7@ zJ68TGcL-({P|nVdaJ$EeL2SnF6g(!)&o3g+x0|4DG+r}{6e3;x6M-KC5n!yl)igc+ z`~c31-(UNVC>_Z^sIdO{BdcC{!S{&oBde8vtC{W|O_f9^1}z~9fD{A9MyUp|ZA*-R zZ5kTGkD*xU>_gGxA>Du_kJ8pc_bLDS?m>JUucP&Z%j0yRkeyp+Ff{bLvng0yvi*Qn zKXu_ip|WuuD$o+}+?x{pCR)$`8+F5KMl#!E4n6Wnn_oz)9ubcqV6*t!<+m87*n=p& z8D3dkE@dIv#Ke|yaz;QIO_bYR;gbj*JMW&;d~*p>;CTo6LmrcQszuy*$7#Uh*@s)# zK#r$76uopoiLoMs%hd5gKk_4bYwAye<~ntt7>k&<&>qlkx7wx;Ww6jzw%wOfvBDvuCtK!tNofbpR^uT7 z(xm{gT%VY>-#~;Cs*jZw0$M4*7Qwt&Dxn37`~WZxD79!v4`=2x*K*3$5~q~a^lIrU zfw8{G(-s!uQPqHY7l-{ zCp6-?fYYaHBBNeWM`%_kEDO78_HZt=CrJ^pW(gyU6ocXK&8V-4xu*o=vOq}lB3BCd zU8p%ME0`#hRew|(Aj(_iV-0!*oGjK45hDMgWy^JHzk-inizrV& z2>Dz?pu|HKsEy*`SA}ZQEeItmrK6w_uyCn< zJg3R^+(5p2ycolgvSPCsDA29fMN@WLT<#-eY^bLWN*P=OkLWDn(`Ay;_)>sB zeUGDPWn#bd%=+@j zWAPpH%Sp~!U(OZKH>{Q9@qKsRQ6Bfp(@!R8fJ|{Oj`fqfeKFKmf}%Kg`(%I2F0%wR?2We@Dlsa_^Bfdwv0iCu0tcw(y#;q;X8`jvFXj}@K1FGh z@H%j%d}q@;o2>lUp!8Ka*CBD>U0&p>*P~8-_ZE3#H0+La94R|k=S5)G*9pCmLex8= z#`X6iw+8vJ^GvxY%dPNk#0_wQMNkzj>;jqHezESGp4*HDJ2jN1*mIJ#$W4n5b+R_1 z?Q>|jrjmz!1sIrX3HWOix8>r0?LzDutWa5Sf@zoxLeBjsLcVGT!@|Bs@eYMI0S?FZ zVP$WgZLZuf^!9_2lXe33D4#lCys~{9t`k_|Vq5UyVsGfPK0hCS_M>V?3fI)#hErzo z-B9$W<}!XA7tUHF;&qo}RETz$=LFL~WIOv^=e!e<0#ai>6f+z`nzH23tXPoOi;7Oj zHk8Ji_VTzZ(pO?P{w0u#8&^j(Y-dO`e^=e&C2sF^Z}e6GDiZ=f7t{xe1Lr14s5dz1 z{{b-rQY0kmA_(w~CQD8FoBAj>J-$0v7`$!a%kd;r|NgtmPi_SC9aV;!^|`+q5mAl& zI&y5GSbH*O?c8fy=pykDX8=o8VrLH;8x3cft%!9&SK4~;c?Vux0^rGBz60_5OdwHQ zki$88@=Z|rdF&~J0a6?Kz&nKdb}glLZi>|9G<)qSXWRMsOh4!S8L=LPp5xYc=clBq z)iNzs97$u6UnmfLB3_3qR1zKqsKa5A|AUV|Vw%nAlM`zo?)uw6RQ-UbEBeZXJyPO) zJIHL%oY0cz<%Bev^S1ZN^tYr1ioy3TLb&7MymP@6v=;5ySb6Jupmb1MLYgzV37TE- z)J%pkS(d~s)&wc)s^(f^ag3uAo5yF~`M1N!qb~UfOS|)*rRPzffA~KyaQBn_VtH^` z@mle}8+t9WEA-jRWhrx&-ob^QU~}HHI;W0p^ZgNl_T3!T5`x6JQvTfj`j);#OFVar z3q-&)SGsL?Nx{0D+PjrMa{SZ#9}K&(H!VTIcgYJrVJTU!u>`wspt<4Z`VyE{Tl{yL z_M1OTIDJgoOEsJe)uT-B%T>StzQ}acvN<4E8h!q~p(6-NuU7%3>V0uFdT^(LBF}v} zo_De1YsNGO9TFZ;nj(Gd9+W<<=Y4Zb7Q(6A*8fRrSJ=1<-ZTrBL9NGXgWnw$cZ-Y= zojE-444QN!(IIa2gL2%cc~?9O?qW$}w`&A^$5{KAu<;NO@P+8c*Gx}UisHy|>^S)- zzYxCnjAr*YK?4P|_3-UhBg{-i2u@T+B-TU{d*()lOwdP)p})e;S*W!fN@h@3vrl#D z5>|x|eA+m9WOHIuS%`b%pdbws%?DCseY7g4_JOQ%Tp6PjdE zXUXE#$A^GmttS+iD6&iZB_~LZ>utG}lM9zXy2nl4Zdw;?iG}X(>Mu=DbqSeu^Zl6G zTt}YTerjGFC1Xzx<`}$i$FzB(LU`tu<_rVuN#UR>H)U(fOoC2Z#5!%zYi9i8r&lN{Veg z%Vo9*P)NrIW6&eC6#RUJ7J{c5!?380g^ zn(rJ%?0|lTU8-QWTEr%NT8~M`y3;JHLXeKNiQ5^EoUYu}$UyPmX{YD)nLVnikO=WR zx91fOA9gOMqi@#b=9S%JN(O_WT#K10;Y?BpKp;Nc_&|$m3N;kzTy_bjhC?iD(_wqng!#t$wZVbk13~DDV{AiU zVe2+ioo<@ug6`N)l)XQ#49e_hryX)G(=u{x+~#R9f`;N z3TlH=i7jJW`b|=1OAgZhlbgmWQ(1Gb4_cYLz)ZXbB#FYUoOE+TtRV;(6j(43s5vr) znu3C7Z%heSJy!id&>i9RX=gnbntCm#-0zx#W*C*_8yuFE5^-Y^);ey#2Eg~x{`5=? za%{V^uwJMsV%MIW{DC;<{PU)nd!2+j^(ij^6OL7=56!@E#pPHAe%Hfk?R8%jv4E>p zDX82x+(j{w{ow_Qz7U^BxsK8s6OJ(lPrN3wnJkQ?!W<6W`widV_4Q;xBY*rAe6+oU zHUz6fhDL42Cx_nxRY-<-#SztG>l4u0ckD9#SVHNAJdCro@a>SiS=gQ1VR=JFPe6>G z6TmR2$%zM9(e~XBk8Vn7eCBEF+r{>E0zbOPd;>E#Sov3eQYr89@B|Jc^_E#>iMcO{ zS&vmLrzg!z#Xlbn_M`&{Yy-k~V(U+|PH6U5-d(wjiYVL8Fx<>WY;s6@JzuxR)j80d zFMX8gTkDeTZ@16IJX?HZM6dytMhj7a2=|5-J+ zS7g8T#nMm6vz8j;h2e>95X!gqa&*;BEuXZ!CNC$PQDu_)b{-OCUDyhMc^;tl0jFKz%E@PbA;im@q}Er9rF=ksBmci{9!T_YUhgLSAjX9K$PQFPxQ2Ek8qD?xA%Ta5;kPd-)y7pwSe zKt|oB7RAVEc~*+F(4h~K1#y9lDUumXuYT2NY)P~_#O=8!PAhe%!c{Kbdv*V;(3|Cy zU97vVI=_Ls@8akvDPLkA*q9CN@%f$R`4?V#+YN>o(#yVmb}4taO7nM7c<}_m=DqSD zHV#@ibPP2gBz5bEcHt2JKh(WtLmW-GwTrt9?(Pzt0Ko_M01s}#2X}(&;BLVoc!1ze za0n9IU4jR9f}hUb`~4B;GfYoURdv@bYhAUI|08^UZsYVoK1C_@SqnQ85|@w^C^Fp* z#7?sGx!r%1+a*O+6B8`ij2=`oMf>OOv=8=ZEOW$OUdBi3~ z0@0dKHORLQb&xh$Nvv-~RU!3W>*?roz8dJu(&k=>mER@X|HYTZ&LFa8C4{&m#a`IUEt$rCCUg1rZ{gC? zQ1e~gs4Iy-5Nwss!bdi zBEy7&p@nU3NDe%Q2Vs6W3kBuDp--bUqcG2vt-XMwf5OWBBwgWOb< z?v8ka4=^SXB1c0?9x*gSk7n?bnr$IQGsGmdbjWk?qMn98yPJtNZ0=L#_surdTu&Vn zf>q{0=f}mjavq7eI$EOEnJRei5{1%x(shSZ%px{2=WL|}; z@<=*9;}GNh!ldF~)(X*|b%;ZTr|$#9$P&N${#90&-mcgRqzYWA0A?g_EZLv=zM zsEokD4My`KmGcUi4@V0dY4H>ymgv*5H?n}{Y;5}T+=$pE@1i_WQd$!PcgDK7<=|15 z_uy=*<*1eu5Squ)`E%YszJEO6s4@oxY40q|o~iVfqP2WxbANB*jI(#qZ5 zh8ly!k3F;%IgfB3w@|P!9_o*lZ5MwfRaPr&gwADqHSpD6k67dA)%US6PgQpM;Bx?t z=%Pdk31UO`6tTs9NJFE}FSOiepG)KEes!yJZ;D8>Cn%El@*2a2N@eYbu*xIEc`Z>k z2lpRwWCd~B*aNUSvI$Yc=uVY>5(?V0;VVIh_4IhESZ8h`8`p`?%GWV`O+D_V)mpQ{ z?>iT>CBJ#T!E%?}$p*4o1s*McNGhCyhgb*MrvPJVkZal#kjCWuax?4kpeKmiS; zj_b<_&5LW;#LuQVrWV%j7d_#I7u&&SzVy70FE?NMKQV&$y3YUsi1$g|(462^HC{(C z2E03b1M{k}c|3#>a?K%OQ`*y7cooy|oe1!dTey;=8#~`oU5$%O zB*6D&r=Y07HkBz6xRj`9^5g%vG3tgiL|o5P$jVt>&}thhziwO2P5=0(f%U=c{E<{x zjC~R_hFB`r&AXDYE4cXL`BJp(8*$|DWY*3v@wBN=&is|<9w%qM-pQmM8}0SJ9Da{~ z%4DyG{DapBhQ|PHt91hzX!6wpy za|mgr{*^EHKGE(A)&hARoATIZY4i8tQy4l2lWG+=A9w!Ju9qRrOP_V}(i_d|jY+r) zT<+A4O?kIMI_av8qSuO}(;jc6T>dh|Qpk`84g| zk8aqG{{DDZ!^?^nPeJrvov~WYzSLGRdhX2<2^z8E`?MZ8W?Z^xThCUdrM*~FBa1** z>cpGt01hR`^*t{y>*sOIDixX2V@y* z*;%UuWMjJEo$(}$7y6u0RH1Lbc|3+QP=|J2ias34 z%raw|1~yJkL#-0Ta3l(LA5IYU9&oC^2Te6pVa z6}z4#)(}I+La9rVszx)Sg~Ukc0S0hfzR$altb<}7dwgI`jn2t9+sbsIpVQ3UxETEHi5%u@rm3ATs!M{$ z7uo_g)UF3kXy5#Xd0|EniC-jjwfzey-;7wbx)ftgOD4sh#z3U|JnE{Ef{SE}1)K(Z zU9xjY4`ZDSf>-bb<<%3@styCvCi*sfP}b@t$|dQXYo@&T;g#|BSXu7&!{?)%de~WY-_t8wWS$3=U&vwsw$JSRHL=lKa^D$PzWDRmqft85cK|I0W6CzE(H&-{tY;U zDnte1kloBL_RCHT@@tEdC|D)N&6f#eoUf+1*ChO9csh7YESo| zPV%^ML51AwnsOsu-6B5~G8_7enDqYQgeSfT20j~b$|d$hF*6L(>*vjKxs$X=k%w?L z4>sG#?lxOiUxv&J)9+Q2d3Z_I#u%d$qK`1s3IQ^la^Y(qdq5=+u$w&7&vAHiqkQuW zaSKL4YPs_YF+x}9^Vb$zAsTsWyAFZJ){YwNo~8;@nVqKuWO5Qdu0UMUj>ztpQzuOB zp#P{-dNLw<5`XlB66~xAIPdsRM7m!jGSP<6NSvw4B16NOVR2aiIen5B=C6iF3q<(s z(riZ_6*lg}DB56x-2`%^VN4wKLY-aC3!y7!41z}m`d>X0Xa$nZSAFQ5C>s_SY!^l6 zhzB1Qdfb$;DdiES$w|Ft{BzD9XTIoej-I^vf#H)7J`ZDbzNgj;@HUj^NP`dTD9b^rcc^HOSKuaVBB%9V{I1S-@Z`NUA)v)*yI<;E_#kfePg`3fZv_* z8m-b8!JYg%GAmtLGbcM}8%ZNvSx&hd!{$3lL@V0JMNQ-X#piCca?a||gWk$F8h&#$ z$LJvKm=d?&|Ky*$Bnf;5kB<_Z!{zMb9C&N8_O{aOU>EIauN4O>4sT1Kivq*dk=nVg zcLR3H{YPT1PeE;OzxjUaTR8hu6EJ>2xE%8Cy$x~ya!ho9;qRK*NBd{DYowFUn2r)B zE0vKnjqFGU;~5gt9q2Vr^=P0=SgqYRJ50yd=|i6hbqvh(dbwk;-bEz%u$UywXWh1$ zMw7C-jlAJfOq=q2Q4}fi)~?7tslyPB>yAeARaRk=IetU!5d$1+Wh3?Lr)@sQQFSMh zQ$bG{k%y^w{*-cN75$&uiO=f`CRFsasgI;|pLcsClP>Y*YV(g3{XLWgG{Tfe2^AR8 z@H$T$Uk3x|t*yr*6o*r{oO4B;on}T*wDdQHSE2hx4B>oV#lPRN{K0#>&i$WlBT8oY1r zI}Qg0@!UP3q^>E`!8GIW%jvm4Q{2^UVmgRXsOsyp`A4Ye^85!bf=(oS^jjPqFwhE- zi9v}7Unc)R!*~7y?=;7bpE-6{{?wNLDMs@r4u68+bkY@&uz%Y?xVudCdVq$1BNjCF zJ#Dfw7?bS&7|g&|H<74w%fX~Du~Ko#_g{&bSE&D=xb6e5N^y-$EU49pt;#?Z`_-Wd zc;>&`Qw&xuv(~OM*S(~adDt?ZJVzEvAvBIqKFspT@OP|;6%2s6YFMEIYQH&ZubqJ@ zPQ5Tp&7_uRPmU;v+*-=4FR6}+)MmG4-d6L^VP1;Ln&d<-FKrhIgU2ElF6)jv;si8s zAFAKr%h0Ax(ab?_RB~@iFC5DT%(fC!wR8mAnya2F3f3%-9dXMV39&g zO{@WDOR7a7@if{@gCt}^2UT0I$-q%3IZOkw{(EA!WFFEH_WrfzWaXl^ToX`$s2q1! zdAo@-YjEC@vqBmFj+h#-kOOKucs-balbs;ZO?!xap&ddci#>#xYKi0h8Bx}^c4Xk| zH%1*ruaPOvkd0!)>iu~pKXX}ti*B+Gk^&IolQNHBU@ewDA%yAKO|M#F$$YK#5!3Cue z$8r_qLW(3eMUi*}eEVj!^3q9>8lUJvKSMx?t)unQ7=PKz@JNS=)(4Zizs{FMlNBRL zF)eH@QIq^*c0?(vpJLTZ1}KRzc!(9yJc9egSE<2x^eRBN@8Vm^W)q-?kg_m0O<8!0 zWc>~5`K0n+Do5*S4q?HcHA6Q3^)m&xUv|rjTY_KP(*FCE!(&uw@lK~a_LtS`mBg^% zGS?>-r>Ak6igX!^B>)JqkTbP1FN0+4&)S~QMO9?^o2SM^g>3#V#R+sejqNCab527j zZAJaOJCo!#xG4>Z;sO&=WB2xohCHEfnkEjb@r6He!WY6N{eHZHzGGYJ@H5@atP*O2!FCT{$ODl z$DO0{Cr=6#FG{0Jv#32u%Yp`;2F*dk{|mu1k)7*3PD-lP=0nF)u}dwIZzy(Wg+N`;o3YflRJ~`JTowlR`U7ilXevq@ z?1m@?ZN;Zckg9?Lw?gG5pSF2!OwOZtyGII20w2^?e|Y7hQG*_)KhF;@i`eYjV_H+9 z+b%L#3b8}@tW_%UheS}}(}u-f&ORSlDhVT24UP8V*BG^rTprG}@UKHgpIs}krmP#n z*+ZO8UG%O~$0o4>-6r~ItpMF1e7w#xC4>AT)`j5?KB3oczUesAe1)d%TnWUZp*mNJ zk>ciN1mDSuaHN5+Ih%aAx1nhhv z;K0jO!2;%Ll`})djEAQc+&$~ymGwoXKsg(ay8qxG&-|yL!m$@Ft3ENu7iBy!bt>r3 zW#m5FpO;XcMWC}l*gdP0j1)O3K9pv_&oqLYr7QpQArP=NF&DL}k1}JOyt^7UarJ~E z)okM4F1Wa;<{ZJAbeE>L;E7-wG*@D2iPFoZF5z=zbfaP_oTQo!N=0Iz>LqM`#jFvf zw8HQ-nE(xNQ=WVOr7fT?gRc?cDT>8X#AygjeJ@l0+gIR!Qe3HMxd7C(4Qf`9C_ViN zn=GrC9c!v1-Cd}6gq}@lG2NQ9y zRBC7kS4F(aUwSj2ySeJ^G+nGb^(_6frJ_?IEIX)%n;TG)btVMG6{HRMIhb>s;2jXz zscM+U#V>qkRdiN6B^V7TPb#XpePjcJ%No09!U4JLg2pNLi~$uMS1k~DmRqsi0~E}W(^UFFl<+lbVJVHU@aztp4+G}0 zmJ3Q5)5~$>aGbQo!OwUmAxTN+J9^R!lDh~_g5l;JNTi<&b%x(lV+`|Nw1X|a86u5b zTYmI1;PxAle7x^|bHELx2?b^0$GPtf)Q{`Y@Dbky{_UqyX0hx}@$PU2!pXsVPxB7i zy^*mX=O<%N@i!*k&B>Gcw#=#jw9I#?vZSOUyf7(q_~;M6sm}hy=A-ehCPZ%a587vh zl+d;p*33LTLlv^1M)J81S@`SCnCi$1I`?^c%CiQPg)#l1PY5$ASK7|C&VgT@2wdyD zWW{Dy({pb00vPy;HnB%d-egu~-#Hl?RSw&lwW&emG5ycNc6byIF1ws4Sjxn{ira3u zl*NBoh7Z-I&@2nH>|!<7w)eng6uP#wYP=$@e#h@jn95wpFez+f+0?60{wkwg-m-u?Cc*+qTo?~XADV`L zq@{jre%Py9`B>jIY^k5np`~7UDNKpehl?#L@Jy|wZD{B=?BSEif=IZFW+T`N`IM=^(yzr~aZPm`bG=c8|Am0x z)lHyNUL#OIJ!7YbnuV$iIf=xg+)zzAI%>uB9ZqhPoYcBBg%s@~z+#9q*^9L`Q^WpT zVxj&nZf(IXTA_y2!f5RG+w5}|>a1bgA)FjXd8OqqEinb}%dKH$^&o)QGlf84-OHEO z)ycb%7Wu)`z&2P(QA0EH9r4~+l?<%0FWq;GcV@el3~3S@6%QWLM%#e5G73J~8VvD6 zJ)NBl-*nrJiATD z%-4U6av+SprH3jqom8id*OeyS>*DW~AOR|n$GcOzVyWGTe=h6NHb%gehh^TOU9R!d zkMdlM?^UQ5Z-VX1#;OS;zz}jiNqLKI8q0jfMkU{kwzW#ckE9TyOB9Keat7r}7KYcU zAv;wN;Pigdlh-b!XBr-pe+-jXH;n=#kTCH1rH5xF($vxkc^ys_FmBR$*}wWKzE{iO z>ZKQP>#&b7tn``$ludpEyl=t+IHVOBm}Hb+GWGKa&7;FdyQc^CSDG}0^SwMTeU8M3 z_R^B{eVW7fnV5qMo`gh2zpc!D6PqlhpT+08{$}|~CT-^Ds%C-26G{g&gdHZ;`ijRe zJ^s95^(JsdRuG(%GAZ+C^InXwTt_QL$FM|&G+S`yYk+*EiLK3*O0|f%@+cGMY=wn~ zp@PkUypuyVj_4-fJpL$XlczY&?E5;RtdgY@8u(FsawJakcSq1JdkbzBcBARxVI9tc zPx`)6rTtlehmYax=4f}!kd`T`3i(G7Jn)VaVZu`FB7g4{QB6AlA3e;fP)MyXxr=)Z z)mNi%xN;wtA`w>@i47;34tc*Ao;fEZx0(Y?A!V{kc2jV&7`ci65W(YiW1DogyvIzo ztXdUG4d!=Z_YR{@+0GDNX)Df!aP@XWnoj5IhTXA*sl*ONd?YC%62v@T#T&CkJR1qw zU}SOi!8RdDp+n?B8ighhl8+e3l142e{`Nl+bBUfrfHV;Fjj&#*OX?NF-;T@muW?~4 zS##J}98o&&!Lcn9Vkzi1o!$gm%Be=O9hkR6bSH39lAMWBVKc31LAERm_l@T)vr z5*O`ejG zt)xuVUy%gwismfCKqr_T;$dQ;m-MoFt)W@Sf zdts~NUXr`CIiY~x(Ulj231mdgYX?Sgb3Ye+sPHYn z_*(QHPNw}&x`%Ov%9>EVX4(z=Y$R4u`v-hiDJ;xg=U%W5ql#8vn_fwUkrB|2RZu9! zOV5+}GWA!-k1)VGY-&o#<0>`M)0$APQ^t4NeGb&6IC-=nbj!8W%2J3q*>P4u*3_=o z@}4&E%}t{sLPnL2?@?J@fnvk~=i%H=Ki-=&nHTfH)4ljjOF?m|BVyM&rT;28Jd7o( zRg1sKv{Ou}Jc3gm;+H_(w3k%>FkLln(8ycoV=9)h_3JTJdo`;5w2D58Qmph8sQx|;%k z@DpH+vhlYYFk8zSOM9Co_fUE7;-ms{A#g6o}DYGH$SUYI-VJ+=2B%@&ir2AU*LI;y#QU&Bio8xopY}rLcc9snv=>Y3PSE$8LpeL+$CDV7z)0 z+@v;aHJ$Qh4I?BC*UI;7C#i)NvgwzYEDa68R4HNy%LHGR(aH5%loF)G*$kxP`bPg8 zo!)A)8L$1oM(!e9Y%%2BC7vmYj{dwR+?#&*Zqe7()phLj_f!wgZnqgnD*D^Vb!_>8 z_|D&KNo?T>g5+*Y}ZBe#eOK@G@&@&oHb}3D49+~3ZBaOUSgUy0mHrV04t-#`7f zfBGUNHPn2DNIm?3_C^H*_z@A~$(V}Gy#1H%)iH*uYN7Plj29J!aG209#hAF zgzm}ym71`E0zncaEh)47)Y;8z+=|igC5ro`R0DB z>s>O_VbHZ^KaxBQU_4Lqo@`IU6s+71vYYO$kJd-+Uv97N^&X>^hXU5F_Jp3E-5N$} zvi*Ngy8b~F5_XjCI?I1(@cV0OQKK4vGE$fH?l1Lb7@}X#GJfW~}+>(?Vr7 z$x_oBZgy4k*z)g)dEIjd*WckWgfj1aAMExf?O#p82b4HFEp~{l(Dkt2ylj;nroZ?o@fQ&O=yU*FZh!`54NzXMnr{ZjYW>b~y()53f&)_{&{%lhZdbtEiu$mwd!+Sib_|5o5V$}_{L!aX3TTkW{h`VA4Vo`jU1B_?*D+%U` zT2@c(+<*3l7sK^`T+=kf`LQm$7`$z6*oSgPz+IoMibd30ovcmTmjw%vO^I8tx9Bki}UZkASXao1=r;<9uZ5n669^V>OhgGt>O1rE3ok$^Z0C+#R}cOvuMnJbM>!L z!#!cfxQW?9AX|eG@-9_-T+3={_O5;9nU&OCMO~ig)$uAcs>$>CbkyO*tHGwhPgHE+ z4TowopsK^3;-j8I@KCtdU3onc$@c#p;L<+(*eN3WrizoFx@dD`X%_IV8xx!1Zh{V%`OOqP~h z9^5`}E++_eRyj0yyxymMu6m+yod`ipQpv$zHo9L}v2&6YV{}_^F>g5INEq;V+f5n1 za!nbP+1Nlgy!$gVeG=lfx)jWj|B;Y0-adYmucjl5sz~WskL4y*h@)uYW|20%v-#Av zIqp8JIH$qkyd$UKC*ec;WG0?>zUzaXqD9IJ;@R-$F_QCEcK*q|+8nBOgZ#A9AV0bM zqeV_@sk`rb)7CxDMG04KGxUKIWkYiB-I^B*B9^Uk!2~)_vqioWk9XtC3!SbDmDU_< zc9|{n=yEkgSN=Y4FT;bvE?&0wRdL?GguC$) zE&jBHr9?Q;9=FTHIc&qHALQ?Zo(*l*)YSyOGx==NaMIbP-t%|RfYx_0P|e`+{?0Df z#M~Ea!X&0w$V1-(Tg=ezUL+%bfV5pZ_HBx$OIP?+v{_MHf#2OBAYw{F8}tdN-a7hT zj|-fR@lG}Z%*|y0)N_(zW6Ub?37oN)aa{d_qvOC2K^ZDXc&S@^@U&n|%?tE_u|l@l zYC7tF?RcK8En^981rb{=2bW$sZS!?k#r~D8z%Ip zIomklM7t%ozVZ5J>`8-7r>K1;X~e;F{RE{B+-sL+n% zoGC0P{?SfgWB=FJpB{_0N{gtqR^%Vp*Rx>tz*B8^3Dr}+3-&v=v}A{U{od9sbuV`+ zpX1u?QqG9*VE|uU+d2R*{GKlMDSmO9`Vg?XvY60q^aomTNWb8cg!1-IxGi1!g zFSiacsvDldS-H;kWUC(OeyasH0FXCnhv_lvp_EMyoBzj!oP$Fsrgk@ACzH9WWJ_N~ zSA`%66_C_hPhc(8#Ia>7{?K+kkbt~yqd_f&4EBFbdgMCSXiBsToNvM1sV1Fv>P&>6 zZ4M62AKeBGt7RM8;hDI@x#Z(Tl~;=C_%b~k3B-KwMnC#=HRhJI{#3g>-A~Sxe%}7q zE4We9s?F??N`TI{je6hm0M?tNmZiSWz)6k+=)RY|1nijnT9z|OPI5MV<8}6JFzTW& z$`3fI@4pdQ7COFp-+Z6ww>qAkuEUt%%~$_JPVTN?^dn|k^KhnE_&w>a>%?$#bN}6g zwG@l!>w~`UP1G=@KbCh%0b3jRLFoibjM{qhLsuMIqxMjKmtua~b?{@2fU|Hz!P9;S zZQxWjfAEywwgn(u>8?c{^4jzhC5rTU(HVLB)#T|`@7?pt-~8k_o?oQTP~d$oN>uOf zDn|$Nv}UuV7$ZTND1_9Tf892*)>e5(%*Sk3wHG={!mAw;_g=r#ZE8d?T_*ha(;vy% z<}}`!FYFMZ{f7og`fpUb^m<-|kr*lTq>-O#MbD@~6gfb9z4j(=x%YXtvXPDZMf;XlKpz3CnIfN2Uky$3e&y_K||)k%kT z299l(Q-{q3aK=+NMW=hj2uvHAfRz1IKcdPAea112Q2cr7*BfAH8?u_n`D1?Y@`*xT zj6>h)JE<-=wLl3zZpwZ6v8Z+-;6m}~&c_?Z$lA5&)d*z_h@kM~Vs{vU6Z-0KFrH1s zuAW$A7IsaIZphaBj4xc>w(0T)JW!&bFP7D$$J0e}hxsnuyN`*kN95?YC|Tslui5tX z3Z=JpXV+=l&wn3ChGJD#L>&rFiO+R04)Gk0d7_FtKWz&_-|tU+w%SJ|M+k2J6;8Hq ze~|0CuwJ!dqnJD;!Z*>>X|Nkc!+tD$KIdmjqe4*|Wctuov7RwgAccGkxVJORN2^XC z%A#bx_8l9vDbyB3%EB_7Ls#{^NRFt^xIvy>nq_`Zfm?YXP};r!qh2c)8mYrdlkPoK z(0tl^Gi+`mKuj9Rn*lx4%f28uvgvc1X?L&C@%fh^i{9we?-AIQ^U-Pzl7t!O`u=%% zxQXmJ@EjEHZ|&L`klHZd66O&T5&-J4O)$d2A70zglb`%oy6;uAVU#QwRzS;tMlAzm z=D(pYmVIK;J0#3{FSeG5X%06cC^zx@!(7`1=|h9g3)yI9_K)uaP48XM(Zi0ZHF-Av zXbxv#rV;-*a}+x6R8dh^dgt%49pf0~)A@=%L-oUByv5ocN6Inu@A!>3CYwc8fNE~r zf>rKyy}MskcwR}@rU64i`FZedHV6a<29ECvUI>Q?L2>LUa;#{wUYGdb-ZG5k8h0Y* z+k#q6Q+4WnE0Pur1Kt08=GvT;l6iLa+hvf&VXd=D1fiV=^bzQj!s28p+Mv!$p`gIh zP$NJk@Nm3_*FC978`dZT8Li#cn*QYAxxIfLCS44|^_?AvIpU+4f`Oyu!-Of$9}N#e zQCa@F5C;wV-`hzg3{DW;`to&0`20$6;7Qcew(iHK7w7_evb>HCE4{R%5prxBh7vi2 zPg^+oE)4jz5>3q$+W&lW5D3BuH^3bpbonNG_xC!FzbYMB#rI_Vcf`InLaM+u;Rhp> zxhUWxxl@M`Jap7xO{*Rc;eYr1@5@zWf~YM+QWRK}vY!8_LKxLuFX9iiqIq?0Y93L`A>!`HE($`kz^W zrAZ`&)e!3zEMK@M=E*+V4gYT{H8_to-MwuUz&y>ny(+&Dz^TXujrYrmw~7onc-;7Z zTGF)Gg8AvlPobW>{2zieBr7^+0`LDW_t6T0n(IV$!k93>&605=!c27YJe^{$?pLi^ zRy2qi8Lm~Le$yn*jreZBX3=pkfNQU{`-}#`47iLL{f){0P455A5=wA|6mYvoS;_>2 z|9AcW8$~cR@H-e~!Ea&z?_Xj6cWAzS0IpO~J@TLF{~M}*i|^kb|Nr+D-$uIrZlgZ| zCn1~ybjMoY<+uU>#iJLxfIOfX0Cp0+#9ae^2M2?8_wuTi4WH%_#%x`{x#>{Vw7}}q z(KUt?tS0s_K*(VT$q#(>ZtV>xb0l7&O&{fd2>%!TKn$w&3=Hgyet0%<7_~38A6MG} zNsebq&5zRjR=)?=Cm@xQ@(sR}qw@a`KN&!WENdG$5DaRpHao;n7I7LN1p_iL_C_kV zgAhdY*vXN;=b@N8^EG_7*u{S!k3($W6oOh6f%Uof8(!viv!yC^{kKN4DD1`^OaHW^ zmF4BAcDlgv0I}(cJ2;<2g7$!eFd$o5>|>^YK{Y@(y?MzDef3i)X0rHkC+M3XFtM!F z3P;r-3k$%#eg_ytR{`HO2)bw{m+x~_ewTahSGJ^PD%k}jlYMQ#mQ-?DKg!Vzj8Iru z+ac;B4<3Tmc$Os|qjK%P{O#BYfU_37%c4U8&Q4gDT^*FR0etVC7rn@FV?TfqaiDGi49R7uz(6-&PY5H2N&3aUS|{`XrYk^; zONp*Xig4=CygUf(oVhP?2EQrte9we@pD%|_|0R^=nq}2j(8Nr@pc@hJ+En8|{xP)z zC0Oy_1D$M8_SF%h&Iph||DAiW4(JOdo!32A9YSlPJ#pd)_P!Ox*W=L1;^*YP{hd+b zT-MStvIHgsJqE^NKawuK765t@h#H$%h4uhL?+7H-(o^v+5xJf#BX>Z8%c!TZ;dia# zyO*ZZSBTH4tcwf8v=&msXMlrsrG;cX@;z0s*VXRG9gyT!f29Ak2Th#F6I}&H&W27d zzLDyA3z?1Ye!R6r^&K}{BTmTbKaMB><9x&TDcK$H5`vUvP~aav$3+C3eiAHm{yI#T zup~odg#UfDKOD0GupNuX>LG}yUD3eQbsXgR_8CScst5!A%ddU}5ShfwbDfxtH4U`)1N6*%h$fy^+{cb1m4F4O|~=zy+$X%vTgwmda2%i3}Qp5 zF_VFo60`2TRi{Gt?^c~!farea@&4QiMIVUvo0;aru8Y~^3wRKopZDi*omM`)>g;;|wLEj2iWrnRKY9k|uSY#EXk zWE5r6&kQ(OH&r1uBGs}TQ$4)XOz7P5twg4zh26*{i_xb z*AW5m^Cw%vEWnH%W-i!bJ{133M%ZoBBDiA<4YBU$uWO)hy6!CgG$_zz8bR(Fi4qrz zhy&}yt`ke=%;bsDGAek+5M`5fKTv4OEo1OJ8TdM@Dzt|WY)3s!J=|eXq|qA!9YdTI zF$WK6$P8`T;uWu$a}@w!G>&{x&WrPiOvPB5Bu4nt2hI=DkAzmwPi0^xc{+(Q(#*AHlwFfTY@8Z`kSzE{{q@a z1aR_qSQpON?i#;6w%&@dH7(s%q)Sz1`;0)6e*9Evl{yTsRQY|}%N$&3c^)fdG&@;(EaX9TSYLzy5i{o2iiw?j0PA1rltO=aPAX zXb9IW@FCFwwK;U#Bq|w5bdW}YNz_zonJMvSix9dV@_rb zo522X_?0W-?r5IvKU_;}H!1`q4QX2Pebw*S_!B#nV?T6PoTKysr{ZLMGCGF3MKCsZ z-FF>&ELxh664$1r;d3YM^2T$AW4TwnqDUX(jCkbh;ns zwW{L{76BhBIU&SwLVmz`Mu7=&QM|f0Bs3dOf%tDAaKy}VK?Egf^(BzkLw&bGWGnW~ z6kw$x+QC26si;#LX_gZsSl6eb}LPL`~s{ycIF@GBpv+3q)doodIp z-b{a5sSZSgC1DPHw_h`eP(N6co2mC`DE2<$vZ0@~?!mfX#PwzB> zkgzQ1sRVBQiOU7Bt3WzQBF#C_ec(5soe8Z`osz-{JHm;I7#Fixo$R_5dnYtU5&e~9 zc2=Q2>@*BRBsirF0impInb1rcL$2T$er-z`h7s)=AOkku!MKAkl5>Py8U zifyL0C&O)-NhS&*zCq0RYWZsOF*qM_g2!6%5-Z$+q)XQ!Fo=I0+z(E$L=qslK<3;| z1qDn!zW&AzM4@kN!XbS`t3$*eWCvR`l{Bct`>rG{ac{GGed&8K%@7a@Z%b+W(uy&N zJjBD1TtW_IR3#0j-32BKqh+YRr$a`VE1+Rx6doP*8b{yvZdLNodYwh*m(f{5Q_usR zh?ntqCJ>RLeSzsJ>^5J9z%uV~EbjygXS}J(z#^po2fJjx$)brWr?gpSJ&XRn?a;DJHS*pb7rU`I-c`j-ft+N(C}@siAc!GNWx2@h zoMtaiw6iQ3&*E1EYUWI_$qo`HvC)pGAh~d%WHSj}mj??@l0ljJ)X*tvKe}P=@XRN5 zThK-P6Ly{cT$S^8#$(;+dtJslV+mq2op-oHTUlBPhz!`b&}STzzbX080|Bqs`4P=O z`SFhh;JBqRf{8Wohp?*4q2UKs`P}$MTOmKuell$i*;y*#kv>w{QSK14k(@^J&GzMFT(=lHH}*&N#jfo3$GG*vifVQ8z{Sl*x_Z#zPC5$9z;ad z^!azIpFDcNL7u+Pe=phYEI*kJvIaGiRhci8kfLIeUHPB;ZlViLcd5|uvCFex;1eSA zrL~q7lpqBTW2~skb8gnv5)9sb2eiI*L+EUnE5?Jk=;bIX3q{QjixFNDXc>XE+E*m5 zND9l=`TpRyger2~Bz3syiLp2om9ZLKYqWQ`z}zRY8Z&>WrBtWdcl*v8tF;g9t6T9K z(C!2`;gY8M1APq13oD6oMsS1ek1JHypj%8tBJ&XbpxdC^LJfcwbR+)upjJyrqr`Q< zL#ZAa@U*&#r5G`vue^y8Jo7KPBPG}Qfd(ufDnsmx<%rhW);eb1Rz2s;*6HG;G&EQY zB`o2%e2)b^Njej+X?9dhFkA`_sWDF}m(A6B7?CkCV_{#r#Y-C?Ui%`5z==ZLM-Z?D z@NBFg283jc?uJ323cVo6XDC_i&v&72IDTgLU;EgtqYGG!IHf9CzzrYrP9!Bm(AENG z2xt1u{l9L~ejQraZ#)oiCwB--4F5v(8$~jHiI;tVezIpC32|Ed^%DE(CuabTn3TRk zNU%nM?nv?!S6*gz9mM4Gx<_!wr?}qRvNghbTN=KxxD$_%J|uK_O4LNsH6)fsVZsml z>i9uF&f4v2r)sTm7b9^KZ=(iaT5qZp6kySw1clD!ymn&AwxpPu`T)<>@ri^RbNqGYGmwQ>%PGGark{K8Psix@3~ zpaVmQ;W;J-^pvD(O;3Ip>gKbH>%bTEt|K;l2qA)|eZ2-kaZcSjP9={e}RU#MGNIT)=y3YZEUF^;U`bf53LD} zcTl8su-S43Rg~S+WkMi1?sw2Nyp3r9bgI?_$nJy5^9^yn`Q?6;n{=E}R5TQWv zroqn39t63LNn=OBghTD)Lq~ZyiOQEejy|5VDa+OVPHOp3os5bZoPdJ$HxO@0F_97d z++~P@sPSVWi5Ub`SUW(?wJqxgD)pI5zC3$*=2R zNX$CHPWV?7=RgG5BSNR|QRh5j3w7C~jyfozc4jyQEE`A62DPBsh#A5)Rhs>qcl%Y} zAMqtmA=@~y)ciLljU9<(`$UdLU9BC2q=*0S~|ug;0WTp6W%F zD)~;GHFv7Ei~5GACYWS^08Z(ICUcBAR%@81Pv{uNjns?hTr%KetLb_;S0O^|>~agj zMw;`aV*S*B!%)`G$3bGNJPGxf@9M3dT5tgsQpb|O(%NaZsAuFNDIf}TVl?MdX?57z z4!etr%9Knf#o^JkPvNe}L@bcJD2+#0D#W4V=ME7<=ha{O!kVTG;VMdrL)GCOI|iYm zu#z%w7lT?MCd2F@_z0o8tc?jMM$brRjiPhYFU|?g7C%{&sdV#y@k2$7CA3*EH zFO<%w-A9td))e>042e#QyD5i^E)39uH9O}2n6#?WLQ3D=EP9oFmPdLKiUDU&C*UkO z?}3NIBoc{3yW+#e$}zT{+7$_*;g=&K5)^G>y>D_99{R$aF^2w&^S-$8Sb8Hb$2#*{#^OR_<9OIhMKX%YnrGc-H1iDp z$R;cqliw>^f7u_|5wb#oP1J45ZUCT|ysmD(TD`rT2ZmbV6c9_|9ixD`;NBq=a`5z5 zDJnpw0%&5X-5aRg95(WS%$H_VyZmMQI0S7JPG5j<+k)mUl8D23KrEJAh{pm=k+Oe# z&>|`^LEK}(Bm6J7q!h6;Z)mYZ2k84n8j~2Bl2Se8Rl%ZiHa7FpQ6%B4KnZ;F936R}y_g)mAjlnv3%0DW%}MV)3Ae7aZig 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 F{{nHwauxsp literal 0 HcmV?d00001 diff --git a/Project2-Stream-Compaction/img/efficient_upsweep_visual.png b/Project2-Stream-Compaction/img/efficient_upsweep_visual.png new file mode 100644 index 0000000000000000000000000000000000000000..dee394ae7bff74dc4e692eecf8538d3337c912cd GIT binary patch literal 118082 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

S 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�o-NC+n!|nHiv3=dTa|rP-`lXMij^Vm_*1N;&OE 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

+QoRX3 z1mxfdptf06-*1)@A~}+igiHKImux3HcajVD^6z+3IQ?{ilr*=RK_RwMo9(P-3yz8` z(O-a02a+&l1VR8=(EOvnlmHF*sU!+8uQ!-uc@wt>B{O7gpD1)MCCeOcW9N4bkCY?HqPBKjWGQx*y2WE^UO9UtRCS9H+`5OJMTs#CcD_JWUlc5y5APb z5%VJe3VT4F4@~V#DB6Fh>R&4N3)hFp^Lqk>#9e7FGg;RqH)r3k)z8^#meyJ6ga>F@ zt)f7pU{SJjg;Bri)8Rw!TkHoirUl8M#r)I*IKW^ci~X?su~nSWGN4_3b+@%fYLaD?k~^P9k7lb%$rdMsFMtI)*|Ujk-UK6#`3^z zlIAz$C4oH%-}PiOLr}SYdt=qD`b_IXAoKYjGdcb}GIsjcG=I^2 z6GZcJFSZ5nl^GchNznO^cfN8CTNvXX9tZjLyouqHkzHLEKa`k#AU<8Y^Nr&qqkd|A zxX!D>v{xIwTC2A9hc?yNX4BMwgEl?eGa&J6Cp$o!YV+ywbN;niOvPL+=+0B{O6^?x zWgdqg{fR6n9yu|)Oad#J00;>4qCu)G0Ub3>j%Q#I`SXigHO2sb~ z?;uW&$8#)i@u$RXye~u znNZgvdb$UhtFy0jxAK?77VCmTI4cc=oijI?m_yZHE3;yKGz0(W*1vy8x<6SZ z6Wmi2cg#2su5rz^A~xHPC&tHH5@U!4I1@wAk7V-1c8}+2f2VblyhU$?hw&S*K@_*7 z9e|JjimqkM^IsO(i7!am^yuD%kI}4rajngE&DMPtVA5&Kb9!$^N#P2*)IZ{xB_(VO z@jM!m&YJ7J+i9s(Gq7+szn(DdSTL#R=Z!6vaB)hGwairV}P9*YGfO?mQWb${(zM zm+KJ(G7#UqAQ`tTL)xhj7;fSAgiX80C_M}6TM|kTlR`(LE&&U#%kL@5lLb04vHb?uH%^#D1{(YvNHwKDg!m+|gnP zU#{5VPVKIahm2jm{jE-48{wRvH{acH3n>V9`Uh4y;G)M71ZFiSRJ_+YTkUn;+~gp~ z5s0nVUp)IE#>JW_+OW*0+b(z9zR^fVy_%6=oR)gE%vSzx=2^{d!zDW#o17?0jXPi< zMWKoRSQk-L8ZYpyvqYnv7drrl9bsXml=dtC3-<~OA3wC6mC^T;`=l+bQotut%I)-N&lFU42JNeTXPSp@WFlx~&& zBRJT8Efa9yNwdZD`(S>7d{mBmNv}EYk!}v?rO%De@@_yRc(@dYm`>{iIvZh53{?7Q zo$z?_hTAXODgb+u#mYN8UDjk&gkL4$+XzIc$b36 z67{2fnBf(7nW<~+COd&3$nLF=K}@&&^-W8-693U}?&Nz3O!RK=nduQJfQ}69Pm=v< zCw{{CnY@iMyBPA6A9YL>ql#;W%V_|kI}(2b0=Li??`66Q99QL3DY!{0GRg*_bGVT7 z&KhCSTx!6eEMhhu5CB>jH!{@~ZDc^nPbQ%3)>wS3JK6M=eu7apC8$*FbEuiMkKjd_TH>Li}0Wbtcd#g?mlI3LZ2~zIu^;@lR zjjW46B^pZYiy-I;S~y-9AbgGu^GsB+8$?>B>%C(}BVM5X3g4vquq(sF8UHD<#&vO! z<1M*!%})6@*)-CS18DaJ>i996HBpdmF}PW;kPS`p>?7S72oR(M0XCvp*8JpOz2hMl zM!0o&!c*0~{cmJ6l*cqytqs|A^}&lF+3Y3qZaAF*oq2tG0{#3=#3Kf5et?cIz?o95 zD$v^dXO7H{?7*9^MfX&q>Klehn}RnpiMqaX&4F*MW$>395jPP4P$Y%06_E4mp?=h) zf1Z8i4v$y@nV7l}j8n7zzu51g ziiG*h2ZyUpfS~~*Vy3_e9tCliOUendy=A<#Jn_w|3&kF_t}JC$U*A`+0pMu$dU=PX zV==8#^Q}9NLMeAikYf0Q>Hd-BbR-vCyMt4|?ZM*V(jf=uedEYS6+lAeE4X_1w3Vqf zH{#7Ib8y8r0B((&Pt?;c2sW7Tkl1Z>!K7<@8mo$~{u% zrNV;3;{dGrl_b5#e%n%uAUTk%x}N%%%alNB+6N%BCpMuk>3T+g=Ow{P5JW)s&SPa) z-BO-;N^Iavh9s&Yyr z+xN^jwJ&->(P(qNkm*kbVma_@U=BA(Dh<4)h_Rrm%Sk?in}J(WT+zE?=X`#k=We~W z=R1i_KsdfC$lxq7A26-@M#_hQH2)1rC5r)gIn*+E-vwBQq&Sh-*g*&*C}hn-+kkvZ zn!~+ER}-Ht9DmiPnURQuU))-3s@0sFjQq!oz6vUknN!{LkE6Zy;u_cJ&W=r|%q@Yj9Xdp9_Mhu6Wf59y)bbm+x zQa`7>I@TqA=cm*0ns!S*_sM~NsuOkp(*4K@#|ay%y1?cx0(;=`RkOoB!+QTVEQ(rT zJ-0|8QKk|ms$%o4j#;CQWs9OGy#Ggeww9m-DT+QH)iTkYmn#|_J%&TT>2twR+p>X%P zb!;2&GJ0cSnX21I1%fW@@Qj%rGc9IS2O720xcia#(Ug0a!fkjiY5YKf8GYchifkx} zd$twvc^)l{JjDVOg7fo;MAT38UayDDb7$DydLr17IE28WLlwUGC!U0Vc1?v8yYp@Gl;iITnu zqLcWo{4fTj-`Sa{+;l~-L2|`6APJQgcf|&f+%?s@`bc#5vFy>$5Jd8lRp(f^Bq=T- zgNx(O&4;uFV$Z7`pO&-Q5*GC7DLk>7&bO1wytz0OhfDr$cm=30Dao`3ilp2dY^r~f zzWZt8Y&aZ~)F2&#fC81}M!}@V?*K9A9;bVx_1>PRbD=g+-O@QwSa8RoCvZ54ij8Q} z(m(Cq0~EfzvlMGVwikwR6^exM2oNIslJ$tB%>KdMN(AsoHjM*v%}E7C=Q-d>0K(rF z>1Ex6U@JAyguxVKC@qt~G(x+YK zlmh`L8FL_S(=}g>l%Wd<>{{@YYBL2l|E>ao%+?;HVMF%Ffj#rc$Z$;g_kb}%M;2CA zYtjm&UNz4;o`0Cst&E6fig~)BAU31xOz)0W^z%&$1pr4&^zM}K3Rpp|id~x1_n5-R zCO<3$JFPocw*O4eNGU`ql*ccD=ET=Lqa!)^8TjE%Rd^Sd#{ed{pB*#$^dj&hg?BsM zN$mEI@sPRid-D#8LCP8)ZJ&K>V|nCJrrcw9jD$xm&n8Ap3P=a!k4;>hzLDD}dNv1_ zoIo&7)Tizyud?)~uMfT<7ih`7PNREqnh(6kKu~|s!&QEV_^RH~uB@$TzIZ{pcc;!Y zeE`CMNdPAOzf}^Zq292rBjRJOi1?5&O6_5?ZeLoe`_B*5`Cb+uF23i8kXQw7d%lw7B(Zatc_B#bQ+*XEbR;4XUzXn`0$ ze^&zX=Pt(eW6#~q6b+1&`Ceb2jE#fyb~3SK<|yJwb6lO0w%}dz*U?v39i2_9dXlMa!zVN~&Vdn?_ z@mkKeZ8Pgl(wc;AGv0u}$d}B8`faSs1DmhlaJ>n{5&2Fr4bZ*+j`Wv&<^@$mPEDg7o8ik7Nk_ z2(?Cxl(u!Ja>^=WMC(i0A92Q*BS%;Skb)SYFjKL!c|YgN?J9%csJ^d{j)1$oDK<7X z+(qs}&s)UNOg9M$2&A)-;=9vm7n`!HHoX#Xc7 z3$640i}pQ0+s)1VT#3Dzzwv#(!E^=pYa3k)DPzk!K6w&vx{vD&ob2phj;mEF7O3s( zB!LF%2U;ezmh}Y4K$R|uZ%71eImBrF{+EYNzFa!_>L-y&Np`Qx9`pteGQKT#TKoN= zck-nvGhAjuI?p7pG$6i1XNTz-I|IAVHbcUql!dmq*&2V?-1znBoEkA~ujx!XzAm9b z@&dfUHEkA!PFjLfee*~_fSr}~vkZ+(fL=KxyxV>RxJ$z$$Fj!l!r<{!gvW2_{qEzg zQx!q2DL3tzCxjIQxnhiQR+*Tp{h`RJQVApi+ti zv2u}}ovkhu6&;;+0j9+yD|^~;ez=x*0*Ru+2dajflCzVL=;aS2w#3T zQR+`GFpzuVjoBF%*iMq2V;xIhzMAWTtaCdI^G`A?dpjjGN_2fqm`jTs>O00y^fl2( zJ7+1A1RbCsM-0mgx}Q{)P?j0S3r%5(yw-3!1kZdre49%i{s(=V%If zPkt0h|7}<$krRFMBd!Z1#Bd!sH!C(qXL5V-WIc#2<$lC)^r_WAiuQJi?Kr)*JHo$O z!CmjY%b51?us}~rIzta@1JI}UrSATv;PynBTt#cOlboA+SE`k~UPH)B?e&B<51Ecj z50D8}`m|iAP_blau@Q1wt_wtc{x*08@!|cz(OxU@z-ChB)L+GFdvH?!2dbHnW+Y3* zFu`-YvoUO#ZforAi){wKKs~^p8{Wkt+j9$`uIf&}QkDQM z3|Gud<_>6$J$)m_o~7#x;%?td&VRhVD!ING|8R8DP!gb=?CW6H$MSJG>YitlV@y`x zKE&{ z7Nhib_!bMr(R4jX6Ysf$7j;Vl(1p-8m<(ZW&a%V>o!rYu5*qV$A-o)J$(JbRZ%+m; zitiQLyx=;$Tnr&R+O(DKVRgo9@pO*9475~KDifn=$%l7N34g=p+C3Nc(GxP?wh z>g!CZt!m&LvK4;7L{v4BYpn2ytHdmS--iv{-o|m&=MJc<)GJlsfXoK$HIsbS?tIkw z+rUSE%eW%gpuP^Sr|6RxGq6bq%GyP8+CpVhfPV_PYfa_LW}+iNJr7B2wLVaE|y4%GQSlYUBtUUEkiO!i@U2 zHKc)l#|Gse!BrIv-Hj^esBOxvLUzNChPSs>z3V0of|$Ob0;yJa|=b^lc`L1%8kA1GErOOqNwyQRLpK>tuE4+ls)5g1GUg$=dgq9+7@ zrO`dHJJ8RI1^gqt!HXrS_r%QNSQ;YKq2S5^ZmGdd%mdO@PmOC7r6FUoWAJ(iBCM=5 zof%{%!frtiH4O*&j8mOD)nC{TXg$EM`7ZUpM^oR8=2xvzl7x(@APuj9s)PMuZ7Sbl z-qMaO|2x)2%krNZLMI^NCocI9|6}r005lcCCjYO|dcf!~$6+Hp-{N;It3Y|4U3fy_ zFa+@-O3;|^j$fhJaV3#NJxCnz7oczmNy8WWkES_zC!OCIWJ0>) zcXM!#`wYzw$>0CT0H(HjC8q#xaZ&FOlW3v==Clg`@%W#N7&ZVe!z6)k{y(F2fYBC7 z&I!KI{KVpFpdvDHDI@PO$jrzxY#bUFnV z-+h2>uu%W6(P4L^@3YNhK*3wAc7>jIbJ*Y{l+>eqxpWL{(C?n`Xb58ad#H!E_fud_ z{rghZ|0pAbz&23(;r-X>d|>qd7>CoHadax_S_8(>MO6e;kU8qO#3G<}IImEcpgs~{ zPT`b_|0EFK+*O6%*ZQx~|KGI!ziIuyZCbzlpwnYQ@|3(s>Y9i1KdrvR&?@@-o87y& z-05`_6F*cxoB&#=sqw6NpOH{g6JYJ&5KFq~$Nu!`7gACT4k01=C!5w=r&yA|fUwJJ zyqS4(GeoV2K%8l)y4=sm#MXrWYV1WdCt@v}oG{o}Klu6iGrG;2q^l1b$M~{y zD4-YvrKAiGYnStUivv|ySnB`uZ9jhaP|EBFI*_}|_RMM%!oawCS4=CS1J8p_k3VVg zkRmoJpjNL72*}F%+VM6rg-&W{$miaJ2M;~W2q0>_$%Cxkt%-7~BZ^a1-JqE4L z4%J@JoR07B`{Xtj*Y2LY21vqZe9D@fbSG@-`>t=5+(9^(nvAEESXgE~LLD9j*E}Gz z?Z6UD$iurtinS&3uMd=HvccGafyJ zRWu<*xb9m2cso`2LRMD1qJnrNH!iB&(}R1ajxm^mC-_g;$H@y1NyyDLJ=Hq!R>n8| zsdt}{p%M7s)jS2h3Qdz|ffBylA4mE+JCJlEqNHpEQi?hN%?)?*!o?{e35VD5kyPacWlFtT=DLNxuhf_og6w!Kn z2r>f$`6C$jTe5TMe#+vvz8TGZL&2JEJyFVj(or_2i3BX^_iu*W+|8_KCpR`Wbn3Is zYrj8?R3FwmpP(Q!o(6#*e>Enz$Hz@$7aG>Rgis93$7DTIpqrLikH(ST|9EtGm>w0S zv4S<$N_^$C_POkgT*1~p=to-G!xbN^s`YUJb=bd$UF<0|h{mJ${gG&VP>bW-4E zW;ZsgEuRVZA4g0vv#{v7d57^8UDg-jwp?E`^*CL24H11jnb4<`L9LzK&zLs!(l2}F zyVEEhCFI2&)zX4GRg9}V(UJTWU$1t%eHnMuxm|GOE`yp`R~yz<6O?d2?AIv&c8Rh} znTd&~NSh*fmpwOyWk#}|5y9IqEuFx38r^3DnVL7qvsFS%l#rDCwaKT$9g%kR$=%=0 zo&uqky7Tk)V~OO<6C+HqcIxWJXKuL>-xB4{Tsghl&+lI(c0PJDTNlVtIamhZ8M?x3 za!?Wj5bqv*L{j`Cf|CB-7cFaB>a@eP+Kr9WvB8`XQ7t`4n#`R0PPlGL#QXPhFYjND zq<*WW5kHD07^b{oed(st){ZqHMmP%W%)x>2#YiHL^Sp#ey?be5X_>Ee>t|t#O_6ot z+ZoxdcK{9vD(P464j)f^vo)qjVSuszTVyG=bIJFdL=h67(-c5dHDY!{RsxR{za2Hn zEPY~0^Xm0yWsbhS;@+2D+x@bZUza*euZ6+mYfPy0$RSP_KA&Aqu(ccWVzHX*M z(M6XamNV5#z6ab<;t#S()wF9V?I{r%_VMmn7M-~kU7f9*b@aK z)c{v=-B%*_7rFT0f(#kJA=wAB?ncbU#(edEvNOMnok?K0r-cWZhU>YKcAnIi869or zscmyYnKWU~+M}#Ny{v;~bdI5Qq0UXBXke=NbWIxBw zIPe0B&B~v>c}&M?9mn#6)i>l`v+|-kaXwHxa)m#b7-M%}j#lXpkQltX`>1qh&aZlo z^NIwAcV-HlquRTcm!TIu31y?wnQ*f1du}gfKrxM}w{kq9=YIN%3Pj(Nk{}m-R>SLJ z;c9Qz7Q=iUG)K@n}wxph?6Z5A4<&m5AO8sYU zrAif}1yvozoi5)<_qMN$4#*|-3O#W7omZ8goMOdk=?h5^+lA}m{x<%U6IV}<>s#D` zPwcyQ>~M;jkOsPo{OAjHDnG8ps%-a*i&VHIE+1<4+jd@8$Kf%eQn)=M{@OF8Rp$c~ z^NiCM*ovLkK)EsXhIIrIC8Y}FZ*NA6EQg<`c(CxVZHGG%Ng@SZyz71ck858@sV0Eb zz>v48^tvO|_T}04b4ZD`5ncZHMQVDiE6eEXx&z}S4=36*)r0JRVy=6A5{wZ$cF5)V zL?g2QT=G|~`xjm#dv2;wa%f_8k;xoC9M zqkM&0cfCT~WoVd1l185~p6=#Qi=6F!&369H?*uF}vzIT1)1&RWO@p}^!QvMa&fu2d z&&Ri91M;|E86Q1x*@+dd^gKFS+F))p6aSQ}LrBB;x%haRR!|DKy>s9FLmbdUkh@W& z0@j*qfE#>JdzcfT$u2m0BiuhuR=pongx^9cqDRVqvmc?-6JzlD3h2PG!C6_^CR`;F ziwC50i!}1l(RJ@w`6flv%|EnAPrW9FK9{&SL5Ys7Hn7S+kcl68LYs`*pa$x3+DG1Q zSroN1-P_k*lv3;p97+1K(Rf=Mm4)k?`$0p)^HcreR|!sO5JR#8>e!v?#Y#Ga1GWj zS+zH!PH!Plv4o~#Vzk*J1>Y|8`WBaKI~_tjmb~H*>TN}4N?Bzp;`&xgM5ezk)d1^t zcQeg_9w2TrSv(HRcjt4y41}UUw2$QF=9-8WZ@cA%(0zjHv`ZRQ2wdn3Jl*$&^*$(P z2|4k{pXssCrdnUld6%0{^TXcbQJC22n{Rk;O?A`mRW~Q#lvt(EuC|#NOo(hd_7;5w z9_z`o&Q_vG;9?Nq+PVmM+v_SU>kmOx<+wPo0jEnm$jE);1@ZONDc5>IeZBL@FqB+i zaX{=V2Jr$%;j27dVuH}@Uy*FcM`yZ?xtiVlEa>z46t9+_aI>-wZW^f?q*eulMs77! zx_D!q(R~beONCb@#?RbSt(qp4c0H6>WI6eQfWo#}%)1kaB;l7txC0BFWeOO=Q6@-2 zspaYFh4N1?V-I50l$?^sbE|M$NEPL=Wr^smvw&BLIXBm7R?&Mc+ZzEm9b;;odi8=z zl)XzWDDt3|xf&fshdjD-A!Uk6D|D4g?U&*%brDmX#w(3_rNYA}@Y`^Dw7-`tu+UHM zV!OvAhTPvG7cr$KRY|>fvF)}}Ft0oG;k>6#tmYb#<^Ggz?*$Px2|c|`^t$rm`-Yq6 zWu)jb1d*YuTN8d~SVU&UYX!y^UN>?A*DReR@dr^+=#}NkG{DVOJ^gOtghE4_*_D8Z zpIm01hpYYZ^uH_L?y!NC2((H3B2w4Co7|L!$M6shUVK<6_gNyD9SEX0JP=L^4h!Lf zgG0bfFPDJ=)Q6m<@`1jGF!>M5@;GnjhNMdP(T`U6ta7ZIN=kgVTZ-L(hJ{q&x4fUB zUs+C%me~?i{iUZXuAJ({?Y~pcmSWkYJO-#eUd^MU$0KSfg$wF}s2?-WTCR`2hzg&; z9?RHq(LD1fi}YNV4k|Zyiw(BtO8Yq@#L&6?*0;DVJ#J5x^zhbd;1B1R*ZEgV8+-b+ z1g|+|Lc($U77q^#<4LbWIL4esMt1WF0s%Fs_xE@SneE1PbKSPd@VJ~D4gFl?$s)}{ z8y13JD(X_)`W(ph%FmO7rUL+xy;qqV^Sl@UtKl)9@1YJ?ZjQ^$Ad2 zeh>h*+RUXL!Y0M9O#Qnj3RLa_17>@V`U6%a|eEor#! zwH7!cg}^;o;9}7K#dhD_(MuCIh3 zEJtD>Lldvp0w_h*$_(Jz1SmK0*f6WwZTaWB0E#2`oZ|^w;LXmifbfoM5}u~%sk5mG z1fiC^X{nLnS6?>?P`aJ1P&JqzB_ENlaU@r~T-iFgVo;D|We`ue-#)+^>q=xlc`eqi z99U%bNaWGvVjwW~g&g$#WQ?7#o|Gf4Da^|6J<6 zt|(x#q=?gdi`ixY9ue;toQdi)UnsZvPXbkiFVP*D zK3jV|7p(yzTCjydbuV)1Gd?qyQ>^3m1dG3?8zoYzUWUd`@t_ECl?kWc0VqnlF>X9e|W-w2@5-dJTZ`J=BDm(m!%y2pGu&c6BD; ziZI!~m^{>Z!iF9Eb9veH*@xVaEYXV?IDU~adB3AydSN?`SU<6lTtv{r!8Qh#i*;&) z7aL_>aUChV=qQEI`z;hkc;mUiB?CHN2iq;Epb*jf&@SwcD{-%FcJFK8CewX<=u^+U zr2WPB=g)cD?bmD6fF))v0SHI>c0VMqJZ4EIK9;}ke#~u6?%`ul&X0&|J1$M>e=j ze!F~nJCz6cQH+EAM%Anju!rmnPc7ALt{BbjjAqc@UMIY-OjixBrfu$apD;*t;_pJM zqYVL!&wj^F$1Itd`1yzahaTrj)|{Wql23CrD*%3x(`70O{&gp+kC$|&`~!$)*-W#b z+_kX**Lk`)>xpxm82~NyYd7`cnD`$ z>qnoj{U#oAZAe!2x;`g}lbzxnkY|ol`ab2h$rs%-aXPa9TjVWgbsF<%H1qoq3ha^h zs$=EWnlx;0gLN=jT>^p~lIj5vr-I_=_S33$ts36F9aMbz)#vDZAZw&2FStywoyyb#bJYx6w`i=LP&1eWyLq&rW)^EP%FjkGYTLr~?;AY#0GOw znouHG>Qvm^ittwUM^Z;Ml*`3EE=D-YUw;TaAgxr&J_Yc2e!eaXokt4R!rZkkTjv6S z2Ez-PHwpK%mlBpbMK&m>gk>am+51x|`!GX>k_Ndyw|{|>8yLJ!Wo9-MPxibz(P_Nx z9vP(>`StncX18h(c(Tdt!!aPeyqqk3gwO8l1(`z1YFW2qcsU zhs3Xo_$ANM>4VbTcY?Ai?5JH>&JS6L?-__MQ=lkRP@4K%2@m%laecySmdFFne=YH@at(?2MLit0xB=Jnr!Oi#$GIjVsLZh_;AXn@hIA-{WKlDQ+D(c+^O3qG2w zYt}uU*kD(sU|wFDq4lcPfz7qFtY4XFBYcCBEC$Cq?%p-xWnRW@;vBDGd?MACJ78T> zpGzcl*su?DmDL>@^9y}Cr8G|RY5VnEejNA2<-N^Qg@g48@=G7?p-ICjU@N*EFk);3 z*#F{-&r|i3>>UCJDks2_V)mGX)wFR14m{B*)P0x1<93X~3O2+^@wK-FNICEIOJ^=# zJn+H#j%u}4Pl+=>>4FdN@uZ6V^lRs;4y;pg%Eio{kl(Qw*@R!RBn+n7dqMeMfQ`kv z-4t9rJlJH*f(poe%ya7Dl`H8YAbNRtyD85@#y|N+hcKTtFJ8F*(ydz>q*LyhOw9c% zDo*_EDLi@D20r=7DcqUK@zF^VDub9T$hn!TQz z`X!abEi^CYKKg{aKU{vjZd6?9ihL*yi?wHxoUI*zlOCaS{L1;|m+yF$I;_t{aDRFm zbMN4|kdM{ogh5CVoqc--z2rTlr9g;h^U^C7=L<7l!z$~AX_O{TyG?}d$VnZ5d)FFm(Rmg_wu03b1bns0CGTR7H7sNZI>E#+VaRWPdW4qSUyr zbda%PD2dp%W)?BsqfEpba4r_$0Li_I&d$96U8V+*t11YCedM-cW9{)l%ometN|wR# zuJiYh87$c(~!WupDLmE0$X1eF_0#$&P}3FrCdh3ns55=z+| z1j{B(WZh5k8PWMyZOx*|+0$+6k4iTSw@up}bzS-{XUIs?vLDX3+Fz}{=O|Nyyr)Z5 z3^L)2cd&e~Zk0ckQ62az*wD?_>GrfZ0&ji2WAkaboUs$`y!ib54cKkpLp7VeCl1xB zm3hMjHXHa)xu}n!A|J9 zc2;r`n)##Z{ZUtq_l@64GjJ}Pav(4_$Pb>f;AU`}hcKK)X<$j%cw!&5i`eq8RBCZT zp-_o?u`;PPV3QN$s&_yJ26DDP;dy5~Od1{{#C`3|HAc$#n;s+K;{^PE-fs?F5Jolf zAanfo-zs^`h+hhP{*Yl#kIRU7Ncs~@Omi>25I zZjPQ=l2tBAFrq1v!VlYUkn~#Lv1gT)P1+OBD)V!t2ixao6C-lWbA2UFEjnpdK6@77 zEbncEUMb?16n;)M(c)np?TL54o&ll) zrdlIkqBLe!TT6OCRN#b|SIe-M#04iu+QTI&sNXTymQUz;$+I}yOPqWi23z7zwm1#X zBu?j+cr%S96rwU+GrJ~BF)KRi{=IY}!to1Q$wRw3_U$T@JmrM)^gyR$a{4-)x z*QKC3dwa$X|1&%v5mWkwYFWtW$;=SH+O==Kv}8e7Rki~`E0Q}P$S zKEbv=u(TW%;EMYA3qPiJ@l}e*jK6pz<=DvziDbNLaCTN$@2JWwsC=qA(l-0p?;?V? z7GFb5Y?M?zdrb*9CrKGM|l-LF`9- z3~=YcXOSmqN5$sxpErDySeH&8JzLEDq(u>j!VfEinghJZgwt1%&{%zp)q2$8njMpu zh!XbkZw^n|kDqLpXvsRk2P|3wPf|%8l7udJZOa7BPndM%8Ae-Nn<)eAG-7vMaqte< zRmuH_86)Zlz-1hvX2fnMd3h2NI#!t$bil@fJvEPxOIn?{?+b#Yy}xzE_5+O6HglSC zf0FF^0)`4gaze?bozRj>FUp4j$k55B_S+)w1Ly%H44N_v;{)&nRW(cP4XUe+ZTrsB zY%KWY?CBbnI3J}&LHQ8R69DH3y;~tlkp$DK3a(87`IwONbqNOn-aB=WP916+(9-eS zw{nj(4nUR0J3eFYLBPN26!^#JWXRkFXu;ML81VeQ#J<)4l+}$m?$7f4NJZ5MYoe_K3@aBglVv96y*CKS(}5NIpOKV}J0+I5k%ns1+_> z!vE3QcIaaf^K7nHPl4%Kw0a0AmY^S{u~kWxDhF(L#!+%@4M|y!%ora(-?lPDPnEWuWt@@V=kN(M9M(T5qjL^K$?Md z2|aFksxPxYqjV8JkdQaqu(8qdgrV3~+crZQBMW>w`d9PzX-?gY zjIH?D1}mB8FQ&(q$J0YX*z(j&pPLWK5yKbv?2VEDtEznxJ2N{2)Ev~NfQ0Dmpp9k! z_Xl0nV|#ne*T-;M&I}O%S@Orp!q*7$dUu5$biMeJq0P+aS6@NB-Uvn+5rnk|A6b3n z^PR8l?$}rn2SKOem+rSpKpwOs$Ib5N#q`Fszy)|0`*2E>W57PZ{tkAH2nh+H9ZIB| zLTrn}h^YasBk{FJ`c3PNpMo|9$mK%yAb0tiNU=SMy=`*2oE4-in25|bDPTJmj0dXF zg(bgyAw^lCDk@As)zTN(B!>L5CDv7;cJ--i#QpoM;H7TXGj6@<{q}t&j)MXBVG5jc z0^oqDmYwU7zJn0eKu`fRiM)b>r#5?hQ_BYYq+$MJqs}?+Bu_`ZkwUBNSvTJt)t~ z(d!F6Y;N)D!Gi}m$}rDiJfSNf2nq6??Fw&A){G`4C7EF2;^PCcGBK zhIB2l?8qaY9hSu|jp$EpG7t;ug$MWUs#^W&_O3Uf8U_w9hAz@VQaePNUD1<2wJoX<{H5eIS@bZwlnGfZovM+usD(e7xwIdoMC7I{DrmsFfzti r{xGs#i~3)U?1y3f&D8xrH!Qk!nUlG$6Y=ccJ>U<15pkhF%O>PsGJCmR literal 0 HcmV?d00001 diff --git a/Project2-Stream-Compaction/img/naive_parallel_scan.png b/Project2-Stream-Compaction/img/naive_parallel_scan.png new file mode 100644 index 0000000000000000000000000000000000000000..db7b5b354ad4529f79562f4585a33a289a4cd565 GIT binary patch literal 41328 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 KMbmm?H2y!II$z%a literal 0 HcmV?d00001 diff --git a/Project2-Stream-Compaction/img/naive_parallel_scan_visual.png b/Project2-Stream-Compaction/img/naive_parallel_scan_visual.png new file mode 100644 index 0000000000000000000000000000000000000000..c1a18ce512604591ba5ea2a473a3156c5a25e218 GIT binary patch literal 157579 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�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� zfiO9_xQa_kO4j0!kB_f5BiRP4{|)ZOrJ!I#Q%(al$cT#v9DON8umUy|AILi5_nj|_ zfx60xO8hST%g8Y4V0CA28`y5g^= z$OcJvagq%0SfbFxkb=tdY6`>`XWlUi>BxBOd;CaDqJu zwCynQB4VvGK}#duY2eUs~TgoYT?q=w^JMbl<@5v@`xs z_{Ueb(JuWWkwF5(iPV%py!FeHb#YmBlz$N9&tHT-j(hRFdz+{=dRf{|?{}=@@DMrV zECVUekSIeBZIAA&E{}OValJ^B=ZuKFtFPO8YbVtnKeJe5Lf)cy>R&DE?J@vVB!49+LQSfH_C0pO6N%Rr zf41Pq&5zkSfcsE~>q%1$c6coilul|o$c-Wn*<`j}_{l2xZaC}#3j`Qvq z9xa*(e&0g08=+-GdFkvGOvBMtYDi61Vh%_|`D zh`E@y$n77EHnc}H7trH7hT5CEpKVUR6t?WHNFLJ6O+Y#jt~M{(CWqMCm`#(a_jvAw zqx1odoP2xV%T!1}e_vlrTRi5oEQoIp4Qx)s0PchzW*H|i8TA*fit6(H4GSI@Mn<7o z@zVAsy2HI2zw6nhzjiN?m4ongnj>`UzbZhdC}|(hYm)MTBaTD%7wWpikg)WiLhwRR zg^cmXd9Y+GY2nh*pM5>Y#-IyoEZ`J#qx2KK#=VM@t3V@L^a^vVbyV;r=+;kU)}}U{ z>x(9t@$SjXpC2AGj*TF51~(JM+i zhG9Gi02bH1)!U!!QLh;^319_@Enk-KXpDlmmYe zjE>8%8uv}{4@A`6KXy(>i;(QiSQzHlN{^|XaD=H=r{f24f$|cPR|zRcbVu zoqCxmxQ?L;E8-xMzMN72L;42SQ4FHPy$MtlndUyuM`J=wcJ97nqNXZ;`ujwW$WV4f z4eFO7dqQQRus`BxU=g@1)NF02Yl&7rWRJqD;#x*$6XZkQtuuk-d+N1D0}?fQC^8X7Gs?wE4NPW+gJORSN^-k){sY51 zBp6y0p%QZS8A!$)Q&u*v!PYW!~WOH@;b-k+qkZ5o_kaCvd3 ztgR}!;5Oj#)CnezQ5wG~CG)nuh@Pr`cKFmv3H@KMkdHkYDDo6c%fF@QZN!HP^#?qX~Pf@tB9Rd5bbHNq*!+}-v zrv#4QnjG&Z>Zpu`%TZgy19SrRcsrgk$V7eh`q=Ae%nroq33wQHMpEgbm=EVBt1FSA zm_Ah9`dD0nm_}f&ey)Jm3~d2jGZ)MpaV?P~x53Z2pZXTrnpT}Rt`Hd67*2V~JK?G% z)=Md#&q6m_o_S|*N_9ZPXMLkm$@ah|MFIsgBVq60e56BF;;ho4THD<|k@c?topfuzB;#JIDoLE~{by*K&;JgK!N~)!vM=DH&3Dc`%CZvS z$oc^e%70qy%b7P5hkqRM;BP;`4*Jzrwce-8$10(J%z}o1zVI)~(-P6DscF5-5}9`i zG#`ugy`p)=&}%IjNnw=Z&;f#izDX)f^W&J*knSL?7gpDQljOqCp4Lkz68n0S8_bGU zbmh*F?tS|gdMf3q8|3)j0_9#V!k@iUNW%*phbb}zlya;qA`)g-mwmcFSlZaepE{aE zw4yyQ5Aw(3H!J0HlN7R1{q+76?%fC{Lsse;UWe0(IQhWAVliZSs45dC9a)vAow z_lPeaLtukbBY^>JfqR#i6nWgw)_c7chIuqdF)~v0Fw2{xg{x^*r3ooa?k;PD0-ZHk zqw#FEprYEn#2GWEfkUFj#Fk9$7`*9aJEL<-v&m%e84)WA?i{&v|C)%DrimXKM zv<%Z0dehx3ID9GLiL&Jbr^?N11%y2TJ~lH?tD*Wrk4BFs&+`vyuknzdX_Xq##H^!VOj?S}3w=TEQ7tzISmY5c^*T=Dvx6J#I33cTW z?ekCokeql3j`~$SD9D_RQ{u3R>qVmQLJ4bO=4R*WmyojjM1)#VLj#5_CQvTNw_& z;@`EvaIQXdp1pUEW4zY^wRgj=N4MSf+oEpwy!SmytceIw!-*~1n@v}b>-aCs2l-PZ zEU;?UkNn{{?cVpGAHlKjs!gmxjBfNcaMuMZPO>^Oo=Ld5xbUEH4&f#$yM%?7gAeqH zjBIM3n}n5}uNN9@Q$Z-$6`GQMXhtH)nNLrfYx^sar$h6f(E|jX43h@BN6GQX ze{|4f9-vwmmlrGSkPIcTe7{5FN!jF2EoJ-{qYXm7Py7q%qYPACP8vaow$XMNR2F*= zLYeoFP~`kiy#2NkjSz(IJCwI#A5rA9AKN^fFGl>!Ua@1fKW?+3?FEvN{WHj?dGVtQ zxS0Gg<_>|sLj{-c!y^kny-U66--rg)u<8BO=dG%Wn}N?+G%{jPIi@O@+6LjjlR0i< z^5Q)nSeE5hsF!H(4|e;gzhLqH&i`-xvHSu-?VseAKzw{cCSu(6Dr# z^-Cp9N50$CD$cp#RcsHQSs1DV7Ih^e+n|?VVth|L0-qLuxa_fD+!DDAd*XwZUfr7` zZ+jkhA9jB@ChF33pyH@ww*;48YspDkMC^_EJ=d~JvfEL?Yg=_`jq%dxqXaBX5*VyV zws4A^SVR!|Au_8s8t|eHoaa^yvkoea(TP%sg7+xPFh*#vf+Nzu*l<5((EP>|3Dj8s zmS!r^j_i}28p-5Q@BYcs09oCjBCk72+}KB=jOY@>MuUF#7JI4~?mtWa``^;PiTN}` zx&k4ZNsdpr+;(DfYAC#-YO%{;7Kofq(@$(JdbT8+`8lWJCfyiDZ^D5(E936|D@Qxl z?tmlHU*DG5S!8heeWjjza80R`yJm~;z%@JA$uULBccmS7hFp?A(;P?ryK>2^QI|EJ zTa3FXfvi}BEPXKLMrE-dUiQv%iuadO8;Xn1AoarPaT_fQWRD-ssyq+OJnS0Yh#cC; zKTC2d5dfL0q6CBns*j#gTtzONB-!8nPb=D456l`&kqXm7M8P36L6f%4Oigvo%45NH zI^TaKv_A(|s@TXgQ>iBY`%KuPQi%)Jx<;JYBZX4+Xkw!xM#8rrbW_wqJK+N?J^8F> zR>*w>ukmgt{BLikY<2B%Mw+s+C~5U7D_i~^oXN?m7GDJ;?=luK#JRqMl}-={7&;Y< zH((#MEy{U3I9c5VYsJdEsXGAs)D9T`u6?y#T|txJ!^bC684bf%!B zi`1v<;x8z4(#QnjP3*o5V(NZ=#rFT=(D5; z_pe^PivNigFmj_&l?!jU5OBXTF+tUSa7>o*$_Qi0s9JkXMX9o|Ly;}RM|)n|$5}X< z_W{ZGhp5n*lcAd-stZ6@h) zl5H=|)zNO;Hz^LnyC20y70w{(M0{t^dXZ=bZYQ_mhk?@{E3Qt~!$j3X}Sn zXUy*6>gsAuHfM%)(t~y#OC5)>oT(hjYu*k)CuAi;-w;r4}hL@99 zG3?2t*=tH4U^n3|WPsJLLdS_GYv;Q)i$tBh$NMnx$a6%~@403grU%n{*vE|M^lu49 zgU8~!*niYk&QO%+FZ$GPvO!Bgdshu82S!%@vu_rY{%3>C)i(MB7Lk;cyh`kN46e{? z;#@rabQ)^}mgkF`fm@)yVwH|1$IILoc$GTZ5g@Tal0#g?8uGGu;7(<6$0*uJ z*{#Hly70nk+PV3gr<^BBq)6T({O7qBUQHJlm*(VbHyt(?K{r(g zHxxW)g7Nx&Qpeq4!`=Moy9Ja-yYlkTLq~_~mDNRePm>1;6PdXOudpYqn^sh%bK= zpRD1$?u^7pu>$T1u41)Fb&Z&tiwl`Gp7YBxZ~HmMAL@c#f;QM@~iA19@z(-J>P4LY_xl(=tg_&}U*k(oR2M$|C{)7=11j#)WjMaE&HcCTqSgC=Zz zUw_r}kmWo%(hw{7_g*cI!$`P`w_b&c67?DuS9&s=$vTBtM`0z_0(ZsBxs$TDm##;) z>YBvdWOH)(x;*%q{O=}YdY~O>$Hxi2?+dG(tu(Ck+Gf|5dN^>fDj4VU33Bmh>!!zi z_!CK|yZSgUdbhbHv`?K3J$K6Z@I4Z&M(L_xXvL;qy52#2V>~D3FTa9exi1zGJUglecgyl)auSE)Azm@R+3+s(*64Cvmj{sRpwpQm{7%o{M!NVv?qiP1yjTD zmkKuD_1t#O8%^5AzLZ0B)*-(FyUe|l15?A9sStJD-p)n@^-`8f`y*_|X%C4ZT~_qy7C zd`d~w_PdT4`kmkN4Z7sW6`hiy4+sy+{~P|7)iOc6;Jx_cxiwJ>%;KY=CEwezyEg0c zWdf7OlAZRd)#rQh5q=lEay8fbZ~p}7iFE6>JcY!kj`u}hGN>0cfg4aX(aup#f9zi0 zA=;sFdCzJNwFiv39|gP|mA_M~53lrnc@Pal{nCkIA8KF!2LQG zF!0Leqo7j%W?%bI9=x~C3hLg;DeGGT-Ur>hrN)+U5$}6ymqdhl(lhOL;j~#%K2?HC zqubhOq+HL{3A^?5Njps0gZK`S*$+^1aW>JLDssrF<5p$rl#AP+5e}v_t3%UEXYLRf+8X=3Mc|X!BQcKnIT4(*>#shmisP)? z1x>EN#3kG_j{`c@l6BmM; zg*p5#PYS{N^^*i5?qj(;2;K%S>ypj8f|2yB+7x{TeuiPyL%%wDF1sp?jY%b53a^7* zTa^`8fV$3MvV{#CFcT_sY~1xmeKQ_g>tiG5@BhA7eW&#>_d1tgy1m}K>hJbuph7=# zY6F2?agM7ljmwuG>j&++dXv;n0a#L1Gy)&FfADfTJzr;NtI#!EMftV$TiW%hZB22k zXXaqN6})xR{phoMzl`izA;VNS5o?Nwg7VmdTK3~@G9;+bvA#Y4Ax32*$&(9RoRj`Q{LFJ`c& zt*gBIW^IEAdt>`GQF8wcd#t{Cb#_6z!HcK`{i<8>2sjhzg(X;n5xZ;if$GvZA9loK z2n!hjQ4Dj2uF($vh+0c z+|tnQfTw}}p=TMmz-XYn-G!gLSy@QE&ZVwj02Ge4wGm+QorDz?vV?!&jkc?P&% z4HMiL6uoCeEuR5~n(NZSJrG@0*Z20{`T#VV%qN>WD4R}JmSBM%w zc$bhjX+#3um_Ih@-T* z8ZrQFD`mh=5uj(R{OUf60REnhssb$he<~~VXmJp4=T;PewC}qGa04EB>SpkOM=;6h z?s@@NGQq`7MqnL-f0jRx0oMxQ>(&$iB&(|snbUyAinz{fl>ii&o|1!Un{5?~S6-FOwIJW!^Jf*CIz@J@Dm z#;%gU-)ks-`}hIyiC<`H08WG3BR%E?JaelN;6?V?OX%vq2a7b+)VZ`vgGFYmb6G0> z(KWRen%97(KU`EDD`n`ERysUzvIUmUR8zR31Tbk?NkuWUQ8Mtbeoil-MhGk)=Uf#X zU=6L>`R(_BN%M8(H9mqx-YS^7*#qx#qR06q7+8>!@S`1o(Ka8=G+Yq|khXYcf-(W0 zL~-*k0S;ml*q#R#05v?${(ms32~5kJEpilCQOOX`s`q#fo01H=@Gz09s&;K4abo6;*0Wki6UQb3D zDARbvBoPU)aH1WDHpBnR_1Rmf0gErG;rQkN1ixj35&!{+*vQ=#25QFVx|;v&nq6K2 z{2RL3ivnu^8}D#_0$&sOcUa17R!#wrbvZ8HoxxqtEp)kV0_=8GT}rO04vi((P@hx7 zuNnp(W}4i_ET9V(!B4iH{|+obnfB2|7U24mEN__rKHm3&>K0zWt=w3N>cxSznEBx9 z1W=}r`tZy(0cNv#>X&XMAeahj5mN_P^&H+;tw={0XZwe3Qa(P9bEfXCePi{UBUZ%x z{IB>G+%`L`g65_QtWFh|b93QD<|?Wy=k42$YOT*GI^I6}HP_0+Qb4j^Xa_K~B zH~~`CiV9XoCnp*U3yYJ(KG&Bmowhb1rTzVH))5qUNjPlddU|>TD=R*oEJog}t7m6t zSwOCV#V6fH35-J^NbL?e!+N&SzrS}^>}l`yfxHkCXliP9Q#=aIdiBFRdxSO7GdIdi z@=b5xVIcOR$}hPGIp&OGwpsTzJYPzV;|vATk$m0Q2vEb$^5O{XBa-%&{IfF<#f+oU z6Mo9e0DT}=7u|Jj^{FN6wP{i%3|86ZH`+>?Y`rYVIUd$Df7r&;m)rEqKA$+~_fLQ* zgWH;;4i^nDqCy4zJ~5l zvR7yPHwLWw!s=Gvt^;yf8F={Pax5NHzveYcX4cRCiGhbX*Ey@2>Lcm%f09D5syF4y zE-mEhrA1O1P6I{kaA0huu|(!VL|8D=C+Rc@cvM{+(74qaR4h`B9nmt~?|;SlCD8@< zK71Np7P|o2i=O^|NGL{yO{>>kq*VqF){qo6lm+V?v1&sQ_Q4wlKUzgTRh;%X;Rp|@!Fe|?dKJ|dM;c8HKE6#p&0YbKDy(A5 zI$Q=0@DAwnPz+aFlNgqM+l@?0%_5t-0vR?sw*yp8tg@Gv^_rdcU*{JT z0J;}IKUaHud!5~ifah5k5)udkWVwzffPWxNyKjcmS?w zG3js~Z9Nc03y$rB9M@s-o6?MkyUO;QXo7-t-f^GZ{Z_*3yfApf2t#anmDXP<(dSgW z8Ck||UOE37z2;|54)(Gec38huoMs{3sA{{?;C-G}p;anNnU7uZ9*rNFs5{SI!0pE2 zX`|EFxnBj`s9b+rzbJci$VDwRwK<1e$ z1HER^H?(U$F$NiyCCY!VSdj!q=hwtq4d>z+WFMokxKq7omPu)&PRqHw`+zGA@lGK+ zD&Fb+FuONx-{w;weD94hL!t_tE?|_aPX4`sen$ z0doYNgw8U!mRFsaVwoUB?;LZO%H||?MAC*5m5Kr9*mx?Q$$@zaDimv;MED4f`Cuva zt};K8ae?6T!nInG3R@@EqK0xFK`$3}^TuWE--#azQL%w8lQRoLB+B~Ji}SRX@g?1F z8Jj<`ZIO#14C_-9X|-+3Ik`(PCUrUZ;Irtoy%k*VQH8T2AUj@pvyMJ?3`)ZTaF!pmAc`*s(jyt|+Jo>*FbauRUZcLMQEebU_-G4)|ZVP|8()lI!;Uksy_w=jt*$Rb}`6w)pqI=d(wQ!ii(9r&=8x? z!_35#3rL8JhvU%gbqAx>z;3Uu-aM{&9+m?oJ|A1q`uBtcDInoT0eZ8&rk9uH0cjG_ za)Y+T$;$M}-9Qz%mgA+ySdq)*vGE4mC1g-!xg5Y41&DXy9U$!4nVDB&SpXx@^WqQP zesw>2ZeHG-i`zMijA9T4nXnxjROx1cvDv#W%F)AEX9SMxt)Wq{`+3m(%!)QBWN}g> zJ9e|)FA0g36*W8cL~$M57m5@dZW_l&ygsG2qWb?ZcOv7#0thoav_or-t}R%tRFir3z(s|BDTMz8`joC&Z)sw>*K0sueXZI81d!GqKOn`_O zt;}5PsG`^l;pNQ@w&u0BMprJekSK$^Iv>IRx=I)Ixi4rylL8G^9(K8)Jdh8UClfn)JrkH(~4?wElRJ*zrb>AZr2` zex$9_V3W-56A%z!xig#$XU7bLX6*e{Y)1%Z;3;Gq_Ns=#p`l>B2EP~I`>QFXeE>27 z!a>SYg{}9JJflctjYEkz7%(Vi1X&~6Lj=GTP0|)Fm!ES^7>5tCLkM!3PZ)BB(13r8 z#g|@pzwPRN_ii;5-!`g1o59%p6tceo5A-|(J2!t+b~-BS%%_tk#)WSau2Nu17*dNW zmD1+HplKWC&WdJzSF(Yl;uw+A4C--RF-wFYH<~so^eNq+ooD1rJPS=Kkk+p(p z4Qc0eZ>p(THVvKPxG2yXIBYa-+Y8KX|0BcNnS-0{jx2GGGR`aCr6x>@a@O^0rkm33 zr0EOeHpic|0Btb7GGYG(tJ)BR06JFEf)l)fGq!guSr2|#JCSbXsxG@oQEoF3sQxVDr@AJiUwPEQV?Qe*tIs#EY5QzKU{CD zh!HWD=9KAVCXb@Y*T&dvNNNIN&fRB(z3{IsM_lS^=r`)JwZlEer$*+sfxY^_p=3M3 zXBzEY?@X5;x07nS{c*P^+uNv)x~@L45(}UIB$PA3U2K42{_&OUbKMRXSJ1Y- zLddKdqBkce=bqootse@STaaVk{%y-tS>)dSOBK zAA4%d=fnv@?k@|!lH9ccbZrqCwHq4(CzPpP)BU}t@x2iloGU(5y!VWw0sFKUNWrq+ zOL-!UWCTQV|G0Oc(ic#B+hT))7HDxA(z-&p4gGf{9~sq2B50i zFKm+!)%V{M0rzn>*|!WIWxUI>zZH_zI~>Sr7hnb1L`74>h<*Z&qgO7 zy6^~uBetkU$EEy0gbvpR&m?`Z1?(y}FI?X-JCbQ`+xyUEO_T*)eJNeeNwKJ06JvjV zrwAnkyad{$`a@eMFp+VEgdX9BH1d`XFmFs&6G%JrtnSxs(FB;27=8X9{&N52^t=8WiFWwp^KxG+Ancon?x;}`pf zcMLWdWdg6)or03#`$Y#n`_JQF>;_?>@qCyl!yCplZ{rMdG=_td6#I&)RKaYMHzYl{ zzizF~`GRbMk;xJ}oX^i2>|~j^1ofT9zg+=bqH|A1P;2lg&S2uYr+|E(8v75cF(M|R zK%%=H(uScEm;#2jHK(3IaAKjrB6@QiCD|p!c5Ym4s3_KHv{K#3@4Od0wD}fDW!)O7 zf0V>?$6-FwMD|uLS-lNKhx-sXn`u~tRO@xH*Cwim-E~>b>77*%PbOoJ*iID{gWlTb zLrM5;kGJ}jOAIejB%yovAyH&tuzydmz96-L_e=%2{{ezl4z}7??GAqKaIxnJ?w%E*vx*iyg=k0pu zo_tg=VycWO=!AV6JWlIsYGB%>T~)9ApAUX)lPy@A1GM*k`hGeFaz}{&q0!qT2Kg&khRj4FC( zEl?|0LyJoro(u-rgMQs{rJ8+xuO=embf-n+bG0iMF9taZOzq$cIh0{?E^9nv`4w;@%*9@Y&tdsUO>h?!e$rpmHVN{!8Y=haj`{?k4QV z-aBN59t%py^6adXD69+1^7--ZB7OW31rxIX3Wb6plY4<+Eh=?>Em@fF;|8zQes>qU zc*@r>Ng4^lPUco})^z@g;CoBz-vG161S?EtZg%#QBtj+K9cf-!Y;^Qb>y3L;V<%TP zH=ORJueQfn&3yDlBo&cWyg>KZ-HME9?3y)J&d8@fhc88OtftoJFM7ew81{)^X>N{R zL((5T*hl|jm$NQ}H$52QPdsvedmUgBb!AO~I8~Tm9SFevtkdql=jb>WJ1kXkRfTBi zK2%MsfGF~u#S4SbNo*f?yTpCw^AVMi3<0dIMb2JGu`XmRIwk56{rirH0b$#-pX&Z^ zBo9Xbmy~KqHaN`@ov3jxj;r`qE~E{j0Bx%eGcQ~=4mtmGteO1B4#TUR{nARS+9G!S5& z9~1Cw6~`y1|J-bwVcDqKbbmSSO@PJ*9dRi8o{OQ(;MN1%vAib488%|?OG8u-N)gi| zVwiY2?0AmEBo~swws{7W6=l|*PTZv1sKruqrDG>EguUQf!D0~h-%CrnooG;edSG}i z#S_pp6OV3y9np7(fPnA>k})*QL>BgPCxp7@-L1BI)b63a2k9{JVXZ6s`nKmGNjE#1 z#Re$9^Cdv#lnf3ELY}X4KR5aFh(}D!xE||DcKj-n-}NX7s$Vok6DuShEBgE^?|mrC zs_%m>xGT=_vDEOXBrg#OYG(C|q`flRe<5OFAxOC)l7MZ{Eo+q?0VfChrC%)t&7Ofpi7a-_Pw~P10PPHGvlo}3>xnf zW;LtbDi`tV^z4mcL2Ah0U!v~B23AZsSd@tt5Eyfhn}NOAU-kb!=_zEJTu{my`}<+2 zp>OioQ0c9`=q-xeSOuX-#0FQL`U)Q>;0(yq_>MbSftC8(YJCc%I{VZDE(6a&UlEne{@BFw&4e-sAe%Ct$G98#!t?T4%W0PyDjr(6})R4Qoy= z3Ie;Z29HcWz!g**LU@MUf$Q8%3=<%v5Ohs$ivlxqijQ;3#C=tBM@@57_Sv}ZY{xP= zSL={Kfja~%i5aBh3-mUj8bQ8-p;*rb-sh6WkDw3l8!CVqu^&5epqK@ylg$?9<`J0K z^8zvyCx8FG=|m9k2DN5E-(PjYVU5p}Y6dUBecMY*BQ2J*vty-lMghgX#m6YXI^glT zIeJ!GGa7*EJ046kfEB*707Yp=FmytT7j$}#)Cb(x=Dh#uAKC%_#epA-IE9#8z)t4} zIFTfjFbk_D!I%tP44Ikc5g%D6*8o&|Ml!-uge1l=k0*vjC`)gInGIbC^xRB=VZaoM zXnaKvo_Z*rmBos?tQL&9K(1AOU%r&+S(m*GCvgP6#=+Tk+q{id!|kznb4a+Vik>-P zYc@Z@uRZ#1gtK`7cNH|s{=JSbNMj{+;N4m$SQ9iK7zH{m*RPpM=+`F4-qjyvC{zjH zLz8$nwZ&V5AHXfSjHqT3L;!@|ga9-zVITho1T&(m%x;b*$Qh}Nb*ruA8=hPlN|sEu z7{57XCBM(LasLfyf$V)>8IupPYDKHS%b*)D1IIoF(P4$m<>uSXiB!(zzP9DD)dn#o z#wJYA&a&-qj9>=6rkWalJsQOOt(OCosfg&Ef&>Kq(gSI(6y zYk_xIAZo3ygGw}ivWu*3ssN;}gMXgM2~<@P>uAOh2n z5gFGR-5#WMM6nEu3=b(N4u~9>@k?O4)Sz&H6@recB{fbDaYEWK3B@FPUA6Q4a7wU_ zk`<3QkB;aK67bi*iuHSx7`+?RY^Tmb1HFQ>gG`wjKrSHSwwpz32s3yuMbM4acA+L% zqg;p9*zOnWD9}HZgGRuL><%}J`)QG8YN68a$r?P32q#h`C|0X!==1aWq2pyK{tE{G zEx)c6;mBrwSEtK;Bwb-_$R0DN&|S?l@^9H! zum6q)EYq+UJg{X=;Q;X$4|AQVqHhu%(7v^i(T$zl$P>_;Qr>99@pN3U<^bP`M5SM! zhAl4MTyglFwlekydJuRyM(X305jyN|dS$ldY?^izYy7M)k8BNjN<-Q8+P{u;+Y+GL zdueo<&K3+469IKkB;F)`%)zF^*T9Or-M--syrv1fuZ5+Q#vj_}gf zp%U|V0K7x1jqc#?ocHb%?=elqe-VgB@z^cX4^x1!c5vIknE=FuYzdJ<6R)#tzcWwa zwa-9Spou~g5TqZ!1rtI*2vinyifLIum!3Eu;iplFIAVEmceQO4KylGNFQ#W;Hu0 zm#e4NhlXeupAQnQeiW}zrqVadMeKOUSc$1$RV zsR+jJfZ}EdF=2NhneECIgY_+`7h5b{&KzHlJaYNVvi!seii!E*2Yf&rFAHmGc(eAw zU=-Jf(}tS%!rK(?0R&P6aCr8;sQ2nYC}MR@La|&f4jo}vN4=y0^(FqUl#=0EYq%)67K>W1r&|Fcy%}CXV7jsn#TVmHu-gq*G0aT_d|8p37F}vKUbFU z&Ae&%8F=2jq!X)%w|nsU`L+Ws63N&)5KLi7M3sk0WmVbn+*~}A>_U2@)#6&to>j*# zq)MTNPNAC6O9V?hmk7bWiXmWW526RVhx3o5sa8D4B5wS zVV7Gf4vD0@`P+~0#no3;#3M-XM;&&rnlO%7W%V7n0+nRvNJfmza}s<3X12CxW?`5; z!#hDqzk-%}5QUi^i>XmPbBq7STE1g}KoO8$*I)Yz>%!R(yM=)>6vx7R-7R|zrBr^1XhTPM;HX;3Qo5sEmP z8!N&{rDC)W$|Cx+HvR-Q0>r1;P-;=K@O%Y*3Fd_Wr>OF4uwP@{95%WKSrTFF5s#9m zw5eD?6$ZQ!vryJBs*uXaRS|r}+OpN*HE=jf{K?)Co^^So#3(5!ME}Q&qF5i_cOa#R z|DQ)n%~$_3&hDl`r_`X0z`9tF6Lzicpf<-x{-{!+%5Z{Q{oy@_SBw_8))Yas_ceR@ zTpf7kx^lSK)t#GzE+Dx4^#p0*uuCp5wdHSoHrs&b#U<8!NU zj7g?=z@b8anZPV(>rMbhOP~FiEE7?vpptu04bzm3#uNFX*+7-kbB$O>usFaydMYlXf{MCe&5N;g)(k@7o zD(yh@c}p~i0lxFMRvpnWxg`OW1b%mUpH3DHd?%uId*}2WK%n|3gfKA=&-08kG54!=-6HYfOhZk08R0ghTHl|AdzTXK{n;06Bs=_{`>5c*7nF_ zoV`&2eE+)5QTS}cq=nij%wgCG&%63mw`1mBC$QlI>`Qg87jX#71T&g` zr#RV`;cdy6@-u+z4&stJXP=3*1bdhOn39-Zh}32iE-j-C+9NR@Q`Pi$*s8V10|&*2 z0yRkpCLu$hfXC0sLn2 zr)gSeu;j5Wq25nUOS=Hm@K!2>n@<-ZGN|Df=KP`Gh)_cSRgP0Nr{_nHd!Ui> zO>$F}QK%~xr^9>pdA?pg@o$ur=qeV-V2KVS9eym~t2nc9;&6prg7sQJN8x_#=ZBn?KpR6pSPupK zS@qv$e@=C(H z)XmyTKNlcRV(nJjAz03EI6*AWM<&vq--%zbhCH;c_5)0u#ct5ZE6%H~DT1QCk8NpT zN3=tYy{d04Sg!s`mi}8|J1vr9r2W<@{;0if|JV2nH$S5EQrr1bP0VBE6FVI6o-+Ag zuftiJoQw}Y>2nwAh8oBqga+rvc2VQ#P}75jZjobd5-{GjO3|;XBWgIDOtNqcvxepH z4|9Iq{{5kDyp}M%ei93B$k;i~h~Iws=6Oma}g-qstYt2WNz=okJP_m`m{_ z)7?yIX;ZR?0Hc(=pKHJ2mJN@YK18nP<^Ywp`_LWg_1NkT4AHgA*J= z2<{f#3GNeIg2UkM?hsr81PBo19lp2jy6e85@BTT9#mt=3r@OkkYS*r+v4FTv>o8g= zOgX$MyugRRzjXoFhVM`0ucHz&NBfe3mGhyulSQGs6R@4!C2N5%0B^8s=2`I$FN$s; zV{$K`EvO!y9@DC9@y2MspF6-LAi|D0&*e1w&fZKf?VI%||GbKQkep=b{4~YuB5lV~ zu$q32a5{-YOm5l=UO=w#Fi??+Vy?mh!EIfcjIiu|_XhmljR5<5Uzh-irvI|C6JKX& ziztbsoYDO7!Kcr;-7xCQuf}8>VlS=IHpi0|#fV2Zgr2Mk5bY5E857s;0Z>8=Qm&;Q z$@A7*dS1X2m9LtgI??P21CESo8@Z2OnIxk<#mS}!Ut*c9+pVn_bW^;JdyR@e;CJUa zY>wtl1BsfT8xhVm3p|7MQ~T_Ov_n1DqS0 zR=epU)jF>$8^t7t8oK;e#AN)SGFmB|P8qzAZ=68f**9ktC7K3Z`dcwV)RbLh;?@7O zgm@?6C`?(1+0&WA=q!Am%hnc<^hv&t#Ela{xE#McckJfY89SUciKCBVy4&LbyX#iM8 z&8)I8^2p+?ppbMYjU6VqYWE8efq+LTpo=ShJ3GPNZlK7y#_mQF(VpU zIf~hP`@8^N|GfbHH(#n*XL~W2#2=O|L|TedySbNHeN4E27z?oXiG&G#YgB=D7T4A$ z*x1@)aWswd&&Ryg#dLMBK(0$tAvTj_$er8|dCb{9+-e5v>)V`yses{{zYycBflxNFJBb z4y)Yd@{06qjplUz<5ne#RPGs|k6BCXL+l~>)|Nq^qwXXp*6X;R67+rLCD*|cnoq)G zC9nsossUeh%{BpWaU5NUv5NKzz~QgFv`lKl_mn{LbE*f)Er8~ zLI#&dPlEN-XFC5D8FYQ*U(42W$-AE;c^9nXLeH#`THM-R{g(D zDCJHxH-z#%8p~_3em`|oTbvM=g$q+??buGNiz1gvSss)sd&CcqWLKf~5%6F2{X(ND z1Ti52b=$iyg94wyr^_xh>PuwYj>oG?R1T@;i!NEf(HLRye)9?_FEf%0B&JARdc5#` zQmD*TMcEa(vpm7uJ3_trwX+kx>VCSyI>H<@Eq1dJhVW9K0q%3Q zsw7n@tAD!Hf@Hm{oe=unSY951CJ`z)p@q9Aau1CupbPnVY_P7YF#IVpBNiyV+h4b6 zJFJJge|y=>p7$o8YJSuxojq^VXXLcnZ6MtA=9Rabjl6iFGuyT4T-H01v>w^6ymG!z zNheo3D(hk)&j@2{a8+rdTTwh$ZTm*>Lod=2ZS7L}KPY;n=bbC`Z=*@&*$@pQWU~rJd99x`&_I_YD!#O z9E!|>pn?w#_L2^LCfvb4PGOz-zvFAiD?Q<#wB{~2YeT3QVMT}@%MxWy>qR)mo;yRN znV*@F89;yGe{%kEfsu<#t&=LK^?xqZRW>3|&+2%wa+#I+vXbcu2Fvd^3$J9`VSV4C z^jQ|1jx2&YV(JNoVs(>x)8llBO^o+11;zL>-nIz`rbKTaY6t>h8B7^qqbzjYtPcWM z#&$&@$n@9u$~>TUme={a(jX2Q7XfU)Di>y}YJk7S?AUS8qtgQLQYe9<`89u&utj>8oKHAcUydS;vI`|*nV{iMH8egS zR8;;sAl}dQE)ro;l6&G@bV07P3EG5~96g!lOp*L(@=O#6JK~;t7C){TGyI zJh|S#sekgey`Il~%3r&NVh?Coe#uNJ; z4K1xCuPiOc(ER*-W;WM`l9m=RrLeQiD*^mJ!9HVO|E|gd-SKFcnTrwqA^{b6=zD+T zX-~QY`9eyy<0Hpy?qX|wUbF}W#zcX`zJGpc-agLBwm^c=Pb@xP0*)r1O zLk6faeJHW}EnuWbyRYLFQ~-+G_`;8h|6WNNNo75dW$czf+NhZUQ|-4&xv!oePqOjb zPbR9Iq=L)`wyLw!E87VKXa4w3($awlIOA{sL?O`Q|9Sv0d#Sj%IC|(Fxg9A2p7GrM zCY~>T6>4Qy6_A4WC8*RCwgWh5$Rt>uL_p}~C30Q!NyG9!kmX2~#EI;OPBw&3@*){K z^$J}N0QoEYxV#X>$*ltKknE&LIIFDA9uz*|Ocqsv@o6fE z;%uBPrC*@>{mj50U~6=Jy52j~m|@wwC4tEcr{c8Me3H0d%3T_3zj}!FxYi~sDvb-B z)rKLCO=?r+FV4SA0PrD8%)uOy7SJw&b=S4QSR02+jHBpl$U%ebF?C{U6Cz)RhfEvt z3Z!JF@X3|A*t*8d1}C@eF*5!3SJsobJn>$!^3u@N(R{{jX?3>1q#qsv5r>p&()UwC z8{0!@bc8_JwhNXpc41S6^c3N^i7Je7ghaBTI9&Ic|B+t}vl-TfaJRUG4c~dC1@|su z=VAqps0VYPV>3z7fNzn);T@` zv5qtmX|O`Wdp*!zotGMFC)!t(T_r|EZR2pIF%JdTM{END3%(T4Tht4;Rw47npE6E;%t4qs z<*&a8YQNe5T^X}jey>C<~WrL6)s1hsl3U$fKoo^V>-!;ly^Av_&vp0)ZJ4^3jrVfIZ& z7lf(`sxfDy5esgy&-MlGgH94^a-C>V$x%_*UI&FKD0Y7DK`5UEKdo^rHgWJPnV95q ztKu)A&JF(Uc=~E`+tc5#JmhrZ1;`(|d>{h!@9z9*9{tH0n|<+z9W~ zd%lr!J(`@ZbhRk_#Bi@~Y4K`0S4)t^?F_n7Ilzv&q!P$Takp=y2HK+VtZ`CA+8YS% za56Cx#oZ19r0k%7ufK}+7i7dz;vt3Mv&UU%Lz7P?^$^$l(c+f<<1|@!_0T0mnCt~;_Z2QhH#T-mbp0rA53R_V%kIbNBd0k?|iqbU1lRO z#UB+mr3GGEl?C2J{Ig|VS6?bG^wNI+ZSNTQ6mQ|C0m24%-{nNZ&6ycS(-ug5Ke;gmNEA`#QI#q^#Ro#;U%&e;DSgCfwQC+^czLB}S(n2uxUS z;d)cXMW~86wK`A%uQWUl5p%w0)`b;Fybk0zmw3FQ){Vk8QvQ1ztxgr^dvzIj;KQ-= zc&m03g{wA9{j`MlgWh52O;aC*Je5PT(M^x^)J*e=B9?PfZ(-ycoWnmS^CC)3G+s<0 zmRCGxKNjnY6!so=rgD3ZC>}>mtcBm({~9L`HTt`Jt8hazgDw0g`jdAzI=PIm@3p1x z+(2CHOPxkU*Z%j+Ar}lHK9cD)_aj?YUmq^?x!K^%Z?$X8pCk3dUcz6lVR1C(NAK=q z`H8*{12uP19`Z=*KxBI;x2QT7ryd=8&#f4NtOShEsLZp?cjo$WJJLl2dx2+sd-ofG zctZdqIQj-dxl`!V(7Y9~k)EEdm!db`ng_feBfF5=f$52W6ke>(Y%I1HQuwc@3bP+q zxue3kR#VzQtQ>V^Am^vy?0Xv>iIcxGgW{ZfQl$Q~Ir?k+LYoO|Z>BJ^FOTcf+GsVN z{-&rGyhiGvWlYEAYblE;tge@Gw+$^8IPvaRVkw<&T4^BK>}K$MUkht5Mp1E%^^mtkYnYv0*~ym>xHtXTGkImpL7> zc^f>gb`zE~ExbweNayf1hOV2L4Q?p|I$)uc_`$GBc4C!kx2*HCJIpz~>EmpYV%D8` z% zao*~|VD^^FI>Yd7B>NhJwb`ALSFkyiM%(1&B~xLe`-X^b;cLUz1zl`S)WXHYk`jV{(wfr{gUqw*8L^> zn$(e4VxbVvzRk~~1mgGNtkSo|9jzr6zlMXQauS9zOu@v(1Gu#Y6Orvm^J^LyqfY$+Az5Beb^ix9{1Wb!_~}1 zfpK0OUR79kj6L9i6;-z{goXj?bjL;XSuO|qRL?R8^^JsAh}zlDC-3hV4+ z>zK!usMIyE$J<;^SA>BSp=zFmP~OszkQekSr)_@?KVOv_*~{Sl8b8D#40m~#O0KcT zob9c-FGJG%!a4+j|L;7$&;r(1Dgl&g)|0%zS7h%hy?5B7k8`o3lP`@UR0%S7|NU~N z-)65PTbP`pR4xAc@0zTOq_+tNTYVswNL(Woe2j+iMN|(coyBF8G(E*4;bkxYi{ej6@vX&WiaYcFLtmtexU0U zW)cVIM_4CJ=93Q%(S*=+qjS5xHr!I9QqNeBpNBocE3oH$g4>x3bTX9bY^)-&J2K%)@Z_&-CgUBl;=t z=pmPuYHCuN%YGX+TXx!+ZXX3w+9Li2dsj1!Qp3G3Hy?g- zmb|$Teb>)AyD%aNaWypz@OAzn-4WW6zi<(Lw)rnXRca1%N8Qf++dJ})A31Cd7bz%i zs8`cySZEArm*$rQ}%v&|}Yvzp%iz|?#0 z$&E_}GHFmZ$?ZFoDZ<{4TkKgMtjPdsKO>NJf94YuT-Us)M+6n#E0jzl55D{^x;NUF znSplAfQ;dcxh#p2n~PGEt2)1I!MPJ|cM&}SU5G?0bj7!0WHg^grK}VD9JVZe8Z>Ut zG`NE0G;}t&(l~UgupE6hSm6fxQgnLaZep5`vRpVPfv-=;HvPRmY0p zM|Vc=xfwu%^-L$oc#}OU+)`}ah5aPqchEQ(Zu;YQ{HLIC-Sz%;53FDLsF`Qs z`25V?0-yAsFWq+08$s#~99e1Gz``+uNQPHg)NX!_T~mnF5Q$UN>t9Rk1*u=#w=dF* zY}V>vL4W^IyD=Z1^I>Rw$A$%*HAB2)o~szyqZE_CWtm%#9{3-pvgNK2@U^~}#aF!; z*>(`&+I~kkbM1AMGas{eUY!GS&VEJ*r8c7>Qt>Ck@&$P`;WG)GsR(j zMGtp4bE%H$Z61+$br9o@qVQ(I6kqk1Zj9^&$(mgZ;mz8jaMRjA;8TCoRpzar@n+Se zKa^Q#gTg32NDhcjaAr8QKaqHbUE94w9D(MeM9y$aRia)f8t^G{Z?k$2Mz&i9+n%V%W`Ya)J<1Bw z_f4XmPo2O->COLdXUp=Yz_POL8W=FA3*+h{Ms@)-d?!-vriU;&k$ERbU1_@K6bBdw z+F&~Kub}aCrif8o;L{foZrNc(;zt5nV;-(><~{ryjGw4)yP1d9f%(s9{9n)3_?hCk zq4mj0kh<=!5|E!Pt~g3KOqz8T&d9;4K7^5-SQNfW0gMATo?m?cBb#6KWdKp=K|cy=zQ%MyLR(7+C@h zO#(NXYMzV&9?s_;ZTb-qwW_jj2P6vPz{DqfZ<|_L#>lQ4NpiJh_Kr_yOnxJ>Nu&(X z{GLc8&ZlrwHpS0Wey`?U6QK`-m)@#Yo;@~e*(rKsxbGK z7MLDB4Lf&0kOkhu{>fyX=`@x)x0_Xb)k4(P-lDpxN1eRjMU`S zXnxJ6a=!WE+TC-H66AG#m&(-RjiB*ee@D3GAAylMbYQT_IPK$CgO$$N`s~n4u!?u)fQyu)@)^^^*^TIS) zMsa2}pLf)x3vlym*Z;342yE6?{bVuQo_02KS0nkuBuj%i{114D1=c(7_!F>}22&xU z?C__aOCw-6eK5`w;RM#X#%{OY4bJ>WAlg~xKN<$w5A2NE>ybWSXFo57@bh8-?QLP`wiycCb zOXm73keY<^Ki>4HHVIc)8%^I~rO$V`jKpN$npE;>zfJ@?RSaJM1gqlPS~cIl68~x? z67ak?kTs{lH2;2=Df{}Bh)ZHP8~7iWC>py-`;%$Im|m8%etq)-lJ!p``{St<56tlC zZeHFZywK@s>&+v)imjr97VWgu$V*J%iA4i;INQ%g+;~ChZMnQ*G!_nB9_h)< zd^E{!J&4QZ86hVprxVS1E}k7SD|H*@x-$Q2(MjN~<2feGofRCBVD-9gkBpMPAF`VI zJq7eM!(91!L!;Z~_gWjpW7*NeM(wybyZTe{x1l&~L1pDHvtAO(Z4WPtDX++1eda;} z^(vduIce-(@{u?n8FkMWzpOR9#iPFab}<4Pm$4zO_y$x!Lc=LG;dhxqxlX;0vic=}-?RN~&`mip<>u=C|6wA6t^`S13! z&r><6+|Dtc*N%tJp2zVLVWFhYj<%0%`{jQ%iAGo`@!ljTrp%|qkH%#%#JVX zD}c&x1R7ipu*3K6Z~t5zsQc>rT;@~%xN39$1|CI)Yzrd4Fb_1?+SA3)Kd z77a$*xu*3(O)SAK!Mh)NBqM_lZ8wrmPH;YX1};`NH3?rxKXp;x`+J|dWJlf$9Z(rN zIH&=o0A*}s*kZr~F(F7g95@f`KYfT-SYqM5bZzdXzKq=4OR_2>*Vh2S&*;0)-GKt$ zzpF}L1D`8xU;ZgGJLp+yo;4X4MRMLM`L<1@xsR3FgYBHDNmn$b=1=?^Qm5G47wt({ zu(dzm{|@v^Jf4qw&${^nw)X?m;vV)}n~_ zQvdBtu{fi|(;tcK>%FPl&QJG!p9Zvn7@Vtk{OnhtJiNKNxeOaSdm#*_(piy1)8f)` z<-Pgs>#^Ad0D1ke)L!rB+#p%leHM$*jCPm3F~#G7z@BgWyD=HO+64)Fx3mYD`|%Zs zUoYJiJ$xG-PiGltYbtHBUzdo{pj}m0LbLf!Y=-Vstz~6{UyFM$a6vTy8q2?bsCh9N z5fJ-y7G6C*c6u!ODd9E7tiUYi>PltmRbF9XR;^yGnns)7gy0|iKSGEZ3Z=dq8S6|0xTnX;n z$yDl7v@xaJaSg&(0(#-s=?@rBA}n9Z{wjR<{9$hJH;@JjWT3^a2FcpX4m1I@ZkeyC zb^W0m!5gV>Qd6|sG-}0<9ELp4f8J_)tjqQuMEXAKl8G z4Aqwx7Fy&}8_n+loveUnBkV^@f~2BfpF6{J+?994&$sRZHLTkHVx~&Y^xAhf*2HCz zH~v1^+a__uD){8zO6NWGvejFKsWU7l+8>I9e)K4X(}LA&vu+c<99jIvCLtjSa;~k2G;n?j{HrYM z63mgvxe~A#eM{DzgVdqf+6gQBcwQqPrW1XqT~8nl?Aej#V;zpa@`p`p^uCYL5-I1w zPS(PC3$5qVx@@A9{rJf!ceUwUr zh|=4Xzs`!(QEon4qU#Sa-kX9QG(SA*hgKz=8k6Hl2U7RzRrV+%1^F|CfCf26jXhFT zQ)mzZX3BCm@~?p{4;yF_+)pAv($M{-`cvI&AlO7sVFn3l>H6JBEb#*IIZxo<1(5tU z3{(@;?T+dd{J-k^9nfVHBO5(dueGTpp<<{1eybIG9D8_YbJ!Vr2Fs)p;w-*X8>&C2 z@^_{A@~fh+Pr` zHEF2&Nn<=Gy2zX&*Ss^*NhZALtMqV`h^>y7;Y(>R!sfwze`M9IA^g!}U?|+3q(|_F zc;N2v;Conu#J`o=WXz|A#tv0nN^yo!&QUqGOLd%A;9}zP>4#$C$^>3MVTRg6qfiRm z;Z;>~tl5s3QeU?j4~2s<%{G5GSRN8DgEvV%(XiP!F{b_)>IAWW*DG5_9Qv-fZt1>R znosclBFo}>zQXt0o976iHXq6g2|9Z(vHX=`#j_H8qFVrcv}J%l;H|v*v6OS_^5K>8emr#V8ECxnQ^{t(}JJJ5QDDc-fm1lsTKuzH+9$1rmp{GIXhzgnnD5$ zsII$MOhFO{$S$5>?nA=E^{Y&(ni1-?z?-yb3hgkoB$JuTBVFq$zT@PGRd9Mui*w_T zK8=Lmdafks)d81e>E!YLgNO&&hbfW|e^c89^3xcM`733RWe6a%hc?#J6$tE(TV02x zW=Uk3G~NU6Jc00mUGE7%1*ju#bads;$jso&b8vL#K6}$^2LaW~@h{^_SvfeVS#c_n zQ0Yxq$Z;xKC$AnFwbWmh%kr?Z&*(mIq#OsYo0N-v=)-^(78ZsqPUg#VUcH7D@pYp; zk!LCy7oIyRY|}jw-^{h%YKLi=eeNa%b82yhkfp`PXhD7W*#V%lZqhS9$R7v0)9$|S zr$I+pD6-PR6)W^+?&jEY!zlcS^t?(zF$WqQdP8cFbVK?m_tw?)EhsfOXdD^uEsa%3 z9KWWvktIZRM2*9&(DTZg1Esv0!YqXNJobomS#8u6g}J+ot}{YYte*`e^z4(S)mk*j z0Zye}^7Zyl)D@(~8o(`EtZ|Lsen*APdN9pDW059d&g_cgF?e-;luR#RvNr{HJ}WmHMwVz}L&BqTbY|sxwSHcGUY9S56|X;@#5EiW{Hb=o zs$RO#rPtDqEc@cF$c9zyBSyTLa7biMQ#EM@xAhi4n_o< zOX_l{pt})aQI>xsQG2+{LeHMbCZs2(@fo|$o=h#lYx6PCYL%<^CYz#Y6X8|(8Bz}} zbqG&BI8nlPW4ed&Oe&}RHs752%}DP(k*`$mkI^&U^jJ%d7U-#P%Ui%+@VEW&>!F?` z2LluMh_0_<%lS{`ME_e`_9VC8_svA&9u4ZR*8%S!rsPJr37FK3>StfKdW}g!Spd%h z8|LZK4eFBC*3@}m!Ya`YR%7*jHQ@`Y=9LXsXSU=Uh+P0d^}r$D7NDnUt{^dB2~UL*@FK-Dm@ z^w00E0i1B=IMISFHpwr{ks9w0XRn$zoS+bu-WyBf3YqO*1&Wle+Foes?}|aK^ao06 zIa(PO9I_aV(QS*t4t(1tZ~by?KuIVELK}bw9%b`0Do=}h{(dx}xcTVlSh+yL-CWS! zLcx|S2?n|QJU`X7>a~r)``BLoib^89zbsDuNOGZ=<&E?8dT$x@h8r(AV!1ZWAP4&N znU*T0-{R_f_00x5I7qGs!=TI6KWFkF!8lCU93k=X0Fn&r7zLj+x~ng^=Nrc_Ww>io5$p${`93#^M0 z_!!2)_+^pk#oRURtr~FV#V}yoNy8krjZ#$fAL21!+w3=_JD$cbxX??tjr`wxY*-pM zlv}0Tk}z_#uQ~ven!PMP(PtY$On0N*r*&ia74v*!m>exU*e)a~qKG~K4@!bXP@uYD zfwX!jLI*cKf-u(B49H<*o9A!p#k!eHBgq8adQ?KC;%PPWWIV&Pllo+aOu8a(UI}n^ z{vJSZ#>p`!!8KG)Ia3rM3=-1m3n8w4PeHn2WIh}B85K+dJn2xrN0R8H<(kRQQiS&Q zv8@oZq!D?Up9mz~gB)A7ZrC{}kAa%T%*RfKwnmOIkpC)x^dN8{_IK1z|hIujH6)X>R5JIl9 z!EHrOVsRM(j%S<@>kug?$?BB+0zcM-AiPlS5vf)h;)%NVrigT#@Cj6QMA1U{Av&fD z@-Pn0qnpR{>b1~EUx;o!3Vc{Y6QSshWx$zEG;uZe$kG;5z01$(sv1ZMB+fnn!5$wA zd2>&i9BaAEKt_mPGmX(38#H@g4Jm1t)n}lJCtDO-;oJ)yTfRC<+?p*d9PuZZFB1#jz6Yc)s9M2`}oJQjfHnsQ@h0-M=))7U#V`S{+a~5FQM5AS)6+!@6 zE!;XZCrfa{PTPxA9;^m*W|P6zJpkM}$@PzqKHL3a0Mxk{HtT#w#$?Xk`-=58?=>oq zoS~)W=qNtC&JMLXPqm5E0xy^QHS-#bC-&zn zQ#mGlFJ3i{0nL<(q`Xm&sWZh8<(m1<2w5!CO-=|aG;v46XY4BS^9vWkd#oSSrY2!p zwPPTbZ&xGPop1nf`d8Td4}gQWqQ7Nl>2-3(wga=KxDKtpL-ArjfAjrxItpb}$yhdK z3XSjOwbt)R`SJt(9AzmnpTY=nkfikGVo6 zFv{>c41&$1YRCWFwwAp3>{E>&K5&dia>UoBHz_eGj(dKKlL-^2zj>|SvZQJh>8unM zbavMZdaPgN_2*66Br>g@1O39yJJfb{kmTT_^&Xu=Vn?T|1Nx~?LBeRnahQg{JyJEl zF+E;7h{DG(vg>^e&cCctKjJhxWe6)Gp8yC7Pcu(=1@=Pb zLkFjuAaS+SYn}3fDVM5C)-Jj7#HKx?zbnJhTA?IRl?~TIUz~AliYD$HAsjYnU0KLP ze(=p&S({ga*E^A!#_Rdhl)DACNoNPt;R80Np*c%Wm~1HQnsHk7krydMEUuS550CQLDjp^w6ZR zPFL~!`^4l^0d&iFE%;HZks+l01iW2?bP==?4WgQ;1j;kJmIo$>rHxrKkcB-=diV4pO$iSQqATHtjCgpzQEK6BX>U z>7$f8l1Nhhj9+~?aArm@ITq_Ia``aZot-My%W@M&|EedhbY&JQb_$gs2m#i) z*u5=#qqhfe;8ilORRU=8C-3{?=cD(M6Nug12@FT7=O_|Jp#OPIh!rNDO)dV3b4Fp+hZSeI(T!j9J&{{#Kc2G*;{?Izo@$r((lor28YoxA@aB}Z7&S6!%pgONB z$ojYD2!2r^BY&C%dif{WrwFXgT5|Rp85;kh-D2!=ENQm;D0H7EvIFu{Uf7|Q%nc+V z!d37EaK6?j$p&r9+~Aw1a4X-C@Hn|^DAI6N9&5I;l)ue??5&UFpi!7^NN?C!Dx9y( zzmh+>ll5r$p;Xf6f2J5ryeMWqOMo?Qy+~Sp7S#v0)oq4t=$76(ZRKD}P*1;j5#}mA zC5dm}3qaWS(mHe;+ku-B~1g%MjwgSpIi3^$0wGNm~Dhy|s>rUQs| zF=)YI(*jxoiqblPFUwEW+if3vqR$jxyiJv4aLgw%ol_=@JG2F)?4KETcjM)E`A;$) z3q$TAt3m9YW_wT_3R3U)fl%d!f*LcdCbHIy3lM8Vcn3CnbZ{#gICj^BgF&x+5T#k`UU<{Uyutw$25A0k_VB-eHPS;t zEg{ zFQ=XfFNrt}af6MbMka!M4n^)r0)~lh)z&9;(JCn+qOLvnuWQA+q=^DS@HFG3Z}7C+ zcYxy&?P%7mIu5w{5or-whc<#gN-K|S1Rs&)n3T#>b4z=pS$Ei6|M6BkFdnmb3<#Pm z2@#2xR?&UHdTQo%mQ};0Q7H#h!F0^kg1i(AUrVCIlXfZEm(wKatkS!ijT$}sW2z*Q zm7R&_8Hw77iH$$@dfpC2rg@NUlfbwxikJZ(f=UPXN+_d)$4Z$D zujsvqIj6o=xv7f4fhOYnFBV{y|B3RA`_Vbd7WAIwUgfiPzUf>MWrvi>lGu{{_)y11 z$uC-J4C)IU4icLXbsCk7uwY<$x+8>2eoDp%azg5Dgc*HgIfC%V1qn920gB84RO^qW zse=^Hv}Xwq!KCFD?V{fBe8szaGE>A&OLV7ZFx5or0xYfEJoVRf^0y$o#poMSvNGjr zM>(_HJJNZsbP^P@fiPD*T|t3+tf`n_?4azy1$f6rDfS!&P}u^up$`OYB}VR}Rsn@3 zst5QIqRW=c?O3Jnm?>mHZ%WbWrHaw9K>pCA(VkaYG(;B&n<_nO$R={cV>4dfRK&1? zLrfcS)v*f#N0eq(TN=>j)B-Q~tB5}r7&cTNg}ABGt<>8j4ZNhHleEzE)E<8ZLkwgG z^n4(oXmr{L3JRu#5WgW7l})|QJA8QmC`)FD3fOsR80hTK`Y`dzvudRtwMaH3ps41{ zh-Kgv)p;q%F%t0!48ye=BV6g}RJ^f*tyOOfounXQFN<)@XbWX}Munh~yTCKBK}rTq zK9gxUwB8kZDRM0*x*_e@sahG_9`$!gh8=Yp{+oqJtFw2Xydymaq>)WI%uK}z#Rsbb zQ0Pdm)h^S|9)?~Jwc>)cHl#RIZnPGRkzi+)+$4GPFXf*Alb7t`+y_u^p4;1&d;ftt zpQF`{iw!p@f+8w?D$H`s6MqDWID4-`Uh-`IktS7nON6K@;=;YS1R#lYQT;oRZ5|>s zbJ>`|MKJML)G!_*jD`RSC(;78&tL%`$H@Iq74Q=okJmS*w38J=`AG=6D6tRf)%a~$ z4lsfoMmk7HM=Q^Gs-%&_j^mV-?l+7QeX~v^D9jV~nOPo0zT*>#PdWAsQ4c`E@)r)k zwBFCAFMOhZ;Nz<~j(ELlk^HQsI~={5S`|p!0hch?cSNRn5;1}vtQUR8Gr~s||6tZ$ zIA8IZSWEsUO>;;sIy6y>5Raf+zBc@)2kg8Aqnvu$)3ao=3Tj7LH@~ewXGaX^MsPS} zARrh+fZd$5#L8bZvI|jLFr-Kx)^VAv^BkE9slRglQ&3v?z$tIWp zCa?Kk2%5mqZnGxgPh7s3J7B#o<462c5~Uicotz!4tjbL^X<4N?;>kG=v6lr-aXjo1 zFkph{RNj$t#&luFBWk!^OJAmCP$;z}KPaQB6N7r@bjZec8j{en&D~Luy~D0I19g3* zULR|AAO>am%&P^g!AYfBU zb^azS6un$fCrwyr*BLO|Qs&kds##Dp@xAG%CZx>7aUw{Zc53%CWs5CKGg@O{?%Ae1lfYk1eGtP9CSX9M9!|XAB043vT%PxeJ zko9RDy0j!B;8hx!aEvg40q8E;%0~bcin1=k z6JdbCqg9xLK*h+ko3vRa(Iuy-30%Ai*S3quzmNpWU_)^@iKF2Q5tUW;kAo2`OX#_d zOho%m#AB^mzg#i-%vt=whz&fcYe4G|Zim zcXjT!hJwQiWpghR4`CwW>|tf+b<(|8*6v`f9GQFOcy=p+s`1+eVV!nKVccX)0LCA1 zgIi_8ulY7A*c{oycKI|2FD}QLHh7+ZmDr3na`tvtY!RQ+lV2loUM<@0%dD45-a&UAo zTBov^Ng&~tc?HxK5Iumkv+~T^$>jXX@NAJ#kpK(`Dj~b3T0a!i`V6~x<@D%@AMo*g z0~)nRsFbxvsaiAsC~Q(Q)Qd=jUt>uNo~Dvlo2FW`;|J*{4M4%HRcI!ruaW0s4r*qu zpVrpNH7#T>3=?}}f~s~Wh({!>6%S}Ze_n&KMu693j_?4whRa_Q+s1I&5&_ev%DI zL9Y~XAJTfgKVPPV3>#RA zfOi0PT!?O~5iogcH#dvVXwt#6YP+=G&4v`C(hx$!>S*d4&{Hw>3v;1TUyVUrl|C02PnPQVaR- z_?SECWD9v#qoQHftg|NK+F1xK-D`K|L-KZFc3wu>4X~MPh}27n@TLnp_`Y5fU82>; zKZO8m35Q@LEOc+CpC!E4m!{*JAf@1w6neIE)oQvmX>ULDp6bh33~pROy>f+|?sYoL}CRW315l z3w(G4cv@CFq7tEk;)$Z~$0mxKd2+cqO^a_xd!%VfxtJKRp@}ck7D^*91i^eZWHR~T z;@e*+RsrVEva>Nk1p42McOLjy(k4p)q~Fs~_tKpod_%S*k zmhzCL77XSG{|FNkh?m00&22PZgg8P2ZJ20AMh~wgi3?H74{K~#-*7Y@qnvHUjp2L) z;QJ@qTqnu?%7iw5?h~?6wVbyW?|N;PZM9;-Jkm0+x;}tgSf}$}0);o9;Ei)fMgTVR z8YB}$+ogW>y$%v~27+i1LLsbjfSVNz(NM#X3(-yoB(By823MD2(w`j3evh7={2N~i zgatxWLzl2sd8_Ly6Wp?Vyd=A8vu~u|JvE2|SYUPDcjL%qzo$WK^lyl;(A4x=JRZN# zjELMv3cqNVMGge_Vj_AE+i4<|u?!CiRN`So!&szATh#obJOxUtZ%pWjJK_Yh)c*4Fh%~Ov{tRm$ zN~RWIIIf5>`tY^Lp{b-+G^*Bs9mv)B5Zr$$i;GZLp(q!(s5*z{f{)j{S)JNPd7HpLVQuPYO-1@wz$A-}-W z@AopVU=uTR`C~yrS51)Wyeroq?$>2|xfV(2FbXg^z?w3R4vx^Ofh?@9az3Z}-L8&5 ztc(xF(aRSA%!fbBZKLvjC;=b$=RB=aOWzBgtW8!Szp2pZkrt^zt*&;*0FiLf9CHk- zff~S(WgS4Vz>r0tTqoUgxz5)@IazQUn}()d!N)86YQ^xg;jr~`-%Y*b`ZAq3M%}4k zJROc1Sw@-Wu4r4*w7v})m7WfkC*A1T=RB?M!}fot2|(I4ysE5x*pRe6TF>I2&&9XL z{cpcKeE)g`d)@%;u7|n;(F*HazoM*P*QfisJnPZ1XFWQ$Z}-Oq>*$P@$g}Dq8lRqF z0*G1)@QCK`;G$c)g^tVQ`e6hI~qSe!AziErz`^=l!(l8^=4SXbeL?lB2W{=DgpI_7lnY7Tib z6l@}6En29|lON?zk(nPYKie2HSbdl8ob%|Hq_25ce<2456C=p-7d0)|#S5!i=(y z&2wuRsa1!1@5`ig+g818z!(&6f6Zz5%6?kA1Y=?x)nZJSA=Di(?e~l}T5;g3<>9ca zCUl4=cPeSCvaZs%nDc}8bzgzQ#F?wg*h>>EABRB~7vU*8rN!Ul(WpE-9hCBgk50tc zdXNN5&1rMoCPNpjrS8d2n85Hw<`u{!H24b!=!(ZR^X|>n@Seoq&p?M~{*k5S<-+P} zp8He@%T6R(jF-mzR&=XOD&?sf;6!Y8UMg)fes6oo|6%W~zv_5`w?QDd1otF31h?Qp zf(3WE=*0<6aDoR5?(QDo;uiGc!GgQHyE{94-gnRU-92ajgFW}0`GKBcx~qG-tLk~G zO6a0^L`vN>!4pU|lsK(HLtIkIX&)riZHcz3gM||BMiCI@fgvnO1`zVRf@UeW7i3%3nkz0 z1WCOU|7vAWvhs-5$+g%X3X+<}q%klEl;Wv6{rYlBbvHyOO!Z2~+yZhpLk+h!b-y*b z3HfX>f@6S4T?L`@m?-3YhMDr*++4RzNLB&>zpN5~f&uTOR&b1G(qp9vRH3^(QXeBg z0oN$pBq=-a%eB;3y%x9)1d>?@i{a{BsHdFg}V6xJ$ z6TtaZO^gC-_%K>5bcUj*M9&#F^Qi(#PdKa}jp?;2cE0+ADI@C`W{fW=*YM6S5{x{N zxr-T)h5dPp7TJruJ5%gMwAQ1IOCO{$OqlrfH!qW!C6BHgzT;g<01)c(ov?hMnL3GBHYcHS+J8C{g=DU(W?R*>7W zUN4vJ{BGV=dIHV_78{M#avSp*L4SwK@v7;buyYT&n5tyCwTn3)<0e6qJ)EqYQ`1baBfyaMPvor74=;@OgqFr0} zP~11mziuu+-H>R+f4NP3j~302gE|qE>_?rg<@6J=~ z^LjXm>tYU;ZwN`SU&*a&S7B0va*(AF^Q^#?ie#s`{m$LLcU>`nrawcA^zee zeOA5s#vQsVDZ9EGc9})CG26J_+^ZVM&w6R=!0F{UQBKX+K#AHl_vOBZ~wKBJ=JDWQN`O!+QT)(m8*;(6r z{aAC*xWY^BSRHcBbI9|Ot5aZi_8Ql5*3~`I_X^3Tze2La-wz+RhpanRnTHQ%Bm`%(7JN`S!z!-m$L1a*QkS*y6ScB^NLp?Z&}cq|Y99qdbP zGe+*nEeNnmLPT7zo%)Lj6{U^k^FE)qTjjSF>uFnR%WY6%?Q1B{<3INd@S0+`NtnY{ z=C+)lpPF{j{|XM(Ig#MI8mBL&uZa2j!BhP0M-7ktYj}_a6NCu^KH!Y?ai}WvZC(PE z7@YjDyk)UIbgvJeZS+4j5p2OR65^?muVixvq^PTvbdsn7pjfKwLC=(tHBpZa*<2?~p`` zd_d!jQsxKZa^fQEJi)JrE*TTxmJ!O{-1%dO7QoLzn_gT%_nDJDZG1|Nb_DpozaFaf z5H(szNF~odY%n;5l5eavbqCXc^5f5|-i`du|2!)of8;8(f*}^L1z@B)bco(Uh}ifYpe&;^8m$4!_~Svd@MF2> zF;tjp>PX#TcTLQ}rs*r~4qaJ%x{4zS!K|*>S?;IAgVYDjT2L7mz#p>G>H|Wj0Du0! zSARaKk#}2KJq#|Vt&1FiaoXb8D&K&Jxf?p-vyN^yz^vN@t?C&MEI z9!pCkPyki$!hGUa{s$O{*^b%P2K4#+U9is`lKUg!hoq+IA1N%!)oJRrtfCO2K!?v7 zG89Lt1K7LM!Kmhe>Y4Fs6JpGk8LWe6_1hCUm?P=q7#jb+kC=B&N#FX3=r#|RJFtU8C58;ZllKrdT z1PWQ<85-ftWqtq%=im9huLpPnu>f@}dd^qQLHNwYVvuhSk$v>M<-L}6SNbS)|D0^! z(4A_#JH}^ChwNx&eRfw7Itx*hl9dfJoSvMdrrDyAEY~09o@Bjgg)kS7ST=7c?2R4U z#G_K=+y2}~`K~P`@C*J_RB7o^R;TM>-_?vAYQOf=P@?qPqZJTcp`xK|2DmsLt3#c# z#(01IVmrfzGbCoj$DR(4r9Jv!nmsl-kz<*?pId)|;2FSlm}0md$gk9T6Nu z6{FIpc-@*_YC}+5t)>~!NOeo$I?MwC)E~7f4AoIu`7bKE>(I{AlXrEtnE>6Nl}N+R zeNbmJ$$Kvey)-S5XA1gbD}3Fl`XxVo3M5tkJ&HTU_fW{%5o4S5e$;0safSp|0Ue#} zHt|7o+g_V57FUR|Z0+UsD6Ieax?`h$ym#&Ug#Z#X4a8dtV8`c^7{%+DP!dUoVi!w< zf0scZO(EjZJWTXbe^9$@T#|vh9IPzfve92Ka}r2N-i~rnbz2qy1e${N6bcQ0hUd=( zZsXGLAljuj{m=VPLHGp{h6K`P!;@c8n4`l_i+@8ZA&?MK+=gEnLC=A+^ttJIJqv&PjHN^QwyJk`Xzym;U(f}%YFLd+-e&^Z@cR6lTz9Ank1bHJPuP8(&;{N=IGM(*VQx3WLunHZ8>vWyba`J#P*s#M5vbi?B#8YRRAyz zA`mqeSEKLz?ah+RqN5YqF)%5YxEMy|`IZ50SEFWNtP^dzmYSiKj>0TW&G9{0R`OO& zU44lgW)8HgtE3Xrw+LW`RZMpH2QjFlXQ+W6S|p@E_J0U1d? zOJ?iNP+%JA8Jk;;DQGIXyGxBVnH}+!ovXcng>>^i(piH>vjarSaD)K=lXqYxzdTxt z<5p8nqs?DnBHi8ZY#x-&BHLE+yF%T2CDI&${0kZyYL+u)Yy{Jm{wQ5CDE8%G1L9$> z&$0*H7ll_pU!&&+U0;{$dHd@Q4J+jx+E@p}!;frEDHRsY7Wd6oWhEe>pk9U26QWv` zhtI)N693tk_}N)Wwxdr;Af(+q-SQ{Iu_~P{X zUza*)ARiH^x*}apBGvCffmtBdwVEai*crAa3eiISspDWQ2w|-StlL-zPOh&?#YTi{ z3h0I%|A6+w+-__6bo4pB5Mf&Ow(<|WzHW1;yW}dEbDU?{sw#RL=a$H=O0ml9%ZCX> z+`pu?{o#+C2gHRN5@mz zp7Skn1#H$d;;L#`#mV-5D5#DTZ&1W(u{u-o&3L|L2+_}(2Ab+W*CDz9a_kS%PDvT% zS*8=j6&wd>^kS)X2;Uoi$5~gdBjSz2$o0W!EeYJz0s%GSHb99a0IP!M(t7!u$8nYj>g>YF}}}&%CdhB51ohaYD}0 z5tc46@x?c-H2D%#h2@1~WXJ#!#Ww8rKj0$xNvcI1Ic14P_u>HvzgjVPX+Eg#Q_6v6 z)c&)tCbU;v=9b(aRedAet?!L)-+4!t+vp!(E6ohEg_yeiZaof0R%pF`r}-W3;0tP1 z?x7XTi*{&Ws|KoM!x&6a08HC{#+O3wBNbTBo`LFyPXv@fBcDx7{r$J{ZlM~lj`t~o zGw7?G?fGh0+(l+*`9PT13g(fM{+9RM`8hhs1ZKHchRSebb%uQlA5C<2qG2#B0WJ-yKCiHxQE737tgBC(ALdS5QU^tCp_tu9eu zbeo8>M*vW&|;LQbGRc0e3~_SS;-{aneaN%CGxm&`>iQ@E7|5oW^p zMPqN7S=}q9VT9+?4_Fa>R%nktFfcGLFUCAkr2lvF=|e9h1Kp{*qs-jpG9yygMRxA@ z{uYI)Lsv`-%m(`ou{l_LTEYiO8I4hUr3@u0>diwiUQ#I6ZyvVF zn~!6;tfu>-yf3Nv_J8N)S5~rFPQZ)8T3pr3#5G8JO-O;=N%Dsgz#WSFjD((nHf75M z{Zjq$F?>`e*2}!NR*>+X(vLM#)heruX=m#BV$)?hbgnC24dL(jRJ=5RQUHyOjWNP| z6XxJiI+m=`R$H!I1udb{;1`lL#)HZKjB}NjGjoqZ2G7isMMra!|{~} z_11H_Z3Dx@8sG>LE}8T5^IYyI;ayGenDAxX)Q4(jHL?z{HJa8)sxs7J!a?BHaG5aRyEr{Ylt?OoE#jvZSoB(Wlw|;4E4d6#0z5gVcw`S zbw6%Pr9XQ|p?~$@nJNVvpk%Cay-tV4?hNfU6YKX@e7WnynF@a5k^+b$m7%F%xgJ!=zacGkmS}3TZ z57n!mwn^YDF-^uVyD=j4|>>k|2u5=nD8GEJ(KC=yW>NPmg3uOiwI^1HaGO zUQ`+!;`<&pdtke@y0s0xZJyTD*|fUZqG2?u@l;ybjQtS-yws+O0C!})NPLaIuc6iDa+T0^JiEhqTM93-RCx*4FFO+VZn8oOjB#~8 z1@=|c6ryUE$qv2>xeBXzA0c3(=vc4`7e4sai{Xn-UmLKVlnw~I5(B*>jwqfaeG2$h zn)yA)?GAu(F?M0YTO$0aDI@SMSqXBnZ;s@0;Xa(Kf`6zGz5R7W4z@HTd}P*%!=9zA^aTK5Stprj_WE z-QR#<@@NH(gL=lw=-{bi>A*NsnK8T+ZC;5K6yx*WUrT0Wl{a%>LITD1BL9k?rwJ>J znZ93jL3ibFKwTHb<_fmt?UmiqkS^Mzi>XQ!4qDe*-lO4Xj(%TZ+t09M_u=iu>J7Et z9blF$o$F8P1`bWC_0zUvC`!cpgg&x}OSS739ChDHrdi8fqTp2huB?8;I-kJ<5(db* zW!_0@a9DI$wRQDn%;Ha!FoP(&lk3GCWysH>I#S?>evF1dv45HxJyCS4U2S0%efL{G zq1vr1wZVoW9hSH#Owq+$?+ljWDKEjNga<@G1dkO)4~}AcunlQT!Bb+=6X9QyZ%F;8 za}fxI4!-Ma^_6l12LnBO_6%qaKgKSvpRKGrKnVV|%um3%vHL01X*jPn@ulj0LMO=ywGwhr2zpcz3Ro|*KpVa-DdJxcq0uf-a_+T=tZO6zCn;l@_6Dm(c(?H4c zK_)pr#roeeb>p7y4QpDX&AruVP-E0dID`o9cBKmbg9-H1wu4kjHgUdx9zc0OeO@QZ zL%s^L&Nd;l0$p?ZMwy~q*aDk-G!p@vuVS^^_~O@bknbB#m8u!dg!MZ8Y4x%$>Tj5z z@KQ}XE6QfX@Y;gwb~eXv>7 zzmzW*(2vc;d><-;<<%pt#Bo1Rt)2@@cEI2Cqr$p4KI2NjlzAWjK$Bj-8J5HToU`#; ztQ;bvAr6s_YDak*h*w$cl4v~|A|(3>5K9!qMjfWBpQOrD!sp0#u`E@`5G-$dgMUDB zpxIn8zYpT53ry6*!2ldxV|N)MSP$jQ29sl&YnsK^dd0{UCZtk{1S!IYU2ppZ#R)l) zsVfC1h0wiaX}2|UVY7yXLLY}K&yNfQwXaI?jNkrrGnpRKgs57h75NnaI>XgIo+qxiKbMTp|Nb8N zgOiDFO8!RZ5}!+&DaO1$(8Ok{!wzqEnj6PC%7y|UU!zjqLNqrndP|YprYoo|(8_jf zvf+eG#HvrK15V5Cd!A(jvll!ieSTm~%VnFJTua@CIa@*6l1vC0E8C$oV#IyEm#<-MQ&9c?X(kFH zGOQZwfj0%dkpDzQr!#t*AD{MNw~kuSY5-Q2J~kHX&^uZLtb;-&o&)@c2DwW^co35D zpJfq5Ps%3~FSA5t4$VQ!g;;`0Z$rqJ=mam^16*9WN@kN^AE3Bub>dBXoY!FZLqw}5 z4&SJ&Pyg@3Bz7JyaTtM^1|AO?Mp-JEaRJ>un}~|;cm4z}-a1SQ31J)>1?{3_&Q1wW z14cc^EKHUZxEMOAiN|L%HDrB>AK1hUW*5Ng2zc8zKvsr3-LcJh@B@i-)fi=>TEEJB z%nkxJF~gRdjck(e^%F9d!tM$JB@tblPE}Oh8JiN(mio)bnN-3G9ku0VQHoEM)w7Lj zT9X#vb=~(=#?yOZq(O$rY)P%#s`qCM;5^;_O-36gN2^0Yf3-(HOgBtRyBqW7eR!&W zueH$kOyAdslxNGdufhAhBd3d&fzyGFgW|O>dz@Ov7}M;bB|JZ2yAQ3c-=wt0p464q zp#sLJ7`7)Pe7Ft87xL+f4iNe(CsC_e`5dSnv?>DZVTI@&e-2tNs3@re-CQW!|EXep>g(INjTi zsq$1`(q^8dS=+BiHDAv-#3AGOQ!uKCl~GX9M*#58p2T7%C{}kq743z_I#MyVp+XmSm&!8YPb%Os#l#A7$nYs%wG?7g(2&6!;9w^9>Wt2n z`PR!OM*6^NITfQPN?}Ma2sSZ}*%PCs4xChn2sC5a80B#IAaYc)y>`j7r#{jc^;$2% zKrps!;JK8<7}E^qO^6j(=NEU3jiJyz1BYK7W(+2HQOQ}WD_zv^hkh8~(wBYVVI+pUMWQzz)tBWbOUoMX4#-@?gk6fd) zzhCd);pD*IbJ~mc&8qQ|?2c;? zUW{OMj-~&7*i{%rJ;(?9Fb8yF*b{8g%!`7aZHP>7^wI-KjB&QghJn0x={n{rgB+`C zfM>=U=UV5Tm35GTD@L+#BS_cii4slafN)-vE4pO zHc;b9#;iS9gs0=ZrKLqDT{uN1Y>hdxcp_P^BBt-&vo6H;0A`JgB)N#%!_e&(Bl%_3t6WY4xz#!}m=vkgwLZAmjZn`4rKM^Kag0&m*n_Jgw- z4#G!jPC(g!LJq~%k>?gPWR_!2bo142U6XWAf%@Zgt zI2s#(M=4IN4y~RO6uGowl;vCiSl@tl1g zgofxpZAS4+BrC&p+1+7ET~qqY7r*?X;F?}jvvsY`!8M}W9E&3!r)W%gKV%XmVJpXf zX7UehWo>d@?a2Fh*-un#e*?pCU{KMofJ0xaf#_{-QxA6)RD}F~VB?De!Yu<9a_!1k zXCT^?W>LCBsIJFR-F|6!xV?sCn@*cd;=Kgcud6T$u+ErWm2HAwRnL77mR5Zrx@+A& zAuO2#}jLFl`f3Gpv$Tg+YxQazuTg z%`sK+mdCD*==Dn}c>Pl1ZMk?%nJS?OOz(+N&6{Fyl1?TYR!ivVFW*Hg^Ty2;5S1$4 ze-6x~!$d<9R)iPy5FfUO{0^e?f5^)5sYjP+4{kHsjozYD+1V>K%%#!^i}(F_kNnBzDmO` zC!7JY`1ts~czRVlm};27>-R`!!N>EW9EUDk$K&^=ccH$#bCf3LT5YMn+epe*6@6|8 zIGDZaf&4#LDIzc_pK_Z1{2mc~yE zVgh~aNDpj;_jPiU6=K9~y2#4T0ecaw$=Nm(T;unHV0e$+nty3LXb+`*=Rmd9K~lSx zoTD}Nzwhz@le>#>p-VY$RH4DIB<3Myq!;e>_ht&v28n-Xvd@?@VIiS`vf(s00Cp(> zZXw%|{*u|gx#3>)Wp^wTim{@XzIrfae9 zb(a7l9V4H{-G4O$W}PTfOloQQ{3L)hEFmG$w4cZnmv&8ha`~lZksQ8aN%J3;chCp} z1*P>}C}k14U=E-W$+@F*hoDZF5f<-q5~IEo|7%o`Cgj+tD>~|XqG6ak`dZ)*$j@{R zRHs%&MMInV`Y13*bxBOetIH+7olAk493OjEg9I!w7u2k&KbCA`-%H6rP*B6~f8t(Y zo|ANg<`D2@#=gGq9j<&%1(3373+QN4oz)Cbjvzt7?N8G`X$CKLoB2-&-pI#TFzY5e z=Yy;>_lZonss_mapu zT5MF^-`~HigxJ9!OGbTQ#-)|Rs`m%FnFG*m%Hhx+Gl#CiMmST1osao{Ick=SK=KjL zi#AtkZR_fSO>RwcUMP8o`PI=WJUL`P1}OSSpfQbVl5$%sfn&JL{YpG;j;HRqJa6q& zc)uGpSAd{>ANXD#FQ#0jk4m}Q%f}Xe-K&=k8I^j+^bgdtEh6SJ2SEF}jne)?g6Cad zU1ogSt0%edttxTO?$)e;BJG`6()ayF_mwa6f4=9*W$>%N<=c#Q$@;$7aeX>#9HpK` zgT}~6V3WWX1Xx+^?e%~Y1+m^|Xo?t(x*JYc+7vXfy)UnV8l#GuX$x8YjY}EiF3+5q z+nIvLpMk6)jeg0B^n8G^8Yt!V zo;-?}Q?ldDhb-%Wyhwf--sE9`=k}`%$4f=QdQuZ>n5m2*p^ia8r=*SYkMUioXpyeO z`xvgzho$w>kw1l7FB5u1)_ofbn6h z!&0DH8@Z2FuSxCsJPF#@iGXIhG#?3x=`*gX$gLm}y#ttEK2pI*%0(fa``QiHD!1;f z)e%k?aB-MX66YnQMsY_Wr{)ML0-nmNgq6&ScMpSucLQ;~f zl~rkZJ$q1QX%0NP*-$dYE49#MJYRZ%Xs_Qr_J{{wud}lT8_*$mBrNut&Ax%{d(xis zD^#j}@Z;oQ;0>D~V@oJ-d7yeuO(duWC6q1KXirdi>5=1MM9s4%Mf`|&-1JY z$n(J6sf2*Z8$%~zjxxdFpLvgZ5(Bq%i7(Mq?A~iHb1!p17+`@iJEkd!&`zu`n}{uI ztR8nrUlwhi<*m^rNBM+z=YGD~U$WO#*}^&U*|G0FjN1?yd!ZY#)(3qe586jfPOd-dBa_U22C`Wp*_zQ@r5I&*Y+LI?HBt}Rp z1-;Eifr&wx#7F)FwQhT~S{khWK8HB>xJ5t@)@3Q**T8;xc3Itwb2?~r+!;7(SSkO0 zC6?e<33cvta=yYBy{NCdvqb9-Abyt6LkLYTsUWwXp92i=x&Vvji>Vy}p(MhYwg4~L z?zzMGY6;Wo!wJ*s)i?yyTPJ6EcsC*rryhLG-y=-Diki^(p$oj&YxzN)wL0_N3R=+L z&R??0v)0^y>ljuYuaWGFe4iisgo+Z}qd<)Kg;q&(btv~-qS|CfWlp_LRl}=Zo8U84 zM7OSN-D(f{9xL7WHx_~{UkBggX&2307mde5ixyzpsLT@B`k&TpG1kW&wZWy?@>cJ& zhXYLU+=_YlQ)aO96amX}6(~`I$^X`-W^>lT)aYK^{n>7$KTHw&+mJ5ihtMTg$0Sgy z>SIkXu4<5b%J>)@i}2MxiMm|IRoK(aa8SlPEyo0*Se#bF$H{-LK|i+qIuiV@qovVi zX=AkjgLXL3<|xccKQQzWL7Dc&8(%j8X&Tg6KVCHS?iDe%k8d{lJEE6P?V$%uOfTjf42{3cN-Mxe8d!(s;0Ufye13`%A-XWWi5ZM zCGL)LUlImVTUDA1B=-rYL+p@f^CB{Q=w*twWk`_>@j6YUlIY(vw*v;21X;0C!xm!z zhE^M8oNrc&dSDw#l5qKw=0PsvXqLd^jGWy-uCqJ{0gBKQO`DnbS?Dkc+Ll~xz4xRlIV@TN@;2kD9aOF{P) zP*tiZ#FJP4?hH8nJ>!a}h%XJFe&k)sYw1-!D5Myh7M>-mqviZ74A10niHo}lu!ZN5p}KqgD00h zvB>1YKKgx2^)tSE>!ou*BP59uMq=mPk8%~f*OVaVsmaOOw8S{&X=clgMfaVI zqg1LRVK%Z!IQaEh+8^2eW_2NDyLsAU*Vwlx4IzhJovdbYM!l@pdaCoCp~#V{H${%c zmSwTv5g#d`rR(BPjj7#j_*gc@^7R$-ELRCvN5VzBtX@4rVQofkjDB{i{Mx=u%Jp{h z1oc;7mLq7VFYjMMKuN=2kg#Nn`SOj@rAkHy^@)J*CtQPi}2qD-4*xWw#g1eoP^{Q%IGGo%IwDSWkOh|th!U(YEv_d(s# zs&<$f7&;+%KOz?KLPZIx01FD*7E*t<@g2Ut?SP>56b6|vY0NIwAVV(o9wG{d0jIxv zkxuSrQ=I3cp1#PVXJ?Z?y6bvq+BhoU2V&OiX{gsxRz7zH{Pq(mL#>whlPZ7xiyo=L z_a3!0HL>EOgA90z5;tax5mgv>lj4ovAw&wiX*mVdLhKT` z?B2-DE|HfxKOhdZFa*KJ#7JaixXfGZb9VLd{{h&`SV4J*Hp`{Nwk~3ijX2&`BC~{C z(jVUACFV5%Ev1EuZ2@Fk!oQUKG%ns z2x)L@9Sf*fF&YG+vS_l8H6hQPxQ1)fb;oM&!=vD4w# zHT-(lo>~+U3zbG=Ki_p}%WhjOr^;0|cv?O>Pot+v4b}Hfpt&-wA} zZ|TTy9|IBiK@KmUoo;iaab;B{L8i&pw{h91IlV(Ufw)d}4{X0CO0wDZ=YdKy!sm;j zJ3R+C^b>yOE_N`#wf7SYh&j%=f)KnbUbe3suBJ3gE4gbRDLAbN0HQP?33_w3T6ub* z&4%kD>t&S@PRgw?7lpT5?|Idi`*n+KFcYT&)0YQC&-68MD7K$NTFCQJj9y2%F!$Q} zCi(0bC`Xxq#_~rbl6M^$<0SMsH24^s$-s~fq>VnKqZ8O>bwZ+5V_x>tcJgmTtf z#+33W!Y}-A6)z_f4<>upTb8_Z#4h@2pI9w$MkE^oT!Oo|Yl?6A5bFBn3M!BT(tv&@ z>%~72E_6DpV|h!GNfzocK5`U%!@(hxi`$d<4en8eEg|S{C0k)6v$+QyXkuAY2JL0= zI@IT%NF`x@@B!~L?k^k=iv4MOSUTAk?HNkp%!7g);r|y*5C4iWp|Caa6##gXj&JEw zzA=xOb=3#P<@8xVg)s`p8_$nslThFzH-0BbS4f-7gb34>H$CHWhn3x!@nhPc;1J)LNJ$Ln;Ce(8;diH5lWRqUL8A1jJk?@BG8)=PF$Ku;vk=B40qxj0eq3TIuQs zFJ~ZQH)`ORJjlw)yZYMfp_f13hN71QaE%WBY4u(^!SmX_HSRgauP!pI2qLR_aU`!2 z|6=Bs&y_DTA@j>CXiv3-7(lsTvO8Vc`gfd4RL)e}fhV(b~SXR&Ue$ z<+6!3rklzJV6@w;0w+JseB;#&*4fZS+M8P(aE=<$=FW+l<;i*0FVV>`2 zpyfh?gM$Z^S$8-BXjt$@ZZw+BS`FMYwum}b%(QuouuYVc<#8i!+tEl(Uj*1FZ2Drp zw^cbjL^KR?C4q69!#KX~kHhUV`YvrbZ#{S-1a%H9mFAZtWEU41gQzi$FlVXr_{2PQ zT2vlPBjkwrBoz3!sqw979f#we>tJBB8Q2c$r&Y0bo3K_^E05AF!M zwWl+;3DP|LpR^;1gk+EZ9KGc;9j1>F=FEENfP+8m<5<>cmiMYduvse+EH$y&;r zYyll?Sl667L)_n$T@ zr#_0{!yAtpih6=yc%9}ReKUijoE{cOP!kUuKKQh>8v(;U!dL?y zCDXCW(u6&J5$}I(PaT$iUr=tXXDh#K|4XBbDV9bmeS_n^6#U*Lc}PP0z-`xpNxN1m zkwq`HZ$UoP5lDQ~@30y3BmmNFajQC=Ith%Wa63Xdin+@{s9sW!OgQo)mgi3=%Z^&| z?*P?_MKTL%v!uIFz)PKmMG_YX9LDal0x_AnY!VJWgi(LI^8HG_t;aHnRH~t>p_>7Za}I9TYlb;@NmLV8`~F*!R}#bt68leHhx}1@>S)dXAF?yTuA^LsvV-UuN~(Mm zW!;-brN>00RdoEr3Kbol(krW*U0sFoG)^%N{2QuX(sn@kuJ5FY%Fv z-u}{x{F2SkU$Z$152ike#Xrry+-Uk$AfNDCDiCpiUzg14~Y` z9&aE`AX&rT{D`{cxhId0cK(Da2b#9#1Z;gCtXiOFg9J-tgf>5q_o3_(9V!{BirEL zZ;`?8oj0-f8BvdJT-~4VcBagoF)%8%eB@INtnmJ_{|3{Uh6=t3`JmEd2hf0mMtvFq z0M+Kp3&NNUqwF`Ig}j@;f9pETXDG$U{$4!AR85j0OQ|zE5$a%TN7euR?{hv1iK*>p!;u7+ZXTG&Sm{IUv{Byt?{L{OoENYwM z85*0DxA)QdvsGG$cY{5d zL2_S)ty|97j{S$j-e;ZJI&Ox!?y#W1t;m!5_x}_oY(j4LWm`kRXos!wn2@=es_?#^ z_yZ@z%A`v{Y_3Z){Fv)~1{y^J&n+pJnSWIsU!bK)rq3c)BwL;~Nz~p)$xKzL;^pClicDwBcbWP4c{t()#|6 zerI#)TOp^|vHawLwpJR?4c?87=J87|<32kj4K&#}P&K-4p5Scm81h9`$ zePGkka$k(5`~5Uh*Gj2Ww5K!yI$LUC7G=uc%qiAwWZ=vW2>O@!+&EjU0kBKJfR7}K zZCWYoOyH>pps?t(Nx+d;Ax7t9*yNxqaVJ9SRdk6)z>d8k`!(LMp6!Rl5DTm<;g5}T z#GnQY|Kz82CPyWJE^6eLs1Xp_)WXritLT8fIw7oILnL%vdJ=1xv^XwIC%vB6)KH$d z|JR$EC;dmf3)UH&=dsTtJ^i1nnOLt$VrlE8=f=7qMg4fh+rtj84xTj-x>PUh%89oCb+u8@mCmD_!u zSnm3l_7f%K&bc;*GoF8h;3HX>Ew&uPr|~9rWZ|mFwPs_Y_P{kaBrFp}Bp(w4%xx?E z=Q3XKbHueCFfSVT?`XU19-N_{2PqJCu4S^_bKLeAbtKa&P|udP8E-?J0WEen1RV}s z<$^>JsS|R23erruXZqkfLP(!y!aFbOVfj+lg!okV4VNdZ;tUt1mPvi3(spi)Ht0az zd%^rR+BxF6x`4L6}jt0Kx@V$m|es#XNR*N)uW!2+P+^>UupTk3gN4ZB#v=~cW+Kx zaKOI(N!O)oL{^N z%Le^Grl*~VvF0({m2}ykr9rZekHe9T?EtF20J`M{Xub0^vmKhCv)V`Fs7v()bBsOF zL<)5D_bD(qh~K1b+k=0g_2m;-i$CRZ6C9}OWT<2Xdev2wQ-uG@rGC>wO|#ndZut~{ zp{ufjNMRwNqH|$)&<{1&#oIF$|CA!Tu~kMasuQ&-e-8bhzH*QY5^2Cs%M1 zi*pK)mFtzXoPHZ0*?gGqINcexq44551w4m?FhaFI>3iYM8UR1wx`E@HTXA!f*9%nq zFeBU-^N46XIfl)RjR>(z@XV_kPN;vkG#}BEh&A^LjVml}jGDe5<(9gr;plSi<@KXoBd8V>sfL&PfcL59uhJ(I}n-PNnT%K^M z8eoA@UA1LQzzBKO=ulpB_$pFDJ}mM5*Sy{eG_Tv7?GBs2iiPl`75KAVSlR_KTEMG^ zg!eNF(C^{C*Nb<^?81LzS{b&0$!eQp#`Yj?r^D8WI!^zu`D__zKC5>Fs73$hkpJC< zBXj}=f#SPN`2TZ`ZC=OJYWFIimBYketpF_nx%8_mAU_gmOx(+~&#B=`%6Z=(|*cvAbfP5x+nrVz!|C@@jSMmLitfP)S|IZ=+;mfKL znf-5##r;3l7_eNBOK*+<`Rt`F;Z!C4Hx;|D;`<+2e{~i5KZm@SJ^~`Qh6QGLO&So| z|G&Kczn51(;_a=ckcFis4s?Z;J5Aof!GT&(uvO6v1JQr|%q_pXTtQn~JHM_@Jt{6W zm7yyLW5U?n%xs_gpyBH3N=03r2H-EKC@GNxHI$7S79O0QO&0sN9EyE_LT8uPuLwUe zF)>P`dc#85OsCa)*oXo-)~Hp^iksft+?*)c1@Za?-k=do7D&4$%@`o_k#=3$*T8!I z`1Tw2k`tiOlbgTWR6$>L#Cn5~Elk>O4#SrhoCMtefyC1HaR^4}O*gh+3p%h}j4Hj^ zGzUhbrlB!F2==4^xG(EY{H6fwg~PBjKu9Z%T*TeIvE^pjquP3ogPxgrYU4Eyhox~7 zhwu4z!}R`g4;B8jLBRDm9xw_-GJovTHv-7}R?EdOE*y!LmX;U4565w>VHe^ZP;AT; z2zpt!|G%hu%cv;ZFK%?`?k)$AE-7h-lr9Ac=?+2Qp?jzSX`~yZL%O89yF;W)kdPYs z-2Bga*L%)KzHqZx``XvOezk>mm?dt%s$`1^(=~n4)-GCn= zc2dn_;(KvLRhZN=OC~ir-pqj@HT714gOmzT^`X;*+(E{t7Nxdph3Z0tb$v$U#Az!e zwqq3n>o0ji|04R*jOnkV>}!e{QE?i^gy#@)G`MN$I&~hd<_T>|dhU%dT0Y4lLYzrs z;}gG6Z*fr5T_^I7T3`f#?Vxzf7=Z(yF!<*cb1A9@DB&euIbhJ7=zkhj|G_pt=AKUc zGQEGw?ovlRBba+rQJ>3+&A+IO|HdD;C7ogC3jHYOBekB_H=e(q_0jzcMa><|>>EUq zh8O~ZHl4&a6{He>Vnd|2hG6Z*6R`G3Z-;%2E<6c=@8f;vQ;VgJtA7f{H;MJ_L}FrF zQgv7+f(W*TMx+?~-5A?2ghawi`Oy4&iP~kF_i6F_ z=Zhx<##dbDf7kN-a@{1YHx-6u#p{a){ml~Wq3Y-r2-oidi&n1hNF)u-6{z`TTlCNpK+EU%YZWjk40%<_!(Gx=5I*@3;8*H|B{J2);rC zvo&7huV}VW((UFZs59!S+h=No2X;jSCi|A!!ptEwH`^3vpY?T1CxhNXroAKF)gSwu zCH^GG-1~Uiw>KL-B&a~~C@7B>t5RMz3Zp;76*~9g2o5PSXU$WtMc`61jTgiuLj zAN#bQTdAHQ1#05jym+EgALLcKOqvVsGa`G9VImv7-EP$liUx&|{SE##o{OB{H0HT5 zOr_I#?-7T^PN;_=|6EZBw>Dy4Wtjm&HDqstjFd?0Rm$_N-SyfJ(n-7b_9%8mep?*Q zue?JFR8#2=JttF%JJqb$Lyw<_L69!B_bF|=gwc&@`>AVp4eI|i6srz6`h&8y+AJGXA`$ep%wa6Cx}E3esl(>Za9zHZ z0aZ$b&paYVVwHT>uU8Ni@1mvVY94=BfvT_^uXPrEX_yK!6#CZy9&V~A&=rOyn<-=$ zP=A7T{^Qv|+RZ1FNd8)0Z!nuvPd<~$T}30GRZM*}!fU2>$M4+#JQ*E?S}qim$H(V$ zVQ-~=0-WydFPF(A89Z^V-sS`4r)ZUemjosBCBJ>q^>`w6vG){);;pm6&m$lRTGRWv zPI7c8o{o|4N73oSs&5Os7k!;Rbs?Y!bnV6lCnwm)mbliB_PR+m2s_S+QAwA*R?2&u z%;uq1%|akl#_!l~yTWh+@R5o^+Unw>f?uo5%01af7&IDWf^`3CL1WnGOrqR(7I2?+551nnKkODh*CZgs2MB?d|M;$)~YtA z6+5Pqh{wi`A$tD}<&2Je8_DMHYTesk0|?<5CWwRuj|i{OQ==^4O9N^NJ^J83Z@c!m z^wDy-$ZlXj#fQF&w!3tbs>ai0&N7kiY06tby>z=ZlUd*E>*M!Z;Q_Jj{ZaC8B*#PZ z!9^9_kbzO%zm~8+2;}r5vBacxJ%|NOD0nv(WQRYYW8v%RLc>wd=s-tRzd5f?pA6el zL1EYSNN0Z>1RJ(X_zK7;-?5RutKkCl;`m}`rfnN*4SH>@O$SeMOjhCm9H2en+w#dSp!6A%q zJQoaNWY$57DO8#Za1%6NL=*WMPFDmWx2i`2#52tj1S}kbkU~`grh+cKKc=4cxIVaG z_O!uFMv8=3gi#-@CKYgP@GnrzQs+;>szi`v4nDc;ca;i!79$(1&0>7r;l?(znn2bQ zNpOlYoO)Pf?^wV%^sTw~Ki|t8!C^#rTw#snC@D_q9iV}HE$V(eHGCiNv>!0Cn_|pm zK4|uY3@s`SH6O;4c+mLmfA8=DP3;1UQMLAPyR#D$iSwSY8oW3jDS&BWtoAFauXd#Y zD;6n796&=UB1i>^*IA8!Q%qoD4URO0T13Q8znePy(e#@TmPf!s?*s=>pO0>SaBNw9 zU>^Q~;!_;}7|3X<>5xk-=b2kR?de~_f&kwxw!7jw^1DPD7xZ$0Zb}g50lu^@!G`Q$ zx7uAFmQ)UI70VJKEvi5w2#mAd)3wn0Iib0m*tzQY!^7^8tBEBNQe;9dJ{lsV;%)<& zlVo4^+yA_YUsr}OfnKnQU`mSCoDgX#8kHuq>V=1s1i~H@-5GqgASt3F5-hY1DeRIJ z<~s6?WqjB^Xeq&GZ~hyKdm!vvU#i~JY%4V|HQ3>=NPyh1ok3kw@MZQb!&@FE84${u zpgyX!k3x$4y$x7^7kjROVm5GC`M0f(5*riuR~Dd@4wM8)sSGke^+{YL>#+Wj-zEy^ zGE#6Z&a0J&`U5vxJ$MUpO;;X~dWCk~#4;9MpadUxx75!h zLdE0Bzg#Ml_@On}ZeKrAj6q}Hx=%f!SAeeN1G5S-sh6l(H=X2z#4Wn>e)nOXog*qZ zIecPMb$p<(ulk6Y$UYmmFU6Zx6#pbs{B<~l~6yeX*NO$ z2K)^kjz8-w@3cOVwzCG3fb%(fnyF2T+^Z|?(GjdYNyzAf(3NrKO?{=FO^;J}_u0R> zJ^Un>$c*T~jI7TZz@r=qyPG-NoZb5L5Q99j09)0%{%kU^+)Z9vXm!x@9ns?e&n*vW z+n*UU|I4K+rJhHV;JffQu4uiNmc1zi2*%-uA*#yT^psWD9>p;il+#oI3L_jQpuSsSfB809&_H+iJ5e{RbwmJ5fOPPB5;OMNX@9?2f3F=* zlaL%GOlJOFnBtBYm!xO524@lc?KkQe^qE+g zC0k<0vX+6x>LQdTgqKw-OL5pz#S64m{hgc29J&tkBH1EG{6CCqEEI6vyTZB**4See zP3}eJs=O72uc;N~MH59Zx6wmBO&3{Y#UHNKUcNr(W5648q`IoL%BDv#{)w__xZU;d zaENKThGC^Qo$Qq~RTvK%^b2#ZPHcMlWZ-Kb@)!ray5YQx1^(x^=T(N`&H)WePHn^? z(Yq7vwTs6i6O$JEr!S2=@O(-JZ#cuTqx4Q389LNO0r73NgFgV{Zld${fLq7omrkm# zV*Od!t1!U9o0%haF~-N%H^yE0x$>u68pP1@!|Tsc-V(^Z{=nMeLl;+IIprVG{^op6 z0Ag4O5?_*-hT^fda~;t0BgmplGY8I%YjM*FRjc+(W=K16uo;XX^v>KAx-H9Z^>$?v zX;%KSG`v3j77X{rCEpU~q4@yC)9!shw=MB{k~%lnuo@liwHwoQmNurRq2$*6kd)ki z`h8a3SMcB`Y%{^LYmo4Em*Ly@F~d-bYQ9D9@NV}D(SQ_MRC@ze<<>K~Vc{!YMVSMo z@6t?Rlp8XjUs(5o`B^UJABMS+VatWmbsT(PL^KLp-7vc6JGs}EhrZ7ysP*q?A!5AE3x~zh4Xy><=pcv$#$hIZa$8INX5>eUl+!>t2JTR z;2^m1=VIkkYk`jJ#9KbCcgl zSQLyZ7i#0QMZWvx>~TSzjPQ4l6t998hd-MXaa-lDwEHxD*?&Uj9MaAscQeM6$w^O7 z=WqS!=GHK`uwYk0)l|p*5Pjod$oKbM29tFCvQoF&#$J++QG9t-$0x4l4a782k4o49 z&B4>U*FFufW8KH1FPz}NU(SQJHe~%R|G#sEwxo&${cS!UR@17cVqg0+V)%@#V&R>@ zjuKLT*AL4p>zT9T0A-sSfd@H;tNJR%YmEKR`>#&F9%>-^l7H#JHgI!%z(}VrBrh44 z6k2os7L!C#d8x5f|1{oda)m3MhI%%=lA-{^djmDWMN`PkWbvH(`soMRuyO9|!f^Yw zNW4h!@i%;3j|t%v$>2lZ`8EZuz2ZCo*UB}Y4#$Y4B8mqwy}K?QRHW1vzfk+B@`3wj zUkTIkAi4GD+U#JP-w6n3&Pdd>tK$uJ9YT3T^4tUQv1cd)wK4~71VofK?9W(TgR7r$ za`peinbi-ieUXS*Yz(U(fdx$tGv7`9N-7~XXy>0Ojr~-DEUGt7OZWZs zF}dR{_his|@4s^dQ=H{xJ$!5}yuOl9!lwh1Oukb^H+oT$+p4*`r7ULJ5%wdHl8zOpC`Dj;2dpj~3zPGX(8jX)>l zsaKH#bL&c*^k9;+do_ubnAT(ktS_Dh)11{@Ci8zL9l!_P$%xxz#~Etd=)4DrKgK`Y z+=2V99;)UI1VFpOWNYEh!haY@9bZQ_I;VCeNcCZd+JX*J{Zi=6MAW_>th?GHR%h1Y z{Wx<*H?>0cs&$0F85Z3xb1!zIUM z_LwY*(_qq!cQ5pmeYon_a>(=(z7=^RDz4e$xYqKqHw^N4sX0#l?vWf(P>d8ys-hQ9 z!k{jgz%@6VUuL0&t=0YS42P+T=){rOZlWeJ-0QezaOd%6eeu{_43&bbExQ9sMs3Zv z^L24tqoqHRY&3#|J){dSkcl)%RmFB9%1XsF;1XEAIPrlV1ct%iZy#=kfs@}wlKxL_ zn@i2-G_8)tMtthO6EA<+0XN`5qWTMV07lh%(&O$Y;KA|d_iYBhxdy2;bv2Heqn>r( z2Z3z{MS1J#pSoEgROffdqz?xi(zzWj9})utk*JH)H~w`up46a6}G8Xi5rc z+xkWl2Zld99t8j_MPG1+O&9al2i&{q;Ir_SlxH2^0<~bT{eq!VLw9YGCP>;DCa^qxkl$ z@Ttyxy8FrBaUbh6gip?BYweE&nytCZv6=YPV`6$Z6IpY{9J`nJo} z>M35`NQ&YBn*XqhrMqqq9xLRdyCwY^U?Ds*>9BO9p+f_qwCn9O)9c>@*0195FUOnD z;=Qia8OS2rDF?>-xOiUPPI2#hy=Z3bU8L3Wtb%ZmKfLnXK+x;({TYOdEXdO0Q(bE} z&vpx}V^1QGxyIFl@L7$;Rr&q>+`^v5PJGMB%KF|NyEicvH`@eFf(RshHK)1z;!ShM zO5?P+)u8s=>ibHgrfx-;CTJ1Qog|hfX7MXdxG!;o1G#c2olZG)f5W}jCH2d1M1OiI ztXCI%8IBA5=WW)n66n4lTj-)|or^H3q~=N{CfTYyF9ipnAK*)xqVieQ(Vxj=oI!>e zYN0GaAKTn(q0P~H)y>f=B_}hr7mmp7L#f}zzq4Lm*%oINg>BSH?h!jkl9F^YLtb0Z z>S3v`Wkuc$k2$spLeSQw2Dt8cR{&t&hI1+Skq8)tdo7tiTs+8Zc_XkR>he@iroKke zd1jVYC~Cr6p?3_#k+|X%3m>&!pnD?%#g7a4u$Co1k@UU%sm}OAo}7`){-g{Ljo|wn zzYef*w$W$%-H33fvwj4pwerq&G`Pt|hTj&-riy2(3IHZCc7?HL89Y|{{Cl?B16$dS zJlzE-a52Hh#^y*^;?Q$kJtizbzAdeSuqaRVJ5)GJ9Ri)aMPPF^qM9E8%mt_Q=@pLY zfv=k7ZXTqz%KUnSGKAx{G!3@j3)!{d?wAN^Twv5C$yxDQGztJ7k&}U6gtVb}Z`M1^k!9mE6+#XdtaiY)YfjdF)JuB7^WA{BwIC zr4sKlFnsa5=vH?U)FIQyX2@RTm~y${W8^R=9{WfD;&DTV@VG1iB0M)L1e^}JXv#uR zyqg5+M(-JGtq=J>Ioi-%qR@!W+i^#>scv(=%W*R~K0Nx-8bT z?(bvlKJVw*=?g2_yqL{-(vpJI_Ek1-Vd6|4T?DSW161n&+l~=^`5Rbyzsv`&ZTq2> z^Ab~sE}2d@og@*Xcf1=w({Jh~p)W%82n?JGBEQ?H#wu^tEj@2qLAzwKhblg(e^cGG$PS&bUs}uL*KTvH3+r06{EsLwxDOV!KoY zmgCkl|L$^XqUJF*Od@vZedXVI6Ck=)C#4`a7x%IPlxjEiUt=LXTg#lQe$lOWotD8* zp+wkOLCRmgxuQFJa2@ZLI7>;H!NltQFEf$5%?MOJIN&#{268FBs-3f-{V7%7|AN4p zpg3S!;hpB!X6DDTh(nmU)Aj{{|k$B;g$S;QHj>;tLBlieDoJMeWk%rZ$AE4 zGE<)c-I@RqN3)8>T~yHz`Xx#6N^Ki#0Wlm_H0VCEFK<-`QO~#oHh2td_8ygQL#7Br zDs&JWU_cIgSG@zUZ7IrJKV{#38M5=*3?<{AB@HAg(q;xpLPJbO0+j-gAQpePss9`n z=Ol*$!nYwAZdexv0#OhhDZV)Z9x*;sYOjyi?QTkvIKRuDisdUFi!nA*;3EX52~l}~ zNtI1QN&|NM3h@oKv7V{*LI;{RGhAxp02o2y03z|d6w@CzTB&$`?{2Z`zcC6&M5`uz)x%R#*d>kWcs`DIu#<@B zd(MV>wrp*S1V63|y|T?kf{fJnBF{DztGpx2;4#6HN?nCTeO^xaRZ*T*pwDOd<$rg2 zYFcDa_m^-BHc-r0KT>21YJk2!>&g+(?h?Ru+_QfF;f5g5bKnZ1@aLH{8&ry$@Yj59VCEEiV=xJ zKNF)UuK?-N{Zsr7fIeMJu&>CasCjKpI2aUJzaL8fj zZQ_H((NKqF#G#RjcwpwMWW3NeisV>C^yjBnYz4Pz)XXyc-S7;uDtscCN(~j-$tq zz5o3S&a53D_R$D?)f_k2u8F$jQgEYp>bs7y-$zmoU0OihS$5ic_8KPs4rcw%=yf0% zrf{B}>YZ(Bf!y$={YqQ-b|>L&LB#zhpfWPtO_s=H#<<$fq;WQt)UDmE!@I9*wY0QY zg!)x%kQ0WuzT@KSeMD2%oZx1&+jKHUWI+xh*PaK4B4KjrexLk+eAY!HpC3lX#xdR2 zVWyvb8*K(}FZM?TJI--b$JM|*#2o*()==Q^c%%0+b-x3Ye6fs3sI=>5^LjO%&c|tp zA3yR})?zQyK!^pk?v|Ir((S5OD5kno+#=m8T1fo&b(CDJ;WBLz2)@^PK>ND4H}#`D z0AAN5seg-ZM{f#9q`UpG%j^|y$LouQU8=f3a9LNF`;q(B6C@FoV`UYs_b<>h{#q}t zl;Q6|9cYI;aRN2#TLU4q#N7$)5(_zvjoUeX4!cGsk>7GFo{c&q#tCd?7U@wWeU!%y z#JhcsIn5js@HSRAVb|C*p|_sBt$s!D!Q((>INOI&`cKDq(*r4PikHfyy56a( z0r~y{$tOKNZt@ZSLiEGE)NhO@>O&wk#ONU$bNALw5O>>+h^Zd+X;H6tKa~|E6`_mXuR%Lim~iUFs~b3r&iu)=Wt6x&MuS zo~Z^gOUH|MG>UKHV1l8gy%Pb9C@@F4)xe8H9tyqvZMesIWaeeqrUQe-&&zTL1_&#G=5@Iw;Kg@wtM)7I&8<$D6mdj+heqE#md8%i`FvqU2CnlZX!Z{rWRk=iPi& z3yLqg9f5rfa@~*nlhIZZ$U=%Ag`7MM9YmA3V6Vm>NMmO$Q2^5%`}_R&BFE}edjG`q z9*Xzw-t`?-Ij=udSm1!50PMpB$~i3)Vh!CA8$#Y?)z6Ri1F`c;S#WNa2~hcrI8Y&BT zS#cm_z9b&B0R=YH0lmRYjP6e%v9weg^rOHdm0#Q(9O|2M78B>1?D=uKa!;EhJDpge$?)I#{=bh8AzxP%6ZO;Ghm+hrM~z zXc*Op?&Z`~a*|*EG`(Q5u)I&H_rH5%XfsnlXl;ZufLMzgjdR4z^9#_h8Ln0f>YF3L z&&VwXd8o3juMjb4wIV~Wh62YNa6`O!S`)w+7(t-0zWAW2DuQpY{^+qZ7yb<5LS(bj zBmtnuy&*MYg|6M*>Jx$_?PSugh=(|c4SZiSQ0CUm%D=Z{Z)-rHeHHs-)5Bz;a6;_e ze{nx~NjV0G_FcJwO9_RX@ZG==z{?hFfa-Mp?pN2fX((XQdgcgr6B_q>RRNFXyyh&( zzBg+gpRd_qs&0cthi|&VuxV-y$qBDUjh{aB2B*HtgyOh`d4C|clSMEKdV?G@^jr9- zqVAI1;!+pTGf=>s-n+o|a}8Ts*O9VP8fi^r1PBLj>N#bGfgD|t@ea3KzaO2`)|V(K zjioCIPS81pGD#@3GzETKxI7oXZ^UDx*Ukre+PL7FcB9I9B zqe=(O=81_4g#b3>n6Dlvx8orOXm$fA8%BY^r~4JZNq!7!%^k?=?FWItLucrt4~ zUyP_cZ*j1AN;=GG#9=0a|IFwz*kDcrhw#$v+Ig1I@?rB^5F~cFq!Z6pn;)TWVAhAul@s?j}f2t`_93c;;(HI{!Cpx z7-A@~!`^foy;1tex+TK1A74t3qMUr<9c|#ET030_y6%;LO8A`wc6>V2UZ0qV2_&;= zjdhl%!5dmODSFyg0>un^JGW`NM6IW2p%~92+fD})yejeqxLwMbcN<}iU>hi&Ti8MV zi$F(8xVAL4=P69$ALb8Ne+QcUrg=bEq z*rgijgovb6>=4cZ>6@;2eTFNA?&Z5nKW`7zGht}L_9Zh=U5*EV$Z&3sZ$#w0+vt}z zQVJ=s=rb%Pp7e9v7233^Su?izIfCsg>#uj#Lx>O)_!8)>Kr$mL@6*Kh_a=~_^SrG@ zfvlxC>C;c0y1&p7@=pkhM5jEYJjs?`ds!P1c~nmT6}0&65d;qJDeA6rw=utsZ-z>$ zquYkDx+*OM`i)r(cZIMz{NjiE)$>9DmMBHrVv6W841h*fCbF935(-BfEDQO4p-vYK zQ=X+ObgV91@%BNk#CCuO1SvWTcoAg%_}z5MgXA0cIIq(Vthlk98SBS^^B~K`!n!_* z(12K{T3`q{6wJyehdMAKqFlddH${Lq$}{*;4oOP31V?%t`fNI}N4@5K(@t`=>s#$3 zcT)=fpi29S%E5g0VX?2%`Rkw5^dw&s1m|D7>ed#dyhxmgLbeU5C#N#2E$^JR?zgA4Ol2Z=;U`q!p*xQcIcALR6!jU z4qowV?0wv{1wE?b=Y*_ne(|>kaYNx_iRRe99iyN)F8C9G|^&N+im=DVNrExICknzZ-q&_)Ut zH)YJpzOTr4slY$>mR+az4ZP7JP%kdXi7=y|xVsW4J)6!B|45V#B3HpkFx^NpHdKem zXAY5C-d(gl5_wd{MC}7rBnR=Ay8Kr~f%EAIil7mMrP=BOf?i~lVQhGHwkJZ-TTX9H zUyCjCUzHT-)Bd~J&Pf&~o8bbdKTu6{+d8y=p*uV1UB`P8j4%#;QUEsehWuw49GDr6 zQu@RKL}QxTya!Zw50lRivAk;V_JV=}dA$Unw{VAW;1oeR0moQU1HesB6n28ZMxvVE zIsqDdwfGFL?)Y2vF*jyg=_-7GL{Ua=D(bLoq9 z%=>bd z7Vuq{e+RmPd|6g}djsei{nIbe-ZoKP&?Q~jmHHpc|JPe8&r0)VAt|@~;WbYzI%9@&JIh@zErA&I>!uY+0P&5Z-xWtzDg#JG*SFlCbRV@Bztlh!A&+2t|2aLsEV(ezztX_8H>quPoFdD3qVy`k1b<=eA7-yjxXg zCWnMB{^nG(=@jC1p}#&@k9}!A9ho5leorE@8SB9v{qmT#wcuIla|h^uxV1V6)odl) zW(MS1UF$-6(a63+6b-SWDwrMaVVGqeegoN#z@#Rxk23YDu@cqX^xS7FRHF`u)?j3A zn*lFx?=W@99XA0$Yvk{*uJk#88L5X(97sW&m7o0Dd8tfbWB%Sk^vbCKCC9x2Mp~2O zBDFqb|Ai0XtiS9fN3r%Fk)i$BkF;1G8R3;0EyYkFfg`1n zvvWH~WznMIYYP@KvYcP|b6-Hg>v(Im_zj{wPaYb@7d@xYTXgXve-ra_N+1bV20yo= zLgj^nwzVPdjd&TnCb}_~CFdqgbqRWlpN=}8lmiKiq)rXCP~aNyRQee|PT$`{PFrGQ zN)3=y1TZEe5wh6|sTm9~f_zRcx7W&WSJ+)Xw96d4+1f} zA30aIz??;+I(VGdQ1zfDcBW%f6uS`^pi^H$W2JpR(uw zIi2|P=_z15qKd15-w}MJ5x~5vEm}k$dYc=iFXFLChbEF>p3B(|ev8lpGYGl~3 zit}sgh1ddGx)A7ccZDXMNeGsuiWt3BQ%V#RkL*tt$(?`qh3Q&#?0n1(TdK8;jPsK1vOZe)!S+QJKOVq9Vom>hd=K0{VC}!I zW3mX4^e;49HCK+04SwJ03zm5G$yhTy3yEW=qYSgS^bj*Mzt4VwzWRz*|5+?v!Of?P zc>QwSd6Ak2Ite)ia%yroE7XwylCm=4G_#F+u6A>qtnYD4=8id{bl>no6MZZ@*YsU{ zXYAm99x{Bc{X)q6`HuFitwQ#7E|%_y;B@$J#jSn2PX!J&WNC7Xe{2bD6d*3 zdeTrBAjc(VegPp|>uIlyuOZhm7__qqq#++ZC`Te*XL_FKfCNIsxUw!WdqV0>{(Y7g zaZ>C?Bn4&9Q82R!rQpJXf;o0sUXT|-BYe|O{^hsL04NCX1kak+`mU5h9qnrVG{_o&rTn|@U%Gtovq;QC^p&!Ie68sJGl-!yKh&nzd>)}j6j!{|Rp zmtrj!KNnM*gaM=pODkDdFOZceo96gM~WPvUV{kQ3b_4Z2~aiJlmo#&p>(_f7CH3 z_C)IWGT>?Q`TeTm<>a>L|`QW2{?>;btg zXlNbVOHcDaGdu?TMt+Ue5FDniFzK&SDn^vKf-?^(tyiS>`Ao`Oe?AUGC1{NnyXeNd zwOG6H0Lt2QBbJMojrPlziKTAo4Nu()&(gie7Hrgu1=9<+DR<&@%`Qz z%*`P1#i+zcbAx#|i;+lz1il#djg1JX5AkNYH?|7u%fH$eui@PRe=m({J$OS#4mWg$!h6u^Vj>i=3tI{e+I4LA zX$X?LM{!M8&VZ8ZK+5ZDIU!PrUP_*pQjya@t z#Fy>r}8c>#-4%npb+&#tK>yG3MKvCdM)+S5|V&ezlojgL$Da2&9TM~St4vjFG1i%u8R*zFsBNuBx88;I{Bl=>5@|$0C zSxxvmcS^x$rP3t92$z?ec9|3}1`(r_9O5BDeLGq(ua2%w{NTZW=g_47_sKVwF8M22 zZpkvF-r}n(2|KX{2e^=;Jhqd7c8TKJab;Z0YWTdGAd_5o^k`ooNj>(#!%nulWoxdB z$Nhl!3qqy`*oFRg6B|JBLZI=rjZcpO3Ku#4Wlbhj;_v>W17%{QH`Y1z`HS!__+2mF z1K8LnI$y9K3=kaPww;6;M6~jHq(nM{!$jz@L zmy0|VY?zlESUjqy_S z_=Kn!8lVt*%r(O`LqlPm@f+j&WBsPG@|K<-8D$FuVF{bo=H zfn2?SV9gWVs(&-r#hqG3i=GT_RZB56cszVI$?d&!G9IDRrvaQQ>;K+eoSAl!@=_2e zouBbv?2{Nhy*jNEbgB4+43;I7Q#EV07dgN#k8#8c>h-SmAruIQ0eUt zD73ddf^DyWU*Jt8l1aB5$q07}kY(bn=s1sd)P>Dc{XRn_D#O>-ruv(_bjH!2IQr; zU5toUES>BIeAx^7tFDFhYt~V6-Vqy~>Gje7_?WbjKY>M)oo{@9&&{PyUPOs)whkX8 zG`T`E{AwO~f6CB}maoJY_1N<~M>QdT9PKjr`3aAx_K>BL0dtI67{3VoWJ~_R_NYRM zIOxM~s+{wGQ_ll8X|X+W@(KtS<7!;+im1#ajOQvGS3&!^#nmda_c=C{J2+- zVAjFMA`zH;D^Xj8gflWqIO zo@H!E%Uw61ckIFElDsF$bL8zIuklqq843a+ZIU`dLj$Ym}hzfBmC^vR{++BuI71bBK>&c z(Yczv>51AME^0C0dpl|@kV7R)I3|Az77&*Vpr8bJLW_4{|%Ko_;1LfZdxE zy#6WQjgB;azOPP`5*1b5YeaK|9VHUqo_U?>l zR^@S1?6&S1eOm&4!_9mS{jU-=NypvzB6+GnCC7|{k*Pxa(+NYjwL9D?wQV15^FYFn zVNCfU&%We*`Ps*2u|!|BSX^p3vi+y47hiMYl6YQTnEaQHZn?rdj==Y}pK`oa5B#5~ z8VeXq8P&8`_k$+whWZ}2|Fw~SQ%`WSPdwLr-Mcq{mBT1?N|NW?G?p&veJm@t_dO(v zjA~n=g;izkALD&fr8Y(N51l8a1MlndL_bN4CCqHz!GI9+n3fF}YzC^8&3sn}^vaLw zTz&OvykesX-mVD_Wm+xC#lA}pN3hk?ID1>x=>D_kQ4$xN7Ms@9>` z6T_exyw5%)&yjaW%emRa3s_oU-Srw2{Y?Ob2$s2~V-SWbzvS#Vz+J@*hvf7ezH3G0 zjSidKcA-H`=*OxaSE`n)PqVVJ1`P)IG+JEO+!mKLHY`}_1T>1|gkO}f_Tg^XDU(I6 zSf=5%Y`h=1`Clf;FF~WT+1K^ej_X?`wf%&?8wfSX0W^JV9dGi3>5?;nEd+Z2Mq18T&?&#wXy>!@|HB)xoWzK}pPSYS9sqZ_{K1bdb@%); zxQ^i>(K+6i{mD(X^@=I~?{{kwjJ)lDV>KdQ8>jvG=@2{-rn?kcH2nNZ9ClHQll`Vu z{alg9-nIYUQ#a&sRn>fre!`}jhvZqMxyn5yVS)4eyrE>((NBgSF=3}&5j~; zC4hkP{`Hy!Wbjm`_s(ypow{d_)Q|c@PW26JIJR-;Hmi)20y1}>Mr%J{+gUW|St7)v zs)zN9S+?BCBt##(g({t8x0uOk@KCJc2F1Fe?!J+yvi_@&x)h|ePu~AU>zwB?sgv|K zuh++6!^Nr&o!yTq96fdvG?XHSY1$2cJoh@&vKO$Toul{oum2u#644Evr34&(3b_5a zr?*(W?<%^kVq*ysW6QJt-nuFQethm%?+x-z{BwJA&||IZ#rAw%fbq<*9T7jvU$!8}MCQ8?OBx`Gj1wF~ zhMjN8$bB47vMpPKc|Jix!3>j`n{TM`1Mbp4#y{zL>9LX zR<{NF`VU1Hv+aU)724g*&hM_r&pHD{R4z`ZgS|1POWglfL`sLjj2!2%@>(YPYjft$ zOkF2e7ToV|SWHEVuif0wpr{VFvZ+t8ReNHIcK0`-+Lp&n5F^y_mJ~1RAJ^S0>cbYq zp_o*UTx;KFP{6$Z;esLdg@UI6&-V@%#ei~#p>3Dbu?9Q-Qe2>g!Tez5bJbe{M5(RL z=bPtOMi=ReOZ%^B&wW^mHWIRL2B;kQXE$B|1im+!*5XHcOxbaV!RR43IN9Ri?BQbJ zoamC_T2d=B52EWThRMy50+)i&LF7n z@-Z>#@`ZU`1Afs~ccW5du+l!uYh^PM%fMrwe+fDEsN><*M``%Y@Q%+()j#&@49@iM zlu)uYzjP0dWiakU{d&0NK7XtV6K+SrDS#Y-Z&!#W(cLJM3K|>O$40vYPKL})jU45I z?fegi7LM@N1q%DOZ)RDx_x@86RXq!=BAC}(jVt06AEWq)`4Bq%9z#5KDE6@A=^%Xy z9qUdenvOrIA?Z1}NX@aXG=bT$$;gPbFxx$98aWXOVM$#^;ZCKV*yC8{^IjKDtmJ%KM`> zkl&YaRwOLH5t}hh*Fm#2$}i(&!Tro%;S}skEaHD?IfCllW*NB?iGwj|#?=(OL1ZjB zq`sw}gXPjAAjq0LW21sK5~At&RwMbNPpy$c{q8NpTY*sTq{Mo$lVN~xE@{>~4j((R zL`}n%5%d>P`E{w+kaXuufv{MTpxLxvuTe}$OC|D&NBBNfR_9Sa?CjI)_$oDj(yWma zx}zkzq9(gC_wKL?p|Oc#|0kLA!hqO+vLPssDe=%r_PSwH*?NN0Q{}Ag=bdu>S z2C1>vmI02{^__mzM@Z~nGKp0+^FB`GmFZJI;i$EO_qbQ5Ye6gWPfsSute*vU%Vh`?7#Jjax=|3Q)8* z+9D5$nQAd9m8G7ad+o9t+v+h#&1tc9qdC$eQ;y7$6K3wy^TGbHW+S{08l%Kc8-^^m z`*=uVdp~T09oGYZrSr*_3C~UHH7MY0v^R7kGpWO=Qop29rE{eV%*~dr8XE;x1ebCF^`=ei7(lN zw(9wICQWZ^w7nzh2m2FaAv}2=Cbu*Kh`d$0+98TRZv_^<;zXY&v7mqJO>HavQ^w4N zyJVRMwYC{J2vWtFho%wqZ*#*7ALJQeVBM?}@hQ(P3wo6Re_&te^4)@GbU&K$ygJZE zZ3f!(lW(BCW;BfJ@8=3(g*6#Pp$oYqQatZ?hk}^VW*nq0q{auqm=T8-qZYo zdAhNLtZKdImpK#Oji{qnPv2vB@YFl&%ZaDcg5Zvb6SB~J>!Khm!R0TV5~kMPaq8D`_tk07%HOwce$qYSTKL_^WH!(+EA0>a zX%hXD+qzcw7`KY?)H#HGXM+L{#wnsgWrp1F`=FYwRL4v|KSFd2yW=i%kKzZb?G&ie z$@ocxVi@KgokYmglEuH?S2^NC=jvlCvPIJ`su$n37WKiYOHcndXA|#%G^zV6VF(U+T8SS_KT6|F}ClX8T97?ShD<(o8@aoauhZaz>_n z01z+D){o%&7S?UDfD2w~2Ks>C-`|rk*D8POMQ6Uo**t$S!i(>f0VKH9&ynxR zzanNUcQb2?5qxt&8>XmMfLAS^d?4Bl7HLdgYN71No#t(bkbW>dgg@ki)EP>{e^=nb z-aZgcQ^*f=5=eM+4`o%E+H{PZMny8+lz1YnQ`}#!7P2jsQ*fd1k?J1yZpodG&b__` zR?(CD**VwWDCUR7;g#Vz;)U0X`c@Zh;sZI+QM)SC*Hm!+#NrxK>8wwGS0@Q9ynF}g zTYK1$)Ud$%B->(ethm}nr9hP8z0(qSgR<67&xyA3;s<&wkhbd^zRFAwev;ihtYE5e zlg5!>lx<4a&%4Z8v$;5FiP#^+&d-7VF|#P(EgRBrQcW!T%>@}qyF zN<1k+aV*43ZCuyrBPy~Tw&_{{UfNPTG4XkO{M*a$Sk@bV_anV8z~BAO;IgEATno2wIftqIN=BN@Q&6U#sb~(2^rypP)(nsvyblMtkxe2K|7q zD8uvj$Y7o8o}Y$#4EDsG>>pfz98%XW(thc7LjOF7%SZib*WqvMiyK4!d%bF^kUu8< zc~CO;vxZ@kKR;AHLgFal7HSSJ((DsNR^934k-zM?^#CB@(Y+i$KT@}fh4G=C-gmyX zByN=tK0(s_k+QU&pvm?~mvk)CDBh3@9JOzR9f}R7nti!Q$oO%ZWBXH~HAdru=u*DI zNmqZxmGG~H*d-VHu@NLZc-yAr_q>^@s%X2OZW;L{cMYAM61$UjlWx}v zv*isrm*Hz|flm_bN{sRivVyYb)8xd4XdGE#=h~(s6-*ta}pdi1Ao353nblk#E&bgIfx1!(f*OS`;qMFhcrjLrUb!;55G4zff;- zsuAc{#)>0+mHcBSswH3S!HM3c!Vb6S;pvv|JB3%7e|pf&ZK0)Q3oR;}$EC!vB8kpo z85K86Q(#!YxN=X*eytYI70l+PBs`80Gf{hZDW4Mv2EzCsYp?p$%|Ca{h3nk<>kql^ zcz5&wCe}+l{8RelcV`SDZl*`<=WU6>&4CL}CfJl3)_W}deaVJ-yv37A zrlm;JxMv4bP^ungzg8qjpkq9swM5S1{rCEM$H_7(NY%K&F~wPtI>|7AA?#;hGUOTcq3w;(W{G4M1aTS>iW-^awRav``-8G z>l+lWD-Dkv0H2rgUD-|G@V{qr25E4jFSmajwr-j?_rRZoCu!<@yO_^<%nBG<2G{?L z@t%!c8CH61%86Etu~)8qbaq|NAmH%7XVN$2)2qK&uwE|%p7SO-TtiPlXg<=EE}Ray z-KFaPj3u3o(X8h*mC&o_v{&$2e?Ge|{n_Dv&wMe{e=)ypTWTK=UphCcC104C#jmx5 zx`i6J-Gzz&jCG!kUD)rN8M>I?w_uf220Sdy`irx}|8wR}+t1ZVQzuHsUqCMn5*z3G zSz^y#Vx(gvaJz`j|BNjHW5kHRD?fik_OJL!bz1)Cx^2MWf6okd`r{A0onwPAz^)d- zrhl!{>QDnWY?TF;qc%-I$a2R-6fm}|8Rq{dpcU!gm{FKG{_1~v0W3uwyRXS=jGz7P^Pd{!P9{I3Rc=J!CFx>##TMTLZd;;{Ac*a1U+e2Lq}weJ`6D>`e(^VcFxt5{~g z^gnJzZhVqH5Cas^E2`mi4_I%W7$qFW0T0ABQ}NG>6J5_g z(wS~O_t%{PI8l6o%YCNB$o?-6Kg6avY?snQo7V^z^KT07vhkkR)1(;LjQ%YLPv5wo<6(y}b zENA9gPUSyE!Yj1~kL(VRpKGp6EM&2Z(gR)OLT7wG@i^|ByPT%vz@xtX^s7cQu+_tZ zf1Fcz?9<(t79t$5AHF>2Vilvjk1O)!V`#S;Dw8+SUk; zLRMKuQnDLYX`IM^J=>q2etk?G{-@)$sHiBWtmWj7y;f7B$C}3H@rLQ3e2v|${+Q8U z_kI5beFYNQZ~Xmpbo!^oH+M#Hj{OTBYxlZf&R=!rp_7jygB0P0ZyuO*qxn_o5L z=9(ws$}L_PyW_``A~9~Hx3{+{H`Bk}q-VmPz*Lqp6wH|7hoP~mT_vg22e-^-;%>e@ zeK&cxrAe_jS=O~iMa9K#tXZy3aWe@uuJVZ5B_)_FzIwt=WCqQ zFi(bR8M`ch#*S^WB9HK|Rwk3U7iniXMDb(qgL_8X8%GzUH$G*?SHF;$30~5te9J$v zbqCH2cckU>8!`LvvGM28@b5biW>ZGL5sAuqSWU--4I!icc`&#V@q2(aNFor=6j?|f>%z#=`|pe$J~hVoXin*)Gc>6k zvpB3h=>P3qYi@WK**|xDQlgzmmKuI*^S73Tnga;xSf50mOj#PVu4?>jw9no5S-N-P zpsk6j;0j$A;p9dFvk|v{t)YYR2<6k>()wbc)vr4Q$zxq~6@95>RomEeH9G%sr=y&b z%g%n;$0tRomB{|2f4b0fN#EjWEsEy-fiP6eQ=q*H9R%`wNz&KO%?w#%f6_PFEjOyh zLFgp-?~Sk7#O}Fq4V_k1Rmo{UN-U&68aM0ReHgtNz2DZoy;)mb8CEfgXxSPHU%nZ| zJza1)_eRrZ_4eQ^oWk(vdPZnU$=NP%3p{faSjw;J!(>Odp=(8X;9^fU$2vBGAsMJw z)YEH+PQx7rLEd*InR9h!Ig~wpy_jSeWp=U}JwNzPf=QLQzw6r=q?*f~V*sCZ_?D+5 zz2m>XV`C^ph>5KmyY+o~r)J|F^OAAyL=?571dhONU6`$W$$I~-$<8pxWSp3D>4WB* z5|y!a&Ep=GzO&%UGtc=pK>M541X6Blg$8%>J-&MKAm?jqGbMW?i*d1n>~`bht*d%* zHC6I;ab!;qE#Zjwbl&COUF5P`yO|x_YW0#hGt~)!fp^~(cjBcgX{{fGEF)TGzkFPr zEAJ2c>Az4v7H9VznC42O-*^MPfkwWmX(!FC)ZUTo$Z`Jn3($sq zt71D%5j8j*&W`{>M$OL7eh0F9C^gvvZ0R@D_<`g6azVlkFo~PzR#`=Ji%?6G@LlYgYM5j1-cV?18xL*F&;A9P_8 zL9$czEvmy~ACBzIkp)cJZSunB+`Un^ru6i>O6pjief)g*+0SqD4a(offiYIhJ{~g4 z6fe7I-We6_=HaGT33Tsj-meXa!DRy7I9Ktudgh_;UqPcj5uOq()qTtN90?PXrcE{d z&!krH>^m1t@nheDmwpN4+HUgI)4HXv!5sGM;0`w*OX05idY_QX$AUN9HyHDb`8LRs zsKy$s&A*12kKGe@7B|0(dkcD#7yN9dI}YS_72j;V?RH8?QKVD5<#FL?>PY*kXG@3m zM{=2C70mulE{b;`Ls1@;dd;wBN{_VTE-SyC_Zao7E32#RH^&^<&SG(ztJ5V! z?Ppgc90ZTQja=k(U^cn6KTHh0`?P?U>a4mK6*L>N`eIf6&*udoJDQF*P~DQBigpJ- zCQ*{h`ugATY7CGHp|m;swP}}sIKPXS@kzVgR6 z17G;WUAf<9=W&hiEkVWlXsjLk2)4B5*LVzlXH+(=fp?< zd7IoFdpGk@Q=~a^>CSXOf^hwwvP)jCfXYYpillQ6J1ti=2(LOojgSC0{H>jg#%!x~ z|E0(BxN**p$<0DW-z@bC$)&c(%#H+}jr*c)(9w@U21pj{d|gRs)h_kMT+ z%tuALQyriLoz7;Zp#V6rKpcMt%>J9ZXVCd-t4!l-5@TL=p}AiBcl=BEr4+sZo4xI& zyHJ%7i@le#Xr>nnr3;!9cWS^KHfBF{u?CWY22<(mf(HsCH($U&oYnlVCavhAyh|4C zMtlCWgN@XL-R@%s7j#}id_&C&ZLvvwCd-B{@!DNGj^oC z{OrT>i5VxFl{KRU;0(LUyJ7)=zV!(L`nKXXHCSdAMCbeMNAsuL5jn-fDffT5D%vjV zw1N!xION}7k;=2$=>5=c5F_rxWH0uLrf52rmDa!}s4NN&qy+t~-mMDvu4yr!U?@$i zDRT753Ad4)vR~58Eme?xn!`$0-z^kTBfO}Gfv`O{x*GXWoI`Mv(KL|@DYGwQ^+czX z1&)q`7#xdx|L~lH!}V$P0v>+#`bE*G7I7$|5Em~;2m(my^1TR(md&%Aw-TrqpGqk4 zQ|(S#(Ji!$RZ+>nZ$8{y{2=oPPE{U7y}C|uC@S=GZgxd4lO;bU)`qE=5c7;qSg5t}948ug%j&mX!`c&UIULjf4v5-yUxPpOkUi?)LB+mom=WVde~589 z`zZVU?gr)hb;+jyhg!N)JC#>e6#egy&k^bH5M5b;FCSl{o|9;lKjzi>}0)-q5(oj`t94> z(I3<+n9i#d`(4uTQxr{NMG6m*nNI^SVSX?@&evJq^@KL{eM7?O^UG!8%180?(qB@k5rETQS(knQ+8J8)iv z!!o9@X0uYaGPWU0H|k~QP2j!}*hA2w7f`~bCb;>{G(1Ni&0^oH{PEhP?rHl!qYXO$ zMMHU-SFZowVbn4ur20o8HNJ~?(N-IP-(g=4V8#1>8Lx+dObwl7+56k2=%iyhzVmty z{Q-Im@XQb755p{A$kf2|0lAT0Z@6YIcGB6a$A0Ht9P|2NmSeXM_MLOILC~G2^b@zk zh!4JLs${eL8l3VaijB3#akUg7m-CBj=m)I6?vAI5YJY20sN$rkqg@)!jIb>7qI2M*Xeo3P zt2N$~I17;A4$jW5F6}PE=676LvHC~3Wh0+$w`iUDci_vfxX`P05r}iIK{aU;7m@zN z?`5y<#tbNVUz2x5iBy`w?vg0>RgW1=L$;jBH|UHqt~vsIN; z3R)<40%GC4aeN0@u^xH??gymjPWgM&np9f2zV)J+?Yz^7%l zK6@{h(!^0imXNwn-cp*lJOk!V60PT&aK1hRdXgQg)quZ*F$-aP9sQ+J+)whiQ@Oe1 z6~*?6cc4j__B5J=a1A%qd&Qcen8=mc4-$?IjMJu8XK0cC-0?AbS3N%|S(BAHHl@R+ zE%-j~L*BfO#Ev|2^xp2G6rW>;6x`=tIJFobf|qZxtl_g#KpjljIm((yMBDL1Sg06! zwZ7Ovhz{7j5_moa{R*j)Grk=vjCY0d111)z>!G5CJ&T589M9)hX+>MGP0zsKEck*<;tbAF~ zCG8S_Ghdxg-Mvb!(%9EWjveIa#Vw?s#K~q#Ou24}&3;C{^HQyDn7^)p+r|ox7X0b` z1P{JPpkYEN8vVG-;kcc4%`x^?9NVH)avASa&?{HQBBQjt9{k@H<+gr`G+}esuWfT` zQagkS2rWPrOiP60Tb!i2y)3*0R&<`PbsR90Vr3`wl7>XvyyFEE#CD=59#6iS>`nh+ z*^3bXqVfN7#Q$IcpH5Ch;vA6wmFQwsDFqlm&fRcFKyu=WfU&&FvmkkR{QDsEv+_Et zFxfTh!yql%C<%dh9}v4%JDAe(2hU($mwaWA^1BiK>gC0&J=esQ%_iavI>a*`=2Z*N zKC3a}dn*}HQJzePlt_@uZ^&JEOzz3tV-3Hq_ze{Kx)Ds0OCCLC3ACHg3%Le*zz}LO znw+uIn${=}v2Prjo*MP+>|QDG&qjL@FY8~NQ$uB7nq?}%;hFd>?A87pCF}T)yw(!9 z>$8H2%#K4fLkB!vsG`9_H}!Hb4xf?nR~N_3*+trO_omLw3QH(kMrHI*l_xR9rHx;L zg)`reyXncs?($rcO*?8?B`TL6?mi%T;ATSDO#f?pB<>Of8G3b>8VOWX0l9HU4R6fFSiOHAJm(wR@Szqf8(HY~jE)>^jnr(dF*;=-qu&xtiEa{cNQo(;^sHW1m&Vn) z&Om#edp_Ic6dpsEW897~!g14CKkU(P#9x<58b>^5q-3ECITh$##Jn({AhBi0%L?h< zoFanR9l5F?_UKj@4*wjMJ%?@i@iOv1V7^_>&QyCxuWmU1evJ|EtYq^)g`R2DIlwt{ z`CPy3eV+5P2;nOeFPB_myxwoPaV5qntPIeA_bf1GG$P>P_lpy`*mq!yYVfo4x0(mZ za9Z~%hWLy?t)Mti(K`2$Y`^BDiZNC{C8^@1HvAIpcR^i!s6r5wmjlVgB)bgI1Of`o zCBCl(m1|$<4H!3ylabPo9^~Hr;s~4nN={kmX1i8;wHMk;-4YGE3vtoACyyI20e#JiG#SfS`2m$Q22t`7ZWe$&h(|Lfa$tDpEH zLK8L+Gt959_{Fh`Ls@w0%3In+x8pjwp%TXHLpR_k7G%>@kd!_6XCa>H26MurX?X4g zPVJNx2`uf&4F=Gji}?l*om~0>^hDT}T%7=BBwJWZ1K`cN$_5B5KCbdWF-a|GO zs-$l#XORj2#zRY8t!F08%hG_^8Q}5hG5SVxp&!(TNSFM@YCsST;9qvM%649s*g|A+ z8(J37>R?%xbp!N&%-`jYkoQm!OoHL-O0R3ziGvUtGXQARLY{`r$dQdf!Q1l?(qF$*>$FU7s z1?v?d#TK^HFvXaj%#@@v*>YAkla&`xtLis$pA42Jco&g-mF+c<9csWjH&+Ydwo zpp6`h=74AS(uY$l;6A%ccNTS^lcqqHnCG`16Yb_@pb(Ij`yCqb$_<&r>2j6#+%vQg zdlj`{S2uS)0T^4_N9H`6Uf)9_l>&rTIXLz~#;4!*AZj@4Ei1`^9MEiP-?KGs+Z4c1 zK15?D{FVrmh?0w_k|Ihq_*uhqhz5?omB=(YXZO=rj6Sk(<1W z>y70i$%(O`DY}^FM5+cDOKWMpfbo(5R76a^C5mYwmF}|C~%$28ats>ghu5A z50!(B8nv!JsvKR3hooXpceCtp-YC&4azn{GI!z_Ptd4iC#%~N5J@r5kp&Mod({>~6 z#($MZ+SV@CjlZW2+ZIW|4$#oK3ELd5&)U+RZj&XuXYrwsow?o_!12uBvHTfu4)4zY zd>ja@^<-gSY)Ae;^(x(Y6)fUG*_Bms7@laLDgNdHF*Pg!RtgzyT`<0>ej6j%p<-Aa zGT5uGQuw)7@GGCGEdv7cVT&V#p^6lK9NkDL*%#D2jN1{e>`mu-Ehj>PMk%Qj^A`S& zm3VZW1jgB9>!k&|@cmqS2?I>!1BJxmfQt}kaQt9+H4lKF&KvB<%0lHU!LP~cAOla0 zoenVSB4>AQSkX8cYO6kwb&J4(N=F#Qx*WX9B>ok`rH=JZnr(@Uzxu^q}4ospYfVd)3qNzZN1n=U@K5I4dp`L-rqbf2i8(O zy$<RAWisA3YzQR@4I*T2xGi z=>E-~T6gJ&wl*zoDKo_~E{iy#oRxYA=5 zmI{RGw7zT~0aFheeM)yW53y(S5Zg>K_m-!krFGXSbbaVqTsj0c=z|E>yJTsVIbgi5 zG87CQBClL>wV3|r6wS~QGIeEZY6C03T`s|mG z2KeYTi{tKF`Jdnm_DN|@RAN#ng8V^RRpe)xRS_m`j8|H>40@s*%t?tQIxVS!C1I*)xeC>ai>@nwjTO^!Xk0KkUf{FN$yQf^>B*p$WZkZ}-%3dPUS(Eij zPO)-x;}Ba%=;_+qN*r6|BezP{)JQRRVxR|%_}N|9eAjfKKdW^2O^hjHPM z3g1|I-zS;dvjws*8nw|*ytlGA9lL!!@1RSM-|JHJ9!z>+gKKQsqq24l3}kCqKcOoN zJ~xmJ3;1gM1Eu3OKt&0xat7_vm0*%|ar%fZ4;`}hmFqnd18Bk3WJ(pZI&1JtUCKRu z<6IVdjCAItPA`tf`@s@1sWi-JCva0~T=~qMrCtdzM1B(Rjlc5v&KY}lIb+ZA&BvR3 z&oqfP-vYRH#QG5Gn79Chm*>%b5Kle>T0T|TW0#TJYL%w7RYe<|w4y?N9zgP8Yra$7 za25vL*F@p+>q3x};=;vK&5fhhBFqcCr5y}-(kKmEb=M?;VMcg#y|$fct{^R=L98Zk zfwo~Or`qptDH#c+!|y-qO{HV*t&ed&>DBzw2{u_vH;Y^vTBnt(wg<;OXk)9&1cmjp zx_Gr`KwD$8C8hB&h-Y!sjD;m2!Jl=zEW_iv}Y4aZ=!>+_J8LC)C%- zo|dHDDV-inE*Lj2U7vtT?{GpPP$eg{tF_7K8wIA|BNNfhbdo3}3@SX@^#w8z^QekX z1&Aw#;ekl@tz6*SEr-LjGh9J9!xb*UhZ9NPSgF@O-6c2^-gCY4NH2BeHYU*JnHj}y z^)*!AUBipEuU!f>VWG*|V~iU@Mawn_68G!XkRCnihxB#gIp+&4qU}xE`(#7p=4@Eb zqO?3N-H?LqWHGgc6v0Ugpub zbEg^Nf-Ph2FF;1uE4wZU6(=o7vV~!!D$MPut^F?4dp-hY=4WEEZ1oFf!LI9(+GI~v z|2qCwWMF0{zhFJ{mYG_jN%yopDr%eUPa=F{Te-jt=boUqow&tcJQrWYU6)vw;9a=m zj@2-Zm#7ORa#uGJC-r-_!R^1KXKVB4T7z=VbP4u<(}Oeh`m>Q%ND#sXK%5y7}ZD!knhq`|FovA3DcI!n)`mvnHu!o>)! zzqhvJ=H}_q*C@n8JG7RCdR1+7Q2UE6ROLV%_eF&4?%L2B5H>BU zhNB~Yr))ODPrgl@^IizXRGq}vw1bjU8ibu-qCXQ^=l;5`Fe*t@{!RC$dE5lQZk#hd zHjC6Inv3T2PZ-EsdhaX)R|$8@Kve?HiPrWfuiGx>@4s1Eg;FJH-aLaCH>+3r9WrQN zhG|Bdf_Y&^-^2qA_$;H|EFF*LC+$`;}2l zQ_hzP^C<~oXN(z3^fq|MtZM%xN}R5cLAuix!S$8ZF^-M&V#tkErqJ!aMiEJJ_GW^J zQ4NvXJ$Cxx!-T2^wI~2-J=9cKAAW*#DS^|q+OB`9{MG$<*0$46Dx5gLp zl7kb^lF)gik5^2`6m2`dYGC!`aXPTr~$UUjs$odx3Sf zT9Jvw{M2UhOYpl2Bk#rX;Kc^bdOrU99EM=m7*(S}`P84)2Xc@h>-y`q4kL2FEM%0H z34?K>Gs*Y5?E(A`Rz3APGmW%ou87FjjvKUBS8mc#j=_|Z~`&v z9>1PiF5H2>HM-be++G+{dsPG5!T{_Tyq&Y4CQ6AcvFeQ(Q8wnYV2GROS0^T#P4GK7 zdGREAErK(evTUo8d^^oDD^3#yaIi{zLiPGK6%nP2?vBlZ8aklD$wVU@yWSnmhj^u6 zdlEaZ)2_FnLGL&T2q;<7fkc;C(TYR~DhKe9dO4=4oh_wd{07m;(c5X)sNI@TLu^tt zI8vDC=uYD<7WdI@9A^^*IyCSmn^g|V2TO?o+|lc|wfR|2goFmoMi>>~&PhnmUj=;0 zBhdgN8zE$A{7Slg?z|veMj8?Ail~25n1}K9UJGV?dP|Kj3@NAGah1KwO{ai`Ukekf zL-XniTjaUZ>s&g2y1Oz5X^A$ecRYOkKLYMmGwDSOlK*+9Fb!ojsCQZ1ypCPa8L4zvI)oYX(MTKL2H6DY#=1peF{_50V;UuAA}~&$G=^Q zD@*TYs|mU4m{kW%U=19h#PZ4YBr@+}Lg1o-n(l(7utlFS!XYr5MSi6{omVDK*1LqF z6)dACG^tcZX=CO>`sXdn>DYYcLDs~2gVs9kQGy*Q=^a% zWa7E|&BiwYh=E=FFY;`u5;h-tiH|6K(E}Qej1#;OX&q*6F}W2pf2_{2FhO#N2ddSWm-H2u@9% zilUT))x9&WiQxU}*vyy}60pR;zu@n8?B;g2l>dR|3AhUW(*+vRqc9;-Gc|L5(XAI3 zy2P%7HItk$Jl=$U?7@J=GFqQL)(HZ!i-Qs%>R-+Chs3 zC~9lhF&0PVN^t%ge7n`744_)%^XKgX&adLRPfrgQfR4$t@~%QF3!tcb3OgAX+%=vM zqf18@CNsNnpsj0GhjT1!3(~k<=oG-!e%l`}L(S1Cf}b;TMOu-ruK30;^O5vzr6sSw zxHNts$i~m_0bTRIlh=Wo-3QRsT>rMp`%NEq%Dj${uKP>8VA((v>) z;2#@5J%eZ`$_Kt{v}asgX<0Jhk(_}sVF2OdDcUdr@H>~Fo+)1lhLl+@%dKyIz^aiT z9s8zVRO-CHTkk!<)pH8UVs_!5xv@a2!H9`X6EptViiTTKGyh;_?ezj^bzL7rT=LC^ zJR+s7OYu=hU`kDwHMn8fAIltOMec>Bb485Nt-f?hm0hd&`%RT{E{m0|JBpG;A@0OP z)EdRyY~M2CuuhmVOpFz_rk5|q)4=ebDP~?QE-NBB=sUqPwAO#-o<0r!cQkhm*n+eT zC~=PdPrAYB=_y~kvt(W(iaqgb_lKOj(J$*#;v0DLZR_*up4&PYOOfW)2pPni9U{3T zsl93|TWvhcjxNIjAN~ud##6&vXyxw~nUORq$sP(c`ENg({ezRcb<5k~EGgcp|Me}^ z=rWJvg1Nt=4VW5WThQ(W%a2bip+DZGX<1ua-we<2{@2?u`=qSy1#RhB@Aky9pFe+k z|NDAEe}?%E^Z=f^)nD~g`wY)~Ki~0(is_9oHbh|-jBu06#|m>z6Mtu>%InY)xq{1# zO9&XV5#_B~6O&h4{YpZ`Mjb?=Tn(ILAZAty;uDZ^GUL#BVu<@8TmAgTb)L1gbTm92 z?i@Xb@JT@4`F*i%JV+BnpG(u?7s*nELPXbZchbW0Cg(g5crI4+CsB7_K@*PevSuME z-fDzh&Q-6iYcu1$S-~LikQ=!R6Wfu7((QE@ZKAGZPM)-!9YGYBTxFWSa$As)ZG`K~ zYMe3nw!2uCV)o6ow{oA$7j-y)!W6A>+^zwbKJSIc;j53On>tmM%l!4+xpGtPJ=UqJ zo!&f(B{R;7kLgfuueFL#_Wowq>q(r5yGfRcn*+~SK~D5*2fos7sO&K>$^cAGadRQC`cbSSp+*O$9vo@r+Cp6(S>oZt4J`_hYp& zxISu!qlFaA#YH2vqyGf?7N1iL00zfsDp?b$2Y!Y?AdR{V5t|hCW&c2nf{m_s&L)x6 zLcFi-T~n`D&L?_PTFbv$7li}aCG8g$nEuT(UEs@k{B`5L(;P1Bb;KtXc-5_|8m_;k zz3I(!orL(Nw5y}%FPPq3q$%{>iAMdFlh5?_=ilOSR^H+h9Z2tEb*xSHqxD^UzPKR# zbeDzAac;lq*X5GDAUi+QPpGTqH$m$BKe#_%7nJ)$OoI1v=De02Dk>`2w_Q(ZdssBL zBg%SYThxwMd{2u}%jD@t>FB95+I*IO`yu7#Q-t1|HfDX{wRuNpLc6=fTY*H(^E;BA zauUTgIw7Efb9qCsIJ$0y3^-A9-X?FwO-&j??p4bsNrM=;^u+co4!qx`7qtmUA1+>( zX9`b61t_E>ff%YF+{!$b(R8cr6G9q>ecs)g&y=8LV^0(g37RV0dY#^&sWw~iml2iR z9o233Kx&Ls25kpRNdZWed}Rl*0~g)Ga7TBke2FS^K*LuyyX90+fx+|ojSDqnF_i~D zw|6;Pq;s2Bmp+wwz6utab%m9~$yX{zB~|TC>^IAW0kej3-f|S}5`p{}7G25t(QfVa zk7H4aU=hXz;-_=`vS7#ov3A^#^xLHqdx0b2cr`{%;vtjxafGClsqL#9nXi5|#LVx# z{?jbx0F>@5$oPgBu5GXZf!Orqmy6S&R+>ujmZOTfzcPzJ=KJEgm6)@%5f6YimUz71 zr3s|2XQE0k5xDWtqv>ft3uub}JL}?F#LjaBf0(|=jTj4G4kMuMciHnRfC^=@t~$H0O#pkH)+Dw{ou3a~YVY>d*kYpMCaT^=h9kuEsqVrjfzP zU00_CLOCk{s_4N`Vljn!1X$ZNlCuXldVe{kRDs=L^$M&>4ccSdaH z)*QUEQWhPbL3PlKW^E;ARVOZ0#!-;PD-d_17Wv6*YFy0Ys_c$Usz>cVuS{w5{$z;K1sS)TVWpFZ5LdI}(uwfuh_xj-tlyg?@#6Z@=V>bMHz5mR5Q7fG_YXj# z2<8f$52DxPn=2uMf z4K$E{If@gf>bN4&_7XcK*%MVQ4+x?!cIb&@0;0A3*e}>^qT^Gz z+nO8gP#uKqlcEHUjJ*voa48gPAFlA3X0DS7Lk!+JhoLx)MSh1}IquS&L?x@E6g;@% zWJ&cGCgxiBxEhT4+3azWQVeM(Eqw0b>Owt3Kb8la}cQz++7pUyQpRrhyto)_31 zrCrK(U4je_=Y>109r}X-ze>E|LpCTai!m{qq1*>d*wtzVn;){2#!9 zeZ1z+tvc|NV7Av&iWi*W^w@|G)o4WVrg0;vhzOy*mW}qe-|M~mgZhD1vwVrR0mq#d zBePIBe!_LTmG|9H?!qZoGYs;j>4vrdTv~cTBDu*H++1BQqeBfVE5P^ndM!(&kFrFG z2e$4-fn<5AnZ+&RVD&(B);b@n=Mp?M#C^Efc+^+kH}>_<4A1Ny%`dvXioS)dmXm`| zp}&59ADm6?xH@5zAd2_X4YCFc)l=-84KOix71Bf#k}2RcH->_aKGw=zXU0nAh%+U= zvweQ*@#(B;JI?&zMSW7eTBY+rE~v&H-Qh%Dz&C%n>QWm~?(+KD*v=1U{yHxKYJSK= zYomRMOgV~)x6sZ=#h~4R%Wx9y&r{9L)m~t!TQt9;2Y7<6D<0dP<(){K<()_k{O*4Q zsA9FyO9N2BeBqTu?8Ju)9|lUeM5HgP2k7eo@m*Ifqi8xl(w9lQ9>uCate(ASq>5%D zD`>4*(R0OH87oSwna;HX%iXG#h2IPg>YmiN7$peh$( z6Wxu@VoIz-jjy|DHfP;T_0`Yq2Tgy=*~!3$HB>SA+i!KgLX>32&xHQ^nt8K&RQx{v za$#(WJgaV=G!7ijHNgn*XW~&~G?xLQpD_gM@0XEuQ~b0yDl7yYm$O2E?-beSq>sm$ zv!Y{pU>5eC={HD)hhKI46g@sA>N$G ziv59M)sB1NXc0&l_^VmwcatSRZ0k-lXE97-{xD#B70<{yPkT>)5Fj(}$a7j3`0~$Z zl<{&+_^#B`K>RH*-tvY;o3w1?!bNQadU9ltJ*Y?F$zw#S0pj}&Y|-oQRZ6+z;m+el zF0M59L>ELJ+W*tOts|i7^w8p%3rXXug?U>6O&{30y%p0Wy!ae(Ff;kiX(=P+oMRK5 zyU%aTZ*=a9>gEP?08{w5?ibj_UM(+(T>GFESvdZZ(ba*)u;+8zn;B;rZapSbhMZ4B zLz8)nm;HT>aF5+XoIB|jq7K-uI;Kb&bOLAH1J2?~*^h-L$*Us%4#?SwZsD_nUDX9< zlinNoyE-dm|7h3;W)L{Beq4y)$}8g%G>KqPB?-3FD&&4LPgbCgDe42l82qq`7F@>56o@rcCZogK@PaoGWjiIw_Ccv1-XT z<)gzLTY?Cg7sSv#UTdY^`mC0CppZY7%>B%*d%Nn1GdS3cifucC% zThR#sbD7o4w=*Z4rDT78%cDd}QEZiQ&R(sY%|5RNanAJW(G8zO7jJah#+T({Ym?ye zF)8657yQv6>l#7O9$Tm%Ec4Z&YWHT7IlQ*pup+^x2Vm>FU4+HyEmiCbPZ6Q?2@CKNX+0)Hmf!(WQCwI0Y^x$hGW+9hyh+yyc!(&7}tL6kf{hSp~d zlVMp*E&!ZVimvaQ$%Yi#XBa=^@0;?=AB}kyLV78Z3U@AIC{It3%L7uLdoG)aUU(py zrPJQ?310x%hJ#j#Nd9Gs0FzgK(QhljoT=SPmpaPZy+uryInduORqjHxSgkWrsU6nD zVW8*EW*UAZ7W;{5D%LmH-)WGfPHoqyPBXvQ4^zJmep&Efa%j49z^=LA|?27%YcZcXaITDGrc-BKEtq7%%7@-vH7r8 zJ#vJKf@}863eA`R8-4}ET`#^77KmlXyfPwQ-2QqG*Bx6SY47~m;Jwi%c42#vu8U$W zrm#=iQYZ?Yb6CF5*Lmd1wZz4aNUzN~_c%OOZ>!fmP{?XahF%Xpj93T=|JPPZpawD2xf9Wc4UKwPkh8 zw@e0Q=$)MoMF?7iG=Jgw8lGOwcFJvsov~#iDSxPOR&TZ%$X}WOizl4k27JwY&Mgsu zKBdzE@*z?;&y50WcfAHxfTA~1rkZ`rs8cS9-@S##)6XFSvwpMYeVBc5O1KD${iyOUU=fzihkOG!ZVoKs; z1oqq^*ydM1OO;T)v;|zC?nUU-ACJ$S_qH@iHn~UWGYu#Ui3rSq*98MNKZz3>GP=DKOL+d5yGo6 zYna_po;|1INV#}|>T{Fi5cns@JgfQ;sU((4CXp7!ya0m*`fwp+7E_P33ZyO((J(Nc zxj3Yvgz6Y1X4L9Hf&8t_RsRKyv<&nPzgYT?NJ~jQV&?^CdeWj{4LitTM4D3GXJwO8 z=Eji+(k~mP-Sa(gI`_I!sMxIAOx=1D$y3=ST@}nK=9iuz+hN(%aUUaFZCD>!wk1F* z?*NTwPdrAf^L>unse6}b(QJz@rIv2tWj$4qlpbxvyUz>i(GuJPLOU^{IK ztM}a4=>KiK%p` zFypZ9xm4fFpDs7jl9*Y6G^ESV5k6ASec_V4ncZ6j6Ael3JjntomFXM0DKu4Yde9L< zPqCmXN|c_Cij-%!!MTOFD;`N7F-`ad4?i!U2(#|jSG0zMAh|Ue#GD`-Y`6ml-R90j z->rhV=c8V{kz^xt8Ey~4r)|-2A!dgjY5h{sX zEEY$mfrLR)2%6lGlitl7={wGe6s`BV<8j_(GHv{Qf_+1hZp0N*YDUmWE7Sw1vg zDzlTV2gtun=q4)v1d`_c7EI69cl!hYOW7xsJk17XDwIn1f3f$Ke^GtWyGkR?NVmu! zT{0jspoB__2#A1m2}4K>$N#j@J81MDoqiKa?r*RL#U?{{LPUtOm%<^WBb=xtX}Xsn z!z9Jj+NK(L*;Xg39NN1GZyDckm+Mrl46OsJ6Tk}4_iUTzRRGdjBzVV)YxFcQLow9qR{7Gb-k?f$VrVozyL z$@oALPkWHhU+^e(iUaq;TSQLu!W0DRq83{6cfA9tG94M3|4@(GX&SQT$%W({6b!Yq zdLUEt4~dSJxpb)64lQT}T0(P6;b#lOBNJsmEYD(5M0C;v!=h9$oG;Avxak5#%lI=HIg2Fa6QwbQn+P8FWbR_)iyRb=~lPya2+A;0=dN zOLJpGBp#Qi`$l+>oAG1!*J(u$4TFETPkuEasyM)2-YIpY8fdcS2@#r+zpDT8p*}*S zKg$~X(wuR=1cF}5l%_1c{kze2oOynQuG4AcPpi}M{S-v>o58XeqXY0hi12IDJKl%+ zj`tzk_tN?Aj^M_--}|T#hZtMWMVwPGd?JRJt(O%jk>UNOeHk0l%HUKC0DrnUlNbFG z$A!K9Pn=l&ei&q_yO=5Fufu(t2`eO!w6A9CkcX{L{=J!`l553d@h2`;&^+kw^Y3qp z5IKCBVW~)LnMP(AQu6MB(`NS)dcYnb@^@k~FifCc{KWa6|Dd)?Q-`vJMVLlq@=UpU zS{bP&F_*ga^e2v23|C6Cr_M?dy%uv!$x(%_HI@!?VY>Qp>&3(AU6HZQC6SfShtE?L`Sn~jwq?P`A)DzqH#c_xFF z#dM0<6JM$=(D1vpuJG08Whvw?Eb|VI>`HdLt6vU-#F&~rSYoSun?H5Y9Fkf45m+}} zfwx{6cSo54sExm4FuiH`?_>jrWx;>!#}D3c-hiy$4}#d%A`y{tF{ZNpsg8lFxnu4A zzx;**B22OiGoPkVF#R=iRt~}+B363xlWqI0>1+*9R;m}QykWV=q%Q79rUDa+f(*7( z=<1U(x(Uv?9Y+{D+dbWt_O!RMeY^G1RF08EMW41RI`8BXW$#x@PHD}OPe3HdCyKV zM_E4Yd}6l*{|sd(l)^lt(5XEY468>5BFCTk6(ANW_gZ%@#P#-g0plOJ&NE5i+O4`1 zZ&rzH4jll;IZ~F8;?>Wg69hnoRZp2cMnh%;pIb<$y2}l!oKryQ+IrMqf!lXiirkxw zxtVmrH7Fhm26r-w+V#oPA6vyM3$nlXX0SXqL-3{*%Mu;yR`xHv-}QijJj)@1RRPxLdk0>e2y`0@L85_|uG^uqA!EvH zN}K+CT1}`0YJ~TL1&X#}h};kjv6FiA7x^lCM?+;~pDhw(*dCv(IHvvEKn2Ee^8yNE zzDu&A(hcuuv-k)gG{z4^$)x{x32TMjYsJc1$sTE;<)$-zC+xquXyh6e!VT_l*6!i` zHI}+<1qnYCR2-ot>ndcy@l$k>hvi?N=Z;v&7Y=HOtmg}dLo}`9-mqnwu~Lf2SX4TI!Z( zJ?w~qDRq$FUwV>U(se3`3<3I+!g(WGD3-tRRk#Xt=xDkYRyB=_tL|CfI9+@p;KyJ} z?%*(z2RO90Iu_R+|JA|X+$R_|4!Nzk!tH}BmA!@d74cvP+&+0GA>}%y@>WP8M`d}q zolVaqMS|6IR!#z1T)pT-zmL$VFMm1XnjFH{=QZFlt4`q2FQ^6N&q*)ObUB06iqyLv zl>#YEwY}ly?za9a?+Q4Rvu4?w;0x`Sw!Y_>5s6M@kk$;PYV#7W-HN)LrAwl)*M<3! zYA04&3ssu&#eCE=$1b}*BUycP`Oh2#9}PlHa<6iDe7>riO5<_UQLWNW1yRK__5-sc zn0`JY{Ik%CI=HM?}fdg zy%h{*u*$W<+wrikQcatBtt_Y<^D`V`nOpK%Wu^RT|Uj6 za`aucE$N`4b90k8uY3sX#DwJ~y*v8I^G>*T>9B=r2Nsyo=eHs&-B01)6zPK@{oT}M zUp+@os6ktfeT+Zj9?{9C>H;V)NzrnBgwgWFuJM%Fae51noEJDQV9BPn3Bos{crEOup~73LDv-74PeZIi;-u?18XH_Y1)a`$NC#*Mmt@ z{lT+EZJ#Vq5~R(uJ=I=Y?~FZAN`mCzLjmsUbf|Hw%3cCo&8EmKp| z{gg_RtJG+?MJK5`&^sU;Yw`M-hOmX9fDVECv*L$xv;jIIDc2<-KZ>$-Gx_j)@<=TErbOD=UfOuup!cM)mXC|BtE#HBG+pI6H_%IM|M^R} zZT<*Sd2=t3{bi*8o#}*6WIr&E`s8c3-ycmK9hyO@W0l!N)a$jB2(@4m%wTwLRy%QH z&tr<0BXfFmFVKmwHaaFFoJ)GPaG5&*s9Zfq2+<7+1}dfaa2H(U4HTKa7zC>fKV@2UVI>s4D^&D=fBoS z{#22QY@y1!5TX#HHnd=7S_w-ME^gONJYA6a=Sr8FRCr^m;R>kB8uyN4a(zUdfaW-L2D$~la_W6_DNkW9ygIPNyM#$dbUr#=1hN>aka|1 zQS&0)qZO24bU8CKqw-xZ3?#Gv-$lxC*8s;+wls7Hlkbis7|YoqiNfpi`pC3I=ZMI5 zX^J)XWhJu+jY;6JU@mf-woHJYBFe0DpZ4svY3qVi}+RgRVGfF_fY%X=!_U z$P4MH5ICU?pqoxjYCUTEKEV6KuD6{nOz6<>j|8_Ne@z9z5%0Z}U1kJ*r0`B~$`P-? z00y1ATur~teJfaQ&_PQFH~R-z$&buNg`%~BhC_$tItd&Dzd!Icvu?ckS0dI#{`Em} z%x0{~r|4?4iDI|Zh&_(OfM21GP{t8vMbI^^Ax1g}v+S0tbUG9N8sD-q3>{~G3IqDi zVJ21WlLqj4^FtTFx+V1u{wW9q>ZGE3?|{qcpnzyRiZ3BmDShexMIjGph>K5&ZYDgIE(9i@FamTzvgZRW2;sN@GT zeZ)kP#jwpF=fs3JBCI?fqh{Mw25WM3mgwAwQ(|0}99vrPcw6@zKSG#G$+sAo^ybh; zBIYlESRw+S7Ro>3Ffe0z<9jqw-88P$prk9TK=**@EpcOn2#LCv^Cy=<4C!Lnv!Z13 z9Z9hn#%Cg9vy3mJd20IU=79V>0sVW(N35J$NoxV$lHiday>Gg0(sbE0hyDnif%Q+h z2Rf7bP7%O|QtzpKi=a?<5PjYQxc zl})*cS`MBZRr8mgU+U9Uvf!zNhYO{7o>6oQ`>j%1xz!Elb|ah5a+1hZHs|Kt7u9yY zeROVBSfBN=k_{QQgdQiOQ8%;Reeo`Q-nsMj@F2tMaYGUTw-%ySk<9b{@;JfAk&)H@ z%2z40@x7S0Jrr}aFD*_z+b2Ml&ZCDS#uzt1_R9`P#FHrwq6r>%Rf&lo;1T84Yyoo2Vlar)#It zQ=6vLhIwZh6oVi`6*mmIp__?;$6i$d^ugM5d$%?QULGQ$AB>vIX3~9Er{9kH?$cGy zLgPaLjp-l&N~)}KGsBxgL`2N;3~XmXYTw*Xie2e^l>O~&tVEvIy+hsZ`_#9o<9Si? zOCOF7=if4aLH|G>MtMsifU(X7|0o6}52RMM69F%!Hc%#}U2EtV`@b*xPWUdB``?=9 zJ4%Z~j@6~1r_!kN@py0GJ7`?F|CD;j18{zv;&6y+E4DIHlk2>o%^?YndYwqhNc6xf#r%dt)Nbi&u=E*Y9VcSD%iDfIKz;74-Jyq&CTOfqjYxAv zbE(hp;xh&vBx9RC_U=)fY-iSTVa4EsgD;cyg>t>W3<45TvxoRQDQ&rULJ_J~`MN)u zmep3d6DT=EOvL3LFH2Zpd_;2HLqLUjD`xRVr?9m5;Fr9F%4r(wzRw*gk0Gff?b1Ee z=YxJI!dvu;x-$Biq<+K3vV+BC@>1l%0tNJ9gM~!q_I#+QpNB=R*B`xq-iW%C=4tjT zc+ppTB;#E$8B)?tHTQ?g(Vy&1Xo=ZT`f{ImFXlr?f%9B>)k8xEANx1_3G|O-_KtqH zBu&*&=A}jmcriG*?6g(W>*P77Q}V}tbvO)3^f!p`q&D=vp7e&jz~YEY!p;l%%-`!r zt`SlK47)<9jE)^D8GPVfBW~`PjuY>L<$ac3hV{?LyQv+TA7;~<)pybjKn8j6own?IhF zEZIX3#g?L9G7Ci&w%>0itNF66nfd9^WhsCL&)*^QKN|R#B9PtZD^6S`1FDX@WT7|o z9ur+Vb~{zSP1Mwz)i0OnB#De9Az6S_YisvS>(?k^i#AN}n+GqtDm7=_a1{=ct-$l& z`(w;vlwRVCyeqa$Hy2h>FniDc^vVQ7vs6#!DR#A`%2G<1N^}b4m%808XcI_3RbePU zk32w8K(F)F@vn^cYgQsT#52BZ=Pw=g36M44UN+m?S8iq7C58x#iLqIV7s2q1RckwfTV06L4V_@T}G5!~d} z(doJ?VQHvb4+wWxN{>TREj6Nu{T*WD<&h26~NWn>o{cg?aI0_3Wg@ z-dphMT=iCcDhpHRjN(|z*=T%xwTv|MxA$5~UGfm~762Njl78wL5>L@FS;A0+{hNa%qW3A8vCB%%@d#c!BLw zF23CZZ}%O;z?b+eM0~1zOK};oZ7XN`*Fa2H6Y_%rI3mCId zBQdDvHo7M~Rlim!yjdI0{7!IPy;%Ys)r-?pKhiczQ%ACdCb7+R~U5p(5Q5+7#T@}=_vIrlu? zy0tvh37YnqM*m?dtK6B;vsX<_p`l)H7Wgs}*6NgT%*a3?0C!+01OW#pf*2QZgaYJRxOc_VA^0(K*Oo=c}guXU+#l_0t?{_Qv0f`Xg%4f>ech(YrnIg*|S?g#LfOr+f5ceaTb_P85Ix-W*TJYUZTqgUSBv*%W;t?08wI5 z$~+r3)3F!hjb{JiZBkN3xIR~t+MXnbl%}q;B{G9< zrt?D^r_5=O!;Wfo;L;Cc22~iK$zMu8K;*fbYJ}=^zu6rh6m52I7XgS^auH9ZwU~1; zAik}2v-oO6G*voAcaT`1;sQ9lwmJG+*s?-%JZ(kjm(V8;n2mZUL-Fk)4RM`>xm|RJ zlhQ`dQh2UN>z-i)pA^OqzwP9Yv(<0w2cC_dom9SLx={qO(ElNXitc)Wi~7%<0KW3S zf(;3l^TYGZG~RxlE@A)CI@0WLHi;K;VI)SMc;xJ^qU}2e~PDE0iJddcfYR!ii(>*j+b_NAXv$BZt}(vOdRnOR#jD<2diqz_PNw zhA`weaY>NY#J`Gbnd*K)ug@VoikNyU6sVPBo+jwB>5E~_M*W$8=E6TskUAH|mje%! z4IR7o1g97LC~inMH0Pm>^32N)mR53DN>xxO56>0|-mWtPcW{>VT`0vF6-F&?dnZ*WqTl<&Sa(P7(jIZ2wY<*{P(31_HJfq4Z;`4T~e^N@W5b}e8Q}= z$iPNXk5)}}?+! zl6>O$ue8Rby?9O2@TL9KY&mDYv;&AE@m`HBFUK*Ldh_9K7Y3Uvm#ufnAO z6q9A_cq={ABChA2)BC5J5%3!@hSJGnQm$7Q)m#07yd3)@Y#z5y@-(gEZM0&rO_v(> zo!Uf(ZgS8z0=MH1=N*YGPE7~@5kKE&$bWISSbq63qnK}GrJD%}lJ)lX-rU}vnd@Mv z`D9_ySwqjlg8HN7wf!0A)p=k=Lc%iHh7<&1kv1^Me2Kq%v~jd&N?~PXC0P6Urx$#&eyPh3zBzCfEyytx zZVGmB`0Gcq=d$-hWBL)kofJ9$riVTz-o}eVYUxnDlrqq?nCqAnXsQaXFj1G2lcP55 zs3B{;pQce9BMf3@_Ix~tK(9L-pc{Liwk$IECa5mk7%R4pj?_AQIObY%=ad$cy7tWr z3LC7mnhuGtc%3{AGzx`Y$g;DuFDvH>Hi?WGgqB?!#&;$R5a28b_X2M09m z6w(C$5!o_1&`(=|ugFXwBaYCkvBxwy$m+`SsOcgGq6UJ(z6cNxNuU2l|2@v2S3@~n zgy!kAs+rj2C4Sb%BD*05I#*fWX!#CdlSz?7kD{X(MSi~$y=TBR)NO@5sjqn@=1ctY zfsPEOg^YWxKxfU#DCL1AG2w^Zt@TuU$RNhFKQDs)s|e7q*r|DhjRw`I@lwDT)#-kF<%cxHPItvdv-EuX*-X%(BN?%{A;2^6GVEGK>?esdF zz~p6WukBtI7l4I$uUB(4(t7$KKU6-`jF!YQHX_y-a}q5$FT*~#-rD*g9(oK~{w$wG z!jweFCpTa`DQ~!`vGrOYV8=5bzEdu^qEzJ^A?J>zlW)*n7Z4uL-Qpj(7Jf&SO;FUFEQ{pF?bo##rO-{lFpq0T(o~ z4R>to?9@Wq>XwIcTwdNrB1TxFvTL)rbW+Zw5=2vK*ZL3UoDQBHoF_`uC)!Q#_3re| z4_oXQV)M*@zrSVp$KBB2#ns{6WE=yB7F@Q|;oL{8ShY&u)d`{Y4Tph%v2Wj8s7|KS z*zX63?+yB}no^X9+_hb`vtGg7Tw>|A(#xQEueILz8>teR%U@MgTLCNKMs3VbyO4$& zv&+4mDlTGk4t|n1n3b`cy@STHk0=WTlGJ&Bwk<;i^-G%GMM7;@HEY4Rsi$7_{F8a} zo2&DtqElOg9kAA~qShljq?>3Ta?kZ;`e&rQh{ez8)s!Re7uUF#@K_0kQB+VnR-O7>?^ZRZH`=$n zd8G9Lwsu_vJ?{QG%_~C zO@CBrm5Hj;?ODLIt$fwJ8mp3P(=m`)JJ^I(1Xb5pp1rSM#9JcQAvP8B`^SlfOU3p3 zb^&g?ZG0AxrZKQIog%3-tMEb@QH=`@pytqoHovWIYk9Pa|A=&t)ffwRRo*Xl~(? z@{ZknpofXaZTYTY*|p7V(@hmSFqlVEt{`FqUY}{;R7A#`eh&-w2#l zpZev}Pkp(9f?cTshb6a*vy$@y)PL&?E#IT9KU`GW7aX;o$ovK6jff$y23m{kbZ^9E z2>P-Yo!)k+orNSTJ*QviuC*S4oPF*SL}@2KL_|KBTZT#&aI0ul6;VvhOl^A|_G*h= zp~n!Z=1S=EM0?M+{h;{$xI=SmSP+WL#yLtS#l~+7U&Z#f9)3;P0QOw_x)l8THREu~ zM&OhO_O6Hk8mE~Ze0tB?QaRPWV0o+S0@)k4c+3Gp6pJ^Eravo_DuQ*ih*2SHQ-gGE zlgb;L26~HNfvMH&HS0chG1rV%B)a3D_+LPTs>D%DGP{f|5WTl!W-#PHI(#cp7>q%< zDuzhHdyRs#t8DqKoWw|MT*La#YN#0|hQSuQE1gxlHU+r|oq5P`d>4`m_V6mZ%5{mX z=_hjftR$BIChfp5nG$j1d_A=L@%`F5v3hg;#c0g@e#tnWT~&w+NdUNaZ^sbinYyOS z(pTYOmUlx{se^MlDKqg`FLk``_GU|z647dSG$V)eIYu_~Awmh|+2Luk|3qrD zh7TA%&TePG7*iZuHn2HF_sivegMMd0wprhp`VOgooLl})I#9TH%ml1qiq6{LtBPQ> ztb44-055akRCdLv*Kb>2P2<>MrOW*C=Dt06^f}2t-1PM|sS#jx9mRi#K3- z|10TzFPn-8T#tDpo6Jur3+$qS!aYPPi8F@>UR^7J8dUO&R#$<7UP|G>r@0_#?6a1Q zazFgqu-qJ=HvV#f8J<}+E@4A_L37QuX{a@!NZ`a_aVU4YO=P}>w18LrD*^HM7A`vV zk;ojcVA{xDH7{1=mX1rmomi%a(S9=Muhz|(2YCW*jRmC;hQC1~Zf2(^%>0W_sudV2cj2bD z=DVmFi&{@e*_3OR_|u-w2L4HXM)90~L7H{UmrUZA*~#y;W%V+6lQAlF0pt@0D&3IH zaAzQSI=S$Rh7hV@|Ks7fy03butOZ(-5+O`bpO_c3IHvrSZlST62D zM)Zdgv#U*SeSVG>VyAeSs)3h09BUst(zJ^+54_d)qNKA?ZCne^#K|DemReR!<@<$y z=@YNo_qlQh3cdfCryi>iL17-JHB2t``lc1Q+|`pB&g}oh)UP?Q=pKK)v}p>FrUE`r zjL9)ogj@6?=nzjy>)&HccBt8UBzp^|Q=x|km=M~?ku-e`EL*H@%9gYqKLK=$Bk4Tr z%(8{^`01EOr#?AiR9W!&>k_AkMn zJ&@GVJf|c2_JR`e2qmAN{~aguuS5T;#$$|GjO)Q5M@t_3O1QBaCsPHaeuJPy#8@U4 zNpoP#!Vs8aB{bm>@2rQJKH3`Q#PG>A$$aReSi_g#>QCJe>~uq%a#f?*NIV_A$wfud z0tdjQ;q5Hr^AE1LFw!9{Uv)Q&=><7ob)+8a;juFMb(+>gWZWVsK>Jl8DJ6n(Fzo`qX|5_J4mJkCllRYUK@myX*)^=w>R z_7r0;^Thi*gTxaQ2~Uqx+b-PPF@vYc9kPyAsg{ zdm{NihgD0sdo4hF@O^y{;=|0$<#?_^{d|H!QB%=&QAEn=zk-JQ*!qq)_jGjQHZCU} zcJ#C+Toop&kMMSb1hVX3p&easXLsmb$GSeuLv}1@Q)lM}6CgUM^2rN2>7vGPJ^^QZ zGCo(iP`tY5xYM-)r(!LZB}?qCv} zX3l&%s~{n%H;DLG@ZmDG_4tYX;=Nm9dgzm(2yPyDB0dSFtYt<1{3M-B*%}Vu32(zUT)Gd z@!rsrJbhO~Gb)3s@?cwuoynDsbi!SUz4Ba%J!+NmW(w!FX+}}&u_!O1rPFUbGnLWq zETq?LSh{RL%!rt(;KK--FD>=o`+EOh*bcl_3<;SwDj46hS}?_4IkhGMC5KSq+I=wp zk!ta%HLmy3tr1scy;qWtEVst`&&9UKzs7ImzE^CNXWrvOP3(R|jjmF|tX=hNzjl~< zwSL2bceV?|_v2dfots&rMU$#FI*L3bhJ_`#Zz zeg@rDs6=CH1d~4bhpz;YBeSUM=V+fNyKn}Nc1ZgOeA~62<5Xq2_T=<*{FOyt(1~KQ`dTvt_`ei!QX$fQ2jGX-+riW@3e5mE42H=r)x)`2RGGt=$U+j z(Apk|3*45UvU`z;+r%A~Oj)_Lf@RPkpK-j(S!>%~;s?el$RTYKi%PD3>-ooEU0 zb$ezj|D*oXf*`8o?KHHkYn#lMtPwA_R9-fxk=o9>(rbJ$Vt~Sf+ZF*ewThPf zHRH9L5r7tHm#3!}&DaGo)=ymU3{~rhiPec!LoOjJH?-mER!;jt_;Ks!mJE~FE4Qv1 zTvaO|LTH&z>BlfxR{##ZWm*KU_LwGSE6rz0``v&i=jqTAn1oVcXhV3uRW^M(y z4m=xt|0_=BX~E`#$AL?tform4R^5W9ownA`MD1RrX$-o31`k9$!?!U^Kr1gqot0D; z%+g@2`^LhvpqFaGwyJ!Xe_xY_XWugk48l&Qn;VfBvfa)9ohb=iOdW=8~^n zo3Oa*{1n>p$ZJ!Kz&dV$0IKqaqEop@b=R;ur{AtP^I1(RlSS;x_`eP*p=>J z?W{0CGFC+{_!WHBO>{WUYMGEmCxsyyQb7~CsF_bhBm}Nh5dQB2ST+jbd8J9M+%~(5 z2>5FE^P3<@gymM77vtqxL<9tyUk$ORaVI}9>Ec9&&~)!n9wrnpW(IH-2RR~ZqI(ZR za5CGAiC`R9TaWJoi8ByLSgCmz#JD^iza!^N1PhG-UUxEoEf{0O*BZ)&Z3C7kF4mRi6Fem#gq@;X8OSS3hI?9rc7$eq zhm^tD(8{`n)aqHq!g|l}+%8?9cE`w27E#7{7Zh zH?W9{ihzF=So^`Oo@%hjkJM*`_u0Sar1^^*GRb$D>cKnIUUgb1SNi>dr@QW)~nb{oq5s zH~i5^PN_XrL6}Is?-Y)o^!T%Sn`qi7Lkm8UDY*Q-9tr8+BmN6q{_?KHQPJ$uFuoX% zdI2J6C86iy(zxV2yUn)huJwUV+wMgdz1c6q)EYe8;z+3|^7~e`To%)wfg#huGc_S_ zeny7sQuy|V{s$$~jphkY3gEl0ZhRHrG;AlaTHi+SDFN`<8BBX?k3)yEEt$B7)|Rd( zIU(1x%_(vSTY2WENAr`Ozhq|zW;+OhG>IF}vBKBeKih|Z)U(?}6C7n)&omDp?rbG9 zkr92=`{f4_>J2&Ci;+!TL@MkmCx_xv^>ue8o7daW z5X)R;AZpmpe7{gvMqVOKj0QgS3wmG%g^a)6hxk?Lh>2dtGw5O}4I_Yml2kKlsknda z`BK(=Jfep@ARZ$BH_XQ}O#ErHUc; z!!i}Z$T>uEju-F!xY<3`w6Lkx-%mWhA$LwRb}g(u=M!;Rv@75<+2}I(_B>1CE;<2^ zK>B?Wv(>(q6Rd;&xld-*y71FnDSh~We*w5J?kRC?s*!lfXg;XJ9>Vo*QvyuJN*Q*sx zycnFa_?vR)AP*z0#_Bg|8U~wc^fuZd6WZ+&E6ESvhYypn=$UFefJgs){{8QHh63j_ zmf=QgS>}i8KD`iuxqeKR!Bn!HY0qnL-Qn)a$BUCXaB~4p<{-|>Z6n_O0bY-NgR(Iq z6iCHQvUlIlX<(VWEXWb(?3KUmvcY`C&q4XLQ#YNU$S0pUBl-TF@yL%3;%e+iDSuKe z6fIz@?_zrPdx~i0eTQ)sC|sSKuU1iuuPWeA13)xw$q6i*j)@2+MMt} z3ZJGuZJKv>cJ*zc)eI4y#9;wm`-AodHs1_wpE|TlPm*o_?=))|m7@uBsW32*@LH)4 zx!7i8TT$fo=w$KH=(8!df-K^s#FV77G~Kv{h7px&*uVG?kWdo8bd7Ml0r+p(XI1p` zhl?4Q#oy^4zp_WRSb?ZXMee87;I6=qTHAwtTpubMQX_o5zFw}dEKC_EyrmYOrltTV z{ppmpODlV+zv%uC*?~o8K&^&myTNtj-Zz})|4kXY-0qkI#>Ay47z7nigBXkb0+4&h z47M?*plQ}uCmmzGjj1@GUyHR#yDq~lIGN)RHUpy<|9HR{a!?4ZH>fDRw2*CTNBdZ$ z_P9vG$#So8QN+pWhvWhd+8wf_pwg?j1;oEe(aFP=^(ML07V^oZEwHPJG}Yt9(t(D) zRo{rc!&oH z{6=pI-LK1Pny>9Nicr+<`zsNu4u=`!0N=-ksUqEq&LYF+g#$wk zVZNb`*IIj5mo_v7_i-3p7^-d-i0cX1Lsg>MX5eHrYh zN?VFPRQ2*1)cqx46d%5`8MA8-rl2e05@NH~+b*}A7CzgrKd4Jdp+^P2%l`iT50k^6 z`*weSY1qxxIND**OT`ThbCY86RPl?kN-61)@q8^oPp)uc6j(8rvm~eY9B=Ml>(={# zl8Opizg|K0uJw(5ZU~tBzxzy4B}L&CU>WSCZl5`+qS@ryjv441#_y9|J%dm%*@GT2 z58K0R%6rIfrbzY*o&VBv zwojjd83K9%>F@MzmM8eF+%-- z(v#5ihqx|e$Mrxos|i@t4v!a%9Rv0MyqCzLUksVK4yS!z-B3H9p$d?f`V6)n#{*)Q zQ%;FYQr!k-+JE!8c^@p@h;(+61PdAH7DQKtur|Sy6owfra9^A!gp3TEEXX{)FGHbjy zO<>?M^$GP+=CJ*2JUbAtq4-Q|+hb&DN)NG(4q0o4 z2tx7*`pD#WC{E_P=y0brTS90JcfXjo9Zu%t0I_puhdiq|hmbq1EnLeDBS`M`d5>SD z$X>({bsxgU4QEM(wwEBzT-PcJjypYMCUG*2IPlN#nfv3Zbtw|@=afsyqZcb~wMKPt zSn%GdWY|^RA9sR$|M?0%-7GzJPFnEyta#4aGrvRqom%>^orWwhj@`z9BydbOPq1qr z$YrPPKsq#dlMUmFxpcsXHovKP#XBo9I)!b)lOvuDM zk1J-!xB|D_Tt@%TU`2n>-y*RbVE3sAmr1eiQxwbAxU>bFK60qQ$y_b@<_!E=Pj(B^ z@*6EHp6T|f5S>!m&YaEa5_^$?bn50FcjP_CA0g_MBG)2MYN#CNB>H6kRLQzN@lB_h zYGK&(B!u42M>kVg87Z}lb1PbUpjv1_qo`8KPV=aH(*$317`4|T#n>QE7^5zET2dU- zITY!AhZ0Hi9rBVEMZoHXix!X%X$An#r zFYf+~O^M6SMA0$m>;SPLx!*4`L_83_(g;+}_5qK{&)zr3nTi#GapEMHbx}%-VPV0tEaaEv0vC#Xeu-9 zsv{C;7-n)?^jSFKEVG|E)}};!v4}gNo~A^&1z#;i?5$^*C)f7lZqkNn_=K!KWxxRy z);bwe1>I+EYA$SDu85Ek2=MunHz54PL3gXczV2pFv?Wh6vi%I$1u{RH9$~)KdFIsa z&et{!b{Rji>&72wJUWsqIJb>gbvO#3%i+#nZg>rR)rTzYP+0ea?rn=TAP45E zW@uQUW-AS3sc$68D_QNDL*Ta5)Et<0_Sl)TnxUnmsKw*zwSVBI=pLKzmopSv7VeW2 z@DLA%1os-$VIljlNEjWBDqn@{5br5`3+k<|Hicj zdfJo+KNSM|93_34bU6~`wQ5j`M?$~abbEbJAI4wTO+qK!t{2x{zP~T(JG2rdvws6j z)%7SyH;s~>xL(AUagYllb>ZOPAe|KAeJ6gG_`#n_LIK?37eApa(71Yo>5{pC$nQQ| zi_@ILhobMJkOWXk*Iftu=4&L)6?yIlJw2v9Z@{|oa!;a3_2A=c^cGXI-PvHmVw>u1 zN@DewWA%PJ8S&b`h)Vof)*9(2)*DJ9_l(HTeoDU)Wbo|5!>&?2Jt_Ts(M}0JtbD*i z#1?N&FFE<+7)6PY2!4g$GNQQrT|xkD?`myb)i{pkWLPi@3v%pr!<)(%*@#+;>E6+& zK+y7n1Tihu@Hz%V)IRCP?L1eqIqrSnsz;`w@+fgF4$<~qD0i? z1+9@Erj*KheTHRe5@+ta=Uiy&pDZ9PM^&j;uc`+2sG&3|PtX(PYpc5#JC6NNF<@ZWBa7cEFnxVkv;E(~d8DIwef zx5bGV+tusm3q1(_4Bni)#Bu}mvT5bWJb-eM@aNLu3tNK{JG^HFhS$AeQo&dRDpz1qlDpjA>@MRznRA&m_&D5R zu+wLFQ{Lu_zr&0prKG2q8nxl~)on=ntR^qhYi8**AeDJi^Zy2SAg3rjTxnciqd$mJ zu7XN_=S2&Dg~zdpkb3yc`x%Q zd@YvV{FO{)$v2-`_A`-Y*pKO1&4tRg9c%zJ_(#p@HJcjlP+j$&*ic!wM*LYyaM&6n3`hck&u1 z#5t~svGN%&*_>Cx2Vxd|w}lzxY@Rl!)%nX@9XFcq@&;!d7=Mn;xzoAk4E7(PgxN#y zi8F=kt5wSsh;ZuUcqdFZTBY})PKI9NolJcLCYDM6N?x1Yub5IEd;P}9)SX(wN(Kue zV^7rR@5qW4n<%kNaUnAWAyu`uqI}8r^}R2~G8<%%0bO-{x+MI9@Mu+x^8{;QsZjWU=dy z71x!(9ufKFw65R$Mt^_0i4%RvvPe%|$m4tWpbD?$pTFywHq(|KniE1lH!PMl<}vAlk=Qt(o{Ca)4GPlMP<-zle*EJrPt`Y@aIMj?7)yTwfCO;jdtPXH-NLo`mRg@z;(_WcAyla$ zEFRn%9T2<=_t#uxe&wN7+%IPQt6Tf!ilur;BdN&Y2j8Kaxay>DLH`(iz8eZp#)Zfo z%{wOSg~-<6$mWoZa#93NBn$q{;3^q`l{x?Abwd}fIF0!tlEuoqJ*Ve*UyG*yif_BA z`n<5V3>3*7&o!eCv0Z(wa_dW5uX6eXs%6nYOCs1Jw<5bWXUDvvv^5381=@BMTHJi6 z#CQ6tmQY$nwkJ)|;>ogb^ebPC(4k4RvxNLF87Bp_&(q?|;QPmW$(1e34XnO~;xGrR zFik?}5B{=j$hvO32ybvt?G)A+d*q<>_xAtQ-ggHz^>*C~(jyS0D!nVc2&h2lB3)20 z^j?(SdkejZfHbLML8K+r&xWuMcoYubwVA>!&$MJ_ZyVjfY4K|^h-We-`5OxG60 z>L-sS?H>p;StvAs7K$l;JmUYY7)q)2W6a%W!xgBW?h!z*c6{45Rqj_=5oSn{C=d`{ z0dC1_-?a12@@Z9>1a@1xAetxcl!3VAn9E33Uly3?%g2&y@?02+d#J~9F7nW13(_N< z>m!|=l?36F>}HZ#O}M!UiVTEJo{LAKecRRJoXng5#9$*ju5yJ>h(VwI2sb~Uodty6 z*-)D-Da>ao7=A+Gz05l!k5*`T!sERbV@-VgCs!f3?L8$tNbP6qkKw+W*&$+B-$B7`x z2fXQb#HW&IgK)Vqc!u{gW+Mu=UesoMtnMRff9XUUw)If+{iLzUZ5EQ4#0MV5z@Y1@ zXSQOtKL`rmfi(U*Ou<2ZGLtj667ZIiM%z=_~Yop^SVjiZ}l78h;9`H69~VlRtBJoeQ_Mqz2cvMXaPqkiUz2QHD|4a1(IOFp5^n z_tw~oVf!Y%70~Ws^9yj(L^Z~*m^i!G0@ufC+wD^!}1GM?L6Y|&XkhOme^qF7cyLl=&$yp8CC&_GA2CR2_$gi z`NgsyBoe^ng1^x#mXkQw9GrRF>Fq;4at^n!4T5!nFP+?^6uzuZ)tvjD=U|kKod5XV z2zr9meRvL_mTbxwtE|_1uSuN3Zs;7rw7U}-kmy%OU>R!VG zeSQ5MAS8~mbDlpOn#Ru97aVhdP(^CTvbH~I3dWjhYQ~F?yPab(qhB0%P2iAa8JklM zLK%f9cV3Qmkq%12O|Gg4tsKcgV#+@_k_Y=_9o?=Whm5RVSph6wBMJ}+*$h5pOUkGC zTj(Ix4RO1HEWeob6Io^E4b>J>mqA~ig{O!l@W6x4X!64yJ%l$8bD(6E7yC0^^C6wQ zH^iH(ZMS=P120sLP$13dy)%Q4cKEuB1NIp^^lwWj-W(&*HmO zjAu=s3uPPbKp>wxCbGhme4@MP;CIu^^e{yil!)|4V!|R>9f^m88hAsu9BP9hEsgCg zA{nFI0}7&qgRgFuU!(tu*A#G&Q;l*4Xx5>X{L8vE4G(`T#Adu*xpkgLfY*3FpHtA7 zg<5^Zl5i&-vGnj|C6I{N^Jg@C3u6#D4KK%cRiij_KW?lihnrp=KL|MLwMCHu4)A?tRk1odntN z>9Yz_MNOX!!xwt_-Xz3O@%Lj4j#PA_enS_|DuL?jPddpKdh97ged9PnwYEaL(Tl)! z$nx@hAt3K&rj&YJR`!&>!q-HUinh*J230=Et78D?;g+Hzz+c72ijEqcs zQa{$cfiy{p15Z`#bc3NQDFQ20bJ%0S!O7%-yB$AhY@U6Y8^ywlRu@lEY7s4e*Q))y z3X*v)qt0?LhX5qxKUGT18Z?q1tvNs?3T6p8?Kcl#UjYty+vmDRO9P(r0l&MUC-iN& zsCtr;l9K%u&?C4+&M-=_A76-q{w1J$6bm7N#!_Fn3Ft-XWQm{>=t$%claN?#^hd)6kFV0# z7l$p+Bh#rSRb$nmmjfRq`V(Y(n0<5Qw4L$-0+^Ai?D=~Uw0H1nv&->8-0u_yxS;H1 zFJ4FT`U#mJ;r%sR(3R%HA?Yiq$X_k?+Nay#Z+i>yt>q>Q#BpZZMHk4ZMsQLVP;c5d zOTT_?Wt`=ywnwVO|GN(03iP(SeI!rqeO3MC+l=PyoaTb-wb)IkL+PaaV@hfoaj$HK z7KtZ7O<`x0(aO=-i=&j}gAF&;;m5>XY`adJrayYy)MLQO@M1sWsl~$2;*fk>YT7Zm zWJab?Z=owGt;;5$djn>S49o19=6mQYN=i>f{rdoVP@~v1(^0%|eSiLtho|{X2IoBg z_N2oM8UOrD+Rv5}>Fw-34xnC~-6tq0vHKM8UUoREU3hkW%O@+${yJ#c&^NL{k;!R$ zh)>GJSW0--?qQ;DU8oT7j$Zf0^>PjRdh~+i=dOv!rHh3Ij8Pnae~w*Lb9)(0zUY*& zRW^8djlfgw$t+zVv@kwtV*HfB@@i)oMmbz)SG{Gq<$KL%;%DTPVwGI)VU4%aQKEDK zGcQ5};#b@a!oOQ`okTltz*x+ABx6(IYphjv&nkiX@EM))SJ*J16er&Gi0~5& zJaO8cRY|1dSx0)vy3EvpnVy$l-U!iE6QLz+nlh)q(?ZN6zuXAtE&)mB(Ye@+YA@-0 z<1|ZYwuIy4<1z&}g(Aa^+Hih>TEdpC6JZ3yEr4cHsWdrc_I6x!W|aDkzwdvk*LE% zQ-BJ+)JO=T!&x(V^s+C)$Uc#~$HQ<@6O`_On25ay5`wmhv8w9JL8+xJGrwiR>)_7u z(!;vzeb(z`p_ZeuAy?mXDFfM{dV2GqQCT4NA<>j{rZwDCw?sdIr>qF;TqvgpV}R{l z_^-L-Ds~*E1Kw=_x%Sm9*HWAl7tyS&Lefei4C~6f4E$#`$L~4ZUX-bxMx<+3|6Q&Y z{U=JY z$3ZHcT@ETEo^mi*7$q4`@l;<}xYVpwA{`Ww3g47JW=T=G_L*&r%C) zo>l`d0qt0(r_GN`{D8_TwP~_(E9{n1-c$vFoA)6-wWPjG1j&>kdl8F*#0o{#dt;|h+Z%cE6mk$| z3IwRZc!3wOvS~b89spOr=vp@5$iZBdfE8kG+Ib_($*hvpsDjqvZ??ySK_x~_teei605P{gcT!%-?aY;2>Fu@LBe z_TOw@*yyNsNv6cgKF9jTw9|e7hJ^Ijb8|3fBLZGlw450E0$}TjABn(^-i>Z-QT{m9 zCX3%HS@ayEXg2)seMpdBa*u}BZBj^Fs=8H^6Hsk!-6Od^NH5Pgt2u2ksty|@)2=0t z=k@#L8#p}|>G^$Ox?zSmN?)Q%O2$@Hcyhe9;j=1zVA@igq{X{6VWzFjjep@N01g4* zD12lv9jD-@ZFcGJrXd7ye>zm zx*+gfsOR>2g@uA*z}!@QR(f)IV!o*Rd+DyR2@V=UA&Z6Wf}g`c9jZgkQ!~0?mvR=_ zu&MiA+gWq{^>BeXW}ab1~lN}Bcf z$7v;K46oCj>uKqx=5*0)VgyA8-#Z3bqy`58Rqquu;~M7`7@OFDipqGkVlh`Cty^;L zT6J9vkh4(tZ~GQ4U0-1r75}^}IQt;I+kDvkJ)H2)jtU92&1~c4$y{)l*_hiZ#l*|* z3NN76V1>3?48m~XP2liPRPK!)^c-wrLOM_u)6mP~D+vQ}zz9p)x5C$62~A4C+A5_; zDP$4LhxA|8i=OT}w*+;ND3Z*Kz<;bj$M5w&G+Auq-|_|4X`K8tbZAc&SCL1^YBB`O z;z5B!173yzHLSsY%;SAJ`-Nusp7?Ar884Gn8=^cB`=R-0vzoM!?Y0PDMnstp(=fRSjGi}SMzY(l@9S%lLYI_EgyjrBe7iqul> zlSy0W0J@?1lgz$6>Y>o81p)4yAjzE79-16!wQTxCG3I7NVD~MkQou2BmM57V?4|X2 zDJ;vY%u1(znoC?OtFtI3uKz{COI?TC+H{ZyHV#Tzr`5H)dHu7OCu;pyGjNknVc^z>;yG$geIga4Wgr;4`6m&si3t_in;^-|6J6 z6%Cyw^o&g)&vvK3gzqMpY)RQ;+6M@vTQ`1`HgA%Vyn*u<{8p1p zfwcyVU^a16*wlJ*G@{g^udUNVBId^~LM8XWO{H@-W-3UotP}n%zV_M1I#M=R2vy9h z*n*Q`gi%g#zgQopck&)?p8IWD!xvAS)o;+69g#7kt`J9QbWeDiQ7Z7m)uyxld5L#j zt=l{62hS;CmK_mLT&Q`2MiW6X65hf9~FLz z+HnGjXcP>1_0ghY?z{ojKRTNjig_(H`&(`pc1+i#A@F!Nk_9%hs_hYDD1G-jtguZr zhmd5Z@z2NSnLpy}inebmH9dlH9*eW`jKZ)xP9K&dW=&b$UZW)N9HadnPWFW;WmGl| zJpF5_VX7(l-Fk3ihu?1b*IX1ifE(BAyDp+umR0a8bN(Kt8VZX0+<-o&{BR^)7)dv#W#qyiRA*zBD{O=&X`&zA`q7K!$H{0uikZgj?0W?!E!RS^Y)gU&|r6_ z*S~Ffz$w$W5`a;T3Oy@(_oy`%zW!NMXKuWk)mW;rHhk6y)I$murY3IBGn3kNO-#00 zPX}EC5~#%vacJ^(TgEx9C$Zdw6~7UbA{dxOeXk~Yxi}NGVU2@}@5Wi#X>oP`15C^MBf;62}@8V<*kQAkkPL`w$ z_6*^O8DmH0H*}DKJX=E>0Twkrb)eYEI-)MTmyk~^Ab;r5Z>Dop&^ZF)? zas@9#I$7o*w&`r6^wNe2L_gmEZ;z#QhaVWW1k~zO%7$JA3EvF{^p;q>WW=}ipDMhj zbPxgyVDM;59D{hQ1eA%2muD0w5)?W=0Sz-FZA=huoi-LFgi&UQLBHjC z4n27{jMz}?t|F!zXVfSG>}*2!4HTI&%j^~YROMHwy+cv%H~?i9>#`5M1d7)}B}G3M3`>-ls~P;_;^$#lR9Y7JnHeERTP5@mw~&J)zs*uz2l z9ItP8V5_o!UmF(cjZIroGGK)H16-P4}CjX6Jnd2<%z8nsF8$EE|t4h-`YSnfH^&8HI71${WXj1FE`PG;R&+_@i^+aSz|ORTzlNyS@Q34%bkWiIwQ zA)ItV&q#AmHsmEH>DNHEmh_$BXi zDDmqc1&FM&|BfsWEZJL-^$}u_$T~TT@U{zSf|fj+#N)Iv%ITks*#}~#9x4DGjLi(h zaZ+hse(W4>Jf-@LvTp0qpT)N>rg^U$--r{n_dC@dMMoJgRLvU14EAt~6E#&kr^e;H zkokr4s`~_#GV5cNBpXd=6Yjo!*&*0jzGDI-uhFv{8OQl)edm1d@{=Wvld|(X+bR=R zE6QO-I>{^x%VXN%g@(=Q-D`j`cbOd-90OrU)W||F+BmCZ2!Uj+icI3@*C^yHM$YeQ zN6M;hodlcih0{;Ekcjx^)XtX@I7s&ATT1S5${(H*Q|ybDr;?8__4D}&f(pWvaZ5E* zE`g7o;U@uok@?bCLI=s=F)aS00-FSoso-<8G$)J_D*-gE+zw1SjSkYp`7e=jW@S7Z zs6%(vLzbQ_3@aTdsRZS2jU|Q9U6<7hRRG2&AP9*l+8>p^nIE{bk54fvWNNsv7aXB@ z!FVFK@%?kN{6U{i$XLn(U;guKA)tzQfs7Y5_Xd_W)R&Y%_K3G-KG4xzXRO3ZGm|6F zq0PfPRbuYDTs||Px=T+-327j#&5lsDTSYr zqD~GDhoTSO-Fvz6PF&RcWBGex{&CIN=J)n=_`=iZzX%EPKPQ-rFSxWivXDqwdg8eV zF$1=Zvoh0AV0m+tj0?G|sfhT)CUN|0(`N?lRY}=)hFFMQE38({cM^hSlYSyWF3P!@s##K%AC2wyVW8qxy6aB zHXwAmqz=QhV}h#o6hOl@Nr=5Zh+w^FC#GbPc>6&bNIujb!_xlb+|fmDyvNUjLcVwi z3opsB`FtZ_oo@g;rV0W}+izgt7@;)2D)7xEou)Any1xw2W9wR{N5yj6){Mu07`77h z$F!ste$xq={Ehm4eO7tx!JFr$=Ss<+Sz$)K_2(9_Hf8*0xL}Jmz#7 z6Dx0QU%JS)@i?@vt?p)#xl`8rtQz^P%K%Q?s5G#YQ&UV3pP)6jI5?%Xt_t8SBBb0o z)ck_df*E>FmZ^5o}B})5-jr+UkYPEPi;vMUX<0v5Z@pR5n+Z zaU;O!DX=I+hrMm8ecfEub4JVWrzsMbQ2P^KOh~Lh|9*dbc-GHbcQOeEHmgSsfJPO8 zbA&NT_(L_Nrk_Mpwv(!E^8Ylf`o-H9F z#UCr(suT(i0xR|^cG~2(QW@vhkjlD{lStMOuaCRivyC`7vHQ!X2k+b-s-kfw%#@u^ zA#ES9@l`!E+pSY=e+kQDu_zta^zt<{J}5JG81DLN*HZg)KBFOXsAdz>S%(}oZ7w_! z=ROGq&XOg=;U)HP!BP~@y5HbDuvRC%wcq|^x%%+ihsKvZnO!b_$OcWq5uG9l)k=3# z3rCKQM9=7kTc-KL)hMx3PtS7;t7|5HY!A{U)?GGcS*00N5vPPFIo{%re)R#MK)0ua zbbUF~)#yxeSa8uKQM{OFU+3cr7H;*&rxoCfG-zs;QSPd%DabkuC)zRf)> zzEh%OoJvWy&ms5JI+l@z+L*LIm7|FcZ1$4MvqTQ*RgSn?T@^6QS?*SmV{pufgIbH$ zFyABae2cJGLEp-Y>e+m2djgHSh#_4#5=*-sQPb*oX*B)0gA~ zid;HHElATFT1C)G>R9aielaA>bDB({H+(=$r>Mt%_rw+z)81d%cGXCE(Z6|PPY2@R zEeP`P)%q>R8M_bQ8os`Oz2|A1bVc|VI@ODHlQC}Gd-Z&r1c7nuKN-gJz+_O_0t03& z4?5@7hgTp7(hGGzvjRYpW6VrA#Ti_@NL(z{M~IL$?AqQw>l`m9heNMChe<|@rJ@+r zUYq&bx>77-xoRVSs*@~a`=Ay;@y2@Uy`-ahfXPUulrKe>iGJLwj z;+DCq-kVwBYd7KA!Vpa(>;6}a0t2;)6q?%ikhYD#<1y6eDE7}prNem|BF~>~S<0KZ zUXtNu;N7b*S<4y`cZ4FagRIki|9m+_j2+*ojLN>JhVSLmN(YIYZ)?VHwLW9zuyD1o zjq+=kzqg;>YVhXv?*=-y6DE+4y87I7-;2gso<(;+3Ut`mW#K=<^Z3h*o!)(8hl1z@ zp48ch1X7}Bt|XuG7D|V*UcB8Q`r0Z8n|O;R6}aza8R8Ngv7nSw?o7ox9Ell}I z>hi@CK^xbwhpT43g`|({p*$VakGV)(=cQhc*ZCn_me?=cA4>|Y8<*$36>y;|!oU0w zCn)5L%u2566S)*gUrhz#9X$RK_bj=xTuQfTM$SGgPLw$K)@aiAB-uFYSiFL20E7x7 zj;donqz=YH5iQ2%d8=UJHaKWp5G|!>Uo_oY_!b|gzO(=&b~Eb zv)Exoj9|jcfW7E#$x?aNoiTXw(z&1-9)7&ZUWY_USYHR2o>gI#M$FNv#4LX8#1F1+ zoKsj6VqR^@(yokPJ_25um%TlQ?5*T8jQ}}j{L)7&6B8i~&>~y@n0^E-WCM0tjsPDt z(Gmv8xqiSBV+mc5TRF!GSfPrl@AO+B7o((%awHjOD^qk^Zf=6Ms$q>Y&tXy@loeR=^cRitwpf&!&3EV3!0< zLp^G1H`qMp1U^SZRXMGkcFrELLQdCao3OyD;cSOij)Gyr2+7<7qUSCtGn*m=R)1Me z+Lah>Yko5Y{$mk2^V@drjk5-+eM}!T0h6KZh6f*Z?fv6P`ZrE;>>899t&_qW#i;KY zWlVF&l0s`ZXb>2MIV(IbxYkE_&E}ibbcf)Z&k2iu?>0BaY$s9G_C1dT6!{AOm-R!i zqbxvD4MYF2)Py;JX?F5RNNet8u*ZUtbt4AQAgyw~lVFL7f5oHQLRuY5Df+dPAyX+A zNO2I@nz!UQx{;g>H2E-Nc#hV%z0XN&Q9cWoEGCcJwHWj)I+U}M%O@7<;({gtRl}*z z<&wS7cR!s_HOLjjW=UTd7Q6w`#P%2#1B2-=Ii9BY1cK#y%&x*Y292ijs8 z=iO4R%Y?DY_$<_0*`(4!PoOhkO!j~ofiw@%i?S%KMgrE2u-ZGQZ))z^A6>_Ssb9yA zFU5U`jwag8h=xaimF}>@Ae@EZ9RDztoZa$DqPwUDA1$CNOrS5^?nuaNfKKLB>#FKGJNCXR=L- zXnbMQyZj^7wjW;VUckwGIp5$(JySd949K|>ihWt_jQ2?24r81n$jj)a9?jk^oM9mn zT%16Au`IjRV#a$z_HdYEAegU8Al_cpAV2C%8L$l<;0kysWJ@iw* zUEj^lKItoy!E3aDMQRKPTsjHOd=Z_+jUt&3aw<}P>k7kFZNyo;9~=XAx&+%z8OB7< zJ$1WGd9yvP!fkiFs(VpCITyv>mKyGtA=GF(hI1s>4PAyC+dsy}+1F~l?U`wD&uEYW zKVsHMVGDUFb{to)b5lD!;=o-@teDAKmV8WmXgwfd6WuV87mBg)JYFZ!97gO`t)_BW zB@tTH&8-JUxfnP}^^DRL#EACM7$XZQt8S%l_yp{JIVl46A<#D%3N@nMsGLAvT+sI3 z+a+OqNfL+&F#%nx^BWJCPQ$S@fwak$oAr+KIzUfX_;c;z@|u97vUW{py5kJ(M;!!} zDGKfKOkZu3#~Hp6GDd!&R(0c@OgeXIVE~jXmX;BO-#fJ~AR~GxPaVzL!dZGkR%Hr; zTY4$i2bpbNNVk;x7eKQ6&iK^Jp+hVBZiL!d36Fvrkop2?mI&*` z@bOl)qm5?(Tj-Td4B!di^?Zly3s2;}-H~ z1YPA17?>_(2pR|7;hGH_usA(k0Hu;V1C%rn@q0y7h^*d&3Bx_oq4bTV8w#PTuSvJV z+HUCe`3)IoD?_S`>WABHF6n#tqs{(@OzxQgZ)S9p4`@?KbW~7+0c1s7r|d2`WG}DB zHB%u&w!g*j(d~yOj3S_NNy6BP9cbEoMVsXr1PGUyxW5KDu`9E+UGwUx57SQypOvjH zFU>6QXRk&r@ZN|9P)$y@iQyuprTb(v;S7(`q2_$Gttui={0CxcNtuG2i=tzvW;fl| zGmKcr7tf{z$_8GKQ1n3r>?P_T@Ev9_&>M9z&2Ac&ZU8Rh+U2^B zPM=%{L{g+Dt0Lw&tW~?Y(0QbQ0j1~2F1(O4!+_6Z@Md|P#@m$K(TC2&2qOQE%0Uy^ zO4MaUKWxIXWae-C4+hhN3;&eFFXG`DbG`qRm@;82We24J#AYY{^>i|WJaiU(O^ipFLYyfgpdEYr0|ls{PzYW5X%W52 zl|T4oEq4`gS-n$GTUvT_f;hKoP}<6u-a&SX%ggkAz(nw~7E!M8n9AZc>B#IW7Z|ki zFG4@CgKrpp6j*7PW9XJOt0$n1@v*Er8SZOu#1aFohu8x=!fE zZQ|98$gkkGh*TjI?_-EJMtULSd>is@INLsd{f3t)Wk1Apo#&?8c^n&HkshfJwi>Ro z?VqRCky#du#NR9&qT^k!+Ecg{E{jjnK{_)CS69R-2q+yX1cCHEt+qaEahC=~QkO+! z2%GP0Y;G>F$1tUeqKIEZ1U`dZFunjAKd@d%tXbc{;4ENuj2@Y<>q;Pm?xHvILlKkl zZqmCr(bCeInSf@+W`Oo^DtBgk2!NS}jd$??JO5kM%k|tiWu*I4eJz*{FB{c0;39)& zeDE#cZjhA)+CMH>VGdFn{QxShr$P#Gzt30Xsb=7+gbg4^jKtS1!1 z?5wchM_FnCI{Vg7KexBUYMKK(j66;4CL z2C8K}mh;`-j`n!Y^m7^lIs!f`O!L7{{vCi6a%2TA5N9oB7Pno#t(vtIuvxyS7}uD@ zEIpa$@$(_YXw2j1u})6ZduDKpaNo;Le3J0kO>zysiiV0Z7;KX_1-L{1f|G$8MPT2g zwx^bFT6gjRlO}kuJPbJG$W%M+u%mc$jym&=n5i2Nn{eC08r`Fz7A-Q6!H*5?9r4irf7wg-IWz9 z)_&s6Og1{bvM5SLvbh%yFC+N{U}D@j0`C|JgJ%jYmT~%e?Tosm4Gl9>DQB(=jT0ax z8;{N+zESyM)M?|nARxAR+HwJaP6xLD6l++>I8c2La9iJ7OUF>>8%kmU5w_OZ@{k~k zm#OlB6Yz_y{5_PJ3&+*{P~8~lxDanLj)hY{#@^s?qSiu9TVe&-2{?&9x+)1#UbOl@ zfMugkrddEqGO03~r80K=njc z+Ls+`HQ(N2o}o{;E0F!2K0`cK20H!%o~wZ27!fhx2_K=}^@CQLxOdUI9B)iO9!TKd z+p#JU*duKfchNzgurCB@X(iEzJ*Ll)A@M@1cHqZ8#qdP6KQms5Cw?jLQOppdMF$U) zYC|X&vE{R0VT@Gs08I^4%JYw=s|qdukFQ0o0KruOkzfsUsqi)NT>-nMTY6|oz@G|1 zwEpes4S$Fll?>Q5!F3zIrxFwhwJYPCNg-4&x!U>wt&sFNE3R6Y6aqz-0V2|#1$H;_ z9Sw96yEqMu@uI7=CC3<>c7-3p^VnM}xJUHI%^9sXicakSE zp3uc$VS;nZ9=frYw;Va5l*nFY0=)c#t*Y8$z)mWKGSm#PlghUBq$GvR zd|}<02V|K0@g0+QgNjDT;wBUTwMlMKjlMbXH(JY^D*V-rivLEy3b<-fzXyi`{#khZ z969QHanF^wUI6V@Qu+81APsShGswOI=&zJv95@6)0g0qKJutcW7hx7j8xV6HNuPiG za|e$U^2X^cDWtCx5XH(gIc+~g@f!c`EO`AdW373>SW9v}MjG(#a%(Pv*Af&ws8O`? z22RgV{J@zT#j9Tasqr`8zdpqOKOgd+d-DG(PEO_bN=(mS($0$6{0xuTlI%ClW6Y2Z zql4xPe{XOI-x=G?ub2JhCJkc+_S^i)=XHF2tXU_XC-u}aXWA`u`cGySfN?iFxYcBx z^Qk86VqkEN76W{OS-kPl_S&Wnub-83#GIbY&-#h=;)48>N=cwayJXP$ak7cJ`$u^P zex>V-HMTQAYIRyXI46lk_URV8qHE}O?NnoF>#4Wz88AD!@Ke_(?C=EhePb*#ro6nH z#iz)%v@eafn3)he4^RN+XMdmv@0q2Z93IzGm(4ZI&6c4|527lOn-xt$<>tFUmOsIE zSW__krC|M3M+OSCRw`WpG0yuJ;F@>MZxek9HM#s(QxTU?dO7WOfq}vGhfcSbzQ3uG zocpKZYNmGQCx4};bn@h+WW8lS#oE>w!xN|2{^5R&^C#Z;RIyLPTX}HEmf-IKX3c)P zh#r=vDIxqzuD*7Hg2WnJJT3pp&9I5L#awd_k=^zKSqN+#Z+`FdoPV8F`tA6GTEkRl zN%s|W3#IJQi)XX(hiS^GVl$Ui2cMm9_mccq5FeeVrPdu$i+)I-IUalb^Qn zvhTPA>S7Me(D}7!BDLW4Yq6+^qxQA%8J+V9fFHT<=F0|-Et=(Gew0?|1s+$mIEWi7 z_dXBYUR-Fz<{cYjTdOTM7Z=LQ?>#Bj=D^qGh1<>zwYavlSh|`9TaTA+Y)XY)Z+DOK zssq?k;6WenLU$75xpMGlXy58P=^;ROE55B?T3YIQn4IE+B5%JrzSTeBgPE$|=tLhp9&pRN`7g6M^|cAx*cy8LT=gz%yl2$G!GavKyZuRtP4Y}-i$7R=Rp=)=vZ z9S~RWxwG!rPf8~KZ;s0A&Ocy&ZBCBjDa#Z5+be);WU{WudCrBM=%Z2YOxQ89MG_ot z!X`5EVfdmsyu#yoHsdQjhSN#`6z_r77qa*;lGy+AC2vQHA%Ugq%(2ADW^-3otK{99 zbRj(Tcfqv(?I{6@nd4HmV`@Aq@c(>;zX$9=A_=|?s{D^{b@L_JHh{y*Em5!J{%>!_ zqasn0hv_`Gm^JzLOZu-XEYb!Jj~hS#&&mJo&j07O|0m%7?ScExqxPR9^Y2OaKk4=V e$AtxReVcZDROr!2M*l6~M@>arxkAwb_P+p++48vn literal 0 HcmV?d00001 diff --git a/Project2-Stream-Compaction/img/scan_graph.png b/Project2-Stream-Compaction/img/scan_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..15fc959261bae94603d22c63461d370bf185064a GIT binary patch literal 23571 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
QpBwYtRCq1a8UV{(uw^+aQgP)Tsts5 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

4awRGYE5aGS~v-`!^4W%QzqNH+17jw&&9kfC3fd z%+B1Yc@aP1k`gF&?|)Qs?$J=EVI1Gxj#RqWWLFJgg+y$*G)kq5C6_i7W0)2xncBt( zBSTBstz6dDBoSgzZa=qaqREsRV`!-cQ_P_WVP>px8RWXpudPmJ&z`;fJ!j6mzxloI z^L(H8`F;<$5b0zjm|<;H+rSI5>#Gi%-$cMAu`sU;lU{;LNlE7JX2%4rS`)=1?n^h zYH`zOX`19@{|Eaj?5kc7kXZ_2%PL8>$fp*-H5O6%a)PDrm`^J{E&^O6P zbD&kUxqSwjFgXL^J(m8Ux-pcD_2-gOPFCJ-{^bB02?z)fEVEgYm=-b7N2+{~5HXT9 zQV$L(SQJ?!D|3xzH+#6DKBsZF1@Z1Fv18ojz^C}xR!gJ0(*+41Pfc}XGnU?hRj`(C zUjavf#MKv%YdpyOVi4GXq=k1(mXP3f0VC*n7_FQOaGH7k*L(F=8z0`$sb6i8L7Qyr za2#L{JE9gTF7_5)ML&B~0dE$@9ZIfXyL_(mb<@KSj1rqJPFlc>LXrlLW3oysH609Z z?%YBq`G65#+EEmHDR7Mx%w{2#Aly?#x;3NFf5rFzkRAE%eW{tBB;a6kJJV>i&VkIj zAQ73DotqYxmpOq8>U}DUij9&;B;_Ffk1CIW-Ls6WE=pVJwXa_a!#A`oySIk?E-Jub zD49;UK1S&ctI|!K6-7lx{b1$xe_48@F#d9&tB5lie<=_v1wY9XBYQ(V7cU>qot6%} zS^Lk#^iqtf_G4u#p?0a&_^arV-+qYLgbt6v2!-J5V)OMM&htCJf4S<3mBeJvV^qpq z15NgueyPO?_2IcH(007)s#Q<+kjX;h*Mc{Dl7V^wagKGaEEwm*@QL4&BU_IYD#+j-eTnH>=G%f0(<7h)Gd<`L z5}X?3Tc|+pcV-fJVX@*b8-chwMmUjC99GjXdZ-(ageqTv91aEJEsFFwU^8Crq|;93 zVRZ}^kv~IL!lePW&u#IjXbvPxdUQ%~`ftx(;-#k6+&+0bIgcG@Rj zU=kw7A8F*E?mvf4#+vpX>U6-sT|HijI?z3IsAd!6dfXD%HdrvTIo0nd%TM&eUsKCR zA@LtS_@GNZkuUoluNrw?hd_wb1VhAR0L-?@5MQo$j|RS`K0sJVW1Z+A9on>%*dd;7 zhZ7J4IMllU2*ku@MSq()WUfkw1i-Kt$RP2<#+sx;bG5HhT2vp^_4@)up-`Z4(GF~T zJK)yO8DHYPr&5xa|6C`D;H~^Qtm>_pxzufmrL6c@v7(|UZJ%!HDQg_;w6argf!Q%{ zH=_=9z1#GFTpD`@J=^2nU2ehNdm3urqQ2}Tuj4~%S_Q$9CViD6rS!-d>gc_B0&apy zsQlGB`s-r=G1s0DS7I}KrL^I--Fb$!=_s0oH3=WX4ozN6hIU&jKKMXbEt;ce_ z$h*A{#<1eg2@|z#{3ze4o((@*aXmbyC&?$;}wm6>+RXuCCdT4mUQpw6yZk2lp2< z_fsL0^7FFDVig)@!=xt8W;E z04H2bbapwd9lO^!0_ZhZ^EK_&l)z5KN|f|Bv<@w=K7SPCzz(GtVH60LY%~qcM?et} zFV_XQm}?)d@quSu=Sk*bbRGq4J-BPvE;Jb$dY;*6ICKC-=rJ{O#o5sorj^-W zlA{n!P^*8g>HKPP$)Ul3IZ%<00^mDab9?+6t~hk?^*XVlF>;1thKzJ45gXpnYf^>t zu8AQU*BM>8cqu0{FbwjfuWArRx$#<-+SmpExm@pf5~0?V^rE;NW_Za;eCl>=NXCpA zM#O>_(@&uEI)a;N7hbFR6GN34ZUPo0O*CU;sa=Vdu6^j7iMkE!RgEEW2BRtz+Z4oX zDF>v_nP3jMVYg3CMgiaB%iiV`b z!NDGbJ|hqTxlL!w8gK^p`p>I+eG8(f*309`4HQYkF8sG*;(t~upTvMa3zokL4*&2$ kb-u&<3nWzOp2?e?vsk9A9~kzk^lez literal 0 HcmV?d00001 diff --git a/Project2-Stream-Compaction/src/main.cpp b/Project2-Stream-Compaction/src/main.cpp index 9ab2cf5..83470d6 100644 --- a/Project2-Stream-Compaction/src/main.cpp +++ b/Project2-Stream-Compaction/src/main.cpp @@ -13,7 +13,7 @@ #include #include "testing_helpers.hpp" -const int SIZE = 1 << 20; // feel free to change the size of array +const int SIZE = 1 << 25; // feel free to change the size of array const int NPOT = SIZE - 3; // Non-Power-Of-Two int *a = new int[SIZE]; int *b = new int[SIZE]; @@ -55,10 +55,10 @@ int main(int argc, char* argv[]) { printCmpResult(SIZE, b, c); //For bug-finding only: Array of 1s to help find bugs in stream compaction or scan - onesArray(SIZE, c); - printDesc("1s array for finding bugs"); - StreamCompaction::Naive::scan(SIZE, c, c); - printArray(SIZE, c, true); +// onesArray(SIZE, c); +// printDesc("1s array for finding bugs"); +// StreamCompaction::Naive::scan(SIZE, c, c); +// printArray(SIZE, c, true); zeroArray(SIZE, c); printDesc("naive scan, non-power-of-two"); @@ -67,13 +67,11 @@ int main(int argc, char* argv[]) { //printArray(SIZE, c, true); printCmpResult(NPOT, b, c); - - //For bug-finding only: Array of 1s to help find bugs in stream compaction or scan - identityArray(SIZE, c); - printDesc("work-efficient scan, 1s array for finding bugs"); - StreamCompaction::Efficient::scan(SIZE, c, c); - printArray(SIZE, c, true); +// identityArray(SIZE, c); +// printDesc("work-efficient scan, 1s array for finding bugs"); +// StreamCompaction::Efficient::scan(SIZE, c, c); +// printArray(SIZE, c, true); zeroArray(SIZE, c); printDesc("work-efficient scan, power-of-two"); diff --git a/Project2-Stream-Compaction/stream_compaction/common.h b/Project2-Stream-Compaction/stream_compaction/common.h index a4e8345..d8831c2 100644 --- a/Project2-Stream-Compaction/stream_compaction/common.h +++ b/Project2-Stream-Compaction/stream_compaction/common.h @@ -10,7 +10,7 @@ #include #include -#define blockSize 256 +#define blockSize 1024 #define FILENAME (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) #define checkCUDAError(msg) checkCUDAErrorFn(msg, FILENAME, __LINE__) diff --git a/Project2-Stream-Compaction/stream_compaction/efficient.cu b/Project2-Stream-Compaction/stream_compaction/efficient.cu index 68775c4..6ed4913 100644 --- a/Project2-Stream-Compaction/stream_compaction/efficient.cu +++ b/Project2-Stream-Compaction/stream_compaction/efficient.cu @@ -72,18 +72,15 @@ namespace StreamCompaction { checkCUDAError("cudaMemcpy dev_buffer idata failed!"); // fill rest of device buffer with zero - // TODO: is this needed?? cudaMemset(dev_buffer + n, 0, (nPowerOfTwo - n) * sizeof(int)); checkCUDAError("cudaMemset dev_buffer failed!"); - //timer().startGpuTimer(); - - // TODO: hmmmmm - dim3 fullBlocksPerGrid((n + blockSize - 1) / blockSize); + timer().startGpuTimer(); // upsweep + dim3 gridSize = dim3((nPowerOfTwo + blockSize - 1) / blockSize, 1, 1); for (int d = 0; d < ilog2ceil(nPowerOfTwo); d++) { - kernScanUpsweep<<>>(nPowerOfTwo, d, dev_buffer); + kernScanUpsweep<<>>(nPowerOfTwo, d, dev_buffer); checkCUDAError("kernScanUpsweep failed!"); } @@ -95,13 +92,12 @@ namespace StreamCompaction { // downsweep for (int d = ilog2ceil(nPowerOfTwo) - 1; d >= 0; d--) { - kernScanDownsweep<<>>(nPowerOfTwo, d, dev_buffer); + kernScanDownsweep<<>>(nPowerOfTwo, d, dev_buffer); checkCUDAError("kernScanDownsweep failed!"); } cudaDeviceSynchronize(); - - //timer().endGpuTimer(); + timer().endGpuTimer(); // copy output to host cudaMemcpy(odata, dev_buffer, n * sizeof(int), cudaMemcpyDeviceToHost); @@ -111,6 +107,55 @@ namespace StreamCompaction { checkCUDAError("cudaFree failed!"); } + /** + * Performs prefix-sum (aka scan) on idata, storing the result into odata, NO TIMER + */ + void scanNoTimer(int n, int *odata, const int *idata) { + int nPowerOfTwo = nextPowerOfTwo(n); + + int *dev_buffer; + + // malloc device buffer + cudaMalloc((void**)&dev_buffer, nPowerOfTwo * sizeof(int)); + checkCUDAError("cudaMalloc dev_buffer failed!"); + + // copy input to device buffer + cudaMemcpy(dev_buffer, idata, n * sizeof(int), cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy dev_buffer idata failed!"); + + // fill rest of device buffer with zero + cudaMemset(dev_buffer + n, 0, (nPowerOfTwo - n) * sizeof(int)); + checkCUDAError("cudaMemset dev_buffer failed!"); + + // upsweep + dim3 gridSize = dim3((n + blockSize - 1) / blockSize, 1, 1); + for (int d = 0; d < ilog2ceil(nPowerOfTwo); d++) { + kernScanUpsweep<<>>(nPowerOfTwo, d, dev_buffer); + checkCUDAError("kernScanUpsweep failed!"); + } + + cudaDeviceSynchronize(); + + // set root to zero + cudaMemset(dev_buffer + nPowerOfTwo - 1, 0, 1 * sizeof(int)); + checkCUDAError("cudaMemset dev_buffer failed!"); + + // downsweep + for (int d = ilog2ceil(nPowerOfTwo) - 1; d >= 0; d--) { + kernScanDownsweep<<>>(nPowerOfTwo, d, dev_buffer); + checkCUDAError("kernScanDownsweep failed!"); + } + + cudaDeviceSynchronize(); + + // copy output to host + cudaMemcpy(odata, dev_buffer, n * sizeof(int), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy odata dev_buffer failed!"); + + cudaFree(dev_buffer); + checkCUDAError("cudaFree failed!"); + } + /** * Performs stream compaction on idata, storing the result into odata. @@ -146,7 +191,7 @@ namespace StreamCompaction { cudaMemcpy(dev_in, idata, n * sizeof(int), cudaMemcpyHostToDevice); checkCUDAError("cudaMemcpy dev_in idata failed!"); - //timer().startGpuTimer(); + timer().startGpuTimer(); // compute bools buffer Common::kernMapToBoolean<<>>(n, dev_bools, dev_in); @@ -161,7 +206,7 @@ namespace StreamCompaction { // run exclusive scan on bools int *indices = new int[n]; - scan(n, indices, bools); + scanNoTimer(n, indices, bools); int outputSize = bools[n - 1] == 0 ? indices[n - 1] : indices[n - 1] + 1; // copy indices to device @@ -170,10 +215,9 @@ namespace StreamCompaction { // scatter Common::kernScatter<<>>(n, dev_out, dev_in, dev_bools, dev_indices); - cudaDeviceSynchronize(); - //timer().endGpuTimer(); + timer().endGpuTimer(); // copy output to host cudaMemcpy(odata, dev_out, outputSize * sizeof(int), cudaMemcpyDeviceToHost); diff --git a/Project2-Stream-Compaction/stream_compaction/naive.cu b/Project2-Stream-Compaction/stream_compaction/naive.cu index 18dda85..4b1f1ac 100644 --- a/Project2-Stream-Compaction/stream_compaction/naive.cu +++ b/Project2-Stream-Compaction/stream_compaction/naive.cu @@ -55,15 +55,19 @@ namespace StreamCompaction { // perform inclusive scan timer().startGpuTimer(); - dim3 fullBlocksPerGrid((n + blockSize - 1) / blockSize); + dim3 gridSize = dim3((n + blockSize - 1) / blockSize, 1, 1); for (int d = 1; d <= ilog2ceil(n); d++) { // run one iteration - kernInclusiveScanIteration<<>>(n, d, dev_out, dev_in); + kernInclusiveScanIteration<<>>(n, d, dev_out, dev_in); checkCUDAError("kernInclusiveScanIteration failed!"); + + // copy out to in + cudaMemcpy(dev_in, dev_out, n * sizeof(int), cudaMemcpyDeviceToDevice); + checkCUDAError("cudaMemcpy dev_in dev_out failed!"); } // convert to exclusive scan - kernShiftRight<<>>(n, dev_out, dev_in); + kernShiftRight<<>>(n, dev_out, dev_in); checkCUDAError("kernShiftRight failed!"); timer().endGpuTimer(); From 4ddc872a4f387b43992c7e8cb0ffca3b024c3444 Mon Sep 17 00:00:00 2001 From: clach Date: Wed, 18 Sep 2019 16:18:21 -0400 Subject: [PATCH 06/12] updated stream compaction readme --- Project2-Stream-Compaction/README.md | 129 +++++++++++++++++++++++++-- 1 file changed, 120 insertions(+), 9 deletions(-) diff --git a/Project2-Stream-Compaction/README.md b/Project2-Stream-Compaction/README.md index e13714d..79013b1 100644 --- a/Project2-Stream-Compaction/README.md +++ b/Project2-Stream-Compaction/README.md @@ -8,31 +8,57 @@ Tested on: Windows 10, i5-6500 @ 3.20GHz 16GB, GTX 1660 (personal computer) ## Project Description -This goal of this project was to gain to familiarity with writing parallel algorithms, specifically Scan (prefix sum) and Stream Compaction (used to remove values of zero from an array), from scratch in CUDA. The implementations in this project were mainly based on [these slides](https://onedrive.live.com/view.aspx?resid=A6B78147D66DD722!93669&ithint=file%2cpptx&authkey=!AOZdbr6KT8OQ9fs). This project contains several implementations: a CPU version, a naive GPU version, a work-efficient GPU version, and one using the Thrust library functions. +This goal of this project was to gain to familiarity with writing parallel algorithms, specifically Scan and Stream Compaction (used to remove values of zero from an array), from scratch in CUDA. The implementations in this project were mainly based on [these slides](https://onedrive.live.com/view.aspx?resid=A6B78147D66DD722!93669&ithint=file%2cpptx&authkey=!AOZdbr6KT8OQ9fs). + +The Scan algorithm (also known as prefix sum) takes in an input array and returns an array where each element j in the output array is a sum of the previous elements from the input array. The Scan algorithm can be inclusive or exclusive. In an exclusive Scan, element j of the result does not include element j of the input. In an inclusive Scan, element j of the result includes all elements before and up to element j of the input; + +![](img/scan_example.png) + +The goal of Stream Compaction is, given an input array of elements, create a new array with elements from the input array that meet a certain critera (e.g. being non-zero or non-null), while preserving the order of elements from the input array. + +![](img/compact_goal_visual.png) + +Stream Compaction can be accomplished in a few steps. Let In be out input array. +1. Map the input array to a new array of bools B where B[i] = 1 if In[i] meets the specififed criteria, and B[i] = 0 if In[i] does not. (B is the yellow array in the below picture.) +2. Run an exclusive Scan on B to get C, the Scan result. C will contain the indices into our output array. (C is the first blue array in the below picture.) +3. Run Scatter on C, the result of Scan. Write the element In[i] to output array Out[C[i]] if B[i] = 1. + +![](img/compact_visual.png) + +This project contains several implementations of the above algorithms: a CPU version, a naive GPU version, a work-efficient GPU version, and one using the Thrust library functions. ### CPU -The CPU implementations were done simply to allow me to become more familiar with the algorithms. These are straightforward and simple to implement, and include an implementations of Scan, Scatter, Stream Compaction without using Scan, and Stream Compaction using Scan and Scatter. +The CPU implementations were done simply to allow me to become more familiar with the algorithms. These are straightforward and simple to implement, and include implementations of Scan, Scatter, Stream Compaction without using Scan, and Stream Compaction using Scan and Scatter. For example, here is pseudo-code for single-thread Scan: + +![](img/CPU_scan.png) -INSERT PICTURES HERE ### Naive The first GPU implementation of Scan is a naive one, and results in an inclusive Scan that must be modified (using a shift right kernel) to an exclusive Scan. -INSERT PICTURE +![](img/naive_parallel_scan.png) + +![](img/naive_parallel_scan_visual.png) ### Work-Efficient -Next we have work-efficient GPU versions of Scan, Scatter, and Stream Compaction. The work-efficient version of Scan involves two phases, an upsweep and a downsweep: +Next we have work-efficient GPU versions of Scan, Scatter, and Stream Compaction. The work-efficient version of Scan involves two phases, an upsweep: -INSERT PICTURE +![](img/efficient_upsweep.png) -Because of REASON, the input array must be buffered with zeros until its size is a power of 2. +![](img/efficient_upsweep_visual.png) -We can then use Scan in a GPU implementation of Stream Compaction, which also uses Scatter and MapToBoolean kernels. +...and a downsweep: + +![](img/efficient_downsweep.png) + +![](img/efficient_downsweep_visual.png) -INSERT PICTURE +Because of work-efficient Scan's underlying conceptual structure as a balanced binary tree, the input array must be buffered with zeros until its size is a power of 2. + +We can then use Scan in a GPU implementation of Stream Compaction, which also uses Scatter and MapToBoolean kernels. ### Thrust @@ -40,3 +66,88 @@ Lastly, we perform Stream Compaction with the Thrust library's thrust::exclusive ## Analysis +We can look at the performance of the various implementations. Here's a graph of the performance of Scan vs. block size: + +![](img/scan_graph.png) + +A faster implementation will take less time, so lower implementations on the graph perform better than the higher up implementations. It may seem like "Thrust (power of 2)" is missing, but it is right beneath the "Thrust" line, since their performances were so similar. + +Oddly enough, Work-Efficient performs the worst, Naive the second worst, and CPU better than both of those. This is not necessarily unexpected. The current implementation of Work-Efficient actually has very poor warp occupancy; the number of threads doing useful work decreases by half each time, but they are not able to be terminated due to their organization. Some re-indexing and changing of the organization of threads should fix this issue. Additionally, the upsweep and downsweep outer for-loops are run on the CPU, which will not help runtime at all. But, we can obviously see from the Thrust examples that a GPU implementation of Scan can be way faster than a CPU implementation... as long as you do it right. As to why Thrust performs so much better, possible reasons include optimizing warp occupancy with better indexing and avoiding so much memory latency. + +One thing to notice: for CPU and Naive, the power of 2 examples (which are running on an array whose size is a power of 2), take slightly longer than their non-power of 2 counterparts (which are running on an array whose size is very slightly smaller than the aforementioned power of 2). This can likely be attributed to the fact that for these more basic, less parallelized applications, a larger input simply takes larger to process (note that CPU, which is the most serialized implementation, sees the biggest difference between its performances). For the Work-Efficient examples, there is very little difference between power of 2 and non-power of 2, since the non-power of 2 input is padded with zeros until it reaches a size that is a power of 2. The thrust implementation is similarly not effected by a size that is power of 2 or not, likely because it is very well parallelized or also pads to a power of 2 size. + +A second thing to notice: changing block size does not seem to have a significant effect on any of the implementations, although block sizes of 64 and 1024 seem to cause slightly worse performance in my GPU implementations. + +Here's a graph of the performance of Compact vs. block size: + +![](img/compact_graph.png) + +Again, a better implementation will take less time, so lower implementations on the graph perform better than the higher up implementations. Also, it may seem like "CPU (no scan, power of 2)" is missing, but it is right beneath the "CPU (no scan)" line, since their performances were so similar. + +We see similar performance patterns to what we saw for Scan. The Work-Efficient Compact performs worse than the CPU version, and the CPU version using a CPU Scan performs worse than the CPU versions that do not use Scan. This perhaps indicates that Scan will only provide a better performance Compact if it is parallelized. In regards to the Work-Efficient examples, first, Work-Efficient Compact uses Work-Efficient Scan which already performs poorly as discussed above. Additionally, the Work-Efficient Scan includes several memory copies within the recorded time, which can decrease performance. + +Again, block size seems to have relatively little effect on performance. + +## Output + +Here is the output of the test cases for 33,554,432 elements, with a block size of 1024. +``` + +**************** +** SCAN TESTS ** +**************** + [ 30 46 22 3 29 47 40 19 4 43 5 18 39 ... 24 0 ] +==== cpu scan, power-of-two ==== + elapsed time: 179.922ms (std::chrono Measured) + [ 0 30 76 98 101 130 177 217 236 240 283 288 306 ... 821999768 821999792 ] +==== cpu scan, non-power-of-two ==== + elapsed time: 64.8479ms (std::chrono Measured) + [ 0 30 76 98 101 130 177 217 236 240 283 288 306 ... 821999720 821999754 ] + passed +==== naive scan, power-of-two ==== + elapsed time: 1067.39ms (CUDA Measured) + passed +==== naive scan, non-power-of-two ==== + elapsed time: 1046.83ms (CUDA Measured) + passed +==== work-efficient scan, power-of-two ==== + elapsed time: 2464.74ms (CUDA Measured) + passed +==== work-efficient scan, non-power-of-two ==== + elapsed time: 2473.12ms (CUDA Measured) + passed +==== thrust scan, power-of-two ==== + elapsed time: 2.0384ms (CUDA Measured) + passed +==== thrust scan, non-power-of-two ==== + elapsed time: 2.14227ms (CUDA Measured) + passed + +***************************** +** STREAM COMPACTION TESTS ** +***************************** + [ 1 1 0 1 0 1 0 2 2 3 2 3 3 ... 3 0 ] +==== cpu compact without scan, power-of-two ==== + elapsed time: 98.5023ms (std::chrono Measured) + [ 1 1 1 1 2 2 3 2 3 3 1 2 1 ... 3 3 ] + passed +==== cpu compact without scan, non-power-of-two ==== + elapsed time: 100.227ms (std::chrono Measured) + [ 1 1 1 1 2 2 3 2 3 3 1 2 1 ... 2 3 ] + passed +==== cpu compact with scan ==== + elapsed time: 445.056ms (std::chrono Measured) + [ 1 1 1 1 2 2 3 2 3 3 1 2 1 ... 3 3 ] + passed +==== work-efficient compact, power-of-two ==== + elapsed time: 2690.43ms (CUDA Measured) + [ 1 1 1 1 2 2 3 2 3 3 1 2 1 ... 3 3 ] + passed +==== work-efficient compact, non-power-of-two ==== + elapsed time: 2689.84ms (CUDA Measured) + [ 1 1 1 1 2 2 3 2 3 3 1 2 1 ... 2 3 ] + passed +Press any key to continue . . . +``` + + From ad0a7de4d1e539878ea5f950c8ea362ddef7d04c Mon Sep 17 00:00:00 2001 From: clach Date: Wed, 18 Sep 2019 16:13:09 -0400 Subject: [PATCH 07/12] few more stream compaction pics --- Project2-Stream-Compaction/img/CPU_scan.png | Bin 0 -> 50821 bytes Project2-Stream-Compaction/img/scan_example.png | Bin 0 -> 64082 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Project2-Stream-Compaction/img/CPU_scan.png create mode 100644 Project2-Stream-Compaction/img/scan_example.png diff --git a/Project2-Stream-Compaction/img/CPU_scan.png b/Project2-Stream-Compaction/img/CPU_scan.png new file mode 100644 index 0000000000000000000000000000000000000000..8d60134ec18610c38a249b8171238f7208c690d6 GIT binary patch literal 50821 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�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 literal 0 HcmV?d00001 From e32ff5aac88147daf0cbcc87a206701999cf9dbb Mon Sep 17 00:00:00 2001 From: clach Date: Wed, 18 Sep 2019 16:21:38 -0400 Subject: [PATCH 08/12] readme for stream compaction essentially done --- Project2-Stream-Compaction/README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Project2-Stream-Compaction/README.md b/Project2-Stream-Compaction/README.md index 79013b1..6c8b1aa 100644 --- a/Project2-Stream-Compaction/README.md +++ b/Project2-Stream-Compaction/README.md @@ -10,10 +10,13 @@ Tested on: Windows 10, i5-6500 @ 3.20GHz 16GB, GTX 1660 (personal computer) This goal of this project was to gain to familiarity with writing parallel algorithms, specifically Scan and Stream Compaction (used to remove values of zero from an array), from scratch in CUDA. The implementations in this project were mainly based on [these slides](https://onedrive.live.com/view.aspx?resid=A6B78147D66DD722!93669&ithint=file%2cpptx&authkey=!AOZdbr6KT8OQ9fs). +### Scan + The Scan algorithm (also known as prefix sum) takes in an input array and returns an array where each element j in the output array is a sum of the previous elements from the input array. The Scan algorithm can be inclusive or exclusive. In an exclusive Scan, element j of the result does not include element j of the input. In an inclusive Scan, element j of the result includes all elements before and up to element j of the input; ![](img/scan_example.png) +### Stream Compact The goal of Stream Compaction is, given an input array of elements, create a new array with elements from the input array that meet a certain critera (e.g. being non-zero or non-null), while preserving the order of elements from the input array. ![](img/compact_goal_visual.png) @@ -27,6 +30,8 @@ Stream Compaction can be accomplished in a few steps. Let In be out input array. This project contains several implementations of the above algorithms: a CPU version, a naive GPU version, a work-efficient GPU version, and one using the Thrust library functions. +## Implementation Details + ### CPU The CPU implementations were done simply to allow me to become more familiar with the algorithms. These are straightforward and simple to implement, and include implementations of Scan, Scatter, Stream Compaction without using Scan, and Stream Compaction using Scan and Scatter. For example, here is pseudo-code for single-thread Scan: From eb7032478536d02c1514532c862503f6c677fcc1 Mon Sep 17 00:00:00 2001 From: clach Date: Wed, 18 Sep 2019 17:19:33 -0400 Subject: [PATCH 09/12] character recognition readme started --- Project2-Character-Recognition/README.md | 39 ++++++++++++++++++------ 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/Project2-Character-Recognition/README.md b/Project2-Character-Recognition/README.md index 4503fac..efd7337 100644 --- a/Project2-Character-Recognition/README.md +++ b/Project2-Character-Recognition/README.md @@ -1,14 +1,35 @@ -CUDA Character Recognition -====================== +# Project 2b: CUDA Character Recognition +**University of Pennsylvania, CIS 565: GPU Programming and Architecture, +Project 2 - Character Recognition** -**University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 2** +Caroline Lachanski: [LinkedIn](https://www.linkedin.com/in/caroline-lachanski/), [personal website](http://carolinelachanski.com/) -* (TODO) YOUR NAME HERE - * (TODO) [LinkedIn](), [personal website](), [twitter](), etc. -* Tested on: (TODO) Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab) +Tested on: Windows 10, i5-6500 @ 3.20GHz 16GB, GTX 1660 (personal computer) -### (TODO: Your README) +## Project Description -Include analysis, etc. (Remember, this is public, so don't put -anything here that you don't want to share with the world.) +The goal of this project was to implement a small neural network that would recognize characters from black-and-white image inputs. I specifically implemented a multi-layer perceptron, with one hidden layer. In this project, I let the size of the hidden layer be the average of the size of the input layer and the size of the output layer (which is always 1). +![](./img/MLP.png) + +The training starts when a set of data in input into the peceptron, becoming the first layer. This data is multiplied by a series of weights (initially created randomly) that each correspond to one input node and one hidden layer node. These weights are used to determine the importance or the "weight" each specific input will have in determining the output. All of the products with the same hidden layer node position are summed, then put into the activation function, which, in this project, is a sigmoid function, f(x) = 1/(1+e^-x). The results of this function then become the "input" to the next layer, which has its own set of weights and follows a similar weighting and summing process. Since our final layer is one node, we are left with one output, which is also input into the activation function. + +Each input into the network results in a singular output value. This expected value for this input is subtracted from the actual output, squared, and then summed with the corresponding result from every other input. This sum is divided by 2 to give us the total error for this round of training. + +![](./img/error_equation.png) + +We then calculate the error in the difference between the actual and theoretical output due to each specific weight (the error's partial derivative with respect to each weight). Each of these values is multiplied by a negative lambda (here defined as (total error / 5)) to get the delta to be added to that specific weight. This is what is known as back-propogation and should ultimately result in a reduction of error in the overall system. + +![](./img/delta_weight.png) + +We can continue this reduction of error until it reaches a certain threshold or we reach our maximum number of iterations. Once training is complete, we record the final weights to a text file, which can then be used as the weights for when we actually want to run our system on a single input. + +I initially trained and tested my data on a small XOR example, then moved onto to training and testing for the much larger character recognition example (52 characters, each with an input array of 101x101 = 10,201 floats). + +## Output + +## Challenges + +This project was my first foray into machine learning, and only my second project using CUDA/GPU programming, so this project was a bit of a challenge. I struggled a bit with choosing how to represent and pass around data, particularly when it came to error calculation and back-propogation. For example, when it came to calculating the partial error derivatives for each weight and summing them to get a delta w for each weight, I intially made one large float * buffer that held all the partial derivatives for all weights and for all inputs, and worked with this using various indexing schemes. This worked fine for the very small XOR example, but when it came to the actual character recognition example, which had over 50 million weights, I had trouble fitting everything one buffer. I had to think of a way of dividing the data into pieces while also allowing me to run various calculations on it in parallel, and I still don't think what I did was the best choice. + +In the end, I don't believe my back-propogation/weight update functionality works fully, as my network stops reducing error after only one iteration for the character recognition example. Nonetheless, I learned a lot about neural networks through this project. From ce49d915e25d147baa7b909a98934a275c572527 Mon Sep 17 00:00:00 2001 From: clach Date: Wed, 18 Sep 2019 17:29:32 -0400 Subject: [PATCH 10/12] updated character recognition readme --- Project2-Character-Recognition/README.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Project2-Character-Recognition/README.md b/Project2-Character-Recognition/README.md index efd7337..a02969c 100644 --- a/Project2-Character-Recognition/README.md +++ b/Project2-Character-Recognition/README.md @@ -28,6 +28,29 @@ I initially trained and tested my data on a small XOR example, then moved onto t ## Output +The weights produced by training for both the XOR and character recognition examples can be found in text files in this repository. After training, I tested the network on each possible input. Here is the result for XOR: + +``` +********************************* +*********** XOR TESTS *********** +********************************* +Expected output: 0.000000 +Actual output: 0.001515 + +Expected output: 1.000000 +Actual output: 0.977023 + +Expected output: 1.000000 +Actual output: 0.976850 + +Expected output: 0.000000 +Actual output: 0.019346 + +Total error: 0.000720 +``` + +There seems to be an issue with my character recognition test, as the actual output for each tested character is 0. + ## Challenges This project was my first foray into machine learning, and only my second project using CUDA/GPU programming, so this project was a bit of a challenge. I struggled a bit with choosing how to represent and pass around data, particularly when it came to error calculation and back-propogation. For example, when it came to calculating the partial error derivatives for each weight and summing them to get a delta w for each weight, I intially made one large float * buffer that held all the partial derivatives for all weights and for all inputs, and worked with this using various indexing schemes. This worked fine for the very small XOR example, but when it came to the actual character recognition example, which had over 50 million weights, I had trouble fitting everything one buffer. I had to think of a way of dividing the data into pieces while also allowing me to run various calculations on it in parallel, and I still don't think what I did was the best choice. From 57a39f0b580091dbccabfb6698d76eb7245813c0 Mon Sep 17 00:00:00 2001 From: Caroline Lachanski Date: Wed, 18 Sep 2019 22:29:18 -0400 Subject: [PATCH 11/12] added more images + weights file --- .../img/delta_weight.png | Bin 0 -> 14633 bytes .../img/error_equation.png | Bin 0 -> 13073 bytes Project2-Character-Recognition/weights_XOR.txt | 6 ++++++ 3 files changed, 6 insertions(+) create mode 100644 Project2-Character-Recognition/img/delta_weight.png create mode 100644 Project2-Character-Recognition/img/error_equation.png create mode 100644 Project2-Character-Recognition/weights_XOR.txt diff --git a/Project2-Character-Recognition/img/delta_weight.png b/Project2-Character-Recognition/img/delta_weight.png new file mode 100644 index 0000000000000000000000000000000000000000..6acd2cad4bb8f64747aefb7066166b2c25ebe2bf GIT binary patch literal 14633 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 NG7^g7RicJL{|`Y~i9G-S literal 0 HcmV?d00001 diff --git a/Project2-Character-Recognition/img/error_equation.png b/Project2-Character-Recognition/img/error_equation.png new file mode 100644 index 0000000000000000000000000000000000000000..724cd32c4f428304965b79f58f5a697d2c5c1db3 GIT binary patch literal 13073 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 X*K(hT$ff`>K8&KQnoO0HdBpz#E<3ZV literal 0 HcmV?d00001 diff --git a/Project2-Character-Recognition/weights_XOR.txt b/Project2-Character-Recognition/weights_XOR.txt new file mode 100644 index 0000000..3e1e69f --- /dev/null +++ b/Project2-Character-Recognition/weights_XOR.txt @@ -0,0 +1,6 @@ +10.1574 +0.801176 +20.0398 +0.80065 +41.0118 +-53.9937 From 5be3e5d3f88bec927e91fa6dd008b1233bfb3688 Mon Sep 17 00:00:00 2001 From: Caroline Lachanski Date: Wed, 18 Sep 2019 22:33:50 -0400 Subject: [PATCH 12/12] added cleaned up code --- .../character_recognition/common.cu | 30 +- .../character_recognition/common.h | 256 ++--- .../character_recognition/mlp.cu | 899 +++++++++--------- .../character_recognition/mlp.h | 27 +- Project2-Character-Recognition/src/main.cpp | 220 +++-- .../src/testing_helpers.hpp | 150 +-- 6 files changed, 777 insertions(+), 805 deletions(-) diff --git a/Project2-Character-Recognition/character_recognition/common.cu b/Project2-Character-Recognition/character_recognition/common.cu index 2a754d4..68fa464 100644 --- a/Project2-Character-Recognition/character_recognition/common.cu +++ b/Project2-Character-Recognition/character_recognition/common.cu @@ -1,15 +1,15 @@ -#include "common.h" - -void checkCUDAErrorFn(const char *msg, const char *file, int line) { - cudaError_t err = cudaGetLastError(); - if (cudaSuccess == err) { - return; - } - - fprintf(stderr, "CUDA error"); - if (file) { - fprintf(stderr, " (%s:%d)", file, line); - } - fprintf(stderr, ": %s: %s\n", msg, cudaGetErrorString(err)); - exit(EXIT_FAILURE); -} +#include "common.h" + +void checkCUDAErrorFn(const char *msg, const char *file, int line) { + cudaError_t err = cudaGetLastError(); + if (cudaSuccess == err) { + return; + } + + fprintf(stderr, "CUDA error"); + if (file) { + fprintf(stderr, " (%s:%d)", file, line); + } + fprintf(stderr, ": %s: %s\n", msg, cudaGetErrorString(err)); + exit(EXIT_FAILURE); +} diff --git a/Project2-Character-Recognition/character_recognition/common.h b/Project2-Character-Recognition/character_recognition/common.h index f7a42e0..8330494 100644 --- a/Project2-Character-Recognition/character_recognition/common.h +++ b/Project2-Character-Recognition/character_recognition/common.h @@ -1,128 +1,128 @@ -#pragma once - -#include -#include - -#include -#include -#include -#include -#include -#include - -#define blockSize 256 - -#define FILENAME (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) -#define checkCUDAError(msg) checkCUDAErrorFn(msg, FILENAME, __LINE__) - -/** - * Check for CUDA errors; print and exit if there was a problem. - */ -void checkCUDAErrorFn(const char *msg, const char *file = NULL, int line = -1); - -inline int ilog2(int x) { - int lg = 0; - while (x >>= 1) { - ++lg; - } - return lg; -} - -inline int ilog2ceil(int x) { - return x == 1 ? 0 : ilog2(x - 1) + 1; -} - - -namespace Common { - /** - * This class is used for timing the performance - * Uncopyable and unmovable - * - * Adapted from WindyDarian(https://github.com/WindyDarian) - */ - class PerformanceTimer - { - public: - PerformanceTimer() - { - cudaEventCreate(&event_start); - cudaEventCreate(&event_end); - } - - ~PerformanceTimer() - { - cudaEventDestroy(event_start); - cudaEventDestroy(event_end); - } - - void startCpuTimer() - { - if (cpu_timer_started) { throw std::runtime_error("CPU timer already started"); } - cpu_timer_started = true; - - time_start_cpu = std::chrono::high_resolution_clock::now(); - } - - void endCpuTimer() - { - time_end_cpu = std::chrono::high_resolution_clock::now(); - - if (!cpu_timer_started) { throw std::runtime_error("CPU timer not started"); } - - std::chrono::duration duro = time_end_cpu - time_start_cpu; - prev_elapsed_time_cpu_milliseconds = - static_cast(duro.count()); - - cpu_timer_started = false; - } - - void startGpuTimer() - { - if (gpu_timer_started) { throw std::runtime_error("GPU timer already started"); } - gpu_timer_started = true; - - cudaEventRecord(event_start); - } - - void endGpuTimer() - { - cudaEventRecord(event_end); - cudaEventSynchronize(event_end); - - if (!gpu_timer_started) { throw std::runtime_error("GPU timer not started"); } - - cudaEventElapsedTime(&prev_elapsed_time_gpu_milliseconds, event_start, event_end); - gpu_timer_started = false; - } - - float getCpuElapsedTimeForPreviousOperation() //noexcept //(damn I need VS 2015 - { - return prev_elapsed_time_cpu_milliseconds; - } - - float getGpuElapsedTimeForPreviousOperation() //noexcept - { - return prev_elapsed_time_gpu_milliseconds; - } - - // remove copy and move functions - PerformanceTimer(const PerformanceTimer&) = delete; - PerformanceTimer(PerformanceTimer&&) = delete; - PerformanceTimer& operator=(const PerformanceTimer&) = delete; - PerformanceTimer& operator=(PerformanceTimer&&) = delete; - - private: - cudaEvent_t event_start = nullptr; - cudaEvent_t event_end = nullptr; - - using time_point_t = std::chrono::high_resolution_clock::time_point; - time_point_t time_start_cpu; - time_point_t time_end_cpu; - - bool cpu_timer_started = false; - bool gpu_timer_started = false; - - float prev_elapsed_time_cpu_milliseconds = 0.f; - float prev_elapsed_time_gpu_milliseconds = 0.f; - }; -} +#pragma once + +#include +#include + +#include +#include +#include +#include +#include +#include + +#define blockSize 256 + +#define FILENAME (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) +#define checkCUDAError(msg) checkCUDAErrorFn(msg, FILENAME, __LINE__) + +/** + * Check for CUDA errors; print and exit if there was a problem. + */ +void checkCUDAErrorFn(const char *msg, const char *file = NULL, int line = -1); + +inline int ilog2(int x) { + int lg = 0; + while (x >>= 1) { + ++lg; + } + return lg; +} + +inline int ilog2ceil(int x) { + return x == 1 ? 0 : ilog2(x - 1) + 1; +} + + +namespace Common { + /** + * This class is used for timing the performance + * Uncopyable and unmovable + * + * Adapted from WindyDarian(https://github.com/WindyDarian) + */ + class PerformanceTimer + { + public: + PerformanceTimer() + { + cudaEventCreate(&event_start); + cudaEventCreate(&event_end); + } + + ~PerformanceTimer() + { + cudaEventDestroy(event_start); + cudaEventDestroy(event_end); + } + + void startCpuTimer() + { + if (cpu_timer_started) { throw std::runtime_error("CPU timer already started"); } + cpu_timer_started = true; + + time_start_cpu = std::chrono::high_resolution_clock::now(); + } + + void endCpuTimer() + { + time_end_cpu = std::chrono::high_resolution_clock::now(); + + if (!cpu_timer_started) { throw std::runtime_error("CPU timer not started"); } + + std::chrono::duration duro = time_end_cpu - time_start_cpu; + prev_elapsed_time_cpu_milliseconds = + static_cast(duro.count()); + + cpu_timer_started = false; + } + + void startGpuTimer() + { + if (gpu_timer_started) { throw std::runtime_error("GPU timer already started"); } + gpu_timer_started = true; + + cudaEventRecord(event_start); + } + + void endGpuTimer() + { + cudaEventRecord(event_end); + cudaEventSynchronize(event_end); + + if (!gpu_timer_started) { throw std::runtime_error("GPU timer not started"); } + + cudaEventElapsedTime(&prev_elapsed_time_gpu_milliseconds, event_start, event_end); + gpu_timer_started = false; + } + + float getCpuElapsedTimeForPreviousOperation() //noexcept //(damn I need VS 2015 + { + return prev_elapsed_time_cpu_milliseconds; + } + + float getGpuElapsedTimeForPreviousOperation() //noexcept + { + return prev_elapsed_time_gpu_milliseconds; + } + + // remove copy and move functions + PerformanceTimer(const PerformanceTimer&) = delete; + PerformanceTimer(PerformanceTimer&&) = delete; + PerformanceTimer& operator=(const PerformanceTimer&) = delete; + PerformanceTimer& operator=(PerformanceTimer&&) = delete; + + private: + cudaEvent_t event_start = nullptr; + cudaEvent_t event_end = nullptr; + + using time_point_t = std::chrono::high_resolution_clock::time_point; + time_point_t time_start_cpu; + time_point_t time_end_cpu; + + bool cpu_timer_started = false; + bool gpu_timer_started = false; + + float prev_elapsed_time_cpu_milliseconds = 0.f; + float prev_elapsed_time_gpu_milliseconds = 0.f; + }; +} diff --git a/Project2-Character-Recognition/character_recognition/mlp.cu b/Project2-Character-Recognition/character_recognition/mlp.cu index 72a7e09..4bd098a 100644 --- a/Project2-Character-Recognition/character_recognition/mlp.cu +++ b/Project2-Character-Recognition/character_recognition/mlp.cu @@ -1,469 +1,430 @@ -#include -#include -#include "common.h" -#include "mlp.h" -#include -#include -#include -#include -#include -#include -#include - -#define EPSILON 0.0005 -#define MAX_ITER 1 << 10 - -namespace CharacterRecognition { - using Common::PerformanceTimer; - PerformanceTimer& timer() - { - static PerformanceTimer timer; - return timer; - } - - inline int ilog2(int x) { - int lg = 0; - while (x >>= 1) { - ++lg; - } - return lg; - } - - inline int ilog2ceil(int x) { - return x == 1 ? 0 : ilog2(x - 1) + 1; - } - - __host__ __device__ unsigned int hash(unsigned int a) { - a = (a + 0x7ed55d16) + (a << 12); - a = (a ^ 0xc761c23c) ^ (a >> 19); - a = (a + 0x165667b1) + (a << 5); - a = (a + 0xd3a2646c) ^ (a << 9); - a = (a + 0xfd7046c5) + (a << 3); - a = (a ^ 0xb55a4f09) ^ (a >> 16); - return a; - } - - __host__ __device__ float generateRandom(float time, int index) { - thrust::default_random_engine rng(hash((int)(index * time))); - thrust::uniform_real_distribution unitDistrib(0, 1); - - return (double)unitDistrib(rng); - } - - // compute random float value between 0 and 1 - __global__ void kernRandom(int n, int time, double* out) { - int index = (blockIdx.x * blockDim.x) + threadIdx.x; - if (index >= n) { - return; - } - - out[index] = generateRandom(time, index); - } - - __global__ void kernComputeLayerSum2(int n, int inCount, int outCount, float *in, float *out, float *weights) { - int index = (blockIdx.x * blockDim.x) + threadIdx.x; - if (index >= n) { - return; - } - - //int inIndex = floor(index / outCount); - int inIndex = index / outCount; - int outIndex = index - (inIndex * outCount); - - out[outIndex] += in[inIndex] * weights[index]; - } - - // per OUTPUT - // numHidden, dev_hiddenLayer, numInput, dev_input, dev_weights, 0 - // 1, dev_output, numHidden, dev_hiddenLayer, dev_weights, numWeights1s - __global__ void kernComputeLayerSum(int n, float *out, int inCount, float *in, double *weights, int weightsOffset) { - int index = (blockIdx.x * blockDim.x) + threadIdx.x; - if (index >= n) { - return; - } - - float sum = 0.0; - for (int i = 0; i < inCount; i++) { - sum += in[i] * weights[index + (i * n) + weightsOffset]; - } - - out[index] = sum; - } - - __host__ __device__ float activationFxn(float x) { - // activation function: f(x) = 1 / (1 + e^-x) - return (1.0 / (1.0 + exp(-x))); - } - - __global__ void kernComputeActivationFxn(int n, float *in) { - int index = (blockIdx.x * blockDim.x) + threadIdx.x; - if (index >= n) { - return; - } - - in[index] = activationFxn(in[index]); - } - - __global__ void kernComputePartialDerivativeLayer1(int n, double *outDerivatives, double *weights, - int numWeights1, float *input, int numHidden, float *hiddenOutput, float output, float expected) { - int index = (blockIdx.x * blockDim.x) + threadIdx.x; - if (index >= n) { - return; - } - - int inputIndex = index / numHidden; - int hiddenIndex = index % numHidden; - float hiddenActivation = activationFxn(hiddenOutput[hiddenIndex]); - float outputActivation = activationFxn(output); - - float partialDerivative = -input[inputIndex] * hiddenActivation * (1.0 - hiddenActivation) * - (expected - output) * outputActivation * (1.0 - outputActivation) * weights[numWeights1 + hiddenIndex]; - - outDerivatives[index] = partialDerivative; - } - - __global__ void kernComputePartialDerivativeLayer2(int n, double *outDerivatives, double *weights, - int numWeights1, float *input, int numHidden, float *hiddenOutput, float output, float expected) { - int index = (blockIdx.x * blockDim.x) + threadIdx.x; - if (index >= n) { - return; - } - - float outputActivation = activationFxn(output); - float partialDerivative = -(expected - output) * outputActivation * (1.0 - outputActivation) * hiddenOutput[index]; - - outDerivatives[numWeights1 + index] = partialDerivative; - } - - void getWeights(int numWeights, double *weights, bool training) { - if (training) { - double *dev_weights; - cudaMalloc((void**)&dev_weights, numWeights * sizeof(double)); - checkCUDAError("cudaMalloc dev_weights failed!"); - - // fill weights with random numbers between 0 and 1 - dim3 fullBlocksPerGrid((numWeights + blockSize - 1) / blockSize); - kernRandom<<>>(numWeights, 1, dev_weights); - checkCUDAError("kernRandom failed!"); - - // copy weights back to host - cudaMemcpy(weights, dev_weights, numWeights * sizeof(double), cudaMemcpyDeviceToHost); - checkCUDAError("cudaMemcpy weights dev_weights failed!"); - - // TODO: REMOVE LATER - - weights[0] = 10.1; - weights[1] = 0.9; - weights[2] = 20.0; - weights[3] = 0.87; - weights[4] = 41.0; - weights[5] = -54.0; - - cudaFree(dev_weights); - checkCUDAError("cudaFree dev_weights failed!"); - } - else { - // pull weights from txt file - // TODO - } - } - - __global__ void kernScale(int n, double *buffer, float scale) { - int index = (blockIdx.x * blockDim.x) + threadIdx.x; - if (index >= n) { - return; - } - - buffer[index] = scale * buffer[index]; - } - - __global__ void kernScanUpsweep(int n, int iteration, double *buffer) { - int index = (blockIdx.x * blockDim.x) + threadIdx.x; - if (index >= n) { - return; - } - - int power1 = ceil(pow(2.0, double(iteration + 1))); - if (index % power1 == 0) { - int power2 = ceil(pow(2.0, double(iteration))); - buffer[index + power1 - 1] += buffer[index + power2 - 1]; - } - } - - // finds the next power of 2 greater than or equal to n - int nextPowerOfTwo(int n) { - if (n && !(n & (n - 1))) - return n; - - int count = 0; - while (n != 0) { - n >>= 1; - count++; - } - - return 1 << count; - } - - __global__ void kernModifyWeights(int n, double *weights, double *allWeightsErrors, int offset) { - int index = (blockIdx.x * blockDim.x) + threadIdx.x; - if (index >= n) { - return; - } - weights[index] += allWeightsErrors[offset * index + (offset - 1)]; - } - - void adjustWeights(int numTotalInput, int numWeights, double *weights, std::vector allWeightsDerivatives, float error) { - int numTotalPowerOf2 = nextPowerOfTwo(numTotalInput); - - // reorganize all weights derivatives to be in one buffer - // buffer with zero's so it can be used in scan upsweep - double *allWeightsDerivativesShuffled = new double[numTotalPowerOf2 * numWeights]; - for (int i = 0; i < numTotalInput; i++) { - for (int j = 0; j < numWeights; j++) { - allWeightsDerivativesShuffled[j * numTotalPowerOf2 + i] = allWeightsDerivatives[i][j]; - } - } - for (int i = numTotalInput; i < numTotalPowerOf2; i++) { - for (int j = 0; j < numWeights; j++) { - allWeightsDerivativesShuffled[j * numTotalPowerOf2 + i] = allWeightsDerivatives[i][j]; - } - } - - - double *dev_allWeightsDerivatives; - cudaMalloc((void**)&dev_allWeightsDerivatives, (numTotalPowerOf2 * numWeights) * sizeof(double)); - checkCUDAError("cudaMalloc dev_allWeightsDerivatives failed!"); - - cudaMemcpy(dev_allWeightsDerivatives, allWeightsDerivativesShuffled, (numTotalPowerOf2 * numWeights) * sizeof(double), cudaMemcpyHostToDevice); - checkCUDAError("cudaMemcpy dev_allWeightsDerivatives allWeightsDerivativesShuffled failed!"); - - double *dev_weights; - cudaMalloc((void**)&dev_weights, numWeights * sizeof(double)); - checkCUDAError("cudaMalloc dev_weights failed!"); - - cudaMemcpy(dev_weights, weights, numWeights * sizeof(double), cudaMemcpyHostToDevice); - checkCUDAError("cudaMemcpy dev_weights weights failed!"); - - // for each weight derivative, compute delta weight - float lambda = -error / 5.0; - dim3 gridSize = dim3(((numTotalPowerOf2 * numWeights) + blockSize - 1) / blockSize, 1, 1); - kernScale<<>>(numTotalPowerOf2 * numWeights, dev_allWeightsDerivatives, lambda); - checkCUDAError("kernScale failed!"); - - cudaMemcpy(allWeightsDerivativesShuffled, dev_allWeightsDerivatives, (numTotalPowerOf2 * numWeights) * sizeof(double), cudaMemcpyDeviceToHost); - checkCUDAError("cudaMemcpy dev_allWeightsDerivatives allWeightsDerivativesShuffled failed!"); - - // sum delta weights over all test input for a given weight - gridSize = dim3(((numTotalPowerOf2 * numWeights) + blockSize - 1) / blockSize, 1, 1); - for (int d = 0; d < ilog2ceil(numTotalPowerOf2); d++) { - kernScanUpsweep<<>>(numTotalPowerOf2 * numWeights, d, dev_allWeightsDerivatives); - checkCUDAError("kernScanUpsweep failed!"); - } - - cudaMemcpy(allWeightsDerivativesShuffled, dev_allWeightsDerivatives, (numTotalPowerOf2 * numWeights) * sizeof(double), cudaMemcpyDeviceToHost); - checkCUDAError("cudaMemcpy dev_allWeightsDerivatives allWeightsDerivativesShuffled failed!"); - - // add delta weights to weights - gridSize = dim3((numWeights + blockSize - 1) / blockSize, 1, 1); - kernModifyWeights<<>>(numWeights, dev_weights, dev_allWeightsDerivatives, numTotalPowerOf2); - checkCUDAError("kernModifyWeights failed!"); - - // copy weights back to host - cudaMemcpy(weights, dev_weights, numWeights * sizeof(double), cudaMemcpyDeviceToHost); - checkCUDAError("cudaMemcpy weights dev_weights failed!"); - - cudaFree(dev_allWeightsDerivatives); - cudaFree(dev_weights); - checkCUDAError("cudaFree failed!"); - - } - - /** - * Example of use case (follow how you did it in stream compaction) - */ - /*void scan(int n, int *odata, const int *idata) { - timer().startGpuTimer(); - // TODO - timer().endGpuTimer(); - } - */ -float runOneInput(int numInput, int numHidden, const float *input, const double *weights, double *weightDerivatives, float expected, bool training) { - int numWeights1 = numInput * numHidden; - int numWeights2 = numHidden; - - float *dev_input; - float *dev_hiddenLayer; - float *dev_output; - double *dev_weights; - double *dev_weightDerivatives; - - // malloc device buffers - cudaMalloc((void**)&dev_input, numInput * sizeof(float)); - checkCUDAError("cudaMalloc dev_input failed!"); - - cudaMalloc((void**)&dev_hiddenLayer, numHidden * sizeof(float)); - checkCUDAError("cudaMalloc dev_hiddenLayer failed!"); - - cudaMalloc((void**)&dev_output, numHidden * sizeof(float)); - checkCUDAError("cudaMalloc dev_output failed!"); - - cudaMalloc((void**)&dev_weights, (numWeights1 + numWeights2) * sizeof(double)); - checkCUDAError("cudaMalloc dev_weights failed!"); - - cudaMalloc((void**)&dev_weightDerivatives, (numWeights1 + numWeights2) * sizeof(double)); - checkCUDAError("cudaMalloc dev_weightsError failed!"); - - // copy weights from host to device - cudaMemcpy(dev_weights, weights, (numWeights1 + numWeights2) * sizeof(double), cudaMemcpyHostToDevice); - checkCUDAError("cudaMemcpy dev_weights weights failed!"); - - // copy input from host to device - cudaMemcpy(dev_input, input, numInput * sizeof(float), cudaMemcpyHostToDevice); - checkCUDAError("cudaMemcpy dev_input input failed!"); - - // compute first layer summation - dim3 gridSize = dim3((numHidden + blockSize - 1) / blockSize, 1, 1); - kernComputeLayerSum<<>>(numHidden, dev_hiddenLayer, numInput, dev_input, dev_weights, 0); - checkCUDAError("kernComputeLayerSum failed!"); - - // DEBUG - float *test = new float[6]; - cudaMemcpy(test, dev_hiddenLayer, numHidden * sizeof(float), cudaMemcpyDeviceToHost); - - // compute result of hidden layer (activation function) - gridSize = dim3((numHidden + blockSize - 1) / blockSize, 1, 1); - kernComputeActivationFxn<<>>(numHidden, dev_hiddenLayer); - checkCUDAError("kernComputeActivationFxn failed!"); - - // DEBUG - cudaMemcpy(test, dev_hiddenLayer, numHidden * sizeof(float), cudaMemcpyDeviceToHost); - - // compute second layer summation - // TODO this is one thread - gridSize = dim3((1 + blockSize - 1) / blockSize, 1, 1); - kernComputeLayerSum<<>>(1, dev_output, numHidden, dev_hiddenLayer, dev_weights, numWeights1); - checkCUDAError("kernComputeLayerSum failed!"); - - cudaMemcpy(test, dev_output, 1 * sizeof(float), cudaMemcpyDeviceToHost); - - // compute activation function of output layer node - float output; - cudaMemcpy(&output, dev_output, 1 * sizeof(float), cudaMemcpyDeviceToHost); - output = activationFxn(output); - - // if training, compute partial derivatives for error/weight - if (training) { - // first layer weights - gridSize = dim3((numWeights1 + blockSize - 1) / blockSize, 1, 1); - kernComputePartialDerivativeLayer1<<>>(numWeights1, dev_weightDerivatives, dev_weights, numWeights1, - dev_input, numHidden, dev_hiddenLayer, output, expected); - checkCUDAError("kernComputePartialDerivativeLayer1 failed!"); - - // second layer weights - gridSize = dim3((numWeights2 + blockSize - 1) / blockSize, 1, 1); - kernComputePartialDerivativeLayer2<<>>(numWeights2, dev_weightDerivatives, dev_weights, numWeights1, - dev_input, numHidden, dev_hiddenLayer, output, expected); - checkCUDAError("kernComputePartialDerivativeLayer2 failed!"); - - // copy derivatives to host - cudaMemcpy(weightDerivatives, dev_weightDerivatives, (numWeights1 + numWeights2) * sizeof(double), cudaMemcpyDeviceToHost); - checkCUDAError("cudaMemcpy weightDerivatives dev_weightDerivatives failed!"); - } - - cudaFree(dev_input); - cudaFree(dev_hiddenLayer); - cudaFree(dev_output); - cudaFree(dev_weights); - cudaFree(dev_weightDerivatives); - checkCUDAError("cudaFree failed!"); - - // return square of difference - return (output - expected) * (output - expected); -} - -void train(int numInput, std::vector inputs, std::vector expected) { - int numTotalInput = inputs.size(); - - // determine how many nodes in hidden layer (average of # of nodes in input and # of nodes in output) - int numHidden = ceil((numInput + 1.0) / 2.0); - - // determine number of weights in all layers - int numWeights = (numInput * numHidden) + numHidden; - - // get weights - double *weights = new double[numWeights]; - getWeights(numWeights, weights, true); - - // create weight errors - std::vector allWeightErrors; - for (int i = 0; i < numTotalInput; i++) { - double *weightErrors = new double[numWeights]; - allWeightErrors.push_back(weightErrors); - } - - float totalError; - int numIter = 0; - - while (true) { - totalError = 0.f; - // train on each input - for (int i = 0; i < numTotalInput; i++) { - float *in = inputs[i]; - totalError += runOneInput(numInput, numHidden, in, weights, allWeightErrors[i], expected[i], true); - } - totalError /= 2.f; - - if (totalError < EPSILON || numIter > MAX_ITER) { - // finished training - // save weights to txt file - std::ofstream weightsFile; - weightsFile.open("../weights.txt"); - for (int i = 0; i < numWeights; i++) { - float weight = weights[i]; - weightsFile << weight; - weightsFile << "\n"; - } - weightsFile.close(); - break; // break while loop - } - else { - adjustWeights(numTotalInput, numWeights, weights, allWeightErrors, totalError); - } - numIter++; - } - - delete[] weights; - - for (int i = 0; i < numTotalInput; i++) { - delete[] allWeightErrors[i]; - } -} - - void run() { - // get input - std::vector inputs; - std::vector expected; - int numInput; - - // determine how many nodes in hidden layer (average of # of nodes in input and # of nodes in output) - int numHidden = (numInput + 1.0) / 2.0; - - // determine number of weights in all layers - int numWeights = (numInput * numHidden) + numHidden; - - // get weights - double* weights = new double[numWeights]; - getWeights(numWeights, weights, false); - - float totalError = 0.f; - for (int i = 0; i < inputs.size(); i++) { - float *in = inputs[i]; - double* weightDerivatives = new double[0]; - totalError += runOneInput(numInput, numHidden, in, weights, weightDerivatives, expected[i], false); - } - - delete(weights); - } - - // TODO: implement required elements for MLP sections 1 and 2 here -} +#include +#include +#include "common.h" +#include "mlp.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#define EPSILON 0.0005 +#define MAX_ITER 1 << 5 + +#define XOR_HARD_CODED_WEIGHTS 1 + +namespace CharacterRecognition { + using Common::PerformanceTimer; + PerformanceTimer& timer() + { + static PerformanceTimer timer; + return timer; + } + + __host__ __device__ unsigned int hash(unsigned int a) { + a = (a + 0x7ed55d16) + (a << 12); + a = (a ^ 0xc761c23c) ^ (a >> 19); + a = (a + 0x165667b1) + (a << 5); + a = (a + 0xd3a2646c) ^ (a << 9); + a = (a + 0xfd7046c5) + (a << 3); + a = (a ^ 0xb55a4f09) ^ (a >> 16); + return a; + } + + + __host__ __device__ float generateRandom(float time, int index, float range) { + thrust::default_random_engine rng(hash((int)(index * time))); + thrust::uniform_real_distribution unitDistrib(-1, 1); + + return range * unitDistrib(rng); + } + + + // compute random float value between 0 and 1 + __global__ void kernRandom(int n, int time, float* out) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + out[index] = generateRandom(time, index, 10.0); + } + + + __global__ void kernComputeLayerSum(int n, float *out, int inCount, float *in, float *weights, int weightsOffset) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + float sum = 0.0; + for (int i = 0; i < inCount; i++) { + sum += in[i] * weights[index + (i * n) + weightsOffset]; + } + + out[index] = sum; + } + + + __host__ __device__ float activationFxn(float x) { + // activation function: f(x) = 1 / (1 + e^-x) + return (1.0 / (1.0 + exp(-x))); + } + + + __global__ void kernComputeActivationFxn(int n, float *in) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + in[index] = activationFxn(in[index]); + } + + + __global__ void kernComputePartialDerivativeLayer1(int n, float *outDerivatives, float *weights, + int numWeights1, float *input, int numHidden, float *hiddenOutput, float output, float expected) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + int inputIndex = index / numHidden; + int hiddenIndex = index % numHidden; + float hiddenActivation = activationFxn(hiddenOutput[hiddenIndex]); + float outputActivation = activationFxn(output); + + float partialDerivative = -input[inputIndex] * hiddenActivation * (1.0 - hiddenActivation) * + (expected - output) * outputActivation * (1.0 - outputActivation) * weights[numWeights1 + hiddenIndex]; + + outDerivatives[index] = partialDerivative; + } + + + __global__ void kernComputePartialDerivativeLayer2(int n, float *outDerivatives, float *weights, + int numWeights1, float *input, int numHidden, float *hiddenOutput, float output, float expected) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + float outputActivation = activationFxn(output); + float partialDerivative = -(expected - output) * outputActivation * (1.0 - outputActivation) * hiddenOutput[index]; + + outDerivatives[numWeights1 + index] = partialDerivative; + } + + + void createWeights(int numWeights, float *weights) { + float *dev_weights; + cudaMalloc((void**)&dev_weights, numWeights * sizeof(float)); + checkCUDAError("cudaMalloc dev_weights failed!"); + + // fill weights with random numbers between 0 and 1 + dim3 gridSize = dim3((numWeights + blockSize - 1) / blockSize, 1, 1); + kernRandom<<>>(numWeights, 1, dev_weights); + checkCUDAError("kernRandom failed!"); + + // copy weights back to host + cudaMemcpy(weights, dev_weights, numWeights * sizeof(float), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy weights dev_weights failed!"); + +#if XOR_HARD_CODED_WEIGHTS + weights[0] = 10.1; + weights[1] = 0.9; + weights[2] = 20.0; + weights[3] = 0.87; + weights[4] = 41.0; + weights[5] = -54.0; +#endif // #if XOR_HARD_CODED_WEIGHTS + + cudaFree(dev_weights); + checkCUDAError("cudaFree dev_weights failed!"); + } + + + void getWeightsFromFile(int numWeights, float *weights, std::string filename) { + std::string prefix = "../weights_"; + std::string suffix = ".txt"; + std::stringstream buffer; + buffer << prefix << filename << suffix; + + int index = 0; + std::ifstream inputFile(buffer.str()); + if (inputFile.is_open()) { + std::string line; + while (std::getline(inputFile, line)) { + weights[index] = stof(line); + index++; + } + } + } + + + __global__ void kernScale(int n, float *buffer, float scale) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + buffer[index] = scale * buffer[index]; + } + + + __global__ void kernScanUpsweep(int n, int iteration, float *buffer) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + int power1 = ceil(pow(2.0, double(iteration + 1))); + if (index % power1 == 0) { + int power2 = ceil(pow(2.0, double(iteration))); + buffer[index + power1 - 1] += buffer[index + power2 - 1]; + } + } + + + __global__ void kernModifyWeights(int n, float *weights, float *allWeightsErrors, int numTotalInput) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + for (int i = 0; i < numTotalInput; i++) { + weights[index] += allWeightsErrors[i * n + index]; + } + } + + __global__ void kernModifyWeights2(int n, float *weights, float *weightsErrors, int numTotalInput, int currWeight) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + for (int i = 0; i < numTotalInput; i++) { + weights[currWeight] += weightsErrors[i]; + } + } + + __global__ void kernModifyWeights(int n, float *weights, float *weightsErrors) { + int index = (blockIdx.x * blockDim.x) + threadIdx.x; + if (index >= n) { + return; + } + + weights[index] += weightsErrors[index]; + } + + + void adjustWeights(int numTotalInput, int numWeights, float *weights, std::vector allWeightsDerivatives, float error) { + float lambda = -error / 5.0; + + float *dev_weights; + cudaMalloc((void**)&dev_weights, numWeights * sizeof(float)); + checkCUDAError("cudaMalloc dev_weights failed!"); + + cudaMemcpy(dev_weights, weights, numWeights * sizeof(float), cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy dev_weights weights failed!"); + + float *dev_weightErrors; + cudaMalloc((void**)&dev_weightErrors, numWeights * sizeof(float)); + checkCUDAError("cudaMalloc dev_weightErrors failed!"); + + for (int i = 0; i < allWeightsDerivatives.size(); i++) { + cudaMemcpy(dev_weightErrors, allWeightsDerivatives[i], numWeights * sizeof(float), cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy dev_weightErrors allWeightsDerivatives[i] failed!"); + + // for each weight derivative, compute delta weight + dim3 gridSize = dim3((numWeights + blockSize - 1) / blockSize, 1, 1); + kernScale<<>>(numWeights, dev_weightErrors, lambda); + checkCUDAError("kernScale failed!"); + + kernModifyWeights<<>>(numWeights, dev_weights, dev_weightErrors); + checkCUDAError("kernModifyWeights failed!"); + } + + // copy weights back to host + cudaMemcpy(weights, dev_weights, numWeights * sizeof(float), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy weights dev_weights failed!"); + + cudaFree(dev_weightErrors); + cudaFree(dev_weights); + checkCUDAError("cudaFree failed!"); + } + + + float runOneInput(int numInput, int numHidden, const float *input, const float *weights, float *weightErrors, float expected, bool training) { + int numWeights1 = numInput * numHidden; + int numWeights2 = numHidden; + + float *dev_input; + float *dev_hiddenLayer; + float *dev_output; + float *dev_weights; + float *dev_weightErrors; + + // malloc device buffers + cudaMalloc((void**)&dev_input, numInput * sizeof(float)); + checkCUDAError("cudaMalloc dev_input failed!"); + + cudaMalloc((void**)&dev_hiddenLayer, numHidden * sizeof(float)); + checkCUDAError("cudaMalloc dev_hiddenLayer failed!"); + + cudaMalloc((void**)&dev_output, numHidden * sizeof(float)); + checkCUDAError("cudaMalloc dev_output failed!"); + + cudaMalloc((void**)&dev_weights, (numWeights1 + numWeights2) * sizeof(float)); + checkCUDAError("cudaMalloc dev_weights failed!"); + + cudaMalloc((void**)&dev_weightErrors, (numWeights1 + numWeights2) * sizeof(float)); + checkCUDAError("cudaMalloc dev_weightsError failed!"); + + // copy weights from host to device + cudaMemcpy(dev_weights, weights, (numWeights1 + numWeights2) * sizeof(float), cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy dev_weights weights failed!"); + + // copy input from host to device + cudaMemcpy(dev_input, input, numInput * sizeof(float), cudaMemcpyHostToDevice); + checkCUDAError("cudaMemcpy dev_input input failed!"); + + // compute first layer summation + dim3 gridSize = dim3((numHidden + blockSize - 1) / blockSize, 1, 1); + kernComputeLayerSum<<>>(numHidden, dev_hiddenLayer, numInput, dev_input, dev_weights, 0); + checkCUDAError("kernComputeLayerSum failed!"); + + // compute result of hidden layer (activation function) + gridSize = dim3((numHidden + blockSize - 1) / blockSize, 1, 1); + kernComputeActivationFxn<<>>(numHidden, dev_hiddenLayer); + checkCUDAError("kernComputeActivationFxn failed!"); + + // compute second layer summation (this is one thread) TODO hm + gridSize = dim3((1 + blockSize - 1) / blockSize, 1, 1); + kernComputeLayerSum<<>>(1, dev_output, numHidden, dev_hiddenLayer, dev_weights, numWeights1); + checkCUDAError("kernComputeLayerSum failed!"); + + // compute activation function of output layer node + float output; + cudaMemcpy(&output, dev_output, 1 * sizeof(float), cudaMemcpyDeviceToHost); + output = activationFxn(output); + + if (!training) { + std::cout << "Expected output: " << std::to_string(expected) << std::endl; + std::cout << "Actual output: " << std::to_string(output) << std::endl; + std::cout << std::endl; + } + + // if training, compute partial derivatives for error/weight + if (training) { + // first layer weights + gridSize = dim3((numWeights1 + blockSize - 1) / blockSize, 1, 1); + kernComputePartialDerivativeLayer1<<>>(numWeights1, dev_weightErrors, dev_weights, numWeights1, + dev_input, numHidden, dev_hiddenLayer, output, expected); + checkCUDAError("kernComputePartialDerivativeLayer1 failed!"); + + // second layer weights + gridSize = dim3((numWeights2 + blockSize - 1) / blockSize, 1, 1); + kernComputePartialDerivativeLayer2<<>>(numWeights2, dev_weightErrors, dev_weights, numWeights1, + dev_input, numHidden, dev_hiddenLayer, output, expected); + checkCUDAError("kernComputePartialDerivativeLayer2 failed!"); + + // copy derivatives to host + cudaMemcpy(weightErrors, dev_weightErrors, (numWeights1 + numWeights2) * sizeof(float), cudaMemcpyDeviceToHost); + checkCUDAError("cudaMemcpy weightErrors dev_weightErrors failed!"); + } + + cudaFree(dev_input); + cudaFree(dev_hiddenLayer); + cudaFree(dev_output); + cudaFree(dev_weights); + cudaFree(dev_weightErrors); + checkCUDAError("cudaFree failed!"); + + // return square of difference + return (output - expected) * (output - expected); + } + + void train(int numInput, std::vector inputs, std::vector expected, std::string filename) { + int numTotalInput = inputs.size(); + + // determine how many nodes in hidden layer (average of # of nodes in input and # of nodes in output) + int numHidden = ceil((numInput + 1.0) / 2.0); + + // determine number of weights in all layers + int numWeights = (numInput * numHidden) + numHidden; + + // get weights + float *weights = new float[numWeights]; + createWeights(numWeights, weights); + + // create weight errors + std::vector allWeightErrors; + for (int i = 0; i < numTotalInput; i++) { + allWeightErrors.push_back(new float[numWeights]); + } + + float totalError; + int numIter = 0; + + while (true) { + totalError = 0.0; + // train on each input + for (int i = 0; i < numTotalInput; i++) { + float *in = inputs[i]; + totalError += runOneInput(numInput, numHidden, in, weights, allWeightErrors[i], expected[i], true); + } + totalError /= 2.0; + + if (totalError < EPSILON || numIter > MAX_ITER) { + // finished training, save weights to txt file + std::ofstream weightsFile; + weightsFile.open("../weights_" + filename + ".txt"); + for (int i = 0; i < numWeights; i++) { + float weight = weights[i]; + weightsFile << weight; + weightsFile << "\n"; + } + weightsFile.close(); + break; // break while loop + } + else { + adjustWeights(numTotalInput, numWeights, weights, allWeightErrors, totalError); + } + numIter++; + } + + delete[] weights; + + for (int i = 0; i < numTotalInput; i++) { + delete[] allWeightErrors[i]; + } + } + + void run(int numInput, std::vector inputs, std::vector expected, std::string filename) { + + // determine how many nodes in hidden layer (average of # of nodes in input and # of nodes in output) + int numHidden = ceil((numInput + 1.0) / 2.0); + + // determine number of weights in all layers + int numWeights = (numInput * numHidden) + numHidden; + + // get weights + float* weights = new float[numWeights]; + getWeightsFromFile(numWeights, weights, filename); + + float totalError = 0.f; + for (int i = 0; i < inputs.size(); i++) { + float *in = inputs[i]; + totalError += runOneInput(numInput, numHidden, in, weights, nullptr, expected[i], false); + } + + std::cout << "Total error: " << std::to_string(totalError / 2.0) << std::endl; + + delete[] weights; + } + + +} diff --git a/Project2-Character-Recognition/character_recognition/mlp.h b/Project2-Character-Recognition/character_recognition/mlp.h index 4adde00..fcfc3a9 100644 --- a/Project2-Character-Recognition/character_recognition/mlp.h +++ b/Project2-Character-Recognition/character_recognition/mlp.h @@ -1,14 +1,13 @@ -#pragma once - -#include "common.h" -#include - -namespace CharacterRecognition { - Common::PerformanceTimer& timer(); - - void train(int numInput, std::vector inputs, std::vector expected); - - void run(); - - -} +#pragma once + +#include "common.h" +#include + +namespace CharacterRecognition { + Common::PerformanceTimer& timer(); + + void train(int numInput, std::vector inputs, std::vector expected, std::string filename); + + void run(int numInput, std::vector inputs, std::vector expected, std::string filename); + +} diff --git a/Project2-Character-Recognition/src/main.cpp b/Project2-Character-Recognition/src/main.cpp index d469896..4a8708a 100644 --- a/Project2-Character-Recognition/src/main.cpp +++ b/Project2-Character-Recognition/src/main.cpp @@ -1,104 +1,116 @@ -/** - * @file main.cpp - * @brief Stream compaction test program - * @authors Kai Ninomiya - * @date 2015 - * @copyright University of Pennsylvania - */ - -#include -#include -#include -#include "testing_helpers.hpp" -#include -#include -#include -#include -#include - -const int SIZE = 1 << 8; // feel free to change the size of array -const int NPOT = SIZE - 3; // Non-Power-Of-Two -int *a = new int[SIZE]; -int *b = new int[SIZE]; -int *c = new int[SIZE]; - -#define training 1 - -int main(int argc, char* argv[]) { - - printf("\n"); - printf("*********************************\n"); - printf("*********** XOR TESTS ***********\n"); - printf("*********************************\n"); - - int numTotalInput = 4; - - std::vector inputs; - std::vector expected; - const int numInputXOR = 2; - - float input1[numInputXOR] = { 0, 0 }; - float input2[numInputXOR] = { 0, 1 }; - float input3[numInputXOR] = { 1, 0 }; - float input4[numInputXOR] = { 1, 1 }; - inputs.push_back(input1); - inputs.push_back(input2); - inputs.push_back(input3); - inputs.push_back(input4); - - expected.push_back(0); - expected.push_back(1); - expected.push_back(1); - expected.push_back(0); - - CharacterRecognition::train(numInputXOR, inputs, expected); - - - printf("\n"); - printf("*********************************\n"); - printf("** CHARACTER RECOGNITION TESTS **\n"); - printf("*********************************\n"); - - inputs.clear(); - expected.clear(); - - // collect character recognition data set - numTotalInput = 52; - int numInputCharRecognition; - - std::string prefix = "../data-set/"; - std::string suffix = "info.txt"; - for (int i = 1; i < numTotalInput; i++) { - std::stringstream buffer; - buffer << prefix << std::setfill('0') << std::setw(2) << i << suffix; - - std::ifstream inputFile(buffer.str()); - if (inputFile.is_open()) { - std::string line; - std::getline(inputFile, line); - expected.push_back(atoi(line.c_str())); - - std::getline(inputFile, line); - numInputCharRecognition = atoi(line.c_str()); - - std::getline(inputFile, line); - std::string::iterator end = std::remove(line.begin(), line.end(), ' '); - line.erase(end, line.end()); - - float *input = new float[numInputCharRecognition]; - int length = line.size(); - for (int j = 0; j < numInputCharRecognition; j++) { - input[j] = line.at(j); - } - inputs.push_back(input); - } - } - - CharacterRecognition::train(numInputCharRecognition, inputs, expected); - - for (int i = 0; i < numTotalInput; i++) { - delete[] inputs[i]; - } - - system("pause"); // stop Win32 console from closing on exit -} +/** + * @file main.cpp + * @brief Stream compaction test program + * @authors Kai Ninomiya + * @date 2015 + * @copyright University of Pennsylvania + */ + +#include +#include +#include +#include "testing_helpers.hpp" +#include +#include +#include +#include +#include + +#define TRAINING 0 +#define CHAR_RECOGNITION 1 + +int main(int argc, char* argv[]) { + +#if CHAR_RECOGNITION + printf("\n"); + printf("*********************************\n"); + printf("** CHARACTER RECOGNITION TESTS **\n"); + printf("*********************************\n"); + + int numTotalInput = 52; + std::vector inputs; + std::vector expected; + + // collect character recognition data set + int numInput; + + std::string prefix = "../data-set/"; + std::string suffix = "info.txt"; + for (int i = 1; i < numTotalInput + 1; i++) { + std::stringstream buffer; + buffer << prefix << std::setfill('0') << std::setw(2) << i << suffix; + + std::ifstream inputFile(buffer.str()); + if (inputFile.is_open()) { + std::string line; + // get expected character + std::getline(inputFile, line); + expected.push_back(atoi(line.c_str()) / 255.0); + + // get number of characters in input + std::getline(inputFile, line); + numInput = atoi(line.c_str()); + + // get input + std::getline(inputFile, line); + + std::istringstream iss(line); + std::string oneInput; + int counter = 0; + float *input = new float[numInput]; + while (std::getline(iss, oneInput, ' ')) { + if (!oneInput.empty()) { + input[counter] = stof(oneInput) / 255.0; + counter++; + } + } + inputs.push_back(input); + } + } + +#if TRAINING + CharacterRecognition::train(numInput, inputs, expected, "char_recognition"); +#else // #if TRAINING + CharacterRecognition::run(numInput, inputs, expected, "char_recognition"); +#endif // #else // #if TRAINING + + for (int i = 0; i < numTotalInput; i++) { + delete[] inputs[i]; + } + +#else // #if CHAR_RECOGNITION + printf("\n"); + printf("*********************************\n"); + printf("*********** XOR TESTS ***********\n"); + printf("*********************************\n"); + + int numTotalInput = 4; + + std::vector inputs; + std::vector expected; + const int numInput = 2; + + float input1[numInput] = { 0, 0 }; + float input2[numInput] = { 0, 1 }; + float input3[numInput] = { 1, 0 }; + float input4[numInput] = { 1, 1 }; + inputs.push_back(input1); + inputs.push_back(input2); + inputs.push_back(input3); + inputs.push_back(input4); + + expected.push_back(0); + expected.push_back(1); + expected.push_back(1); + expected.push_back(0); + +#if TRAINING + CharacterRecognition::train(numInput, inputs, expected, "XOR"); +#else // #if TRAINING + CharacterRecognition::run(numInput, inputs, expected, "XOR"); +#endif // #else // #if TRAINING + +#endif // #else // #if CHAR_RECOGNITION + + system("pause"); // stop Win32 console from closing on exit +} diff --git a/Project2-Character-Recognition/src/testing_helpers.hpp b/Project2-Character-Recognition/src/testing_helpers.hpp index b28a8d2..d6cc4e3 100644 --- a/Project2-Character-Recognition/src/testing_helpers.hpp +++ b/Project2-Character-Recognition/src/testing_helpers.hpp @@ -1,76 +1,76 @@ -#pragma once - -#include -#include -#include -#include -#include - -template -int cmpArrays(int n, T *a, T *b) { - for (int i = 0; i < n; i++) { - if (a[i] != b[i]) { - printf(" a[%d] = %d, b[%d] = %d\n", i, a[i], i, b[i]); - return 1; - } - } - return 0; -} - -void printDesc(const char *desc) { - printf("==== %s ====\n", desc); -} - -template -void printCmpResult(int n, T *a, T *b) { - printf(" %s \n", - cmpArrays(n, a, b) ? "FAIL VALUE" : "passed"); -} - -template -void printCmpLenResult(int n, int expN, T *a, T *b) { - if (n != expN) { - printf(" expected %d elements, got %d\n", expN, n); - } - printf(" %s \n", - (n == -1 || n != expN) ? "FAIL COUNT" : - cmpArrays(n, a, b) ? "FAIL VALUE" : "passed"); -} - -void zeroArray(int n, int *a) { - for (int i = 0; i < n; i++) { - a[i] = 0; - } -} - -void onesArray(int n, int *a) { - for (int i = 0; i < n; i++) { - a[i] = 1; - } -} - -void genArray(int n, int *a, int maxval) { - srand(time(nullptr)); - - for (int i = 0; i < n; i++) { - a[i] = rand() % maxval; - } -} - -void printArray(int n, int *a, bool abridged = false) { - printf(" [ "); - for (int i = 0; i < n; i++) { - if (abridged && i + 2 == 15 && n > 16) { - i = n - 2; - printf("... "); - } - printf("%3d ", a[i]); - } - printf("]\n"); -} - -template -void printElapsedTime(T time, std::string note = "") -{ - std::cout << " elapsed time: " << time << "ms " << note << std::endl; +#pragma once + +#include +#include +#include +#include +#include + +template +int cmpArrays(int n, T *a, T *b) { + for (int i = 0; i < n; i++) { + if (a[i] != b[i]) { + printf(" a[%d] = %d, b[%d] = %d\n", i, a[i], i, b[i]); + return 1; + } + } + return 0; +} + +void printDesc(const char *desc) { + printf("==== %s ====\n", desc); +} + +template +void printCmpResult(int n, T *a, T *b) { + printf(" %s \n", + cmpArrays(n, a, b) ? "FAIL VALUE" : "passed"); +} + +template +void printCmpLenResult(int n, int expN, T *a, T *b) { + if (n != expN) { + printf(" expected %d elements, got %d\n", expN, n); + } + printf(" %s \n", + (n == -1 || n != expN) ? "FAIL COUNT" : + cmpArrays(n, a, b) ? "FAIL VALUE" : "passed"); +} + +void zeroArray(int n, int *a) { + for (int i = 0; i < n; i++) { + a[i] = 0; + } +} + +void onesArray(int n, int *a) { + for (int i = 0; i < n; i++) { + a[i] = 1; + } +} + +void genArray(int n, int *a, int maxval) { + srand(time(nullptr)); + + for (int i = 0; i < n; i++) { + a[i] = rand() % maxval; + } +} + +void printArray(int n, int *a, bool abridged = false) { + printf(" [ "); + for (int i = 0; i < n; i++) { + if (abridged && i + 2 == 15 && n > 16) { + i = n - 2; + printf("... "); + } + printf("%3d ", a[i]); + } + printf("]\n"); +} + +template +void printElapsedTime(T time, std::string note = "") +{ + std::cout << " elapsed time: " << time << "ms " << note << std::endl; } \ No newline at end of file