From a3789a6fe0df7eafd32d2dfc6d5ab70b84d4e111 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 01:19:44 +0800 Subject: [PATCH 001/138] feat: add header file for simulated transport implementation --- network/simtransport.hpp | 89 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 network/simtransport.hpp diff --git a/network/simtransport.hpp b/network/simtransport.hpp new file mode 100644 index 0000000..0a0d82c --- /dev/null +++ b/network/simtransport.hpp @@ -0,0 +1,89 @@ +// -*- mode: c++; c-file-style: "k&r"; c-basic-offset: 4 -*- +/*********************************************************************** + * + * simtransport.h: + * simulated message-passing interface for testing use + * + * Reference: 2013-2016 Dan R. K. Ports + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + **********************************************************************/ + +#ifndef _NETWORK_SIMTRANSPORT_H_ +#define _NETWORK_SIMTRANSPORT_H_ + +#include "network/configuration.hpp" +#include "network/transport.hpp" + +#include + +namespace network +{ + + class SimulatedTransport : public Transport + { + public: + SimulatedTransport( + const network::Configuration &config, + int nthreads, + uint8_t nr_req_types, + uint8_t id); + ~SimulatedTransport(); + void Register(TransportReceiver *receiver, int replicaIdx); + void Run(); + void Wait(); + void Stop(); + + bool SendRequestToServer(TransportReceiver *src, uint8_t reqType, uint32_t serverIdx, uint8_t dstRpcIdx, size_t msgLen) override; + bool SendRequestToAllServers(TransportReceiver *src, uint8_t reqType, uint8_t dstRpcIdx, size_t msgLen) override; + bool SendResponse(uint64_t reqHandleIdx, size_t msgLen) override; + bool SendResponse(size_t msgLen) override; + char *GetRequestBuf(size_t reqLen, size_t respLen) override; + int GetSession(TransportReceiver *src, uint8_t replicaIdx, uint8_t dstRpcIdx) override; + + uint8_t GetID() override { return id; }; + + protected: + bool SendMessageInternal(TransportReceiver *src, + const Message &m, + bool multicast); + + private: + // Configuration containing the ids of the servers + network::Configuration config; + + // Number of server threads + int nthreads; + + // This corresponds to the thread id of the curren server + // used as the RPC id, must be unique per transport thread + uint8_t id; + + // This corresponds to the machine index + // Index of the receiver (if -1 then the receiver is a client that + // does not get requests, otherwise it is a server from the configuration) + int receiverIdx; + + std::map receivers; + }; +} +#endif // _NETWORK_SIMTRANSPORT_H_ From 18471c9996eb84cdc19befb61b70f27632ac8149 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 01:20:01 +0800 Subject: [PATCH 002/138] feat: add example config file for testing environment --- config-test | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 config-test diff --git a/config-test b/config-test new file mode 100644 index 0000000..e4d0bdd --- /dev/null +++ b/config-test @@ -0,0 +1,2 @@ +server localhost:1234 +server localhost:1235 \ No newline at end of file From d3ae9597888f8e020e6027845f10c32df8b12490 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 01:20:30 +0800 Subject: [PATCH 003/138] feat: add notes for current branch implementation --- NOTES.md | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 NOTES.md diff --git a/NOTES.md b/NOTES.md new file mode 100644 index 0000000..d4feb3a --- /dev/null +++ b/NOTES.md @@ -0,0 +1,101 @@ +# Simulated Transport Integration + +This branch is an effort to use imulated transport as a replaement of the eRPC library requirement. + +This is part of Agnes' FYP week 10 task. + +## Code +### client/ +The original Be-Tree code + +* test.cpp: +- The main test program. Demonstrates how to construct and +use a betree. +- This is removed in the fork. + +* betree.hpp: +- The core of the betree implementation. +- This class handles flushing messages down the tree, splitting nodes, performing inserts, queries, etc, and provides an iterator for scanning key/value pairs in the tree. +- The betree is written almost completely as an in-memory data structure. All I/O is handled transparently by swap_space. + +* swap_space.{cpp,hpp}: +- Swaps objects to/from disk. Maintains a cache of in-memory objects. When the cache becomes too large the least-recently-used object is written to disk and removed from the cache. +- Automatically loads the object back into memory when it is referenced. Garbage collects objects that are no longer referenced by any other object. Tracks when objects are modified in memory so that it knows to write them back to disk next time they get evicted. + +* backing_store.{cpp,hpp}: +- This defines a generic interface used by swap_space to manage on-disk space. +- It supports allocating and deallocating on-disk space. +- The file also defines a simple implementation of the interface that stores one object per file on disk. + +* Rules.mk: +- Defines the variable that will be used by the Makefile. These are left blank at the root Makefile + - d = client + - SRCS = + +### server/ +Implementation eRPC server thread + +* There is a message buffer object, where client's requests and server's response are stored +* Currenty, they only server the getNodeId request type + +## Setup +1. Create an Ubuntu VM +2. Run these installation commands, these are the libraries needed by the code +``` +sudo apt install make +sudo apt install cmake +sudo apt install g++ +sudo apt install libssl-dev +sudo apt install libevent-dev +sudo apt install libboost-all-dev +sudo apt install libgtest-dev +make +``` + +## RPC +If make does not work, you need to build the RPC library first. + +RPC options: +### eRPC +* RDMA NIC is needed +* Virtual RDMA works for dev + +#### Setup +1. Build dpdk + + ``` + cd ~ + sudo apt install libnuma-dev \ + libarchive-dev \ + build-essential + sudo apt install linux-headers-$(uname -r) + sudo apt install libpcap-dev \ + liblz4-dev \ + liblz4-tool + git clone http://dpdk.org/git/dpdk + cd dpdk + export RTE_SDK=$(pwd) + export RTE_TARGET=x86_64-native-linux-gcc # depends on your env + make + ``` + +2. Build eRPC + ``` + cd third_party/eRPC + cmake . + ``` + +### Simulated Transport +* No hardware setup is needed +* Client and server can run on the same machine on different ports + +#### Setup + +## Run +--configFile=config --replicaIndex=0 or 1 + +## Questions +1. Why is the Nexus instantiated in the server thread instead of the main function of the server code? +2. Why is the Be-tree node on the client? +3. In the eRPC, why is the Nexus instantiated in the server thread instead of the main function? +4. In the Makefile flag, Why some package needs pkg-config some don't need? From 3b6a1f7fe320e7dc6eb7a4af93a486ff5d4bad60 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 18:15:08 +0800 Subject: [PATCH 004/138] feat: add interpretation --- NOTES.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/NOTES.md b/NOTES.md index d4feb3a..bd941c3 100644 --- a/NOTES.md +++ b/NOTES.md @@ -94,6 +94,10 @@ RPC options: ## Run --configFile=config --replicaIndex=0 or 1 +## Understanding the code +1. The client and server have different Transport object. They use this object to access all info and properties of it. +2. When they request/response, they call the static method. The server pass the message bugger specified + ## Questions 1. Why is the Nexus instantiated in the server thread instead of the main function of the server code? 2. Why is the Be-tree node on the client? From 6fc33c57b1ba6151a61301b347a6d77a662b56e2 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 18:15:58 +0800 Subject: [PATCH 005/138] refactor: create main to call server, rename original main to test --- client/main.cpp | 449 +++++------------------------------------------- client/test.cpp | 430 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 470 insertions(+), 409 deletions(-) create mode 100644 client/test.cpp diff --git a/client/main.cpp b/client/main.cpp index cb0c7f7..bfc37e4 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -1,430 +1,61 @@ -// This test program performs a series of inserts, deletes, updates, -// and queries to a betree. It performs the same sequence of -// operatons on a std::map. It checks that it always gets the same -// result from both data structures. +// -*- mode: c++; c-file-style: "k&r"; c-basic-offset: 4 -*- +#include +#include +#include +#include +#include +#include -// The program takes 1 command-line parameter -- the number of -// distinct keys it can use in the test. +#include "network/configuration.hpp" +#include "network/grpctransport.hpp" +#include "common/gflags.hpp" +#include "storage_client.hpp" -// The values in this test are strings. Since updates use operator+ -// on the values, this test performs concatenation on the strings. +#include -#include -#include -#include -#include -#include "betree.hpp" -#include "filesystem.hpp" +// Generated class by proto +using betree::GetNodeIdReply; +using betree::GetNodeIdRequest; +using betree::Storage; +using grpc::Server; +using grpc::ServerAsyncResponseWriter; +using grpc::ServerBuilder; +using grpc::ServerCompletionQueue; +using grpc::ServerContext; +using grpc::Status; -void timer_start(uint64_t &timer) -{ - struct timeval t; - assert(!gettimeofday(&t, NULL)); - timer -= 1000000*t.tv_sec + t.tv_usec; -} - -void timer_stop(uint64_t &timer) -{ - struct timeval t; - assert(!gettimeofday(&t, NULL)); - timer += 1000000*t.tv_sec + t.tv_usec; -} - -int next_command(FILE *input, int *op, char arg[]) -{ - int ret; - char command[64]; - - ret = fscanf(input, "%s %s", command, arg); - - if (ret == EOF) - return EOF; - else if (ret != 2) { - fprintf(stderr, "Parse error\n"); - exit(3); - } - - if (strcmp(command, "Inserting") == 0) { - *op = 0; - } else if (strcmp(command, "Updating") == 0) { - *op = 1; - } else if (strcmp(command, "Deleting") == 0) { - *op = 2; - } else if (strcmp(command, "Query") == 0) { - *op = 3; - if (1 != fscanf(input, " -> %s", command)) { - fprintf(stderr, "Parse error\n"); - exit(3); - } - } else if (strcmp(command, "Full_scan") == 0) { - *op = 4; - } else if (strcmp(command, "Lower_bound_scan") == 0) { - *op = 5; - } else if (strcmp(command, "Upper_bound_scan") == 0) { - *op = 6; - } else { - fprintf(stderr, "Unknown command: %s\n", command); - exit(1); - } - - return 0; -} +using namespace std; -template -void do_scan(typename betree::iterator &betit, - typename std::map::iterator &refit, - betree &b, - typename std::map &reference) +// Implmentation of the client's stub implementation +class StorageClientStub { - while (refit != reference.end()) { - assert(betit != b.end()); - assert(betit.first == refit->first); - assert(betit.second == refit->second); - ++refit; - if (refit == reference.end()) { - debug(std::cout << "Almost done" << std::endl); - } - ++betit; - } - assert(betit == b.end()); } -#define DEFAULT_TEST_MAX_NODE_SIZE (1ULL<<6) -#define DEFAULT_TEST_MIN_FLUSH_SIZE (DEFAULT_TEST_MAX_NODE_SIZE / 4) -#define DEFAULT_TEST_CACHE_SIZE (4) -#define DEFAULT_TEST_NDISTINCT_KEYS (1ULL << 10) -#define DEFAULT_TEST_NOPS (1ULL << 12) - -void usage(char *name) +void +client_thread_func() { - std::cout - << "Usage: " << name << " [OPTIONS]" << std::endl - << "Tests the betree implementation" << std::endl - << std::endl - << "Options are" << std::endl - << " Required:" << std::endl - << " -d [ default: none, parameter is required ]" << std::endl - << " -m (test or benchmark-) [ default: none, parameter required ]" << std::endl - << " benchmark modes:" << std::endl - << " upserts " << std::endl - << " queries " << std::endl - << " Betree tuning parameters:" << std::endl - << " -N (in elements) [ default: " << DEFAULT_TEST_MAX_NODE_SIZE << " ]" << std::endl - << " -f (in elements) [ default: " << DEFAULT_TEST_MIN_FLUSH_SIZE << " ]" << std::endl - << " -C (in betree nodes) [ default: " << DEFAULT_TEST_CACHE_SIZE << " ]" << std::endl - << " Options for both tests and benchmarks" << std::endl - << " -k [ default: " << DEFAULT_TEST_NDISTINCT_KEYS << " ]" << std::endl - << " -t [ default: " << DEFAULT_TEST_NOPS << " ]" << std::endl - << " -s [ default: random ]" << std::endl - << " Test scripting options" << std::endl - << " -o [ default: no output ]" << std::endl - << " -i [ default: none ]" << std::endl; -} + std::string local_uri = config.GetServerAddress(FLAGS_serverIndex).host; + // TODO: get rid of the hardcoded number of request types -int test(betree &b, - uint64_t nops, - uint64_t number_of_distinct_keys, - FILE *script_input, - FILE *script_output) -{ - std::map reference; - - for (unsigned int i = 0; i < nops; i++) { - int op; - char ck[256]; - std::string t; - if (script_input) { - int r = next_command(script_input, &op, ck); - t = std::string(ck); - if (r == EOF) - exit(0); - else if (r < 0) - exit(4); - } else { - op = rand() % 7; - t = std::to_string(rand() % number_of_distinct_keys); + network::Transport; + if (FLAGS_serverIndex) + { + // TODO: Connect to simulated transport } - switch (op) { - case 0: // insert - if (script_output) - fprintf(script_output, "Inserting %s\n", t.c_str()); - b.insert(FKey(t), t + ":"); - reference[FKey(t)] = t + ":"; - break; - case 1: // update - if (script_output) - fprintf(script_output, "Updating %s\n", t.c_str()); - b.update(FKey(t), t + ":"); - if (reference.count(FKey(t)) > 0) - reference[FKey(t)] += t + ":"; - else - reference[FKey(t)] = t + ":"; - break; - case 2: // delete - if (script_output) - fprintf(script_output, "Deleting %s\n", t.c_str()); - b.erase(FKey(t)); - reference.erase(FKey(t)); - break; - case 3: // query - try { - std::string bval = b.query(FKey(t)); - assert(reference.count(FKey(t)) > 0); - std::string rval = reference[FKey(t)]; - assert(bval == rval); - if (script_output) - fprintf(script_output, "Query %s -> %s\n", t.c_str(), bval.c_str()); - } catch (std::out_of_range e) { - if (script_output) - fprintf(script_output, "Query %s -> DNE\n", t.c_str()); - assert(reference.count(FKey(t)) == 0); - } - break; - case 4: // full scan - { - if (script_output) - fprintf(script_output, "Full_scan 0\n"); - auto betit = b.begin(); - auto refit = reference.begin(); - do_scan(betit, refit, b, reference); - } - break; - case 5: // lower-bound scan - { - if (script_output) - fprintf(script_output, "Lower_bound_scan %s\n", t.c_str()); - auto betit = b.lower_bound(FKey(t)); - auto refit = reference.lower_bound(FKey(t)); - do_scan(betit, refit, b, reference); - } - break; - case 6: // scan - { - if (script_output) - fprintf(script_output, "Upper_bound_scan %s\n", t.c_str()); - auto betit = b.upper_bound(FKey(t)); - auto refit = reference.upper_bound(FKey(t)); - do_scan(betit, refit, b, reference); - } - break; - default: - abort(); - } - } - - std::cout << "Test PASSED" << std::endl; - - return 0; -} - -void benchmark_upserts(betree &b, - uint64_t nops, - uint64_t number_of_distinct_keys, - uint64_t random_seed) -{ - uint64_t overall_timer = 0; - for (uint64_t j = 0; j < 100; j++) { - uint64_t timer = 0; - timer_start(timer); - for (uint64_t i = 0; i < nops / 100; i++) { - uint64_t t = rand() % number_of_distinct_keys; - b.update(FKey(std::to_string(t)), std::to_string(t) + ":"); - } - timer_stop(timer); - printf("%ld %ld %ld\n", j, nops/100, timer); - overall_timer += timer; - } - printf("# overall: %ld %ld\n", 100*(nops/100), overall_timer); -} - -void benchmark_queries(betree &b, - uint64_t nops, - uint64_t number_of_distinct_keys, - uint64_t random_seed) -{ - - // Pre-load the tree with data - srand(random_seed); - for (uint64_t i = 0; i < nops; i++) { - uint64_t t = rand() % number_of_distinct_keys; - b.update(std::to_string(t), std::to_string(t) + ":"); - } - - // Now go back and query it - srand(random_seed); - uint64_t overall_timer = 0; - timer_start(overall_timer); - for (uint64_t i = 0; i < nops; i++) { - uint64_t t = rand() % number_of_distinct_keys; - b.query(std::to_string(t)); - } - timer_stop(overall_timer); - printf("# overall: %ld %ld\n", nops, overall_timer); - } int main(int argc, char **argv) { - char *mode = NULL; - uint64_t max_node_size = DEFAULT_TEST_MAX_NODE_SIZE; - uint64_t min_flush_size = DEFAULT_TEST_MIN_FLUSH_SIZE; - uint64_t cache_size = DEFAULT_TEST_CACHE_SIZE; - char *backing_store_dir = NULL; - uint64_t number_of_distinct_keys = DEFAULT_TEST_NDISTINCT_KEYS; - uint64_t nops = DEFAULT_TEST_NOPS; - char *script_infile = NULL; - char *script_outfile = NULL; - unsigned int random_seed = time(NULL) * getpid(); - - int opt; - char *term; - - ////////////////////// - // Argument parsing // - ////////////////////// - - while ((opt = getopt(argc, argv, "m:d:N:f:C:o:k:t:s:i:")) != -1) { - switch (opt) { - case 'm': - mode = optarg; - break; - case 'd': - backing_store_dir = optarg; - break; - case 'N': - max_node_size = strtoull(optarg, &term, 10); - if (*term) { - std::cerr << "Argument to -N must be an integer" << std::endl; - usage(argv[0]); - exit(1); - } - break; - case 'f': - min_flush_size = strtoull(optarg, &term, 10); - if (*term) { - std::cerr << "Argument to -f must be an integer" << std::endl; - usage(argv[0]); - exit(1); - } - break; - case 'C': - cache_size = strtoull(optarg, &term, 10); - if (*term) { - std::cerr << "Argument to -C must be an integer" << std::endl; - usage(argv[0]); - exit(1); - } - break; - case 'o': - script_outfile = optarg; - break; - case 'k': - number_of_distinct_keys = strtoull(optarg, &term, 10); - if (*term) { - std::cerr << "Argument to -k must be an integer" << std::endl; - usage(argv[0]); - exit(1); - } - break; - case 't': - nops = strtoull(optarg, &term, 10); - if (*term) { - std::cerr << "Argument to -t must be an integer" << std::endl; - usage(argv[0]); - exit(1); - } - break; - case 's': - random_seed = strtoull(optarg, &term, 10); - if (*term) { - std::cerr << "Argument to -s must be an integer" << std::endl; - usage(argv[0]); - exit(1); - } - break; - case 'i': - script_infile = optarg; - break; - default: - std::cerr << "Unknown option '" << (char)opt << "'" << std::endl; - usage(argv[0]); - exit(1); - } - } - - FILE *script_input = NULL; - FILE *script_output = NULL; - if (mode == NULL || - (strcmp(mode, "test") != 0 - && strcmp(mode, "benchmark-upserts") != 0 - && strcmp(mode, "benchmark-queries") != 0)) { - std::cerr << "Must specify a mode of \"test\" or \"benchmark\"" << std::endl; - usage(argv[0]); - exit(1); - } + gflags::ParseCommandLineFlags(&argc, &argv, true); - if (strncmp(mode, "benchmark", strlen("benchmark")) == 0) { - if (script_infile) { - std::cerr << "Cannot specify an input script in benchmark mode" << std::endl; - usage(argv[0]); - exit(1); - } - if (script_outfile) { - std::cerr << "Cannot specify an output script in benchmark mode" << std::endl; - usage(argv[0]); - exit(1); - } - } - - if (script_infile) { - script_input = fopen(script_infile, "r"); - if (script_input == NULL) { - perror("Couldn't open input file"); - exit(1); - } - } - - if (script_outfile) { - script_output = fopen(script_outfile, "w"); - if (script_output == NULL) { - perror("Couldn't open output file"); - exit(1); + if (FLAGS_isDev == "") + { + FLAGS_isDev = false; } - } - srand(random_seed); - - if (backing_store_dir == NULL) { - std::cerr << "-d is required" << std::endl; - usage(argv[0]); - exit(1); - } - - //////////////////////////////////////////////////////// - // Construct a betree and run the tests or benchmarks // - //////////////////////////////////////////////////////// - - one_file_per_object_backing_store ofpobs(backing_store_dir); - swap_space sspace(&ofpobs, cache_size); - betree b(&sspace, max_node_size, min_flush_size); - //betree b(&sspace, max_node_size, min_flush_size); - //betree b(&sspace, max_node_size, min_flush_size); - - if (strcmp(mode, "test") == 0) - test(b, nops, number_of_distinct_keys, script_input, script_output); - else if (strcmp(mode, "benchmark-upserts") == 0) - benchmark_upserts(b, nops, number_of_distinct_keys, random_seed); - else if (strcmp(mode, "benchmark-queries") == 0) - benchmark_queries(b, nops, number_of_distinct_keys, random_seed); - - if (script_input) - fclose(script_input); - - if (script_output) - fclose(script_output); - - return 0; -} + client_thread_func(); + return 0; +} \ No newline at end of file diff --git a/client/test.cpp b/client/test.cpp new file mode 100644 index 0000000..cb0c7f7 --- /dev/null +++ b/client/test.cpp @@ -0,0 +1,430 @@ +// This test program performs a series of inserts, deletes, updates, +// and queries to a betree. It performs the same sequence of +// operatons on a std::map. It checks that it always gets the same +// result from both data structures. + +// The program takes 1 command-line parameter -- the number of +// distinct keys it can use in the test. + +// The values in this test are strings. Since updates use operator+ +// on the values, this test performs concatenation on the strings. + +#include +#include +#include +#include +#include "betree.hpp" +#include "filesystem.hpp" + +void timer_start(uint64_t &timer) +{ + struct timeval t; + assert(!gettimeofday(&t, NULL)); + timer -= 1000000*t.tv_sec + t.tv_usec; +} + +void timer_stop(uint64_t &timer) +{ + struct timeval t; + assert(!gettimeofday(&t, NULL)); + timer += 1000000*t.tv_sec + t.tv_usec; +} + +int next_command(FILE *input, int *op, char arg[]) +{ + int ret; + char command[64]; + + ret = fscanf(input, "%s %s", command, arg); + + if (ret == EOF) + return EOF; + else if (ret != 2) { + fprintf(stderr, "Parse error\n"); + exit(3); + } + + if (strcmp(command, "Inserting") == 0) { + *op = 0; + } else if (strcmp(command, "Updating") == 0) { + *op = 1; + } else if (strcmp(command, "Deleting") == 0) { + *op = 2; + } else if (strcmp(command, "Query") == 0) { + *op = 3; + if (1 != fscanf(input, " -> %s", command)) { + fprintf(stderr, "Parse error\n"); + exit(3); + } + } else if (strcmp(command, "Full_scan") == 0) { + *op = 4; + } else if (strcmp(command, "Lower_bound_scan") == 0) { + *op = 5; + } else if (strcmp(command, "Upper_bound_scan") == 0) { + *op = 6; + } else { + fprintf(stderr, "Unknown command: %s\n", command); + exit(1); + } + + return 0; +} + +template +void do_scan(typename betree::iterator &betit, + typename std::map::iterator &refit, + betree &b, + typename std::map &reference) +{ + while (refit != reference.end()) { + assert(betit != b.end()); + assert(betit.first == refit->first); + assert(betit.second == refit->second); + ++refit; + if (refit == reference.end()) { + debug(std::cout << "Almost done" << std::endl); + } + ++betit; + } + assert(betit == b.end()); +} + +#define DEFAULT_TEST_MAX_NODE_SIZE (1ULL<<6) +#define DEFAULT_TEST_MIN_FLUSH_SIZE (DEFAULT_TEST_MAX_NODE_SIZE / 4) +#define DEFAULT_TEST_CACHE_SIZE (4) +#define DEFAULT_TEST_NDISTINCT_KEYS (1ULL << 10) +#define DEFAULT_TEST_NOPS (1ULL << 12) + +void usage(char *name) +{ + std::cout + << "Usage: " << name << " [OPTIONS]" << std::endl + << "Tests the betree implementation" << std::endl + << std::endl + << "Options are" << std::endl + << " Required:" << std::endl + << " -d [ default: none, parameter is required ]" << std::endl + << " -m (test or benchmark-) [ default: none, parameter required ]" << std::endl + << " benchmark modes:" << std::endl + << " upserts " << std::endl + << " queries " << std::endl + << " Betree tuning parameters:" << std::endl + << " -N (in elements) [ default: " << DEFAULT_TEST_MAX_NODE_SIZE << " ]" << std::endl + << " -f (in elements) [ default: " << DEFAULT_TEST_MIN_FLUSH_SIZE << " ]" << std::endl + << " -C (in betree nodes) [ default: " << DEFAULT_TEST_CACHE_SIZE << " ]" << std::endl + << " Options for both tests and benchmarks" << std::endl + << " -k [ default: " << DEFAULT_TEST_NDISTINCT_KEYS << " ]" << std::endl + << " -t [ default: " << DEFAULT_TEST_NOPS << " ]" << std::endl + << " -s [ default: random ]" << std::endl + << " Test scripting options" << std::endl + << " -o [ default: no output ]" << std::endl + << " -i [ default: none ]" << std::endl; +} + +int test(betree &b, + uint64_t nops, + uint64_t number_of_distinct_keys, + FILE *script_input, + FILE *script_output) +{ + std::map reference; + + for (unsigned int i = 0; i < nops; i++) { + int op; + char ck[256]; + std::string t; + if (script_input) { + int r = next_command(script_input, &op, ck); + t = std::string(ck); + if (r == EOF) + exit(0); + else if (r < 0) + exit(4); + } else { + op = rand() % 7; + t = std::to_string(rand() % number_of_distinct_keys); + } + + switch (op) { + case 0: // insert + if (script_output) + fprintf(script_output, "Inserting %s\n", t.c_str()); + b.insert(FKey(t), t + ":"); + reference[FKey(t)] = t + ":"; + break; + case 1: // update + if (script_output) + fprintf(script_output, "Updating %s\n", t.c_str()); + b.update(FKey(t), t + ":"); + if (reference.count(FKey(t)) > 0) + reference[FKey(t)] += t + ":"; + else + reference[FKey(t)] = t + ":"; + break; + case 2: // delete + if (script_output) + fprintf(script_output, "Deleting %s\n", t.c_str()); + b.erase(FKey(t)); + reference.erase(FKey(t)); + break; + case 3: // query + try { + std::string bval = b.query(FKey(t)); + assert(reference.count(FKey(t)) > 0); + std::string rval = reference[FKey(t)]; + assert(bval == rval); + if (script_output) + fprintf(script_output, "Query %s -> %s\n", t.c_str(), bval.c_str()); + } catch (std::out_of_range e) { + if (script_output) + fprintf(script_output, "Query %s -> DNE\n", t.c_str()); + assert(reference.count(FKey(t)) == 0); + } + break; + case 4: // full scan + { + if (script_output) + fprintf(script_output, "Full_scan 0\n"); + auto betit = b.begin(); + auto refit = reference.begin(); + do_scan(betit, refit, b, reference); + } + break; + case 5: // lower-bound scan + { + if (script_output) + fprintf(script_output, "Lower_bound_scan %s\n", t.c_str()); + auto betit = b.lower_bound(FKey(t)); + auto refit = reference.lower_bound(FKey(t)); + do_scan(betit, refit, b, reference); + } + break; + case 6: // scan + { + if (script_output) + fprintf(script_output, "Upper_bound_scan %s\n", t.c_str()); + auto betit = b.upper_bound(FKey(t)); + auto refit = reference.upper_bound(FKey(t)); + do_scan(betit, refit, b, reference); + } + break; + default: + abort(); + } + } + + std::cout << "Test PASSED" << std::endl; + + return 0; +} + +void benchmark_upserts(betree &b, + uint64_t nops, + uint64_t number_of_distinct_keys, + uint64_t random_seed) +{ + uint64_t overall_timer = 0; + for (uint64_t j = 0; j < 100; j++) { + uint64_t timer = 0; + timer_start(timer); + for (uint64_t i = 0; i < nops / 100; i++) { + uint64_t t = rand() % number_of_distinct_keys; + b.update(FKey(std::to_string(t)), std::to_string(t) + ":"); + } + timer_stop(timer); + printf("%ld %ld %ld\n", j, nops/100, timer); + overall_timer += timer; + } + printf("# overall: %ld %ld\n", 100*(nops/100), overall_timer); +} + +void benchmark_queries(betree &b, + uint64_t nops, + uint64_t number_of_distinct_keys, + uint64_t random_seed) +{ + + // Pre-load the tree with data + srand(random_seed); + for (uint64_t i = 0; i < nops; i++) { + uint64_t t = rand() % number_of_distinct_keys; + b.update(std::to_string(t), std::to_string(t) + ":"); + } + + // Now go back and query it + srand(random_seed); + uint64_t overall_timer = 0; + timer_start(overall_timer); + for (uint64_t i = 0; i < nops; i++) { + uint64_t t = rand() % number_of_distinct_keys; + b.query(std::to_string(t)); + } + timer_stop(overall_timer); + printf("# overall: %ld %ld\n", nops, overall_timer); + +} + +int main(int argc, char **argv) +{ + char *mode = NULL; + uint64_t max_node_size = DEFAULT_TEST_MAX_NODE_SIZE; + uint64_t min_flush_size = DEFAULT_TEST_MIN_FLUSH_SIZE; + uint64_t cache_size = DEFAULT_TEST_CACHE_SIZE; + char *backing_store_dir = NULL; + uint64_t number_of_distinct_keys = DEFAULT_TEST_NDISTINCT_KEYS; + uint64_t nops = DEFAULT_TEST_NOPS; + char *script_infile = NULL; + char *script_outfile = NULL; + unsigned int random_seed = time(NULL) * getpid(); + + int opt; + char *term; + + ////////////////////// + // Argument parsing // + ////////////////////// + + while ((opt = getopt(argc, argv, "m:d:N:f:C:o:k:t:s:i:")) != -1) { + switch (opt) { + case 'm': + mode = optarg; + break; + case 'd': + backing_store_dir = optarg; + break; + case 'N': + max_node_size = strtoull(optarg, &term, 10); + if (*term) { + std::cerr << "Argument to -N must be an integer" << std::endl; + usage(argv[0]); + exit(1); + } + break; + case 'f': + min_flush_size = strtoull(optarg, &term, 10); + if (*term) { + std::cerr << "Argument to -f must be an integer" << std::endl; + usage(argv[0]); + exit(1); + } + break; + case 'C': + cache_size = strtoull(optarg, &term, 10); + if (*term) { + std::cerr << "Argument to -C must be an integer" << std::endl; + usage(argv[0]); + exit(1); + } + break; + case 'o': + script_outfile = optarg; + break; + case 'k': + number_of_distinct_keys = strtoull(optarg, &term, 10); + if (*term) { + std::cerr << "Argument to -k must be an integer" << std::endl; + usage(argv[0]); + exit(1); + } + break; + case 't': + nops = strtoull(optarg, &term, 10); + if (*term) { + std::cerr << "Argument to -t must be an integer" << std::endl; + usage(argv[0]); + exit(1); + } + break; + case 's': + random_seed = strtoull(optarg, &term, 10); + if (*term) { + std::cerr << "Argument to -s must be an integer" << std::endl; + usage(argv[0]); + exit(1); + } + break; + case 'i': + script_infile = optarg; + break; + default: + std::cerr << "Unknown option '" << (char)opt << "'" << std::endl; + usage(argv[0]); + exit(1); + } + } + + FILE *script_input = NULL; + FILE *script_output = NULL; + + if (mode == NULL || + (strcmp(mode, "test") != 0 + && strcmp(mode, "benchmark-upserts") != 0 + && strcmp(mode, "benchmark-queries") != 0)) { + std::cerr << "Must specify a mode of \"test\" or \"benchmark\"" << std::endl; + usage(argv[0]); + exit(1); + } + + if (strncmp(mode, "benchmark", strlen("benchmark")) == 0) { + if (script_infile) { + std::cerr << "Cannot specify an input script in benchmark mode" << std::endl; + usage(argv[0]); + exit(1); + } + if (script_outfile) { + std::cerr << "Cannot specify an output script in benchmark mode" << std::endl; + usage(argv[0]); + exit(1); + } + } + + if (script_infile) { + script_input = fopen(script_infile, "r"); + if (script_input == NULL) { + perror("Couldn't open input file"); + exit(1); + } + } + + if (script_outfile) { + script_output = fopen(script_outfile, "w"); + if (script_output == NULL) { + perror("Couldn't open output file"); + exit(1); + } + } + + srand(random_seed); + + if (backing_store_dir == NULL) { + std::cerr << "-d is required" << std::endl; + usage(argv[0]); + exit(1); + } + + //////////////////////////////////////////////////////// + // Construct a betree and run the tests or benchmarks // + //////////////////////////////////////////////////////// + + one_file_per_object_backing_store ofpobs(backing_store_dir); + swap_space sspace(&ofpobs, cache_size); + betree b(&sspace, max_node_size, min_flush_size); + //betree b(&sspace, max_node_size, min_flush_size); + //betree b(&sspace, max_node_size, min_flush_size); + + if (strcmp(mode, "test") == 0) + test(b, nops, number_of_distinct_keys, script_input, script_output); + else if (strcmp(mode, "benchmark-upserts") == 0) + benchmark_upserts(b, nops, number_of_distinct_keys, random_seed); + else if (strcmp(mode, "benchmark-queries") == 0) + benchmark_queries(b, nops, number_of_distinct_keys, random_seed); + + if (script_input) + fclose(script_input); + + if (script_output) + fclose(script_output); + + return 0; +} + From 5c2de58421be610d5bd6830c3609aee7a3892a72 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 18:17:03 +0800 Subject: [PATCH 006/138] feat: add isDev flags as argument, as a method to choose transport method --- common/gflags.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/common/gflags.hpp b/common/gflags.hpp index f39cff1..ec8f74f 100644 --- a/common/gflags.hpp +++ b/common/gflags.hpp @@ -5,6 +5,7 @@ // Defines all the command line flags shared between both // severs and clients +DEFINE_string(isDev, false, "Flag whether this is development environment"); DEFINE_string(configFile, "", "Path to the configuration file"); DEFINE_int32(serverIndex, -1, "Index of the server in the config file"); DEFINE_string(keysFile, "", "Path to the keys file"); From 09fa87bf98c245ae613ef6e280f818d8a9867693 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 18:17:39 +0800 Subject: [PATCH 007/138] feat: add suggestion for FastTransport constructor --- network/fasttransport.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/network/fasttransport.hpp b/network/fasttransport.hpp index db89c87..4365133 100644 --- a/network/fasttransport.hpp +++ b/network/fasttransport.hpp @@ -118,6 +118,7 @@ class AppContext { class FastTransport : public Transport { public: + // TODO: I think we can remove the ip and phy_port argument here since we can get it from config? FastTransport(const network::Configuration &config, std::string &ip, int nthreads, From 1beb44118ee9e2491aa1795c6a5e8c7dee1e3edf Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 18:18:46 +0800 Subject: [PATCH 008/138] feat: create file to define custom types --- common/types.hpp | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 common/types.hpp diff --git a/common/types.hpp b/common/types.hpp new file mode 100644 index 0000000..00ac70d --- /dev/null +++ b/common/types.hpp @@ -0,0 +1,2 @@ + +typedef void (*sim_rpc_cont_func_t)(void *context, void *tag); From 6792242c9856be2df6f0562bd86e5c4f2e562cd7 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 18:19:29 +0800 Subject: [PATCH 009/138] feat: add SimRpc and SimAppContext as properties of simulated transport --- network/simtransport.hpp | 154 ++++++++++++++++++++++++++++----------- 1 file changed, 111 insertions(+), 43 deletions(-) diff --git a/network/simtransport.hpp b/network/simtransport.hpp index 0a0d82c..2f3cc1f 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -35,55 +35,123 @@ #include "network/transport.hpp" #include +#include + +#include + +#define MULTIPLE_ACTIVE_REQUESTS false + +// A tag attached to every request we send; +// it is passed to the response function +struct sim_req_tag_t +{ + char* req_msgbuf; + char* resp_msgbuf; + uint8_t reqType; + TransportReceiver *src; + sim_rpc_cont_func_t cont_func; +}; namespace network { + class SimRpc { + + void free_msg_buffer(sim_req_tag_t req_tag) + { + delete[] req_tag.req_msgbuf; + delete[] reg_taq.resp_msgbuf; + } + + void resize_msg_buffer(char* msgBuf, int newMsgLen) { + msgBuf = new char[newMsgLen]; + } + + char* alloc_msg_buffer(int msgLen) { + return new char[msgLen]; + } + + void enqueue_request(sim_req_tag_t req_tag) + { + req_queue.append(req_tag); + } + + private: + std::deque req_queue; + } + + + class SimAppContext + { + + static int MAX_DATA_PER_PKT = 16384; + + public: + struct + { + // This is maintained between calls to GetReqBuf and SendRequest + // to reduce copying + sim_req_tag_t *crt_req_tag; + + // Request tags used for RPCs exchanged with the servers + AppMemPool req_tag_pool; + + } client; + + struct + { + // current req_handle + TransportReceiver *receiver = nullptr; + } server; + + // common to both servers and clients + SimRpc *rpc = nullptr; + }; class SimulatedTransport : public Transport { - public: - SimulatedTransport( - const network::Configuration &config, - int nthreads, - uint8_t nr_req_types, - uint8_t id); - ~SimulatedTransport(); - void Register(TransportReceiver *receiver, int replicaIdx); - void Run(); - void Wait(); - void Stop(); - - bool SendRequestToServer(TransportReceiver *src, uint8_t reqType, uint32_t serverIdx, uint8_t dstRpcIdx, size_t msgLen) override; - bool SendRequestToAllServers(TransportReceiver *src, uint8_t reqType, uint8_t dstRpcIdx, size_t msgLen) override; - bool SendResponse(uint64_t reqHandleIdx, size_t msgLen) override; - bool SendResponse(size_t msgLen) override; - char *GetRequestBuf(size_t reqLen, size_t respLen) override; - int GetSession(TransportReceiver *src, uint8_t replicaIdx, uint8_t dstRpcIdx) override; - - uint8_t GetID() override { return id; }; - - protected: - bool SendMessageInternal(TransportReceiver *src, - const Message &m, - bool multicast); - - private: - // Configuration containing the ids of the servers - network::Configuration config; - - // Number of server threads - int nthreads; - - // This corresponds to the thread id of the curren server - // used as the RPC id, must be unique per transport thread - uint8_t id; - - // This corresponds to the machine index - // Index of the receiver (if -1 then the receiver is a client that - // does not get requests, otherwise it is a server from the configuration) - int receiverIdx; - - std::map receivers; + public: + SimulatedTransport( + const network::Configuration &config, + int nthreads, + uint8_t nr_req_types, + uint8_t id); + ~SimulatedTransport(); + void Register(TransportReceiver *receiver, int replicaIdx); + void Run(); + void Wait(); + void Stop(); + + bool SendRequestToServer(TransportReceiver *src, uint8_t reqType, uint32_t serverIdx, uint8_t dstRpcIdx, size_t msgLen) override; + bool SendRequestToAllServers(TransportReceiver *src, uint8_t reqType, uint8_t dstRpcIdx, size_t msgLen) override; + bool SendResponse(uint64_t reqHandleIdx, size_t msgLen) override; + bool SendResponse(size_t msgLen) override; + char *GetRequestBuf(size_t reqLen, size_t respLen) override; + int GetSession(TransportReceiver *src, uint8_t replicaIdx, uint8_t dstRpcIdx) override; + + uint8_t GetID() override { return id; }; + + protected: + bool SendMessageInternal(TransportReceiver *src, + const Message &m, + bool multicast); + + private: + // Configuration containing the ids of the servers + network::Configuration config; + + SimAppContext *c; + + // Number of server threads + int nthreads; + + // This corresponds to the thread id of the current server + // used as the RPC id, must be unique per transport thread + uint8_t id; + + // This corresponds to the machine index + // Index of the receiver (if -1 then the receiver is a client that + // does not get requests, otherwise it is a server from the configuration) + int receiverIdx; }; } #endif // _NETWORK_SIMTRANSPORT_H_ From fe15a1ffccb253e63ba2389d05a81dd3ada4fa19 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 18:19:44 +0800 Subject: [PATCH 010/138] feat: initial implementation of SimTransport --- network/simtransport.cpp | 174 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 network/simtransport.cpp diff --git a/network/simtransport.cpp b/network/simtransport.cpp new file mode 100644 index 0000000..1fb4869 --- /dev/null +++ b/network/simtransport.cpp @@ -0,0 +1,174 @@ +// -*- mode: c++; c-file-style: "k&r"; c-basic-offset: 4 -*- +/*********************************************************************** + * + * simtransport.cc: + * simulated message-passing interface for testing use + * + * Reference: 2013-2016 Dan R. K. Ports + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + **********************************************************************/ +#ifndef _NETWORK_SIMTRANSPORT_H_ +#define _NETWORK_SIMTRANSPORT_H_ + +#include "network/simtransport.hpp" + +namespace network +{ + + static void simtransport_response(void *_context, void *_tag) + { + auto *c = static_cast(_context); + auto *rt = reinterpret_cast(_tag); + Debug("Received respose, reqType = %d", rt->reqType); + rt->src->ReceiveResponse(rt->reqType, + reinterpret_cast(rt->resp_msgbuf.buf)); + c->rpc->free_msg_buffer(); + c->client.req_tag_pool.free(rt); + } + + // Function called when the server received a request + // (clients never receive requests, just responses) + static void fasttransport_request(void *_context, void *_tag) + { + // save the req_handle for when we are in the SendMessage function + auto *c = static_cast(_context); +#if MULTIPLE_ACTIVE_REQUESTS + // upcall to the app +#else + // upcall to the app + c->server.receiver->ReceiveRequest(c->cilent.crt_req_tag->reqType, + c->cilent.crt_req_tag->req_msgbuf, + c->cilent.crt_req_tag->resp_msgbuf); +#endif + } + + SimulatedTransport::SimulatedTransport( + const network::Configuration &config, + uint8_t id + ) : config(config), id(id) + { + context = new SimAppContext(); + } + + SimulatedTransport::~SimulatedTransport() + { + } + + void SimulatedTransport::Register(TransportReceiver *receiver, int receiverIdx) + { + assert(receiverIdx < config.n); + + if (receiverIdx > -1) + c->server.receiver = receiver; + this->receiverIdx = receiverIdx; + } + + // Used when the client wants to create a request + char SimulatedTransport::*GetRequestBuf(size_t reqLen, size_t respLen) { + // create a new request tag + if (reqLen == 0) + reqLen = SimulatedTransport.MAX_DATA_PER_PKT; + if (respLen == 0) + respLen = SimulatedTransport.MAX_DATA_PER_PKT; + c->client.crt_req_tag = c->client.req_tag_pool.alloc(); + c->client.crt_req_tag->req_msgbuf = new char[reqLen]; + c->client.crt_req_tag->resp_msgbuf = new char[respLen]; + return c->client.crt_req_tag->req_msgbuf; + } + + int GetSession(TransportReceiver *src, uint8_t replicaIdx, uint8_t dstRpcIdx) { + return -1; + } + + void SimulatedTransport::Run() + { + // If it's client, just busy waiting + if (receiverIdx == -1) { + while(true); + } + + // If it's server, check the request queue + while(!stop) { + if (!c.req_queue.empty()) { + sim_req_tag_t req_tag = c.req_queue.front(); + req_tag.src->ReceiveRequest(req_tag.reqType, req_tag.req_msgbuf, req_tag.req_respbuf); + } + } + } + + void SimulatedTransport::Stop() { + Debug("Stopping transport!"); + stop = true; + } + + bool SimulatedTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, uint32_t serverIdx, uint8_t dstRpcIdx, size_t msgLen) { + c->client.crt_req_tag->src = src; + c->client.crt_req_tag->reqType = reqType; + c->enqueue_request(c->client.crt_req_tag); + } + + bool SimulatedTransport::SendRequestToAllServers(TransportReceiver *src, uint8_t reqType, uint8_t dstRpcIdx, size_t msgLen) { + for (int i = 0; i < config.n; i++) + { + // skip the sending entity + if (this->receiverIdx == i) + continue; + + if (i == config.n - 1) + { + c->client.crt_req_tag->src = src; + c->client.crt_req_tag->reqType = reqType; + c->rpc->enqueue_request(c->client.crt_req_tag); + } + else + { + // need to use different erpc::MsgBuffer per session + auto *rt = c->client.req_tag_pool.alloc(); + rt->req_msgbuf = new char[reqLen]; + rt->resp_msgbuf = new char[respLen]; + rt->reqType = reqType; + rt->src = src; + std::memcpy(rt->req_msgbuf, c->client.crt_req_tag->req_msgbuf, msgLen); + c->rpc->enqueue_request(rt); + } + } + if (this->receiverIdx == config.n - 1) + { + // TODO: free the current buffer + } + } + + bool SimulatedTransport::SendResponse(uint64_t reqHandleIdx, size_t msgLen) { + Debug("Sent response, msgLen = %lu\n", msgLen); + simtransport_response(c, c->client.crt_req_tag); + return true; + } + + bool SimulatedTransport::SendResponse(size_t msgLen) { + Debug("Sent response, msgLen = %lu\n", msgLen); + simtransport_response(c, c->client.crt_req_tag); + return true; + } +} + +#endif // _NETWORK_SIMTRANSPORT_H_ From 92d8d924f98979b01f8b93b8307a0a38294f8ea8 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 19:46:43 +0800 Subject: [PATCH 011/138] feat: add conditional var for compilation --- Makefile | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 80f18fe..c814209 100644 --- a/Makefile +++ b/Makefile @@ -7,13 +7,18 @@ CXX = g++ LD = g++ EXPAND = lib/tmpl/expand -ERPC_PATH= "./third_party/eRPC" - -ERPC_CFLAGS_RAW := -I $(ERPC_PATH)/src -DRAW=true -ERPC_LDFLAGS_RAW := -L $(ERPC_PATH)/build -lerpc -lnuma -ldl -lgflags -libverbs +ifeq ($(isDev),1) +RPC_PATH= "./third_party/eRPC" +RPC_CFLAGS_RAW := -I $(RPC_PATH)/src -DRAW=true +RPC_LDFLAGS_RAW := +else +RPC_PATH= "./third_party/eRPC" +RPC_CFLAGS_RAW := -I $(RPC_PATH)/src -DRAW=true +RPC_LDFLAGS_RAW := -L $(RPC_PATH)/build -lerpc -lnuma -ldl -lgflags -libverbs +endif -#ERPC_CFLAGS_DPDK := -I $(ERPC_PATH)/src -I /usr/include/dpdk -DDPDK=true -march=native -#ERPC_LDFLAGS_DPDK := -L $(ERPC_PATH)/build -lerpc -lnuma -ldl -lgflags -ldpdk +#ERPC_CFLAGS_DPDK := -I $(RPC_PATH)/src -I /usr/include/dpdk -DDPDK=true -march=native +#ERPC_LDFLAGS_DPDK := -L $(RPC_PATH)/build -lerpc -lnuma -ldl -lgflags -ldpdk CFLAGS_WARNINGS:= -Wno-unused-function -Wno-nested-anon-types -Wno-keyword-macro -Wno-uninitialized @@ -26,8 +31,8 @@ CXXFLAGS := -g -std=c++11 LDFLAGS := -levent_pthreads -pthread -lboost_fiber -lboost_context -lboost_system -lboost_thread ## Add ERPC flags ## -CFLAGS += $(ERPC_CFLAGS_RAW) -LDFLAGS += $(ERPC_LDFLAGS_RAW) +CFLAGS += $(RPC_CFLAGS_RAW) +LDFLAGS += $(RPC_LDFLAGS_RAW) ## Debian package: check ## #CHECK_CFLAGS := $(shell pkg-config --cflags check) From bb75238af29815b230786fb2eeced640e6528b6a Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 23:08:19 +0800 Subject: [PATCH 012/138] feat: add IS_DEV precompiler directive --- Makefile | 2 +- NOTES.md | 3 ++- client/storage_client.hpp | 5 +++++ server/main.cpp | 7 +++++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index c814209..44aedc3 100644 --- a/Makefile +++ b/Makefile @@ -26,7 +26,7 @@ CFLAGS_WARNINGS:= -Wno-unused-function -Wno-nested-anon-types -Wno-keyword-macro # more information. # # [1]: http://www.brendangregg.com/perf.html#FlameGraphs -CFLAGS := -g -Wall $(CFLAGS_WARNINGS) -iquote.obj/gen -O2 -DNASSERT -fno-omit-frame-pointer +CFLAGS := -g -Wall $(CFLAGS_WARNINGS) -iquote.obj/gen -O2 -DNASSERT -fno-omit-frame-pointer -DIS_DEV=1 CXXFLAGS := -g -std=c++11 LDFLAGS := -levent_pthreads -pthread -lboost_fiber -lboost_context -lboost_system -lboost_thread diff --git a/NOTES.md b/NOTES.md index bd941c3..d25e12a 100644 --- a/NOTES.md +++ b/NOTES.md @@ -49,6 +49,7 @@ sudo apt install libssl-dev sudo apt install libevent-dev sudo apt install libboost-all-dev sudo apt install libgtest-dev +sudo apt-get install libgflags-dev make ``` @@ -90,7 +91,7 @@ RPC options: * Client and server can run on the same machine on different ports #### Setup - +1. Set -DIS_DEV in Makefile ## Run --configFile=config --replicaIndex=0 or 1 diff --git a/client/storage_client.hpp b/client/storage_client.hpp index 98eb85b..0931a83 100644 --- a/client/storage_client.hpp +++ b/client/storage_client.hpp @@ -2,7 +2,12 @@ #ifndef _STORAGE_CLIENT_H_ #define _STORAGE_CLIENT_H_ +#if IS_DEV +#include "network/simtransport.hpp" +#else #include "network/fasttransport.hpp" +#endif + #include "network/configuration.hpp" struct nodeid_t { diff --git a/server/main.cpp b/server/main.cpp index 24dde2c..9e7397d 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -7,8 +7,15 @@ #include #include +#include "network/transport_config.hpp" #include "network/configuration.hpp" + +#if IS_DEV +#include "network/simtransport.hpp" +#else #include "network/fasttransport.hpp" +#endif + #include "common/gflags.hpp" #include "storage_server.hpp" From 1ecdaedb667e844f47702ea42953b9353674802a Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 23:08:40 +0800 Subject: [PATCH 013/138] fix: method name fix --- network/configuration.hpp | 1 + network/simtransport.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/network/configuration.hpp b/network/configuration.hpp index 8cb1b9f..16fabef 100644 --- a/network/configuration.hpp +++ b/network/configuration.hpp @@ -2,6 +2,7 @@ #ifndef _NETWORK_CONFIGURATION_H_ #define _NETWORK_CONFIGURATION_H_ +#define IS_DEV //#include "replication/common/viewstamp.h" #include diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 1fb4869..f34b33f 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -48,7 +48,7 @@ namespace network // Function called when the server received a request // (clients never receive requests, just responses) - static void fasttransport_request(void *_context, void *_tag) + static void simtransport_request(void *_context, void *_tag) { // save the req_handle for when we are in the SendMessage function auto *c = static_cast(_context); From 1d8af266aba4ca28cc3a3c104ae34229a6f7903b Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 23:20:59 +0800 Subject: [PATCH 014/138] feat: define IS_DEV directive in Makefile --- Makefile | 5 +++-- client/storage_client.hpp | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 44aedc3..82e6220 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,8 @@ CXX = g++ LD = g++ EXPAND = lib/tmpl/expand -ifeq ($(isDev),1) +IS_DEV = 1 +ifeq ($(IS_DEV),1) RPC_PATH= "./third_party/eRPC" RPC_CFLAGS_RAW := -I $(RPC_PATH)/src -DRAW=true RPC_LDFLAGS_RAW := @@ -26,7 +27,7 @@ CFLAGS_WARNINGS:= -Wno-unused-function -Wno-nested-anon-types -Wno-keyword-macro # more information. # # [1]: http://www.brendangregg.com/perf.html#FlameGraphs -CFLAGS := -g -Wall $(CFLAGS_WARNINGS) -iquote.obj/gen -O2 -DNASSERT -fno-omit-frame-pointer -DIS_DEV=1 +CFLAGS := -g -Wall $(CFLAGS_WARNINGS) -iquote.obj/gen -O2 -DNASSERT -fno-omit-frame-pointer -DIS_DEV=$(IS_DEV) CXXFLAGS := -g -std=c++11 LDFLAGS := -levent_pthreads -pthread -lboost_fiber -lboost_context -lboost_system -lboost_thread diff --git a/client/storage_client.hpp b/client/storage_client.hpp index 0931a83..1d6fcef 100644 --- a/client/storage_client.hpp +++ b/client/storage_client.hpp @@ -3,6 +3,7 @@ #define _STORAGE_CLIENT_H_ #if IS_DEV +#warning "C++ Preprocessor got here!". #include "network/simtransport.hpp" #else #include "network/fasttransport.hpp" From 64d7bbc79a14f5b9c37678a924bc176928ebf320 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 23:22:37 +0800 Subject: [PATCH 015/138] feat: change eRPC path if IS_DEV --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 82e6220..64c2b1f 100644 --- a/Makefile +++ b/Makefile @@ -9,8 +9,8 @@ EXPAND = lib/tmpl/expand IS_DEV = 1 ifeq ($(IS_DEV),1) -RPC_PATH= "./third_party/eRPC" -RPC_CFLAGS_RAW := -I $(RPC_PATH)/src -DRAW=true +RPC_PATH= +RPC_CFLAGS_RAW := RPC_LDFLAGS_RAW := else RPC_PATH= "./third_party/eRPC" From 40fa295598290bd86e2cd2be7d9560429046344a Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 23:23:55 +0800 Subject: [PATCH 016/138] fix: remove IS_DEV redef --- network/configuration.hpp | 1 - 1 file changed, 1 deletion(-) diff --git a/network/configuration.hpp b/network/configuration.hpp index 16fabef..8cb1b9f 100644 --- a/network/configuration.hpp +++ b/network/configuration.hpp @@ -2,7 +2,6 @@ #ifndef _NETWORK_CONFIGURATION_H_ #define _NETWORK_CONFIGURATION_H_ -#define IS_DEV //#include "replication/common/viewstamp.h" #include From cc9bbde5c18dc83c3fc62e454174f8b6b864caaa Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 23:29:38 +0800 Subject: [PATCH 017/138] feat: change file included in network compilation --- network/Rules.mk | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/network/Rules.mk b/network/Rules.mk index 21da991..42489ad 100644 --- a/network/Rules.mk +++ b/network/Rules.mk @@ -1,6 +1,11 @@ d := $(dir $(lastword $(MAKEFILE_LIST))) -SRCS += $(addprefix $(d), transport.cpp fasttransport.cpp configuration.cpp) +FILES=transport.cpp configuration.cpp +ifeq ($(IS_DEV),0) +FILES += fasttransport.cpp +endif + +SRCS += $(addprefix $(d), $(FILES)) LIB-configuration := $(o)configuration.o $(LIB-debug) From ecc02eee900eec0f8d757d22309205dc3c5e6ff6 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 23:32:36 +0800 Subject: [PATCH 018/138] feat: change obj included in network compilation --- network/Rules.mk | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/network/Rules.mk b/network/Rules.mk index 42489ad..a0675eb 100644 --- a/network/Rules.mk +++ b/network/Rules.mk @@ -3,6 +3,7 @@ d := $(dir $(lastword $(MAKEFILE_LIST))) FILES=transport.cpp configuration.cpp ifeq ($(IS_DEV),0) FILES += fasttransport.cpp +echo halo endif SRCS += $(addprefix $(d), $(FILES)) @@ -11,4 +12,8 @@ LIB-configuration := $(o)configuration.o $(LIB-debug) LIB-transport := $(o)transport.o $(LIB-configuration) $(LIB-debug) -LIB-fasttransport := $(o)fasttransport.o $(LIB-transport) $(LIB-debug) +LIB-fasttransport := $(LIB-transport) $(LIB-debug) + +ifeq ($(IS_DEV),0) +LIB-fasttransport += $(o)fasttransport.o +endif \ No newline at end of file From f6e545cab9dc25bf892759c3539709bd65f7d87b Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 23:54:12 +0800 Subject: [PATCH 019/138] fix: compilation error --- client/storage_client.hpp | 5 ++--- network/app_mem_pool.cpp | 37 +++++++++++++++++++++++++++++++++++++ network/fasttransport.hpp | 31 +------------------------------ network/simtransport.cpp | 6 +++++- network/simtransport.hpp | 12 ++++-------- 5 files changed, 49 insertions(+), 42 deletions(-) create mode 100644 network/app_mem_pool.cpp diff --git a/client/storage_client.hpp b/client/storage_client.hpp index 1d6fcef..184738e 100644 --- a/client/storage_client.hpp +++ b/client/storage_client.hpp @@ -2,15 +2,14 @@ #ifndef _STORAGE_CLIENT_H_ #define _STORAGE_CLIENT_H_ +#include "network/configuration.hpp" + #if IS_DEV -#warning "C++ Preprocessor got here!". #include "network/simtransport.hpp" #else #include "network/fasttransport.hpp" #endif -#include "network/configuration.hpp" - struct nodeid_t { uint32_t serverIdx; uint32_t coreIdx; diff --git a/network/app_mem_pool.cpp b/network/app_mem_pool.cpp new file mode 100644 index 0000000..6518bed --- /dev/null +++ b/network/app_mem_pool.cpp @@ -0,0 +1,37 @@ +// A basic mempool for preallocated objects of type T. eRPC has a faster, +// hugepage-backed one. +template +class AppMemPool +{ +public: + size_t num_to_alloc = 1; + std::vector backing_ptr_vec; + std::vector pool; + + void extend_pool() + { + T *backing_ptr = new T[num_to_alloc]; + for (size_t i = 0; i < num_to_alloc; i++) + pool.push_back(&backing_ptr[i]); + backing_ptr_vec.push_back(backing_ptr); + num_to_alloc *= 2; + } + + T *alloc() + { + if (pool.empty()) + extend_pool(); + T *ret = pool.back(); + pool.pop_back(); + return ret; + } + + void free(T *t) { pool.push_back(t); } + + AppMemPool() {} + ~AppMemPool() + { + for (T *ptr : backing_ptr_vec) + delete[] ptr; + } +}; \ No newline at end of file diff --git a/network/fasttransport.hpp b/network/fasttransport.hpp index 4365133..0ccd08c 100644 --- a/network/fasttransport.hpp +++ b/network/fasttransport.hpp @@ -4,6 +4,7 @@ #include "network/configuration.hpp" #include "network/transport.hpp" +#include "network/app_mem_pool.cpp" #include "rpc.h" #include "rpc_constants.h" @@ -56,36 +57,6 @@ struct req_tag_t { TransportReceiver *src; }; -// A basic mempool for preallocated objects of type T. eRPC has a faster, -// hugepage-backed one. -template class AppMemPool { - public: - size_t num_to_alloc = 1; - std::vector backing_ptr_vec; - std::vector pool; - - void extend_pool() { - T *backing_ptr = new T[num_to_alloc]; - for (size_t i = 0; i < num_to_alloc; i++) pool.push_back(&backing_ptr[i]); - backing_ptr_vec.push_back(backing_ptr); - num_to_alloc *= 2; - } - - T *alloc() { - if (pool.empty()) extend_pool(); - T *ret = pool.back(); - pool.pop_back(); - return ret; - } - - void free(T *t) { pool.push_back(t); } - - AppMemPool() {} - ~AppMemPool() { - for (T *ptr : backing_ptr_vec) delete[] ptr; - } -}; - // eRPC context passed between request and responses class AppContext { public: diff --git a/network/simtransport.cpp b/network/simtransport.cpp index f34b33f..7ca4588 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -83,8 +83,12 @@ namespace network this->receiverIdx = receiverIdx; } + int SimulatedTransport::MAX_DATA_PER_PKT = 16384; + // Used when the client wants to create a request - char SimulatedTransport::*GetRequestBuf(size_t reqLen, size_t respLen) { + char SimulatedTransport::* + GetRequestBuf(size_t reqLen, size_t respLen) + { // create a new request tag if (reqLen == 0) reqLen = SimulatedTransport.MAX_DATA_PER_PKT; diff --git a/network/simtransport.hpp b/network/simtransport.hpp index 2f3cc1f..107faaf 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -33,6 +33,7 @@ #include "network/configuration.hpp" #include "network/transport.hpp" +#include "network/app_mem_pool.cpp" #include #include @@ -59,7 +60,7 @@ namespace network void free_msg_buffer(sim_req_tag_t req_tag) { delete[] req_tag.req_msgbuf; - delete[] reg_taq.resp_msgbuf; + delete[] req_tag.resp_msgbuf; } void resize_msg_buffer(char* msgBuf, int newMsgLen) { @@ -72,7 +73,7 @@ namespace network void enqueue_request(sim_req_tag_t req_tag) { - req_queue.append(req_tag); + req_queue.push(req_tag); } private: @@ -83,7 +84,7 @@ namespace network class SimAppContext { - static int MAX_DATA_PER_PKT = 16384; + static int MAX_DATA_PER_PKT; public: struct @@ -130,11 +131,6 @@ namespace network uint8_t GetID() override { return id; }; - protected: - bool SendMessageInternal(TransportReceiver *src, - const Message &m, - bool multicast); - private: // Configuration containing the ids of the servers network::Configuration config; From 9543213bcf9deea609aa6bca033d6f43c24fecdf Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 23:55:28 +0800 Subject: [PATCH 020/138] fix: compilation error --- client/storage_client.hpp | 1 + common/types.hpp | 2 -- network/simtransport.hpp | 2 ++ 3 files changed, 3 insertions(+), 2 deletions(-) delete mode 100644 common/types.hpp diff --git a/client/storage_client.hpp b/client/storage_client.hpp index 184738e..d11516b 100644 --- a/client/storage_client.hpp +++ b/client/storage_client.hpp @@ -2,6 +2,7 @@ #ifndef _STORAGE_CLIENT_H_ #define _STORAGE_CLIENT_H_ +#include "network/configuration.hpp" #include "network/configuration.hpp" #if IS_DEV diff --git a/common/types.hpp b/common/types.hpp deleted file mode 100644 index 00ac70d..0000000 --- a/common/types.hpp +++ /dev/null @@ -1,2 +0,0 @@ - -typedef void (*sim_rpc_cont_func_t)(void *context, void *tag); diff --git a/network/simtransport.hpp b/network/simtransport.hpp index 107faaf..52a02d9 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -42,6 +42,8 @@ #define MULTIPLE_ACTIVE_REQUESTS false +typedef void (*sim_rpc_cont_func_t)(void *context, void *tag); + // A tag attached to every request we send; // it is passed to the response function struct sim_req_tag_t From 2e457029f3af05280c2e2e3d1442c84c2c9b24a7 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 23:57:41 +0800 Subject: [PATCH 021/138] fix: compilation error --- network/simtransport.hpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/network/simtransport.hpp b/network/simtransport.hpp index 52a02d9..dd09944 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -38,8 +38,6 @@ #include #include -#include - #define MULTIPLE_ACTIVE_REQUESTS false typedef void (*sim_rpc_cont_func_t)(void *context, void *tag); @@ -75,13 +73,12 @@ namespace network void enqueue_request(sim_req_tag_t req_tag) { - req_queue.push(req_tag); + req_queue.push_back(req_tag); } private: std::deque req_queue; - } - + }; class SimAppContext { @@ -96,7 +93,7 @@ namespace network sim_req_tag_t *crt_req_tag; // Request tags used for RPCs exchanged with the servers - AppMemPool req_tag_pool; + AppMemPool req_tag_pool; } client; From dbc2cdcd84d1e52b2cd803d7ae8e8ae06513fe8c Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Wed, 20 Oct 2021 23:58:12 +0800 Subject: [PATCH 022/138] fix: compilation error --- client/storage_client.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/storage_client.hpp b/client/storage_client.hpp index d11516b..4b3f86c 100644 --- a/client/storage_client.hpp +++ b/client/storage_client.hpp @@ -3,7 +3,7 @@ #define _STORAGE_CLIENT_H_ #include "network/configuration.hpp" -#include "network/configuration.hpp" +#include "network/transport.hpp" #if IS_DEV #include "network/simtransport.hpp" From 4fe9909931ff2365d45340ceb1df571f6f09abbf Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 00:00:14 +0800 Subject: [PATCH 023/138] fix: compilation error --- server/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/main.cpp b/server/main.cpp index 9e7397d..08c77ea 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -7,8 +7,8 @@ #include #include -#include "network/transport_config.hpp" #include "network/configuration.hpp" +#include "network/transport.hpp" #if IS_DEV #include "network/simtransport.hpp" From e509bb760677a77c0e3902c122250a4811dc8719 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 00:05:56 +0800 Subject: [PATCH 024/138] feat: remove import guard from simtransport.cpp --- network/simtransport.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 7ca4588..cb46646 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -27,8 +27,6 @@ * SOFTWARE. * **********************************************************************/ -#ifndef _NETWORK_SIMTRANSPORT_H_ -#define _NETWORK_SIMTRANSPORT_H_ #include "network/simtransport.hpp" @@ -84,7 +82,7 @@ namespace network } int SimulatedTransport::MAX_DATA_PER_PKT = 16384; - + // Used when the client wants to create a request char SimulatedTransport::* GetRequestBuf(size_t reqLen, size_t respLen) @@ -174,5 +172,3 @@ namespace network return true; } } - -#endif // _NETWORK_SIMTRANSPORT_H_ From f90b293e9200f99b7b6aeaaaf719e517bfd763d8 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 00:13:14 +0800 Subject: [PATCH 025/138] fix: import sequence --- client/main.cpp | 9 ++++++++- client/storage_client.hpp | 6 ------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/client/main.cpp b/client/main.cpp index bfc37e4..ecaef0d 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -7,7 +7,14 @@ #include #include "network/configuration.hpp" -#include "network/grpctransport.hpp" +#include "network/transport.hpp" + +#if IS_DEV +#include "network/simtransport.hpp" +#else +#include "network/fasttransport.hpp" +#endif + #include "common/gflags.hpp" #include "storage_client.hpp" diff --git a/client/storage_client.hpp b/client/storage_client.hpp index 4b3f86c..1ce1561 100644 --- a/client/storage_client.hpp +++ b/client/storage_client.hpp @@ -5,12 +5,6 @@ #include "network/configuration.hpp" #include "network/transport.hpp" -#if IS_DEV -#include "network/simtransport.hpp" -#else -#include "network/fasttransport.hpp" -#endif - struct nodeid_t { uint32_t serverIdx; uint32_t coreIdx; From 94c93bfbe98992ede8edc3e212765f5646f9cd83 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 00:14:10 +0800 Subject: [PATCH 026/138] feat: remove undeclared types --- client/main.cpp | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/client/main.cpp b/client/main.cpp index ecaef0d..533fa9c 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -20,17 +20,6 @@ #include -// Generated class by proto -using betree::GetNodeIdReply; -using betree::GetNodeIdRequest; -using betree::Storage; -using grpc::Server; -using grpc::ServerAsyncResponseWriter; -using grpc::ServerBuilder; -using grpc::ServerCompletionQueue; -using grpc::ServerContext; -using grpc::Status; - using namespace std; // Implmentation of the client's stub implementation From dbfe76d8cd899050084a833b86feb8661ca6b137 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 00:15:51 +0800 Subject: [PATCH 027/138] fix: remove client boilerplate code --- client/main.cpp | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/client/main.cpp b/client/main.cpp index 533fa9c..5407a88 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -27,17 +27,8 @@ class StorageClientStub { } -void -client_thread_func() +void client_thread_func() { - std::string local_uri = config.GetServerAddress(FLAGS_serverIndex).host; - // TODO: get rid of the hardcoded number of request types - - network::Transport; - if (FLAGS_serverIndex) - { - // TODO: Connect to simulated transport - } } From cc06a1e967d5cb4a21a206846b7571af7b490039 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 00:18:09 +0800 Subject: [PATCH 028/138] feat: move sim_req_tag_t to be inside network namespace --- network/simtransport.hpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/network/simtransport.hpp b/network/simtransport.hpp index dd09944..7de6e4e 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -42,19 +42,19 @@ typedef void (*sim_rpc_cont_func_t)(void *context, void *tag); -// A tag attached to every request we send; -// it is passed to the response function -struct sim_req_tag_t -{ - char* req_msgbuf; - char* resp_msgbuf; - uint8_t reqType; - TransportReceiver *src; - sim_rpc_cont_func_t cont_func; -}; - namespace network { + // A tag attached to every request we send; + // it is passed to the response function + struct sim_req_tag_t + { + char *req_msgbuf; + char *resp_msgbuf; + uint8_t reqType; + TransportReceiver *src; + sim_rpc_cont_func_t cont_func; + }; + class SimRpc { void free_msg_buffer(sim_req_tag_t req_tag) From abcafcf22c892ac23d98cf95b43c3744dd23ef54 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 00:22:20 +0800 Subject: [PATCH 029/138] fix: remove parsing command line args --- client/main.cpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/client/main.cpp b/client/main.cpp index 5407a88..bf13539 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -35,13 +35,6 @@ void client_thread_func() int main(int argc, char **argv) { - gflags::ParseCommandLineFlags(&argc, &argv, true); - - if (FLAGS_isDev == "") - { - FLAGS_isDev = false; - } - client_thread_func(); return 0; From 7d97b88952c4d9b6c60e0059bf4222ffd4a74cac Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Wed, 20 Oct 2021 16:23:27 +0000 Subject: [PATCH 030/138] fix: semicolon after class --- client/main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/main.cpp b/client/main.cpp index bf13539..9f64bc7 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -25,7 +25,7 @@ using namespace std; // Implmentation of the client's stub implementation class StorageClientStub { -} +}; void client_thread_func() { @@ -38,4 +38,4 @@ int main(int argc, char **argv) client_thread_func(); return 0; -} \ No newline at end of file +} From e44d05d3294f754c7f48709fab8a6399ce716d28 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 00:26:10 +0800 Subject: [PATCH 031/138] feat: add linker to gflags --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 64c2b1f..8ad6159 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ IS_DEV = 1 ifeq ($(IS_DEV),1) RPC_PATH= RPC_CFLAGS_RAW := -RPC_LDFLAGS_RAW := +RPC_LDFLAGS_RAW := -lgflags else RPC_PATH= "./third_party/eRPC" RPC_CFLAGS_RAW := -I $(RPC_PATH)/src -DRAW=true From e389eb83c238fe9eb99f6cc755e07c77b0bc0f13 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 00:27:10 +0800 Subject: [PATCH 032/138] feat: add ldl flags --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 8ad6159..9abe8f8 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ IS_DEV = 1 ifeq ($(IS_DEV),1) RPC_PATH= RPC_CFLAGS_RAW := -RPC_LDFLAGS_RAW := -lgflags +RPC_LDFLAGS_RAW := -ldl -lgflags else RPC_PATH= "./third_party/eRPC" RPC_CFLAGS_RAW := -I $(RPC_PATH)/src -DRAW=true From 5249c5c1ba622cbc57282517030ca5411ab4e3b1 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 00:27:36 +0800 Subject: [PATCH 033/138] feat: add ibverbs flags --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 9abe8f8..e450c25 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ IS_DEV = 1 ifeq ($(IS_DEV),1) RPC_PATH= RPC_CFLAGS_RAW := -RPC_LDFLAGS_RAW := -ldl -lgflags +RPC_LDFLAGS_RAW := -ldl -lgflags -libverbs else RPC_PATH= "./third_party/eRPC" RPC_CFLAGS_RAW := -I $(RPC_PATH)/src -DRAW=true From c2ee0f13f8add02a1137e5dbdc67dd6c47d9e59a Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 10:08:55 +0800 Subject: [PATCH 034/138] fix: flag type --- NOTES.md | 3 ++- common/gflags.hpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/NOTES.md b/NOTES.md index d25e12a..5544f1a 100644 --- a/NOTES.md +++ b/NOTES.md @@ -44,12 +44,13 @@ Implementation eRPC server thread ``` sudo apt install make sudo apt install cmake -sudo apt install g++ sudo apt install libssl-dev sudo apt install libevent-dev sudo apt install libboost-all-dev sudo apt install libgtest-dev sudo apt-get install libgflags-dev +sudo apt-get install libgoogle-glog-dev +sudo apt install g++ make ``` diff --git a/common/gflags.hpp b/common/gflags.hpp index ec8f74f..b32b85c 100644 --- a/common/gflags.hpp +++ b/common/gflags.hpp @@ -5,7 +5,7 @@ // Defines all the command line flags shared between both // severs and clients -DEFINE_string(isDev, false, "Flag whether this is development environment"); +DEFINE_bool(isDev, false, "Flag whether this is development environment"); DEFINE_string(configFile, "", "Path to the configuration file"); DEFINE_int32(serverIndex, -1, "Index of the server in the config file"); DEFINE_string(keysFile, "", "Path to the keys file"); From 0e19704aff86eed0cf3770b17bf115be19d72fc5 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 10:12:36 +0800 Subject: [PATCH 035/138] feat: remove server's dependency to eRPC --- network/fasttransport.cpp | 2 ++ server/main.cpp | 33 +++++++++++++++++++++------------ 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/network/fasttransport.cpp b/network/fasttransport.cpp index 9550613..d89767d 100644 --- a/network/fasttransport.cpp +++ b/network/fasttransport.cpp @@ -80,6 +80,8 @@ FastTransport::FastTransport(const network::Configuration &config, c = new AppContext(); + erpc::bind_to_core(thread_arr[i], numa_node, idx); + // The first thread to grab the lock initializes the transport fasttransport_lock.lock(); if (fasttransport_initialized) { diff --git a/server/main.cpp b/server/main.cpp index 08c77ea..30495e8 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -31,6 +31,7 @@ void server_thread_func(StorageServerApp *storageApp, // for now assume it's round robin // TODO: get rid of the hardcoded number of request types //int ht_ct = boost::thread::hardware_concurrency(); +#if IS_DEV network::FastTransport *transport = new network::FastTransport(config, local_uri, //FLAGS_numServerThreads, @@ -48,6 +49,8 @@ void server_thread_func(StorageServerApp *storageApp, storageApp); transport->Run(); +#else +#endif } //void signal_handler( int signal_num ) { @@ -110,18 +113,24 @@ main(int argc, char **argv) StorageServerApp *storageApp = new StorageServerApp(); -// for (uint8_t i = 0; i < FLAGS_numServerThreads; i++) { -// for (uint8_t i = 0; i < ht_ct; i++) { - for (uint8_t i = 0; i < 1; i++) { - // thread_arr[i] = std::thread(server_thread_func, server, config, i%nn_ct, i); - // erpc::bind_to_core(thread_arr[i], i%nn_ct, i/nn_ct); -// uint8_t numa_node = (i % 4 < 2)?0:1; -// uint8_t idx = i/4 + (i % 2) * 20; - uint8_t numa_node = 0; - uint8_t idx = i; - thread_arr[i] = std::thread(server_thread_func, storageApp, config, numa_node, i); - erpc::bind_to_core(thread_arr[i], numa_node, idx); - } + // TODO: start the app on all available cores to regulate frequency boosting + // int ht_ct = boost::thread::hardware_concurrency(); + // std::vector thread_arr(FLAGS_numServerThreads); + // std::vector thread_arr(ht_ct); + std::vector thread_arr(1); + + StorageServerApp *storageApp = new StorageServerApp(); + + // for (uint8_t i = 0; i < FLAGS_numServerThreads; i++) { + // for (uint8_t i = 0; i < ht_ct; i++) { + for (uint8_t i = 0; i < 1; i++) + { + // thread_arr[i] = std::thread(server_thread_func, server, config, i%nn_ct, i); + // erpc::bind_to_core(thread_arr[i], i%nn_ct, i/nn_ct); + // uint8_t numa_node = (i % 4 < 2)?0:1; + // uint8_t idx = i/4 + (i % 2) * 20; + thread_arr[i] = std::thread(server_thread_func, storageApp, config, i); + } for (auto &thread : thread_arr) thread.join(); From bd07e2d8c77532a427cc03641cdde5a916481668 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 10:15:13 +0800 Subject: [PATCH 036/138] fix: import logic --- server/main.cpp | 68 ++++++++++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 38 deletions(-) diff --git a/server/main.cpp b/server/main.cpp index 30495e8..f1c918b 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -32,24 +32,24 @@ void server_thread_func(StorageServerApp *storageApp, // TODO: get rid of the hardcoded number of request types //int ht_ct = boost::thread::hardware_concurrency(); #if IS_DEV +#else network::FastTransport *transport = new network::FastTransport(config, - local_uri, - //FLAGS_numServerThreads, - 1, - //ht_ct, - 4, - 0, - numa_node, - thread_id); -// last_transport = transport; + local_uri, + // FLAGS_numServerThreads, + 1, + // ht_ct, + 4, + 0, + numa_node, + thread_id); + // last_transport = transport; StorageServer *ss = new StorageServer( - config, FLAGS_serverIndex, - (network::FastTransport *)transport, - storageApp); + config, FLAGS_serverIndex, + (network::FastTransport *)transport, + storageApp); transport->Run(); -#else #endif } @@ -106,31 +106,23 @@ main(int argc, char **argv) //int ht_ct = boost::thread::hardware_concurrency()/boost::thread::physical_concurrency(); // number of hyperthreads // TODO: start the app on all available cores to regulate frequency boosting -// int ht_ct = boost::thread::hardware_concurrency(); -// std::vector thread_arr(FLAGS_numServerThreads); -// std::vector thread_arr(ht_ct); - std::vector thread_arr(1); - - StorageServerApp *storageApp = new StorageServerApp(); - - // TODO: start the app on all available cores to regulate frequency boosting - // int ht_ct = boost::thread::hardware_concurrency(); - // std::vector thread_arr(FLAGS_numServerThreads); - // std::vector thread_arr(ht_ct); - std::vector thread_arr(1); - - StorageServerApp *storageApp = new StorageServerApp(); - - // for (uint8_t i = 0; i < FLAGS_numServerThreads; i++) { - // for (uint8_t i = 0; i < ht_ct; i++) { - for (uint8_t i = 0; i < 1; i++) - { - // thread_arr[i] = std::thread(server_thread_func, server, config, i%nn_ct, i); - // erpc::bind_to_core(thread_arr[i], i%nn_ct, i/nn_ct); - // uint8_t numa_node = (i % 4 < 2)?0:1; - // uint8_t idx = i/4 + (i % 2) * 20; - thread_arr[i] = std::thread(server_thread_func, storageApp, config, i); - } + // int ht_ct = boost::thread::hardware_concurrency(); + // std::vector thread_arr(FLAGS_numServerThreads); + // std::vector thread_arr(ht_ct); + std::vector thread_arr(1); + + StorageServerApp *storageApp = new StorageServerApp(); + + // for (uint8_t i = 0; i < FLAGS_numServerThreads; i++) { + // for (uint8_t i = 0; i < ht_ct; i++) { + for (uint8_t i = 0; i < 1; i++) + { + // thread_arr[i] = std::thread(server_thread_func, server, config, i%nn_ct, i); + // erpc::bind_to_core(thread_arr[i], i%nn_ct, i/nn_ct); + // uint8_t numa_node = (i % 4 < 2)?0:1; + // uint8_t idx = i/4 + (i % 2) * 20; + thread_arr[i] = std::thread(server_thread_func, storageApp, config, i); + } for (auto &thread : thread_arr) thread.join(); From 534b9e0b3a892f43c874f01ca1d982a39cd9f653 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 10:20:46 +0800 Subject: [PATCH 037/138] feat: remove 1 args from server thread --- server/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/main.cpp b/server/main.cpp index f1c918b..7791df5 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -25,7 +25,7 @@ using namespace std; void server_thread_func(StorageServerApp *storageApp, network::Configuration config, - uint8_t numa_node, uint8_t thread_id) { + uint8_t thread_id) { std::string local_uri = config.GetServerAddress(FLAGS_serverIndex).host; // TODO: provide mapping function from thread_id to numa_node // for now assume it's round robin From 4bb1255b3478a1c3becb7622fccb346da4cf2e83 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 10:24:23 +0800 Subject: [PATCH 038/138] fix: argument passing to server's thread --- network/fasttransport.cpp | 3 ++- server/main.cpp | 31 +++++++++++++++++++------------ 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/network/fasttransport.cpp b/network/fasttransport.cpp index d89767d..59fa8d3 100644 --- a/network/fasttransport.cpp +++ b/network/fasttransport.cpp @@ -79,7 +79,8 @@ FastTransport::FastTransport(const network::Configuration &config, Assert(numa_node <= numa_max_node()); c = new AppContext(); - + + // bind round robin on the availlable numa nodes erpc::bind_to_core(thread_arr[i], numa_node, idx); // The first thread to grab the lock initializes the transport diff --git a/server/main.cpp b/server/main.cpp index 7791df5..88f5aec 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -23,6 +23,13 @@ using namespace std; +uint8_t get_numa_node(uint8_t thread_id) +{ + // TODO: provide mapping function from thread_id to numa_node + // for now assume it's round robin + return 0; +} + void server_thread_func(StorageServerApp *storageApp, network::Configuration config, uint8_t thread_id) { @@ -33,6 +40,11 @@ void server_thread_func(StorageServerApp *storageApp, //int ht_ct = boost::thread::hardware_concurrency(); #if IS_DEV #else + + if (numa_available() == -1) + { + PPanic("NUMA library not available."); + } network::FastTransport *transport = new network::FastTransport(config, local_uri, // FLAGS_numServerThreads, @@ -40,7 +52,7 @@ void server_thread_func(StorageServerApp *storageApp, // ht_ct, 4, 0, - numa_node, + get_numa_node(thread_id), thread_id); // last_transport = transport; @@ -74,10 +86,10 @@ main(int argc, char **argv) return EXIT_FAILURE; } -// if (FLAGS_keysFile == "") { -// fprintf(stderr, "option --keysFile is required\n"); -// return EXIT_FAILURE; -// } + // if (FLAGS_keysFile == "") { + // fprintf(stderr, "option --keysFile is required\n"); + // return EXIT_FAILURE; + // } if (FLAGS_serverIndex == -1) { fprintf(stderr, "option replicaIndex is required\n"); @@ -96,12 +108,6 @@ main(int argc, char **argv) "only %d servers defined\n", FLAGS_serverIndex, config.n); } - // create replica threads - // bind round robin on the availlable numa nodes - if (numa_available() == -1) { - PPanic("NUMA library not available."); - } - //int nn_ct = numa_max_node() + 1; //int ht_ct = boost::thread::hardware_concurrency()/boost::thread::physical_concurrency(); // number of hyperthreads @@ -112,7 +118,8 @@ main(int argc, char **argv) std::vector thread_arr(1); StorageServerApp *storageApp = new StorageServerApp(); - + + // create replica threads // for (uint8_t i = 0; i < FLAGS_numServerThreads; i++) { // for (uint8_t i = 0; i < ht_ct; i++) { for (uint8_t i = 0; i < 1; i++) From aeb5da59ab4b8a36949204acbeeced570d96a97a Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 10:40:09 +0800 Subject: [PATCH 039/138] feat: add transport init in server --- NOTES.md | 4 +++- network/simtransport.cpp | 2 +- server/main.cpp | 17 ++++++++++++++--- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/NOTES.md b/NOTES.md index 5544f1a..3f67a30 100644 --- a/NOTES.md +++ b/NOTES.md @@ -94,7 +94,9 @@ RPC options: #### Setup 1. Set -DIS_DEV in Makefile ## Run ---configFile=config --replicaIndex=0 or 1 +1. make +2. ./client/client +3. ./server/server --configFile=config-test --serverIndex=0 or 1 ## Understanding the code 1. The client and server have different Transport object. They use this object to access all info and properties of it. diff --git a/network/simtransport.cpp b/network/simtransport.cpp index cb46646..a5ed11c 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -106,7 +106,7 @@ namespace network { // If it's client, just busy waiting if (receiverIdx == -1) { - while(true); + while(!stop); } // If it's server, check the request queue diff --git a/server/main.cpp b/server/main.cpp index 88f5aec..b390487 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -39,6 +39,15 @@ void server_thread_func(StorageServerApp *storageApp, // TODO: get rid of the hardcoded number of request types //int ht_ct = boost::thread::hardware_concurrency(); #if IS_DEV + network::SimTransport *transport = new network::SimTransport(config, thread_id); + StorageServer *ss = new StorageServer( + config, + FLAGS_serverIndex, + transport, + storageApp + ); + transport->Run(); + #else if (numa_available() == -1) @@ -57,9 +66,11 @@ void server_thread_func(StorageServerApp *storageApp, // last_transport = transport; StorageServer *ss = new StorageServer( - config, FLAGS_serverIndex, + config, + FLAGS_serverIndex, (network::FastTransport *)transport, - storageApp); + storageApp + ); transport->Run(); #endif @@ -118,7 +129,7 @@ main(int argc, char **argv) std::vector thread_arr(1); StorageServerApp *storageApp = new StorageServerApp(); - + // create replica threads // for (uint8_t i = 0; i < FLAGS_numServerThreads; i++) { // for (uint8_t i = 0; i < ht_ct; i++) { From 610473d278c168b4fa09e7352fa5d8b5f9ea1556 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 10:41:27 +0800 Subject: [PATCH 040/138] refactor: SimulatedTransport to SimTransport --- network/simtransport.cpp | 26 +++++++++++++------------- network/simtransport.hpp | 6 +++--- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index a5ed11c..7da3b5b 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -60,7 +60,7 @@ namespace network #endif } - SimulatedTransport::SimulatedTransport( + SimTransport::SimTransport( const network::Configuration &config, uint8_t id ) : config(config), id(id) @@ -68,11 +68,11 @@ namespace network context = new SimAppContext(); } - SimulatedTransport::~SimulatedTransport() + SimTransport::~SimTransport() { } - void SimulatedTransport::Register(TransportReceiver *receiver, int receiverIdx) + void SimTransport::Register(TransportReceiver *receiver, int receiverIdx) { assert(receiverIdx < config.n); @@ -81,17 +81,17 @@ namespace network this->receiverIdx = receiverIdx; } - int SimulatedTransport::MAX_DATA_PER_PKT = 16384; + int SimTransport::MAX_DATA_PER_PKT = 16384; // Used when the client wants to create a request - char SimulatedTransport::* + char SimTransport::* GetRequestBuf(size_t reqLen, size_t respLen) { // create a new request tag if (reqLen == 0) - reqLen = SimulatedTransport.MAX_DATA_PER_PKT; + reqLen = SimTransport.MAX_DATA_PER_PKT; if (respLen == 0) - respLen = SimulatedTransport.MAX_DATA_PER_PKT; + respLen = SimTransport.MAX_DATA_PER_PKT; c->client.crt_req_tag = c->client.req_tag_pool.alloc(); c->client.crt_req_tag->req_msgbuf = new char[reqLen]; c->client.crt_req_tag->resp_msgbuf = new char[respLen]; @@ -102,7 +102,7 @@ namespace network return -1; } - void SimulatedTransport::Run() + void SimTransport::Run() { // If it's client, just busy waiting if (receiverIdx == -1) { @@ -118,18 +118,18 @@ namespace network } } - void SimulatedTransport::Stop() { + void SimTransport::Stop() { Debug("Stopping transport!"); stop = true; } - bool SimulatedTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, uint32_t serverIdx, uint8_t dstRpcIdx, size_t msgLen) { + bool SimTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, uint32_t serverIdx, uint8_t dstRpcIdx, size_t msgLen) { c->client.crt_req_tag->src = src; c->client.crt_req_tag->reqType = reqType; c->enqueue_request(c->client.crt_req_tag); } - bool SimulatedTransport::SendRequestToAllServers(TransportReceiver *src, uint8_t reqType, uint8_t dstRpcIdx, size_t msgLen) { + bool SimTransport::SendRequestToAllServers(TransportReceiver *src, uint8_t reqType, uint8_t dstRpcIdx, size_t msgLen) { for (int i = 0; i < config.n; i++) { // skip the sending entity @@ -160,13 +160,13 @@ namespace network } } - bool SimulatedTransport::SendResponse(uint64_t reqHandleIdx, size_t msgLen) { + bool SimTransport::SendResponse(uint64_t reqHandleIdx, size_t msgLen) { Debug("Sent response, msgLen = %lu\n", msgLen); simtransport_response(c, c->client.crt_req_tag); return true; } - bool SimulatedTransport::SendResponse(size_t msgLen) { + bool SimTransport::SendResponse(size_t msgLen) { Debug("Sent response, msgLen = %lu\n", msgLen); simtransport_response(c, c->client.crt_req_tag); return true; diff --git a/network/simtransport.hpp b/network/simtransport.hpp index 7de6e4e..a0f346a 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -107,15 +107,15 @@ namespace network SimRpc *rpc = nullptr; }; - class SimulatedTransport : public Transport + class SimTransport : public Transport { public: - SimulatedTransport( + SimTransport( const network::Configuration &config, int nthreads, uint8_t nr_req_types, uint8_t id); - ~SimulatedTransport(); + ~SimTransport(); void Register(TransportReceiver *receiver, int replicaIdx); void Run(); void Wait(); From cb444288db5e6ee79a41ced2472c2700db62470b Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 10:44:02 +0800 Subject: [PATCH 041/138] fix: constructor params in SimTransport header --- network/simtransport.hpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/network/simtransport.hpp b/network/simtransport.hpp index a0f346a..8410fdd 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -112,8 +112,6 @@ namespace network public: SimTransport( const network::Configuration &config, - int nthreads, - uint8_t nr_req_types, uint8_t id); ~SimTransport(); void Register(TransportReceiver *receiver, int replicaIdx); From ad1676f0cdc7e585afdc406119da3b4ecf4a61ce Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 10:53:09 +0800 Subject: [PATCH 042/138] fix: Simtransport constructor --- network/simtransport.cpp | 3 ++- server/main.cpp | 11 +++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 7da3b5b..688f0a0 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -98,7 +98,8 @@ namespace network return c->client.crt_req_tag->req_msgbuf; } - int GetSession(TransportReceiver *src, uint8_t replicaIdx, uint8_t dstRpcIdx) { + int SimTransport::GetSession(TransportReceiver *src, uint8_t replicaIdx, uint8_t dstRpcIdx) + { return -1; } diff --git a/server/main.cpp b/server/main.cpp index b390487..1630233 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -39,17 +39,16 @@ void server_thread_func(StorageServerApp *storageApp, // TODO: get rid of the hardcoded number of request types //int ht_ct = boost::thread::hardware_concurrency(); #if IS_DEV - network::SimTransport *transport = new network::SimTransport(config, thread_id); + +#else + network::SimTransport *transport = new network::SimTransport::SimTransport(config, thread_id); StorageServer *ss = new StorageServer( - config, + config, FLAGS_serverIndex, transport, - storageApp - ); + storageApp); transport->Run(); -#else - if (numa_available() == -1) { PPanic("NUMA library not available."); From 42806531080116411cfdb406fcaa22a8eb879738 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 10:54:28 +0800 Subject: [PATCH 043/138] feat: add SimTransport init in servr --- server/main.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/server/main.cpp b/server/main.cpp index 1630233..4bd4ff6 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -39,8 +39,6 @@ void server_thread_func(StorageServerApp *storageApp, // TODO: get rid of the hardcoded number of request types //int ht_ct = boost::thread::hardware_concurrency(); #if IS_DEV - -#else network::SimTransport *transport = new network::SimTransport::SimTransport(config, thread_id); StorageServer *ss = new StorageServer( config, @@ -49,6 +47,7 @@ void server_thread_func(StorageServerApp *storageApp, storageApp); transport->Run(); +#else if (numa_available() == -1) { PPanic("NUMA library not available."); From e211a2c3d5afd8f9384ea6a1e5804168271d2c9c Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 10:56:40 +0800 Subject: [PATCH 044/138] feat: add debugging statement --- network/simtransport.cpp | 3 +++ server/main.cpp | 1 + 2 files changed, 4 insertions(+) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 688f0a0..7daadcf 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -28,6 +28,7 @@ * **********************************************************************/ +#include #include "network/simtransport.hpp" namespace network @@ -110,8 +111,10 @@ namespace network while(!stop); } + std::cout << "hi\n"; // If it's server, check the request queue while(!stop) { + std::cout << "h2 \n"; if (!c.req_queue.empty()) { sim_req_tag_t req_tag = c.req_queue.front(); req_tag.src->ReceiveRequest(req_tag.reqType, req_tag.req_msgbuf, req_tag.req_respbuf); diff --git a/server/main.cpp b/server/main.cpp index 4bd4ff6..d165530 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -39,6 +39,7 @@ void server_thread_func(StorageServerApp *storageApp, // TODO: get rid of the hardcoded number of request types //int ht_ct = boost::thread::hardware_concurrency(); #if IS_DEV + cout << "Hi I'm here\n"; network::SimTransport *transport = new network::SimTransport::SimTransport(config, thread_id); StorageServer *ss = new StorageServer( config, From 2f301676ac23d4628f48a797a7589a8d65fcda71 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 10:58:17 +0800 Subject: [PATCH 045/138] fix: constructor --- server/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/main.cpp b/server/main.cpp index d165530..8d2f2e3 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -40,7 +40,7 @@ void server_thread_func(StorageServerApp *storageApp, //int ht_ct = boost::thread::hardware_concurrency(); #if IS_DEV cout << "Hi I'm here\n"; - network::SimTransport *transport = new network::SimTransport::SimTransport(config, thread_id); + network::SimTransport *transport = new network::SimTransport(config, thread_id); StorageServer *ss = new StorageServer( config, FLAGS_serverIndex, From 1fe5537cc90656bfe9454c1deabfd5e4acfcceb0 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 11:00:16 +0800 Subject: [PATCH 046/138] feat: use network namespace --- server/main.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/server/main.cpp b/server/main.cpp index 8d2f2e3..ec89edb 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -22,6 +22,7 @@ #include using namespace std; +using namespace network; uint8_t get_numa_node(uint8_t thread_id) { @@ -31,7 +32,7 @@ uint8_t get_numa_node(uint8_t thread_id) } void server_thread_func(StorageServerApp *storageApp, - network::Configuration config, + Configuration config, uint8_t thread_id) { std::string local_uri = config.GetServerAddress(FLAGS_serverIndex).host; // TODO: provide mapping function from thread_id to numa_node @@ -40,7 +41,7 @@ void server_thread_func(StorageServerApp *storageApp, //int ht_ct = boost::thread::hardware_concurrency(); #if IS_DEV cout << "Hi I'm here\n"; - network::SimTransport *transport = new network::SimTransport(config, thread_id); + SimTransport *transport = new SimTransport(config, thread_id); StorageServer *ss = new StorageServer( config, FLAGS_serverIndex, @@ -53,7 +54,7 @@ void server_thread_func(StorageServerApp *storageApp, { PPanic("NUMA library not available."); } - network::FastTransport *transport = new network::FastTransport(config, + FastTransport *transport = new FastTransport(config, local_uri, // FLAGS_numServerThreads, 1, @@ -67,7 +68,7 @@ void server_thread_func(StorageServerApp *storageApp, StorageServer *ss = new StorageServer( config, FLAGS_serverIndex, - (network::FastTransport *)transport, + (FastTransport *)transport, storageApp ); @@ -111,7 +112,7 @@ main(int argc, char **argv) if (configStream.fail()) { fprintf(stderr, "unable to read configuration file: %s\n", FLAGS_configFile.c_str()); } - network::Configuration config(configStream); + Configuration config(configStream); if (FLAGS_serverIndex >= config.n) { fprintf(stderr, "server index %d is out of bounds; " From e46b0bccf897500798043e4b35ce5d7d93c00a6b Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Thu, 21 Oct 2021 03:11:47 +0000 Subject: [PATCH 047/138] feat: set paranoid flag --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e450c25..921342f 100644 --- a/Makefile +++ b/Makefile @@ -62,7 +62,7 @@ LDFLAGS += $(LIBSSL_LDFLAGS) GTEST_DIR := /usr/src/gtest # Additional flags -PARANOID = 1 +PARANOID = 0 ifneq ($(PARANOID),0) override CFLAGS += -DPARANOID=1 $(info WARNING: Paranoid mode enabled) From e98e91cccc94e7a4b4da75ee0806ba3aeb409163 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 11:14:37 +0800 Subject: [PATCH 048/138] feat: comment --- server/main.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/server/main.cpp b/server/main.cpp index ec89edb..5bfa294 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -47,7 +47,7 @@ void server_thread_func(StorageServerApp *storageApp, FLAGS_serverIndex, transport, storageApp); - transport->Run(); + // transport->Run(); #else if (numa_available() == -1) @@ -55,14 +55,14 @@ void server_thread_func(StorageServerApp *storageApp, PPanic("NUMA library not available."); } FastTransport *transport = new FastTransport(config, - local_uri, - // FLAGS_numServerThreads, - 1, - // ht_ct, - 4, - 0, - get_numa_node(thread_id), - thread_id); + local_uri, + // FLAGS_numServerThreads, + 1, + // ht_ct, + 4, + 0, + get_numa_node(thread_id), + thread_id); // last_transport = transport; StorageServer *ss = new StorageServer( From 9971100a88f908dd0430405f33cd6c913f7e3998 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 11:15:17 +0800 Subject: [PATCH 049/138] feat: comment --- server/main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/server/main.cpp b/server/main.cpp index 5bfa294..bac9c82 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -11,6 +11,7 @@ #include "network/transport.hpp" #if IS_DEV +#warning ooooo #include "network/simtransport.hpp" #else #include "network/fasttransport.hpp" From 8123b0994cb470e1e019b5278d070a24d02f6566 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 11:20:44 +0800 Subject: [PATCH 050/138] fix: namespace --- network/simtransport.hpp | 176 +++++++++++++++++++-------------------- server/main.cpp | 20 ++--- 2 files changed, 98 insertions(+), 98 deletions(-) diff --git a/network/simtransport.hpp b/network/simtransport.hpp index 8410fdd..0f9b5c0 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -44,107 +44,107 @@ typedef void (*sim_rpc_cont_func_t)(void *context, void *tag); namespace network { - // A tag attached to every request we send; - // it is passed to the response function - struct sim_req_tag_t - { - char *req_msgbuf; - char *resp_msgbuf; - uint8_t reqType; - TransportReceiver *src; - sim_rpc_cont_func_t cont_func; - }; +// A tag attached to every request we send; +// it is passed to the response function +struct sim_req_tag_t +{ + char *req_msgbuf; + char *resp_msgbuf; + uint8_t reqType; + TransportReceiver *src; + sim_rpc_cont_func_t cont_func; +}; - class SimRpc { +class SimRpc { - void free_msg_buffer(sim_req_tag_t req_tag) - { - delete[] req_tag.req_msgbuf; - delete[] req_tag.resp_msgbuf; - } + void free_msg_buffer(sim_req_tag_t req_tag) + { + delete[] req_tag.req_msgbuf; + delete[] req_tag.resp_msgbuf; + } - void resize_msg_buffer(char* msgBuf, int newMsgLen) { - msgBuf = new char[newMsgLen]; - } + void resize_msg_buffer(char* msgBuf, int newMsgLen) { + msgBuf = new char[newMsgLen]; + } - char* alloc_msg_buffer(int msgLen) { - return new char[msgLen]; - } + char* alloc_msg_buffer(int msgLen) { + return new char[msgLen]; + } - void enqueue_request(sim_req_tag_t req_tag) - { - req_queue.push_back(req_tag); - } + void enqueue_request(sim_req_tag_t req_tag) + { + req_queue.push_back(req_tag); + } - private: - std::deque req_queue; - }; + private: + std::deque req_queue; +}; - class SimAppContext - { +class SimAppContext +{ - static int MAX_DATA_PER_PKT; + static int MAX_DATA_PER_PKT; - public: - struct - { - // This is maintained between calls to GetReqBuf and SendRequest - // to reduce copying - sim_req_tag_t *crt_req_tag; + public: + struct + { + // This is maintained between calls to GetReqBuf and SendRequest + // to reduce copying + sim_req_tag_t *crt_req_tag; - // Request tags used for RPCs exchanged with the servers - AppMemPool req_tag_pool; + // Request tags used for RPCs exchanged with the servers + AppMemPool req_tag_pool; - } client; + } client; - struct - { - // current req_handle - TransportReceiver *receiver = nullptr; - } server; + struct + { + // current req_handle + TransportReceiver *receiver = nullptr; + } server; - // common to both servers and clients - SimRpc *rpc = nullptr; - }; + // common to both servers and clients + SimRpc *rpc = nullptr; +}; - class SimTransport : public Transport - { - public: - SimTransport( - const network::Configuration &config, - uint8_t id); - ~SimTransport(); - void Register(TransportReceiver *receiver, int replicaIdx); - void Run(); - void Wait(); - void Stop(); - - bool SendRequestToServer(TransportReceiver *src, uint8_t reqType, uint32_t serverIdx, uint8_t dstRpcIdx, size_t msgLen) override; - bool SendRequestToAllServers(TransportReceiver *src, uint8_t reqType, uint8_t dstRpcIdx, size_t msgLen) override; - bool SendResponse(uint64_t reqHandleIdx, size_t msgLen) override; - bool SendResponse(size_t msgLen) override; - char *GetRequestBuf(size_t reqLen, size_t respLen) override; - int GetSession(TransportReceiver *src, uint8_t replicaIdx, uint8_t dstRpcIdx) override; - - uint8_t GetID() override { return id; }; - - private: - // Configuration containing the ids of the servers - network::Configuration config; - - SimAppContext *c; - - // Number of server threads - int nthreads; - - // This corresponds to the thread id of the current server - // used as the RPC id, must be unique per transport thread - uint8_t id; - - // This corresponds to the machine index - // Index of the receiver (if -1 then the receiver is a client that - // does not get requests, otherwise it is a server from the configuration) - int receiverIdx; - }; +class SimTransport : public Transport +{ + public: + SimTransport( + const network::Configuration &config, + uint8_t id); + ~SimTransport(); + void Register(TransportReceiver *receiver, int replicaIdx); + void Run(); + void Wait(); + void Stop(); + + bool SendRequestToServer(TransportReceiver *src, uint8_t reqType, uint32_t serverIdx, uint8_t dstRpcIdx, size_t msgLen) override; + bool SendRequestToAllServers(TransportReceiver *src, uint8_t reqType, uint8_t dstRpcIdx, size_t msgLen) override; + bool SendResponse(uint64_t reqHandleIdx, size_t msgLen) override; + bool SendResponse(size_t msgLen) override; + char *GetRequestBuf(size_t reqLen, size_t respLen) override; + int GetSession(TransportReceiver *src, uint8_t replicaIdx, uint8_t dstRpcIdx) override; + + uint8_t GetID() override { return id; }; + + private: + // Configuration containing the ids of the servers + network::Configuration config; + + SimAppContext *c; + + // Number of server threads + int nthreads; + + // This corresponds to the thread id of the current server + // used as the RPC id, must be unique per transport thread + uint8_t id; + + // This corresponds to the machine index + // Index of the receiver (if -1 then the receiver is a client that + // does not get requests, otherwise it is a server from the configuration) + int receiverIdx; +}; } #endif // _NETWORK_SIMTRANSPORT_H_ diff --git a/server/main.cpp b/server/main.cpp index bac9c82..abfde27 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -42,7 +42,7 @@ void server_thread_func(StorageServerApp *storageApp, //int ht_ct = boost::thread::hardware_concurrency(); #if IS_DEV cout << "Hi I'm here\n"; - SimTransport *transport = new SimTransport(config, thread_id); + SimTransport::SimTransport *transport = new SimTransport::SimTransport(config, thread_id); StorageServer *ss = new StorageServer( config, FLAGS_serverIndex, @@ -55,15 +55,15 @@ void server_thread_func(StorageServerApp *storageApp, { PPanic("NUMA library not available."); } - FastTransport *transport = new FastTransport(config, - local_uri, - // FLAGS_numServerThreads, - 1, - // ht_ct, - 4, - 0, - get_numa_node(thread_id), - thread_id); + FastTransport::FastTransport *transport = new FastTransport::FastTransport(config, + local_uri, + // FLAGS_numServerThreads, + 1, + // ht_ct, + 4, + 0, + get_numa_node(thread_id), + thread_id); // last_transport = transport; StorageServer *ss = new StorageServer( From a86f1c76714ad10a33ac8644608ff18435686437 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 11:23:10 +0800 Subject: [PATCH 051/138] fix: namespace --- server/main.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/server/main.cpp b/server/main.cpp index abfde27..c0c95b5 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -23,7 +23,6 @@ #include using namespace std; -using namespace network; uint8_t get_numa_node(uint8_t thread_id) { @@ -42,7 +41,7 @@ void server_thread_func(StorageServerApp *storageApp, //int ht_ct = boost::thread::hardware_concurrency(); #if IS_DEV cout << "Hi I'm here\n"; - SimTransport::SimTransport *transport = new SimTransport::SimTransport(config, thread_id); + network::SimTransport *transport = new network::SimTransport(config, thread_id); StorageServer *ss = new StorageServer( config, FLAGS_serverIndex, From b6ae0a98c4e9840f5a64a5ccce1aded4abf9ee6c Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 11:23:42 +0800 Subject: [PATCH 052/138] fix: namespace --- server/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/main.cpp b/server/main.cpp index c0c95b5..7c77878 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -32,7 +32,7 @@ uint8_t get_numa_node(uint8_t thread_id) } void server_thread_func(StorageServerApp *storageApp, - Configuration config, + network::Configuration config, uint8_t thread_id) { std::string local_uri = config.GetServerAddress(FLAGS_serverIndex).host; // TODO: provide mapping function from thread_id to numa_node From f71057c18db4fcf5e2d8d97199f1acc55dd982f5 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 11:24:27 +0800 Subject: [PATCH 053/138] fix: namespace --- server/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/main.cpp b/server/main.cpp index 7c77878..74f4632 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -112,7 +112,7 @@ main(int argc, char **argv) if (configStream.fail()) { fprintf(stderr, "unable to read configuration file: %s\n", FLAGS_configFile.c_str()); } - Configuration config(configStream); + network::Configuration config(configStream); if (FLAGS_serverIndex >= config.n) { fprintf(stderr, "server index %d is out of bounds; " From df2563080d94188fffe306e9a7e76dfae68211b4 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 11:33:08 +0800 Subject: [PATCH 054/138] fix: namespace --- network/simtransport.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 7daadcf..a0d8ece 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -31,18 +31,18 @@ #include #include "network/simtransport.hpp" -namespace network +using namespace network; { - static void simtransport_response(void *_context, void *_tag) - { - auto *c = static_cast(_context); - auto *rt = reinterpret_cast(_tag); - Debug("Received respose, reqType = %d", rt->reqType); - rt->src->ReceiveResponse(rt->reqType, - reinterpret_cast(rt->resp_msgbuf.buf)); - c->rpc->free_msg_buffer(); - c->client.req_tag_pool.free(rt); +static void simtransport_response(void *_context, void *_tag) +{ + auto *c = static_cast(_context); + auto *rt = reinterpret_cast(_tag); + Debug("Received respose, reqType = %d", rt->reqType); + rt->src->ReceiveResponse(rt->reqType, + reinterpret_cast(rt->resp_msgbuf.buf)); + c->rpc->free_msg_buffer(); + c->client.req_tag_pool.free(rt); } // Function called when the server received a request From ff0a04432502d5bac43e3f5f3d768698b3f84bcc Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 11:38:59 +0800 Subject: [PATCH 055/138] fix: namespace --- network/simtransport.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index a0d8ece..4ceb591 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -31,7 +31,7 @@ #include #include "network/simtransport.hpp" -using namespace network; +namespace network { static void simtransport_response(void *_context, void *_tag) @@ -64,9 +64,10 @@ static void simtransport_response(void *_context, void *_tag) SimTransport::SimTransport( const network::Configuration &config, uint8_t id - ) : config(config), id(id) + ) + // : config(config), id(id) { - context = new SimAppContext(); + // context = new SimAppContext(); } SimTransport::~SimTransport() From e96b5ea1b872fec10b31729ce8f381367cbd81e3 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 17:33:08 +0800 Subject: [PATCH 056/138] feat: remove namespace network from SimTransport --- network/simtransport.cpp | 232 +++++++++++++++++++-------------------- network/simtransport.hpp | 4 +- server/main.cpp | 4 +- 3 files changed, 117 insertions(+), 123 deletions(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 4ceb591..914570b 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -31,149 +31,145 @@ #include #include "network/simtransport.hpp" -namespace network +static void simtransport_response(void *_context, void *_tag) { +auto *c = static_cast(_context); +auto *rt = reinterpret_cast(_tag); +Debug("Received respose, reqType = %d", rt->reqType); +rt->src->ReceiveResponse(rt->reqType, + reinterpret_cast(rt->resp_msgbuf.buf)); +c->rpc->free_msg_buffer(); +c->client.req_tag_pool.free(rt); +} -static void simtransport_response(void *_context, void *_tag) +// Function called when the server received a request +// (clients never receive requests, just responses) +static void simtransport_request(void *_context, void *_tag) { + // save the req_handle for when we are in the SendMessage function auto *c = static_cast(_context); - auto *rt = reinterpret_cast(_tag); - Debug("Received respose, reqType = %d", rt->reqType); - rt->src->ReceiveResponse(rt->reqType, - reinterpret_cast(rt->resp_msgbuf.buf)); - c->rpc->free_msg_buffer(); - c->client.req_tag_pool.free(rt); - } - - // Function called when the server received a request - // (clients never receive requests, just responses) - static void simtransport_request(void *_context, void *_tag) - { - // save the req_handle for when we are in the SendMessage function - auto *c = static_cast(_context); #if MULTIPLE_ACTIVE_REQUESTS - // upcall to the app + // upcall to the app #else - // upcall to the app - c->server.receiver->ReceiveRequest(c->cilent.crt_req_tag->reqType, - c->cilent.crt_req_tag->req_msgbuf, - c->cilent.crt_req_tag->resp_msgbuf); + // upcall to the app + c->server.receiver->ReceiveRequest(c->cilent.crt_req_tag->reqType, + c->cilent.crt_req_tag->req_msgbuf, + c->cilent.crt_req_tag->resp_msgbuf); #endif - } +} - SimTransport::SimTransport( - const network::Configuration &config, - uint8_t id - ) - // : config(config), id(id) - { - // context = new SimAppContext(); - } +SimTransport::SimTransport( + const network::Configuration &config, + uint8_t id +) +// : config(config), id(id) +{ + // context = new SimAppContext(); +} - SimTransport::~SimTransport() - { - } +SimTransport::~SimTransport() +{ +} - void SimTransport::Register(TransportReceiver *receiver, int receiverIdx) - { - assert(receiverIdx < config.n); - - if (receiverIdx > -1) - c->server.receiver = receiver; - this->receiverIdx = receiverIdx; - } +void SimTransport::Register(TransportReceiver *receiver, int receiverIdx) +{ + assert(receiverIdx < config.n); + + if (receiverIdx > -1) + c->server.receiver = receiver; + this->receiverIdx = receiverIdx; +} - int SimTransport::MAX_DATA_PER_PKT = 16384; +int SimTransport::MAX_DATA_PER_PKT = 16384; - // Used when the client wants to create a request - char SimTransport::* - GetRequestBuf(size_t reqLen, size_t respLen) - { - // create a new request tag - if (reqLen == 0) - reqLen = SimTransport.MAX_DATA_PER_PKT; - if (respLen == 0) - respLen = SimTransport.MAX_DATA_PER_PKT; - c->client.crt_req_tag = c->client.req_tag_pool.alloc(); - c->client.crt_req_tag->req_msgbuf = new char[reqLen]; - c->client.crt_req_tag->resp_msgbuf = new char[respLen]; - return c->client.crt_req_tag->req_msgbuf; - } +// Used when the client wants to create a request +char SimTransport::* +GetRequestBuf(size_t reqLen, size_t respLen) +{ + // create a new request tag + if (reqLen == 0) + reqLen = SimTransport.MAX_DATA_PER_PKT; + if (respLen == 0) + respLen = SimTransport.MAX_DATA_PER_PKT; + c->client.crt_req_tag = c->client.req_tag_pool.alloc(); + c->client.crt_req_tag->req_msgbuf = new char[reqLen]; + c->client.crt_req_tag->resp_msgbuf = new char[respLen]; + return c->client.crt_req_tag->req_msgbuf; +} - int SimTransport::GetSession(TransportReceiver *src, uint8_t replicaIdx, uint8_t dstRpcIdx) - { - return -1; - } +int SimTransport::GetSession(TransportReceiver *src, uint8_t replicaIdx, uint8_t dstRpcIdx) +{ + return -1; +} - void SimTransport::Run() - { - // If it's client, just busy waiting - if (receiverIdx == -1) { - while(!stop); - } +void SimTransport::Run() +{ + // If it's client, just busy waiting + if (receiverIdx == -1) { + while(!stop); + } - std::cout << "hi\n"; - // If it's server, check the request queue - while(!stop) { - std::cout << "h2 \n"; - if (!c.req_queue.empty()) { - sim_req_tag_t req_tag = c.req_queue.front(); - req_tag.src->ReceiveRequest(req_tag.reqType, req_tag.req_msgbuf, req_tag.req_respbuf); - } + std::cout << "hi\n"; + // If it's server, check the request queue + while(!stop) { + std::cout << "h2 \n"; + if (!c.req_queue.empty()) { + sim_req_tag_t req_tag = c.req_queue.front(); + req_tag.src->ReceiveRequest(req_tag.reqType, req_tag.req_msgbuf, req_tag.req_respbuf); } } +} - void SimTransport::Stop() { - Debug("Stopping transport!"); - stop = true; - } +void SimTransport::Stop() { + Debug("Stopping transport!"); + stop = true; +} - bool SimTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, uint32_t serverIdx, uint8_t dstRpcIdx, size_t msgLen) { - c->client.crt_req_tag->src = src; - c->client.crt_req_tag->reqType = reqType; - c->enqueue_request(c->client.crt_req_tag); - } +bool SimTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, uint32_t serverIdx, uint8_t dstRpcIdx, size_t msgLen) { + c->client.crt_req_tag->src = src; + c->client.crt_req_tag->reqType = reqType; + c->enqueue_request(c->client.crt_req_tag); +} - bool SimTransport::SendRequestToAllServers(TransportReceiver *src, uint8_t reqType, uint8_t dstRpcIdx, size_t msgLen) { - for (int i = 0; i < config.n; i++) +bool SimTransport::SendRequestToAllServers(TransportReceiver *src, uint8_t reqType, uint8_t dstRpcIdx, size_t msgLen) { + for (int i = 0; i < config.n; i++) + { + // skip the sending entity + if (this->receiverIdx == i) + continue; + + if (i == config.n - 1) { - // skip the sending entity - if (this->receiverIdx == i) - continue; - - if (i == config.n - 1) - { - c->client.crt_req_tag->src = src; - c->client.crt_req_tag->reqType = reqType; - c->rpc->enqueue_request(c->client.crt_req_tag); - } - else - { - // need to use different erpc::MsgBuffer per session - auto *rt = c->client.req_tag_pool.alloc(); - rt->req_msgbuf = new char[reqLen]; - rt->resp_msgbuf = new char[respLen]; - rt->reqType = reqType; - rt->src = src; - std::memcpy(rt->req_msgbuf, c->client.crt_req_tag->req_msgbuf, msgLen); - c->rpc->enqueue_request(rt); - } + c->client.crt_req_tag->src = src; + c->client.crt_req_tag->reqType = reqType; + c->rpc->enqueue_request(c->client.crt_req_tag); } - if (this->receiverIdx == config.n - 1) + else { - // TODO: free the current buffer + // need to use different erpc::MsgBuffer per session + auto *rt = c->client.req_tag_pool.alloc(); + rt->req_msgbuf = new char[reqLen]; + rt->resp_msgbuf = new char[respLen]; + rt->reqType = reqType; + rt->src = src; + std::memcpy(rt->req_msgbuf, c->client.crt_req_tag->req_msgbuf, msgLen); + c->rpc->enqueue_request(rt); } } - - bool SimTransport::SendResponse(uint64_t reqHandleIdx, size_t msgLen) { - Debug("Sent response, msgLen = %lu\n", msgLen); - simtransport_response(c, c->client.crt_req_tag); - return true; + if (this->receiverIdx == config.n - 1) + { + // TODO: free the current buffer } +} - bool SimTransport::SendResponse(size_t msgLen) { - Debug("Sent response, msgLen = %lu\n", msgLen); - simtransport_response(c, c->client.crt_req_tag); - return true; - } +bool SimTransport::SendResponse(uint64_t reqHandleIdx, size_t msgLen) { + Debug("Sent response, msgLen = %lu\n", msgLen); + simtransport_response(c, c->client.crt_req_tag); + return true; +} + +bool SimTransport::SendResponse(size_t msgLen) { + Debug("Sent response, msgLen = %lu\n", msgLen); + simtransport_response(c, c->client.crt_req_tag); + return true; } diff --git a/network/simtransport.hpp b/network/simtransport.hpp index 0f9b5c0..a2833f6 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -42,8 +42,6 @@ typedef void (*sim_rpc_cont_func_t)(void *context, void *tag); -namespace network -{ // A tag attached to every request we send; // it is passed to the response function struct sim_req_tag_t @@ -146,5 +144,5 @@ class SimTransport : public Transport // does not get requests, otherwise it is a server from the configuration) int receiverIdx; }; -} + #endif // _NETWORK_SIMTRANSPORT_H_ diff --git a/server/main.cpp b/server/main.cpp index 74f4632..04bfcd5 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -41,7 +41,7 @@ void server_thread_func(StorageServerApp *storageApp, //int ht_ct = boost::thread::hardware_concurrency(); #if IS_DEV cout << "Hi I'm here\n"; - network::SimTransport *transport = new network::SimTransport(config, thread_id); + SimTransport *transport = new SimTransport(config, thread_id); StorageServer *ss = new StorageServer( config, FLAGS_serverIndex, @@ -54,7 +54,7 @@ void server_thread_func(StorageServerApp *storageApp, { PPanic("NUMA library not available."); } - FastTransport::FastTransport *transport = new FastTransport::FastTransport(config, + network::FastTransport *transport = new network::FastTransport(config, local_uri, // FLAGS_numServerThreads, 1, From 8620e33fb24e64ec8638f5f44c6023703b6b3622 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 17:36:10 +0800 Subject: [PATCH 057/138] feat: add namespace back --- network/simtransport.cpp | 2 ++ network/simtransport.hpp | 5 +++-- server/main.cpp | 4 +++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 914570b..6c09128 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -31,6 +31,7 @@ #include #include "network/simtransport.hpp" +namespace network { static void simtransport_response(void *_context, void *_tag) { auto *c = static_cast(_context); @@ -173,3 +174,4 @@ bool SimTransport::SendResponse(size_t msgLen) { simtransport_response(c, c->client.crt_req_tag); return true; } +} \ No newline at end of file diff --git a/network/simtransport.hpp b/network/simtransport.hpp index a2833f6..0faa4c3 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -40,6 +40,7 @@ #define MULTIPLE_ACTIVE_REQUESTS false +namespace network { typedef void (*sim_rpc_cont_func_t)(void *context, void *tag); // A tag attached to every request we send; @@ -111,7 +112,7 @@ class SimTransport : public Transport SimTransport( const network::Configuration &config, uint8_t id); - ~SimTransport(); + virtual ~SimTransport(); void Register(TransportReceiver *receiver, int replicaIdx); void Run(); void Wait(); @@ -144,5 +145,5 @@ class SimTransport : public Transport // does not get requests, otherwise it is a server from the configuration) int receiverIdx; }; - +} #endif // _NETWORK_SIMTRANSPORT_H_ diff --git a/server/main.cpp b/server/main.cpp index 04bfcd5..3f7a8c6 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -41,7 +41,9 @@ void server_thread_func(StorageServerApp *storageApp, //int ht_ct = boost::thread::hardware_concurrency(); #if IS_DEV cout << "Hi I'm here\n"; - SimTransport *transport = new SimTransport(config, thread_id); + network::SimTransport *a; + network::SimTransport::SimTransport *b; + network::SimTransport *transport = new network::SimTransport(config, thread_id); StorageServer *ss = new StorageServer( config, FLAGS_serverIndex, From 16aa2fbab2a419ec64b288bdd6a5ad1ba47aa2c1 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 17:39:18 +0800 Subject: [PATCH 058/138] fix:namespace --- server/main.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/server/main.cpp b/server/main.cpp index 3f7a8c6..a394719 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -42,7 +42,6 @@ void server_thread_func(StorageServerApp *storageApp, #if IS_DEV cout << "Hi I'm here\n"; network::SimTransport *a; - network::SimTransport::SimTransport *b; network::SimTransport *transport = new network::SimTransport(config, thread_id); StorageServer *ss = new StorageServer( config, From f1fa6ead2ac713554cd8b169c89ba1f6059ee2ea Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 17:43:28 +0800 Subject: [PATCH 059/138] fix: namespace --- server/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/main.cpp b/server/main.cpp index a394719..bce2799 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -42,7 +42,7 @@ void server_thread_func(StorageServerApp *storageApp, #if IS_DEV cout << "Hi I'm here\n"; network::SimTransport *a; - network::SimTransport *transport = new network::SimTransport(config, thread_id); + network::SimTransport *transport = new SimTransport(config, thread_id); StorageServer *ss = new StorageServer( config, FLAGS_serverIndex, From f5e27e8149f985ce9750ce24d17cfd08c8136998 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 17:57:33 +0800 Subject: [PATCH 060/138] fix: namespace --- network/simtransport.hpp | 2 +- server/main.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/network/simtransport.hpp b/network/simtransport.hpp index 0faa4c3..4647025 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -110,7 +110,7 @@ class SimTransport : public Transport { public: SimTransport( - const network::Configuration &config, + Configuration &config, uint8_t id); virtual ~SimTransport(); void Register(TransportReceiver *receiver, int replicaIdx); diff --git a/server/main.cpp b/server/main.cpp index bce2799..d4d5249 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -42,7 +42,7 @@ void server_thread_func(StorageServerApp *storageApp, #if IS_DEV cout << "Hi I'm here\n"; network::SimTransport *a; - network::SimTransport *transport = new SimTransport(config, thread_id); + network::SimTransport* transport = new network::SimTransport(config, thread_id); StorageServer *ss = new StorageServer( config, FLAGS_serverIndex, From 7844da86284ed15da366b1c66fe4838e72f304ff Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 18:14:31 +0800 Subject: [PATCH 061/138] fix: linker and deps in Make --- client/Rules.mk | 2 +- network/Rules.mk | 8 +++++--- server/Rules.mk | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/client/Rules.mk b/client/Rules.mk index e0b2f98..d45944d 100644 --- a/client/Rules.mk +++ b/client/Rules.mk @@ -8,6 +8,6 @@ OBJS-swap_space := $(o)swap_space.o $(OBJS-storage_client) OBJS-backing_store := $(o)backing_store.o -$(d)client: $(LIB-fasttransport) $(OBJS-swap_space) $(OBJS-backing_store) $(o)main.o +$(d)client: $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) $(o)main.o BINS += $(d)client diff --git a/network/Rules.mk b/network/Rules.mk index a0675eb..7e9a909 100644 --- a/network/Rules.mk +++ b/network/Rules.mk @@ -1,6 +1,6 @@ d := $(dir $(lastword $(MAKEFILE_LIST))) -FILES=transport.cpp configuration.cpp +FILES=transport.cpp configuration.cpp simtransport.cpp ifeq ($(IS_DEV),0) FILES += fasttransport.cpp echo halo @@ -12,8 +12,10 @@ LIB-configuration := $(o)configuration.o $(LIB-debug) LIB-transport := $(o)transport.o $(LIB-configuration) $(LIB-debug) -LIB-fasttransport := $(LIB-transport) $(LIB-debug) +LIB-simtransport += $(o)simtransport.o + +LIB-transport_implementation := $(LIB-transport) $(LIB-debug) $(LIB-simtransport) ifeq ($(IS_DEV),0) -LIB-fasttransport += $(o)fasttransport.o +LIB-transport_implementation += $(o)fasttransport.o endif \ No newline at end of file diff --git a/server/Rules.mk b/server/Rules.mk index bd35526..6a57dab 100644 --- a/server/Rules.mk +++ b/server/Rules.mk @@ -4,6 +4,6 @@ SRCS += $(addprefix $(d), storage_server.cpp main.cpp) OBJS-storage_server := $(o)storage_server.o $(LIB-debug) $(LIB-configuration) $(LIB-transport) -$(d)server: $(LIB-fasttransport) $(OBJS-storage_server) $(o)main.o +$(d)server: $(LIB-transport_implementation) $(OBJS-storage_server) $(o)main.o BINS += $(d)server From 81bdbf292015db57b73761eed2785d407649aaf6 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 18:23:45 +0800 Subject: [PATCH 062/138] fix: simtransport compile error --- network/simtransport.cpp | 23 ++++++++++++++--------- network/simtransport.hpp | 18 +++++++++--------- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 6c09128..8cc7641 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -29,6 +29,9 @@ **********************************************************************/ #include +#include + +#include "debug/assert.hpp" #include "network/simtransport.hpp" namespace network { @@ -38,8 +41,8 @@ auto *c = static_cast(_context); auto *rt = reinterpret_cast(_tag); Debug("Received respose, reqType = %d", rt->reqType); rt->src->ReceiveResponse(rt->reqType, - reinterpret_cast(rt->resp_msgbuf.buf)); -c->rpc->free_msg_buffer(); + reinterpret_cast(rt->resp_msgbuf)); +c->rpc->free_msg_buffer(rt); c->client.req_tag_pool.free(rt); } @@ -53,9 +56,9 @@ static void simtransport_request(void *_context, void *_tag) // upcall to the app #else // upcall to the app - c->server.receiver->ReceiveRequest(c->cilent.crt_req_tag->reqType, - c->cilent.crt_req_tag->req_msgbuf, - c->cilent.crt_req_tag->resp_msgbuf); + c->server.receiver->ReceiveRequest(c->client.crt_req_tag->reqType, + c->client.crt_req_tag->req_msgbuf, + c->client.crt_req_tag->resp_msgbuf); #endif } @@ -114,7 +117,7 @@ void SimTransport::Run() // If it's server, check the request queue while(!stop) { std::cout << "h2 \n"; - if (!c.req_queue.empty()) { + if (!c->req_queue.empty()) { sim_req_tag_t req_tag = c.req_queue.front(); req_tag.src->ReceiveRequest(req_tag.reqType, req_tag.req_msgbuf, req_tag.req_respbuf); } @@ -129,7 +132,8 @@ void SimTransport::Stop() { bool SimTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, uint32_t serverIdx, uint8_t dstRpcIdx, size_t msgLen) { c->client.crt_req_tag->src = src; c->client.crt_req_tag->reqType = reqType; - c->enqueue_request(c->client.crt_req_tag); + c->rpc->enqueue_request(c->client.crt_req_tag); + return true; } bool SimTransport::SendRequestToAllServers(TransportReceiver *src, uint8_t reqType, uint8_t dstRpcIdx, size_t msgLen) { @@ -149,8 +153,8 @@ bool SimTransport::SendRequestToAllServers(TransportReceiver *src, uint8_t reqTy { // need to use different erpc::MsgBuffer per session auto *rt = c->client.req_tag_pool.alloc(); - rt->req_msgbuf = new char[reqLen]; - rt->resp_msgbuf = new char[respLen]; + rt->req_msgbuf = new char[msgLen]; + rt->resp_msgbuf = new char[SimTransport.MAX_DATA_PER_PKT]; rt->reqType = reqType; rt->src = src; std::memcpy(rt->req_msgbuf, c->client.crt_req_tag->req_msgbuf, msgLen); @@ -161,6 +165,7 @@ bool SimTransport::SendRequestToAllServers(TransportReceiver *src, uint8_t reqTy { // TODO: free the current buffer } + return true; } bool SimTransport::SendResponse(uint64_t reqHandleIdx, size_t msgLen) { diff --git a/network/simtransport.hpp b/network/simtransport.hpp index 4647025..4abd01a 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -56,10 +56,10 @@ struct sim_req_tag_t class SimRpc { - void free_msg_buffer(sim_req_tag_t req_tag) + void free_msg_buffer(sim_req_tag_t* req_tag) { - delete[] req_tag.req_msgbuf; - delete[] req_tag.resp_msgbuf; + delete[] req_tag->req_msgbuf; + delete[] req_tag->resp_msgbuf; } void resize_msg_buffer(char* msgBuf, int newMsgLen) { @@ -70,7 +70,7 @@ class SimRpc { return new char[msgLen]; } - void enqueue_request(sim_req_tag_t req_tag) + void enqueue_request(sim_req_tag_t* req_tag) { req_queue.push_back(req_tag); } @@ -81,9 +81,6 @@ class SimRpc { class SimAppContext { - - static int MAX_DATA_PER_PKT; - public: struct { @@ -108,9 +105,10 @@ class SimAppContext class SimTransport : public Transport { + static int MAX_DATA_PER_PKT; public: SimTransport( - Configuration &config, + const network::Configuration &config, uint8_t id); virtual ~SimTransport(); void Register(TransportReceiver *receiver, int replicaIdx); @@ -144,6 +142,8 @@ class SimTransport : public Transport // Index of the receiver (if -1 then the receiver is a client that // does not get requests, otherwise it is a server from the configuration) int receiverIdx; -}; + + bool stop = false; + }; } #endif // _NETWORK_SIMTRANSPORT_H_ From 640869c0dec763493b10d62ffc30bf9b58205f52 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 18:28:31 +0800 Subject: [PATCH 063/138] fix: simtransport compile error --- network/simtransport.cpp | 21 ++++++++++----------- network/simtransport.hpp | 34 +++++++++++++++++----------------- 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 8cc7641..58d0224 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -29,7 +29,7 @@ **********************************************************************/ #include -#include +#include #include "debug/assert.hpp" #include "network/simtransport.hpp" @@ -66,9 +66,9 @@ SimTransport::SimTransport( const network::Configuration &config, uint8_t id ) -// : config(config), id(id) +: config(config), id(id) { - // context = new SimAppContext(); + context = new SimAppContext(); } SimTransport::~SimTransport() @@ -87,14 +87,13 @@ void SimTransport::Register(TransportReceiver *receiver, int receiverIdx) int SimTransport::MAX_DATA_PER_PKT = 16384; // Used when the client wants to create a request -char SimTransport::* -GetRequestBuf(size_t reqLen, size_t respLen) +char SimTransport::*GetRequestBuf(size_t reqLen, size_t respLen) { // create a new request tag if (reqLen == 0) - reqLen = SimTransport.MAX_DATA_PER_PKT; + reqLen = SimTransport::MAX_DATA_PER_PKT; if (respLen == 0) - respLen = SimTransport.MAX_DATA_PER_PKT; + respLen = SimTransport::MAX_DATA_PER_PKT; c->client.crt_req_tag = c->client.req_tag_pool.alloc(); c->client.crt_req_tag->req_msgbuf = new char[reqLen]; c->client.crt_req_tag->resp_msgbuf = new char[respLen]; @@ -117,9 +116,9 @@ void SimTransport::Run() // If it's server, check the request queue while(!stop) { std::cout << "h2 \n"; - if (!c->req_queue.empty()) { - sim_req_tag_t req_tag = c.req_queue.front(); - req_tag.src->ReceiveRequest(req_tag.reqType, req_tag.req_msgbuf, req_tag.req_respbuf); + if (!c->rpc->req_queue.empty()) { + sim_req_tag_t req_tag = c->rpc->req_queue.front(); + req_tag.src->ReceiveRequest(req_tag.reqType, req_tag.req_msgbuf, req_tag.resp_msgbuf); } } } @@ -154,7 +153,7 @@ bool SimTransport::SendRequestToAllServers(TransportReceiver *src, uint8_t reqTy // need to use different erpc::MsgBuffer per session auto *rt = c->client.req_tag_pool.alloc(); rt->req_msgbuf = new char[msgLen]; - rt->resp_msgbuf = new char[SimTransport.MAX_DATA_PER_PKT]; + rt->resp_msgbuf = new char[SimTransport::MAX_DATA_PER_PKT]; rt->reqType = reqType; rt->src = src; std::memcpy(rt->req_msgbuf, c->client.crt_req_tag->req_msgbuf, msgLen); diff --git a/network/simtransport.hpp b/network/simtransport.hpp index 4abd01a..966aedc 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -55,28 +55,28 @@ struct sim_req_tag_t }; class SimRpc { + public: + void free_msg_buffer(sim_req_tag_t* req_tag) + { + delete[] req_tag->req_msgbuf; + delete[] req_tag->resp_msgbuf; + } - void free_msg_buffer(sim_req_tag_t* req_tag) - { - delete[] req_tag->req_msgbuf; - delete[] req_tag->resp_msgbuf; - } - - void resize_msg_buffer(char* msgBuf, int newMsgLen) { - msgBuf = new char[newMsgLen]; - } + void resize_msg_buffer(char* msgBuf, int newMsgLen) { + msgBuf = new char[newMsgLen]; + } - char* alloc_msg_buffer(int msgLen) { - return new char[msgLen]; - } + char* alloc_msg_buffer(int msgLen) { + return new char[msgLen]; + } - void enqueue_request(sim_req_tag_t* req_tag) - { - req_queue.push_back(req_tag); - } + void enqueue_request(sim_req_tag_t* req_tag) + { + req_queue.push_back(req_tag); + } private: - std::deque req_queue; + std::deque req_queue; }; class SimAppContext From 59331a69f35e27e367b028826a4d6c7885030429 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 18:31:34 +0800 Subject: [PATCH 064/138] fix: simtransport compile error --- network/simtransport.cpp | 4 ++-- network/simtransport.hpp | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 58d0224..ef63108 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -68,7 +68,7 @@ SimTransport::SimTransport( ) : config(config), id(id) { - context = new SimAppContext(); + c = new SimAppContext(); } SimTransport::~SimTransport() @@ -117,7 +117,7 @@ void SimTransport::Run() while(!stop) { std::cout << "h2 \n"; if (!c->rpc->req_queue.empty()) { - sim_req_tag_t req_tag = c->rpc->req_queue.front(); + sim_req_tag_t* req_tag = c->rpc->req_queue.front(); req_tag.src->ReceiveRequest(req_tag.reqType, req_tag.req_msgbuf, req_tag.resp_msgbuf); } } diff --git a/network/simtransport.hpp b/network/simtransport.hpp index 966aedc..3301167 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -75,7 +75,6 @@ class SimRpc { req_queue.push_back(req_tag); } - private: std::deque req_queue; }; @@ -105,8 +104,8 @@ class SimAppContext class SimTransport : public Transport { - static int MAX_DATA_PER_PKT; public: + static int MAX_DATA_PER_PKT; SimTransport( const network::Configuration &config, uint8_t id); From 799be0dad699065cb251f7ddc82f6e2d711ff481 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 18:36:25 +0800 Subject: [PATCH 065/138] fix: simtransport compile error --- network/simtransport.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index ef63108..fc2ca62 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -118,7 +118,7 @@ void SimTransport::Run() std::cout << "h2 \n"; if (!c->rpc->req_queue.empty()) { sim_req_tag_t* req_tag = c->rpc->req_queue.front(); - req_tag.src->ReceiveRequest(req_tag.reqType, req_tag.req_msgbuf, req_tag.resp_msgbuf); + req_tag->src->ReceiveRequest(req_tag->reqType, req_tag->req_msgbuf, req_tag->resp_msgbuf); } } } From b6833cc9711b2e9a048133e23898973b5380cbd4 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 18:41:22 +0800 Subject: [PATCH 066/138] fix: simtransport compile error --- network/simtransport.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index fc2ca62..59baaa5 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -87,7 +87,7 @@ void SimTransport::Register(TransportReceiver *receiver, int receiverIdx) int SimTransport::MAX_DATA_PER_PKT = 16384; // Used when the client wants to create a request -char SimTransport::*GetRequestBuf(size_t reqLen, size_t respLen) +char *SimTransport::GetRequestBuf(size_t reqLen, size_t respLen) { // create a new request tag if (reqLen == 0) From e3d7e3442f9645c8adfaa4ee8b1f83acd16e3f8e Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 18:43:25 +0800 Subject: [PATCH 067/138] refactor: remove debug --- server/main.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/server/main.cpp b/server/main.cpp index d4d5249..87f761a 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -11,7 +11,6 @@ #include "network/transport.hpp" #if IS_DEV -#warning ooooo #include "network/simtransport.hpp" #else #include "network/fasttransport.hpp" @@ -40,15 +39,13 @@ void server_thread_func(StorageServerApp *storageApp, // TODO: get rid of the hardcoded number of request types //int ht_ct = boost::thread::hardware_concurrency(); #if IS_DEV - cout << "Hi I'm here\n"; - network::SimTransport *a; network::SimTransport* transport = new network::SimTransport(config, thread_id); StorageServer *ss = new StorageServer( config, FLAGS_serverIndex, transport, storageApp); - // transport->Run(); + transport->Run(); #else if (numa_available() == -1) From 82bf9947ffc47dc55a95f5cb88571f29b59089f5 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 19:22:11 +0800 Subject: [PATCH 068/138] fix: init SimRpc --- network/simtransport.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/network/simtransport.hpp b/network/simtransport.hpp index 3301167..c320d8c 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -99,7 +99,7 @@ class SimAppContext } server; // common to both servers and clients - SimRpc *rpc = nullptr; + SimRpc *rpc = new SimRpc(); }; class SimTransport : public Transport From 301d0f259d18c72f0b8ecbc6c170d54a1db35146 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 19:37:16 +0800 Subject: [PATCH 069/138] refactor: remove print --- network/simtransport.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 59baaa5..6df27b9 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -112,10 +112,8 @@ void SimTransport::Run() while(!stop); } - std::cout << "hi\n"; // If it's server, check the request queue while(!stop) { - std::cout << "h2 \n"; if (!c->rpc->req_queue.empty()) { sim_req_tag_t* req_tag = c->rpc->req_queue.front(); req_tag->src->ReceiveRequest(req_tag->reqType, req_tag->req_msgbuf, req_tag->resp_msgbuf); From 470e244318c2e2a4b50860048705b9839261fc36 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 20:14:23 +0800 Subject: [PATCH 070/138] feat: initialise client --- client/main.cpp | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/client/main.cpp b/client/main.cpp index 9f64bc7..907c872 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -22,20 +22,41 @@ using namespace std; -// Implmentation of the client's stub implementation -class StorageClientStub +void client_thread_func(StorageServerApp *storageApp, + network::Configuration config) { -}; +#if IS_DEV + network::SimTransport *transport = new network::SimTransport(config, 0); + StorageClient *sc = StorageClient(config, transport); + string request; + nodeid_t result = GetNodeId(0, 0, &request); + cout << "SUCCESS \n"; + cout << result; + transport->Run(); -void client_thread_func() -{ - +#else +#endif } int main(int argc, char **argv) { - - client_thread_func(); + gflags::ParseCommandLineFlags(&argc, &argv, true); + + if (FLAGS_configFile == "") + { + fprintf(stderr, "option --configFile is required\n"); + return EXIT_FAILURE; + } + + // Load configuration + std::ifstream configStream(FLAGS_configFile); + if (configStream.fail()) + { + fprintf(stderr, "unable to read configuration file: %s\n", FLAGS_configFile.c_str()); + } + network::Configuration config(configStream); + + client_thread_func(, config); return 0; } From 4937d25b14028cf451bc7794d7162a16912bf318 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 20:55:18 +0800 Subject: [PATCH 071/138] fix: initialise client --- client/main.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/client/main.cpp b/client/main.cpp index 907c872..669371e 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -22,8 +22,7 @@ using namespace std; -void client_thread_func(StorageServerApp *storageApp, - network::Configuration config) +void client_thread_func(network::Configuration &config) { #if IS_DEV network::SimTransport *transport = new network::SimTransport(config, 0); @@ -31,7 +30,7 @@ void client_thread_func(StorageServerApp *storageApp, string request; nodeid_t result = GetNodeId(0, 0, &request); cout << "SUCCESS \n"; - cout << result; + cout << result; transport->Run(); #else @@ -56,7 +55,7 @@ int main(int argc, char **argv) } network::Configuration config(configStream); - client_thread_func(, config); + client_thread_func(config); return 0; } From 5b827dce9aafab4dece8fef8db112dd925bb4c60 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 21:11:09 +0800 Subject: [PATCH 072/138] fix: initialise client --- client/main.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/client/main.cpp b/client/main.cpp index 669371e..5107c5a 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -26,11 +26,10 @@ void client_thread_func(network::Configuration &config) { #if IS_DEV network::SimTransport *transport = new network::SimTransport(config, 0); - StorageClient *sc = StorageClient(config, transport); + StorageClient *sc = new StorageClient(config, transport); string request; nodeid_t result = GetNodeId(0, 0, &request); cout << "SUCCESS \n"; - cout << result; transport->Run(); #else From 27e83fa7a198abc421e3a2922f5ca9f368411804 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 21:26:56 +0800 Subject: [PATCH 073/138] fix: initialise client --- client/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/main.cpp b/client/main.cpp index 5107c5a..da7703c 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -28,7 +28,7 @@ void client_thread_func(network::Configuration &config) network::SimTransport *transport = new network::SimTransport(config, 0); StorageClient *sc = new StorageClient(config, transport); string request; - nodeid_t result = GetNodeId(0, 0, &request); + nodeid_t result = StorageClient::GetNodeId(0, 0, &request); cout << "SUCCESS \n"; transport->Run(); From f08f37ee14e38cf50ef57cc16bec05e6e5c1f08e Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 21:39:48 +0800 Subject: [PATCH 074/138] fix: initialise client --- client/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/main.cpp b/client/main.cpp index da7703c..54e06d2 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -28,7 +28,7 @@ void client_thread_func(network::Configuration &config) network::SimTransport *transport = new network::SimTransport(config, 0); StorageClient *sc = new StorageClient(config, transport); string request; - nodeid_t result = StorageClient::GetNodeId(0, 0, &request); + nodeid_t result = StorageClient::GetNodeId(0, 0, request); cout << "SUCCESS \n"; transport->Run(); From 5d5a67bd5c910fb1d8df38a719d99baf945cecf1 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 22:16:34 +0800 Subject: [PATCH 075/138] fix: initialise client --- client/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/main.cpp b/client/main.cpp index 54e06d2..289cbc0 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -28,7 +28,7 @@ void client_thread_func(network::Configuration &config) network::SimTransport *transport = new network::SimTransport(config, 0); StorageClient *sc = new StorageClient(config, transport); string request; - nodeid_t result = StorageClient::GetNodeId(0, 0, request); + nodeid_t result = sc->GetNodeId(0, 0, request); cout << "SUCCESS \n"; transport->Run(); From fddb0359a08bb935e6b7f20c0e40ff4e2f19ed04 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 22:19:23 +0800 Subject: [PATCH 076/138] fix: initialise client --- client/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/main.cpp b/client/main.cpp index 289cbc0..b812ac5 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -29,7 +29,7 @@ void client_thread_func(network::Configuration &config) StorageClient *sc = new StorageClient(config, transport); string request; nodeid_t result = sc->GetNodeId(0, 0, request); - cout << "SUCCESS \n"; + cout << "SUCCESS" << result.nodeIdx ; transport->Run(); #else From c46c2b9cdcd74d257a3e77ff303052e2f746bcd8 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 23:03:55 +0800 Subject: [PATCH 077/138] fix: callback server client --- client/main.cpp | 4 +++- network/simtransport.cpp | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/client/main.cpp b/client/main.cpp index b812ac5..3c8d6bf 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -29,7 +29,9 @@ void client_thread_func(network::Configuration &config) StorageClient *sc = new StorageClient(config, transport); string request; nodeid_t result = sc->GetNodeId(0, 0, request); - cout << "SUCCESS" << result.nodeIdx ; + cout << "SUCCESS"; + + cout << result.nodeIdx; transport->Run(); #else diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 6df27b9..1a48759 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -115,6 +115,7 @@ void SimTransport::Run() // If it's server, check the request queue while(!stop) { if (!c->rpc->req_queue.empty()) { + cout << "There's a message"; sim_req_tag_t* req_tag = c->rpc->req_queue.front(); req_tag->src->ReceiveRequest(req_tag->reqType, req_tag->req_msgbuf, req_tag->resp_msgbuf); } @@ -130,6 +131,7 @@ bool SimTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, c->client.crt_req_tag->src = src; c->client.crt_req_tag->reqType = reqType; c->rpc->enqueue_request(c->client.crt_req_tag); + cout << "Request enqueued!"; return true; } From ef30bb97673f685fb0a4d71a3e1dd0ab187e197a Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 23:13:58 +0800 Subject: [PATCH 078/138] fix: callback server client --- network/simtransport.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 1a48759..cf2f97e 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -115,7 +115,7 @@ void SimTransport::Run() // If it's server, check the request queue while(!stop) { if (!c->rpc->req_queue.empty()) { - cout << "There's a message"; + std::cout << "There's a message"; sim_req_tag_t* req_tag = c->rpc->req_queue.front(); req_tag->src->ReceiveRequest(req_tag->reqType, req_tag->req_msgbuf, req_tag->resp_msgbuf); } @@ -131,7 +131,7 @@ bool SimTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, c->client.crt_req_tag->src = src; c->client.crt_req_tag->reqType = reqType; c->rpc->enqueue_request(c->client.crt_req_tag); - cout << "Request enqueued!"; + std::cout << "Request enqueued!"; return true; } From 0af0eaaa93385d924c11c2a045d56f2ab4828cf0 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 23:17:44 +0800 Subject: [PATCH 079/138] fix: callback server client --- client/storage_client.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/client/storage_client.cpp b/client/storage_client.cpp index 4b4c2cb..2842b48 100644 --- a/client/storage_client.cpp +++ b/client/storage_client.cpp @@ -55,6 +55,7 @@ nodeid_t StorageClient::GetNodeId(uint8_t coreIdx, getNodeIdReqType, serverIdx, coreIdx, sizeof(nodeid_request_t)); + std::cout << "Sent to server"; this->nodeIdReply.serverIdx = serverIdx; this->nodeIdReply.coreIdx = coreIdx; return this->nodeIdReply; From 1cc0a96edb4f66dbb3d7d78d647ff1b373e1415b Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 23:23:53 +0800 Subject: [PATCH 080/138] fix: callback server client --- client/storage_client.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/client/storage_client.cpp b/client/storage_client.cpp index 2842b48..f556f6b 100644 --- a/client/storage_client.cpp +++ b/client/storage_client.cpp @@ -7,6 +7,7 @@ //#include //#include +#include #include using namespace std; From e626da8d77707d4d5e3d0dae39d7e72dc08fba50 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 23:25:13 +0800 Subject: [PATCH 081/138] fix: callback server client --- client/main.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/client/main.cpp b/client/main.cpp index 3c8d6bf..a766936 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -30,10 +30,8 @@ void client_thread_func(network::Configuration &config) string request; nodeid_t result = sc->GetNodeId(0, 0, request); cout << "SUCCESS"; - cout << result.nodeIdx; transport->Run(); - #else #endif } From 832f05182c677b4a410d370c4bc86b16fb59b1be Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 23:34:38 +0800 Subject: [PATCH 082/138] fix: callback server client --- network/simtransport.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index cf2f97e..ef8f060 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -107,8 +107,11 @@ int SimTransport::GetSession(TransportReceiver *src, uint8_t replicaIdx, uint8_t void SimTransport::Run() { + std::cout << "running!"; + // If it's client, just busy waiting if (receiverIdx == -1) { + std::cout << "client!"; while(!stop); } From 3856c47595d3ece8de69f06563db867fcf62d042 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 23:37:55 +0800 Subject: [PATCH 083/138] fix: callback server client --- client/main.cpp | 2 +- network/simtransport.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/client/main.cpp b/client/main.cpp index a766936..c57028f 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -29,7 +29,7 @@ void client_thread_func(network::Configuration &config) StorageClient *sc = new StorageClient(config, transport); string request; nodeid_t result = sc->GetNodeId(0, 0, request); - cout << "SUCCESS"; + cout << "SUCCESS\n"; cout << result.nodeIdx; transport->Run(); #else diff --git a/network/simtransport.cpp b/network/simtransport.cpp index ef8f060..2c4cf23 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -107,11 +107,11 @@ int SimTransport::GetSession(TransportReceiver *src, uint8_t replicaIdx, uint8_t void SimTransport::Run() { - std::cout << "running!"; + std::cout << "running!\n"; // If it's client, just busy waiting if (receiverIdx == -1) { - std::cout << "client!"; + std::cout << "client!\n"; while(!stop); } From 0cd248b0d1b8a48fd6201c77cb32f6f3935a25e4 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Thu, 21 Oct 2021 23:43:46 +0800 Subject: [PATCH 084/138] refactor: remove print --- client/main.cpp | 2 +- client/storage_client.cpp | 2 -- network/simtransport.cpp | 4 ---- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/client/main.cpp b/client/main.cpp index c57028f..5d97dd9 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -30,7 +30,7 @@ void client_thread_func(network::Configuration &config) string request; nodeid_t result = sc->GetNodeId(0, 0, request); cout << "SUCCESS\n"; - cout << result.nodeIdx; + cout << result.nodeIdx << "\n"; transport->Run(); #else #endif diff --git a/client/storage_client.cpp b/client/storage_client.cpp index f556f6b..4b4c2cb 100644 --- a/client/storage_client.cpp +++ b/client/storage_client.cpp @@ -7,7 +7,6 @@ //#include //#include -#include #include using namespace std; @@ -56,7 +55,6 @@ nodeid_t StorageClient::GetNodeId(uint8_t coreIdx, getNodeIdReqType, serverIdx, coreIdx, sizeof(nodeid_request_t)); - std::cout << "Sent to server"; this->nodeIdReply.serverIdx = serverIdx; this->nodeIdReply.coreIdx = coreIdx; return this->nodeIdReply; diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 2c4cf23..2daa8c6 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -107,18 +107,15 @@ int SimTransport::GetSession(TransportReceiver *src, uint8_t replicaIdx, uint8_t void SimTransport::Run() { - std::cout << "running!\n"; // If it's client, just busy waiting if (receiverIdx == -1) { - std::cout << "client!\n"; while(!stop); } // If it's server, check the request queue while(!stop) { if (!c->rpc->req_queue.empty()) { - std::cout << "There's a message"; sim_req_tag_t* req_tag = c->rpc->req_queue.front(); req_tag->src->ReceiveRequest(req_tag->reqType, req_tag->req_msgbuf, req_tag->resp_msgbuf); } @@ -134,7 +131,6 @@ bool SimTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, c->client.crt_req_tag->src = src; c->client.crt_req_tag->reqType = reqType; c->rpc->enqueue_request(c->client.crt_req_tag); - std::cout << "Request enqueued!"; return true; } From 73a2de5d17854adb4b40fe0a2ada091a2b850fb8 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 01:16:33 +0800 Subject: [PATCH 085/138] feat: move the compiler directive includion in the compile level --- client/Rules.mk | 4 ++++ client/main.cpp | 15 --------------- network/Rules.mk | 12 ++++++------ network/simtransport.cpp | 11 ++++++----- server/Rules.mk | 4 ++++ server/main.cpp | 16 ---------------- 6 files changed, 20 insertions(+), 42 deletions(-) diff --git a/client/Rules.mk b/client/Rules.mk index d45944d..34aa639 100644 --- a/client/Rules.mk +++ b/client/Rules.mk @@ -1,6 +1,10 @@ d := $(dir $(lastword $(MAKEFILE_LIST))) +ifeq ($(IS_DEV),0) SRCS += $(addprefix $(d), main.cpp swap_space.cpp backing_store.cpp storage_client.cpp) +else +SRCS += $(addprefix $(d), swap_space.cpp backing_store.cpp storage_client.cpp) +endif OBJS-storage_client := $(o)storage_client.o diff --git a/client/main.cpp b/client/main.cpp index 5d97dd9..0802342 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -8,12 +8,7 @@ #include "network/configuration.hpp" #include "network/transport.hpp" - -#if IS_DEV -#include "network/simtransport.hpp" -#else #include "network/fasttransport.hpp" -#endif #include "common/gflags.hpp" #include "storage_client.hpp" @@ -24,16 +19,6 @@ using namespace std; void client_thread_func(network::Configuration &config) { -#if IS_DEV - network::SimTransport *transport = new network::SimTransport(config, 0); - StorageClient *sc = new StorageClient(config, transport); - string request; - nodeid_t result = sc->GetNodeId(0, 0, request); - cout << "SUCCESS\n"; - cout << result.nodeIdx << "\n"; - transport->Run(); -#else -#endif } int main(int argc, char **argv) diff --git a/network/Rules.mk b/network/Rules.mk index 7e9a909..571ec46 100644 --- a/network/Rules.mk +++ b/network/Rules.mk @@ -1,9 +1,9 @@ d := $(dir $(lastword $(MAKEFILE_LIST))) -FILES=transport.cpp configuration.cpp simtransport.cpp ifeq ($(IS_DEV),0) -FILES += fasttransport.cpp -echo halo +FILES = transport.cpp configuration.cpp simtransport.cpp fasttransport.cpp +else +FILES=transport.cpp configuration.cpp simtransport.cpp endif SRCS += $(addprefix $(d), $(FILES)) @@ -14,8 +14,8 @@ LIB-transport := $(o)transport.o $(LIB-configuration) $(LIB-debug) LIB-simtransport += $(o)simtransport.o -LIB-transport_implementation := $(LIB-transport) $(LIB-debug) $(LIB-simtransport) - ifeq ($(IS_DEV),0) -LIB-transport_implementation += $(o)fasttransport.o +LIB-transport_implementation := $(LIB-transport) $(LIB-debug) $(LIB-simtransport) $(o)fasttransport.o +else +LIB-transport_implementation := $(LIB-transport) $(LIB-debug) $(LIB-simtransport) endif \ No newline at end of file diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 2daa8c6..3118111 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -108,10 +108,10 @@ int SimTransport::GetSession(TransportReceiver *src, uint8_t replicaIdx, uint8_t void SimTransport::Run() { - // If it's client, just busy waiting - if (receiverIdx == -1) { - while(!stop); - } + // // If it's client, just busy waiting + // if (receiverIdx == -1) { + // while(!stop); + // } // If it's server, check the request queue while(!stop) { @@ -131,6 +131,7 @@ bool SimTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, c->client.crt_req_tag->src = src; c->client.crt_req_tag->reqType = reqType; c->rpc->enqueue_request(c->client.crt_req_tag); + while (client is blocked) {do the above} return true; } @@ -172,7 +173,7 @@ bool SimTransport::SendResponse(uint64_t reqHandleIdx, size_t msgLen) { return true; } -bool SimTransport::SendResponse(size_t msgLen) { +bool SimTransport::SendResponse(size_t msgLen, struct original_reúest) { Debug("Sent response, msgLen = %lu\n", msgLen); simtransport_response(c, c->client.crt_req_tag); return true; diff --git a/server/Rules.mk b/server/Rules.mk index 6a57dab..9b7099d 100644 --- a/server/Rules.mk +++ b/server/Rules.mk @@ -1,6 +1,10 @@ d := $(dir $(lastword $(MAKEFILE_LIST))) +ifeq ($(IS_DEV),0) SRCS += $(addprefix $(d), storage_server.cpp main.cpp) +else +SRCS += $(addprefix $(d), storage_server.cpp) +endif OBJS-storage_server := $(o)storage_server.o $(LIB-debug) $(LIB-configuration) $(LIB-transport) diff --git a/server/main.cpp b/server/main.cpp index 87f761a..380dc74 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -9,12 +9,7 @@ #include "network/configuration.hpp" #include "network/transport.hpp" - -#if IS_DEV -#include "network/simtransport.hpp" -#else #include "network/fasttransport.hpp" -#endif #include "common/gflags.hpp" #include "storage_server.hpp" @@ -38,16 +33,6 @@ void server_thread_func(StorageServerApp *storageApp, // for now assume it's round robin // TODO: get rid of the hardcoded number of request types //int ht_ct = boost::thread::hardware_concurrency(); -#if IS_DEV - network::SimTransport* transport = new network::SimTransport(config, thread_id); - StorageServer *ss = new StorageServer( - config, - FLAGS_serverIndex, - transport, - storageApp); - transport->Run(); - -#else if (numa_available() == -1) { PPanic("NUMA library not available."); @@ -71,7 +56,6 @@ void server_thread_func(StorageServerApp *storageApp, ); transport->Run(); -#endif } //void signal_handler( int signal_num ) { From e2f17a9eebe8fbaef8944b7eee047c07946c41bd Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 01:35:33 +0800 Subject: [PATCH 086/138] feat: add test driver and Makefile --- test/Rules.mk | 11 ++++++++++ test/simtransport_test.cpp | 45 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 test/Rules.mk create mode 100644 test/simtransport_test.cpp diff --git a/test/Rules.mk b/test/Rules.mk new file mode 100644 index 0000000..219c5f9 --- /dev/null +++ b/test/Rules.mk @@ -0,0 +1,11 @@ +d := $(dir $(lastword $(MAKEFILE_LIST))) + +ifeq ($(IS_DEV),1) +FILES=simtransport_test.cpp +endif + +SRCS += $(addprefix $(d), $(FILES)) + +ifeq ($(IS_DEV),1) +LIB-test := $(o)simtransport_test.o +endif \ No newline at end of file diff --git a/test/simtransport_test.cpp b/test/simtransport_test.cpp new file mode 100644 index 0000000..dec4e21 --- /dev/null +++ b/test/simtransport_test.cpp @@ -0,0 +1,45 @@ +// -*- mode: c++; c-file-style: "k&r"; c-basic-offset: 4 -*- +#include +#include +#include +#include +#include +#include + +#include "network/configuration.hpp" +#include "network/transport.hpp" +#include "network/simtransport.hpp" + +#include "common/gflags.hpp" +#include "storage_client.hpp" + +#include + +using namespace std; + +void client_thread_func(network::Configuration &config) +{ +} + +int main(int argc, char **argv) +{ + gflags::ParseCommandLineFlags(&argc, &argv, true); + + if (FLAGS_configFile == "") + { + fprintf(stderr, "option --configFile is required\n"); + return EXIT_FAILURE; + } + + // Load configuration + std::ifstream configStream(FLAGS_configFile); + if (configStream.fail()) + { + fprintf(stderr, "unable to read configuration file: %s\n", FLAGS_configFile.c_str()); + } + network::Configuration config(configStream); + + client_thread_func(config); + + return 0; +} From c2251b4be74b9fc1575e6fb6369a2ee56c6ff98d Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 01:41:09 +0800 Subject: [PATCH 087/138] fix: comment --- network/simtransport.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 3118111..d7da4af 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -107,12 +107,6 @@ int SimTransport::GetSession(TransportReceiver *src, uint8_t replicaIdx, uint8_t void SimTransport::Run() { - - // // If it's client, just busy waiting - // if (receiverIdx == -1) { - // while(!stop); - // } - // If it's server, check the request queue while(!stop) { if (!c->rpc->req_queue.empty()) { @@ -131,7 +125,7 @@ bool SimTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, c->client.crt_req_tag->src = src; c->client.crt_req_tag->reqType = reqType; c->rpc->enqueue_request(c->client.crt_req_tag); - while (client is blocked) {do the above} + // while (client is blocked) {do the above} return true; } From bacfa6b39560cf9dc10f5003c0b7be67a711e35b Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 01:44:56 +0800 Subject: [PATCH 088/138] fix: typo --- network/simtransport.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index d7da4af..0f2d85a 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -167,9 +167,9 @@ bool SimTransport::SendResponse(uint64_t reqHandleIdx, size_t msgLen) { return true; } -bool SimTransport::SendResponse(size_t msgLen, struct original_reúest) { +bool SimTransport::SendResponse(size_t msgLen, struct original_request) { Debug("Sent response, msgLen = %lu\n", msgLen); simtransport_response(c, c->client.crt_req_tag); return true; } -} \ No newline at end of file +} From e99e927fafcd55ec7267d2f892203ffaff929ace Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 01:45:43 +0800 Subject: [PATCH 089/138] fix: variable --- network/simtransport.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 0f2d85a..bd459f8 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -167,7 +167,7 @@ bool SimTransport::SendResponse(uint64_t reqHandleIdx, size_t msgLen) { return true; } -bool SimTransport::SendResponse(size_t msgLen, struct original_request) { +bool SimTransport::SendResponse(size_t msgLen) { Debug("Sent response, msgLen = %lu\n", msgLen); simtransport_response(c, c->client.crt_req_tag); return true; From 23f558882e785d3af8ec7a7274282bb8d797852e Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 01:47:27 +0800 Subject: [PATCH 090/138] feat: add conditional directive to linker of clients and main object --- client/Rules.mk | 4 ++++ server/Rules.mk | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/client/Rules.mk b/client/Rules.mk index 34aa639..48ed06b 100644 --- a/client/Rules.mk +++ b/client/Rules.mk @@ -12,6 +12,10 @@ OBJS-swap_space := $(o)swap_space.o $(OBJS-storage_client) OBJS-backing_store := $(o)backing_store.o +ifeq ($(IS_DEV),0) $(d)client: $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) $(o)main.o +else +$(d)client: $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) +endif BINS += $(d)client diff --git a/server/Rules.mk b/server/Rules.mk index 9b7099d..896ef06 100644 --- a/server/Rules.mk +++ b/server/Rules.mk @@ -8,6 +8,10 @@ endif OBJS-storage_server := $(o)storage_server.o $(LIB-debug) $(LIB-configuration) $(LIB-transport) +ifeq ($(IS_DEV),0) $(d)server: $(LIB-transport_implementation) $(OBJS-storage_server) $(o)main.o +else +$(d)server: $(LIB-transport_implementation) $(OBJS-storage_server) +endif BINS += $(d)server From d52d0d99aeacf2944abf98b490d520e266f6f97c Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 01:49:04 +0800 Subject: [PATCH 091/138] feat: add conditional directive to linker of clients and main object --- client/Rules.mk | 4 ++-- server/Rules.mk | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/client/Rules.mk b/client/Rules.mk index 48ed06b..3c6abbf 100644 --- a/client/Rules.mk +++ b/client/Rules.mk @@ -13,9 +13,9 @@ OBJS-swap_space := $(o)swap_space.o $(OBJS-storage_client) OBJS-backing_store := $(o)backing_store.o ifeq ($(IS_DEV),0) -$(d)client: $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) $(o)main.o +$(d)client := $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) $(o)main.o else -$(d)client: $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) +$(d)client := $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) endif BINS += $(d)client diff --git a/server/Rules.mk b/server/Rules.mk index 896ef06..f4cd6d2 100644 --- a/server/Rules.mk +++ b/server/Rules.mk @@ -9,9 +9,9 @@ endif OBJS-storage_server := $(o)storage_server.o $(LIB-debug) $(LIB-configuration) $(LIB-transport) ifeq ($(IS_DEV),0) -$(d)server: $(LIB-transport_implementation) $(OBJS-storage_server) $(o)main.o +$(d)server := $(LIB-transport_implementation) $(OBJS-storage_server) $(o)main.o else -$(d)server: $(LIB-transport_implementation) $(OBJS-storage_server) +$(d)server := $(LIB-transport_implementation) $(OBJS-storage_server) endif BINS += $(d)server From d6ca7c55f541f56638d6efa6c6131efd9fc42ea2 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 02:14:09 +0800 Subject: [PATCH 092/138] feat: remove client and server from binary --- client/Rules.mk | 2 +- server/Rules.mk | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/client/Rules.mk b/client/Rules.mk index 3c6abbf..972e4a7 100644 --- a/client/Rules.mk +++ b/client/Rules.mk @@ -14,8 +14,8 @@ OBJS-backing_store := $(o)backing_store.o ifeq ($(IS_DEV),0) $(d)client := $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) $(o)main.o +BINS += $(d)client else $(d)client := $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) endif -BINS += $(d)client diff --git a/server/Rules.mk b/server/Rules.mk index f4cd6d2..3ab7e4e 100644 --- a/server/Rules.mk +++ b/server/Rules.mk @@ -10,8 +10,7 @@ OBJS-storage_server := $(o)storage_server.o $(LIB-debug) $(LIB-configuration) $ ifeq ($(IS_DEV),0) $(d)server := $(LIB-transport_implementation) $(OBJS-storage_server) $(o)main.o +BINS += $(d)server else $(d)server := $(LIB-transport_implementation) $(OBJS-storage_server) endif - -BINS += $(d)server From 32517e08f690be13a3c3d34faf84984f6c1ebebe Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 02:19:58 +0800 Subject: [PATCH 093/138] feat: add test bin --- test/Rules.mk | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/test/Rules.mk b/test/Rules.mk index 219c5f9..0f37546 100644 --- a/test/Rules.mk +++ b/test/Rules.mk @@ -4,8 +4,17 @@ ifeq ($(IS_DEV),1) FILES=simtransport_test.cpp endif -SRCS += $(addprefix $(d), $(FILES)) +TEST_SRCS += $(addprefix $(d), $(FILES)) ifeq ($(IS_DEV),1) -LIB-test := $(o)simtransport_test.o -endif \ No newline at end of file +GTEST_SRCS += $(d)simtransport_test +endif +$(d)simtransport_test: $(o)simtransport_test.o $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) $(LIB-transport) $(LIB-debug) $(LIB-simtransport) $(OBJS-storage_server) \ + $(GTEST_MAIN) + +# $(o)simtransport_test.o \ +# $(OBJS-spec-replica) $(OBJS-spec-client) \ +# $(LIB-simtransport) \ + $(GTEST_MAIN) + +TEST_BINS += $(d)simtransport_test From ae3fa6fe65f1c412cce07f3c762493025e38dd3c Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 02:23:16 +0800 Subject: [PATCH 094/138] feat: debug Makefile --- network/Rules.mk | 2 ++ test/Rules.mk | 2 ++ 2 files changed, 4 insertions(+) diff --git a/network/Rules.mk b/network/Rules.mk index 571ec46..a490c7b 100644 --- a/network/Rules.mk +++ b/network/Rules.mk @@ -6,6 +6,8 @@ else FILES=transport.cpp configuration.cpp simtransport.cpp endif +echo network + SRCS += $(addprefix $(d), $(FILES)) LIB-configuration := $(o)configuration.o $(LIB-debug) diff --git a/test/Rules.mk b/test/Rules.mk index 0f37546..6f0e922 100644 --- a/test/Rules.mk +++ b/test/Rules.mk @@ -4,6 +4,8 @@ ifeq ($(IS_DEV),1) FILES=simtransport_test.cpp endif +echo heeeeeelo + TEST_SRCS += $(addprefix $(d), $(FILES)) ifeq ($(IS_DEV),1) From 94057c4fd9c38cd8bd8e084c2bd8fa899e35b158 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 02:24:28 +0800 Subject: [PATCH 095/138] feat: debug Makefile --- network/Rules.mk | 2 +- test/Rules.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/network/Rules.mk b/network/Rules.mk index a490c7b..cee2336 100644 --- a/network/Rules.mk +++ b/network/Rules.mk @@ -6,7 +6,7 @@ else FILES=transport.cpp configuration.cpp simtransport.cpp endif -echo network +@echo "network" SRCS += $(addprefix $(d), $(FILES)) diff --git a/test/Rules.mk b/test/Rules.mk index 6f0e922..1c530e1 100644 --- a/test/Rules.mk +++ b/test/Rules.mk @@ -4,7 +4,7 @@ ifeq ($(IS_DEV),1) FILES=simtransport_test.cpp endif -echo heeeeeelo +@echo "test" TEST_SRCS += $(addprefix $(d), $(FILES)) From d39264f1263eeb74a05bc0768c03fc3331cb314c Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 02:25:52 +0800 Subject: [PATCH 096/138] feat: debug Makefile --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 921342f..07a47d5 100644 --- a/Makefile +++ b/Makefile @@ -283,6 +283,7 @@ $(TEST_BINS:%=gdb-%): gdb-%: % $(call trace,GDB,$<,CK_FORK=no gdb $<) .PHONY: test +echo $(TEST_BINS) test: $(TEST_BINS:%=run-%) .PHONY: check check: test From 73e3871280c625ac2958dfc2ae6177b4a966c2b9 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 02:26:19 +0800 Subject: [PATCH 097/138] feat: debug Makefile --- test/Rules.mk | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/Rules.mk b/test/Rules.mk index 1c530e1..0f37546 100644 --- a/test/Rules.mk +++ b/test/Rules.mk @@ -4,8 +4,6 @@ ifeq ($(IS_DEV),1) FILES=simtransport_test.cpp endif -@echo "test" - TEST_SRCS += $(addprefix $(d), $(FILES)) ifeq ($(IS_DEV),1) From 4f94b2051b56017600ebf1777aed200d2fde7f15 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 02:26:37 +0800 Subject: [PATCH 098/138] feat: debug Makefile --- network/Rules.mk | 2 -- 1 file changed, 2 deletions(-) diff --git a/network/Rules.mk b/network/Rules.mk index cee2336..571ec46 100644 --- a/network/Rules.mk +++ b/network/Rules.mk @@ -6,8 +6,6 @@ else FILES=transport.cpp configuration.cpp simtransport.cpp endif -@echo "network" - SRCS += $(addprefix $(d), $(FILES)) LIB-configuration := $(o)configuration.o $(LIB-debug) From 9e89168e1441a07bd3acc354fce1b60f7e81c616 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 02:27:14 +0800 Subject: [PATCH 099/138] feat: debug Makefile --- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 07a47d5..62f587a 100644 --- a/Makefile +++ b/Makefile @@ -283,8 +283,9 @@ $(TEST_BINS:%=gdb-%): gdb-%: % $(call trace,GDB,$<,CK_FORK=no gdb $<) .PHONY: test -echo $(TEST_BINS) -test: $(TEST_BINS:%=run-%) +test: + echo $(TEST_BINS) + $(TEST_BINS:%=run-%) .PHONY: check check: test From d8c0012eea7f4bdb96986b592a0004f4737e4690 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 02:39:21 +0800 Subject: [PATCH 100/138] feat: remove gtest --- test/Rules.mk | 3 --- 1 file changed, 3 deletions(-) diff --git a/test/Rules.mk b/test/Rules.mk index 0f37546..bda1a26 100644 --- a/test/Rules.mk +++ b/test/Rules.mk @@ -6,9 +6,6 @@ endif TEST_SRCS += $(addprefix $(d), $(FILES)) -ifeq ($(IS_DEV),1) -GTEST_SRCS += $(d)simtransport_test -endif $(d)simtransport_test: $(o)simtransport_test.o $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) $(LIB-transport) $(LIB-debug) $(LIB-simtransport) $(OBJS-storage_server) \ $(GTEST_MAIN) From 7436486ad754b4e5dbf6c59c0eec012c2e77513a Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 02:41:17 +0800 Subject: [PATCH 101/138] feat: change dir to benchmark --- {test => benchmark}/Rules.mk | 0 {test => benchmark}/simtransport_test.cpp | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {test => benchmark}/Rules.mk (100%) rename {test => benchmark}/simtransport_test.cpp (100%) diff --git a/test/Rules.mk b/benchmark/Rules.mk similarity index 100% rename from test/Rules.mk rename to benchmark/Rules.mk diff --git a/test/simtransport_test.cpp b/benchmark/simtransport_test.cpp similarity index 100% rename from test/simtransport_test.cpp rename to benchmark/simtransport_test.cpp From a9bba4e44f7e45f8b55548e378dfbf6b7ff89ec9 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 02:50:17 +0800 Subject: [PATCH 102/138] feat: include test in the Makefile --- Makefile | 1 + {benchmark => test}/Rules.mk | 0 {benchmark => test}/simtransport_test.cpp | 0 3 files changed, 1 insertion(+) rename {benchmark => test}/Rules.mk (100%) rename {benchmark => test}/simtransport_test.cpp (100%) diff --git a/Makefile b/Makefile index 62f587a..b1f25d0 100644 --- a/Makefile +++ b/Makefile @@ -151,6 +151,7 @@ include debug/Rules.mk include network/Rules.mk include client/Rules.mk include server/Rules.mk +include test/Rules.mk #include replication/common/Rules.mk #include replication/meerkatir/Rules.mk #include replication/leadermeerkatir/Rules.mk diff --git a/benchmark/Rules.mk b/test/Rules.mk similarity index 100% rename from benchmark/Rules.mk rename to test/Rules.mk diff --git a/benchmark/simtransport_test.cpp b/test/simtransport_test.cpp similarity index 100% rename from benchmark/simtransport_test.cpp rename to test/simtransport_test.cpp From 836ee6b5c7547d687eda1a8ff23e938c2a412b54 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 02:53:09 +0800 Subject: [PATCH 103/138] refactor: test to simulation --- Makefile | 6 ++++-- {test => simulation}/Rules.mk | 0 {test => simulation}/simtransport_test.cpp | 0 3 files changed, 4 insertions(+), 2 deletions(-) rename {test => simulation}/Rules.mk (100%) rename {test => simulation}/simtransport_test.cpp (100%) diff --git a/Makefile b/Makefile index b1f25d0..7a5294d 100644 --- a/Makefile +++ b/Makefile @@ -151,7 +151,7 @@ include debug/Rules.mk include network/Rules.mk include client/Rules.mk include server/Rules.mk -include test/Rules.mk +include simulation/Rules.mk #include replication/common/Rules.mk #include replication/meerkatir/Rules.mk #include replication/leadermeerkatir/Rules.mk @@ -283,9 +283,11 @@ $(TEST_BINS:%=run-%): run-%: % $(TEST_BINS:%=gdb-%): gdb-%: % $(call trace,GDB,$<,CK_FORK=no gdb $<) +.PHONY: simulation +simulation: $(TEST_BINS) + .PHONY: test test: - echo $(TEST_BINS) $(TEST_BINS:%=run-%) .PHONY: check check: test diff --git a/test/Rules.mk b/simulation/Rules.mk similarity index 100% rename from test/Rules.mk rename to simulation/Rules.mk diff --git a/test/simtransport_test.cpp b/simulation/simtransport_test.cpp similarity index 100% rename from test/simtransport_test.cpp rename to simulation/simtransport_test.cpp From 48675c4ca65b615f9639e6eb3f3c88bd47f3fe2e Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 02:55:11 +0800 Subject: [PATCH 104/138] feat: add obj storage client --- client/Rules.mk | 4 ++-- simulation/Rules.mk | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/client/Rules.mk b/client/Rules.mk index 972e4a7..e5e5719 100644 --- a/client/Rules.mk +++ b/client/Rules.mk @@ -13,9 +13,9 @@ OBJS-swap_space := $(o)swap_space.o $(OBJS-storage_client) OBJS-backing_store := $(o)backing_store.o ifeq ($(IS_DEV),0) -$(d)client := $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) $(o)main.o +$(d)client := $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) $(OBJS-storage_client) $(o)main.o BINS += $(d)client else -$(d)client := $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) +$(d)client := $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) $(OBJS-storage_client) endif diff --git a/simulation/Rules.mk b/simulation/Rules.mk index bda1a26..88ee3f6 100644 --- a/simulation/Rules.mk +++ b/simulation/Rules.mk @@ -7,8 +7,10 @@ endif TEST_SRCS += $(addprefix $(d), $(FILES)) $(d)simtransport_test: $(o)simtransport_test.o $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) $(LIB-transport) $(LIB-debug) $(LIB-simtransport) $(OBJS-storage_server) \ + $(OBJS-storage_client) \ $(GTEST_MAIN) + # $(o)simtransport_test.o \ # $(OBJS-spec-replica) $(OBJS-spec-client) \ # $(LIB-simtransport) \ From 1b3532cd667c8cf216bd96c5c5e9d8028b47e772 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 02:59:31 +0800 Subject: [PATCH 105/138] fix: import --- client/Rules.mk | 9 --------- simulation/simtransport_test.cpp | 2 +- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/client/Rules.mk b/client/Rules.mk index e5e5719..4a1c96a 100644 --- a/client/Rules.mk +++ b/client/Rules.mk @@ -1,10 +1,6 @@ d := $(dir $(lastword $(MAKEFILE_LIST))) -ifeq ($(IS_DEV),0) SRCS += $(addprefix $(d), main.cpp swap_space.cpp backing_store.cpp storage_client.cpp) -else -SRCS += $(addprefix $(d), swap_space.cpp backing_store.cpp storage_client.cpp) -endif OBJS-storage_client := $(o)storage_client.o @@ -12,10 +8,5 @@ OBJS-swap_space := $(o)swap_space.o $(OBJS-storage_client) OBJS-backing_store := $(o)backing_store.o -ifeq ($(IS_DEV),0) $(d)client := $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) $(OBJS-storage_client) $(o)main.o BINS += $(d)client -else -$(d)client := $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) $(OBJS-storage_client) -endif - diff --git a/simulation/simtransport_test.cpp b/simulation/simtransport_test.cpp index dec4e21..603928b 100644 --- a/simulation/simtransport_test.cpp +++ b/simulation/simtransport_test.cpp @@ -11,7 +11,7 @@ #include "network/simtransport.hpp" #include "common/gflags.hpp" -#include "storage_client.hpp" +#include "client/storage_client.hpp" #include From 9e2200b64aed7eebe362ec6040a0b46c4f7c9641 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 03:02:42 +0800 Subject: [PATCH 106/138] feat: add bins --- client/Rules.mk | 1 + network/Rules.mk | 8 -------- server/Rules.mk | 9 +-------- 3 files changed, 2 insertions(+), 16 deletions(-) diff --git a/client/Rules.mk b/client/Rules.mk index 4a1c96a..500a308 100644 --- a/client/Rules.mk +++ b/client/Rules.mk @@ -9,4 +9,5 @@ OBJS-swap_space := $(o)swap_space.o $(OBJS-storage_client) OBJS-backing_store := $(o)backing_store.o $(d)client := $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) $(OBJS-storage_client) $(o)main.o + BINS += $(d)client diff --git a/network/Rules.mk b/network/Rules.mk index 571ec46..975edcf 100644 --- a/network/Rules.mk +++ b/network/Rules.mk @@ -1,10 +1,6 @@ d := $(dir $(lastword $(MAKEFILE_LIST))) -ifeq ($(IS_DEV),0) FILES = transport.cpp configuration.cpp simtransport.cpp fasttransport.cpp -else -FILES=transport.cpp configuration.cpp simtransport.cpp -endif SRCS += $(addprefix $(d), $(FILES)) @@ -14,8 +10,4 @@ LIB-transport := $(o)transport.o $(LIB-configuration) $(LIB-debug) LIB-simtransport += $(o)simtransport.o -ifeq ($(IS_DEV),0) LIB-transport_implementation := $(LIB-transport) $(LIB-debug) $(LIB-simtransport) $(o)fasttransport.o -else -LIB-transport_implementation := $(LIB-transport) $(LIB-debug) $(LIB-simtransport) -endif \ No newline at end of file diff --git a/server/Rules.mk b/server/Rules.mk index 3ab7e4e..6c3f031 100644 --- a/server/Rules.mk +++ b/server/Rules.mk @@ -1,16 +1,9 @@ d := $(dir $(lastword $(MAKEFILE_LIST))) -ifeq ($(IS_DEV),0) SRCS += $(addprefix $(d), storage_server.cpp main.cpp) -else -SRCS += $(addprefix $(d), storage_server.cpp) -endif OBJS-storage_server := $(o)storage_server.o $(LIB-debug) $(LIB-configuration) $(LIB-transport) -ifeq ($(IS_DEV),0) $(d)server := $(LIB-transport_implementation) $(OBJS-storage_server) $(o)main.o + BINS += $(d)server -else -$(d)server := $(LIB-transport_implementation) $(OBJS-storage_server) -endif From 2b50d331c88bc9a6d4be22cea1cc8c83d1a1522d Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 03:04:47 +0800 Subject: [PATCH 107/138] feat: remove fasttranport from simulation maek --- simulation/Rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simulation/Rules.mk b/simulation/Rules.mk index 88ee3f6..db33fde 100644 --- a/simulation/Rules.mk +++ b/simulation/Rules.mk @@ -6,7 +6,7 @@ endif TEST_SRCS += $(addprefix $(d), $(FILES)) -$(d)simtransport_test: $(o)simtransport_test.o $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) $(LIB-transport) $(LIB-debug) $(LIB-simtransport) $(OBJS-storage_server) \ +$(d)simtransport_test: $(o)simtransport_test.o $(OBJS-swap_space) $(OBJS-backing_store) $(LIB-transport) $(LIB-debug) $(LIB-simtransport) $(OBJS-storage_server) \ $(OBJS-storage_client) \ $(GTEST_MAIN) From 4459d0ad5d48101b2ec816bde99d9e2016395ffe Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 03:06:02 +0800 Subject: [PATCH 108/138] feat: remove test src --- simulation/Rules.mk | 6 ------ 1 file changed, 6 deletions(-) diff --git a/simulation/Rules.mk b/simulation/Rules.mk index db33fde..c5c9a6f 100644 --- a/simulation/Rules.mk +++ b/simulation/Rules.mk @@ -1,11 +1,5 @@ d := $(dir $(lastword $(MAKEFILE_LIST))) -ifeq ($(IS_DEV),1) -FILES=simtransport_test.cpp -endif - -TEST_SRCS += $(addprefix $(d), $(FILES)) - $(d)simtransport_test: $(o)simtransport_test.o $(OBJS-swap_space) $(OBJS-backing_store) $(LIB-transport) $(LIB-debug) $(LIB-simtransport) $(OBJS-storage_server) \ $(OBJS-storage_client) \ $(GTEST_MAIN) From f8cbb9356f902a63eb87b80746d191fae73b257b Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 03:16:24 +0800 Subject: [PATCH 109/138] fix: dependencies in Makefile --- client/Rules.mk | 2 +- network/Rules.mk | 4 ++-- server/Rules.mk | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/client/Rules.mk b/client/Rules.mk index 500a308..d83032e 100644 --- a/client/Rules.mk +++ b/client/Rules.mk @@ -8,6 +8,6 @@ OBJS-swap_space := $(o)swap_space.o $(OBJS-storage_client) OBJS-backing_store := $(o)backing_store.o -$(d)client := $(LIB-transport_implementation) $(OBJS-swap_space) $(OBJS-backing_store) $(OBJS-storage_client) $(o)main.o +$(d)client := $(LIB-fasttransport) $(OBJS-swap_space) $(OBJS-backing_store) $(OBJS-storage_client) $(o)main.o BINS += $(d)client diff --git a/network/Rules.mk b/network/Rules.mk index 975edcf..855ec88 100644 --- a/network/Rules.mk +++ b/network/Rules.mk @@ -8,6 +8,6 @@ LIB-configuration := $(o)configuration.o $(LIB-debug) LIB-transport := $(o)transport.o $(LIB-configuration) $(LIB-debug) -LIB-simtransport += $(o)simtransport.o +LIB-simtransport := $(LIB-transport) $(LIB-debug) $(o)simtransport.o -LIB-transport_implementation := $(LIB-transport) $(LIB-debug) $(LIB-simtransport) $(o)fasttransport.o +LIB-fasttransport := $(LIB-transport) $(LIB-debug) $(o)fasttransport.o diff --git a/server/Rules.mk b/server/Rules.mk index 6c3f031..54a6251 100644 --- a/server/Rules.mk +++ b/server/Rules.mk @@ -4,6 +4,6 @@ SRCS += $(addprefix $(d), storage_server.cpp main.cpp) OBJS-storage_server := $(o)storage_server.o $(LIB-debug) $(LIB-configuration) $(LIB-transport) -$(d)server := $(LIB-transport_implementation) $(OBJS-storage_server) $(o)main.o +$(d)server := $(LIB-fasttransport) $(OBJS-storage_server) $(o)main.o BINS += $(d)server From b64b575e27f2b78821678fe6b254fcc5ec75e526 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 03:19:19 +0800 Subject: [PATCH 110/138] feat: make new rule for simulation --- Makefile | 8 +++++++- simulation/Rules.mk | 5 ++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 7a5294d..eff0fec 100644 --- a/Makefile +++ b/Makefile @@ -131,6 +131,12 @@ BINS := # using the appropriate flags. This is also used as the list of tests # to run for the `test' target. TEST_BINS := +# SIM_BINS is like BINS, but for simulation binaries. They will be linked +# using the appropriate flags. This is also used as the list of tests +# to run for the `sim` target. +# It is similar to test that it uses simulated tranpsort, but you can also +# provide manual inputs to it, as contrast to test +SIM_BINS := # add-CFLAGS is a utility macro that takes a space-separated list of # sources and a set of CFLAGS. It sets the CFLAGS for each provided @@ -284,7 +290,7 @@ $(TEST_BINS:%=gdb-%): gdb-%: % $(call trace,GDB,$<,CK_FORK=no gdb $<) .PHONY: simulation -simulation: $(TEST_BINS) +simulation: $(SIM_BINS) .PHONY: test test: diff --git a/simulation/Rules.mk b/simulation/Rules.mk index c5c9a6f..03ba41c 100644 --- a/simulation/Rules.mk +++ b/simulation/Rules.mk @@ -1,8 +1,7 @@ d := $(dir $(lastword $(MAKEFILE_LIST))) $(d)simtransport_test: $(o)simtransport_test.o $(OBJS-swap_space) $(OBJS-backing_store) $(LIB-transport) $(LIB-debug) $(LIB-simtransport) $(OBJS-storage_server) \ - $(OBJS-storage_client) \ - $(GTEST_MAIN) + $(OBJS-storage_client) # $(o)simtransport_test.o \ @@ -10,4 +9,4 @@ $(d)simtransport_test: $(o)simtransport_test.o $(OBJS-swap_space) $(OBJS-backing # $(LIB-simtransport) \ $(GTEST_MAIN) -TEST_BINS += $(d)simtransport_test +SIM_BINS += $(d)simtransport_test From 598ff4a27bfbaf659db8a09be4b2ff9761053ed7 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 03:21:37 +0800 Subject: [PATCH 111/138] feat: add SIM_BINS to linking --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index eff0fec..e668387 100644 --- a/Makefile +++ b/Makefile @@ -235,7 +235,7 @@ $(PROTOOBJS:%.o=%-pic.o): .obj/%-pic.o: .obj/gen/%.pb.cc $(PROTOSRCS) $(call add-LDFLAGS,$(TEST_BINS),$(CHECK_LDFLAGS)) -$(BINS) $(TEST_BINS): %: +$(BINS) $(TEST_BINS) $(SIM_BINS): %: $(call trace,LD,$@,$(LD) -o $@ $^ $(LDFLAGS) $(LDFLAGS-$@)) # @@ -267,7 +267,7 @@ $(GTEST_MAIN) : .obj/gtest/gtest-all.o .obj/gtest/gtest_main.o .PHONY: clean clean: - $(call trace,RM,binaries,rm -f $(BINS) $(TEST_BINS)) + $(call trace,RM,binaries,rm -f $(BINS) $(TEST_BINS) $(SIM_BINS)) $(call trace,RM,objects,rm -rf .obj) # From def540a5ab2a162c143dae7de5a4d2c5fe7bc2c8 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 03:22:08 +0800 Subject: [PATCH 112/138] feat: add linking to SIM_BINS --- Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile b/Makefile index e668387..e920c6b 100644 --- a/Makefile +++ b/Makefile @@ -234,6 +234,8 @@ $(PROTOOBJS:%.o=%-pic.o): .obj/%-pic.o: .obj/gen/%.pb.cc $(PROTOSRCS) # $(call add-LDFLAGS,$(TEST_BINS),$(CHECK_LDFLAGS)) +$(call add-LDFLAGS,$(SIM_BINS),$(CHECK_LDFLAGS)) + $(BINS) $(TEST_BINS) $(SIM_BINS): %: $(call trace,LD,$@,$(LD) -o $@ $^ $(LDFLAGS) $(LDFLAGS-$@)) From 129342e079158d51d4772f7f894000bb20b895d2 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 03:31:08 +0800 Subject: [PATCH 113/138] feat: add SIM_SRCS --- Makefile | 6 ++++-- simulation/Rules.mk | 12 +++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index e920c6b..80004f1 100644 --- a/Makefile +++ b/Makefile @@ -117,6 +117,9 @@ SRCS := # TEST_SRCS is just like SRCS, but these source files will be compiled # with testing related flags. TEST_SRCS := +# SIM_SRCS is just like SRCS, but these source files will be compiled +# with simulation related flags. +SIM_SRCS := # GTEST_SRCS is tests that use Google's testing framework GTEST_SRCS := @@ -192,7 +195,7 @@ include simulation/Rules.mk DEPFLAGS = -M -MF ${@:.o=.d} -MP -MT $@ -MG # $(call add-CFLAGS,$(TEST_SRCS),$(CHECK_CFLAGS)) -OBJS := $(SRCS:%.cpp=.obj/%.o) $(TEST_SRCS:%.cpp=.obj/%.o) $(GTEST_SRCS:%.cpp=.obj/%.o) +OBJS := $(SRCS:%.cpp=.obj/%.o) $(TEST_SRCS:%.cpp=.obj/%.o) $(GTEST_SRCS:%.cpp=.obj/%.o) $(SIM_SRCS:%.cpp=.obj/%.o) define compile @mkdir -p $(dir $@) @@ -236,7 +239,6 @@ $(PROTOOBJS:%.o=%-pic.o): .obj/%-pic.o: .obj/gen/%.pb.cc $(PROTOSRCS) $(call add-LDFLAGS,$(TEST_BINS),$(CHECK_LDFLAGS)) $(call add-LDFLAGS,$(SIM_BINS),$(CHECK_LDFLAGS)) - $(BINS) $(TEST_BINS) $(SIM_BINS): %: $(call trace,LD,$@,$(LD) -o $@ $^ $(LDFLAGS) $(LDFLAGS-$@)) diff --git a/simulation/Rules.mk b/simulation/Rules.mk index 03ba41c..459e83c 100644 --- a/simulation/Rules.mk +++ b/simulation/Rules.mk @@ -1,12 +1,10 @@ d := $(dir $(lastword $(MAKEFILE_LIST))) -$(d)simtransport_test: $(o)simtransport_test.o $(OBJS-swap_space) $(OBJS-backing_store) $(LIB-transport) $(LIB-debug) $(LIB-simtransport) $(OBJS-storage_server) \ - $(OBJS-storage_client) - +SIM_SRCS := simtransport_test.cpp -# $(o)simtransport_test.o \ -# $(OBJS-spec-replica) $(OBJS-spec-client) \ -# $(LIB-simtransport) \ - $(GTEST_MAIN) +$(d)simtransport_test: $(o)simtransport_test.o \ + $(OBJS-swap_space) $(OBJS-backing_store) \ + $(LIB-simtransport) $(OBJS-storage_server) \ + $(OBJS-storage_client) SIM_BINS += $(d)simtransport_test From ef172879da0b78d35bbd02b41076504df0b650c1 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 03:41:30 +0800 Subject: [PATCH 114/138] fix: src in SIM_SRCS --- simulation/Rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simulation/Rules.mk b/simulation/Rules.mk index 459e83c..2439a02 100644 --- a/simulation/Rules.mk +++ b/simulation/Rules.mk @@ -1,6 +1,6 @@ d := $(dir $(lastword $(MAKEFILE_LIST))) -SIM_SRCS := simtransport_test.cpp +SIM_SRCS := $(d)simtransport_test.cpp $(d)simtransport_test: $(o)simtransport_test.o \ $(OBJS-swap_space) $(OBJS-backing_store) \ From 4fcab3876b412e26915c2182279f39bf836c6d3c Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 03:51:44 +0800 Subject: [PATCH 115/138] fix: Makefile syntax --- Makefile | 2 +- client/Rules.mk | 2 +- server/Rules.mk | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 80004f1..7870617 100644 --- a/Makefile +++ b/Makefile @@ -62,7 +62,7 @@ LDFLAGS += $(LIBSSL_LDFLAGS) GTEST_DIR := /usr/src/gtest # Additional flags -PARANOID = 0 +PARANOID = 1 ifneq ($(PARANOID),0) override CFLAGS += -DPARANOID=1 $(info WARNING: Paranoid mode enabled) diff --git a/client/Rules.mk b/client/Rules.mk index d83032e..afe9df8 100644 --- a/client/Rules.mk +++ b/client/Rules.mk @@ -8,6 +8,6 @@ OBJS-swap_space := $(o)swap_space.o $(OBJS-storage_client) OBJS-backing_store := $(o)backing_store.o -$(d)client := $(LIB-fasttransport) $(OBJS-swap_space) $(OBJS-backing_store) $(OBJS-storage_client) $(o)main.o +$(d)client: $(LIB-fasttransport) $(OBJS-swap_space) $(OBJS-backing_store) $(OBJS-storage_client) $(o)main.o BINS += $(d)client diff --git a/server/Rules.mk b/server/Rules.mk index 54a6251..bd35526 100644 --- a/server/Rules.mk +++ b/server/Rules.mk @@ -4,6 +4,6 @@ SRCS += $(addprefix $(d), storage_server.cpp main.cpp) OBJS-storage_server := $(o)storage_server.o $(LIB-debug) $(LIB-configuration) $(LIB-transport) -$(d)server := $(LIB-fasttransport) $(OBJS-storage_server) $(o)main.o +$(d)server: $(LIB-fasttransport) $(OBJS-storage_server) $(o)main.o BINS += $(d)server From 53e9e0f3bfb34d6006eb8d2679a88f2d4c43792f Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 04:00:37 +0800 Subject: [PATCH 116/138] feat: remove IS_DEV directives --- Makefile | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 7870617..908a212 100644 --- a/Makefile +++ b/Makefile @@ -7,16 +7,9 @@ CXX = g++ LD = g++ EXPAND = lib/tmpl/expand -IS_DEV = 1 -ifeq ($(IS_DEV),1) RPC_PATH= RPC_CFLAGS_RAW := RPC_LDFLAGS_RAW := -ldl -lgflags -libverbs -else -RPC_PATH= "./third_party/eRPC" -RPC_CFLAGS_RAW := -I $(RPC_PATH)/src -DRAW=true -RPC_LDFLAGS_RAW := -L $(RPC_PATH)/build -lerpc -lnuma -ldl -lgflags -libverbs -endif #ERPC_CFLAGS_DPDK := -I $(RPC_PATH)/src -I /usr/include/dpdk -DDPDK=true -march=native #ERPC_LDFLAGS_DPDK := -L $(RPC_PATH)/build -lerpc -lnuma -ldl -lgflags -ldpdk @@ -27,7 +20,7 @@ CFLAGS_WARNINGS:= -Wno-unused-function -Wno-nested-anon-types -Wno-keyword-macro # more information. # # [1]: http://www.brendangregg.com/perf.html#FlameGraphs -CFLAGS := -g -Wall $(CFLAGS_WARNINGS) -iquote.obj/gen -O2 -DNASSERT -fno-omit-frame-pointer -DIS_DEV=$(IS_DEV) +CFLAGS := -g -Wall $(CFLAGS_WARNINGS) -iquote.obj/gen -O2 -DNASSERT -fno-omit-frame-pointer CXXFLAGS := -g -std=c++11 LDFLAGS := -levent_pthreads -pthread -lboost_fiber -lboost_context -lboost_system -lboost_thread @@ -285,7 +278,11 @@ print-%: # .PHONY: all -all: $(BINS) +all: + RPC_PATH= "./third_party/eRPC" + RPC_CFLAGS_RAW := -I $(RPC_PATH)/src -DRAW=true + RPC_LDFLAGS_RAW := -L $(RPC_PATH)/build -lerpc -lnuma -ldl -lgflags -libverbs + $(BINS) $(TEST_BINS:%=run-%): run-%: % $(call trace,RUN,$<,$<) From 216d49f4367405c578ab626dab22ab0027c8f0cf Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 12:53:25 +0800 Subject: [PATCH 117/138] feat: change config file name --- NOTES.md | 19 ++++++++++++++----- config | 2 ++ config_sim | 0 3 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 config create mode 100644 config_sim diff --git a/NOTES.md b/NOTES.md index 3f67a30..49a86aa 100644 --- a/NOTES.md +++ b/NOTES.md @@ -87,16 +87,25 @@ RPC options: cmake . ``` + +## Run +1. make +2. ./client/client +3. ./server/server --configFile=config --serverIndex=0 or 1 + +### Examples +1. An example of the configFile is the config file + ### Simulated Transport * No hardware setup is needed * Client and server can run on the same machine on different ports -#### Setup -1. Set -DIS_DEV in Makefile ## Run -1. make -2. ./client/client -3. ./server/server --configFile=config-test --serverIndex=0 or 1 +1. make simulation +2. ./simulation/simtransport_sim --configFile=config_sim + +### Examples +1. An example of the configFile is the config_sim file ## Understanding the code 1. The client and server have different Transport object. They use this object to access all info and properties of it. diff --git a/config b/config new file mode 100644 index 0000000..e4d0bdd --- /dev/null +++ b/config @@ -0,0 +1,2 @@ +server localhost:1234 +server localhost:1235 \ No newline at end of file diff --git a/config_sim b/config_sim new file mode 100644 index 0000000..e69de29 From f2666e6f9868cae5986d841cb0c810fd929e9c15 Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Sat, 23 Oct 2021 12:54:02 +0800 Subject: [PATCH 118/138] feat: add main driver thread for simulation --- config-test | 2 - network/simtransport.cpp | 2 +- simulation/Rules.mk | 6 +-- simulation/simtransport_sim.cpp | 78 ++++++++++++++++++++++++++++++++ simulation/simtransport_test.cpp | 45 ------------------ 5 files changed, 82 insertions(+), 51 deletions(-) delete mode 100644 config-test create mode 100644 simulation/simtransport_sim.cpp delete mode 100644 simulation/simtransport_test.cpp diff --git a/config-test b/config-test deleted file mode 100644 index e4d0bdd..0000000 --- a/config-test +++ /dev/null @@ -1,2 +0,0 @@ -server localhost:1234 -server localhost:1235 \ No newline at end of file diff --git a/network/simtransport.cpp b/network/simtransport.cpp index bd459f8..b6429c4 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -122,10 +122,10 @@ void SimTransport::Stop() { } bool SimTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, uint32_t serverIdx, uint8_t dstRpcIdx, size_t msgLen) { + // while (client is blocked) {do the above} c->client.crt_req_tag->src = src; c->client.crt_req_tag->reqType = reqType; c->rpc->enqueue_request(c->client.crt_req_tag); - // while (client is blocked) {do the above} return true; } diff --git a/simulation/Rules.mk b/simulation/Rules.mk index 2439a02..e88ca5e 100644 --- a/simulation/Rules.mk +++ b/simulation/Rules.mk @@ -1,10 +1,10 @@ d := $(dir $(lastword $(MAKEFILE_LIST))) -SIM_SRCS := $(d)simtransport_test.cpp +SIM_SRCS := $(d)simtransport_sim.cpp -$(d)simtransport_test: $(o)simtransport_test.o \ +$(d)simtransport_sim: $(o)simtransport_sim.o \ $(OBJS-swap_space) $(OBJS-backing_store) \ $(LIB-simtransport) $(OBJS-storage_server) \ $(OBJS-storage_client) -SIM_BINS += $(d)simtransport_test +SIM_BINS += $(d)simtransport_sim diff --git a/simulation/simtransport_sim.cpp b/simulation/simtransport_sim.cpp new file mode 100644 index 0000000..9708c87 --- /dev/null +++ b/simulation/simtransport_sim.cpp @@ -0,0 +1,78 @@ +// -*- mode: c++; c-file-style: "k&r"; c-basic-offset: 4 -*- +#include +#include +#include +#include +#include +#include + +#include "network/configuration.hpp" +#include "network/transport.hpp" +#include "network/simtransport.hpp" + +#include "common/gflags.hpp" +#include "client/storage_client.hpp" + +#include + +using namespace std; + +void client_thread_func(network::Configuration &config, network::SimTransport *transport) +{ + StorageClient *sc = new StorageClient(config, transport); + string request; + nodeid_t result = sc->GetNodeId(0, 0, request); + cout << "SUCCESS\n"; + cout << result.nodeIdx << "\n"; +} + +void server_thread_func(network::SimTransport *transport) +{ + StorageServer *ss = new StorageServer( + config, + FLAGS_serverIndex, + transport, + storageApp); + + transport->Run(); +} + +int main(int argc, char **argv) +{ + gflags::ParseCommandLineFlags(&argc, &argv, true); + + if (FLAGS_configFile == "") + { + fprintf(stderr, "option --configFile is required\n"); + return EXIT_FAILURE; + } + + // Load configuration + std::ifstream configStream(FLAGS_configFile); + if (configStream.fail()) + { + fprintf(stderr, "unable to read configuration file: %s\n", FLAGS_configFile.c_str()); + } + network::Configuration config(configStream); + network::SimTransport *transport = new network::SimTransport(config, 0); + + /* Thread creation */ + std::vector client_thread_arr(1); + for (uint8_t i = 0; i < 1; i++) + { + client_thread_arr[i] = std::thread(client_thread_func, config, transport); + } + std::vector server_thread_arr(1); + for (uint8_t i = 0; i < 1; i++) + { + server_thread_arr[i] = std::thread(server_thread_func, transport); + } + + /* Blocking join */ + for (auto &client_thread : client_thread_arr) + client_thread.join(); + for (auto &server_thread : server_thread_arr) + server_thread.join(); + + return 0; +} diff --git a/simulation/simtransport_test.cpp b/simulation/simtransport_test.cpp deleted file mode 100644 index 603928b..0000000 --- a/simulation/simtransport_test.cpp +++ /dev/null @@ -1,45 +0,0 @@ -// -*- mode: c++; c-file-style: "k&r"; c-basic-offset: 4 -*- -#include -#include -#include -#include -#include -#include - -#include "network/configuration.hpp" -#include "network/transport.hpp" -#include "network/simtransport.hpp" - -#include "common/gflags.hpp" -#include "client/storage_client.hpp" - -#include - -using namespace std; - -void client_thread_func(network::Configuration &config) -{ -} - -int main(int argc, char **argv) -{ - gflags::ParseCommandLineFlags(&argc, &argv, true); - - if (FLAGS_configFile == "") - { - fprintf(stderr, "option --configFile is required\n"); - return EXIT_FAILURE; - } - - // Load configuration - std::ifstream configStream(FLAGS_configFile); - if (configStream.fail()) - { - fprintf(stderr, "unable to read configuration file: %s\n", FLAGS_configFile.c_str()); - } - network::Configuration config(configStream); - - client_thread_func(config); - - return 0; -} From c6f96ad668dd541a56e24dc66ce374d810195d19 Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Sat, 30 Oct 2021 13:04:34 +0000 Subject: [PATCH 119/138] feat: block on client sending request to server --- Makefile | 2 +- client/storage_client.cpp | 2 ++ client/storage_client.hpp | 1 + config_sim | 2 ++ network/simtransport.cpp | 29 +++++++++++------- network/simtransport.hpp | 11 ++++--- server/storage_server.cpp | 4 ++- server/storage_server.hpp | 1 + simulation/Rules.mk | 6 ++-- simulation/simulation | Bin 0 -> 1477200 bytes .../{simtransport_sim.cpp => simulation.cpp} | 29 ++++++++++-------- 11 files changed, 53 insertions(+), 34 deletions(-) create mode 100755 simulation/simulation rename simulation/{simtransport_sim.cpp => simulation.cpp} (84%) diff --git a/Makefile b/Makefile index 908a212..c08298d 100644 --- a/Makefile +++ b/Makefile @@ -55,7 +55,7 @@ LDFLAGS += $(LIBSSL_LDFLAGS) GTEST_DIR := /usr/src/gtest # Additional flags -PARANOID = 1 +PARANOID = 0 ifneq ($(PARANOID),0) override CFLAGS += -DPARANOID=1 $(info WARNING: Paranoid mode enabled) diff --git a/client/storage_client.cpp b/client/storage_client.cpp index 4b4c2cb..18ed2a1 100644 --- a/client/storage_client.cpp +++ b/client/storage_client.cpp @@ -3,6 +3,7 @@ #include "debug/message.hpp" #include "client/storage_client.hpp" #include "common/messages.hpp" +#include //#include //#include @@ -51,6 +52,7 @@ nodeid_t StorageClient::GetNodeId(uint8_t coreIdx, reqBuf->req_nr = reqId; blocked = true; + cout << "as a client this is the request type" << getNodeIdReqType << "close \n"; transport->SendRequestToServer(this, getNodeIdReqType, serverIdx, coreIdx, diff --git a/client/storage_client.hpp b/client/storage_client.hpp index 1ce1561..627d417 100644 --- a/client/storage_client.hpp +++ b/client/storage_client.hpp @@ -4,6 +4,7 @@ #include "network/configuration.hpp" #include "network/transport.hpp" +// #include "common/messages.hpp" struct nodeid_t { uint32_t serverIdx; diff --git a/config_sim b/config_sim index e69de29..e4d0bdd 100644 --- a/config_sim +++ b/config_sim @@ -0,0 +1,2 @@ +server localhost:1234 +server localhost:1235 \ No newline at end of file diff --git a/network/simtransport.cpp b/network/simtransport.cpp index b6429c4..cc60a26 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -34,6 +34,8 @@ #include "debug/assert.hpp" #include "network/simtransport.hpp" +#include + namespace network { static void simtransport_response(void *_context, void *_tag) { @@ -78,9 +80,8 @@ SimTransport::~SimTransport() void SimTransport::Register(TransportReceiver *receiver, int receiverIdx) { assert(receiverIdx < config.n); - - if (receiverIdx > -1) - c->server.receiver = receiver; + + c->server.receiver = receiver; this->receiverIdx = receiverIdx; } @@ -107,11 +108,16 @@ int SimTransport::GetSession(TransportReceiver *src, uint8_t replicaIdx, uint8_t void SimTransport::Run() { - // If it's server, check the request queue while(!stop) { - if (!c->rpc->req_queue.empty()) { - sim_req_tag_t* req_tag = c->rpc->req_queue.front(); - req_tag->src->ReceiveRequest(req_tag->reqType, req_tag->req_msgbuf, req_tag->resp_msgbuf); + if (c->client.crt_req_tag) { + // if (!c->rpc->req_queue.empty()) { + sim_req_tag_t* curr_req_tag = c->client.crt_req_tag; + // currReqTag = req_tag; + c->server.receiver->ReceiveRequest( + curr_req_tag->reqType, + curr_req_tag->req_msgbuf, + curr_req_tag->resp_msgbuf + ); } } } @@ -122,10 +128,11 @@ void SimTransport::Stop() { } bool SimTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, uint32_t serverIdx, uint8_t dstRpcIdx, size_t msgLen) { - // while (client is blocked) {do the above} c->client.crt_req_tag->src = src; c->client.crt_req_tag->reqType = reqType; - c->rpc->enqueue_request(c->client.crt_req_tag); + while (src->Blocked()) { + boost::this_fiber::yield(); + } return true; } @@ -140,7 +147,7 @@ bool SimTransport::SendRequestToAllServers(TransportReceiver *src, uint8_t reqTy { c->client.crt_req_tag->src = src; c->client.crt_req_tag->reqType = reqType; - c->rpc->enqueue_request(c->client.crt_req_tag); + // c->rpc->enqueue_request(c->client.crt_req_tag); } else { @@ -151,7 +158,7 @@ bool SimTransport::SendRequestToAllServers(TransportReceiver *src, uint8_t reqTy rt->reqType = reqType; rt->src = src; std::memcpy(rt->req_msgbuf, c->client.crt_req_tag->req_msgbuf, msgLen); - c->rpc->enqueue_request(rt); + // c->rpc->enqueue_request(rt); } } if (this->receiverIdx == config.n - 1) diff --git a/network/simtransport.hpp b/network/simtransport.hpp index c320d8c..f7ae59b 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -70,12 +70,12 @@ class SimRpc { return new char[msgLen]; } - void enqueue_request(sim_req_tag_t* req_tag) - { - req_queue.push_back(req_tag); - } + // void enqueue_request(sim_req_tag_t* req_tag) + // { + // req_queue.push_back(req_tag); + // } - std::deque req_queue; + // std::deque req_queue; }; class SimAppContext @@ -143,6 +143,7 @@ class SimTransport : public Transport int receiverIdx; bool stop = false; + }; } #endif // _NETWORK_SIMTRANSPORT_H_ diff --git a/server/storage_server.cpp b/server/storage_server.cpp index 43b9857..42fdb85 100644 --- a/server/storage_server.cpp +++ b/server/storage_server.cpp @@ -6,6 +6,7 @@ **********************************************************************/ #include "storage_server.hpp" #include "common/messages.hpp" +#include using namespace std; @@ -35,12 +36,13 @@ StorageServer::~StorageServer() { } void StorageServer::ReceiveRequest(uint8_t reqType, char *reqBuf, char *respBuf) { size_t respLen; + cout << "as a server this is " << getNodeIdReqType << "\n"; switch(reqType) { case getNodeIdReqType: HandleGetNodeId(reqBuf, respBuf, respLen); break; default: - Warning("Unrecognized rquest type: %d", reqType); + Warning("Unrecognized request type: %d", reqType); } // For every request, we need to send a response (because we use eRPC) diff --git a/server/storage_server.hpp b/server/storage_server.hpp index 300ed5e..67c89c2 100644 --- a/server/storage_server.hpp +++ b/server/storage_server.hpp @@ -10,6 +10,7 @@ #include "network/configuration.hpp" #include "network/transport.hpp" +// #include "common/messages.hpp" class StorageServerApp { diff --git a/simulation/Rules.mk b/simulation/Rules.mk index e88ca5e..804c0fb 100644 --- a/simulation/Rules.mk +++ b/simulation/Rules.mk @@ -1,10 +1,10 @@ d := $(dir $(lastword $(MAKEFILE_LIST))) -SIM_SRCS := $(d)simtransport_sim.cpp +SIM_SRCS := $(d)simulation.cpp -$(d)simtransport_sim: $(o)simtransport_sim.o \ +$(d)simulation: $(o)simulation.o \ $(OBJS-swap_space) $(OBJS-backing_store) \ $(LIB-simtransport) $(OBJS-storage_server) \ $(OBJS-storage_client) -SIM_BINS += $(d)simtransport_sim +SIM_BINS += $(d)simulation diff --git a/simulation/simulation b/simulation/simulation new file mode 100755 index 0000000000000000000000000000000000000000..866cd3e8246395ff51f8ebe2f442452300b05fd6 GIT binary patch literal 1477200 zcmeFa3v?7k7B@Zt27(eND8Z35)va4qw{G34x?SBacX_4_ii#R+(|?0)=i8!ipHjntOdZd!AFbcnY?-!nTMYh9 zvYlZY3UmnmGWAsJb=M%CU|gehJ}Qv%#p@+ouVZvR<4Sd+A6+S5q+g1grx;gTET<`- zoo@3vZN1v>;<#}Y^Re=J^n8}AF6x*94@|FM<7Qvsv@a((_rbIXb^_r84MOu-`xLzbP+Y z&(}4Gx669{MlZm)8s%Mze59A(`qR~Eo1vE%sUI@+elV`QRyNzY(VEmJ$ceOwN>Zv4ySri8Dvwr(+h3rmNvq4HL|`KrPGw&^yjY2C#LM|JmZ2V z_g>#R_uerl4&P+RpfZVvew1JDVn&a|zqjewFhc5^r1*rQLCIrIJ<;a4sf^NY$KM)C z!*4DA$dvzrzq|2g{O-j~GyWdH-$VGL-y{5D+w%DKXVY%YXv}%?AL);uG5GM)pU<1Q z7)Z{~7^ef_$HFZRgeSpR2g1Kb2M>hD#|(_W83AvH@eL$r0Ss~={ObtynH8b_ z+hJ@2$#ISt7+(?rzX!%Wkes3j`V2(C4@A(znGyJ7BIsdc1pcKMj04qkd;~eKz&;1! zPmLhI4}*Fj{*(y%_eZc31wsarvpqt&*G0hFBIwfa z;0K~3=x14kalIRIPO~}<(5FPO=e`K|i4pAf_6YhJ8lnE_5ysu!5$tVq1UaP<$~`lJ z9X=PqZqJTjhchGC!!Hr~eP{%|T^qqKjfkL!f5I3Bvgaug^sp;}9-fGRKNtbOC_?`Z zkHG(4g!-Qlfqz_tb{!jGT-*}@zcRvj??ZnLG>(3Vptsrx2a)kb!5~18q z^zT6a?du5qvm=amTBr>)?xsbslPMAE`CNo`-Te{zrT(aa%Z-Xq{}~bZkBKlpei}i} z`4QT6I6}YN5J8SVg5D}4_~8@5KTv-yj^IE45W#=m7s3DhB|^Ei5yt6B5$ycR2<=rP z*w1$8e<1&JF4~)bKkM(-2!5$DLc8`yu%FEl>VJNO`frb5Kd(pd4@D8|q&`BwT#SY$ zSQ`u49zp+CM&REQq5gM(f1q*tXav7HIfDNg6k#4eFM@u4Mxm$L;%$3#Fj3-{&;GU9 zu7v(i!_GH&bvoY3U*{&-#fX6SjOZH#U2r5s0d*smA=QoH5^IGxKc zwn?x;9D6?Qd{A9xAQrAzLjzhid z_agii)xRyD*FTnDZ0&lvDNUTu=ocH}7;~$tYW?1lvbnw*3Sgw3GbQz$6r0yu?JuqI z70vTr<6G=4#+~11^SWo|dFT0ReDlj{{l1!+dD-PvmA;upbIXzDonKK^>8fg^2knXh~v7*Ol^CFMo)Ygxnv zF&E^RJin@Hez`Ao(ljK@&}-lB;!GwM_n2?%ZR8#BAuBxags+{L3 ztMpNYYhC$e`T6<9bE!22{wZE>aa~<%YU+f!MYUzc=m=_=ySTugnp#|1RO9v66qWgF z-NmkgBK+e@o#4&$LiN1W?tDNCp`0n+0{?`RlB$|TMK$xhW$5K1sKo0pn*Zxct{AY1 zkySG9ck=%iEp+iBoZbQ_>-P)2WH`0{dBx+$li^IZ876L+H|a5T64zf@2{hv?su)Ov zuIyCTjEjG*N~vD1Wfufa^t!8Ry_Zz`Dl4kyVW6;5Ch}5B%F2Cn10@3%GNsn%yQZq7 z#8nO<6PSY^GSjile+g2{EY)d7DcWh&>nCYM(g7nS?;Ax5U=^}^3oE%KK8D(Cx4 zy}p{7s+!+bh_iZbQSmh;MP=o#G89tauYr+6Ll&!d%^%#X3o#1M1pT~;-4ucj53`-*C)X?%oWs8L(F zj#4Mq1SxuGn9f9I0=3H{uVvME~{$w#SD5nt(aUel$$=U%Dbp+p0Coy z{b<=FT4cHMxq}3!#bzfhDlPIG`ur^gXLBQ;>7MSylB_boRs|C=>y=fp4vsY2kOP=` z8Ol%N#=u=n3VL*q|aw2y_2#D87%g zH}ZlboV~J$4fg-Wc}x_XM}Nnm&&pWU(73m(BvPq=j$B1R$4KCF_grifipnvy50IT^ z_}YQiA#C8z#X`N3rh(#8lq{|XY8PXRQNbNI&FeGWWLN$CIj^hG6Te%V^UCv4Wmc2w zK#kA4u&l-(DALy|zr~8v$|~jtd^EZHbtR%wY|`lG8mGWwq5ZPoGmx=(f?tK_ChtOHF-JVXEG3v>JW z@`ZV}-{6%{F4uGwAB@J5U;vjQE+}5=rRh5CMo zCN*@U*)hLs^3um8wj0GzzoqzJX$jBAIuqMTbK?Dt<}|5xaV6h3^y|cVKBIH{!RFeT z^=&Gaqg;XIRr4{H%#A(;^NJC#V!=n7x3F>%?Qv%KY6BHM3fSmD8cL?HB=S{Oc`1zG zFRQAwl~9$;Ku$#fkwi+o#sUQ@83=L3JoHn-e4(wRvVyHWpt73c(i$7CmBrPIQ4aQQ z#n*U?ORw=#Xu$>nWtG?1isn|;_-&Y%tIOsQ^SnScc(KK&jRa!^=&vfbmDLvc{fmhO zfen55U^7@(=C@V&DvB$rZ3}BFs}Z8}mmsx--%)Wa88xV23n~(TsoqB!Fa}v1XD&66 z>fozfh;;0)YmjD0V=`zbS6O8%VUq)~(k8g7WM0u?8wE>fd+#IBd>3A0BXyP&4+Jd~ zE5pYfb7!QU{34YLi$bui-} zgn#WgX=%3|1#}SZDBm!ol3bhZXm+KtNE#m8*hb(=ob*S$G5Dhr2HB25?%|NbaVnG7 zjbs|N8HD^Ccd$}PF8%CyPC<1xYDl@GQ8zjTIv6OWkz`8eCqqXvlxl9YmE)Ao%cXy# z^gk{k3fvr_I|GXX)`(|+^!y?LfBAn{j3+rGZFP7aLOe$2&9mgC7G=DB*aQ1wV!>Ok<^1Uuym}$WGc9}p~Dt&y8KuR9&J1?w%{!f^Y$iK z@E#pcvf%ZPaQ+kvo~h&M7QF2N&Yx+)Q*?gGg2y&<{#h10MX&!H3vPRo^Osuip2s*| zZN>k_@j45hqT{Qqxc;6(lLeo%p37Nl!Bd{&_&N)ought%;7uQM{#Fa#qT_8Ayz5=g z-)X_C-{*Lj1>d`y=7n_@JVBoyTP(QY|Jy8htWI}Y@Gjj?c3JQq9p7ca z+w}QPv*2Ai-ebY@mvO!ITJYwTx&i2Z%jn1I>p324!RvqGc)SJQtJ6sqyzOVspKihT z>UgFFPtfUnE3ThkDz)Io`J!qI-t!DEx6Xp+|AXV21)rnK@3r7YyJGcmZ0ILpy{-of zZj8rt3trvF`6Ub962<4mSr)uY$LCn^Or5T_;LU@$oO%o1rsGW(+-O&{evZj#mq91! zc0y7g;#Ft=8smxZv+!rE+l_v+;zl`EJVmdM6*t;v#SMRK#f|kW;g<>ZG1iGz+!%jW zJV|J;C?_)lJ}Uwqt=o@PzOgQ_;)eZN@q9r)Vtvwua&JLmwtOC#X*0KV87r3V5o3Hw$>0 zfUgs99PKlIEdsv8L~XWK0iP`3Z32#?t>&*&z^9m~&DJI0O#;44z$qeO{ET%3*~xPJ z8RM?`5<>Vps}Ha{{?9rAKUKh61pE&I-YVb=1-wnb>jk`1z*h-)mw?|W;JXC;CIR0o z;I|5Rz3!K&bpZi4&Vky2-6!D2c~!#K3iw`q{X_T~0XNR85>D@G8b9N_E#bErAg;#w zP{JP+aN~R^;r;xier}ZTI|crHeceR(T>@^LCna3p(y&zHoGjt@2>iVl^L`%&jNj>r zo-mF;i1~{aaFS*GVg;NcQpPV{z^M%5mmuKAoIzm=bkNL|K za2(Awf0BUXXs-Fo7jR=tP~t2BA8B&iY;y$sSOG5;@KFL@E#PqiUMJwA1-xFsj~DP& z0v<2mO#*&`fUgyBdWXUIH4FGj28ioA0XN>+r{op^A1m;;3i!za-X`Fu2zaM}CkS|# zfS)Gdy97K@!1oIHI04rL{0sr_5%44d?-lT50k`Fa?f*;xj~4Lp0v;>iXA5||fS)7a z2?BnufF}ufih!pG_yhq@7x0M!o+;py1Y8pEbOFy7aHoLJ67cf`e2#!m74T94|D%9c z3wVZr*9rLf0$wlR7YO(&0nZfhCIQb9@U;Sdp@26Fc(#DA6Yv}XZxL{pfVT?xGy!iD z@LU1!6mUtvy9C@V;JXC;A_3nk;1>(HCg2_c?-B4k0q+&?=>l$>9=88{0go2&O9ebu zz-I_}ynq)7c!Ge>6!0VgFBI?;0l!?p(*=B%fM*K$6#^~^_>}^lFW^@T_$&dRE#Pwm z{7(X2D&SrLuNLq*0$wNJMFL(g;By6hm4Fuuc$0w76Y#YH?i2840oNZnu+((|K40K( z5%5w0Zx!$|0dEuVKMQ!LfL|lvT>@S%;JXC8LcsS5c%^`A0$wHHJpx`W;JpIAK)`MK zdXm;GH3A+j;I#rCE8u$Qgr&v{_#%NnLBQ(-JW0S83wVlvUn}700)Cxo&s{-C6;5Q5SS^-}z z;Qzb*p9cP?f&XdXe;W9o2L4~rz}JqGe~=nJis-NTcfwI=Jlm* z{?TST)HiMmE{;=d#Lw1oheG@M`uds}O-uemp&ceofuBR6O(s2<(NCN75Jo>>(so9# zHfah39SW^5X10MXTF`!zrT`22-=rz9g8nyY3aFs}O_~BJX#bB!`!gB6&!n>$y~Cs_V1o9WbT*@( zHt8HjKVZ@>Mz1#MX^dWB(z%RYVA2w!i%i3;NmHN$?Kf!(aG?DroyX{r zCOw_eQ6_x}qrdvWXg>uu(ElcVDWi9oGzBuyev_sE2KwKmDR6=QH)#r3VEmi(WsF{7 z(iFJB_%~?^SfKw+ngSK*f0L#F1=?@YS1~%(q$yB=_M0>XDA4~VO@RsYze!U-0{#EJ z(f&D%-e=N9jNW0=6nH@UO}d!TPn+~SMn7QEK1Q!L=@Le-FzNY>USQHR0ipdSUB>83 zO_~A+XunBQzySSk(iA8_`%Sun(IZW|lF?BnO#uP4zt?C#1p?6jCcS{sJ4~83{%F5R z(}o}YZ_>2UNBtiVE%eWaEd6hxKey2P zE%XN#`Yj9nnuXqGp*LFS^%nXG3;l?NzSlypvCyi84qE7?7CK;|D=f6nLeI9)g%&!` zLc1(4g^sh(F&5fxp@06$(*G9va|^xSLVsYP-?GrJS?FyRdZUG2 zZ=s*C(2rQ?doA=D3$0q{poLy)p#v7W!b1Bj^lS@VXrc2gw97(gSm-nheYS-jXQ9Vh z=r{`>z%Up(@cS~T4?Nvi$d zpR%HwvGJ1R;4HdK-58Avs{b)oV_9arM``SSycE1I<`Xg{TzeL`5 z00Afkpxr%_DMXuyD|O8^kU{Eyh_b!cMEYH)i_h1SO1aWPq!T6XC}>ntGBvk6Y6uk8 z&C$$!5Zq*gXH24`jD3kEjv3;SyWJf*i4=|?EhT)!s^XR#6QdCl(RvQ^ zW+n0J&LN|jx^WgR)P4d{-xpYA3JlTnxad)myu}pV{Sd6Uo?G$zP`yX>wE$`MI1fP3 z%Y>knHB1oa+owGXwEI19HF2(oK}+gvSm@FgF6mZ1-+4SAiLc)g*1|#yPm4(QkdnRlAf`NtAo~z;e6)N(O_>+RNWS zGf#qQB8kj3tR!jb6TFfese-Vxz+bxW6}Udtion&qr%6(#x}86x4wve6_@4GjZe^)W zaxQHH?$q&9QSm&;IZK;@zIH2rOmsVcLHY@L`bb;N2c~L z_Eg=QXgA=Nw`zx(1ucn%!-9Zax?R>}B3lWYv0WhhXi`Zj4> zpv@+2BmL`E&gY79fI{V?^PJxW4!V`=5|cQ7Cqxmc>vI)ID9A0puPtS_Uuv#=X7$=w z6p#nb_&mj*7~B0E{7Ijdq$jo^E7^8}&65BfGlL+fqZXV^JpljS5W6ay;j< zt;&Y;adk<`agv-J-9BUx^y=C*PnyWZVhU^68hcgN)mgK%{xo|Fg>bvN$4F|RD|II+ zsSMSVghpcu-O^5^sdVdJ2`$&Vvd{&N13U9bSm^$zM?Y z_ZLX&*wE*=MaY=>H%ZC3D+F4N+rTbqF<{g_g&>a_W5c~iweRgFhM4DXVtfZ>x}?3t zsEqd^Oq)*zpr#$QmQpfgf}TY;OG?^ODocr5Mi(_Z1?HO|$@Y~*Mjevmu`c2*O-3<_ z-HCgTdT|1Zn$C-QiWhYyFKQ(5{*ev3Y%s+QrwYqs4}M0n(>`XG49_tH+CKoLB~YIz z_ILR$tVO0Ig`p#V|K%Ukn3E=o|eON*^o;c&e;zgVC-Mw0`|u_dm?8)hqHH)^cy+* z3!J@`voGcBm+?9c=j_eIeigMuO&i9cJc8=jjFy&#d+7N>x~O9(vWuzbF+?&wpNBhb z+!?5xVjqfoUC&3~NZI0A*(I%mT{1pI=WE|%%)l5EklIcQHhJtnnN6g%uuI195d_-* zPP`xVFg-tsduVJA*rBoaDVG}asLV?6^Ac|0CCnxnvR#Ezwfe7^o*&@3?&G;?^;|0{ zb6OG4^#|nAF6HdU;vR)$^KQxE>=m5-LeBmy5j^KsyO>EEOQ2{`&Q2W+J07vkoP9P)U&Gn&;Ow_? z_EntyHO{`9v!6}uC7j*M*{|m8S8(=Yd1apF>^~m>`x#%drY3OqQ#t#Yoc&HN{Q=JY z8nJhBMQ+4B6nU68^+zT)?#&yR-WPH9JBa;VF8v11zJ;^D%Gp2Q?0KBsOYDE=?3Zx% zCeD5@XaA71Cvx^AVqe19<2n0m&R)scqZnVBowI+1G|dBc*u_h?vYsQG(aP9dopvi_ zRpM@A62>;Ni#Z&aTs9mO$}&0;O;_x>xYvinPdAXjxC(YjyNl^A;}qgO2yN-Z;h(g2 zmdExo1*d(*E*U>W6KL-SrM><+8xCLM9;WvyyVw^qzL>x860%6NY%eFUVQVznlE(|X z8^~3&L)UzP>B%xbZHQuX>He(Cvo7P)?uyTP2ia`$#u4OlReq7z+Ze?z;-uV}+NL#j zQ_V8YW_3xcUyaH}0SdM`8cPPFDyqJmO*nWXcvd!ddEFE5=@Vzz>s_^hFCQZ{FZh4zW{zW@00ESXxI2H`4+dc9@z$|^M zwr3I&V=3|5&zM-u>DqgBRNlSyD35XO!5W)wXm?y}l+^)lB~Hc4I8W~J$RSDokV)*& zex}S=BNXO>m$j-Rm;gyA!zOhElft(t`mJ^?72QD$C^kR(rFgoLSuROlLu|NEM&zeW zHZf{0%A}@U_69m$E{*mmXOG`UHn5&;!(~kDX}1ocH0*4vu|7G-su-k3Y0tB+*+}=a zd>hI)*^v3DMGuAF0}o;1XIj zEB8{RBtGzl#>( z4_Pz*ipy-+_E4mTc4*j}80+b8Kj!?8bN)ikzfk9Y2dSY4ME-W2|2ob;j`L5``PUKu z0+GK_uaAfGfBONe&uE>$gzA$e@)zp-V>tgd&i^ScRR1Z&Khoe&{oF0@_>&}mBsF}} zlRp!4-7^@42?%T`z!N^bgt{f$O8P5uN{G!Ip5x9>+8QL~ZPET8g+79mlu52Fv1P&Bh1g4px9 z!qlCqhiRXO{hd0yOH%XNupi14rxcBb#V|=mz@@|0Ng3N+UADgb6uIzU(B~t|jY&k! zIFIVIAC|2Ikd!f=$f2KNM9Lj}UQ^SqUIlD3SP;Ew;~|STi9>N|;a%WxOqZD$b+fl< zi@-`1$7VA0BZf=ZoiY29RQvGjn94I*dq78tH0@yvB>4?~E{GzVZn-VBEyp?7A4_xc zRkOE1>5bGXjNprLb|@1g3XD;RI{xn>7bG%{qyrzw+0QuBRNm&kg!}=2R^GR$EKGQA#ga*V*%EIU)dS+-} zenNlk9gSMYd*r=Le^a1bp}##!F68H8TIztgnOkGC{Qs1$>+?rlpOTU;HMGS_&JF}b zM(n44%!Ygu9KjVB`U-a16jmnJH*2qIk9n1hdRXXZgh0g_ar;Dve)bBp`Yc@ym@bZ{&}x#e%iGV`hlQSqByZ~g^6LA`%QEEAB>uJ}zZ|+{U;otRtF(sg(jc>7qFypd$sh`(2X!iq!CZl;7)?d*wrty0pcuU=nVJp?Q>w7D+9j z5EG&<+O=r3q`KO&+H=PA+1$=;essu}+F)uja?M;y6c6rxTv!&rZTO@g@hVy_*q1OE&trw_N>YsVrkFYOG|4e{&&?@A;{#J5Q zKMOPJXP>pqX2UvIU6qcx-mGPG_p!#j;Oz8gD{wz;L!55}zH&TguYqH4#PS?_R9kR2 z)(i^(z%lT4L|fWn_$y?*f@So_u}oLLmW#g_L`Pef^eF3S+ z^(tLdyNZQ0sOKolzCBn5O#uIq{RjKQ)<#m-=OdY$;!pBB8|u;YJeA^@D?V$+y~Qv! z$A=XB{bM4Wv!n4rFtAmByY@HWk{pyE4BHMCZ_H)!MknHpqqA1cOpK*xAJJLuLx#b_ zi?POQu)L$9n5(3KBQ5Z#-B8vm-QzIduP3poJE`lxgqgbKA&G8ml@z@=JW@dnm92>n zYxnITqh~33h>v&6v|hLiTOchFDcV!eYFHVjzh(aYztKnE`vdFa&JX_o(Z?Rx{;%re zX6hKLK4d@iF$yW#{ZPsP`jC{%F@IbjIe+jUFUh@3Pqc3coP^=Rwk==L#%V<8ehAU+ zdveOv#0A`Da??FqeTcYB5EANpbSG`p^;R@i@2FBT2sG#nDG)eNV z)SWDIcs*j+r(6Dok5x1TD-kULO_YK=@t^3C-^x>$MQ5>n4UL?|FQs5i<;bpAwUba< zj^cWijgaqAm|GcwqCd=`a09gu4fRs7@g2FrLl^J z$80@{w0U4O*GtMp5IhMg#X?TGj7-LHeHp85TVO1xMbIJ^p08&)Zfy&Z4>H$(z(W@R zF#Ic@ALtnf55zQlhK1Jhek(AVGTHNTEKlK%Uw)hX(i`N;&%nMBi~BA@;Ie{MG#9A$ zR-&C-*fP-(ECYyawE!v4W5lD_uha81UPH7qn--5q4ldx_8{gvGK9qpq!;6^x^Mapa zE1_mwizID5v`!_C9!%2Wo&!cbwSX5hOvjq`?$g3Xyy&RR#=`--U4)Wd;m(r~f!ospQOxuKf@YLKHg#pVQMnsCjyVq+ALWchww6a6ax9T`W0Yshvji zD-Z9C-VIApW6oeR%q#@K0x(HjGGeG=w5yO^of<_dup{WCCp+Q5NS?AViP|;-?DxHi zwhe!e*z)Ls(FnFj&yn{!f=t&9TN6C;A>CHEA2(Ikc;_$Z*5~X8A%hhCAT;Sw)4D-+ zx0wBp?)e^w**%T7@Lad+x$YqwQ`6RfWZNoK>UrF2pKygY(joPJ^W)tlO}0Ny7u8;ZBm^|~u#3Hm7^fmP78|d=P7G-qDMih=0nf~|uSjkz8w;5Px{3WKcvzZ! zS5o~{dm-mP2bT_e4*sQ|)M3vuZe{z0#3I|X>C$1()DyHV@33-b@^bBzs%E^1oi=aJ z8R7Ogk)}23aWBeymHhJv1>|#$K#%s9TpI#$|v=~ZJGoHgE4((KG&r!&) zodFMnmF66<()jKk%Kmkb?TLn`8(lI&U)t^9)t%-`@3@>{g5hJTc4ca-E& zmi2QLh|GGNeU8REV0&8X+cbN&dk{k?gI(637_!S}Fr+~?=;T%0hulQ*H&Xm#q~NLc zt3f-0_kjTK@jCBHjCPvEFtY5&Q3hv+BlrY(gi1eWAFgw+W|EggXDOo+kzo*JP}9a! z_*-_hN{S=6Q!Z?AtZ_XnDeid5`IRI13(FF-X9rbgyQA?>%sE{G=d>xy`4(K%shyz{ zf%PlzE^t%B%6P*r(#cze%1$GJsBGhGGS?t9GzwBux5F@}Zei8>WD_*DocflOa2Rd! zDAlMsoV*(M&mNk+hsuE#z6I!V1QQ{hZ384_N%Sf-L5;fjBw(s-Op$R}rnnspP*OOJ`QG#q!RLavb~BqKl>_9l@b5rJBcqYgSMk;+H}T{ z@f}P|n@iO?8DjW)Sk1^H{&HRZ*Vgu(&V^25671hT&k8)5vba%1Xp7!HR{zjD5Ubm# zn(-)Hr#4ELdnKd&BYb^>zxSd=5^DqWnD1gR*3&R}bWjgr< z^G|j!6;E1!l6qpQ{anzF-~%AQdk~=}%6jGyq*2GI_5&1sB46187On>{?$a5QQHC-& z*e1IW_OS0}kt$a!`9&O(LiV_|EXE9{g6ANJ7zS4%Lymkn9A|X3I2uRL$m~D(|2Pa# z|H0pca?A8`zvuq)M4kL0T;JoV4&*K`Gu$PDtlV9Wco9iz+WLP%VfkcBq=uJ}>QUxI zD-%)M8&O+YgNxpBv|aa>aBCjf*BUyFxd`|hk1{`6nE-!Sz_N|v*>s2aZ`~mtFdbqn zIN?s=5Pfin@R|33g>*5)h`B-+!EZ2hu!4gp=7H8@d7w4)J{x59s4beu;;fju&{kaipLuiZoco}*EF7gr}%su`>ouJyM5QlRs zbB~UoliSdtm$_Y>$MkIf5hPRIT(rRL#4bf=|ADhl)!7Tc?orbIhy_U=_L;N-@5SKN zCPMkpeei0i7Ax>cOx#XKV*!c7;VWAG9uLqhqmL*6+s>R)KQivFAGi6QHui)v4Mj!}~-OV;Zc zn6HChUpIb5)gGhE`5TiX`0qE!Bgytpm}9a(vYt_|QvgPcWSIgb+fCU1V@7ONbE z%ejZkna$kYOxqjT-p6)1_H-`tdr;cd5CZ*wzKQtKKIGe=zv0QBb}X6~dJJNi z{t*WvGwI5bx50OWhM4}3>>;!tZ05WmLkP7unYZ^wkfAr3HNjt^GLKTZZ~mLN_ZhMi zFMh2VG_8JTLh(45u!4!%vPyc;jL!Zp_oI z!#s))OTwuhxj6d5_917${fiOjD=2iu*86w{(v%nc#Q%2pI2czW#8UJ3@RP3E^)!~{ z!3c39e-|QSh%?hMSIvng=tXqj4W&4}XxG+GwCfURMi`pL^F$WEWAQ8ga7eN?tzmhR z%|DJpad0z2V8sz+3#f*zl5rTfN!yJw@>D-K*%=>gJap++W+o=#98T(CJXpnwQhN>^ zL*kOiS>@1l7oPYOrO@N59B@*w_b19NyVhw1jPpi}AR7395n`Xk92vQU+uFqA59p6QG)5umyVj44?gw50B7?@)i}~9vwRu z7ws`r%z8eIJ&x4NLs>~+i759rk~@OS{c#?XdlbnnK&Ehf`iT0^6zcy%5wCyjuhk#_ z9Y@=SV|h8Z@p2x-MeE-7AL}2DvLe?1Dw502WT|OWx!j9L?ro48u0Nh`R2BmrIF5{jIOuGkqEPezO=_@qQKhxI}_@2WFdSJ60N-8F)$buw@6 z!!ST}*FSL4e%gw*s4<_ToDB&)ImnZ5r{oWiEcB-FJd?+lG4Pws7NGk1mT{_Gz=Q|x zrxu(p)R48n5quL960EyfTe+DOTG&j^L~f@;b?dDr;s~y!=}W0-W^d8ZxRhsOG*+y0 zH~j2ytlWya<1We(d=Phdj5c%?2B*9W9IbF_N#xWJ?ZC4*=PpMhwv{%wN&{TUYs0X{ z+W#F#V-KM;?D;byta;tChrOiWX#5CicovIN3+YG+rU5()riXKY*gGs+&{i7NFHoCB z2kM|bCheQ@#W*h_#E#%0CUjTma`*{z-4HLd)1?g@^QP-?3qOUB$YHH}3whIu zb=02F$;im(d8iL_$WH%g@-==p9$09bz)3KBMMZ|Ov=2F+RX8*?T%M(=&?(ceyeBl8 zWMhBlYFmY^A{W#BPwj5jr!hld9UIP~`m1R(X}qZ!#kgpXQ&*}n`{6=1B=O`lo}5F; zDkVesxe(q&>s{ub)ZAGmjxW(&QzSVz3Dfs9T0O|Qb0jsl)G;zwk~(tfjV>$@a$|8p zPh1|4`vi91kvmJjrszEBI-N<^j$FxRtG@v3`J61J3&?7Am2>MPd1XC=R<0rlzb&X+ zBfHc6C(b7vZx*iRN1<{UtkYs88Bc3Kx97%_$OKja`7+?SN$t5QQNUPb@Q5}n59gQQ ze#3`l@pKR8Ws%jx4(2RM5yugQVC7EfJ8T)D8f8cq+vL$M4u|(xP%{_zm?+&c9=9!y z#si`5q_F?bgV&xUDOd??_n%JbRCX`Kxt%)$$GV;02R=ZmyP+)#9DxrpzhklU?O@ae z?_*&m!4c6+y2y{jvdfq4!Fb$6d2pH+SFQXdGRKT_bliV z+11QmQ|xf9C8c8gtkbV8`n6TRw$U~6tB`JGIX)EpopzWx47-#qav9w>z zDl$xag|m(!Qi;jH1x;#VZTXI7HhO)IT8O&0KE~?KsD`$Dy%|!2mV{d-7Vm#DvHac8 zj^G?*4{Z@OO4JP~Lk5i++#IyTZNI_xjq6S+)bp+Sq-*}V) zJensr)1@Q04i_rDoiXD5mQ8?_sglCFMpD@1urwjI~uFw-aQ2hN+IoOL8Fp5fGd4p7I6qSSv6~&CNjhSkYnu$ZP)I^W7&2htOz*2H29nQnD zN}CJCGl#3Jr`)U_jK-mDRs>#$!r3;s;59sbJu6bJ!{7;O;L!HAnG%R*?D2RAjwgJF z{YP=xbUF@C>`7vKb_%*!Z$@@(_*K^=*r=r1-+dJIQ#LZ?$-zvjQ>0#Q7kb%z19;zy zOw2Q|T{wDFl6pyd0hN^Sp6}my7b;`l!yOF&6?TbvmR-oq?lE2oev}}=X7R>vJ|xiy zF)iP;Ne^dkquPdF3D)BNMWwnr!^aOVpmV?I0UaLr&wUBAkF+IMp{9ry;G(?&M&=B0>~{yc*0{e8vkcwSS;xnP`)Bog zIwpLcfY;)_DeRvptMR52}9hzArnjnS^He1Vmry+pmz@EFY^QS{Cu z95PAA`|7m&SFj+#DMLgsjxtOcNC%jyR(PMOLBqU)s}n=?`tg_{={$s`llzBXF&L_; z6qI)u$4;xTlPU+a4^bv9>TpO!dytfbV<{iQ zLg`UApAQE*k7C$^M_m+60e7~~g5H74do5>9+%G80SRkjOi6 zJw8c=PMnVU)+491XU~e#4xuAq{jcgym`Wm&SGry9|FBIL%Ca^!2SRto0j$i;JD%vZ~WZ(>-z+HZRvh=JBq%vG?K5238R z^%>W(p@~J2@ie;b4+t^mDI=&a(>%_LrGS?<=+UUUP0pUD+fXJosts+^5+@+Y0rpk) z2@r+Hn6Kbi`~haVG0%e`wasv9t3kbl1&&Q?I+y1m@%{&{LWVDpA?xZ5Gg;$fRuCuL z0y5Jf{8=DFS0j&g{4jfkow8@?Kk@UO(e)YYC>T*U9qm9HX4n51wnBos*1pB*}Q4oWl+J)^x{fVD}fHrp!uG!%ihK9r|;67#W8 zRP7%j5fZ+}Wy6K68EMV9=MBCeqNpB0dZJ48U~eHGU_CNB{Cz`X{BeK0;xqb>%}5O+ z5^Y$f*2UmnUNh$-Ojz_@)EjR3-$%G>`}y}1*DyG4ES%{zE%vF1w$WsLy>9tWnOI%2 z)643;^i>J>zs_F1#&h;Jm(I$Qm*wN#o=kdO2`kayPiR7Gpq%nOL7Xr*oL_acGplp=EgcClhw8dSK`j5UC&Hb_-e(e|0JK?r@h;XDBLD)_OeP+yN@yb zyQFyD=#{YG-lUx`rFOaW=x+HlBp7(8zl2-hX4uc51i}F%XM{wO@TNwOl{Ht>XMYMK9#sUQJ=fVjglI z1M?&)aN&{k(7a+Y6-B&63=O!_p(AQ#%Q^ z+4g?%U7rb$BRCZXNLk0@&X}jLiIacusJHB;-Ct|ygpx8n|#~0GXXNbLFUzC5aC$(LYC%~xj+S!gkr$=463rW(8h9q-c)kIk& zWtB#k6(2FNI6_ZiUzX$@(vFZcF}mR+h?G)M&ML-^bFXe^TVNAZ(@LsQj+e%05opTP*BQ<~V$ z6x@!ISMO0=t6DKIQCi_T^6W~W+3kE+a=4Z@xz!OkPVl|shD#xUK9S>beu@Od zu$-G5HzX1WNgha&RFxK^7%%8Wbr#*q>KwWtqJaYmji-Rwgm6d!UYey!(e0VBlv2v_ zzyacOI~|$Ps1P2&??HGx<7tv&e46K6My)5&EF?>j(%mh1LzPZOX{ku{s4Wy&!sdl4 zcmI==d+e;cVS3obVtTnfQA09RzV$9@bes!G#`lG=%+cH(jfs0nS@_X?k8n@BF$2ec zQQW+bHtz8;BR4*J6h2L?EJ1YRfEG_3j_+Q;3djfCiJQT>@R;on>nJ!;nT}2rB|fsbkfM zg0b;o#psUQF*Lm@ixRXc|1eTAwJarP2p$bMf;SX939!>Y_!M{~awPD8Qq(FY$a2|53z4+It^E8RD2;>u8(=Q#8i(i71f)R8nUxEJxeTRh z4^Sy;%(a(5mnTxY)U>YYbjkPv7wsAF=!V3E9*f~)7}hr!Fvfi>aEm<{#xRS-8FK@B z^~0k+LZ{5}p6k8MWaL3*RX@<*C=e=ktGQ8mv^1bFda#AE@bx$DU^3I~ za0f~NkBth^QwQ*+0+LQv^Dw;?Cs<8zEfR2S1REv8aQ5XhdYg7M7V;>vOnIGOz?ArB9mtwKqJ}~InGlZ|qMl^&8Db9I!ieai z&k)~&*@V~(!T1H!VtL>%`De!ZO%n0wDI`!Gx%~_SfT(aQmKo#=*RG@Vv6rr)X#h^N z^ENCR<-)a4xeJ)YKa5819}%Y}vKmM$r2;!#&5Z1D(b%9scZ+^)Wmo;{Yx1+~vug;L z3m;w^yhPJZew<3SAGn=7Klx#lMY;mE8<-~wp8y=D^|Jcg9|Z!>|1u@0k91ON(53MG z<`?1M|50_wpr-1|<1dgF2G4P^}zpf_^xwHgZp z7s08d9@fspuplq+5wxZRcR@VO27g8(R2PTxsaC&M1+cwMO_77t25rM%QKGt$V$)hB z8*=sws1+*vR-wU_!*%cor6_6btQf@e457Pn!Af2LywelyPfM4{bzm-ubeUI zpTomBoz=)AbdLTly!)tb)^Fi$XXYYq#poqHHcsVUVK>IlO>rga?nui(GeXCp*~a=% z9~_}WKXLzr>9*nZA=)dt^Q`4Lm(Iq2*i+0lA zNSzt0FU0*Vs6M$NjM30t@PdX*y2rfV8Y*lt@U5ZK!uLkKt`0+?Y9ZTM0^Ta%=K&9U zJLCDWYX9U`>J;-#0GaishpDDZO4)n@qi|Cns7ul%94cXp=+Gr-s$PFB`w_JLPcYu@ zR|b;b$mLT!iC#mGrUK@m05{f1rP^q+9>j+*cnL_SC6e|P^<#L)c_^$b?QP`LzC!8U zFNF&W?}yzoJ{U%CT$A%IELTV>CA< z_OjKvb8Db`#lAk;LMOjU4+(>f%racD9<@Btfp5$}Yyu#6!+uB!Cb79Ln8_|GC1OMa zPr+SBFcJTzfH|vgCwpklqefV|CQ8Nl?|&ZD=I=(86js;p1BnDl_4VklsfPDIQiEqi zFTRxlky^g4;VqWu0ii|cTXDbVQSCV{m^b1_e1CrvDA@V!xS0F<%_qUapBOXH{vKVO zs4{!wAuV=bD!P6-o)^i({OLF|jFW_)_|K(xQ4-wYSKPlOgQ4$60>a*gz8CO5Ao7cE z(p9+zvEt&`Jm-G@RK31d5sx1!;x2;ltq5cbbg}#>`*_{*^jKT~JltQ9SfXXV<}&btmy@?^^p7{-Up(S1bDq@ zGTv&{j(U)-xZcDvGYK->Q*m}G(4Mss4jzvKcluwTon-=r-?cpt5Nnp>cD&P!YD2PK z^YEad;VZ@$!!I8}l~wpK(L($U^(c-!=eK!y*5a7w$>i`-yVcL*l~!w zPOTCJVqe;cHEbKrIyg)Yu7jTBLx|KtFUyyo(#q<&;s>PEJ8rrWm*7qwpQBLyC?@T7 zd|5&}4YK6TSX++COa8*W0=^d6N8^U)RB*|W52dyRch=>i=acA*lu4*1Uf^>(roBa~ zI5w<`H=CK(PRvXG7OS!qaMY0Izzs>e&IQ$M(oTVv_{losMbS(ftFA-#fxjCuiTG?&MQWS#@@W5{ElmUW1^S>0 z{jn$(FN9$Ybs2V*Ay4vGp5z~}KgY|JhEay=jSrUkPhs_C+sPmr3~%=~eY%vsrwTm< zK5;ykosxAPJ|N+zPb;7f{U%59P%N5_$0yJ%3@WLAIiVB?Wo-^Efd=^V8q=QopQoac z;gQd!_zam756iT@jgf+{SW@@{r#9$Qmh?g|Udh4&_#sL(+BKVp! zyoo)mzEpS9Ya#3{ZF+|eaiC#%smi02#Cyh<;3HW4#0t)fz!%~xIzxfPQ%mW%2wfeG zbZW#rFBnCy3apF+L~cff8R6J-Uer$>c}Z-Z{4*}-jAB%K8or4N`FIi4GC1E;VMYaWIRHL>k2n*Us^{YeOrC4d2fX!IiWK}v1dhVI&$>2dlx1JB|V)wC3k zd<~A;WG7KoS7oQ*QN}2!slVCgzzt_2UHkBUdR4nJ2@j%BGlZ-VRzY!v*l+~sbB|gE zs{%{_AgVy_7V!;KBEaf!GLq3c>iGU8*j%Z7p~JK!oO*9~eKHI)w!R(+#pw44lZ8$e z?oSl%d$AT8U_7ufz&7CgL>?YB7QZKL`go``_)pj-!HV#<8s0@g{g=K;Dn$Ls8;0vo z4;v}@Pe{H>pY!Njuv9rbAP&8af<=2(?YG~c+Yg?f(B@w}M~5>G7tw-6QU=M3a0cx) zY@0jX$=eKDf`>DWXwwg5Pzg{z4CxdyBx4f?L)z?EnaB(Y=SA-$LuzNw(8y*eu#*=B z=T(aq(q{#(Nsy+xIvtJOkc582LvA+zz+PZalM+RnLQ5f{O{>Pc7u=p;Ld0Mi73pFI zrS`KYG9_}l#W<-E#SP{O^rlBGMG;f*(f}IW;gJ!X!ZVjc+DImz*~%h_zg*Nek`L{S zU@P^c40agAYDKV9SL$K?usruSXlH01yovVlUktn27MiXvOvsil3NHggMJB#Alx^O( zhhlKwB=)bdhi6N{0xZuc$S5r9T-d5(QF06FfKy_$3X#-Yj2O0k!hvI>rzIsHd(8g+ z0yGwysOaS2Nca+|VPiB9 z+OSfJqtOli`U_5XG-l$4cDreVGRgIP_dIBuwiITA?H}dAuAT|QK_O6C*yiH^5$@d1 zcTjN+V-wRL-BL33--4qcNMWlK>Z8**#6%XHr~1{(%(==4Fie zJMBpn|2$Mji@kezy|Uysl+gnj9vQ**Ad~hsnUSIrs@E2g2}+SS!F%Q;Z+DYZjV4v` zR(O&()5$ifsT$13g+gsymPW*Fu{-DM3h@K}k!Iq_v`Pd|KTSqSe1~|2bC3#{GlBeVcH9zi?lp-wSI@ zwrk+qkR+^<@R7OeqO&%V7O;!O*(PH%Vk|7_NGukj%Wx$78w!YHNs6!4V7kJGS+Nbs zYh&X!(5Zbg6ph4T?#4E}5f#9@?${K_Sl1t-CkY*9V&HfzYA~gwXQ$MT;Cq~57Bzo(U^fAG}g2pXP`5%2S+(-Q(Wiy6H^?)^N`Ec z2ooL+Hu`KmRv4fMUB#mA*pD2~Q~)=Ftx`6m zkydDf<4%6xy#fIyf+>Z#N|c`9?r<@G zhXXr!h)bCrEVG2gT^?~^Q;>(nUmNDKtUMj!F2S~9I>cQPkE3`!xQ7|jTy-*xmbRlbg!Awp5h-)4)8Sf< z0Vl@&_kK6KcOU~=a!IdS#llmb9u2OPJQ;#Ia(ht$TNd8@08Rx#3tt6p{5s1~bxA@N z%`4q9??)iR08ESRUT^ppOe5<&YGZmmHNyG6qw!w4q1ci~-UkoeJ)7)*f}}thHSlxQ zI9IS3_nAF-I>rhHj*V*#rDGIU$F`#j@l~S>bvgl8OzhS1Qp2W99PPkgTP83KpGWea zjf}BOe07iH>Or=;y& zO%4frNxXVOp9YX*>{MpMVP(P~XW>1vt?9z-#@EBh9k>XK5%&Bet2GlX2Gxm+E%XRR z{02foej59x-YQZYBTG|4UjS?(&H7NyIkBN;(D+&@g;{B#x#^>!p+6F&W~8NI>U!oD z@*m;x`+wW}k#lK$4fKBG2~DI{_6jC@Kk|e>pfwMpHQKpQxEQ^`{zY$Jr{ zuZ|kVw~%y17UA-|W=Z}^O8y?pBgv76xHLvEz29^R8*V@5$-jh!BL0YpsSE<@785A*i2q`F+xO1 zELiEp`@aXFnm0)`Bl+RzWeM8Z|5?;jE@~1cQRX+Lsk2)h!L1m1h|hYQOPg`d(K7Vm zPaLv`x(Y6#Uzo26hN5>X45ia?(;JWzie(FedbAYz_7QSBLtyVv6e9fG3`kME$bz&G z?HWku!J9zgbX;g7%VCTUHf83?uVWggFDUXT^BdTRlfq;*1-U)SQutl==)<}*Z^#&P zJ^0wiF?O%SXdI2vh|UO(qaCDb-;v6^*jn&l3T698pqmKATOrhL)qc}NM$O^W-+5Xo zryk%GEi%D5;tb-XZJhl^mf%{2+aSMfQtV}@3wBR+;HCl_da-R^3iHP|lAgzQ#kK-x z>VD~K_+g0Sk{wbpLNn{r!HQkTne5x$dl3h|$J)gb{}VlF>K` zXKs;+KC8{P_u3~nvlg@Qh0Rd{614<{RL%DH+BXH#alti~QMfl0=rD5Lf`H_2L;Pjzq8yu^%`0TvF8=unKXK75nJ`sv~$e%2Dk1*3+mCTmb>YaFomkia`3ZnTU;4LJGQZE^xIS7kvVM9x2vBgvKe|J#Wehjb-T^K8taP}TZzZ_>DsHfpmOJf!KfUbI--7q(LVO#D4(aP$tgFosNfY%?ir z)`dF%e}8sLPd%BX^5>qkw1gS+e&kUe>yu8+1+^&l(;KO`mYs$Fe9h0wD#Q9jbOb^G)FSj4J`z6zIduKJIFH!TXch>@VU89k zr2s013R2*5ME^u5zwU&Fk?JW%{NxMmc~ESjUvn$@#Lw~NI@}>Ug(Fq7@g~w1k5h9rjD@W3?Ph+qKf$I1Gg5+7 z92bSQHvAClk5ey-l4HImPo>601C-?d!`_=fM^$WXpjAEObaFCuAO>Uz4FZNaA%uBI zLPkg+5Kt5_2}uVcnasef1OXv81cRc2;x*2os9Y396p5mM3K}PzHF6z-a5Y|0aP0T( zsye4T5$^x5yWYRnTkCOFPWGwVU+vnpYuZ(3=&^4d#61~%CkWnm0OgB@@q&8F+*;B0 zu^)k_vICJ@%ULmYR|6!*?^^pK5Cp>~%p{Y`#!%P&A42*C?4OU;rtDASB^|=dhwWFZ zAX-?W=|8C@m3YQVyjWB{E}C#5YiRX~{?}E8sxYIc;&-VKs=eggDzwI0ml$->iMFB; zcycCQnC-`hLhfknhL-!X?HjI*{`gcd z=1Bec1;?`{gZE6BGFPXoL@>`yXmXgctY}Hs16 z5Q2x!Kd2sgO?=30csk%9AJshtkt^@U@Yy-B-IFNTU_(~8Q+xR2G&FUuKZtVG4!{-@A3@0N3^ulU* z_!NkK75lKK0t@Qns{b5_d3E)RxIOV=MNjO;3=2e@tLkgKUQu(&ZAg6T3)qG3_e`Xb zHt$#1F!jZ6tSvv>B{lwmviPR{_ul>|8j$-cUj3&dWX)ixh_x~e1{3QN zV_E#Dmv49vvz&N$Nlqs8cAt30B^euQQDmq>lC1<)J@c$<1)3A?E~M90*b8c~e4U72 zAh|n-3W4{6Kx##K6Z^H+tet}(h8pzKT5+AoTajhRMtlW~wY-J8!fxAu)LQz!!%sga zmhrf~gTYA*No)~XqPCOPmw3|0>>;^T_|aRDf!tYr6;Bn{VmuKQn1e|`ypK~*^ z2N%}-;_<8&ia4b{sjEe)oMVLbF@K{?Vd3lZ#%&aabE;aO3AmvC&_t^XMYNrKMT}_} zAcQXRftPHQz~^Q%*}ZLhQR7kGXEa?V){eV&2{s#$NWO`hIO?~IytC;cQ+|xEyTO{8 z=V|#2JlXpy3l6arNz|-fB3nI(I*6}ZuEomVyq}x65KPRU0IIN^Y z65o$skKf&;_y0#7s`>&u9T=ewS&-FU)EnD39{)n7z7)US7C7;cZ5Ra6t3A!WWft{? zabpYo*p|~&`M9%z@v67jr^ge5OQ2yM#Q_2OZ)-)f3g$U zXwUI4SP&BTeomH(C``aOguUY7XVuxGkl((UXrXB6BgluYi`{~yv)Dq%%(D9|`s>~2 zd^3YwO1~HKJU+i)qV^AeB%|Y*i8wSc{0dg*^_k97K`mX^hyt~ATub$j&l`P?mmP5z z{A;p=Tnb|Q&@2zhA9bbkhCm^xrYx@J%1nIgy)Ni=sJ3r9N&qzn3vI{65rL*lR#K6D z%7;j?p9y`cm(O5TL%s5G-x>N@$i8P%YnS0V)e-VE?zY$BSq&{7@6%I?$`438ymn&l zhnVul^`yH7OFGHd68j#SID@`hE?-eWze7FN)BeM|Fx-0k&sE}yjE`XLM-Yo*JVO?4 z+;@X4h#MjKYGLBf^a8#q%k&q--akEr2L;H$ZGMfl1y8Ds+k`yWl2Yh{opdKGdjl5j z*jS=_?s&1(MIIKs4SUOr)l>uc0Hz2%Nuip#&Gh_26x}x)S-Cv5CISr|8<2=XUv2R| zj8=v+(oeL~gJ{*rkIK2d54Bgc63TbIJwTTA#`u~a#D`7P>w2iJl>ov5SAoC+`zYDW zpJX!eF?O-PS2weno(G6*>F>aNu&Sj3m0GX-yXtW}D=AO%Wbm~%stfUcD+(Kn5}^`D zw9u+{wrEeJrD;Ft$tc4_=(*lr05N#1=JgEt^E)BY`%2+xsa&QYvB!EN$v@6uaBn!@ z^A6SHy7}mH=Dhk$yr4d1B>XAV_j>#B3a>u9+vxKMKrmLLAhF{pNzV)FLx#CBt>!HG zzvgSSXe@1h>4k2Yul>17OV1lO8`;9qrRzacah+B>r#Fm<-GBPsfQgZnc>gZ-9G-H< zP=!W9@p@`)mzEyO$Zy7jjaIsChZLP#0ue=TZm9@Hw@A=zbZ!J`MKx~JFRC*|IA^35HNZhqft-;HJ_$e;h z>!()@h2y2+B5fafEFCM&9sXvBO{X3HnGM*##U2=aFbO;TBUiu-xSfPuFYJ8bHZVTD zl!lcVe<`D;TWChzoKWP<+G#GYqCZPjn_>bFKG(TBj=8yg5@%V{}r07>qjz?s?_-)9Oc9UN>vk{MaIa_YEVR9)# zbjybjM%}6h+T`_AO=3Qv1h{FGhKCBUyPWpo3G2y5=<7Q_i{F#TsCgxRMpE>bv}#Dj z&6B;J071OieLRQPaM^JLv+%pg3QVv z@BxXm+H2wvQ?-ufDtxk*5V(!fIppb#XV#}WDG}H!-)!T`;Pc~{ZPCb6+wX1Gr#{=Z zogWEV*NJ9Cqn#gJgn+l5)4fEv?uqzxCw`^`pBdkRZy(?rT=n9Ufr-dOzH>^Bc^bY+ z6_qw>4!%@-(;lPo)P>;_fy0`p;b2ss(R*aoF>fEB*WA$w@Nh;G?Ry*jV7Ac@LZ~0? zzd%303sST(UbVetBvpEC6}2X``$K8`mB}^3#!s!AGafI8dR7+U$4Nrgu7XAxm`EZs zYUcFD-Jhb~BZbmJ-*x0hiuRvg^H1E0+LBm{_Z@4C>#?z_y2GtTiF~?)XbjX7&S0NJ z`nh7e7ju(@#e^4&zVdEY^p$C- z>XvQL#K(m-pNIT1o9b3AtJCXB9rV!(G1CdJsz$@O+j8JIJoxo_=?7?e0&fA&Yoo=B zPk$Z8i=8;cS{fd0NGP^E<2q9mC_Ohp)TP3-gG1pcMMn}135|v96BGH#oiLi$dz1bE-d|5Q{1B4oZQ#ONGFOh`1LO2ebO?6A)BE9@ z1Zv>#0((#gpw|xYxOOXb30kC|g&ERb@V0-r>!VsjZfZcZXkqw-PR-0lw6Y^D!=M-1 zKko1$LJTl3r*S+UsAbg62y3J%KSM*ID_YC0M(M%I&1&9pZ?%}tMe zzb~}@u2O1EJ#@`=fSr0q`E&8&`zR+bp$3g#1HBaO^U zZ9D0G-m(b{6&c$FuP)Gr$n}Veug14mQ|NJ~+N?}^Mz=P>QJ2bVCc$w{g44S^^#$q+ z!u#zEZ!aBVHT`&uP5cH!RUYh4t}Hd{xd-tzn4|l!sb+kr1b*tn=&W$P7K9OreTKU3 zL*K$w4^nx-KOp(3;O`r1qy(~#kShqev1JboZN6`S{@|WNAJU_t1jW$Wt#@iu9N15< zxzd5}!;1D?>xW(5)Y_?;sWldC<>RX~HP@jlCE$mX=sgwIE!~7rGqRhJO$J^Jh!_X{pm@ zJXn5Aic{l3AcE%`KYL#&{TL*my}oyjwvjWVocf5|KkzZ9uz&k-wD_@3@A!4HlSo{R zl8g0l{FT^wikXGUf;xfv;!=Fg@2HnSGZ3AX-tP~xf6LVQ(BZ{Dtd%{YKUV!tJYn@+ zA_hB8*yl7srjGiw>RVy@xrXfz`V^QJ*hk;fu#b3tY6oMGIWCz(ouE|H%Rz z4>HYnm$=Id^H{~wib{7e%Wzjz40#{`zpl%mL7ZlE~D$lJfEG=;r6p{*QCHd|p zuF?VlsBo7rg4n_mANYB33v$czW$xwfvZBJgT+%{aR-z<~O{prL2T>5Lgc`ug1?BGC zd~EW`!;32@M1l%e8B*mH6;e?oRN}IhmgFr!xeAv_?aN9FfrzZA%q_13zBF%PKUYC% zxhoeolgVWkUilSnls~_Mj8R@COXyyL+zN%M&Wl@|TV7mMCXC?&6$(vP zSx{P0>00b|~-$n(5g$5N2SJcUTM7C+ZLbSBHArN`Vh-A^^QB2V?lgmqs zlgdi-7O;HPN11GZEZto)AKh5>(#rDOl8W3ssuxxX7Rz*(=b^vQ7z4=S^1@1Y1zU_* zhE`DFuBglsd#PRXhqE<1a4baqxH%AH+UTvn7eB`bSmc3R1z(uMBww5-b5 z%Br#=ciN=P11$>x~mPAK7&{@w^I~ffJiP%!U(tEv!3EJI+gRUX7FH!vdT%tQF#q}U1%##Y?jb>I@ws9*a%{QII%~_uE$9;2X^E{SO>ik zXAsU5oO5wT;Jgec@p|E0jdMIsY&kF*mOJ6>jFYw^B5_W}iR}RNM(TA#Di-IKWmlBt z=D7#wVbm+A7(BnUG(WN*8^}uMUF*)PtQeeET2)dRiO`_&h57wl<6Tj#VwoU|N--~B zTr7l7u*{A5FMsstLUbq$`o(<*njA4nk}p9{2jZ(RTMi$VU5V#M= zpOKcCo|GLwaYot|N!inrrp-*snvvzA8Q7JZmseVz57(k-=>#_2o#!rGjXq++ZkPFBn$=Ysmm^BH3<|Jpcexd=T;-raDe1mSuSsO(s$5z|U7E?U z2)>L^B;PfqG~b<;PhQtj!=EO1uUu;A>QhujPsW((79$^Woyl#(ObLf6_kSS*{ihV} z7&$nF^Giy}Cs!_=P>yn#SptO+nRy8dn#PMB6o_r z(x*ghHuRtCEo`|PBYX*FRk7)fh_lH6kOX-N{=-sq^97!nMV`=_3Rx8FGyN@xRf;ltevC zjg8SUZ44y~>+?S*=6_Vu2mRN}DWkHp=a*Dv=Pg+h9RuSPmI`~#t13v#%c_iy&Vv)0 zjb4UDL0TRr_x2LJ&cF!M6Hu+BJc%trV=pZi>quG!z);zRXh(3(T>fw~X?54mNvo)u zhni*+eV2yJ={QA7-8)Qv09iwg^uVm-5zrZ^NsqT%nD&QVO8q)99@ z9-b`WqW&|4xFN+q`u3}?dj@~<-b)DU(q8P<(zZ2-wwwh5;UlEk_yp8>`CM2%d+Tz#U3E@27jQxh`c zXBh(oTmlSO=#G8zu}XnB_Kp#&B%7zdc19^A(V7j+Rvj03gs17)UMqqf`*)p+cIo{SFwh?Hr zWU0|UjZr>Jc3(9hOqrRU?llJOCoC$=mkmlzr(#=1tlf)pm!eszBYL=+G^DtAn7qwl z&L1i}-qkwh44m-0fy&JAcp~kL?V5qtX+Rr67l1nFcs!fo%=ZP2f>XQ?v3ae&}#eD4V~8Po>He;ythUIV9m3Frr)t)MPA=6<>O5C!Ospr=9q4H|_- zz&X$_;aL9(8i~b$Z60pff#!gogY#VtdIpP;%sh{0I~D}3g&xmQ(6SPbX9FDg2GA|g zrwOzhEj;ib>R6`9b>Yr*HR7W{H-pB3ZU=1u{Q$HX z^fYKIs90#=c3c?JXM&CdEdxyltq08kZ3f*2%5Xz_7ibh{6KEzVefOXm)P{02fOZCL z1RV&<=x#Zv3p58b6SM);iJQ<(pgEu}=(`JaCukFHyf=Y1;~|RQL0fU-KGGlh<9V4x z&|RQqppBqwK&$cW+%BScVxyaKb2lQRgCeU-Bu1&Bv+5^3BoC+GX8TAX=1iBv7bsOwK@pr=BsHa_bK`+o&&=$nU zZ9}~v9CtU$0UGsplmqqH3OWO{@gB4*(B^w#w-Cs?&*SM0nghBE_%hI!L3e>RgSLXM z0iM1enF?GJ=*yJuL60X8?bEdbuP}i|Jqr6#co*~qzZ!HKXe;QKpi#R$o;heoaiC?O znV@l?^`P58bDs2gj!+oXiN&w$Deyt7_W%z{pP^m@TJ|)`gZAGHx(#&KUXQ00)b%Xd z4=q%mL-|0Rji@&)fOB4g-5|FNv<0*g^eE)S9fZ9}{vp%{@HvNJ58$g`Lw=ynH_%={ z<3JlhquxY%&}Ps?^sl%kv@6gC(Dk(Feh2x2M!g3dXwGr82P|$IK+{2Yf#%R+_kHva z&^XX-p!J}Qpw17_571woAEKXuHh|`XMtubRK$|{+zM!q2!;a{Ojm_v+pv|DqgSx&z z`5`9?v;}n635)~ir%nGvzM!q3m7wfP=nEPJ`aH#hIwy} zTmxt~&|RRJz`4H0_y9@=nVk;4Y&zphoV;tG=BUS}0L9auLh7|1&kzD6YG@&H|6&-Z zD^>PQ7VJz8?mQ_(U+k!66S|DNNy$0OvGoRFB=D8HsIWX zN4wA!#6fWlI5+#m4Mg}Uob`yqqfB^eFW7mLWnz$D{A%mm04P66zlunTo`L_U6F|Pi z*$8|z;c-yhIh>~vhi)zoiVH-!TM&n?BMuk-yAby!;?gL_$SYxkbtz>MuM1g;z&P=U zCYq=?NY*UGb@PeqjkqGjMItVRP=+k%eI3b4){{wLO1l}jMvUngn#4hI+YvVwY0+K8 zL3Q&y;!+VO>PN_%6yyipu7V&+^9lH~+NGfn{pbIOH1rDtmEil9g&wl3_KBmsMRW`ky@)%Xz9f?lzAQ6cv_$Q$?#b9PGuk87JK1nM(o_B0 zNU~wW#5(H+ybEHtRLQCb--YuN>Tq!ur^|6yhQg^)k-Rc!OsTsIAn{FD1xt;s)z#n`N^S zCCUMaZ&{-uQ%4V5N zxuol)&nLi~gTCCvpr1^=*}Bn&*S!5Kb;=CF4h|de@E86kEQT>Q4A{m}k0$}wY?-nd zE-BAU@XmmjOT0;jJ?pH=8*Hebc<46i;Gv_(L_1#r?8q{2f1~vEh#Q8ueU#p)U$p5& z7*NzjqP`SD*f6l42lfcC)R#?cB9$+N3YfZDvn-}EChM6*Xe!6vBl;oQMLm3&P^7ng zfR=9LGkK#`R=afvSH=J z4jQM{pd8LM-g&}>xGjhaM4TJfvW&^1jK;W2nCF3+1x!XeOs*;wVVZ$i^FPQTAC!E* z3(28&841kqz&vT@h4P?&(5|U|atuQfb_THZYdxOHXa{CpPLgF$T${?UD*Ew z=Gh3UhcA!@M{k_8c3?N-fli7r`>5z+`ADCJ4l3%g8`@GNa6c2SO&dS8XOTfqAS>!dbw z#SG*H9vx(-=MmTr-`bcbNhYlW9za|SfrQTaLMHJ}gLmXSyh!jI5Hc2JZ8g)OeiNzA zCT*~%VIp{4)-Yj*QHJ$$9+G*;xesGhfvf<_0@9Rhk^}5!VBhqW>+RQ52tQS~Tupc? zQ$6tc(6Nwgh=b;x2PnS_*dhw7u~eT}b6kq{X0yQIH|lDRkL|a6ZBK2Z6@B!}DIU)V zT-#cu$3uBJ;Sjxhi^oHK+qZ1jKtUIxqQE}`{@8Z>0xAFwvd;`)oVVe5Q4@nXP|VSm ziB#SUJxQRcEuMq!4>VwXgKJv_^boqs@vKN1Q?yxH?|lMXF5zbT;4n8VQ8?1S33=O) zcPg%ZWi3XIlwT|Hv3`m(+i1Gd&Dud&C{2#x^~f&}a(;%LY`+D1ZJKJ>Gz|mjA7a>_ zgbqhGO+?>3l7Ww!;M&$j+LY?&6Ub`Z;_>)V{pg17)4lC034_8UH7EcdiIWZ=UnmrQ zmd{x1hq2gRXWJ-!1j=Iy>T)Eg?RDsigW_hO-OR#T^Glioo-@iY72~ihgY3fAgJKp) z)=DU(enm#??V8YRa zV+n60ycvH8F=Ff|dwl>or=Re6mXjP~JV;aann{VJy-05xhKxAaV?0glQz=i(wZ7x_ z!-jVw=l7k^KMp$PQ`*KhO?eTPv2g`M4 zTMpScs9n2IXJe7)i_|U`8hK)z5I$8Z`Fog+&QigWb;}&0@bINf>VI1xa|yz>JSmgP zO?xwYAMkjtHR6qOh;cu8gB_E#C51%A>!jNjD0u{OgfBk9tK0LC(+oKul5RtMbW6C| znkJoXs{91e!&6abLP@FH5;Xq5K_=Cc?Q$uTY_*={Byd#7*?s7|OXt$=MrzGakekj$6HbSE0-4D9RB4<1Q5Y3MsQTc^u%Ku(z` zMzU@VR3p|ER37r?NbgLffB6ygEnnY9jW-!oN4c_U$o?yUb?otYFpPP1Hhg5|Sf3D0 zFHxs{y%YEa*fZ*fYqN|w$Q(f$+mC|31pM!O`IE%j>$t2%>06uuE)IK651Tmn#mYCG zzS@tuC>}@KJrP=$dBp zVr@vXQ#`p{!e`hFoO2)c=FVfoNur&fmPUjavg6CZ$35@y^z_C1`uSgpnxf@{z@H)f z3)qYE9j8B+T zEYwEN02c>+%c=aL9xzV(jCYntWbvuaTv&3Sfy_Thrnx^L*P}NP4691Qr2==f(c@V~ zIH8~E6N>D~M<84oaKm2w&p4{nEx>I9uEDoX(GOFoA1dGbcGU_F6HI`q#aBQye{LwWeKM7~-lCM{YG8go{Mn3dCX96bIRDEaH|Nk-n1I zCb4%ksm_+P!9E$2$6ZEogp4BK7ogqI{6PoFtwvlW;!sp^P~2w3l_9RLiX;1ON8E-P z=eIBQmpHVSBBa@mYg>-Z#|AfBlQ-J1=^zJGOCqV1qE{--U=sE_=9-)oX;0fwq{Tsb zc7viHK<4>uO8l|lp96m^CGfF1tpyShH3$4zucL$O`;E}7fl;F6M;F0mcQSrf%3Bj&};LZub&V*pOCVBvJXm8(WZL^n7o57^Px#U8KBD8pUtQ_Qf3PaO*A zID3u8DsfTA?ayj#54Yb7n{xZN8mqR3e5SGcZT81B_NvYPs>U|h?YC*{4!iwrjXh%T z0q!GyglzT`sgO+nCyEI*x=n(}T>EEMR)c!5vUm7X{8ua6W2FG8c^UYgyJqtAVqC04 zuKsK{w>SE;O&0qH{;bYsKkCn(wApX-XVrH5Q~vl?;g~-h>{YwH1{gp44-WpPM#zU8 zcEq1{P+H_|l-<6aL$HiMevSbMrP^nSyvd*P+!f6)FTurg+`h@m(Kgmv`P~-#4lA{R zyRGa~i+zt3HZY}7noD?KH~STAA|fli43a+>!3_H~LcVCGB!4j?U+0j+PjdT^;8$ zh<`z|uL)ppIRcLOvu1}KF{}LpfV|(IkT3XCDzf@Q2n7up2s+;WC}$hF{TbP}sKUSs z7;66qXS2pXC}TS!_Tq8T0v9cC(E=AOaM1!6EpX8S7cFqn0v9cC(E=AOaM1$)pR<6o zLaO8vH>t6IcAX5DDcYcDlcM4UPe7W=+ZLsn9&*9as^m3`&1dZGRZ3i$qPv!<@FGcf zsdyQ}KAMsv9*#t0^%BWxFQ;LtjL*D)oX8ZZPrc$t8FDrmIY}C)aJ#BxxJl7CMGf>U zg=0#d%b@LWj#QcNt_NhwRz<5HRQV~|c&`jcsj#y_hK>JGN)CHm##*l8;G{F`U3Io^|;V{V@PwU`KbMT<5c5%lN!%k6>V%cFEy!f<_%I} z!#YXJZZvX`wEA~Rn~m{Xu^YvWQ!lnzh4HiF-bh@z=%K0e9H|P|x?3_cpF9uf|1c`2 zonGzBXJqZ#Bd?6{+=y>a%RFskb{RKXRCJRH$EkV4KsQ+0+N;qgOq}+58R+)(870t& zZ>9UoIE?U`u(siQ+l5kTQXq2LHie@UB zqiC6;)r!_D+MwtzMH>}uQnXpoRz=yBDt|>?ibg3Kr)Z|4If|AkDpUX8|94~>GY93> zdO+sbiYKPzF%%JW(y&S=jk|OjVM_g<&bS0ToPxukhFlSee>9z%adEg#nK*H@D{|&M zd|0T;HEM9o;HW{-BdSC&`i7xVgQJG^lhJG&#(X*K%fZ`KA%(so32VMaUOb}0#uDG0 z`YI*E2pdavm5h}sezZz&xL{OtIt*9Km^uwtD^0SQt4dyks<5#%H^MoJpQ8B2Qof@K z8%z2jDr_v_4Zg9IH~7Yuf+4?bkxXcW>s5H1Azy_Jd4>yV$TM8erxf0BRnt{C(=9I! zsj#tCk)*=L7KnJo4ROZShv6|9TPjAlak)&Gpwc^6$ctPRu2x~g-t{UhUNr+I^Lhz9 zr|^c$ORtI1VYs~FH86w?SD0S&q9dwa(zhgG#@3Q}O$%|2MUp|UWYOW=Bx$>qg^a|1 zf?HTxfkinDIk!mGOx582mMz2ddJi3qf0r~~66U-|Ui_@W#uk@RKPuWJ8*pV|vv*om ze$EET>ZW|J?Kv_$LK0?d;TW!t;rhlXzOnUVgc~1}j6$WavDNmU^;tX4rt~qkex6dk zU2~3QUC4hr}0UdUU{JS%z+GFNS}1DEiC48yV8g4k$A(^ZC`$4 zNnn&;qP_oj3VBPG8}f`TtivG^Gc-?9dL5gNs8=L4T+cWaHu`_P3af6w=vUV15RdhP zwl9C?tAfpp_8Rq?42ws<1cKK=} zeVN))t5gHx5tV+vN@8ra8SP8F#|@r%Y!}qnn!QkcZ4>zw&vGbzjV-t5ReOnY%Zv;c z-Ppo2^f$KTjIgmaXV|~2MW#3OYhVAymhpx3OG3|SJSMZaDNfzxV{8UVmO*lADhrDocq!6C341MwM%T`0RBz;wy1Edy#smZQ0ap8F1uUi%AEvd~9nA`l<~w$SfUfI70glL?BQE0z*HoKp;p2 zoS{SGIU5)(0%4)|pkM<-M4)r%W=uN+og&aJ^t0Q*2^9fX=zB31HZUxZ${87YJPNQ& zLaL!n6w^L~hPvYcQk-I5;PihQ75rXYTt%hhY)aiV7B=Xf;7y2{61|tRK@EXqgDE?< zFgEDkP!c@lX2LuqF)@UBTw)$2%o75$k?$OUKnE^3-9yJ(m~(Knvj_aZ&`IwxHaO-o zx@MuvrdrtGVItswdS{WZbL?UOVy$%Do$09DA>odPDdoGraW&zz|PEG(+4Xl2u=RlEkSFchBtv_wWF@<;!$GW@Zkl)u5oN!_C9dN%4h zD%m0851qkvil`4JLZ7Ccs5qEQ30a|@3+judZA0H8y-wG_DaJ9f3MHUTd1O<-+m%N~9ghE~5%wV3-kyW^jX?Ew1;f=DHo zEW=QoXOe_R2LQA3jfy21p~7|y2Oi-FhgYOdXl_{BKIbS5&A^)tOo4+zQQ z8hyfuUbFuTV8k~76mhN3SDZa-0))Pz4yGTVidxCF%Eg?0WCFw${bT)`kHG%dB)&~8 zR-#vPZ5@86h+eao`H3s~$NC3j@b=4bbUb9D*K_Udr#TyLqG@Il>6jF^for#73;9YD zKxLQK>@f@r0KZLKqi^QWP_mdnLVNnhV$Li_c7NyE$>;D&4S09pl+7>&wasFx;pqC^ z%Qc?G*iP^cnS4`-k2z!dZG^Z7xwac)UgVxSn00HdG5l!K~F-N?1Bs{o)EPbZlGp|S)V=bw*d?PXk6T*LyAHwW+U~e{$`PLD1rBV1G05qI!h+e6$F% zXd4$obf}K+YU7lm1=I)C&7zI^9Rf!Hk#3@dENYFuc}H5b#T_7U9$>{LG~*O%RTgHV zMY|5mMZOx$TTMU^%D^E@oiB?Im0=gMtAqyYS9L*#TZWMx&Y9}0C7>Z64YqX>f;q?0sxat5Lt^! z(CZfMh9WK{6+Dp3&Gf7ZatM+Oi1$rESXH5{9iaDw~ zqhzD4+V$6{{{IdD9~vOVPq1p&KB{{BkKp}6d@+R5hbfugB)km|2UUz39WfzYic@GJ zK3vKCrdze!Z&&GKz#Bz;k-q=K%aQ-Qs4w8satD0@&Tlq^9p(bVa{w$bh4sIez`3zs zd%^iu&GM+k@Hzl*H6=U3@=+zlRxKr4X2>4{?@3dbY;s$0oHG`tSHTfO{~&x8M%ReLE! z@gD>4Ns}Kj(Q0LW&snvdsWAPki2smyriUTtXo)&v)qd=O{_#B!zqUcK2Qi`jG)_GH0ZqxFrxd8IhK%b=)rioZqZYA>@Ytyc-Q&Q=b`>r^J z3R0@TOtWd5hR6*0Fz_c3#w*A1@9{8Vu1!1sF9o^^fNTTAB)`a}T{(_R^_POTlK7&m zj>meVE*IN0Cw`WbO2xN=caJx{;NNJ|GJjC%p9SxLH~s#bVV-)M_S<+h=zIv?mqvOu zd1z`_S4r&yB7g{%Y>U# zn?inX)BfF4Ax{DIa~q@r!T){p4h0gQ%!KFfty|fRWX1t@?chhMFr$G=GLfRh5wo8} z`%AKG{+rO+XMLq zEw^js4yE~P0DNwO!~|)&NX#MNwRUavASLq`K>e{QkOlRzn?T-W*CHk>!IuFwxD8T? z+iBNsTA)Dm%Ka=8WI6;2dBm=L^qxYN19iQLlr3f3d$8M|cI`VXXT%(I2LL-wkQkhO zWD0n?pZ5043VsOC<89$Sg6I2bh2N@LqfeaDH#dChR~lW&yunX9bV4D!05$BdNZ-aN z(%j~!^}za1RMZsU^V+8Iv8;e^_tVZ|J5Io_2ej_5aOM!mMnCOoc+CR&Fi_98MYgxc z+kV=dWHp5!2lQ(bPFJ!O_YWlRz9@nWYHNhj?>3Dlnax{UYZtv zBa`(r0;mKNNf{_mtfq~XHqYyaT72aoc zA$8lKX-oI3G~GgewcEcj6)a!tMY$ovn9YelC zcWZHIF};)%_Y+V7SP)4kN7R9-4~tkf4e)zPCe)?#vtlKFVL4_MU>j3+R_7+?)v&@+yDLPgjQc6R2QpT}VUtm`upL z)?Z7({3cY01Zt#-q&ic%zf8(5_SbI1%r21AftqI`eR3Dbt^V4mCWTx9)Fu;Y=I$%_ zVSjB4CQc#vQ9z&jD;)JfD(v;w3M!NV=vS$~GLb&YPRT>f9rD)}yrz&IphCJD2Jlf< zAW!;hFI=UN{eT*8BHJq~;Aj1{hu>E4S%5D1E1Wq5QV-B3%uvW1fx5*+`Y7vp3eBWT zfVOs~+=$~lfqLFV`Y0=q;{vohv9b}SIu6t+6WLx_0iPV8MSr9$Yww0n&*1z^GZ4t^ z0IesM@FwItBLecc0@6nK?hws z@i`YCB<4>7b!WKwek%7G`KLg&m`Ey?0^O)<*F2{{mI(ZK8ctbu zQ=FP$h0JZbcI9Y`*uUh_fM#9*?(1KOgpcdmcYjy;T#H0iWgF8G z`=jNsUZKy36w7unb~(^vjTEGVOd+aW{F5n0(Bk(;|6W+4Uj=jtrFaeK^X0Mqa>^rY zH>&DK|B`eIs|C8jNO8VAM2Z+Hho8p%=eFVwDd2AyNzRiAi=i?Q`Xw}p(?I@ipwE*5 z3+_A+zcm7TWL9G*s02pHY{UXi+-KA18`$g~PWR<*#HHWRmHH)^X#9p&>yrh&Nk1)U zjjkW3_zikrLF@Fff^O8a1ie|mR?toQW&FD$uK!EW9eU6QBBC;=UIKCp!@Wz1bt3lCg}6}or3Py_X+xf z{6d;%a$eU* z33^n&O3-6^xu9?8H!J$Mpl|BO6g@3yldhkj^i6tyLEqBT6kQcTof6ZN2a}akVtVsnGH*&uBoCI!`|)6zygv`7 zW8o|(6^8z$@d=S{qWtc{XPZ=aK3aXT)_zn!S6v@!dD8&R^56_?yjSnrw)Vd46cX57%)4IpZ zh+v`=bb(Ub4z`n?o{Igm3q@%^Qab+Gc*?HE5%41aJLc8lFZ&1eIgb5PKKzYnzlKhrb;Vus`0y?r6(o+NG3&FM)aZh)Dt6zgUKgPU!(3AiADYs8jlYFZZKn z-lCN6kwm8L#`TIYY$kP@8cRsdx=+M@7w`0JKv&H42_%%Qw@_TCeZjj?x)4NLn~_>7 z#k5m^tmPv=Lv|yt3h2HMt`r}c9Wb7fyYLSU;@(LRIWjL`I>ia6h;_eZ9^vK(6i^(2 z@iE`niMW+DG^o#&7(jV&FCI9zKb{hxE!W@yTys6c*%ko#@07dcOQdiGzevLp?@9iN zM$888zK#VC;o5%OzM@9_8l@nxOwquLDp_z0*Y^BdcD--g@_UeH8axJfxN%$T9%K>H z4@n)AUi_n$zaqn}CQ4IZ9tl+aAv^EaT;u?ManNmzOSe$@Ti5}hYTtjd! z*A}gU9DwNO`8ZwpWM0R8n){ZK%!dRD1Dd&3!PN}z!+TOuHHz^<%-EnvaxxR!mX%%n%pT%@Sw8ht02q-Pl^yly4yvjw9m55AQLreng8)x8b2 zK?dsx-i0!732jAn-^P3Pg%76@Q&x8a*WO$ptNU3>L139eR`&y38+V_q?ho7YWp!`o z+HpJlSlHlC;`gQW;-61-Kh3p>AX(j)4p4km-FV*Nht4nul8rZ5vbu%Zvbx{kS{&~C z4g@HVKy=}oiKy=5TstsCg4Ul8B&z!}uALf-M0`TU7UVTv8BhexoPok%GqSBSn0Io+#)P|t^^lpMq*0%_Ly8eKm8Tu|kr|8cMnyF6{xM}(@qGMw9xq=SY@Bf;@BlH(Q zox3qI#Cp2D3>!GD*eV@9c@WKL@i8xBkqT|5okZ z+30)!G?;QGVj3;({Kn4HXJIDy8=I%U06BhR-TIgoq6PX?LFemkK^N#N1TEBW74%wt zhoB4fMnQ}86M`1&mXnnJI=#D~<@!WHEA>1-0=P*Xwj+%WrJ0ezTx;`Zhst)^~&U`6LU*(bn@o+Lm@z z{tG>#o(Iu_xyRzk2t3ENnf)y6#9&MUK=7}Ti1)-5bJ0V4S}hMEJ88sp(X*S{Jv@lI zp-lcN*FHjJQu3@e$vFj?>-X(QyOjrhi8enyVk7*U_qg@~ZY!@c(Uex^*n^&S(0<|C zzdzxObl66q)6j_Z`0Nj)wOF*B=)t7RGbYPL&YV`qgJ^nm(X*M_tvrYp`K}$;gY!6d zPzi#~^?dxUEAaU6xFPx{QR>mSal^Y1o`;6r2#;oTho2x^KB+n`wzC*>LO+GGJ8n$J z5F~N*TBai~K6LRfAc)AoX}#(c1ke>HjC_c0+z2UmfJl%K`psE1=Tfk%j1(-Eo)8(A zqV)|%1yJgZ__vwZ*$~KL>Cv8XleO=DmD%vezf%F0QAG zh>Vbj^PxA7M9g5E)*0wktdYO}EoTwe+q-sE?tLQh7LplOkm^kHM?`+-TR7{7+#=RR zvYR+^_#N4Gzv{G&IU{Zfcw{JJy(kc|**?dCEh!|qh2$(E5t4I**B5d21Y%QhPVsVY!)|TF^Y%f{aYhy{0H?_0 z{!J{7A`S#wj!5gR1*_I%zszY_9C0X|bYj+*`Jo929_~igby%6U5Cw?;1kW5fBboy~ ziot+Mfru0K8my)GTafcU$*QA5NY+>OLGaf3X+-~SuzajIKv?lR`=Qs7J`@6b;uPt9 zLBfo`+pok^uY5QFV+{~<2s?6a?~R5kD(4FD<`91iDd7;7v~l|yEX2u_d=YpnynJCT z2e(&YtC!5hZwGIi$-kY`VlqPK!TK=imhor6+;0MMgu$Hhl?Ik0>=nwT!I(zXb3-HE zS+Ltkx!$FY*kM@aRk@H+*pT7$O#ZBCoY}%AAA>_1R`xM08#XTmL&*KS1uGfA*!_GS zEQsgRS03jNqB^Q^EMYgaBr`+mR>w+`+CK|pN!TpBWW&RLf`e=c3+WHp_w#!$hae$o z`MZWB_h~~?@equDb7RpAEW@Y6z`bW%bUp^*2nzPjwrDdsL_Urzp2BI}L3WLZC0>q2 zYn_B7uOa?DgD0oCxgv3%MGIeztodnh&l(8+1c`V>%%#2aEkUnic-ljC!#h&8I7KEB z_C9xISXl1`maZqiM)Tr}u|3hd&=N*2GSk*W=GbrXR#WfCc-PNSD}3y~P9n6CcOgq- z`+mZ7{V-(vO~}%p6Lf~$Je)8`|4@Y8`WZnN=pnF)--JTF4``p7sVMaDf7k=}K_AyY zy4l$9-S$f;S95L7ia(o*r}j{d{U12OS!l`-!t&UNuMud}zK7ZV+z#`cMC=(Vm2C$? zBcZp~K{xk(^Y_A`v=wm{H$h{?r(iW|A7X!)JUfA-6&rX*Iok%_9sEsP#n0D<=Rj3L z^DO+!!)e`wnO0PU_39`zqlhL#USq+7!4_s&3PjC$P=DQwX2pxqBtHZ84!+QjvxKAC z1G|t9WzQS&?{yNBft>*tejt&6i?0Xt7ooX4To#J}|<-Q)5KOPFhHheI}tfICY^ zSlPt7o@CPTQ<_i*<2s~)gpWYD3tq%=jqh*?hzRe-p1Es6hsQuD?7SR9`o!Irk>cZ@ z2uIq4j*oy$C*JXR3!Av-GOD)m^dzopV#nWf+&Lh*L&ic*V#odoZp^$6jW8VpxVHerH^jTyRt_d+>#pLHvmD1^5laADysyM^#b zjEN5c_!`b8oYt^5!av}&c}3FMYj=)e+6F-S{CEj6NVfC9*inobI&94GsIZ?kWH9I;#c&_ zz<%7YA%x`E*SQWZ1W!o`=)SDMhKsa-jM1oq6Yv&z%H+UN2pkfFWXj}A55l1xga~UC z#Bp+Kv9ogya#-lUmqO^|;UVB6^$!zh+!_`5AcAHEVy-Y-2c{4B@E zYYB|gI^3*4f|=WPaKA~lclk?CA@{BYegWDe2ye86H*(gs%x}mZgfQ5qUJ;h`8rpv9 zm0?{V$uD)53SXt@)q>veYIj&fyu_B4=Il2H)7GzH$S-UmR^B{p10EE#ge5|tHS7WS ze73L{ymMz~@#{ex*75$!Aj~!37n&F$NbH_nr>;?+^?l%PCrlx+2YibO&H9l2%qZx&AJGSmoUXX_I6(c^a;TH4SEHTqTP&HE!V3fQ z0H>?XcjHwcO0<>=#kxO(Cz74kuY)^`M>E=w_HAwP|A@S`UU%LDDQ7J=KZ*xJkzh9^ z3d05x>s49;&X2aIF=#a-_7u*C_%JvF)*mjRh?UfP6%dv{7bsEz-h>=ii5UP%Kc?hv zq~v9kTry{(Rs0K#b0%{UF+*EgVVwOzWOzp}l43nz>0Qd$r4Zg5rxYag_=JCjwV3sw zWoS8MTbvfMOgu0t29ABo-4Jo~9IBj{*ML!IFqLY6WU0T zpecA0aVC?Xt^o8kLE`qSBN#i6;j_4wycgpa#s?k;Kr(?=k}Bdg>F_;4`=L0TkUQZC z=Wy-vSrWsG0jw~=S@YeMEPMgi3Qs709eB5z{QigGc7;C^^lw-MZ&)JU@jZs0@M5lo z4z{qhRFDIReT7nxITXK~YnxVZR!jWP!TXB%LOr>V4qwEbt1yz&G726#JOrE);HbI< z8C=h`lv}tc7I%Tym-r%si0`|BkGmc7U?e^k@hJw6lNIE{qv3aOt?x1b=7PDv1d!#~ zXIxY#-uT?I3W$~9{>?;eBE;unriHWJk+zydbv+2guC}Ok*sp_i-mx?dLC<{?%#Uzp z-aDQ%vX^WgLM5?Mq*3yk?8Gv`WE#y$-6vg%<`O<8a3U&eTp%2W@bRJZry>qs59@-{ zN;{@<1`407U6GI7X2gyn&N6Vgn7d5zOrwnBBhiT*;Y;+Jl90uBv=0!z+>~Q4*PCfZ*M#-H{IMb|aeFmtb+a zQq68d&^!cq?5C$tM_W4_bHN_e2L6fIlSTq2*>`q$FN+H?+yX@%IIUMuRU%XU|mjZp^0Q~>u}e#7@>$A2UfC~S~xf1_h?@|0oH6p7Z@q|9Fi_O_QPG1 zCLv&2F34Lk)Z@Fa*o@R&(*jq+V@@EWvR)l@3+tL5dO4Kd4Uv0EY(4T10^$GpccRyW3p)} z!7cE(S*QCx#XDoyX=9E_lg$K%KS`-2r&8Pcvb0tyaYViutKbA-vcO%z<$alIm9@~V zPp@szq-!z{d=%qpB1JK450L}Lrlvrd#a>A>h-TY$N#GNyMk81jIsp#ZTM+R+iJ>>~RP(q#^x6_Qh=~2!;P5Yq zEt^Mm=tKKaavhSwaf+1u8!vxVXju*T1Hc<@^8e)(zfL=I1!t4My4qy7ZypU=7r5I$ zB2gtU{1-|so5%gy9wLCL1O){YP$>!u0)h<{P>M>ip(rRSA|Rpy zc12Od_nc?$&P~wY_m4N9&)&?=InOiCl%1Wv&mbbH9MTAu-X2#0k5db#ifT!JYe zdu0nb66QD5{7*E@{a#>~3Dda_NPy2~!pijsb9XK3@#vjgwG1A*H@%iFBcNWnQ2ex;07ec(F?mzzxW(**e-d~OP6K;V0qk4R2Lo>t);4SBasYsANmc~ixZ86@&j*eGB}z$Wv8E{$!GzsDhsuK+9zZ(|H)FsXwkK!AUJ^pek;K9*y@Ll(e7yl2+~C zEpmScv{?t#R_#B`xG-9)mjE>%P)D^tlCiKp>J~w>Rr{kEZKhztM{aXe`;RgfVSD{k za+|B#f1Hsy3bSl-TUWI|mhs?Scu~r2J=Ok`j92GtbwFtu$oi1NbiG>{t}S#`#W`r!=^V(RHjmTxIC$RRyk! zbPcTuR~B7obKq)7*J%u^dM)XyG6=4YbfpY~s~26dD3jh`x|ZGq*BH8*phN9Vq3cTw zLwYmms*aAEH=nK~6g_V#UDu%0d8^>MohOc%QM;re!2|Fq{_(R&ui~BW!Q-k@*OqWq z*`#5ycXvY7yl*V_wTvph0W6i!9M4_S@N&=MF$#}d1^4KLQvibD+RuPBMs5!1f@?or|Od21kgMJ99HK9|}p%NNW*@#N7K$&6P61XYeFuIXNs!Cpjv74mZ14p*t z7$%5~v+_$Ff$j>7DXNWH5l|i@l=|1r=rks6h|TB>Q*-f7PuiG5K!q;{VBIEJf>1Vt zw4|p4gS$9tKQzCC%YE$!&JJI; z*W5FcbSN+~2KBa&p=JLCcKPb$T{ZW@ugT_qh~I00xEE2GwS-4o5WD*m zOs&jq@RN%7H12H0d!Bkz+oLojB)=b52hG8jWGgq^8_m$FE zSk4g|U^sVaukKpBjlo$2{9(&!1xr;nml`Ky0o&$DH~|ap9TumA${vn3YH~eYtQki2 zjsg1ymn2Xd3_ci(>C%nyqq3WgL=DYcGI>Iy4OR{}TT@b_i8U$2dLyx0CbH-I7~$Tw5?(d)$9rYn)~psW`z(#_Yds;5R4W8JNN|Mlp4%rL74$@HzsJ+5(V_FO2L3+z50SGmjjz`8Mkkr+~8*61ezZMJZ=zB3^?DbQ&RH1CD?0Sn3ONtqt$ zZ5iku&2jxQQv<86Lz@L0ea;e<$Hif(DZ9WcGb^?X#&ho1yel&+V`qPOCc($;%-AUJ zBE(Xca2;KlIkByU%DXai%D=?Xm*%AQFw}Bzr|x2u%FK(MC{*5+nU~=pGI}(reGRoe z+|!GpgIi`nb%u|%Aum_M-NG6S0(WoSf-oMaPA#xs@BCV;PWLz^x8XlGT^!K2qtoAM zzEkQ}{O6oQ>hO!EiVOEd6*ulS*lw%1FUms1ui}20j2GWSj$g+;u@e!F?SWb!m%Es0 zx0N>9I<8L%M6(*ex|VQv1rTf<_x4~%t%XP@;5S&#aS4p)Ln!67btCCuKG` zwvJ0eb+QE5DvMJ>B|OTi`NKp;BKs%@nNfo^!@K7&c&Bhl4aTQYYA{C6L}Mqc)YsG0 znfeF3Yq|X67x1t6`b~+J>W#|bsG}&ZynRUayjS}{9xFGWVuDV83;uTHW>RxN&EVe( zm%EK-`YSifRReSbyodRa-bvi9+&o@eslD*gdL|eP3bO3V%_a{axRpL=ELC0!cw~P3 z6Ckc^+|Wx!S2i-|?8?UDXuP}v?zgz~0S5LLT+x+{)Z-ES@0E?`Ct$NN&>9FJDz16^ zf2?f0yNFVKESs_>M7y$aY6YCa2Ja~(y~_l#D;t}h)ne!a7P9LX8ADmWNP|`0#Sb8i z9BI@WIdbTo{5kRqOX*?IKgQ*TGxFs~dTl@#;QhM~=`zG^j@*ngk^vvBi$QTJE>U1u zHbd=`(`IWJ=i z*7+g&(?PtG%FZw?4EnvdvaD85!Q){dYltcu8ovcqB8#N*n!_{oR4F7w(!#iQH{hw} z>o4j4q)jN`Dr4wc1hUv$x=*Rk!TgdcDpQ3)mV2YoI{6*G4nzgfJQzVW5y4g7w-*q{ zWMCNfay`V$Cj6@~w^uw`zSxJvM zg`Kg8NDC&JYC)oEv7i$YCp+~in7zS?nTB;d4?^`LRNso44YbvXd9t-u&%k@959!Xt zhl%KRC+3}6NRz_=k6S_y5+(`Z6({B-#*cpjcG=>6qXF!3V(#pVHB&IJ94-l4Q(osI z?RR4C!@IUF2-jK?lh2T5>N1GNFl#CHLEgZOR48*|ZeQnpiyPm1;k1bNm( zQd7t4(?|6z% z^Ea>?!T(wx)1<4k?-dlxz)^}nfzTJ=@T&-ienk}LIbKDNjURyX3KAaHFQYx3^p2Cx zG*V7u>9)P1GucFUf;S_Sr1u?fWgSc|BhJnqi0}7RsK(MSdsSCu$1K7=;&^vprko__ zd;I)Lwxn0E$0yKs%<=RhZM4Os>rxz7B)tX4A%$bEMC5A%%OP&$gJGC@5(hM5)I+T4 z2&`LFUhp%Hm$%9o>5Kz5IVwLR1>t|=cy-D;Cb<^^TWaMS4`Sx*)>T;pI6+}waJ;Y3 ztR~5M1wXHmZLInHRcQOg@wVTL)hCSYabTy3o6;lr?~Zrh-I3T_2IlnlG)%C8wCnC2sDkoSu z*Q>ZUk{EAC<;2cR*V}QsiJ$Xz6canExZXS!vC|!3!;|iQ4c7~yVC5N3-mVIck?R?i6Rd&jy^k1)+$1X(tdI6YQf4qP>{_kZnbP+GTaHUI zOh15RRE=MH0Et)4Ns+FGM>M#F&k)Y#u7i%H$nAsg`vv8KeIJF~f?yzN3^q7W`8g2& zv?RJBA@Ic8q^556AE>Bxa0@f?R4{P4Gzt&pG6pJD2bVD_pB&HCO={w1|4q3D88`zW zsZQa*U5gF9H$=u+F(#s|w*63+A$dY^hKh?0W!l?NT_%9~-<>UzPFDz#nlTi-FO`7Bd7OzJQ0PG)&8yy?oft^WUYZw}CRp($+>TIpBJ$PJ!_-z>Nh6Mo+fH>Kz=3&>nX9`-EU|snS=KP9ankatadOatjomd=izY4fa8qhTJc2BF#^gQi) zEfT#z&^a4SdJYKlNiy{~ zcfBNi?|NT6YKn_q2W+FS#2jdw^t0=&scQ;|egoKBR$dOYO}glMX;>h@qO8vVJ7?t$ z{-^8JIuVhN!SrM-E)#xZ9%!4?+|3<38nSYtZPFFjduo#wlCA@0eX`}P(wHaOCgr)g z6QgV=#=C&2ACmMy{M<;ki5ri!O)3=QsUIWSW&*pLxOqnj9*fg37e(aP0DCej&m&Wl z;$yspSf3#y1ABn&w|HZ2(n_lBl#+c*L2fTfDi-5ac-xTl_h9~N*+Fi(O2V0{->it> z@yOufxQw-O5?GQO4D`Wxx~>ZUTw?OnGIv$>D}ABhVBtV@><(xPth>eeC3`_QFz}m zQS=EAzO^K&jZAPSVmwX`O7U=S#F{T$CStV77?#HK5tDu>9O$tFURA(oU|CyPxcQ^x zgxjPaW4t~Xo70`Z=8ux+GQd&ONm>TN<5rU)aVLLLMryn^!qMuRY|AW1Z3{)PeCU{Z<`e+Fna?~+P6PT8+93n?XH?PR*3`-gdEzNn8uAYP-V&ZetdemEp$uu6FhJ?++~ zVfP@%*?%uusqtvLq~Ve^db}wmeQc9r^41s8VE93VG1+mtRE@OMTZ7xh7vxQTK{Gb? z@o5AU@VvvWdC+EnwG5ZFE#BFv^QB0%jYN6Q-|t;OmZobD>i)2NeN zU7SOB4Y+bJDG6&~UdIe8xVPcDgVI&0ST^S-#pvQ37iqwSgGnW|w?7a4GH{;2wJFNo zQyzK?>q=~Rdh~Db=6w)I)!ua&QqG0GkKlQn0%Em+E8vR+129AZ@857K#8hC}qtj>m#G0KA>xS*r*s-G#itFp$BRFL^7ASD&-s{X@9iN=zDJTWIx{D~OlGazE- zIj=+#sIx%3*HXp8h_3Iwss|zXIKbyDf#&G^te?Fmf5Yn_7{@G&CKX`);ic|@*Y{vt zu`IDmboDESsxSq)-~R@%bkbOqNL-QvrfFw33Z^vCUJ;bO52#-^2Bo!6GYJ);<)Q3e zj|Wd^LqHj4X_8vfP)zBhJ@t$>ta%_Tu_Rh%#%@xu*mh}2lau;s5S}OL7!;cio1{Em zQ{GSV8HAL<+N-tNaP+4jp7b@EE!in+v*q<}$fLD)tiK~1?Ty12IxeGGnusZrwdVvQ z$|?b?L0k%&!LdxX*De!=ZVjx1m6vZKq&%6+Mx|*%rreD&1aw=;(Ub8rm1I#S-$Y1R z-%y&1(%ej0q`i)@hNB+?aXrZrXZhwq%5vC?CqtC&1$MwHGdRANG8NrlhM`a4=WF6d zp5H`B!IHb4IgyxaJhUFJ2ww3nJa{kQAdlIRn3V%oDT?!(2q~}PYct3J(Vqvbbrk0} z5mNSR@ASC{J_y+GD9#3K%6r?~k&EiPY(N?BJ+nmE#aO*x{ykMXJ{M{mK; z3zjVH*OX7RcLY_Q;D>-6v3S+87!OPtk<9rFkl-(05lF#VAa8Yc)CrbOH6BxcxXie398!iyMjQwlF?>wrB~+3kRu8@{tk^k<@iPG_$&U9qQcyU3fZu32qFOj*9k1+p z98%5T?*KlZ9OjM|jvW4-f}x!+PhxDBue^02Y_*Cmij5qeN*P(rj7||WVwGL*SCmN+ z`wYHkt=MIXrSV|#l*X>t>Tc-04A7h4$K5=0Lb$>8zMdW_`Q<>UZApBfv{+!m!`C~C zJrQBH1FKI#rUWW2?i6%-KD|}T_oi1aG8?8s>`(P zQ}ES>X_b&W)d1G^394%UvIu5W8R@}FpEl*@7;o)AhNF9d*q>y1?Aldr59{mXLSjaY z_gdHyOwRyewk1hNAO+uW_}({sC9n;|Sy4nv2Txy0c`C*WmcZf`=EiFvyz488kl0&D z*%jlhykZ_M{WS#x1w@HQx6aZU8PA#Rq-K!Un7Q31L5wgG_fO)(mLR+Y3P{V!Ws}ZU8PA#_&&m& z*nKL!g?%8rUr>{63QE(1HGpja%Hf_endZ&H+duDJY^LCeAm4)|AIoY|w-hI!?1>;A zfd4)bq#O`?BFIN8F#ijW0l3_~Y{Jr|$+0Jbh+h9hke%bun3x54t}kIv1i5jUQWVr{ z@be_$15l{^6F~-CuO%408_+%r+Y>>y)OHO11+cFy&J#gQD~u0&-sf0E$1OJlQOWpQ zZtk1P2SfH~V9U+Q=CH8*%~;rl%e|IylF4Md<)+aS@M;OLlTXMu62vVx!;9gYFq9h! z!epOhwAd{-O($tXS_r}lODeeK=ExFEY~G0^c^(9g@w@$)B>t8g2jei&EjK5!3`d^? z@vJ4=EjPQ1IHE)IJKTkEMU+Lh+!RA9V9g8s?UtL1NS6_eNFDgrrv#HDy5(lzX>3;~ z-UV1M;$mKO%gwXJB11Nl0N!Q^cFWChOr|hedI_)<#3cZ`<)-ThU|Zq8!^bq~(JeP4 zF`A>_2l$yKFy-@YxoNu`jGux2Z5flvh;F$_MRQ!TD+OhuJT8;z!m?X#emVp-Eda9P zFI#SyUWO?q$usvQI$N^khM@BJ2&NvYhi#r%f;RV7OkP(+69co%ktJyC7ufX~Y#BtC zpgq(X$@&z+dVvOQWFoJk*>-tGCvLZX3*b>pSVw|gp3$Z&)(*kvd*GKW=NJvJ%QJpV zFq~qrEftpu=vQ*=@{A#EFdPD`iN&c^Wq*c-2A5=vtfJIVV3Tplk_^U5mSiwSMq?bi z^2e(}49Qem83tBekfA)jx$`bm#DiI8MQ9|tvvYNgvse_fDxv&qklPByI~cfwCXX({ zu4C1Ywg7*$gdFx%O~{XV%jY7Cj)Qoi09kX*jjC3i8rOMUCqsuu7;(5nqj`8&m>}1C z!_h#{831ee1f9qrBkP+sB<}hGtHWqXYY@5=B!!c^VfoIc;$mccE_OoELL5KpI|X1N+FwbspvI zTFO>q(xKGZYhVxdhYg{Pk^N!2FTw5{cr?W2c3>E? zLmB(STKfZ*GkNLL`bKVkbUU@b9_%%QJAD~~i`O=}hm;z$!h!jy+4Z`(sC|JX!! z36)xEGL}Jc6WM-n{7qz34a3JPK4r3rOa%Q+WS1}ur1fzKoW|v*v5@+k$g;3hN&gOS z)|dimy6h&h^?>XqveCKt03xJyWl(DR0(KKwDHLO=cv}PNK)4oz@;8w^)B|sLro@ea z#zduMkJ+Qe&Y%@MnebhJ7FcP26WMz^0Ih-dCSOuFq;`K3+1Obu%j?%FRpKFU;09Rz z5r}7T#d8}V6C@fvT^UWHXlBTkGf6U!`H&j>JH)Z&ENuqb_2TbuIcu~TnTE!2HC*mU z=BPnBh3hm!F)F|FHd|LzHcL1Aj@tINey}d3yG5!Z= zi-oV=Q#8T*_)U|*2f@+zQrd1g3z@V%O+>=Y82bj+Gxtb*`w`6k!8aCBji3BHHe)lP z7&DVbb_0yrnr0H|3Q{!_V}D2_Y)!lAc2wW=!U&STHSOjFTJpLp)au1F#coZzJJFGR z9!F?7A-gs056qg*hW9^>Ic?N_Z3X<&Bv~SRyjzM&a;xeH;MJw#qv;lbFolJmPmLQRvRI3dp3j6BBA$#!H z1M7_|nw*Tv)yZl0%1C-DuRQEY{UQzZJod0Xa))24riP1Qk-&q{^$5e;N?S~Mn-P8m z_32jla#~*yy@Rm7hiwPfXTAsQQ;YA3;cFWH>LCs46Y2W2iUNiAwK zq0yym;WK;PMAn-OgHzwbh#>d6wTGE4n0l%u{iA!`N~T~B0CXIo1;?n&*tXy6~&j>anW-?vWbWif3Mq>qSXKIX_+(v_l)FKAz>-9}-Rm~91xEIubtCX?1v&m+x6C!z z1_$Vfh5w=%cCXv4yHMMo1NfUINCHjEMd>enEb#*>3Bn4na0xlEQ zPPn4`Y%*WJo! zJ^-0zxMY7FlTh~8S-Jm6Tc&2_q;DY0w0#q@Hf<#dGXLO&5BJx7Z!zqzYYv;EO_9v4 z*N_wr#>LL|6%-4mOl8C}Kf{=;U~Hfp<-leV%d7bmFtpqD0rJ~z3)u&31CNfl+qO?SWvBuTtb5J!tSG)uofGr=cD>fu*`>=XJ_X~P51L}AJjNpP zo1TEUnA|}deIJ;||ToO~Wl1h)e7h|1y#!9J2^3ByNa(6>b&2)EPH@4$1nxZ6V!gV+$yxpAVZw77+9YG-|0T0a|FJACj>`1T`u4YPk#i#Hnw>|>f0;RDe(?=r(G@;7(h3HKs)a<%K*u4jLlD4TcpjkC zNQP!$Ofzp=tre|53Fs{0$%N%t=frqjLdq-s8*qViBIcUEoT-Hvz6Y%#Tt;A6|Hly= zW|n(%)S?Fbvx!Mq*@9(gFQZ5tOVUx^PJFPV z&$7pwZ19IQ`3&EwLqB0Sp*0=XLsA?xL>!ERI9P_nvB7uz0Y^(J!ZP?$zQbJ zIZ)ML0nC#nE(Y4By#si-33VeR3tKkmfRKA-0yHbmaTFo0%jbm6c~z$4cvz%k@^Y&8nb6qFTJqCo6PKhhSV<0}Pk z#~XV5y#<1@bk*-tMbs5%v{wwzrPi6?Rm0`p%Mv$73yRMMygmi;EdX@zLA{I&*@%$1 zUYFuyh7tfYBJ>xsaV-39f!ACsL{~(T3-}VB&}IQ&ngrxIUhyU%YyxXfL7A0I91|ob z1QQ?8$t(!kBhN@zgfvQ^{uVyJTIsbk)5NlYUlL&SEPxMKf|La2YJ`>SdPUJs)a$``&ay;JW3E3>T%(&*#=Akwl7>V~|85v= znEF%DPx>ONF;}@KK90l2KD2Bs=l?3hkaQ5Q_;_6IHU=&W91 z5is~Qt~X#1mJtwd1FWN!mo>DB>vYx+%NW|dcr_-rcfH$R&_dEvz?^Qi$r{?kwL16L zD7(As4azely$;NcR<|s1NbHZT514gikopb$yhU7WGx%`Vdvyq=2Z^7-&pF}}w;-25 zBu;R>qbM_Cd(8b94Z{_|xdb9{s_S*%7D<~5z^X=ZE`dm#?Rup!G$i_40&5$^xdbBd zUd*v$`-b2{fsKmdT$P)+#Pw=cH+6uX18ja2=c?Sq<*s*IUq|W)y$;w$i>F=Vx+?KW z*Zb~Q#BC4!-zLVmYZf162s@B@0hF&(0Dme#(58GPAo_`)y50?#jmC*_=;h#wB;mrk zFyTwri^;@1J9O$wz-kaTNyt?ki5Fb2H>w5J`MNc*4i>LAtq8ti+#=9^J8T*Z@3DlU z7B*(rB5{?j^X2=HmDLrA2{GQlzYSAA2>P0UN)KPJsPk5;;}R3&jq!21ksaWSDRsMQM4 z%_@|{Edg);s}Y^8K+D!*W#hLVT?gI9pkDC%<^7#YoXiogFkk<_ke7==2HNYyvY{aHla^HX zv#fu=E9C8LY3gUEA_;pXzp}qWFn<^F4x(;$8pFReE|W}bJ*wO)Xwi4w6iC@?-kZ)q z;G->vafonU4!rnSgfj>D(gGYUL|I~Mz6J19!Vr_o? zeQQL<9{H6kl{uNsS6X^7KZ)mgi>2>up{3itfDt5pm!HI;WkZ4kXV~E>mr3YiEBrWP z655;};h*D@`P@1Nhnebn`AK#>RA$OE?-(Dksjnp=^|;7Lf|JuL#=2M@F%kIC=Nsd2 zXgrkNE(KI-OVn?=-hjBpK%Ua(Osjf>;)>TrqXU1b^@30h{JH-FUxNpk_y_+7UgTCp z68O*mjb{!;RUs*r{IH)0F#QWZPvubL%pIsKB@r515>l!g8q*R#I#g=A<9HM>kGJ3v zf3|LF_@DadU_oXGE_VQF{yg6P-Pj2O-#dLok0R{P<8{Rlu3iT0af^?S;-Ff`==(BK>#{y;eXHLJ-81|R|>&keJ36MJl^zeXsg1b6cGv6pT}dusEqHB z9+=15a~NX-pmf3|Ge*=V(KLriXLwy@zON$!8UxNPK95=qFOAQPo$oV~%@T&kq|WS# z_Fj;a&Bq@_Q1r?-+1wigZu31UB8` zt7(OuY@UqOSI%O9D=k4HH>r6uGufQjQLCN6_T!2sJELNfJ(`?mvRTp-$LJx#sb{`3 zlg+_Zeo>qnUV;kHS&4+kh#68Nz-cos3qLZVaro#b1o#v%+T! z0q+ZJxW!+Is-Nqf{|vLFfEHNz--YzdB$ROoJpqnBNNK;2et$gQ9aR#UY<>Zs1UU(0 zjaA}LHlK&W7vQ@CmwT4#{mJG<&*J?L-xEF}IToo~B9qNyr^2XTK)7N_VxpaF4r2s_ z(Md+cGjK@|CK~=^^PD#^y8tN9!avarJK6m94JcDR0S>kVNuX&*?nAB|ORU{mtA&78 z;gVdDGvYbfOy9^E@r+r%v*~TQj!cL$t4c)*cM(J-Grb`q#yLNJy1~x*{Z7LMe}z%M z1Rl!z^%~?O>G>v`mmpKLE(9cu%XKkStwqdEHa8s$FI^dEwq^WH#dflJK6=pjAg|IL zKd9oY)WBkY^lW`o3*=8NrcdSrMWBVL6?`mTYDuIrOJaCS-ikFWhPUFy8j%;Ce1;%% zQ7TDj8g#KFycN@7s=O8HP^r_#Ao_SKK89g)Q>{!5Uyto$lOS^&F1IRaeueXClB4c} z?{Xi}xrF@+XE)wU`e|SZi-?5lS2#=x8f%-Tekq%!4gDw z^sRWL0s4y2IUIzE1xfa;_#v`pF0jQGA4MzdTX75CCC&zb&s%~-Zc?R>&0FzcF24Q> z>^QDyvNI|s*=_Bi&GR7Xsk|qV7OCmk=B=3agkKb=hQ}k9Qr5u&T<&<<;uq4-n_*)$ ze4F@)o<`U&q)8aK&|QG_v-qqiJ}ca<1X6z@uo)Jg8&yBo8?XW2e*yHEh5ubhGk0lq zAB1*-qnA+HFQhsaF9UcSB_iSag;bu$jEn(N_!3bO{R2uYVl1geRHCV?7ASn?tthhI z??~FzpU^PpTk*Xo@m6H&sh0GQz7_Ae17#Z8dP22c5w&fYb`z+P_Z^hfzVj%{6fAtZ` zu}Iw#c`Ht4W2G=6RUDUy8x!qYanBuEF*-GX*DuKN--?fBJE}dPo)&(EX4to4r)`+L z8w>DOOOOPbR^(RH?8g$T9K&)aKri5uTw#||mSE90^34^-OcS`OTu0uD%&Jn6!d)Km z&D?ng5o0~ij|bVe;%hW)aGzR{x8mRHk&mS3dn;BRfG~6!AeC^rhZwGi*|%bmZ^741 zfnH}B2dUV;6$cH+SQG_^fH2OIPQ#SwTd^uyazdI1!V*hL*Z`6oKf$BQyP;8{p91)T zB~V7Cef=4#T`a*`fbkK19N-09@>XOb$y-rsV6i`%Zl)Hdvs-eZOCTb;&P^mvp0M>nG+%14)B|`Vv#qR}@{3ceVcVFyXHwD!)u(7!G zIT{}Sj*Csd6i%2lTdVHvLe+s~KAa2#O2-A_p2M9OP&z)4#I8HO0XI@U7h&G7V`nkk zLVqCKk|X0}d%M5iKc2_A%2}70pWaA(T1;I1r|`T|r!vR6VkEiaKy-y*%0KXp1?*mA zPDyXwaAwDNYu-1U^1y3ajvR~`pR>grFQ7bzp7~iPNV7dK7(A17Xb;#?0NHbtx&0zZ z7@3%BNoZNHRVFH!Ph94YKSm56 zmY>8AT?t9Pc$FD*godLS&9WpEBaE{kJ4eld0u-ZNfc#>_byI#ZYSIENWMD7g(sfb3 zO)-+CRemv=1T6EVcR*k2P{76e}f1tBChmL5%bYCY+GSmJl6I!*U37b=p zz+8ZJU^7hM8UcQ%oCgQk1z0`b!yFluy@X45MC|pOa77nj@jyk7;D0Z`s*VvTivLwW zT=Vw-Sb(*&oujJ291|F2O^9{@)*MW_(1w;Ibz^?m1z5j*kFO5^8epL=E53w%r?t}( zZIAYAcSP7}U18qe}5G75PEJuc!*!`HYl8AuxH5;%`rE;Q7}o zvx!e?mY>A)2&H7p`Pi9@UxcR2WG8MuNa@d1$45O&JB4#5n8I-fJZ(vd|NNvf-@cI| z(+no64xHAK9Z)K>Sa+ym;o0to$HMdTHUBC+hgp8x4Ni$snZrAw1ofz(E4>GqhcT*q zt}LHf#OzmJNnON@^}HA@?~lye(ejj#%5RB8pCR$Za8)s-oXY&5J#^BrF8S$v{I8;a zBoEeVJQ-rbEk2zlumdJ0NXIU-<>5$VpY%yIfjzdXbW%=b9x4+t;b?w3YsIVRpNR?Q z4zo0D55)cH)9dcY*H4r7Ugo@7Oe&DlxB7(uBwM{nk0i5nNk#^wmibAvQz9edDVY`O zMl_AgPqLM_jQI8F>f&RfjRKEiPI^6P8})mm9VkH=r8apSmcie2?{!QigiGz(NUv=x z(j9ZKueG2wvrVLrQd%lyBh6T9iA9gYXbr~n4kY1WOnC-HlAqRIKD9k%Dxw?U5i-N9! zaf*m;#A(t-^a+mFiwlm+2Ii2TLlCqPLgem(;L(v?SjZa-0fRn z*pR?mSk!bFfqnt!hK(O5hjH56%ant*L$tbra2q_I zFHWW$WW(#|{b z$3~?}z94XInIxR>#GQCp_L1r%Pp$HzlIY zGB|K_J`Pd33nM8$nXNRLe>Oit_LF}(-cadpVwG2EBvHz7j9Fuz;$=u)RivJSS1Gok z%;%`Ie6A_|mwQYSHT=bV8t!}nK}jOMI!(6ASJir?qK#dAP{1wZs8|fENutQIK@;I7 zjPU%xTj*3V!gWB2KOHn3mS}`k^3#m#{J z606jD^DVXv*d7&>#9{(hW_cuNdw;K&LjBP?VTu;EuZ4k(C{7OQ{-bRQ-snT`3x;- zm&}g6MLtD#Nj*6VTKxDPgOTZ9p%&+}(K{V{phv*BQ8lmKL-5KURoSAIesd#}-LtDW zvNzRxIlrJpmE9uqY{<6GuC?+9G82g(84B9O0>l%8H1W#vI9FbgXoSXQ3RPqc01XbB@nOR?Z)7d5t|i=`Eq z3$A(zg{{}f29(#qzqV`DtDW{vBLcCLktwI({Sz)Xfp^2sgVa11(O9N`ABfqCi{54o zylWATgSKQ`LNzO6<5Q|*HWI;go{5>KaZ<-k{!l9XJ7GVMG3WpZu~HTScDxznWLEOX z;KWo6E29jI_bKdE>d8V$hE`AxKaZk@H~bQx!VJ-MFo+Q;;>h=t6CL#seBJ@a=DT^! z_rvSo`7T8qufj6ZO#v&sBfnt5BJKi<6mhd@RNpJ*cPs+sSFfuBm*}wvuleN_mAntb zz_9&;LYNT%rISzL+ecrXP0HIxgtA^~c`HuzDSTb&>(SN6XO|X&G9=I*?X_v}c+jWt z-E4;Mle?N%*pu}!-F6pV3O$sZEwd04v2#$36bkw~+ZrKby}-CJVr47Bl|ghxxC!X~9@SN2$k z_j~cT12G713Se98uPVe+l1(AbL+dg76}&*Ej6oOX9`B)nSksH*sh2~36)yMm0@(MZ zo>>=JSW0^tg8@>x-hrQeWK_Nnzr|{dm{&h|E8sKyrgaavBH8A@3h~Su%EHKa}Rju=MKH2!)G|w5&Wz zezlksk3vT=;g8bU+^6tHUw)ig;;~c@&qT%*oE;78hxim3cFkBz$_A|30A+k>tbjnF zx!b4kM*k+1yH*J02fQXYi}{pKktxm6Y%!#_uZ{Vt^pwEPmX3@VoB_wiJl?OSWG@WY zPwCdI^4RcD=~ZsP_bqarz>{chG`fIj?t-W%G8A$fQ zidAlL?e4(KfE9lyaI^%=AC+7TGsG31a#se>5YEB)KVdrLMMydD+Dw=Z`7ue7R!_TsBM=78flTeyMs)e3+ExD?KP8(xs@>|>u*~n-ceEP1 zW(-!F9KiOxX712px8t>05y|?edq&Sf4sQGaHxFueXam$XEykiT+deq-_k$>>c-Qx7 z9~jyiWn=$5NVjo^j)nHK7*6YbqkE&zSDW;wc=P6#(4p6lU|E&(ZZlLVDLQYp=5NP6 zD6@4AhGyXbDpcoKXxK6S|1va7{+|ggm;YadUY7q~hmOhrZ$iJ|e`GW7Q8#s)V@r}1EB$LP>`aRhWI4$0E3#B{7hDjzBotRBy$zJ-D{;*Bg8QV+G*psrb2z0)?PU)1|6%UqCRg6x&(4 zYF~}1+2*DA=tiUmdS`FZYB8l>#?R|knl4q9TLgkFO0i3!b8l&fn;X4aKN_?2x1e02 z0Hdbq(r1vEW^HS*iP>;fEo~vfyu~~B2g*`urVcJ6AvRM?<#K~YaE=##4&QF2o|YiB zC6O^P6~#&omv>J!Dv#mlBD%Eg_mzo{FCBMx1iz~_@JXdt<78Fh3EY>K(J=QVnC10CSTePd z(J1#cOiW-FXEe@z17HGozGXDYEk`%YK}Pf3pU=U~T+PVK{R8gQS6@KBWZV*ekctkz z3E^Aw4nsgHXGwEg@2kOOP&))GCc2^c{TLJ0ThY_1SOTA6X4W`q{gafcnBkV1cO3CA zgmJ()T<*l`K<8)yE4tos*rdw?sOf|HRx)G*OT~1zPBC;jf!R6I)#MI)152U!~Ukx7%d@t4u0lacJNKKXDT+r_X{e*6v*p!z%~*W z>kQt)^-?R~AYLSdegoKhK5oup4)QqXimhF*-c9&e9+i9x!Vf-48N8$GZCe*nQg|O8 zeOwYqM9CiwprotoeSoH)#H%I<4M<|VG+nAOj}NGr=GNy}feya92qHaQ@6_87;|GB> zh9WfHhy+uZUVU8eifyC1*pSaOf|m%eU@sNdKu^|De{o8 z{Q{IHY`*|C!I}e-^gjH&ZP~T}6~g|nM;YI*fSo5U*4Y9y>{D!XfVU1Dz~h8V@T&^Y z=e@8LgG#D`kmZx21*ju%QPLJzcOSp105!^p#Oo#yrjo>XX}Y2Xh=WMc0#xs=NVt!K z^fX0iyb-YlXja`w;0HkXfTXBiTYv^liX_7Y5PrW(lV5Pl^bGN$_tje7*thQppm)jwRS^@dX2k22MLw?TLfj5hwq z@rv&^CR+8&@gS+|Gf@jc&FTMNHFA_l>Xrv#In-3asM-IQHD}PWQK?T=rJ8zi(ag&fe}du4)+2gq5btmZ*>jL|XWB3u8Sx1>VNbXB1%6G+qCrM1{s7 z#(#rT1Sw=BLX# zX(dDn#cY<=Z(ua)OYr@NM8?De6%sU*@rD%jilu0`ZN z(%afMG}1eZ^tLt^HTQmRizh#M`w^Dk+u{LIey=JO!@hp6syy7ON6<53&60-5`ZddW z2uRH$i4r|oX7HSoDEn*_5B)HIqnO1dU$5#+JH)du^bN-47OIIPj`pfLoI+;a24Id4 z>M$9$Q9NQfq-~@4z2SzbH-r8hMUsW>H;VfT+iw)NZiJoNAn8x>bJDVHqc|6hm<-74 zKY=M!lg2vRC>{haIZ>k&9GO0TRik)bKlD|pq!|dUd{VSg{9q@{YS4%Qz()D_RgGeI zbR=GLKv+Z)|Q)7)=#Hs7+EnO@5>J1z5=J)9paG-X}#jw@Ra!n~jx6tJ)2$ zrPWFOXK56|;DB0jZIBesCaJwerEdpjI&-_Ua#LhEDDxSm>@0#g|RHSsoM zFmxw;_xp&J!{Y1qyadVS-VHdAVGigg0H5(G%AhU1>3z`T!Pw7bAP$0eucPX^pP$Ey zy*6I2g{YHJ0ha<&mZ$`5(DvSLbSBsWst=^8m6az&R=Ilo)OGTke=0R_dEmW{=CK?P zV*D4cyE2oe??qrLxzih(l*_l7CwqxcSqIdNLT}b5kD=qbzzxjmZS>d;!!}Lz*~gGZ z{6RS^>(0e^MXQ9EDkpIl6Z7$0ty%?R9&L*igzN$USqAshIyk72yZJga_mBwT!Q*jE zVdKIw%JhhyIBcvM)I{!LRKn9B4Qd)V58frWm?8wNak?NQz=NCq#I>{ZR`hhg4bD$@r5*|VIJ2<6SJH#rXNO61& zx@6)gy3b-%YH+DUq<%MD18lm7h zcs%N4{fe>fL0z3Va$Hoknm-UMjDIVg^bu(|wzZd2jQ>fgXel|@_rQ+cl5#dwUhThB~`B7OjF#bR2VOQd5J9Spy`DC?W6~2rMTV16RYkiYAWp8x~VcWgTJW+~B5h7@uSR`G)bcz8lC$ zY4PHGfGJx!v#?fd(7_UXWH>tzjcX(-ht5Il-SqV?w!ZxreiCy4gQmrEB!RODQF)c) zV!C$F?Zw%xk4H}BgH}8LV2NYOjfy$AMeiN#s2f#%!~i!>R>$FKauc%!v;RbxwZSdA zn7v6*2|tf_)bQfT6hehFB3@^JwE^lD>6j5=_ddABT!YLXQ7n<1F$+))jYy2$fq1C! ztEiAi6!oM$gn1soh~j}!kU*7G0cu7hxqWe$P!aBtg_5Y%dx0LaQ8SMUlspV~>M*>c zkBzP!?DZKG9(xqWaAZdmmN|)=x`mm0!EndtaZ^uj62j+8Xf?XN+@yq)_u{63+>{MB z`WCc?a#J~66^j-|H5F6b@ZkmT1=HaHf+_VXE!`|pTx#=8k zhWGgB7IM=oTy-OET9%lC4*$ULA4vDn*A}0Sn-Sq-MB0eeKPu$!Y?ubdQ(Vc>KLfh={(Z6tWebL3ZnHN4v z1-*-)%&GgsiHSh^B(DUrJUp;5kiI21;ATzuI#jZw`-wRl!Xx5<^e@cZekQylfSUoa zEch>nN8*J&dZ5_0C)``%W^ix|6uhAlMj{)=c#Z9!hrDBqLP-t0AQJIfDW2BFgz(>uf$oiVtpQfV! ziI_aBMy_2CgxbVlMUF>AA{Nab>8NqNO@&^~VicZ*HE(~7gXByn?q~d`Aswz}WW_T^ z9~+y7`Y39)(S_jux$)0R#cOixby}*EB_!F}R`V7Kz%rdxu@&M_Sr=tW?>+@g%LreQH8-KKE6Ki(38Q7=BhWCfQfU#0uo*OU~ZyVexr` zHS#f))v-I&r<&C2Z`F%tKgoCs&Dgn4+${WOlFcMdG9$vs`T^c!9ajp$qeNL6BH4Hk zvtx`2;8kK$N<^Huh$ic=^af+0Vw)3}h5roXoByC@b)d10jIQ_-&?U)fjn$$s{k`%~ z^@AOEQ;n@nr3A!T(%2W#AoMpY+EFbZz`6Zx^-iR*{|RB%&4JnQcnkbT)?$^FFS zT_R~MnV<6|JjY!W>oyS=Giia!c^!}I*irI&+;7zyh-XZVoh{I*tDst_M#n7|J(sUi z*uD?)e5aJKJlXKVW;GPg_Z(ohdT7}AToM#^3 zsaAueB~xAH6uJnT$BNAl`(pXtsyUM;L&0tdc*lRpXB9$njJs@-@+1k8l;VY zG3TFE2y3^Ps81G*>0}HjkG)Mxt0L86bRm9>b=D#>ZrAcIZB~$xQ)CsePr~F4AY`*k zi-xTA7l3cp(j=K#KsHk4jBf$Lvs&6DkNpQBXI&eZK37cNTQCGk#;kFbp`fKHjmJpf z1EjK6prbd|F%`olt2bZrzfu$rS0ypH30hR ztde`&2 z@-#Fk#=f7*e-s*FrA^oZ9}*U&=UQn4pZ^@$bt#qq=&{L4M^iLeIKRt3s^H=eQ{JMS ztR4x_GgC|Bj*CJ}1WZ}%Pi(uEHYL}IM6pO&Jo+FAd$cqvYy1acjZ-$E%4(hP%W8bE z0QlE>45l`!tkFf-Oby~boA;0DqHJ3xB&f%n-$1RhQM*)^@VN8bAAG8&mgnzY`Moz& zsn{TYD~V66{I=3gVj;BdIAR_Oz6~@KtXz@5cggSf_-*ARjJzE^-I#=NIJGYnELn+~ z*5Wr5|0>7ciukkrsh5mD^ z@^>kILy=$ObF>=b@-iy&n^F?{Lr=nQ=y2RrviO~Jr=zWNQ>o&c>CRS;x~X(=ye?G2 zD;R7WUoC}i=Y*}8;~ZbTF=)S@D*U5l;SW;uy;5GjW3OFS- z{>BoRy;rFlk;MZiWCz!tMO(ZVnz$28i(7>ozk(&wro|l$--=Q{p{X>B6T;2VqM6WA zZc@V4&{&($N^Z)AyHUZla#K0X1#1&p%S~2zG8MFuoBCnA3e|+`!1UmGftF+)b4Z|1Kn?Jgm}aR9khc4ZvoUcpLtqU_Yk+tyM9!TPtyk3->83 z9!jlKvIw5ego`;ijIC@D*0`bIg+0hFu84{aaxqv)em$;Zij`1fgX@q;p4`MkYhS3GfRA*lG&dZu%V4quz6F#0Ro28Sf?5J7;Azus;Vy1|6YqF_h?1tx&31+{>0HYUy?fnsKSie{*++46Gd%39ZROa1M@ont;8iB<+2M^rj7o8%V2}oir)@ebQnx%`3^!-eT zSu=XUKgZa*r~qaj=xwxXtNtknl}}4z=G=lIhRHkS!GDetVtQ6wDj0W|)H+1(XkK=_ zf4EY&)DVe|4>i&1mYU*@4HiWn#0JaAFPG!R28ZG|6kLg_!Mg%2mE_Tu2Q2-3Utzh z>F8?l*x(M>Qek5~%%!@6yD|Hifxnf(k=bn$KEQp>;n#3@Oh@Tj+)8bG;VC~V=Vz?^ ztkI8;S7;7`ZuTMnZ0Z5Ey(8q>r#{=2Be-1?OJ2EX-gdW+7_<;}wLi0YlgPbgTlA%CC1 zZ@nGj#d5%)a!#|AgGrV!oUJ_uD3XDIj#yuFV^%L4h`+J+## zV}lGRHsXE({;|OdZTah5$KQDTVhjfUUNS1zO5%(SwrNK<53UHwua^TbHsaBSQE4R} zufiD$-Yw?RJ2uG3g@Q8~{Sl&&&RFpX1;0a5#0HnN;O`pwrBA|F$eyXel&3V@Wzlq; z)+S*qWJAGi_(<^x` zkRm@s)M(z}?ezloBu$fNro0a!OfF9@G(9fvJf7nA%cf&_e0-=U@OEjHV$?ck(WMym zgi}AuQC)5xr?yXw$ET~E(wL^0(Ytz2sJ&yMe)=?4Nu@hQIat3?Z{=M%bJuYQ-YIuf zFjZDfGG{`IM!{rTneX$8&m$&UEyIF;Y$9IVM{B;0*O+Sf&SiLa>Z_!#$k3NjZeO;p+>Y?Z zqAFK=RH0J!fjr-!brOO zBZg)TB4P(3Ds@HE`L4^^KF5Bg`Z?nC-+#jMoIyTq_O&@fVbfUc`X{&?aF7d^y(Fha zlD!oppX^p-w~MnE=gdWb(if0DnCua8_BA;lp$f>poa}jIUlV69%Go}_mYzrU-DKYv zXP4&8zRzZ_C0lO1y<}hfX+;!lTMqyIXa`yENo?{e#BR^Ir7k)OW91Qb@pz5cM{|Y` z)9MQoYqKiN`UsW&Sm9kITCo@ZP4>s4>MIN#e0y^GOv1SsKOFCO4xT}%H%s%=VeTjc_*DVY*p#}TnPSFczlEjkFGp-t-U^HXd^NRyz@2t>##2nb{*x@T zXQ;e4_5)O3=e!P^$e3kiKq{{h=JCD;I%i^EyU34};cHt-9a@PNI%i~m8+6#spv_;5 zjQd*ZT-^}X6YX%y!BB?nl=7=7KSL@n)h6da2z3G>brb~ zRNki-f`5U|D|rC&F(k1 zxO}Pqiyrt2{2n@|vL6o-@>q-NqDt%?7wMd4V=T4Tjn4ZMpV;}v>%2Wlc4sRyu zeTJS?$#z{A4}ITco%6sqI6heSfZ6fQ&^eKQc%7whsEE)!oiqFy^0s4)?pvyJ-p4fk zA${T}}X^D40v6ue0TO4klWEhvff)^H7OBh2uOam{7m8{<)wIzBi`y^QVwg+|CobR zC*@Q(ba-(Y`zJ3#v za;oOax4$6QNjcX|Iaj~zrkop3IoC<~+9)*T>SugN`8aDb*G~B|m~qgO^0AjCUQ%9# z=_cX_3@|C@>ffRNA$>kROYk+e((_Pz1JMrpMl`JbAVE*3Y=GUU`&bMxN^6Gsob{L1 ziP5_FOY6pXpZH7b#b_=3rS)U93jWfDvHi~VbLYyZFyr~S<(1D>Uikp!l}}24X`>je zx4*P;jE_ctX_FYAgZ|Q{F+TbHrOje|*7-}D$M{h5mzKo%81t8&7po!H^J67)Z4v7% z*OswM<=QGXR<5mMv*da~Y^hw^#O{!5+ZdlW{?ZF$e6aXS+r?=4{iW@lYX|4r(Ybbt z@d@KE?HuFt#9!JaM#JDQ?Hc0)#9!Ji)I&q(q1vzaery= z811#cv`;JrmdsyzQLMgP`^I|7wO?$qT>Hmvk?X}V+DL!tB{3RBf9a($T0np4fY@od z4vhUH*UMrNG@QS5P>dbHUpgd~g)rLFo|h-VSWc(y$)VMhN0yk~aPZS3MAbC>RxV$x zITo0pE*$J)_=8=(JPpFZhlM}R@aMUFd76ZSYlVNk;ot4@R5-|i4rUVXVG=tIHBmSdUXrKtMKp^D zUMs<2&YZsRHVF=Of_@lhKkke^&0&PPfsmP(R)sW&NuGQM77o&226zt@juKAL=(|#a z$^_?0@H8I#{DnlWkhU+$)5ggWt>GQe#OFa5RS?oOaeJQBevAeXU@a|ZT|#3T(v5~< zK81*S57W?uw9xNjbO@TQe^PIxHLmPP&H4~hmGuLd6bkagr4kl;^C+PyrJ6s@f*gdG zgiNrhuMo}Ga5MKt@CYP|>pQUqcR?Pqws-Zw~?{j1(G zj6uO;`FcHb5b+g6NVlF_7f*@`x>Y-SSW)j9ygou$g!U~GT75kAn9weKt zqrIH$y}44DBJ{#Gp+%_uAHYRLDAfA>ufd3FUwwap;6t0DMG6*M^-a!p}rW%6jXFl3Qm>4ohzL(-Esm#746#lmz}htE%f;X zP*6#P8nqtXM*`oJIAz*`p*xt8QrZEbC3_F^A)X~ds`WAq2N7tGk+T3tVPOYhp^x*) zpJk_X=|RL-afG&E*8>8(OqozG42w_;bS%)4(tUVAUXbkwT~Z){)i|+KfLo?ODBBjw zCvs&&&`34icDCY`)Vj<6n+wb1;S7_?;iPmK5qGDJ?bUX0rkfgZ@T0Qa&X zGHjvWzZIaJX@xWk)8Hj}rWmtPAi=RFSXY9>-ApIz>4<3_{0GI&gqP$QX`t05IMf6i zN^qDfSwU~3WGhN`72Y5N9Vo#|O>ndXhq{s}`fEt`sf}XQ#bC}@E)M=+;T>4v00~w$ z!BG-SHNh(-s7#OpyChEyr=>W!90$$Kr!sR3B>8?OH=Lv;d3u}RT@w7!l}yu1D7lG} zyM))>KwpqxXA^uwf~Q@{bp0$P&qLV?JHkU*9A4qY68zc(hfDB;E19AHpyWqP^Q35P zZxZ=Kf^AID_b)U5r7IcLjbW~ury;s9S9mQAw4MY@Oz?aO9(N@(^+ZZ`q-0;=H8Ic; z5^P|ClO_0tD_K!*qU6<-Tq?Xe26~4CYnb5u68zkitfW7qXV{R^D`X0nI-_DZnm9k|!yu#Nd_>l>| zFTta(WS0Jrl3!BtC*f5#P|P8bg(D_dL4t3%l2vpjrX9_>KcTQ#cu@mwF2UDKu$=^7 zaV4{LFG}{J`Lq4{EF?p8@&8R$I{>~4Y&OR$S8nWu{&nbQk*Ok`0~ za5(~L2k|sn6so{=O_g?IL+sKGOTe4f0MqP65eWowp3KH+*tC0Ghl}&H@-LndzUdu| z*cZR)_ac)MJehEoN9W0(uE{>3+iZvUaXUA2(d&b^X+MOZn@Wm;oB>f4d!2M zRVqE&bppnx(Kkal04dsj1>P7(+hQdu7~P6ld|LFQ-Z)S&y0$M5FnSDCLc|+lxB!Zn=)LHAUn8R&?v9I5s5u zMrWF^)uw7WBk%Y|$&u!!du+Q7_@6vgph| zu{Aq70z=6{Y4yzx)Uz^XL(bmvyugYGz2ZWG5y@(R6HLS`@t*wUiv4 zkKt;kXmv;pj!r;hPoeWxjkZNAToY}CwT9Nw_5<+=Y}B_Dy91*; zyI@H*`rQ-wKl*4s>Lf2(=|y~I7tO}JrCap56<907hdDa`6Rd0Lt=Vk&!U)z>brxc_ zHoz=H-zi+Z%jaK@&~701!Fl>%Jg@)E2jT(E_YnHA%oxUIgBbl00AG~_-KEEk9HR8| z+1FrL8JyR07ho^@yhl-KIvm1Z|GbEJ=C=Rb)r_iKaK(D2oDc7BdlziAnG zoe+PK;b|&YGx)+tf0ES_eM6?wR;psb^fcgR6U(E*)YNA`M_da}SL%X-NuvrV0C-J5MWEduK;+o3|J3G9VlC(gD1Jum-cEiBs?PVC(xm= zlMOwV6^5EczE|RA(Z^%Yq4#jA3<0kQ)CRbjDs!i1if=S$zN7*GvybtTOhKgjF@W51JLxzg313nMcxViGcHEjzUh^h0rNw_ zC%Ah#@7M2v|M^*%huA%SF3@i|m^0w}QQ^`Kb{{&Z@Ad=qyeHUhH%`<37MgMl0#=Aw z9R3k(OsalF2M%ErKlD{t2fb6|AE3GlcnbML;sG}4(N5Ak(t@MjAXBF#J6TI^bzg$aRYZZj< zbsDNKPy-CowB$`z^$H`L8+baHb6mhdeIC{?^e)S{a5bJz7!m1PU8V}WjaJ>N??g6q zREIZ4F`jzj0tBp1!A}5t*jlq5-K0zCAWjtIZTC85uS6Yb-ge^Q&fSXGwfY4N3{tJE z>?9;IF%3JcNhp20&G;MelvI593+Lex$oe#&JT~`tG=i=RPKnF?joiERlo3Oem0MeG z^6NyCRkgxg%zO19K(BD&lARKyXFnONMp-jEJ9P^q{sl6qZvuD)1^#LP)nbUP=CN#S zcQuAsV7mZ$*1#O2&GxohR!u*Htw+2WV21^J47hL4!txTY1Vo?}z&%`n`)DrNSJij=z(%ERz;H+lZWuAFQRj`4NPn+K zp=ncfZ7t9HC(_X#G_Y(Ba;A==I!JDzbaF$~Pi1&$4{|GAitt`=UU9j(+A*?AnCurw2-VQ$KTWOdEG>(k4F8O2liAzbRjUch%0P}6zm7~ z7Ekdo48F_*TX5Zhxy0b?ny?>`k9eX7GaQSFr>THv1Gu;>_y;X_-7ZgNjhEak_ym1l z8Dzrkrvl`EuWzfxx~yc^Mt-Q8=61 zhTLWPR>&^82i#(C8X2xrmsG5CboQxkxON7!rvW&1SyiXs+%`V=c?N0gDZtDmt|L>h ztLHjTbR-6arjHBm4q)yxIJ+*L>bcRAIUECFr-gii-d6@$rh3S)^gM2St5@OoN9>3C z?||D6{7T)GrP8NY&ivIjlWDLoc50PAgAGZ~NUnCw?)0_eobVQGNv;v?yTfkM4rg(y zWlqLOgZUe0I0-qbR2$=ua4a*t%5LJN#7JT2sfTp!C5X6PCoj*o4Vq-f&Mi#X4^Z7E zQZfI$#Y%O?T&X?(cU$RY!U#8j=vz?uF`VZJL!ZLKSe0UtDyfxUN7TVg8`W6g5)tKBN-c1 z92i^=-Et8CtILBD)2tmx#VJVoA)uZ=2T~GVtuJnlolNypM#EfcJ}2}?z3;PmiVkbgW#^d&&e6y~}f!0Kw_kDYNptV`w)Q0t}^HyUC zUMgvYo;c+SwWLOc(-8JAsgwDBA3$e z*4KgXU!SXQm1~~9o7ZKPHRb&`+vu($06q_?C?_!2w?&gZyrNl!VCu2~1nb(ZuF z)Wu>&eca(#dsoG9o~8(>W*n9+xwz8v!|l7`0&qIG+~j^z+G;b0T_FS>yv%&gGnkq( zt^GijN$cn$XzLxQ?bWIU)ZYaD3TkVcnATU=>&8ml3eKZ0_w2MV@gD?czn`AQKUJiJ zogu?>R(LihV{P9rMQLwp5@?6OtNQI*@IRH!J=}t!U)4ViN2tW}D(|CL^~4JJAKLTm z5Yl)7vD>UY)%YzlZdmhM@Q5|7jUD%|{ac{6Tc-fKIhLBb{!{$LaoxI);%*9bM~c0+ zVkU6&g_SP_o!YDQg_gRxodoigdR}j>Z>d|3>k9cTm8GuvO4sGL{7ZD@XOQLP6+(gK zkXoWw;BAFoo)!wMm*6wkA-Bt;p};l-=caeSn}y0X*MLT7Pi=%^wH~xX2eF#4Jgep& z3H5vYQT)YdYEJiQSZTPeILw2c=I{O-4J9iqD^fxwh>1=FS4A~Ul#V|CJ8Wk(9lgR6 zy{NXOywOI**cuRB*$LfA&7XuFIkxcaX~7v3J}`*FLvtydREx_I*DRxOr&C-Kx%ovd zgWNk9eHDv4eQ!k-Nz%7RgJZf5o22xZj-!SvYfO(}QR#>gqE3fsWvGhB1yNlKR6~o=Hhuv6}5&j_y#adM{%6jmxs^nZNJJ*IoCqxTHU!8IoD$6TEn^4w6Awm zik?Bc`tPXhTw~5P%ehu@uG!8tN3K|5+l~M6s}ycr1;T4GZRVPa&ec)6#!Y>v?fEZmd_a+LA!o$X5IY~v z^E4k&`)GG&7=C7H9fl3vfyh9HeK2AMQEu3=~ZXUg{de$5W%p5j#jM`Y7+5ZttZ4kZ^ z&hrDUTeU9syiNtWA}%NVw=MKYg3tk|-hl8%3jLBGggb5lh1zM96)7E05W4R!`~xt; zA5!Sg1R)R3$e>V{8*HIiPCR=}aKnTUPKEQR+VSjpRp2Crrea{ulzJuzwW*11un2dc zkUv4lrvkZ%%h|*+0EDhd5IVjYTTBq1L!n55kY5G*QmA#BEwm>==r&AJA4K>O3Z*9q z1yo=ug_^_iGo|kngaTMu_ypnO6snvc6jXt|6nYE=qfk|tY12;cT3AFyI0om*O%O^_ zfuA7M{hHlcZOREh2>w+=8mdk8irCByG*X-D7qR&mXsk9hC}OiP&_r!&Sj6gPpsCu_ zsEF0bKr^+eaS^MBf#zyclOh(IffBW;X%UOVzn@ghbcK8y|8W_Xe50l+<<@}84>d1L<1aTwQEju|5jK@p z$v4`Cop;q_Xs@9)uM}@VemuiAzpBlr{AI4Z6sXc&o4xAM-!w0bnB$7usSEqGuql0~ zD{ZHKnq|YC&MU>AaK%M?p72}Qe9Fr@0}06@b~kY)J;2y-uxnpD>5mJ^nQMTnkND^X zWH`v>%m9}G!$FQ~16=RIhnHBF2yn?M9P9<*Q1CtRN#mO?s%s2pDEMPPG8uu7MaBOO zG2viAfBM*zqnckuZwb8>63OM809R@rwUTPt=e31{JfbxeJdVK_&VKLg_~f1Sou866ToEHR2Q$$;uH>!fFI~9GF%4=a0w_J z{O4-KjuUYLQ0RHg6{ABU7;@-phz|uP9uX}g#lLF-wJf{6fz#SbJGQi~mN6N{275f(BU4*tPX z)RzeILP3@gjX53B9T8nDB-#%V;o#7#5ItDX{+UE)h|g&3^MhF`4)T10VyBB2UBmbn z#kc9}&< zy=4_+n_#9f2W)i*4B3uK*-bDblzG{Xn2(bpndR-s$?QAOUec`&er-6mX2+aa^rYYSQ|(VwS4-Oij~>Sx<v|xPnKWaJtgso-4 zSz0Wk8nyUvD^W||v$Xh( zmKQNqW@g$0(3M&?Bxu1PFdcC@4PLeLa_3oE{6K17JC|Jd~gXqryw6CFu=Y z%co~)2^cM1f3UT@0l>S|vLitYhKcK_rQSQXmg+Ui)=SW6nYPZZmx=&n!+G{3Xu-Jg zIJFGJ3Ipq9!dY69jFuj~?0Ojlz;J4LCP51ZlC=<*v*AKJFBn*q>AfMN<@hc;FZTkl znOa^*&=OLCDbzBgo2}*dv$TYbmY;C60Ndzm0DhpBg9%!~D)2b9_*o{>apvTND zMSbevnifXo4~=b=$pB@*dA?3ic~o;bi#jQy0`EaBj5BR!ILOtrP>`k%d(c5Q-;3#Z z^H=G;4=;65J*6I7nZnZ-Q?EXNEUZf9_O6?CK@<$1eZpkeQD&>5Im4E8+<{@afx|%> z6>MZj-wOw6routqOc(-)&(0i{&KM4|Ghs8o_-xFuG)A#}SsD(qO0kI_Wy44ia}#J5 zpVPu{kn_B7kP|ngB|fKC;UMQq_);5w^TwDMG;c$%2fcyx#?YHiuaw@+^zMRpt$w_q zaxn=1?&8RI?_hqtyLN@}yS&z`zym@3yBkM%uBm@_lL!wh_3v&L>4-%GUWYl?xz2U9 zbKQaKmwMRnX=+$!yYBX3j%H5~D7OV6|L*1yp4jT&T@v9Lt^VETMR+KyfA{$jp2F(i z-7>P~Is5v$=xrI{IjsKOts^{R)xWz^0ck18W zIkHTyT_bnMwOfQ|l=^pfkGw9|9+B_m+B3pKM*X{cM+)WIC(;#Hw8wsSq}$M)aDW}& z_=F@T9OQq8go4-NiGe})E2J6Id@y^}cz7LBeRII1pY~>A(4& zTe`AOc0_-@R);duW_qcIr1LSemE&Kq_KF2U^3CKT%_Z!HNM1+FPt|i@0 ze4Zta?1^N`b%58b%OMWQP;ig^J1`7(Dhlz?g85Ct3%1q%_I_#R2|@W;ob#4Pu9Y3^V)fhnS;y7;*dPz$3&K_-OLLWHh{_)zfh zM*3F@Jr6#n1n>ioibfmq_a-Vh4PaROz#-9MNAT}k1D{I7Rhy}5-NnR}Jc#Ju5RG#w z#)8yXFf5kI4!RhMQY^Jv?6eRop;$6k>=g8wE!4FeoeQ&8nN9LU0>o^k{{nnWUSZt= z{7X;N0&_7+(jXZMPP>44X6C}dS)c=pgh>)-O0*%9jUdNab0b_SwLA*qaVz-1dOS}- zhJ#$UEEYc$`G61-H0< z7PuD;7XN9Sk5?0WGLrws!CRWD^)Yzg8i4Z-aQ44mwI{OzA2QtBs=Y`e1Sbiqw15A= zKkZg__TfqfaeG4rrq2M4-S-s!XtO%*|FMswrq3^eg0aie_iigh%+e=_!o@6ccPvTCcc(Bt$%qRD{zQ2ucbN<%u?!1 z3EmdJ+!B52Jmh-}_KUVej6S6gT!sZFkQ~}{?m0@Sb^vtFS%kmxA~6B4-fke#tULDQ zQFaNwjQ$&)NR6F}opR$a4DTVzu_sd#o1` zt)H;o#O2?At2|oKQrEknHn@lJ=^k6sdIcQIR;a9}5NLn^@}@HGW}7=QiPARM*VL-< zeiKaCwgQ%N2X20Y^|+LyRwXSf^lk(KN=E^`*3C$qiYu*$TzRKa=}?FmM4WP!-dXIO zBua}6C>LXXpYCr>gWoU7v*sUzt@0+CX}?>RDR%iAorm&&4bJ7j4T7^iMF3B4wG6K2 zryJrj5w!s_{(ZXb;AY64bq^$e1OG_?_fYbC1il7w0xr85*e11PmjXwA{temRu#8=R zQYm8>#IY&oz}B;70)f#m-hd*V1qj>=Vl8Der^IDb%gH9)T-93#2&)=A9RHqQ_w2lNBD%*4hD zl!FI6*r37I8jnHla5!nLpFn&ASEjXs<%H2%7F%n&4<;JU%U0trV^TtI3YC*%pKQx= z%?0dU2yTG0?=#Z{)6Xfi3PSPw%wRLhVUyhZEMr|lPBO~@(TSSB%A7m|*t^KZA<0R@ zN8(jn>6}7}_u&PAUG7)vVmOtVm{ROqLP?U!34lMLfU0siOxG`?N%EJ9Aq*_sbZTA% z&e(ubqv5O>2&@8eI|ElB@B)Z^a7t|C;4vZ&uQxS>_0{J?18w9_z?_B?8<`)(=36+i zkwyl8oajp1T4*ExMi$~W(jYwLuxHuGDXywG6<2x@aushogTRWWD`jKjZC7Mij*X0e z>3l9zdAp+r?|AHL7}XlpKvUThrS1+VrgAQbIdEbsjZ8#62N`zDr7e(4*Hmr+a5E)o zDvyGA7fwv2kxW*GvU3kD8?y0d* z8&kO*&~0$?fcpf*M{xX!$uxT2&8rjrxvSm!>a^P=oXrGHaz{4h|3G7rjX{~)Ao`EaVTETL{#$-k^VC~??Oe0~f+o^9+2#-R4K`4IP83eu%JqsJZ?ZjjnwznLR)~_LNEt}Zicpp$RP39bcX2FTc z+zetP12mcMf;a+ao6I8pK2%yFEKCrF6RG!lVw6116TH~31r@XT17yCVoS041TKE9}>@EhO#<&yWx1K>* z<*@NvPt2wPddmT6HYY&oIGW9b3RD@ioJP*?Qc^m2l)H~|w48}@Vmysp@LY09<E)I&QTG5hP^P-l1Zf;|9tU3DsrJh?43W>sHq)M|T=tPe`koGoM8F9#s@u|C)3@) z*}Bb1TcW#$o9~m3?iY-1b8?pGzS&g=-CzG_otU$@M7KGKOO;f1hRKW(b8yUUbM(Q7 z6Lqh3183*Ea$f{!_O(rAz9>oYAF99&mIw>Eq=4l|Anck9O-yx`1HUed%FQRrV~z$xhe#jyh{EP!aJT5gcmtn2 zq~j#TEju+HScDZS#AnG?CG9Q7WM#;Z(aPJRX5|JrKFQmnsm=uf9h<1*o3c8%S4MOk zq7K>DR7OWFqoaYX<4fwOhUY?sE-&EQA(Mj$V(c6=I@T2n`UA4;#0L~Ri5CYeZ$}mi z;dzDtTy4mZaa?Oxx<=NYINp`=)MhKGJY>jpRi%k9?{7q5@5Dt&HGME;mjIYNq~8?9 zGNGW;RchA~D&!6erm&Ex=gX(C^IR#^@a0xO1*r5VDD`6*sR~yYDaA^?a#>savw`F& z$JcZzb5tDsj%odmQgyL!z%7lE(&QoP|0qpelxBRxN1+sD@LU40l!zfyA}U3RB$a+Z zdRCNAWy!fxF(n#*6QuSbubwx{NJ^=s*;uOmR3RP5E#D!#d_%XPdqV2D=xbGuXYTIGDc!>g&MsTmi6KeRgNKobuFWD{(u+ zD{QJzFv!j@in6x>C|RRgQ*~4bl%%kfs6*vbc2&Ai>kUIb3gwoiZp$?+{kJ5aBiXML+WLZa^kpN4H7&0ZIQj|zi8N^gJluzZh zbERTRG=3$dZbDu?pOlf5Qc1J1GrU0+VgcOFaHn0qj~_<)-eSt$OPu_%rc7s$T8r$! zCWAU)ds@KTsGIZx{KrhjEZ}`^`#4XpB8J^rkk-#YtBQ2Q+s6?Uo0=%bnDSy@#>MVH zY6~g044$h~Me0D^9gM%%#8XHe(!U`S`w-X0nVO|BPx$Gz+b+e)E6mkW)cI!2TJMKT zVRqU(SS;!|6kpx&=h>fZG5Ie6{fux{i~+?d7k(zsVoemql&T7sLMv?GmP@(tU$QJ( z)G>gLfU~j@*bL%+%5oc#k@dKgk@XI#Vci16NkG4(?0N)hVH;Nwocs>yLe#|}lsdm$ zU2u1j)WrnU#RN!7rJ#}D3c=Vf>pj5(EABz2QZ*G<-$=HY~GWAen~hDjDh29 z#ItJ}bwPtts|tz$XVpYt0*EniDSRRt3H-;_*#mVacSA><4f3#X~NwX2sf|!Jn#d3LwiG=yW%BmZZ~95|8-)X z#*hTDo}YDpC;4_aYIQ#}YSTDf~5xq|n>IrU5b;u3Z}k5-(*h zC#GyEsqVMuG2Vd&Z0 zW_)lEEnNR8>P6J6jEoqa#gL7EA9z^4DJr-;jo+6}3NFvl*W%+cXvw@7qc141s>2iQ zcK~5?W1{&Md>{v2TR1O~-aL3Jvg37}9uLYh9-as~$xKqg(ODmYD<4X$^dS$S4tD}n zHjg(V#?B*b_b?UsTxa)0(;+a0fg)yfmj>0y$!hxQtx$9nVz$6jI^PkPqykUr`Uk*P zKkDOeEBRFWTL3-3!jru9;usWphoI4?mevg9z{z=HBz1yA6|>qwnTWo!f2u8hb@8135$ z+zn6KilKzInp73%(CprTcSpmlyx%XwCqNohJ=0viK}x+y`NQxeAquES{t=}JK8tw2a<5Mqp@bS)YRaP^$5}Qgz#-TSA1LJ80&uuA5Auh2xg{`8}W3WJ;NdQ)8 zwFCPZ5!L7t81B5`MMA%amdG34fwaD;2DGPN9E89I2%zakD*r%TiA)5hF;I)!{t&=< zCj<3){EtnQ-jPYXX_6qoBq6ku1Zg{oNbP+X`vUJd2~YAJ`3j1#D-g z<6AI(G2+qFhN~)9R@q5-B&i!7KZv!q!Ml7&|AvY=0ntb?1u4Y&%t(x~N2+6&Bd+hA z6YQlT73tIkk0?;qDR`nFM-))#y%SJ16mK!%yacJp-cCHa2Jl>X0{@6PixILKCk)od zwJDsJAQgEVH$ySuL_)yluTqD*O72uf>dN(2fRlHWzB^r@KpjQB$$fxk8oW9 z=Osv`f6Ln52~viWygM6B1wJ|~gEyv1@9{ABzk^?)?aSCBhPVnJA5$_VtIzINy^2+r zvC@+eXvsm`>{WN;5tn1h&8;F&;a2nwLodmPCs}fCR2avrvXXeC@@`e>6|Y5N9RPwh zSf{6Sej3KoqMF90GuSF}3{d_BglDkP_G=v$JQoXia~OXQJh{smI_oZf+RB`6RbByx zeRI!l*cz{2W?Ct{>s2K5AWo{Fj+fv`PXEHN5E+=IV%K={9w}f#iw5AWFF~Ieke}ut zJxH6II^5*`9bGkUTi?<3m*EDri}H?cEp{{g4ob9!gnRGX1wW;;;-aT?p%{S3Vq~#9 zz@CfYN#?{1rDrBV%ThbtDawz(6ytqf|F7YA&$Cq5l7Jo|ff5E(dgw7o?1Dsv&tW4N zXW!?`M6!|G=gXSf*d9lKJwoiK`#pG80z2??yvw~K*XB24>i!W@YNUQ+V(K^Q1~eA+ zCG{J1dj?c`Bc|R65|TROOzJ{AsoU5oO#LEanfm<+soVV0`rwbZQ%8^aLl=Gb4bvFN zG?pP=x;5os1*WRhWzkABQ0eo?-%_4mzoPIX{(X4qOd9)lmmT07xMA(?l1FjriW zw-;O$qg1~(*ieh>VK^@Zyc^-E^xEjro--g_+aL`Y9al(;Al)cBuC;APsy+^El~DA0QQ@OsvRK zpW^x@oR=UKIdDj+pFvsHXh$clojwUq#faO4o|FMzE}WN0?_U&5zlv4R6_L_sSw2+J zFm=gG(Zi4hJsfl)X_da2MI8>TT~ze@O3V}fq8Lijw^P$PaNQLXyW1^CR2I*z$l}=< zltm}0=PT5O)OnIpN6Sb_x1)e`yMq)@kgV!!@db68c#i+k| z8=T&Q>+^}yUMlp?rFT6%6;TtEIt^Y^w(9HB^9H}qj<~Q1}b`=Q;nBNcrEa}De%zRH6BLo7wtwh&lCwPcv6`(0~S1~ z1}G0vU5Hw1P)y&TD5@gM@Pya`%Cife6wMywHe7_K9ipuN!IOG@4Mmosu`38N1O2D| zxLTOWz2eCuyZ$6QP`d^jHAa;$4YgF2aX8}xuDlvAlkk2_?;Ch3^6NsZ_5x~M39rI* z%ps_^M&qCDXuBIq;=duj(f)u|RgTsmW>S@-C0f!|F($VC9i`Ub`barNjI|YcnUr@R zJW6}VgFqgJp#Q!E()tLVn+HksF(icg8>^};E@q-CM)gz2W8#Uc#?{4pslt00o{BV> zkDdsoRo@`oI=mlR>Ps;O=^A#mQO)X?wCaLuzeE8qb$AQlsmSM;?@s__l_nx2lat*{ zUR-Qzq?Vj}af%+U8x!$fs_;&ShyL>J9q2Dtu)n;92(d;iqv0f7l+O%DzlT7YYzcC0xECIO$?} z%b`3@4pQDbZ~qnO4V!?v2fEh7S$84u5{MVzQaIN%QgO=2=iQWJ4Fcj@Ku=P(Hv*~o z81}>A2ItuGDmV3om@lM!=Fgpk6z70*9zc!ZtceKR0AdLPLlO7@#1Xgx&R~rKZ0&^t z|Mfc6x((5F3vgs1oV5gjhe2#&U={*@f%pwBqXW(uUgRckC=5a6=O3&qEuM(H3<9iE zRXjf6tX>FQ0b)Fyo&I)L!*fi3pbkj-D*?EL5={SV5XTu{`cQA@D7Tui%Qla?*W87UlX`^RVL7M;7dmv+U*@P-hMz zPMNZ$d~LnMYVHYCwL)YC&gy_b7Z9D`vM)=J$0xOpCa=^C@_E!+Px)~`O$Gc4IBO~b z&w+RbPNlGNZ*enVD0Dmd`QOj%-*O}-9Xj(%Yhtw7Pq|(!N1p?cG9>&-)d8DqA@V@LtozkkUjxVZeUI@ zOUgi{~GBqM-pasPr{kV3zoCC#=;})&I7J z&G_7pM4v~mN37Kdp1?WPz4?FlE}56btSDm}0V`X(V#EHr0kq8M|W zG@0YnBLC*{{Q4Db{!q@Ho&z5i5OXICmrr~n10{R7{CPbIV4V;1)dFBu#CHK+2tdF( z4o|Ymgfcel;xl5<-$)7XdnxZl;(>Z%F(?VyQ#6V4Z^0fvMZ7Ff-SrPz^)cH2(FUXAs-nW>HH=*gyos{vtzvlChnf(v$;*6jCDgPE>N$kR{czpe02QbZf64i-A zHsA+RAsBfXR80_`9`Ga!6>WXf)TP~Y-Y8g*`eVCk2Aa2NiWhw~DRIw5(bQupAx$&HTGyBg<4A?SG)p5&z|hiwrHi!rY= z{yh^fbGAq;RO|1EvZ~B*#`ZkOQKks1zi^D`c4$D;Vh)DcPXzY?0+@qg_VZCKW`!!N zF2d(>P|@?8YP?LstHARn!@~&lK9nfE))T1v=^}yI57R@t%XSZ{0V;rsPwzq08iQi? z42q&a@nDw7MTmb6VI7-^#x^s~3f2~_$d{^chKv|j`UBZKP!k2g_|YGz?F443%wQnQ zNooCY|KOEEBv63~&;B0fC9^^xz$`wdhYXpcGSdUe_Mr26XfH;ZR%>{YOu(+9=_)hJ zs{CM8RuMB*^G%#Sf$KmxFD1MU;Hk)o%{UnYlxG1vQ4n9aT;Pq}$A!xw(}rNM3I6iA z=s);9Xcja8e25L5zjNFN13wepfV3*=jOd1S@W1ak#p%93nSU z2iH5E1i^nCkQI=Oxri~camv<#gJ~|-RpwI5Er1<|(C2U}^Wp>{k1L)a)WRAENQFAM zo8XXHE|x^y5*x}$WHt>(Vz_NAE}EPViDqz_Y-NMQA0xU&wWTsoc}k>(X8=15&dU}? zQe1V)bHRoxaMH>w3HpaKDK0(T1+hEfii#clchAa;Ym9!8K9{oExOp~|qeo@73>L^r zmc=!#7olZ8Gr?6ZsUL&K-@mw-v1Kcj=mM#qQxNzb4!_7AJSR>tU%{(UaU4Fms~Lqb zfA;WcRUXf>1wB$#T;;3>(cB!Yh&?WlYm_MKr8@5^dS~FlF3-f0K>8F~?@Ixckp>en z)|=8QGJ7VTf1o_`;feL@j`V3{F@9U1Lr=_Lc6%TnHxjkVpqNXfvHo$Sv4Uy51GWwNWh9AC*OlCl^4n8YHDCSgN<9a~XZU9W6`s zZxJ0Cw+My_vDQd<^45~8vhvo_t#huzsTgI?bcVsi^`>)zy;P(kjThpd#XwmPz>`Yj zN}7sMXf&3!AIJ4+I4?meQaWF$gP^P<@C42^Fcl+YI0iaj;`%L|mmn3HgbwrvD9eK$ zE^sbzsTd*2IAAu4=qxxdK`N34yH*21tC4|o@k+%AnRgNXq!d@)TV8@xq-eZSymhQe z@I*V;VP$-gnWn3C1Y5<3Uoy;63vgWqCpVjy23Dnibvdf}UXZp-O;7GigV;y@9g6)Y zh}L`@iQ@S4en~*~20#Ljx+Q^n&hsA6$ZG@XH}DZ1**91zKCL`|B#NuZ7$^_SM|>{4 zM70<>EVZ{BsPxO2r)B`ydCK&}m;!nx<9oXCIi4(uk9_zV_CFxn8f}zv(}0Q*>Klnw z7F_4Sc?nXHmU(!bf%5QloC*gqdF6VOU3uR+GhF}A_GSXkaQ#1@M}XdpXSPaT%gN%~ zkgQ(^u>s3!CokF}lc4n*YE4_%YAg z>lJNu0hhe$XHJ$tLk3VY*u2n2x1$dHJCYx-zbVcWd|YuAxuGuh{UFM^(ZpB#N^Hh3 zh4Fk1&?-ie78m0M7_OV)ycCd+K2>_(%_!`%2;<(Anff>NS%W_!xz`cv`2t?N;x6lt z41Sj_TPPw8@owWsV$K*0|3_FwhQEorUWhE^!xPyE;!&P)s;J0QD~+HSWj;WKHUy?6 zoR<>bba*PgYa8Tg5J=fk&BOeVIn29XEs(i$DA;ogP)Qimc@_a>TS^-xqhX4w^oi8+ zjL}kvL8iPZzaKGKomj~Fz3@WZ6VO%3+oeG@)xuDbU7K($4}g|c>J0OVkzqa&Qm7*! z+&2MayKe$SNsLL~`vUU+u4@H zcO!B0CV&`u6JTdP#>75;30psKeWIKq#@dR!)ae}wPu>Jf2Z21~-mlclAgzz#Nm?_J z78(FA0Or-a8nlX0>#rTL){E;Oa9#>{-+-qgJMY8cMT;O`3{T47*4QZ4m|6F?D~Zzi zIoSOLaQ8$3FLiih@KmJLy%?c`vSueDBySDeye%%aHB!qT6|wOH*L8__FI9N2fTtqG zXy1oGSx>=pTT{z+>KLVZHM7)fxV{JHCDQvCJQXQH3w;U7Is-4>5>qfisPaX@(^5N> z`Dz=$*I?lT&PxIB5Ag5`1GQTZaaMbHQajvid{#9tF6Lfm6{GOLop|=)IxZ3Kr3!Cz zcq%d#^?em6>t=YONUB+KG+Gyomn>2G{sJtKpggqCGL0@ zO^LND`_y9;-ilR}A94LF5$~l6??HGNWz^*TS%>#$)y2;JNuBce$GbWTs`RIjuIGI4 zVHq%5z?%-)JD&d6J&5mvc)(>?(1S$?1zR9~d@m@KZQ)lN#jHQ0m{Qn$?q%{*nfyHl zMb$QHM5-h+zSRR*AVI9>X*(%oVSl#l?jC;+8cA61*(}M$3g#kx5u`jnxDp3!iO5rJ z@h>QdwQ`p@RmVj&cU5A}Y+1Xjs)IjsjY`F+VavxbL4db~^HO-Xt^l%23OttL(+82> zN|s^_V#LT%+LS^xrEhEl{&nDsspQe7;ESo0MKt{L1hwp;mWPcN2PLMGqAL9WwVX6s z($V?ER31i5)?Auv*Hn_{m`Y(_6V?V4^jZ|XEcsC~gAg$naPC>UKEi{0b%I&PU7`3kY5d{&rm_+Zan*2AkMl7o|M6@u{98OO{HB)lwL9sZ!>VcDp9~o9p3ivVA$@$R1%bR zebh@Xpiz{N-{Vst229r5G;fl~RL zYNJui`ZJ0t1tT+s$rn5YHLn>IRokc$sglh2;&sl4Q(xIhiK&#YqQ>8VMv`x;tYz_B zyds&q0#crs9Sw;C*&>nNo{9BEw7U>5g_iA@++`VkHDN{mRaudDR@65yRcaUnJrm$b zrE^6cbMxD=;>P&pCjK_WqpGlO-o{^i-Hp6gt1ZKVAo$j!21H@kLgSqW;@|Iy(%||E zoR?@7nRY$S`2%JB3C~T`R$fO};i5bOSbVReo6TW%ViX?P9IMthV4nt@m*U<}>3s)J z&6^1YW9jS+9QU_g z%?w0N9#ZOhV63(9L^*e5B`BwYdz<6EGp;+~yhN+WHpo2>%6b)^E2m6t_`&E;NuZ2;>}#{!ds5i~dho z_M(5}N4zHJ4U9FyNbog5LNTZ*|++QvKH|*+F}@p>*sJ@ig}-gry?Vu4iQ#~;QpSs)(P&zzOG@_6Rj2xg;KI3bd_-_gjKVd?FP%uDxD< z1!ZXfj{@{ArG7-rzaY-Q)#b-cMk=T_Ag$mEua$?`7LAb|IE$Y<4F_>KTxM(Z_U&#L zG*miEi(jP%I?d`2$U0!xQn)(;FM`+)mvQ}_ap5>+i(*b->E`#}irlUS>^tDUfm0bJ zSgIPUw6Q$DNR0h|kjgZf!DmYR|sq4JkAjCE5^C3_I*L5-i!$9D# zJ5?rahf&~nDW6e*HEfIK<62-B6VJD`1|M)K7e7vCTYQ82FtA(U@XO?)`!jCmFqGFM zfjnAVb3X$3TW}Uv;m?5hg8{C~=fm9P!ez6HjJ)Mijv`fYb@ekWENiF};2q#p3b%k7 z8E*n*OF_oszRyX(UIAxuC+JELD;VJ3&}TvHg_HI%ihQmjlX#T_o(pELa8f@3{Bbyy z@zD5q>Vb0#ZKKe$fFw#W1n`I9a5Q{EmLunq*-9Di0eu(vBXAaXh5ilV3|uC+dYXDl zb}2W_!Me!ecF#f#%BsRy+yL4QL>D+DpIBol<;6cJ`jpAD!lpuC3WZX*1=b{)=2C8j zeNbd^7wlSK*T7la7yA;37vNG7(@S?{-Rv%@E@^!a=(liXe)4MdHP=YQDI1kpDUf+9 z9|TfNPl2@vCgW!K! z$h%~t0q>Hb!Msa;5A3&z=WEoo^YHo{PF|zda8ks;$4%SLL)mx9T_Dg2PF|x<0&xW# zenl@kh5g^N^6Jk!v-|B{93LVZ;QCnHRd|uLfXGa4t1uOU#XGl>$OL;rFj+QJ*xM?& z!6IW0o~;JwaVZ;bzg&G2)#JShFm$p6urWTUlOd-mhKBIORxA3f7+jNon3a5O^HUZr%)*-ry~lvgMF_NdC<hTn zn0YD3d^pm22EP9SWsQI*V@ST`#6WX~s;G5d9}XyEl>c%U{>%s01#n(Uc=?P}k@M$Z z2@jO#K6s*FKs77_Ia}!XLQ&1?k%k1avUdSty=-73!TNuMod=XusXYi7Q+rtI0Xr>vQs?s89(`1rY)Gw{E4YFwQ3+Uzf}qBpNoBl*v{ z5g$Nh!vE}W3=fEg7}|MQ@BO3b5U5At*|CcB_U@+6XUFZ`HuaM^G!qRQoLZhc7rkEk zHu_oUoDQu_eC|N$?cI&=(Q7|>J(p0FQGUU>?EjPhqu$>x5$At4jro7P%tx92+#c4K zudoZ;%>NT~#t;*I&;K7#N&=}3TrfZ!$9U#y^w#5I<5QtA>!dS?1_OIcLh zp4&i+idx0ST;}gwYc3PzpLr}J1F0IBDH1(pJ{e7Z@hhAj7sZ(Pk0HZbD>JNn)=?yn zLW~r!<2f^@RCYXj9>6dJT5H-k>Ajq^taVuKoR(vENL~YGIn-L~n>`(r8LdK|rgL*r zPZ5#PI_J}1o`Osvj=y2HOGsw-UI;S<30-2$+ba-~#r^JGNd#mb$1w`#Sg1l9D!mYP z2@;xZ8krV&UrhLH3AD$t4rZ+tI4&(f*BpVIANhcZ_E~>N_*Yf{N6Q1TyM@{g*p?Qc zuZ}>iF4Jw)rFCU9N}LS>63 zv<_IoLA;Ehs6;J<7fJ;#+es-VqXwfh;C&!-C5~fZj*)cyE73-a!(D3ATrD3w-x#A! z7Z)O;&rX;tajb=T5-RzaL6sLafeXTYO>^@NkgvdgCSk*!uIR=?1DRh4(Qy>Lpc3uD z_nMM{^O|zrN#q*s$v+M3$r8?^3fvBJs~rCjvL5DDsPagc8Q1FACYsz-9^m}-;Hix| zPg%@w@G41Dz5j)aeYCX-pKdKn_4J+fFiXVOYC3}^L1?xK9)*z{PP01~E4O!Z{7VHn z>M**L{2u_N1d8&X7(v$z&J5vV;SDWZ5Y2Lr=U-m{N(mI@uWA}aI!`#MZ|>Aw>~AM? z_H0&pHEGk%uJ*IgD@T;SEQe2wNmO6nu`$Kw>u)~I>*+20X!gcL&Bt`K>*)Ef5z}VD z3$Al9X~x6KX&xlRB;OEIJSnn=i@l zK1_=6udhg@B%G?$r305Jf1h>Of5VycxmblVrO&t*l4^QMBD$RatDyK(Q~7^XWB-fO ztl<*mqEbPg+Jgx|{$GIN&t2sYsTW0W<4kVhlFn)W1V$6jrJDC46H)#UMt^?_lv?FL zwixqYN4N;Dq_%qm;dr{}hm@TzQj^cI3_qoc^vNJrGkG9;Nklt5f(T^;=$)pq-NCCM zwY4KTGZWLH_3@9_`ymzL1HrZ@TRJ>^+I{ z7o+EGVLtJgIBRclKXpL2DY)M0Pv6h$GVbSfd*rH!N+qseGvMu^l!R0I0GB=ao0<3p zS5a7hK0(DBPPpwC?ftdy7mX_vkAVOcc09pJeNri8i!B`_bGrO5-qHVE{FlgIpCih^ zZz1bCM>+YB_m8u6`Rj~P0qTnpYtrb;w@6$;s&0H%CROs zIAP9*d^U?I_jcd5pgEbJ>@GoTPgA)dxt|<-!{ajMn~+K#z{Ms`^Y&4G^`$)j@*lFJ zzd4wBe!R@xTLh zj&4e+B09Pbhuri3R}JOzbrutfJ~f+*)%b&4%eb&~EA9QR6;G)&xSmpJ@+46-ztP=G z87Gh=yXdMYK(*nHpWGdkl9(Lmk#c#Y#H0M~2S?EvaOM^+u}usZyF@GRjJ3|pjBBma zCi6-#3A^G~Bjbwn$ucHL`TqslQMr8G`lsSaoy)~){6?-tT*$bz_gf~OEJat7@o~y{ z*-b9vir8mIQGm)(#xDk?Bqn=#q+A{;@hJb?#mqs%B~RuOY6uMoD?5d$@_1$E!-e$a z2{-dILFtxol7zR_XHkIv>T`9&>4nFC^cdUSim2pu9NJG%u@Suos=8Cfp{TVMy8auW%?i+Svni;13k7v3LFQmCBR~#?OeY+d!(0k&OK6vh1nR$5 zkXj9&x{*tje6}TY4uK7uS3C7Ry!njFYlyuFwbkJ!?}bQbNyo%ua|^y@2h(qZ+TOs& z96f|Rh=PpGF>CN0M(|*$?2rry<9Z;;ONzJOOk{%ySqNl4RIo7vmKAhH?w7o=LFyY2 zoR{Kz5!ux)EGp6B+Se|jY0l4W7T;!ajF#K(Bc3%-i8kMOya`;u4@?-Ny)_%bz6Y6> zI8wT&kZFWtD9j+JMCUAQ2}R_&Ixc0!qY}kt0+0n@FOl#CI39qxPmZZLzJU1*D$&U> zUOvrvO}5vilV5Us&mhlc$O&r5zr<%S! z(I~yjw>{C(uJV%JFCCY#ABG!N4%#B>EO6~MXKNqEv8go6_ z<^M4#C3KX3HgYe*nK!ruxu{f-k0zVwbN;`DQUXQ!30_&h!6g&7Ik;W>%RdqS0=&## z-d_uTA^MC(HVJ-tZxnUq{}3o8v8Ytu_m{AS!v9ghJO2vwo`}<|(UjT!M5R(Ub|By0;{PcqC55Tkx?IL3D!N@w*gvp!8@17}nvI>aHq)bS1yjwO z_{g^I)t23~(Shm&*;iY3vqlYVcQ3EjGt9-Z^NDLt>UKKA8{nG2Bs+4ksm_C;wL2}U zSKYLWDnZc~igXO#A+C1Ymon|%$?Sc=7PriXv^@mC>5>BL*N9^c(M;;mcpl#|r|oX0`||G9Ts>7CT16h-QBU0&qE+itr$cI}n8 zc27)i!Gi70jP#S>SEGShTCDABLH6ak05p9l*Sj>UFyO=Vtm_O^p_%%D=FnE$2khm4utyJ*XDB3q=-{N_d|t zT0s7*p_I^6RODWRGhcAAkxGt?o*I>3yGI?BZ>iw#9KgOON!*R71XAzHmB0HqnhN|( z1s5x?X|RlVB@n&BoFxBUpp?*2eiO#Zz2VGJT&$c1zZr7E{&OH5DE=oyDWRkMSx58X zFgP=pi-sUz@v90!8@^hmc~pq`oU`;ongwZP}IHn`o#CYVQJ$3OSM0a%*g!eCDQFpb)uDRZ%U=D(>EB+-@^tOC?$!MK8O_MZ%08h{7g?SHcBZV7R=o1 znC5C`aEy_oQ#=TkhPi*z0Puf2l#+O=wJx2xMES4N3{QbG7jv;HW&EB|Sd#jU;lwij z^)+bwMVcsoGIILrvw4t9kc&zMncaz{8vb8_><6i+tDU*YMUSek)?V$N5qVJ?#zch= z6$lDH7QR&cf`pD*D_mDwARe)M)dGAZaeb;Le#BxCh6CdYC4!+5gJ^xCCfSdRO;g;! zeo~wLA9$IQy}ybrBagxt%w^jq|K~#~p`&xM7~*ALS@&`r=4LKdr3R@PqJnSil87GS z{|P81bd%&m{>_EZ zwTY?|fJSIov=y-d$k^dgnXGtEa4H)` z?TIBhJNKyv$>%ges^n3o{qmYmq`vbeH$ll80-r;#~lJ3wurGFeu7U~W`Mk(GVD=a&13T-KFFc9z4z z4TW0Ec+z9*M%{%yDN(glU>QytnNXew@LZ^%?YuO&Ac*;rD7&a-syhfqWHPbzTJr)I zfF~vPd|ELaDRfDu*8E+8tDM?$**|5q^GcJm4b4a zWO}{z0vGgt-D0w^8!dKr2DW$?*gaPWyIk0|hh!9PNi;dW5!Oc5$XfO$%Jc@6Yo^Wy zHFZ+1R-Y17u#h_J(;8)PacZe$sZ}7jjf<$mOI;OAM5~BA`Pu=u^B9;lg#4FyUxJJd zn%D~SJ=9hw^LZIQPl`-~xAM&`_?GnJwn9c{_3aPS1uEBZrXHURT$~hSuh{Es#itWZ zM*%+;D$xO^UL+MbFH*KFSzvUe>4jitD+(P+>hW2D3;6X-dMSz?pl%0#tD?}cq+TRD za6x2fqQK~&($~Pg0#T?sCe=&S3S5v_-^A$L)NO!&v;t9qP6P20d4cm14X)^7bT~+( z{*(g5uhKUm&b}%^c}L~jX}x?~mFBDf7uv0#l)Jh&VOoWn1Ei|F0+*Lb1};OU@*!lp zfI1QU@m5BA61+@S;4);YA3^3bP)osI0U2#dSPSzcRHBUoUOqc;LB2MNVcIV6Kd_r6 ztPKPW2OtR9Ed|AyInAk|L6$EcDcQCP>J>$__Wpz zoKLH@vC+PQm4L5-jCLEm0P`GV_aE$VSMqCW*jPDNu_~#*AhQjM%C&32$67aVA=ZtR zBUQp$R%yzBxCvyp6YNkf1vTZcsrki6)(@dR5EghDk=5I!kXZ&~3gFWfleQTYWZr?I znnIYvC`T*7U!zENs%iCWN^IP1k@BRP_5u>mNvhzBjM8tg3z^VOJ#S`$$qr{Zdi*0aB}HbSd~N zpr}}<0No#wlIE;Tq?OBA64Gfvk0J1g73xE@9%=#?ix3lQqz_8yXkecp@R5W{bP$mj zN(C<4N!c}0olBHDjOr;Gf}=Ie9uU8B725uz96WIKod<=sr+QE-w8M}X2*riwWjxXr z+F1lofo!39M5g{&tqN_{W3JFvfWI1w3$1rZN}6**6xxFlQlUMAz&b0WLi11)IG21| zXx~Xlh4vi+-$=+7nion1p;}HV6k5H*sfCa&v@S56A%2y0vTO#<>eF0!w1L-U-XZ;F($h6d3AqT+1&~>Q;|`eH zAUg@{Ww1S<1DIS^97#r#!0Um$3fZ)HSSm!4^l1r`z-31x^@>Xa16Ao;Ui)&z1aKS=@Q_G7p1FFs1M>GUg^6d*Nsel{}RppIuX4Z)oj(J__uS zkkM}F3t-NN?EdKD%$(-b(4hC`%%@yd??q@e6cuM?HFuXn4@gLP{Q!aYB~+q~(>|}Y z1LyN<-_Y75oja5I5 z`Hy5uXEUe;KTmOKZ}bl3QczQlH}o z3o`FOQB5J<(5h#-!zdPr-wrjceocvuyLG5`rQZ>WDoGVQno$l7b|F(~H<;V4=8B`N zYevm#6fNTE;006p9IvOt38|7tnNH{%=AIIsMPXj6Kj9fLI;GF(yuL9+J_@qqX^+j6 zQe?=j?e&$?tnu{4z%Nvq%XEt0#PDDj(&GZxUHWyBpV66qcLKZ}YO8JK9-E9TmhrT< zl^bm^e*?@0sN&rWT*~6?cv}0%jdqg%0q8fVtl zuw@fSjn|tS&59HIt-`en-JH#(4+-rB6>HPD$L0ktq=8}j1PQj0;$o8l&fgWd>Pmr2 z1g_Bbb+5T@v_`35TET8xH`>5{8qrTwd1Y!X2qGZ~l$TXVAzY7QU$SW~Air)=@(j_h zR`fgEg=COQWA}7-0q9ujuumyz3UxRJYdn1x2;$dx`fL}R=5m};#@6+CB<$FFDH*#0 zvSaJVU>;FUHMaKhCU9QfkF!4k`jKQc&Q2W(1KDx5mrVv)pC88ApFB(48fUi#z6WH- z*h9p-ygCp5|!4E}H^?l4~#l9J|}5FO^P zB%}`WR0PhnLh3MkCZg7Q1mLA8xgqP3aMy3G#R)M69cf$5>nB;h`{p_vPI*CvVu^J zvBduXZ-#8q6tVJC2=S}*cioRAW-^KxYR&I6#uC0Kip8+IVYRI^FE2Ni*cWx3tjcm( z=d1|#)pIE)kk_X?@glj9kOHPTMa_)2x%BCeamax0mx72 z*$UYKNW)_&dZ<7H5RXp=uC6Z~HyG&(bbrVWM#jL5g8VqdjyxW5aVDch#7SS@jyx^~ zrVrcLk%xznekIF|Jnkg;cF1PYLvkX|)yyK@^u%*6w%uLuO)qoqPhuKN@_7Ra^~sSp z(D)kkOQIV=t64_LA4#&H#}a+^U{(B5aj#y30S;Wb%<;U=H0R^a8_=vJT8u38I-;Tq zD$!|9Uc>~>ixjs`wlg}~>1ePcAbZ#oG0A4oi=_hR-#x^1nPQTS;Q2_++&QMK8Y0C9 zB-`7VZUcKuI;P4^u8eN$8V|CkleX6r-#Xt`E~Ov;S0#7LI2MWyjY|#{uR-aOD?FBx zgZ{52=XILMb0I&6HXB6*w&cd3ViaUc&I6M*L_*2U13L%GEV->N^-PpIE+eLw6q8Es zUZht0m^_d{=uRS`9>suwL%(k^ab^tGhg zqgi@~7=`FW@TySZss-AcJsbV;?g*j^GCBzSD3~Lm3VrCw3t(8lx-}nFDmD6?(_+GB zO5ipeWso@?$INl`v>|gmjwa)IaYL1zU5*;wV$!e28NWf_Fiw^*AiD|F>{k@cIU-(8oS~N>Z_Cg()(1 zD1_ZlU~4hdR^RXRn4GAZ*pid8j6UMokKjInXgb$JY6Xa>#_55ziG|` za+l{^qc%l`oA$}`(Da0H8tR`s+cx=G&BADFAKIp#9ZTLpPiUL2AQg)t+crH0^9W?0 zSTBeLLtkzMPwcyIA{n08PXT@+Nj&Z*h3lbrHREKqMk-+eJ+KSxwkbOOQ!J?Xiygw#MaL3n^7bvbF;B%Du zdh+O!8t5HgPafBx1}@|EWLvEUp@&sXwFs?N#VJ%c$hKO+p;qf&d{;xZ)$-DGwj{kn ztMwkBccenCR$?O63`g8*3A|IQC9jND%OZTM)fM6Wp}5sjkZrZb;WY-btyVLak0@%! z+Cxj-WY z*S_#abQ+n+{YD0VQ6|eL^0_20lMGyICxlG@cagaS)b8|Dn?tD?I4bA5c)r4jj;?T` zigmx-9T%#EC*3>jFXtD}uSo6)n}QL{wM1Qf z2e9z{c=s$rrY=p~-KdQHQd7VAPj=L$wevk7_DxP*H7)AW$$1X;P|7rFbFlN(4vABI z2sa|?_K*wF*PXi5wf#`G7I}z`r?K#J zW20KKK7HEEAIn5XlkDO3Y27q9<(C`(MTr%U0J%0cDs9qUMy0d4vooOCiPjF>_Xj&A zkldDFQRNx))+wkf$v$v6#%Wm*Dh7YfM4>f7Eomha)OAR!lFd&{Z${UtVgBa!^zs(3 znK?hvcSJJEYgG4`Y;0#2-!!vKn;?#M(XcX%I^fGcq8-p~h$1ReA=Fx%Lp>}fD$J(S zbZ=t!zdxYeGS>@C_`U!;K}H)#N5UKpm3JoCOV$dU%YBr+s{C>(=?5w*&?(>^n-{n= zc5kC&!RMfMCS;EXFVHu+yiD!Dc^SQg+h`q4-}L$)LYpCe#j>OJVkU52Oqo04L((M^ z>;i2(_Sj_LJXQ_8wkxAlTV6ddD{vktrP_3Av<pZWxh7fWNsHsq@H;$;hfa`n*<~w_iD~hF~yvFs*KSr<;)GY|zBth+R zs=V4Evpd`Qo!V2Mn7JgC|1ZDBE(t3`5@sn0jhhaZCMDrjwEPz`O2T%SKcJ{wX72X{ zAK0p>Yc2m8zZCS~3M z@dV(6 zGJ*4o>~=r8vesLq@MUXPuvGhW7oXfo=|pif<$xdQlN$kv%JTzaA?&BaOc zb>?xPk3tBj&U_mLJm+thuQQ(m{uHuxCihG#0c7ipmq=>~vaZfl0c{7_I&&1vk#eZc zTmW-EWb2Gq#Qe5Pj#m`w%xz$Ak+AB_2AJ36P@VY`=69&u_fB?)I^#VPk>^5l=<7_= zvzYFLY@P8a4kB{u0^Ze`K0td3t~T9+l7aJZUuPx(Jr&Zg%Vb;dQS>$UTU}%N2kM`< zx1CgV_@;J`+Jq*tn*E-i3&>=4(`{A*4)u}S_~xVtOgoRs`YVm8in_h;B2yo((l1b| zqopnn-Jobxb_2}lkS<&t3-;D4h+ksG37g%SN1NNT$BX1Ih03*=b03FIbFmD2d=6^# zAj*ukbQVu#nB&xp0pCD$_w0Dr7vP>I zWE>cdX^o6Fm|g?39IDU}vtEW8f=u>0)68ta`)R_Tl7P;c{S)SQsC8RD#_9zOpAtsk zx~$#iE0%o;syLfk0ac#m60+Tu+AQQNd?Oshb zDIyisQABbi6qU^>Fwv4wRNYBYe(%<$UxHgo$P6&kp&qw6h$_(3H8Y7!8+^TQnk!U7 z_~rNB^DZel2h^=7xDhhi=KD3w=TM0bXYukTa9%!pajLob7)ZrA6bWQ>ddnD?W1-4N zTypMfY^n#0Ozoc96Q=5P?qVNkc%T=I8l4!tK^LPG9bA^7I-EQF^(wmI}DQxor+!<9g< z5nRoohbIFUD`)uRUZKwceFoC6>|!e6doCSp9aDwx)#k%*xO*!J`2pBw$Y{6u0q0We zP(_OS>SfqMraNDi_ z=6=O{2toVOHg<$eCma{R%#@=QjyAF|I*rArSv3S1nIe|GK!dOL)Go}G39<~d)5 z{d4pt;MXDh9Q^_F8)Tm&FOk*~WZiRAF@qz_Ap0EkgXtrOo}(!+r$hER@`_AIj#m_( zqpQGPDPcWF)i6)Vp>D-@FyBDk_HkL+;W_f2yaipbo1#y5MGI(|>p=E7@+eai@1CQ5 zfp!vH&yj~GGq||C{c|)5=&_J~-Hvy)?D*w4vR#7o+V9rYIZ`K>s7+7j5Nrh1$@K%e z9qRn+0OELr5{|!DWt+pr?$q5#A0WNMcar)B?>>iB3;*qDUG?h~|Iu^k@jarFUr6dM zg35%~r-S3)XzoFNyZzgE*j6B0Ao~Oi2r$nTJF)zB`{{cD_6gW?7WELaPk;wvgY1O8 zh@OCX|3gMkz)9f8L-q;qNE2lI>`wOA*|%>&L{Gpiz;A%;6L5G)ndf|6@=w5LKsP}M z=m|I~2zV|CxHn1e`ShhB`vkOuX$#pWz)PgH1X=e43WHKt{K|i=k`6}?2AX_O{hm?8F-(FuSb1$ThK?tZ) zJ{kl(7X)0TY!7&E$X3eXFhe0*DZNBmOOSPy@;spDN>-KfCYT%KP^Ekg<`u|RO0UR- zqLql8r{8(+juH^^4Xo-l_%-PEDiZ-+|hJvo9W-bqis=%Ut*P;1>L^-gLW5-dATD(~Y1s5cG zd7tIhr^kegZ6avoS$bJBlb(hhnM@lwd0dCcT-W@s_Ppa0=X$B@W2r6_x_&!JwfU4P zr(XkJ5!WGuy4+-8A7bXmsE1XO9xYtH^$hycnSHcT{^mkNl*)?>c~HZG+sHa?BVJ{KhR@WAO77`YtIb~!xO2VWTLDc!Z6 z%EEcEe&ui%xzlMI#iV|~HqPZ3H|EU99DdB7+`0=A4->%?iMwY}L5H-Mz~8C$$Y8SB zu()tQyl)Ymh`@|!@#9>Nh&*Ci;ge5tZ;zdPJ`1)_Bx+rYV^ryLD>+C5$=qc1&{)+I ziPuj@$LO+4`TKAPwJtf!1uaN)_==#hEf>)2jhw(fqVoGsjZ_wxqwb|se@33caUWI3 zGu-2M&Zom8oxwYj+?YvRY*o}rMd|l^sj~WT5`z~0FNRV=bM#0db)+bNEejNP;bD&+ zIdXS+)3v5G@yLC*(22Vwzd zq0{RQsg2(nQU0ymn7M*q&L!j~DpfM`>15x?|LssppeX<0F`QxuXV!7Ca2?bWl?w7u zJ&b4he-BCt6g_8pA43MOH@TZ}nt!-h86CEhF0fJwbeT^}^b1E6Kq;a5QdI#T)4`eS z!Ntm*&24NjxhgXKy4pjbCiA@aJ0U)CXDv_RV4+X&Xtgs9j-MKtuHEzyMx(9(auK1L zWYe!-{Krjs6JPtu9Lc;$fjtZTnvn3ml@iXH!`ud6O6HNGFb7B7N|{K~ zPuBjTiE;%o8JlJVGr-3 zNJ^!o>M#@axdd|?sIJ;8(A3xYafe~A^h z|K@VNCuKa79G?q~qlgm^BnL_ODcp}hZzNvsos{n}3y8IlRwWM_H}Uw>$}Q+jD1 zdiiKmE?VwQw%Y@FvzefROKAR}Duqn`6`$nd>KSFqsh7%$y616+_v$z2cZ8I|(Fhy| z*$mEuxkwIW@OhZ0p~_EPlu;4htuS5(W+fCA>!fB6%nDpeMaWM=SN}nD zI$PMDEwK)?tZZQyXN!0r=0oYlSuc}QLuQA?*<%qp z2I6PuQhyFNYpZfrVD^8PMB2I33xUmoD*td8KbOk*I;zm2*hx1fl!%(uw!*n4p^PE) z7-W71bNE6UBgp8y?3FOfp{mi~EA(Y;uY%hw6?yCe{ul3$0KF-xZ8%Q4ln;18M&I0i z1V)<^tcteROiHUr#wvcRoq7{r^8%OJmr(&B^Ei$xVHU}8AC9kJHbGX+}Hy zp}8FIs>LkWLgpeIvtXvlaSo34Fq%Fr?$y}vF%o-sxOmP#^4Z5G8lJYDw2TDSnBjjT z$Q+KN8_a=F9Dm=SVXNXlnwPBNKLNm4NhtnRFe~Ix{2O83fhx9RhvcQXsrg8cN|czU zL{a|=+AGKu;W!MYzZ_XO=E7VERnB(tzQ{{L?~k4L9Fe|qt&}%%xHL!Av%i9G%yTMi zEtXfK@+rm93&+GwDU{HA<}%4^vAl2zjVojq%a4IM3W^uYn}h^-E-1)c zET4_QED7;74-}phiggeLQ}99dpNdN7hTjF~4#+%)<8_$zk}98>A!LF$vi4W-VfFzu zKSqa>{|f$RDYz0x*-~C#P}F9Oi*a=}%`;g4QXZf-aY+9=>{jl6*`>iel z_g5|(4Bxt@0_Q=rv~Q~w3?>*JnpFduHo>sNu;!r@J(r==p08(zUp|n@&QO3ckXbQj zK*7lHdKYMW7^C*&T{QF`9uqeoP(QqjwkJ&7ozbgy5XICTvhSihl4s~$RQF1nMW{l^ zYn(jKGG&;!D|wK~GE`Z@XF+B4aCnS~n&r?(o?7}X5t}kXz5((DRHcCDO@F)&KV>La zx%&?jvkVIZh+moFd)UQC(xmH5M!<{(6=h#gJ)yGfdTCfPS|!*yh2Q;4`yjqV!Gl7h z?75yc3UY92qG{_7fQ)w#7TSWu22^nb-(d1M%C8o<-FPe~;C&C_ zcR^+}jt^lrLe#jCPHkH{3a_9ru2I8W=~rInf;-3k2r8QoLb&Z^g}jno0hp*g@sTrg zKfZZa5j|vX!O;b#Gn871qvEp+AzE-Ha$TZ>`5o_L0UaZ$EjZ@G%!4XM>cxLfTpn4` zWC>iEXkbppdkx|DKxPV#k6}K9^ebyixokZrcF_1KY10cwal@*_mngU}6uRfS$M`65 zJcT|BNV9aIE7}ti?VF>*TuM-KIUbNLbdRIh)B|eo3cZT(c91RfQ833s6ngo8;)qn} z2cysy`XFDjl>=OGDD)77m@V|}E@u=v@sTrI=nK(4AF_r1ILxC^y3oB)GMcPJ`a<6X z=wnH#(Cc1JHv_VT?gjYPp9FlNcO<+DvV}edW)x(9MZXpETGb<_p-R!21N3-CMfG@? zlViMZaSQogoG3aYu^PCOKO z9(Ofl`|4Y~d^C&qQes}R-J8hUzIvmT+$*R`Av^Zfy;M%Li7?(E9a9LYuRZ~R6CsUJ+x>eN@i4a_Z2+*kL&tjKejef8d1L>Kz%uOjtd$oAELg4qh$zPgvq4q9AI3w`x6 zDpd)T?yGy5oEkDa^wm#5XuN8q>#L{Eja4%VuAI?Vzko#AzWPF7^PtLHhpEw5FAl=h zv2fg1e-)u;Alp|Tu_}s=fNWp=7ML5Ls;DjvfcolQ1ycZcg}(Y%fIgIz`s$}&&yIV@ z_SM(HJPuhEwy*A0Bx4nsef9b`&|iaWU;R3m<#MR6{sYXnkX5r|U%k}j3UhaoL|^@} z97;re^@DC?Mgy{a^%XEz%AvmcW|%J_+gJArcws9~zOTOjO?>h@fGS;`e>^NdQifg!<~Y!`v)~ z;{P1x6Ug?}y)?aLN&CKflUr!7Alp|z5@v`T>Z>n?SqN2L?&AIb_0?NB9A6o6Tt;90 z^jc(4ef5`6`GVr;g<~ts_mJ(Ydnps-v&g!B+3%SHB(J`DDQ$Q$Wc%vlVa7snU%hQe zfaijO%)a`31m;O7?yH~UqZ|X58#_3lsEte*^iyBGHci#8`s#N%%>TQu?pxPXP<*(3$S5`#=+U&ck--tKaLi*}i(wUV5LWXyWyjuidH(tqBKTYo4q2 zo_X?*2Cq!;wGlY`ik=x2^^(XTUZll-66s(iTJ+S*wt*(ZYPT4ncWhKNL1=aR8k`Z; zF6}f6jR{@YcwQUxF#?jaxY*e|EzC61#M`uFYiW%}bp~@C!OhN=lUcs_kDfsDy6#me zp&{JGevo}t_D^<@@Ef>agj`RcfAT;jZrJUZE)2Ti z#HlGt*D=YxHj)LqT)HnxIziUz%j4LQ2~JC-eTCB!=_oMALgg}|_Bamm3ptLH&$|7X zd_=TvKL_|lkX<76KsMLzEaHr)R|CBpLO@HT7X_H-YQ<3m3$S+qzYW0YLW? zTq~s>lnk6J#9#>K;qvb>&gmqT@nWTBlrfFfn!!+p^pCl4Yt!<)bI7Kp+Z)ai+pfHq zhe-<0Vsa>#@D#VxGHRk%vg=87WZP*S6-RITOy}Q%#8^pOTvMWZvaLX|MEB%?v4}^b z{)5ELfH%3A2fCakR>*$Sc9_))OrR*nK(-Y)AlXZr-o*V9RH5IK=c)^eDoPSIL^QIH13*0 zlI?)^81P3ycI-6^W(E}XsPrgtqN)6$E(0RulGkyugpy=-(w?3iqCYg`9pmaRjSozm%g}tpQ z&19rBw-FW1)%!{FHulA{B(Yms$&$o=R!PyR%8RBMeoL4>)N3YeHumO&T#Vy#limGT zzi6glLoI9`&%dS^#`6Ct(_y*E(H=I+;GP01I#c(SB8>ldr)iqv_e6t}H~@^YVk2Ar zSM^u`!`EEJ#TG=do`_N*$8-M4?fkEXQUXPz4kJac!EK!q>rAWGv{S5FLrbad09G?j zW*Zl)x|3BcWFPK$ig!;QloBY){|qmE7d*K)7Yo-T*TCM-Z9Qx`JhAlI;nvDU-OhUCZ%L|Xin;L?8ho-acjSK&>}WcurD#|1Ik$2j(kC(~j;DfY(sbE8Cr5fVh1WE}M6}4MSTsnW+esC#SKT)bL1=$ZS;b?6? z8YVgH#Wewc9h;rhG2hnTef9H9KJ!|n^WLz`2czS?lQ-1FENynI z#jGXDH3XYyGBN3vtyHpWpNXQk_}7sSDWRkM!N}=+2lEpb8-E|^D-~q;?!?L4B^Qc6 z2U&Eu@~Q*6?AMZZzrAs%eYnf|TGH;fw-L`iXh9ASkef3gH#^8eLCy$}^UFTz=(U`` zxA>^&ESv837vN=Z2Nu`b_n!EgnI zl>{W)bFm4SYZLHu6-G1i@4KV_-uMrfzs{Gi_|w66c>X0KJ+IP6`bXlQ+fvaUV-reF zayhsTOYcwMQTFNAK;IcHzN=ns=d-0MF>n^91AE8Y&6^JE`R`{PRO#?flX|F`-Up$WO2FH%} zMxd9?0}a?1dVigk^q7)!04Mas+e`FclWL1m>fIF$-{5_KcXG7=ij{jfnUI5R^N?5T z&H}!Ko6u0?_Lekqu7`CT5$MNwp^QqP!Nl|I<%Ee zgOfib+2%AfqJaFPX}B2&$9)C06`EdM0Q9mKZi+Km84z&|80lZ3515 zcn0#|6Md3JHUYao6h+M-n}FkBj)r)25*ogIN&C9S$>qtLUt+~><;0`u8sgCk9fQPI zjO=m-9UnuUkN<#HRZuW8!?^*iOB9U^boxIWMO`5ylbx?&zJ%e_fLFt?T57!U&d|qM9f$0Kz$Y;8%OT^PswYSQWL4M&0k4A34NFDl zg1~ZsmqB(xVD~3kXou{Az*LyiAgjhM2$;p)t?kb8P!HOtDCbYJUv5giv>xyw__w4$ zwmU~W#i7!WT@Sb(<{HSZ2Y3aHNKp{h1AZm^dkJVhegyBABOp5;e=E%OkX;YBDMar% zGG%{S57<*_(R#qI;D43^+3u88^R|HE_}>T`CM$lw9?%m&cgV&+17?~WS`T;x<^jmA z2Y6|gxFzk^1AZoas{~}bv-dj2hLBwkI0vOm8b5SxO>GlSFPAZxpGXGovt zYR91wwmTD=kwL8o+S^3TOdj=l$=8xmQwl-rox` zYwE=Pyd5?=pGbk`{oe!sjudF#|8JP>QqbmWC!%?O!$YJgyZHE^se_z}PCZw)o4Dl! z*D%rP*1!SmeERl;Y=Von)90I^d@-FzN$HnZab*`0BTL|x&v3^fb2N^zFvme9>-402H>7a?r-Md z-RW5#V8|L&cucKmD;P7l&YI>JREW0*6_3oasg9_lj_VtHqzx)waRCe-8WIb$9aB(Y z4JsZbmWLs0P~mZm`-Src6<-tnC1f(t7i;&K$)LJw9GmA|>*T^dxB z>7~2a6(UpH#7EA)RI>Em?L`a+L-w_|7-pfOv_?G-IU%M7B{aNfZ3~J+yfx~X>|&+C zc3db9Z`5<43*c#0Hkl)ujS6ej^Agd#0NLX3xJ1;f5jbzu^Bdv6K(;tqKF^#rL~%@a zYE>N9qcE<6!+4tXt6V+H{zsuWGL3p{aXc4_V-WF?v!9hL6~{1Q7!29sxE^Muq8y>U z6SIKs-I=jg`8M9%t+{+c*t<}fK9{>K=xkq#{MdbdV8meb$=st}V2uSb`iSn$FxNwE zWv}gJI1wC~^6PSqOt!xz_)Dltp8cQ1r_+nLpfYu8y%4rS5*pv~6GikYA*TX41zMU= z-`3-D0v8txJ=`s(agW+FW2Y@Vzk!2(TKn0t|DM(Mzf7MdE_PVHP^i3(Z~xIAJcH8+ zG5SpLHN?3bs;I{{29L!Q3~ZytsV1pbc$=nNUIO$2RHdMPorM1MytGIv2**jFqWzs) zctK0D_XDusko*OTTHk=Hu}f1FZ9|kxFz->6^vo87_7H%fcvR9>UQ9rai>3q#t=WB_un| z#cE0x<}@~=fgA~Z7?e5^2TjNy%hO`4xCI4H?4R7?GVZ3y;ciSvY#OvfRLPn$za^_| zRCj>AEge;b3iiwp!7LT*zqz$+p{@t^Dr5`wZ0K zK0tdxwty$XoDA6lo)Ze#b51ncv49sNaG5lyfFFW+0E&O*`eOGYr-#Newz50x|2wwvpCLJWt;md6GV_LTaV&Y)}8PrzHIje+X-^FF&fd4 z7H17bdSM6JpnY)kJBUk}_Lf{7lx$K}JgIM@HL29rlH<`Z4l>$oG9PB19NK=e2Id~9 zKpRWEf;8t##56zFXs5~BK;MLDar71Rn_Y}1a6#at{1(t+ zP{E@Vn3qom&dck&EE_=d1KI~NFW@*0W+GI+|MawMs-`U8KULgEgSra%l~BpT43VrF zBKEs1*8q7MY_+1;oPp1-iRb&LisBDYTY!J3C>rym`5fg0&gZC1-(_h9q``Wu1|Z7d ziHt~cYfA84mX|?v2YiqfhzhRHD7D%(B=lXD)gVp=eNrq@cKIFYRMm|N%P7l}2mZV_ ziGPuhC7>>cQjg;>_i?Gl^#oL0ka2?xYDCp=c%rOeFPhrsz@p+#TptegFU`fd2i(0U zVAB`apD6zwib@W;DlLTduoF+kGLeMLFd(~cU?v?h192P%GY~4CM?SqsGH^~dYG4xk zKBO3z0Xqx)6eue0a&B5EYga=3H%n*$us zOu0eG=Z)m`H`{@11Nbzbg}`3lD&Fx{c@%rxf(O(CPpT3)NzmE;M)PlTd^ z2Tn@Io*!gF?8{o3??7Aub}?i=!to@`<8r)(<7=2Np&bgWPEh0{*C*r3+q&56zQOb# z6cyifays^cT?!4B&{|+!5a=wSlD#IRh3W+%pJe-Sx|4y71w0xuN8?xkbBP>-aXbX` z0JKAa6$MQp%^NG%`y_t^`~xT|Ph=#y{;p&W(-TtxD(6jxJCJFFqY9=SR5CO}zNDtS zzB_j&kP%>qOZXHVvtedIM4wq=4Qq;TtemarRbaOxaI1t0R%aAgX^;s8wz1Nz2k|D@ z*CF#fj=y2HLj{@fH4d^$ihg`9&BnF+TReD>`<3;%gLCEGQ%bXBo03WW+mW*42pI}; zAY_K&cmn1jsIuDO_q^1Z-TMv1GSQjZoyfGc_l2N!QQSaX(jKka+*_A z6vqVwE*8@#k?JdjYF(Z};0Y^q57Bxk8x3j-mGzU*I$&QS@VSIaX40s6Xew~oE`9d% zstbYSzk?kqWUj=~5vB^#uUrN5hKq~k{GDPoC-tvgMWiaI5r_bDU{^O@NOJ{FhPTaR`YQHj-i5>+P=V6yMNHtlh`+IK z0(~8d)9djbW$*Hz1pf}%yX+CkpfNMu%6mn+`IBn67^axa&1`jdf+#Z>lxN=SFP zF9N--knXaFGIFjdRMt-U)m@&1z^M|lciBTzL8!)Ez7p^f$lm2AVIG$>ze?XX^IxCn z&Yf?_gXZs5cHk_Yi|dY;Gb^PEz0B_T(G8V0r1?qv_7*8!~j=3Jvq z%;yt4QxGlncnHU92{N^bxeMRb1m6wCV_c8P3TT@WE=}^1jeC6U60_47m!xXT{KWG; zI4UQpqe@FVkyP!S|A+`aP&%|#-oxnZ0BiJcj?sSk+V5j40aZ+95aA)lLQ3vT=9n3H z???E)Q1JoGHhWAma6a~uyG(Ouh79JgW+aHEK(By^BtIjP z>>2`!DYaqRhjDc9|~>&WN*KR(VPSGxBqN{&k{tp-$PQ-DnZ=sznS10 zq4@TD44>cK>0z|Df28xQar@hhciGVl(&wbmB5oVXE!MBi-7Z)&NT&17!Idw#;QLvZ zi*-+r1$ncj&&fE3a|WUjOPM*^Kn5D_%gngOYF{{EB$`k{Lk_u{2<%wxP4e|RWXEcM z!)%vBW3}cV@G6AtSj{WgL6wc)kJSbNJq#izAG+9-(N}y<3Wp^uK5CQYN=O;qTqC%$ zsS6Gn-7qy4v>9#Y)Yy!+)gn2RC1tR6*O zrn~9HbGs<9GDIC3b!+YJhc!SQuRtrzH*Sh1`J1*>Cy9z_40 zitr~Koj+pP1Tz2Ncmd{dDBjHJG_bq83E|5oJ-i?DzT)k??>QGa#gXUw#vW1F%(=ip z7*QjodEaTMu=Bo$eN0~wvh%(k$6|?ae%^OF;nN^H?|TQ#Z4fu{LZ?=hc{vL0O$?K} zl@Gh%UC;Y!vEX@^GZQu2O*tF5`9PATwSv!x;T_1X6?j-GY7Z=|72NU(w$6}UEAW`? zXp>Y8uJhsk6q0zmR?t2alIKDp`OTL-Lm?G5B^K5Su0w@gD;T|r1rW#Y?!x)C zf=dZs0NFx%0_HJ@Lh71PNKc{A7SbU9#8*z*xsXB-!sS{kcsmr5=L)5mAGvID07=wD z`FESJm4WO;d81G1AVP6-H<@H+cXiF(ii`2KzcqN%+^vuXO-=PipeJM>^T{x$$)U&m zT9_4(eayWA4ww(BVuk)Oe+B5v5Sd@%AgUpc6Oqk)y19GS1*?W^tPx!Ku?ybyW4=Rk zXCIVB7r2B(o0PZVMVrWVm3aH0)N<2V<%41y^6OmA*h@=%z9GLD z?Xw}aac&04x4pYDQ{wI^x>S6=CYcYTLZfjOylsvn zxp>t~d+VEB5T}s#wt_q@Kk|cvxb@=gt*;Kxw&!Zx`nLjP6;itO*P_DS`U}bGY{=ev zkE1w+^SAy!!q-6d)^CFO7@~Y$$$0#qMBz@i{@0T07GC;=JQ zcmXt}cX`4e?z4?9{5=DIrZeJy(0U;@fqTs@LkD;r48eb7o(o z51@UGqElf+-(hBFqbpNyu6ro__LU$O)tRo2oVsgW0d|ILM{YjMMRKT%_a4k!&?$LT zMu|->bhWarYGvT%Y^F*wvn7N=Lwj{SyJ z;aKI$+*z6E%*q?s;NZRIxyTYL)Y==J`gjA1XDOz)a5VXznGVQo!qNB#CfOic3BPcP zFwi0?ACWFHH zO87hBze2VWR&M27b%;vX)2US@yc&f&Rl>7f@GdK1nL5DRT+TRDh4{?0;amEWEOmg7 zBZea&+X414mM4`gZ!FXNN4j~C?ErgBcGSHUss`8js27DK-gbbuUZNDMkUSR($#;NL zp^zpcr4H~aRM-yihs3fGvW4Vv+*;v$2RQF1UI~ybq%JU>Aqwd)7qbd!EedTRgpSf#(iZvfo@k+m-zL|MC*h-~`P9pL(x#*(_j zPu2*o+}j23`VQCV0PFbM?qq6afBH9NI6?=wZ@Be~l2(JYhxBe*Rm?YTC=FD!0y#(!Z6`l4;J_hrU9NKuf4dzG4z9Wxw!YoxH95%+5{fbR2 zWZ#kfVERC|^XmmLt&)K6{GLYmL}2mh0`zc+%lO|rO4RSUdtRJyrtKX^;_WZk{?9^ihJ@9W-VAdiL=V8n%>0+_ zliJ(U)M?@Nv_<5?e)jgfg2anbq1%)FJB&!Tr#nnn$lji|Au)px4!36(;nO9cF3e*v z4?(sIvwslqTvnWTd#m>19@s9-PvEyofo@mBKX?eBsK+q(v{47`r;hL&v4!5oA|ik2 zP#&qDaM(vmdvb?|oNZ9f&hA+T#OCfGwCxYs+?@k+rX0%MeK7YxHh1GgVhi`q$lXtb ze=h;$uFaoO)C#h>J3R<^u2x3wauvNgXyd_;g>3HT!OVf89=%*E8gf^l`nDwK^jwM4 zY0hbC>)ky_-z9b0XYvlrTXJXz%66DPAY1RQ4vGdTH`KeENYGC8u3|eYdXTMm-Vyci zvcBd-W$GQi=QLu=iAFP}&U|$Y)%_cSiat`Kj^WoZZ_A-B?vWIJdcQ!ARhkCIYn#^JQk;%x_Q z(ZV<-)JDhkbx8}y!`DaA?Yzysij1qAEp+IGRjzlzp@j}X2wU^rB3Fox-jzD2@$r&Yo7XR2+vA zLqEtC$8wmZiqcv$N1ZwKXKbc5^SgwthpaX8SwUwtK-Te|9E?s`GY?L(mIqmD=9MtZ zA#2U-WjItA8E?(}DZw8>Rr0jf%xzPNs5NA*nY|Fr>b?k#Z+W*Ok~Q=3K*mAwQlH1= zM4pT97prKpW?tyhYYQ*Kn)&z3V%VP5_TO4FFAaHXPn1|Q-#L_LFjzA$CC7&=3imHhpaX8CqcYg;#f2HLEIYN4&#%(Lm+E-dlAg}a>(#@EzIMPwPyAj zlFa5%D9)Ps4}yOYUe?SVInJ;hWQ}cgRJDFAs)V?m&kokirywu^vc|THU@nFDSu@xT z?hQhZ#&NL@=8w!rp+Y@r?lbCet^)LAeyAZyL+rIV58id_bM0pAStM#-vxUxs-R zvIV>)l#SwPrpK=3K~HGkf`D4S8?Pd@InKB`a&@S72U-tTnTjP1TgWVy|9` zTh`3K0{2(n)vliiWP;dnfn9p3t4MsFOpMJ#9K3; z3HA(#L9DEqy+m%{d>NKGYvyYKudo8KHM5tfT|>fKGrtJ>`B=hQGkb};QMGEu$pfE0 zhQ!O7`6p0Yp|mygZu!ikK-QYs3l`LfO4iIDQ3M&*%uPe3Npo>tWSCquf+%Ipd=$!$ zgko!E55*|PiKkrtgEjL7fX|1lHS^stcS6>h*^4BDurE7VGhe6}Wr_AS_&1^0IM)kh z?MkTsqY{#7@V^NBZG~jb?1gdyml0F{?HAPYvv(<2Se7H z`8=3&<&ZV=4KS-9YnP)6k9WUp@LlsH9eXn%Q*LH1g?^hwPyB0 z^@5O3ap@K4cADyBdM=XuVVGi7I|?JOckTC~u$1q2=;AztX}QhlCKgkzt#oOuMu z!{B(K>mr;iBx(G3IdfGfEJL_wjy&1{jn7h`w4C_>ME1k!<-vC|!^@dn#JoqFx19M` zsQFo2z{{C^({zA%lsIS6jsHL5V=dl&DeUN)`8RZ-p%4% z?hCj#9OtsjFg=ZKDv;eX+QSOUV zX!+bLlyrxLD3`y1z$FsmTz08wvN%HbWhiYPeFsgEB##>Hs zx|8d2ERXFP$m>~~ImX=8$%U!3ocWwLJn;dU+9BWfonR_0XKslA9);uO%q|UY0D|T& zXC4c93>+_Kb}8779Taal^9R6J!SQltmt$rNR~t(Uh-f1wzZ2t3skON%3-KSI93ekoE3z=AIyQhvVhU zzd7M!Kb)%IILn!50iHp6=*QU~=ag?eV!=c9Psfl6Xa8RCc9S|<&F<1rorC6P|24o@ zi9*@$QhcI0QJm~g#(Z@moX&oi6XCJ7Db8y4!j3WbWPiz1PIPDpX$>r7MtC`MerFJb zhLBF&0~e{}z}}qDn2|bMjGo?aIrA7q;Bpsddb6b?j4?t=p%!&U0^!bDW5lZ=9Cy|R z<76ORP-kr}PG-aD)nASR6jM)?4&I&o`Uup0a2P9l$e~a~=OZAFXv||ymX&0dK;T8*n@cNB~a)uJDYHsRnNAy5ni!mO8DOc~J!5 zI31qA$>VfE=`ac>BjGq5Tm|_0j;AVTI;;S78647Ku|uJBScHH$9m11wIFvhD9wRPTd=Cd&Eb2whk{4Y-afpeBK*Zs#CD|ZLvlW4~? zSCvoHqBMIYYY+{fzYL^sJ}i2N^NqxXs9Vd)2t<=Nch=KEqUKl5at2-w@{1EIUL0M_ zxmPOggq7W|^)Upwu4`^e!JBG5AJP3sjKy4p>pm3C3UXchG{E}nQn(|ZOYG{)kH0AzLEYWSnvtA`W+eSzUCD) zCgHl*?1?Emxb7K+u<;L^2-QdYMD;va#jr#!!LXh0h1al`z;z5SchyNt{|OIc`Li4} zxT~lomdzI8J$a<25Q*`!_KIY@fjIt<6e$r8+g+1{NLknhx*}$UK7m};p;Y`=Ag_o8 z#@T&Xmxb$>;Ea5@ki?NSKkztj8k6y)Sb*ylIXQ*F#)tjZLC>Nnk`l}0ThMwQeg2PJ zs&Rv)MBLz?Kx>=z={zW3E|u>Uct^Y!_ybtI#owZ_FJ6){5i1n3R&>jS8Ip*Vam5ip zw~Z+{Ulm9GBCcH;=I~mV{fV?#QPqvLs4#N}lx@Gl-4u09DTkmzjSY(qF1_i=-(2K3=Q>jINby zwsP7=v#X2J;Ea1o89DwK##l;M38 z%=7oMMZ)1mAU-11Kdl7k&`lztSIeepWtA4rL9o~o>vcai8388uAl(?#$y_P1Ae3~G zY5{7AdiNt#`VNG?Ql)>3@mP<*_HrIn+CdpLTB^ZAv3amZ;4}IYaTg9C{oB{8fz+0o zJx;0@cc7m1*nCERA}&-K>N@(Ld);HdB-KgW9+x~e$ASKYR`-fj(-W~jp_L(+q zrt4BIyi=;A=Rx=Z;O`!RE!Ko1QaxS?1RMRP6u5AdbmX~S*3@%SnLA-fMbMhuhsx=s zsaK`Si#ttr0&T>9P_vtPN2=L)+R0bJeb?ht#@u5?&`?wG{FEPpb~q=@j6bR+G*d zDx)19U_>epLQRjv$)rh1raGAJke&dct4E@w5&a{UQB%#D<;b50_KhbWw`2su@0``O zG(>%`#N(n3lzoH|1#qMtDMTzB#~ni-MDA3fSD4%tZ_+N;99bE}8boHxeDP@4M)WgP zgAO`C*&0}TPnpJtm@0n?KHm**`7HiM5w7JobwgmIO+_D4;0kUIus6bZkqM|PUNqG@ zJdGIN1Z;a4pG1+FW~vA@*jWGPz|M#9II?f9scPhL!v7Q4oiN_+G049S{ay64N#>10 zBLL2^Zw@t5mYS*?ntOZ;RR&fgj9>W>_)1glj&|_Yz}kCwd|lHN5nD~Qq9Niw82;l4 z<5rM&M+(h4V5%DhaevGM5B?#Z6(}5|UGTzY7PgxmQ z4Z>M@+~m3lyiFyGo?E^@tAL!~Q?2l@C64TdzX2{;KTPAMlf;u{|Dv{;mMH2|UB+O{ zh9qX=?`@Lsl1Nm>XCERS@Tn&!J6g8_-%lJeL2G5sBR=(NrVdbk1^kDcdVIguKq7YX zsnb6>Bwql_&Ea&x*LYu_db~Qu@gXY<11nCrE~_gGBQJ;gR7|2{Y&~F&!}5%e^{M8+ zIPzVA^$yE#n~LO_=2N$8IF-(LU{hUrr}|>jT%YQ&$sxT5!a9$nt1l+K?Nj3)bVx@* zIOCCY^~I$3ed-&u(7F1$0m2=Rq-&--RHg3osf-y8DQ^(Ze>j~1x=LlzX`lKE?`X58 z>L5ItgQTBTRQ!aG>6d)!_sfoTeL)@R(Y;5T!@TZOzot6OSzs;9!E{K%QpaXHq^%$v z@qO>TuzvQK9OL*lYf=6lv{dA)DD4p;R2y(QwpzVlz*1*Fb(s0V z%J7)Fq%8Op>2}9b*U+2cXHXpw9`{IGIcLiYrau&+PVRN+PlNh=PI@-QJt9=EADmp9 z57u&z$vSnSv(8ZwYX2pNxeu(b?qy~#j4U%VLKQ^!kMrO!@Ix^N0WYFpoVgg+1Js~(-soUT}a8uxt*P=Xr1 zlGIj?R%#T+(KwV%ARh3N`~$(}yaxZnBeY zBSD@2AM~)a6V5cHZjE-rSr4IO_YusNfgIR-N)6lQ$Xo&c&VR@_LF`g$3kI1uee+^O zp)6dso5V|G=XT*BK0$mi8o)9Sf#1oK@e(n6^uJRocU#Az5unbz5B=^~{G(J6jInSK z?}NYhKV+O(HyX~DcGe9W&t!<|4WOxqe4hx_k*Pq<0N{u94C|ELzJ3wpcz zh=lVo;Wj;9Kl7_mL$pytK!3p#2@`#p-{N-r-ml6PavE`Ofwi8P+{oeHyjKoI{P0IW z|JAQ(I7uD??X;(qA|rfz6F~UeuLdoaf`j=Pgg;z;!uK?d&G{qM4&3I9$Dp5`0Oz!I zTJ!;)6sdNf#}Q*DG7DJ6Fizj_iYO7O?x6IrUCn`YbMbI*pKoX3V|tZH^~k3VeKe?3 zJ-YWKbeK;>stDUji1)zS>@l+?8SCsFsT$z<#wL6M*4G}B9_CKyd&$_Lk!mKM?9BWJ ztRPZICvLXTnK?I7RXOf3i-Prl$Mizau6RkLnu7-?D{cj9_j~Ec4>Dm>r0PD%Nq{k6 zP4k%9jBVNlIk!Jj_59djE(2?e$INCdGp|Id?N2z&Q(#^3n0Fh?^qY}t$w`N9VmK=f zPN#xL7d~d%QL1K3hgk|N8Y0)sY{ve(4#gueN=?AXCnvz;VD<2r*^Fgo^(ZwDjSyx& z57sP?>4om3EYq7rsWNAsl>Goy-T<5L2ahg%%g*!JC#vi+h| zo?{Nvhi-X1+&#sBnbV?FBh+)Ovou(BJ*F4BV=U9(h*EV>+c3QysQvDx3m-E-h*A$_ zILsHpn(Z;O89NJ}5j&#PBS#!#SHokM$IOl$WxBr9A zS?1&$3$C)&HOyYKU~Y_%roe@h!ZBvQt*YZ`&!nm#H1kMdV<@2=`bAq+d&1G#3)FG{ zLDzOvh~0=?%#Nzz?_rk#FxSIH796E3Zv8ysOys}oX%x!x?&ykcw;~5kb($cbL*{#u zyMz%PdRk~Xes1uyyF&aLr2LJ@r|`0rm4qCJi~Jam57K&fAe{;!kR&oILdnS8$g|3z zH~b$&@I|JQ7=}l{RmWhc=7l0S*@+$&&wp7|CK^?4YKniLBJR)Wn22v)g$v5SL4ya1 zxHanAO{N$KP|m^M8*oOAYY-ZAdX_2T`m27^Od;38dpkk<_k(!xA>gazryvYHi(!*q zK;&usU34jW)bM{ajD#AcTc&sy(|8$d*h!-zTUMDZtBIi@%*oh*WjXv+fiu$nM9_mz zRfK8LrkdIWwi!fdiNCHycpd}}-LSp~HU3kgeru@j7lAq)jEVPQ{f~x{e(|zQ#EfG_ zocZ%++Gmm2{=8ZCWj>a%f8}FY`wkz=+w)ctUcr8sj}`4Te5_<|=VKMSDj%!b_4!!M zew2?7*zNgP!_M_S$=9@R@pWxGijQ^d1U}Za3-Pg@U7C;e?T`7`z&_2#hV~^sHnOkr zv5DQAj}O^H`1r6rmXA&CDST{h7vS(7u_JIyS&MF?%vUAwQ+~X|Mc+uvSFKbT0HN{A zasEIlnr$m{VHv8h8nKV{72!wEAP!Fg4()D(Tlh{Qd089a@xFZH6@Mm1GtHB4Cxz3i=K$G zvTkGf1hA?uE{Bl(2a?9)^PP-}+E&{T59I`fbpio(_lNL;QTbrqRHR@O&izTv>0%l`7ZPTv${X_!^K_ zfptGiaRR=dc}ST@(0od29b8!w%?1Q=9mwy5o+Z;0Ilzvpz<7ial>&Rc|O!7r3(UOL!l^E@~N>O|n z_zaK3VQ9{9h@NzbcF(_rTjV4u6V&b>tHA|#DhWqJeu3D}=5 zE=i?WBcmcfm=@E&w==Sv3+CsA(@C^e?nTv=G*?|3h-KYmXlV}S0=e-v6;Os#-hr9Z$Fij+)l6ZHlzhSEiH z`_PEjVeM>q7=MzH!WxG2rib3eI_%Dg`*9$0Xbl?EiT@_&MZSj2{r01hrQBJAX za$dgvOwdgl*sWQMU{$r z8@%;$9A@)nRJl-Sb+S)HRfwM1!l|^bJW3~z4G`0)H6&6l4u^cgLs1_=Y$#nMJXGQv zit0`ZuN%chSfq23jK_#fLbD3Qlp>`r290FG<|rF&hAg@tv4Vp961Ifapj!Bs#0OB! z_h=AOMj_gCVUKKX{BZAKncMn6^-d?G4k%N9E6 z5M>sI`4l{?S=boqRIp1_9`fS`mPmQ6Gx2&vl^{PNW4kC>p)S~EgZ|W7cB|DW_^Ffa zuMtOo>Qp;oEgh%X`T6*&U6qfo*)-hjPn~WL<>L%{Iv;1+@AGk%eVC84?VtEK$M&rw z{#-j3ALrRs_&DG0z{dslNIt%9(`Wtssc+bO`S_Oo1s~tG|KZ~zyTE$F7u!|&_^#cF zkMG$p@NtE`f{&~06MX!@{)vxk?BE8HTWgo*<2t($AJ^Mm`MALz&Bu-QJU(u+*Yk0+ zJr0dUf9e){E+4nrTln~)eU^{g>|1=?ZWqD*=uh2Y*XH9cy9*!p*rWNl*M5_a`|O>3 z+;3mx<43mKOmYY8ynH-pSK;Hw_7i+OWDn!xVS6qgkJzjEc+@`P9Ix{6m~C$%J;&_g zd^~P9a*jRuc*1_sIljxsllDI6cm>DmskTfAZl#leOen@DL76}wrK_HrBtsOJ>Zt`} zh!VScYN`xTDpyY}EJKvM)l)NMNQ)PfAuV29hDbd5@k=P;W+53Elz|l+G<0v4kSb*( z)(4|0E&G5YpT-|%D|TTNzpzZDwzfrJk8V#3GgGQ)g9mn8D=*W6o3_3thz zNTQnyNg`?+^5idw2z8Qb$n!!x2hv0$(Mk3|XbjBkB~|6Ml1cC1kHksyv{ZGlB#{)H z@<<#UC5XslQyLAEs^x7oQ{Z!*NaMg3vCpF$WTwm18>n0?^3OAhe6TiW99C2B2 zG5h!ZFdGYTI#n__X&)en^k`+1Ww-v_@l8;vI^@%VkZS9G!OB{>5<0Uf(}cfJ1$zmU_zP9EfBKM)m25vA-u|@F_If^! zv47y>3wDd`K_7*-)wNLQzRr@v{XV`ghcly(2+4R|Gf7)ET z2_NU#J@`1^evyxOX7KSX`(r*Xvd{DJ9s4RD-?jhc;}Sb%C+S&g*W%-Qc1J!gw})QzyU;mv@i;jgm+qZD% z`3rZkzvb(0cH7-_-QDib#~$_sKK8U1@UfS@mXE#dgM92`U*Kb3+t@>L{p><~eA=$g z$ANYiJ`T3W@$ngZF&~H6`}z2+{UslV*}w5|q%HQ6o>6uJAII7BNkV_&@peri!9FxzrK*@=ENd{=XA(ocpMop7J8jHy@vQVi)1D7&vJ-M zx)ia0FGU!0W$+FPVWk37@IuF@Qf+L`xpiD<%?O#>9_B7bNz?8)tvoo`;Xxh@6Bgxui>R;g ziryz!oE3Vw6F%MCEVUj&Nbz@rQANu}y$P|QbWyZy`qmHOH;43$AuEJ69Osi{p@(5n z`AlMB?*_RWjXasrJtE3l3!jZLVJ9~89T1VZo$>CoE23kRW%sL#K&r1mOFPs$s!k>v z>I1V(5o)WxjWxy1PtnPMUtTzFom2bT_y@karM*e6EX3r>jWxNVOQgoNCUP@dSYIL3 zl>BJX`$MOr=71LS>ILjm`*{NQUn&q1I%_>M#1zi}906xAGF38k&YHOm-}rXDrSA14 z|67U-Un-++0*QSSDHvKI^HG^dp#DbaeQEuL67(+6!*J(Fem)fiI+IuMCt|nEMbOK% zRBShN2SUsBg|NuZDY6W8Wvw$zWi!*B_f;la%w|AL>vUCgZV>vkb;Y&#)Vwhp*;Vw?cS5pf9$!92RP2kfDkfgCF80lD&A6?kT;WM6~b_98rNWK#(nCzD1 z2Qj()a!Nm>Ny&1sgi3EVOUAzkGf#r{Ih@f&2j^O1n4%YaZcuRjHRM<_Z#r&C_=KQR zjv&ah#9&J(nCzA;Axoysp)~o%7dTr1mQXSYvn<(&0}+H7+jb!m{Wo7;ib+D`T4c^m zpIU}KdrO2g9BvGp@jQjtvfxp0vAnC%2PQrhJ{!R61inIGJcEX%N}{wGYvF&y#U$mk zq$HLUJNX*%Gd|n^Ww(6=>0U5=$1pM<@>?p<&eVdxLt2z~f|fMcAbda5JrZN7CYY6A zu|yCubC4v3s_$4$kGIsJZykCgP@nMVbI2CH6Ek8SLFj+`N_>T6GAyFRpZpYIC0T04 zSVU(md|vYe-ylH>N5n^LgJ3~RZ9N9oQZP24qn<)$Mc(fXBcrXG#?quY46)gcX1g@RmKbprL$2E zSQWxK<1}6#@+f>%o{bj3o(RkDBKb;|YH-`&0%!~ZHY_a9cvVY{e_NMAV>+<8o_yrZ zVR$gFK>J~qg)OKM+sJ0QOhLD4utUQ#g31<7$_gr^*r>@6RE3vr(#EM!gjEKqxkdKF z?UvUc$|D0Acr0d(sfDyj=uQuYM5(@b+Yt2*At3?9!x^n`5e_k2QQ;{E%aZH<1<2u=sZSoOqv3wW)8(~v% zj^*1xD4TBpF0`4-DpnbxkAuV%QbLx=uQ;S(^w6xRtn1I4oLFV2 zG@%G(FRX%#fj5CfDf@g?T=b=jXk~v*7gbY{2)UI_Z_E4-g)_2z2UAd%{ST!ylIBQz zP|ay=q|AI44?KUUh72r#30Z&C0g!Z-Ol*!e`w!T?6K1Z3Gxi+?)Q+K+fPAJn0Pjy+ zNFE}5n&dRED}%Bw8qH?xbR0qt%V7J-DEgs9=xr@kgH!nE5(Fa=WHg*{f@Ha)5^5}i zb%@(-9#W>QRJk#-OPmUD)jV#(!O4I-N)=nx6rVx5C7>q>W-~S11Fub0G6f~{AV8yB zSl&PmWxLaUMQc+x1O^xP?qHHi4qT7#N0U(Z^7EoYa2FiNnx% zyxN01?pt{O>_YPEY>6|(O`Ig=V+f}p8lkxnLJAzKl2kish1aePNw`xTu!`cc&!X|25|<$J?n9G>dcU8%4I|R4(V3`%_f+mq2c*b z^}}<93MReRz14;PuM&@>inKk5{>G;PQzW;%NEOBhR#dxcsFx1VlW47FZTwu{(dqEy zn_bre^l0Rfdr7t9|5b61JcEe?y6v)6!O3eEQ=l&!f$2fM4+E+|u)mAl>B_fm-Tg!&(}pr4GaMGf(O!NxdrZ z)|^-iIoZ9#KXvfaE6IU>(K9Wqf>Xb#iK|R_i^-p zb;lpYElv$#@7B-O;I$}AlCN_MIb;Stu8x+>LOc~hv1V{E(#r6y>OvK;sTMzLibxn| z?0}j3$kb@cpA4>>3Yx)UR1+l7(&SKiQ>Fi8FzG6YH(j#K%@Wji59Kq1Ur^m?5t_l3 zVxk%RoxHS?2Tav$CWanhQ5m?}a2%qfGe;9wpGjuWpsBBz2cf6qpy@WyBLpef0?GMajRZc&!by#84s2%2xBLO^A&}!(Vtb5 z2G}PO=;uJr6Z!+Ar`Mv&{Y~{nlxVc(4Gu->D!aoJC;5)79W}N2&Zfk!s+41kWR`lmi=n^$4Ct1pr?L zbd})3q%SG0E2PW&tt?nA5sLsE8!L+w-kaM^msRjNG~fJ5MaqHwfZzH9&6`XxtL9`U zokRf()%RO**RY8OuqSikv8AX3bX^6rpgVRN8bP6JDo7ceunry4(4&4U9c{ddKqo_T zjwj7Gb5g&<$hr1@>sX{IRs!4R;UuB^n6V{E>(44!y(^W(0*F>RdcfyE{m!N9k{CI* zg(>(Ru!4k-b@XeqXhl|s zGj;%y8t;wap-^$D8qY!b2iDrfv$gEJ!5*}&ZelH6Ov3R%YYc#vZAYV^X3P`$kRqpT zZv4dzxr~d?Y-&gNt6hHuYZWqOYzhY8_^*dP62`FMS*Q8Y|jC$!;tENW^9|JSLEmjU-=V zIYE1@V+8=sgZDcwq;pS;?zMVug}N=k_PMy+M)G|)4*POV!Vt?Iczg-?`M-fDh7-LqpVYyxFfMUgs}W{$ij4^9sp)rIOC^%plM{C_3jsVVHCb2TtxoKa7+pWcUj}+ zNHG=AJP*D@@Kj0Tvw@>lFCR83bukpGuQGI@YTh7Rr~(@>Z*U5vvqbdmhrC;;$}IzQ z9p1NGC}*KsP#&of4PA+FEGnZ&-Yrx&mtub|c$5WPJtu_=6=ft&$_hFW7A02l`s>h1 z1?Oo9c!er~)TTUy!a#LE+lJ6d>~I~x8r(X7F2Z%dogRqvdT858CKQ4u$?Cj1;1{g_ zm!|<<^a#lmp1!|P2mFH>mJImZ0&XE}t)vUC!gWB!MQ8_uQvi4|kJBG#;W}W&AfzpP z8hJQL=sG~B1?m8u78LvB-%2@Y@f-xav|!tcJQ#`b9;6R~3|9#sLs*2OuVL4hX(RD&%ocqO!_KE=o|a;-zJ_IArJcbX;!%AK(=MdVzK9*E^fhd| zn6}~y_9@ZVFz!-X>4|to>uXr|b=tAHsHgQc%=;#7*xwSHZg8@|zHieK40K5Nx-9Iw zoR()3S}yt;_I;Oj=R@S5zJ`6@r|sH_Jk{5*?@HR8y(oA38utB=_B&R3J)o~)-;ZfA zNAMjdeGU7rrd2A~>r}XJ2F4lGTLH zN_NNDV|11qMbGL$XLV8PtX??#PUGAAmD2b7Pf#)hzR1-%j}ZU<`|s$P@*Olw z$KdxYK7d#sand^H`cof*&f=)TMZMPDP?OaAeHZpfs~24yn)|+46lzG%h*PefZdYAB zjWSW5?m&E-tcVx?WQjJ0EzjXPo-RvtFw|ob3Y){H6`WC;Dueh6gmpC3&y69{7yd(C zOjo`wS-6X#62>89IR)rkmm$lOiuUwOFVWQq9>UypRrpA`4vZZ+S+iuy!=UvvlE!Sq z@QECngsWagJh!H-;vi@I5D!yU%A^TMR+;e=?!FRJWFjRp(zE2F_CwI^FWJJb#mAO< zMPtdfc6+|=W)I_IPkRO*d)doyY;?XEYQ&}(&+ds9sL@U>DT7u-#fPEu3HMaq+IIhQ>gnzoC0QBzC$|lGgtU z%~_^)VVsOPXMlg>ai}2~UV7!do6@i%CM7Dr=M$wiSPeHVqC$Y}0c)y;<1tuwLt+-O zrV@>QMBY?FB>Bw@TFt}qv_cQqVSKv~i7@OKPOKiPVn-ALBFiW7*Bj1Q@O{n%I8My= z1~whSyv`Ufrrn1X*MAajg$9|ds%T*}=&UU&b3PW@Qvz&cA#7KE43ob9Tr%Q*}D zTaPn{IQPC<((pW5vgzjyQM$bvp6@C28xG)Z!78eTGuE4;9!3QLh(<$kw|$3L#)WpF zP>)NZl^)V}4b%Jac@6a}#%#a3j7UBVN((sSTU-fW1@w~RuVdNPQbXhYfDH=cmFfXc zGE~G22cHaVx`)U2jlee)ur{oHMU<5H;Qu~hJ5ip*us(zxR*TVAl$8GRApTCdxW2jW zjjphW+o*R6ihT3?W~e{2s=f1lv?xy_m$D|NQu-I~((5Ua=Yd@Nedx77EYu%GIBRk$ z70#wjk7LN7dagz|lmyl^F@$eU)yS0_2fki|VZuB$bFIXIu0uur(7Pt>D(qVbO4P=6b54Vbux@Zj`OJD7#gkPC(GP;GY-H=s}6- zT4l#Usua8{yO5-@G0&~9bD%J6kXGc0G z^vVK1{gV5RL#)blkb%^eD4(lA*Gq@WU@N~#Kj=YA1t<@kkw7WS(;i%Ck);Eijy#2v zJh~hLr4CIUkiAAcU5FxYuf$|fqlF;kUlgG6dVZrL|KfNm5_of~7c0_hJE(k!%+Gh= z>0__7OQR^3r5QjW%hDVG4m9|W1C6)hKm(aVX3>z12+??weLP6ROjVvnm2EeWc^)_n zB!iX*+LdJRdyL%6Dlr%?u^Y;`y)eZeqJby-Sg;34jlko?ZY1L`0EwwG`VOQTYhKJzfw)$gu8x+o{gWx6GpgGt@aU902 zh|>vp50@iC@kl`XV31;x@FAw!?DkT9xCtM}f`(T>dyS|qC^kGgW@E8heoxHW#SpJ{q)8dDH*4bYm-V36GJ@El#jwW34Sv8j;@QDCtdIU->hhSLN=+Yo82e{QE zkOs-I(rWTpR^!@WodDya$Kph1RvV7Yda0h<0&8v(qqUng*$7*tdJhADGB3cg9)Yr6 z$99MpY}_2&@Al~=su!e1TqnX(Eh`E`o`laZPXo<*WlOZM8s0h3{=u|9LW650X`c?E zH#|X3DNQ;f)tFI+CT#*?k4NIv(j>IqdSOO}HGK)f_a2ES-s1nFvQy8pJ~@q8-T@f- zgp&-qF6KQ&>_;r?uMr>=1X$c9NK&fj2koko=Le;a*2mg^O7%o5)Cpk9NAcI%6%iRU zEofJhJT2(3|He}Ju_lw`7%*QTHdP^lcQCYtq25{PXnPCTyPh_U`wS&VJMue$?f2w; zw2z?eH`L;W4t@dHQS4 zQ>lik_LafKPre20-7p?Ubvm}|ygkN|-wAAg7%%k%@REl50`om={{>)|!}xqObL=cb z8510N(FO*=Wvk+RuTrI7-cU2}EMq0a%V2b6 zcq{~V(Lv6%Ujlz_HwrB*vWz*#20@Dh8oLzVk zkw|4gc;GJ5@7xjLl(E_(cl`p}*?!uqQ+ zdPC`;RUoQYbR}CJ{{iZ3yHbSpB$OLX!031{OE*G%zhM%~ZWdv^g5DCFI~>%BIqBq& zoopII>Dv)jl{z}Jjm2PX&&j0ZU>h9m6VPI@KaQ|ETtdA>)!pad|K!P#wVZ_7ZXa#E zZ1+-DEaLjH4)&P&m z2}}`mOrRa@Y^>mW@(*pXoCxYnk4}}d-lxv~*HG=+IOYC*5Vm+Eim5{~P4x_3FyK&5 zf$)__((&NnHY=<5XeYS8K#1(<#+aW4942prYJab+qo{UdK`_!?mWc2E36lAyvMP7P zjam)<^<7NoL()&Em+iuSYuihPXalTI4%}(}G3jBywY8}!#(*#_CrLN|x=>I-zg4)K zDc%8LeNNI0Dk`CN{Sn;7Ag#r>h`=2w`&1HjFXaEfH5S66?oEqTXi8*0(icgAsm;@! z!n083a%%s;qa&O#llqD7EYw#m0X+lnF)pN=9q!a-7c{EmOki)hxSUV&?kv=cr~wwj zV-w&#IVn5~rTgKSh0^_S8f8c>PYt?!vHrkKThO5_9`7+@6 zMd?qv>eX;DrRU)pM^8(?NPb2lP>-+{=@I19fM z#!Ddxy#G64n=yJw;y>mPmvs3b?}W{N-4yv?jt-1ub%@?OVSBF|f@~;Hq}!B0-aBCr z3X=_O=0TOlzGRB1>(UsB4(ecdBXb7u>TRu`hH>;8VZ0b2^DneVXi%bZS2VlFEd%Hc zl~kJxXbDuTgfs3O1Lh7&Ou~u_xf|X`Tu4S92ks7)3|?o7Xn08Z9SFbXB)NkUFI15cm#r1@skmH_(NEfg&~3AwWucc*g_~#nHWFg%%vx% zm$};@;$`l}Wu|x>8pp%QJ)~?F&cc~XIxPb4pSiz0s>KiF5SMiMADP?y48Hl`u_dKghtb|F68#41fh#vKmJ#f3$Mi>f zP+u$9vrcZD$DBY@G}tTG!w?rEJAZ(S$*Rg@NFzBCUSr{mc~qGVVr;hBLYX=n-m6_m z(wTgRo*m2SZ#B{RyClKqGr7i(qc=^01540*CDPgsI`__kgGy7sOj^guhhC=)4lc*d za_bU&v^DEhJc@~wQQh(FDLA%9Zlo|YVUt?$8WBnWtmqN85kcF$Lv_WyA)5ee<>72( zBFE`~y8IgOKEOtJI0c|%qDd!J3SOX)(?EF3BT*pPNtaX%S{!mc2&X&}cP;OiL|X9= zY6$8Qc?JBxJQ=2EGx3_bO>qqM5F!mur$JaJGvhfj605D7fLaB#rXDqHLpG|C>e_Tr zyMi|AK2*+8=JO<1FdD1TanJ3cNXxkpSnLULc4$@{)=IB(Sv$b^*kf^?a5p%ZiY3!| z9o9D>T=z)a4fat-Em%xq$5&HOS&)%E(Hw*`4pPSQhUdX7soq$CmdE?Rivi0F-=eJ&i&z0sLGxwE(^`!a{y;|bPS@>H( zWWF=_J0HPO<+zce$q!34>Pt-56L}B*4iZ^gPF>(2K6R3~#?<)Nz^-^WccFtAplf#w zU$}?2G<%_LgVTX&97ChmA9Cc=fE6QL>!%)35X7fBsT@o$;)5s-b$&ct><^JYC?lt-7dC(-DzX&;RQL zS{{U&9*F|gjnH6zQ=NtRY}peaboEH&<&a97>U(r9xX_FO;bo6>fs=+h*1`Uzs7oy^ z0(nd4U@cR1dEbf4did`1#5mS$1-D&;_&~(m=Ma}Kz_{qL^j@(+Oa(pH8n@(4^6%ru zlkPa-qZjmoV@$PgxGAU#mB}C!B9hK{8k-2dV5({D@u_#h9{^S-jMEMv!8xY7`G8|) zTVOp1=ZxpraVIsnz*HCT9wr<9JP5D2N~9)HCpEatRG-v!(&=3gR^LUU{%3HvsoutC zhPab@2!zu_$`%}x_M2+Yctdwme+J=pPEB$2K0@&6EP4|`S_Ja<2!fxR>L)zeE+cVd z(Y|Pxz-8A>FD(SmnQCAGhx8B#k9(x6hmolCL4x2F%)g;M#)<|2AK`I0y3F~>R8#6< z3JOAU2JknDL+S1$2@U)Ne>YVI=3KexYzAS6OAeteg@cAVVnkjf~HT^ z-{B#Dd8z0QsJ`OM1wrR20nE% zMK9Wy)j+82l7x>|?FS#mXC<~dcpG4yJUpK9$9zg5aph3>k0p#v<=3UTa~bUDQxlHh z=A8p@kw@TE;V*au`}ow%x1eD&z`Z#Mdu1myuYUX);-3MzvactPK&xnRq1WX ztTdb~*{I)Dsz2*RF4FBeE zM$sd{+$MT%YQ1-Z_W&1?WeIni=yhUDQ5hamP6T0QPLeyD`6Wg~Ta(Q35{NBdkRL?_JR8=oUB1%`M?dgwn>jg;Qd?MvqD$zYK=rvqY+ z{OI#E@*`#`yuAFl@Fw!(Ea(^DjBylzn;(s7x4GZpEg;5_oI<#pA77x~HiObgCW4Tj zljL@pCcu7K71)C=?sS=`jG)W(Jfke@Jx9f?QefzN?_PPbV%ByV7cwI-0u^yLf1tY{(McXz)fQVjD<6{gpoPw<84?V z1K%tck^2a)!Gdq7BYTjZ4+3lM;fKQFZ>d@srtS);zXzWnIC3r4&9Md6moTv3E<__M zuuj_B$KcT}545Apg+`~ALfi?4Rl9$;?`widKDfpBp2!lNmC7&i`ON3WoM{LDSh}1?|yq))pV@Iv6z5Z)$>)53U%eacWTqw&S0J7D^r z0mRAWYjpjM@G<+Uq2^$Kf=P$L zJQ>#ZC0Lof&g=ahuWbs?W+q$N|q${4>K zS0#MaWm>c@q&~nY-E6Eg5zitQ^My@Y@fE_By+&*FK-F3inn`+r_ zPBdR6j7${u8Ovv?eCUpIq!tlI=85_rhEUkh$5@2%3QnFKVL8T9O%;dM2g`jCmSa2d z)@U(IL2&$ThB3CYn5hoqX~K5K4fVp~7b!}asyVtVoPe2xX*(G!W2%$eoy2Prmg9FR zDwt{w+MF!cBP_>Q6;m}zb&9|^PtI5QV|)o+k{&~H7A)*{P&3f~Jk<$P@yKyH%X@}q0Sq+1|FJ?ko`GbaR^u@2NQ%k3Eh zFW)N4$cuifO`M~=ESPofCr9ti2CAFo#*c+uLZKSCDjR9lK*OBqz2HW9Vw5bLlDe8m zxLy*W)QPlCbkgkEU@pnY_EQ;1*!L>p`e>vTgH9N!-3fQdBWg~`Z^4;tDhrcAmDbAl94~Y85pFjpPxcgWEh4%;B+!;9ZNrkLF1KGEn0_@0laz+jy9jl3|@&M_6%h$ z!Wu0~$yQ+YAvV=3d`EB*mYV(0Gf0}n%IaQK>mCp0-2c?g>~+eLJut=!-D|-7=)ZKg zEZYrnUv8?pCGd2U=fV5N)hyx}TxF_rXwu1B@Q)hq#+si>r73ANYYpCbMt@kQfKkF@ zaoTCZ7E}F>{Pp&86eCfl71@D3X{M!e0y@9E-rE%ur00t>Z@D%?v~UZ|-QD25c7L z`iaYUluzxOWoY>ifNcoN(|VLZ$furP>a0gO4(zmt^NPSg86%P2C6yKdyu>At%cp!B zQFFsXn$Mv<3g?(aBbNbm>Ax6>8k+DlV8uL~*9Qemzt!UBF{A za3Io}G7d|Bf%W!q${hzk9cituZi>;srslvUlX%Q4u-2z;6>~C;wh~;IgQ*9`0y}(a z@FItF6ofM#iRwp(^mU}QA;F2y4G`{lB(9QlaOZuhH4=ryWZqF|KEmmUaj{~<;%PK6 za6QtRP8CcIFq(QS>W4`B)8Enz{OnWvXCRTfg3;S$>BSs@TalK56;mA6cwkdqT-T92 zP8Lv6Rxxx8IP~{GSVttTQnl4IP8NuZvZ~?X%~^F6gfn-MmQ&pFGndQ+tUayl3`~iz-t3H#BoO-KB!!oM2IfatXWugLk`m_sbCOsSkJeCI)9cDc zu4{@h%-7&^9!*i|JB9}XtWoG3B(HiK&-*}q85oTgNK(sb$gRh)#2H2KGD5gYp-iGX zv>iiFU}Y_C3Hdw{5RM^9XCjvS7>~+w^d_vP9k=GLU!D33Qd}){7={rhzvr%%uUHKx3Im zcNOoX6X=QEr!gEvoDbo4hq*h`z<4A7G z5=7@S@T!c}Y0Le~7P18OVZ4zzVUf|vBk=_C2e1(BOWYGlS7t&kDAkD%5j1qJB)zvO z3EMFgD^)TEQFg=ohzm(Nb22bWmZF!NdE2LeDdTf{>784uS5fxP5*Hywz!?$8NRZRp zC*x_rMW=T@sRrUMB~D4WvSBW#ccd&z8L!hazf_?uD0NWP8oc(zWrHO8Oy1VEp^Gn7EudL z(c;{*SfpRLlYS8;gj%I+-zkW=_aX{0y%$mFBK#uC>$_2xXN|`Y3Y;+t7RrH?Xx@t` z4@Ba2dIVrwkMJxJ68N?J;n+VMRmaQlc?S3xkCT6@$HDdk-&fR}xxg2DoGQfeUPP&k zNAqT2dp(@AiX@6x!ecV9DVHgJ1a=#aSH)07_}y$e(WY;Ngrq+zg=K_h;EiQE5f)X- zMK%<~y#9MTF%%Wu-Y)wJ+KY`|!Y5+JXHabuvuz!E4HIJ1k%r>ALEQ$6=p}0O7$lKw z39l#Nj9OG!=ST)WP^Hj5lLO#C#>IFjO*SDG&(24W%&SLgh@o|UrB-7ENy?@0S?kF? zLL!>*ovMo>C*?tar#!;rM3}2XzM+zbAmkqa{_7DcAv)QDcZ|HPMoogU+%E``0>=^1 z_Bp!#RUetqRS{r)k3iOF);t}eDOHm(ptS>~pGPB`a?m2B+CT|59+Vj#jV&_ZXluf~INfKQs{o{&1 zgd#G+A(yQH$tF@=oPqs6!I2~I_q<2ufw|~rQXR)y8p?k;AJ{?<=Na?p>E*aF#BKg) z>|WPp5tf62BM;#3s7K~DeKg)3DRj`mzXx{B!{ew;A3d`wH_5q4AKhE3&Uk1ON9KMB zHxrzW27kOh8qbLg1jcv;VAaAn%~nM}C)K;iCN}0VU~R%U&6r2yjn`_J8)p0&U?al# zqI6jN9ghB}T)7SODX=d*oL9<3 z&(7o)A~*k|7onm?tBN?%co~%(oD*4U{zqerlXNU;VZ0Eq3=ik#fAnUlrsqeQtO5T< zgwdTYsn7_Xd5``FPZ&J5GAF~k3kXknq^G!K&}drpFlR80KrI$wsD)?WU5-=VfgW9`Z<}N_RP;R~V`yR#kBtb_d~Uk2IW+J&s{SoGK+QwRPv zuxo_VO({8W?p{PEnyU8iPBi?JaKFOooXkclV5*^b4shV5K&VWlY?`R&5MA9=spt-J zf;q>ZA+2_H)6$#2O@%J^sYpKM!TiJJ-j)gk}|4k6=*08&k{WP?%7)}C| z>cO;?y`E8{8==Vcde}>HCvBaL0IHztx!A&Lde}Ilokb3|SrI z1}pa=2y=6fKF}pn{@MXj!EFIG#nrznoBrJ;(!kRC_mn8@>L*W;oHs=J5v4T9dQqbH z-9^f;m`ssn#{@c(S~9ilxOlQE{a_=n&>3(>N0N5eOpl><<$Lg6=R*4F@2;61k7l1d z2<()L%kCuau9=QUv$HQet^&T9lX7qCP*~I;PA)$ISwt_omVk{q9k3k~w|A49ZbEp3 zHOP)}Q#aXn3UR0O>*8TpYyBywUvGTZkJ9fgKyLa`s=Mh|y$+TM0GkCTryg_Dk2A(i zzsGPlfUQ7QMq-?LH(^kge*V3JL)02zRKquLq zG|g2ByZL?NlsC~LA-h`xa_y$|ysq8*<{BacSW`IpDFB`CMDg-H2rT)_1u%&gD-6LX zzPDJR4b1fxE36ogT?D~>lXT@ij=$A73ollnNLmEmf3ZSqG?q#HYq+quq|5(UtWfS< zQ^dj?%_dnLqPJM#;4-Wzf_F(GB^`$%Z?Qr@H08*a1|C$YVpk0NVBL2JOKJMTo7a8w zoEb-k`jvvmEqG2lxm}c#lk>s#a*|$O;GERe#e0}&migZZ8~{hZQ~hQ)vXO-Glx$^V&x6t}8!)s34>5_9ClDuDrdNOm zU+4>XJT5~om~(}g97C&_%k=RD7Lqnn>AYaxA8U1hQOCO{d4;|c&`fgew z+EyZc<_CBVPPB%(hx+oSBR-UV;)?eU1K(vi>AJRVk7_^C!|T z<~2qBZ>@h9=+B#!o`JnNy)Op-=l2I$>I-Y)ErY+H()E9n;)0yMk_?+@9o>LYS{U{U zr1(S4Y>xLQ(kIox=0+2(Ctue#zYiWKCRL-79#|s%WujzSmAf1K<>r(3Qu2KE1BR|9 zqFeE)9vb}>9NFXx=MP`4>4i~{##R?Bou_et+!${13X!aTjzTFlm?^K#H+W;v$}WZO zB3bD?Q6^#523ne8T!kXp#--4OJi(N{B`{nt(W;7#r07{V%BAowGW2{G>Ai`PX;r+c zDGTpId94-#>SBGc8TwpbfkcDMMG@^N$mpt$3w7< zYWK!x8)jiy%9x61cqgKx*ck+pk-6ZVAI_L@9e+Fu82>!64rApz7C0E?09J7cqUaE` zNPI7=Ssn4&xQ8JBD4^B^ul*e{OB{q$_r0z*)CbfL-p{&{lGvi?H54J=I`sr5L%8qu zD)8B!_`UnBG(6YD6yNVLMfp*du*l*{0`2ptVn%H1;fA;X(fdSOq|e`k0@KCn)efKc z`vU`Bvz^@bQby!?x(y9pOZ7t~ZA%(B*$PaaVoxIW6%6ZLl)at%(d_}w`&iRwz9sqa z-6cX_pxvFdAe}x|ot`T{cA|REeBHv$*aQQAq?1ngPc+PjXX`8sF$Hd#!$+Yl{rbZ= zpD)efDh(@2Cz_)4BGYPk^8jAPKoP0%kR|rZvzw(zOpx{{JOe(GM`|LK^UB)zDmMN% zLBHQ$GDH(zet)SDH7heS(ZrPgs&>7(ppIVxq`6A!3BNmF`{p38BB&Hb<;SUnfl#Uzf}g#Q1-*?WLjQGD;?GrPHaH}_tWOCTfx(g;2D zPyz%9CDMCu5~^4z3Ifs<6ua0#X*MhYkolQdg`29b> z`#fjvnKSP>Q+9S{c6MgAOHEdC-QbV)@Qe#j!q@MJ(`UdrmkMdDi{w-_j&a?tHF*!{ zYW#ARTkL(X%F`|le=#42|55ucI1dHdr|Jg<@K8m=Vyf=b1`9&~ye)#L-7@0*;I<-KahNPKlssX12+?C;~XhOwKYk)cs z$eeg>h76EH{MPQ}y2fHmk>^F-+&`ntM;w*Yq6V&S zVXH{zo1u*V2b*~RbNv6${C|Ezt;HyKRK2yB+$x+{?Hv>d+nZ6e*oCEoqxwamiq{uwxs3;SJw!0Jx}4F9asB4it83a|h+D zgN4Oys-TNaVvQ>7+NK)#oTsr$Nf*vfYK>BmgLn!TbR7<5=_BNN2knfSQ5$!;n_A6| zE`p#WPmI>SIX;Qlzhde2ody zn+RygB}g5LAt&p|3KVh*UhrKz+u*$(gf$+y%2fD(erSz3xQaq4N947vro*qDk508BNYvgi23 zRUe{NM4nWLf@n=lI1i41ftI zSu)jU5&CY)#(4m&Jjs%&KAUjTF)yFq0Kn}Aq^ciUggTgSCr-Kw&oD1Qz8jR-3{w?s zX}pAw+K0T#gb}Mxxr)YEb2{-sqTQ5O(@p4Arapw8=QQb68cA<+hS%E+n}}ZMOi%tH z`iORCmGwNbRU_xldT6a+X72y1nUU-pa<*QNCKhI%{C_p`_%@okyD`nQi&?nqOn1uX zW7C}q|6kqdwE(M}AC|Lh+QoX8Gs7niV@CM@GULsXJ^z$vW_39;d&{Lp`2RAqOHz}J z$9JaY-EwBK%cVy6|1y&fuxj3x56l?)b-B%q?*@fm!bUdzJM5kSS?_a3zzqGy-3fU0 zTQTzpk|2FZ!u_G&^pyy2jj%2zyyDQ0bDzP`ulG%s;Ph00XH(%@29pbhe)5=PhJO5T zgRfm09)OYX5C^yu z8e)WM!O-tL%z%iU<^Z)JkU8;&0y6Cq;$>?7KufQ%_o1sZ@<;{uMyrpFQrQ9VYap3k;}!6tm#Oz)-bICaAcfO+ z&#-ZBMf)+a$L_#*wb~@ulASi~Pc6!Y$5owooPvcqrQyRLAazv%N&{K1GSW5@G&y|M zEL-J6+SY{VNx2AaIr4X{+D{8Vgr%oDaK8;e@Gt}ML(dAQVN!_C9%mus9EQF_(=88v zgTd4};h%2uzGreNLROdQO6a`sJ6Cw$Gr0>PTLWFmqF3?WM=3O)jj1Kx<@NA@W-4CB zjgWl|mCvbm{B=ZW?()YQq6q(hIJDUh()Jq+_bXlrBGok!R?mc2tazNo)aC*2r@!%P z2RPjq&Il?bGniaZ@i^ZXRJ>Yc+NI&ck63ClwJ(8lU7$@asCb+S3?A^lxB-XsQsD_W zyQsjdX>$Kj@lKnJ9DNJSUx9`gp;}P!24jXr?4+U?Yk?#u-d*m^L2}z)PVzz&EFO!v z=Zud>RcCwuZ_V=lyZinr_;2wjgu&y{&re#4@6P7Kwzmy1cs%NWRchB#ESmx8DD!x< z469w_@yCBWs)A|9@{dQ|^ZaoC@n|(}G70w|kNR!&!gFSD0ScaI93cd2uDs`%hp#Bh#GC_K{g!@&hMi+$7 zK-dBkUa?Azm22$J8NAXQpBDm7Z-8?*6{azmTu`OXqQrC@TukOy$kOl$%;;~Y_J?qe z1lr_+Dz!uu{I=}uC4O{OkXP>hlB{WR|52sleD~Z1n1O+Yq?u|#l}f@$P3%mEbS8n! ziK@xh1Zd07T!>P+9O4^6!K(rxd)aaM-Kw?e4rsls1{VY$ZDJuOgkUIIZPmP;@#x( zJ}<=ch0-3r9WQ1M+MyxcaR3OOkLqC5S^2R+*TUn3I4bQL)Y;U%cIbAD5jnUVPmKpL zxh@YHPlMr8NbtnrsmkNXwR+%A9Nxbs^w)Xb%uV9QFW5?E^W_;=wbky6Shj(kj=v=1 zFCqLDW_sGX;m`0F;^;hS?eAD}R4;W4__o@48Q`StOCYMB##zv$XmzbRHmJ#=b6YFa zawATdC!cg|Com0bUr7ElOfz+CRGo8Yp-y(Yer%namrrLw#@5A$C$F|j;AwLNdr5)Q< z-%ozb7RU>$G2$e9AX3%7x}r^Y05Bb@#mFB%0(r;kb;-A=1HM;^#CvHjbbEX8wyF*M z8cADH1g{G^uB}DPF6~BLK7fRH5l}?CQA8mMl5R%P6{UMAt%7nY%J5S61S!i|0K4V+(~(B&R&Urh1q`oZH& z(dn=rb=zR58WXp*NMgQxF62@7JaH55$0}+abvcC{;*@#J<=cX&xG||&QI~gYh<9vE z*r?07-cV~1j6-R~L=bhE-KaYrZd*5D9a7geA>rLsIPcKC6{w}J!-={dh&wwE7Usdi zv{cNU~*>5!gZmj#$(ufohIGTG=5raSbBo_PCJtUd*3=5tsSQ>=Kys+pUc zXrE7*srpmSj?A5z67X@A^wVrhb*-L8jahEDBwYvVF*-b;)WtfXTU9$7+|=$_T6IgQ zM#$95W@DpcwFnVd?Tg!~TXL99g^IVW2T%3TUr0rQ>cX3>4?tac{qUW*x-i=<)&2pY zN%g^ZcTyP~8UZJ11u9aHP{thaIa9}5>b;Vd?jH}r=6jfwEGh6KsEy2)v`yr#?8XOR znx>?kc;fMIYG_qbD4z6q+H>%<7f(*S<5z%n5KqH+`Un~5 z-VJLj;`{!DXK?c4@LU|uqAOmg?Zz)qEPIxfR0VYwuk zF|=_#J8R7fmWgur<`*-obiyK!{Z=x?ttqC1I(!-~W9B8Du?uLq)_oB;mVsnM(Sv1n zKGRY?Kl8Nb6Tth!4?DuJKdcxl*0l^9Ol2{j*>?nD?c{}RW0*uORWS3?)3G6Lw3cXI z55lNCT&4Xv6N<~N*iZN;{JWC?nMusgyIzVC9ySrK*Jq+(>v_Un%SR8?daLMmjEfuAgNjmrtLwa+4CtY_7eVSYA=yNay?My&^J*nr+KEn z3jm&hX@B5qJZ{Ct2ThbJPQg!m6v!V?vb8?WC4 zo|t%I@q=^VsUn_uycJr`-bv!A9^Z&@SZ}X$NRMB)8nC#8)Q*32JwmFACnvrS?@@YJ zk8$wQFuuP9V5!Nh(=Al!FcO+~;S0#kN0OPfNU>Z|mAT;|luX!bUY?*hC~LVFRi5)J zN_B>m>ib5`s|_p&l{aTD3_L4pfBcJnrh^OC>o4zO=RAf8s4SCW zA@fcYanE~oRTkck3c7w1J-ZtK59pfLqB0`ah19D1jLrtaJ8p6$g*GjPvO|NUJWF{qyNQjp1mE#+e5<7`?v7(v6`gU`4YZ1 z2$x39OV?#=UWR(`(8~vm0^$T8XS*vHAh*PUlaG?p6|IsXZHf& z%zpvI-22hZ#N4OhMt#?l{MCT+^$qFX12^isp5&`W7&G33Ccm^#f&1N47&DH-P^^zP zGF0&*NcwmqLpQzvx$DzehHvqB7xcY-dWa`Io<9Px67l53hta?(;%OK!q=BB|X%U}G z1HHsk7)P_M`t%l0ar};12JR{>#TALuAQSnZ+Hc>pI<1=V& zvUtYCAE33V;u#zNoz~70&$##iTALxB@hb0+V)zy&$@uzdTtePI-rB8YC3hicNsa0d zN8LMd`MMC*7+x9Q<1yn3EH~-9F{vg*#VsF0E!re)Z}Hu0P$_Sb7OMCvVm5o20%Ep$ zm@UL?6U>|X-h6mcyrw1T*VdNmms5o)ndSEHXy1$B?<0sJK54d6{fiPApqA@%rp{3P zJBcp=lMMj%?;N@uxLNW3-R%PyvV9#W^+;lCX_QLD=c=Ul0qTEB=s8cRzdf!9=UhEw zVj575727Bc6d#nv1Jr*|=vOFJZQBccLp!+;N>R5n-1DUbhk}#YD{l%b^Jfgz`VaNS zuV*lf4m4)tZ?8_9j%Tg@qpTGEGj~@6ki5aDqysWEyOP@|WiP2R`I(^pr+Y2o6J_G# z6wlQ19mKtXIPb-)Fg06U^I70eN;!AwInt|%laB!PmaK>BKg>>Id8a=MnA8U;@yy%L zK`IwoQdgQY%uCC@Q;@e2b}~!5FU2fsaa87#kDzjsEm!a=~eL5k7E!Qb)O|WzKGIY zUVi1Ol(QDj3dNwS`&3g;n;&%O_kOGQ$=>THBw=JD1ht%lZ= zI^CraDn}ty_MtUwjyrc~t(r~XE!M4(b1xft;e z`M|UBml11n$T`a*uj_QJhMkZaSmy;KRH~x11YVLuXrYJT9UN3TF8%Pom(n|Ng}10P|JRFVemdF$GrKN+Zytuw9ao(ffr3>#xj9e<`vXe6qjAb z;?<|&4OLUoD88YSRwJ4TA9Js5!g1Foak+Xl=DrCx>JEm*PzH*=wM=iyP1ONjxdD>_ z=s^G_QFlr$uq9w)Zic4o*mSFj%fQxx#^kD8v$L8~X+kr)3*j!koz4s5?}^$F;tQLo z`y1Jth2>`nLz{)2)RJN2VJYVRDXzzl0^i!5(Vd}mV?NI_Mx$LWQTiavqhvJe?dI|MsWPNYu{C7;Wj%rbJ6slL$ z{r+CuTW&K;joc{JgWpm1rcd~#WtCTe9$-{EnOWhdmAxQ-j9KNiVNmN7dib?vzXC>R z>*lJ|E?aXSbKCZ3Y^U=Ayo8|rddDEVjk0GC$92H3`Ksr!aVBMWxXH_Sg-B1zNV~=_ zc!g*~kOZZnt5ddw z`7(3H)|qGuQ|`d`XAo4KzLdLk=u>Qt*E1nm3bF{)p;zI=;i$e#2G}a)9$j60`hY%t zib~m{lbUU1gng&Kj_B|8ym8%EQgfe>s$u#172t$wh=JpDfiiL|AT^vAyKtKmLzQXZlsP0z*jb(0BDm=p-8pgdX;<1{TG{I@HWpEPpiksAJ)mA?Df_lOk+MJvvgFgi#8$rCGGBn)*?tQ3Zj#kYTa2E z;jd`7pSIP_2-_Tld-`8zA^cVCzLIOJClU6X30Ljc+>V62<|QP({h?I=zV7*Q+W$n~ z8@e$Mb#B-`A8X=LcI(#Mz+8%}*#}o7MEg;>njvN%HwxVM_1{Ran=&Cx-#*X>nunRp z#}1KJZz5}5AnF6Mc;R#*MCwER8+7`R)f@Due;`#8}Kpnd{{kTN;?+CZQM`l^9h(qE_$rBRn_(_(Iy+sJd# zP*nJs&vR>F%%vN3dGvM6<@b7H!ebKy`m7K?3LA5|j56w8i&iJ*c0-F4bJJVV{kR!j z%A;K0BUzh7LBkD@$V%geLYasj*W zJtxF%>goP-Hx?J%V;%c*~yBta4 z5{+6piY|d@O2^Xmx;1{9H|9Q9N?qQyAs!Tu_lsa-?m=;X5H~)Hh6#y@8+9oOy(;iU zr!$b>*NC|{oI#hLH)!qhvl21aJ&V@4rYpoXWHFb^=P(SGmVkWB=M`?Fm`fKo1g$rC zgMtUaq8^I-lej0~A^~>+!qrhRm#e4nzw zJk>lVg7Y=o`E8JvYe=K+O%Q}Ajk-J-JM@I8Jt8iT`ED)ZsLNxMLp&Kf=JG7<)*@)_ zt^gks7t`Z}@Hn`byBgxC`^<6(qG;@6?p<@~Hk(Ix`+T|#jJcnREo#Cp+^EaeG{kdI zV(t}SV{WU<86CxFDd0v$65`nzF?Z1=4CKit(7%*{7ePLB?pOGroBIOezf5qaoX@aj z7eK(%(_-%PBH$SeQJ05KL|xsT?ypi2SK_vhx^IiSu08Rd~pi#IN2*0rwY$xZ@-y zVXa-JJ?e6th`dgrdo|psdxJ>0Wk2e2!B2<_jAAa=Rz=0d#TE#GNbY1n_+77<%Wsh3 zqCgOHxw}2)-YZtPyF0|~+qhA#rOVz0EgxKO{)c_uaM&7z|BtkL$40D~5O{&WIcWM= zCpPvLnT>k>NlflwoUTS~ucg%qaC%g|hWKJi7GxLbO^#OQt;IwXehUuiNkgz>8r~Bp zPAnTWYmZiGoA9W+Lg(X+#;IUi>lHfbSDcswzDKoDwa(P)Td>8W`fb&!)-8D9aDg6# zdBYK4moHzsLO;D+sY&phK)}$oTCJA=#)jXr!}{j~SbE5C@3-s|{o74gSAbiMzvkW_ zPAS>67t>61diX&~<)8rdGX1H36yg&nKGR$9uQ%#pK4K}n$$EI%*i?P4XZc~Tmf+|X zJ*+J33#|tuvLpJ6hhbzVRGVyl82cTT$umupPwx$QHJeM1InA{nDEkncaE<90#Gs{D z5iTwMp7P@rXJkWZ_Tw-8nxj_CA3O;C|jZ&#`g<(-VYJ#5vPFkv<}P1Y=1xt-Mo z7uX&TkSytA&j-*s*z{aow!UX^JG{N5a(MF^5lr7zi zaG7Q3*LfJzQD*2Bh{wp%2w?~UW0*) zfU(w=2ZoP6rPZJJBHgJpP$R=u_u&72kV7=CC-j~HXT1VP62}NsDk0Ocr{MtpKL$Aj zsVts0V4nahSBQ7Mxk6mksIqv}fSvtLrSRr8yzt|b5Iz{;DHA44RFQqU4nN8W&un^{ zFGMgrGwJF4I6Nv#)8ce!NJOo!X(@*(M7W@T8Kn0064`L?tB8_;vdVR1vaIBfaJBqx z1m6coFj6P7>J>xwB4pk*9+pt=D!KMN4Z;2u^5DFKCL=SjdSOz1&RsNl7Z;^qQVDr2 zryoRkBt^nLC~=*mM9=^&7ILycwVacXDQ8f`q}|Ut3T1l~V3k)%W`C83l0Rs7p_S|= zmtzy)M|L4SXdl^PXVt-_v^P-se=nHytn9Um%dEU*w`Yth!i|Rag0r{7k#ycGHvxB& z?u5wtz{qcg9O*w@rPj9_%NEj9>f~Nzsc-TB8_1!C^9CFw@2;!a{Bt}X`WuqSx6P1+ z{fMaz9H}h-yy{13LxPLB089JQDO6cJTEdbQ>k=bp!|H7qNG0~AD)=Nh z{_g-eL^>WQC zt-VkSpV&cvpA2${RuO&-wLZL78#r>E*sBEwysw|8QsIgIwi<~4G39{{b)DvLR90)2 z{@GwnL%0uVR*{{|vPbzYIHioC$m`||Ixr-Z<(`T{?7z^M z!_$I|X0}EO;ORk+%HpXn_5^4Ihq!pH?WLJzt?i|4JS-QB+slYGOTU{ia~;-XdEq<@ z#@>iKf;mHWL3-lxham*cr`JXr)HK; zm~ftoy_T5b&Sm)@J0F8HfbCiz_!?J3Lq=8IT6V@MzUOLr*iaFkaNY|BY_4mhjYhf-h63Agw%G@lqG zs+Gnh&dg2Y5jc`KchxEoXzXwmD3&JW_Nj>GgWMJI7Ry72*1_w zIMu(dtbSp6^$W|ZU*xN2@hdg9bu572&3d*lA@^_@e`n3aOJUl7;vNe`UdMK31Q|q$l zU>Y8twoScsoT-u?4pnELt*=G%f@C6P4~M!-Yl){}ri@26*}uV3(2tvx$=OU1g_MOp z2BsODAZ6Mg6--u1@lcC53XJi1sH%Ah4y9S_7Wv28%O^{@f$Kp)xU1&uR`*0hjsu%%M}7$%rs#Q&QhhYHS} za8%^bY&?X6vwnsn8M_4f$oxbVzM{^R;8iMhe)t_*Y!0F3gB&V2N8qSPCi>_s$gGBN zM4x@MN+qtS2lmV2zYEAANJZ9k!<%t%`Z72IXK$80p#vVlPIY^=g~z)-6Wr=7La%F^ zK!~L`QRPXWKjmhdvc^- z+l9yP#61P%^$!@zZPH8gvH9)Y7~lA*$RoB=BVon97>-!z%O-*E{T-b8Pf+#(Y+ZvV zpPp_#7O;KLRa$PN`Xs2|K=mgotGD&kQIK<#(^fb2y3WN{0lgP!|{`y?0iJTr`;s)YE^aS0aCrm(3^Kw|8{I)}~6|@pk^t-QyW#o`u6OVTwO3{_? z3Rh(pbt5EKfxgnK{ix8($Zy|g7{u!vcOx%vhpX}C{tdWepj&kV?A46D6HcLp=9mR* z3d&{2xyCnA#ufVJV(*5NKl&6oX9sGphcgUHLqPUwc$R>fPtOW?-URa!NPR6m?fny3 z=;7qPNRh)1)cFvOy$4S3+FEr5+0VmsADBBp=^SAE7^I|(^O6#~B3#qvXd{-X(O#f> zbNqoJ3C9fvYz3U3eib_qZYZM#Z`{BUL~cLCYBaD#HHgyFsWC#=x`%0=0GLWI4-Wks zxT6PDswsQinh2Htq$e>ljYhLaCRMYe>Mnhegq z9gY~5;ZYxSV$NEt-lP{XsjIuS#43JgiQVi}9 zFxFl;V(?Zn|B|dbA#aFX8lT|*JCH*)=Vdr5at5sY3C>FU>i@7p&6=;k5`YCDhiXn0 za4IrlJf8o+*`we{S~yOTVNP_JRrgdGg4D$jcN#%A8W4xL0Aci6FI=l^pjj{6WGJwr zj*!j=08^1)+F%xh>f4O^IGF-U7=d08B7NA%WsG$33T!RC*UsKKOrCdVs^~Vm`jwK9 zMM&)rv{dcuim5$QMORo2F7T2*nV!NsfK`zXFz(F-*e*00{?h=G?uK%_$ufS=^%R1} z8&KJZ_hL()jm{J#ith*pt-m~eUnPlB(6fLXsyiRj`3er+&pmM!63PQv?am07F%eH&#h3_Bw3Fj<@@j-1f*y`wYYH5h zF5+8cNdbr5-eDi9G~l$f)l&RlQXc3~*EtoAitxCW8^Kwd;fRHQaA~{)T2iU?#bjGO zivQ<94w23#I4ZJzIC^|=_RnxcaWoWV2p*l`4V$HM!PA-bLq$4tLp0yQcq2HXQ8tD? z#qGf{G@EBkh9vcItICjCMH-^!wFBPnYLr;>R2C1UwdX<>9E+I!Y9bD1&9$2F$j9u} zJH*pb&VPIst-H$NL6Y`nsK`a(O9kz<&?ak`RZ^6hI%Ud?R6;7)#1kU zAaV?}SBE>(Mt15fgj^j?VTg)!$2h$+%-Fq*Ew9-=jL;F3msXVjk&A805LqjYyaSA) z7RmFN*G*8RBZ~KW{BHs|RB-0QQCUS-!ser3WiXCW{+K;X2EX?ABBc6PI8qM&?T6d! zv&1w`m|)&(wu*g`n8P>C-HOLzM(jvp+GmTYen0AM!uPP81V_{tKto0NdC1z7*Eez* zP)DACyfx*WE6Ahn-?h*}Qy5tWZX_Wy4WtK{P5NRyG*){!ehz|FWZOU-XbZ7*l>xDf zDtCiZ`2^a&P59poa)?%`6el3fkK+I7Kpfcsqp!hh9fl*>c>N_jwN3AIf*hhf@yZ-L3c>e%Adc{W=fB{!oTKH;sZ>Hv-;Ld>5NCoMf>h+lID7>b zUOmsi{hkhe$L3Hi_8r~Ue~Yf??oc)M9jJ2XdhQ8Tx$NM+@}XrM24M1wEea>(AXc0G+?~MR2C@gj z^9h(kpma_H83T9-^i2f@F0(9~(?W^aNEpZ-4^Iy;-9YJlV`EgTfD4p+S#|6$067!b z)2OW8!#x4!c6yE>qMKcz>fj@1C6h8GHp7c4d(DpC*kVhaBK8Sx3Fi&ThsUkxJ#$pTVaX@c$ghp}KP+oonEz$e>x6 z1qWw+4o6HjMN&)y+ltLvDitrfz*4{BUmt@i6`c3rs7PotG6tDd2af2o-z}FFDqK3l zRt5NP4|0fBkzIFSC<4wJ3@6Z2sf65yshvsqpAK>e!k}unQuDys%i#!|y|nsHCzhgc zAzM>H9=ZHBTx^J}$Bmq?$;%~+_)C}L7=}_b867wgmRvH;(a|X`|>pIev%g`XKy?0ZQDTpKS7Zg=K9Lak&vejf5 z#v0DLw6_r|wa8i5#OtORLq=;Ho&$J4kV9oBg-#Y6Okl3T>p*bU3^-ztQ*Y(28MU%6 zMdO42l^};`Ok>@MufT${*1-w%R4O6QG(ZP{|A#;hLFgWMf`5pD2+!kx9gMvnj%Yqk zNQ4LRe@6KqM$T@d3HKc(tWTE{_#;^;UH4aDvfzj=FFmq6Q#t#yz0y4otw0lEx|PQ? zX*3l>tnIZt%n4uy5i_jccz8QOc54=d7D0|eVG;RMBl;Wo0;h4S7N<#+;9BPpL)QN9NFS(Kk=IS)lL@wakTV{UY5DV|in3)Hezv8Q_WtImJL4fl=S|;XEhJWNV}nD@AZ;p@@V79LF$VvoActsAybuf0&W3M( zAdXyqCZ4h2wb#LstnNW~AXlx*J$B|H_6-q!O!OXvTdx}stBAY{O1{4qJ49mt`w^AMe9;b36~`pQ4SSxJBRv9hl$mkDa+&9+rG!s~$?qE(~~ z^a|j$I+fQ$=HUHev84v!e;CLi2v2LHP-f)Lg(I0`Uso;~V)x;b;}_xoa*!kF$oQd1 zKfKm`a71rL#XgVNo@nEr!T(N>L$r$gJp@G$&iW8epr=v^X?wA)zQg}9kV6nwV7RFN zf1>Q$z!5kbKCf^4(8`$(4<3Je;{J4gvy#{kbd$#HxD}VyOhpzsN_B^_HMhJ4Ts=HC z{^RvE@Sq+2N4KO3JeU?dp{six3FH0nh@~#X|4kr=ww!)+M$?%F2QzVX@FgH{){}4~ znS63ASBg~ScgNY924$gBDTxem^FBIg(+rw;{bZBC;x zAo5Mi_TFnnU&Xt14CUv8F4Bi4Vs$Noj_O&H&QN+*70yrD zSKq(vBE5VvriD-7BIwiSDm^>-h2=`+J6ZJcD>F2K$ktl*?`Of zrE{9Vz^s6iB*94@t!vqwHnSn?#DVRJ^K7?>hb`6Rf4iT!D}lW3PCd@;yG zo55bUG$;kbxqf=}>~1zY;b)-o6sUw>eBh5C`$3}F;a}{F5>(D4l;Ql;g}4~@YJ_|X zjW0kp2LYY)uqFyr#F-wW6H>FGlYF0*W$%V~Il>o$Y|i_<1!gyB(EWh){{WI2b+Kj) z)c;F(E(LQDD3@(rNk-wBcztQ9qJvZ!wZgChA+bEwfg z3a#%0&8B=ue65d1%|il-9-Dx8W+Eu39x4LJo(RusFe~Zdo8vn5waNnJa`}|8fb)@q z^!sriNUWwbbhv_Q67Z*jr-fc%%1Qb0y6R9OvCwL(<#zS%Dr zt_Cw2;ehkY1+O_18?I;KxI*k@MD*gxiE}IK{ARb5#Qgy5cmE@Ck;-a_YEQ+)HRUq6 z`-Aez!Hp6-n3zz{LV{c*D6IirVuNh1fa?UNBWMs|x9KVf&wtX_WfkV*{!-?vDHq`F z46f)P-|B5P3T8ioY_7mN4VI?T8iV_P3dvRQT>+A57Jj6}`x!3e`(t|&!>eFQrdb{a z{y~sTvls(1&0^HFGF)K5OtX9l#rLVqX_kbB_-YqOrdf=NRax0gvor#>0Z67<27?($ z52sn?gEo?N1Cjyp|C_ zfNcZH#W`52ZxEB=vJC!Mg4K<8@o>N<06!k2@(s+NAxgOVu4Nb=A>ax>Ph6aVx|A^Q zv1JZ(HLqBLzxIRKbFr$;fwW|fANxloF#V&xh+STP=V3sOVo<5qU0ks)l4ld7*rEEhnq z6jZkv`lE$6c@b*02?lj({qJ#hl+EX+=K*;FRMZNzdpg~l= zO_xGcz?a7cZU>wf3m#1#jt_Sb179a^hUN{RbiPzDDhUB+RGiw0xi()jEW!b&lR-9L zH(cIat4l!{Tqk6dLjh-$!&la^xn}5LKpzCzTt#F&0M+GtZ=)Vohma2>@!K$(3%>id z`4;>m=)Dih<>R%%x&ddRavs->wli;hIRTU2N~;>6x(iY1w*?Bzsc<0mac1gjgxD+LbONp; zNDbtyjj?X2`w4!}vN>6EF2W~*>^AU>DbQ*Z2)_b8Fc|v@0mmTz!fV65TxjtrVkI<| zf-*Q`WmG}|=P6L7fj5Pv3b@i^kDvB3F4;#`d)yrmh3&mSy$`$lLH15~s$)Ja1!Qx5 zM@KO2K)GDlYK-ZCGqF0)hPoVQO1Z>!9`JKP>D=vNbnuPzASs@f)7Ne(TVEV*f>A2> zf^tzLRE8spp@}H?TLF`mwdvf&W2}Y(&ZH@|xt-(O>zU@FTZ0S-oIx`6+hN+~Lfo5? z^0gZ=4ub0L{}doCc)Bh}AipzIC*&5%m(F_FOj6cW>6x7-P*4pxl$sh0zVE^;d&-l);Xy}()nW8 z6nfQw3z9v=t!dXm3wI$*pAWKA;dvg+4tiX8j)3``o3GOp0{Z+`ZL`kSr69I9m`!%y3Sivu1dCaP1Hv?o8utPvL z-%xDda*=OsghFE`o(-WsGb_!ew|Z@r8& z&os`L3HC!koC@qXkj?jC7lBy`%HVPvqlyiOqLw2JV|F z;Ow4tv**L(q0gB}^yFrBsv={Y@H>h~z6YtgtUzM|okOR}h`wVr;8<_ci!gWtHD$dq zFq}9w0UaUg%H1izv91&Y(-~Bkb;aOpRZQFw=T%0_`Y|1lX`l=)FEX%%fHNs|KB{SR zwb5!ouLSw^X>yPu!v%H1uTPHwyd5O<=@6KYKvJKK1|A1|D}k@q5|KHUxGPI_3M_JMgDR5IPytx%tg5chGAQ?E#Z z`t%2skAtK>85Hj0lkt9is?%Ak9FWu}1HvtQ65P}$181ZKtQc39dhwTWX}$oDeWj_$ z6)Q;}#Lx>QmBgrMHQTQwyQ>4oN^%Y`vq93J7@QSEQm#SygY}OU<|e?`fTY5#2~tzW zdC4&q=6OJOfN&eL0lFnn*u=E>mE>yxz641nN$G-9EJ0F93?3_Qe9e<9Ne4g+K~hO3 zfhnbjmE=k=mxH8|7Ny5cgP6I00>?fi^B{4#+45$2G zP)V9VxiLs8i9uPF@qQ&42IvsN+2|O!9dO3HsU(X5T?pcDqc)Aqd{hQ>O9}Ii;_Xq- z9KVA7+8>jN5;7c%o)vKA9Zz$m z)zaopyxjzpcsx{SbAk9a0PX|Xec;&-<{eN`2xVXtV1NqCQ3l+9`6t4E zr$Qrm>h#ho2V~cVrze;aP&%`JwjZ4paORanQo3IhX90T#m01+mg1MR=7R6&=wu8K1 z-Oo_uYXf^NkQzNEuMKLJ{U<^W0{8(ne}c#A4J}e#z9xSxP?}Apv8kCk#37^*n1-OH zTvcdb_)sQb)xNMwuBUOXFZ>pmFF`|g`ldJwxCH5HIsl>7*Lo?`s>N7Oaa9It$4ms- zTr1h6k5+X+O}SLxfH9Q@aA=&}*e00k^=+=)zXibcp!^QL)w^$yK_Va9a=8V;$nhG+ zN96k@L}PtAdN1BQJKSRige^NEx8=!6Pib%@I96AJErUXj;3{jhimWsNt=<9jX1cVCUr2Dc7tS8 zzR^cwxiIT+*XZ6Xz&POQ1V~4a47dyoQ?9JX7?pP+jsvc#z)Yq&j>-+rQaR&+JK{{p z1dM~MD*(9+B!esivjYV`p;%MtjmjSZ^dXQxD!(g8rr|=qh8b`j1o#7x47d`8ps5AP zfXirTWw=1sAC)%&v@u8qT*JT&p@##mWnh+oWWZ(AtxAT10oU!o-b&@;hp?yw%r1I3 z;Q9^BFQAh9{H#`t?V(s#0FnWhL0OgY{(!3opxp@PfXl$`fb&a_ z)6ephcNU;$fcVScRso|D3b-1+4l0SwEd|#Behp~I3x1MKpQqwHE2Qjt64Z0?o&6iSCdN;-{yd`+zkSFfCA zS*H;lhId*Zv>>wfztlrv=eo~jc>=j_H2Y-k2xtY37N8;ReU#~I^9T9&sn;X21Low( zy!RI435Tovh6W9j;i~x&=y9=?v_B81k+3}+WS;@g1z;A^GXb7&z#IV$ndTdkVeRt8 zcojI|ejsTkZV7OzRGNw7bpT^CF%OWrG{=W`14BUp#%5v~acm|w0JDzf*i0B4rdNqO z;#`yq7@LWg0NDwWX2QViK*6NeG!x$g`Yp(BChiH6X}I84_n*tK(^pjoNi)$2Oh=G3 z6GlTT!v(s2Gcgs=$<*a!&=p`VqleAJV_>#}q?s`4RwYA0GjR~u52$?n5QbVK!I0QY zv;fl#RI<&_N`+>^2=R_9$f;K(K{GKN%0ofYOc<0^8Sgg}=L5QkaCuAR8?`IJO*63% z(6>SSNi$($z>6(k`Q&EeZ@~Wq4SCTA1kFTKHWNmw)#_5O20n`#Sk^Su8-?2v)Raxb z(ID4v0?g*%I)a1dpdWyJK&psi$jCY-6SW_`zlSbs0_FmB4w0&eO+ecKS_~-f1G(jI z24XE}NJl^1-14gAN?*da>^<-EJxAc_T36o1C)%BHv+;+UHPNmecm`YUz+^q7?47#m zX@E+Ykf)E=nR^;m6clxlQjKPNj z&fxJBU~?^lHC z1n@^7dmTKHv0Awx{OWS`_u0OFf_ihLTm>$Lk;UJ#4BX~|@K(UL0M+HzDx-k3jl$jj zVB;(*aA%e5v9h__Y7D@mKux)6+9kH$elrOlg6iQ%q+{ zI+A5o(jN#uPFpHB>zlHus|05K(quBS9VWabU@Dy_BAJ+z1FjsniyV(+^Pr?U<1jA+ z%HWBGMkyX}Mu|_LJiX9f2&WJ5y+HWoayPh9OAI)p#u9y<3FEGC*&m(}KUAg=siY9T zv5j{YlS=2NyBmUXFtW}r%2gWkC7QS&Y84^0?r^&T^6&ta3h^; zsmtI#b%S>T&fr-j+_Nsb*U<-aw}DAVLckd`tjqR;3~sV|(d*ACGt(zz>UslZvKZ~{G*N=QSTRdzQ1=Yt%A5La+YX|l4&3Y0%gTymTjs6Usq0V!z?rp34uk*C}THe22SG5S^ z4D4^xdAZ!*v=F!VY|t3)bJBT5+~;%*{vSZy7eF$E3a!UunhZ2~&9jKFo_wVmZ>pC~ zZt)dS`;?W?a^CZm-GP)M|Q;4a~Bm7a9&G^HEKCm3&rjcY-5&-)8|N&K|g>d;VF zZIBpmh9+}0LjDBgH;~Pp7KNuGeo+2lAOG6`4)D10QXcs>EkiHD-5B5b;b`ZE!CphV zkoLF{V>Z-hf;?QU>%ElWT>^1U>{5f<0L(h#3OL`^EWjDg(}Paa*u&5%n{G1zD^N1f zvgx+E+&|OGw~3{FjJs)UdI9Wk=ZrlX&YOsQ7s&1hPxb_~)*zevZ03QP4w8k3#tK$( z1opfL9c49Y-W)oz@URpM4?!xI3l9wx--7X#Vtyj2bO=i279m2b3rH3rE(5a&B#RJ@ zZbD$iG^jp44GX;1GX^oQO`a--7r@fWD#DOYjVwjE^3JY@XC{ zJD4>fF){F;LuDrLCV(b>i#lx&<7zdA(`E`L!a;TxJlBG`f}T`(z6A3jNX-1EJ5uB7 zHOuPq5Ziubmuxs@qYpbNt)Nv8A&aJJH3wv;!*dMGH}pi|895E(2T&3BH5&t3DHw3B z)N#8M;wKUQ5Xc@1PxfiJ^dS2bcvgT}1j^+E=ZGMB!$tfn=#1BC3tB>l%Qg=K|1k}4 z`KB`+uh2kV{Ko?e#f*Q94om#a0cZr0_?LoNKo8@81I){yq86}aw9)KPdxB22he2HX zbi6eK**)Po6U7S;n1@06ZEo-q`WJ+_^YKyub20Mf1@Zz;9hdqkLqFkjiGJP^ zzqIzUn7N8IbOsm_SFtt$(-$ZTkjk%hgBK%C;*iD^bu?HN z$dJ0+e|UP3sW*`<-85@mAq+*(DD{Mq?jW1{5?6s)0cy(GCZhwpBXE^Jww$k+6izoi z3(V7?fm|zcwr?9NO^EYnqCZ3MCm;;2Y0Q8uHJhMsEUQ~<-&o=dbfqAfyD~UzTMf*5 z`7?%F0@@s;)N!4LG;e~vJ#FxEGy|UT2p9?KUmu=(z}y9D$_sOSVD3#OAY?n6m;hdx zeZaf{k}K13CRPH2R8zi-SnF%SKN4Dw?d+$PtaS$HY>-r;ZD6*D7O&@qK&u6{!nPAb z0_7rp2hb5}@gjDbg|{ytmCF>~8>G;1LCuZW_5fO7YUe>=E=W?l0n9qFz!pMr$Fk3#iOSYa^KT^sv#|3FdiF{sccwrqPv#mSLSH~$UK9?cNP(Nxp+uK2l zja>mWT7smp8v|w(NE$n%W(5XUkJ8w+VXk)3JOQ4gr6+1 zdN$BAT#~PcG2ej>h>H{X@wvFHAX&X>fR-|xQQ@S1PwH?|pC83-3zEfF28qcwKf>Uq zJ>s0!9x7~cO94L>B#qF1C6lfEg~RC;kNg{Qz$T$prs? zFzT-g={<(NG0LcXZATR?!GQn@utxAT13I20|okQj0 zhp@#2%+2(C3(w17UIdlA;U}WP1iulY9S?Hq7l>Ky`7M;c2FV1!L0OgY{se#ZdDtBS zk_mnTw=2Q%bS>`z4V;n6W*4Ips-%L-)3hVTV|=?_!Malk%4hd6ztCn+^I)|4MjU6#S2Y_&8i^AmjNP zzF$D{xO*xrB-#u7$KAT0;(7BQKN`F}8G;d0X8cp6!~O#yrSowsf^6>WzX;4qP=4BV zUV5wn-jnSTc@xWU1venq`;LD4&!6fsMaFN>&_q2qHI}XA3&nS=UjAD~_8izyKQLJzMt; zbnd6^9Q!F_doVBqiR)=FTtxT|g83|u9QR!5>$3Kwpiuv_3g`h+15B~2{M*WD|EH$q z=2TSmstqrrRGaQ9#7g1KqNF;1tgzK4|9T?9^23JCE`GI1m06Svk+CHpuiB)_EXtSg ze+FW;NgY6idgr032T8Tr070VN!c?1jDE@7JG*}?bYLk}e0Am*+WD>Ma1=&2#Vk4NF zL0*YJ<}2Y5mrCh&Gb-_Fz6;Dg;(8iP9Jh9V1hd4w*^^^9`Y-=G-vkT(KZ{O#FO5v1 zF)i-?gBM_O+c7^DcGDziL?;HBRFGx43%BB?jOTnU%OVLGzSkPWoPIMZq z#8lfg-Zdzz%0s*Pmm*QB^500oFCgzyBuZ5-U5xD!LtjRX*-3VP7bfV)pM;V$lo)ray5#4Th6| z=}5>)Rk`W^?~*H$k~4{BRp#qNuh!a*b2A<`{p6I@+CAOri4EFkWW?t#KgfEH;8!3(CLT zl+ypGwKx0WSpUva3?-dKd#ttJL;YLYW1mrb8P+y|@;CYT|E#qJWT`e$!OC@)P{ z*ysXM`TKlB|97ozD`js=!LPL}8mYC#D#U`0eE$-59D}jk9{zlJE4&((7tbjp>&eH? zQ@IZKyREj$0HiL+p@PFTz$$ALIzgK+-EfZ2M3sMc%>#WgT{2<9B=Akh05Tq(aK#Ft) zL_x%kASxmjL=gc|6f3BRh#fnhT|xQZb7psQDc|@1&wrn1cFK9rnKQlY%-%y3-V)*T z?#`HgNq7Z<^{kIG)UfHrXMjNXG*d3V0uGn)Bpxhg2gKleKC?vBOS0;q$04%<;ah!a zh=Z`{ICOwG0`zWF1fR^o87#O=dIie@wn9La9wYF7B#+6gQy^El^AJ94{J5@dfkfqH)sYv&;H=VSDO_V^#hdm*W|{WXn+^|u z`Uw>MS2>ld5eKbP`Ljf3ds&4*qVnz82;V}IIyQu>woJa3Bz4oC+{pwAmS$p~78vto zJUBf!A`j}!-)4%~hfV%=QOJ7i4NNqDyw(t8+U@!S+kARJ;Lx_v@1WJc|4Wp=m>Cn=p^{L* zed90{3q2ZN1o?fRt_t_gcnZgv&`kVkN1p~gNl1W#?vY)e0)1rVYVb(s4`VM{YtdU^B0z6Z)lR{*`VM$7{X+EEHL^oW{L z!(hlo!2H-`)Pk~aZ3r#iQ6GJay;=8>2yfK+-Zx#3-Jf%{{X zcOUj{2H`7HAP*&oR&wSTFn^}D?7(p>C_NLDrJjIcloL9VxTBErrP>^i>IM3JE=FXR zVs}3Dy?S>)&Q2f{FWkblt8?lnkPWHmkG|gr4F_z(=(0WaSarU`o_r`(s`Zl$aRGpk zc_pZ7>}06gJF_xqGC&A*-*;f^nzRUcn9~*ez@f@gRU9qE80cLJ0A3a9xEykZRCi|J z8@M1318EGAIU90J%A|%;sb{e?NAAxDX^l(fERe;lY4S^ z(H)(Lbon$$sRALxrP@>x2OO>jX!JDzL^U zA0*GZDAAT_&q$RAz2ut+Kk3qRkE)sXOO-kwfO8<8_W-Q12D~9v??wQ`2GCK%lqX3i zo_l8vJ%u+``=Lk?VBM|)<$Ti6@1;sYOOvAkoBv;+;cEUX)rPvzVgs-{JUkW56u6?E`^5aTFFp_7a;H~5dU~6E(xlP;c?e6)buzAj8_<@VRR16qC(Y)DK*sO zZUE$i*vbR!sdcHCwuTBlg&6w*G0sC#PKQTUW~g5}L)JVXR(mLl%t75kMUHFgliq=> z2Z4CPMd{(qw+F2~w9!y?7h#b=d`AH|;esR=tp@Ek)an)v=o|p&JrLJ;4LWM5Ie2Bn zk}9C>SB23zz>QXeP8q5O<`oQT0zhjI#Mz`lsiu0hngbdPz&H;?StWe)l8~|{rn+g6 z)BG0#u*?NH^p>U?x7}&*^uLCW5S@F_ek0MVhB}x^<{7&CI0)Kn9>1n{H`V&}4*wUR zee3a8eP}k~AC|kbHuB83JOQ5m5cUeTD1pJMSBQ!*oOV%lD}jd=JXsDNVJc(0#>ip- zTM?Kw^CgTxkxVdE+rc_QIS8~7o-j?HW-7WfM{&qGcq}Bk=6_}+BAaWfnV6<=2X{AU z_m|VN7oo3MY^vQDjhOxdXa~#bw^CwOn<{{58_Pcp+85>Yc+zj9sfsH)@&5~&FX+WT z@EY*n3;DzK*d*!um|5j?I=vEl*i<7i>Ek9;3|gyl`Zv#m{-~)AL_73BppEe838g0f zjbg8~uX-Fp0##h|q!It#D50s~g4f1~jlyg+~sp0b^1LbC*A0`eji$uSnQ$?uAr~0jMq`n0D>z7JpOgEoelcOV)UxI$_ zQaQe#i;;;#ed+`z$)uGGhA>Tq(G_3Q$NN<8W>|I+y%uP>MAvoo(JYkZbf1bzag^-< zTGw)Zrr+#SUH{|oj{|K|Isd*@$ez_cb-vi?be4g(&gFNyF9vP&slm@UpvM4s&I9T0 zi$VAL6uso*p6NXRKJh@h`(n^zKJ^7A=nVP`03Rl@I&XE)^e=U(hkUBW?GC6i05v_3 z?ot_a!lyndaQe7X0Qy`4(qk15gFc3T=2O3Ydg%f=p_K&_CVgi<{*Q9^)k-CaEiYJ>UR&xDNgABBB@7zjSCz0TU{EgrhI$}9HZW+mUtMoGn$HGcwFlw> zlGWGw#_(JHs!3f(<|BYU=fT7BjgfcxRpl~A@OwagatTuS7_`H$ZoxSkUH$+>pr0yl zTe|zv$RmDr^0-e)S_(Gdyu^2f#oN#GP|kSung~K)rL&flmi? z@ul!E!J`9e?6*#-Z3XHH56LohrnAgB0d@E@2YD2zFRw&~S4QSp7f@BO{Nr4>2z)}! zCAkomvkZSYp#Es@!0Q28d?j4?7`Z>7_F&S?g8Kk9;Zo$~`SDIb4QS&G;fn#?;K9kI zOQULtCimkjQ-&J8Iy6^~R%*_0N1qn}Jm#@+1oRLZnW0pRn}sf)vq1ggAt?d}RG?JR zT~4V)#tM-Jqw54~!N`QxG%&YQYUL6%lRO{_U6k#o?ZmTMslTyxz*)Q(OvkUn7*>EB**2wS?sIs40^Wyhg0Nc8 zxkfxr6fY_DT$+==l>u#h6?j-taun|(J2z+6@p^lF$_ zlDgn~S!&}q4o^qmM_q-7lMSq@ONH?r+hW6;~8(MKRY|=*$w=$tMG8I zLk}kp7FiW$UgyMf7WjWW9uFzG*U35D19kXKOTCYlKv|ZEiDWL!<<+D-$8!FlYX7dK zPIuQV?ExQt6_)aH%sEfP>-(0PGfgXXBj7au*0GcWeK}tWd_3Axc^S?m?m?jT5|ZW~ zx(rwqdWeKs-2ngDQVX!3Bi{z>lqZxDBYX!F0k~kPDfi=ROsMISzVCj)l_z|YX>ZPo zP%omHGd&UO>`E}sT&Ksipr=Nt1E*n|;BN?8Q91okG!j-jLj8-{!+P}s?OK;!zS`&J zEPMN~?xT{|BX0p}y@w1_w)1e5+~Ei{<~0ZTI8ggNWSFvy{3b%Z(APnp1nMUbdAYI- z|06;@^o|3Mz;;$LjLroQE_{r%gQ|H?2bl*{sfP?x_Tp|-kCdQVbdBDJlLLX8;3315 zWn{CUx)YNS&Z@;g(T3V(u{$}-@Uoz)k6m4c?*a7im2lx>JI%V)FP``V~%avvL zxuDvH-i(!v!M00Pn9B-6_!w!}>Uy_+H36!FhYVA;5stHl;%xQVCs_HQ`;jAnn(84r z8hQv{BUGtSHCz4ivEFKwD}mbRAt_l7=w@3D+UtOx1mK7V^29j-IGfy$+a!9TTC z)4q<(>i}K)U*KAg?AWJqQR>;V@(7+K(ge%$RxhIks=Hzv)Q+rM873-;7yqXR^J*E@XS9-IeWC_Gq@( z*lXCn-QLOedixOD8*Q30m@#+S|FC_Rozt28o9(V_-(z3T_I>s(Y(HS%&h~@$Lu@}} zA7T4p`z+hrY^w|LZ?~(ky~A$J_PNB`NU0g~TjGQgvVTt;!r^}=-pKY}iSM%gcj9eq zpHF;}?F)%N!fr7XcZ_4Zm=a^lRHT1MCDbEwIFvHe24xfiW)X!P4yCR6$1Eu(AmDbQ zki(%gGd~1R7PQ()6mmF}#wHy@`2x@*L?MT0F=FgA5%YxkLQh<3M!?rDMU&0A5<8<8 z5*D|@PGozPoyYcSy93*6?9ptmwU@Acn|(jqx7+*KUT2?Td%gV^+Z*hZ-X!l1yFS|+ z?dELXX^&$2E_*rKo9u0DZ?=!KeYgD|w(qg6KE!{oU5oAe>@v3Rw@0)6puLjqZT6FF z@322)d#C*`+mG8ReTjdU-GuEY?fz`8c)Q%fu$^2+71=?1+?!)7g$*_*LW?2Q29Za{FPyb$if zqYvV=&ajljun64Eio%CI@+14CqN|IyG4#b&mnFkNsrN&wWO8|&$=^Wt@Re2%esDj{XM4}iS(lDjYB6&>^+}b5c`VzfEAE}yQ@Rj{Q z8|l%fBV7)Ctg4Brx10sqB9Fd@`0LU;jf83H(Qom38v*ie(6@OQjzeQ+DIexSj5z@M z8y<$`q^ILWb;5krXf^cw4749yx_)<(PAi6lg{nSoAxQ(8MZ)MzC6V}l*&tpOC9ICQ zZk)5xTOEM91mY~ZR~|eI`bPB`PT3zLMN2)J2+T!Bn+fe>h9C@%!W0U)Pd0cPEUm4x zwQ(aB6iJ~Xt0|To6%3hn2c-00Re%F03qg#35*tM_u`u){JY%9i$BL|J-B$ro3%A2v zRF~e~HaznP?tB%;UNausguoqzc^k%f4@6OUaL-Bnk~d}W;A!kYHCzdD{0ko;cF1ml zq42-T-Up$Oz3woQ09LW z<7(JMpq)p5ZK@HL#3KFA9F8&x)6vQ;gQf1-al5V#!upJ zO+cG^H4tabWT{#v84TL!fjBzK5D{ln9?g`h=Xt^Tx0^t9AW~$_$HdQHO{P;)0~8)N zheB|)U;z%BP{5}I=Dd#k?J(5FIf9{$49;4K!eKdD*gQG%x>3TvSgOIvxMf4a(uacM zR;g~srWpm)b2-YVgrfT$=xU_@HW{J=U%Ie2A#Xm%!4HBrpnPe}+Hzs9lj)h5fCY%i zg?*1yZ(_|(g?$?_5LPpAVc#!RvwL-6@4A$%3;SWIPWaKiAP3$jdNHx{BdoCZNJVcl zDCB1s)zNyaIA6+?Gm{Zt4OZD$g&8rLhcd7Os*0H9dI5n8(|5RwgOwF;c??`s8J%{c3 z_A<5`*z4KOw~MYJdV$@J?S^(wwj0?)*ey_@ak z_9nJl*bgzirTq-srS?I#TiI{1-NqizxVH8Tw%geY*=}#IX1mM|vE9*5V!M-_#dc>q zm+h|hezv>W50hP~!0w97HY+u>*AF4Pk^Ka0wF~`1g^QJFhTSHQy3^n!dmmQq^W_UA z$QPMj^bDpD%hVe)&@1);p)ZWldnjm{v_j3scr7O)c&1Cz2OS=eH0TG{#`Vg^_qxF$ z70BWf=`lT;IDziZ+wER2jFfyYm9i7YzM7ImwP zqU&eu~9~TiU=E2UWuD`$EA7! z?_9fhXyVl|#?euLsK2E8`4ql|f#7ijN`^)v?({$4H4L=_&6adoIAgOEigl znRMqvoRtfbxTCQ?#^kSZ)A)};v9f2`@D#^R{|g%dkdX>w+(H>gE=d@Dz^rm3EjOJR zTE>3;2dZ;3U`kyMQJ0QSRBo%Xqfh{prU4)gBl2=ecU?O7Qn^h1__vNm&IW0|NA5w# zS}J!@nJ?oqCPL+%c--TWD-UkXdk`W(rQbh@y`}!|;(&|lgd>(!x}>*441s3=e@G7Q z)j(8jn=lsURRr8D&$hv!=%XPbeWR6G2d7_a^)T@4GZJm7{%;uTjr!5G@QH$PThQqt zYB6s1d-%Wjix=lUEJuEi&3gQ1h?Y4h(_g{9O*X`)zfA9M*zyeg3FJ*5Y^ZA_1a?PA z9~k2fN_9d3(S{i6TnB3Z2%qWFbmM)5g{2QSRN?|eE!Tj&$%V+fNyc{WBGN|~kw=m1 z_ajKkX8?KmQrH4nwUZ&z#~7(K(2N(z=~#uNk2Ml#Xcd7v0O$Si4U}0aQ%)jZaJo99 zyS)d}%#0rPBW(B7n*tdF>?7HzaVr#Rvk;wiqW8X6T2Ml`~ zi|msb1zk{?*;^>GKgxLjK^(teZ~a`6eJXR54`LUkkXh$Yq(RW%bB)E&{H`uII?rEE}$a#%{39W?c-Y2Z^I zY8Rr|dqhWZM_3enKGIS2N7!Xiv~#0qOp^a!;=oY&+{@5>t?G0_i#-Xkp3Y$cn|K1@ za+KE5FO*xLCPY+(Buc5r4ker<|95V2?fNsOSP~!chO{>o2$6IF84>Y|%-V^GlUyV# zeGKofj(3ugboMj&e{=jvk)-_ZjxTQu2JMJ*GMSW+f#E2mq`C(H_(Nt*hDRnXLsSue zy3GB^_m@k%o_v41w3g&M@6zUw?}AI~Oum0y+9>k<>(c)77JL_7+RKy{Vd&Ts9(xZy zpP|0^0HvCQW>^`WUswdI%5#HRTNlJ%EI7*@t4fXab09*s&kV^sWC!lpj zR5jG$lcpdR*?z*%86u*(q3XZwge1I0Lh2bR8JfsDA>aW|$h{pAi|@`Y$ie!C`s;Ov z^(a9(`qYh;Ym z45qWADk|4Rc1<$8dbWZp?)4m6rKeltK6%{Qh~OJI*hcUOcG1ls1W#d)Lhvwl&FfWX zGlHkGCmO*{Wfg~iLhyJFjzjP$c8y%B#*1rzMWsR&Y!-;1n^})ZxaS4@@1Z&_kqanU z^8<0Tk-J20cn7|l193Zm6A8o@(I(*k0QoAv1^gV0v4%^OY3&34i^o9=px=mvVVYcv zxsFKqg_z3%{?4BOP#weuELv(8H;D}8;y|LQ5|v=@ZKE>Ye~ z5|;8zF=9#}_#0{cF{o!RMb!C{n&k9AuX zy$7mR#LPf20rX~|mAZ71vkGxW%nro9kIt5|U;s$N%E>J#<{JaC(+_F#Y>?)clSfhJ z+!P4ikDiV)=T4CBAu{L9tnDZ|jEvL=W!3&1(6m4`>gTVmjvnYp1oclHn*3k-r^fPs z^-o@BL>spMtuxZJt9M44cJ4r4sdRoCr|Mx$cM zmk|ECOOxahmv*$=HL2Fp|1$a+c@BW{m%_cS=?4@L2`KNHHlsOl2zO2Dap`{*)kYQ+ zVpvx^;6iB*vN&`vvPS-d;kaQ0f3zF`ku*!5D8)s&8aU2V*tb&g}@j-=**%u1E4^a;S*zZhVQ0siG-P z1_1IB!9E}X%j7T--OIQIWk|#iKsfCYoBli#6Qf}^_3*-MIt6`Z^l)~t||@A z(JhjAY)3#`v6~xm7Z4lDdd~P8K7)vr7xp)Im*C=}3+o0mOA4 z>PHfj{!=9=G*3+>DGNbc=F&wEByxcojlP7^A-Cf35D|YRz8*;AVs+;+hxh^r2R&ll z0AhXu?&6aA@r2T^evJS}ZHtBujp} zHtmtA+e+bnrgjSh9@Mo5Dw$cNO)LV=3{e)%yet26>p&NkXbdm0o za$BS>B}k6H@hF2K&s_yFzBWFdu*}~Ci$u!ek6j3rgrwpYspANe<8S!AhKS})MCFi{ zEykfl5MFoMczmmOsaik85MS1TgbW1MfH9uF4x-Yh+>Y}@o7EodsmW#tZbzgO*TYBX zt8EDdD7v_s{g88h!+#pXd@XDuEk$6+Jy0YmM4x!qz!<~-FB&-o@46Cr4N~SvEHL~J zB8v$4(Um|h$EAU_(vc>EQcw~Ulj5%WK<3b=sB-l;tY}DuUg%4pfx2sAWgRnCY{S}OnPZdFvdZ=L^f^;6ifff!) zHfQ<*V(qK;;(mlo1ufg9>p3rfQowGWLiJ46{d+UO1Jp3Q8Y7(Sh(~W?Xgw4@atXfR zWw%J7YAE?8zFnd>k~Q}b_0@FzzXG6g86N9kG&i{fUnsL%rchImb!n5|9;I^5X|?2D zK#mdvB~6k`(%!t@?Y5hx@NRcH?bO@T)wh45BlrQBe>@J>nb<^K+O4-2s#r8=mXnBV ztOUcl=r+myTHu8e^hxViAgX$eLe~S4SRq-6dQDQdqlP3tg14^qnrio7!|`Fr=E-zu zA#wW$aF-+zCbS+EkG7&kd~PB#Ij2GJ0d&kJ>*Q=%dU0`>;7l9&mBMwO9 z42^&9adfCC_7|amev9;^RCsZpGa@$F4-J8W#|(8IqW9K|AdODl@|1oT*!y?v+T@H& z-SUfmuiD#q6Z8qGa}Z2>#l33~eNt-Z7Kgs5E$CBHw+zyBKFg5Pq=4RA1ZqQh?%;Ep z7SQVtMQ<%~iVD_(sOTk2PO}1f|G{HOPDw!(tgX}vFy*u;s0MfZzTGI8oas?_k)R{5 zf_X-ZEnw!3kTbpfb;oj939Z-4jW_L2TjRR8d<>&WZlW2>W0{dKr~;1dXP7BVP9g0l zA@B^0QF$z~t}WBDO?3)7$=?w!TRAkDMSwgSA9Jgi4L&Ub%@>82a=Ce?dh!U=15(z+ zBZpXOF`CA-+^S}SDh1z-e$D8C%gI_y{H4mQ=4c1{ZB0I>8jNh3+pa8n)s*^zV~06Q;}Gza^e zxuZ>$z7<10MQ{XwV=kzCf)iSNN*_YTmvWG=%jL0~vB5|cD5G6?1>%9CyaLVb29c>4 z;?iM^ztNGFSD-)$v_=ST>C*7^&+rOV2}6E)1^OsWBjq^2ClO14(QXBbVYFL;n&D12 zf#e-{-0h*g3Ka0;<^ZMl8PHxJIxFW@pphrh-6I?12cUiK(l4t(ANRolZ4&Yi0A^cH z2v;yvpw6JPkTlS0xb({^P}2-2T`d9VL?B9+Bv*L_qS=r1xfQ4pHlR7)8vvR|ETp_< z@hZ^#hEC*n0`LHV%H{gp3N&6&^VI*Z7(O5zzjGa0F~nT>{}sb$ljFD5A~B6ZrR~cHG}?x62Q+s7 zuK|tMBJn@Xqr7PpS{5dTrn0UWcKVFfr`@Ut$&mEaIcrXfa8Y z5NDMBE-X>({$FDFJoQ4^#d$sAB*@F8=}-#MPonQQ(o>|y>}z^?`Zn%C8T0jwE@`Yjp< zQ!L7n0Od%A3>>S6*Gp8E8PYlgx7zrZ5c$+t%U<(DL4Msq%MB02+z55y>zfLlztGjl6|^W{ z0yJMycOh2_lC*Y_$by1ot zG1w*uUDwc%m~OpDR`pfYX@|-LkGtkS_RD$ z`0Vx?3N6=?)>x7slsd6W(jqCZrx`^TO6W2O$Dl_co4zETH_M2kjHC-9PNc`%AZ@+O zXuA18_eD5%ee=P-=`>jGG&$XLhlE);LJ@Nm_{Njjlhzp|eo$@J^q@rt5;A=LGQ8gm zklVIV{qiVP2K+i3S}k9g%YI9h?y4wz~ix0-_BkF&@sg9nghLd z^C@Dw0aGr($=O+pK#$Q0qpLAGXJcwjMGmdzG&HABic7MKQiRBBA+nf?nBX<;!IEe_ ztWlI-!hVm6rk`1v*1NPu4qNZqKVXc^yFqdgt(%=V=i@X)-jPJ=iD(slxvDY8z6IMG zRcQa2R@Yb1&)kTl%#NZFmsZ{7bP;0?fap01H2g($y@X^IRuA!&rNY`#d}XPyUKC#~ zD$EN}O*9MhLsY%Y!iJ$Xm9$OQe8^9iddQ|LJY>^_omFxu?gZtv(>XesBIA}v^uF+! zg^fbg#>~RTA-)n-SQz3fQH4!Hd?l)|C^Vsj=tUvA=0i5M9J8=E#8;#WOG11_s<1S~ zSELGCh4_k8Ve1fIkt%E(;ww^x?LvGts<1O*}O~hc#jfcF14a6pbtK^Ue>)@N$?Dh>2IDyoJFI8AW z;yiZ@#<-?YGGigWISuZazNWF}N;vwKq6IXKizhjKZ^gjZG(NZur75g^7$cfSE6ypa zVKsOX{Nusl6DkW*npQALjrfA8_)2L}Fouq_S$AWpRur;3vVb8tlv5NLP0?9G-G{-l zD9U^aKD7WHbu)kRZ^S=xAg;_6*SF~0r1ilj?9k;oaaKA5Ps0eR=9bkN^St6l?1{0y zOT=znWA-Fj6<>m|}JR%3MB#YOCCY~6zav$z?1N~|U= z;3;8GJL~8BAfN?%x?0WWfzpyaeXLrKz|$&mJ@g!6{fUAoZj-PHo-x)3L}|xbPqK<% zhk*9%nQGDeskj5@#|&%valkso(O5dqx(=VhEbbgl{;JL?Yk1?uvAglARH6{egpa^;! z`?&R-AD+QM>LH%7#+E_A5Y}zK)fZz*@i6Nc1RNA?e-V9U^tOm4xI$o`a`bX)#Nd5ody|hvP6};^?>#xG= zX5YA<@G=uU1by8y6+>L0ZyhS62y;nSgyE;2!Mv$u5>I0SbTnH1hDlP(WIcbOfBb5h zqUS7mmm^qrcSX#V zO6w<|AK&6245kufe`fX>ZNjlidBBc^2khr6Vik zlMc(#tV>5FmcTvq(a&(izKRh|2MPo#u-5)vFL4g!ic8e zp%hFH)Ut2DXfG|sUD|n)rweq!QqLQxpVKhA7}K+MUubT+c`0f5bZB1_?QcDGquZEz z0A}%a8T{>?FifrhbcvNK zh|V>8DHX+dEq)2nxP}m;Brg(~j%pHDH~}J_GD5kqDGs{(dO6hYM5;E`vgo?zWvXg{ zac^cq)bmE@Fl-V<*JjJr)gZgaTd0grNN$EQc=hh70V7`w{K-a{Z$FyXx_DHtf*zsPKK@A-0m zJAeXfe?b>^Cj#(7fL-COk4iV@;@ybrMOKmSOox}nRJ`(RH&gODW|>DL7fOIuU-l|O z%#l2MryJIqn-MXQcZ2p}EaB+Vb(oS&w;w_lx7#6k5k$AK%Xys+aZ*bFo{+o>iW+bw zAm)B-sI^Q$+!%8YvbPn}AG{iUelh6tnSR)#^9Z5!x|O<@9$GKDN6slnC*O8B(zDPA6~m@B zOn1v2TIx-Ig0?k{EYg&&o9hhYg_|aCsYqnX1-gZJcyvDa*6g z55Wqm4^}K?dI5za=Fely)C(xfnt_}xE9O;BjMW_DepxH_Bw4jF*q60tPgScY324Kf z8dhTx(3U;9)>IPEjy;Vn3>l)VJ$p*52k@S(tOI-6SxazDwXBSH-@01M$FJQPKfTwo@=asu7jsPdwN;j`vEq9J-scPqzz_I zAFCNj8_J%()&!C^oIU-lCrH{z_Vl;@B5C8tbE+m8& zi7_q4;4kDZ@(@QiA@x{CDR)%%BQHvR=Vc<@kkoTt8l;7tbp$8lD(P|Z2BOi5m^%#p z&}sHz1y^!`1+2S7fR4bvH3#$^T1C2R$-#P4lhhD)!65+7XuvxjfLut!w@8CM1`WOB z34=?Lu4g)uiz!dO(s@F+HFfaB>ks2Tdk$B#n3k0K?>Nyl2tm~g>zpFQsLV*Z%BgE& zOioA0TFbdk7dxHMSyXbjbLe`nZS1%Z!pKE_PPUQ5YdZZe+`1FLO^(twz&GwM7AmltE^>d`o0 zQCBYt*EhqzF4tpstVOpoW36xbNe3NbtwwkTEzHny@?iwN?#8v5cN^#v#oX|s0cb@4 z3JF^DUmyYcY+tOEB6y$=B93QtEI)%5-EIt8be%KSI*4b`qN^^k7Tq(9Ww$zv za_N?>SHOQ^ecC-Y(f2(w2hMAt35ZMYGqGNbHm$ix1XtNTQt75H0b zD4%#Ajx~~8zu^Fu90%_t7^B9uP-fT&gc(V3K{}^y#F(8ykt^_c$c0F{;Vo&8gNsm? zMY4BB~_~lypE>5BuS&<8H-dqw@ zhA>H~2xItx&|0O{QS_YTX0I($ccXgWyLMeh~ey%&A`^lV*3>Y>!Rregqn?`P1mfCp%*tp(-RQx*KY)Z7Tsc~M=$f}lE-a) ziuyX5oY7T>0EGoDy7m&w&#`7GwiaXuEjrB@pbG)aONYocFXm7|i%ua2C@g5vx$^)W z5y!-loS(xP%b`Jwj;IIupF`09l#!c`#l$)xba*$`qNB4xi%!qPS`#n?1T8vy70V%q zWUpRQjFHib+Tl;*aG+O`OUN}$sc{C)X82hA5e$s+E9mkf9wMFC%qY1OXQ|}^(C+Z) z)R9PPfZYDYT3H!q<;^Tej&Rg0J{+A0$(QgHiC*xS1ms`enmtZMhn9o#$a>*eBSZHCqJM(5Yl2#>X6`K=-(k zLlk|CS|ihftIM0XpBbhCJj-PeO*f#H$n;9oZ(2svF>B$=NTwVpF`9l#ol_>)uXaY$ zD(GKib@p{NnkG|@)Cf{z?qj6yrfljMs6k!OaR@)-MxZ;+rWL5etQ$qSgDEQKPS7HC z0#q!q78PEQTd971Oub|&LegL#mevDXaEubpphe{ypr-qZjHqSsyPmQGd+`zDbQEma zo>VFRfJ>HDtAT9EK-hKnV7s?*OT2iXYxGCtuO)p zW{k&zRMK;*LlY(FXUzffs9c56ix*#)3t-D;3mtlI_#)&r-4L+}oXI<}nr$oqKZ@-;h937S~M)f zGm$)nG|3Q^s-V%D7s25jQcv!kj8S}8Hi47h-%jq<Wd#~bXK>7$22yNg+zh&R{Jjd@=Bd3bfsX!)N^~;b+;=5CCz0vVAGE+xV35tP@Q6$tgOxh?AY&5F z{-$Ju%IAYcG+jvg6&N{kq66Fm@Q4-|+0<%$I174?_!9R&)Eez+HF)q$q3)Bh)IU#d z115xAi_@$!o{kq6Yx+7FMRe^4^{z{(n_a4?)S>}&TmmUj4VOO`M-p3ZEZ&+&EVWof zrPK8R+5W#E(ewe)13<{%@bJD3%E|7Isao=Elyu~qRk;{mL!F9zGmqR-p`>%?;N4&3 z`ypLTenJm#hOqqP?5?@CK3{=|{;CA80T61`#KX%@eMGz(!4G|dSH7@Y!$c7>DiaS; ziLNJ@BjNN;@4Dq!#^p$N6U;?d(sL3uosT@zJp)wdq4a^34El%*Jd?#vbY~$zEYT5gy#= z1)s~+)#2KRXdBlA;rfPQ)EtMJ-w1)Xf_X6vFjVR8apFY^`PaBDarX?PG;}EW*C6nH zaK6jj$QHUu_BCQO|APl-%W0%mMAOx=ixeJ#E-Ea19>Oak$S8Ef-vu7!hrR8@M^!9!G{+wtZ`IJr^~Q#<$Kd1Kkcy{ktq=aL=d zqj9X|HYY04jd%0?aCY3j`ycn#FX4`+&*%OKX0yWeXe+N7C>t~dPOjHhLci!v12dK3{=~z7OiHMX32O9_2dr$18`>_my;$9fCSw(tR86 z@=VS1>u@l_Z`7kT8k)y&@-%5ropjKmyEg%XN7EgipGY`eI%DCd;7g{15_L8w@#URZ zo>WG6#;h;{Ao(F4-u*LX`36-XIr{)Ew|!Qh5g)rReWsyO8@9%z~o7*Y4Ap=STmb-9yOzqjoQ81^0h!;+^~)G0nul9Q}I*7BHR! z{Gr`R#Plb-Me&IG#fFHEmeIslJfb0K7boM03BPE%yZANSM#NMn-INF}tLRBJ%j@&x z1YMsg(H~)cmjXDQdWs_EsB`qVfQN`aiEg1W2y%iekh+hW{h^a;D-)^LpmAZWP#w$1 zff+(|_Qru|`b6_WaGMX~ab>NnNj*5e&zwP3u_jkbCG}7mP4#aNxQq|n*y|%GxhEus zHdTBVR8CrGQypCmDTd^HDZYXI7fci}N4-doqj-quKnoPz4G@@u2NyDposs9Bmx3;= zh-$=DWf^WNfnFabiqInZXbE=R;WFCe;qi%T1bLx4`U2QPV4?^lqO(x9C&Fbe#Dn3~ z{-7(SEhnmQ-Ht{-E7lU`;c!fH&5>xAdr~#V4>@}X^ZF&2q5lH&PMXFHft-_sITwyW zT$tJH;ye=3rI7P4VXSG6KDuewGVv+^L1tAqob(jY$PQ7D!W&;2z7%rWPW>%WvkvE71iWdW!HB7%ixx;65!H?ne~o ze~81qIC@#b-BE`cu859AySNCP5i#A#0BRSa8u50;3OohDRbiqCB%-&YTGxZuXzjwi zS|6c|+EnZDrCiYd#6qJN?4dAG#1Yj94-rj&XLuc4#%*|b6#)GeCb5wQS9N%XlBYmd zU6QcmZ`_53y&EQq*rR69V-X%Anm&?u050P=9xQU;P&mq~E^+;_5{n7g-@`-^T0|Fv z?{Bya-;6LmQH>xsV{uUd!KpA&1QOBo|AaN+HHus~Rf(`@2phcwr(|LGfQcfsSTCQ& z6aN4_5a0jWJ7 zAM}E$)%|5!{^io7eFyyaz)Z=*_KVrcCWexmaS9n`WE$=l2WHVOMfwFTvS8P0Z2CFT z7>{ENF}wJ$1&{wA2(N?b2uvEGN*t8uNOZIcOp=UF#Le9VnA#m3{S!WcPA4BV?Zlv)y?o!r{BaWDtM-EBSj~$v@BKr-dzQ zdp$n3j_lx_+XNB#9qP2E<$o;%?swvN(}`4WS}{8;@4F(QEn#YXi80V@QJ3}#eu4ix z3ghxdiE7dgnQ<^4M{+o4kC*CA!Do_Xy!^ISbS^Ut`MH)?X2j7g4+s}x|%D`hlv ztHJP9jtr{v(82r#>t@*#RyU_uD5sna^#J92YufX9367Y1bjr^;86Y>UyD6+#<{=Me zz|^9RKQp^F70c)Fe?nojGiX*%r#+yoTkuckFtu*13S5oswP=@1;9m$cMMRdwFE<$}gNiPi{1Aq&@|Rh?^Uh7s<4T zXhs#$=4mqRAezxNXa_Nwb_~s!G}^}AD5>wy09*0Y>qiJPxe{$KPaTb&5Hls2F3(RL zF?NbDQ|r??NJ#QYn5zTKq4-vksnB zF#gxz`5BHc$a4ao&6rEBf|=ZS9{#{hevhEHA*}Haa5Vmt9zJ+$hn%!iM}_oXIYP)z z+`mk?K-v-p1H>T5gSvRm>0o|@F!1}PooyA+Jxov0tjG}_GtVKOVWKey&~8S=MbYfg z5E6=w$$1*F=7UxN6#pATD3F5y7UG25k4%U}7Br`Pc-M)v+`(uRNL$10BUwC zPO!s>8z}8DD6=~yCEi@~c%M5Z<$$^7Oe@ZX0-90Hyw4Fb4^T5Dz1DmPqDj>-2pIz7 zr)kz=I2OTlqD70#A|D4!gk?ndTOf1?$d3@7mM?F^@g~d-o#8nHSbi5c{zS;H6gmK& zs%U-r1K}uKj(g28^efnfBxE`&$*zE)D$$oC{rf?95vZqOy3kz8MVYR{Ne6wDtMYwF z1y8WjXvN?ne6GWV2A5^&6@-{Z^Ffy!SdEBDOxHz-ndXFPEAX{E7@iyYX{y*3zSb~Z zXe#eAD%asg5Q;Kt#@q}cG`k-U_&69bjn+*rG~z8pMz~$T@v_NJ3#c^!u7dH?l4=he zyJ6C3-S096U56Lh=1f2B1AGVMhcLV!kVac-F4A@#E=zD_2Jf!$8wlUm@Q`RClxb43Gx$!C*}{~c%MAPY~tn@UTTR> zrRa{_m?M~Zu&m%8jnEn(XT$jW!P6Ozj^ybC&kQ)G!O$;_*2Hby=Hoizn1vIDF-DFGG;ZjlYn)v4e5qBHzOK7bT@!Kt6p~d!4zz4%Lrv<)?G+c+5qOSu< z#6ipaTYz2&lScc1BVD~bhoe{Mbc&z$`?dqQ4F-8eyL97RyzB70__IF$T>!iV>@gTW z?cV(k$FDGHw9)NyNY~-9{*d8c1wiWUQY6Fpx4}~aM=^Oe5i1;HVEWLD50~9=9j=_H z6Eeb2?><%mx`KGmz_S~UUF3NWp3`ugg6VvnlMb4y(60|IKHWg+Iy4PUYOPVxPit3m z9qK+z8ZDYnMk7xSYj}q-;G-&B9=3TvEM!cnC#@x1QSKaU`BbFshD|0GtTJ)zL*t z*Wt2IbzHdAsg8F5z8;3Fql+|LM_6@yXo*uD_XGU`3|Gg;hB$h74#)3S$Fo3w1>;o5 z-7emBxOE}qRL7VN7+GMrIyQtOABL-=%OPEd$LdtaK|l^5R;rG-z_E}#R2?6OVxrRwP_MSn-KM#Ftw*UZLhSED-2?2ukC>$HMVDd84kxZ-b+OD*OHRbuUUiKb|P0d(E z>lvdA4_=qoyA}~uqlHjB4p$6-O${ZAKq8txbW2UbBo!IHVGM=Shj%Gm#$Dmz<;(kO zgntxoe|Es8#YYsOMKpc?mzEsHYj~8)t45H>1E%;0_NOpW1QM<3h>lo^@#z8B_(f<7 z3)o16ejw>RFzqYIYeZ{0GE@hl^BioRhy4Vh{K}Z18Jnc248uEsGBusHng+w)pTcOn zNT%|R>?Zi{pfK7Ml&QtEEBGP&$6*C9akjtBtkivRHBKS z@l|)2TF>AGpOI9Hb`yHQ--W_x^V3Kwp`@>de>sIw(v74pl*~8af0e>0=|<8(3Jc=h zNC4()NuL;&^w*(8c+!uDCB6NXNuT5;eM)%JKa_N&^ekjmMRt1CG?^8zP?Ho-W`!#> zCgqY@(F$$It+z}l+i*apIchFV{`vJ<`ZoR#4Y-HlYl3z7+kutnkHActDA#O5GlQ|R zBK`AM%`)w&M}H`WHyjg*()8X868dc>IA~VRuR-vqWK{?xD)pss>Vax@MB~7}rzO+H zjGEoFCzt=w>!f@g+c4;3=m3~W=Zli>!E2kqBz~15X8ee|k7Rn~;hfk}g0>0t`VgCB zA-tdovnHh53PxWbkfl#K=)YZ@@pT%@~5SB13~x^y&$==W$s% z&^jO<`G&6H)5oW+#gYyt`r7`2FXH@!Qwj^AyYpK;6^&X>!C&|minE0nJ^1U1Dfpk* z`KhRR3y)%JRCTh4!&7Bzf5=knquvE?+1zYAb16t|GEN@C;tBpGFy?e*fh3Ilytjwh zVyyTTe;fk;j!Q8&Q$|M8SI*UaLE^#}a_@oE(>G%2=|au+ZHSUS^#{NP3Ho*d|jCG0a*nDWaI%iGL$(m%6^l5aYoy9mc%F zO*5v|FGAQJwR)(8WO}>gk~#Wf=6+61s(?)>h}#MBZi3uL`B41v0x-Xz&c|u$>!7^j z3J~e^%|11-AdOVl&?9OJ?tK&F514-l%7SulMY*eY)JNZ9_H3Z0!e}K~i`-c~kqIYM z^GK8-NKG##7vJ?3xIb2T_u=bpXm|84JotEktK`fvVE#;P*@2lOl%5RAd{4km$_X7w z+)+sRQf-dME+go7xfqdKItmH-UcI|tipLQ8oJ-M+El>RfvLTfzzJ2Me98Ak~FzVE=+HK`x+uzA;O;jS!I#nC7P z=-m{67OohFoFUbn8Bh`Aejp7YGG}pflQOBHRO(r5b|B|xg0$2nb4ujQGSakr7XVA7 z3cWAI-2gm!DTsJAviWQ@H-*1E%)qzxD44#rd+JKGX#RS80J}-`PcIZ8O6WI$(Au?X zT3ExacOY8qm~6)6Bpo!FjC^C7&gO^fdtErK&s=( z@I@*p{Egw%=~#ex0Cv$sq|;wrsX?t~QH|AT{IlWW7qRH|(CngzNRO%qaYL+Un|tUb zQoXZBiZdRX(?AcQ#VwcWwiLkqFy-mvd{4iAl9B9qUEo%5#8NV zeX|$RKx+Y`8_9l@wrEMO>D5-LWDk627PLto-4ha)oh@r(15Z65)vmfiECO`hm2i=| zI2ke@lj;eyf4LoqCtQ^1$h2pq%7b3=6@Kn5l62y^SJu!|QknaqNIqcguL9+K($MdvNyhm=wY2 z95_scsuNRcsL9;`r~_h=2ME@>R7_h#g`Pr;-GLb9p(v-rBP%o1FZd>hoB_lV4@HqV zs9UJW*BELNx@mbg5Zhdo9@YZ%$AW63q3SL|izmL90XXJ@Bp0m)?Kjlw77pkv0Ka%3 zuJIal)KGIUFtMaawEZL)odeuxHRzO~YG6*mpauXm^FW+U8kB0PSF1Uo-T(~qK$KM? zK>rk{nwaXQK~D3>n>T!^#);0M<8!IwwmS`e6KMAmoqN!p^jC7KgQ+C$&~vBpJZJ|z zeogOgD%!K*ZsHVZpLzW056wpW!*Y$<$g{xm1bFaeQ~8QyjEsoDi~xqyF4DIWcxZtt z2ahn7v0Yb=nw*g7J5;N6zPO2y$c9R5k*l^Kt!-mtbl+Df+&gwL9l=Yuw%gj zRxH>+`QP_!Ng(+B|MTDHIXh=&-gBnz^w}%=kHPQbQvU?TZ*{+5Eir019uqyV z)0tM}XNk@J^$SWRsu||+`BSBPO09Ib-s zVVKM6I033p;D7Q$JrTd)Sfx4CFpptyEP?6K7^j1ritqT3H_R)WW5)%usuKM2=zzi2RSX%zid+X z8D`!J7nF>VZbgt&08W!Cpks#lX@T3u6#>xw0+7>Ju}W(Z0{_A=&wTC1ZY-d)eYoGX zxyYXk^OuS)as^OpFF?8=EodIT+XX!Xz(F5W`WiU_M+MEjAG(P-0o0E^Qc|2TU_0tx zyPz3~?IdgvqS*jBsde&=|7&da3YzJd|46=72cV%3a-i7coim!?=$9(IS+G?OS`bg2~WV+~_8)5GM!bR={>XY)w zvXxO}?usz8G5wQ*`UCjr*b8!@OwI~?LxlN9Cl_87&_?CqT7)29j4*d%&@76(12ytO z5 zp*JrfSf&6au#Kj9&GW9zH^86!4;eRzmrV273U2-;V@07ZsLV^^XR`acND%KLJc~NqeUqSD$ia+5$iL5;Bq$KD^3enf#Wg zBxM%x%P%1#^^p%(X1rzo+0{+YX5jZUsAbIV0r)SLxe)6)>L6f8e5Fi`7V%0l z0Ou@o+Cxf{V15MPH&34yF@9?U8tOh2L<`zjU@Qud@~*@FtOFkE1U9IzX5BaK9&Xk^Lgg2;0qw zM}d0UN0!Ml(K$BK?127FqVP6QpZiF5=5FY(FtRfv&AZUE3-T;bHgd?x+%lmHa&@HH zZHaW6nel!v1{7=>Mt=BR0I2FwNOb{|u{79q$XQD#L<nF}qqvE2^G9Srg zxuEN9bMS5#^cVmy`XFDO+rf&?`)u>drubG|d%X1@0{Yi~z@>hF@%`i+; zMGiU*of+601O1nXmT`-Y4^vOkBY*uJ`@8i4?LasecrF!!EI!7i*2In;VqBkpf;JP; ztp6gWShD>U-xg6=qQ3nL6X*xh0xiDBrd>V?>Qplzl?X9rnLs?zGdo(fw(=p_seuZel)TSLjanXYB@J?zVf0`J6pn%;)VDV(zhD z6!Qi9BQamH{}FSqorV!nFy$4yiJ1HB{$lR8=ZN{LeXp1Y>}_HmwBHr;HTzdFU$+yk zp!^$l12NyUyNG$nzREQhiFw$5*fn1f^DX;?YwA5I|F&JxHCu`Kjy=RR7s70iVyomw zg^54p!kHHdJKM`+xk5DoyGX8;sUTHmJ7vcIAKi$|C6o`jfCH{5uUIn;!bbAaH z`@(Cm=dIP9x*R@zqMtgAV{34o<@>bgfe}tx-_Vwt*nB`BOX0JUzNw6DWeKpv%(?+# zJO<|{eL=@-m}#Cw`u4;5ZO=<(m5Pouo1;TiU&HTb-#@^%(2*ZwR!@ZL2qZNQ0-FNvFdyRsU^>w6jj;<8v&?3`JM`#~-Ev>AI@$30kLq zcNE}wOe{RJw`1`}Wi*MN0?VZE3G50L)ncb<-|!gtX0^DZ+TycKxTnw}uJ?G;^qMRiuak!inIR17VLH6C_k4uVq5Dl({!{n!Pzv35?MH3^w;l8hDA4iJ zx)JXg@U~wbfaLs}&hBNoT5}uX_ex}F$}IGjszT?e?9XR|$-FEo8J*MwS~4%o|MGc6 zCk%(cKb(HHmHnYueO;HUQTTwYl;O=(H-S=;66oV&ZC@m9Na4r*?aEQ5C_K&&Is8)sdt2Fl#=i&JlYzR)|J zMQ9aa{}h`p9MU9LhU8+3%i|rSTubN9hlMTn^}C@TF7-T+md=@%)l-@0U&1wCi1qQj z6oF10(ko!o+#0IP84FN$0L>wYOxZvN zHum0!7UEy~AYO}J)Z-|dHgeJ^o)a>MV0x=Q#B91T=p{q}c<03}`uh z(T zMgd|S0V(%~l-c|Nr`%6n=c-%uTo4cPcY00GdzEH;jt-2IQ%Kf-9zr*nY zDtO)pNx3sa+;aa~nKq8#(B*xC`29P#+*hiK9Ad@O-6{8Pm3bpt0y+dy0#4SYOS%83 z%!DE*Ypc*pzN06~oO1s~ng4EeMAN0*e^=)2{Z61gJOQWNS!PRZe=XQBDn0LAd@So&S7Q9 zi*on$SUktvDJppAHtUTOqGmz#;`<Z*>8$@m3>0Y(KbIm9;`gZjvGXCtX)maadrza z$J-@hPO#^TImNzL%&GQEVotX|7xQXcA58ffcCMJS>>@F*v9A#GT6?gVbM5J3F0^kF z^9K8VF>kbYiFuR#x|lcHC&awfjvPY0OY9^u@38Y>w)q&tMrGfuqPZSgn+FE%r7Fbf zUAp`+@or`IuC8lFbu|4Td_)S5HsG|{JS=A4szR(M@${_Cvx4?o72=EOh#yquhcDu& z6@0J0KwQzP)jqcY0j^e|4XC4yVOX08V@uw(o-b1gE zh>@0l{2zSCPuI=Oc&8bc4}7oM9HrPxREYg%ZJr6V?^Gd9(`)ncw7peXOhKGKO>Or? zA6<*htz-X#ERiEwxsB3g{UnrlJ;sGi<5S?_oQ%vZNR?J7#J}LlElQ{dAFJ+c8o?!K`jB=qSI00BZvCRL zZqx5w93HVRAF69rx>an85aKySze^42Q(vpvA@OQZ1vm_R@ef@K8tgt2CRq#MVqBer z*co*&gV&9|J+NMEbityPWla7E7d4Dw$o!nkPrj?564wofrO3w%=goMyrKZitZakKax&oP>FhIA}ldxydnlMB+ zdn<%q1uprZz?aPQi~{b5Aw-;S~ICSLrMsTq~(|g{_w$i>vjte@A%1YQ3CghiU`uL~$Q! z*Aa8H-C4{rb_vYFjqEQ(CvxP&4>y@G128{kb(8npU95#GR z2V-61#=0^dzGn3~fOqQVy*NTo48Hjq$!yU>2si;G!D!dC3?d49abWKs9~ULK0$_@K zT-R|Ccq`v9A9@0+q%?cOuf+3r-U)vg>=&CBPi*1X9NcsQ_7de~A45*&-BOX6xEdea zov0-?i{EePg10B3#^f!j$jZ{H>s#2jY98MS#*@(1Dm_Nm5?jP4!4Ug4tU)HWjNbx- zcDtGd#oH>+BKC3Yl_a)K*aYJT`W-9QwY(jbS>;=4(eP`NaMs3^jk>VcX$C!Q6KcQ^ z`?*))-!9<~7_{G`+P?vZ&S`u%+r^-*iLKtqE^L6g#iPi}>P_Mom7p|23KN0q&0_c- zTa}NZ!K&WUT!u_mw?oNlP~bM;)N+Cy|JLTaC@i%VetUfXRX%7oTa)UYlHU0vpsk_n zdjNgm10SLy2h%y}W<*OcXW<`F&kKyoG+B(Oez|!DC!|#d{Hpr?6wz|eK7$MNz0D!N z1vH6bOZfNlG15!!L=)yz(cH6tBWZ)o*)Rk>0m$ooH1k3c4YdT8m{(%KS%516dc+5^ zzPrF(uOa;5W_P@j0(=3WeI8KDorpUd)km4FP{EnGik}_*lHQvb`vIdyXw}D<*W!&5 zmFM82*LO1jU(UhTajK6uEBzACBx)J(s_1)HKEiUEXl8zitZ4-2V$aK|;JH;JP{LEp zLbSoXP~xgT{KtA2XD^iQTJ9P2KGmn2YyNbB3jw;nJg}@t9HLx(mU$F!x9Hvp_-SPfpad~g3{*5a=~C9*gE6wqqaiseYze&;Os8WonJ!?Ig0R9eokq-j;L*74f} zG>2K+qVI(kyVvvBV%eEb51WI|tf%vt2>Z@9;CJP}0pYl+!?11!N3G4l@#tqWb_Ane zglz36GYu_cXE2GQHd$EW1V_vM>ji+ao{v83>wl??{+IJvHy!&(V+Qm%a2hsaX0{8Tg}vW%w zF#cX3&0AxJ2)`pBRnHGZlIR6;C;ST25cKQAC&puotfjFB`PGw?FTE;d(|;35@U`eOKZAm))7 z%;x#fjia$2AkfQ%W0dN~{IkOz^K zBx!BahoJK^-%bg>iXNK{L=yxT^T7rqyW~XxQO<^p-b+?-GgPy`yIvW8c*C9i#oD~O0y2Si?rqVvAw27$4gB)pcnw;tnwN7V4q;k0$6dGmLIqgJC zH3p<31(-BNPH_>(Sr!R3PnTtp%3RV3%{0IL6J6I>U}pOg5@(8Oxm?x>-C)L{ITby3 z!gV!)Oo`JXN;ezNWzp=FOAu7O!swrXsF0L~Ws#;CJ3U?JNj>X*&ynU)jz=;5YWd0VwNACv7eW z-mgZCnW0rW8mLf$Qw@F5^fg0tUc`o(Jhbe($tb+2`cb^Y7lhdz3sE%VT=RO@;dNEU+8xeH zb+_L!*NGaNvG!MI)xVpL^G#6`GUmdWL*Z_D^q-s&y~y>yu><_4Wvm_S_{(NqRMP@3 zoW*O1ybLj-iVC>?W^>srs#(F;`}Z@0Y!W4EZ{f+^s$pT~(X z6*V(vG8G*-2;o`9zd}H|Hz`cNY0&0m;!U>dCj{)LTH;pF;}|m4PY%S%;7HFHoP-&C zr9k@4A0zo&pl&-TP&f)1cbWKA4VWJzM(QBkk9dBnIRQ;LoUET6sDC4RVHFXBIa2)w z0dxBSd}#tmbq)``1=O_>G+(d!If44u2zul_N~>QOFo%vq7X=XhkODd9qazM3fqzlJ z%&LlQ6v(U2@as;0iJaq)+guee43`U?W8rtT=kH9AA~vsrk`4j0a1!bzmD~ZqT^>kt z{JRFs9S^xm9*3X&9RUMzmGHt%{hk5y9Sp7{T}J@=luDQ`MNVtN5qJHpKw}O_R0MB@ z)W0%de*U@}c@tS550c0`A`z*~FATwU&2a;-2|yu1rFtXodJCF{1k7n2-4yfyVBkfX zMpD!8fO+&6SJMmt7F?uhF7`g_UllMbuE$CXBYrOc>pf8Ed?4;7EdR3O(Bhe|a}HgP zWkyz?UyI9BAL%ektIxb1Q20HR{X&HaP+wYoBBJ4EwZhT|Nc>b90eVoR?Q3VI7 ziU2RBNVcH8>hr+`)u%Zw>k*{J;4#TZ`_(4`U;eJb)GmhK9rTyT`PFCShuG{!oYhA7 zJ>~gdRDC|_i*FB6$squac%ahi(-r=rqhn1pC^`Wlp=KFxHHzK+vrcV_{ZbyG|mGl)Aqz@VE z^dY^5qHh`JxPOe6zux%L{^Vyg{#y2W z3ZoOz0D7I|X^eNgPEz>))k(^kyzHOmGj9r`2b596$*8AB`2VHGnI6CVoTKJ}GHR-| zFI6M_|5B3!u$CQO=BPPUM$Oe_)Cm8-)NrF!8$1q!@zZ*Jo2!pAkth8*wbj&G^#s;s ze#7FJN<{0D4GMG{1&{uCXqD-y7n^rt0-zeguc_zndfgm+6Y~<)4bCGxFL}XaKCI}b zRpf~jy{L&ZHWH1if|=ZxSOo8TeX&I)2v(NSM6B!M4Eu&)6em1PyxIZiiyqt=9Ilh- z>m$wGOo4h2zF&9C5(91aC`M%m?~6BQtb(jcokrK=XG$Zn!?$EZDV((VYPHt zzZ!b5-ddb2B5(it3NU$@9})8<24D@VCo(tU8{_eSGJ<0!PS@h;VpkXf-x|sM^oo5Y zJ_^#XrX2sMVFhnRBH~#i?RpyAYh_4;p2g^=VZ-<{#3y0nt6@QcMa&kov<(|2B$6M7 z`9Z_N#G2&$KL+>42@Kc{bVIC~B=#Y1bp@tr!Z7lme*^cT#M$KQqLFXd(FymKijeK( zgj*k1yAL{3}Rxq8mbH6{I;) z{2G~3knTjQACg^=;Y4K@GPhBxlcY1q#71dOGP03PjnbW{H$ZkY%5b9l9I~S@KXnnK z{y4Irux8pC@&l3V!dhuN$wwing|*WTkxxOE71m2zPJRTksjz_ z27JTx56Q2<&P8FB#mX-`~w{6hq<2q^}w7Z77DqQOUoMX9Lmr?G#pphg42%py$Z9zkBvpO4lY8Csu644-5KAWRA(U8c#{e&qxU27 zciS~`0ykl#3`q6QfHaKvZo*q(8TUcpQPoa2w8%~fJ`E32k@Nxh8pwJ4OLb}!jR$D@ zyo5#BCK{`=*5{F$I0Y)a(MQ8RWfM8TY4wTs`B=^V1z*8vnwUa~E3Kj!RSBz@TcBy2 zQ4|+g4yL$G7QP!DpFl+Mt&B_~vL3b3YP$qUuk4xb{i)D1O8 z6VsxZSQ>}cq4jCeTr90ZO^ab^C6lVzG1&wVV&1)?(=!s<8={w#jEvAxc7j zq6AvBPgDbOlRWf3eL704Cx=?R0R^4JGClM*QrM!i{V!_Ltk7*o0lPe&ZPfhGBz*F! zMb|Lv`Sqc$RpHakGNEl@=;&EkdW2J8xjA%{3i^ejkOxac2?_8SkWvXgt3oBs;4?6- z7A)&Ro$yAt7$niz5aQML7K0;scK3qFQR z7h{f7JYT8fa3cxhbiXc)JHa)KV3%cRy2vNCz&BJ{ed*}qv3f;UM`_|W^!r3q+L7mx8fQJOa{0?wZ}&WROXhozHJ%;z_WVaAC~(TZGQ#ZRo-4#~(9yW5*vFtP<%iID?{S)X-X^p&+LqSC=63K=xy~zZq*r7+)g~>2@yWwJJ;^mBLk)w+T@-K?2 zqcHt&WvF^ikKPZHs(3M?G`bEbvFBT;t)m=OJksv~Bu43@{zhp$qel;dNd=Ey=%4rx zdeGusPJ!@tg|nX^bytc$`NVMmewWzs)`b&ICRt0~i#NK}SSe^;#3+rImOKut{;d{@ z7w=}2^{RuGw|JH4;dPC&3NORK!B)Gae(?rJ8L7nYQxI0`fcRbQi}@w1=!X1H?T)p5 zHGKm9N!1if=+7T>nO({;7@ zIf!WTjW|Hn>bN9^S5qXRTH+eC_{FBv>hPvYY1YWQs3k}Ij$EA}xylX!WpBHg11|&a(P+Q$3QRfAnG9fUPTH?e!C}``vFTA-Uueg@D`aGO3tPwP@30|N>lB6?@ggMrFkoPt*gVGCq>C*hHBA7o?Xix=rVM-(5 zlxbq0Sm>Fr5;^SU?u-)!rzQ@j-!m$iBV=yal=`_f@hIN;RxhgTAQr?)7XvUi{1gMX z7>jqLVl3W@iLs95;FhjDn~6(`JZmUDAp+wTuC2#dNfr5=BF{JRtf9w_nae3>>_nW| zi?M!&+a{HPQUAmwEOTZzwt2DR>g=Yeli&vR>tUo=Tk(u>pN`89=toj49%)ap9>Ful zeL5~*Rl$&U6CfpR8dyA99_ovcVjE}Rs)d?8ha&~fz|{)PLaw%HA*0LKP)qdrZQ6<@ zHI$FBOq+IM$qDtMg7#v`3pJ*K4q~Yrnob2B#nL#m0Ni3~G4`cPZO=q!m4Bd>2 z4Q;x}q_KPGHd-zdOOH@^AS_+Qaz&`P05aXh(la#WaagVpORvz5tx(-dEWJbjOoC;A zSo(yn=nvRHv0NFlscnc@`i7cQ+fcFe3r(Q5;bQ3@dXm~kie*5E|CiflyjTW?x>DN& zu?*6Z|851_>=-t%Jew~SMut_|kaip3bzO2*ILBB#$lsW#X0Xci1E)8ZU=yY7+L)Sf z%CENztJCYG&ClPs3U}nzOUsyl2QiO0mj{kT}7auG1^H5ka#V0ycudc4O&k>*4P--<;Dn)YPBQbOuCt2E8 z7E5yIz}--toA?64Ow}G!c^%rS$8c_FI)W|ka0~Xv+GV~Dzv2O?nH}0&;=cbk@ExS5 zb*6DQ04@1g4XYfG?$9y7c-x<2BdufoG zYm7YOxo4Ong__nR_CI?W(@v#yCF1evZi%z7D@fu(5WLQ zXq}sj#XyvR>D(gt6XdUq?c65t!Ry$!^JUt`u-9{C+KI)|><@wI+&)+tFvwgU7>JVO zUZE3C*95jtu1q(vKxPmyox2CG1gv(Wj^OhG;Z?B2SZnYc#;Eb)g>14qJFSVoVZ7bB zr!xmRNIyOxa2UoGl|CBt>dt-jc$yUFJq-tv+ykZ3B~5WWz*`$mJx^ra={&~i&UlH# zb^epi6P030d8fm1PTqG1wonq~;wNu-ltxS%YUgn)BeYevOgr}q#4xXU3&eT3B)1bE znu=J?*5$?H%@8-xqwSHlK7lZ^nioYRba`lr*Byt*Jpp-rczHxb+%Et1&bXF8MJ&8e z;&dPWj7LkfF}dt~zaz_wCKm(RcmIIp9SHIEi6rjgHSmgGzEqOH>oCsvk^QfmT`6zjFn&)7gS+6R zlL;;H2uq-UAd3~3JL6?Gxf6dVVRDo>aktzJZ2{V)&IhFX<=*+lkxV}HEyUiG-j{po z<@`Up7KxZ6gHZ0Zm-=hT0krm==Sr{t%!OXr1sFufc8!Yt9PXht2k;LZ(Xs@hh4?4X zT|;561mO*P5JuOS0L7nB-(r^3B0pw$pLbXUzr!uY;sTMZEO9Z!UHyu&et_TbSPaBt ztO{@+KByV7d0++G#=|CPc4Ne(Td#OVB%bd1pFWO__r)V`L^Dy>V36Uq!v((v)P34UATc}MDljZapwdtNM?(MI__`2H}J;V!1 zieYKVPrnAIqXIqQyCz>lA8*sR++h2||FE6<|?#~DML(##jOfI7^nHR~$qm|afO4uD+W!xSpl9xOP89GeRjC3uinrE*|7ItOykjNKPP^hX zMFsl+_{;%h`2ccALpQ`LaWn>V-JaCtHRZJ|S91&I$=6Pv@RpY2JY?#A{4Z45rLcICqq>^n68qU6OZ|KC6x4}yNB$7^>FyvtbO%>9#KQmoW`@;sNHV)24citzS+luNIw8M62C7nZ7f*G-QpA+jxMX0laV*Ltm$Y_9`X zXK9I-XSC!7Xjyv~%BoXm-%AIlB^S`EVLUA*^pZ-P97SFC#!-5P@48L3tBb1xfvLTb z9Q*r?^jEC5W;3EZOn}mf*AXFnf`b$7!kPSlloDU)eEmVkCxn zJ8+CrGlCddDdP@op6NzwT+Im>t*{Mh7?vujHSqpW=1^l&5WlJN^_$Kac*IJ3cjV$ zAA7g0jAK9+8{-k5*2cp?wlPW&R$F5p;?U0MgqXKCs)6rdWWl$iQ6I-VI~hBWx1EiK zD3>lqEMzY;x+2`mjh^uBYK%qRb~7p=-?|%z5vv}?D#Z2*V-<3*rxAg4^)lW@=)H~k zD3LzKGVG&XY3K;6udx&5)z4UnSoJr?A?*WK+GFl_&2OH7A3^AI+y~OAS z{X>nP5$9n>EyQHF(G1TKhC-f11|H8PRPRr#+~4= zH|9d;LSr#96(;(W_*Si zE-~W4-)=mNQ0_2>pq?)^>O*#!k$|);H>RHmXm=VK^sg{l!R0Qa3hK{F<0$mpZ6u(K zRvDin4y%pvsQLF8KO+_Q8atrjK4T>E@P6YR;MW*8AP#Gd7}SAv#&@Vu>y5t1^9PJ~ z5UU4`E8y~w5kQGNYh~#$jmNY@9?Kwiv?@ z`c~s#=y}}ekDPqMH~{>U#@{HBZN?tBZ#O=G)KkVNeu2IP;%P?X?L#&FcP(?&Ds{Mo36 zy#2*^2|4hq@hP6a8CO968Dl5X^1Cq|x%!8(4t3^FEuVi`-Z$6jn`&dHxNm)F+Vg8@ z;0qo8_>=f{O_A`J?6+h`!SPs(#nWXet_$yZq*%O&5o7TTT8fp84mQT(0mc+@iLp+# zL0{Ev6dicVq?tIR$aC=9h;!Y@1alKQ%ZEYz$!Mwr-3Q~%Q7a+09u)X;G~9o}Lle)g z$V{~z9(#PxGxV%XNfo8;L(!>s;dk8k=lxx6zM6?dsBqL`l)z%d6<7YW@xUkzA=@A) zBw5#7pm=OorAEv~g#u6susT2ueIRvc*Q={WPRA{QxJG!#&N8NYtS;a_01mwnyj@Mc z8sO>?t5IwK1_U?{pj&((b!eek7(Yj5h8b}yv<8JASs|L?Ck0H3)KyhHLeGB#ra8fWIK0N?dNlBZfcU1KcfUp(tnGhtIK);`qX z0zL_eXU;VfHpOD*%E|*1+Z2fEFn22JVVo^U1^cv$tf9-MfA^Pnfq(TaLgmA6)-E*+tI;pPdj9#E%r+pz>WV(iyLJS4B}QA?geGAkpkHMc&6x4*6o>T90Z?DJX<8XsJi0tC^; zUs3c|DV$fpGL4oR9Op_xU}?hfxt7DLT!BT9@Gnc%yfTe9sj5=4=6jEkZ%5v_Iu+&x zffc|9*5Dx#e-$flTFwg$`YpI2fXSM9v#LO$v~$C7g6(EiLo8~zSY&lp%i$HRz&S|x zSFfC)ZxKl+=vxXXsO4OX20D;AzRan!n*G1PpDC`&a{PH%KhO~V2z{t#|D~$RS0{3K zvn$XG?*6r{YD0!h#cixaxxJOc8(o3v<^Agnn*9b zBJqOawq9dT~LHcM|CV&|S(zHsf1vCB7 zpMWj+dBo|72=Qg`D*;+csU5JK1oH(g8(=A1k2AWUI;_y10;N%bxmd;O9l+cI|M?)j zDJ)SB;0ilPuLVm#Fg-!h@pz%H_k;JiNH_83AeGXGaj6d2L%=^k1(~oM1oJA$3I7RS z!)b<(|Co~Se*xfoN-+F(4`QnkB;n5kGY3@Xz)7rCxzb9@LHV2bTWb4FiROJ z2~Er4?bN`c^8R&_9e-Yrl23{_E$vZNiC-L&M&CZF>hLlWEE6?YTJQ!EdP#l&BA#C% ziLrPCEuNnt30H#S$6)k7@sI@UA#?gUEW@=2Q?vtbDO|MFLwFvTgw>9zSRn&h6tjM$ zUyQ{sPsGzT`~$dJVDwISh{AL-mr$4u_w)l8)WhVxS&L#;OFW>Ew@BmZ8ny~?rV~tH z1s5k7SWEgffRfK+X>$} z#+r&mg!$E$Kj5fmPjdslbk@`yj9FHEuWD4FrJlm`DNNbwLWtiyv8cj|Bo~hdlE$y2 zg!vs6{$;U#Egt_Pn?!lsplb5@l+^YB|BHFg5}5acEUK_Z@i7Sxyf5hfo&p#62oL{* z#iF0RT}}3K=C976g1wvhYZLZv>SRSo=j>sn`W2FCHE+WSZ(VOA-FJ9(93a!-*Afq3 zne!GdHPhrReD^+RUTW5$#d)Wenl1QFr6r-!F_)S0Z1`V zE|F-Z>XqthrP?^}=ciDA8^u?a71zRBtD z=xrOL;297DSroHQ;h}{)qas&;o8ANu(ehvKJ0MBi3X$u?g{Ve+PyG&<=vu~H6ITss%CWb|AbS z9nY)i;o9K7AcWs@5XfQJq#6faHnMqBJ#92j=?3;1sl0Cj{k#klPk8uOaM@t=`krt! z885Vm!1kzdf)Yoc;kGqL=MxnP^g~G7c(!3-dI{B3etO^9?y@0A`^+ zgB<5Dzf_O}tDcRAuTD!PWXvH9z+pB5Sp;ceesleDaDgd!ly8{Qq+v2uCALOs(lVLK znRJAU(PGS_=wdu1B(@k@&TMQ71=hh$UazR34dnF-^FO<`63$!u0%yyY)>)yo+hfMMkW;Ga4=jY3S4E^sTP1q0 zifAZ$!!Ka?kPmR6z>|=;hWQ_QZRmdah3>OMxGF?tDobQ4pL^k=k1l5d~hLL3AJSlyaP|; z;U`NAqqEcY(f#m+?h6q8Pw4*5h3@>~|G#k3>&!ug{Q_fPR!v`_Q(>p*RZ1)D6upQR z6doG;sd}>0+EeXuEKqlXn!#mNS=4TsaIzBlsE7v|6ZB)_!RhnxkkHtVm3d34zLWhQIDIP~zMPgy$n{tcdI9D>kVTLdUWwdz7hK>IJOu6(8t>M9N5sFL zd+$+YgC9kF4J?RM#Pq29b^!4k>KK?~XI_UGP(JDr1OTc;d@mP=3pSX+={K4|4|Y8u z*MjP?iS%GfD{){t+sU`#&5y7raR@it*W__YZrFiy=5vUW&T(Dlqxf(IsNfD4&RNK{ zc-QkLdoe~EdjxRtz&e_z?Udsdxb`HpY;wU@oPyA*vp(XIE>aA&# zJGWtXq$Lt~dYcoqUTzH4eZP6h?u5v-1WB@gb8#qAj9HO8lI&OE{XD1=lbz}YhI_hz zAgPa06O&rJ0n-c6%c`D>L1co6Ol2lF?79s_a`!@n$(@GedivgX+yc{>+~zJ=lH1y~ zILQt3YeD*4P!=9iUH+?2W*R4AzoZU;1t5!JS}L87VwJo-Y?oc=Jp5|xp}}di=WHc{ z)55$^IRji^J{}S#t0D%Fg=qiizRGi#?mWyd-#kM1=RJ4!Z)pwCC*mtO>CQx<7qaDb z`0L+zAa?Zr>s4mDLoL(L(EkaOUvRQ0hJHU4SrM*+NBlg5)d&xX8@qgGywF9J8838E zg)&|U^O|g1fc37Pgrp{w3ckl4&JdU*K^8$;_%$SE8o0o9ct`+FBKcjMTj8WX>bd_{ z{3+NM?anTkdq5V&v{X79*bhAn^Qi9}ei(XBz^bRscf-51UMGn~MqcTVsF{&2Nlc}> z2~b@FDw={UDzyIP!-iE0Ko%ve9(ZUu z{J>7&C|Li3Z22$fq@Ajaamw2%h5V9^%wx=VQtHyuQAX`YQsQ~3yW;?4x_LAuURHH; z_*tGnr3L>Fnm492V?-Uzn^Kb5MR$}zz~+=%C}gBF6N7-d&=qKkhosYKT+c)R3MYMt z=U$rrJiRjGsHIY-B1U$TVa@?rl(2f>p@sQB(2K$8_u=7ZpkI5nR0@P|#>GLH+d&r5 z+KuWNJk6Cc`(V@G$3tY<9hZ?M{=>%jn+upffh?j?;m^R3&5eZXF$iQ2S9*8Yxu>&N z@gnkzZj;eUK@2~2-{m(VKg(S|?%M)epW)%D3}ZE#t~)?iaP$%$QT3gQ$bpSGLI&!4 ztOS2TJW?*a-3|K^P}81VLl2J$Ga9kD-xm$)RD|8n@c6Xz9g*eBmd<@eCXV4raa_RY z2ta#K5<9}jpK_vBmUCRf)2iAFk!JReCg)2Y6k8^~kOPgrCD)liX_eTwd)}DwPeA5R ztNPXr(8JDLXSY5HVUGjp?C7_Fd4d*p{qKP}3QFKW#nWPFCD39{({pDdIywg|=YaVe zq(yV$=m8^q&Px)7@)m;T1qJ9LLmMEiEC+ zAi1J^MPSCdxmu>S!@)c2oBSif0RRO?;!)aE>{Hwnz7cM9A9djD`uJ1#HCu#3e%!wJ z7L<%*lJTG`#$f$NRd2>k%zm(U1N9s=Oj9*0b8GzwtcO5J>}318D)EZBobBk=R4pq4 z+I4oj+1O630LmKbg1)RLX$f3+66m~+uIuhv$YIDx#>Q%yqh0sO7#9^xbuCV=V}FDD z;@yCboye420dGGg!w^<$&=q4wV5hv8`@3)8e!{aLNl2C?WZe^3ss?pRc^(?FW$!z% z?5(*yCH)oSsIn{0gLVXsehRCVj8A0XWkrGFKA^~=80fyNwj7UyB%6hG>+q;aTrMd8?Z!Np|e1>h#Hd!?*#Ugp0uvzaFq>R z(6zThya&7<1Nvc*&JI*z`tuJg37lnlLeW}x3caj~*WL^v&a#StD+KABcTEE`g%-}l zR)JXwN}5+jL&(>qxj%DVW=$xwmILLqHC|}pOJHkDTk`?b?q)b#it}P1ZH^}!TTb?Z zHYaB%@*ad=G}jkAF&wIL3&f2b6I<;F6UzmKb`WVpv1qO=c+jBFl@Ti5ycj}v0=5VO zV?icYSUs5tpYvp*hPBbZ0^;=3_|_CCmd&mQH+{~7+X0*iVY@pJpYCY^lDv5IS^T>V z=z_ek$_XPcbnYtr2Iwy!*=L~UXm%}Lpiw^O1v}g9UdxSUiN9zz*`8|UbB?D|p+946IWxWo%B}@T+wIBd`1;IbCB zyFdwC#`n}1vQKCJYUs78W-`1|_5lOZhr==)%n(}oz_J$1y|i!z|06K(fwFo(<|Oo^ zCerFf2LAcYOL^8Nw+II$IxXT{w1_zPvD9x1dnoiPS}aGdj|_Fhl+VSxddy|IsV@d3 zVLv_@4~ph0j)&KMF2=(z*CP)tL2|gV(-`D0c``Tw=!Rx^GT%h}$QOPQXt+0^mWQ^ zg5?)5r)jw#mdsbNjsc40$p}we_c>3IeN08_JRMOCY)g=SH!P#TjG*OKSeAmh9hCW$ z8woC3@E6NbzvrlY&d-zOdWz0@zzzs+2bp~JJiP96K7M74ymcP}`aaT($ z!sR#Ez6CXZ6_#lS@qZqm1TNqna#iA}0AHM=DU}=C0i9f~-2%*GpgOD~9uDzAA($ru zDN-lif&W_|lN(naM)x_*{h7zpb#74o0q7YJe$fp5JwJ4hi}oarrNkZdVv_k9${ZBS zn0QFMXTG!}B1+Cw3ZM5aSvstB=1^n@aOu8dHp zUn#^MaWw?)rjQJpJRwV)%rsTkJAJtfKn|Mr0`vk%22KBf`HL0~ni{`>rUxX0CQn0T z`C!*&j-fI}wFL0NAZPI8$=H{WaRyI!0=p0-1BNT##Aq2L0|rkvx}2;xV7LR&B_Nr& zJq2bP2)_hYzR*S|S1@s7g7bB~-g3l|&Ev;_eF&<@S0UELY1&)FxfM+vQrdaZCLL;; z4=Uvx^=5rNViXm#L#+y_T#y#cO$iT*&)d7=rX!^$%JN2(1aDqY! z+?Da5*jkv1ECH}Lf!vXa#)h8-k~2OXz_bHt3Eci^?goXohEhekeu`2&Su`G?v6SM* z&vGzJL6vwgsFN==nL-~VJq?-C13^y%w*#crW4yc&Fp(zseO;pTG5kLSNt6^WI-aM1 zGk9$3tM@p!1T?d$u4nPB=BrW-QdK}sxp`3B`EbPpUb#W2ghDL0%OKDhB;_^*%p_`v zpB7Ea}acKZ!gx@;Bk3gY~D-B z(Zh&I)Y~W&kgmg02TUzmxbxQ=OixfOPepk0u(~>ZO=BXe>hzw93+8@W zQeb%n%*(Vym9_9x#kX)h3Cha$v?i9$9($>}&bcYZIf0`jufz@QEfyk1Ml0_|jxL5* z_#L#TpahPNJRF7zh`WgqkwF|sL=Azd530oX+`~o4krnfsh}@Nc@ip%U$dw@JTRfQQ z3%I%Hzw&bdy%vPPIBM$ZmVGJb4OmQf)bt?0>p?PVItb=fkc^rS6s zW_Th&pYzAVs3k{MyS1bkGA%(ehW2D4%FCd}w5AMe%qZYTfMg8q$(X*3H=sl98Mex; zJ+}hB7$mjlNXn+H(}(cR^Bn&Vu<1B(=wrP@2d2 zvTp6kIfmB_B(&AJVoib z<8p|LsOshpmEB5ZJXWdmfaP!~8boC+$}5WvBWgDeb!5?Qxm?9E%H(*J&VyD@LCH1{ z;=s+=KTBMc&-HK}nELU^UfG7#nMWT$>^)F4&w<6bp_Fo&t|0z2CZm9YJQ$|)h}gdn zI>#_2rZrqieD25Pvdc)8#u$UhKb%CkqEd@+wpDHGEtSrK?psWT)xf(lApyjQ?& z7q~gM4^U@OR?EAsOm3cV-DPP4OSW2pmpLw4OX61ZCRe1C3%l`9mE&9Ak7zs&)Feb< z0!Zgp^j%=?1Z6(s%9@QKQi=P#o(qPE$S9Q?7)uS@@_iNpyFgkJ+w?=OB-Za;F3Afu zyYZuIA;XUUB=BE@q)GRHn44ZC!a+b1W!R+0evExKkTmHYGT_Vj1Lbcb3f4e`1A@kY zHv&nMe$-WtePo|=qUJT}C4deFxlQ_UALem>v+OqMHv_x~Bu)AgV77v!N%ti1!7Epb zFY7kx?*n>_vK$a-_yp6xw6IC92}=!-H0hqWUQUtUr1t=}8%Ub;YrxE;g-!ayU>*cz zo^T^^!GOSX#7w|Xshc6*fZ#O<9{@>{?xFPZc(+Oa1<=!kvq|^h0iSb}<27-YQ9L-^ zrSgm(>OnlNg6n_&65P==MKHSn!KQh7Y2?#q;^ zJX6=Xm1ivAqd`)6CiyWd<(#N_m1jAiOF?esndJ+3oL>Rl%JVG1yFgNTz5w$XNGgvf zfuXsp#g}y}5C75C0!ihm52h|HtUQCk32ndzI%h zKs$r@lhNcZ7l>SSxnwU!7)@4s$gMroAu|;uwZ}v1zKlNtMeSMopj&%Z1AjM2YL6#_ zd(v(=Wk!=vJmA)zJ%B$4lG^i}3&h0F=bX5CwdVw&pM%`m^O6tqIKKwCwa5A#gDsHM zp4wn)f~59%5=!$pU)HTXJpt`OSvEbhz|5e9wdVma>p)U_JaN68BER;$3hX`#v-W%s z=381=dy>DvA8LX!_q$2Cp!RrUT_1mPwisXZP_FOPR?PYIxd31`#e!Ex=} z4c$}k)t(yxT?pb&YR@4Th8xCh=&W3>OpW=16_cISZ-D;-k{a`l3)Hky&WVp#W71A2Ed_+763$-V^94#6 z7q^zQ0H7I2YRL#N!$49?JUm89uH?nFWHF#OQI@r2E11o+u$H_J<`_t7i6@RV+=~?X zwd5aQ&r+DRq|%p4%K=F(xeQEaQ0B+3>;<*NbHt{VpE@@aybfv#geQTdmUt+=Jl?G( zD*;_WIBSUq5BQv0;(iCU8_;J!{N+{K;CRnHg+)))2M)HZ(^}py9Z&mRDiv&ICg@j#%-Z z-5T@j-aM@!-}C99#q)5+Rs7<>d@xIqzv{kEUn+B8;%{W+agZFCNNvso6ScoqT2+v9 zIwH+I9r4**ISKI-gmKaCA18rwqM_+#$AYs5)Sp&R0c9d58dgBdQczY)7vi00;2`<` za-zW#LA}JhL#1WsKMt+t0=!hv_$EkBG%WZAf8Y$NMO5jD22WbomcpGU8oDA1a-yNu zNu^Z-$%%#=!OR26;=Csmt-VDd>}yZi2q7-c9|h)Z3h_ik=oGFsfn;&MKA5^7S)BJY zgfx$HvIg4LW&Vq7DRZL1LxeAZbr$8PKy7b^vjt6w7Xw+8_he(s$zE`x;o)yF(gfir zCmK9494&SW#E%|MG(5t@@PBcV*r?j6SBqtg?nTT>S z-id}j-=hr#$%zIJZkB`lCmJ690qZ~@$%{{ZL<0%BATO+P!rlf&ji2xpT+oFl8oWTG z%E__hw=-Q_lc%tDrnD;@o zC?h8tJTycH2m|s z(tZWWiH3*&P}*uxt#yFOiH631;uQwTi3U#%7RIRtCmJ-W;faR(fLR5S6AdT9d`SyW zH01t;W(p)H8cM(n1Z8c4Ab*!S(Jg8T%>( zvl1l3W)Fo1-Nlz3Hs8G!so@X2LlLItlpKAWfF!zj2Y8 z=5hWY#U0?p{*6TekPL7dfoTYm0gfl3%FDXL;QzzfcgI&zbnoxpySaOFH$5Sw5dxt@ zNC<@9d+(z3jvb{43P?v#KtU0~23Wv?h^UAHil~U9s3`V|BKlgtcCqk#o-;FhZxY`3 zkKg@#&Yg0ebEfRs+1Z`hvts}qMOjX8u0doe6P)1eL}Uj@COAe>ppqhgf^!_$Hz~{s z&OeC!#RR9pb^pRb6DaRn-IQ_@9FvKqfr@=%COCZ|+#4hl9D@o}#_I{rOhBg-&Iyiz z!`D&;^=2A;JD|6M)K4}t7;`};1{6EHWw+fpHV-YtU=83wkZfdV_BSrwpdzAVBf}?1 z9S6xqhB5!(JwcFcWVlOPAYL#Am>U`X<`tG388!g39wZwX3=ZcNab_dKe(?8#WMXVE z0n5a6<^5%y6M%jS!cR6bJm{BhVhLKr#YTo3cj}tB|H5|$NH#JUBz9T&(n`p$RU=>< zfTUIi6{w8Y>&t@x9ROmjxRK$2uh+!PEef_DWPin4aU;Vlh|C1ZMuyuE*$B!%tc9be zG)AV@i}1d?W?+KE9>hk5D;|fYL0}z(;L{-4$nZBJe}H5ogAoe&;<|riBg5cFpnw}0 zTA#t{CP-~$Fhb5*g_cu@y935TV6+HvBZCnN`LURidhMeSFN8}Wu$V$JS29BA9~cZb zGCZ^kK+ctR0Q3Mz=1N~7@&yyz$WUkntQsJhD;W*(m5be+S4w59Y9GLRfz(C@BjcS# zM$MUK0Xr2W^Mn(Kd<>F#f{{(ABx~jgIX1q$1d@#m9S~^;!cR6byyG9l5;hnc8BVi~ z93IaHY%)kTGQ97b&^Y3>p{)Y@I?*QA(a(KQG^RS8dlHHtg<@VuAA!Wfl#-1M28t(r zTHMtKibB&U#0BxUA@CMR7R3KWD0J;ezy9SOS^14WI zBLiGu$`5A^rLd7<7p1t7;dg+3r4%al5<4j+$IU?DFHDQa zZe*y>p@7Hj9S9r;$#MG|k<-*58yVL4#hRF3tl7v=1M`&XAlb;!1Cee_a3jN1L@ohA z7dJ9opmjxK^|UhAY-G3z=(QB*Mut6z>}G-+89qkjLy&A_Fq-f{R_pXNnT-s=IDDoP zBpVs(AyS74Ze-|(NFOG+k-<-JBf|{jP6Or7Hd-^(U9POGRNBa3jyT?V;X%Y>p|N|= zqu0U;H$cmJkUSPLxHxMKad<5B>Jz}pj0l*gL9&s-;6l~`;!cIW+q;(=~uD zrK~&_LS#D=@>mFww?Q&%GU6D5D=6}3P5%J<7lk=%s_h1>LXgaw1|ZT8l$WDr%gvfh zCUz6}Emd9OKRlcX;prfmH5pW(GG5P`?gI2y!Z~X)@SqW$WLn9LB zi}>?lSjinvX)9?AnMNR)LmQb;Wf@qEM;Tho5a0)aWDad)Twlf?RZoQ)KB=weO2B7< z#Cr1mE{eufd&~vn4nS`MY3nKU1x(Dh06phE2=D=rSkG68d&5Z#|2ET|i-4&sIe4VS;n+*AY1i%Hv%bf90&l zWa38MZ>fU$*7GZbe+G&57!)4pRm5xS$&cV-4if7zAowb-05{fi37{8&_^ZOb2L>4O zW2!!wedh$UEfI182G>c{b_d@R=LSf_21Muytt;fi~r>`z2X1IEvM#_s_G2lfYv7TQv5X&KcOx4X;&rm=IgS7Sh z>BCISw*YNDR{=a5B-XPDkvl+QJw^gsv9uOnR$I^WfF7hQt>Ns)-xKBkxbBfmLswZl=rW$L^~bb2&eTJc+ig-^~QRB1N0XVe_}nM2@yELQ1d7mNE(ZKUkXTGaR{~E;{g|qtv6!0xT?^7H zWywCQ05?8nrED(%PlCisK11XakXVVqvSiWG3Iv&{|XW-F{nUg zytb0+sR64RNUX%b;rPFTdSfL$0PP0iFRz&%h&Ex-DDPpNkkziEI>FVhmtiSbQi=~g z;V*FEv1H6@m)%qpp?-iWS%&IrrG0|<`SgHtW+7*c*I}% z7;~&TFi$(R<>}XPY#v%@S?vLA29hPK z=MZ@UR78|4S)EgaM}r_)vU&@V*Fmym^&kJ7FTuWOE?GVNGIVmuDycCl0FosugTsZM zIJ0Ec6#OP2nV}jCJXQKyRqf3T^*lg_f$)4wYmq`yFgMagTkYZig^84@d%(VfmkapStVi7PW?>G+$(U&>NeJjOIANY z&1cn5+#h$X9fJbGNR>IlKMAX&1SgUBq9ELj;L ze5As!l&Tuvy^VVX3bk09`Y2yw~E2!;HZ=>)DsT}B~Z z5d$SCg(Q zs#qTd>`lOAl}lC+vB4Z3M*}tzBuiGM{?QspoHn$@U@sJHvSii92SsE0;9~XZ1Qqjw zx(yQdQc9LS3>5PNEp7%5E?Lz&3L!3iyaIujL9+Dm3nD*>1}<53_lq?#Ujvq`rceWy ztg@TJqCv7`)d`UfAazk6+27z3%S`E;( zAXy(ejL0F8;*!-^T@=n5N@2-r@@tUdlGS$reM2cOS*7FSi>V-4vYP4({Yatrsx*a6 zbjhkEaLqw#$;y;~%gRE4^^(otRGL6`yjEE zQgYl36kjLP;z2D%p${p<VZf%Cb(qfC%9yFDRM6ct(3h$F=YB_ObHY zx8|5T*1&~05SSZfyoo;LqSZR+xe+8!XbdjST1Xt`M2n9B$2rlHz&rtxMJs~~Sv!e4 z6}syUz<8p649JHdxw;sbYnhntNB^V`w!nfN2uiqUHA5f$Xw0Ac=y_8;fa`!{-qatF zz95-58CmSl)LML5J#U%;=rqc5-n0Rc^-OTybP$mPAelEA@jxX-{=DfFuqP?ZCo~By zG5H0_ys0@N%|Llq>PnQGH2H>n5vt(WYlRLuxf#{^(^%TOw6|cZ9V+} z?gJ9*nSsbOkXVnAz|Eo7;>&95xfRe2l%@4Ni^wxf(0aZ>`e7rsyoEYy03xoQjl1WL1Cz>h}YKh44@AZ zPU|tCpdZtg;O~ULr!A(AApUC7ajFpsS)VS%oI9<_m+#?7dWgRV*h`=QJ*jSNhbn*q z^sRbfdl)!Kz5A*w<|@~t?VNhA(B$~;YwZqryZ|cOpfTKej)@fBeZ@w}?{p@1iD3{6 zLh$6<5Tw)iDG(Y15;yVzI+Q<()FDthzeHgqal95=R_fqj=}=1YOBBsJ2CPz$e48S` zuT)G&YAPr{Z6`{`FZQiiel)}6!=a%@)KNguyn~w4pl26!Y^UaUBm(@nhSLcT=c&16 zWzF*9>2nj5BHJ>tx-pugFP;v7qJAKB%v-at=U%JBf)tt;?C1m@eHTUk0oIj3%>)I$ zLE)2>gP`kDvs;Qf)M#Yb!J<_<|F9{vBxJJJltf16E^@yi+|4k)cfRo$C3B z%mc|g)kX(4h-5*_zx(`%daMsRwR$i{|NpXQ* zpc5mpwqm8zgp77hW!@nKvo6Eiuv`a_6tao!456 zFRLdfg*|Yw1j*#24}>o?StaKRLM_*jp*gsqOQK9Atu%lOGZJ z9+dZ@mMu3qF`4j(quHuE(0nsFsnQcx29n8%LE+g&MZBJzv;(va;hdZp5WXH<0dA(Y z2F_w-cg$9OD!{Lyj#blDg7Gx^R2$D^lrRw_#$$lEH`OAs#&hc@+IUt2zY-+IW03I8 zsAXb|=c$ji@jMRrqaZP!hcpl_{QQ`znlYY_0Q~@@jc2zHGcn%)wDH9C!rC23jHeMI z4M1W%M#8pC%$L>1GZfIll;zBJ9wKv?pz&-&fPI<5G@f4& z`H2Y{PxandNe1QZ)w1P`$7EuQzh;N^q4JHVD}+0P#CQw}J76l}weeg6=tYFncnk=i zu&w|%#zgUnN)6b?NGiDX3?3_UXJd=Bhq zAeTO@3<{rm(D)e3ks&A22UA9nSWQ(8f~!+Mrs`y@rU{_MApWEk`5K6~1#~Q3Nk}WQ zKG&@{4>H3*@(jQrF(X_eCvW^UC$!x!1ZF-+?B3vlzV4XX@A^#J{e6IM1xX8P>q=m9 z@5fYqObcEI^e70ApZGkWfe$NKin?f9{{w*EKw|6pePL7}v2}yTOBq_yn5e65y*r>? zL1ODu5xIm3+WH1W)`P^>jX2Ju3W|JN-w*6w3e(n4BJw#CwDshESVsfp6>HgYwr(=< zx{KdB-3ex(YzE;{kl4CG;m}sZYg-=$=m^4T>js36nN)xqTVD$3Vi14z%p8dx(Mvv8 zGYw1{^1AE!schJotP|X@F;{`&gUA0?wXXPjvfWiSY?z%8Ry}k3!VMcY=^`-6$^UJF zQo!$g;Ii-V;T1ZM-#*_1nDr|D#JN0O#@C&WuZu?p%jeFga4W|r_?*v=2sdw2T6(Gg z8$CWa1>2*BooM6(pun?8SpBhrj6@Z(@6kfBF(q#&B)0zo^4|f~1|qFMR+H8XF%R=) z7UCEKCwnF)fIkK#AN-JyA{boQIshD3%$Gx9m=8VGUIPPw+XG*vDx7-__OW#CHMj#> zZ)555R;+=-nL%ZtPODBrh@_e*r;?1>YhVw+^A^BmuYrNbRf2P`fqZsQ zmJHfLs5MBI42)2yl8{+47!T-JP;`$0y}28?h#ym3pn9y=m*_Drl&CLhabZLjM2wVI zS!#3M_vnO}T_gsZcouBq=tmUGwIZn!*6bQFwU?a)NA)4VEyh_6#+|G@cM{0?Xb>3J zDqwLw#_k|6Y^M^CI|$x{Qd#g=fv#K%Qi}~nD0Eh#@F@s!vEc;>JS#%<-fe`!e$4NC zY};r@Aug>12I2_?h2)DEMks>E&uAKevbUoHKy5&>w__e6bC}@Xj=K@r1S%pvonOQ- zDmJb zT#yS$FF>*v-H&hX+?AdCbvNX{Xukw?gZjz$(^o1DGnlT`Lo`ffocqZd@k20(FYSZ) zP7GFv|Jsk56Kg^9PHOJk95q^E7v4M+i9ssSiV3UWr$T_}R21JXnrMX=*tM2O{#@pt zrf~ObA$*}-^#%&}QHjRaA_0l1-5d<7}o%dSq4Rj{lk^7&1BRgH#r z_SMuR)o5s!NO8TtzZi3VQ15Rrarg|>d-iB-qy_cva4j4%f_ndnc`B*dF1+RZ81DMB z7KN^{OHSe2GN55k1rwTGjLvb2;IQfHoMxHxv0e)r-Yv2BxP}31d<5>Z>=CwOk%qMj zCRm+N5yvX-iUyvu4Y&SI$i>RV53Dq5u7B>0c={H0zevJJR3CZ6&fwl83mdo)Z}jX0 zOot_EHQL$;pTLy3)5yXVAZT3$NVrj&A5XE;9QSJ|IyW45a3somqbfC~+2I!&L*4j{9m?*&>|Ki{QlV#-%c@PSxeeit{p%Q8(uR*@3twoA6R7<8ePfkH30( z*E9abjCfi4eT+Y}40@WUKgRfkddP2)@e1Q39z=f2be0J}G)ONF?Nxx~bW z58&TL3(;|*qv#%&8TdF$l3jDDZDryd?%;${gM8DtahH7T98ODTV;ir$+_FOH5dy5x zeh7w=rAMq#^V&#c&|4zxp@8b@094542d%hT&>E@|dp$3nF(?${{A?^T= zZ!3wGq0KO>_;!-$7;4=KiH?%!8T#pNDCi`KfuRly!RaiC^Fj?CK%#4AnqyhxLVv*I z2py+_;feR757vaz)4>^8wG}uULgU(kGb+0)5}QN4 zV72k1r8@V8E=T}pOgzuEouQ}VkQf`mRmIv9y08xvjFY+@2o1N8m=Nv_15Z9RUGhi1`y8$&4(+}}-B1;DOZ^(3!{+KA zIf6aK_5bhrpcSb9;#)y0SpS9-_;&HAA3g%tLZwINPRD>dyb+Jpg1Fl-7$s(@lRpt7 zPhz$@;lG5PCg!MHMmr({h%jjUbnbS(cJL&is-z@w%OR@TkWK-X?}4Q%57 z!1~)~OW}DU{git-4jOBp5ys1ypum%CSKdcUApErZSDNCMg42>*>bEjR*(iB**(a>H zf*y8fz#0h|4Vp-(D9T!i=~mh?_k;i75h-#PlOvUsT4c=`iY|ED?U0BqtYB>^&(6E; zbx42YHoY63GrHj!Fxbx!qAGdS1rR>rZrY9=w`jsU;GFUmJj0$)g`^#UmXq!sm{}B9>t(w&bFh4a>{1{*S4La;uVC~^8)Uox48sx}j?hSeruaZ9w%V2r zD0YPH-hsYf4xY`kTMAO$TrHLbZ-ZqdrN#5Y;R%;=yvuRsw*B%0&mf*eZ^L-^T-C3*t^-y=O?d~eVo(Vwz zstmW1mS;of!?ybf&VM@goN4w8fPL~`pt05b z*LH6yLM?s;HiBVBb*vm6>Ajd*BnI5;aT8`209H~S8iUFUxUJxM$LO%Zl5l|rNp}Qjm6o#`XM5VlfLpW-R};$B2cVe& z*>Y$V=s>_-(@BH+12EhN$tkZuM*{BrOYkkX{?If7fcZX1PFe-}FyPk1WK=*K0Jz%+ zNjE7_ZqR+Hwg&A7;II#3S6R-&EVQh3(7k$$KK)Ms@Rb2+e&?Wj(S!Pg4)1xx!x)M;GnyHy_W9`UQb^>V;d&iX%kA;HioFPDg%j; zP=+ZmG4^HnyMkbK@!Uf2__Fm;@T8y{cu-;N+X1|bU>Vz;j7c~omj>M)V^x9nKJX6u z$`pTA(5+U0Pu(Hg{t$mB$XD`vCZn(gLH8=${mTINH+d;OzYb<-Y0HD|W4Ia#KM%Z` zQT|FcW=+ry{h;gD7QD_;emd*7G3d6hs>>e*-h?QB^f{2f3;HLjYm+?>yv0%e22N7$ z3%Zjrd6QG@DBR?q%Ogrm9{tNZtsbJqI` zhlB3V)p36O3q*WsEXqnsIUmh98g$3tHp;FJW^Dtooa;G*`7G$B26YoUfY*(D>Efih zm>Q@38FY`n4cU>%pJHUye|bI5PuOjiHr{dH z{!W7~0AQ*CS&Dy&I;rrZ=D9s17NuiQbVeM-gewi%Jdkw1%Tb< zKLPLObMNcM^a5(AkCYZCjeHdL*DcPC$Nipt5tvu_0M&25bG9=y&dtHyj|}@a z0C1}hQe7gTNpWsoOAUGqfMxz}8vLFWQ+z7LA&H&J&u&VB#5MlJ$sm5)@G za{F=g+rM${_qdypYtU8z_WB?hoMUtfyl==o_PmB42lQllc#PunL+*wD(MRnJP|2C5 z*`iZ*y6BuAau4B-TwVWx>QWgQ+o>XRbI7fZ+dq*R4gB=-GBFk@@cTmU?|AMZ@Ku1` zUKwsVf;$bg3AC-#%m|G5H3o@x2 zFU&n%_xcq$P1XW&i$Ph=>7%IBc-QUONjLow@D3S%wD8VcvJ@a4S zQE6Sy8rMC&K$nw^c~nzSg~rF+T&TL;@48p**E0QppYUH~bP><}Cfd_Z%j^XH1z$!ErTi(Y75FLFtujj2=o3KyJPSO=3`OQ2*R6v`EYfA^m>bsv zsg_5JP}c*2V-ci%Z4K`X=%};6E4HFf*j>|JAC+0auQ`iM^iEQB?y#`C5%Y1W)&syl ze-;^ON=)6xhuzQmX_=3K|Klt&a#rw9AC*hO?jQYid(v?0+6Yv!`7-M8Ps=O|SGnpk zT~2r4NBS~8(w0#t|IiTF@M~fB9h?bl%1j`y_tDZ%(LcE`3cUJXncr1N_;u zh(wQL{$ISjz7uxm&r+3oAMpS9B2l1Id=jVIS7EnlO+AToa`F5Fq$W9X4E*|7Npo;b zPx~qCE(u`RC%vh4o0i9s};2Wpy+j454^8{^$puWRH=pf>wRzw}te+v42~xNwT%rvQDqG91T)RoD~n zPMM)Q;0vIB@sTl=?LQGm?ohmY!OI$%R1HtyK&k^`Dl5pZYvn#_bN045`?J!g$*8;W0N5)k43?8+o->3|?96|1kxP9ws z{LMKSB6`TAOoH|-PqR#pziaLF_mp`Da;_vb5DGNkFjDoz&;4nF&`<#@XvBuz@*Y@ zd+yI4sYi|Ww?O^wBY6xoXtC#x*{eaR1z7O~skZy-^!!3}-tM{Qw#NHckhePmI`+T7 zW9JtlxWjY5zf+fU6@-@hg6uh6nM0o24p)28ekTBr`k-iKV&I>7Zkyp+=c|C8`Y&)b zj8w^LglFa$t~xEmQ;zC&5jlXH6Ilpy*_~Ert{c6ISTMb#_fA`etGy!<-r#*D;TrFZ zgloOLcI4ma4Uq6A?_vqpd8;M7*}GrD_1+-~Z}Cn^xWW5Z!i}ESp7OVPr4rueohRY# z-W3ww;cb!dPH(@2o4vOryvzGd!n?hy9VmZ~*Hpr--Utcr_ZCRF-Md%99p1|l?)1Kt zaF-YANV!M7x)MI-b(ZjPZ?uHFy(=Yr!n;YrJ>CuppY-P9L0>TaDQ~TWd%ax}?(>dG zxZnFp!l%9b&cr?AwUY2zZ={6Jd9x*a-n&J@7rZ?Z9`fFk@I~)W2@iWIcyJL+f5~ei z;mh7236FTwBz(nNE8(l&{SqGaUeMte629gIyHfr&ucm~rd!2MRPQo|51vyB(|k$dcK{+&aRqX!%ku^S52>FC$W30rq{ER zlz4qRNr^YGlPI40Pyx=EjFFLR3o*B5B4bR_+&eJoUyO{vEI_a>J_+#&N4C1t}?)zfkbG_RP56mlz0_ICz4ZTNXj)>IDHpVpHu5RXtjl% zRqsV$&q?SW#4rHXKZb2(O}`PGVF{1@$Q4(#0VIOh7lun?mGcrG!f8V##o&~YyO@>D zlmf@O`AbnoZ)6W7izRB-1lRov&6|wu%MHt35#>*I+hHWNmw~s&=WnX*%U|f$$1S{l zFL*nB{`Hiv&Ii<0X1NdHPIetK?3ciQ%g0C=3Ny!baA6b7ci{iwV?(1@ zgL)>Sp=(pL1(3L z^=1V1o(i^XC(Hadhgs*}xe85xK0Yz^vpFa*t8c`CvZhRA^=K&%qze#uNLr>X5e{*$txjpf-XymIEW!3rE6 z+kcG$o+kefip$^2sI!&AXXn`c;cnTBNilNXGaxvy!gM%ii0z(v7A}||_OD^t1gbiu zRKv0>c8s{Q76AZIAtp^WBe8|>#wq7Q+im$MoMM94^K2mLnrXJ%ISX4^0lL%&Npb8D zE5&0UU1hsN|AHS?CWz3vCV&VBVtoJuW`-yVcd^ns^XtKGR6Y3(7%9%EQ)z40QB*41uI8-^``=@78( zD*;$i9(3`>-)yVeMt93dToTq9o*ITNms7N0{sONP#Dn<@y(=WV#`{phYrWGFuJWq% zB7e2lP{QlI&Jy0>4VQ4Ow?x8q-X;mxd%Gpv=pB>rR_}WWZ}XCRQ_meT#y`>Uv^EOF%pZAP}_j{j6_@MWjgxkH$KGgSP=KWI7Uo*dH#`JHQO(g%1 z%zhI7nR$_*W)3GY9kk&U}Vp^$8w#O9rb?^tgR4SbehhzT{8wzLW5LFW8s) z7kD`mUg$NE@FK5=gco~bB)r61DB-2vW(lWxdnKIieJ0^d&&D&PVD&4!ni9_Px=MJZ zH&Vi@yy+6o^X5x9-&-f)5^tM?OTGOPF7w`%aJl!5ge$xtZaae2S9`al+7(v1#9d?K9Nb8jrJAnwcT^-!&hS?OyWWI0tng15VNwmtEOP3 zok%-z$;{@Ks)9{+BF7yi{*vv!e*ka9fa{=usJP9fmHqd9C}X3YcmiibwfyUCtKhip zK8=N+QXfrORbmR)Bk@Hj_ookSi*@Kn&@$A>O8NL7$OZ!LcC6B|E*JQ$Y+jfPR@;dO z(5P%~o+`M>PUQVe_Wf6bv%?Ov1y%gJk_J16;boB;#onsMdhbe&<~hXMp^U|rRiky< zR@PlMkku&5l0i1~5hg7)+N2)_4#}f{cGbfzR1-jM>DfT`o0RD7~2? z&^h(g?>LzYP--2JNLbamhFhbDTPFzzfYKen>PGh0{h_8h7vF32alb#Uim}IlHOXgR z!nO4p1Kh&raQ&e4)nG00*|o=ZlUp;(<!w&VU-cJ-c-5uu`kA zM@A3OHb@3*4fg)(&v1zMgM>rX&04KdUg7}ePxk6bc!AeN!VA6O2vft8(YV^Bk&I%@ z2bic`T6^z4^TcoCdp=2-M4GrfGrMfC0S)`1^rBS=j3t!ua zIg3i8dS4V?^*25}sM4t4$->M4_AE-e6!rVEuqv)HAF4F!cdGDToMvCDH0t+N;j;(u zUbIT1eqR^<`#c_QsWj^MpTb`!U`HD+SmyTBwwXbzwZj~ zU4qXat2FBOec`nq;rX{pqkcaWF8d5~Or$OEi7Xsl9#OA$K4L|TWfUUTg0WZYA=Zhp z23S;d`!Gg7MeaF_<+KGChG2P4C&VsfER3Ptox#|T@rYf`*pgJlmNT{kcRub~#y-Va z<=)2FfPBR6WsLWC?!%0oS0Aw_8RMDeKF8RXxVX5lGIpX0N_&T~`r{G%jIk`3yZa4e z5!j^rD`V>}L+lJ=?dl*Fj|O|6W0vctGuCJdV$~SqHeRXR=S=+VMJ0mie|hQ_+_61% z3m#{Cyan%?IS(7Z3%y{2MoAnhgAIz3Sk(r_obNPf?VXRF%Urq*IRo9?3y@c%sb$p# z1-?ejHEW1F;XSb0BD;rS**^$>2}Osyd$9y+j{@&}!&mbd*%sWOLk?SSS3i9Rz@yv= z*d0Wiy&8WTDDW$E*^F7ThoeEK9QKMscT7tb~$n_$>epg!EEK>C9JeU{_X8meF8n#Gy6o`Z>n433jor_9Y z2@hb3->{8}|2fgN8g|I$-E6{x?;_qYiv82PhOOYl~V-KaFe4WdDW zpWp({aI+3mi&UDEf{x3OY2|Dz!*{^Pr@yrmtLd<&bE#3b3C?hz0%uZcWCY4(uFQV< zXEoe%2CVaQH^CNo@6zx$yr7DdUtSjx&u$ZOg6zGmaCZM(xTtXOZ)(QOB~CxOT>I zgHfYSWor>n-H+7TuL3 zsvayI2eZLGMchRcH4VCt9>ygJNc(C0Jx`H`1myd?m3(&>fFKjv)J6 z{QcykotIXF-zMnhV;p!K@^(TCJTM2T$|*i}3RbISS+ZHU5qK>O-~Jl)vz+Z4prl98 zZGrJqlneskTm#bl{z3Qgd$f{i;LS69t%RGoiiQN;V=wD=tp{KWL2Q@Jm{o@ZYf*l% zWlw1wcN`U+8+1QAqAULrKyOimJ*z~VEcO?+AJS2ewBUOH{v;@>*SQ(j|Dv%$cScX$ z0)93-9~7%;GBr&My2pRgnpy(Tg`gNs^Krc>IzQ;v*kV~ceD-JnCK^z5*sro2Qwn+5 z?y^?BjxNRnO`6Z+tz*nbM*67vEEoiZJD}__DqIQmQS%8UfcG-;j~kx7mH^*;ZYgIz zA5>FF`yarAt)T7}K^yZ~SF%@zK8dgyQgJ6SlSwc!S87%K7Fq`F+ch z-QyR7H_PxVn9oP&*-FV80M;8&)O`AbFG~0t?OwyLU_NbX>UJFm;8TLwE}OBa`79`B zJ}q!Lm&%9H_30p~yb|%vXHj!qco6_C35x3V&1d`!-3@~Q7+pb=F`v1(Y)dm{1F*P) zCSyLE9oypJvu_9BE(3~Q{$tFCx>DP{z=Ja>!ES>q#pFjZlAbSDiUhfWT%@ibLvat$ z@M4w!AqM`2mq=W$Cc80-uu`{S%1t#r|9{o&7d1O>#=r?RH~jyqd0y1q-+*dbB)m;E z`Vv`!YMM)=#Q)bN60<@y>W78wn-&Sxpwy_rY{OS0@&BbphWgZl`;?kVv1(#!^CIK_ zQw;#v0likKF*V7Esfon@mkK_X!uVVeT#k!HT8dNuQ=}Z{o#j{$4Li5@Mv&s%f*|fE zyc5tkqv~|PVNw#_9yF5{_lD4f_1H*IeRl9`=}xXnMj zmNo@~;cKzn)?}e=w?iIDA|hyDU67mR#Pz{iqRV)=JzgFt`9kUAs-VqWg$|!0?{q-k zT3gO+`O^jVrgWcSs7*VC;2NR`>Y846AzW__wlXbeG8TIUB zGPrQ5dPN>hM6uxkEzsY!Y-#LeMDY(QKIg%>afWSS+kupHo3BD*Q5ErF>I`>aubos? zpEQfOO^)`79nJRaY0ob4h0DR zunB-bQ0#)MtYSB+)56#CNL-@S4<%0whk`bfXe4G~R!XZ&q2lpCLJ2~a!Nu8%&~QIi zwT;rn^~4HQRSHvH!(Cs=zCgkugjB_K-Dq_cC_LnKSnCv}iYt-|AT>&vavDeD$w0zr zgj5jfSdJh5=W59AQ3s?hd7Q+lo|Z!&`TS!5ev{gDCSOhmHra|ihld{}7s-JhO_p?o zVqLrr^J)r zu-k0rrB=&QSK^^RzQ?p7UfzSYLJypSL_`u!=!ff(@FWoq)xp%bG(i#xp^s)Dktm6j zP$}--OOqs#5!&=E66(eItkAkOfTaj0FZ4040;Q>vC%uSdq|gP;ser>M;?2@bO zWM2Nx@p+8l0I<&C8;F>1C-FMV9RNyN5RpXe2Pt_kl{jt+h-swo!`slsCEM*(cHW+H zvU)hYyfXlg*s|RB-dO;VdvLQ=vRtbEXZaGOo5EA^+@_?fI$gN$K+bS0yb*V2B>^>V zaT`Lk$-4XZVYQ@5U8yj)C&biTb$@U-y0@!jbK62C{-XBaFOqC-XHa~(N~n6R(v-gnj14>%NF+0sthR2{Ti`lfAbLz)}PfFP@3B~qGhY&l_Qwnt1_SpJ|Bu! zKw-keQlMv{oxwR6pBpJ9$`Z$r_oSW4Ck67ffF;@FDNBUYkZaJ%;o~^91Q>W`sKb9Q z%*Thhgq{{ixo|!vKu*fkT=;_sb0NEBd|h;D72K0$xAeF^-6OkoR#oJo46eB*hlk-m zUjM6{o9kiD$jXds+BD3y!O(edchOXN->^b$_gPj`<$WU@x)L4Pw7s~Qn}qfsz;!n)WafgC#LE^!N^_9x91*LjPQb z#7IdD3k@Ct*eFSy8}g`atR&70wWGH2k{BMkl-edrVnpZ>YMU&Hk)c1S?Gj0h3iYS9 zOC>Sdik$9<)Ex0%z{OQL_A-&OT6Mb*tgAC;BRf9KmDmD~ysMEE_Zqg9z8cSTnr%wD z8d>SM99zvc%P^mQ{{}3KY>~k*{RU#TDoj&ib|}n)#5^pRCfge#o~8z|`0!UyH!D8O zM{vnuKIn{>|759hvbgDpm({1_FqeIkC0-ORYZKhw3+Fq=(a?m;v0tNYJjWfY_4LV? zT4n7d;aG7G0aMmKE*r3-l(H_t_b`j(BCV3?nk4ggCDTn3a1HZ5FlF82`YD-y!BOyE zz(;aQrhhumGhNOANkC>aFl7Vd76F#syeH!Ig2@Mwhz}pee_vLOYr^s!~C-I0%;5>%@t&Yhzx=yH_x_tY2$jbI)34`$Su22jm({+ z*?%y5s%^8OTy0k9$O|{%sZoY(!Q$F;v|cjisK3WqpDX!XvTSHDi9OBbX=O8CgJp&9 z!3LtTIRUXJE?MiU9LFmzWy6BW>}alFOX2cog|Ge?BDV&`D!8gGB5I(E9O;b#Vwxnl z(5(hSf9h_9J=`Ug-JxW;0$veNci?+G+QCFFi%Z)ow&tpf*{zoa61iZmM!r6)UJhDi zFDP@YTXrw_FWQM*K(~3XW<^TE$htyi5?oGK6{dR-E3z;ites-jTw#y0l*RD-xAF90jjU?%!ujnthB^lAzu1G~D2SA88{Z5|?J@DX!#I&6jC zV%Lud=F?vJ*g57Aa`-zuVJN%8mMlJs)}<}N%3RrDxq|S)bj3AP7`h)(Ai6I5A6M^vbmc;>$syK(C>>5?k&*Zc33I$PO3x9tp+-~2Ik$~ z2TI2rlWjAG(~w&kBAqUY9KAv3fDSpS*`Na zM3&nZD%zuJvojP`_*)ckZ$ngpuHs6p&3fBa6}jds+3I{^HLP&i3jlno0PTGMV`#%P z)FgZXF23F)0kKlIGRXdze4TuG*qt0h` z^f0EcIUi0wix)8$PIxe|$EDZY0jSIK1X z_zXEd9IQb!H-{&O`Tk6Dc((jAzlC6uHIn-Z;=|lX5qAh3-nNc%Q1mCB7qu(NaR-q5 z1$rV9Zj9ykP12v-J)my-xxc`QG{uO~u7x}g;D!Rl;uZv~BaziCjS22C(8nf1UALuD z`Z7N^*ghfQw#JyB-GWoPeUirw2Xkt|NeO5{A6L`n6bJHGXZ2~Edh;;{gm@noRWL^EydjRL9T>~)ZuMmh6ff)vj2F8cE z&!S~^G5(t4FJ7FjB!}tc3x1*S061B4;=^1mNDl9XvEtUgCF9KLOY>q^)j;+u23)&9ZXj_*`Hp{_p!9x2NTuHAYTm2R+vTsA3H)6TN z+K#_|nHOL}g9h~baUZ^Eg&FiA_11P@$?nLH-7TXla z(7B#ALui`iLajk}6sl+twGnDrcsOFwmU@Tb;Xm$C6v1t`l^CS%@t0PTnB+}CU{DkbVJlwr2L% z#j=@cp#Rp)?*FTqL$nfUW_#mlG-FYy{d-4)Rssf^4xK{nha$cYF7!Hd3t1fwV(X2y z2bbXR?Y4LkEm^3%h+h7z?f?W6Z-J*}o8H<=te?l@Uf<>hjvTypb0Qaasp789>F0fj zM4`BAbJiyvgIv2cJX32k%Teyyu0(nTDEQkd3|Yhk#x3(P%3a&-NN+EXu~#FVx#BVC zxjRBBYuaWg{dgYSLmOm}pXR{(4qOv-MwQH+43pkuyG~zZJNGC23SO6cPGSgxy{95Z{r`e5;r%?#_9oH&II>vo_mw@8(R-$J0;C)~EiNOuBh< zwr1e`K?UjN&DoYlczBD=5>sl^Q=6mwyj_9(g`i+n6eo?hYSYh~qx`(B0}G>|W=l2N zinQ|c#%4bO_I^TYvP0T_v;@M+&l|bN!TG=_u!^~Xz!_b(oJ~+r<>!qM3j;<7q!iWW zLcXK?yyYMl>uRyJs7*g_j`H)?3M_o-C6?Wme%>7A=k4-^c(odAY!@<>q@OoO`FUd{ z=YVsaub_xMAx*7KKW~om^L8ir_ZW;-n||IL<>ze=a-TCCC0Is3Z;tl!_AYo|mE#BY z-;^z-IuKX3m4kQj_@g8~(EN2+sfVRi8AL?Tk?=gk?I^*Z{n6aBn7+Rs~4)VnJH zy^R{p)_&evfjtqd3(1ya)ro%I9PQ_g4PFe^jfO2P32dCrnhwT5C9z_k6rj`s7$?BhVfhq5YBsg$nmL_crNAY1&r@d*73P&}^HQZ=QlJ^j2n+Rs}9@B&}V z(FLh)ZcjgNj`s7`=WGD_d2_U%w@ZA0)K`u{d-{2Ew4b-tK0sppvx@2G%^B16M_Q~x zYd>#$eYC{*XBE@Wn=>w4jH|6iYd>#a`)Fwc|170W`+1ARm202$dk+1)Ict@lHx4BY z2$I@MCzjFAo1^`_bpWq7NS(?=mpvKQzJHQ5?1uFfdpvKSJ1%NI7FVNU(8b5CvfPKiv^T1T9h4J(D9AIyjhsM;^ z_<8#ph<|;Q90?j@Y}v-oTL$h&s)JMybmKu)jWK@S%E0XA1L`*@ug3U!8wte4K8igZ zTbS|lwg`x|K8l5D6#cw8#?RX}Aa)s)y1<3`Vuqvry!C;c{R#l@7*IeCtpXiTe%=IR zoQSH%iN!0B_VXs7%rK_pAO(_>R)MsiHvzQ)pt}!}Zc?CJ<>yU6;{dqW2eGU0rNJz; zO#6A``ED-*V5I?RzV`FRGu*xxya&mb5ws`wqC48po5;Ta-VtA3@wJ~fkv|FEH@M;GhIoN1LKX1g?X_$^@fu!wL@fL!|m(_`awVyX)><;+rMzGW@Oh0dq z_VXsn#)3DQd|v7C88Py;pEr?T0N%2wJpH^m+RvNRd=q&0M)~yf=4d}}!hZ(57ovRn zd2_U%H_`tIcqgNL`gwD-pEu#30WU7%*PrhQINHw}PZ7I1c(tQ^zN_YFKX1bC0A9B! zpLF3SSe%_=CC&2rPd^tqb>F3Qce%}5?e!Lf31*l^9k*X%&q2^Co(}1poia>j~4(o1^`_3CK&p3KB@$ zs_?a+Hz}wgcumMxwoX58j`s5=@_oP?6qOgg_VXt47lSt~D$i|@j`s5=L&Zw))*E>} zdcd{Fc>QUz;2Z-V?5sNa30w7B}nM`3@)&s$;=hCYxoH`Q-^Db&$^-b70&0PTE` z>JkBIKW_p$7k~*qNL?EQr2V`JXdVD-eUMxrrTVJh1g`zO3H(7o_xkXdeiNkj^CrmS zKz&*cX@v!({k#e2Gysug)7Y4P6QuU@CdgVq75hkKDfDaRXg_aq4eABJ7$3yJSs8)q zMS*KSZvwv(&=uw3F^aXHH!1xtpmzC4si*36(W(8s3Gx-7zO0OlHAa!qe%?gJO2Mib zC_2K#%uT}r*M8mvUJPi5%5Xe1V1H;oZ-N{S)YS6Gm_8P`_VXtFu>#NyKAbUqD@H$W z&L#QMp<#M&bF`l~DdiaeU-QMJ0RG{7B}8gJZ&JY5K>gw)S%3yW>YKr#rCU80tZFLrS%%PMbw4XPT83OzT zzKq|AvCY?h-UPlF(A&=fuhTX!>Bvo%|KW`$_5BT%XA|p-VpD`BY=S^f50e{f@HQ=j#kti@scLk32^Tu-RZ9wfKQYJZaH}BWSs!m5Aj`8z$ z46u)Ur7Xq@)6biu{k*Xl`*#5TG5V}9{k%Ea&ztb8R~t62Ma6ZmLA zFRcv6@n99SpEp4+2kI6d8B2s$cmK}xc2iV z@JLlW$p%$u8@3{|3fj+`Ae#Zz)knrumQL0j?dMI9V}P3KBV#HnNbToMkSlR&)PCLs*#@XSJ~F1V^z-IuKW|+z{MeI$y23|NSf4R; z5aVb+Z+z5f-vHFDK9bF{!UEEM-URd*05AC-G70rdKB|*IcIo_O}r&eB(`?y z6Ics7>dv_z-;P20C@8-AeA{9f>Ix-?RsKGxiE7r)*aaOw$Mci5-vDjpLgHmS?LV8u zNRe3AM9R3}Dchk9)Nx-0gLg z@Ck3EgnPVM5+({`PetWM3Q!o zHwqcSzJOq*jV?#;vgsc$N%_YkdJ_HPWj9M41EC(`A1`}=HxP+T`p3&2lsE(yif4#K zDgStnLh5O%9lQ_&o3LxsKVG)-k9Q2LcMaRBP5*e=%0J$>$o%1N+Q*< z%m)gd2eo*)gawXM{_*Hgv>{n6QM0svypG83V_1PPQT}A*A8#CZ7yJCH3w(L)A8#Re zD}DYX$~WbM{cPnQ?;>Q__kjPfkC8GIM)}7R%wh1~^f98Rl>YIuwST;?!28+o)dE5( zr_I^gKVG;1`;|eeQ>oIr+oprOY~>*Da^%=W05k=uF1p8l{wwg6hrD^@_wspG;xcr! zo82pA3i1$XmBWmC?b0_OqFm&$GXl)TtK1mtbKoMc`$D{cN*8&F*MV6mF7k3)C47U# z47$k6ZBsNGkQ932$!%N2O0}hnyj01UE~o~LKk_Azz)|HK)1Na zgYF(R{)cY5$b)XW$cqQA2-Fl5TtP*Zb)()tLU+m>4Dz}Ci=-TJmxpp5jwvS|=4RRu zK)fy8<)Iw9%bNz=&7j*@&h>sdgh?A1K^x8kJLTX=bQ_*8A}jGRWNfwRG%puU^P0R} z123WG9*snX;p#S%sod8hakHx83;^&CD&I%tGpCIK>-9+7u{TkBV6#BNQbwXg--yJO z{Dn8f!E0&wfrFIaX46`8k3}N;JK;08<(XFEYbfZ7E72Wxwce3J@#L4+H*zgt)0xQA zp8OV5?lARPiIWh&#-=O3ya8oI+E!tgiFm;`@5#ukNVcO+e1nU5c~2$nLerk5_?r+{ zb+QugK*kj0|iA;os658uKScg1Az)lk2%vc;f`(&W}`O z9>I9{Zqtik_0q&9Pu9eyxrE8V1YTQn#?5l9ge!u9qz#T()w#%w_pp<6`C8P%|Ff3c z-;M$D!eAile8r4!)>=ne>qrzHjp6QF+!jV^+6fD5TUL8Ml#FP%g?mw0;D?3y`xSpy zQPQ&*y=vJtc==BxbA=7Rg%RzykVgL&5$(B<8MBN;bk=6M z1;t)qF-FRQ5-&-@CSHz&rCuEgn|TK%Ec1>^*xY+x!WQ0_61MUtNZ8t&Dq$OMj)ZN! zYb0#%wO&H~9lV+ncJfLkzq8j~!Y*EK3A=j3B<$|}Bw-KlUkQ795s~ZVWlGq`yHWD{ zdUs0L&wD_^{@!j02YTHFH^^(uutu3TSiDURMck^Cn4nhqp|^ z&E7T%@Amdec(3=8gj>B2CEVuyBjJ5swH4HNzt>K}2fd*ZZue$N_+#eZQtw|gZ=6Kj zZ<#kp{vVkSO894H;9BON&O9jTzcNoq_;+SC<`+)zuHn5w;Y9DCr2ijh*8v_y)wSo& z>}Ds~Yzk~PVM!nmdT0ScLP-d{N^jCZMGz4Xq?afny@-k+AP9mL6cy}>4Lgd8U2Gtq zz4yZZzUR)&ZUDdkfBt=*Gkfkm<<>d(%)NK+To7!vg5mMOUh;ooaGd;42+ooJiNSU9 ze^GF^{7(u#D*qP;Ka~H;!Bg@-Ef`%%J(mW{Fkuz-Tp7%k|0Tg9`Cl6BA^*#Qc46M~;jr&oT5n=NK|CUwWiQ^q%}U$B^SiBW@1#;~Yai88_miw||QY%|;0t@lZoQ z4mD(P61|7Xu5zehttP?jd}pIpt(H*=s|XJ@tkt?wOH`cRH(9GNizQbP9%@*tP369z z*tK~^VJ&^A;X*{L0a*Po(_s=b$)mS))hg0@n~8vPsNvlpA8;j%=G?GQOCM@TLG=nQ zM@b&Ssgvg1X;MocYDnek8(eUa4?tiev7qevOVpFM!|C z@#iO$VRlSyfO(=>+v-9OoSa$n-jJQ-i|$kxe1-j?_{}y(H9-sC1@V?&w7o+tkU^`m^<5y8tPd_i!F{7(qpFaHyRFXMmImoF*9YKR6sW4^!` zb$FuB;GtM8=}@S>W(G^I_NYs@!1ckFgQQE~%7Bhn0TQUgEWxE4!1~V#gru(Q%g8(d zM>lPAn8$%(az!RD@zv@tI8c90hRAwfGWKGEuj`e02*UE`G=k+HeK9M?wfsL_1Jb=< zdXNeqx*9as@^64Qr4A$d9hYQ2L%L`A&)wiNUPO#iKY`;^MJ~_s_Zts2a!eStyOw_i zxC>e~1c{bmX=B_Su4R}HHqSEbhO^fc*&YcnkAPxM0T#0i)Dt4{?3SS{O^e@DLEL2U zUo6Al^YAKx$IYa5ik@Xy*V$(<4_}b<7IGA`3`>UkB%^*5N0U6uV68!d?)}e9m;Txv z?}>h^%*Yy_(Fp=oMh}{b=MzXuFnY2T4x`b3#4@XrH6J*Eb`U>YVPrV>TsWX!bd z5fWQq1%id6l^t&lvZC^teaPjFH!wwQ-BS z4$?7?oD(BoYxWu7GkyTcM7AVZlVnp=OnU=aJF(Jdq`E|>_ovnW1_c|K(Qpb%$^x~2 z0G7&5#}}w^OXWd9XGHd-RDC9<$r&oJ8#gjDe?CYTk=%l0874956Oo&N@$I?1W>-;x z@6m4ZAs{+j+ z`xR)vdUTFV4!xlYeAE%QeNb zmq|C)UiHAmsLOsT+#Ahow4c$FO{W4o&h;6*bG`*TPh5=^(I~76FT)(VJ9^N14YZ6)BS;yt!lda)@@a=Y30gLtmkSAC_VYk;t1! zUl3+Q5EeoZb|OI{yVORgupd-`UFagDwUirmi>lA!spzNOP_idgU~e6t@g>CSHHRpXxJ%FVZc2^h zX1E?-6NAM_igYf($L`joP=UC~q?rB2~-$sRDIcLFNy{B(-q# znZz7HI<59D6&2SlL_&2*EMNx88bPo*V!Bln9LM_6$*tc1stU5N!Kw0`vpV7lU?bOrD#)?P*q^);cHet3X>H zqjR&jJr`fB&Uff{f_6`gzLKR`Yy~2%P!VL@8h-~ zvI5I_Q%nSLP6Y;2_b+bdw%vfVpRu)PuM@O`cdnvZdP|Ponr%u-;pNU2k8t_xb}VF4N0k_@Dxl6iaWAv!C$??uMyRKZ4^QkBj4s ze(Aw}%OCh)AQ-}J4I>KBtzJE^8+uL4gupSlU1n3nm$@|UHR#)TMF+HfSwdj>#o*%U z7h@}M8Pz|=JMbZ;{F`77%~>EW^%&@BI4yiF8|iQ5?}_CWb1OLR@wiwI@hPsyq(kUD z)Bh75GtB3}_PWQ)nl$VXEKBGv(|>UXZ5_<7!SJKYWZ11{B1Z$2zZIU^MLACr%>n59 zPI`oH=htwqxcz!UAh5vUECN^8vvCfuhH7{xA@G}HG|jQ#nnq6VKGl0|*Q$4FK z!24y|xS7|0O&3sHskQ2}M^K8d69SVqIvjVCW2LlM^RJQ6-wA=;r6@fQ6FtI2#9+_~ zHJbCi!q6T50kxehe*yZ>9uLdw@I2t}*VW-kfnQJ!p!Gb>7tF z_fU8CsmmZlys66`)qF-PM05vOo3BHg5Hrc+OnNyJ z;IfY7o1oB}x@?5`8!A_~;c}NpcBd|z!S50Bb08h|$eg;AnU)Z(&&c`hG1IdXbr`63 zPO!l>m^Q?JZ}}e>yj1>&1Xs)d$l%TLKPq@o{znHta{f=r|CnI4Ybie_SStTxgQJ}P z1@b>GxW)N@1pj&Rt(N-DlIE4c^wbt37%s!1{st)szM4wJ!A;rHJkBQuO}2b|P4wz909L8U@-!kN!8sHU0ARL^v60 zA!y4zy2Xaq>X!xvj`bN^LE7VySxx3fT#W1;A7JR(9(aAU&)^=xXTf78Qd(1X2JV}q zDIb#}>Eb(IDD19~>?v%0c@@N8hEgZ;3>AqBS>P>r_#DU>I{A#n zh+pHE@Bo3HTH-mVW#~{kDmc|dBr@{^K*v_mx4~91?GU*(Q$K(*^Z9WI> zCy!o-*{D9NAFA;V6?hsp$xK3lGXRoBUAkB`^@{!hLnHNMgaS~LS8|o^EKRTs;C7bY zSNIGbC_02{8ZrsDv;2%Fx=Dzg=~60ome)}YY9(kJJbDqu-Oh5NC+K&8cEF>T#MCbh zq~a!d0i<_5@|m4wRAb#jKY_>WNNKmToZ6)+DJY65>7Ko_7;&AYDYWE0G7I)J_+awR z&bZ@PD@G^A+m_b+RN$5oTJr>I?jB3?P~c`%6|3_KQu>gRw)GbDm&cn>Pl(ak4YF|y zJ|8#+YdZ)Wdtyq2@=~BzRi7~&lxIC9wWZ@6PQMB=?;-YMfHjutFA&OW>2`nkwut2+ zqC%0DaGFDS-cSGJ5>$5-47EKb$>MD8bqRhHp3@9g7fMS&?pBdSXW-L7P5AO7K)TQ) zU(8(SF4tBC4$nlFTL9uRk3s6k>vBe{%enoo1+rbxWf<~SHQi2r8iI}XW&4b(mF%ob zsk~s`Y=`zyJZ&~(5Z^UG#d-=Cb+)vde({tO;hBR+%N-vtZdqO0I!fAS(QMOSV_lTY;r4&jMnYB}~lAyVo_ zS5WlBJ{Z4e`2#Hinm)85UGy?-SqmY8U0f5z_8P5+4}z}C07k+7bSKfD;uGDpQ!Cw5 zQK^^c)P|b=az*-oNmRupnz#0PZNqq`rfb8h*2DS-!c_s*Ev$CehSi+vGnyc_wM#KS zM}0dssyzK5#zWNyv|%3o9*Vm*?7TIgPXTSNM}Huuere!%kY>W0ZDn*j1R9Cgn9!Bwg2rNhZD9$`l(WaUoW9!6R62kpV9o^Rk^76*u7RU#PX# z>kh3?Gd*v>n}+E(s_9753nY01-X7ddLlHd+V7*FGY`{ywI5`9Hi(HznL~p>m92Qeu z2jX^*L6pY^yeDwWGb;~);hBm|-hfvVGY#*8cEY2-$82~5p6>=&pFcrNK%pgzx^%H> z(l?OQlM(t2m6}(0k?t(HSW<91%Y*RrJ3vJ@s`;2nxSi!By3q*4Ug%Qv?4|1+g>zBN z`JgTJ=wDIX?JPIm1o{@xZt>_p#MCbh+>X)rVUTzjsw8Zl*;x**#=IFU#tHD4zfs!l zET7}HA>|Y)lCIlXWQx_R1??S4T&My0dFMd1%fD41R&x%i|&B8689ZT(-`Dd6n_LIuH^K)+Q@R=Q4F^9$~T_l_O7|7Bwe@PNhZCj(2kbGg*G9hd7F1* z5e<%3q!0QXYsKiq_%zSaniSNUk5F@uSel0d9cO3?4-qx{lH&F|>XEZW-F|oMVxKV> z9Fg9h5~tr4Vssh-N>frqiQDhOgRma}u{{9RII4I1oe$G8qYyjYrASMhrSlz2LY*%I z*EJreB;j_x8_&m?h0uHl$OkI2xSj8981WZCI_i-pGb>)_YgiYZ?@JJW@ff6%Vl}Qi zAFI4ld=K1;S}V9>12RaLs|eM9n#(nFibER^Ptz{fB)A4y!Jru&*%u8)Rj$ibZl*6A z4MDXCQY!$~bfj!9WTv&tb%mL}?{ae71nQk0$Cc#JE*Dl!cCGRmD-fd&f#Hb9R3Dhb z)W!;Yx7cC&64AeSOr6Q3U9O>4;2zviDjC_#1nA6AvEy>}GAnnd=hO_ut^nzc!f?Tov)=(p{o(j*OAK{=S#YK!RVF_)1C25Tss!0Mr?7xUrQaPBk@eL z${i-L9tGjKV4@q>1y6aN8@Ko}?J=E#q|~>rbkC!j(n8a#Lnw|eiL(^q#t}J-8)q2> z_SH_J5636kv9eY=qoPtT(Mm%#{o0E3|B`6TjYFa>Q=LSc_Kz#+Ro%7H&nqhR5-mmd zqC=Yqq5oS+P0x3g6FYCK{~=Z$a)=t+YF_|&9@J(~QYr~ipK{ZHm|%c0i)RDK^F2 zy#rAn5DgA+v!+EuZ&Mdn|EoQj&-po5em!u>A0v%|XYg1l`D+RVUj8_rCi%Nhn6gq> z2pEN49uuC!WDi{457R(vP@cS;8DM%17Kd5%?C0@)#RlsG-DjG{xu7iqm@n`?OT_u9 zx^~j0FUI+^J%gp76)eHzhN`;HpZpL)Iw$w|GrXM06kp!$oIF5F{0yG6wFFmU+?HV8 zrKGZ9tHAdLj0X#mKG4;VLOhLI(#X3ApWk93dV}N^g7xbbq6E+B)j;b6Fn{n0Ax+>G z!U8QX(gyiU>y~^g0@)8@X+Eu2;!+r7W??Jh5%U#iM@sq!;IElFsxGs&9acwG0BarlzM+}WN6UB?QU^Q8+DbdNpNoXC#WU9J04s{(4(<^YnncG!GfQ3O<{>Xwpjd z!%0ofQvSD4AB?_)N_h8ssTtXKRK}+=#`%w~z&8wWQ*I_p3BEwf-lLC85R7l<;M+He z$kk((|K!bD;Ya_ETxIWJiYxqw51`W_MSF--vWh7h*=^=w5AZmD54;Oh0=`1>F=xDg zV~2m3I%iwp{Upz`{6E1(Vc%Fp?lbyR;;}mnqs=(T)4rU3A;HMr3!9UC%o=+ zd!R^+jZ6!((6&35m$X;2h zjMNqWVOw=WUg)Z#K{08hjqK%QY2q&)Z%SLQI19_g`3AML9;+*TkIO>aYH}zsvM(Y_ z6MxIEG|Q`JvP8eZ6J&CC%YXYy-86x7&(<`jHHH!OyXi{8K|&4pTBCEuIDLK&s#t&I!$WKn0uHJ{RlHF z$?y35Z=(0{&bj0NBIZ=x%dqz7v1!v#uIsVv(a#`3_1F{ZH{-AvU4y`IZs%;ei$ z8IJ|VVLKS}t=fas)gzz9AcvU0fhRFYB);hH2KV!7aC;3EYjdx~99x`+2kNu}lq@L%WI1=wJe2WhVLx)Jv$1=syigtyWw#NkgN$~Jl zqWlqYJ<;3EseOELzoU;fhQzdh|0&D}QDWr(D)BX1%$^H@SL2bh2#Urp&O(US_!*v1gN^4z?Tcw^!q=9*Ffp<6{Nk1)(cl~5mII`qp3)U z3GRkZ$j)?gyoiznZ~XTJ+hO*F3C_Sa3`&1oL0S@IbOR>%9@WT`pq|Q#ep#xMe!Y>N z5UD;ouB?V6T?JA9Qq~^mxlFnNMtZj0*b35;G@~Wy;Z(znIO)r5Msy78`USs#GYmf; zAh&@_QeAttRH-cPxjK7Gf3bPv2kEMQ5;AflvxH_Ik6pmplf z>FWOaLcP$p9IW0mvu^3dXOT9d`>-g%n%*}_3qDdoP->dDqwZC*7#wZXK&SN&ZfDYd zju+9D{OwuODw(L$YJZLvY&JG7ld7wiP%4lu@gwdc&P{NNoqx*wF8g#hJ z>9EJFNA}wouhB-W#yOP&PH9GA*|%Gv8CO>^jmR!*NRBf2uGg(#F^R~<=)C=6JS^ck zsbM>-bJwr118y1cZdT`S;Xn?Sk;x8M4goY{H92Q7ul)}k{u1y}rkekptm~uY0qF#9m7BKn-s!l-M za}Ylau$p0Hb4UXM+6k6>DZrwc#PlW?`7}jBiQcE*jPHsj%nE$* z8=l&ag6D)M!90tY(VSa)6Rr%T<9UX9)IYfRP?b^=-4n$L3hhRH#CftYk2zv6K8g4oZtO!)UL`bGhw>5gtBr)4_ZN^vP8hB3i=rNS|6Y z`6`FLq$}vtt8N>m>2mN#xOE|4$PHbDv}AH6+@_H4^``N4+;H2%--z=?jBrUIU+k56 zop5QPzX5R0s)fr6zgPvF+mXZV3%>)N_b85^Q{h=DpHb;^&qLAd_LU$Y7Dn3DbB2tb z**VyKm|ocmHo)yO;VyXl=@BcP9o{gjkIKMN&^4{-viH#g^2TEm6~OupLx#~qXmzZ> z`^cSYhxi^Y&HRT9vZ*?~y47q@e+b(t*fNpc+zQ-5$67{A$oKsa>rOUS5H`Itbb!(j{}6j-%sqYT@iZRD=2m zv@cz{DILD`<1T(~_v{-@((&(O5NLF9Y-sryE{ls@IF7s%N11PjF*XV5cxI9Wmmc(erxAPOOH=~$sQ|}@AGl2KWOxsZAScVmu9|42G6(pZ~!`i=Ua_y z;uB7F80>FQ2glci+x4vmVzQV_>MvZ(sV=uSIDV9ZSLJETvq7s#x@6899Irgj zXUMyrZ9(hm(oY*47c_E|j0MAmE>mo9yc#`Olw1zlDwlrR;23S@lxsH__K}I@GKs|o z$7iK*u5VS=+DZ2vFde4|Gp|Lw!ExIRC-Hy4kcc*l)9Ve6)rL5l^1#rTOmUjr!Lb;V z6;h0DU>IprFR93=-qd(owz)_vOVbjo!C4BwH71s97Nz;>e}s_F_tsK{ zuS)y2^uS-5?|S^n37SogWYX~}vIEEQpf_|4FXPhbg8qsGMD4Y3|3 z(Y}esIgIDovG&AD9-fAz0-rHLILN4kPktV-QjU^2{1(SsQ_{e+nqrXUR$-3}R+2qevwj2D2RK z^`P?kCtfnc2vIJr7Sd~$VT~hR2YB;@j5mRYK4HY-8p>$luW|}_-UTB~#XoQu-1UbeF)4$dT>{^ay@&Ic6RrtB!*0oJ#9a z(DKNXd?@Ihy15*0qC|Sv0i}<96|^mm9Q_l4eyJM}SQa@-1?Pr-fr53B%GgOzI6U(v zP&P)!v;}2El{*pG9_fBAw2hSP+!~pX49ciPc8|Lw{9I$<=%ioJs~?C=>mp^Pp~R?{fLtYSEi! zDx+UxG%pbR5#ikBrC7WzSL%1f5lp$TbGU4$5L@K)_r!7GA>z5E*lAL9T?(IA-&nGB*@*!Oem zbVfPqsZB=a6SEn@8Qz2M{Qr_IuKlHCSQ(!Rv6Dr*X^Mh za=+aM2Gf#`!GqLI_7JBbm$NA@*6P!7Z^xR#WDtc+0dus~WT@D0CO5@D(`b7Z*4%TL z)izoej|@L8t6E|7l{~0=#7sVff2!iq?Xm1?rrZIqqPvdQs(9$QW{@03$K!Z`q6f|7 zk@%;Arz+BO|HhMM@dLU+Xs+~j9qGJI)6-_kS&sRi9s}<$a#!$(c%5Tbo00z%?(d?D zq|JG1d@PGb{-kSBgvCPQLGtmWCNR*&8%5#p(-ig^j>dmjx*Ct0kCV#%DidjSu!Oe7 z6Z0C`WE`5J-F&?7p=L}ridzLF5c%yJ?8HxWO!V!85J-}MFY@gg1cDN%f*KlYcJV##&YUJJs`(GT;7Kq2{$Ld;cOCvww7u4!x zsZ}1gAFCgSK79rhJT6tsWB5;(&rLvs75}B%{bMpn;|mslBeHe#Pu+;L9+xcg2>)1G zM(zx3TPm8PQaLA7&7%=R3;fQzcr7^=suWH>@xXsAEgbow8$o*~oqYTTKwKt;o_hP|xM zayI(q*xprqxzNXZbh!g{zE;xe4AA-FCk{k6Y=77DP@XHzko+0yk2<~swwv<%s|mWRlOZ}2xsyIK7?oYu(}6Tk!ABs4_WpSx%SP)3YE=k3yBHK zwMdzj6VTnKLRpr*7St^JOSyKfLHsUUiJnBBnJ|EXPYXs#n@aJb>g`;|Lkh7{QRrS_cnHYY+%p<_V_H(#qIaeK% zSR0=4rr+_JW9^L1kV!j$+oyG%%xj4U!^&t~H_9xe{rEKE>t)lAOgp|G@%6*(xuFs` ziD^0T)LJ))(5X)w09(gmgf+L;Eh>e`pK$^3!pc>M@4@_j z>z0*k6CZ~K>efZ!0^-B&Kzwm!(QoxZ;;q8H8E^LnPwUFVh<|(%@omE6i8n>*TX(A@ z>8_{&+3q^sW_Yc-^+uhaBv_@^o2m-WW)!+jmd;NI1#MGB=ixIHu1!>@doIe-rm9Zs z0Tifhmd^9fsEoE%bUv%2>}{huZ_QEOwpDe09zl6a^0O{w-tIyfOBz;LL3{+tRnn-+ z4&q5DOG)D@4-wBqos<+*SxEeR)I&+L=mz3`l)a>RbT9EwQQndk(L=UJ~dRNgaVeZwd5|v@e8AUkMC|OuGw#{t_4% z*}oU62TEX2rU>hNUA(0@pjh4XBNC~x#mB6`?$<%h91cpWSQQHL) z7#{hZ+AfyBh)8d0n=FBmM*bgV2+d95kbW;JQp}RM2{)ZFxAUzaEr>jh=q#Iu%b!E8 zqX^1#F-D@*SaWZ;E#(20T0Y~qJLxbB}%cVJU?GY=RdO+8!y6&57#_R zKbA2W^Yq0A!FWt|k(3RzQdrqPlb6}iqg(FHmm-&QP3c`ch2Kf^Xcv@iu$9WX=Ary1 zQBV_mO=87PF+=w7*IA(oO|v+iqVaH3pTB6 zp?FZm6-jx8Gcb+VDJg9X;v+Xcr;JX?GSOs2#>_+@l=>!`0QcC=?s#z`#iIB@^~Evx zlKCkM2EWE8xD0VwHmBiaVvkc!V!#-CF#-$H@PLzLZy`FeEn{y1D!fm+yp@f#V&tUr zz)H+Wi1EcA-i4!?m#2IPJWD3_il^-X%L<7pUW&Qm&MP%;ZdXQ^sPyS`wxPdftT2ox zU_YDOX&7CqMiUV%R^+LsZDV7`SC{y~7vfo^^Ur38Uw<%}mXUw|3y3-@to#;)j?KNS zC1QWo7K5LLaH6lot00|!*U|h^grj3?KDgf%9sF*D!(1{Ru_ts-=Vv6G=o;UkEbnO@ z@3_$>F_fHjk>7rTGP<5p?Ct#Agzjo$33QhIEs%>}q&D~&3f=fJ%;eU34$EBG`tg#V zra1k^)Czn9k%hlR0l!-jQ{ZHAWfRcv)LG;QEhJhS7BT&~h0lQDBh9eYV<3hy97Y*( zC&1V3yw8-|l;6N`G?%hYKGSu=Ph#lkxtAWo;zSd7My)l@l^mPtc zp@db4lCtJE=>=WurPi}!v2)pS*GeqEr4cKeF}TGE=r~}8_-zfH@Zf4Tve{IH_?Zn| zO4d3o=TOAA(D~%2H)1qxlI00;?)Nqn?vZ-TpM^(?&JT-q=C?U?wsVtnz_CbI)FDR4 znz4A@g*cF_kw_G8C{afD#)60Kj`cbE_LVC)-G%L$xZ~zb zV_~3Y)95@=+#T*>zTFt#&)O!H%r7_SxjKH^!N_k8JKD2Irt$9gNc{YRkzYtsi%Jae z`wmVsCQ;YsbV|!x57M|{`=sP$Ryo$`t>k2Wy5junVf3t&AQw^cPGVW5%u2KQ;$dVz zCatVW!em4)f7dds$`Z(}O*Sj+e;g~VrE4&A3$SFDz({6*7o+W4u(ei3(zqUa`DZ+M zrjbu}{K|W0ZKn+fOC9nC>AuU-!ZO|PqLZ0k@jg7%R|mzzS~H)B2> z&X(%&OmO}TE@Pdmsgy}QtuDw#Qst^)O)xMoswz0@xLnQw)yGi@<}x+BFX{`qSM5OW zL7q;`lNhq*cU=jdHR|{lz2{q<2l_;p$7s&3VQy4cqej?b>I#rnyJTIg=F&G>rr%fF z;n@xPzSDTvIm|oM7^mgc3!oo8jYoP%>!fWLIeNYU{rA&&qL&Pdq4NUq%H61IO4`D+`4{d2Ilu!)B4k|w+o&$4?15AlN(VY_ZqvM{2B z&C~9~a?P@N8h?miU&ylgm5xvg;hrVjq=juBi;wSikjMi`!}f=W!2C=L!Aq%-#IRhm zY@Y5A;_;|0Y@Qb%whM)wH^VCRHWroxKKik}>L$Dfrj9i}g~9Fk;)@nOr1SmLmSJ{$ z_6?Y)j%z=$@Hw4tKLFK$c|N47!n^NvZbME8ESk6H6Sz#(%~ZO*^X_7xh7J^;hjr23 zwe*1NX8&dQwwH@#0^9nIr8wHKpD?*CwR zrO!1oBg_*!VJ&w_CLa|tM{6GPsZ|I$I%^8F*HeoB6zAce zaT(V1nwm~|9ts-Ef|0%XR@la06#ppBvqIxj7xH&PrZkTbjZghMmaU^w{HHjN7L89` z=p~v?d7dj8mwJ{xxD0cG<+xkX zxw3_zm;pd^s39W4b`v-VEhHlBTw5R}Z1YUSuziK#YjDl786V4?&)9Z>mSxMa zQapXEg`inBPpS&>kgl-JGrU?zMA*6VFd*1~UcB-ws<6EX*DPBO3F3KDEdd^Vp%V{VT3nHseD)BM60-2)+gv;xRHXR(%=G zh_GC?gO+hrb zY@ro|kDKvA+&~r);q+}IBfIehAf*VE5xC&&yx=u#!a~fume?<@i#Elr*=J@j#LA23%6tHG537T zf8aO!IW?|7_TwOU>eQ)4eWtvkjBO}yokjWgV<#uD7HUz-FPNH{geS<#eX34U#tfik zeR}Ox#!g_17WTz7+c99}^T()5=GH{=jMT(Ka z6Dq8?nT&hFM8@8m@#cD#%GM0reQJFNhN`1SkLAbm>d05HQg|wbRbvwb-E${uF*lXR z)uDx{#mrP5*O|CJ>mi-{a+`o(UR_I$pr_o$9Aw$$^> zK&rKRGvATR;V@t88o`^$_P&(Hd62%D(r5XYY|0Q)Q*QwEjE~4>+*Xbk>L*&2sVC!M z9mtcwJq%oAB}?Eb9mr;&tT}dPB~P{zj-&sTwP9e24j3ssk;9tEr1;7?tI~UAJ=Pbb z`5v=sNFzz}J!Z9%fHdFZR)z$mV?1u<>yE)w&aKVREDeI=&Fk|(^Rj<1X4^j`q#nc# zQq}>rZ~vqNM#|?tNW82irW(FgDu+fs<1f@U0!`UQ8R|R=SNqt0wgHj%fF~AX^=9ktVzmwNZ2Q=u7aHUNp9= zJ0+3XoB<{j?0myFOl2~g2ux?70kt7;2?MS8{Ai@`5E5$_lXg!Sar+=8-9AWM_rVtw zk0WXN0%Y;avGl*%^7tO8`1fN+MoZtAXVqt;Cu8Q{1dNtGGS4bz;mMFEAzTI!H5V3xBIKBI}u%b7?=QR8vYDW;5 z4P+*u@i7FdeTmCfgf;_GzdVU;LSDghAI3f2C>TC=BMNT*2M^ESIS5ccgYP7e6M!7D zRZ9gq8Jp>n0C?y16!JaIQxwB=o%-^Fxs_R)p+7M=LZS(!lGFj^37H;N$!P})`D%kj zW#KXu5`zIMh`>T1^8s}iJ4xR11kPDj{c6oO78vu5Ja;%QR}10;4eP zbPOO((tI>JFCf+=3lW+RNM)tCDO54mL7Ww_6xoVZ#w}pH2_Tj68;~CWbx%4stFDYe zzN;Ttln_({eOKSj|9<8olsuCy{;PLaAEbJ;xU_cnF{aTGAg#R-$a+8yS){d3BJ?pp zeo3so+FpaZSW8XC!TwIiZZ;NMcmYz2Lx2ndB(Y<=BDg0VHLkE%qw~Q#m%{AiHv!oO zkjgv+I1(3kXbk*aVvQ9#77huJ{dQ*JG7DA{wKq__^kfDIO z#T9#*RAdq>vaMGEE>_*C0IyOPLBRrQ^z{^AHNFAlRR&m%DHCuT04h{ts&P=4Zy^U+R%3s# z^ae;Zt^=|PP@x*rw2WJgZ-D+P1z3%hCgL^#oK}sMjPK&AaWEMA1Ed<)0a+yyQj?kV z0m>bp15Z?s!saivQe^yp18lESj^lq8j)MvVWc=?Bq&Gmue^(m)3DWNPzY64KrCGQcKz9LS@93QdxFrY5&ZJ_qkf3bRSlF2Vf(kR~Yv(i~8sNz%^L z^m@ZAmWfR=8tfw}Pos7fkShTdnk4;9dACXK2Jc=9vq|0pauje{lTFdC2dA=}k(} zL#~EZv?xHFC08KJD5n6Nr6#wdX6P)91J5Xc4D(xnYy^n2!Le0+8|jN+9Kc*!cbkLJt8_>2_}Po{8>;ILGvbw;@|}H9rQ=hXCye zxQxi1BjSzL5IPB=n1_WAQ5!yhI07Akv;)+=-;r}XENf;rI#|}svWouIvtEuqVvbz@ zY9Un2rB1p64*2a|hnkxR)T0Fx``F((# z0}vm}6;qxnSAo|MGr)T(h1n3BfLsrdHh2ukBMi{T`V`2=fLI&YGvHql=wrDF!4q}z zT-C`b+k>+Wv8rtXp?rW;?L|Pw1L}q5xeQOm0Q{2p$k)kJ=3HAlRr zQ#1-q+!Nmw7DMWCfOLi1fZPJ8JKK?S9_kv-#PiF{TLJiwd$eOzT+n^ElWwxg%ejkr zx4PR+UO`eXGi`R0pMd-T(A{J;C{ZHY6x7Ijlk||?u zYsSRbSe#@Vrh4GxfY%~!r1R6VQ-N7?agm&rW8%*kvL$L5I}p|Pd0nC-`p>}kKkmW2 zR`rGYG})n?a?M$d&WWHUO1sNf-R-3|V| zRPYo6M}fRf1#P}@QslFK4(_<18e~q#b)Y%3FDg|vHQHo5wSDVYOe$!WM62m{P8#)U zIOGS>7)A=uuC^`$m$!^m>(Z}rBaf}Dtq;$wws^2K=y9i0uR@GIof>9iDo(MM#e;H{ z*rSFi8)>l0wgM|uDLmNPdcoCC5(H-8SjA#Ftvdb3Y1kADvh@irVrL%TfSjiDtb*?t z&lk=melO$0vVfSvx7e+sdy&sGUQ^Hb9D_LCW-p^)M#EJ&-f5N9N?uz};bAA%2#CpQ zhW}xedjuJhd42?%Oaa+Qc@90tTBDh;fUzuo0b`kJAgdX&fU!&!Ghn3f6mIJw=7!5J zvKrtlUy)YqjrVmmBHa;NZ^ZYz4< z8T2L*p{E}_5BpX?wmRY>^;Wz@bYMi86^)%Pn9>@pV=V>KnQIYxd8$A!Ea>H_0==M+ zAxjPgRs*g>7%3+PqO-pJUv%7HrISPUv#O8>*3~_oS zJ*=w6M$*HoVQeHltlGv#(pOXlM^bb>u1TlxtOM&FDDl=Xz4Huo*ZaU~CuvC6J7yI# zfYnA!NFD@cy?~44X$Y03^Si`vGd}Tv6VGv0x+K0#T#esGMqoNWQ{05(WLW`TLbZ=2 zRLTOyNat}hnUFLayW($d5Q&LKdL65QoI_Kes_S9#w;ld_0DP42<>F$b^YEdmz^tor z@oHBN7h<$NTuAckETo|ytxIP;m#c(zIi_r>GrG$Lyfk|UM9h7-hy+*iHA8)BPsf_& zllXrb;3KE+4qS}%!%^Hcz^vf?sMQx>*jP}}Ko6o8JqO>9dZm{hgYU;yWH5)hsZ1&R2ZCt~n7p-7S-(r1D7{A3?-D1LYO8l4dH0Z)cQiLKR1`|< zRfmxxl-8?Ma9Kq?CrSlfWZAoq*hC}!%>o<%z#P8j=CFy^!~>O_2x_D+y%_reK{vm3 znONWY9Ig5kJkk<&=>ZsgfRCKM&v7w^7*%l+G~$}BLkPbk`VS7-dk-VqbjWB~Jcmq` zo5t@LN?eDG#7hu22H-kmj0;~5w*&C+4jFCag-)t5%yp>XkXaAHJnRA2eb93cK;4AE zJ3!t7___M($}10Z<>`=J1CD>d`WI!FB9M0lW;p>Eerd*Md8wDdTZ2P3>LH|94oWXD zbpfd92;2x{BLm|R_!`JbfH-8X0%cHvZ@J@;l`Y1>4ghh84gz_I0Xk%K`h`ny zL5#n+w&DJf;NYp6vrX37rbY2$o_Iz=#agvS>hcsg&Une?T|H~>G=U%GVV86U+}{Q z(9#c&!T=CM^0z=(TPHQ_n9GFl-}%ENDs6n@~t`UVpJ=2>*N zA~CO^yHz{p6?C_nGf*~T2)4JJV^x|}PKEp$h}8>ITmPo;KC50#;eA$7OyU0coizKc zsxj>ky4v~C5H*w9&-5j^I|&~N=|Tf<44HtPeK&(K4KHi(SL)a*wdLe-oIJYg3Qg8y zrWjm~@sFXK8~}{|sgY%b?oc&bx5P~AGRzMEUQ&oD{1i%GRvb##Bkl@-F^uDU=w6k{ zalX@X(?aQ$(2mEv4M>-)G>r)W^)Ui(19^=B z`Z0}HVLBO*Lz!xSB4!stI{~TT@9}Dmr*k{#_InBGUp@w%H9>j_JkJ3t1dP;{dr=vl z)T@*_me8mQb212|q}4FS0AF_mjJmy_mzFW^!>xupG0|H1kB-1Kl>_=m&*?Cl4!#8| z;~lEv_}m+6dH~eZ2&@9K43I;%Og?HX@iNgAQT7m3!`B|sKAy6a$t_7PgEGc|!T*TL z^>HhbYKu#B4c>eQ_?jY6ca5X!NqHU~z#IgY16d5H zLqE-x#%{qin1{Q@r|74>5AxgOr{|Wn4pTFL8kv8_`2EII@Z*(~8qXlRjX{|NmJ0!@ zHUhhV+yqGd=^N}(amt8U1<3gFO*8TYgv@WT_Xs@i0sPzl6XU}P!H$GCj2w%qz2Gpf z#@#|N5*9<+&3uA~>Gnn<_01+dnaI^(s|$(Rlu9@+PRKs1P&tKWf~^+>dQd2JbDU5T zrhi0x_uI&L8%Wc@G)1&0$1x_KO?&sKSjbplXP1m*#m1E?II z*U*{TwrA&48MC?_>^A}o{{yHaw^C9)%&U~`jnyG=oB;1r0QCw2v#&FafdD_p6<0RR z!(7?GnwpAZ%&85Su>vTLI<>Ah@j46=M%6a^4zH?sojHbS1-@ox!h6hb8Q8i*q$|Y| zIIZHcVqbwP@fR%d=kpaxvSJwgNr!|3|}kLyp|e%23z%wkOmm3oQ85)Eu-mL^a(J&Kt{Sc zYd2w+8bDl~KAW+y0x(ip+>>4*$55)ZiE=wd+ytiS04ZX@R%~_x7zylut`t^>9eFQ< z&`?MX?2AJnFo;5_oM&@c{l+>b)y6cBl99gLd@#)gh%dJT$aX*tmdX`MFb-1aZF3uC zSg5bT@(g9@zumA6ZZ<&sZ$EnV=VE@h1>z^v4np8D3K>b9W6X8zH&!V;OpEy%nVB-* z_!+p51H`>e-p+Ll1nAy22T}mQ@JhS%o0o&{kZsr{u}LGqFq9IsNn3zy0LTsP@+TO5 z;jqD6be~H@#!CDVJl_Mf@p2il=uAc!uV=|f;}yLLb{?fyRt)kv2CF^D?Eq-T z#gK5BOb^rLl^itri;8KmCO~35rNm&lLcX&K6`4^IrB^264A=)9|E!d?Ckef6gNPU2jKs)4j4iJ;F z7|7)SF)6N4g0YT5Z<{~3`FjB@w^D{CrR`o!w*!nioTGPzY~vt>;?2l7FpVLjwv8@l zOvbA;l&T-|$J=^2B$iT2Y)_hFaj>`J-)zs_VBQN5+w&%nHyEJp`5VZe0QseI;<16( zaNi-fp_f(75pN;a7lNdQ;Zo}^jFbR%4gx)ZbYq|lfoVV{19B)hoNI(c?AKJLFJ~`Q zr14_$@(XCg`Hq1wJfot%;RyJ8^U|J|7Pt)OTOwpgd)mtOZ9%}dmX|AVQJ3LzAJV$j zO|Ke{TN!mX9t;4P76OZ$f}oq?aVG7674>zXXdy0}z;qoz)kEMdAg=>*$S1C>D~cHk zimtPwf4|PGoq#x9*z|qa3=I$$whxe=0C8bmNmC^0!usgKitD-@OiL(5*Y#N-PXWYr zb*20`8ysE1aa|P_ME@o~UDtL9v;m0g`k>cFW5ACgV*D#egRbiwuv`XE9477uaxXwE zN#9s?c$jW>8ihSrEEY@hBly1uXiMS>nTCtSTas@n#M>--FNP0*+-B{8v;$~MGSo}V z#XJr0XbN6}23nHw5ICP2Xh~KBSt%N5Nyc~@VwjV07>M!IKudA}0(VnLEQ!l%8V6BB zv?N=|NJ|pB52hI)cj|N?(*TC}CKH^buyxc+)JY2W-w|ry{kIVU8$^h1kjrX$m=-~@ z5UTt#gjh#ULEuq<)KPdp9z*~}0=*kogWtnE4KPcCsDWmwGXy#U#4Jq$GLafmIYzo2 z!ZyBRap41WISeU|iyOhTj#7CD`~&1K2I!yX9YA*i$hhcgNc41hdDx!)BC|mMya(93 z0ra@&$^_3MqsPTr;GF`Haq&|i?*U|7bY+vzkafq!?)SsD2FSQL704w3{KWlm#bMr0 zZz()4&12!|eq0Zc>nJAfhs)|atI*vPVj&-cz#}3=f7KOA@G!4pP|YVO#6EEX0-uTy zpA#STI+BZdy&i5?^c4uv?Mi+CZXiG#@GB8S%%+nz>hncrnDtrxL6}K^u1{Ae@vK6| zt4@7(fj}n_Vtu+oK@W?s&q4~ZJ|{z9k_fSXyFwuk3pi5j>&=cph<$wv1l9qhuQz@O zTNnV+*CzlO50Jj@YD@97d0E(=eZQOS)nH!<(0$#NNjr;-?(2_%_a1=s^??uLMgd4) zcV*Mhkahd|aj<>@kiHe5gu{1VuiuJSsQi^X@Q3t4z}rlt^SOffO{YrW1C!*nTW z?zd2gj^hvr3=$!lGMCl#Fw3bK3LT>mP1!;S%m;`m+X>_*(Ll%XIxkrl^YRLFpZgj# z(A+-yy40AFLD?W%CXzrtr;zdw^Huo+ozJ7-8PIJGKj5PN* zf$186nEOtTnMMbIHuv;|`BR3A>9Drk2dRNwaUujRq>w!Ix~!J5ok_vO|3XIA%MD;! z1CV-Y@HloP03YmFGD)Ael9<=|cf5Sw%h zkX;PWCcOmY1%UiAxi;>Obhhy-DlhG7E6Zomu}s6|M{s@*$mE-bE@PrF`oD)C#hqvB zLtLUyz}o=S8M-evP$vmv!X}@Zh}iZZw*%A|3Pb1Ws)X(-ws82H&@`SDu#5+!-iu~- z*(w`N!RA|UCO&@@d{2P17Cft|j<=)B7dFO_?_|Q~Z-9+=-~q7Q2Qd7ppTmNARp(-U zT@!}yKR#6l93O!9J%GwVzxFmMF| z^MK3&ByqciD-O^6G)4Y5RifgSi|ydOk-{YiJPYI*1_}`P9>}+VdY3w~hq?C#zod1j zJU3E#m{UB~U8cGTERm zbWL`RT%xBay5NsMe+ZN}zu>J(=(_liE0O5pe*%Azc4J5FSHE_7qV%Y%p3FrRz>eDa zZA$s!sMm$sUvwR{)7xg2AA%qC)lg@FqK~!Re#=hmG?HfPg>jD?7n4NQc1zTDvo_mP zh!+5Bvwey2IjEPw+H5lZXPeCk|EtX=!hdVCb$W`H6R`bRn{67QbAYwk{y}p({VbA` z7HzhVA-xBz%{K7qT+|oTi)U>%m&Vb^OOeuMJNjb|J8QF@3j26qZMJ`5ybP?(=1Lkl zC|kDKR(mEFbp_UDn~E_BSewmNWzk$z-e!A-zvqi@-3`xD%LmqGbACCsQY(cfe!vA$ zn{9t6t+evs(2zVhPeVTl=7kBeyETRnb%EPvt>3@vRVS3G60*FvdU3gKpw0WggrL4(#5% z(z|%jP5deZ(KGkAC6#{iN+IhYE@=67d<4A8bXI4m}nwZ++9?YSlZ&8~gHN{=$Daa{#@Ca@aU0*v_zsK)gr#^)fk z0*7W1(6cn}O6c$!H6CE)%|RFwv_V(P`E)2Mt#XCV|1eyk1#ljcNRJUVUdZTpU{`1Y z#y-HVkb9`ge5G;6+w3mw-AjJ1=tmGZL1Qk zU!iNEUIXk3J&W-);A8!{F0YLi>43Q^^Aty2mG7W^BdWEJotP`x4`*qOuOw17>-aA! zJRof!yC_+%sM|;3Y;1&Ju!)q-TvVP}*%{<|>@1N=fe8rqF_F3nw#*Vu!AfPiQJf=@ zZWQMtINL;O?KzcFJjk=;iReX%REpk%U@ovy^c{@1%!68cBeL}6R%M8+ZWOhP@Sq#T zUkLt?2etNAdxKX~K~%0A#g3T=x3Z(9{NGF-bfee-!ElM}M&VRu@414j2JvVSb)$G3 z(*3{+;tk(qAqbEbulr@Yax2>v#p|8&pc8upg2^V*IdW<~vzm)Omq_PmHi9cbqG9uC zi_ev1rAqELeW;t*-R65#-vPVZbb5=Ivp`xBs23ys6s$Cyl>{3@-Vj(xFacv91ymB8 zi*YuvPqo@!9-+$2O8=y?U2z4!@NQdM-Tnme^s2~}0|9mQ4EJgt&DxpsNvPKg>KRuy+%n^NATwTT)a zRt0xj+Y%a8@I(y{eXPOZ)OICQj;Qo#+LzFDG~HB1FFl$L%Ofx6XgZeimUlFrN@&fG zCOszmE>;Kxs^tWVP|W_8tc9c?YE#>1JIq%bPn0kr2NX>`88sVM(^|v zxfa;?bpETIv>P|u3i^q%ms8TQi)(beZ#w_iUAit~`T0AqVN*6J(gxMnZr-152beCr zE?|T6)PzX~=cQvAKZ&~(-X8cQ?xmsIC&y)?xSp@lq3IoLXnIB5 zL*vmq*x2-nIGw4g?ok>GcT4&SUlzB<^C4-{@nm?slHO|TaMTAHxE8Ojz!1GDmuwxk zKJp|EjdfT0Mod?x@7AB=p>~GOg%U&6O`4&U?VOAKq7G|x*WXdC7Vyn)!T;Gf&BC!U zPE+gUX5%#NMVGpX6QgJpg4|wwWh3XK-g2@-_ar)m-zgvwDXN{P2+YQ8ITXI?#I8DT z>G=5*Z9=iA_FZwm5%<50pP$@N7(YLGlfwAp*3RBNFkxO~#vp=3iX_2`>bef3CmAb0iZ46R!T|gUaku-ri*)iD zEP%@Yxg(v_>LNSGQ71Lm zXk1irevhZHqu$b7Jt~Qw<@a@vNRZshS5*6@uAk0k?v7*x63aG)_dK6&_MYd{;XTi>r0{W2^Jnp8 zDO`j9E&k14zR<>=;pGe2>B|?jul7bcTanY-E{gP$^K>#kCsrDqm)GbsbEd=})ji&e zRt1}K@B8*WPA{CKvDi^>Ne1u2(`91Wmuwd_&m3_C*mmA30SakMYL{{ZP7s_tHN zM-$AQ%9r_;F6u4HV+}k!14?y8L$yokSe z9A8!xD%9-V9u=D>#jRPNNrRA8{9MnOuDwkWITLF0^4DJ8lcT7vp`0hdSh+X(%FcU- z5iw=l`*GtYT=TTRdq15-&kCUAgSf3y?J4n)sjR4*EQ;Hz_~evoPtTA&mhxN4Jus2) z=jgt5v7Z1UJKR)U(KW?X?@=;wC^rJ-5-Q4ydQdIZvHJOxK+wb%3p-h<+Rqhej zZ%S!mM@yi0TEN^yar*@1+#9aY8$QhvpgcWyRT6#1@7Ev^JF0t@o7umya>>^r2H&BJ zdW$k(yCmws=9NJrQdD8ow%zw+5MP27Ks+-4c{ts<0|0Zm=chT#nvV8?MwV*OH?e|U4mz;J`#63N1Bv9xI{Mm_uc&ToT%L%PKbtR$+6EHV?t2K^Gy|Cx z^ec>8%L@9sBRW(5iT-b=+s)rH#%eXIDq{?>(y5`Q-D>28AsZY?PG}4P4gF7grva7i zhtr_0DYvn>WE*w8l0uftbqd7afrR7htv5(T2V5oDIlB;A%TI|eJ1Yd@X9HVvQf zW3Y0#ZZ!&3J-N$k2&mC@Lx97im~VDf4vy+h;#;l7yc)3?r)TedIe>X9r<`*9sPURt zGqAuJ_ZOUn^(ki@e$@QSt6wPNurFS~y{FScb`{lajvqZw$m;=%angIrS^TL{7`Y97 z`yc0Vv)XATF5We!wc|>zX^4q`)LU|Ww&iy(kVu^9X-uLgXiRK;^p0HFHdUX5Xe1&B&WY1Ybr^FaGa3%#+!c<=LvH>2ai4>d7NVMU`VKRzHBGPT*(-wpJjjU42hv5B?9? zVHJG}vcoDyq_Vvv`|f|pj%vQQqr%?m)?J^&N0rwrBo_I?OR_zZE_z9p*K`JvI{81} zw>c@QyK#dk+CbZP@a?+Wr3W`RS><#c&)Supb-%k%(K`~FoeZ@xNIG`S)Aq)Q6?w}; zu5NKxI*GXA4s&&NgS7&zf`4`Ox@p4Rnu6c~Dc)YE~2pIXS9bO}|vJtRqVy zOVRp=W)~{m$FEhZ7WVOL)xcD7S`AJh=Lfn%88zKULlUY#Wz}4Nkw!Qvz5e&;kk4UT z)rwql-SetW`YMj5uZp3BFpXr^VTUf1PV05E-TrGZMgS|f8(*eVZ9nQQ%0ZP$ zbP&IjKq699H(?zHYhdN3^JR3Up~7zdAug-cNB8kN?I|RDj!l1f6ZhBOse4JkDXrTL zLAmam7YAN*E0t8v$#wY!daS$QH24>Qs9d-0n=_GH8;0Ff-k56>v!mn$Xz}5E-H+;C z5bsCeU5vNEST*U2wN)>-NoKG;Ig_ukdXu_@adu5IitX_*zW&C~pP)>0zRb;H56+E~p18G87m>sTL*~JVAp)cG%z!Jia7$bot z1Xsk7TbVW_gd?FIA*}|e%)+=*0VRZ|F`fjL5M0i?m?1juC`$-m!TmyFC4{yg@^S^R zgs=g|dZ6*Gply*5d?Qm0hQGrpDI|n3i1z}P5S&F1M=?JngfpO?BDxZSlk%D6?mZzi zL46ElpH8|RED6pTvw1EJ#+!2$v2F^VLR<_wsm10T-a-*)n>ZJ%)z49+;tGf zS_-iXGgL?5h>3Q21*)cT91rJK-g|F;3lvZVW z<+@lMtG8}8`|g-T{orVNxI~JimanMxn?1Sp9)jECBgb1(2^(Y1<+wSt<`#{*Gsd0U6)Mep;g zj;utAJ;m<}!1`07x(_&(cL?Se^Hn&O(RWY7*B?ALe*)iphK1xG z&)T^iGni|BwGo#gC8@jsc6;_YR_eNKjp-LrMg5p*vcQ%jPGWJd+p9-yPakDRUa8OB zVRrl8G%%M0zXdDZ4|~0R=xKjZ(CrCpwNL0|1o3DB+hB}PU`GOzF%AROPj@J|;LW_? z)}7fjtbahc67J<7{*J(WjK>xDguv$*pDFMTfi{a7*95B9=~!@^FLk?Zu6sNI%KC5z zfp}K}V=?wtU>gEwVw|qPW(4lUxE-{=jKGo*$0W0|*uLI(a~=A_u-=CLru26b_#5L- z1#TqJYYD?)K>N>|IV)S9vvN868`enZ+kyBO0!LyT0jd`_yAI{0dd>FwZz$Koy+-2i z2|SDOG@vB7zL~tTRL*R#55xEY@-nIKCeZm)$|Zn$d^2_Ra@EJc*bMSe5FbY1AdCY{ z&CD6i6H)6DeeTW;pJS+iC8CRwTqGY#M2}!Rq<|99Cm4%Bi$qjg;w(!wXVbHe#mWU3)n5cjf(Ipr&K#N3Fw>)QC%b60<wuy}v_h#oB%*PU$4IS2bQZ=Lsk(V0>bP9B645=7=SrbrluTbcHvCbIcobDrO#b$cdX!mC-6_%7ifgh1cqa50qVu-ba*r2N+z^PhtFp7 z`H;?*>NoKS{uJ zs$CP}b}N4!2xni3t|D*~#`U0FPcB`Q&#ZK>R2~km=<^2;$74Os{0{!dpjus5u1PX0 z(`=q!*ZQ%nM~haV9)dc(EVFnTWgqQgOpaaX!RVZ?D04xJU6hw<2IkjkzKb^MzZe$I zRe99*@igXp=BWyF=fQijg1##B^>3J+G}nvMD~#Ui^JGB0CbOE1`kDdNAnr-v0*rGM z=tSUIj3*VSCXoMz8L0`>YhRbg8?!0uq{->rEo(CKPphW!Y(s zjOEPP9K=fNgT5o@154}UFvb8&>n`A#j|42b(MI`DY5iO{XG^5CehU9%mm6-o?BmG&o2SXtv_S@sDN^7mmhdl1Xym}8DkWvmpJ6sHp;E;mUSfL zmfX5n2c{f*4E&?yKsk0c#?=Za$3BCxKmq00=*L|27lEkZz@jXxT$;^}uKY`u-73wp z)sK>}56jY@TQwm=SvmhYl+|#)Du|yZusz1MApNvgrTVPkqF@aVf9LM*bR)}o##h5S z8qtyRGM&Kn7}tX8+nec`IVgB?ea(!r`gj49m*Bo2@jL>*V*D)eYt6*@Qt{-nLGkBM zy8px&dJw-yU~7!wpj;31eSZv12zy@N5B~77?h_RC$vZJ>JCUZ0#kMUg&Q!4_Eb;#>=4E7 zA&QmzRCGvQ<&R{6zUJ|@rzRXL=C$gVtdhLWAIa1DdWf(7i}>18Q=OKON99+KkLHha z+3(pPnMfcW!`ECwcY=o7LPXx0qXnOKPVWk~AP+IC{)Lk~KQIbbTR*S5D6L6HZ{X>5 zKsAD90>+;}A6v0xad5y>)h6mT_x6glVp+dm**mZmOHRX>3hKouTCv3CJkiJ;$v3V# zuXSV%S4ivmtnwQJc|p7yfh{mL1GYSdtMVoKY;2t2cmdBWmaiIcQ9%CNHeZZE- za8F68r+f0WMXfbWBk9_*zy>zFE7>m@)$S4y-{KxCKeU&CU6KJ9{T0w6GCO080xd2{ZK!|9JdhTMNlt>tytos4kpT0EE(`8Nfp={4HsaX1#HC<7j%pk;X`eK#kHIn ztyuCUoX;fE@(PWAu{;s56-!*y$wb+b3g__u8NilQcow4x)XT4}tI+3f-i-pbuEGS2 zv7oT7!Yo2p0$Z`;7A~Cx=PwY)!a9ffz+Y6enLLVQ-x54s4Z#%P}qn z^`h8P2@46m4D4fTmh6`KacjNwU#p(>ZyQd3ZJduPft~(6F?I#Ex`oT)$Srq}U5d-$ zUL>)`YkY?B39zfsEtikF0J{piW9$M7SK%T;(}0~^ch7^k5a$&_Om%WUZqxkaK7{Cg zU?=xSjPF3>!Oc!?Wa~~GksZBTUEHUi(be;Ldi=u~9f`3Wu#?9mM6I)bLQ6Q z;4E97P}_Vfgo=e4o#wn3Pd4GO+j@yu&aJ0#^s>l zpFx*qsU3PwX2r?LQL~juS}Z`>Vp)>;S&ZFU*>~>AqlsNSrhRHzl20)f14|y&{GkLUYsS>WBaVZXr!Ys+6}yvVS?&bX!phWQ2WedAb_g9#edKRF(s-wx2*382nZYz z)tpzhngUVnMGin5+*1pn4i=owNEr){ z^s|nl%L;KcK*O9hgg4h`C2lUYY+8P_`+H2++8gOMEu>Y)_M#_>E4cqTL+$!-v3isZ ze*O|&pT^vl}E` z)>(3zHAR&n(e{7hCQTS zJUBLoZ*qk@Sd>S{eNrz{zEYn=tH4pG zL?T6^2j)@jI9*RYq_zaG4MuSSI61C)zN~vrho4gnbLKRvYubjPpzw2N@@2d32ZalG zKvZ+QU6!b~9It@x_J_59NDTMks$fE^ea?8OzNt=M#n##zidRC zRF*PXenos(mx%R*Scf`GadVcWuqKK1saTgdODD`(l18HsoJMyq)}#kHHa^d%Ka796 zWTj?3mK$-~=?Bst%gYC-$1*2{uhDz z%6!xrbkYM5*D$IGP36%QE7${%z4(7Lum>JVL;z~h>1C(9(@fyb22>_yKw{($qP zL<%ga%0~-9s=7W?b<Egh-qAZF4f4empXHVt6B5e`bz9w*745Kt8p*LZ?JjUwIb}iTC)Vw zqc!zz@LGJ}grlO|S*vN}^O0;g40PA%(bFDDUB^+k>xkqzod>wbKaE7oj{2;&QHC zLoIv|b${tPdQmgc$W%0hoyJS~=L|R}f%roL?_j(Fx@%y9YnTlS4TFrf>54{!6GpVj zM_Ykd!xaw0I2hP8vaYF)n$RRq#6#yRb{Z3W3!IxkRIbt6PRwUkIAIbs{34NtYrl-( zMH6Yv2taX1QjCeKw0Pf-$~rKH39R>*X7#S7esc z%ksIlHeK`^aGwJ99{IU-`RGhw?~%K>vPA6fkv|1>0kB01`*jw}NrFG^dIEi>`eu$jtt@-qAdFQrS4mW*UepB2I z1a_3aVEhDH9A(=QEk|h!FW6i1_3iV~%79O~hH>AJB|*2c=y8y3SK;DmDEOvGh5#EK zasmF%oG2&esT* zm`Fp)otk8pM~OXE-Q|1Qbp_g^AnK&IAY8tL)2>cwxP*V)`fMe3qDPS#O&oXTH^Li~r62NAd(<5mUqV%zH&uYjoG-f)CkK}U~! zkF!{}S3dW@;>_wA4v9QJWL0*eJm02cKB@wi=MTcz8(3C$J>zYQPa|1*zGA7Y{2TmV zKvb@*?9?Q)veQUvxV9T2W#v^naSniGW!IFIXgn()1@&-XS=s63CG;#SzYg~qV2OO( ziuq^^ute_SiW0GB<+Grk0W7iKg>eVa#|lE%S4G{fPYc55bxbM<--P!saV_sVv8H54 z%KJBUZ=U!6M)ek!N`k@CD#lgvsbX;!}8_w+l0?V9(;#;0~7Zs@s@_cV)N9FncUGh<1V0nHwjL`}x&!2&D z9Echgh9k`Kd^bgVtcLM5jZcrDWBOyWy6ngHzY+ckYzVQF;*4G!=o&(NM^B=nvE)7L z^HC3ALx^3&Q{AwO#5GIHUsCKfmV7w$VIUns{9Itt-4-myPTI%kxH|;yL|{XRFUGhC z*brh@#HHFWg!mz-4@j#a#2;e3uYiUSSFXZ=0vkf?j(F?8C=z8p$6Y_Ts{g zjYyOOR_;d23Rn(s2@^Mly|_d<;G+gK$^o0g9|9}~I5VGVs>87`i2m`gd8&~6S$QL!l3&HAm0xx$9#bC9RPD+O)tdFgLfye7vh{obutsAUi3m-#p-DELR^p4@=-Uy&=*2aW>mL^q?$-C#I+kh zy)SzqZaAu8z+Q+u1Y;tw7vhSwr7y&lFq*#*Hv>P@fxQs-Y8E56yj=Dd;vR%LPjnUI zPAXU#J-iV20o3<^y%6Vg7Jm!-Ss@%RMR?MmbEG0X*NgK5EGIfKUm{UXJiH$o<;33b z8-V3R*Cd%HOX*9?FY1d#MfgbQ+kvza^HFx-Ze^N~vyOy&1hAZS6~;_pIm;D{aR^>A zZOB(`;VpXOVW}FU0NJHy@1y_CnkojO!H83vvI(_yyPt zajuS|ZfB5O{Drvn`{ko`fV~iR48~Li^g`Ur7|(-=D>th-r~7a4`-HBJKhmjNbYT>& z&J8BIj<2j9-}8)TsnV_6Z)588ugCQt=A(P~`;>Ugr)zjIYU8%6ug+`4Q`U@f!#Zwr z1m^gICq%ieZ1XAcAyWoMxzQ`xA5+$fa(kM&<^6lG@YA>zB;E4lcX7Xu*+gzzt=z61 z?3}}B9ko_m4plw=E9PK%ncr7$)r0Rj2atgj*-rgQ)F57)!21{vf`7%Au0@k09>KPO zSpB!b=)bGJ#`ASWd??@N3?z7%wjHOhGxartufaVYPtVfID^hEPq!VNV->dSM|CRog z4S$aZMh90lr5le-xyjT;$7_6#X*5bc8n^cZm+hQPfA#os#)Dq}Sh{I`N8a=QuRDnc zFkY8^4E`g~7jwZD`F?)0{Z!>=hFC>|cYPxD`W>{M95_*zi=C?SPc@5q@!B=fj>GmqmQZhkJF)wy_s$@S=);EHzF zj0YQpLuIr)n{yj>_?_Lxn*3ngfPAzU=yfr@DNdt)2d%^7-Q!!?dJ}(N58|r{EXMc< zMA1G<3Eghz#l`*UXH#m(PhWQYDoPRk*5vLDCMjj)r%yYfyJmVQpP!zNnrIQK+$Jj@ zu?~?qj(<*oI~Bx-68HjRF=(^JR|QS0Xuusjwb`KaO1n$6Cx5LskjgMfG;dOyLy23b zumfJHf!yJVc+Ccp&)~1KAf5)|;|V;8(FCd`>JdcL<$|?wxN7kM`3e*N0r%f7?y(j% zJ}|gXpik|~3(V{%P14c0kzsq5#N!Qc*y+bld8VB0Yi=6B`na4jX*lk-0FCQ}i`q0! zQD`_cT(uVo%G+eVl?536Igk_Of9EqxDt&UBcDjWa#hPSe298ezQF~3|aawTM+;UBy zFQw@T>!`K49w63K9#><`0#SF(8*+YdK$hVUa>M%dT^G^c{IdYge2IP_@CC+F1vGs~ zr*&xTfvCOaDtRRH;Q4jKGzJuL4O?x1x0hgT2!8_*HxU?zF-8GRUvehK>7b3K<#K1t zi+(5RV}+WvA60z%^4INfZk4Djfp;<9RzNd!MeF9HzXkxS>9CQ-76^=Pd zK8}-J1`%gH99?x#KKdC=RIY<_YI$Zg7u_h44z$bqG{Jx!=$06pE1(0Nh;a~z%C9H& zxx32D%G`Ytcl$~1o`E(U!G-ehFoAg(_bG5Uf%h@q1yQF1nz^HIQRnTGIG0?)=J+gq zZIF-tmP`{?HWKIw>cwmG5_e9INlhx{LFz%Awd8mHiofA&JnV5GUP9m;j59#g@KHF4 z$KZ$jke@pH1Ra6Ra_tGBI$EaKd>Ho}zdi?~e!3SBFOWCQtF+EwdUAk0v!8@<2(V}N z?x7}2RN3j7-DR2LS9oUc+}6wCrqAr}$L$R5N0SA54D8vxYimoiEuP)iZ$y6`;8U)7 zlw4MpSy}Wr*ataSn_a0)a{)THJhPlzaZb;4a=>)@WG7aZ5OoH>(HT@1$)?0(h~iSM zoL9i=zwS+)j5XTMParFnNIbNL)d%(SVi@Z$1xrOlT;7MPoI0jB-KUo(_cNI`;inR zHK9&I$3HG|qu2RWJDABozash>#1|0gvI*G>#F}ks1jbe%Eer=|9=grN!=7vIKNt@x z3=e~IutX{hZ^O7n0TqVtV7vtyMg*~HE7`rGD*t@A#Zw(hrdn-e$9PTlr=oNJAc>-} z+TXYVcWlD`R9xnUTs`88eO0SO9hOWy3J0#OTS0$uc#p|T(9Jw_(TvF}c zirR%Ze^q-^QTr>#&kCrhU1d|wJ+Pv74~)^kvV%Kg@s8}Iq<)nMpW&zq*})m4gd%QH zcJRMhJ-mo0r+?^FDLY(BBrXPN$>Y?DXpzn-#1A%tSW@ydp?DNn$@3@1@4!kP_fT27 z+u2$h=sABd`Tzjjf1W~Gu;WVvj=VLZMBmdmDL zT%dsN)%RoE3qm35zT#3}UdVn0`#oTVtn-TfZ&s3=$qr5jR+8L_ak~O4NnXczO#xNf z{>1nlSV`i}ct0gOF{xkW<+`EGOA=?~OSnZPi4)68h;q6mPOT(aZ)@@@NJ|nIRYbFO zULiJY3bCXl*$2hmz)F&9FlGWPN!&wa>27Ctxle~usKYq7dO6&*B>5V*Z)-m#br{#y zlxSO&Bn!5oNdWj*NwSQ?I+w&|Q|4OE|0S)Nl95R*2M>u55`H58|Re}5p7hiyS zaV*EXtR|Itj!#s1w4B~{TlzhLNg9@gy?9PPF}=Q))7@1Pxt0EzX4+-C0Ltm3aJCjm zYvxWZU#@5qc+X+6fb!S{t-t1u0GpluH#&3ZG&E~on{5?Rr?u?5nmn*tlBIWJV z5S${B4SRA?b#xN3)7n4tMN}o`Hb}RacMW-TVyn#ZOD)l3TOv|1^d^Frfis9pp8Dv%C=bWNM(Xwu^7MYvA_D~{IQg#kCfnpCcB zTcV{nimP}UKMU%Wz($8Hz?cvC*pg1&n$m;iaaORhZUq((T6GxlRlmaLNInDB)!Q>L z8E=zWk$t?Yx6Nn++vMRO8{Ld zk)|r%3&9@1R`WRp<0SK-iICUJcI#GlY^>(h$h?<{y`(3FB09(!HIgDpOy6oFdP3AYE zpp=Rge2$k&hxikuucgvrJbUcMkbRIgVqFzSZlzvQ5BJD}68xzMPL`;R=9hLVtFzM$ zqP607RL0d>akoOc8QAJQuVTCmY^^vKl}AG)dOO!e8XeT1P=1z1YqU<-o##P-0(KsC zq;OCLE4u>C*JwQl!C4Ze>jaGrj|x!*D?6xu47qrZCztoYo(pW9ptmvJR6y$l<@dk< zbh~PXxd~YeCJ}AQC@Y`(LTD6G<1i8sTU1JaeYoLCzz z6Oqg^as)(WmRBIX1T3>SuT2(}>|nxxnqQ&*EWc?9=>nE93vtf`l#r)uCn_Pk?#Ue< zq$Q+NljVvYmPp0UFa%qeNClsZDl@Cuo`yfLH6j&!haor^SiyG}#vKZ1w(d7DUI$k2 zxwooPZ;bntGsWN!=>G<3!RMNqpO~4ontl)EPs}ijjeAhvpEp0?8 z_&mn5fRB|)2RHe_7OZrOikGhyUzJJUBl%7;E0dhc>a#(frDsI_w?U)~+j(#9$G|e| z5R8pMRIW1Vh-|lRWgaM#Cdq@!q<9#keBpLr-)A>tG@H_C&`q`MK^ zWg^WR?^I?ED2_Oyr4lJCzlY#0U|D&^G4zFkw4^yX=;Fw&bf=_!%Bn7^s3?WIK#)fPLCmQ29D3b62p^zgr)j?50Yg zRzf-g&17IpE;*6DnM|BYDhKBW#9DG`7ThaASaPXhMj%dQ&L19-B~#y4-yBcH=nF*J zT?1CmY)YMQ>&8QFLf08PvUiO&d=5`f0b4EFX-swtjS}$ekL#BCzoZeKGm~8=v4>9_IxwnKq11*a_;6(rTc}aTv!apz#Se zVcZC8e1gmAi7#@LjZb(H?(-6Be8Nu{KPaH_30=oi3WLTQgVx6MUgMJ=m)otU*w%3j{~dCREpn7yWE)a_W>Xraw%G*; zQB)>MFZh*+F9$XV#rbum{BZG~f%>@U%`bkt61pdZKKm0jU>_Ts=DS!S({u=N;)&O* zJ8>zMGIl_-J+L83F6mGrQBkn5G)g5?;ZFfJB*`@$GfhR<4Jl^tQ6a_5gnk9E+Rz0} zfe{s~bc+`eO;8^LA@y9A3Eaw3Kp4XGDdfe#QcvpxcTw0HN(V2QHl&_`PzL}@ zJ)<#pRzRueRE(2>r5=~FCSQ@GEcM(BcaFp=B3{CHK>?+n-!Xm#jkAKbMe6a541vy$ zG_p^YdR94*_b`E_9%nJqxtJeP&oHP%MOW%^65ZHEbWc5(K%D{fvBcxVvP_aCo^b4*5Tkj3C7$b>6iIyw zRvPxi(;I372#M$Rru1(*#DkS3fRK2$gS-u}#4{CR3b4fEinvr863_663;&CkJv3Fp4y2F z>;{&2oEVo#lz1N8H6)(3;I9cR@wkR*rYEFvYLWLN0B082dk1|qf1%u1!6 zc#em9EC`9`kc{S5apJiS@@!y<=Xs20fh8VS&?y_dWZIB;zJvOWv`RcH9Gs8Z0ZTkX zFg6C3cwEjDT1Aes#IrBl@e-@#IS1n`1(bN^VcZ8ACkJhd#N!*8LOeUta62``tsr83BJQUEM{v=V?NoYgUUE1*(mG{(-r5{}DrC62O$ za~#}bBv!(?7ULQPlyF|ccmXt?6%M6E!tsraEX$5GoDfeqKOkNPEa5ndIoyi*A>nkI zM2!(x!f_G_xrpuw$LY3H8$02H#~8c%L>d+U&P{FoAOj?9?8JubVgryCRbIN4Wu;q| z+O}%=c`r1oBu#+753m&HlJXLXQrviHR7pAy{yD%>oNFpFO|ukt>YgFR-3R?1U@7jw zCXao=O1F4X^*+>hK}d1)Gl5%KstGABIgI-#uoTx9qYtnY=L)9Q3|=yANO3zs-BDU= zM`0YJfKuGe7;}K7IF~a^X_2EW#k~ag1&Nj7e#ZDw0j0R^hcmYwXnZnVTQOBT zncFC^MDtQp`X{+Jv(hb|Xx4?gHqhtFSS`kdO%~uN(ob%)*5k&~1*wGpW~@jTGZfWV z#z0Xzw>G>pnA@?)n>X+FW}kZkOM9nboB}NExq`KFinSr_-469uX_fZ=g|QGMN_&>( zT*mey2U(i?3&9`qpfuNO3eR>xqBPg|R?xIaYrc^YUg7U3e6qAQ5)az}OKZ+zgjX>? zlx`Us}hl?Gg0!0_)3n z8gpX@fjsDw+|9TgT~{qZXoKXOLEmzdQL?Y1zI^|?tb{11?Zy!iJ@s3UNURIezI+!| z& ztVD0;_L4?VU3(qHB?R`=_3WdW#Rc%_hYl1MRYcPyYTjvb7oh>UL?4-GWu4!K%d#7Cvm50q`*IK}FB*=`N2>w5QM#nOM4|%Z zya{MjfNT$cTVOXz*HmO0(vN*8?`|KDL{+mRp&tRP%)2nFAQY@1301Repk4(+VRd;X zaLbE6FRY${{1mXl>N|{YfE8A*h$FW$Z78fd9Y-|=SYfpZ#zqRLu=)qafxrqam$N2B zh>knT3ax2yFOXP;)`J-H6i}hH1mhFXcvaB0D7<`Q%;UWDMEG}BcvT&rk1Bu_Ue3yu z@Ju!Q6CT#2JB;XDTSQHhms zKEqg|fD%sI6S-G_#yi8Iv`9F-6g&UJF>laTYVU7xP2H*$e6(qATGz ziE)udbWb==x1Dy^`m!&FVu>j~DEe~8bU1&1E~VyzJ0G{Ff);_Om)_xO|5zI9C|V}b zx@*Swv9Hx= zc;(5|V1RuZFApuAhvvso!xQ23`h*&j;ndAoi`T`8Q0_6l>_t4Sn#z)I1dnBQ$yfN* znMp*7>ShjzBAt=kH+&i0mjCW8$|=2*=r4Yg1A$1<@Er8Y<7+#xCD+K8DYS}fVaAT$ zqMtD}iPq~TnxYv}RZ5ezRmY#{FhHm<+xKBd#)D9A2h}s0(aTEc zHrLdxP_{UO4n2@uOQ38awMvgod1m;>Wt34Dg}A?S1mJ8=Pni6q!B?i@eD=3UQWOfra{Bv5lM2B;UM)1Z6l+R2W$+ZcLHlGFQ6p^TK0Vj^d^RrqB?D*;=yS6Z;FkZb#B-{WfmVhtyN`0t8M(}I zuBxa{z`&_iaCTynSx&6%ms{mQoZ5sHo1Ra}03us#$VKI)qSbRMVQt1QC$ zf$d*{USmmmeuS-4{dsNTi`lySG@clNEs^J{h)j3{?F3u zTz1oTRJ%?bL~<4X#OLvK0lc$7FU=q7T;5}aTeWpXvXrehXXpoT-U2q4p!1SU(JiD3 zy2iJgjDO7~Xmbemxd`9D<`8sUS*G*ElrV?jpNAsU9Du+b-d6EeF9 z-EJa=9LipYa|!h1!A7s`fS2uoJ#ml-gdGP-_N!Y}P`T@it@et~j`dIXG+CpMvBhV3loWR+MN8 zEqfaR=ftWKBG-1%cXF;Fa5v%jM#afyEp!pDiWbKRQ5WSa4L^&jHSpIdyenEtu4?H$ z&9#1Ysr3iND(Pj=fR z?sanI^2o)x*Pix76Z`<(Y8N*6aJ08Mac=^9+T$czfI-+M(Dk(E)T1~AJtq7U{(pcy z?Qv!<(`0w9rRCRCK-kls9#`h0ZXmKgis~#{Zk73dLjTw>xLW{wdUG(wKY%^GaRpBi zf|pDip59ypb(*y5qj&)0eg#e;@G-_mz@FZ?oVB`&9A!^$%4d=-fIYog9iz7bdU~@n z#wgI(CTLqcz447K+a3N+3k%YjKfO5y@ln8@-Z+b;tBU#I>CH7zuM%BPZwjP>m7YI; zdh;aICqVk?KIJp=R`AS|7_v#*T{}FWdg%=Q`3mAv5T8k4)mc;lLA_YL)}~_ULY~jC zsp{;ScobVlz}XVS!w8&%aT4e?g34j{Y)9R0hCi`=yqD^YSCM9*jO!Qvw%5#uSOgn= z7Y$FuQKRbzC@?s%*C$|~>eqf?)|#-D$$WyygDDP z0Bp{u%`r9w)is{Uz>CU>e2+3TXbP$1olRjl)BHLK3Xj!yVsN zuqyqCx8vcN9``Ip`!Og}Gtl|0of*7k{Nrn5wE(NHVPzy>EkP&cOXy00Y6-3hbq!!2 zTW3JarKX>eq>J1d18zQ@^S+d}!rt(90oG=C660ZD>kPPthe~KDvu-^RjcOc&X7ltD zSbJeI#=*ee7;z0ZV>Bw*dmo2L-C~cyc@(7gD<`fLEfbOZ)e9o3`ur)RkAdBw;SQX(AjETUi2(D}ux#cIH>hqd%Qm7(0qjovmw2E*e zZl`NM>aaWWdPcATd+EcqZA!E)stR|)za8+g+M&x>4KPa;X#_dQhIfcxtlHu0NM4i7 z+ICJ&mM0o|_X&tpOU&KCtZIm?jpv%O5{=IbKNI?ez}k9FFE62IwZ;u^B+CIi7v1JC z6cn^L7ZoL9&V{}Cw>#8bL80xZ5$C?sy3ES16<54gDPFab6A>P-ed!k9ns%AxnxZy^ z6IUo9lHdnzCg-Y^%*F9_AZ=5)sN-@)M@ghM#hy1Y&oxNf7A{(Gd7`v-@+;&oBuLv9 zp7dF)C!~U|;V8)ISD(sWl+&-enJyP#IsF%muYsi^SFr}>a#B&(lW?F^bm%RV4j@fM zPED348v3_HN=35}TnsD~xu&c{2(!8K~ z2Gs&!1x@~T-hC!u1&w=YRqADSmn+$Gvx3ICwaekA1KUb@;o!v>DFsvE-KHg zG(L9c8T6t=%2U@Pm}w%l*IiVZSfc)=E8fG) zi@-jE^C5w#lcI@>sK!9$kZACCVP}f_+hIEuqJw`6+rJLmCbx|Sd&5&*s|lTrp`)W= zhfsm_E>~5k>Mp&IWC&8PaN27kqLHE&G1lCXa8OFQ7y69X}84Z|44*|U_ zZ{pT^<)+bKcD1$&$rmj5awaTpY%9^IojW-s- z-oU!?T+_NlqoO?P#yb=K>Dm#+nY!q552vn~T}@H)F1q`m+zzaZZk31g(Tc#j=v=@H zgc5ic-Ld?CFt9GVzK_uV3F<|$F1pIF8`{TGc^BQKkfs6aqWcEpQ(#?mE}&hEAnT$V z{V2-=0PCW=6=RM9>Z1D+;}bA=)vzn2{>QkAO1Y%c#&sS^kMy%~=`VKe!x+;0RzH+pb~ynW7!3nxl^GA0DGn z1=g|cq_PsaRddvryM7ai1{6BBUBqlPMf*_oMu}i7{Jo{gI=0oXws|;b%x!Wtmxq3} z!Iy9h>Q|c%`E+3YYHQ4A*c&M7S93W7H;`xjYB$5YTI@oC`qh>Y`UKRQ8}+NTUqEpWtY2+pmdK_l8l&1BdNEls>sLDu-YLNP)tt*a zEpS`(tCc;;!xVVdujafYa;sZNKGdS;T!8=V3H?#%rU0uwJG(5?d8$(zZ0BM zxngt@oIRm;ZeJpJx2McX0J(+iYtIW#k z0@MRHCEivuKKm&Kd4lx8zyaYZwTWKk%&P*mL_|FpxD(Rtz$#JiV7#S(DpAqXjB6%P zFO5AIa5rsJH~wH?J&5Z9t3Zv%7^i?LQ0HKr0qWac!`*69h=o_8j!!R-Js5D;%!mS2 zRoeT{=MrRn2T$OoNp3YO#8Qk;fz{Vt8AonqSABMu5pq&^FyIWH-Dl}GWqaR2muDyo zK;Z&8Gbz#d1+r$#r-&8ZTJ#z??g!HPx{GR-E1IHwRp?i9a_i-ht6F+bbFE)phTMd6yGpna zdlRP}f#q6fGuLGCH6hp5T!^rcYn_rTk394Rk+WRuT;`iBa@-=<`k&<`v@F;DMqIxH zg+$?^iV{(aL^1O@s@T9%g>tX!sxm8_BTMqpw2*tBK+`0h7ZU3D~{X^LnGwIi=)aHNm;;( zqqQ*BR6xbiSd3jj{UZ1c7lc@3#ZfoA7M6QY4*xM1N%4sz_r9vw>Iqhh-0RF-iKZy` zdc0Y_uGl%bw~VaPGJjcX+o`$biUulw6>_hWljV`CT6#}gv0II|gXa;9TkX;fSu6G( zPTX6-TCq;bW%M?Iu2$@OGdKjbV*i5w2e4MGYj{~Q>@2%;EiM0#j#{nQRbQfJ0n%3N zj)56PZWXs;w}QJRuvY9L7!!fDVqFoJYC|h_2Gr@&sulYn#ykboul5PXB4Djpca$q} zl(k|jUS_AjTCsgG`Y51Q>@FBPfyU9{P+GKNePbNC#gW@5>sLD#@zKCqvChhs@ZiN`<2nVjHqAneSAq3Y zx}If#gHQLA^;7-|_h*UKPr1s!=oSIiPq_`o2+;Uo&^GU<^lfqER%N)*mEKQz7}`UD z^;0@4SIQ6ll$S%jRCJA4bvo~Wg`K;5`djA!ORHNGm!S29%FPvFcqEWN{BJT9hLwy2R?}gJD zl2WvbtcJJoTNK&AdM|ps%{)E8dM{j3Q6i>_V|`$ILfsv-Y^S-dD$`|mJ8BSL>bTT{ zaWcXaL0Z#$H^h(GRXOWwC@i?Lc};H)%o~8!^j^St4p>dkmAS~R^vvUBc9)TIQmE-U zBUuhNt?A|7VQy*dN8O`K2z&zUbhx&xMBAdqSMx5<2ml|e@qHBztUPLaZCc~ocP3{* z4bXwm`U9)+9g1Q0T*{OFc{WHA`Pbjvk@m-3ui-Fxs?b;qVZh68PrXH<$9-=m(a6Ze=gkPfhF^`KVrorV9DIY6(wTN z^?N|w4Orv<6pWLAKGtXH`l{$8B~&u<`#L7&_*>xJB(C*YI-@>F?v z{L34|!O~y)=-@hD!x<^bQ_keA;UY~@o~q9NE?B`id1`ApSDtG8m})9W^ORE=BA3Yv zqLU<2o;n)A5hhZfrBjp4N+lcyP1pNe>9|o+o=Ng_Tk57GP z_rIm(U+6g0+PfV3r66tX9Uhob-L?*1814}2wV6U~ z(EBV;Y!>(P!gg+z2cH$T&kozvXE`lwQ{Uu+VLQ)t8=9JJ54}Or@Qp6Cs^o|8a^LV} z-Ik~Dx@GPny>r=H{gY>3!26&4R$Wi2C8oW66Ai!k0%$A7E3rA=iZ9cikF4jj&*5&x zHRNK;5hw8qXXolgTVQt_jlGiDQElZ|c6|xDK5HDAMEha1+vNNx{fhd`>ykvrwA{Ax zm@!kLn#;>pKl>8aNgp%jh^Xd@vYrY=wd)PT*~9Qt(vfAI3#22EblS)^vM>Ay$nXQ`I7 zP-T(oqe#8!@(>N8x4lL0fXz|7S|@x7=90RWgeF z+r^&~i2vftc2vmC?FLwZFuadwHF2Ap(5%Uq(Ntjcv;|pf`tGGGVhgg?43QljDsOjf znnYVcZ+oRiJ!mFlbFn!E<$54qk^f%9ctL@l1p0oKkGcVC`fi?e;|@WeYt?1z+i;*t z@FP$j09Fb94dW+Zm0;KKq$X1n8$Q%@8s26XRtX-kl(r5?E5T0X*-NQt=-itTsS-R6 z!6;yrU}q*J8m|Pm{hW!ofK`H>URFZSD!~ij-VLl0JpBt^sRmXFc5!)$*ek)$L45{f zO<$}0x{igbIDx9_y`y7M<@a02UxT!{yInYJ9x?>tJ-3jMvQEGDU*@AaU=`l=FxCZD z;dNy$aw|RC>~40KP2{9d;dMr`9B$~?!0jH|kD9yde?<>Juv6gLvJ!2Jitpa=_XK>b z;=6ZtU~Xm6<7~9Km9wFW@2N;m)~@ud)|t#WS(F-zD!%(>e;2IOJ+;h1o6ET>zVmQA zM{%<51E=O9x3U-^I$9!Ce2@B?1-(FIF910;S)QosPTy1SZ}L%RkXC$MR30tTMfHmB z#}GaMR`FfsTOOwYtN3n#F%;B`Zxvs6!J=<+LB)4%WkFSZPlR}^l&bhXit(@ls`xI( z_z2L?98Qo|d?(wX+Ry_3i%!Zwst@OZe7?zD>_qu|)$ceUVEOzOjF}+qtPCnTE3>N* z&OQ0ONwHL8cl%{L`UPn|cPgEhrJ|v;Z%3qjejI|sf#q{&(s@~=@qGRl)SrOmb0^V> zSwzqB`Dx!XNf@w1-scDEsK64rOX$oj5_>-19_qHh8oN_44hQ;Jes>kKhtEv&`*S)b z<@cHJt`OH6yH2DdvuH;uB<9@FJnuh=stH)$kA9?2fI!-*8MJh27JHf9Ww4wS^1d_Z z)GXnqd4Ee>uLlZ^U1!p%S)^%^=f6huCE$~G83r<4hD9ehZNJ*Y|CS8U_nxZ^^ zdiHn0(w;4Y4O&mmmFMe!qQC@co_A`F(Pt^yzg18iERpj3JqT_#ks7;BO){&QsOmc3 z)4D(Nz!ao;-bLlnNTmSJ^9vx%2bSl*#rRqQHFoQNA)=sOe9QChg7G+VL7s0^c2u6f z6XNZ_^87m(Zz-TWU->KPfF9|hLVb!INp5FPt4sn}~e1hsP)L;o10?c5E5_b76! zxSd=18&Lw*&h3xU7g#&j6|5&7yky$Y&K(7H2Wi!-c@)M}1=P;H4r4a3cCO2FC62Oo z?lW+ol34BBuQ9$AZ_`A~2iI2@4jCg%u?ObQ&O8KFk zI~MBRqU%oSbRPEoKhC~8PKx4ryL)zaW_NopM=o)J93&oagyRTD&N=6tlSq)DfPhGp zD2NykR6sItPJ%rJFjS!mrOZ@39mM)JPxwmxXaJ4(`gbU{9fuv~YZN6aJ(UH1Bm?1KiZ{ zPi`o+2YpNOJ5kV91pY6K#tu%1eh+X7FTLoDw79=9tLZLhL@ftoF#`WhLN~Y6^!b1}ThqM@_6Y=M)b(~jp_tdHOvt

*d)P*vo2*sT06?j)FLbyBvkGc@bxD)S;x^94W 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 z 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

F58+?Qh=K?k|5cvtV=4C$%x- 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

7`WnFJ-U5yeLfJW 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 i**f=img;Rx*R2Z6$jNn|xdOJG#fS z*M~ix65C7*-J)wF+e{eqdulD4j-3f}ubnrIkLm`$6yd+0ru)YT|3mlqOyTn}_19r{ z>Ik*NL4k?fR^D3?KO4t#7wn-}wGMm9Rl%CJD+LahV~&~}IonuLAR}Z-!IB(dBq%*F z9_)6(k}v^CiOgx&8VVO^?*M(CmR>SfONrUu+DU=KOe>WF`N%ng@?3sWAWvHf6b6$v z7)#dPMH4mDzEMl$a;T+5QiocS`5&}T>lg(xJU}UZDMIDak-~i5-&*tj4oX|8cNsMq z`p;i!x#SSrhKs_ArX>NV+}W2%EDpOsDRbU!kZ)UTH*P*xA1RXan2_(80(u?oR6MQ!a>6#@C~@)FgZ9LZT1#kK5e_V;__MA zZ9{KKb4w&0^VLPF(95k5se)w-kuj6IBDoQvHdmVtb*N|Y^6$v9eUS~mj$B}8@pbGc ztVF(!U4T`|*IC-p`|EmOkzmD79OV9Y+s4T9I&&Fg?eH%Wm3{3`9OOROLzi3ZCX5m1 zNPCPbHx5@v9Q$*hyoqkgOG@qcH$V+rC-2ayl(9Ip_CF3qB1q$TlDywHN^Qa+tWRxn z1f-$XP4E(G$GCB{Gbeg*Bjxdl1Ls(%IGDGm?|dt3k6!tirLD|Q7HwrdSKG=WU7J*s z8zBjwn;=!W0aAr}Zfr;uEQ?GCRBnZo64N1JcT$?T{Bp{#9_UAeweq+I!=Vz9BsOr>7*IV1rTk(#Heq?+97&tpQz{0H1a|7pLzhcU*SO~rGd^#!+O6@u0axumGypli82PnHHd&3pB-o%`UWho zBM3>RQ8j)+4WlNG#zB36FwU^txqMx-KlPBKdOr0~!emX)$KSbpi?(*00%S(3K$&N# zD#AEvn4f&WtOPPX`2Z*#FUpIPqz{y7Rx=?JxSMYTV!@37O_u;c4M~e*K$UxPHiPY} z6i@?}OGgzo3PdXRT_}{685auj{TLhTOrVW)CKo^&I^6{Sphoc9Q+&GY*EvB49^FVs zSRUB4hc*h(uw1fFGwa$U`|3W$$+zvEyvJ{-5wJ;&DiJY{uW~7&13m~_tbiR-xGBw5 zG($~T<({Qdo~yKW);sT@22HD@u#qry_P_CtUXVu8HsiD=7_$1bCO1GDTHOR6p=Nw# zvJ_K=4orczBL(Q!`@FzOs2QF7EhND2(FcQm2hW!VU&pgIp1S$E{8^i?%a8QFEcP3dlG7MUqWr}O{m?hKkXpq z1JW*xxi@WP?o3;m`_fkCuC$f8Cv9c!NL!iv;V)mwrAu^Old-twf*GZM)LP?{1_%SP z9+UADBgsxN66zEqdCH?zpPn|zX6Vc)jS5ID%JApdjz76X>tt&6ZEegun?n)2MCbiF zx^ox3?%Wy69$TWkgq{nOs$8B_5%xp@T_2xN%PS5 z_fN&tCvcUc@2g|<%cZPD1q(NpW}JBH29;1-Sncw~#9o(5oV6OeLYkS8mazL2OM61y zU2o|wyG#AMMbq}zdbS>@Pb~U03%CQVT`Ac@oqJLqXStl!bi8CZEq_Rxe@dxD@T&4H zbmwT_Kpf3%g~kF|)gRDAf?6PT=wk|fbN5v)Zosi?wBy9RG-zANEj9K6b3}<eqJNP0erzwE6sKsj)86xPdI1iLfykZbIYy z@e*^OwHt?PDsXR82kiOnD%znou5!Pxa^92VU3Y$dyb?3PZQ#dbBreKBul$sh=(T?s z2$^7wtAb{v;${jG;ib`v53wIkh(#5uK99y$Oe~UcJc`poU&I!B40i z=El*^A*ly9Ql4`>&F1l}xuDnMU`>TI-W)Wgxr%0}4Vz#S@862A#s|7;HxAcS;CO}6 zmgg$kp*F5^cYjpK*Kb#9-_HcKkr&{2zsA;D7h3!8Y9bN)jKpiAxM8&khp;}irGbW8 zHz68O+uO#`zJYlo<%RLO>~(>@RjC*V`>9y92ljfc>i-Na@;J60V(fbqhSbWf!v0mqyz8wB zB-k1(3DkZ8_*_RR_>Z389QJI&zHPBH+Kk6zT^$KF&OUGN@>~4>&fP|-%pus@YE{qN zt!}C9(4Ogc+G~P_$0`*V?31;sM}zdE^CM&DRoHIla%Op*bY6*_S75uHSBh)jZs#*& z=iRW~&btRYKRk9m9k$!~bhGnG8rO%UA%Wd9JS1W_ogWxGuflda+X18Vy<+DT*luS# zV01n;cHRx!?Q93kM_ld_{BfY?DV0=#ecPXeCi%s-Xl#+g$+_;trPFRVql%H=<~R7yS8Ht} zGUn-bt4DO5y0ctY6fxfJV?6zQwbII>7De0LrI)1Ec@2Chu6B8{Ox?d;ervf0L3)rA z)Zb30$^Dg5PZ{mh=XygKtyje4+k?W7rz&(IQ|9zoar;Vf`$};|dWVk+rl^dw58uT; z*a4IKbqpDeV7bu+n{*U@+^UV!@o{wVLq_E_x9N;7!KR)Np@MqKsH8q0jsd-w_2_Nu z4ZUr>p|`Ei^&a0=-1;l-?||MftG~|e*J+ZEY#tdCX~s|%$&oTmq$yKgnp2stRVoMI zlZw-f1-r0>$$NTZq**XSnsbj*Y0p<`-T{AHrqX?DM78MU{?yV5fxjUHD;wa zyO}3#Gp6vF8`IPLIHLtM@qDt)AG3 z%~0xd+owy5TNr2P`0=)SqY2GW>T?SgmzIve0;@Ng&W0`SjHJTe!Q*TXhJiT`rLx$V~#lj3#{H~LNk>5+=63{ zJGL0VaU)>$R4vww^I5f&YphPEozCvL zhr3;=r*VckT%BEyleJ@XPPXAC)Le#2n6ct4jFVNuM#++qy6hz56{hJpttHIRT7vqt zE^Z-SP%~~NtWV(5IDsXsPvDj!E{4M;NW~SCYR4^c6l$IjOPDc5c8-%(!bZsw4_;#> z$}PreEn$Y%64a-4`B>rwHRD#o`UD;`PGAY^6L@S97sKHaq~eN1@i#7Um9+@f`65WY zUo*RZJu=$)Z^$s$1%H$0NbTs6u_-(J?Hug*hxk-0?j&2{U5ero+U^-w_0+T2N&Nkd z!_#T^9HY~Z-?P-enUNqx`f7CrZtJ&o()w`#xl#>f`e>aKdJHbRa3_K!|z z{_QC1bXe5X?!42yx!pgz>lsGZhjzQcV|j|%IM1Ccdyb9vht$KQbJrL3pp?d`45a&4 z?RVRFA}UhP8K5GwD+5$WvOtBT+K^PFi3KvUaEE%8yemTB4_X9adkn%Eut>1d#O`{! z(bY^7jJki+I_~zW+?v)NsppvcygoheT=d+<$)EGH@f`&6i%!}vU;at?L=B|5n9FZ9 zjg)C3O_}mTOe*vBO3j_wf*B8*G)#t=yTgFN`Lichw;Z7bjc_ zahH2|A@IiyftN>t1g3I7-W3!0r>ZctTd7bzLP1b7#Fe8NYihYAnQOFAuxHSC zK!YKpF-bZzH;VGEKMLIcQY!Ba!Co7y_P~BXtHN7nl)fqMJH=Xvnm|$Z`Y3r7_IB1bCuT8UER7)R`$V;pggF}+&HSdNXwiL*o*w{hCE{A+e6qt{gOuR$Q3M%ZUfwoyuu8y;0>bSq-J~vylpd8fS`TjHJpT z0d;n4!vs3zl0cuLR5owe%VX6Z*f(iah$W@!(jdcfE41kUD0@MaybAkNU}gZn>Tqwu*5DR^w#L*%Ey!?COuxZZkG~QONpzw z#NN%j6t`B2TSMHZqRqvI;&-~Rc_Z?<5xfpd7}&f^RqLqwZ0Ze5csAI)(T_42=2Fj? z2!+kN6nEGWdWQPcv8;{S+KWf0fL&FH;n_5Dwl)o*oIlO{GLF+N2zSyu&2eUU9f+3Z9vOsKCU`M;Yak; zA+HZ!b||!$|D)%}qR>^?52;Xj%lEI9eUOTjD%c;6RXux0(uuCKqplU$hrTz!WPyi8 zXV^t3xu|Y0>_V(sfyFox2b=6%fh9ow`&6#=Tjd;h?8z7LS1o@@|El9}*{S}vyH)P^ z<7W3%!!TiUy;Iy0m)q068JeqUD^s7u<-H}{^S;Im@OOCgp4;R!EbpXF+t1PDGUghS z_Ad7t%>YtWX2L_^(IswNb7-rE5FKr0SJFI>+`DT!dAaakh;^sTUa9$fWlZtYVXxLI z>3Z5Gw4bUTU8q!kL*l~!3C7JxRK#`L$PIF_+cxhTrCd|{eeW73H2At)viZI62z5wh zkr`fZ@UmTRa`$A6E<2QKZ!4p=$ef#nP1MFVW&H8w2eN$G+&Xur_I{jFc|Kd6Iu)^5 z)M9;Rg5TW9O8T_^kd-)VI%&8VAK4;rGzQ$|bm#E_LjtdncH%9F64n*iM>J zAff&5v8|kZ(v0$Xan>GMo>4fIDtFB&ye(CpHKXw7sd9Nn;S;IytQiG1*2W#$HQTA% z=L6%;x*PUPt!mtpPMT5psZ@DjM&a41Gwh2J?xY!om#4}DGYahOjXU?OxHynhZR9Ah zgc+l`O$LO4xLR|p{SJ5vB%pDJW?Sr;Kt&4g*ok6~Ya;L2PPd1bDwkSqJ* z$ew-Di~{M=xU;QXSt)ZxI+H6YEu=Gh2AR;th(bz>V$_zIwKvaS9iTKOPqM~jcR409 z`56 zsg}ox`5$XXULVSc-=Wi9;seXhGHRPS5SNWZXU!RV9VJgc>3sOfXQa?%I<4#J)Q7aHT3WR$wA6VTTH1gU?@!0E-vvwDJ45hI zF{-k7Q#kT*d3+Qr%QS`YgY`!3E(<#B`0=}U9KRJ<#<4S`to5?Sr-lEq+O=KyDa@@r zU+!_PT|R#D3kXYLCZ+!;^3&SwtWz3F@;~)0lwq%8H21=i3GIG#Si{Z+-_9or>xVb& z7i+hdMML+!M%j&roz0!;D+eWp{UI?EcEgeh?XZ7!MtH)wK+WH{sA+{-i-Mz(vzT>- zJtMkz(hwm2tI3JZ&fg|=dI z*p6kIp{?~f>=xr-b%PYBDXm$c8EV3|s1<#82k5-1lfcINJ6CyJ&9$2ch0ap{jdmj- zAM?c>1Q=S&#q-7}GtahcMF`X!^6e_#zQU)gIZ@c&I}?Q}uHV}ilPNIF|1Vt3=YvL= zZ=P8pG8~xY=ncz-QF}E-;V>`Ji|`jS%bpAd%vk9wS00#+y{0i>gVGk_LD#r0r;#I; zIq78=QW?NDcV$kmO)cIy?O2qWx;fjh(oR6 zT`ZEo%oSH71Zrl1bNMx%eI=WtY@LNL*#pWnc8>Jr5vG4%D4!E0%KX~P1Y@a@XK}C{ z`KRUbySIt4hkhLqPtrxS&1VXn?02{e{R6!d&pT~;r;|@Bp5ATiG{>iSJd$e#Qozu; z9)`s+a#-pk2agcr1L^*EPJ!V>YXH|K7}8eeiml$FB=2kKU8Mf5d%6kz~nfFd3obGqasZm3* z=;-^u`;)f>wa21-zHHfwENHKL{w53Vu{E_aDX`i~zmbTIiHDOz~(+o9KdJ}f) z`$J5UjT0AvbHSm2qhi!%Zq4Vx@KXsr&x{#z;qr{a&-X7P+hflJDx$sf7Kn$MVf1z# z<6oPQKO)4+(Z7r!lAuWFVN-l$DpDY$1P7b8(4NKSn6JrkJLXt?hnit6VPt4@>am0W&&02XLNYZj>B{a|2h=Zpw2o98wo?_)E#p6ZyKW)r17b)W}MapLsp;G z)QoTV>@twfs(V)PL5hhxbk(8aqAb*QMxte#aoV>X!{9^3$THox@1PlK z!gh?4wyee?3+G#z6pmUXmd6<-FB)ln^Y*^+`BV#3d<|lIbLE5+#7QLbexlsWh2?c( zxorWUQ3e~B4H6MZ$Bn2h%`Q7A_C=GR1t`+ zeP;8bERXc9yE1bEF{{tQQs9baPnXC&)1zx)N8nMius+%rCV@xE!iA%4VG?*$ESyIB z_~edc7x}@9C1%1|Jy*(}MP{X}N^ceyhtejRl|TcMj?<@M#y9EIj>Z8=t^mnDov_+V=)>l%%V5x-Maog2i~qXYQRN{^smS$M7c|m|@x6R2de!@$y&- zl~1|lLirHD2G%lC?N(n3-qgoza}ySK5Gbg;#(L7msP-6;!?tWi2((>xa+qIC{2w4Q zn#pPT6nE)#-{-x999@TXb;Wa+4bkk_`pL z!6gU?I*_2Ff}u zzPSN(rulH6b51?)dbXPo>W)e_D6q_$RqmWZ^{_MEW5M4L;q;9zAkp{s~!so#5W z-j1rlLuLA-!rdO%i5S+B)1X?Z+%%vvWwcJ;g)&@>zf>u9X}K?D%q1?CiY5m^*VFOW z_x|AyC^O`CdklqO>bx*!B|R((ySAh^D9dun7DnrNtjtZ5m{#7R`k?atapC;(eSRam zjE}en`?~L1;{b0f+Zw{*MfZ5M#8oA$w0yIf)swha+9)h(urVuHxpS%;k;_(8ZGfVO2(6o}`T>W0tzt6HtzemBodDKQiQ*=|bXrtl!5KcsD)FCwk=}Kv86-UKqHmw4KeQE7L`)ogLjp8yLzCze6 zj#?NcKCt@QYz|Aq=7_VI{uab~m+0_TJ*yRMkku*-mAdLpn)s?Guh%}0C>)>@lH<0*3q=yWvk5kQ{ zsul@*ZV-*92N5=5Cc3j#$7V%BQ_f};0?dTXqD_2YBKhUlXdGsE)E_BGf(Zjf!D#Eh z__k{EDvf{AP?%r7p4jcc?yuj1|EvR;j0im=rdupesPGf5tx~Ji)NQoVjpFAr2tB>Q zR6J}9bgT%f5lMQ`47C0pR6NuT^dNRR>A}>TY`omp=U(B_4Nr;>RFh8;wSTOL6n`0- zmQuX+O0Uk#QoBQ~ZX>4ncj}LHKMeA9GUe-J2VWl>9Gj$gYiL?Q5${SDCOgz{(9INz zy}nLH%W-4w&B`U{zQ0VInWkv*9hRiFvB+pMr7bp^q{T*)v^qxJ%U(N2bbm}bwZ~fZ z+)L78_mZ^Oy_lABuRWWt0+U^qq{Z&Vw4B{pqu2wJc4Jyj;YdA&F)gQXG?ke+=9rnPa-I$hBxNSX!F)gQXyHsZ4 zkYkz@M$>JF)JTZ?E~ZIgG~LR7^q1_h=@Jdw?OU|B(r(v)jE?TkkA8*y}0 zUDnr&XZCtQ<;9`VDW}32R@YxDoM4r&Sf1QvJUZd(lI+lVnH5d^E}>kRrWt8kv`(aH$y$-7 zMe9V`2(yQHnFg)mZk-eDFdyz=M~Z?B3|=D>%;Xx`2s&TcyW-eclA4OZs6hgL17`^mm*^{ zwUDRuueRfOJZSGx^{m0HgsbH#-85Z|y+~{?MRAA{FnG2nn3>s*u5U?q?%c9bB$!E^ z%@i|vIhAB4b+&5jOfr)?+d=1-d*`6-`xGs4e#gxjvcy#0qNiqEU++GP<=$O>{+2Bk z#pxOijEdw`j7f>#d7@#^+$xF$GdX5`{(mA5*(RKaoX^kJ?OxZkwTj$TO~&CBPF4G$ za2I(A#iy&O`;RJ7c~!-uc(|I%^`7#j6%8*(f|pBTFQW(WnzIQQOg@qm(-Mybw(9AM zX|;5@#dFD9SqXYl+pcFdrX{S#q@2}RqvQ)r<}Ie>6pqwW7}IhJN29zX0**;i$8r=B zJ$G9I1>FzA;xG1NT4HK!RZmw;tEJ0D@Z!`!nODzhOiNgeNja-qkCQJjnYWmhQ#ik# z!kCs*I3DFC5pYbBx@e$m-yJdp%QA{_Rw>p}+U-(Bdl-KzWVLtKhJ^NRdqR71E!km< z`kvK3BfjtGd?)J@VOyxPQ=HeZrGqO05-K_2_*;OIqOAbV~ECXT5@SD8U6F!Me%ASyh>5j zS!wnAqMrUqJbRp$TpmkC|G;cf;Lv-*;7E86>BvBel2a5MtTZJ^ACLySOO_*R>LLeo-;SE|WB5k>7U6_MiD=e=4_q_(qK-6l(M;S?gZy({8WcT=@E zgh@iUGCCuGrP9rHsq2^ibQJ$tArCG*Ds*`_IaG+9 zZ*8fQ(JASr<9&M7&-6PQsMGmfG8OtBGIhp6vg3T}|M$iDH`j50^#Qq`1!!imRwPb$ zQ>5sYZaJp6*9>BExTo)Tr~Ig}ibg;3>lJ0+XcmX=PPr0Iobr{k=$K3VT>7}somEo& zg_`_Iz2Rk^c%9I<`ZoI)r5_DSCn)wRo#>>LPDBp_mZ!Du>jC3wcQvxUvX)rIv|CU8 za)Rm)$i!^-FUgKA*mZ2dZXKFV51}ljcxKGD>U|yJcPbq>sYp89wr^d|Ty9TQ`RSl? z8O0ky(+Y}MbMJqkSQ%as8;aK@c8QLH2*^|R+92PS@Q(Q0!L zOk`-J)#@e)N@a8@#qTHr_YM7mj!j3m(I%wZ=<{Cv9lhHuxffwH{S@%liH*djb4<8j z4&k~Vqfz-*=*49e87pqrUC^OIdbz{Ck(?uv+hb+?0QXwT_<6_<=(1VerCitc9JQZ<;T%X*&?>OftKb8@_eOpq&Up& zRXca6S8GD_R+3pkxFSX86TLPnTAek#eAaL?yc-R|mD$Lb*BH^K(JH|qAHLw6t9Il6wERak1`y9+!o66Bd0 zAe^iwdww)BoDC?ZCIYG!tvLF-C7_~Byqv@(&Yl`Y4N^0Z7$r$fU)7o0HNx~81Yq@X zs#y$0!d~vz{EeUvX5v)06-a#?t4L_d*{ni~gb+NyI7-m0UCWqIM}eCg>z z=NZKphNcx1CqvURip$hg-UC_|O?S)`#hTCh@_U8O5XEhR)}<8hKSe9GhgL+2kC;NN z%&F8qUgka%%tm({8i91CNXa#!S)i*gt<``=cu8$VgTr8w)+kPsPiF|z?{tCH*R^I) zR+ENJH?TABbippn#K3OVvs%&6m9tuf0W)E>XcHrt%x}w$69^2EE|JQm`ElcJLg^rw zG|>(;bS5VDNaRI=G}^$>IeD*&1_!}}rbh8eX}D0BUY}w0@w^#S)goapw^qiUB|5iN z$7V$uWU~qZX2NFCCO$Bc*H*#7zT*ZGn9#&Zh8`A1ceOCyp~AXY-qCjNWa&_6aqN<* zuu?+C0@!F`3+#$>xWX$nWZGdhj&85HuR28fsxT2^BakXh(c)aR(eU4WG}R$B1Lm6(M3`Q`VfD4y49aTKu$fy)WA73Jzg5p_MH^(b3Ik@s zYSAV}Fws6SGW1QQ16AjTYP_m*48%aF>?J#TTY`&w<}&~g8sFap1ywvBDNo7RHzMPlxC zV%@iO+Wl*ayxqqV@;>hBFW;2eOt^2w$E`cF{2ppuD5=)6sFfXGDsLCfCOBc=Uaq5H zN(!vcHBwO8uuk;}-?~(0(25TgQ%b?+#*|9*5HW=qyI&Sv`$b=${E|nvkWjq+%QUT^ z_-8eZ7O%hI=#fPa=+JOyIPjjUy9a1!U5=7v6nSBrTP>Cx;E!G|%r7ANX3Nv<-#Ca# zg19XNv6LdN`NuY>;hnpEMez~x-4m&u5+Yhk@$4x?Y9FtN6fc-Uq;^q7qV2{pgF5(?X3|6mbVPo9^~$U{$PWrgQLZv z{(#len$?K3G>bhW1!Y?u*)e&r%K}V;V{&1a1y+x*pQTtX53^!1#RD$$6!(PFW0bs= zA&IL~>gKvehT{QJ*e+gw%(@P>*9J4IMl@cR3q6sshsAdBo=rzbIVg%=Q47U_}$J4JeA8Yw5SFq$>As zcSsqQ9nHp`kZi}fXwyS)3PWlY#h-8ReBb>H23A|&N{toF4+@4zH7Hk6JW}J-6RDjT zM(-+$tZSagGF2@M<=|ssI9*G3W=J;PqHzPJUc+8QtV9MI#qm`bYOS#yfkDSz?V zj0R-PP8cqVOJw**!sOG9mXz`?rD~NO8O;`|Ko`P?av{X*l;N0_2((ov(3q667qgP~ zs(joOQoD>I*>!Y8!gh+7-sl{1eu7>Mb&!%ZkEzjbA%B zc}cG`2ToaMs2v(k99O?l#p6QLs&}i{vqm{j3-g&ZO2>olcgO3WRDEd~_%Smz_G4CJ z?2pdI7?@a8Vp7Up%u3jsU1z$KuTH|9YF5>pkaH8F(PK;H3Ci>>v|8OqDt6l7dxW{w zXQB-;FTBp`ZYk%8Epd^9SeXhIJikmx=4f1;uMB@r~;`)X1zGixf$+TU{w0yTQBX9y?zUtvrrr z*PSkpWrwB2nW(prIH&EYN_rJ>8o8`t32{xFr}V58-uvqB*7M0Tn7ExbI-7%Ff;2Xt zPHYyYE^8-4Dy1vBVO1mEa!kY%#>gxad;J?0Zv{VjD>-l5I)EJ}#cHBrR1WVk8k zTnwl~HW5})V7{k6D^DrKq~#pyMQCI>oA6#C%2wEQP0!{-hb3ZYk01(qQ51vale92c z037q$bscJ*Fs7qlYxfEh-c%1O;b&8iNPR~2 z+&Y>nQXft3^0oh^tGj3=^j$ajNPKkE4p3{KQ)JFXxcux=sc-@6Mg>JKK;77(IQ3j) zh;wdE3c339&Qs&0#j4`#tt}Zl->aISCTNm#L$h^rH8IP>!e3P zpFe7xW_J6T3MZPbpDA9Yq2v0Q;?#bodpM)_W;oXbokq?zL8p<7O~ub?72hOm6|?V( zZY*>gxmUna)oq-rj2cS+D{K+V88t^#Cnpryd1n{v8-34tP>Zj=YtW3EsUr_>eJc)v z4Oc+xWpcLnWW?(3J%$dj)D>%UV+zXLybDz*tF7^u?cPb<>(w6BsXg!@)>7WD& zUEULp_9D#m9*n#js=Y#Gxjlj?=#04S+w#hj3>e>4-#O-{bscKIRBPfYrB^uZVI>@S z=+02=&4V_cq?PTo!F%t*rN}n11upXKTI{Sc4Tif)pSu-df$6T8U68Fl{W`Y}X~6c| z#txgUAAi)y>EG(sYdh92YPN5ED>q@dZR=a9^=uV(Udr_lj*o;YOn^Sjjc5Bed^n7o?wte^Q;Wk6mXK(N&{Oo$f8Q_Uu_6NI-c4WBg z;cJg(V64)e`fek-EhcQ;aCE}f4M!(zU7fOZb#$+(A)^Uf8&kG6rfk)WtBj`*Nx5cIwf7t z>-J{ZO-a|Y>-MXVttqi5c)4@ly#JDILWO-M0Nm5tQ;4qk^HHt?|%M<%)Yelq#XO*shkgi4% zy_lj=>}3olG!+R_LQ~<^&PCF8bg%nV7%KkMg89vAoJ>e-WTep;8R^kH8G@Oli2kky zD%Gyx#wC?$c+dzjVJ?xzwtHH%+&ZAVx;K0(ZwQT>=TWnb8PFwkdB4W8mlU?%N zufYaWyGwXPbDKAwF;3Gn#JARw?|uOuPcS#`tn{o=Y=d1{OPe>&VKD8?{F=OG3q4?3 zUuzb}!8C8Sn|v_(Px7?<=scvsrhC@FW+7%JlQnw|O2D+ytrAYx@41w;w_`g#V?7GF zE-x8$qp<5-T3svR4N!N;2Hy>dQ=LX}xDHNPTWzb0oYBg;~th8%IVMk$lHMK0K?Sl2u zDiv#UDPI`Vnw(64Zr_P7E*lZe|GZ?Eu~_4FML}-C?q0^72EL0(?uN}dx#w{Z=PQkL z5?dp!$hv3NlW&i-8+Z*)mFJtUwEbBlMMfSuFfHFG&iJyQKW7VFnl4yxr&JMW=ZKb8 z*BqLMS=YZ8tRLB>5%q8EVd5dHR!zGVZ=l^O6sQTiBXf$(<6I0IFrBa2;o-2{Fk(<_ z;oEz*!)MQFZB}4&wrfZ8qB{Y}N8eew)%=moke)YxbT(-Nr`X1a z1o?t+L?@p%!|tm%G5V&WIV=skb7VI?r?3q>F}7RvELSvi^|M@s13O`P{&sX5nCz)- zl~PDEHbrb#ZClTu?ZS+~lf<`&JA{GVhqPl@)8DnhJCo26WR5@D~G^S5{^jmDkVMp zz(ip_tvY7gfrOpJ;}auA>{s-R#b^T(kMblm6%7u82~wjtPqAJgbOY^<)IfvR$MR7EvXv$ly!hoBwTC|A~Ok}qlXdJ#u`E@jk*QlvH$ygVi zLAB~wDB67A*5|8NXHs9v^&vGIkoYn;F>{Ir2f+lXQM^XxUMF;45~psX1ztb5+9>Ns z3YxGu*0q=(Qz(R+=-pNwtF0ldHY0ArYSAV}Fp=F>9a1}x`aG#MQedVJX|w@}Uu7l6 zdC}k?m>@NZf6;I_wi*^cOD#3<`nc6>*C9m~-LP;L)58LVc$es)RvoLYA*?ndZo+EO zCJ|sFyRCX8ey9VwnVI+`s(tq>voasfWkK1MAx=z8m@RK%NwqOftxT~w22f8Zv-tLgqWif{*es6r4O9NYx?ZfbwpP$qmxt96XEn7< zwQFjuc!M;$A4@9+Fc*tY0IZ)+iJXgJ-ell)P@DQ*1AYo~%H>|8e}v4JtG}(9el=#} z$%rn@)Bd+d;DKr0NWpRRHHwv$TfP*N(#jlrtF8PGPr{E+=2~TCz0J!s4)~Hk?DbKr zeyF&L;=TBXq$H59{d_FcxH0X%52sk&RCZsaQDI2Ab0GUx4nJbp!*~$d?`70@2HNeF z6d8D)XrFp?cI?Auu8GImI15Ugkb#A%#^n-hLl^V;t?;UD&7JFtB=w=n?wxH`Be#Q*?c}uT=zR#+WuTdP%ho?$g z-bjJL{=Cr!JYGfNy|Ma=2FJlPuTh+$(REri%G{gSB7K3^-@j%XeFJzwA9md}k+YjR z*@%5ioJqE78g30?xEXO1hKn|lg6T}RYVz8F*MDS<6xi#}8*RWlyXxV@I#M(^4yH$R zqxhKgd_tH$HHFpRyJov4FS43DHI4mCbXu#X*;Z|{&4`&WTeQgrn9gylCa>9@rp-oC zd_yOlyjRh^Vt2elg(cDLX*V2Ah4s-rAb<7Ip`wkbRk(l8mh%)&kh?nLg`p_6)5+qF zLifZ2#XZ&3HEm^`-_w>YL!YkQ)+{8!#4{T0I;8RuXLJy9-RP%gW78$R{)$UIy3s@N znO~%7Da8pjl`l_R)}gk4MWlG}6e6{+Rz&{An+Z+krNbSgA zY?9(}Jzhaar+}1k)t%f}M-x{O zy>9O;=g63QsE8s7bMIHBxJm5N$%$Z{ggN3l^7o5EPb@U>7=UW+^nJ!I7*1dW{aPaoc9(?=NerzhGjO{cG1r}*5P z+#1ChFp<)cI;3(d;q$PehV2&3`@PgHGF9Rp%GN&$XSrK`kKL_9m9^b<48`?RnIw?K z-7(`8eS#I8Q7kjPo|I)0MjtYzLEXAsUvUz^INhbS{UnMUyGaobvu*_+av!H3w2I{x@0O0SIE>^ zR=Z@os%FLye&ceYkB-{nlVw5{l0Ag^ZUD7r1u>yE5z}j@#)Mj?xErAqnSYtt?yq04 zG(!QDN>NGp<@pe9;#2B28OsmyTQd08tam7nU~-g=(jf&jPPlr`y%@xP_h%_2Vn-xs zM)@!&59NC+{pX(YzZJZnEOm`>P-JGnF?uxY!lZd+thU%Yb_AvKlSQ9 zO&tD}`rF-8w3b|xJu`JpoR{7wT%4`)DyzRr%@(yWPv(e&v^9%IcWfYKo6T6+W)oJn zRZ;ko>}=6k{A-(ugsIeamv$$PQ9CuPZ|+Lw#4#J9CtK&M_d%l^HLfEmRwH1g)tVdu zD;WV?9VPDCdq=QvQy60_;{jDio!^XSOkLZ#hq4W^Z=VX+uq$mso8?!PJ)cV?-J^x# zw{@sh9KE1J<%hxAGK&A%%cDY{IN>!Na@OM)MJ`*rM(CGqH8XugmDNhLutVj#umCKkL%?3yWam_}(Obdiqol`vQU}YVyZ20y zgl>uK&L1ZmU@~px=_k>BUl|&4{}9h1#m*h-xa%%GdV=j1X9wYm6fIl+6c;NMG324f zKsScV=W9@in?txgHwahWL~i?Mc(76tH^c3s&DO^1l2}#TWs+8vJ|wq$i^LL?)HFw= zt%dH}#BvicA6R|u4MoD9`yO#T{jD?VU?#rMYZZ|CI98F+l(X3k>R={p7Hw>SiM+Pz zY!0nDn#zvg`r`rWBWLg-Dn6=eGF|2_e2@dnOB(YjuedopoO)fWyUjk9Uxj{HJ{Xz1#1*|HOsoAoSLv^tina9}4a7i~HNOlG@T zkJhS3qj&D33!^6s-B)#7R)3&s;+llpIz8X<{nyL9s=nXxVdX(VyQl%j=Aa5pTx{&**c`r}yk!TcPPP&! z9yQHF~{xP1RQE|)fD(B(PfkSo>QQmG{ zlFY4UM!6-?N)zL8|z{D_Y7B_2JFg@It z9E?kFhn^u(Ed`Ga^LaHz2I!2A)*pm<>qaY;KHlDER`rwyk>jAt0L3lhD{dt_WT(HX zH2ThGgmD(r4Q%?03nQv1P|WTyXsf6kIBG#BcEB~ptD9@A4Ej>Dg<&w+Rg54=wFXP< zl^d|JSE)5uZr)AidT$dB-xKW9-5#UDKJD&2_1(1N9M$c)(Rw@d=om=^lO3F*C5Fq` z9JGMRvxoAoB7|MT>B~_IJ5*S75@*M~vdPI%$@aY?S$UAu@}#g@&&=7^^gD9?IH>}Y zIb{kK1qs;vNyzTe9THSnvlAO16J_Q+z*urnRu2fwoI#?j8*=Fb)*r7i!<7&9YAhx0 z5+huZqKh@+jHzL4)?e;fV3UKWys?WFydNT(xk0#3H2eS*I~8@Nqbb@1%Sl^e%r=V} zq*fp?J`$Q5#gBCA^%J3cayxNP8CGAXh9Y5a#Mw*VQ$`)k#BHZmaKDdZ6$wo_o9>_4 zG}%blEZW!t6M1dbIp=QG(WKJ`!3Cf9g$I4Xqw|mA=R?y{idU$qe1d6NhuZ!1^9lF! z1&R+TPo6eyKa& zp>mG$;cmo_cWmrkrj5SK#Bs3OXhY~WT6epRxRyfPWkhzL{iRa5>u%QLE}hZ6S&TgOrBoRV0EVK-hXjLGtT%%pq4HFbt!mrRB5AXBG9^1VYs7>{V6 zexSx@*BliR2AMk8CC7<$!^VzNG{gyZWShwUOYq&6U}n~BS`cQrXYkw)52!MX-K7V` zhiP>X(~dyLWH3HPLrTnaFXI5SdCJt@E38C4QyaC(?}6OE0H#QqK{oMog01V(w%QtP zVDeW7^Xkz^0G^T2EsbwXHX>mcP5mr{yP3t^ z9m-fi81z)DSaG8J=X|Dqss`v)hpr^(szX;2Kj=mRX<%l#CVRP(cq*cD1OMI?M$#5F zT%C>G&4$bAgvqs4tWVXcOiz-l-1w6HHAzt%B>5ga6pz-S?(@i0jt};hQG9PNj|!dd zgx7>IkB422RC?THEP!1eqv9o+=G{gc*xZm10!oaOtwXf0mCK{<3F@Q9Ms|*_fMaUn zUyLh%YJxeE=FBDnv+j-uxq+U<)PyJHeckDKQp`dQbf>D;-4to1CD|XGBt0Tc45w~q zQei;3Tb~pePF)_AyLoK26Df+KZx%1s_+*?W24GPRPy=#O@B|G3dVmv@_iWa8K=Fc9I4R+1c8YA<^aS=>rb5`*-r3-z#%9h9;!g%NT0fwenh2~Wr#`3Fi@8sa#YKo_ZrezdQQxut7qA=6PBCxELXHTmaA}JCoC6jIs;5*yIGIcsz>uf;yRtOZL4YRR)1E2 z$*PG-|Ej8~8d0`{%G;`wXNr}T6yw#7(318WV{}cgl4WlfMflQ&Ct) z{fdh$KDsMqij}&QyH;JZg(@(yck>$)D3yto6dxQ`Sog*c($uFjlIO1cWMoU*X~n+) zY4cbGX-sF7a2p|9_pmROZNflXM)85YJSq@(WB4=Xa>j?j2Z zKEXKJ8kt94iPd#A0fEVW8686sObn8-FrX{-(FJHxaPTK#)F+-#ib;_sccEo}#q&4c zha>aoCNSAuvqs1tn7ENvUa0<3eefG0Pqb36=0fy*?yMkOk)r2w{lzd=D&jQPs`644 zWwhPpWa$i3hV8sNb=bW*M@Y`65K0>ztoYrPmI`aWJ6EDu*>c+iwhjr)ziX_u zb~jrX29ti4DTXj*xL~<&l;szc)0eJp6FD_Q=ZT%Mn@=k2jNJ<%Dv529=!VbhXub7x zbd0=!$@Hgau7|_uQDJNjTEOIfUEZpNaEI1sM_kyUG7{E^Xm9M5Wpqv%s+DYX1F84r zM1M6MIe(l~fytb9&z;-J6_r6WWs1~UK3zA}S7^sVcTt>Khh_zLScJ+O+DE5vXyZB5 z#Qk5tZpXwS);JsWXnhxBYQjao_ROe@McXdSiG90S)F8D2iP4nM)F@u3o%;2{^e<#! z_1Vvx?K-5$UhdZ_v1f@}0j)YVTeWRABWA*8QRmF6Rfp6&JQwLvsMiXeVT$h!O-m`h zUrla1Slgj;iW&BBbtoSb!gN$mpCOz`aifVG zm{?id<1MXL$Q?vn%X*1f^5jb$;>S(kCE4Yd8gKAdvX(3cMZzXelLgsUws62F8Wj0s`XyrFiEbR z@-hbeK1kzYq&Tws(pBo!s+qW5hj2w&US-6WdTms+Z~|0KkEK?!JOjr7-VEX0Xb`T< zM&9+>sAzS(tGp$InV&=bM_}baS;7mptb61B)okGT#)YW#D=HpLsIW<52oDs z3SQisyLPnBhBrD!mx77@k4edMA@^XTRxB_{>pq+);$cEZbPqPF@+M*8+l*e>WbP~3 z=;UU~9k0KN9(2z(DivTdp}nUXZXm*KUvr;4jpI4RS2t(Q_W&1681)%z4Xg=PzN({4b`e+vm&7>XR`_cX2NFCCJA67 zudO;4cda^_=z~RH@ulTL=NZLUhNh(y4^@+!PHQ_TZNJQ|kVMyq@XW(go!sb!?V@Ylh8h zS-0Y@W2)S|LGtPKqI@;O42!!_T9k9c2H>A^%WM<)K(vVgT#ig==pG`{l=w7UZ3Z9u zxLS6K|E&3($8|y%7sYp~$#)F3Q!66H8$;7linmOW#aN87`N@>|$qwc}7;H^a{BdYn zL9y5TWV8qQYmfsZhCO!%*T=}Yl@S|7PTexpktdg1ij}(PzE#n9zifetbIV4HgJ5z% za`2qseRLPjucr|4ul#51DU;`>`_7(nr7(J0tyQ25Qn^~BJ|ux&b64{e`*&ce3}Hr` zTe&Fq3dd(4<%)tZ=DJU2P(j@PU?V;W=~aNq?*2oiSHUv(3i~Mb#>MInF#Tjmi^E{o ziq+OCIDBotUbZCH!wUwha$Og(klG}3dtT&Q+z6!DyqKn?6t_~7Urng}V?{)53NiJl zU}}g{Dc0l|#{+;u~YPD`K#F;%fbkX^E-Xtfwoc)zURm z-1d@R%PSIVt6d?d zs$rKgH(WgJ)HDTt!jE|OdoOD2A-@-)dU z2^|wXkXtl%(LpdVmdkTn4nH;MT22u&&EoZo%0PQRY0-TXqR;9Tqm1WO&gw;86tQI8 zY%f=YmCcFWbc(?FLE_)=DvE!W+({ur(I8Ec;xmjoni>gGq^X%8MZ+XTN{qr2qUfTr zRB1Xsq+nlq5=@bnbFddl;{`$2O49$taK@H!6uFawToiI?hQpQmRk8Y{BVr$uq2s zU)4b{ndC;n;r|dlbB2}?}-GT95iU;ZtMNuk@WDXt7n z`%-+Fn$ou%y{7Kp8+>^Wq0>t7($KV$;^k`cTB&_A5SLNhJ$RIfCT)8X+ZP9wODST_ zU-DA>P9RQFtZYYHR5>U82Sbky@=Gb69GX^9#E1L4+dS)wu?4%1E!geQ61$Z>c5f6r zZr9mCF+V88zKS9)^_9mpi%*w7FA07vruc=>w1OguaZhXD5Y`h9aJYnYA1Qpk6s;AO zuK}j~Hnp{iwd*@n{xw*R%%ol+T*h?0L~gA_|DYnCCOm8uH^y={MMZPHNZ{<^b;a0T zyN>O(TeP&6!q zepa}?Lxt?PU4oSSFo-UuNNN&$3GbD)IVr~=!JQZ^zy5}GA5f*Tyco-vaY?vgogV|$ z-&WCZ|G86K1xs>DL*(YeArY(M+#~{wPQcs?K&0Y&;hdtif7fnNMB}(o;KaMcb|-6l zzBzGItWnT0+baCz9BuwT9R=Mhv5K*~?iX2Z7UY(6I6qh9{EXS%VOHhVmzu?o6~-^B zaQ04x6EhR*hWkQR(fo_hW#_4Bb(ZP;`&l#sdi`Dd9bbE&&@CSnU;ABu$el7#JX}qF zMWOb#ib(O~(6o%=)tc;yGq7?v7R7~f;Xj3C&r*I_(6`!JO%4F3?$=WD`w-b;ij}r# z;1xS2eZ=|>75sLMjc8Ih$KCo$vi_&1JLW2g7l+&|rMRD(k{Zh> z(1Q-Qr7Vz4)gOs#V}=0z*($~!6}epI2I5achcBauY+~&B1YhuNk2eb4G@y8AXj)8h zwk-79Sf3`bX9V#{iXRD0D=$C5+x>T8#=&Pw;uS%1F~v$*lsm6_v5_qYAi}2weM>1; z`l4a)^-1eB9?ucFgi*ZpoBoiCh2p2L^-Vru)V{4&N2GZD6e6{oDx%jD|6MFUJ{J6$ zr1PMS}H2YL!n*br(Pzj$Asa!m?FcrRUG1W3mv~E@S;K3C|;z4 zC{3=n4{#$0| zDbFq`v+nc;JJxQ@PDIcsc95z^R4T*Buqs|8Bq{zyP31ZrKkZWr#ln**;rNC^T6iKQoPLKuY8MVmZZLjp<&gG~OOGE~ki^MzJr&UX5{AmHk|4{B6*=Bn~f2t?G@{si>?kd$^}Xx83C!K8^9a^qIfo_C3vy^j{BHBg0A8@yAU`Ys59x zk#x^Mj#<&N&B~VFE7~lKxu3(op?JVv_wQH@)e)_!yJE=TsK8nN!Aiz4dWcTpFwFHOgvSmD00!hNkm_aI~RG$P{!jaw*#Wk+FR zxD5I(j%BBv!JNYBX0Wa9!No05!n z8T4Ho%T7CkIfa{(LEO9G=58{JS#Do&r{;EDP_yS$f6G}>{!d~C_5rID+gQC_u`&>! zX;;ovCES7SmPrhA5}sTp%OP6+kNg%2rx^_3V0Gb81>s9gmtWk0T{oO^yp;bVzlFkS z1p_#k52xkwi#xFEhEq=X@_*#FP&n;i00;Bov|WC22X@_X{M4W~g!> zrsvROZ*h5WAI>Cu4*3K2uQlVY^R0TIYE8}MO2rDCOgzF3B*Z? zmF*SQrW=Nh!z6LM(A`$}J3a9iv|gS#W_2|h_)v$9^v3`2rG_lHp zQro{GqSj(;W)d@K@p+{7h@f+lB4#|%TBz!=tqE-H5VWqKh{00pM28wS-PZ*aF`u|( zD7*1yCGvlSz1@h`J!QW4Smn1bH5$XPz04Uu^0-mxI+5aM{?i}wJ@$g$)P8WIr+0U9D%dKY5?F6dbsJ+Fz9qIak+5{p`h=yAq%3_Ta}gHXS%Mv$FH^Fl zW4-sSY4>BL%Tr31CzZxu!RStwmH}@2apmWCNH8GjoV|0q=$-$G= z-hTC$+kG|#qs6)n?qw=t9iq8HI>G^*0mA`Y`?lsrI8a%obekN+(Zs)y+HB+6%_2+R z?j5v%!~&7-3<8;0cJB}a7$h>W#J0;5?(%bw*d8HLFn>2ZlY+5a3dX`@tI?eX z2tM{9wZ-2>EkBiDOUG1ZH;oR=hr6M}2GMO;tjExtMzthY#_! z8+Oi`mUQJsRkHrLGgfOPbrS0oSV{L=wS`u+Y^!YfQnL$ITG#L>c&`FfGgacA<$k#2 zZUk7>W&LgHu1kdOcNPpYY$kqsF;x>f{x!YJ94 zAEdU5{ZO?$OxP&)qqvuv+$M6$`l(L(%V+m(3HxLg>Ep`R<OjIwfY zSg)&b%)lG*gDYY-!-yZmEN#GH==RJG#%FeR#IpM`&UXkScVCLAOOD*KQ(|>tq9U7c zrIbv`PTQ4oho7D+{@fszowh6Gb`-0tlNG;_#j?|OrM#7eI#yCGy7W1ds?S>NloX7# z(>3bdZbJ965_X3O6&6FsqsU^ITp?1+AnT>jVcw_UvFg7qC1(8Dy)eJi!2 z!tkG<$VTRgUiH+!){y(v%y_Vac(-w?oV%7Tek|v3vL-F>3<_@vy);Sj=W22b*L|%g z?#F9&Jc(&(PZ~}?3Nh~MjRse&EZ;2wg`|e0ykGO7R_P@_j?? zdlix5^;3wIIbU*HTjKyRjuQ6X2}ALR6348rMq?PZmmZhi-GnY^iYr6YQi`k9lpc_c z;)yyw5kwbTC!_igeanl5&H;*_2u&*}epXH10czg~#AOuE_>ouZ?xj!!orSA)JLBs@ z*F^D}(6l0Ql?Iu6d@wsn@xsuw8s{prt1(;ISdGdErReEF;RMA`hNhLVjg_&Dm67hy z@EoanxzH`2V;z)U9vTlB>ri=}^4et{p$Z{(8?6J~#$YiN_A{p46XW5S3XL}Yy&$-9 zXneb-+(7&X+N*l$iEwsLg|mAn5zg+NL^!bv+%a|V5z?qX=66)oF(Wy*578(3N0)3oB5rT( zweiqy9V_n@(cj2)Js{@39;9Z-a5LSS8BW?p(=1-AJTPZc_h-u`ljF&*AR(FlMwUr9 z;wM_idQ)Zx?(lZpQ|F3hkexCfIK$g1y+)cPWSBK7mR-(}uGY8Z6j_3@Pf4O~_&|Eo zFkB#h55;mNJMBQqg$8xQ2U3n3q$_9Y>>8zHN_N_Tl*p@^X;i2pZfIihGS5+5O3(-A}uR4(}c+`y~EYUGC(C$$>7{M3KEYvA4K8 z#uHd1+&8r`FB z6stQSP8iL-7+Z1o`ms_;yT)FrvfL=XEzc?sYtk~lpzk{AbvM{4{y*L0+4kvPzegE(=`6fM5fPrfhsi7#C(bOVs$O`&N8#h-+xWfX5#Q~G{r z*^{3U1HC;az8CbxcN!ZU1e4E%mENBqEuElk8O4vN$^APDl{CeF>6QNO0p9SV4)oY6oJwD`fAMis@NtqN zD$7tOJ65M}wd#C5RyvVVI+0YG_-dqarMv@EOI?pEFHka;ggh;#xI8qiI6_6@bYp}d zw^rg@6UA*q)3RMuB)y5j)z}svz|-idpD@vIT<4q z>=~(JVOXxHF)T}UjYyq)dUq^LMHF@$t;%j=&qP!4daXAbh1u!ZOxYd}wwY_r%y@?i z6VENf%=}U4w8g`{*@6ZpY2~TQe@V|BLN`eMqT*;6#ECmN zqmg9!gd|=e>e`|wEgGZctB|paMAtzo46<&js7x7gwl^B>q(Vz;cb~O~N}yfaR4`ZH zcH7+>MI~vRT^zO7h`-=LF*$LE7U+<5FV>TovyI|*br9+5`fqhrw1iKVTm+qv6Na0C z)YouDLsw5Stl`+pgyEu%K`I8HkZ5^**POG?fk zryJhzgSF8{wr^PN%`(ys4%QmJsn#MqW4Mgsn40{;W25gC{$qGF zc9LSRaQe|$EZ-J{Cn)v`$M=8A0e#DK-R>2}SGNjM?6n-b-7Ac*?jAP9Ug6kn5_rrl zzI49Ot^O4E`l&zUCN{-IYVw^x?bM2h+Fr!OS;534MI`;U)hpCnM!|c7f(eRG4yIR8 z#H&*0M28xd`aE)lnXd#hODH}um{~~?#if}g2{S8uBPh#dcWom*y9%4dqRy*SKB=e8 z$~KEH%c-k`ZX^47_bM*&Pwx~3tlx;8dhnqrexRc_1=eBKu&blvca`PrE3qr~ZDObH zEH?hAgQUaVt=R8#i8~<8h?)4eG*YBhHjWf2Iwxu;%te}JB}j?BZmT!v3EjlBK85w;D%Ky_q4G~^^d_mDUP)6tt5=%JIa8#m zeX){Wc%b+AS;E9!c7-IF#|oS7t-O@cSH47c(rWBBN=FWiZa2nI{qo@IDvIQw%*aHC z+L;xRBH?->HJo(|sCBi^nmWbv$lWEldqD7FB}E)8y;u_5?NmgHIOvJg&Z~$NKcyy5 zq;_#dq)4cqXruM5Qv!=CQc8U8OM8lIg1w~_dqZ6wLOr!2QY5(2h2#J*u zd~39&77kioL?|xm9Ts%M(F(f?}_5`rHcPmjvM@6nll2#EI##{JbE%oMNwV z`qxs|YR9=X>^zec|DdKaVdzg2pEA^f#L%l`+BJMb~8KT-HB;md_qe&M0MNw|IVrf2#5XepK~~3|^%=_&wD(3IA;Hq&L`1 z_&Rn#YtKqqKd9peh(C*EH)r3<58@vneXkK7F8o)a^*6^qD#OQri^OB~TOReRmH%%F zbMm&o#^o1zu=W<{_``*d7Cu8*m%mqrZ^sSw|4|%m$>FE92jAkb@^$&=$)5{_mkO^E z-YERB!JXgeJ%5()G@*?rr~k_t{Z<|x{@_Pl`#E{^SbM*bUw;%9imR20FUPCvUtReV zWFO4sd$xG@71BS8RX@z=vGH$d{{FImpzt7r)}Kpt{0iaMh1UsxCH$?yJ^$HjS}r_K zSXckIGWxANJp93ry7qJO=&|$Yf1C7JY-Id9QtclafM3_~ zYlSxm-3#rypLqtKrMiu0SbM|jKWac6#7R8E>OWTc-zV(UwD)20&J$iPwE02*2|5nm zTkKhX$>$)f8^0Y#)OXi-S|rSkuk||qHsRZ+iJy}k_&e3X73+N_z{6AruTwpTx9YgX z@ngK+UEl2SVZ!GQz!f^~rK-Qv%?ELV#0?TRNZep9ZrX|ao{E>aK;i<43nVU(IC6M* z$M+tM&x?;y-@mCE1HGlM>-crT9|~_17Uq-V-<;v&$NBPy{=H9zPyW9m{#x-u9L3bn zTXg(g!uJW!6&B|67PVXcX=*q00zYn)Ka0eBeujUuc#Ip6aRV}Lz}&c@o$<3={dlc# zbJqj>v$&nsBlJHpvz}Nv>T@M;^NC*a0FnprgpBhx|*2l+W?; z-{P?u{lxig9VgGM?>2w`Cf+&1j|tBcT0T7RLh&vcz_)s>+y=>CDg5`0z8sHut-p-- zLCAct@~_goI8^vX;YWot&40@P{q*A?%?0UM94Bn}3^6%YT6M>?VAq@M#(SIsQLn_>6;G z{}1ZVN%ix7!j}q<$n^gLjjP8QoKPKnsp{YxR0ql9wQunm+bCpSlGingdu=9u{CSl0 zTY1|b-_%wR_Y30}e$JGC3pMYUx7I%P zwozO=2zL<H#h$_9`wCi{@ebteAbEo5}*FUZ_B?^>&A%kI#0NB zW_`=?x6knL;}7!ZPr`An4|aT6{}?yVkQ_)}Soe<0tbgzimi+65Zxjxaf4+E&g-eA8 z)s(+kdHJ1iuXp$ej}h8D!kJFBaZ#y!h|(X#e7OGo#<~+p@Q{a0lVTg?0H4$nYO5KXUo9 z@mYJXQrw3M-za>y(DH5mZ9XmkM*00y;je|wjQ$+|_DuYYgIxa)>d#-PzketElW=~f z|DUCN?`v?C>fozYXP%KKn;-POxF-K3<>7pCTM2PrtlKe2_R7s$W>gY`pM~lKip4cL)~^kY6d@ z{=x%TB%Z{mTctB(KHU&h@W?Mrp>apHrAs}BB1b&!3JaZMiC=f1DJfKS%Cm%|t8 zcn2b{zcb-99tF6>fKeujg=A9k==1qOV@j0(xeut?rO@&=MO@PB*$$P-AOK=K4`seIjA#us@2$pc6pz`wP8Y^(Wqf|>7j zeLGvn&li4H_%&f&{-qf{emqM4*!{xlr@x*d{xLdFx;k^dbduUXC_G2_g(3OpW%&59 zO8&6FU90`g`u}qA7-t~k3}n2ahkX*v?US^#Pm-5KGqm5~uf_K%F80%QX1}y@)Q^|E z%@=yf3pgl0cVzN^n(UwlwED=q_2(SPUzO2=zFRW!N_RJb<7=X{ZM8NHl8+I*cSJr@eUAiO%G zpMJ8)c|S;;*4`0Xm);?~K)6A8qi~bZ%5Q1@H)Qu)!tWZi{_Og4-vT~V^*w|Og^v?H zLHKrqSEvrIe1+Ewo}@bXm4p0o@J`ji?;h-rgL7Zy>)>gspCLS7c!BVG_WE2f`l<|4aA>q0JBD)8Y*p zua-~yPj&p)!rzB7O=J)+F^A~<$_{eRo_8l_v$YBp&&fYVm=Q+X&;d0^2g|8Oc zcsHnh??e0%eh2)ot1Z*l=f1|{Q-#kEP8!@#b*lyW$Ljc#ggJdVdGw4+{?P;M4a>KB zH`m{sJ{zC4WAjQqm*2Yb=o!|&<=cM4uMO%C@Cwzzud5DzNA(+o|1nKGZ>{(6Q^LJ9 zj$e=&&pH1;FZ;vFzg%*gEB|`wd5iE}!uJT@Cp=a7A))P`gVkPFpOt@|kv~@ToIiEt z(X+XH^wjl-yn%!A$N06#I0hNVU~W9y@oD3?cBo^=^08+zXWz;XJI}0q&d!3@dM5Zd z)$7XdSd)LJ#^bR3Mn*q+@EgqepW`pg=trN$zsvBkdxnnZ@LU}SFIK%Senout|E5_t zUzAxt@o$mj!S~IOzUNBMboC+sGU<7x@KwUs3fBqk_*|y;LGnjr@D}Si; z<@o3Y(T|*s4<0y(pBsO+opA^<4y}DFXX}=aK8rd1wAV#z@1Ne|TV5?(EBsesUH;+X zuNS^KBY%?GKVa~q8UDp;|AxUEGW@R^9&$N8?G_vF^^uPVcNW@wAookz9mHRt_w?BJ z6LCGVNyqQxeLjbIi(3iDg|88=74rVK3snDtaD(s~;kCk@^uDwO!bb}i2`7YWgdY)J zAiP3&t?({kq4%O~CtM(Wp>VNqf8ko;n}jC_uMu7={E2Xr@WFa-*#hBrg&T#uzijb= zK7TvvzRW_scjj>6F+$!abcWt@a;DxZae?qtdY`}s^L~PH{r>$B;W5JFg(nD~qu*CA z7V>-I#ri$p{`#H6THzVTdcVPk=|18@VMF6>f#TwRo4wv07w<)x@q47&!DCf_r|=Zv zsX{ycb3FLq85w!n!L!8sNQVDkY6pL(`W+cQ?ckrqyDP)r>qH+R_)OKGCtNPvPiXUz zz{ zgAYC;BTqZ{_u}oD;XhaH;0sh=lHp&f_6@=tg+CVFBK(=q#`kNrgPT;pJ;T5M`@9D5 zL8|X8wEFi{`zwWa2%q(S&-|V6&q6Ez5aAnz#|o`HJa7;{X9sz!AG@EC{bLlz8JT$AC*B7P|1B9l zybp>G@9h~rytBlI_pS_oLhY{*;&-k;+9&%Aj0xupw-Y``c!<#E3*OF#_x^jB{~+T} z&VP7y{kQxhWhWQ!CLRC%X+CqDr+##e&7`mYUi|+S&O61o?;zYYgNLXcJVAA9rLKPT zfOYlZ-@`NZUv2zE{~I#=52zjdi0bDHKP9|aXydIbxA@<@B>i*H8mr0I>*~8w{#+yc zq3~wm&xF4cZvTO_z3J*XRQiqQGy317`&_38JHk(7?tje`A3HWbZXA^m)``u#n^ z-1>vQo1}M;zMMa&Oa5%(Cxtown{@m*A@Y`=W3EzUm~P` ztp1teW5?>JzdyXj9|3dyf2QFL;=fk$y>+%XaJvus_9qKpBOD}ul;qzcJWhC%aFD)xTK>c#{k=f^ON3t*UMaNs%JIIR z;nN?_)A31RE>G58P98m$Pdj*!?17fQ&mq1Ae7fq-6TVRRQsK*luN7K-YjmILvl?%l z-?9E}Ps$e(>WN zd$Z2;cDE94Z}7gVKSa1l_#&b8|4Oxk-&g$>;ldAjiKhvz{9)=3@Nm_S60R4%S9qeZ zBeeQXke!d6?T;`neze9ief>M)Kk6)B2cIbUmBPbn>YF7!^M$(@z3AV5fd0?R-|q=? z{#$!*kiE-=KC0^PO!3!A|67F@)wK6M@y^ZgbNPC$`1B|FsUq{GoIH7djP&d~z&?6* z7Z3TIJKi}9 zx9p+g^cUlIq1qoWURo9FZ9QE6Ye40 zN9d1MfA5>&@0HGe!gmYL5q?ToS@tFLfSarDZ|(O27iwHwB)mj;x$r9C z_k}jURvx~^Z)D_Y2fsDI-X}lfJ@}IFO5s<9)<5_bKO_DZgy^&KIUf8$_O1LN{wBr$ z(~o;kHm>n_)Be^oU;n$0dVIL>k;2CdpDuj1&}zx?R)~Lq@Rb?)9PiEIgXgOLY{j)q z_+iC$aVEY&`fWTpKK>sfKMv2t^BT2V9{i(qoVcugD?f;j9*enrS$oL6Uw+yAT0VN8 z^f7WPIsfq+wDyqyv-I30oTvCL zKgS!d$%hA8{g09!@c*g4cSgVEkq6NBXU-mW=y%Za(F+dJpW`jf#4}U;od4@(_ie(r z3*ULJk95--k88C4yj94$Wb={J_a5mzMfh*R(}d>D6 zHFB)m#^jquk(tAD2SK11;?7OoHuif^XuZ!3E? zz7y1*>krGnQT$J9onjxN-z@(p;{R0GlH3z(%ENn(_|F%fBs^94VWG7Te^STS2;Z3D z(_UA9UBAee_3uI2w;yFNcYgA4!$U5|Kl>1G5j;or^Ms!iUM{>s_)VepccJb_b3U?h zjb~tgllCjV|5j3+RxYVPYJIdl7F%IUm73}4}|}%jJ?~{4$i&E zNAN$w@r!-^AB8qPzUiTYh`_^&sJ%!p92t7OoQ(U-f>E3!f%@fzU?z zB+31w@R`ErqR$AtMD4HOxUpyG1%90){>H1t$oK>Qz2d)Lh>u=89mezm0;`)j3R^cy&cL?zt9OVB+lDkA``MG=|XZhch zp6>{)zm^Y=_=pR%eA+=9e_j6XGV$Vv_1oI1+uzn7^#4fq={L~w;SKVqt~@-@+MB0& zv5oM7LgKZ2csm$gjt|f3g>UDlwKquK^3e+p(x2lUr1-$~s)JXleuF{l&tjtoeXle6 z&2tOwLybyaf-{b+b`LO(){x8ao<&(#{ehwNR z=mBlq);|7%U)s#va@hc;gf|=6w~RYw1TY6lM*;17OUJWO(L5WY!h{d=q0!Q)gv zKEuC2?T1|AH9bpt-jK=n4dVYy_)Fp9FL-(IG}X@(o+I2{cC5Wu%H9bz?Qb;p@x$f= zp7r;U@@JuNuL1s%m%94#=QjD-l>V8P&)J!&_;UJpn`XYoB!~RM%y`J<+s3tz^fB&0 z#vgj@_&PT;zLB^1F4;lfOEU8Ninl^|kimmhUn{iZ!O9QfV`q)AgI%j1yN8K?wD3(C zf8JntZ&Mw7yXxe}+OzV5_^XxI1B9#x=VbED@e_6YWZ`KU{&n*Ahr*4*Z8Z)VCr1n^ z|2yfi@&7>WAohMTfRBH_6c7B3>VxbdKZuVWi+9M*ox&02$Hq5D?chAs$*1KXqvO92 zvd>(X$@g2t13#epnL?}oooYY9@V>43AbUCa3x~9q^Y7!*1D>yXPCxAyFP7Y;!mETf zA74{Dc#Z1h!}2%j_*cK^kI*j@2Uw=B?{KNdorDh%K3KT3@C<{SR9`DQ)*f~X+0EHU z|3jtkVZuFx)@$0|VeB6xKaLyZk5P!ee~`Y%37;bTN8xjYM!eWu`MP#zD&D&Gj#9kz z?{xD!AwB3DwttA*j=x_?ul0-Z_JquMw|c1GME^=|+l>4t#JfOviEsn*W`Mx^jNv0^ z=mmPN6#v`8>oWSkk>SDrzK)0Zj6o|uh<_jD-H~ev^}bu;fkn1^iKC54)DXwRqcP`1ezL&YqPY#K(@!N6tU&THIBB?IC=u z(8fnQ_;~TizvZ8-?*l(ByjHkTc&BjuYgW?Nw>1AZvj1D*?FOw^*DBtPm-{12G)^zi zjMqPjfBcs`ADnxcuY*re9o%VyKMuZ0b#Tp>{qeO1k5T=4;hn-0Yx?^j`MI-jZ-YOO zA2$iT7uDY!AGwO@OUq4OW-33|Z}9qmE*zAvZzxX-l_#68^E3U6|F2aXf0n(wgd@_6 zee^#@cD$F>U-YfqLi+Aw{HZMa($+c-Z;-$Am&LQ>ztvCsxjKG{LCeqaew5J<|5G}C zx$rB(uM4jgUN6k)<2d+(0etM*xa#_0<7a)a$T|VCPJpZv;HNft&5T1Zw|+1mR%YhI zahdsG{iMG0Wi~Qjr=2*!=ZL?*@PLf`gxXgNUm^Us@JQpo^&%&~wx&Eh@Qso?PWTSt zdxfV6J3{NvboCIg)pvyK;1_m5%eQ{R13xT%IeS)q5Fb6Cmfp_^HwhVk^rQ7RCx2N@ zd3fMelKZakdf`pNn}xp=T7Raihj^_%>j!po{Mj44hMf$u4uHq%IO_nITMtguzTmZ2 zf2|$r*g-F7^;epF3Hg0C`1)euq;R?L03mw8!hFzYae?Fwy;!7n(Av-O@fSZq%cmW* z@zmw7k)M{2AJ%VchyEGVALx6Y?2&iS+J}dIc%bDo4nf8l`%hi|$1>v+y&(FB<)2(r zKRj@d|M&sc<=4#*dWYpBXZ_)PI(MF%<0EI!i*tPRbN&qG__uHHN8o{$53jEN|G&F0 zfs?GN?taX$jIuSWh=2`wx0X6xQL?I-aWP&6iE^&gm0qP(is0kS*EQ-qaKllDm)qA(zo30r!U%v1C zU{1aNJNMjk?>+b2bC>s8>rJW7rs-uaZL^nZ$cpXJv2SggFte>2l9#{X{e z#qn!`qK1|vR#!w71MrClP@kmO}AKnny==k)U6NYQ>uJQ|9|7xe)bvG z^B$*N-SX})|Bu<9RencIdtXJq-zR;)LtTCTna|sm|L~nwg3@Pszx0b1e-Y`Sq@AQ| z9C``wm2Ts`tKSQi{v66z>gqGf=Nm{j#^}>ed?l$XNAKH}r{#BPTz$BFdS8gqSD(8y zj{hpkap@lre=q5EG5IZ)&TZd^C}+=Ie8TscUPRhK`YL_T$r12ErN4;zFP7g=sPE&X z&pOmm&l{lJcI9v8`@mY>WY$X5_33Wb!vN_p>AOj{lOFm{HeCm)zCY!@@0{j(`Kj~+ z-K25j!TacUT>6*9zqQNe`#n;(KHPMA|EU;%_Jx17623(GEz;ejOTK2GpGoTGr?}Gd z$oD$Z6{Hu%q|XwskzPsqF4C(>KSt{2e;n&!F?vp1eG&gC>CL2f#PECfSPgC=RlE7; znDxGN48Nvx%X944EpiI!FzH34F8}s>Epoy)EbSz{o7CmMZ6Eo+#e9F@&_{XyW77X1 zb@Oxio+MwEdbs>gQ}6%%E&F5_>A#b@{D*zhBFB)v)uC7M{$|ool0HbP@^`l>|FcZ@ zEmBt>mHT5pf1LEm7=C@ObSd@tZBo@MuKZ_{?>y2T($|o>`l;LkpD&QUBZmKhZ(9kE zkv>l9eaDq-?=R+apEO5WA^l$tb)}@~r?Ql<{Uok`JwiUEKUBT$vyzvRE+cjG%Mn*v z;r%w!?W7+eb<-dCutkm_eL3kg>Dou^^D3#Eeg*k1a`?w$_*L$;sk%E8m|ve9!P+>!ClUJ~Z8}Y?}PnEW3muJjS!|2ye3 zq`xBVe883(^AwaAX|TY7iS(yx-b{BIz?PdY(5 zNqPtA9*180Ju6A+J-k<1W&T@8+tufd%qLDCSN{jd{~+ljj-INw>Zx=m_1#0dc@cfJ z9^L#^zDu8`9?z0KM|zx7Z>rD7iGPyxFGzn=`aMB?-15Bqzga)cZ!_~vvmN%gJ%%Y~ zBu1WFUd>nAVVL==9&!BJDE}%_O&`Z!CZE!F)2m#UUPpOuev047=W0L4vs^C!4diQ= zU-@ogI+d&S=E~n!ewB9y^;Oy*qrdiJ^*c%*rG9EhIi{Z`RsZDbtLc?~lXC7Ob@_Kt z-sgT`pZqKR?AK%b?Y-om-);GKknVBl?>%UrD}9jnNnQ)fE5E0h@6Snp zMf#i0|7Xl6E`M9A&42G=z5EO5S4kIZkFT*kJhnrH^rNKOKFyr$FITSKKh1ofCG{x( zC5|1aJ^c9#oc|M=uT``0@98ga{wi;payRc|{jFuXi(=9@6z31kN9%1Z^V59e_~$8q zfmGAS@z=TF2C}9i0M>rSB!j@{}l4Y@$2(5 z$fq=pU;CN*J*7XTe%kNqls8YR{m`usO|SG3%J~tg%YW2vi@b#N9ET=(um06?H~+nt z-*Z&@4c8C9BEUM{k4>Ice|lKcIrh4T_|G-{!&ZW>5A9l{KfH(Q8rPBD zNcvIITSz}m`VTSmpNPBqEB<{x{|V{iFA#s6T$Qi%iJ1HjtXhqg9>n{@NRK2vjr4TV z^GMzDdXHM8XQP^5b0s0 z$C92vdJ^fYNnQOHSg+^vxtsqm@f2yAbR+3z(kapk=~hzr`@G&__3tVezF+Dc;GM8E zjLF?nZ;3Y;i7)jwMdAl~+amFUyd9DF!Cv~nsC*Ccb{`XkFY}H)CklU&xB1*C{Kejm zS4ZK8dV{Zv!VmMjbQFHL*BOZ);VoPe#ebx?JreKmcE34_|0wSnHf`|fQtxQb+Y?0W z@1@=`-mWDFv^-eq9qZkFNECjYw{S`ne!RDHI0}D>_e>;yg6A!d;(w{PVa@{si$oV^$L>r(9wl2Y4^@=Gng5?Wf7VoBTGF=e?cy4&uW` zis#)x{3_zA&u57*ICB1lc!jv?^L^qu;;PTDh-V!+$1Sn?Pg8%*H)(Lxzr(+l{F|Nf z=Ev@-uf33rRCHeO_{5KGPjJWFgx5R(w@PC)`haLGpC;uZ3|B+}=vA02o z|15)_0pHKd7hku;>4>|mK@}KGO{|@z&7_oMg5$o~j%vFEF358Chkj`HT;>bVp5L>QK zY_^IFP@ju|N0n=u{JY8jYx4gIasAVcgT(J8u7AShWmNP~G@R6@{wWGq&#I&6JouyZ zxrTD|NZE1B_lLyw(@FEhk9d*IS3k+3ilCD144#P1-E;+yL>;yrFJ%V`MNC0|{_cq8+@40u#~70KV2GLiq2pfV0-9Ql7tex1UdK>o*LN>N%=@;>z_dBj;Fe zn>w~YHc@h}2fr6FPkHMaDK9D`9T0$@Hyin_^N7zFImfrmM|Ki-=PzG3a$4sdKLUQL zht^wZ>$6j{Kf;q)R?Bq^@S{-w$2#N1nZQL(#~Ld~?cpNer@;<8=d38T+mFV`{|EAS zY_t3sYVh78MV}5&|3vP=h}-143%KaBjQVJQ|1SA&~;7I+u& zCk@V<0O>wfPf_XC&u)FanA4t^PU2lzige$D9~;8FP= zfq_`$>~ZXW5O@@Sn*8avS;c z`27a&@Valeg3qA*Ul3pTQw#JFKj|gW`JNA4%C&vDwZk*X|7OFFe)lm8^b((qk#jrw zw?AYVwSMj;zUzk;eOPgu$x3(y?AV}VOQ>iD|Fb$ma|;7lAKGr*;u7ij-! zKKnf7=+TN}F>jRX#VD%i)BSOKk8sXhuL3Ul>QUKi$zK3|DxM5KY5CL-+-UfjI6&^C ze0@dX-}vloES;Eqw_8B*KLmag{8G0QzkLIER6lwm20s}~W+G>pa?sM|@`0bm-$C+L z;8F758-sr|2LH0bk=t!ny2f>n1DAH`cKY@4r$py_HgMrzyWAS4jyrDxF7>vP{cbr6 z@h?UW+OcK=gMZ*DV&9B)-w$ya|xYWAHzU!G8i= z%B5QjYXAR<_|S}BKd{2TXo+{wsnO-_j=@&~m;SPo>(y$9mjIW1({om^*2DXNAGPFV z-ZIDk++^fqesRC$e>?U03h@p$ctd}KlPN$Bh4D+dyvHnfKA)XNykmz2_7I;3E_&*p zK}JuZV8PA%k~#Epb{5|1H2J-vugiEc5*taM5$qDhn(y-*Yj5M)j9b zgQHzOWEpFeGaJLd9k|%l4%!vMBy-(DISbq(UQPT7;fGx<(5{vdKN16Fls>NoF6Gi! z$xdEs6Z~Zi|9vs|lfaGrKWWoL4Rf9HD%-x^4fdYITLE1B&-sr3xzylH93a0BT9yan3 z&pc%LHJ({=R&>5Ejlm1R(KTAG-#7fNarH+GKjIVmf6Oq=b)VwY=S9SSY2@%GK(c4E zUGA~qEqqo2Zu%YVIZga#!ygd9pI@V#9cIv)AND|cANFOmNpz@;A6I&s$>l)vEg_icyS zdf4$pE8uv_xu`o@&npa$`6K(6mg{QZ;x~4&-VpYi>*g3aPg9ON-+z4~I^T~Qyu)i8 zEus8pV))NY+H!T$Kd2wrWN;=9kaq)@alG3Z$3GIoe|rr6J>b%h(oQ_ziH0+A$hU2# zXVT6GflIx0{@UUwj=74!Mb1w4M^u-&o*A}sx~ujc&1$aOz%TaGK|6ml@n13DUEi?4 zsY@(99*+8G@&w6Qz)e3|VHMPTFEaeC>qT|LkM#}uu?r~dAAw7MIf4CR8S(p!oM4Xj z_d$I&-|m#ncb+Wcz@;8KocjC}@F@Ks0WS5>Ico(RMLFm9NAquu!QTU1L72we1>cH-5~ z8vJN)H^+B`ZRWZ^M*abV(R!W?T=Lz;d`Bo}V+?-)K_uUl#b9XurY zqW-^Y?|0B{lf-v$pw@AAJ8+pt?4W$AO9)q9#8s>YO<>hegT>xClt4FsK zp9L;{<0Qv#TmxL{zrt}=_58HK(O-UP<)eh=x)ZqA`6t-lwZ9zpTAS~!wC7{UKLtF> z{yz>}ZJw-#d^d*wr@%$e%^WWlnCO+~+kCgrS>U&bj{q0`o$RNo{~YireXat26Q1mT z$_hB2e(!I9OTBeC^|s5%fn9ya^20pLbvP7=l7A|2k#i>HXuS;^erR`tO;6(Gh`Zz6 z+ki{^y6en43_q0!kT1mG4+0lEf0JY9OI~N~Y7Z4Thz4{HaM6D!`8!xYD}YNq?_O?! zGnx1GMovHx{=5aa*pKI||NPR(Z{<(C-j=uWyY^W(^_c@M`R<_q-^`@f1COfzzlgzq z5rZEw94%*a4E_<|(k^<0Qv2N(fJ?pY=6;#B`!3?cjy?PgxU6rx>zvO4k1E&a;Yd3m zf13M)9#P9nkB`OhAH34mTc=Y$X917OcN1{YvwPmkPf^deQqBVHP3`mDK89zt<+l_o^ z_h}0}e4wR|0T+8)puKgH|KL^8`gF$Ny}(an+8`N^;lCmV|6mOMWg{Q@(;uoIJ{c7f zRd4457yEJdQ`Q=OtZUtAwOq5r(wP`JACAGF1upfri+*^4h3;8x+iT(D7C`uCuHPoU z7l^FbtHCFzxBmYgnqvX8B;FxDUX7kNk;=LWX^xqR4|9=DJyZcjL zijjZNTB}cmafrsxYl+`_rOogF_S0(=cgE94i0^XR_ecabV*hTtXMjt5vimwKU*q0u z$)EnL#WO7LUF3J?tq&QTOaXG~8=~v87K2|EgMTar|N9vHLEtiejXVBo$vRsPuD==t z9@Xxb0+)GBY4`0PvH87}{dcv&sdRw67r5BZPTIpT?Qq%p z=zPzO!ArnJ&h~9q_}?&(*I=R{`nc;$3kDA;!k?dx!N1COam#gQ4F8GCY`$(BenwjC zr}cUx@Xl7)+X7tl*H^1JIHtHz@B$r&7W_(LoB2+IFG;8G9EIR3&7n(I$uO!j2C|e+^lOoY14OF;@ux3=a=N){AoK@jD->sEGW9~a)RnDN zJpZ!wWAy>w&(6;$5{cwQrdG)MwR*Ksni|QD)f0*Abf)UptC>Q*Hj+(^W$;gGWipjs zm))>#tjF&v)T)`TZpcXtW@ifdQr)jlSM!;iKRH{Q^cm0xL|b!E#lInQ4+ zdf|%YqrP98o$yC|sL(Sxx+0NSJ-U3&m|v)^%Fm@BaI8K$==+6op;V}go?sdqO(bi6 zwp^MlOsy`=Pv)TMGGy?roHZc3zxL1k?fBpH+=G7vl$fsc$PhE!TDU!BWW zM@qT;yy}I=J!L=Q0pxYp{44TXYr$dw?N@0L&$`P|DY|nl=*H1Rql`7QUoNB+o}!En z-ZweAvA=gT(Wm*BW{c~fo+$|*4wd~NiuQo0fk1*W$;&3O4-+PZ3nzPnX-ut+8=DCx z9kfZKo{o(U)%=cT|6 z8Y~$sGU_2Kxv4`f5Btp3R#(f#RHdA?Mb&mf^+Z0m_1>_e+-%kKb*&~e7_2A)Z8XW2 zOtm;$Y4Rf@7fK|x{pzFnQj@j6?1zCSg?iqf$YifbrPq)7{pE?v^VxbT#-$Iz z=@l|Fg)8$L#&R2y3B5JeD2}wApRX6anjIa`wlZ`u4wPz|1Em(yZ$rewM=+5OcGc)CErk>xol!GnF zT8H7q^G5~mN5GKs>`=>wPy=hWlkM-zbGa(o-8SOBhb5`8LBCO#P1zwEFtT9<4Zd|T zjEVj=dAcF0l`1q6#iW7o!dSh34*jBB9YH67Z5c#y(iIU51r=St8NsL>DhlB(+10Z>{9hgZ{{c{_2rY3F8Wg;_x3rHQ%4h z_%nqXLb%LSYG^t$mtR?)DOb@;MiafIRryJHs(fyBHJ`5;tS9F{{eC)ADrD!hY?mdQ zN|;`pDrF{S@;PLi>aS#~wLGH1%l5|AGch~42up7zQx|>qCZ?~1V8JjY`m`oi7wao# z$`k2zbA{Bv1b!7W^Aa8-*tPz_HB$^z!N)#qwNftC@~QM3ED9Pl9ZzzsP;B^_L=Q}9 zL;fwZ7}!?KPNs^@9^WveP=X}Prj%of@$&MS8EZy0<9QPU4apnw*?a*(XKH#{Wwvzc z=q%XBV4+Um;T>7kLWyB1{<{hSZ5UsNiPIwyHH+^~HDxLKQyjs@3` zr(4BZowC(>tv)+B*_HKj`D%U&whd2QFG?&?5+n9=Wq%4ypPBJ<=(9CHGdmAoRjkb9 z>-k*QV0S;JHc?FQ>!pI9sa7*veT-byt=?ocQ_Lf@Di*gQN#M?x2~3F9_g8ONenHAl ztzYHCZu~XtH~Oiy1lO+G;Q6aAUBCQ-k(GEBN{rqT1Zwq66;mVD@`bBckEO=_@#QN< zQ(}$d7q?am;8LbIJiKOfWW~x&oBW=xUa5SE8a2+)xMh4~ecwbG@lStkE2^#7pUc-X zg_%UMR>w>T!_QQ?y46HHaCvsl2bVKe#}mJR3KahbKU113Ux8WCSiP@4i&`CdLwfa` zJ1tC&^};FQTGcJaAOTTHLU!bWc`CK_lU>QKKGAlpKIm_lz@#*vA4#tZYnkXZ(Nt5x zu{!)ip*pe-dBB}^&z1`4h<>Fm4m#mSmrDFDd|PIArtatRVhbZxo)@ zWNa1M5Ti~a2~|a=KLaN$vt)Ua8uTwfSu)}wkg!LU_Dkg)1cJlV{o;dec+h8qjd6-s zsI2HSvv-k}NaXV9fQv?68}@4uH+8SWTcg#bwB0D}D)wYMMQH@Qfq7)Z6@@#raV*w@ zj$a&ZPBu?6Ih8M=SXmn@H(M7)hMhK4>9_Wm3K@7;GAUIiEnvq|3CS?5L=L5cWjL?N znevuYAtXd3G}Wi~Vz`o!m~;Qa6^I?HCx;rAQNVCgg|jH-FuK4iWlGungcwi5;*Iej zimc^PV;jc&y=WQo?5O1SV-qPYe8O0=d(12aN$|Z2qgQoSBAZnSxCma!1_Q48#2uNTcqeVG6`7!UIIzcp~avAN%zum`popaH91BhT?4er(GD8p zO=Beht)r21)2>1VGVPmaxSD(}Q_t9TZ7WQUEZyQ`oEem)(q!W9S6M&J;b`6BB9am* zo6&@$6Bc#~GPb1(&|kU=!y>z6gduQlvVt|(`lO$ozM`2UhwI;f9rt6Xs?L^7$A&2* zOez*i7|L7CVcouax&eu(GF1$N>#`y9>PjZqer>qszCv+g*7W9jzr+SJ`H(CT)U=zB zKeAy3dR%Zpqqml?V<5>+=lvR%DePhZ98jTLGwu}*v!(Fv@PuH<#74GPn&I4OO7?0Q zefq3_u-z|i{OOxDgHKD&&7y@Ik&18RYWqu~Z!Lz9nLOql>m}C6rP5g$F3f_*zPH~H zj3ZO2U``?}7!DsBO{kqW-Bh&)(lS+gU7jfqmZT7)OZ+7nhXF{_rTvk4bhRW2MiUcFIv+j+FH15GKBN!V7jJ2$)5 z|7)>jLV7I21sl`am=gmNg6+gWGo;X(lYny~WhxD`e?;+xl0R!_;LS<#s!s8{atkJ(ionXJF%i=B^%Nf9O zK=z7!&N#v6xqKpSJ!T}|ODt;|PBzfWTi}CozFD$!OxMIQ`?_P7z>2D@x}w$*!eQ2g z8lD^XF?B)s**#gVVvQe5$TSt{uhuU=-+Y+Oz}~W1bMa;2kSEcv(SBo^IhRWIxu95o zT>@kbm)ZG@KY{suNu~zb>EU5aZkMkZ@e^G=Qjq?sa(QYdpG>4>&1q%12z$+q7D{;u zY_Y0RNT<`;32?qJnqY0fEPaQ)3+jF*@62Y4`C_(M3G~DZKI7xirf`2pM zo3#_pX+j%o4ew&dKPDWXJXrOZaUU)rONB_VCAQbluVXMDh$Y!vI6<%Yr zBW1GNi4r#CD>GXWDoB@U!)$sgvvsU&VC$$}EoCcPT{9Nf;?tYK@~7(4HcoP*K*?@D zgOXaUFjbOSPH%W3%zA5G0Bb}C1uW!Xb!Hx`y>N)dRBFRmVZ*p1Wys4+V57(_*!Y;! zwo-z~X#iG?0|8=V-C}@i^{GNSi~iP%I^qgRJUxkS<~3Ukf5XkxhrYlH)k zwX}*|nDes;x9S=%H>WO6F|=|Tu(gw+W*9kr`Ti|+go@RwYoeDc*unfnV73>Ohu zhdQfhn z^~kT4_ELKdV+(sBOqBM|C=h*kbDE>u$DE??ee79eel4}%*6hn^P7_v4%}Qug#hNc_ z(hV$vGsYh{T}>RbIeIkpva(m`JpUjFP#$V453799Fa ze!h?`PgOIOX^bs12rJFx-Y)uMJwC=vQrKh+%VHjjJxVdTR8Rv2x$!%xrBsVj>b9i=#uin;F3tg=J%_BD9KW zysmLQNqa1#c{m2)62=snw`L{^a|ukru+4;q_v_elh4zzW^zTqyiWI+rrJSf`h(uq* z!E*e7hczvlz;xSAIB-Nt7ucgm=$>Mx($0p<^Vnn=z~bKevHqwHmEb8M^Ps_$-&hJhGlpQfrU>xvS6=*U}~#Yq<*0XC+VZr5*)7PcR=L@}-} zX5QF~4ZXaL?;1TX=!36+rr)+)^Qda z1@#yJT4H=WkmbINd`On`Wg!kWDH}Fe6G%>CYVNq`@S+}f305W$mf}Q15>D4_g~_3V zkXf{DKq0?&j#@~O#(rbH7LH{^PgFwp;BivSi0t_e=O~99;J~(P!oN}q$cZlYSTM2O zzzy$wb!B3tfKw;yvOMbn7u%;hB3yHCIHJaO9(Q@7cjQ_Y5?BFFV6d(%!z}OiGgN#cK5H<&e{}F z5nm+Ze8dJ~IGWpgNTX8(-5!&Tg67Z~>fkVUsnkWza)eD@oo6$=#{431X2lF5VSU{u z>z7huwajQ1HwBG4MrHeuI;)7VzHuBh;tZ`O3#*&xzhL<$f7SBw<$gM~!B4Lnmjc8b zVTj*No)q(G@zU7w=*!9=4j(j#10!1s*nLdN@R{f_=bbJrjbR#!pi0^(t|kJzanLKU z$lW7Lv1Q}r;&ug0YasgiA2t9R4`G623=H#ymU(iFy{hev#XM(e+v%~rWlY43V_R%Y zYUUO02K185mn0IVT6$66zfLy2L=j|~W^TgQgPpdEo&IQu?FQ;Ak@Ar2B7?zwUiXJ#-5 z%F8y79FuYe?XJY2sAGa?o>LCLjF6j2N4VeM9AHM4Ya-_Wt&7QhoYe%^k}*ukk*3Ca zOkgSbvgTe$;D8_$#<0Kdo%Z<-ioG%@8m|)CWOiL~q8sNO3Uk;JE!9&6j<9|1UNhv# zu8|ER{I&Uc99FBy@kcx;Z3%DdNr5kJV+~MrYq;c=o~6eR_A6v+bOE~x)i@+(+yks< zm7Z8@9P=LwFX|a9iCWZ?vISQh_bJ+UyQ@r$TdZ!Mqo0JDX>(Jf-6Koz4H4bt1v`@$ zJ{b@=h?L7?Rj~+*i&w)13N@QON2CT|At$PBqhaPk+YFtK)$miIDsnbDr{?HZC|1mjq&V_#qcS!7ed zGIGdD>~dezvA3?+>(*1lN!xyyh*@W{qrJY##MiIf{Y7_F6GtD|YO%uru;=e>8^dZd zm}~dwaPxc0nxb9a<$I$#3l}XyE5ul7 zl6DH5b2Tf(txNhcO0x`c$7*?gdaTeZFHmD2Hr$Dk8b$&C&^#X^?pE~=pXN^{`PSfU z(e}*oz#F!~62!jPXR_^LnLB!y+2J8hxTTFbLqq z7V~ykV-VPYF(A|paS}pa8+3aiy6__BmV3?kATeIV78(ZMa4zT{?Rl<#9KXbJN0gPX zZ|yzCR~s`awkanrB1XBgOYYjtTMk2Q#3-JjU%V{;9!N@TP0%1!WtXD*YP;viMd3ba$v5C4QiY;43kJBw5~meo zv9Br)y1`!YCazSK(+cL5ght!8PJLQRU*u_}$x_iCJ~eMws^7yK)f1Q)*JjN`OG<_T zYomVcrujVy*mAoQVV!)n*P4;;FWgS<%q!GHTuuxGG~DtDIWS$iiP@!Af2PB-*(%xh z?i&|GHQ&c#5FMpkIAm*9;tTfns?EFYcQDONVIPNA^MY*bl54X}ZEa?wOG)F#`x{J( z?O}YewD^N>;$1LsNJLeh%w?Q|pxDnX;;l;8m&yo)H%g)oZ2NnA`H3w%X+EoiH;c@d zMEY@v6EDIyrdS(wU~hbBCpiDv$2zy$T&<_4LIbBPRWz+LJR-<|tAi+BdyF}a>F!pB zLkKfZXk#JDeo{o-OhgpTIcT`^x7l+Wk;wiGPy>Mhs#M{OByk2b+YuT*-)TK}f6esUMdwX;Au^w-%ATM-LW*Oga(*T>*hn)4j1dQ3a9Uy> zb2*$Fl+~4e9o$lQ-(uWPuP&sq7KpJ8N9bC<>rotAVb6**yl?O2_{N$ObaMr;y%DB= zzJ~6Pec0B?D+OQ!Ugo^}6Fup+|g}ygxQ$BkLg_UpPqPV9*M4?AloP?CeG1+u|;^{C^Ir| zHE^cch_ymK$4&+IqjqHVz`jS2+7LOtXf|8;fVf>RZpOiKCICf9^ypUfDtYJ7oJW1$ ztA0`2sE*}ffgzx2=!Ka!&r+D#vppA{$ztQZ3a=hI*c&nS2413&b>P5j@!Z#d*U!zi zyb6Xf0In5pXW{S>e2nu^0XxFQuLI&O(D;Uy52EzR5o_#SM87^`#;))g%&5r(0-sR0 z-4eLirng6B-s&mOV{E>&k33@6Q#gb$kcIwa#cS(~EBqR3w5HKOW=7T_>ioWAtlI z;?jZ(-_hPYcw)|u4g6eMU?JuCZ}~;;2RL=wIE2yeSs`a@z@0|#?X{Fiv*7Rc1iLn% zUoyqsP2-EIEuAcC_=ubv^=&QWXY5PO!6`~~W7v(y(DHa_^bk8lw`gN)5X7K zbSXHzgVYFan|%ynZ_E+My~Xl@uR7=faJ;w?c>sJbeu{JFM7NGgEnm%R9JO|1YFjB> zZH`%|YJ6A1EM~R3QLhVYj`hq0XuWFbwEn_}K=Rd!*M*r=z6;+*=&Dq4?y*|m8h|Ed z3p2S_7jlH~^7E_ZEpEd;ovBTGT{xqGEG(^8?Gv0Zm&he_y)K!8 zd0qI~HC5&hESq~>@+D8N%M9vW)w1~}OILoHUqGAAL7Ltnn=C%zG@s2^DBno6 zA4jt?^tZ?nH6YTcEXPamL%#UZg=JU|A9yRu;Ui%3c~B&iZ~XwbxAMA;{?1HHRP%Fs zCu6DpMg{9nENkmeO5zu`pC7?r`0?c1>ij&scLM(|gi`#4q|l|`VOQ{U{5S;vYx+T^ zSK6tJr1&!kp{pNv!StJ$Ug;}B+@5!!bB{j<5=y^~>6Lam{BC-DM%{brx#!BN{|=^C zdMnf8&pnvS)jtFDQ2ejy)678W_9JaNDWlY#ra!^LUIA3H)bzWLu@98?zJ!bFSq?~#KU0v zPNq}3SqdJwSR8!u-(I(X1k*2wLE%!Wd={0zabz#0x8gRKemm1EO)rxFUpwh{zuC%H zdfYYkUjNm6_5SbiBbfg)kJ%?m4_8J~xBmW->9zg6J!B-^<$V0VlaG~r6+a|@O}}f2 z+~Myklm3^Jp>ylq58hzjv} zvh5tU>34QpI;aUrHGic`!6q(3(?7%X&oI66sTjRidL+_IPMY3ZZu9jLmhMnS3g}cp zq$hz*`i`dG!M}gGW5}i-X2Yl%syMZyKSNsK)bzX8*>t;KYw0ql!Zf|oGr$&1-}rlT ztcMR!PbHd8@6SPE!8CvUyMP~H`cLQ|jA4RdO-L%$EctgkxTZhb!G%{YrBY4$+di@X zev$bvG#rz~U0(UKBrYbLEBW_aUcWP3VwYF`Oo@w0`rkdoI?mU;L++ZF%R3R1{tMUG z^w<5mnO1(e=}S!S*5CT8WmNRMH+ta)(DX{TGQD9A{PW4Ht%d#jRbd0tbjte9nDl>i z^l_HuyUJ;)n_lkK_XIiL|DQJfRectHCCCo^udSiu*NcFu?crzR>O8|bo)6&foCGg7 V|D*6QD*a!-&8EN3N#NXi{|A23PS5}V literal 0 HcmV?d00001 diff --git a/simulation/simtransport_sim.cpp b/simulation/simulation.cpp similarity index 84% rename from simulation/simtransport_sim.cpp rename to simulation/simulation.cpp index 9708c87..000ed9d 100644 --- a/simulation/simtransport_sim.cpp +++ b/simulation/simulation.cpp @@ -11,15 +11,15 @@ #include "network/simtransport.hpp" #include "common/gflags.hpp" +#include "server/storage_server.hpp" #include "client/storage_client.hpp" #include using namespace std; -void client_thread_func(network::Configuration &config, network::SimTransport *transport) +void client_thread_func(StorageClient *sc) { - StorageClient *sc = new StorageClient(config, transport); string request; nodeid_t result = sc->GetNodeId(0, 0, request); cout << "SUCCESS\n"; @@ -28,12 +28,6 @@ void client_thread_func(network::Configuration &config, network::SimTransport *t void server_thread_func(network::SimTransport *transport) { - StorageServer *ss = new StorageServer( - config, - FLAGS_serverIndex, - transport, - storageApp); - transport->Run(); } @@ -56,17 +50,26 @@ int main(int argc, char **argv) network::Configuration config(configStream); network::SimTransport *transport = new network::SimTransport(config, 0); + StorageClient *sc = new StorageClient(config, transport); + StorageServerApp *storageApp = new StorageServerApp(); + StorageServer *ss = new StorageServer( + config, + FLAGS_serverIndex, + transport, + storageApp + ); + /* Thread creation */ - std::vector client_thread_arr(1); - for (uint8_t i = 0; i < 1; i++) - { - client_thread_arr[i] = std::thread(client_thread_func, config, transport); - } std::vector server_thread_arr(1); for (uint8_t i = 0; i < 1; i++) { server_thread_arr[i] = std::thread(server_thread_func, transport); } + std::vector client_thread_arr(100); + for (uint8_t i = 0; i < 100; i++) + { + client_thread_arr[i] = std::thread(client_thread_func, sc); + } /* Blocking join */ for (auto &client_thread : client_thread_arr) From 8f8356b7dc921019378a9f33d35257879c4e5c55 Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Sat, 30 Oct 2021 13:07:00 +0000 Subject: [PATCH 120/138] feat: add notes --- NOTES.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/NOTES.md b/NOTES.md index 49a86aa..1cddd44 100644 --- a/NOTES.md +++ b/NOTES.md @@ -110,7 +110,9 @@ RPC options: ## Understanding the code 1. The client and server have different Transport object. They use this object to access all info and properties of it. 2. When they request/response, they call the static method. The server pass the message bugger specified - +3. Per thread, there is 1 request being processed at any point of time. + - there is no need to have a queue in sim transport + - in eRPC, there is a queue because multiple client threads can connect to it. ## Questions 1. Why is the Nexus instantiated in the server thread instead of the main function of the server code? 2. Why is the Be-tree node on the client? From e5e5e8cd2928339255eb5f116cfdbc21dd5074e9 Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Sat, 30 Oct 2021 13:38:26 +0000 Subject: [PATCH 121/138] fix: increase current id during instantiation of server app --- server/storage_server.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/server/storage_server.cpp b/server/storage_server.cpp index 42fdb85..09da639 100644 --- a/server/storage_server.cpp +++ b/server/storage_server.cpp @@ -9,13 +9,14 @@ #include using namespace std; +// const int getNodeIdReqType = 3; StorageServerApp::StorageServerApp() : current_id(0) { - + current_id++; } uint32_t StorageServerApp::GetNodeId() { - return current_id++; + return current_id; } StorageServer::StorageServer(network::Configuration config, int myIdx, @@ -36,7 +37,7 @@ StorageServer::~StorageServer() { } void StorageServer::ReceiveRequest(uint8_t reqType, char *reqBuf, char *respBuf) { size_t respLen; - cout << "as a server this is " << getNodeIdReqType << "\n"; + // cout << "as a server this is " << getNodeIdReqType << "\n"; switch(reqType) { case getNodeIdReqType: HandleGetNodeId(reqBuf, respBuf, respLen); From 0f86225f8ac9975557ea89b85038664ffcf96ccc Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Sat, 30 Oct 2021 15:16:25 +0000 Subject: [PATCH 122/138] fix: segfault because processing after the reequest turned to null --- client/storage_client.cpp | 7 ++-- common/messages.hpp | 4 +- network/simtransport.cpp | 79 ++++++--------------------------------- network/simtransport.hpp | 3 -- server/storage_server.cpp | 5 +-- simulation/simulation.cpp | 7 ++-- 6 files changed, 22 insertions(+), 83 deletions(-) diff --git a/client/storage_client.cpp b/client/storage_client.cpp index 18ed2a1..fc8dbf9 100644 --- a/client/storage_client.cpp +++ b/client/storage_client.cpp @@ -10,7 +10,7 @@ #include using namespace std; - +// const int reqType::getNodeId = 3; StorageClient::StorageClient(const network::Configuration &config, network::Transport *transport, uint64_t clientid) @@ -52,9 +52,8 @@ nodeid_t StorageClient::GetNodeId(uint8_t coreIdx, reqBuf->req_nr = reqId; blocked = true; - cout << "as a client this is the request type" << getNodeIdReqType << "close \n"; transport->SendRequestToServer(this, - getNodeIdReqType, + requestType::getNodeId, serverIdx, coreIdx, sizeof(nodeid_request_t)); this->nodeIdReply.serverIdx = serverIdx; @@ -65,7 +64,7 @@ nodeid_t StorageClient::GetNodeId(uint8_t coreIdx, void StorageClient::ReceiveResponse(uint8_t reqType, char *respBuf) { Debug("[%lu] received response", clientid); switch(reqType){ - case getNodeIdReqType: + case requestType::getNodeId: HandleGetNodeIdReply(respBuf); break; default: diff --git a/common/messages.hpp b/common/messages.hpp index b300ebd..779a62a 100644 --- a/common/messages.hpp +++ b/common/messages.hpp @@ -2,7 +2,9 @@ #define _NETWORK_MESSAGES_H_ // Request types -const uint8_t getNodeIdReqType = 1; +namespace requestType { + constexpr uint8_t getNodeId{3}; +} struct nodeid_request_t { uint64_t req_nr; diff --git a/network/simtransport.cpp b/network/simtransport.cpp index cc60a26..835feda 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -37,32 +37,6 @@ #include namespace network { -static void simtransport_response(void *_context, void *_tag) -{ -auto *c = static_cast(_context); -auto *rt = reinterpret_cast(_tag); -Debug("Received respose, reqType = %d", rt->reqType); -rt->src->ReceiveResponse(rt->reqType, - reinterpret_cast(rt->resp_msgbuf)); -c->rpc->free_msg_buffer(rt); -c->client.req_tag_pool.free(rt); -} - -// Function called when the server received a request -// (clients never receive requests, just responses) -static void simtransport_request(void *_context, void *_tag) -{ - // save the req_handle for when we are in the SendMessage function - auto *c = static_cast(_context); -#if MULTIPLE_ACTIVE_REQUESTS - // upcall to the app -#else - // upcall to the app - c->server.receiver->ReceiveRequest(c->client.crt_req_tag->reqType, - c->client.crt_req_tag->req_msgbuf, - c->client.crt_req_tag->resp_msgbuf); -#endif -} SimTransport::SimTransport( const network::Configuration &config, @@ -108,18 +82,7 @@ int SimTransport::GetSession(TransportReceiver *src, uint8_t replicaIdx, uint8_t void SimTransport::Run() { - while(!stop) { - if (c->client.crt_req_tag) { - // if (!c->rpc->req_queue.empty()) { - sim_req_tag_t* curr_req_tag = c->client.crt_req_tag; - // currReqTag = req_tag; - c->server.receiver->ReceiveRequest( - curr_req_tag->reqType, - curr_req_tag->req_msgbuf, - curr_req_tag->resp_msgbuf - ); - } - } + while(!stop) {} } void SimTransport::Stop() { @@ -130,53 +93,33 @@ void SimTransport::Stop() { bool SimTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, uint32_t serverIdx, uint8_t dstRpcIdx, size_t msgLen) { c->client.crt_req_tag->src = src; c->client.crt_req_tag->reqType = reqType; + c->server.receiver->ReceiveRequest( + c->client.crt_req_tag->reqType, + c->client.crt_req_tag->req_msgbuf, + c->client.crt_req_tag->resp_msgbuf + ); while (src->Blocked()) { boost::this_fiber::yield(); } + c->client.crt_req_tag = nullptr; return true; } bool SimTransport::SendRequestToAllServers(TransportReceiver *src, uint8_t reqType, uint8_t dstRpcIdx, size_t msgLen) { - for (int i = 0; i < config.n; i++) - { - // skip the sending entity - if (this->receiverIdx == i) - continue; - - if (i == config.n - 1) - { - c->client.crt_req_tag->src = src; - c->client.crt_req_tag->reqType = reqType; - // c->rpc->enqueue_request(c->client.crt_req_tag); - } - else - { - // need to use different erpc::MsgBuffer per session - auto *rt = c->client.req_tag_pool.alloc(); - rt->req_msgbuf = new char[msgLen]; - rt->resp_msgbuf = new char[SimTransport::MAX_DATA_PER_PKT]; - rt->reqType = reqType; - rt->src = src; - std::memcpy(rt->req_msgbuf, c->client.crt_req_tag->req_msgbuf, msgLen); - // c->rpc->enqueue_request(rt); - } - } - if (this->receiverIdx == config.n - 1) - { - // TODO: free the current buffer - } return true; } bool SimTransport::SendResponse(uint64_t reqHandleIdx, size_t msgLen) { Debug("Sent response, msgLen = %lu\n", msgLen); - simtransport_response(c, c->client.crt_req_tag); + sim_req_tag_t *tag = c->client.crt_req_tag; + tag->src->ReceiveResponse(tag->reqType, tag->resp_msgbuf); return true; } bool SimTransport::SendResponse(size_t msgLen) { Debug("Sent response, msgLen = %lu\n", msgLen); - simtransport_response(c, c->client.crt_req_tag); + sim_req_tag_t *tag = c->client.crt_req_tag; + tag->src->ReceiveResponse(tag->reqType, tag->resp_msgbuf); return true; } } diff --git a/network/simtransport.hpp b/network/simtransport.hpp index f7ae59b..02efc69 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -41,7 +41,6 @@ #define MULTIPLE_ACTIVE_REQUESTS false namespace network { -typedef void (*sim_rpc_cont_func_t)(void *context, void *tag); // A tag attached to every request we send; // it is passed to the response function @@ -51,7 +50,6 @@ struct sim_req_tag_t char *resp_msgbuf; uint8_t reqType; TransportReceiver *src; - sim_rpc_cont_func_t cont_func; }; class SimRpc { @@ -143,7 +141,6 @@ class SimTransport : public Transport int receiverIdx; bool stop = false; - }; } #endif // _NETWORK_SIMTRANSPORT_H_ diff --git a/server/storage_server.cpp b/server/storage_server.cpp index 09da639..1873a04 100644 --- a/server/storage_server.cpp +++ b/server/storage_server.cpp @@ -9,7 +9,7 @@ #include using namespace std; -// const int getNodeIdReqType = 3; +// const int reqType::getNodeId = 3; StorageServerApp::StorageServerApp() : current_id(0) { current_id++; @@ -37,9 +37,8 @@ StorageServer::~StorageServer() { } void StorageServer::ReceiveRequest(uint8_t reqType, char *reqBuf, char *respBuf) { size_t respLen; - // cout << "as a server this is " << getNodeIdReqType << "\n"; switch(reqType) { - case getNodeIdReqType: + case requestType::getNodeId: HandleGetNodeId(reqBuf, respBuf, respLen); break; default: diff --git a/simulation/simulation.cpp b/simulation/simulation.cpp index 000ed9d..1bc2b40 100644 --- a/simulation/simulation.cpp +++ b/simulation/simulation.cpp @@ -22,8 +22,7 @@ void client_thread_func(StorageClient *sc) { string request; nodeid_t result = sc->GetNodeId(0, 0, request); - cout << "SUCCESS\n"; - cout << result.nodeIdx << "\n"; + cout << "This is the server's node: " << result.nodeIdx << "\n"; } void server_thread_func(network::SimTransport *transport) @@ -65,8 +64,8 @@ int main(int argc, char **argv) { server_thread_arr[i] = std::thread(server_thread_func, transport); } - std::vector client_thread_arr(100); - for (uint8_t i = 0; i < 100; i++) + std::vector client_thread_arr(1); + for (uint8_t i = 0; i < 1; i++) { client_thread_arr[i] = std::thread(client_thread_func, sc); } From 1f83aa822626354b5695e102024968990318c7d9 Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Sat, 30 Oct 2021 15:19:15 +0000 Subject: [PATCH 123/138] feat: change back the request type constant declaration --- client/storage_client.cpp | 4 ++-- common/messages.hpp | 4 +--- server/storage_server.cpp | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/client/storage_client.cpp b/client/storage_client.cpp index fc8dbf9..eb7ab10 100644 --- a/client/storage_client.cpp +++ b/client/storage_client.cpp @@ -53,7 +53,7 @@ nodeid_t StorageClient::GetNodeId(uint8_t coreIdx, reqBuf->req_nr = reqId; blocked = true; transport->SendRequestToServer(this, - requestType::getNodeId, + getNodeIdRequestType, serverIdx, coreIdx, sizeof(nodeid_request_t)); this->nodeIdReply.serverIdx = serverIdx; @@ -64,7 +64,7 @@ nodeid_t StorageClient::GetNodeId(uint8_t coreIdx, void StorageClient::ReceiveResponse(uint8_t reqType, char *respBuf) { Debug("[%lu] received response", clientid); switch(reqType){ - case requestType::getNodeId: + case getNodeIdRequestType: HandleGetNodeIdReply(respBuf); break; default: diff --git a/common/messages.hpp b/common/messages.hpp index 779a62a..6f36e84 100644 --- a/common/messages.hpp +++ b/common/messages.hpp @@ -2,9 +2,7 @@ #define _NETWORK_MESSAGES_H_ // Request types -namespace requestType { - constexpr uint8_t getNodeId{3}; -} +const uint8_t getNodeIdRequestType = 1; struct nodeid_request_t { uint64_t req_nr; diff --git a/server/storage_server.cpp b/server/storage_server.cpp index 1873a04..893a0bb 100644 --- a/server/storage_server.cpp +++ b/server/storage_server.cpp @@ -38,7 +38,7 @@ StorageServer::~StorageServer() { } void StorageServer::ReceiveRequest(uint8_t reqType, char *reqBuf, char *respBuf) { size_t respLen; switch(reqType) { - case requestType::getNodeId: + case getNodeIdRequestType: HandleGetNodeId(reqBuf, respBuf, respLen); break; default: From e4b99a2367d6249c53c0a40bc538ab361020c09d Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Sat, 30 Oct 2021 17:45:09 +0000 Subject: [PATCH 124/138] feat: add dummy configuration --- network/configuration.cpp | 5 +++++ network/configuration.hpp | 1 + simulation/simulation.cpp | 26 ++++++++++++++------------ 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/network/configuration.cpp b/network/configuration.cpp index 299c3e3..21bd94b 100644 --- a/network/configuration.cpp +++ b/network/configuration.cpp @@ -27,6 +27,11 @@ ServerAddress::operator<(const ServerAddress &other) const { return this_t < other_t; } +Configuration::Configuration() { + multicastAddress = new ServerAddress("", ""); + n = 1; +} + Configuration::Configuration(const Configuration &c) : n(c.n), servers(c.servers), hasMulticast(c.hasMulticast) { diff --git a/network/configuration.hpp b/network/configuration.hpp index 8cb1b9f..749699b 100644 --- a/network/configuration.hpp +++ b/network/configuration.hpp @@ -38,6 +38,7 @@ struct ServerAddress class Configuration { public: + Configuration(); Configuration(const Configuration &c); Configuration(int n, // int f, diff --git a/simulation/simulation.cpp b/simulation/simulation.cpp index 1bc2b40..758fb74 100644 --- a/simulation/simulation.cpp +++ b/simulation/simulation.cpp @@ -34,19 +34,21 @@ int main(int argc, char **argv) { gflags::ParseCommandLineFlags(&argc, &argv, true); - if (FLAGS_configFile == "") - { - fprintf(stderr, "option --configFile is required\n"); - return EXIT_FAILURE; - } + // if (FLAGS_configFile == "") + // { + // fprintf(stderr, "option --configFile is required\n"); + // return EXIT_FAILURE; + // } - // Load configuration - std::ifstream configStream(FLAGS_configFile); - if (configStream.fail()) - { - fprintf(stderr, "unable to read configuration file: %s\n", FLAGS_configFile.c_str()); - } - network::Configuration config(configStream); + // // Load configuration + // std::ifstream configStream(FLAGS_configFile); + // if (configStream.fail()) + // { + // fprintf(stderr, "unable to read configuration file: %s\n", FLAGS_configFile.c_str()); + // } + // network::Configuration config(configStream); + + network::Configuration config; network::SimTransport *transport = new network::SimTransport(config, 0); StorageClient *sc = new StorageClient(config, transport); From 1443baca8f09d9f0424f7043a7c969bcbeb7be8a Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Sat, 30 Oct 2021 17:52:40 +0000 Subject: [PATCH 125/138] feat: remove unecessary io --- client/storage_client.cpp | 3 +-- server/storage_server.cpp | 2 -- simulation/simulation.cpp | 26 +++++++------------------- 3 files changed, 8 insertions(+), 23 deletions(-) diff --git a/client/storage_client.cpp b/client/storage_client.cpp index eb7ab10..466f3dc 100644 --- a/client/storage_client.cpp +++ b/client/storage_client.cpp @@ -3,14 +3,13 @@ #include "debug/message.hpp" #include "client/storage_client.hpp" #include "common/messages.hpp" -#include //#include //#include #include using namespace std; -// const int reqType::getNodeId = 3; + StorageClient::StorageClient(const network::Configuration &config, network::Transport *transport, uint64_t clientid) diff --git a/server/storage_server.cpp b/server/storage_server.cpp index 893a0bb..0e08061 100644 --- a/server/storage_server.cpp +++ b/server/storage_server.cpp @@ -6,10 +6,8 @@ **********************************************************************/ #include "storage_server.hpp" #include "common/messages.hpp" -#include using namespace std; -// const int reqType::getNodeId = 3; StorageServerApp::StorageServerApp() : current_id(0) { current_id++; diff --git a/simulation/simulation.cpp b/simulation/simulation.cpp index 758fb74..606fb3b 100644 --- a/simulation/simulation.cpp +++ b/simulation/simulation.cpp @@ -34,40 +34,28 @@ int main(int argc, char **argv) { gflags::ParseCommandLineFlags(&argc, &argv, true); - // if (FLAGS_configFile == "") - // { - // fprintf(stderr, "option --configFile is required\n"); - // return EXIT_FAILURE; - // } - - // // Load configuration - // std::ifstream configStream(FLAGS_configFile); - // if (configStream.fail()) - // { - // fprintf(stderr, "unable to read configuration file: %s\n", FLAGS_configFile.c_str()); - // } - // network::Configuration config(configStream); - network::Configuration config; network::SimTransport *transport = new network::SimTransport(config, 0); + /* Client and server creation */ + // It has to be in this order such that + // the transport object is correctly registered to the server StorageClient *sc = new StorageClient(config, transport); - StorageServerApp *storageApp = new StorageServerApp(); StorageServer *ss = new StorageServer( config, FLAGS_serverIndex, transport, - storageApp + new StorageServerApp() ); - /* Thread creation */ + /* Threads creation */ std::vector server_thread_arr(1); for (uint8_t i = 0; i < 1; i++) { server_thread_arr[i] = std::thread(server_thread_func, transport); } - std::vector client_thread_arr(1); - for (uint8_t i = 0; i < 1; i++) + std::vector client_thread_arr(100); + for (uint8_t i = 0; i < 100; i++) { client_thread_arr[i] = std::thread(client_thread_func, sc); } From cc510d331fa7a693a1dfc8b6f246920bfa40d6c3 Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Sat, 30 Oct 2021 17:53:11 +0000 Subject: [PATCH 126/138] feat: add gitignore for binaries and objects --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..39a3bf6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.obj/ +client/client +server/server +simulation/simulation \ No newline at end of file From df4a9d225f97d47ef7acfde4696271fc3b2bbff8 Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Wed, 3 Nov 2021 11:42:17 +0000 Subject: [PATCH 127/138] feat: add inline comment from meeting --- client/storage_client.cpp | 2 ++ network/simtransport.cpp | 31 ++++++++++++++++++++++++------- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/client/storage_client.cpp b/client/storage_client.cpp index 466f3dc..5b9fd38 100644 --- a/client/storage_client.cpp +++ b/client/storage_client.cpp @@ -86,5 +86,7 @@ void StorageClient::HandleGetNodeIdReply(char *respBuf) { return; } this->nodeIdReply.nodeIdx = resp->id; + // memory barrier here, because the client is waiting + // for a modified data structure blocked = false; } diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 835feda..f5180af 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -82,7 +82,24 @@ int SimTransport::GetSession(TransportReceiver *src, uint8_t replicaIdx, uint8_t void SimTransport::Run() { - while(!stop) {} + /** + The run is supposed to be in the main thread + It picks up request tat is allocated by the client + And then it acts as the server caller + This way, it doesnt force the server to handle multithreadedness + If the server wants to be multithreaded, they can run several of this tranpost + We don't even need a queue here, because the initial design is that server doesnt even need to be multithreaded + But we can extend it to be a queue if the server wants itself to be multithreaded + **/ + while(!stop) { + // if c.client is not null -> will try to handle this request + // call the server + c->server.receiver->ReceiveRequest( + c->client.crt_req_tag->reqType, + c->client.crt_req_tag->req_msgbuf, + c->client.crt_req_tag->resp_msgbuf + ); + } } void SimTransport::Stop() { @@ -93,15 +110,15 @@ void SimTransport::Stop() { bool SimTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, uint32_t serverIdx, uint8_t dstRpcIdx, size_t msgLen) { c->client.crt_req_tag->src = src; c->client.crt_req_tag->reqType = reqType; - c->server.receiver->ReceiveRequest( - c->client.crt_req_tag->reqType, - c->client.crt_req_tag->req_msgbuf, - c->client.crt_req_tag->resp_msgbuf - ); + // c->server.receiver->ReceiveRequest( + // c->client.crt_req_tag->reqType, + // c->client.crt_req_tag->req_msgbuf, + // c->client.crt_req_tag->resp_msgbuf + // ); while (src->Blocked()) { boost::this_fiber::yield(); } - c->client.crt_req_tag = nullptr; + // c->client.crt_req_tag = nullptr; return true; } From c767ecedf69c1e029cb4728b0d09bbbbd57ebdb9 Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Wed, 3 Nov 2021 11:42:56 +0000 Subject: [PATCH 128/138] feat: does not need to wait for client to finish --- simulation/simulation.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/simulation/simulation.cpp b/simulation/simulation.cpp index 606fb3b..b99632e 100644 --- a/simulation/simulation.cpp +++ b/simulation/simulation.cpp @@ -59,10 +59,8 @@ int main(int argc, char **argv) { client_thread_arr[i] = std::thread(client_thread_func, sc); } - + /* Single thread, server and client in the same thread */ /* Blocking join */ - for (auto &client_thread : client_thread_arr) - client_thread.join(); for (auto &server_thread : server_thread_arr) server_thread.join(); From 0dbe6e544bee17796b453430410f7d6a1747b72d Mon Sep 17 00:00:00 2001 From: agnesnatasya Date: Mon, 8 Nov 2021 15:53:45 +0800 Subject: [PATCH 129/138] feat: change multithread control to server --- Makefile | 2 +- network/simtransport.cpp | 38 ++++++++++++++++++++++++++-------- network/simtransport.hpp | 8 +------- simulation/simulation | Bin 1477200 -> 0 bytes simulation/simulation.cpp | 42 +++++++++++++++++++++----------------- 5 files changed, 55 insertions(+), 35 deletions(-) delete mode 100755 simulation/simulation diff --git a/Makefile b/Makefile index c08298d..961a87c 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ EXPAND = lib/tmpl/expand RPC_PATH= RPC_CFLAGS_RAW := -RPC_LDFLAGS_RAW := -ldl -lgflags -libverbs +RPC_LDFLAGS_RAW := -ldl -lgflags -libverbs #ERPC_CFLAGS_DPDK := -I $(RPC_PATH)/src -I /usr/include/dpdk -DDPDK=true -march=native #ERPC_LDFLAGS_DPDK := -L $(RPC_PATH)/build -lerpc -lnuma -ldl -lgflags -ldpdk diff --git a/network/simtransport.cpp b/network/simtransport.cpp index f5180af..208dd04 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -6,6 +6,15 @@ * * Reference: 2013-2016 Dan R. K. Ports * + * Difference between simulated transport and actual transport + * - In the actual transport, each client client thread and each server thread + * has 1 transport object. Server can choose to handle multithreading by spawning + * multiple transport threads. + * In this case, it is enough for each transport object to have 1 request handled + * at any point of time. + * - In simulated transport, this transport object is shared between the client and the server. + * In this case, in + * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without @@ -33,11 +42,12 @@ #include "debug/assert.hpp" #include "network/simtransport.hpp" - #include namespace network { +static std::mutex simtransport_lock; + SimTransport::SimTransport( const network::Configuration &config, uint8_t id @@ -55,8 +65,12 @@ void SimTransport::Register(TransportReceiver *receiver, int receiverIdx) { assert(receiverIdx < config.n); - c->server.receiver = receiver; - this->receiverIdx = receiverIdx; + // Only register server + // Client registration is invalid + if (receiverIdx > -1) { + c->server.receiver = receiver; + this->receiverIdx = receiverIdx; + } } int SimTransport::MAX_DATA_PER_PKT = 16384; @@ -84,7 +98,7 @@ void SimTransport::Run() { /** The run is supposed to be in the main thread - It picks up request tat is allocated by the client + It picks up request that is allpocated by the client And then it acts as the server caller This way, it doesnt force the server to handle multithreadedness If the server wants to be multithreaded, they can run several of this tranpost @@ -94,11 +108,14 @@ void SimTransport::Run() while(!stop) { // if c.client is not null -> will try to handle this request // call the server - c->server.receiver->ReceiveRequest( + if (c->client.crt_req_tag != nullptr) { + c->server.receiver->ReceiveRequest( c->client.crt_req_tag->reqType, c->client.crt_req_tag->req_msgbuf, c->client.crt_req_tag->resp_msgbuf ); + c->client.crt_req_tag = nullptr; + } } } @@ -108,8 +125,12 @@ void SimTransport::Stop() { } bool SimTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, uint32_t serverIdx, uint8_t dstRpcIdx, size_t msgLen) { - c->client.crt_req_tag->src = src; - c->client.crt_req_tag->reqType = reqType; + // Mutex so that only 1 client's request can be handled at any point + simtransport_lock.lock(); + + sim_req_tag_t req_tag; + req_tag->src = src; + req_tag->reqType = reqType; // c->server.receiver->ReceiveRequest( // c->client.crt_req_tag->reqType, // c->client.crt_req_tag->req_msgbuf, @@ -118,11 +139,12 @@ bool SimTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, while (src->Blocked()) { boost::this_fiber::yield(); } - // c->client.crt_req_tag = nullptr; + simtransport_lock.unlock(); return true; } bool SimTransport::SendRequestToAllServers(TransportReceiver *src, uint8_t reqType, uint8_t dstRpcIdx, size_t msgLen) { + SendRequestToServer(src, reqType, 0, dstRpcIdx, msgLen); return true; } diff --git a/network/simtransport.hpp b/network/simtransport.hpp index 02efc69..ed245ec 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -81,13 +81,7 @@ class SimAppContext public: struct { - // This is maintained between calls to GetReqBuf and SendRequest - // to reduce copying sim_req_tag_t *crt_req_tag; - - // Request tags used for RPCs exchanged with the servers - AppMemPool req_tag_pool; - } client; struct @@ -108,7 +102,7 @@ class SimTransport : public Transport const network::Configuration &config, uint8_t id); virtual ~SimTransport(); - void Register(TransportReceiver *receiver, int replicaIdx); + void Register(TransportReceiver *receiver, int replicaIdx) override; void Run(); void Wait(); void Stop(); diff --git a/simulation/simulation b/simulation/simulation deleted file mode 100755 index 866cd3e8246395ff51f8ebe2f442452300b05fd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1477200 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

*d)P*vo2*sT06?j)FLbyBvkGc@bxD)S;x^94W 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 z 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

F58+?Qh=K?k|5cvtV=4C$%x- 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

7`WnFJ-U5yeLfJW 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 i**f=img;Rx*R2Z6$jNn|xdOJG#fS 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 V|D*6QD*a!-&8EN3N#NXi{|A23PS5}V diff --git a/simulation/simulation.cpp b/simulation/simulation.cpp index b99632e..5c0e4dd 100644 --- a/simulation/simulation.cpp +++ b/simulation/simulation.cpp @@ -5,16 +5,15 @@ #include #include #include +#include #include "network/configuration.hpp" #include "network/transport.hpp" #include "network/simtransport.hpp" -#include "common/gflags.hpp" #include "server/storage_server.hpp" #include "client/storage_client.hpp" -#include using namespace std; @@ -32,34 +31,39 @@ void server_thread_func(network::SimTransport *transport) int main(int argc, char **argv) { - gflags::ParseCommandLineFlags(&argc, &argv, true); - - network::Configuration config; - network::SimTransport *transport = new network::SimTransport(config, 0); + network::SimConfiguration config; /* Client and server creation */ // It has to be in this order such that - // the transport object is correctly registered to the server - StorageClient *sc = new StorageClient(config, transport); - StorageServer *ss = new StorageServer( - config, - FLAGS_serverIndex, - transport, - new StorageServerApp() - ); + // the transport object is correctly registered to the server /* Threads creation */ - std::vector server_thread_arr(1); - for (uint8_t i = 0; i < 1; i++) + int servers = 1; + int clients = 100; + + std::vector server_thread_arr(servers); + std::vector transport_arr(servers); + for (uint8_t i = 0; i < servers; i++) { + network::SimTransport *transport = new network::SimTransport(config, 0); + transport_arr[i] = transport; + StorageServer *ss = new StorageServer( + config, + FLAGS_serverIndex, + transport, + new StorageServerApp()); server_thread_arr[i] = std::thread(server_thread_func, transport); } - std::vector client_thread_arr(100); - for (uint8_t i = 0; i < 100; i++) + + std::vector client_thread_arr(clients); + for (uint8_t i = 0; i < clients; i++) { + int server_idx = 0; + network::SimTransport *transport = transport_arr[server_idx]; + StorageClient *sc = new StorageClient(config, transport); client_thread_arr[i] = std::thread(client_thread_func, sc); } - /* Single thread, server and client in the same thread */ + /* Blocking join */ for (auto &server_thread : server_thread_arr) server_thread.join(); From afb78e2f0d4837726e97234ad890872f01eb9a19 Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Mon, 8 Nov 2021 13:08:19 +0000 Subject: [PATCH 130/138] feat: change the transport object to be shared among all client and server threads --- network/simtransport.cpp | 33 +++++++++++++++++---------------- network/simtransport.hpp | 2 ++ simulation/simulation.cpp | 12 ++++-------- 3 files changed, 23 insertions(+), 24 deletions(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 208dd04..4ddbd51 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -46,7 +46,8 @@ namespace network { -static std::mutex simtransport_lock; +static std::mutex simtransport_client_lock; +static std::mutex simtransport_server_lock; SimTransport::SimTransport( const network::Configuration &config, @@ -55,6 +56,7 @@ SimTransport::SimTransport( : config(config), id(id) { c = new SimAppContext(); + c->client.is_ready = false; } SimTransport::~SimTransport() @@ -63,8 +65,6 @@ SimTransport::~SimTransport() void SimTransport::Register(TransportReceiver *receiver, int receiverIdx) { - assert(receiverIdx < config.n); - // Only register server // Client registration is invalid if (receiverIdx > -1) { @@ -79,6 +79,7 @@ int SimTransport::MAX_DATA_PER_PKT = 16384; char *SimTransport::GetRequestBuf(size_t reqLen, size_t respLen) { // create a new request tag + simtransport_client_lock.lock(); if (reqLen == 0) reqLen = SimTransport::MAX_DATA_PER_PKT; if (respLen == 0) @@ -108,14 +109,18 @@ void SimTransport::Run() while(!stop) { // if c.client is not null -> will try to handle this request // call the server - if (c->client.crt_req_tag != nullptr) { + simtransport_server_lock.lock(); + if (c->client.is_ready) { + printf("This is the reqType yo %d\n", c->client.crt_req_tag->reqType); c->server.receiver->ReceiveRequest( c->client.crt_req_tag->reqType, c->client.crt_req_tag->req_msgbuf, c->client.crt_req_tag->resp_msgbuf ); - c->client.crt_req_tag = nullptr; + c->client.is_ready = false; + printf("This is the reqType yo %d\n", c->client.crt_req_tag->reqType); } + simtransport_server_lock.unlock(); } } @@ -126,20 +131,13 @@ void SimTransport::Stop() { bool SimTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, uint32_t serverIdx, uint8_t dstRpcIdx, size_t msgLen) { // Mutex so that only 1 client's request can be handled at any point - simtransport_lock.lock(); - - sim_req_tag_t req_tag; - req_tag->src = src; - req_tag->reqType = reqType; - // c->server.receiver->ReceiveRequest( - // c->client.crt_req_tag->reqType, - // c->client.crt_req_tag->req_msgbuf, - // c->client.crt_req_tag->resp_msgbuf - // ); + c->client.crt_req_tag->src = src; + c->client.crt_req_tag->reqType = reqType; + c->client.is_ready = true; while (src->Blocked()) { boost::this_fiber::yield(); } - simtransport_lock.unlock(); + simtransport_client_lock.unlock(); return true; } @@ -158,6 +156,9 @@ bool SimTransport::SendResponse(uint64_t reqHandleIdx, size_t msgLen) { bool SimTransport::SendResponse(size_t msgLen) { Debug("Sent response, msgLen = %lu\n", msgLen); sim_req_tag_t *tag = c->client.crt_req_tag; + printf("this is the tag req type %d\n", tag->reqType); + printf("this is the tag req type %s\n", tag->resp_msgbuf); + tag->src->ReceiveResponse(tag->reqType, tag->resp_msgbuf); return true; } diff --git a/network/simtransport.hpp b/network/simtransport.hpp index ed245ec..96d2b1e 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -82,6 +82,8 @@ class SimAppContext struct { sim_req_tag_t *crt_req_tag; + AppMemPool req_tag_pool; + bool is_ready; } client; struct diff --git a/simulation/simulation.cpp b/simulation/simulation.cpp index 5c0e4dd..3333cc8 100644 --- a/simulation/simulation.cpp +++ b/simulation/simulation.cpp @@ -31,25 +31,23 @@ void server_thread_func(network::SimTransport *transport) int main(int argc, char **argv) { - network::SimConfiguration config; + network::Configuration config; /* Client and server creation */ // It has to be in this order such that // the transport object is correctly registered to the server /* Threads creation */ - int servers = 1; + int servers = 100; int clients = 100; + network::SimTransport *transport = new network::SimTransport(config, 0); std::vector server_thread_arr(servers); - std::vector transport_arr(servers); for (uint8_t i = 0; i < servers; i++) { - network::SimTransport *transport = new network::SimTransport(config, 0); - transport_arr[i] = transport; StorageServer *ss = new StorageServer( config, - FLAGS_serverIndex, + i, transport, new StorageServerApp()); server_thread_arr[i] = std::thread(server_thread_func, transport); @@ -58,8 +56,6 @@ int main(int argc, char **argv) std::vector client_thread_arr(clients); for (uint8_t i = 0; i < clients; i++) { - int server_idx = 0; - network::SimTransport *transport = transport_arr[server_idx]; StorageClient *sc = new StorageClient(config, transport); client_thread_arr[i] = std::thread(client_thread_func, sc); } From 01597ddda426ac9c8ef2bbec4c7700af52d36e74 Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Mon, 8 Nov 2021 13:08:36 +0000 Subject: [PATCH 131/138] feat: add packages to be installed --- NOTES.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/NOTES.md b/NOTES.md index 1cddd44..d72a3a9 100644 --- a/NOTES.md +++ b/NOTES.md @@ -42,15 +42,8 @@ Implementation eRPC server thread 1. Create an Ubuntu VM 2. Run these installation commands, these are the libraries needed by the code ``` -sudo apt install make -sudo apt install cmake -sudo apt install libssl-dev -sudo apt install libevent-dev -sudo apt install libboost-all-dev -sudo apt install libgtest-dev -sudo apt-get install libgflags-dev -sudo apt-get install libgoogle-glog-dev -sudo apt install g++ +sudo apt install make; sudo apt install cmake; sudo apt install libssl-dev; sudo apt install libevent-dev; sudo apt install libboost-all-dev; sudo apt install libgtest-dev; sudo apt-get install libgflags-dev; sudo apt-get install libgoogle-glog-dev; sudo apt install g++; sudo apt-get install -y pkg-config + make ``` From 2424e67692765b3474fdb8dc3bf4cef015a0b455 Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Mon, 29 Nov 2021 04:03:02 +0000 Subject: [PATCH 132/138] refactor: remove debugging statements --- network/simtransport.cpp | 5 ----- simulation/simulation.cpp | 19 ++++++------------- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/network/simtransport.cpp b/network/simtransport.cpp index 4ddbd51..f368285 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -111,14 +111,12 @@ void SimTransport::Run() // call the server simtransport_server_lock.lock(); if (c->client.is_ready) { - printf("This is the reqType yo %d\n", c->client.crt_req_tag->reqType); c->server.receiver->ReceiveRequest( c->client.crt_req_tag->reqType, c->client.crt_req_tag->req_msgbuf, c->client.crt_req_tag->resp_msgbuf ); c->client.is_ready = false; - printf("This is the reqType yo %d\n", c->client.crt_req_tag->reqType); } simtransport_server_lock.unlock(); } @@ -156,9 +154,6 @@ bool SimTransport::SendResponse(uint64_t reqHandleIdx, size_t msgLen) { bool SimTransport::SendResponse(size_t msgLen) { Debug("Sent response, msgLen = %lu\n", msgLen); sim_req_tag_t *tag = c->client.crt_req_tag; - printf("this is the tag req type %d\n", tag->reqType); - printf("this is the tag req type %s\n", tag->resp_msgbuf); - tag->src->ReceiveResponse(tag->reqType, tag->resp_msgbuf); return true; } diff --git a/simulation/simulation.cpp b/simulation/simulation.cpp index 3333cc8..f26720e 100644 --- a/simulation/simulation.cpp +++ b/simulation/simulation.cpp @@ -14,14 +14,13 @@ #include "server/storage_server.hpp" #include "client/storage_client.hpp" - using namespace std; void client_thread_func(StorageClient *sc) { string request; nodeid_t result = sc->GetNodeId(0, 0, request); - cout << "This is the server's node: " << result.nodeIdx << "\n"; + printf("This is the server's node: %d\n", result.nodeIdx); } void server_thread_func(network::SimTransport *transport) @@ -34,25 +33,19 @@ int main(int argc, char **argv) network::Configuration config; /* Client and server creation */ - // It has to be in this order such that - // the transport object is correctly registered to the server - - /* Threads creation */ + network::SimTransport *transport = new network::SimTransport(config, 0); int servers = 100; int clients = 100; - network::SimTransport *transport = new network::SimTransport(config, 0); + // Server thread creation std::vector server_thread_arr(servers); for (uint8_t i = 0; i < servers; i++) { - StorageServer *ss = new StorageServer( - config, - i, - transport, - new StorageServerApp()); + StorageServer *ss = new StorageServer(config, i, transport, new StorageServerApp()); server_thread_arr[i] = std::thread(server_thread_func, transport); } + // Client thread creation std::vector client_thread_arr(clients); for (uint8_t i = 0; i < clients; i++) { @@ -60,7 +53,7 @@ int main(int argc, char **argv) client_thread_arr[i] = std::thread(client_thread_func, sc); } - /* Blocking join */ + /* Blocking join, waits indefinitely */ for (auto &server_thread : server_thread_arr) server_thread.join(); From dd19d894ca13fd502cc2c56135a119c180c73851 Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Mon, 13 Dec 2021 14:16:18 +0000 Subject: [PATCH 133/138] feat: enable configuration of number of client and server thread through CLI argument --- common/gflags.hpp | 3 ++- config_sim | 2 -- simulation/simulation.cpp | 9 ++++++--- 3 files changed, 8 insertions(+), 6 deletions(-) delete mode 100644 config_sim diff --git a/common/gflags.hpp b/common/gflags.hpp index b32b85c..6c0ab58 100644 --- a/common/gflags.hpp +++ b/common/gflags.hpp @@ -5,7 +5,8 @@ // Defines all the command line flags shared between both // severs and clients -DEFINE_bool(isDev, false, "Flag whether this is development environment"); +DEFINE_uint32(numServerThreadsSim, 1, "The number of server threads in the simulation environment"); +DEFINE_uint32(numClientThreadsSim, 1, "The number of client threads in the simulation environment"); DEFINE_string(configFile, "", "Path to the configuration file"); DEFINE_int32(serverIndex, -1, "Index of the server in the config file"); DEFINE_string(keysFile, "", "Path to the keys file"); diff --git a/config_sim b/config_sim deleted file mode 100644 index e4d0bdd..0000000 --- a/config_sim +++ /dev/null @@ -1,2 +0,0 @@ -server localhost:1234 -server localhost:1235 \ No newline at end of file diff --git a/simulation/simulation.cpp b/simulation/simulation.cpp index f26720e..ef110d0 100644 --- a/simulation/simulation.cpp +++ b/simulation/simulation.cpp @@ -11,6 +11,7 @@ #include "network/transport.hpp" #include "network/simtransport.hpp" +#include "common/gflags.hpp" #include "server/storage_server.hpp" #include "client/storage_client.hpp" @@ -32,10 +33,12 @@ int main(int argc, char **argv) { network::Configuration config; - /* Client and server creation */ + /* Client and server thread creation */ network::SimTransport *transport = new network::SimTransport(config, 0); - int servers = 100; - int clients = 100; + + gflags::ParseCommandLineFlags(&argc, &argv, true); + int servers = FLAGS_numServerThreadsSim; + int clients = FLAGS_numClientThreadsSim; // Server thread creation std::vector server_thread_arr(servers); From 33a58dc2b7d8b02a4353b71a46f032d9c2ec067a Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Mon, 13 Dec 2021 14:16:38 +0000 Subject: [PATCH 134/138] feat: add documentation and diagram --- README.md | 89 ++++++++++++++++++++++++++++++ assets/environment-comparison.png | Bin 0 -> 63372 bytes 2 files changed, 89 insertions(+) create mode 100644 assets/environment-comparison.png diff --git a/README.md b/README.md index 115dbc2..f39a852 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,91 @@ # Be-Tree A simple, reference implementation of a B^e-tree + +## Environments +There are 3 different environments to run the implementation: +* Production +* Simulation +* Testing + +### Production Environment +The production environment is used on production. The RPC implementation of this envrionment uses eRPC. To be able to run on this environment, you need to build the eRPC, that is located under `third_party/eRPC` directory. + +**Ubuntu Prerequisites** +1. This implementation is tested and supported on Ubuntu OS. +2. Install the necessary Ubuntu packages to be able to run the implementation +``` +sudo apt install make +sudo apt install cmake +sudo apt install libssl-dev +sudo apt install libevent-dev +sudo apt install libboost-all-dev +sudo apt install libgtest-dev +sudo apt-get install libgflags-dev +sudo apt-get install libgoogle-glog-dev +sudo apt install g++ +sudo apt-get install -y pkg-config +``` + +**Setup** +1. Setup and do the necessary installations of the Ubuntu environment as specified above +2. Build eRPC. For instructions to build eRPC, refer to the `third_party/eRPC` directory. +2. Do `make` to compile and build the code +3. Do `./client/client` for the client machine to run the client code +4. Do `./server/server --configFile== --serverIndex==` + * An example configuration file is the file `config` in the root directory. In this configuration file, there are 2 servers spawned on the same machine, occupying 2 different ports. In this example file, + * Server index 0 indicates that this server instance will occupy the port 1234 + * Server index 1 indicates that this server instance will occupy the port 1235 +5. Enter the file system operations from the client side as needed. + +### Simulation Environment +The simulation environment tries to simulate the production environment and hence is similar to the production environment. The interactivity and custom input ability of file system operations should be maintained for this environment. + +**Implementation Details** + +The main difference between this environment and the production environment is that it does not use the eRPC library, it simulates the transportation of message between the client and the server using a 'simulated transportation'. + +In the 'simulated transportation' implementation, there is a single transport object that is shared between the client and the server. Since the client and the server is actually located in the same runtime environment, the transport object is shared using variable sharing. + +The image below illustrates the difference between the production and simulation environment. + +![](assets/environment-comparison.png) + +In this environment, +* the number of server threads +* the number of client threads +* all requests from all clients will always be directed to one of the server threads throughout the whole simulation. Hence, there is actually no need to spawn more than one server threads. +* all requests from all clients will be handled one-by-one by that single server thread. Hence, it is not suitable for benchmarking. + +**Ubuntu Prerequisites** + +1. This implementation is tested and supported on Ubuntu OS. +2. Install the necessary Ubuntu packages to be able to run the implementation +``` +sudo apt install make +sudo apt install cmake +sudo apt install libssl-dev +sudo apt install libevent-dev +sudo apt install libboost-all-dev +sudo apt install libgtest-dev +sudo apt-get install libgflags-dev +sudo apt-get install libgoogle-glog-dev +sudo apt install g++ +sudo apt-get install -y pkg-config +``` + +**Setup** + +1. Do `make simulation` to compile and build the simulation code. +2. Do `./simulation/simulation [--numClientThreadsSim= --numServerThreadsSim=` to run both the server and the client code. + * You can optionally specify the number of server threads or number of client threads to be spawned in this simulation environment. If these are not specified, its value will be defaulted to 1. +3. Enter the file system operation as needed. + +### Testing Environment +The testing environment is for the purpose of testing the correctness of the implementation. There is no user input expected as the file system operations and its expected output has been defined beforehand. + +This environment is not yet implemented at the moment. + +## APIs +The APIs that are currently supported by the server are: +* `GetNodeId` + * This returns the ID of the node of the server applications in the server that it resides. A single server can have multiple sever applications \ No newline at end of file diff --git a/assets/environment-comparison.png b/assets/environment-comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..2008923e806ffcfc13ac3f38e9737a8d9c4e6b5d GIT binary patch literal 63372 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 literal 0 HcmV?d00001 From 542aca6a2282a6d2441d66fb851b8d757c6651bd Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Mon, 13 Dec 2021 14:31:37 +0000 Subject: [PATCH 135/138] refactor: remove NOTES.md --- NOTES.md | 113 ------------------------------------------------------- 1 file changed, 113 deletions(-) delete mode 100644 NOTES.md diff --git a/NOTES.md b/NOTES.md deleted file mode 100644 index d72a3a9..0000000 --- a/NOTES.md +++ /dev/null @@ -1,113 +0,0 @@ -# Simulated Transport Integration - -This branch is an effort to use imulated transport as a replaement of the eRPC library requirement. - -This is part of Agnes' FYP week 10 task. - -## Code -### client/ -The original Be-Tree code - -* test.cpp: -- The main test program. Demonstrates how to construct and -use a betree. -- This is removed in the fork. - -* betree.hpp: -- The core of the betree implementation. -- This class handles flushing messages down the tree, splitting nodes, performing inserts, queries, etc, and provides an iterator for scanning key/value pairs in the tree. -- The betree is written almost completely as an in-memory data structure. All I/O is handled transparently by swap_space. - -* swap_space.{cpp,hpp}: -- Swaps objects to/from disk. Maintains a cache of in-memory objects. When the cache becomes too large the least-recently-used object is written to disk and removed from the cache. -- Automatically loads the object back into memory when it is referenced. Garbage collects objects that are no longer referenced by any other object. Tracks when objects are modified in memory so that it knows to write them back to disk next time they get evicted. - -* backing_store.{cpp,hpp}: -- This defines a generic interface used by swap_space to manage on-disk space. -- It supports allocating and deallocating on-disk space. -- The file also defines a simple implementation of the interface that stores one object per file on disk. - -* Rules.mk: -- Defines the variable that will be used by the Makefile. These are left blank at the root Makefile - - d = client - - SRCS = - -### server/ -Implementation eRPC server thread - -* There is a message buffer object, where client's requests and server's response are stored -* Currenty, they only server the getNodeId request type - -## Setup -1. Create an Ubuntu VM -2. Run these installation commands, these are the libraries needed by the code -``` -sudo apt install make; sudo apt install cmake; sudo apt install libssl-dev; sudo apt install libevent-dev; sudo apt install libboost-all-dev; sudo apt install libgtest-dev; sudo apt-get install libgflags-dev; sudo apt-get install libgoogle-glog-dev; sudo apt install g++; sudo apt-get install -y pkg-config - -make -``` - -## RPC -If make does not work, you need to build the RPC library first. - -RPC options: -### eRPC -* RDMA NIC is needed -* Virtual RDMA works for dev - -#### Setup -1. Build dpdk - - ``` - cd ~ - sudo apt install libnuma-dev \ - libarchive-dev \ - build-essential - sudo apt install linux-headers-$(uname -r) - sudo apt install libpcap-dev \ - liblz4-dev \ - liblz4-tool - git clone http://dpdk.org/git/dpdk - cd dpdk - export RTE_SDK=$(pwd) - export RTE_TARGET=x86_64-native-linux-gcc # depends on your env - make - ``` - -2. Build eRPC - ``` - cd third_party/eRPC - cmake . - ``` - - -## Run -1. make -2. ./client/client -3. ./server/server --configFile=config --serverIndex=0 or 1 - -### Examples -1. An example of the configFile is the config file - -### Simulated Transport -* No hardware setup is needed -* Client and server can run on the same machine on different ports - -## Run -1. make simulation -2. ./simulation/simtransport_sim --configFile=config_sim - -### Examples -1. An example of the configFile is the config_sim file - -## Understanding the code -1. The client and server have different Transport object. They use this object to access all info and properties of it. -2. When they request/response, they call the static method. The server pass the message bugger specified -3. Per thread, there is 1 request being processed at any point of time. - - there is no need to have a queue in sim transport - - in eRPC, there is a queue because multiple client threads can connect to it. -## Questions -1. Why is the Nexus instantiated in the server thread instead of the main function of the server code? -2. Why is the Be-tree node on the client? -3. In the eRPC, why is the Nexus instantiated in the server thread instead of the main function? -4. In the Makefile flag, Why some package needs pkg-config some don't need? From 564048a96fb84d699b77db4585d451228c066a9d Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Tue, 14 Dec 2021 05:00:29 +0000 Subject: [PATCH 136/138] feat: remove unneccessary changes to production implementation --- README.md | 5 +- client/storage_client.cpp | 4 +- client/storage_client.hpp | 1 - client/test.cpp | 430 -------------------------------------- config | 2 - network/Rules.mk | 8 +- network/app_mem_pool.cpp | 37 ---- network/configuration.hpp | 3 + network/fasttransport.cpp | 3 - network/fasttransport.hpp | 31 ++- server/main.cpp | 67 +++--- server/storage_server.cpp | 2 +- server/storage_server.hpp | 1 - 13 files changed, 70 insertions(+), 524 deletions(-) delete mode 100644 client/test.cpp delete mode 100644 config delete mode 100644 network/app_mem_pool.cpp diff --git a/README.md b/README.md index f39a852..1ec0436 100644 --- a/README.md +++ b/README.md @@ -32,9 +32,8 @@ sudo apt-get install -y pkg-config 2. Do `make` to compile and build the code 3. Do `./client/client` for the client machine to run the client code 4. Do `./server/server --configFile== --serverIndex==` - * An example configuration file is the file `config` in the root directory. In this configuration file, there are 2 servers spawned on the same machine, occupying 2 different ports. In this example file, - * Server index 0 indicates that this server instance will occupy the port 1234 - * Server index 1 indicates that this server instance will occupy the port 1235 + * An example configuration file is the file `config.txt` in the root directory. In this configuration file, there are 1 server spawned on one machine. In this example file, + * Server index 0 indicates that this server instance will occupy the port 38450 5. Enter the file system operations from the client side as needed. ### Simulation Environment diff --git a/client/storage_client.cpp b/client/storage_client.cpp index ff7c81f..91f622d 100644 --- a/client/storage_client.cpp +++ b/client/storage_client.cpp @@ -52,7 +52,7 @@ nodeid_t StorageClient::GetNodeId(uint8_t coreIdx, reqBuf->req_nr = reqId; blocked = true; transport->SendRequestToServer(this, - getNodeIdRequestType, + getNodeIdReqType, serverIdx, coreIdx, sizeof(nodeid_request_t)); this->nodeIdReply.serverIdx = serverIdx; @@ -87,7 +87,7 @@ bool StorageClient::EvictNode(uint8_t coreIdx, void StorageClient::ReceiveResponse(uint8_t reqType, char *respBuf) { Debug("[%lu] received response", clientid); switch(reqType){ - case getNodeIdRequestType: + case getNodeIdReqType: HandleGetNodeIdReply(respBuf); break; case evictNodeReqType: diff --git a/client/storage_client.hpp b/client/storage_client.hpp index 7ff3ac6..7ceb502 100644 --- a/client/storage_client.hpp +++ b/client/storage_client.hpp @@ -4,7 +4,6 @@ #include "network/configuration.hpp" #include "network/transport.hpp" -// #include "common/messages.hpp" struct nodeid_t { uint32_t serverIdx; diff --git a/client/test.cpp b/client/test.cpp deleted file mode 100644 index cb0c7f7..0000000 --- a/client/test.cpp +++ /dev/null @@ -1,430 +0,0 @@ -// This test program performs a series of inserts, deletes, updates, -// and queries to a betree. It performs the same sequence of -// operatons on a std::map. It checks that it always gets the same -// result from both data structures. - -// The program takes 1 command-line parameter -- the number of -// distinct keys it can use in the test. - -// The values in this test are strings. Since updates use operator+ -// on the values, this test performs concatenation on the strings. - -#include -#include -#include -#include -#include "betree.hpp" -#include "filesystem.hpp" - -void timer_start(uint64_t &timer) -{ - struct timeval t; - assert(!gettimeofday(&t, NULL)); - timer -= 1000000*t.tv_sec + t.tv_usec; -} - -void timer_stop(uint64_t &timer) -{ - struct timeval t; - assert(!gettimeofday(&t, NULL)); - timer += 1000000*t.tv_sec + t.tv_usec; -} - -int next_command(FILE *input, int *op, char arg[]) -{ - int ret; - char command[64]; - - ret = fscanf(input, "%s %s", command, arg); - - if (ret == EOF) - return EOF; - else if (ret != 2) { - fprintf(stderr, "Parse error\n"); - exit(3); - } - - if (strcmp(command, "Inserting") == 0) { - *op = 0; - } else if (strcmp(command, "Updating") == 0) { - *op = 1; - } else if (strcmp(command, "Deleting") == 0) { - *op = 2; - } else if (strcmp(command, "Query") == 0) { - *op = 3; - if (1 != fscanf(input, " -> %s", command)) { - fprintf(stderr, "Parse error\n"); - exit(3); - } - } else if (strcmp(command, "Full_scan") == 0) { - *op = 4; - } else if (strcmp(command, "Lower_bound_scan") == 0) { - *op = 5; - } else if (strcmp(command, "Upper_bound_scan") == 0) { - *op = 6; - } else { - fprintf(stderr, "Unknown command: %s\n", command); - exit(1); - } - - return 0; -} - -template -void do_scan(typename betree::iterator &betit, - typename std::map::iterator &refit, - betree &b, - typename std::map &reference) -{ - while (refit != reference.end()) { - assert(betit != b.end()); - assert(betit.first == refit->first); - assert(betit.second == refit->second); - ++refit; - if (refit == reference.end()) { - debug(std::cout << "Almost done" << std::endl); - } - ++betit; - } - assert(betit == b.end()); -} - -#define DEFAULT_TEST_MAX_NODE_SIZE (1ULL<<6) -#define DEFAULT_TEST_MIN_FLUSH_SIZE (DEFAULT_TEST_MAX_NODE_SIZE / 4) -#define DEFAULT_TEST_CACHE_SIZE (4) -#define DEFAULT_TEST_NDISTINCT_KEYS (1ULL << 10) -#define DEFAULT_TEST_NOPS (1ULL << 12) - -void usage(char *name) -{ - std::cout - << "Usage: " << name << " [OPTIONS]" << std::endl - << "Tests the betree implementation" << std::endl - << std::endl - << "Options are" << std::endl - << " Required:" << std::endl - << " -d [ default: none, parameter is required ]" << std::endl - << " -m (test or benchmark-) [ default: none, parameter required ]" << std::endl - << " benchmark modes:" << std::endl - << " upserts " << std::endl - << " queries " << std::endl - << " Betree tuning parameters:" << std::endl - << " -N (in elements) [ default: " << DEFAULT_TEST_MAX_NODE_SIZE << " ]" << std::endl - << " -f (in elements) [ default: " << DEFAULT_TEST_MIN_FLUSH_SIZE << " ]" << std::endl - << " -C (in betree nodes) [ default: " << DEFAULT_TEST_CACHE_SIZE << " ]" << std::endl - << " Options for both tests and benchmarks" << std::endl - << " -k [ default: " << DEFAULT_TEST_NDISTINCT_KEYS << " ]" << std::endl - << " -t [ default: " << DEFAULT_TEST_NOPS << " ]" << std::endl - << " -s [ default: random ]" << std::endl - << " Test scripting options" << std::endl - << " -o [ default: no output ]" << std::endl - << " -i [ default: none ]" << std::endl; -} - -int test(betree &b, - uint64_t nops, - uint64_t number_of_distinct_keys, - FILE *script_input, - FILE *script_output) -{ - std::map reference; - - for (unsigned int i = 0; i < nops; i++) { - int op; - char ck[256]; - std::string t; - if (script_input) { - int r = next_command(script_input, &op, ck); - t = std::string(ck); - if (r == EOF) - exit(0); - else if (r < 0) - exit(4); - } else { - op = rand() % 7; - t = std::to_string(rand() % number_of_distinct_keys); - } - - switch (op) { - case 0: // insert - if (script_output) - fprintf(script_output, "Inserting %s\n", t.c_str()); - b.insert(FKey(t), t + ":"); - reference[FKey(t)] = t + ":"; - break; - case 1: // update - if (script_output) - fprintf(script_output, "Updating %s\n", t.c_str()); - b.update(FKey(t), t + ":"); - if (reference.count(FKey(t)) > 0) - reference[FKey(t)] += t + ":"; - else - reference[FKey(t)] = t + ":"; - break; - case 2: // delete - if (script_output) - fprintf(script_output, "Deleting %s\n", t.c_str()); - b.erase(FKey(t)); - reference.erase(FKey(t)); - break; - case 3: // query - try { - std::string bval = b.query(FKey(t)); - assert(reference.count(FKey(t)) > 0); - std::string rval = reference[FKey(t)]; - assert(bval == rval); - if (script_output) - fprintf(script_output, "Query %s -> %s\n", t.c_str(), bval.c_str()); - } catch (std::out_of_range e) { - if (script_output) - fprintf(script_output, "Query %s -> DNE\n", t.c_str()); - assert(reference.count(FKey(t)) == 0); - } - break; - case 4: // full scan - { - if (script_output) - fprintf(script_output, "Full_scan 0\n"); - auto betit = b.begin(); - auto refit = reference.begin(); - do_scan(betit, refit, b, reference); - } - break; - case 5: // lower-bound scan - { - if (script_output) - fprintf(script_output, "Lower_bound_scan %s\n", t.c_str()); - auto betit = b.lower_bound(FKey(t)); - auto refit = reference.lower_bound(FKey(t)); - do_scan(betit, refit, b, reference); - } - break; - case 6: // scan - { - if (script_output) - fprintf(script_output, "Upper_bound_scan %s\n", t.c_str()); - auto betit = b.upper_bound(FKey(t)); - auto refit = reference.upper_bound(FKey(t)); - do_scan(betit, refit, b, reference); - } - break; - default: - abort(); - } - } - - std::cout << "Test PASSED" << std::endl; - - return 0; -} - -void benchmark_upserts(betree &b, - uint64_t nops, - uint64_t number_of_distinct_keys, - uint64_t random_seed) -{ - uint64_t overall_timer = 0; - for (uint64_t j = 0; j < 100; j++) { - uint64_t timer = 0; - timer_start(timer); - for (uint64_t i = 0; i < nops / 100; i++) { - uint64_t t = rand() % number_of_distinct_keys; - b.update(FKey(std::to_string(t)), std::to_string(t) + ":"); - } - timer_stop(timer); - printf("%ld %ld %ld\n", j, nops/100, timer); - overall_timer += timer; - } - printf("# overall: %ld %ld\n", 100*(nops/100), overall_timer); -} - -void benchmark_queries(betree &b, - uint64_t nops, - uint64_t number_of_distinct_keys, - uint64_t random_seed) -{ - - // Pre-load the tree with data - srand(random_seed); - for (uint64_t i = 0; i < nops; i++) { - uint64_t t = rand() % number_of_distinct_keys; - b.update(std::to_string(t), std::to_string(t) + ":"); - } - - // Now go back and query it - srand(random_seed); - uint64_t overall_timer = 0; - timer_start(overall_timer); - for (uint64_t i = 0; i < nops; i++) { - uint64_t t = rand() % number_of_distinct_keys; - b.query(std::to_string(t)); - } - timer_stop(overall_timer); - printf("# overall: %ld %ld\n", nops, overall_timer); - -} - -int main(int argc, char **argv) -{ - char *mode = NULL; - uint64_t max_node_size = DEFAULT_TEST_MAX_NODE_SIZE; - uint64_t min_flush_size = DEFAULT_TEST_MIN_FLUSH_SIZE; - uint64_t cache_size = DEFAULT_TEST_CACHE_SIZE; - char *backing_store_dir = NULL; - uint64_t number_of_distinct_keys = DEFAULT_TEST_NDISTINCT_KEYS; - uint64_t nops = DEFAULT_TEST_NOPS; - char *script_infile = NULL; - char *script_outfile = NULL; - unsigned int random_seed = time(NULL) * getpid(); - - int opt; - char *term; - - ////////////////////// - // Argument parsing // - ////////////////////// - - while ((opt = getopt(argc, argv, "m:d:N:f:C:o:k:t:s:i:")) != -1) { - switch (opt) { - case 'm': - mode = optarg; - break; - case 'd': - backing_store_dir = optarg; - break; - case 'N': - max_node_size = strtoull(optarg, &term, 10); - if (*term) { - std::cerr << "Argument to -N must be an integer" << std::endl; - usage(argv[0]); - exit(1); - } - break; - case 'f': - min_flush_size = strtoull(optarg, &term, 10); - if (*term) { - std::cerr << "Argument to -f must be an integer" << std::endl; - usage(argv[0]); - exit(1); - } - break; - case 'C': - cache_size = strtoull(optarg, &term, 10); - if (*term) { - std::cerr << "Argument to -C must be an integer" << std::endl; - usage(argv[0]); - exit(1); - } - break; - case 'o': - script_outfile = optarg; - break; - case 'k': - number_of_distinct_keys = strtoull(optarg, &term, 10); - if (*term) { - std::cerr << "Argument to -k must be an integer" << std::endl; - usage(argv[0]); - exit(1); - } - break; - case 't': - nops = strtoull(optarg, &term, 10); - if (*term) { - std::cerr << "Argument to -t must be an integer" << std::endl; - usage(argv[0]); - exit(1); - } - break; - case 's': - random_seed = strtoull(optarg, &term, 10); - if (*term) { - std::cerr << "Argument to -s must be an integer" << std::endl; - usage(argv[0]); - exit(1); - } - break; - case 'i': - script_infile = optarg; - break; - default: - std::cerr << "Unknown option '" << (char)opt << "'" << std::endl; - usage(argv[0]); - exit(1); - } - } - - FILE *script_input = NULL; - FILE *script_output = NULL; - - if (mode == NULL || - (strcmp(mode, "test") != 0 - && strcmp(mode, "benchmark-upserts") != 0 - && strcmp(mode, "benchmark-queries") != 0)) { - std::cerr << "Must specify a mode of \"test\" or \"benchmark\"" << std::endl; - usage(argv[0]); - exit(1); - } - - if (strncmp(mode, "benchmark", strlen("benchmark")) == 0) { - if (script_infile) { - std::cerr << "Cannot specify an input script in benchmark mode" << std::endl; - usage(argv[0]); - exit(1); - } - if (script_outfile) { - std::cerr << "Cannot specify an output script in benchmark mode" << std::endl; - usage(argv[0]); - exit(1); - } - } - - if (script_infile) { - script_input = fopen(script_infile, "r"); - if (script_input == NULL) { - perror("Couldn't open input file"); - exit(1); - } - } - - if (script_outfile) { - script_output = fopen(script_outfile, "w"); - if (script_output == NULL) { - perror("Couldn't open output file"); - exit(1); - } - } - - srand(random_seed); - - if (backing_store_dir == NULL) { - std::cerr << "-d is required" << std::endl; - usage(argv[0]); - exit(1); - } - - //////////////////////////////////////////////////////// - // Construct a betree and run the tests or benchmarks // - //////////////////////////////////////////////////////// - - one_file_per_object_backing_store ofpobs(backing_store_dir); - swap_space sspace(&ofpobs, cache_size); - betree b(&sspace, max_node_size, min_flush_size); - //betree b(&sspace, max_node_size, min_flush_size); - //betree b(&sspace, max_node_size, min_flush_size); - - if (strcmp(mode, "test") == 0) - test(b, nops, number_of_distinct_keys, script_input, script_output); - else if (strcmp(mode, "benchmark-upserts") == 0) - benchmark_upserts(b, nops, number_of_distinct_keys, random_seed); - else if (strcmp(mode, "benchmark-queries") == 0) - benchmark_queries(b, nops, number_of_distinct_keys, random_seed); - - if (script_input) - fclose(script_input); - - if (script_output) - fclose(script_output); - - return 0; -} - diff --git a/config b/config deleted file mode 100644 index e4d0bdd..0000000 --- a/config +++ /dev/null @@ -1,2 +0,0 @@ -server localhost:1234 -server localhost:1235 \ No newline at end of file diff --git a/network/Rules.mk b/network/Rules.mk index 855ec88..ac69568 100644 --- a/network/Rules.mk +++ b/network/Rules.mk @@ -1,13 +1,11 @@ d := $(dir $(lastword $(MAKEFILE_LIST))) -FILES = transport.cpp configuration.cpp simtransport.cpp fasttransport.cpp - -SRCS += $(addprefix $(d), $(FILES)) +SRCS += $(addprefix $(d), transport.cpp simtransport.cpp fasttransport.cpp configuration.cpp) LIB-configuration := $(o)configuration.o $(LIB-debug) LIB-transport := $(o)transport.o $(LIB-configuration) $(LIB-debug) -LIB-simtransport := $(LIB-transport) $(LIB-debug) $(o)simtransport.o +LIB-fasttransport := $(o)fasttransport.o $(LIB-transport) $(LIB-debug) -LIB-fasttransport := $(LIB-transport) $(LIB-debug) $(o)fasttransport.o +LIB-simtransport := $(LIB-transport) $(LIB-debug) $(o)simtransport.o diff --git a/network/app_mem_pool.cpp b/network/app_mem_pool.cpp deleted file mode 100644 index 6518bed..0000000 --- a/network/app_mem_pool.cpp +++ /dev/null @@ -1,37 +0,0 @@ -// A basic mempool for preallocated objects of type T. eRPC has a faster, -// hugepage-backed one. -template -class AppMemPool -{ -public: - size_t num_to_alloc = 1; - std::vector backing_ptr_vec; - std::vector pool; - - void extend_pool() - { - T *backing_ptr = new T[num_to_alloc]; - for (size_t i = 0; i < num_to_alloc; i++) - pool.push_back(&backing_ptr[i]); - backing_ptr_vec.push_back(backing_ptr); - num_to_alloc *= 2; - } - - T *alloc() - { - if (pool.empty()) - extend_pool(); - T *ret = pool.back(); - pool.pop_back(); - return ret; - } - - void free(T *t) { pool.push_back(t); } - - AppMemPool() {} - ~AppMemPool() - { - for (T *ptr : backing_ptr_vec) - delete[] ptr; - } -}; \ No newline at end of file diff --git a/network/configuration.hpp b/network/configuration.hpp index 749699b..1242c0b 100644 --- a/network/configuration.hpp +++ b/network/configuration.hpp @@ -38,7 +38,10 @@ struct ServerAddress class Configuration { public: + /* Empty constructor for dummy configuration in simulation environment */ Configuration(); + + /* Non-empty constructors for real configuration */ Configuration(const Configuration &c); Configuration(int n, // int f, diff --git a/network/fasttransport.cpp b/network/fasttransport.cpp index 8d7b775..ba84382 100644 --- a/network/fasttransport.cpp +++ b/network/fasttransport.cpp @@ -98,9 +98,6 @@ FastTransport::FastTransport(const network::Configuration &config, Assert(numa_node <= numa_max_node()); c = new AppContext(); - - // bind round robin on the availlable numa nodes - erpc::bind_to_core(thread_arr[i], numa_node, idx); // The first thread to grab the lock initializes the transport fasttransport_lock.lock(); diff --git a/network/fasttransport.hpp b/network/fasttransport.hpp index 0ccd08c..4365133 100644 --- a/network/fasttransport.hpp +++ b/network/fasttransport.hpp @@ -4,7 +4,6 @@ #include "network/configuration.hpp" #include "network/transport.hpp" -#include "network/app_mem_pool.cpp" #include "rpc.h" #include "rpc_constants.h" @@ -57,6 +56,36 @@ struct req_tag_t { TransportReceiver *src; }; +// A basic mempool for preallocated objects of type T. eRPC has a faster, +// hugepage-backed one. +template class AppMemPool { + public: + size_t num_to_alloc = 1; + std::vector backing_ptr_vec; + std::vector pool; + + void extend_pool() { + T *backing_ptr = new T[num_to_alloc]; + for (size_t i = 0; i < num_to_alloc; i++) pool.push_back(&backing_ptr[i]); + backing_ptr_vec.push_back(backing_ptr); + num_to_alloc *= 2; + } + + T *alloc() { + if (pool.empty()) extend_pool(); + T *ret = pool.back(); + pool.pop_back(); + return ret; + } + + void free(T *t) { pool.push_back(t); } + + AppMemPool() {} + ~AppMemPool() { + for (T *ptr : backing_ptr_vec) delete[] ptr; + } +}; + // eRPC context passed between request and responses class AppContext { public: diff --git a/server/main.cpp b/server/main.cpp index 34dbbfe..84c8fbd 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -8,9 +8,7 @@ #include #include "network/configuration.hpp" -#include "network/transport.hpp" #include "network/fasttransport.hpp" - #include "common/gflags.hpp" #include "storage_server.hpp" @@ -18,42 +16,29 @@ using namespace std; -uint8_t get_numa_node(uint8_t thread_id) -{ - // TODO: provide mapping function from thread_id to numa_node - // for now assume it's round robin - return 0; -} - void server_thread_func(StorageServerApp *storageApp, network::Configuration config, - uint8_t thread_id) { + uint8_t numa_node, uint8_t thread_id) { std::string local_uri = config.GetServerAddress(FLAGS_serverIndex).host; // TODO: provide mapping function from thread_id to numa_node // for now assume it's round robin // TODO: get rid of the hardcoded number of request types //int ht_ct = boost::thread::hardware_concurrency(); - if (numa_available() == -1) - { - PPanic("NUMA library not available."); - } network::FastTransport *transport = new network::FastTransport(config, - local_uri, - // FLAGS_numServerThreads, - 1, - // ht_ct, - 4, - 0, - get_numa_node(thread_id), - thread_id); - // last_transport = transport; + local_uri, + //FLAGS_numServerThreads, + 1, + //ht_ct, + 4, + 0, + numa_node, + thread_id); +// last_transport = transport; StorageServer *ss = new StorageServer( - config, - FLAGS_serverIndex, - (FastTransport *)transport, - storageApp - ); + config, FLAGS_serverIndex, + (network::FastTransport *)transport, + storageApp); transport->Run(); } @@ -79,10 +64,10 @@ main(int argc, char **argv) return EXIT_FAILURE; } - // if (FLAGS_keysFile == "") { - // fprintf(stderr, "option --keysFile is required\n"); - // return EXIT_FAILURE; - // } +// if (FLAGS_keysFile == "") { +// fprintf(stderr, "option --keysFile is required\n"); +// return EXIT_FAILURE; +// } if (FLAGS_serverIndex == -1) { fprintf(stderr, "option --serverIndex is required\n"); @@ -102,16 +87,22 @@ main(int argc, char **argv) "only %d servers defined\n", FLAGS_serverIndex, config.n); } + // create replica threads + // bind round robin on the availlable numa nodes + if (numa_available() == -1) { + PPanic("NUMA library not available."); + } + //int nn_ct = numa_max_node() + 1; //int ht_ct = boost::thread::hardware_concurrency()/boost::thread::physical_concurrency(); // number of hyperthreads // TODO: start the app on all available cores to regulate frequency boosting - // int ht_ct = boost::thread::hardware_concurrency(); - // std::vector thread_arr(FLAGS_numServerThreads); - // std::vector thread_arr(ht_ct); - std::vector thread_arr(1); +// int ht_ct = boost::thread::hardware_concurrency(); +// std::vector thread_arr(FLAGS_numServerThreads); +// std::vector thread_arr(ht_ct); + std::vector thread_arr(1); - StorageServerApp *storageApp = new StorageServerApp(); + StorageServerApp *storageApp = new StorageServerApp(); // for (uint8_t i = 0; i < FLAGS_numServerThreads; i++) { // for (uint8_t i = 0; i < ht_ct; i++) { @@ -131,4 +122,4 @@ main(int argc, char **argv) for (auto &thread : thread_arr) thread.join(); return 0; -} +} \ No newline at end of file diff --git a/server/storage_server.cpp b/server/storage_server.cpp index 03cde94..b38bee8 100644 --- a/server/storage_server.cpp +++ b/server/storage_server.cpp @@ -36,7 +36,7 @@ StorageServer::~StorageServer() { } void StorageServer::ReceiveRequest(uint8_t reqType, char *reqBuf, char *respBuf) { size_t respLen; switch(reqType) { - case getNodeIdRequestType: + case getNodeIdReqType: HandleGetNodeId(reqBuf, respBuf, respLen); break; case evictNodeReqType: diff --git a/server/storage_server.hpp b/server/storage_server.hpp index 6c522bb..ad7ab56 100644 --- a/server/storage_server.hpp +++ b/server/storage_server.hpp @@ -10,7 +10,6 @@ #include "network/configuration.hpp" #include "network/transport.hpp" -// #include "common/messages.hpp" class StorageServerApp { From 082849f690f6cf1c2550efebdda74073bb413597 Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Tue, 14 Dec 2021 06:56:48 +0000 Subject: [PATCH 137/138] fix: Makefile reconfiguration for 2 build configurations --- Makefile | 35 +++++++++++++++-------------------- client/main.cpp | 1 + client/storage_client.cpp | 1 + network/app_mem_pool.cpp | 29 +++++++++++++++++++++++++++++ network/fasttransport.hpp | 30 ------------------------------ server/main.cpp | 2 +- 6 files changed, 47 insertions(+), 51 deletions(-) create mode 100644 network/app_mem_pool.cpp diff --git a/Makefile b/Makefile index 3172a1b..b536ba2 100644 --- a/Makefile +++ b/Makefile @@ -7,16 +7,6 @@ CXX = g++ LD = g++ EXPAND = lib/tmpl/expand -ERPC_PATH= "./third_party/eRPC" - -#ERPC_CFLAGS_RAW := -I $(ERPC_PATH)/src -DRAW=true -#ERPC_LDFLAGS_RAW := -L $(ERPC_PATH)/build -lerpc -lnuma -ldl -lgflags -libverbs - -DPDK_LIBS := $(shell pkg-config --libs libdpdk) -DPDK_CFLAGS := $(shell pkg-config --cflags libdpdk) -ERPC_CFLAGS_DPDK := -I $(ERPC_PATH)/src -I $(ERPC_PATH)/third_party/asio/include $(DPDK_CFLAGS) -DERPC_DPDK=true -march=native -ERPC_LDFLAGS_DPDK := -L $(ERPC_PATH)/build -lerpc -lnuma -ldl -lgflags -libverbs -lmlx4 -lmlx5 $(DPDK_LIBS) - CFLAGS_WARNINGS:= -Wno-unused-function -Wno-nested-anon-types -Wno-keyword-macro -Wno-uninitialized # -fno-omit-frame-pointer is needed to get accurate flame graphs. See [1] for @@ -27,9 +17,11 @@ CFLAGS := -g -Wall $(CFLAGS_WARNINGS) -iquote.obj/gen -O2 -DNASSERT -fno-omit-fr CXXFLAGS := -g -std=c++11 LDFLAGS := -levent_pthreads -pthread -lboost_fiber -lboost_context -lboost_system -lboost_thread -## Add ERPC flags ## -CFLAGS += $(ERPC_CFLAGS_DPDK) -LDFLAGS += $(ERPC_LDFLAGS_DPDK) +## Add RPC flags ## +RPC_CFLAGS := +RPC_LDFLAGS := -ldl -lgflags -libverbs +CFLAGS += $(RPC_CFLAGS) +LDFLAGS += $(RPC_LDFLAGS) ## Debian package: check ## #CHECK_CFLAGS := $(shell pkg-config --cflags check) @@ -58,7 +50,7 @@ LDFLAGS += $(LIBSSL_LDFLAGS) GTEST_DIR := /usr/src/gtest # Additional flags -PARANOID = 0 +PARANOID = 1 ifneq ($(PARANOID),0) override CFLAGS += -DPARANOID=1 $(info WARNING: Paranoid mode enabled) @@ -281,7 +273,12 @@ print-%: # .PHONY: all -all: +all: + ERPC_PATH= "./third_party/eRPC" + DPDK_LIBS := $(shell pkg-config --libs libdpdk) + DPDK_CFLAGS := $(shell pkg-config --cflags libdpdk) + RPC_CFLAGS := -I $(ERPC_PATH)/src -I $(ERPC_PATH)/third_party/asio/include $(DPDK_CFLAGS) -DERPC_DPDK=true -march=native + RPC_LDFLAGS := -L $(ERPC_PATH)/build -lerpc -lnuma -ldl -lgflags -libverbs -lmlx4 -lmlx5 $(DPDK_LIBS) $(BINS) $(TEST_BINS:%=run-%): run-%: % @@ -291,13 +288,11 @@ $(TEST_BINS:%=gdb-%): gdb-%: % $(call trace,GDB,$<,CK_FORK=no gdb $<) .PHONY: simulation -simulation: - LDFLAGS += -ldl -lgflags -libverbs - $(SIM_BINS) +simulation: $(SIM_BINS) .PHONY: test -test: - $(TEST_BINS:%=run-%) +test: $(TEST_BINS:%=run-%) + .PHONY: check check: test diff --git a/client/main.cpp b/client/main.cpp index 6030e6f..8ad72b4 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -365,3 +365,4 @@ int main(int argc, char **argv) return 0; } + diff --git a/client/storage_client.cpp b/client/storage_client.cpp index 91f622d..5914039 100644 --- a/client/storage_client.cpp +++ b/client/storage_client.cpp @@ -7,6 +7,7 @@ //#include //#include +#include #include using namespace std; diff --git a/network/app_mem_pool.cpp b/network/app_mem_pool.cpp new file mode 100644 index 0000000..03ccc3c --- /dev/null +++ b/network/app_mem_pool.cpp @@ -0,0 +1,29 @@ +// A basic mempool for preallocated objects of type T. eRPC has a faster, +// hugepage-backed one. +template class AppMemPool { + public: + size_t num_to_alloc = 1; + std::vector backing_ptr_vec; + std::vector pool; + + void extend_pool() { + T *backing_ptr = new T[num_to_alloc]; + for (size_t i = 0; i < num_to_alloc; i++) pool.push_back(&backing_ptr[i]); + backing_ptr_vec.push_back(backing_ptr); + num_to_alloc *= 2; + } + + T *alloc() { + if (pool.empty()) extend_pool(); + T *ret = pool.back(); + pool.pop_back(); + return ret; + } + + void free(T *t) { pool.push_back(t); } + + AppMemPool() {} + ~AppMemPool() { + for (T *ptr : backing_ptr_vec) delete[] ptr; + } +}; diff --git a/network/fasttransport.hpp b/network/fasttransport.hpp index 4365133..8267abc 100644 --- a/network/fasttransport.hpp +++ b/network/fasttransport.hpp @@ -56,36 +56,6 @@ struct req_tag_t { TransportReceiver *src; }; -// A basic mempool for preallocated objects of type T. eRPC has a faster, -// hugepage-backed one. -template class AppMemPool { - public: - size_t num_to_alloc = 1; - std::vector backing_ptr_vec; - std::vector pool; - - void extend_pool() { - T *backing_ptr = new T[num_to_alloc]; - for (size_t i = 0; i < num_to_alloc; i++) pool.push_back(&backing_ptr[i]); - backing_ptr_vec.push_back(backing_ptr); - num_to_alloc *= 2; - } - - T *alloc() { - if (pool.empty()) extend_pool(); - T *ret = pool.back(); - pool.pop_back(); - return ret; - } - - void free(T *t) { pool.push_back(t); } - - AppMemPool() {} - ~AppMemPool() { - for (T *ptr : backing_ptr_vec) delete[] ptr; - } -}; - // eRPC context passed between request and responses class AppContext { public: diff --git a/server/main.cpp b/server/main.cpp index 84c8fbd..bf4070b 100644 --- a/server/main.cpp +++ b/server/main.cpp @@ -122,4 +122,4 @@ main(int argc, char **argv) for (auto &thread : thread_arr) thread.join(); return 0; -} \ No newline at end of file +} From 14f069ac63dd47a3b8aa148bd5a2d576d30f001f Mon Sep 17 00:00:00 2001 From: Agnes Natasya Date: Thu, 16 Dec 2021 07:14:00 +0000 Subject: [PATCH 138/138] feat: change client and server's thread task to remove memory consistency problem --- client/storage_client.cpp | 2 -- network/simtransport.cpp | 11 +++++++---- network/simtransport.hpp | 8 ++------ 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/client/storage_client.cpp b/client/storage_client.cpp index 5914039..2c8ab83 100644 --- a/client/storage_client.cpp +++ b/client/storage_client.cpp @@ -114,8 +114,6 @@ void StorageClient::HandleGetNodeIdReply(char *respBuf) { return; } this->nodeIdReply.nodeIdx = resp->id; - // memory barrier here, because the client is waiting - // for a modified data structure blocked = false; } diff --git a/network/simtransport.cpp b/network/simtransport.cpp index f368285..39f9ebe 100644 --- a/network/simtransport.cpp +++ b/network/simtransport.cpp @@ -133,6 +133,11 @@ bool SimTransport::SendRequestToServer(TransportReceiver *src, uint8_t reqType, c->client.crt_req_tag->reqType = reqType; c->client.is_ready = true; while (src->Blocked()) { + if (c.server.is_ready) { + sim_req_tag_t *tag = c->client.crt_req_tag; + tag->src->ReceiveResponse(tag->reqType, tag->resp_msgbuf); + c->server.is_ready = false; + } boost::this_fiber::yield(); } simtransport_client_lock.unlock(); @@ -146,15 +151,13 @@ bool SimTransport::SendRequestToAllServers(TransportReceiver *src, uint8_t reqTy bool SimTransport::SendResponse(uint64_t reqHandleIdx, size_t msgLen) { Debug("Sent response, msgLen = %lu\n", msgLen); - sim_req_tag_t *tag = c->client.crt_req_tag; - tag->src->ReceiveResponse(tag->reqType, tag->resp_msgbuf); + c->server.is_ready = true; return true; } bool SimTransport::SendResponse(size_t msgLen) { Debug("Sent response, msgLen = %lu\n", msgLen); - sim_req_tag_t *tag = c->client.crt_req_tag; - tag->src->ReceiveResponse(tag->reqType, tag->resp_msgbuf); + c->server.is_ready = true; return true; } } diff --git a/network/simtransport.hpp b/network/simtransport.hpp index 96d2b1e..3f9fbdf 100644 --- a/network/simtransport.hpp +++ b/network/simtransport.hpp @@ -68,12 +68,6 @@ class SimRpc { return new char[msgLen]; } - // void enqueue_request(sim_req_tag_t* req_tag) - // { - // req_queue.push_back(req_tag); - // } - - // std::deque req_queue; }; class SimAppContext @@ -90,6 +84,7 @@ class SimAppContext { // current req_handle TransportReceiver *receiver = nullptr; + bool is_ready; } server; // common to both servers and clients @@ -100,6 +95,7 @@ class SimTransport : public Transport { public: static int MAX_DATA_PER_PKT; + bool isResponseCompleted; SimTransport( const network::Configuration &config, uint8_t id);