From 0671101adb5ea7766daa3ac79ecca68d39b8e36f Mon Sep 17 00:00:00 2001 From: Felix Petriconi Date: Mon, 7 Dec 2020 22:42:00 +0100 Subject: [PATCH 01/17] Same minimal corrections * some pages use the wrong template * some pages don't have a chapter number --- _layouts/book-page.html | 2 ++ better-code/00-preface.md | 1 + better-code/01-types.md | 1 - better-code/02-algorithms.md | 4 ++-- better-code/03-data-structures.md | 1 - better-code/04-runtime-polymorphism.md | 4 ++-- better-code/06-relationships.md | 2 +- better-code/07-epilogue.md | 4 ++-- 8 files changed, 10 insertions(+), 9 deletions(-) diff --git a/_layouts/book-page.html b/_layouts/book-page.html index 97e2f76..811425b 100644 --- a/_layouts/book-page.html +++ b/_layouts/book-page.html @@ -1,6 +1,8 @@ --- layout: default --- +{% include mathjax.html %} +
diff --git a/better-code/00-preface.md b/better-code/00-preface.md index e89a51b..0127e70 100644 --- a/better-code/00-preface.md +++ b/better-code/00-preface.md @@ -2,6 +2,7 @@ title: Preface layout: book-page tags: [ better-code ] +chapter: 0 --- To understand what _better code_ is, we first need to understand what _good code_ is. Students are taught that good code is code that does what the specification says it should. But such an answer begs the question of what is a good specification? Nearly every experienced developer I've met has a snippet of code filed away that has profound beauty - it likely has no corresponding specification and may not even contain a single comment. So what is good code? diff --git a/better-code/01-types.md b/better-code/01-types.md index f254a6e..66f97de 100644 --- a/better-code/01-types.md +++ b/better-code/01-types.md @@ -1,7 +1,6 @@ --- title: Types tagline: No Incomplete Types - layout: book-page tags: [ better-code ] chapter: 1 diff --git a/better-code/02-algorithms.md b/better-code/02-algorithms.md index fa32cf7..e2e0450 100644 --- a/better-code/02-algorithms.md +++ b/better-code/02-algorithms.md @@ -1,9 +1,9 @@ --- title: Algorithms tagline: No Raw Loops - -layout: page +layout: book-page tags: [ better-code ] +chapter: 2 --- Testing 1.2.3... diff --git a/better-code/03-data-structures.md b/better-code/03-data-structures.md index e1d269b..234e75f 100644 --- a/better-code/03-data-structures.md +++ b/better-code/03-data-structures.md @@ -1,7 +1,6 @@ --- title: Data Structures tagline: No Incidental Data Structures - layout: book-page tags: [ better-code ] chapter: 3 diff --git a/better-code/04-runtime-polymorphism.md b/better-code/04-runtime-polymorphism.md index 24eccd4..1398a95 100644 --- a/better-code/04-runtime-polymorphism.md +++ b/better-code/04-runtime-polymorphism.md @@ -1,9 +1,9 @@ --- title: Runtime Polymorphism tagline: No Public Inheritance - -layout: page +layout: book-page tags: [ better-code ] +chapter: 4 --- Object-oriented programming has been one of the paradigms supported by C++ from its invention. The idea of type inheritance and virtual functions were borrowed from Simula[^cpp-history]. Inheritance can represent a subtype or protocol relationship. Although the two are closely related, in this chapter we're primarily concerned with subtype relationships through class inheritance. Protocols are discussed in the next chapter. {::comment}link{:/comment} diff --git a/better-code/06-relationships.md b/better-code/06-relationships.md index ba9b147..4ac6fde 100644 --- a/better-code/06-relationships.md +++ b/better-code/06-relationships.md @@ -1,9 +1,9 @@ --- title: Relationships tagline: No Contradictions - layout: book-page tags: [ better-code ] +chapter: 6 --- ### Motivation diff --git a/better-code/07-epilogue.md b/better-code/07-epilogue.md index 5eb14b3..3838cf9 100644 --- a/better-code/07-epilogue.md +++ b/better-code/07-epilogue.md @@ -1,8 +1,8 @@ --- title: Epilogue - -layout: page +layout: book-page tags: [ better-code ] +chapter: 7 --- Testing 1,2,3... From a3bac36e9eff9de507623e2cac4339c2b1291358 Mon Sep 17 00:00:00 2001 From: Felix Petriconi Date: Wed, 23 Dec 2020 16:17:51 +0100 Subject: [PATCH 02/17] Next draft of concurrency chapter --- better-code/05-concurrency.md | 257 +++++- better-code/05-concurrency.md.orig | 271 ++++++ better-code/code/05-background_worker.cpp | 47 + better-code/code/05-bad_cow.cpp | 26 + better-code/code/05-bad_cow.cpp.orig | 26 + better-code/code/05-correct_cow.cpp | 26 + better-code/code/05-correct_cow.cpp.orig | 26 + better-code/code/05-notification_queue-1.cpp | 27 + better-code/code/05-notification_queue-2.cpp | 30 + better-code/code/05-notification_queue-3.cpp | 52 ++ better-code/code/05-registry-0.cpp | 15 + better-code/code/05-registry-0.cpp.orig | 15 + better-code/code/05-registry-1.cpp | 20 + better-code/code/05-registry-1.cpp.orig | 20 + better-code/code/05-registry-2.cpp | 29 + better-code/code/05-registry-2.cpp.orig | 29 + better-code/code/05-task_system-1.cpp | 30 + better-code/code/05-task_system-2.cpp | 9 + better-code/code/05-task_system-3.cpp | 28 + better-code/code/05-task_system-4.cpp | 29 + better-code/concurrency_talk.md | 781 ++++++++++++++++ better-code/figures/05-background_thread.svg | 337 +++++++ .../figures/05-simple_tasking_system.svg | 448 ++++++++++ .../05-task_system_multiple_queues.svg | 769 ++++++++++++++++ .../figures/05-task_system_task_stealing.svg | 836 ++++++++++++++++++ better-code/figures/AmdahlsLaw.jpg | Bin 0 -> 194111 bytes better-code/figures/amdahl_lin.jpg | Bin 0 -> 236082 bytes better-code/figures/amdahl_lin.png | Bin 0 -> 158661 bytes better-code/figures/amdahl_log.png | Bin 0 -> 146117 bytes startDocker.bat | 2 + 30 files changed, 4152 insertions(+), 33 deletions(-) create mode 100644 better-code/05-concurrency.md.orig create mode 100644 better-code/code/05-background_worker.cpp create mode 100644 better-code/code/05-bad_cow.cpp create mode 100644 better-code/code/05-bad_cow.cpp.orig create mode 100644 better-code/code/05-correct_cow.cpp create mode 100644 better-code/code/05-correct_cow.cpp.orig create mode 100644 better-code/code/05-notification_queue-1.cpp create mode 100644 better-code/code/05-notification_queue-2.cpp create mode 100644 better-code/code/05-notification_queue-3.cpp create mode 100644 better-code/code/05-registry-0.cpp create mode 100644 better-code/code/05-registry-0.cpp.orig create mode 100644 better-code/code/05-registry-1.cpp create mode 100644 better-code/code/05-registry-1.cpp.orig create mode 100644 better-code/code/05-registry-2.cpp create mode 100644 better-code/code/05-registry-2.cpp.orig create mode 100644 better-code/code/05-task_system-1.cpp create mode 100644 better-code/code/05-task_system-2.cpp create mode 100644 better-code/code/05-task_system-3.cpp create mode 100644 better-code/code/05-task_system-4.cpp create mode 100644 better-code/concurrency_talk.md create mode 100644 better-code/figures/05-background_thread.svg create mode 100644 better-code/figures/05-simple_tasking_system.svg create mode 100644 better-code/figures/05-task_system_multiple_queues.svg create mode 100644 better-code/figures/05-task_system_task_stealing.svg create mode 100644 better-code/figures/AmdahlsLaw.jpg create mode 100644 better-code/figures/amdahl_lin.jpg create mode 100644 better-code/figures/amdahl_lin.png create mode 100644 better-code/figures/amdahl_log.png create mode 100644 startDocker.bat diff --git a/better-code/05-concurrency.md b/better-code/05-concurrency.md index b3f3795..2f93cb3 100644 --- a/better-code/05-concurrency.md +++ b/better-code/05-concurrency.md @@ -1,61 +1,252 @@ --- title: Concurrency tagline: No Raw Synchronization Primitives - +mathjax: true layout: book-page tags: [ better-code ] +chapter: 5 --- ### Motivation -{::comment} -For this section I need to first provide motivation for concurrency, and define concurrency and parallelism. which are not commonly understood. Do I need to provide a motivation section for each chapter? -{:/comment} - _Concurrency_ is when multiple tasks start, run, and complete in overlapping time periods and should not be confused with _parallelism_ which is when multiple tasks execute simultaneously. Parallelism requires some form of hardware support, where as concurrency can be achieved strictly through software, such as a cooperative tasking system. There are two primary benefits for concurrent code. The first is performance by enabling parallelism. The second is to improve interactivity by not blocking the user while a prior action is being processed. As clock rates on systems have stagnated, hardware developers have turned to parallelism to increase performance. Figure [xxx] shows the performance distribution on a typical desktop system. A single threaded, non-vectorized, application can only utilize about 0.25% of the performance capabilities of the machine. -### Definition of _raw synchronization primitives_. +The goal of this chapter is to develop concurrent code without using raw synchronization primitives. + +### Definition of _raw synchronization primitives_ -A _raw synchronization primitive_ is a low level construct used to synchronize access to data. Examples include locks and mutexes, condition variables, semaphores, atomic operations, and memory fences. +A _raw synchronization primitive_ is a low level construct used to synchronize access to data. Examples include locks and mutexes, condition variables, semaphores, atomic operations and memory fences. {::comment} Discuss difference between data parallelism and task concurrency, so far this chapter is only dealing with tasking. However, it could be expanded upon. {:/comment} -The goal of this chapter is to develop concurrent code without using raw synchronization primitives. +### Problems of _raw synchronization primitives_ + +The first problem with raw synchronization primitives is that they are exceedingly error prone to use because, by definition, they require reasoning about non-local effects. + +For example, the following is a snippet from a copy-on-write[^cow_definition] data type, this is a simplified version of code from a shipping system. -The first problem with raw synchronization primitives are that they are exceedingly error prone to use because, by definition, they require reasoning about non-local effects. +{% include code.md name='05-bad_cow' caption='Incorrect copy-on-write' %} -For example, [xxxx] is a snippet from a copy-on-write datatype, this is a simplified version of code from a shipping system. +The code contains a subtle race condition. The `if` statement at line 16 is checking the value of an atomic count to see if it is 1. The `else` statement handles the case where it is not 1. Within the else statement the count is decremented at line 19. The problem is that if decrementing the count results in a value of 0 then the object stored in `_object` should be deleted. The code fails to check for this case, and so an object may be leaked. -{::comment} -Insert bad cow example here. Can this example be simplified even more? Remove the template and make it a string? -{:/comment} +The initial test to see if the count was 1 isn't sufficient, between that check and when the count is decremented and another thread may have released ownership and decremented the count leaving this object instance as the sole owner. -The highlighted lines {::comment} how? {:/comment} contain a subtle race condition. The `if` statement is checking the value of an atomic count to see if it is `1`. The `else` statement handles the case where it is not 1. Within the else statement the count is decremented. The problem is that if decrementing the count results in a value of `0` then the object stored in `object_m` should be deleted. The code fails to check for this case, and so an object may be leaked. +The fix is to test atomically with the decrement in the same statement, line 19. The correct code is shown in shown below: -The initial test to see if the count was `1` isn't sufficient, between that check and when the count is decremented another thread may have released ownership and decremented the count leaving this object instance as the sole owner. +{% include code.md name='05-correct_cow' caption='Correct copy-on-write' %} -The fix is to test atomically with the decrement, the correct code is shown in [xxxx]. +The code of the complete, correct implementations is available online[^cow]. Another problem with raw synchronization primitives is that their use can have a large negative impact on system performance. To understand why, we need to understand Amdahl's Law. -The intuition behind Amdahl's Law is that if part of system takes time x to complete, - -{::comment} -Math experiment for Fibonacci matrix. -{:/comment} -$$ -\begin{align*} - \left[ \begin{array}{cc} - 1 & 1 \\ - 1 & 0 - \end{array} \right]^{n} = - \left[ \begin{array}{cc} - F_{n+1} & F_n \\ - F_n & F_{n-1} - \end{array} \right] -\end{align*} -$$ +The intuition behind Amdahl's Law is that if a part of system takes time x to complete on a single core or processor, then it will encounter a speedup of y if it is run on y cores, but only if no synchronization takes places between the different cores or processors. +$$S(N) = \frac{1}{(1-P)+\frac{P}{N}}$$ +Where the speedup $$S$$ is defined by this equation. $$P$$ is hereby the amount of synchronization in the range of $$[0 .. 1]$$ and $$N$$ the number of cores or processors. + +Drawing the abscissa in logarithmic scale illustrates that there is only a speedup of 20 times, even when the system is running on 2048 or more cores and just 5% synchronization takes place. + +{::comment} Convert/Create new SVG image +{% include figure.md name='amdahl_log' caption="Amdahl's Law logarithmic scale" %} +{::/comment} + +![Amdahl's Law](figures/amdahl_log.png){:height="40%" width="40%"} +Amdahl's Law Logarithmic Scale + +Since most desktop or mobile processors have less than 64 cores, it is better to take a look at the graph with linear scale. Each line below the diagonal represents 10% more of serialisation. So if the application just has 10% of serialisation and it is running on 16 cores then the speed-up is just a little better than factor of six. + +{::comment} Convert/Create new SVG image +{% include figure.md name='amdahl_lin' caption="Amdahl's Law linear scale" %} +{::/comment} +![Amdahl's Law](figures/amdahl_lin.png){:height="40%" width="40%"} +Amdahl's Law Linear Scale + +So Amdahl's law has a huge impact. Serialization doesn't mean only locking on a mutex. Serialization can mean sharing the same memory or sharing the same address bus for the memory, if it is not a NUMA architecture. Sharing the same cache line or anything that is shared within the processor starts to bend that curve down and it bends down rapidly, even an atomic bends that curve down. + +An often used model for implementing exclusive access to an object by multiple threads is this: + +{% include figure.md name='05-traditional_locking' caption="Exclusive access by different threads" %} + +As long as one thread has exclusive access to the object all other threads have to wait until they get the access right. + +This is a horrible way to think about threading. The goal has to be to minimize waiting at all costs. David Butenhof, one of the POSIX implementors, coined the phrase that mutex should be better named bottleneck, because of the property of slowing down an application[^butenhof]. + +In the following, let's take a look at a traditional piece of code: + +{% include code.md name='05-registry-0' caption='Registry Example' %} + +It is a registry class with a shared `set` and `get` function. The access to the underlying unordered map is protected against concurrent access with a mutex. At the first glance it seems that only minimal work is done under the mutex. The unordered map is a fairly efficient data structure, it is a hash map. But the amount of time it takes to hash the key depends on the length of the string. So the work that is being done under the lock here is actually fairly unbounded. It depends completely on the lengths of the string. It may be probably typically small but it could be big. On top of the hash calculation comes a potentially allocation of a new bucket within the unordered map, which in most cases requires another lock within the memory manager. This lock can be, depending on the operating system, a global lock within the process. + +For a better understanding what shall be actually achieved by using the locks it is necessary to take step back. The C++ standard states here: _It can be shown that programs that correctly use mutexes and memory\_order\_seq\_cst operations to prevent all data races and use no other synchronization operations behave as if the operations executed by their constituent threads were simply interleaved, with each value computation of an object being taken from the last side effect on that object in that interleaving. This is normally referred to as ‘sequential consistency.’_, C++11 Standard 1.10.21. + +So why is this an important sentence? It means that one can always think about mutexes as if one has some set of interleaved operations. + +{% include figure.md name='05-sequential_operations' caption='Sequential Operations' %} + +* A mutex serializes a set of operations, $$Op_n$$, where the operation is the code executed while the mutex is locked +* Operations are interleaved and may be executed in any order and may be repeated +* Each operation takes an argument, $$x$$, which is the set of all objects mutated under all operations + * $$x$$ may not be safely read or written without holding the lock if it may be modified by a task holding the lock +* Each operation may yield a result, $$r_m$$, which can communicate information about the state of $$x$$ while it’s associated operation was executed +* The same is true of all atomic operations + +So there is not a lot of difference between an `std::atomic`. In fact there is a call on `std::atomic` that returns `true`, if it is lock free. This means the processor supports to do that as an atomic item within the processor or is there not processor support and the compiler has to generate a mutex pair to lock, make the change on the atomic operation, and do the unlock. So all that mutexes and locks are the way to construct atomic operations. + +That means that any piece of code that has a mutex can be transformed into a queued model. This idea applied to the registry example from above leads to this: + +{% include code.md name='05-registry-1' caption='registry with queue' %} + +Given that there is a serial queue `_q` with an `async` function which executes the passed item and it uses the same calling conventions as `std::async`. Hereby with the difference that it guarantees that the next item being processed in that queue doesn't start until the previous one is completed. Then one can rewrite the `set` string function to be executed with `_q.async`. +As well one can rewrite the `get` string operation. But here the difference is, that one needs the result back out, paired with that particular `get`. It is realized here with a future. (Futures will be covered later in more detail.) So the result of the `get` function, e.g. with a continuation, can be used whenever the `key` is hashed and and the lookup in the hash is completed. + +{% include code.md name='05-registry-2' caption='Enhanced Registry with Queue' %} + +Why is it important to understand this concept? Because at any place with a mutex in the code one can always make this transformation. One can always transform it into a serialized queue model. And this means that within the serialized queue model anytime somebody can come along and calls `set`, regardless of the amount of work that `set` takes, the time it takes for `set` to return back to the caller itself constant. This means as well that one can add something like an arbitrary `set`, e.g a whole vector of key value pairs. And to the caller this `set` will take just as much time as the previous `set`. It's a non blocking operation with an upper bound of overhead. + +### Definition of _raw threads_ + +A _thread_ is a execution environment consisting of a stack and processor state running in parallel to other threads. +A _task_ is a unit of work, often a function, to be executed on a thread. + +### Problems of _raw threads_ + +Another common scenario is that increased work within an application is outsourced to a spawned background thread with the intent that the available CPU cores are better utililized. + +{% include figure.md name='05-background_thread' caption='Background Thread executing Tasks' %} + +Since this is recognized as a successful idiom to solve performance problems of an application, it becomes easily the default way to solve such issues. + +{% include code.md name='05-background_worker' caption='Simplified Background Worker' %} + +Over time the application gets enhanced with more modules and plugins. When now for each of these the same idea was applied then the complete application uses a huge number threads. +An over subscription of threads is then easily the case. That means that more threads are used than CPU cores are available. So the kernel of the operating system has to constantly switch the threads between the available cores to prevent starvation of single threads. +Within such a switch - named context switch - the CPU registers, program counter and stack pointer of the old thread are saved and the ones from the new thread needs to be restored. This save and restore takes time that is lost for computational tasks of an application. Beside this the translation lookaside buffer (TLB) must be flushed and the page table of the next process is loaded. The flushing of the TLB causes that the memory access of the new thread is slower in the beginning. This causes an additional slow down. +So the goal has to be that the number of context switches is as low as possible. + +One way to archive this goal is to use a task system. A task system uses a set of threads, normally equal to the number of CPU cores and distributes the submitted tasks over the available threads. In case that more tasks are submitted than free threads are available then they are put into a queue and whenever one is done the next task is taken from the queue and executed. + +{% include figure.md name='05-simple_tasking_system' caption='Simple Tasking System' %} + +Since the number of threads is constant, ideally there is no need to perform any context switches. (Because of simplification the fact here is neglected that other system services have running threads as well.) So a task system within an application is an appropriate measure to reduce the number of context switches as long as all modules within it use the same instance of the task system. + +For illustrational purpose and understanding better the implications within such a task system, its code is developed in the following. + +The figure above shows that the task system consist out of a notification queue: + +{% include code.md name='05-notification_queue-1' caption='Notification Queue' %} + +This notification queue is build out of a `deque` of `std::function` with a `mutex` and a `condition_variable`. It has a pop operation which is just going to pull one item off of the queue. And it has a push operation to push one item into the queue and notify anybody who might be waiting on the queue. + +{% include code.md name='05-task_system-1' caption='Task System' %} + +The task system has a `count` member which contains the number of available cores. It has a vector of threads and the notification queue. The `run` function is the function that will be executed by the threads. In which it creates an empty function object and pops the function from the queue and executes it. +The constructor of the task system spins up one thread and binds it with a lambda against our run function. +When the task system gets destructed, it is necessasry to join all threads. The function that is used by the outside is `async`. It just takes a function and pushs it into the queue. +This system is so far very primitive. As well it would hang on destruction. The latter is corrected by the following additions: + +{% include code.md name='05-notification_queue-2' caption='Notification Queue With Termination Switch' %} + +{% include code.md name='05-task_system-2' caption='Non-blocking Task System on Destruction' %} + +So with the new `done` function the new member `_done` is set and the queue is notified about the change. In case the code is waiting in the pop function, it is woken up from the condition variable and it is checked if `_done` is set and then returned false. + +so how do you guys think this performs I already told you right right badly kind of barely get off the mark horrible why is this horrible makes a good example right it's easy to write nothing fundamentally wrong about it it's exactly this model right we've got a single Q and we've got a bunch of threads and they're banging on that Q okay and we've got locks understanding that I can transform those locks into a queue model doesn't help me because all I have is a Q it locks around it okay so I need to come up with a better way. + +{% include figure.md name='05-task_system_multiple_queues' caption='Task System with Multiple Notification Queues' %} + +{% include code.md name='05-notification_queue-3' caption='Notification Queue With Termination Switch' %} + +{% include code.md name='05-task_system-3' caption='Non-blocking Task System on Destruction' %} + +{% include figure.md name='05-task_system_task_stealing' caption='Task System with Task Stealing' %} + +okay so that's X so here is the common answer I put a Q on each thread that minimizes my contention okay so let's write that we can do this pretty quickly we're just going to have a vector of notification Q's we get to reuse or same notification q okay one for each thread so now our run is going to take an index into into which q it's actually bound against when we join now we need to tell all the Q's they're done next one and when we're going to do our push we're going to keep a little atomic index so we can be pushing from multiple threads and we're just going to keep incrementing it but then we're going to modulo it by our count and so we're just going to round-robin going through +pushing into into it there okay and if you notice that's unsigned so wrapping +around on that index is not a problem well-defined behavior on our overflow +it's a modulo arithmetic okay so how do you guys think we did on our speedometer twice as fast is it going to go half halfway up we're just going to go nobody so so I actually did profile all this code I wrote this all profiled it it's about ten times better okay barely get this movie okay so and we have two problems here one is is I can get a long-running task in one of my Q's and it can cause a bubble and I can have my other course sitting there idle okay so the other is is even in a fully loaded system I can end up with a fair amount of contention right where one of those mutexes blocks and that's you know upwards of a million cycles to do a full task switch right in overhead so having keeping one of those mutexes and actually having it locked kills performance okay so here's the next solution right called task stealing okay now there are lots of sophisticated algorithms that are heavily tuned for +doing task stealing but we're just going to code it very simply here and the idea with task stealing is is if your queue you being a thread is busy because +somebody's pushing in the other end okay ah or it's empty either you don't really care see if you can go pull something out to somebody else's queue +okay so let's do that so and we're going to take our pop and we're going to have tri pop here okay so our tri pop is going to take a tri lock on our mutex +okay so it's going to try to lock will either get the lock or not if we don't +get the lock we just return false okay or if the queue is empty we return false +by the way so we'll do that we're going to do the same thing on our push just for good measure okay so if I'm trying to push something into a queue and that queue is busy I shouldn't wait on it okay cause hold a mutex cause a whole process or cast square to even do a spin lock okay what I'm going to do is if it's busy I'm just going to return false okay couldn't push it okay so now our +caste system our constructor and destructor stay the same okay but when we do the run now what we're going to do is we're going to do try pop and we'll just run once round all the queues okay and then if we don't get anything once around then we'll just wait where we were okay now on the push side we'll spin around and it turns out on the push if all the cues are busy right right you have to push okay so so what are you going to do well you could just sit and wait on one cue but there's no guarantee that that's the first cue that frees up okay so it's actually better on the push to spin a little more okay so I've got a que there right right and there's a trade-off there you're you're improving overall throughput of the system versus sacrificing a single core to burn it in the spin loop so whether or not it's a win in your system depends on what the load is on your system okay whether or not you have that core to burn so but you can tune it quite a bit so now how do you think we did +okay so way better okay so we got way up into there now at this point we're about a hundred times better than when we started from Oracle's example code so +this is a pretty huge improvement okay now what I was benchmarking these at was +Apple's Grand Central Dispatch that's my one point oh right that's my mindful thing apples Grand Central Dispatch is a very nice piece of work if you actually go and read the code and it even has hooked into Lib colonel and the reason why it has looks into Lib colonel is because it understands when one task is blocked and how to go just ignore that task and go take care of other +things so you cannot match it with the primitives that you have in standard C++ +okay but we actually came within about 15% okay of it with some straightforward +code so that's pretty good + + + + + + + + + + + + + + + + + + + + + + + + +But as soon as each application on a system uses its own thread pool there is again the problem of over subscription. + +So the only solution to reduce the amount of context switches is that all application within a system use the same thread pool. Since an optimized thread pool needs knowledge about the locking state of a possible task within the thread pool to potentially spawn new threads to avoid dead locks this must be an operating system facility. MacOS and Windows provide here out of the box a thread pool through a low level API. + + + +### Problems of call backs +* Contra: Hard dto reason about the flow in the code +* Contra: Callback must be set beforehand, futures can be attached later +* Pro: Can be faster than futures because no overhead of shared state counter + + +#### Futures as abstraction + +Futures +Conceptually, a future is a way to separate the result of a function from the execution of the function. The task (the function packaged so it returns void) can be executed in a different context (the execution context is controlled by executors in some of the proposals) and the result will become available via the future. + +A future also serves as a handle to the associated task, and may provide some operation to control the task. + +The primary advantage of a future over a simple callback is that a callback requires you to provide the subsequent operation in advance. Where a future allows you to provide a continuation, via a then() member function, at some later point. This feature makes futures easier to compose, easier to integrate into an existing system, and more powerful as they can be stored and the continuation can be attached as the result of another action, later. However, this flexibility comes with inherent cost, it requires an atomic test when the continuation is attached to determine if the value is already available. Because of this cost, for many library operations it makes sense to provide a form taking a callback as well as one returning a future. Although at first glance it may appear that a callback from is easily adapted to a future form, that is not the case for reasons discussed below. + +#### Channels (or actors) as abstraction + + + + +### Motivation + +1st example export from ui with compression and possibility to cancel +2nd example export group of images with compression and possibility to cancel + +### Develop Solution + +1st solution Use futures +2nd solution Use channels + +### Conclusion + +[^cow_definition]: + Copy-on-write [https://en.wikipedia.org/wiki/Copy-on-write](https://en.wikipedia.org/wiki/Copy-on-write) + +[^cow]: + Copy-on-write implementation in stlab. [https://github.com/stlab/libraries/blob/develop/stlab/copy_on_write.hpp](https://github.com/stlab/libraries/blob/develop/stlab/copy_on_write.hpp) + +[^butenhof]: + Recursive mutexes by David Butenhof [http://zaval.org/resources/library/butenhof1.html](Recursive mutexes by David Butenhof) \ No newline at end of file diff --git a/better-code/05-concurrency.md.orig b/better-code/05-concurrency.md.orig new file mode 100644 index 0000000..76a6b9f --- /dev/null +++ b/better-code/05-concurrency.md.orig @@ -0,0 +1,271 @@ +--- +title: Concurrency +tagline: No Raw Synchronization Primitives + +layout: book-page +tags: [ better-code ] +--- + +### Motivation + +{::comment} +For this section I need to first provide motivation for concurrency, and define concurrency and parallelism. which are not commonly understood. Do I need to provide a motivation section for each chapter? +{:/comment} + +_Concurrency_ is when multiple tasks start, run, and complete in overlapping time periods and should not be confused with _parallelism_ which is when multiple tasks execute simultaneously. Parallelism requires some form of hardware support, where as concurrency can be achieved strictly through software, such as a cooperative tasking system. + +There are two primary benefits for concurrent code. The first is performance by enabling parallelism. The second is to improve interactivity by not blocking the user while a prior action is being processed. + +As clock rates on systems have stagnated, hardware developers have turned to parallelism to increase performance. Figure [xxx] shows the performance distribution on a typical desktop system. A single threaded, non-vectorized, application can only utilize about 0.25% of the performance capabilities of the machine. + +### Definition of _raw synchronization primitives_. + +A _raw synchronization primitive_ is a low level construct used to synchronize access to data. Examples include locks and mutexes, condition variables, semaphores, atomic operations, and memory fences. + +{::comment} Discuss difference between data parallelism and task concurrency, so far this chapter is only dealing with tasking. However, it could be expanded upon. {:/comment} + +The goal of this chapter is to develop concurrent code without using raw synchronization primitives. + +The first problem with raw synchronization primitives are that they are exceedingly error prone to use because, by definition, they require reasoning about non-local effects. + +For example, [xxxx] is a snippet from a copy-on-write datatype, this is a simplified version of code from a shipping system. + +{::comment} +Insert bad cow example here. Can this example be simplified even more? Remove the template and make it a string? +{:/comment} + +The highlighted lines {::comment} how? {:/comment} contain a subtle race condition. The `if` statement is checking the value of an atomic count to see if it is `1`. The `else` statement handles the case where it is not 1. Within the else statement the count is decremented. The problem is that if decrementing the count results in a value of `0` then the object stored in `object_m` should be deleted. The code fails to check for this case, and so an object may be leaked. + +The initial test to see if the count was `1` isn't sufficient, between that check and when the count is decremented another thread may have released ownership and decremented the count leaving this object instance as the sole owner. + +The fix is to test atomically with the decrement, the correct code is shown in [xxxx]. + +Another problem with raw synchronization primitives is that their use can have a large negative impact on system performance. To understand why, we need to understand Amdahl's Law. + +<<<<<<< Updated upstream +The intuition behind Amdahl's Law is that if part of system takes time x to complete, + +{::comment} +Math experiment for Fibonacci matrix. +{:/comment} +$$ +\begin{align*} + \left[ \begin{array}{cc} + 1 & 1 \\ + 1 & 0 + \end{array} \right]^{n} = + \left[ \begin{array}{cc} + F_{n+1} & F_n \\ + F_n & F_{n-1} + \end{array} \right] +\end{align*} +$$ +======= +The intuition behind Amdahl's Law is that if a part of system takes time x to complete on a single core or processor, then it will encounter a speedup of y if it is run on y cores, but only if no synchronization takes places between the different cores or processors. +$$S(N) = \frac{1}{(1-P)+\frac{P}{N}}$$ +Where the speedup $$S$$ is defined by this equation. $$P$$ is hereby the amount of synchronization in the range of $$[0 .. 1]$$ and $$N$$ the number of cores or processors. + +Drawing the abscissa in logarithmic scale illustrates that there is only a speedup of 20 times, even when the system is running on 2048 or more cores and just 5% synchronization takes place. + +{::comment} Convert/Create new SVG image +{% include figure.md name='amdahl_log' caption="Amdahl's Law logarithmic scale" %} +{::/comment} + +![Amdahl's Law](figures/amdahl_log.png){:height="40%" width="40%"} +Amdahl's Law Logarithmic Scale + +Since most desktop or mobile processors have less than 64 cores, it is better to take a look at the graph with linear scale. Each line below the diagonal represents 10% more of serialisation. So if the application just has 10% of serialisation and it is running on 16 cores then the speed-up is just a little better than factor of six. + +{::comment} Convert/Create new SVG image +{% include figure.md name='amdahl_lin' caption="Amdahl's Law linear scale" %} +{::/comment} +![Amdahl's Law](figures/amdahl_lin.png){:height="40%" width="40%"} +Amdahl's Law Linear Scale + +So Amdahl's law has a huge impact. Serialization doesn't mean only locking on a mutex. Serialization can mean sharing the same memory or sharing the same address bus for the memory, if it is not a NUMA architecture. Sharing the same cache line or anything that is shared within the processor starts to bend that curve down and it bends down rapidly, even an atomic bends that curve down. + +An often used model for implementing exclusive access to an object by multiple threads is this: + +{% include figure.md name='05-traditional_locking' caption="Exclusive access by different threads" %} + +As long as one thread has exclusive access to the object all other threads have to wait until they get the access right. + +This is a horrible way to think about threading. The goal has to be to minimize waiting at all costs. David Butenhof, one of the POSIX implementors, coined the phrase that mutex should be better named bottleneck, because of the property of slowing down an application[^butenhof]. + +In the following, let's take a look at a traditional piece of code: + +{% include code.md name='05-registry-0' caption='Registry Example' %} + +It is a registry class with a shared `set` and `get` function. The access to the underlying unordered map is protected against concurrent access with a mutex. At the first glance it seems that only minimal work is done under the mutex. The unordered map is a fairly efficient data structure, it is a hash map. But the amount of time it takes to hash the key depends on the length of the string. So the work that is being done under the lock here is actually fairly unbounded. It depends completely on the lengths of the string. It may be probably typically small but it could be big. On top of the hash calculation comes a potentially allocation of a new bucket within the unordered map, which in most cases requires another lock within the memory manager. This lock can be, depending on the operating system, a global lock within the process. + +For a better understanding what shall be actually achieved by using the locks it is necessary to take step back. The C++ standard states here: _It can be shown that programs that correctly use mutexes and memory\_order\_seq\_cst operations to prevent all data races and use no other synchronization operations behave as if the operations executed by their constituent threads were simply interleaved, with each value computation of an object being taken from the last side effect on that object in that interleaving. This is normally referred to as ‘sequential consistency.’_, C++11 Standard 1.10.21. + +So why is this an important sentence? It means that one can always think about mutexes as if one has some set of interleaved operations. + +{% include figure.md name='05-sequential_operations' caption='Sequential Operations' %} + +* A mutex serializes a set of operations, $$Op_n$$, where the operation is the code executed while the mutex is locked +* Operations are interleaved and may be executed in any order and may be repeated +* Each operation takes an argument, $$x$$, which is the set of all objects mutated under all operations + * $$x$$ may not be safely read or written without holding the lock if it may be modified by a task holding the lock +* Each operation may yield a result, $$r_m$$, which can communicate information about the state of $$x$$ while it’s associated operation was executed +* The same is true of all atomic operations + +So there is not a lot of difference between an `std::atomic`. In fact there is a call on `std::atomic` that returns `true`, if it is lock free. This means the processor supports to do that as an atomic item within the processor or is there not processor support and the compiler has to generate a mutex pair to lock, make the change on the atomic operation, and do the unlock. So all that mutexes and locks are the way to construct atomic operations. + +That means that any piece of code that has a mutex can be transformed into a queued model. This idea applied to the registry example from above leads to this: + +{% include code.md name='05-registry-1' caption='registry with queue' %} + +Given that there is a serial queue `_q` with an `async` function which executes the passed item and it uses the same calling conventions as `std::async`. Hereby with the difference that it guarantees that the next item being processed in that queue doesn't start until the previous one is completed. Then one can rewrite the `set` string function to be executed with `_q.async`. +As well one can rewrite the `get` string operation. But here the difference is, that one needs the result back out, paired with that particular `get`. It is realized here with a future. (Futures will be covered later in more detail.) So the result of the `get` function, e.g. with a continuation, can be used whenever the `key` is hashed and and the lookup in the hash is completed. + +{% include code.md name='05-registry-2' caption='Enhanced Registry with Queue' %} + +Why is it important to understand this concept? Because at any place with a mutex in the code one can always make this transformation. One can always transform it into a serialized queue model. And this means that within the serialized queue model anytime somebody can come along and calls `set`, regardless of the amount of work that `set` takes, the time it takes for `set` to return back to the caller itself constant. This means as well that one can add something like an arbitrary `set`, e.g a whole vector of key value pairs. And to the caller this `set` will take just as much time as the previous `set`. It's a non blocking operation with an upper bound of overhead. + +### Definition of _raw threads_ + +A _thread_ is a execution environment consisting of a stack and processor state running in parallel to other threads. +A _task_ is a unit of work, often a function, to be executed on a thread. + +### Problems of _raw threads_ + +Another common scenario is that increased work within an application is outsourced to a spawned background thread with the intent that the available CPU cores are better utililized. + +{% include figure.md name='05-background_thread' caption='Background Thread executing Tasks' %} + +Since this is recognized as a successful idiom to solve performance problems of an application, it becomes easily the default way to solve such issues. + +{% include code.md name='05-background_worker' caption='Simplified Background Worker' %} + +Over time the application gets enhanced with more modules and plugins. When now for each of these the same idea was applied then the complete application uses a huge number threads. +An over subscription of threads is then easily the case. That means that more threads are used than CPU cores are available. So the kernel of the operating system has to constantly switch the threads between the available cores to prevent starvation of single threads. +Within such a switch - named context switch - the CPU registers, program counter and stack pointer of the old thread are saved and the ones from the new thread needs to be restored. This save and restore takes time that is lost for computational tasks of an application. Beside this the translation lookaside buffer (TLB) must be flushed and the page table of the next process is loaded. The flushing of the TLB causes that the memory access of the new thread is slower in the beginning. This causes an additional slow down. +So the goal has to be that the number of context switches is as low as possible. + +One way to archive this goal is to use a task system. A task system uses a set of threads, normally equal to the number of CPU cores and distributes the submitted tasks over the available threads. In case that more tasks are submitted than free threads are available then they are put into a queue and whenever one is done the next task is taken from the queue and executed. + +{% include figure.md name='05-simple_tasking_system' caption='Simple Tasking System' %} + +Since the number of threads is constant, ideally there is no need to perform any context switches. (Because of simplification the fact here is neglected that other system services have running threads as well.) So a task system within an application is an appropriate measure to reduce the number of context switches as long as all modules within it use the same instance of the task system. + +For illustrational purpose and understanding better the implications within such a task system, its code is developed in the following. + +The figure above shows that the task system consist out of a notification queue: + +{% include code.md name='05-notification_queue-1' caption='Notification Queue' %} + +This notification queue is build out of a `deque` of `std::function` with a `mutex` and a `condition_variable`. It has a pop operation which is just going to pull one item off of the queue. And it has a push operation to push one item into the queue and notify anybody who might be waiting on the queue. + +{% include code.md name='05-task_system-1' caption='Task System' %} + +The task system has a `count` member which contains the number of available cores. It has a vector of threads and the notification queue. The `run` function is the function that will be executed by the threads. In which it creates an empty function object and pops the function from the queue and executes it. +The constructor of the task system spins up one thread and binds it with a lambda against our run function. +When the task system gets destructed, it is necessasry to join all threads. The function that is used by the outside is `async`. It just takes a function and pushs it into the queue. +This system is so far very primitive. As well it would hang on destruction. The latter is corrected by the following additions: + +{% include code.md name='05-notification_queue-2' caption='Notification Queue With Termination Switch' %} + +{% include code.md name='05-task_system-2' caption='Non-blocking Task System on Destruction' %} + +So with the new `done` function the new member `_done` is set and the queue is notified about the change. In case the code is waiting in the pop function, it is woken up from the condition variable and it is checked if `_done` is set and then returned false. + +so how do you guys think this performs I already told you right right badly kind of barely get off the mark horrible why is this horrible makes a good example right it's easy to write nothing fundamentally wrong about it it's exactly this model right we've got a single Q and we've got a bunch of threads and they're banging on that Q okay and we've got locks understanding that I can transform those locks into a queue model doesn't help me because all I have is a Q it locks around it okay so I need to come up with a better way. + +{% include figure.md name='05-task_system_multiple_queues' caption='Task System with Multiple Notification Queues' %} + +{% include code.md name='05-notification_queue-3' caption='Notification Queue With Termination Switch' %} + +{% include code.md name='05-task_system-3' caption='Non-blocking Task System on Destruction' %} + +{% include figure.md name='05-task_system_task_stealing' caption='Task System with Task Stealing' %} + +okay so that's X so here is the common answer I put a Q on each thread that minimizes my contention okay so let's write that we can do this pretty quickly we're just going to have a vector of notification Q's we get to reuse or same notification q okay one for each thread so now our run is going to take an index into into which q it's actually bound against when we join now we need to tell all the Q's they're done next one and when we're going to do our push we're going to keep a little atomic index so we can be pushing from multiple threads and we're just going to keep incrementing it but then we're going to modulo it by our count and so we're just going to round-robin going through +pushing into into it there okay and if you notice that's unsigned so wrapping +around on that index is not a problem well-defined behavior on our overflow +it's a modulo arithmetic okay so how do you guys think we did on our speedometer twice as fast is it going to go half halfway up we're just going to go nobody so so I actually did profile all this code I wrote this all profiled it it's about ten times better okay barely get this movie okay so and we have two problems here one is is I can get a long-running task in one of my Q's and it can cause a bubble and I can have my other course sitting there idle okay so the other is is even in a fully loaded system I can end up with a fair amount of contention right where one of those mutexes blocks and that's you know upwards of a million cycles to do a full task switch right in overhead so having keeping one of those mutexes and actually having it locked kills performance okay so here's the next solution right called task stealing okay now there are lots of sophisticated algorithms that are heavily tuned for +doing task stealing but we're just going to code it very simply here and the idea with task stealing is is if your queue you being a thread is busy because +somebody's pushing in the other end okay ah or it's empty either you don't really care see if you can go pull something out to somebody else's queue +okay so let's do that so and we're going to take our pop and we're going to have tri pop here okay so our tri pop is going to take a tri lock on our mutex +okay so it's going to try to lock will either get the lock or not if we don't +get the lock we just return false okay or if the queue is empty we return false +by the way so we'll do that we're going to do the same thing on our push just for good measure okay so if I'm trying to push something into a queue and that queue is busy I shouldn't wait on it okay cause hold a mutex cause a whole process or cast square to even do a spin lock okay what I'm going to do is if it's busy I'm just going to return false okay couldn't push it okay so now our +caste system our constructor and destructor stay the same okay but when we do the run now what we're going to do is we're going to do try pop and we'll just run once round all the queues okay and then if we don't get anything once around then we'll just wait where we were okay now on the push side we'll spin around and it turns out on the push if all the cues are busy right right you have to push okay so so what are you going to do well you could just sit and wait on one cue but there's no guarantee that that's the first cue that frees up okay so it's actually better on the push to spin a little more okay so I've got a que there right right and there's a trade-off there you're you're improving overall throughput of the system versus sacrificing a single core to burn it in the spin loop so whether or not it's a win in your system depends on what the load is on your system okay whether or not you have that core to burn so but you can tune it quite a bit so now how do you think we did +okay so way better okay so we got way up into there now at this point we're about a hundred times better than when we started from Oracle's example code so +this is a pretty huge improvement okay now what I was benchmarking these at was +Apple's Grand Central Dispatch that's my one point oh right that's my mindful thing apples Grand Central Dispatch is a very nice piece of work if you actually go and read the code and it even has hooked into Lib colonel and the reason why it has looks into Lib colonel is because it understands when one task is blocked and how to go just ignore that task and go take care of other +things so you cannot match it with the primitives that you have in standard C++ +okay but we actually came within about 15% okay of it with some straightforward +code so that's pretty good + + + + + + + + + + + + + + + + + + + + + + + + +But as soon as each application on a system uses its own thread pool there is again the problem of over subscription. + +So the only solution to reduce the amount of context switches is that all application within a system use the same thread pool. Since an optimized thread pool needs knowledge about the locking state of a possible task within the thread pool to potentially spawn new threads to avoid dead locks this must be an operating system facility. MacOS and Windows provide here out of the box a thread pool through a low level API. + + + +### Problems of call backs +* Contra: Hard dto reason about the flow in the code +* Contra: Callback must be set beforehand, futures can be attached later +* Pro: Can be faster than futures because no overhead of shared state counter + + +#### Futures as abstraction + +Futures +Conceptually, a future is a way to separate the result of a function from the execution of the function. The task (the function packaged so it returns void) can be executed in a different context (the execution context is controlled by executors in some of the proposals) and the result will become available via the future. + +A future also serves as a handle to the associated task, and may provide some operation to control the task. + +The primary advantage of a future over a simple callback is that a callback requires you to provide the subsequent operation in advance. Where a future allows you to provide a continuation, via a then() member function, at some later point. This feature makes futures easier to compose, easier to integrate into an existing system, and more powerful as they can be stored and the continuation can be attached as the result of another action, later. However, this flexibility comes with inherent cost, it requires an atomic test when the continuation is attached to determine if the value is already available. Because of this cost, for many library operations it makes sense to provide a form taking a callback as well as one returning a future. Although at first glance it may appear that a callback from is easily adapted to a future form, that is not the case for reasons discussed below. + +#### Channels (or actors) as abstraction + + + + +### Motivation + +1st example export from ui with compression and possibility to cancel +2nd example export group of images with compression and possibility to cancel + +### Develop Solution + +1st solution Use futures +2nd solution Use channels + +### Conclusion + +[^cow_definition]: + Copy-on-write [https://en.wikipedia.org/wiki/Copy-on-write](https://en.wikipedia.org/wiki/Copy-on-write) + +[^cow]: + Copy-on-write implementation in stlab. [https://github.com/stlab/libraries/blob/develop/stlab/copy_on_write.hpp](https://github.com/stlab/libraries/blob/develop/stlab/copy_on_write.hpp) + +[^butenhof]: + Recursive mutexes by David Butenhof [http://zaval.org/resources/library/butenhof1.html](Recursive mutexes by David Butenhof) +>>>>>>> Stashed changes diff --git a/better-code/code/05-background_worker.cpp b/better-code/code/05-background_worker.cpp new file mode 100644 index 0000000..f364c18 --- /dev/null +++ b/better-code/code/05-background_worker.cpp @@ -0,0 +1,47 @@ +using lock_t = unique_lock; + +class background_worker +{ + thread _thread; + queue> _queue; + mutex _mutex; + condition_variable _cv; + bool _done; + +public: + background_worker() { + auto worker = [this] { + while (true) { + function task; + { + lock_t lock{ _mutex }; + while (!_done && _queue.empty()) _cv.wait(lock); + if (_done) return; + if (!_queue.empty()) { + task = move(_queue.front()); + _queue.pop(); + } + } + if (task) task(); + } + }; + _thread = thread(worker); + } + + ~background_worker() { + { + lock_t lock{_mutex}; + _done = true; + } + _cv.notify_one(); + _thread.join(); + } + + void submit_task(function task) { + { + lock_t lock{_mutex}; + _queue.emplace(move(task)); + } + _cv.notify_one(); + } +}; diff --git a/better-code/code/05-bad_cow.cpp b/better-code/code/05-bad_cow.cpp new file mode 100644 index 0000000..075eacd --- /dev/null +++ b/better-code/code/05-bad_cow.cpp @@ -0,0 +1,26 @@ +template +class bad_cow +{ + struct object_t + { + explicit object_t(const T& x) : _data(x) {} + atomic _count{1}; + T _data; + }; + object_t* _object; + + public: + explicit bad_cow(const T& x) : _object(new object_t(x)) { } + ~bad_cow() { if (0 == --_object->_count) delete _object; } + bad_cow(const bad_cow& x) : _object(x._object) { ++_object->_count; } + + bad_cow& operator=(const T& x) { + if (_object->_count == 1) _object->_data = x; + else { + object_t* tmp = new object_t(x); + --_object->_count; + _object = tmp; + } + return *this; + } +}; diff --git a/better-code/code/05-bad_cow.cpp.orig b/better-code/code/05-bad_cow.cpp.orig new file mode 100644 index 0000000..075eacd --- /dev/null +++ b/better-code/code/05-bad_cow.cpp.orig @@ -0,0 +1,26 @@ +template +class bad_cow +{ + struct object_t + { + explicit object_t(const T& x) : _data(x) {} + atomic _count{1}; + T _data; + }; + object_t* _object; + + public: + explicit bad_cow(const T& x) : _object(new object_t(x)) { } + ~bad_cow() { if (0 == --_object->_count) delete _object; } + bad_cow(const bad_cow& x) : _object(x._object) { ++_object->_count; } + + bad_cow& operator=(const T& x) { + if (_object->_count == 1) _object->_data = x; + else { + object_t* tmp = new object_t(x); + --_object->_count; + _object = tmp; + } + return *this; + } +}; diff --git a/better-code/code/05-correct_cow.cpp b/better-code/code/05-correct_cow.cpp new file mode 100644 index 0000000..9e8878d --- /dev/null +++ b/better-code/code/05-correct_cow.cpp @@ -0,0 +1,26 @@ +template +class correct_cow +{ + struct object_t + { + explicit object_t(const T& x) : _data(x) {} + atomic _count{1}; + T _data; + }; + object_t* _object; + + public: + explicit correct_cow(const T& x) : _object(new object_t(x)) { } + ~correct_cow() { if (0 == --_object->_count) delete _object; } + correct_cow(const correct_cow& x) : _object(x._object) { ++_object->_count; } + + correct_cow& operator=(const T& x) { + if (_object->_count == 1) _object->_data = x; + else { + object_t* tmp = new object_t(x); + if (0 == --_object->_count) delete _object; + _object = tmp; + } + return *this; + } +}; diff --git a/better-code/code/05-correct_cow.cpp.orig b/better-code/code/05-correct_cow.cpp.orig new file mode 100644 index 0000000..9e8878d --- /dev/null +++ b/better-code/code/05-correct_cow.cpp.orig @@ -0,0 +1,26 @@ +template +class correct_cow +{ + struct object_t + { + explicit object_t(const T& x) : _data(x) {} + atomic _count{1}; + T _data; + }; + object_t* _object; + + public: + explicit correct_cow(const T& x) : _object(new object_t(x)) { } + ~correct_cow() { if (0 == --_object->_count) delete _object; } + correct_cow(const correct_cow& x) : _object(x._object) { ++_object->_count; } + + correct_cow& operator=(const T& x) { + if (_object->_count == 1) _object->_data = x; + else { + object_t* tmp = new object_t(x); + if (0 == --_object->_count) delete _object; + _object = tmp; + } + return *this; + } +}; diff --git a/better-code/code/05-notification_queue-1.cpp b/better-code/code/05-notification_queue-1.cpp new file mode 100644 index 0000000..7884242 --- /dev/null +++ b/better-code/code/05-notification_queue-1.cpp @@ -0,0 +1,27 @@ +using lock_t = unique_lock; + +class notification_queue { + deque> _q; + mutex _mutex; + condition_variable _ready; + +public: + void pop(function& x) { + lock_t lock{_mutex}; + + while (_q.empty()) _ready.wait(lock); + + x = move(_q.front()); + _q.pop_front(); + } + + template + void push(F&& f) { + { + lock_t lock{_mutex}; + _q.emplace_back(forward(f)); + } + _ready.notify_one(); + } +}; + diff --git a/better-code/code/05-notification_queue-2.cpp b/better-code/code/05-notification_queue-2.cpp new file mode 100644 index 0000000..e0865c0 --- /dev/null +++ b/better-code/code/05-notification_queue-2.cpp @@ -0,0 +1,30 @@ +class notification_queue +{ + deque> _q; + bool _done{false}; + mutex _mutex; + condition_variable _ready; + + public: + void done() { + { + lock_t lock{_mutex}; + _done = true; + } + _ready.notify_all(); + } + + bool pop(function& x) { + lock_t lock{_mutex}; + + while (_q.empty() && !_done) _ready.wait(lock); + + if (_q.empty()) return false; + + x = move(_q.front()); + _q.pop_front(); + return true; + } + + ... +}; diff --git a/better-code/code/05-notification_queue-3.cpp b/better-code/code/05-notification_queue-3.cpp new file mode 100644 index 0000000..168e039 --- /dev/null +++ b/better-code/code/05-notification_queue-3.cpp @@ -0,0 +1,52 @@ +class notification_queue { + deque> _q; + bool _done{false}; + mutex _mutex; + condition_variable _ready; + + public: + bool try_pop(function& x) { + lock_t lock{_mutex, try_to_lock}; + if (!lock || _q.empty()) return false; + x = move(_q.front()); + _q.pop_front(); + return true; + } + + template + bool try_push(F&& f) { + { + lock_t lock{_mutex, try_to_lock}; + if (!lock) return false; + _q.emplace_back(forward(f)); + } + _ready.notify_one(); + return true; + } + + void done() { + { + unique_lock lock{_mutex}; + _done = true; + } + _ready.notify_all(); + } + + bool pop(function& x) { + lock_t lock{_mutex}; + while (_q.empty() && !_done) _ready.wait(lock); + if (_q.empty()) return false; + x = move(_q.front()); + _q.pop_front(); + return true; + } + + template + void push(F&& f) { + { + lock_t lock{_mutex}; + _q.emplace_back(forward(f)); + } + _ready.notify_one(); + } +}; diff --git a/better-code/code/05-registry-0.cpp b/better-code/code/05-registry-0.cpp new file mode 100644 index 0000000..053a1a3 --- /dev/null +++ b/better-code/code/05-registry-0.cpp @@ -0,0 +1,15 @@ +class registry +{ + mutex _mutex; + unordered_map _map; + public: + void set(string key, string value) { + unique_lock lock{mutex}; + _map.emplace(move(key), move(value)); + } + + auto get(const string& key) -> string { + unique_lock lock{mutex}; + return _map.at(key); + } +}; diff --git a/better-code/code/05-registry-0.cpp.orig b/better-code/code/05-registry-0.cpp.orig new file mode 100644 index 0000000..053a1a3 --- /dev/null +++ b/better-code/code/05-registry-0.cpp.orig @@ -0,0 +1,15 @@ +class registry +{ + mutex _mutex; + unordered_map _map; + public: + void set(string key, string value) { + unique_lock lock{mutex}; + _map.emplace(move(key), move(value)); + } + + auto get(const string& key) -> string { + unique_lock lock{mutex}; + return _map.at(key); + } +}; diff --git a/better-code/code/05-registry-1.cpp b/better-code/code/05-registry-1.cpp new file mode 100644 index 0000000..4fb299d --- /dev/null +++ b/better-code/code/05-registry-1.cpp @@ -0,0 +1,20 @@ +class registry +{ + serial_queue _q; + + using map_t = unordered_map; + + shared_ptr _map = make_shared(); +public: + void set(string key, string value) { + _q.async([_map = _map](string key, string value) { + _map->emplace(move(key), move(value)); + }, move(key), move(value)); + } + + auto get(string key) -> future { + return _q.async([_map = _map](string key) { + return _map->at(key); + }, move(key)); + } +}; diff --git a/better-code/code/05-registry-1.cpp.orig b/better-code/code/05-registry-1.cpp.orig new file mode 100644 index 0000000..4fb299d --- /dev/null +++ b/better-code/code/05-registry-1.cpp.orig @@ -0,0 +1,20 @@ +class registry +{ + serial_queue _q; + + using map_t = unordered_map; + + shared_ptr _map = make_shared(); +public: + void set(string key, string value) { + _q.async([_map = _map](string key, string value) { + _map->emplace(move(key), move(value)); + }, move(key), move(value)); + } + + auto get(string key) -> future { + return _q.async([_map = _map](string key) { + return _map->at(key); + }, move(key)); + } +}; diff --git a/better-code/code/05-registry-2.cpp b/better-code/code/05-registry-2.cpp new file mode 100644 index 0000000..491c834 --- /dev/null +++ b/better-code/code/05-registry-2.cpp @@ -0,0 +1,29 @@ +class registry +{ + serial_queue _q; + + using map_t = unordered_map; + + shared_ptr _map = make_shared(); +public: + void set(string key, string value) { + _q.async([_map = _map](string key, string value) { + _map->emplace(move(key), move(value)); + }, move(key), move(value)); + } + + void set(vector> sequence) { + _q.async([_map = _map](vector> sequence) { + _map->insert( + make_move_iterator(begin(sequence)), + make_move_iterator(end(sequence)) + ); + }, move(sequence)); + } + + auto get(string key) -> future { + return _q.async([_map = _map](string key) { + return _map->at(key); + }, move(key)); + } +}; diff --git a/better-code/code/05-registry-2.cpp.orig b/better-code/code/05-registry-2.cpp.orig new file mode 100644 index 0000000..491c834 --- /dev/null +++ b/better-code/code/05-registry-2.cpp.orig @@ -0,0 +1,29 @@ +class registry +{ + serial_queue _q; + + using map_t = unordered_map; + + shared_ptr _map = make_shared(); +public: + void set(string key, string value) { + _q.async([_map = _map](string key, string value) { + _map->emplace(move(key), move(value)); + }, move(key), move(value)); + } + + void set(vector> sequence) { + _q.async([_map = _map](vector> sequence) { + _map->insert( + make_move_iterator(begin(sequence)), + make_move_iterator(end(sequence)) + ); + }, move(sequence)); + } + + auto get(string key) -> future { + return _q.async([_map = _map](string key) { + return _map->at(key); + }, move(key)); + } +}; diff --git a/better-code/code/05-task_system-1.cpp b/better-code/code/05-task_system-1.cpp new file mode 100644 index 0000000..c5d0d10 --- /dev/null +++ b/better-code/code/05-task_system-1.cpp @@ -0,0 +1,30 @@ +class task_system +{ + const unsigned _count{thread::hardware_concurrency()}; + vector _threads; + notification_queue _q; + + void run(unsigned i) { + while (true) { + function f; + _q.pop(f); + f(); + } + } + +public: + task_system() { + for (unsigned n = 0; n != _count; ++n) { + _threads.emplace_back([&, n]{ run(n); }); + } + } + + ~task_system() { + for (auto& e : _threads) e.join(); + } + + template + void async(F&& f) { + _q.push(forward(f)); + } +}; diff --git a/better-code/code/05-task_system-2.cpp b/better-code/code/05-task_system-2.cpp new file mode 100644 index 0000000..279b501 --- /dev/null +++ b/better-code/code/05-task_system-2.cpp @@ -0,0 +1,9 @@ +class task_system { + + public: + ~task_system() { + for (auto& e : _q) e.done(); + for (auto& e : _threads) e.join(); + } + +}; diff --git a/better-code/code/05-task_system-3.cpp b/better-code/code/05-task_system-3.cpp new file mode 100644 index 0000000..fc54fdc --- /dev/null +++ b/better-code/code/05-task_system-3.cpp @@ -0,0 +1,28 @@ +class task_system { + const unsigned _count{thread::hardware_concurrency()}; + vector _threads; + vector _q{_count}; + atomic _index{0}; + + void run(unsigned i) { + while (true) { + function f; + if (!_q[i].pop(f)) break; + f(); + } + } + + public: + task_system() { } + + ~task_system() { + for (auto& e : _q) e.done(); + for (auto& e : _threads) e.join(); + } + + template + void async_(F&& f) { + auto i = _index++; + _q[i % _count].push(forward(f)); + } +}; diff --git a/better-code/code/05-task_system-4.cpp b/better-code/code/05-task_system-4.cpp new file mode 100644 index 0000000..dca6988 --- /dev/null +++ b/better-code/code/05-task_system-4.cpp @@ -0,0 +1,29 @@ + void run(unsigned i) { + while (true) { + function f; + + for (unsigned n = 0; n != _count; ++n) { + if (_q[(i + n) % _count].try_pop(f)) break; + } + if (!f && !_q[i].pop(f)) break; + + f(); + } + } + + public: + task_system() { } + + ~task_system() { } + + template + void async_(F&& f) { + auto i = _index++; + + for (unsigned n = 0; n != _count * K; ++n) { + if (_q[(i + n) % _count].try_push(forward(f))) return; + } + + _q[i % _count].push(forward(f)); + } +}; diff --git a/better-code/concurrency_talk.md b/better-code/concurrency_talk.md new file mode 100644 index 0000000..1861a01 --- /dev/null +++ b/better-code/concurrency_talk.md @@ -0,0 +1,781 @@ +I'm Shawn parent for anybody who wasn't at my previous talk I'm a principal scientist at Adobe. I've had a number of roles they're good at Adobe now about 22 years depending on how you count because I was there 15 years and then I went to Google for about a year and then back to Adobe. I started my career at Adobe on the Photoshop team and later I ran Adobe's software technology lab that was a research group that spun out of our technology group. I ran that group for about eight years and now I'm actually back working with Photoshop team again so I've had a number of roles. + +I mentioned this before - a few years back I gave a talk at going native conference called C++ seasoning and and it was well-received and I got a lot of requests to write a book and so since then whenever I get asked to give a talk I try to flesh out a chapter of the book so this is kind of +my working outlines you see for each +chapter here I've got a goal most of the +goals I need to redo the first one now +that one's also stated in the negative +are stated as a negative as far as their +what not to do and there's a reason +there the the word goal was chosen very +carefully because what I talked about is +is not prescriptive things they're not +rules they're things to strive for but +they can be difficult especially when +you're dealing with a large system to +achieve these goals so they're not rules +are not guidelines they're not things +that should be held up in a code review +or people that John said don't do that +what Sean said is think about that +really hard and and the reason the other +reason why they're stated as a negative +is because I can't give you all the +answers as to as to what the +alternatives are so these are things +things to try to avoid and I'll talk +some about better in different ways but +sometimes it just requires more thought +so these are all tend to be open-ended +problems + +so today we're talking about concurrency. +Alright some common themes in all my talks are our that they're all about managing relationships and what I mean about that is relationships between components and software understanding the fundamentals which i think is incredibly important. Learning how to write simple code and learning how to how to reason about code through local and equational reasoning. So local reasoning means that just looking at a piece of code you can reason about it without having to understand the whole system. And equational reasoning means that you can you can describe what something is in terms of something else a is equal to B right a plus B is equal to C all right so you're able to go through those transformations now this talk started because I was working on what became this product right here. + +This is Lightroom for web and and this is the complete Lightroom rendering engine running inside of the Safari browser with no plugins okay so for people who don't know Lightroom is a product that adobe ships that professional photography rendering engine and it's a parametric model so it's a non-destructive model you you edit your image and you can come back later and change your edit and read just it so to make this work over the web means that we had to have full parity with the desktop rendering engine okay and this is a piece of code now that's a decade old and heavily tuned on the desktop. To give you some idea this is a woman in the London subway and as the train was pulling up. I glanced backwards and snap the photo and so that's the the unedited photo and that's what it looks like edited. So this was a big problem taking a 10 year old codebase that's heavily threaded getting it to compile with the emscripten compiler which is a compiler that Mozilla puts out to compile C++ code into JavaScript removing all of the need for threading in it because in JavaScript you have no threads you have web workers which is the equivalent of having separate processes but you don't have threads and getting the code to run well and to behave in an interactive fashion so that was the challenge so this got me thinking really really hard about concurrency and the reason why I got me thinking is because going forward this code base needs to be shared so I needed to leave the system in a state where we had a code base that developers could work on that would continue to run in run performant in a heavily multi-threaded environment and the same code would run very well when you had no threads right so I had to think about what is the actual programming model for how you write threaded code. + +So first some definitions here right concurrency is when tasks start run and complete in overlapping time periods where parallelism is when two or more tasks execute simultaneously right so on a single threaded system you can have concurrency and you can have threads and it just means things are time sliced okay but parallelism is when you have multiple cores right or something like a sim decore where you can do multiple things at the same time now the reason why we want concurrency is because concurrency is our first building block to enable parallelism right right +if I can't run run with multiple threads on a single core then I certainly can't run with multiple threads with multi-core the other reason why we want concurrency is because it improves interactivity right in the previous thing there right when I'm sliding my my slider I'm receiving user events coming in and I'm updating frames and if every time I update a frame. if that slider stops that the users sliding that makes for a pretty at the user experience right so we want to be able to slice things up so that we give give good interactivity down goal. +for this talk is no raw synchronization primitives so what are raw synchronization primitives? well there's these things they're mutexes there are atomics a lot of people don't don't like me putting Atomics on this this list but they're certainly Atomics and i'll explain more about that later but things like semaphores memory fences and conditional condition variables okay the number one reason why you don't want to use these things is you'll likely get them wrong. + +How do I know that? Because I've been doing this a very long time and I still get them wrong. So here is a class that I wrote once upon a time its renamed it's the copy-on-write class and it's abbreviated here. It's renamed as bad cow and the reason why I renamed it is because giving this as a as an example of a bug then somebody immediately when it was just named copy-on-write. somebody immediately copy and pasted the code from my slides and put it into a working system. so not actually looking at the rest of my presentation where I showed the bug so who can find the bug in this code. I'll even help you the bug is between those two lines does anybody see what's wrong here? time of check and time of use problem absolutely okay so and I'm using an atomic here right so what happens is. I check to see is my count equal to 1 what a count of one would mean is that this object is the sole owner of some shared data. if this object is the sole owner of some shared data then I know that it's safe to assign directly into it. If it's not one, then I need to make a copy here. this is my copy on write. When I make the copy then I need to to decrement the count of over this one here okay so so what's the problem? The problem is if I wasn't the sole owner on the first check then by the time the second check comes around I might be the sole owner and if now at the second at that decrement if I am the sole owner it's my responsibility to free the shared state okay and I'm not doing that here right so the six is when I do the decrement I have to say okay when I do this decrement was I the sole owner and now my count went to zero and if so delete the object. + +So this piece of code shipped in a running system and probably ran for something like five years okay and it wasn't that bad right you have a very short window there where you do that new where somebody else can release ownership and if they do then you'll leak one block okay okay but it was very vexing because occasionally we would see these blocks leak and couldn't figure out why or where they were coming from okay even with these slides I've given this talk now a couple times I've received five email messages where people tell me my fix is is wrong okay it is correct I'm quite convinced I can write the proof fix is correct the five people who wrote to me all what they believe is a bug all boils down to to one of two things in those five emails one is they assume that my bad count implementation is an atomic type it is not an atomic type right right if it were an atomic type then when I was sole ownership somebody else could come along and and claim ownership of it okay so the account could go up it's not an atomic type in that a copy-on-write integer is just as thread-safe as an integer right it just means that I can have separate threads each with their own instances with shared data okay but I can't share a single instance of the cow right the cow refers to share data. + +The other thing is people don't understand what - minus X does on an atomic and that's that it's an equivalent of effect such subtract of an atomic such a subtract which means the subtraction and the fetch of the value happen is a single atomic operation and sometimes people think that. Because I'm doing the -- and then my compare that between the subtraction and the compare something could go wrong nobody caught. I fixed it in the previous slide that my count was uninitialized. Neither did I so neither did the compiler which Frost's me so originally when I wrote the code. it was in a working system. I didn't have this problem and it's because I wasn't using SPD Atomics because the code long predates STD Atomics. I was using a Atomics with different behavior but an STD atomic of an int if you just default construct it right without giving it any value is an uninitialized variable just like an INT is okay so I actually introduced a bug and nobody caught that. + +Even atomics can be very difficult to reason about why do we want performance through parallelism. + + +This is a slide that one of my colleagues Russell Williams on the Photoshop team put together awhile ago but it's very true today so this is your typical desktop computer right and this is looking at where the nips are where the gigaflops in a desktop computer okay that's the bar that's the GPU right right so so this is looking at an AMD Radeon which is a little outdated that bar these days is getting bigger if you're running on mobile it's a little bit smaller okay to get into that you need to get into OpenGL OpenCL cuda direct compute c++ am DirectX metal pick your thing all of those things tend to be C or C++ derived programming environments with constraints tailored towards parallelism okay that's how much of your performance is in the vectorization unit on the machine okay so to get to that you're going to have to be writing with Auto vectorization or like the Intel compiler we'll just some degree of that but you have to know how to structure your code to utilize it OpenCL can target it or your writing with intrinsics which is where most people end up if you want to unlock multi-core as of C++ 11 we actually at least have a threading model there that's how much of your processor is tied up with multi-core and if you're talking about just one core the scalar unit that's the slice right there that's what most people think of a straight C++ and if you're writing in JavaScript or Java or something like else something else divide that by a factor of 2 to 5 these days okay so that red line at the +end there is point 0 to 5 percent of the performance of your machine + +okay now this is Armdahl's law Kevlin mentioned this in his last talks you were in here what AM does law says is is basically if some amount of your machine is serialized okay then you cannot accede to that in overall performance by adding parallelism okay so in this graph here you can see if the the Purple Line is at ninety percent so if just 10% of our app is serialized we can never perform better than 1010 X increase in performance because now that will be the bottleneck is that that cereal is serialized piece okay but the interesting thing about this graph is that you don't hit something approximating that 10x speed up until you get out to a thousand cores okay the bottom scale on this thing is logarithmic where the top scale is linear and I hate the graph for that reason I think this is a very misleading graph okay so but this is what you'll find on Wikipedia or in most textbooks is people draw the graph this way because otherwise you can't really see the shape of the curve okay but the more telling graph is to just look on linear scale down at the access so each line here represents just 10% of serialisation so if I just have 10% of my application that's serialized and I'm on 16 cores I'm only getting a little better than a 6x speed-up okay so Amdahl's law sucks right right it bites us okay and serialization doesn't mean locking on mutex utilization can just mean sharing the same memory right or sharing the same address bus for them for the memory if I don't have a Numa architecture okay or sharing the same cache line right anything that's shared within the processor starts to bend that curve down and it bends down rapidly any synchronization anatomic bends that curve down. + + + +most people think about threading at least most people you know coming from kind of a C or C++ background in this horrible way they say I've got this object that I'm sharing and I got a bunch of threads that are banging on it and so I'm going to stick a mutex on there and we're going to keep rotating that around. That is a horrible horrible way to think about threading. Don't do that! We don't want to stop! No stops, minimize locks! + + +Now a lot of people that I find when I talk about mutex and I asked them what is a mutex right can't give me a good answer say give me an equivalency to a mutex. Give me a mental model for a mutex? I added this section to the top because somebody who I work with came to me and said "I'm trying to optimize this piece of code where I've got this mutex and I've got this lock over this big block of code and I've tried to minimize the amount of work I'm doing under the lock to the absolute minimum and it's still huge. So now I'm trying to optimize the locks and I'm playing with like adaptive spin locks and stuff." + + +And I'm like ah you're thinking about it all wrong. +So let's take a look at a traditional little piece of code here. I've got some registry class that I'm going to write and it's going to be shared so I want the operations to behave in an atomic fashion so I'm going to have a set and a get right where I can set a key and a value and it's just going to store it into a map and because I'm sharing my map I've got that under my mutex and I'm going to get it okay and so I'm going to lock lock my mute my mutex and just pull it out at the same time okay so I've got this this little piece of code right now even here although it looks like I'm doing just a little bit of work under the mutex right and I'm using an unordered map which is a fairly efficient data structure an unordered map is a hash map the amount of time it takes me to hash my key depends on the length of the string so the amount of work that's being done under the locks here is actually fairly unbounded right it depends completely on the lengths of length of my string so it's probably typically small but it could be big okay + + + +there's this line of the C++ standard and you'd find it in a bunch of text books but I pulled it from there because I think you know it's a good way to think about it it can be showing the programs that correctly use mutexes and memory ordered sequential sorry I'm drawing a blank it's a memory very a sequentially consistent memory barrier and a memory order sequentially consistent memory barrier operations to prevent all data races and use no other synchronization operations behave as if the operations executed by their constituent threads were simply interleaved with each value computation of an object being taken from the last side-effect of that object in that interleaving this is normally referred to as sequential consistency so why is this an important sentence well it means that we can always think about mutexes as if we had some set of operations and those operations are interleaved right that we have op and I messed up the numbers here so I can have operation 3 repeated multiple times right right and and what an operation is is that's the code that's executing onto the lock and its operating on some value what's that value it's the set of all objects that are modified by that operation ok so by all operations okay so so X is everything that gets modified within my lock ok by all the pieces of code that acquire that lock on the mutex ok and each of those can yield out some values some result right those operations can say it's a read-modify-write operation they can read modify write the data under that yielding out some results from the read okay so the same is true of all atomic operations right so there's really not a lot of difference between an STD atomic in fact there is a call on STD atomic that says is this lock free so what that means is is their processor support to do that as an atomic item within the processor or is there not processor support and the compiler has to generate a mutex pair to to lock make the change on the atomic operation and do the the unlock right so all that mutexes and locks are our way to construct atomic operations right so if you look you know fetch subtract follows from my previous example for the bad cow you're doing a section subtract that's a read modify write operation on X to the atomic so what we have here then is that we can take any piece of code that has mutexes and we can transform it into a queued model okay so if we assume that I've got a serial q and my serial q has just one operation on it which is go a sync execute this thing and it's the same same calling conventions as STD async here except it guarantees that that the next item being processed in that queue doesn't start until the previous one completed okay then I can rewrite my set string to go do QA sync okay and I can rewrite my get string but I've got a little bit of a problem there in that I need the result back out and I need it paired with that particular gift okay so I'm going to use a future there and we'll talk more about futures okay and I've got the Q async here why is this important to understand because any place I have a mutex in my code I can always make this transformation I can always trance form it into a serialize queue model and that means that within the serialized queue model now anytime somebody comes along and says set here regardless of the amount of work that set takes the time it takes for set to return back to the caller is constant. okay so that means that I can add something like set an arbitrary set of value the whole vector of key value pairs okay and to the caller that set will take just as much time as the previous set. it's a no block. okay so so this puts an upper bound. now there's overhead in this right. I've got to queue an item. I've got to DQ the item. I've got to deal with futures if I've got results coming in if I'm calling this set as opposed to calling just set string set sync set string. + + +maybe I have to construct my vector pairs I can't just pass iterators in there because my whatever I'm passing iterators in to might go away okay so there's overhead in this but it gives me an upper bound so if I'm looking at a piece of code or I'm like I've got this big hoo Creek and piece of code with a bunch of mutexes around it. I'm like you're totally in the weeds right the place is enough abound on both synchronization overhead and time to issue operations. +Now couple more definitions: + threads: a thread is an execution environment consisting of a stack and processor state running in parallel or concurrent plugged in my slides to other threads okay a task is a unit of work off often a function that you want to issue on a thread so tasks are scheduled they can be scheduled onto a thread pool top to Mai's machine utilization I mean threads tend to be relatively heavy weights because they're carrying around processor state and and stacks and if you saw cat Kevin's talk previous to this you had a great graph showing just how expensive it is to do a task switch from thread to thread. You can do an awful lot of processing on the 10s which now unfortunately C++ 14 doesn't really have a task system. we have threads okay and we have futures okay but we don't have a task system now. worse it's in its implementation to find whether or not STD async spins up a thread or execute it on a thread pool. in C++ 11 it was actually defined that it's spun up a thread but Microsoft's complained because under Windows 10 Microsoft doesn't want to expose developers to threads. they want everything to go through the windows thread pool. so they didn't want STD async to spin up threads. so in C++ 14 they changed the standard wording to say well it's undefined maybe it's a thread maybe it's executed on a thread pool. + +I'm going to show you in a few slides why that was a very problematic decision. okay now I'm going to walk you guys through building a tasking system. We're going to build kind of a portable reference implementation and C++ 14 but don't do it on your own right not unless you have to. I actually had to do this because in the previous slides getting Lightroom web to run one of the places where I had +to make it run was inside the Chrome +browser using pinnacle which is Google's +portable Native Client and that's +basically in an environment where you +can run threaded C++ code inside of the +browser so long as it's a Chrome browser +or or on a Chromebook but they didn't +have a stock tasking system for it and I +couldn't find a reasonable one that was +open sourced apples Grand Central +Dispatch is open sourced but it has a +lot of dependency on Lib kernel and I +don't have a kernel inside of Chrome +unfortunately so I couldn't make that +work +but there are lots of good ones here +right there's windows has thread pool +and ppl Apple has Grand Central Dispatch +which can run on Linux and Android +there's until TBB there's HP X I'm sure +that you can find others but those would +be the ones that I would I would +recommend okay this is one that I would +not recommend. + +So there's a little link in the URL there Oracle has this paper that they published years ago which is how to write high-performance multi-threaded server code and and as an appendix they have how to build a tasking system in there for a thread pool this is their model. + +You've got a issue tasks into the queue, the tasks get dequeues by multiple threads, you have one queue per piece of hardware that you have and their implementation is about 20 pages. + +But we can build with c++ better one pretty quickly so we're going to build a notification queue. Here we're just going to build it out of a deck of STD functions with the mutex and a conditioner variable around it we're going to have a pop operation which is just going to pull one item off of the queue okay in our function we're going to have a push operation to just push one item in the queue and notify anybody who might be waiting on the queue okay and then we can build a tasking system where we have count which is the number of course we have and our vector of threads okay and our notification queue a run function for our our threads which is just going to to create a function pop the function from our queue and execute it okay and then our constructor here for our test system will spin up one thread binding it with a lambda against our run when we destruct we need to join all of our threads and then we're going to have an async operation where we just take a function and we push it okay so pretty primitive the one thing we would hang on destruction right there because we didn't have a way to signal done so we'll add that real quick we're going to have a bool that's done when you call done we're going to set the bool to true and notify everybody okay in our pop function when we're waiting if we get woken up from our condition of variable then we're also going to be checking done right returning false and that's it that's the complete thing so how do you guys think this performs I already told you right right badly kind of barely get off the mark horrible why is this horrible makes a good example right it's easy to write nothing fundamentally wrong about it it's exactly this model right we've got a single Q and we've got a bunch of threads and they're banging on that Q okay and we've got locks understanding that I can transform those locks into a queue model doesn't help me because all I have is a Q it locks around it okay so I need to come up with a better way. + +okay so that's X so here is the common +answer I put a Q on each thread that +minimizes my contention okay so let's +write that we can do this pretty quickly +we're just going to have a vector of +notification Q's we get to reuse or same +notification q okay one for each thread +so now our run is going to take an index +into into which q it's actually bound +against when we join now we need to tell +all the Q's they're done +next one and when we're going to do our +push we're going to keep a little atomic +index so we can be pushing from multiple +threads and we're just going to keep +incrementing it but then we're going to +modulo it by our count and so we're just +going to round-robin going through +pushing into into it there okay and if +you notice that's unsigned so wrapping +around on that index is not a problem +well-defined behavior on our overflow +it's a modulo arithmetic okay so how do +you guys think we did on our speedometer +twice as fast is it going to go half +halfway up we're just going to go nobody +so so I actually did profile all this +code I wrote this all profiled it it's +about ten times better okay +barely get this movie okay so and we +have two problems here one is is I can +get a long-running task in one of my Q's +and it can cause a bubble and I can have +my other course sitting there idle okay +so the other is is even in a fully +loaded system I can end up with a fair +amount of contention right where one of +those mutexes blocks and that's you know +upwards of a million cycles to do a full +task switch right in overhead so having +keeping one of those mutexes and +actually having it locked kills +performance okay so here's the next +solution right called task stealing okay +now there are lots of sophisticated +algorithms that are heavily tuned for +doing task stealing but we're just going +to code it very simply here and the idea +with task stealing is is if your queue +you being a thread is busy because +somebody's pushing in the other end okay +ah or it's empty +either you don't really care see if you +can go pull something out to somebody +else's queue +okay so let's do that so and we're going +to take our pop and we're going to have +tri pop here okay so our tri pop is +going to take a tri lock on our mutex +okay so it's going to try to lock will +either get the lock or not if we don't +get the lock we just return false okay +or if the queue is empty we return false +by the way +so we'll do that we're going to do the +same thing on our push just for good +measure okay +so if I'm trying to push something into +a queue and that queue is busy I +shouldn't wait on it okay cause hold a +mutex cause a whole process or cast +square to even do a spin lock okay what +I'm going to do is if it's busy I'm just +going to return false +okay couldn't push it okay so now our +caste system our constructor and +destructor stay the same okay but when +we do the run now what we're going to do +is we're going to do try pop and we'll +just run once round all the queues okay +and then if we don't get anything once +around then we'll just wait where we +were +okay now +on the push side we'll spin around and +it turns out on the push if all the cues +are busy right right you have to push +okay so so what are you going to do well +you could just sit and wait on one cue +but there's no guarantee that that's the +first cue that frees up okay so it's +actually better on the push to spin a +little more okay so I've got a que there +right right and there's a trade-off +there you're you're improving overall +throughput of the system versus +sacrificing a single core to burn it in +the spin loop so whether or not it's a +win in your system depends on what the +load is on your system okay whether or +not you have that core to burn so but +you can tune it quite a bit so now how +do you think we did +okay so way better okay so we got way up +into there now at this point we're about +a hundred times better than when we +started from Oracle's example code so +this is a pretty huge improvement okay +now what I was benchmarking these at was +Apple's Grand Central Dispatch +that's my one point oh right that's my +mindful thing apples Grand Central +Dispatch is a very nice piece of work if +you actually go and read the code and it +even has hooked into Lib colonel and the +reason why it has looks into Lib colonel +is because it understands when one task +is blocked and how to go just ignore +that task and go take care of other +things so you cannot match it with the +primitives that you have in standard C++ +okay but we actually came within about +15% +okay of it with some straightforward +code so that's pretty good okay now if +you happen to have live dispatch this is +a standard STD async compatible function +I'm not going to walk through the whole +thing here that sits on top of dispatch +async F which is a call into Lib +dispatch so this is is is fully STD +async compliant including allowing you +to move arguments through the whole +thing and stuff written in terms of +dispatch async so if you're on a machine +where you can use Lib dispatch by all +means steal this code and do +okay now the first time I gave this talk +somebody went and bent my ear for about +three hours and said well if you're +doing anything you should be writing and +writing it in terms of a CEO and a do +tasks because that's been proposed to +the standard and a CEO being a +synchronous i/o and it has been as an +experimental library and I think a zero +is a beautiful piece of work so don't +get me wrong here +but a CEO is not a tasking system so in +fact a CEO doesn't even have tasking +primitives so is this person spending my +ears and why didn't I use a CEO I'm like +well what are you even talking about +okay but you can build a tasking system +out of a CEO and and this is what it +looks like it's fairly straightforward +and that's how it performs almost +identically to my first piece of code +for exactly the same reasons in here we +have a single single service queue that +we are posting work to and it's under +heavy contention and it's getting +pounded upon it is actually slightly +faster by about 10% then my +implementation with a single queue okay +but that doesn't show up as a pixel even +on my speedometer so so that's where a +CEO is so don't let people tell you as +you as a tasking system it's not okay so +now we have a system where we can issue +tasks +so what happens we issue a task which is +some function some work bound to it it +goes and executes we've got another task +that task yielded some object and we +want to communicate that result to +something else that's executing right +how do we do that what's our what's our +form of communication between tasks +all right well this is where futures +come into play okay so we're going to +calculate Fibonacci of a million CPP +inte is a boost a infinite precision +math type so that's an infinite +precision integer okay anybody you have +any idea of how big fibonacci of a +million is so it's big +subin achi is also is often used as an +example in in parallel algorithms please +stop +almost every talk I go to on parallelism +uses Fibonacci numbers uh here's why so +there's a slow way to calculate +Fibonacci which is what most people +demonstrate and there's a proper way to +calculate Fibonacci to calculate +Fibonacci what you need is a power +function so this power function will +take X to the power of n for some +operation so if my operation here is +addition then this does multiplication +okay if my operation is multiplication +this does exponentiation okay so this is +a generic form of it unfortunately power +isn't in the standard library but it +should be if you want more information +about how this works there's a great +write-up on it in Alec Stepanov and Dan +Rose's book for mathematics to generic +programming kind of the full history of +this algorithm it's also known as +Egyptian multiplication or the Russian +peasant algorithm okay so what I want to +do then is I want to take a particular +matrix which oh there it is I want to +take that matrix which is 1 1 1 0 which +is known as the Fibonacci matrix and I +want to raise it to this let me back up +didn't mean to go that far that's +Fibonacci of a million +slow okay +so I want to take a Fibonacci matrix +raised to the nth power and that will +give me the Fibonacci number of n plus 1 +in the top left Fibonacci n on the two +diagonals and n minus on the bottom +right ok so I can actually take +Fibonacci here of n minus 1 and pull it +from impulsive iñaki n from the top left +okay so with that code and now you see +the delay here it takes a key note a +minute to prep this this is the result +of Fibonacci of a million okay it took +point seven two seconds to calculate on +my old on this laptop on my old 2013 or +so MacBook Pro it's two hundred and +eight almost two hundred nine thousand +digits and and it calculates and and +that's just running single threaded okay +so I can calculate way bigger Fibonacci +numbers then then people do in the +parallel examples the reason why bugs me +is because I've actually seen people use +the bad algorithm that people use to +demonstrate with parallel algorithms in +actual code okay stop so try to only +give real examples so we'll calculate +seven oxy of a million with our future +so what's our mental model of futures +okay what we're doing is we're taking a +function and we're slicing off the +results okay +so what I end up with is a function okay +still take some arguments but has no +result and a future which is a token for +the result and that future will appear +sometime later okay so that's the model +the futures it's separating the function +from the results of the function and +having a communication channel before +them now the nice thing about futures is +they allow minimum code transformations +to express dependencies +okay so if I have a future and oh the +other nice thing about futures and C++ +is they can marshal exceptions right so +if I have a future and I fail this will +end up printing failure right so across +threads my exception can be thrown in +one thread and caught in the other +go there and then I call future get and +let's just stop right we just block that +thread while we wait for the results STD +futures and then the result comes over I +hate stops right unfortunately C++ even +14 lacks continuations with the +continuation instead of saying dot get +and stop you say when the results for +this is available then do the next thing +if you've done JavaScript programming +with with promises it's the same idea +okay +so along with that C++ 14 lacks joins +which are win all and win any when all +these features are available to +something it'll act splits which we'll +talk about more cancellation and +progress monitoring in C++ 14 features +don't compose particularly easily to add +these things okay so what's the model +for continuations well we've got is a +function yielding a result which we want +change to the next function yielding +some results and so on +okay now STD future has two additional +problems +so first is that it consumes one +resource right which we talked about +increasing contention but it possibly +deadlocks if you have a tasking system +and any non subsequent non-dependent +calculations on the task girls are +blocked +now even though C++ 14 doesn't have the +primitives boost futures has been with +TS concurrency which is following to the +standard has been TVB has flow graphs +ppl has chain tasks CCD has serialized +queues and groups these are all things +to solve the same problem as +continuation +okay so how can get caused a deadlock +let's say I have a task and it issued +another task and then it waits on a gift +that other task will never complete +because it's not coming out of the queue +so if I'm on a single threaded system +okay then a future get is an immediate +deadlock this is why promises in +JavaScript do not have git or dot wait +they only have continuations in a single +threaded system it's an immediate +deadlock okay well what if I have two +threads that guy issues two tasks one +task goes into the queue he waits for it +he's deadlocked well the other task a +task steal unless he issues a task and +waits for it and then we're deadlocked +okay and so on right +it's very difficult to use future like +it is very difficult to use safely in +the presence of a thread pool an STD a +sink it's undefined whether or not it's +a thread pool or not okay that's a +problem it's not just yet it's any +conditional blocking right such as +condition variables weight or +problematic in a task system they're +exactly the same thing +somehow I dropped a negative here this +should say do not call s to be future +get or STD future wait when the +originating task or any subordinate task +is on the same queue even if it's a +concurrent queue or a thread pool that's +the rule +for using them safely okay which means +that I can issue a task within C++ with +async from my main thread and call yet +on the future okay but I can't call get +on a future from anything that was +queued through STD async +okay so you see this problem in every +tasking system it will have some kind of +warning like this so I could have put a +whole list of them up there but this is +from lib dispatch I've kind of been +using live dispatch as an example you +should never call dispatch sinc what's +just batch sync it's the equivalent of +queueing something into the queue and +then waiting for it immediately right +never call dispatch synch from a task +that is executing in the same queue that +you are planning to pass to the function +this is particularly important for +serial queues which are guaranteed +deadlock but should also be avoided for +concurrent queues okay +why because depending on how the stars +align it will be a deadlock now how did +I discover this well taking a heavily +threaded piece of code and taking it +down to one thread it was very apparent +where all the dead locks were right +there but then we also realized that hey +if we took it to mobile where I also +took Lightroom engine to mobile with two +cores we were seeing a lot more dead +locks +okay when we actually finally figured +out what in the world the problem was we +realized that even on eight cores and +sixteen core machines the system under +heavy load would occasionally deadlock +it was just rare enough that you +wouldn't see it okay so so but in our +bug backlog when we went back through it +was like oh yeah this this is that +problem this deadlock is that problem +okay so a huge thing okay so this is +what a dot then continuation looks like +right we can calculate Fibonacci and +then once the Fibonacci gets we can +serialize it we're going to go ahead and +put our weight in here because we're +executing this on the main thread not +over over on our async it's useful at +least for debugging so so now we can do +it and then print it +okay so bins are are the equivalent of +completion handlers okay and in the +standard committee a lot of times +there's debate over whether or not the +futures are the right model or whether +or not completion handlers are the right +model okay so so conceptually the two +are interchangeable okay so the +advantage with the completion handler is +that there's no need to synchronize +between invocation and and and setting +it because it was set in advance the +completion handler gets passed into the +function okay whereas a future there's a +little bit of synchronization that +happens because you don't know well your +asynchronous task is setting when you're +setting the value is somebody attaching +a continuation at that exact moment in +time okay so there's a small amount of +synchronization that has to happen but +the advantage with the future is that +you don't have to know where the results +are going in advance right so so those +are the trade-offs so you can actually +express one in terms of the other and +vice versa if if you if you build build +a system correctly so my answer is +always when people say do we want +futures or completion routines I'm like +yes that is my answer I want both okay +now the other thing you find when you +start to construct these things is we +need joins okay so what I want to do is +I have two futures and when both of +those futures are available then I want +to issue the nest nest next task now a +lot of people have the wrong mental +model about this what they think is is +then I will have my continuation I get +get one result in and then I will block +and wait for the other result but that's +not how joins work at all +what happens if you keep a count of how +many things that you're waiting for that +are pending okay and when I get one +result in I issue the task or when I get +one result in I'm okay when I might when +my count goes to zero then it's the it's +the setting the result decrement +the count to zero that causes the next +task in the chain to fire so you're +never blocking and waiting you're just +counting down +okay so this is what it looks like with +this is using boost when all I really do +not like the syntax here and that a win +all right I'm taking a win all of two +futures and then a continuation and my +argument F coming in there is a tuple is +a future of a tuple two futures which is +why you get the in order to print my end +I've got get get x get get right right F +is a future tuple futures and the result +of this is a bunch of digits we're not +going to print it so the other thing you +want to be able to do is split +so here now this is still the boost +slash proposed C++ 17 model so it seems +like the way you would do a split is +just attach to continuations to your +future so I've got X and then I want to +say then go multiply it by two and also +when I have X divide it by five that +looks like a split +yeah just abort okay the reason is the +first then actually consumes X so trying +to add hacks a second X a second then is +a cig abort that's not a particularly +friendly thing now a shared future lets +me copy them around okay and do multiple +get operations but it still doesn't let +me do multiple event operations okay +well that's horrible so now if I've got +a shared future in my hand I don't know +whether or not I can attach a +continuation to it okay so my opinion +the future should behave as a regular +type it's a token to the value so you +should be able to to copy them to get a +split but in absence of that we could +write a split so let's see how we would +do that okay so this is what it would +look like to call what we're going to do +is we're going to take X we're going to +split it okay which is going to leave +our X as a future and give us a new one +to which we can attach our dot then okay +so we can split it and then we can +attach it and if we wanted to keep going +we keep splitting okay we could just +keep splitting X +so and then we can write this and that +will print that right the first one beam +times two and the second one divided by +fifteen okay so let's see how we would +build that well first we've been talking +about futures but we haven't been +talking about the other in the futures +we can c++ is known as a promise okay so +a promise is the sending side of a +future so if we create a promise X then +we can get a future out of it and if we +set the value 42 on our promise then we +will get the value out of our future +okay so so that's the pairing there so +internally async STD async is is +creating a promise that we'll turn our +42 okay so here's how we're going to +write our split we'll walk through it +here okay when we initially come in +there is a promise somewhere that's in +gray a gray circle okay which is going +to set our future which is X okay so +we've got a promise somewhere and we're +hanging on to X so we're passing in a +reference to X now the first thing we're +going to do is we're going to move that +future out of X to get it out of the way +okay so the promise still points to the +move future now which is in temp then +we're going to construct a new future +and get a new promise for it and put the +new promise into X okay so now we've +rewritten X to be our new future okay +then what we're going to do is we're +going to take our temp +okay which is our future we're going to +put it in to our lambda here so now it's +underscore temp we're going to attach a +continuation to it which is going to +return our results we're binding P right +we are moving the promise we created in +the dotted line there eight so we we +took P we moved it over into underscore +P okay +that's the result we have the original +promise which points into our underscore +temp future okay which has a +continuation which is going to set the +value on T my underscore P set value +okay and it's going to return the value +right so there's the copy right there so +that's how you implement the splits okay +then we do the same thing to split the +exception right so we want the exception +to also go down both paths okay so if we +have an exception then we're going to +send an exception down both paths you're +not sure we write a split +okay now here's a tough thing this is +something I want with futures but +they're not in C++ 17 and I don't know +of a good way to compose them into the +sequence plus 17 futures basically what +I want is now that I can split split my +futures right right and I can join them +so I can build these complicated graphs +is when the last piece of code see I +think I have a graph here when the last +piece of code lets go of a future like +the top right one there okay then if the +task associated with that piece of code +hasn't started to execute then I want it +to not execute and to free the resources +okay which then leaves two futures which +are no longer needed and so those +futures go away and I'm left with this +right so I eliminated one task from my +system that's executing now when you're +developing interactive software this +comes up a lot the user does something +and then the user does something else +and you're like okay well forget about +that old thing you don't want to keep +doing it so a cancellation model is nice +because that wasn't there and because +even the boost futures with +continuations will deadlock on a single +threaded system which I consider a bug +they shouldn't but they do it's a part +of their their their implementation I +ended up writing this experimental +library which is available on that +website and I've got futures in there +that support multiple continuations and +they can be copied they're optimized for +our values so you can have move only +types with them it supports joins for +winning and win all it has cancellation +on destruction as well as an explicit +recess reset and it has a detach so you +can detach a future meaning that but now +I can destruct this but I still want +whatever it's associated with to +continue processing right just like you +would detach a thread and say keep going +even though though I'm destructing my my +toe +and hold on to it so I put this library +out there and I have to thank Felix +petrosini who's in Germany who's been +just a massive contributor and so when I +wrote it I wrote it to the extent that I +needed it and going to show it to the +standard folks and say here's some +issues with the direction you're going +and a Felix is really kind of flushed it +out and and our goal now is to release +kind of a 1.0 version sometime earlier +this year that's there but futures +aren't enough right so the next thing is +to talk about channels and I am probably +way over time aren't I at this point I'm +not seen any hands +since this took me a little longer to go +through then I wanted to I will stop +here Kevin's already talked some about +the basic concepts of channels channels +are also in my library so if you want me +to to discuss them just see me outside +of this and the last thing I will just +flip through slides very quickly but I +wanted to finish on that slide won't let +me go too quick all these great +animations +channels it is this what we're building +here is dependency graphs within the +code and it turns out there's a lot of +information in the graph right when +you're building channels and you're +building futures you're building +dependency graphs and there's a lot of +information that's in the graph but +these are are what I call incidental +data structures right there isn't is no +place within your code where it's like +here's my dependency graph okay which +makes it makes it nearly impossible to +mine that graph for values especially if +you want information about all the +possible states of that graph +so maybe constructing these dependency +graphs is is not the right approach +instead maybe we should be actually +writing the graph to script descriptions +and and compiling those and statically +validate them and I've got a whole body +of work and a bunch of published papers +on something called property models +which is exactly that which is how do +you describe dependency graphs and flows +between states and reason about them +outside so if anybody wants to talk on +that way outside the scope of this talk +but I'd be happy to and there are some +slides there for my papers and +presentations and the library and what +we're talking about here largely is +communicating sequential processes which +is which is from Tony Hoare and his book +is now out of publication but freely +available online and so that's the link +to CSP so thank you and sorry for not +paying attention to the time and running \ No newline at end of file diff --git a/better-code/figures/05-background_thread.svg b/better-code/figures/05-background_thread.svg new file mode 100644 index 0000000..5a64cab --- /dev/null +++ b/better-code/figures/05-background_thread.svg @@ -0,0 +1,337 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + Task + + + + . + . + . + + + + Task + + + MainThread + + + Task + + + + Task + + BackgroundThread + + diff --git a/better-code/figures/05-simple_tasking_system.svg b/better-code/figures/05-simple_tasking_system.svg new file mode 100644 index 0000000..9410583 --- /dev/null +++ b/better-code/figures/05-simple_tasking_system.svg @@ -0,0 +1,448 @@ + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + Thread + + + + Core + + + + + + Thread + + + + Core + + + + + + Thread + + + + Core + + + ... + + + + + + Task + + + + . + . + . + + + Task + + + + Task + + + + Task + + + + diff --git a/better-code/figures/05-task_system_multiple_queues.svg b/better-code/figures/05-task_system_multiple_queues.svg new file mode 100644 index 0000000..4204172 --- /dev/null +++ b/better-code/figures/05-task_system_multiple_queues.svg @@ -0,0 +1,769 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + Scheduler + + + + + + Thread + + + + Core + + + + + + Thread + + + + Core + + + + + + Thread + + + + Core + + + ... + + + Task + + + + + + + + + + . + . + . + + + Task + + + + Task + + + + Task + + + + + . + . + . + + + Task + + + + Task + + + + Task + + + + + . + . + . + + + Task + + + + Task + + + + Task + + + + diff --git a/better-code/figures/05-task_system_task_stealing.svg b/better-code/figures/05-task_system_task_stealing.svg new file mode 100644 index 0000000..2c4fb82 --- /dev/null +++ b/better-code/figures/05-task_system_task_stealing.svg @@ -0,0 +1,836 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + Scheduler + + + + + + Thread + + + + Core + + + + + + Thread + + + + Core + + + + + + Thread + + + + Core + + + ... + + + Task + + + + . + . + . + + + Task + + + + Task + + + + Task + + + + + + + + + + + Task Stealing + + + + + + + . + . + . + + + Task + + + + Task + + + + Task + + + + + . + . + . + + + Task + + + + Task + + + + Task + + + + diff --git a/better-code/figures/AmdahlsLaw.jpg b/better-code/figures/AmdahlsLaw.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e38cbc7ea2f971ecf4ae7e3c35b5354689081fc1 GIT binary patch literal 194111 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%0AK8(H`^l`+p5Bb{Wi9tvb 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%0AXxDS8d9^6`6Neic|n-MU5F^ggv- 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 z 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 literal 0 HcmV?d00001 diff --git a/better-code/figures/amdahl_lin.png b/better-code/figures/amdahl_lin.png new file mode 100644 index 0000000000000000000000000000000000000000..cbd81cd181b5fab0c0ab20486e971b8450e7fa45 GIT binary patch literal 158661 zcmZ^L1zc3!^EaI$ozf}YozmSUDV+-v(y2(7G%Vd92un9eH_{CP(%lX3`YXZb|Kjdv zuX|6-nK*amJ99QfSy2iFi2w-#0s=)wT3i(Z0@?)pra^!Me^YrC>I4A+Nn<4@rfef7 zC1!7H@2K|P$i(c8slBn8s+1@zFE0-S#Op66@7}3OGraCK!g%+tcZi-A$h^BpJJ1yOlQG^qvYEp+ry zB8)k^|K6%xP&urKZDBJh=~hxqMqDw(NpoOUUfyTw5Fb(mSyg&jkt!#jH)bm49+Dv+ zDOhqrp z*9Z`>kQflq;44V*KL|(y2-tsJLqNzvzWU#_D&*_`w1I+v2(p5J`A-`i@aOM8Y497| z`#+yhnNa_20d0~A{l9CP-%Z<6`VYV#i0`G}g2ji7`TGqCk&=oB0RhElrLOI)tsu{5 zVh><4`YlE#H^BSfy&weK_`sI{GiM`GH-N336Q7$P`M+B5fv4nS65diS9T_QM+;`K z&hRp`uraf-F@jq#I=S098@VysIZ^z3kpGS&Zsug-X!YLN%HEFj_qayJ_8*)D$;p3D z^uND<)9Gww{%0mTr~fPqyg=sPcbHk3SeXB>Zf0&)|DSHZ@BF*lzt;8d=>&cc#;4?H zWd``)`*(X)Gbel755Jph*jYIXvHhpZUtd4z^?PnUWh*x`TWxVG zfSH}s@0obGxCNO1&pZET&$mx{vOMeg4gvy zYiDf+1cV5LjQAUMH^{v-L_e&q`kvNgLBDnN3#cf!99HV?q%BNrjMG*B(BpO(*bvDs z3cApdLQ4z$~-&^B8# zq!3U~UvFrB5b0OV8Z%%aQ8^q&qRU{vgMU6K1dM<@Y5a!6Znpg3vMsAQLHn_M_)o_T zhh)4^wx>h=zK*7c(jTQswoI4bV;Ia;wlEXd1E~N20GW>^6a_rYx{=Q26en-~CYv8d z)e47wDBLygAsRy*Se=sXUKdQy9ucu^+e#0Y!|;495D2DW5XiJ@Wl8P*;f*6S?idZH z?6Zd_y-9c}OyT0>H%&421S^V8hd?uQct|ver!W6>YP6TGchrf$DiJWr%mXn-IuDq_ zSc}vHu!1l)1wz7Jvk%Cnzg0Xz|M(XNMOqMogE5FYZck|V0xx+D`%|{f-}W62CWdz= zrFOpPl1AiJS|vPbxuyxMe3LqSOK1%JbYk$ezZV*sLX50{LrSiko+vR4!;FLt!JqXRC_Hxx(s0e{>X;XNX$7fpKbyVa9CjMH03C%uGYx-)rD)A8zpoT?6Tm{bH#hbvsCx8NQ#Yj zL?9!V0_JbF=wY%{ho%mczNOR`9c7VAWXiKhcMqgiOqCX3>rM$4TQWrpJI5&K%Z!@< zSZ7kQQq!y`BPGL!kgg%EN1?>Hsi>eczOA72DS1n>`nNv*goiRSGdrI3T}9m`pAyTz zTIGpK$;0sR($it3j<0}N`?RhUkeFLrRkfwUKAea-07Cd%JKH3oO6*Pj=;H57ytR@0 zuq24l*U;Hsnpu;Rj5NqxES~3Ln|L|Ssv@!`r_U@blqf-vQCFe;r9Lx?nG|HymGEzo z!OI9{JDwL1N-LM6@2AURIy14gd@U&`;7fl&Ui;!iszR}!He4B}c< zfO*v;QCL6jE?kPYhGcpsCypD$(5nsEk1(6B09*}?rtgG%w$FeC<3rQd5ZskydpC@S z%si?>xEaBTT~NPFyVg`?98SOa=_+dNt_Qm>I4PKw%MUiWP~;odKlJ`88Df`Y>P<$!Y0Nw#{8;Ggch~Gj$9+_3YehBcJIorq|Kuklj64ygjphpfRrfyqtzr8xrmzxI!X**n z0rlt6xnVvSt^8OfszvJE@kib9fvaAKb`Jm{W!l2qG9P%8q0|ur=7>$ z$q)pAjRQwJ`=YKqn7v3(oM6-FZ-)AlqN90JHWYq^RtL9rU1w+?6vlMcQnDou8^h?QIWe`tFAL=qzRFS{2u*!)>_k>t`!$bAcLWcMJIScEQEB^Pw#i zGz91!5;P!y_)C99KKk))eIdNeaHf^7BPzk;-m@udmgL_nhXzy*aXDVvxdw(7@+CHN` zZ&3k#H*#L^3lgDJmw7;KE@5Q{rP<%!Tc#S6O0~HG4?)&zUd-zoDK3@MK*{2T`<}C( zpHN*qniyfBXu8EUOc57dm%W|OC$(H(_ugFW%e6k< zA8tpBz5GH~idoRWA0&g7*qDRB7cO-oE6RPRoM4}bPqax*ToN2 zT{ybZF&|b&rAQQ_gdgf^fMvAxEw+xGXWwxe7Y!k1w>|-@_k~LI8xw|wAH5nj(>-JK zoN6^x^Lt#}8Xg#H7evPklrEFZl7Xk+;YrX&JnGNJo76HK{nmJ}Bg9~pL6S~SPaivGJGVVuMgpi`Pv9`^MFS2hR>VsY@oLXsD+X#U}_pe0c{g%WC zmTG#)FW^(16}8z<>E_-KU?HK-ecaf;azf&CO84cmSQrt0aGu3HeU-moGao7Rc;{qo zXP3|1dKW|f1;K%Uiyt8gU=`FAB4K1()y&@Qb5_Kj(Hw10@2b0hU=4)t8u{kfCvokJ zI=DUNWCXqAjBpiFAJNk5EhTDyE?0|&nYBJRq4Qyg#Ih8__;bAOxaOl5aOdWXDgz~4 z<)>7)n@+lIj#L!2fsw<>uf7{#l}VH!SBqOv+)6Zmr8}$aLYf`%+Ibx}^N+zI(7m~? zxsR!job2)!mewiThuI+?(^w_PeMifi@@sLA7Pt+&9Mmzx!I~|1k9y&ptK?hul^61D z-8SDB9euXg9rYW%JA6hkj&?Rbv6JJxLJTY3bmT;4og0(?pyngByCEdf>^hUyf9RHg zM1NIK*p7wMJXLw+=u#sR2BKBVr(7&_=Yt;U+o*pKAk_Z8+W-2H=Z z3PpGOcKU)J2YOa3<`A}v6xN1LHH3A$eM;goEb-h^2pxM)vZm)+iR1bqeb&fSN zDX=?ENnBj2L)SfHfzuf|Lc(|W8VeWUDcL;QjK99GPiA-&3@QQ9j$)PcPpC8se$@|c z2P8E*3JGZt9XQU65J9dSzI1Z!UYHoXn0L#;1bKcU)1@TuaS8I*`@_`&z4d%S< z9H9Gj`INn~O>nKPW`qwkEqSr6)2nINWLZo5Ri{{Mtl!~QZTw?x;c^y@^7T+9t=^at zrsZZ&9@%cqVx`QiOSw@bySd2Hhha~2@uL(QyB#ij0oTBVjToqSYu(N%t#a9#@L zWzJNYP!?osvb5Q>fXK?K!7+98!^k++{Zs+e{jhe^XY^zJo*IzMA~)`3ON7w(jRnjj zIpO0ll6w2&yL8C?IN^tP8NwGnyiO0d(WlVEI)1#TSm(F`LnOW;8Wxe+y(t6)&Knt) zVIf*oV(I0A7j|zOF)pY@!e{4Q$_bx6wFPASq$;a|S5;W3TCxRNmBY$A+lgK+dxsQ1 zzGqNTqX4*XFI)XY#1!0?V~Y5QH$bI7f%5Dr2}wzs^EUhY1TqyX(y*@TuAx_)HS@%-LuF@LognwbPS034<1sAP<6jz$5_?a&n2~*3i=m|9_;hzxtAF7UNVVzC3LcA;;r1IqYkeTB|zth_?+)* zTK)L4UN$)1^e|Vb2+??u1_hD(IqPT;kAm^+J&sYTrGso44Sf|S*Is5$Q9Wio(4~(yva*k zl3Zzr68reZr_-niVF{nziu5nrkVZ*MdW3Tyk!;qIEoz6;ne{ z00SqV1vmWlc0L8Z*5U0(G?Ny4W1i=J(=1IJl>B{gk^zjv{Xmr3(641x@sMw!HitP6 zL8(7eSqSpE;x*em(Tw*AAlCx+qe&s3*^EdgJ5&>fvGg`5@G(uII<{N6u+A@ViA@R- zv|KD^!uIKNQu@HmTfq0ho?dO1c_M>nQA?XSrZ)estd8KCBOM+`5}m!L&V9m6%l_^! z+RzzQ3_m=%5ZI7sPCA-AltA=4gI1YjOSlGx0)c>p!#U^Xcteo6vRm&|)#N_2>Plo| ziUit-AJ{R6i&lntM(#(^HvC?s)7^L9hTevMN&yyKoGh!XEx;FA2I&_WZ=9-Y*Oz`} zaA7BdU`;@zii3QrD*mJx?*sdc(}QRmKwpZfiNszR`lg3o%m4$IE(kwQVoA)#gvyb( zSHX~Wk7d7sduAmtseY_{Q#!4I*24r6K%5o@st(lr&|Q)|{vTUd*A-(Gav;ach$W?hoNSOSt21 z4QHsG+KKP8Sf24sTalD0GmgYuZ$Z^6f>~IyI<}{H4?#oT+wX?h$QWUqVk)!eMV7NAHT3hali~d zTeCkgSzFFqS$zrKxG$xaz?2W#BD)7yuSy%PRp|(MlIR{DIL;qdTIMKerzkF9w@3a7Zm7K&5wl=OVbikq%+|1DkdT{RDxZ8q(w=-X7~(`GF2mozT}TKE?w~eX7|*WY|&?` zcEkc%T0uTB^+RORf>;!+r*hsG_t+YPZmFW)H#~toFhF8-wf=}@X5?*>kKH%Ev$k)4 z3{ophz&=|&4w_|YQ8qRWN%7Lv}&UX6SyVGxM`Vu8aaz;J3T9Sk|zDz=!m*25B7ZWj8w=4~g5?-BqWJQWZhBN9^1>-Pii*$AM zb$}S!E@n(n3E0i$o4)f~Q&zIi&{@tLyyq#Af}7Pk7Hf~ZyOd3z>CcJ)&WzMJWw2cW zE_=9chlEVk_=8I^*j(8U)?HZk<9LE<0Qvh~M8FKxd}h^Q`BTS*{UESwmHGjRHXsBvsMT>&RA_63< zIgLcQsEi21Wu6*WaJMe9-3vmwK;Bdmx(;wza<{mr@}J(v={E0ex|WOlol!VlP-vuL zx?j(U63QldI0}l{+g7%9c~$>@Mf7Gg%IBBj#jlom_}SX;@HO$=Ee2h7h}Wmbrz64z zV2GhvpO}PVo#$W@u+|-MwqLtER&La>DpXOL-)c~uwr|{hetzCrX;ic9;|ZWEI5r;; zOxRzagKwI?*VEFjjXI}q3`3v4Sr;YL9@p;k8mOm4$clw5G*Y0jgr@DKNtw=js&8)WpD>_ z8+Rhifnk&FA@1c|&%;t!tx(G+i6{vi z2VjAi^uWlDLK$$Okm?P=u$30_EizMG8{K@D_Qgue z?ZNo;b)CbSs==Y^)WAxW)%Y3iSrCy+61Gt9eSGq_#$5uP4{K&sMM})psm|<+C-Z8P z+!%mWf!XMp8Vv6ZR5}dQ0TfVD$Fi>_iHDkw@dpm!RW%<)2d1o8bTpn(iPZqh6;PWR#e&!$1hfbMg(&-LYji zAI#)++OQN7kjRg^8Ra*yQsHtXieW;vuZSw&M9j4wNw0;nsEYTS^&QjSthq98ylldAO`Lwc9CPE8!74}H9>DIks+X50_mOt@7T&hc9 z^tJ@N*=AT}{{28a#E^E)IQiC9#8|nAI=`>9NOzHUQ%ZEV5rrbyFS#)q5uxt=-J$CE z+@i?xve~K^FrxZBQ*|{tmI1wr@H6G%0$&qMsV=LT(p``^IC6=*_@Gi$0(Wn6k$^@W#!f? zbfYl7b1@4siJ!JCa@F8siQ&_8to>K49|B8_Kb5A<5K^(wwFqOU>`P*?_1d8bMAqy3 z@=hiE^>MpY{$#(yuB2-eh@Q8>GARMn7=5_k%{TtS)~{(YCF@gRtcqygm_BI6`JZ*b|2^zUy3A6mn-W%t!2m zU$){_whv7e(KrU#s5<32gcSBP0KAiZx0vIqx|oakT2)UZzE(hiDu|fG5RDcjM& z+>>{tIw^gt>jACs3+r}tGKaWUzqu+&|FiU>AJ8vdwGh*NQjAj(L)Vt#OS)I*+*{uq zPIe}$omNK>tDKb>5~$FC0|QW!l(9>yO(PaFGVm>7IQ^?XXuM+K4AsXSP1 z(O}juNz`FB^u&ug?B@c-t-f&B>b7#&t^!icE;9<7!1XnFxL02}m&C%~j;pg^J#pIG zTw%mNfK0jzHPuT$;;B-Y-K3R)UD4)MEbG*Ji1Rr+y!a6heS zRb~MrDl3^|GY*Jk8xws!p`?{~%6{@ec*x2o9U4#kQ~x{6VAMd+N8`77fvu^Q#^++h z=r*N>c?sWyQ@I9x6L0oh(KHq~fbHJ0smsIb*TKi3sVW=~`yge69OG;Il|e=k8?#{~ zs%Ov(sV9uK{I+|rto*j6p1um$Y;+t>5a#NRh<1FBSUG-8)nn0Zmr4zseIzUfPicQH zU3LM2(7#B@FR=cIw@W+5gZj*%>ktbsTTHF9iHX!ahYWq+&?^!seqk2Qg6v6C%$pVz zRo5#yOYjJiM=EkeGqg*(*cS_*oi;DWdny4Mm_b+`H$B_&0+O*%Ff=zGYQ}MNCTDfD zUaM9pLOeTp`%Z?!7!ko5Bw>q#(Z+9r!$lwu_ayQ=5`s*ZoEhE1-lf5Lr)t;HYM3?W zB#FuSE$4gUl03AJQ_X;kR9s%M+K7vDeD}9Ya3td18u9LF;>hnajA{tAgBT3np;LV~ zZbs%@Shp(WgzUN+Nv==Oy<}+jGRm4G`A_h!r>!8;El}zL)%`5C_rpc30t(_esET$E z7@|ZiN>t+#D~+zA#gDkjB7#_Dz7=xftWnqs!~_lr!?3VzWYh%EJPq}UDKZPl=zx^! z!X){tO&-}dM6B^k?|UYzZZ_mzb7aQR*?Xtl?A0sTo()_Lfo8sYY9S zPC-|EYGiI9e)2SN(SULC@X4f5P`M80K9tVm$g2>#nyf5#!`xLO*GNQGCV>3AFpYK! z)0sO72;)J+eMI}GwsoRNdOHKiF`>jVb1i#EePocWkb7?DnD}pGUsG^#v7(H zvQ`%_^ZS!WRNUI$ohv5Ay_X&M#{L>dg|l!OZ(JgLJ1j&DtuhY0z&sTA%BN~T7vTblYl6UX@e;a0o&?snlqG~6bZ40Ogx(IW-MIJ_p3 z-orjwRVF+_`8y0y{DCuhvHDEYo?Nkzm9O>Nrr;YQSAuv2-y~6qu49U8?w)ekSTHp6 zHx}fa2w_8mu4_(|dN8J;kl`gVxrUlqvo2@#13yu1cD=U91bHxLwUsO(E;vmD4XpG2 zmgYQ&Pj;GUPAIZzasu+bTqXEVYY@@m_(+1RV#UMxh6b61)-%FIDF{ z_t|mXvaceEAu-%AKxElOvnXUF+Ys2|lJDn()KcpAxG#L3V)v43b6+07qg6{OemHKl zjMr%q(m~4)1#Z43dcZ3#&8KlbsI|ZHoy~a3U`u zT`M$HOQ9s=17m5j1L9{mTNyEXpj@+WT^T#4%DT;{*$Zz_G;&t~b!cX6c_Z8k4-f&2 zbWiA%V?U8pn;MMhU85oTd3U0!&ewc>>D>nhXzVz9iFns0=`Q|*e842Rd;aVoIr@-qL4x|Z$Tr>Oz0wp_R(U>%SX~P|s4)7?J%}Wv(@7%@@ia-DHEM9RJc6vqS930{y>Xu)wOSm!;#$cx1>0XxOMx zl(xKo!8r_+lUQC33mo)HK!S^RJ$HUhqWpUdwiko@w%z>JuE8~tTcoIe7I!D(w|qY~ zjyfx-sqYac$kn5c7gjwLSgr0o_1Ze+5$AmIkd&@@TZV3HoLST0qoU+wE?&C`2Etvg zI*wiu7XnCKJ^D%6%>xY@u5sYkQOhuc%ul|k;Tf2^HpQ0fSLjtTh#;ReGy^$p8Es7iQ*7d9 zU#n_0_c6PMSvVWgM6n>WC`z@k7mrsh%p>?}mBbb24Gy8@5r-O-Kbi?!zgZ}KuVPU35N-zI0Xi>d1`hv zba4`VaYq=~`Dnc43}k~)k|+n}BBW@>;mpKKlzP?H*v%JnHfOyQQOaN>f?s|__)(x4 zoG@0`(wb&MMSQwPKhV63GzYb-Jf-rv+4w%BT6J)1y?DjH3L zA(wpOQP^H}l44p77^tOC53g2Ijy|E9H^SSQhVvJ2WaC@BMio3m^M1TtE)cw!`IPRq ziWnOk**M@tUZC$XYv$a6!oB4|fnJSeZL4G2h$N8IcEPM$6Q1tAflt8l&JUh(a4@$k z40k+;#77!jS&&Th^SdgE?;UFdv0w@k@_sV|E*PnykPQDZEmFMO^=amu)7GGJ58Btr zB8FL&wDP;;2{LcDeSg z_cdv#H8Uf6ySuwq=R1>U7xVVI?h2KtwvT}*uPldCd7Et3yAOY!o_mi7Ub^-AY!a14 zHvszi4Vnhwq6|N)8>`dsnY~=RLLq83qU9`X0($Jr8tS`LpL}}Un`^n*q4!w%j9cQf zWMgBKQ(C(;$8?mYZF8t*NE4Yiz$LuLJG>eqtbHZ635GTD$ixDFEI(Xu-?z+kpbD3q z`kv*GZ14Qic3src{}AsJ>{2jaF=Bl3Lku-6vLe303(34J}vF;XmH#Mu=G>xL1)CPx3-yR>YKhCCbfL9FUaC1LAYI?{}k8I z>&>)*XK4%bhkfb8I3F;kV0p1O3$Eh05adCYz%jb}yp}5yTXIvOwYPb+ciuJ$5cBjJYK#l5gkrZ-he) z_vn3b6{_$dCkKby%-A;|&TCd`l)fZw?PDLFk``zc2V#|EHnUL0H7}pn8$teQE^{HS zv0RnJ>>cvlYv%aOJzeIA&9+~yUd`LsRb(g%0L_}Q5{0&@fP9r*d-Q~f!a~E;534~| zt+^k%Ni(i(DeT*IY!lAB<`VkqyA(l&-ymm4a$lCkf8lyRZ*~*+E&LX*Y%i?YytgJ< z$h}LmmdKX<@z{LM{?mT`5MgbXIT(3b+25mjoL4b$>?59Ai^u3#P)e29a<5{Tn3A1L zRLVqgBF=2zcgdRe@gM{Un!d6LNILVZT$a{BRT-MI8hkLmiLJ)`Ri7;q!s-g$-@ZIrTp=_6E#wzZU-U2_ALu~4d9G}m@MHHP)Z5N;@m6(sH|va|Y~E_l zqGF@&F4@dBIE;kw1ec>pCM9v-b^i4&hR5uMb2tFBXiA?!W|uK`9mBL(GA`!;nkMq- z>vpawA3Ctnxs!GcPaFeOOb(S&%=7mUco7iuya>}7Txuj z7GW)kEv77-1k%d5u1vq~`|L?^o#EC-_%w|+dY_H8lum!`V_B>o82<@c&+sGpw(acA z@aW7~+lJ4fvD|XZKzp8ApeYkxNc;X@z8vauw!!1MQ*qO=4ASK*5m-KM(1Bk>`kKy> z`Bz>;NY8Puk+<;&=9ZqDIIZ%+ltWGt(f)6^=F|N>)0vGgC`MiZ+eLu4Q4xE9jkN4r zN~-JGT1qKUtP>QM!8~tJOax}Y1TJ;=uHk3{L9viKWi^9aq6dlN3zX)4cO-CjNmo5y zfkDy!5SNi_Iq}Ye=*l4cT)bm;0d$VieZCaZva5Zeq*UdkL<#~i*U!#xeVVPY^BolE ztW;_%YXY>stXLi^1U16^NNkW}id{?X`Ds}dq0@35)57l{Y;DjKeM96+r=fU{TSSt} zS(S3#YunAv8|B)6b)LRU)UIFKc{z^dfVt~YP=1WiT2&drEz??F3tDaj)PNXmt7eA; zCtD(>9qELl6MUhzpLr~6YG%S5;C3xj+`Pq&r8161pD!ftEfsMbP|rfH4YQYaMo{AN zvG(c1GZ`Z~9;4pNHcsA#tvW!E_D#*fv1g&nn1eNT7gTZGHZ2|R-j%$KBrjSo9k?v9 zWL4bkX?J&U;+BEB_m@6%Y2QR~Fp8_b)CaA*Na@lzZHLXUiAz7RI0Gjvpi^-3SE`LP z{uf(pkl-8{8yn%%(+fY{p+M-Y59qAurvGvT51Rdv=xVdGYK5gf^FOvZP-spevS_Yc z*PMR=`yWEq@^w!$Y|-+5u$q)(vNrjtq9{%eG7|HLqVbjKS|9g3`(RBxH$2T~kx9{E zDx|>`k6|n-*iQmwzgh%wAUC)uhemmP*QwBQy4f=LhIO-jY^?6f9ly!l0bZ*d&ZO{u z_!kflp}3!<4?oM!8NwpE;aq2P5=bH;9wk~wz zRIG$*p_mg8G*mq$#CC>UL*c7GuA&HO0nAzUs~r+|W_bf_o3HvZ8kjG06;2Hcmf(pL z#2$na3v)9{cE6|rm3a|NWx*7vslJAP5^?+_g3|firTI+@i2*CL`?KchwBe7?*g&;Y zi^nXVp1X9q0%6&SuZeUNyVM>%DB2jd;BwUOcD`C-sdIoXe*c|sc3hOM-k zeB$f@sQzJi1?%m!$S3BOWVmoapmx>g906w>6$%q0L5~gTN~R19ct4RTaL8{)L`(Oy z2xAKoN?@!@4b^@AXiQDrdld0z5fu9MupoxQCx=r<8j-cMYXXX>>GMQ!NRu`^7updN z{hI%X3eH%9OJLHo3_K5VBzx2&bOLzW2MFKnp47jG zK=>664kKT#WLrOtBZkP@)R5e5gj2epY|g9tCf+ZjsB43;HHN(+LtStDag0I9VZ&KF zhWKy7Xh@-;h{1{ejW2x1eUwP{aE#v}K^ahkM_8Zo2mBcUO$3T923y63B=FoZq`Oyp9Im+G-3x%%z7^e^ zH#339?J3q$Hiuu_&k7O*Ji&R?gEsglOMq-ed!JCY*`twQCSJO$Iqq6OlKolxFoQ^3 z?9eMj^i$3Ig>|SV3Ch*IRYSBRHpuXB_xca-o|YN=k!R-9Pkqacw;+@(4Z~IL^Cb~m z*Af;1>tdxU`7ZNYHr5O1kv2FeF0{7ZB$QH^SASptQe_y^m6tTO*Bf#-2e~Uc!RP!3 z>U6*xgwNu^thngLDPIU*y?*z8N)@cj30#DOPf({vOa!(6B38Sua#mq#%vlu!7Akeh zMP*mEok>@rhik`EkN54u#KtMvzH=Dqe;^t^B?O+2zwum^p?WD*Q++{{mMa_r7MJV` zCC1&Xgs-?-CaZF#bQ3Y~BqG(6p3U1cJ8We^<@u&yMevwgrcLNa=(JvM7UcS{Kc5cZ=*%2={yFCtE?A0TgKE+lQ!S1&vMO()+@u z4>cIZt)s`5*4XA{t>pqoV1x?iiU|VZkCdaCq3&7|S-CQOe%7xX6jkj6%1zh@q2z+Y zdeuXcd#weYDdUaykmDEPB5nT%w{8&&sdnQbkdLFa3L`WPeOWmd_#@ia#fls^oYbpM zQLAp)VDaF3_Uu2nMU#Rtq<8*!Pqt5yD0F4vUxT6y>LL?0A=YI)u~WkC+}L)l$Qn!F zLvSef={4fJ94aOl7fBI3=m@_Oz@}n%o$c~O&-~+HQnAtJQ>N7R!8JeQ^x#eSGUG?| zd`8|!#(^s3aXD(b?>HKVG27^@FT(ODL&QB1@nW6#KR_is-F{}IGE0B&ze1s0Eqp;9 z_tVT)z52{HWZmfj#!%s6d4qdSFL6GJz=8Rf07;4Uw4kP!$$w)GTiv_cXrjT5EdK72 zRo&+t8f#~geqE-DR4)0GI9fSSUnc{6yLasGE`*N5=>qTC|x}nPX6?EZ;KB50B(@Oc%zOZTSKi<;N-e zbl-j#%h%V}^TUD9VI7=(|f zRF6JdS%xmrwD2dsa{pg=dcSv(lJ1F$^Md5v3~T6KkV6rInP zS+>#Qs$FBdDi``KlXM^()!SOVx^4it9B#&FDNPb>S%sc%4CR2+wdpmBF1kZNdpB_S z#l>jYlIk*J1b_1#)knnp=FDmu=OB`lTh`U15n3>%4HaeM)2C9O;6)4%tlF|6w%ace zk&ertQTVg#yUQB+Inr3R>&s4GoVqfr`MK|0p7ZCVc`fbeI6A}Ox%rod1u2!N1=1$a z0Qb>zj-Q>UXJiYC1}B{Hf(8|3M4K-#7N$kvf_^mzHxm6y=06NH8}$R%158d%q9cQR z?{^K=_4SE*cwGt0548x- z47hY>p|Y_oCUOhVOQCjppA$i8TZbUqg6Udku6bvBv+km~@4I`A)`p}~-9isnCO1bN zs72-FEK9u$Gsw71x!?l_qfx$hCTWjt(5R+^YJ9Z;_#{c2AB~xP$4MQy`ocG7JHr)6 zxQXU%ae6xKUaoJ@TB&vq7}4pf<++c-gT`O1>vGGSW-sO|7#9Sj(g-E3H{o#uT;?sp zP;Fi5g!$y;;t$QE5AU71^5sTqo41FVFJyby2i+Rhnqru0WVf&z`6?-}LSNJ3WS5WW z7|~_-M;Yd5a4(6Ct{QMS-^5PbwsjDqcNa$>7mcZCu+{i^TTEU`x3IVd2|At(3CQpP z*Lh9YzaEZuC>T;M<-q;AGHt;%DIy+26*v+hU^Rx(cVCac$&w(rh>>F&y)A1xL27=u z*{uQ}7cdX--Jh$ja$J{13hIzKH*+qBN8;q-8cX4{DJ(9g>q}AJi$QX;EC9o**4EaR zZGMmrUu`Qg0N5ltIyzOTT(itSfI#4Rb=!1Y#6=~^;IcPku&)8iV#zFg3r%11&{vmA zedEReq%}@6KYnDES#8VNJq}hFL`+Xjje(Jcl15_r^skzw+2^~{yKh+zn2ClQ z4I;}7nsqK|w&e_JCILV%oVb?b*ZU`jyc2W25a%r?K01xNO41)na#vNSxbEave{xEENdxqX=0X#`;_a{pf|H&c=^UxIl_h$7Vj@k%APaq&efw?mn|uh1sCf5iKiS-hGEM7M7KhgKhah)@q>s_N`UgA`$+cC+mib0h6;# zqW44hUS6U>HuOs#5haaZ_Ajr#yUkXZd9b3=X3(VyxU+!~Cq9h?Y^y|l7kna*tt<|& ztM~MK3TD5+r59Nwcwi~!S6)-o0)WL$xZ{z67uqSjPShyG0yAM7W~Sr4UnsV}!w;d( zhQB;jC%ah53L-ve0x|rmpw{=Bli!=It6s3srIi-YHzl*IliKZ5QT5W`hC3T2Jg>+po8A zy>3D3{oU6_%fN7rRu3xQ7O7x>Zi&xfyZw$XKc1hjEv7M~ zB}N?rls~nfr)nn9w=%UBbSR#ZQe=Jtsyd$JRlmD$-p)a%QMFlqg9wR(YaC9^dMoXv z(7(js!83yjlWTbOJyBf<#vr^8OB}~ciqHW@5L}dSHpo7*Rb+g(|3*ee27_BIjpo_8 zq>tilcEXU!?RLU|QKGInTykTro<;2pA_JH%+hw}gTQH)L%(9Q-d z|5cQs&c=0>9o0)RoSx7BtK$}FLp+M&4Vv&YQmG~&FZ(p3S{qZWD4awd_9#XL4u#gi zwd>00j|N}+HQI-M*g?|3U%nxIL(0mPDvfL^pHE+L3O*pbAAncT*o9y4g=qakCbcDY0jAosH_8rgRXw5Nt(D>#WjIdf1bPaOk5yHS*@0OdD`&umOCi?oUY3CJeJc zF3YHPI7kuR+=roN0RX7zcy}FI-tT!9Spw6FoD(pN#cHA)q?;(H!!oYn(F7p<7r@2e z1B`|f|6>XSR60fG((0J-#2y#;_y|>k(1aQ)g~CwPP4=4A{o_y;7_Q6iZxxpN{AnOU zY%-frb^`P*7M+U%Qw99H0WZO6un!RMZ~w^brxcXYG_rw;fwmYwfoFkSR4{E{jgO#4 z24^Uj&lTMH!z{C9Z#d2CiLwkjKq#+4+^48DDohg!Yo7qP3=vXz@G>1Cur>Z1#qeW< zF=j`PuMdn??JvpumQt+5AFk7?Eq#y5m(mXggVfba79C|PDA&+gag0-K3CrYGNWhd0 zBm6Ah4o7?Piw1Iz@Bw5W?Qc|AuRcyMWQi4d3a20ZowCnKv1PEyIL5<`Myv`o$rmf{!K8o#_duT~V3-g^TaMN+D$7^eK-T36Td@!s z@u=v@Wly3>eJ=k(Utzk8bMp8-Vc8HiDL02V2A%1!Z|{yeM}xsAqAfKTTU(I#<9UK* zG)am?8GII%jV_w~3{ok5zsG+CPOEn1 zh>1TwI@H!0oaXKs@7CH>K0Xl63f0ZXYG)iU87GLJQ?+Jf%{Ffu&910=85Y8)H8cZ0 zNwWn9h9>PqI>`P=1B@xMeWc1_KvXSyjOH#(Tsx-1}tn9h^n}feC}5WvrBn zviTGt>qYYKBqzFCY#=}!|4LFUf=s_e!%20la2`3cf>l&jFcy}t_UN$5zo|JeB_)Rb z|Hyjluq>SC3sgb@QA$#zTS`K@8)=XhknWOh5NV`4rMtUPy1N^c?r!eB>c`*r-s{6Z z@&NC~?9QCCGiS0|o;q5j2NpzQRp?;629w-;3MN@RETH;-$La7X6m5MwwrCiYQx?_| zd|r6jnMqZ9Jz{7^b&S&MmUDvfi^CV}%6Q+tsKxbFpsYbL2>OyuP}xD0L_o#4q(VQ2 z>Nw*6(UR<>-#RO7_ZruIF;(7q=B1iUellH%ypUh06D>e3d80V!7RkN0%#)Q>@ zt(wi9UX#2|N0Ck5P^e$mnUcR~nA?(XIOxH2Z&^ zg^&VPfNLR4w9Zi%Bl~nB-xzDO{w7<2e+#9`_U`0;WgkArT(~C3YvE)(Lsyy@@)y~p z!5I7yjU6UvP?y}Z^ypVG_3MA0?vd93@v91~6R900xQ4Pbh$@6bg*Yb`Y)@2VgF49NmQnHEPGG^Dr^^SJ+P{zqS z1#l$kT!O?QLSD$9u6J%@=umf0cx?EufDN9}Yr0VIX~m-a80s%o5!&x*=fc`PRN&m1 z3~~cP=Hm6)RS*2@mNW2lg!fY*78_%&EsIW>Xcu^`pI&@AuAImeLl;!4wmk-&zsU8o z#o7NSs0lNLW~jp;z_C%1cu%4~C>zh=_C-x;YPdI2boBZ{D=R_^UpN}P6Rbq=s}&#R z2dvu!7Y_|v*Hsgo0fI}!8Sm?s{m)HSN6{KIQIkK$7HW2D z_G5^Owl7xhETGMJYy;7#FT-6%e~MdrWU+}VT}eQ1rK5m+yWETrkqJq7#rhTCIz1`i z!Aq2#sI1)vwoD~?@W1nQhy(RjhT%Q>joX`F3G#|X68D1CQ6Sm${;|3BHi7Z5mVtb& zC&e3)XuTjRIwp83?d*_9`b4)U@cW*g6R^-ngK-nIuxtNJ3|fj1%~&zx!{CAUTenN{ zBCZ|T^iI3?&MUSr-?&G#i3F6?q9{=98IbypyBL;@RPnWaIU!tTfCj0Vw_n59x6fux zOGbdSfGEHn=8dX6w}*ldRRD6d_7&UZ4)noB z$9{$`*@yc(yITOWvsPDiUNVxNX9Sc*xH9w($RXYTjFd6zqpgY3 z*!f}EeC4a+FG3uE41GS5jXTsEO}zymzr@R}$^k#H#LhQ+HO9-WUX!OptZTl$Pn_@0 zri#jVqtifz#pE^N1;x3S=(YKxnFZW>Gf*U0HJx4G(Y`wV^K3qloo-f3 z6^*uE520~U&$6-Rx)XP?ZcjL7?;@vi?Up}+GR~K76`F2Tx1Bp2OA_Y}dVQ-ML3Y&x zQ*Gt?eYv2h<;gSb;qZc#!8KFo@1Gx!r)SsA)*spUE>-gdGFY^~7sx0tk9diTdv+@9 zP6?>4wLFopN3@u}2&GkK!W-NQ{Setxg};WK}6oJ1mmLRaq< zmYds?Ats(l)5lk78xzVCmK{-1jsum!d#Vlgv`qjsn96)Tk? zvGM`?qv%w6$4+!!irLcmyAP|bw5Qt>K}v-x+TMuPxOGET4=Z83xMrB`);YmqA3Lxe zB(GlJyM_2IkT#0)D9LQ3n>N{~#|YfpdRw0huK! z7ex7_Dx>fGq;SUt@F<3_vrdf1!tgd1!dtQ)>Q3J+=$dVd>g)hBEI1Ioed$k|I8Aph zoywDJzhI~Q@~ue}sS}UwP3zPNL?Gm5w<2`I91CWFM>2^m+;RO&YIQ5HiVuryQNH(6 zE%(BpZ!h*HFH@Y-srr)AefrXgu%Es1v%`D0o`U-gipXk^XXmh3lDBo| zG=5=7vNhI5F5fq`lt8EYqUN)kFY_-&q{L!4R*%Kl9S*^o6SaQw$wZjfr8<%vlrlq+ zm&#ghSsPa;tN7)~F8g)YiD9;Q#2Ps<99j740%hs~>bnMmy7ew3T;QZA%Nq@ z&>1hyuONl@eC3K{G-&eQ@b#3!Dm}$Px*DpM+N~Mbw>>v-F3RELA=uhyDb0JB(<^8& zm)gg>(vGp2((ZE?y?0uGTOUfyag!ylE>?L*EpvxaMfdRe$t#=J(f3|*g)`((ClJ;S`QCjG#%rR%Y?UjNMi4B|ikXGRfr86jE(pOdt5RBWU|3ooKQ zd%BWXd0f~=Rqsw4t;v@BBsleFBiH(~z?prHU6ALv`2}z{6rN%KBaM(KNXWyH7NsJV zEtOv$v^hJl4&vQAkoKcjdd|3K2ond5~r_iCOE6Sk1}5rcuE&3Bc5!L2Dgu`);9SKn|JE_+cidyzhF;3~SdvR00X_8EA#=Q&8U&29D@On%4Ll%IX0Z0^#Ppxw_-OY*6sv$91c3#-$kkcxD!tF8jJ6Tb_Rg1t2)5*R%Q#_((yaDaOyS zUVQ3Y@dp9cB_vN<1{c%fUzW+wRK6(UZSJx+!n3nR16tAe@igD%+TK8XXwbC_<51oy{-Io3s2jA z{far^wS|kP z{f;v~?w-wOg7JJBl4;*c3O0X~?|(ovBT?&*zAE7>w-O`VDmqmmY8ejC*=AJ{7U(9Wuos^}IXcbfO)ir~ z+o|;}wpf|kX>$o@r!(FPP@$fofZYQXdMhvgtr-#m-Pp6o`>Ny++PF#<3Yk zJBMS#Ii`*7;q6hDyo?rrxYmZhq{!PFcnrjs!Rf%#{!iOe5Nv;@v zV!@W7sNsa;H6@+^BzEs;bDwVh5ocrrU6?$Hk0Q@USPM9Z&vWO8|MuV;474>-Cr}^m zfQ=8S7B-sDl1@7dU6AmZ+ZBqg06E@8H3#2V^dLsg=K?HtFP`v!ssdJ5C7yH;o7A;i?> zc#6qxuz*H*iE&WD`@HUo3cwk3T;`yU9qoL!&p;Kx3`G5aJ0=(5zbAdbp{Z@>=UoR2 z=KeZ)Jnrx_{Jrx63Httm`a@iWTBW8_ap!;z^k5hEGT3fDOoV0HQJNn@ivMuxJ!z@& z)zo{Ydp?spGpOfm*XST=oZ;yiosvMI6lbCGyWqQ&I9`NSYH-zj09h0&bh+u$|E{bX zgmz6#Q&9SlFT)!*yR9_psX#uqe3HY_+|#G$9O^O6PGjmieZa{DV9O>dH)h7 zqkbe-9*V2!mXJ?DATzSA^!j1PZTz6yTKq9#V}un%-s~GL?BSpa>$eq@e`6*%a) zSC2}%X!du^Ppg>VwIfhWzA$Z4U|(a{F7Qzy*6JmKWD9u>5CK#_kmjfR@0jh9eT(4< zE+<69V527X9p}_Cak%5P{5CNqmHzo2CU12;C+|Y$+`%1`FDL=-1B} z&09iVL;0O+qn8NWTy;P?&%YIvfd4`@S{tL3Vnh12<$~k)#o8Yywc-xrq!@a6qkR<4 zKr(;^r%etnn=XW9Q~Xd?l>UEYeK!;oS)rQp#IOSeL8gyN&roRQF<`T`tBm|KGfApt z;dV+c)A5qBUwrzAoDcQ^o)oY^Diu2uQP4Awmw}rD$=|$+FU9mzJ+;_RZo~#T#b*qC zUp7b(I;mcR?0@+Q@f(F5Ljw7h40744=Q6UjG6XrF1g(JRR+)x?!`^pm!r=qd!d?SB-Q>As*s2V4Uh%_w z)t%_a750k&@<053rKf!Sjv=(&x1FW&nz`uqj-IOA8U{EM znGgO)o2qdSD-SP1VXrJcXEqb>X~Vd@NSf|TYaeh`Up3?O;F(_cdxLfJE1^1|VNU6& zC)r}heU)ln3Ax^wmGvi3kuU-X^9UKYIB<;j?o{C#XcaIPvn%E-4_XNNO%cd6(Cj z(Ww*@suS*zJgp*j%EO0A3l}Z+O^L7F%1<47KeU4%D=AdH)hDr2)mKFQ9Ts!VR_Hea zAz`lv`fF(M*%&%mD~Zf}|8Rd(MHpmgixw_Tgp7t} z|0&L}yu+QPn`Mq0rYzAnu5rMgPu=##rUAY|b(ewCgsxxE09tPVWLj0jm1Azt9S0^u zb{XzAb6;)PWtkb;o$2w+nJ4b8O!GP1xv|Rbk-frDi zpP6Z?+L5qh8obK~JQOz`zgy7!6gg+zg|`LZe-5ZNiBk#FuZM^=g32E(EN0iF@pxmr zE1DXhNWqPqkYhMoU$zG%swowflsYw*gC?>Q2LVB`=>>=Xt=a9ygurZD5IR{j;h^mZhy^;6Jqn8{vnAb<;KI3e;Q9K;ST(gIrF6eG|OX8_h2I{2y4K$sN3>@bG z|BgTioBf7^>TRY0vqaV@r1f=ZuDDdNelkIjP>w zRhmMvF;nu1*-TuE22U<3-5F}Hf_rF@S=KC;d2W_}cRkDv!Uh51 z5}SIwpZo%|Jv2MNE+M5escz@-&DjIz3~QQYsphL+aYQFsWzX0}<;Nl}@|SG;FLIyy6Gy^DFWKpm7*haF3 z`s01-CaN6bxoPKRHS4D7fsPtpmpKlS6Xpo8&{0wQQ$LdUF_6nr;s+rl z8((7Z)-ff&$@Fc6c;sFLIQg-gliUM(k+Fo6Yy}%RdQ%_l2Fj_5FV;1*fpKn~!RkLh zS7m3fCchp~gLC`nxZHv5@v)w@dF4pfB0Ev4U?=l9;I8V5Jhhi%ZuEBiiTjoW%QX?p z+$ldbOGAljqN~;1;LWZw$C7-ssG0-9A-zBQSWLpi4c7$4p3FchZDxd)%(wC#f*d35 z0EMz-ro*bePqbpw8uC|MAtjI1_b%G(fQ`)~je67(%*@8N!#QAs6h10uY)dKG(9RWq0@?&NV( zpK&f?=(&iqn`IS|uZut`NYxAEw3zy6=H;J=#)p|Z;{#&9w#_gCnsm@2EwUy2FHoS= zd6)W4>-=Q(_n1F51tN1j(w=KlbVZ?@4>ddCHUG=s?0lK|+JYQs&da>LT&`n)0UE_y8*^rzLv;uwdE+W`Tm$mqB+j%T5|!t>ZFzR) z+|N^7@gOm=W6sB;jxj9#H3E-Gb(%0+dOva-3uK$6KKlmqiV2G`6Q*nH}bbuS8ooUtv(;cQ`gSWVwp|K$GBY; zeZ6ERu{OjaoOeirSceUg~b}6H?i{XSqecrvP4Pl!pRYHZ-;|d| zs!^=8==a^!Z>{ExGYD8_ch?7R+>c12EiXTa31{6HgYpXgiH(qKSyG{2OevCRIv=Q! z-F?P4pm0Kx4ja!-`(Gooi@8rKQ4H{aZ-9YE%1%hh~QT!g})e% zkP_Ch^qu9q=sbk*@*KF*ByQ0+bp-873$_Sv=bheSL?LAnF{NgtYn)q!Xxqi+l4}w` zUSJ8AAy`n;0&n_1=Ea?28BKQ3!YoT@&*ckoVfn0D-gz%m-q8prBz+|J(~0}>|f$0*UP?wL{?1F`RxUyL109OC~E)DNG)p7O<5&*n1SXUV@J%3c~lpvs$2 zk)a;Kmy$Xd%FyJ+6^~}+mR`AsSrZM+U3&~CNE960@f{Q!5Pp0NFb{PCg2>;j5l;`$ zR$x?sW}Uo+8Z)mT?bi$BtZu`TJaEw{TvZ{XozVq&TZO!Un#>+WTy^q?OvCdz?3)xz zLF(@!e{shl6%;;{jYtn#C~4BrtD?I?F5)s~t8%aSavhQ?l%>3o@nj&0 zAT4I=>!AFa$$Lo(w$H%@R*L%Lfs_#3Lco36m}WPC)7hqmOHObc^(p{ zB=_2-&CgPPfB-4S=uU0+(`Xg5(GTH4B9mDiR|Q3OiA7xF523UDQI1YR5YuVR02~C@ z?3*`;f6=@vKc7$>Rkl2PHs+F15^L->9k$^3sDQrmg2dhUsSu{|QS{D)t&r+6i6VyB zZ$LE%|1lxmoc4*!Utrft4(-e=nf>CWFLgK>t|;#Myv)P~z7*G8>27Bi9#Qsa6^br@ zHsV^Da2y2V9>PJ*Puz}#976vc0Z@kRz<5wn8O;{yBfc$GF)MiJI(zT1<@oesOEj8E z>svD@mhL*FR56=POK|bu@?%he2UBqsel&*eHj!lYCp7I>mzT*>%&@UQ?lyn_-?wbW`XH4`X8pFqTbERqUVh9K*XoQ)D z7rZS_oDCI;3t?g92j2o;oxL zPs3FSq0oMR)u4vmzp1)UW9&nf&-a!@U>Y&xG3-urrk&na9~Al3^59!(UM;-RUnh3Z zV$Oz(N^d1S(uO5GEiR+}r4=!ip8z535rSjLqmHs#jA5tOB zZBX@A#cl6Emi+=l@7coRD<(q{jk925iY7y~N?{~(=B@am8-!s2$Z)2)pg{UQlg_h0 zV?!hKQbK#9*56_b6G)HamoRi6)X#k(x}v2e_)a?1YFo{piXU_LUF3;S%NCUZdAOC? zwU{TYSnC)pF#)F&2Q_mFEad;->stoAQCVetkk1-hko97o7 z3SyUHz&6p>K|;~GFOwh9bv}O%ffXa{ftL*?Q}trx1PcfG8b*cfx8kqZPIHsm>OnJH z^>4BNB_Ea4Ob;qi&}O=ly?8DL1l}pdU}_S#3s~E+#wGEKLVmGF1}yqjUmQE>pGEhw zCn4M+?j^>P9#V2-cP8m3ZL}Y`P;r`VHd3j^<{qkjdR4>yM9bum!hib+jRX+d$w!kocUcB&19Q9-s1eDURwedH*IHbD?N z@)L?jGfd=hgvp9chS$=-JGO9xW;bz6XLAcdGZpdQ;&cD~3lyZS+JVWX!}0om2V|rG z{Z3;mg|?_XDHSuigePr-b6>U(YH1eI=r>NcEJ?8Tf=$o52}K62@d zXbFxN{O?b&LZb#*b}POQo$AavXq(+q{xL<1`xv=j1gq*x(_W=P1x#h?kRL9QHe|@7 zFTP<*ToW5SflLT8r)2oeG~dBhT!TU7t-C4hHeCn8EQd6;dUqB^zdg*8)e+)B)o8f^ zZiOH(wvbgCa<(TCj}S;PfbC_zmNxMHYc#XIp8jOheSIH zMZ>GlswtD$v9|7N>^e!`F}|y1kL*Z7|LVxJ#aY1Ei!U6f{eu>a>=-h#dqxAK|3=mU zD@1dpC*Dq;1kcb!>Sj(m`N8J(>xUc5OmkjnpU{4O=L6^s$)b(%(TfnXG3}8i9jOnW z{UDPf%tHXiXm`YD^Pe$d!s=~)8`H%=lh4jE9V18A`1H(Vqs1?H0hwg+=Wg)d zd0RyhlRFlFco&9Tk?Z?H`Bbs3Hw&0Il$yUCE+^FEiwC%FbRu#Xw5n%gHa(SACla~u zL=h{xE0fT##32VJInuLvz<#ihY3lD}`Jj*ByFb4gWy;?85>FKPy4==r;R%=M`NLciHjXSrqCI=q(y;U^N&vu2Uk`E5Pj8D$uY&t$VGSLqi z{hllpxD@OHbqvV=Tfj5ed>+RaWXehYeBh8+Iz3}w8ypSr#XKveBNCuds>Sfp{5^tG zFaidZ$4T1Q0|m(T^ZpdR1Dp$XWs>;2u62Xm2H1MXBf+`B0?<-uhqDgfP0v{nmIUD< zKR2WdV<2dhG@#;SUa&M>)4Zd@flEzzP;@+K5fG3>>TG!EL<|jgZFo#3%wC0yM=l9X z8fFBYtQHIa@dG5Sz!oR&$r^yc?S-lpgk9U?ku55N?a{hDR*|eur6(BFOBTpXS5^(l zJ!V?vQC?Hch?*6ws?9KoYy0O1-qkXpB+uw_QPB-h1rhDEugdP@Z_2Lg5f1Ho1irV~ z44)0JamfWobPYsDVll3s*Z+L%TRB3soK^pmOkG`}g(C}_nwGZX=Ab1MOVbewXj~Av zgLDDB{gwxJv-w(70{2Uz6!+_`VTQE;MFt(8_)Ci=Q0YHVCbiyZPInN%k@Ae!8Lgw3 zwz!XD2@`#e?rRjf18dpJf$6Yx#*cm$f1SNM523B($dw%p|7H&tWYre-(mlc|n|CW* z)h9l)3{E}Xw?{V%Az`eMwv1&LqYlI|MLq8^vuEvk*>w>yX4`Rp^@k=u-JyvtnwRz}(@qIbb8Y$h@VJpi{hdZ~juF#vDssVce>n z#KVaI;{=n)F426%a{WW*+0vwH^5S4{&>f4R!V~+rASvYdb;SlUm=U|zQB6qkK|3kwVQ zB6iHDR%u<+lrg8)!O4S6S&qPOI674S=VyrXE&1<824}S}fNGm%S>wQi~IE z>_qdMj)N?&_P(sxb!b7Dw4=X1_O_a77+HJ~&vtEh z#~G;r%ACX2^uPGGV=FCnDkL8>oY6+%#5$+r45jiC9A5xk*Dte(u?dUaG?B3vi!R8= z$&OoDu`fHUbv?`G%sM)ODor|QTZ8MB6=~V7PQ`D$_u*Uz?mL zo)12^vk<{?fAcAw#87!G-pO*v=!r9Xx77t`BQi>|gs6VacxqTl!f=*imU$H|9l5$r@e0?Gxl3A#5i>6c>lX4^|z?gK$3o0CYl z5Qd-;X+)*9rd@P&^fjxmlhHwkD>?=SKL@EVGQqy^N!0-3rvZGs<(Xg=Uk5b?%$*)d zkRv6hq?CQsy^05j*UhPtR3B>l*qbmS!BVhDqU|T6gFvb$za>s{(EC&`FzywHZLUS3 zPJnq$Y{2RE9#A9d?(4H@$U{Bvap>Wy>h0+{+I9H;lSK8n6lA+~xNf4$IReIK*W9M@ z15!lj@$siStD&t??vCYUMZ+>~@vGsT>C!eB8aIRb*2)^*l5(TO++9?Cxu2`9(W?gs=r)Kz> zjw!Ck;)TiwY?9;~`!gNpVrs9`_H^!4Vl|^dm5~7TKBTaRHFIWW=G>UUV}9CrW~%HC zHK5k2YtS2UV6IS{#k6F-W5?cQ!d;;*_|CxeM^j~$dCi^0kaw)v*N)NVhv_cvaC!;< z35>hI^f6?iWHg9$1x|IKE<6P^W3cov*%P?3e0H2MQ}>j(`?r(Ejmd;KYn+gHl3y8Gm`S% zGFk?M`1W_S6yf7(eDLGyC}X=%M()#*9DI}|-=e-l`VB!b0zvlg@J#HR1_Ei*Y$-1O zTIk|SYx2yj9LaTpk?_9}V>#;ZUh>I5tbV(ND$?h`Hn7{JMO6#)-O|Djx(M) zUEGbK>bzcqY7+7b6#et#!~3uin!z)$Ur~Z6>eD;o-RSQA#t6&8(A(^ppUSP8;AwJZ zmJWBlRUG!V#P$-rKl^Ek)(D0m=nohpa!w3+%Pwvafk@mdggorD4c+{kh*^A*TmL!k zh=JdT%-`@Jh4kAKH(1wWItKlwp-{VvCI7QfX~A~~0_a?)Ps;75G2HDW`{?QE<2QSL zq>X?fBq#Ibpy>`!nLRCAm(_XoCz2gPk%jKd8IP&7%u=AxUgISYRD0m3blo-2yjW5~ ze)s<1lTsJ%IJ`*J=k$H?6Ulue%HMD*;rE|HRZHA?dtz%m=J@-Mc@2v4Id^WGlsWev zlo{{SWFjwM+~KEu9lvc(@EOz1W{xX4l0Q#I#116Ss6q*uyiQ%Vv(i}k^~ZeXMfir`Y(y}(skD1}a2}`E*PR-*`P!L|2L|YZ z_;I6~W77zI{)AYbv7w$8tI`i*bsV%%$^i^6*egH>>MLk0me$z#ft3avQxpb!z-St2 zpM$Gbr{(T^r}A-E@E=HN`w5!=OrN8=U+GI+ZGE~{*>#d!uKM|ldVEgQ$E>^|d>jON z_Qz^%yWq!bgFOo-i=(x_5O+hIAEdJtB{g*$$kp}Zal8If`ur6eO3VEStg$Xm8C5tDH&zw<_zMXG8rcAMVv>o#hoWxWjl$z(EAke=>J4S6Er%+4w z8_J1MLZ(7Q^x3R8ib_mIrVGSahaeMG8#G-*=7+RiV{kgw0~w+#lj@eweZ~a;T32$c z=Lr&n>X(e`0vTD?N&Z}|idS`!IcXRA4%^ieSYp<;asF&uiWww-K7|cxDu4l13)Im5 zVCZ_~4ZMIc-}w(*MrBFgH|sxtF7rNI$^3vCee}oZ(8SQ8L>1y=*>B3W+GZ%(Z{EPN zmaG)l_{)^7&Pg!8#IE} z>>@KJac{6zOwp2g&B9?PuH`1LH#;vc!SmAQV5ojg}RUw}O9j-){VGk<>yDH#;^lEkO%PLe<^5HoDk8H@{A18>T*If&;+-tppfqbTrX{lco>sQxnn6X<#hNw-Y@*9z3+EKxB!9XN0q*JCx|Zift;H`A|Z z+o8Adblw%^;WMZX3bN1q9jO&J)YN>Dxi*d3i!ZDCoOWkUfv} zVZP13bh(bUiFEDnl|%zI<+?1XU9Z4ZGDIg&<6|Jm^LtGBtvUNd0cz18_52hh5 zZ%DI0+u%Qk2MSG03Ho`S~vAzEwYc7#iI~_An=^&!1i4Un1PXf}9l#0}%0g+F7 z4=#2TF@a>i&>ruqKM9v_;`)DwEe>+C8Xi42-jE!c_BDJ6j4+*OU}0h!QEuvIzbP$S ziQN2qtGRYIpK7A*{QTp>-BiYDanIqeU%CZdOQMr0aCwKzCIP)UE~B=Rzd15M zkS2Rlx2rg+_?iTdzxm3b+qvlw@D-au;6$VD6B*CtGE7sc->cXwJ)k7{P$_oe3^nZj z_pX&B6c#W2I20G5YHGGU^b+|gw1Q&rBlz(rh~)AO?wfnTf|pS zYI2QuZ5)<)2$lssARmJgj$Ev5l?sEe_|3H-2YxdebFcRFj}3=;vLdi?>w49z71mw9 zf8U?%(@(^ic93BcKH4B_DDM0t$v%RyKT%(@0J0~9JW$I1Wsd9OYfPYv<1_3xgv9Uk z^|LJE^q`P&CdK}X=N3uBpgr^-zau9I&6imciCs7s{vJFd*0Y7$AEI^krA`MWi1ldH z1TsM@b|~e=mA<|{>q%8Ze$122(JaJz`@NS(vB}9r7y4ev9Dk4K;cG7tRmj>-66JzC zy&W&njAe!i5==Cmhyv^ZW{R&)Rkg;fkgJWEc)2%)L6r}6=v zXGPP|mAb!nI2_047>;BkdHTLBU!Ri40ew4$PH2z;c;KQ?lCa6(5&Tz0MsGezKu$~w z1@Md2Amf9!J@aA*WFq+V<3(a%%#F?1Oj7pGMlz29UX~CNp2d`ePRg7Gx$}+Gk*sJb zeA$0NFS?K6(AQona>PMEyB_yD{J{d=ybQ>E%Eh)`9<5pTQsvk>8c+WyY@;7U{A0zW z&%GS?#Lrk$(;Y|UT00qkN;kuB4>q&JZ7l2HPu_G!JbA(-@H>=1i3Elfw}4AlKqkU@ z<9J#&xjVNtdq0`kWAm4v;)54!NLLmZCqRk>ne_n^v7w^xq@Fu3p1yHTvMP4Bjw}3N z={)obb;{9*B=7IX6L?`Wd2{kao{zN^RnI;Jopx|jJno%nR7&}9bqQi0Ewtu|6jw=) zzBLxs%BV6vas9hX!_X3LVnK>W*ETBLPK60HN};zd4*~dVuZY$!-nQl>GUtdR!Rj7U zRR5<1@bbNxGV>74pNrVbo_sklg@H2^@E5gP*@#DH2*gTi3DDGQvoAid$i z#Z7obM7nSkd<{exG^b`-26a+LkIU;fp!pULE15IxyKx^lY8;yzjn-*IDpOK z;&T9ssgcpJj%A{GHUGu_f;DKGy9xpt5p8YlcBgp=bb;7g3|d&4pJ|S?KnE{A|Fx30 zESnA8XbnzbWPm%H(M2$nd)C0qlGf?b9VVVXKK}+1g!M?IXnEY7u~1+w90t4r9_4`W z;7!A3deG@vZ*T7*NX=Q>%m}qOKQs55+Kt2x|Glb&#_*fx!sAg}gYv{QvdTeY66?BS zLBe7L^-NC*oL?BbUHfpf>Qv*cyFM+;%)>R0Mr~*odPp%YFnyCe4cpkunX+K75tyv& zYtIa^{dH)z!&aD)3PYJj(7ktngG}>Rh1M%tLCm1QKwIad*Vd;Uq>IT8ivf_Hx+8vE z74+$+;5HMouqaN6-N0$16>PaZmY@N2)Iz=8i5dR-K%yVe_7HIPYufzDNp83G<%RTN z`V~1w3s#@JV{b2C_}PZ&6qZ8YQdqHqoO=_JaFOL)*{*-N zV|^Wn%#iMk=e`vY)U^Zm?ff=q;`WVYQ5fae6F^hu_#fCR=w~w>l!w~wOm5k09BU^{ z9hZV;$$-q1s~OX2m`a*YjiFV~9*`?gV!g1c>Jpx?f1Rjv?w_7Pd-0>N z-OQ!KgP>|q0aN$1C(57)0sGBtgiMONrbe^RTW`AH*GHRJ*SKrC6-JZqdv-miqT85)d*fL2ZTUT2 z-&^#E7(>}`WF9{F=pxoc6#6K=8(;iZIhEo+m_ao zqoXG_FH#auKAKgW5T8-bBo%zpYmQ?yl(gVd$dR6CQi687y*!HJbf5zrnK>5NUIA?% z=b4)U4F9|@Wvh3`ee|_JD2j+aVNpL;1IT9ae(Vk-;xJLz5YExxt!~rxndw?s4K*}u zw5plLGxwXOCSG8hxsbS6K1|JJvLhEmOTCL z4W|ogJ>yu+6YxXb4!^_swa2j!wVRvFp{-25=ir*;fR;DNP8z7Tqq5(f>2dVlQuz#M z6kBGfvq6ch0u!u$!5$~kHZ8fplt@d_A)69m)hp*r*i_^#J5=F-o}@C**%M#Pu?vNg z8cSN^KF<1c<_qTtxRQ;wAoEX!$4A!}{Kr2#xTep#g3i10CG6u0+T-TU^ggAT)qr~9 zuw>%q%&Fd5pqjM&1Cf5bfX+fXINoM;p_{ID8Jf0TPb}D$zh-;}qdf_iy8qQ$wHrd* zCziSMCbhZjlxJt1L99J`%NA2Y^f6xMEk`aS1n%$M*su!d3E;-Zi7&E6NAAAxZqoQa zdXa|t>79Sir!zip4&orU+NB;h=1D zZey6#OMa!*o!6VhrDHb%2eN~^0aAJ~d)ojRPDo7*8qA6L^^BMwnn+HbAy=z=TlS&iUYP|-r#e}j9 z-#Y^=bgtVc^&zitwM~RdRN7H1*6P=%usi=Cay~dTD`8WVyPs0NguS7Gocpyf5CL}g zF7Z?zw?mM|y^T>V4e-lXu^680|6ukcTB)s)ko@5AkB?#QGT5aSodc8&HjH6&xIQwC zp>!?mY^$#fyU?r|LKyvjJ7!PVFA!jHI`%;|X$^SHkpndBT+Hb(?SNxeqetUrxpV>hLEC50xfWlcjKN&>6Tyq~}UB<9co=%xx3Ga)lcyI5!z%mpv=RXl&b+G3)h624V z5>@F(;^!TGW!p(4vJIzjw!G)eKNpU%UAJ%s<+j9LERcD8PXP$ldBbWgYcJW#{V%fh zlmZcBAs`#3v^<)sk62r-o_7Z0WMCbZe#LBoXI6zy{g2aE6a7|(QgHVR4n39k>GKZi z;k(nm;hTJyA_+>e^@_oO?Po8{F~ipW+p$s{Nbt+ZHF9vF3m#`XLO6v>n=E!XHzF~uHTJdSqcS9B(l>s*jK_|4*sGc!d$x!VTm;T_bf05 z`+=hK`1shiL|Ix|nxs#cc6)>p4d%~Uh!F;QVyc-?>hRs2^h^tkC1x$*t-~`T%$|;X zC~UrEyUgDizR3oU2=}|gZ`yN7>wW_TEW2dLqa; zxLs0I3g}z^nhXaX6sj83$j5Sl^xf{}dqfs*6GPCHD&sPp1U1*3@1C3fo4O860Q}2=25eoBDgd;&AdQ)ln_Lo1YmjnxxO4s5lQE zdjx%4Q^Y&3hP8lXyGe)q17p+56%J+7nn0%Ame(zurohzFtK5kMOsj}6Atm)K3_$amJ|R>@~ca5MCFu~{mRQ3Z_i3Rz9v>x3~~hN(9q%G{|@vArTBIz?nDgL?Wy=N z$l7}i=Yx;^EWPM!0DnIuvi_!uEsE<_;qo;8x=ppR?djgURlLg|h`>Sw`G5oThP(4Q zJLG8~;P6GmVFBa(mSK#EyzXJo(qoPsB@X`2CZnOrn&gjs(8VKnQe4d^dTg4L9QyUa z5jOAcN%|6r4QM3LfC8^o3O9hNZ}7fl#y5TBKQ>!k62jDgtTUAw3%u%C6KdD{tBvmd z{`uAZBcVSdk(MMZ7wm^ZeP)_l(otU^BM7+-aO+=O^Kiid_#pg4p4(_uhwKGTxXa&D zRjLm$AU*fETF^?vN5HJFH_GtOUQNR$6&K0+x0FK{P!NP}1BzjC|0bVZr-Z0Tv}E{5 z1>fbpNa5PE|1MQpqOijw%+c1FV$h}1c_jpdpwyKK>24oZMN@SNa#H_V3^UYNql$+5 zbA3}e2+MGFs$t9ik@=}%Ggxw+7J|YND^X$y&WAuR76?IGw)sSQJviCzd?t?B7!AbT zmLF_Kgs~a*;D6rfR!5#(pY8ZT5bF28T#GFlG%B8^v*?$ov)~al?a!I+6O8DooKLGH zKv)!q(4BhCN;qNsMF0CWIyd16M@yuY9?KsLk0wgEqC>;61Mq3>@@GWbLm=L1buz%( zwTBQnfex62qfOG88=sHB<*<8|WvNe}3g&YU)%;+V2p<{Hy`x6&G zN;EIcGGpNxkc4+(qkUC>-+-~GR>|0rk2yhg0Up}NQMT;N%yu(U(O~Qq#w6xHp5vP! z0&H|Fd_^hz3yf@NJ%k%Rn0!oE-wCW&hyWmTCv!b#H`FT1jD00x*RDqS|1kBHaaC>I z*B3+t=?e!=- z7s^CaJdb!keYpL3Sud5>8HXZ~Ff=a3<+5!bZ7YnAEpGvgXh1&*4%`IKNOWE%Qh-=@ z!hZjV9Rx5Mvm0)}%CKL7KieGF&6)~|It@giX;-s&IO^nK{rQ?;QetSy=B%PgloM#0 zIriO`-+*~UZb(S|?Yqu)7$gO0h?93+21E{MfkcOBQ1kDUW%*j8Ns?MF}DQ0F*6fkOH5-&UJtk+4|o_?E^DN*aDwF#UN^`#e4U7 z%wxBFh`Jk;-)R?_#7y~#NdLYQ(BVK{Dhdv|Je7GSDy%!1HoKHZII&#CF}A!v~rz@ zIcmWw%O!A5!vJxP!L9^NV=`b5v&?|wHJM-V-$oEJd*XlQ3RiUjjM};<_3Loc6@Ka z&P`IouL~0Y?nZQR;7E~9sOQ_yi`63y_7Hpr^8b5oifciuS<^rnuHaB|TnSu--A+ei zeo~?_nX5%B1@RG16FuW-iXDZv;8hT}x@w_@s21?DztcwlP{M%g`{qw71L=@KR=;Bt z(tlV(qwgd|{`zOtiNC<_W&4}PBW2>JAZwSP>zdM@W=KcpAI787Y6r$h=*wLk8}EHx zGuc|sb?I%gtAR=6VNru;wwDo3RGW;^@BMSZweSPaKg=Hs+gMZtm+5v6@9}hN4Cy=p zoi&$;q+yIHq}q^So2LNWhTp%RIneP!5aB6)zWb5p5?ym?eyb3vvYfI_&0$P#>Uj&# z(U;-#pq>dWKb3wh5WrUAKwcgGUU2v_f#MBl=g*UOn85&Gf&p42KwR3aU$hhgcpgE; z$;_-@x5Sr#VY_pHd5}=w-XHi#oE3VqbQ_L}r&_K;2qY;DU)8gk`)i3zPFuq-qfk3Q zOL@8UWvVt!9VXt?UK%RAaG*rgvN|@N|G(pTJQ_xWqWAK%?A3>hr~A`BApa@kKqTbG zg$ zf)F7JbdG^z1dC@h`nnU%g63TWPx~+{i&i5+;2$^~;PHt=m%DIN^JqiPLf{;Uj*j;B z1W12#9Fje-V|TO-M0aE zNZb9bXVF=xv1q~X1jqf|DTOWag+>smU^gBgA+SYgcf)gzScYb@PSt3dM?S{_wwCOf&b`2#`*D(XAi%~X)i zbWh)Z_DFlSr=fcu8ywlxsgEaimFSD#cu0o!NxTc-D;Zcu3dtg?={RE?HqD%?!_Csd zMM;3Xtf!}Ep+8$FkTbS&TI++`KFb?+YhsUwvp!KgNn!q4_u$HGme~(%IH29Gt!$RJ zOV;H$L&PbqI2SsJ?sgtW`j-tapvYnjN?#^V(Ww$>HX+UZe0ZVadIghLXq>$&WJT<{ z1%Ip~y-2ZtbtJMO_3WGqqmO`t?RH(JR;O~lJ#p;f9Cv7MDb_6d!r{q3f$ zueIr;++!XMT$&Q!`MR{)Koo~JkYodxugt&N<_0HFR!Qxi#5 z(Z<%&_9c}qc*XPC-Mtl77TVvUHg*?g7C?u0X1a%c4I}7%?;5S^7SCJ`+s_mMW(<4*u%RWeanrIdC_z z3#N)fT>Vmy5?moRpaa#8a6%_CTZdU(Tnw036u);|aW3>|m;KZcsym(-ed%X)elI&Z2ZxBi(^M;Bvh73h(Lqx@Xe zH>o2IHSmq(KBIx?1~~(1DEoLXX0+^Ivp(p#cN%}Nq0!mi^Ct>AM?0e zH^1nySnjm$@Rsd1y!CqK*Rp{zoqG4^-f69}dE$f9z>LY$$N3d-)t()C9nn~?(|T|< z^NM}XsEPWBBgqPfB~rtM?yA+Ysg>06S0JN6eCzh}hZ6upUdCKkgLssHS=yo!62XK` zPIJ0}>%i6}63%1kOZH(_w~hGL-w5#R(g2_pa(_>>dwK!`(#{erk1s7erKThl-1KYa zDF-7GwAdE3<|C2KzN7>Pf!N+u%v&s)HKtmS;#%&reB?D>{5Y3TFpsu7e?52=He$4h z##-CMV#g~jDCu`gOKY>=YgK788rnZ+NQB9I1vPn&FpUx#Fdm7}u)~<4srAIDdv0JA zzKWTu-k?`l#o}_Plxor3ZS>i3c!u}HsC}JasJ9@ZCnPiI{i0}>R=tB0>5=IP3uFOu zZ&Fj0ayEmP9q`B(GV0sfWDOa1f+7L7L;p~sp*qkz$fQ#&ft7y%M6h#>Ho3g@x?QmS zZ_5D=j4t5zRa9DP79IZe2^bS!;@Z(0{-&_P7O2N`0Z;CUE>s+#jhEP<{rzh`wvUYY@2$Kn%lDXfC^lQJ*_!fF^Vwh>-?=bDc^N{7MI#g4JM{w7gWPa(j^ntG zfKKRL@9E3?<0d`JU7&eTH|py?oc^?iknU?QvOEFTP_QMd*VubLFP+4z)M^yVi4)G_r7KP2pG?Io^KD?rbhJXWPDIF?C-V}Eq001Oh0*C z^dao=E6@J42hhjiJeUNwg~32q^J&`~n;I(|6^pncZnU`UK>MB{xvwi|Md}SunFg0X zXfhf4<}MNKyU{Ex?7ln5ind`)wxv1mB>yI}23I+-WrZ^kpWeo;-=BAYOD%!w%L(Y< z1A<>iCl&-JAos1UY~Ki>0RF#gD3MM*^Ql=h(yy>%?>EbZ z)Gol}wqs!Q9WepNz!o|~Z=SJ4Tn^o5kStilFeLURH!GEO1p5Y@hV_q^>KcUSGR!tW zR3^7ca04pgU%=vBwbbrVzKc&EC4gyB!@izEbBr=i#?oqNH~fAjW8M%iwMhi)K_L%* zkAGVjr?R|3RCUnOH6hmm&C#A2mTdJvBr`22oz(nQ*nMdbb%fW2?GlcOUe$0C zwpygiF^7x{kowBb0osT+X(!7O93@mX_%L_b%O~fy{6+kugwSborcgsyU#ZFH!+X_X z-+w4kOgevO4{9XUGsrVE&Rzq7$jmCb!2bEO!+32)1+o7FfF?1lN4}Y$DQy_Q_e044 zW84?gFmCGNc1} zr-3x-E+jL2b{LcQ$inUI?SaGT*NBFz+;JFZJ2flx*dhEVzpGO~|AXi4hw{1BSu&R% zWXpBhasfdM_Z>+fOeLx`Yr)}LjYW%wbS>mnncT7mdIIQqrCCGH-^qIz47B~U3iGzK z!l*OUzHeae&u9*D+Br!>mIq`;^+uaf6{Z>Jo!~!dXo?pA_2V}DtD3lWhm&92hHe|2 zg+qh~GucXk^L($>(s401A8b|-Wr_`>7z zGWbIT=oPy$T~Oek;s)Sqt-WKU4F5ii#|0Em8-fk4-&!7E&l>Tz{uG{=-hfi9gqD`r zw#}zLln$f4y+xr_$Q-c*XIO0ZF;ehHE2wjpV(~LaUe%v^nS5LelI!QOy#w0S0E?`CqNLmcO|eT5(bU67>N;H9pL&Pu_C<5+{U6R5q(~-( zJQ{@_3d*xT?>?Ja3JFWXeiq`8TTiMnz^gocS_4v*XWREloru-<}aC7AL+Q-iKMMa_t6mD_=B#!4+yj1M)Y(_2V+{%4i1klvJARXdq{0TwEM^ zhrCwIA7}zK3Yl?H(Ss95#F!`~1&DYRYuih_yc5%G=_KF;ShE%lu{8>kP)~OxxARq?PX({fMct% z!1RXt7b*h~jHFDhP7>!wmVoc&3}Ktepy*B*aKT4*VIraaMg_8X;8ZkK&gF(3s*O7( ziJI^XKZE#9D^}(X&K#rbZb%#y?*2Zf7t98#^$0X!ZySK5nVkaL(id=MZ8g=C49Ud< zTBpNU>HvMzfEVvii1FW}MzICnUXor#(=HEA=Q+}@p=8-DP|W>|d=<4~Mf}>RE%?$~ zXt58s;GYak0stC#^nr;{QHtmgRsm$JEWrDUz&7mkc)Yv1BQOBq@DHYDW{fVEd*pQJ zM!&c5k^u2cKa6u>lJwnc@U;F&UHhycoqh8<^}~H1rrrrPtJ-h1E%_P=gcldv`wW~V zJpk7t0$`O0J?~>Rf>H5Q6|36Xv^EJ?&2cT;ZjDf~3yL9&xTXosL^qLq7!U2K_!1C% z1(wLJh|UDL%du~= zC?`3QxC`5`Eve<<7ND?*0-4@oCTa!n4UjKs0js)n&r}Fas0L;mJuUY0>R{gSKC!y- zTwrGF*ltj>K6;4j{Y6lr&`najXkB}|4OFu>iwiS4hm)DBOeRPn3LS{$C}hHwfsqkw zIxXQJRyaj-8U0aom5GD;dCEW5n~IKE+Dqajhp@ z&|(ZOzNZ^N#`XiStm0lq+-n*gS11jp~-zzXRr-2kw% zSZnyr7ONflZ;mHFG(G7WT$RpgQX1aT`ohl*>2GaD(DF=7fQ0%@KOxHsUdUVy7%%zv zc?W?OX`std^#KqH!h>a9G{?|AY`Z@xy)iR2y{w<8ObVL&OJy>lfy#6Vw&ize2Ac-+ z<_~XW&)(rR=pI|dMlH}PgEUtSGlkL(I54a7o$&shkSXMAAuqYNH1*Dn(;je9*D0XG zp@-$xe|HQQGQ8k`si#a2;}zJS)ou!k;$FckcZT%mY z3W#ukh!_M=?CWuBUg8E)*0;zx!$P*#heWTb`FNjzJGHov$wA>(ZC+u=0e|oJcT9K` zonTw0$5BS2-3XEDb;7?J(i{r%VO5Jk3{$k&AW$k7;VE~(AC_1*zCH-rPITp|H~dw#$J1bUfuC(-Hi>2!F(r2K?6r_>?(M2h%v26uRgkn5iZnPoW0xiTRB#6GU`Fpdd!aNj# zRQ)$>MYAmjZuVGRpwF#5G21S`jn5mw=~H|C<2D1G5ei7C0<@B@Z%K18OCl9*b1}9b zHJC4Zk8FR3^MEKZ`=lJtrKuc`M)5mW4=}?meCa6R%jbjby{G%oiHj7zQvHK;{U0ym zV#1*={^esSO>i zNCkqGP~=5a&z-yNnGymvB$EEg_{?ErcqRJsy2cdorwKjLTAfnD-5?Iwo zIPpN9&y|_%ltN%J{C06?OfXMSF!lQH!-{`}Y@v^g^*zx9vYkD6Xof_gyA7KQ9$X$R z)?CPszmIYPXj42OGuL?DAX8zpK$owsp17%~AhxX#vcr~+Oon51eq{b%2FBlqX1zS5 z7uJssGa)$4OPN!g-#Ng`N4T-m9qh=^1-W)R!hyC!8_ z{&?`Hx)ArgM<>3x-dSxv`v9|Q)IGl~Zf z7J&?gY?wTaeQ_Nr__>>xAYP3LPU&K*+&-r1`))}FPHaV@F@c?+)toWk3eq~)@{@D< z7cC8#p93>?d%jjeIWK!~fqJbxWu=oA8wTW&DT#~@9Zm)eh?1$wKX4)3=i%r(Z0g?U zo6g@uU~U_LAD2^ES=m#^ko+!GSFfHvAUX>p53$?G#^^BrD;sHON$U^w~Ni1h=#S>byd7mkvLcCj}ik0S;UbY*I zm-?Jgm@voOs-T@BH5eBeoQb$?aJ~^=M)RWPDrC7nz5aOP#)U^RfO~FR$a4e!mqPwm zj~}A*^4i*wKx)=sUtf=X{vyA+TK*n5=qrIT$KAXu04ZwSW2)d|m(NQCIlyr)K8DNj z7!*7F#ubPW8^Cv;4EQ6MXEA#B8?kb^>n*ex(R?T4n1#0@dvJhq{?5LM9)EF zk=*FO52al+DaL$2?OMOZsaJ{!N(V*<1|ZeoP|d}FIiKEkxj@K)a3RlBuqlTTi#dIxe6tA4l{SOUg9AtHqW>bh?xMpNAz_#_n_fH!97bAhupt7| zWM>Qvu1Ml_Z)yYKVT42Uyvt3GzyOG!gR~WUuX^?Lr5105ccs_??cbr=oVHC5Rxqn^ zXgSC^YC>!SfX9j&w2Ju_=GOWkl_P<}927v!KGWcdp@X{s6d-Gjn-N{S_eY!Gxsy1_ z+HZhq1IIaMEqqT$7GuWrOfL#hDZp)b%F4=zsY`^eM`+H12scL`)SXNPb3>OW55F8m zu26y-jkGk(>xUYW3%^sQ=rX`Ma}dE6r4wQ704@Q|$Bt!>Id#x9MfXp(-;x?Z_#w(! zyZ&sOr_1$7?uGd>9PWBKL&J{CJQo@kqX1A-zD?Nm9)QGO->8hfjkF&Q*PXb1f1O(P z#-iSW$zgEj*YT$14bTFZIlk_#mNk!5j@0XMbWNHa?5t#S7y^*}(S`c4Il5a$kNd{N z$8^!K9$I$16-vz@b&EPhVGc>%)Yorqh~XXmJ{k|0p<`=z*2K}-_m$ojW!$hTrDduDmd+p=PTFg&k@~9Ci>;=%BvlyHeE&?p7H#g|_W)#|KZ*+kVYdhZ4an_g}+TLx4Z6W;M&QZhL%@N7ueeAN>s{+k3sDkL$$=EYt_&=>eS zCk2%1PXVN^pl#_QxGMW8hTgkfBjU2t|1f#)VC7#~R>(wWFzhpbR+kWKwf&zkT)g8E zum)Pv7Ojl}ny0GpFwHG*33e{sS@89WHukm;4-cyD?t+WlHeco;t)Tg%jET6cdK_f= z48`G&qGiv{>GNPn`&x$GjkcWfPMD`F8V(qC15Kh7xuk9%!C9!iXR=r+NFlvH#*dm zoeXwFlShm!28^aplWC!lYwpHai!^hR60f5{Tid|42dPB&f?V zR1)<`NRU+PC%X5X)Ce19MfYIvtDNi7+kQgZ*RK^LlYqoImT}n@J6`Mx+Qg;G~e;xpi-(6wP}A;r!VhP7qSHEP#EK3~pW?W0`#FIT%%Yc!YDvoNh*-dY8l%9|lx zF%;E2)WgfV;Q#()>n%cFU6`$(m1^UFB_4ps%~rfPcEgm#_w~ZhnLFGl-g7>=8ogwU z^+eMUU^E(K43u^<$^2ik4K<6Ng==duG5#Ks2b1dT7mhc*U4IyOFR~9bFAriJKXE(L z$!UhSyde}EmDnwwK6qiukR-27i8cz4kemBQ+Yc!Hq=8WB@)w%|lD`%qe)^v5Fnbtf ze)?*(;zET+bhS6D4{S3sx2;-Uxoao8(LAPZ2C!tZA>6$@f3s9#s4+Ba%6Cqq=J>za zoGYZLaP&5~*m~alz9&a9Y2TiAyHs39PQAhqFVoLLu=TQUbtH@S^H1`P|6jBL5|c_} zx-TIycmP4cnhL5=?Ayc=1I0JDHU-0KB14o_@AFqyUKPf?K*-|*AunZ2VHa_LHbqNb zZ9JSVB3=4tMa6XxfEckLVbAz2>=_|jL*$1WxsQp>D@2f~P?;xC&f55XAFad=_mWv# zpf@YsuDU>Z7~5c^nNa^P6A)1A`2%)l%90@tKo#bc;Dx5=LGj~~SY&^{D=OY z|F^~!sB6%KS~N5ZK;5=R1Ko7ldU+ z65BOlbjtqyfIS76Jo@S5;&`)1x2c7jCbkEJABP;-ze|YmA250>=z2bWslA<+!VeT8 zD)x6jik=Si4Tx^JFnNEybJMJ@n`ZL+q+v2G@{V!Dm*~&7ULi-dd`=4tGh(Qn?;TbA z>22^cs|CB)64{Wj?h8mi^R!higz+>Uj~?P%1`qXx_(-%fi9#3Z5#-ild3K|6b`RMn z>IRu#NzM!T0{KgtUcOSN#p^WLNl3Q)tFR}Asz85_LXqxhUUDr5Ph(?5TM9pviET`> zy(1p$#Yam%P1#M`@A>F5o!;Y1 zCgk+_H{^`Py~<;e@0*^yPDlwg&(esYO8EoV0T2f{@klmz93saMt?pfev5-YX|%3wpin@Ggcd-n#~KA{T3nnfI}_%ex1q~- z)15~g5u8Z>iUM@tlJq&D$}F>(!5>D~LpK>^ltr@_{>M`G>VspqNDKP~$7>6Qn#4%h zsEu#hmAa+SfUm}MZ_)Y!x{8uNHd)TEAJzZ3j~5GvR1*HN&4WCIF;dYo1*oal@5Hs%suGap$|0 zQnf9b0#AKBeAb7MrpbIsyT_2bbHgI-(ueA0xo1 zy@-FPWWe{rh$Nk0fA-i%qs?^Y8hmnj0l<|2ENX9X+|nR3?}3loq_B6UZ7`;`$Nm?w zA_oSx$xQ7bN?o#nf3&y3T^Y9L2n3hGQdB=knok$GKR4yWffc%kH6Tov@?c;SxVH-Fk}-fI)`4X01107D&z5qXAhgdV7EuF(hbL)aS7Q%Y zU)=9=#{ktVi**uU5XBu!{F~JUZ2ky-gH+V{(Yg160Q9C$WZKqVZ0l>GJS@VP!U;M! z@NO~%7iarj8SXs%(y>PglaDhBB73$j#Li0Fj z-|@X_`zw|EzThIKD~>#?2C}40!aUQQ$&GbIxTz#3)JE|344M0 z_RNWMs>yQn#uIV;A&$~KAHabI(8{%+1x88nCSHL(6fXI%U@2;`xp*{6jHN;=CMk+E z3tgJtNv8F%fJ*}F@!HB;qqG_^?VMGq#dOb*KkkA!Jufz+aXw%25D zGUjY>|G@a;s&K*$AT&Yx#=Y3F-CBYP8=;N-V28mVE@P3-UIlynAAb1nB&X#%wdE>c zlv?oxsk`702dAGFu;3Kp4`M$gJ4tvY^ubwJzl>C?c!lTrs29~&Pmp^Zt=10Cu z{p5MQKZs1s-jYU)lqjbr-r@49*oytp$>i>EDBu zbgh<3G|`VUSHTMowEuE)==+ds{gFtPLGX>vV&2P?FNF%_C5VzQn+8}#7T4%hLGv*br#+K$6=~RJ2SLj-2kXHB zVcoJaVvGrC+k+awjakbA^@Yc0^b4+c(+24`PDf09Y>@DEQf!px{gj;VQog%Fc&xn- z2jg7FKADm)2B-9&ek*?=>6&;_R#esE%V{}rb+mDmpJC%R*ZI!yS5XozSy~etAIrG+ zF7gFk8lm$|{X5S^id4(|5)Y0!DXu;GfxLi^X z{RY;05xroXwLk=SxmST~Os$?)D?*I_BVQyw4?|iu@X+m-V(9Lrr36um&4Ln|D(UFk zx?+?s6UOHiB1zoCaTlGtDIa1iq!<&-DFz`4cr5``DU$U9Tp?7Qi5DzK2-BL9(b$2bhLaTL7J3xa7bFvMPkPKmB zlc~#f3CdllTTuDJn|?vQ#HoWQxk2Bff{w#b10+Y|tT3J7F;o9dyWe33vZMADpi@rKX>;aVYjC~C1s0+J$)>x{2Y!+#Di8Sq(~sjLmIpsm|wb?MK>;@VPVZm@I3dM%eRzQhC%eoeC!A@Z6s7!}i~fH5>^ z4enhqR&)V!RHS%e4Fc*}8|1>uMN<{laBHx)& zT|aciA}IOFh|mW~w&>HRdy@8Z*uHY9r;^na{|z%4ED$6$N+Xk$+CT$&P! zGRiZ-2mV9TH7yIG1N~BwQ?H(2_gfo8)T}7#zczf%F{?z^T>S5jKqFk{i>8-lZs)Pe z10^jk6{+B_7Na+4+^ghM4=$ufv3-#Dpi9-ZQFA8ASRse{&f%ho>$>bgLu|G4!&1Q~ zytEc^Ql8ehZS&33Eu5rPGiv{^;JWrxc=>(ASJI!ckPgv8vKQNF8Qo@w^gk~EU247d z?}-6I>Zi;Nru#*VWLrlHLbG*oiSP*Nv}E{piPCcDFqh($SY3$q=L`s1b~7NedO4X$l{+nQN4}d^b>anx4uRRzAjO$&(Af zN~nnIRt&2|$jdu$v@#szW}s-C{Q9aiqnt#1j0jQN!AeXb0H#z6ZY9|lOIon}XlojG zf$0QQ{J|@K3e*)~d?IH0gOxhzmXhh!aaKld3fjp@v9#9a z3g&l%L8)(UE;OF?W%YbYZAtyLV=XoDTSx}bJ{5O5?)ppr!9+B)_oPRCU@#zGn$W~r~i1d%inC&7HwaVo34a<|? z(TgT#^v}7lQM4$?DnHeiB$_3uQECO?AS=)gl+I@K*KMC01v~Zqhn2%n(vwM6eHlj= zOihatu=8c0hg=#N_Y>vQ2v^sDIh$vItG?4?Gis=LA&!1sUEMFhj10nb4#Q=H22`B6 zcWtcgF{z;J`PT-EL|DdVkx$noYlIU2ITDvPPi>E!@ z>1UR#VOd8!2=RO!gny7(5tmuN;YsO9HhpVJz8GjUBwyE#K+nZoRb|m^;i*?H-7uu=`?XCG2A;m8)GA!SW(d=^LAESJWEnMc1S^g2aa9M-tUk_8{mc%^p^ z%FyrR;zQKx)UsviGopE|iSn-SHs~@)Y@5!fD?7`-M<|)b(L}ozjG%J)O7(|UPF^Ri zrki>rG0Gk?h>@oFXR8g4L|8qXYXb31#;l2*H6(vA{u*pJQt`)`u@Z?n*tx2xu z^ijBPw_@1=P7=g1vQAtsS<*73M+!^R9NYDyKbv!ug?;tMVB}MS%K=xG!|*uPmtW9|SU^%3Ty*DzJn8s^^qR;6qnP9SyO=L;x6P-V z4&uQzKZ=uQ{i;>k-NdN$1?U+!vd~F;_Vrp1t2=+ zKi{QTv``OUHP0O?sk@iKd&8?XQbbTw;W1Tor>E+c-*tbj!IHb|NGiLmw6NpM$hW<(r#SRBasgE35m6LV{X zHIuhjuWatO`_Z#LDq2YGQ4CMk``wJNBQA@IXowYJ-;iM&!-rm3lUkC(^Xi-v8`6#* zQO$j0ZFeig);F6i?*YgiApp^x0AQ@(0?ZM>JL1FE47Sr{c>9P{`3rP&dSB%CjKvHS zF@&lO#!JlhVhSp8L!YD&D>#iYP1~MeRND#sAKHfnO%pADs08Ea)PK)dH-EDn{5T+| z1^60N&6;!BTuGgL3tfZ1W_^kOV9N1pTg_nqy9Q~CLS$l4IsZrh9b&%Y&+)&`LVq48 zc`^8+D0IDkRcg4=@VQmA~ZFTxXi>rr|i z5@8k~6A+6M%3@pI@>VrH*IeO_W`m?Z;i0Yeu>BZCea$ix$HEeR0@C}+uX}_pZfwK_ z2=z|a^Tu`B0W^ewZ54^f#F@~m9ByDv@ejb_I7hIxrWu&Y3{b9|I8gv;h)SI)R+HU+ z&JVVRBXmv4ufB}3mTW-N5Q|oczh288;9qByiZMx3urr}Ov6Nbm+*QP(mck&j!`dsa z1m>`u%a7Qjg=a4g^@VPuj(`uHsX-tyLqo%*Q(w26ZQgAoWd#M8?+q^B-DB%5fbJGx zObSN34F?QXcjmdp2|)Dp)2;Xxs)^7~F27jm#3bkCVZfOcZdG^cKK!>#c^|+B@vpa+ zHL9%x`93}_9nYZb)x3c|*zS8eQO_lDM1|&gRg8sTD_6K{&9N%+c%Q97&s;GXjfTn# z01PV5x18S?l-lDHte$Q%ZY_symMr!C{AIK;XN=O}YWhj)cQo+M0o#3g`*Y2oK$|F5 znJcpM^Fn}utpunyZ!N6m5uK7P5a`uG)H;BU0v9mU_19{3SqEsmvxUNaZ2Q7iBEt|* zgoz&+^UpvpA42wd*yVeMUnVC%-7(tm4;#+p(|$GqY{LR^hAj+oE1v)f5QKV6%*@>T zxk1#pky!`O?A7}%|$PfwD=r#zTe z3YUUw3F^!7{?ulAEK2A-aY71qvd1nwC`?4Rz`UyQ)j*ZCR_n-kB1^!`#DW?{tCAz7 z4lWts)f`@v+$AYrZ{lHsK_+xJ}EP{pU+658;#nQh~K;g zpQKhtjhB!uVBjBPRF%5M*Tqs_HwLKO@F^!b6 zWe;Gt@~s3@(m*%1?u2p`GTQ31NEG(1a`KtslTGHBrR_}H6|uTr3s}WtSO-=aHH*Vz zr)~Gh=WjLvp}Ex#-bv^+AT--!K|jB^ST@#RrjI!l5)cqz)^{aSn+#>7fwdJ1Vu*pX z>}Y8b#0Z`9v}%Q1l-lkNN~3T?BZ$njC))rIBpbk!rHAtfw zOjc*M14!_j!0hX;@ob@G(+#6zd_E6uLbsm+Tie?ftmW!tzf~9q#f3|zT16g#h;a_u zb(?hvynQ7Ik@BZY-#Vl;Vb{(bJ-Y|8#aAvGTi>P#0Z|{7QN=vU-Zi}%I1=y6o!1PE zO8yC$1057;nc;MsB!>{A;BN~gDlY@}4*{7TckqeY9?l!ps4dEzrBcGFB%K3r>2rM< zPUlwQSNXad-BUSaemB#Ccy))^T@^ca({V-48m7s=?qY}(=j8LIXLALXOQ${Q7w{*U zz@2zq(VyN+kLv7)D3mBa1*E3c!2EmZR3C~{bJqGm?v|-$m3Cx;J6CW0~3}SytE#wf+J=wK%;lQ7Y^ssF} zmVepY-Bc?9j&a&*8zyuQutLNt>0v&Q^blA+u!?_9jM{r$#72@@jbLDqZMHu8ljcW! zG@nA5NppJ2Y#q;}3$h$5#{fsGSxLi31i`8ycKuvnT#*9?=!w-w>cND25*Y^3)pZd$ z(MBXDT`;VNY`IXDsMTcyLzX*RWFAmAL;}&vm%|wDSPst?-+h#7@r%+(u#o~#tBGr# z=Y*CYPTU8Ne7?kxpJsoR$ev(dQ?iobzfmfy7~AOWvp+_%+aJ5;`b)&H8qqL}m#vB; z*#4?Oh0UH$Ni7(Wxjv}r%eZbVNOp`e0k(^J%!Ry{gfY>naC+4!;?Jx9#JSlUsxa}hqfHoarR0~UdK~Z zX_n<%c?h4ffU?NAhzR)c6dD~So}5?$FA1*`6*fTk>k)jq_MPWyvHH#O&7FPP$^K2# zSo*&5jS}}2AY3_YEZu^j#QxbOL-GtxNCUPApRUgIC zziUsN9vVB8?8{`j<8+!G(nhNO>_Hf}Jf!~VT!HOq&)y!Zq5!BQ6 zzK-dlL_JS;;ENj0P5d-Z-@&JKKEnGVsp!YYBI~o};N8Pd7WO}nGtTdQJ)U@fxj4`E z6&oa0yP(S*U;Vr(tR;+(;M?AG|Cz!FdX^hJUNngN_RHQNPwK;!OfN9t@=z{5=%ub? zv4chYb=jD>W!F1gK{a@bS;_r{yXviGHAN3Ox}ODMcD1t-^xv>3`CDSZcHVZ=KivjB zL=;0J($WSTaimpqU)|fGi{3GX2L#wS<@2U=o9*v4%^fUn%0eY>+`Pd+>~r7y6eR%b zber6AndT9%6=-?G$&^uUHy?b;AHgWl`+&4PamFYN>TF%gKWU?Or5^fu&OEkvE0@6d*7*Lj`~t&`Lg zv?6kD*z&BKP>SczikOZB?2mlE(!q2QqnW!pxlIc)9K)@dN(F-+Ek`S5uxC<++jY+u z=lAR@S5NT=G5Hq2F2JMLj#0Y7tEG>yN6rLCN16>INRQ041^ATN!UU5n)?SP|=ZBcn7cVB}c#YTjpB5VhjS z2!GlMTdg87dutFoKD8o~oaI%UjQqz?a+X7Dwh`3Nh?~W*L7&FuIFdu|KUsFar8VAu zzn6<}6|}P{uEJhJLTvd^iTyBZFf16Xii;d+d5bN%cbeQc*Zf5IzV+tNN-G|HY&KhM zy8`oVpc*onzEHSH{EqT5O2Mg43Fgx$nrmLO&p!|vl~Eb%jHakYV%CCL%l|8vN`D3S=5{ zPoFg@>T2sX*N!tbFxSp9H^hYw==e$Eg=4+HM%mJ4>9J=T5-)hnZHo;SDxH$K>t`{71U|T@)qJIVul&LQkW7S8&VZ zf%w$CfFPAz-*g=|s%%8IE35aybm0AL)tlldR@hvu;bzM;@Cc9AMh&*a@h}|i z5URI*nDcEfN|{a`qzrqpRxu=AQik{njKPIk^gx!fNH9w!Hc$Oamd7X}H!Xf5Vvvmd z%`voCC&xe{;ZZF2DLfrIrx2cHYPbe3$$UM1j26nFf2z`+Lf6sGE_rC3<|rrO;HbVh z&XBm?q_@1|+M7yB2a>1Cdb1g{IdW%)Zxk`$s#?8~H#9oBgJhj{@_87@B>gzT%$VR{ zGd1Q&-|qn(D`Ywb=BJFcZ-Mp85=70KcR{bY9HcTN`=B?UzGyJmqa7_l^sGlrf*q}I zE0@AC1M0;hZ3xx{ex>Qq|2X0{-+em9y~Dp0J^9HHtb&SHUa%gS(WL@gt5T9b*h|r> zkHspb1=WQ=*6))@7}MogmO!uljO~P0gb|dg#w0y0sW-|v*|G1>j4fq)ts9f}U0jc) zP6Xz)I;a%a#)>qfH7|p!INl@s6uc6v#(_nXLvK6r0p*?%2#jp8j{doEeNzs6U@hTD zI&_8mHc|QuhE_>#uUV6?zn>2MLeVIh+{5knT;B#0Z~<@Ffr<+aGiVzR4W*BE4GI6^UPjhRCB z-v31gcH<5=U24|L@;>7+iZ-+wv(o@ZQHhO+iBR?)_3PQ?|IJm2lig~ ztTnu5uHhuc(TGK(VdSB}F!%KL20jZO7VMU0iCc9;XyyVt1MH#OULe&dWx>Rg0hvOY zHC8b#cMr$UK~uzkhl=@%KB%kK{d$nc3rh4ei)=U^iJ+tyYPEebLnNp4fUx^zbvlv= zx<@Q#0VR>#gg-}U;7w?rA11i(`^9fo)x-k-Sc!x(>GP3EYqx#$wDoo)@8L;1^1io- z@hF+IDq%5*QfmPOY=Vc<3A>ws37xXY^+2jkb^OF%N!e>U}%I!`_TGmhE!QxBe(!M>FnPjS;1p zxuy$~A&X!AC5A2e)_cB;sQ3#Y2e|cM9+N0yO}hwXGk=n$O4!G3ZY>yPbO5)s#XuJvxWK}aCBU7ths0P`)aA^}Xa&y*kVrluTt%UJw7{|XXd zQrpP(*@V_M4Cl+Fk!d2m@|&V(5Y+JZ>Y)`FuURCI{WS+yrV_}c2A?!#&-s$dg9&w$ z2EHXg{cBi=2z7+}uBhE^=& zSRjibeRRBY^r^zNDtT2s7c7_VFKY749<+1!912E`ODyA5H9hE|1wa}3;>E^#fE@x< zT$aeUQ0pkKNYpuYnay>(P)+wl0WXCl#@pq{S2AU-P76lm=ZmdKD+_gu>Jy&e!T0q^ z7eZ;%Eu0|z?VV(Hk?z=M26^Drxt>_!l=HoWb|fm`VJY&Jox@qCOPeuJ{03P2#pk;P z;!vh1aJg8}vr3j9Dt8*u08K`$;^F*f_!L^C{Z z8JJ!VK60{9xHwJx@f3r_+wIA*{(N32fv5~~Tt)LRMZQw2HMlJ#ZHNl+tfi5o{so|x zQ;MV(yO_~1BZIp(FGamC_^h~Qt?T(_E%J8Z{w5E7s8*@vAPUNW5#GfJ2^ckGtONbO z+gpDGB2i1bwKR3LusV<O+={DC!OsyY5f0@XZi}E7(~LUDeq8A|ttgEnaXrPUY1NdkKu4!dD^f zz*Ui)NJoBSP|$Q8-bg~s7m{3WZ2T{qXK*e_=T%@^ZYM&3s*!=s-94; zOCz~vpUYP=Q5qIG(u3k8w^UHUXv_efnD=(9;CVxMWaZd%9%HFH!Msph_Ik(LgC#0!_nKBo8oI^`M86O zuQxa0^wKA-fI3|^y`fl80bS&5Yfh~FoKBdEUOypf#7d+vST#QI?S+((rTfLjD~8=z z;5leu;d92p%QS&b4y!M`3q!XRTEB~g5g3m+8^n5|8=?XTrKk3Hr(go-hLH=AAz>%5 zq1AAd!Ct;WvqBwxt~D4WLtP=%&!%5c{ox+Io^bodag^9bo%y{kl?x@vjEIegNWg;?DhX z+;D?F<8E9nkgCly`PBE{Y?6a9seKUOdGJzbdYW;kbsr(lL=()keCxDiL>*6HO|-8t zhAdr`^_Fm^eq3|h zbq&MWrewd48e@JBsxuh@omEb{>&s z2m(=sI$L{=c`T8CkkS-76bC##bXUm^;X8VxCz`%dGw$V|r5jRvE|ihH6;REq$$|5U zjaWzh=Y0ZQH^+mkajZW2GI|z$pV=|u3l1$)`V)E{+!+LB2$gt!Pmta-CYmZM{N|wB zw@Z*86ED(b-fx6*l&TLPyZ0k*y&v(SVGxoDvL75A(^I#3I-bs5QQgZaXBNl4km=># zQfw@h7oF0|feDfl-N$+LYjURWs9E`eJnBiJMMcOxurXMkh0s zVMFKnR#~EqzQ+vypMCVkFjZXH5mfQiD`<}o;#^MXCf(mHF=f?lns}n3w;-yUGygX8 z8K&6xD<#e|XE8my-D%=YC9oO+>Hg6xuh>cntSnlx#(TuYk4 zf?BQ?mVa(_8VE&|O`Ljn7$EyG!ILz{s&A$nBnGNQa!+Gt@(zkqNY?44<)EQV!AKc+ z$%a3v>zBrY;^6`h`pW?~-u@3FDC+JE(+KTWVmKX8?nxV8Q z#SjJfupmDB&tDYjYYctOTkqkA+V4Y|QXhDdF2as<>zkzo7-*@k99Hsi!-ng1Q?;xuZ)b;UXqb)fMPC57QlqKFIgGFT8kl#{j z9JfD3*WABZ)~B!SdTC3KHE-6GcZSB8+twYEid+6zaAe=p{2~(%xc;piu{K!bIq9Wu zoRe;P7yn2GIW+7TNCE)Ql!&s4g@nq0_k7}NNx`JIFY38~o@76jU^qR{p?WRE&Cxj{ zc&iT`stb9USU+$hZ$B6KX|_L8^l`KhTL+ChqI);J;FmJ{N~<&tj-zgw%H!OCuJN`D zh9M@6_-GK%kqK)U}Flf45r>Hb)xszBbsOq?>NTJ;-JK(C`GZJuc z;eJ@v#iaLupBUVeZ|UOxrTXB~DY&+7D3_|8EQZIvD8AUOZc7qlXNBxmw-qhkp^kvh zwx_AN3WsSpmGEx?jGj!HZNN8Y)k$ZY6D7oiB^o;Mg^~!pv4w5btB+_`E%Ro!%x~iq z0Z(ZJLl0!4YtJ$7IvB(%&F?H-U#3p7QbT2ZI!wH@oh89~u-{(6Ci8e?H&PUwm5>H# z-g_=`?F0Buo)6VJz^Q>GU9Ss|kLGS2^n>?F*PVT0`1Z{kDo5mjIu1%wnp!r!< zJ&rIExM?W(#HYI%c?ln#A0UIgi6C1R9^M_1gHn47RmzhJ9&m{O36iH}ZIZR6(gVHc zEe6YAY4*~!H&E#V2YLz>KE%}pv-F66XlfLW-XPg@Qsw>^B=eO}BaA%#4!YeR21c%^ zB;Htap1_^HOY<=ZIHf1J;ne#b(;;_mTI@^lM(tH-P(L)sGI`vwm}uC3T1r6NyX?Xf z=D1%42y}}G>5Gw}nIy$~&nwAM;M9=u@gnoaS&k1rhGFDmJC^q+S0Id##2>)x21+Fp zhrz9X8e6cD7XW8Dkp;mqBI^H<>xDvXkgG-_?)pC4YNt8dY0yfh%dd#lLdI{O!rYR0 z`(A|sWH`wSsO1e3**|fnuh0jGhBV%nWG3w!5;4gnkQ8sDf+gb{QoB_yA#o~K<|y(WQXMCXTb{ppKC{ph88c)V2VVu|d}F|(lpSr@;e!d_&M z>ulL{r8CO)9HK6I(uVBkitw?P0JX^yDas(j9 zeH1qs{u^L>XMe3(kS?G6woat8ct-Op-m{jFK7TMV1GO*ZFQ@N2VOG8Q66*Q_ zF!d<^b0QsA>+TMe?Bq40sLmB3mN#U0sYnmr^|zd!e(bMezPm_?`RnY4_<*mInC%n{ z<96~2342k{$Q$vIIQX=(?%Z~b#>s?T-N*!~oQVT@tqqgSu*$L}#6+sWR6iQMZP)GE zU6jfChpWp7onb=gMJ!3q)z{+rw3n(}tlZnp1&J}wikM{xnXXqY5&fRs%$x(fdyb?ZU!g-O7}5P!oj!Tp_uv}< zOo`Kri-mNZ;o;%NwG0lY3`O(eKSbEUox&kx;j!vYbnJ)ujep)bF1a2wO;;VG6lvQw zOSU}z6q^s5nKHWoe;a;IPS2q^r{pa@P|GaceM}c`LNedt5^ayQ`a>q1{dxb(iZx&0 zFX#)Mleiksz|BE^DFw?r(lpD(cG&#A1uoF))rdznAJ33*5&Mp!Bs-VTp=kS0JTP9< zcJc5?81!^PqmK;maiuev(Ylfa)KQpXf;8dX!V(vuL^0TqhPeMV)G_gmyl zNNI4Q;%)INkS6_S#lY^0;fRQITscNY{Do1QO#br|9Y`z28jArFW>EL{A&eTy?8FGN zg9oQxO5l2gxC!y@PT=sF;jQQHmP&F)!dy%2#DYG^FpmovM4-3o{PhL)?p~f(#JyIi z1?t1Aw7OKl3>#j==qUnyqfedItf!CnZi;r_74iTtaB3F8_c0{tNTJ#vz`3Uim-%uzyIbC1zCxdN?x}nQ|_-2X6*m{ zcJfk^MT_@j8rShzUpqtoO}ypSqIX2%+2!<&Qfj>|%4ih8YtV9#6eJ`)KXsvMp zb~zgYNavyEBeKZ0@^sTc3N0`E^MQ<4G_ZQ-P-4W1FAii?L~ZIrvp*l#+fWfRapo+( z+~6cOax@;NWaO^6GlBFyWV5ujiU&u}wpfn@w>Le&>f6}Zm@Tj-Q)Ol+#CoW4rqbQ*5ETmQkb)_!Tv*tNsC0?nc|?h{C&dx*;v{VY2q zpZU0oIMi{D42@InTZUKYaCI_mvdK4l&finEOKB`Fei5jrhQ$(Tc3XnYVm?_f$o|Zr z`0(`XKLadn%WDOiGlVR}&d6ZH=1tfP7gt&nfCYnREIdeazqyZ2c0Klzj1*f~rzfuY zPW`ONc*cO8H-+1|&CMKVN*Cn=8*t4($FN)g>Y3cSx;Zzc(jSy99l&(EQ{OO`YF9t} zS7N?AB=n%gY@v{y(wcGk=kktM*CZyB=+=iZt5fs_R_~>yr&bUB0~${fzYD|O1R73p z7HcgLW{5bDnN_vxj2pVtdcB;q z+c^eiq2o}ENGc`O9xhqc0KSMD(Nq@)<0L(6SSm9X zH^!(kKVUR+dv8C~K!p1?ZzY2FZ1-S&R-rnN!kNAG^pRU6>bbDXC@7iT36I1yl=*t# z_GHBnU=2`u;VK2DV+27fByWRdA$x2nbfdHDSFWk7io~?Jqu&lw% zL6QK|=3J!n@HjCC;uhw?K|uz3J8|*NW{VGgnaB)7{-EkXSPGX*^*fniF^ql=_v`(( zpL)5140j!qX~hDtvZ?)@MOz4=eN|x6jFcF2acQXts|%niEBrh)ZUotfB|9}6s0l1_ zuGZ=L1(sKmJ2(kssKDrOI4h1?BBQ2`-yu`4^-62b(<0)@e2V<=Y;_uA7d7l9 zGQd`S+;yJbJxq!zJYk&Dv7hd?1E+o8O&`zltOoFRt|_Sm{N*P2{>27=m}%NwCB?q= z)3>V%E>IdB@A2)!uldmB3ioO))7u|J%!#&%NuHq^w|*r%dp|5sJbT3U#96fvpTFaX z57Rasr|;9>mjYB=Y`(e483FI53d^<|y zWE@}~oV~rC1=OYf8BMJz1a=3K@2A?0Tcdy5aS>VJ&e(TqJJPfT*piT3*n8r16+Pp- zs_XJ5iRUC1rie21;^$+AaZ1Lymmlze}b z*{VR)a}O=rPDoYX)Zot!1xRf?)~$N%)?L!^@91Us1!>+_EIo31%( z&aP6&2dZ*@c)m>eV~Gl=$hknlyw*9kay)2N{p3&@tyWb;?rYhHLzNE7Swx_da0poL z#fJPm++SAjuT_t#^!F=CtP;7WVIU5n#2O?e%!`lQLip(MDx+f3H(EyB?;{f-J}njwsN7at3ur&n^68KP`MW9ic**)w^XB>$BO zSpwPBaDO6^5q)~-SRQ=ep`K}Y1n{|gNx`T2EdH!&+pjYQp$%KvA+*ybn3|fJrd#dR zmJwq5(8rvRv1Sg~^ysl_auR_po|jTfHaGhq2HoJ%`>C_sQ&HAkA2U-R>GH<|L&cCO zZv8=?=bWj6BQ3AET-t--h8(%ngt&8rV%&ijD=o=8T4#W;_{J*k z-kKpiYU}*DR=f4Gda}6?_n(mQy&#|s9qPg;>}@>1?nQAJ=^dD&q_Kc{aI2j1C1; zL{DNSZL8?soh4}l5A;MjL>gA}bzoiMjwPA6pVJm?yWPi zb~u+es~vOe$2(9 zWXZKdgF4V$;qS}e{*$&F3VQE1c$&+j83kOVc&1ZEgyBin6fK-xup;oJZC60%c@&Cmt)MX%-XwQX=r>AP4{#7jVJsJ& zR{3R*u+T|zn`=wiT`{%VbnG-#$Pw0QXRu-8ql`xfLAAlCuPsQl+K9`2Wa1qt|HWiH zW3!N-gL2aYLCh(QfnbYI7wmrA{hsc>CtiQC0gwSDH1xMnXXQ+lFCTrQJ+Vdwu3ay6 z3s9zMzK0jV+!cd%1$Q=nsNA z_l|tIITu+`zL31grNdxKt|L!9`5zGo-jhkRa#XQd&S}-BX9A2~hvdzzI+Ib3m%*&KrhC3bW3PO2Jpwc^jHeUO==ZfTtPj9;d@Lu@qIh5IH`nIflE%7k=&3D z@)+LNINKp`Ue><`c**SviReuJ$k5P{1=KI|SRW4p6?x!#02c0-C{SE?xF1~F>2<|SsvUlKRSFd(YVP^%aI#7e4CsrTp&!^v^jsKKx zssU+H!G*X0MREwAzX^}F%#>IydYxE39rFWcF=YuI5_%Rij1P7jF+uo^r5f^A-ylEx zWU~n3pP?WV)KlPj)Cq5LV5o{Uj^oc!Cn@v+~ zhjm4+u5*svNepVlfZ-6lDovPCeyXX4f#2UCZxMa0O);U0|6s-IWa5NJo5cSxm>A=Y!+mqC+A%va z*i&kd=!u@8-wA^^_wBMvG(QupnazRpsSGpmfCYsnxQu>N{B~}vBmUR7KgP@oD8@XI zTs=cfUkrOhFV#rFsN&7Dn^kS7(B$K4y_RW@c&$BPev`{qqUX*KkU$*77>0(y%%|n} z{^_f%bnIP`F;LU{KQpID0My+m&+`*SfeIsGCs-w!qNlZZ0)$2yPrmPV>hbGA-1Kvs zSJZPO#XA6=Yk2_^*v*Cm-r`d`!v`7tFzPQZJ5peZviWJqg$a>~+2R`)3|j&!gL3Ez zecLX($q$!?@;C7c4~-Rqu#R4=0x^hMZHIvNFX+e{pehd24nbwF2lND_D*?9=v-Zi> z-AU4+hF>g+5lu*+*v+euCwjWG=rruA{wLMycd0Jj4den+#R989x$;%PEz#2%DGFqO z*J=PJX{+}!HsX3m*%_~rTSy!xzthZoCD1WvZQivS>`GnG8u|G(^b=$%A)E!au?k4F z8OF95A|C0DI*o3f3YTt;cxlhUz|dGw4KTaXref`g9w9(`L773>WMd)(wUcbj5jIYA z)9q2MmU+sl9e5D_vo&r((SvA9Xe!Yv;=gzQ{~;Xycs_sse)e5un?E#vS@4SFZg`WI zhoX&CTX^M<{&p7rUtK zj{p&Y0heCgcJ66lgTzZ#fy4=T>5FM<`Ku5w|5Gk$LN8_f-O`KL7M3&=YF ze`Y5-3yNFVu~jeSZ60tsQ7iak%TZ>!<8Hq1D5HR5sq(LRB_RMH4Aj$KLqM$;1*r9| zaB~*yW_vl_NiR7cut$3yq7-pHFqt$zq6e{tQh}=E%)vq^IcD4@TwGC5zY$#6Y`i>n zo*uv&@GQ*HYL?)~J4Vu(c3!ry=pkUBl9}c@zLChgEgpz>1MMq^=~9~t(!I97hm9t= zJ+rv)V$0pIGE$oUJ))$M0ONBQYUB5fTv{prR^?{2;<@?J494+^=|T7SS;22$nn7S6^}$mvji_v zBVRy|UACb=NZ#w(CDGLxE7U5L^5QW_*I!okK(TwW=U*ENU<25|^)&PA;ra935XefS z_1iEloc-+B7Hp(V!XLp2m}>f=(s<}MOWH-Vl8o{I%`u6#Z;p0U_v|5Ye0$jgwvF9P!^oJ9b7hS8E z*=MxXYXNQ15236k+EQ#urT>*nrzjv7bC7HUBZ3d%_smR$iod25*?pK`DSj`m@z#!c?9*;S$cx_taA<~i@eLWhgZ*=nBa7~ zr|I9^fGI8U&_*}@uf^{~wg!AoO+0}4vx8eA<4Mwo=+Yo?DL!TST1MS=tdsqCJ>ZVs zn4wnSy@N(N%dGomdmoHT3y8{cj{0_l_D2HzJYx5mu@|TW@RfQs<+5GUa9a zYuWOIzGU0?^d~0fVBCg9taMM|-w;2a&<9@?+M#k_-g%-U?YIqdr z$U>;#C6=e+Ekn`L(e<1>ttE{zc2xfY-H6bfrW|{heis#xA)L5WgOCphD%|KS`c~zQ zI!Hsg&SWUa4&?Csh2qXZY+C^U79_QQ$abHM8_=#J(E1h`syoO?(KO^oOj+&I$G_v%hC|3 zyyrg<;5SKRKD)#z75`05bfBF9Xu<_F$_z>Q8H|^fmPmu7`jAOTTB^6>n5C-fps6^cWf@_&DXf=}$Ubqqg+g7cqFcVi`I68ZbPXu}V{vbQRJy$rMEq z+?VCZED8NNDmFVL8XRTMs)APz^>pFJW(3><*)k2iM%+rB;$-4Q`mH)eJJOw&^eJLO z?2ymA)BT=(y7Jsy4B%$0Q7#dLY+?FOl>Q!jdb|T99szZ62GH<0K7*ayIJr=so|@9s z_zC7BE#@zyF4MOK|0F;R%ons`lIinpTvBFOm8YGG;Snuu1f#W~K|L{a$>9rjOuw)D zjjCRcoTeX-)1p_}hhgw5qLu}8!B8NN+f<%qEuR|RK7t8Y>bg~#6e5y8{nIe;9#K(3 z0og*F9i1eqK&A@hF9wG~jz4@UkTeZO1wd~x`}D=EzP#743FCHgif*ub>t5c^L6`g> z-y5LOE+q@m&uG!>J9t=h_I@8mBi-cBF36ucJUp`w{!`Ve+X*X;8q4WTN@3PJ$=Ya( zo5)3CdT$jCKHk8Prp`wOElw>2yW^qfL~6v64_RVxqhm3(ZhHMUKI@7vmA*P3|5bB; zzKHj{0R;;VIPPb#iUaSIm1a2>EqDK1ZD-}fap!{3$9^k&?^BXH1)LXV1gFnYzrK5? zAwYn)D&d`N);Gxq(^|{KlG)(XebUdUAdqwIiJ5NSa*Focb39mVQjVtono&{|l`Lc= z1zP#~UoHR%;!x{ZyhoOx1twupboRuRd2e(?r5ItmD=p|qdZSi9br!PV7od^s9by8` z+BrxF81|jYhG+yIPohnz$-XH&Gp%?8j5OM$n-at42aLhl32oo9{MFfd>toGWNL_kJ z6son&Ch~AicxG^+)PmIqzm#$B)4Ldr}5&Drr8|5G`5OyF7}{6|rNMn_biQ^C+rxEvYU zv?;Va3IFn6Rq-`A0sfR5+`ip>>)9=D%R_R@hh!KRgTQfmuKh2n|I$_%T- z&nH(52&_tfVx3=}7o7Z^(r9AyEp8$s!3_0qc;W6>l4K-$uSGxfg)=tK1xphyJrwQ! zXA5;UfUXMjjV+73uiy}Zne>adFr4Ymd@S0p(nDt^Q50|Pb&~g+hJ;<0f+b|%?s-=C z4NrLlGa;X^<1sS9TBM|=j2hbDQT>?pi)`fGdesPY33TAr!4Xsi`1wc_2y|`ggQ7>7 zl<^gid_l`BiR~Kbe$&UJ|5bLNuM-Tg#kXLC%D)LGsla!c(ASY@!z`?^u$l2J?w*zF zH7-1dc5SDx%Yc5~r8Bw|2i6nOCDpyA3Y5WP)evSK)*j>mE5DzAU3OyXnwqodUOr-EdAC z6bVEnh4Qbv7Np*or?!|_CrlghqDnKv9}pgG%pjPpgX%z;L7woVc&q^_vx?QFf$Vr% zzDrYs0Q&0x$^bxnV}WajXPuW>xyT)D$+=GdQAdda2HzSNIHmLe4*tPnwEoOfUft8P z4wOF;qqguOEe}Pb-2c0Q>W4N93Z z7+M+--DcPqd+D|Vu~Zf9@aV&+Hei1>-g3{{`~UQ@P^fcIb!XmHes4`QG7Ss7C;Y>} zj!gx!zDZK8`NOnG-c3C=h~W)6$>Ri{gx!ocju>hWeQprG#ah4iLqQRUgc!;$9#*XV zZ_klA3l$I!_xi7}itXDuiR0Z-`xgZlsRigFVCECx-B^lACzl*BBa8<(VsNcFe8PH! zB*zU}U$20h0Y4e|-)p4A1C;WMSBPZiRJiv-FDX6cKrnHcWqpoPy~icQ^y{WYG{=^6 z(oGL1h#^l*>_eDKFF&Mv^HlhR===lZv8*~chQ=T)RoqP@X+ZX08wK=rk^=P(^wqrtEmyI3(1LwC z^jm*#ScAASBDfY>N|+%DSaaM`n?k+Tt@MHOC4Uj;E|baQsT8V}{U^LtMPb&|y93Gs z(i|Do)3x2Z%i+#v_oJBxQLo_CNwvDzYIPeO9rW`MM(szB6pZ8Uj2VwSq_LQ z8CLs&31@yRY;2J}1YBbh`(-7u>}($cu|!Qocrey$(Oymp&WwUvB#xjkO1j*f4dXzQm-335?}2H$<0gGCwZrHAbQ03OBT zA!;__ne2i@{ichp@TG0RT?mRaMW)W_lwjmo;8nNB;*64$x@dsws~bSnZE$zGW(&Z8 z!vK-(H}c4L{_YWf1Z<|VH%gwuP+{_^={$+NoE!n=QdJc3O{kbT`ohdoV1Bvu`Ej8m zKIxm0zj}~(WSfRtpd5rhnAe}ckzSgLVUm)wI1L^ex(w_5R<0ZJA?>H_@3EBZ+ji$U z_%EV)Ybv-VVES*_)LL%gqWmS3M}uWt9F>ayM6H!}EUT+l(WL_Ix-T%BKLRYU*`9Y-uC6pR zARdqPy4o9ioML-SRqW<04;?gY!}GY7v-oCVVPV+gc6sc@dBjUNdDG%dM;=cAse!G* zw)!m@iEE7$`~=tIeJft*?R9mjT21|m-RM2TSYsrbSc;p9Gw)mYW%(UlT-!B=sy6&r zjr2UmZ}|Qf=lUVjj2eqEGCV~ulK@A=tdf9E7iTqQ!0Ci@?a4#&Ba@Bu4mdoQBX!iD zQ0x%>ufkk36wh-Y#%R&pJQlGIL^0Bqa}*}JA;kbY7u>U0MMmNwNO--z7UT{IQ#}(g zklm$!pH0*DL`~vLAv*wn{pj#)TLnh)ZTr5c3@+E1K{+Tau?>V_lPMHP(}?3+)Cz%p zahB88u25i-IFj|rz9pB})J&61W)jPnOhWB1`t2r53BgHf^>NAynM?OZoc-J}u{_`* zT&cj5&$0bantY* zUF2|e0}AnW`=arjM{(t9)a?riRgq#b<>6)(UE5t*S((sX*T9vf$+LK?biqt_dz?j( zZH>iLS-$>2IPUc1BtZq9+xIL%l#$Kg#-L|k zvSD(6X55-9;wYO3-%8VdG57~xJ1l0kRFA##6z513;iKOPuH7uVG8S*U9I#|G%P`t_ z*VvINzLU9uk)J(%m7=Sw<=16rj9}l;X*%KF$<`-BLQQFHqthP38HNd*(ql&M2qKr+ zg7fVSlktHz3=iD45qciDsVdY+d3Lrro_N2|)R2g3v>;%WGY7x_dBDxFy;x>+72-7n zNCKps*5yJrh(7qG8;wBH2DKD(+gFm%6ZO?*XXL4y4-T-$ zqyEt!;m~70h27VYX;KEF zLU_99@6$}Xo|RSKq-;bo<#)fh&NJ9vBy0TWP({EMe94 zsLT~#{0KcvWoW-dxh(p90g<`HoHEkz6R_HTB%Rx>R=e1s)Ga0q;xDiXj?i3!rySqx z{z%-h2qmZWIKiD0tF+Z{=4rfn76JCc#NE27S`(+=+MvG)bEGQ(Qtu=g!FDkVZs)im zBMi20nr+f0{fRWB)qoS?#Za6Q3AE*JP>2(JgRzb@$Rj7kfmU> z{ofee$3y4DX{QJ%p2gg8oE>nZr9Q9|Hx)xAL8ysf`S)!(kmGm;V#_dz^Y~nGJ&S&p z+kmQQg0wwRY!V)sNF>!yO>Q(8LTyVp{)^}Om(b;|Wut82wd-UeEWAI=F?{Okb?2MB z4S503c0^1v@|UWCuQe8abHo;2+hsChD1GBqFuB9FYDYIy|8}lnxcclh!O`@->!lD8 zA?V5LEZgVn^d#n^O+ zR)R<#>?c!xNz*RpZ}w+&#%cG_v_GBw8j0=qs%}rAgBbqmy^qRge#7zkt#xZWr6nQ8 zi+>7CWSer_UAi?)8{XNvCR_?{EX2`zDe}x`sT)Sj`|eLY$zjc3)sYeKyV~FIvz|r& z<&42%C`hA()t}wWD^~y7OVd5QpJ&5FoJ+v|y>&C7mpH@k7H;N*iEg42{Cjl3E%b3# z?jo==^C5}?1|1#bJK}wBU++sE^&yJy1e{?@aa_5P=3aIMk!bo?^_}-gBv+JT9U;Y_ zVm{g`BxJD}>!HHrX;nB#qJ6yeve$IzPw&>3Ar{UPv=XR#Uz{| zW>z1Ia6N=T2nIP%QZKccJu*iT{(`@L%O=-HVoUJ5knI<;q^(%-??XK;1z+gSvieKu?ic$B-1c;J@=r3|ZRePJ$;cQI4KJq-Cnm`ZQY+f^1TEJbByacVWI zT(e!Pf3pKxg4G9f4%LI^N=98j=YyO_7o{Dw-e{H{*1X~ud&L-!c)iFRMChWPl?e2Y z8-L|sEh~@=Vh(>ezI^^(aNmU3X1A|?@at1)n0h6y*|kt47Vi%%>81~f9U`XrcsqZT z6Asp3JZ*~U=$(SK+o3o2w>N?6ekK`Yv5mO4iRQg|m_M<4#IU=}by#&qH}kr_@ZHQ~Ju#lT>G;qiRH5TE_~b;{o5GJl6?=$XNM+@ZKXC^s;f zd?<#kPB(v!HWFl`-y-d8unub{PhdwfK_!_QQE`DsGUmyb6S;oFNMP|K|orzrsEB6!} zkLw|5U&3NcW~E8#k8Ibo?UQbD+F9n}3fuAg3iGe5j4K;Fc*ExY~3kE$C zv&mf&wf2OQAsU7FK=jM2$81*a`dj{x>NO7#j7%A)iios5I*f;}Ii1?OnGU`Tj}jrk zg6WO-wD=AiB%*$4fEuM6NKVJycnCdycyI#oc+`(J-y+G|ougPro)x3i6K<6Ii`5bi z)e{-)NW|f~^YvCI(Tedp1=P~MSRH7*7_q>&#+v2$5nOg05eJ>Y$c3+q7+Y#4s)l7s7 z?LAB3=b3KE`4`1}N3De+HW2tX%IE>>4fK`N97DCBzYcY;=MDFr={R$dBjbEM4D2g`t>)^NgdFgoT# zZWo;M$tHMN1ylw{OWHDyWN23mdhLVg?hW;D-@>0sBH_1zo}|afQvK9MiOedqRmiRX z3esy$;NH?8Z7{uHWK^~-__VC{&GVYvba3heCq4@#*WS7zKSWzZ4~d2%X_wwTuJ&W$ zar?<9u@kRCCe1sMB9mk!-6gdy7>G$U1AEfxe7Ah>3gm%?&m-Tif@H(9l6JtM zJyPE(Hkfv3&$;pzE1jkb3*km>W81}S-1wkH4JnfsU_rWg)D6>UfQ^$G?8Y?yGST#rYdM6VwYtr~?*t_sEz z!l6zhlY1h762K}+5XFoL#IY{!qn`_fYWsoE2Wm!V)IF_N(99I|YGjkeffcC6Bu_Y) zSvtm_Rf`%yq)l61Dj-(o@5q&k+~ziN-!63x)|;7i*bPvW<9(CvII_+~0qV zEa=>gj%)u2HMAgg1{qoiS@9$A(ExLSo^jn z@ms4J_cl|ubba}(Qld%*mY%U*MyLL}@Hg;fZAdFU50lFf=ldIk!zWEn!;!pw@%{J7 zpI(K$gTsxjoTMKmY{@nhWhwZzle{>Mztb#`e_#-{uks?evR=jNJibAwm z6}Hx{B;gDWVN6X_l#`(;Hiw zhPRl|_On(QD7mXrA%#U|EwL&!3upGTSOt8-Snu%>fO z-zI@3YjMaaZP}q7YOmDjPkUu$e8KMUugg~djnQ$O=vWIdy>+{C)Mhj9Jz}+I!U>kr z7h0g5lQA}8 zp^M+eK}udO4H+{`0c#H}#S9w$y|U{6L2yLRoH!HC<)V6LWEBN=D=OyNti*7}uRy|c z4J+w79nNqVqvB7BeAl5Rw#l{r;0c{rU9eWN`iTxtV>|W5mSSKa`iP5hE zC)&jud~s7g4ULMv_B_7Q#Bp4d4g#wLM88e1d!7#{id3bh-r46eU`YjVaO2!2bf5 z@M1@1R4v@bA|2n_Y>{B4&wn_l4kf89r=+SA7fWQ%00Cn&=efRd(H+mZ?bci0-uCzMYi3=??KWKL3$H-8ls&W$ZRdEq()Wib!1&Y3l zo7Odo{=jzQW;@5rzk^drS0sE5+kORxM}9_~sgFOudj0vr_;6{}eD5yzHv}?)TQcse z(j+Q@hu9-wSkLf+obU5UY@~GrW@A#?kq*KI>-5Er6@9vDfOjsyUlZ4l#sfm27sD^P zn&G-YMYNtZq3s$;pfhvAWPtOgA3(;;fri|nB>0|3u+s^>)z#lpPRGB2a!WDgk&}q@ z6la{VHSq^uJ+z0@d%p{cBULcg;P}N?#^#ZhV883tPXps4YF}H9?d12}>eM}v%ibby zi)!P?nQ9%qn%dT9wn5aPFI(N_u8G)}dS6g=zUETI#^h}t#kHr17TN~EL>DG~QY&=8 zLQ?n(l9I-b`%pyW60GZ?h^StysK;2Jp6vr`T(Ffo)Rj|v+UI$Eh<0xS8Kc`5Ff5`W z8XHI#P9)z84_ zjT+mw8rx19+j>s#y}!@@d3)ZSwb$Bvt~tMB3~0dfV+!cusA=i2Y`Z6sGnVr{A>?eS1#}QOUmy2#~50OH*w~bQJX$7K6QNdat!<`O_mDz z0iu#Y8wrw%zpUeg8u4m*i{0+2$^6%h20_SlqZO}x6KJ!W1A>~D(sDFbqe|6t9Vwyj zSmY7E0^nqiW#Tny0y3hk&yp(s17j#x1lX41Wd)zd|9}-&u z%cM=&3b{_5(IJKsyhmZZdd3`M7;ttqwIW3G%nkz$-~NC8B4pcqZe2ZV7w?reox471 zlnKel`rX2m9eW~R(jgi_r~S`$2RKc&GX<~ODdqNNkCc}BUgRIXj)6R`WClJz1{i3NwXq#hu<@mNxHb2ip^<0p8%vYq1Pw7=0qAaD7uqsy${-)$X; zlahO=A&KW!-_;%s3Ca|NQaIAkJR-;&_Oe1oLr3@}(~1svgfoV2amAlcCNujAwe<6Q zUWl+Kt^c^ftsxY-1nFhC`KYB-LV}{7R@Ee91*UOs9|%pZ`8N=!cS@N=1%iJRfi>SZ zFO4@b=~MrkQoVgl%s#!;b9DU4M1s5CJ=r2KRNY4OAVmCtgeZ8>_@J=$>l6loR4@?u zY5bws71vKF)NtkL&Munva=UXOT^kDgSuVPF7ZAx8rGNenLd2QC)4)fP%d8r}MawYe zK5KUDIXj8;T84P(dNb&bW^YI&aVjC9=Kw@#27<~TzzD_LBMPNP9R;x)QFIPGKY3>{ z5zJrO^b!rYLlZw<1>oN`%n!vz55b)ZvcFG><|jqDkRx{$oPGEA9sHZ(N1?WCTOi9J zw43gTTOzdG(I!238WvS_k62H5B?WfWmDtwA>|*+;`)d%F;NLP3Jg!)^a=`}MW166U zHP7jlDR_RNGd*(u)H0ccOuv6`FTD8s1y*#pQiTS$Ry)=qMC56(u{pK6+7yM^aBJdx zw(G3B2#bQg-8foYfs+9M_sVDBmP66kXdqAm*!AtmLZErGJ@)KDkG4Jv75V~HeEEZz zEGw|pm#C9fkHYles^Pu(%KI`$a+f?T)X$@fNF3T(p|QggfxSy_vrHT2 zS0lHo{vj}p>`LPO%DZ3FY9AzzsD3Ur39c3*HU)k$3J)5+Ic{w7|BuE# zr9uvU>9t8g#pp6<@_AL6_3Bqcx6dF44G}@^I834*k2t<*zsuy`28d9zgp!YR1^pw` z!+iN&cw<;KQW@V@F=ij0kY*pwY@cqTe0qOF6^IQae#k4|$_qu#1g5HQ`632@k#D!B z6JtCKWq5h|rZFXA=j=`QC>TzP99f3$!iwC zvTx5?&zR#ubKL?Guuou|T8Km;NnkFQriv&i+y~~BA?rs0+}(}V%e`_=T)+g7m!ZFn zL)<&(S>pvQ((^Ccm?&AOH` zhh=i7wGH>NrS6YLp}&C`vTq``JlQOoVFQudSGdp1O6c0KKdq!AFC!GptNz0y_<*>G z3Z`Is??2>uOnQtThk3zU`qx#HZVh9LQyu!e#4RGqVI*{H)z3i`R0>e)y)~rYXv^?~ zxab`@fXH6cI&~Mgq2-d0L^Y(!W@}cKpW{=88N``v?uK)U0QDcs-wjee3Y340WMT<^ zie(NgYTX-6+6k4IVw#_Kf|w(58gM({rBqn8NfN+A(3M=9nzo>|NF3SM@w^~#7=6mj zf(7MBJ_zf24`Sj83@iv9K6TkRl0@u@{$xkzGtJp651qcEv@ZzRc0v7%x@Sc%Ix4+Y zmCFW}PQK$$W~O;WBFKukJ%>W7@eXvFxH8MMoDRT|N+Gs&`3(&!J!(1syKt2g^I(qT zECnCCwj-hzus&5nOmr)&B=>RO)qrPaXPCp-a{ec-=qa@QqVDZa++ZR8O9k1ElxQfA zPi3dmlhWD$xE+C%6XKu(!=JPs(ik3$=ANZer&=G~XE_F`@XMWrL=b7+g>XJ;e?V&WACn7s(1Ft$Iy5@4QIiv6-}c3T?9Z z@-J}|l#@XuFyDI6{h(y@rfWhVx()JzVL!$@C~HVSVh8f=5&wize_+iR1-#v@t^h|4 zki~z0$Orc(6Yci-&O{y#zko&VDzA)W>b?KxZQAFEDBCGeb>$A*qQcE6H6l8^S%uQA zGU4aPp_rxL^Vfv)U@bR`W`0s(`4Rjn`Up~FvvS7bm%*B1TD_mH8fC44q3|kTdmJiP zI&)B<{pfmHySt}@KNiTgsGRGg^K5;gJNUC_=IMg!FH?j414o$5kOaC|!k~*+%tUm2 zz}hf#T>7i-amFT)M0`;ovISb%KZ`XRevePMGv?uY5~Y*9hh^A*b|{1pXk7t4b-#^K z!MbuCJpz;0+O#)I3`@gZ7327=Lm^jCKxYY*-vpfmiu(k|L70-o6*DhC1h-PjA~(*0n}Jt>bldsX}+j zCTlhi_y+a#N}!&6Io6b2|Gcn8jF7e_XRiHW{~P{w2V+)j2k$IUak;tdg8I%Ks0vhx z*hl2wS|;R%GD_a&FoTZs9<(N#YE6uf{fe^KM`EY}K)F;{5`3lCr~4HE6qJ53XbJME z{3cwg3s@HY;k2`^gq{-LA-lPW?g}BmS_;9G2^qkC+PW$nK0aa!^!=QWE}` zE5rQyzY?FCX3%SL?K>pH`?3&#X}ij`-1HQxL~3bO!(?|$k6NYsiaZM8mkF82OjuB{ z5&#K?;&(gm)97xNei_^MoYWMF>i&$H@1nCrRw-ROe;>!Fs{K@}K3C5T2hqMdiAI!> z@I&=#3tbzqB}~gB1t`V(qgP+`hm_j|q(PA|39;wx{F$f?mq7jql)C={If1 z1AzAE9Hg2x`F*84lxgQ5c0)9qg7Y%ea16z?{;1ux_++K-Wm4y1sYP=BkUnn_w1 z)-Sr#+QOM%bb;E^RYDE(A!Z1nOh%r*%MP&AD?K!V_R~yZu4)vj5vyWlrDIF-!^M4B z_}m+owZA(9v1LBNqkR>8)C8KOSKEawe-##`n$JOD`Q^c1s!-^%3o`lTRYi(kekEb5 zHzSyoRqVn#+)*GTz14u?B2#u(&=(>d$WE41#UHKuPd)ut5Y#|;iA^3Pq=SWIGIYI~ zdtQPu-4pB-xnXEG9mCQX4@S||6Z&;GNZ1;ag}tjWrlkN89quh4-DS-60QHLX@gY+} z#wtDWK{eiz$Q0KmW-g|D)er`z8sX={teylWMCXmf1Yi4eCfwiNWTq|o_Gjp$#|1~Z zz_;VZN2Zny0eH;7y9y?yUpt)#VluzxjZEt)v?(+*h025~4C=ndo_f30%M<-MsyPo5 zpiAm}3YSuLVm3jm7W}r$?gR#bQ#+3+wXM^#g$0}TV(dr%=vct*W3NHJqH({Bb4SVC z2TgXHH-;+-<}+f|`yT-3E);}@ZBEzL)P@L|m>j^U+dgj5eiyhEIEzk>xBT=ikmY{# zS@;=IO|ov_>7}IWo!x2f^*TQL@K>Sez4UX)zgE|&RNFk|qcB$5itVlp=|ii6 zdlALG-%3n_#2RuOm>z=^qZ;7xWmP}1TCamR6Db$I?tlS-H7pzvsMiJ^aky-K7^FF& zjFiIW4c4bNS6E1gJe#aw)V~uhN-HxHTdq>A6uG+=@?ZQARM-AbhMTfk0wQ>7=U5l{%hX6mb#Y6+!OvpD60ta5Yc>BqW6b_PL=*&5gA_sU z$m!nwG5#cfT9}S-oq?)8=wpT8T~>E z-BqVODM8$SDVYO*nzk4EJWtfU&RBnG_QVSH(E>FFlGwAH0_I5^85i>kU8W^|n()t? zxG`@NX_GQE*M|Bh04Cogi`$8JEB35Qs^{76t{1{We+jU_@7zmO5hT&0@%=q;N&&nI~mwzvO zf4B7o$j$$Rxfh^1dl*5@aw|^T7w%^CUr7zf2@@Bu9F)llj?4w_%iIr!-yLlKdVw{2 zQ~wz^(9p_y+XiByx5qDb{1TMA zaEOzAN2(lk8@WP0zId^sAp?+ytCnM5p#zgAg)#>@w9~}X`gxXY;NCz}b9(1$Lq{i+2NK4<56Y!Qc$vK=KPzrZbE&e72UMq|;TLe>FD%8$X8(bCR zGt85s^0yygS$aN6%(m_NUC)qM>zxeA?42_9K~H>AmyX^BMg<^>$7J1zMYWJt@5T!Uag>CvNjcN%9}yg zrU#J$FzWq$L68Y2`9ezJ2L7@;Ua&?wZ&y<=H zc~^nmXsH(y&JET3f5>m%?!OgsY#xAIO@(zp9I*Vc5~IHIlKv?3nroLj|I65P5#^IQ zqI6Kdi+nF@WZP0-ny;mfFw7~abuyJCB}Kv)WO1-rlKzEiDnxC-FX?6P13738TBBN# zU}vNRokg&3PPMm(nNSE>o>9gWq-&UugCS=2847F+FQxG2Q#Tv~j;I~I2o*r>F2F@& zFWHwyxI3VHA)5{shDZ(>eH5jKGsXd`-AmA|ll;m0vrwCs+0PP-Xe8CGoK5Vfsl z`D8vYe(MxRrUHvMidAx&7CCUx3AdD7CA{uyrG%XgiP*R;I=<@1?4>YD^~7b;PN6bI zYt>}m4dwoA#+)%U`9JoW77tWqBzwEdHW^CzL!{}9Gp=~Aw9eiS1S$X6{XVZL;k_Pg zXZl(jA2atR)~uO)6hB^Ew70TWbf0fsOK27Xp9Y#sMtygRm?!e3WY>?k6FODHy<%~i znPy{^JO^3EceG`SCPxcZIWx$1RAaQwTO0^?)PX&>J@fGu+Aer%gC!8ie~${X>0Jj# z=^K<8^pi^0p_lRiwdyG}xMWUt`sS%dV&|%m3LjSQ-kr}kB%#H2(EJ3@6;)^~jkCz2 zu^K%Ds<&4hcRHvmg2>VK@{h@@rZgaA{K%$$6%Q%Uhnc6wR>NbNsAf$5x1IoL1KkV@oP#0{*o7)aUcGZ8THf3IVzjB_mM{9dg4Oy|v0ecoupWplzYh6;o1 zqMi3M_tYl&p@^%Gb=Ngv1u7aGy5SySDrsm*pPu7ZfiNrTwd*D*(HXNSGOAU^ieuVM z=^JL;cLmSK{c7+#eBAJG?)gQ@HoSc+hKEJ)9kP`ZZzOyMi`F*oM%2S?H3WjfYvhp> z1LIvRro~Y>s@!N-ZD&y{o@i9YhVO8=!wxD~KHx{lS-w~$BxlJ2=<@ePTEQ9YI<-@9 zvHw=!f((CY7~vO>7xw5O%%{5FFj^Ob)VZRc(>&1nwY8jdtrinYDg)FyX)>luU_toX!6qIQ`oRq#sgyMqJo~q$7&v zJ++nhBkLmPmCrB^jv90gE;0PAJ4-zGSqTaOUn}msl7YdX^PQ@ogKl@&tDN@N^CjpI z&eizZ7fZ14qmoh@M@L%;DIDJ?7BcA(3(apFvRy0|q6uHP4j7a02y%`}C;HkdZC*?* znhnxX_vz*u)pyr}WKgT{fmQK+nBVY!Ml2YhFrZdYj4tTtOva0z`=)`s-arjNazb@b zUGyawF$2fMXq=HZ306EO?3Ymce?(;eq&a06pfkMSxg~qzONJW7gvN(Euv6~6hJiAk zBD2N#-1L?8oNX)K(eDwC=wT4Gm;mmc?a~Kr!q#a#L8ys2EoP4drj$^yoyA3ml^|uj z3dWCGR}*K5T)?s^O8M;?M9`msE6WiGwEa$HD zOixee$vmNimfEDGQTT1olwW83Z;q~nXh29a;+V_-^Nvu90qt|z?f^>POIS?k3Oj>U zug^=9HS@{gk8fI*FGJDFpARSoKuM<{FyJG^tgzvw=f(JR-@Np6je#N&Vr|iFGECt? z0EzT49f}mVVFV9?>Dwt||5>%OYd5p%C=u+Q*;JuZ*5;6K8_H^`Yi%8Lj6b@?0xYTR zG$(>>-~i>*h)|zgCCx6Y9O5eN(9#!)mX*m4-Vx-9E|G#{`EGcb5bLbaatuax9hRDG zZ$uIb2MZZe3|aa3jL?EFFt?WxtM7({#>lWs{AaCD<-w(+;dn_TBiLi%sFw$e?oj8G zKWK%WDKM0@&fWRahJf#7yq(2bKO1H(@#EH4&%40Rn81`bLuQ z#Sfs)t?HWCELLnRLeYXtp;Rx#fvAJ1)cbb+YB?~(?}CudITuyOX(V!DPzI&i^Y%l> z7~8hkaMN%|p!okuitjuewS`R+E8XtJg zx12AnRkjEwb3EOf8$sES=ROacTPp{$!Vm;q*LYfw3Vu{Yp0}pWOdp!Ox%Y1rjqv`uYqO`-`N|Yd2u7rGefTatewPp9Xs7p@X+5 z_0vIeP;UPCb!)nJfFo_0x?ytsMMHWRER3UYrcy5rI7@*65(3_q$0CpR*msjdEct1b zbuJsJ+oWoRbt{|YJ|VAvbXFLG%SE z^*CCJ`#c$D?e%@Z2N>Bjf86va7kqfq8NQ<3bkf-+FLhqOdxgqqv|ODtaIxgw)I^+- z5l8K>SOA-jhE{b&g1ypkqHW{la+x6XAe~4%m5T(|IkWuhDFcS(Q=LY1TcMqh_VGtJ z;;aqKEVeCShIYB?YS+rk)zXH~&mLsyUt3r;#7!q8w#eQETV$nw5CK7&Rs_o}pIq#P zGA@3V3U`eE<^@4MVge5=+uSOh1Pu1E$Y zar8NRGHMmK;hFj`$5{^M6-VL+nbuLz|NP&>Oq}VNLyr1l|2;o@`FzX@>(J47g>Ss4 zoyU|!hH8zjL(43)W-&C>WZ_kxDzoZ6pn=FciT*t`SJKn4jd!|c%ZdP=@1cWVwxXcJ z^Z1+3Z;h9#R-G67m$rFmE~CJ&1Y0mae%=v&aw(r^*?dRsFYK_4!M`5MHnz;ux}+%@ zbc7la_AN8!vmZ|WjY%B^20tqbwEI)d*#>{qTvNv}P_Kg`NoZE?9>pex^y3FU8>PM1GeET>Rrb`tpfVeO*vm{ zC`%%Cn{)*8$|PmDdtYIjg?gl1#BahJt2wC-*i&h{?KHmLO~Jq$i}bP&F02J&9idOk9>JXjpDeA#=6J(yY?WXIASbkfqj zWGqjmBe=Mp8+FstEnXH>*|+~vvJ{9u)RG*(Cq0F^m$VbsMfl+O_RyErQ4wAkm>j z0Z_4tKOBJeA@s}9<<=fLy+xMMt(-YFv#M$QjPrm#^gH=idTWKHx&fzS=Kw%zwqq?{ zakib^*l}HqsRCEJv8T?VcJvA?&hbxJ>uYeEKn?!VoS)Q-{d+NHs3Y5E*5J*%1kU)Wz=!U! zUR1qcnqs}In<)<=sOYFJ%%Ak`>ioJ-QXQ!qTNq(_eZ_6VFR(^CxxXD8)z+L$4beBj zqpV&4b2Ve{ntyIl6k?9Q1`mp^`Ag}~V8c{_C;%KB!;qG#QKfDmO;pOdTtoUUjS~Ox z@Gi!SGEcW>iaqIq#TQSrX55B9{C4u&MlY@x2g)rM%A+^`rmu+o3SzFvQU!Zeo;}iE z4vI26b;*d{tDXoF|6)*)Ny zY*u_FI&e$ZQ70+bP{=fEYbHsZ8{caRo1%E8v0hIxEBojq+)U|^FD@r)PG0`13rfmu z%~>=!17*yndfpz6fRfR95GDC&4{o?ExS@N>Z`0ZY$d(`j%vpmPWE}pL zhYQTP3A^99Q4WsXNf8;Go7ej#aoXK_GH)|U>wLukN7KXtpu*hKFz ziPoqO`j)M8BF1e<@BycogB<@sFrPEn(&EkYQv0FC(6f z^QnGh3@ZYYw+0B~3eoCm^RK5`P6KEXBmF3X^vxS?nH74S+Q>ZnaWv)6vocJ{r`6qE zq`FxOA_MHVij)7Oo3NtYkDZrtY{!&TlU1FuZt^-=ma%~8i`>h8*_QOB!HiQ4q3!o{iNEJ6Zz$$fJhe!JYe_5k! ztMmKG=c9xCQrC?-E1%dq zq}7QKGKKu;ouTo*>O}M+PdwPia2q0dOgkpbiU}`mT~TuGAP+Iqt*37x{3Kp~^DWg- z^d?J}=PDWG#N1|)jR#+=+Apli!WwL4llLA6C0ZY0O6eeda7LAJA8xiiS} zQqTYVX8HQuYN!(@1=h@+Cc8jpq*5ihaKQ?E%!fiz$s$~zoHjinD0CVpYv68fGAZ=w z${X1(vr>KC=~gcEmWII?s|mq}3!}!d`;ydD>W3I@S{9?0G#`;JTmSJ!nkZC2R1q?D)G&&)?@%>`N<;zW5Z z(({mmStSouvz=<{ek9vMTIYkNt=JI(m~2Y&`>$y2sZsMO(uQuCE`O@VeShGXbQgmc zosSi?{IV>!B{p&^Hy>Z4KJ~bDHDmSQi#W|!3Oqg@Ps#j9R}ZZ)TdDroLGhE!3FGck z;|t#_`T1io606Q`qpc8e#Vdo+DTWFL>>70Qpfk_)dGIiqvK;#EaNH2#;7$|-o=rN*4G|M8G1kkv4Y!`3 zr~LH9B_v9sv%ZVOWfMn5bNzMXuz=ObBk|mie|fC5_mS~^Kh+;sk|5&vvT@OV*_Gid z9Z`&S4H5+(_(LG4she7;+2e~C5x-Cv;F|NH;?y)AP|rj*E1kkoWu5qncS6K7p}X*Rz(CeI=oXb*2H z_ciqy!F;skz!8wlFfzu)cD$R&ZVJ?&i*1JT)DSOMPnfXHjrXK_dl#EKeZ9N88v$7t zo4Me%eDj|$JUn$~KxN=DT@FdMcO z+6os!%$-&F)xyZ7^P;8YcfBQTdBMMOKQ5RY*6oES)zr4LoJ)fAr4)$;ryic?u)Yqzhz{_*B2JI)`r{{7N1K~R0UDA z*(JMb#vr1$?T|)Lt+D#QD?^X^f)F{g^h>qW{>~opT+8*v*n8#qP?!5IKY^*ug!9{U z#D3W`r~mbeEU!9K%WfL{#_yaVbc2ekTBi)MucMX;o`IeP`b!M98AENgHRrEvF;Es@ zV#ytV#t1YFp$$M1*RCe5Kz&%o>)AW}wwFv%YBXs5gwi7YLF~WTUJHP};&`!0fI2N! z|C^-zsMNN)z}13{=(gu@wjmL8xr73g?56n*cNLmi|k-Uc8ZZ7uRmx_zoqt% z8x$7Lz;m7V4qx<;chnYlbgO4;JU)?R4@@M>#y~?JEd2Nh3!Oy5H8=bsYasI>R^l+N z}-Ry%CP!}SN74F1dF^8f&o}Fe|-*o z@^+Xm1QJsnS>@~=L3JJ-02fO!Y@si1u?X{uhL{)(AXsevzKFnG+`ATfPcPVvOBNlq zoto=UDhGA!DU}k!a>=`EeU-{Az}9Ug`D3j7aP0F{oa<-ZTv`bfE6ln zEu{c?T3xY~Q1+yyv8Lb@w{(IRb`1$7sIB&8p$n%68~U%J#=HjWRUSA7P@I?$u@5O3 zRd((w0fz{3`GJghKQZ%P^YkXujtvZRi4E-p-;dj3!Uus|#v07`G~;3H}B zHeAD^W6O=P(pENdCicW*LKwT#LPsDbe$$rH4l=Gmdw76o4^XmjX5Q)7c)ehN4~77y zPPdIdeq!tcJ``BVS=Ijk6^-wlA@GiSKy7ZB5YxAR{qqR`Un0zw23HkQRfzWtm zv#bImg$_5?y&J|@sOt7LO;$tV9o>InEW#I8gZf*sl}9?!wIQojs@E59I`X`j>vl~l zb{dhTr_c%m3A86E$Et>7+|AZGTctwUTxOo{!nWV+* z+OSZ=k{;wHPFDKztw(LVjt8n)$E%&XaSdNaTLc_7Em3f9?3ZTN(^mUlX<3bg%;s7X18E~S&al%Q*Td|V zh4MgRw;RY6Fz*$AMD5^fHlh3Y*ZU|9+ik|IYw)X8NYtSR#eVf*BRC?~CQLWMalleV zQ0>H(15Lvv7(M~@UioLMXMQl3;~S>`v0wxG)m$=5ncnFPCEyN!1OY;cUCBVl?!UdL z8dr|Eht$a>%EvQ7o<4_fQ6I3OKDeKeExZfE7(=FI6?&&e0oeR2*4hz| z6sYGSTBiVvcEy3WP)#`aO6RkHENC5X!h3Go#Dk#*BGcI$DjifvfqQL9kqrw1a0N-l zZPi?W)GCKqXDAWHEK=(>O!v3mU1>r#DDzdYGVU0H&Ot0dWYnZhB7|e3TZ3G&br^xM zYu$Tp9Z>dpdyw7YH}Hnus_Voh?z##P3zjTzV&qy{Pv4ljhxKF2!@g z#X0;a&#-;9W1=}tUzDly$_g+6-PN$wAjyk1)99}R#67D*xfR~SGNymIxFnC9<>Pd_ zpU8X5i4s`S@ylfjmWXG_zrCesZVLa7`kVLa_eyl!{cx+i^~4Pjj&;fP&H?qn)M=Wg z#H!;*BZ%k&sbjEm_wE-`NiVj^2b7jHcE;SW^4!bsl$BcEFg#bRs zA%yMn)!2aES&OjE5Qb197=S+!634@Qg?bW>%CH0_AmKppzdg=nY5W=i`ny;LkD=?$EfAyUZ8`W+;R!YV!cuTR zjq##%Nf^{Erk?Ldq3@Op{fpm+%_mENLa^TCg?8u!T@gx19?K8PP6eSHgvoxDAx>3p zrF?HZMK!16(K(@wf8~gnFBhgEfF6?d9$Xlvc*8XmrY5K*VK_N&NjnU4 z{2ZW8SZzk*2O+T?%Tfm*hFV9k*$(wSrczk`a)aoS$C8)K4#_Z(%JjnLIY_5R3W^)3 zz@mL_e39#ri(%OnQJHqrqRe~bksr%b!-bSP6ih~)0M&gXicDpviW$k{66@L4DK2>Qm>+Ss)cEyZ(bLSWT7* zFoShzshm&`Lys#k4{Xtm;g>x1gA@|C|9+e{xhD?5hs|?nGN0GC(rWDxEb5TRwJO+I zT}{UQKvb=RIn>rdldOjpQYtf$MrPdz3FHQ++S*J>!MhXt1J*(o#MT$W>o1f4eYK1T z;0h3M^^ZpvLg|$!YFFhx4D6ERJ?u>;0Z@V`qpMrk+{1JL${_Q?j~TicDsCK1;rQb} zto2{HR_wPR4hETcAq*jfbu4!^?MxwV7mH~+)ZWALCoDJQxtrt@MPbm;1&J#A@L`P< z_B?Qh)A$IssAIcL-1y{;4WkL?URf^AmKj-+3X^=cL)Cx*fAtPCZP zPIP`3hN$gYIXEuBC2j-JV+qOjp0%p#{1hA2-u3h^BVYb%RKAKIZ1*-|sw>FOTQsS^ zBW<`h-hJF8D*w14F5R6_S#sW_{z}y?G4@ra@U^da(Jw>O=`*9Uln@0od;e14Q_S-hx9!g909) z1OPl@74$o|gl;**eUIF`XzATHL`}n$(+wT_{%>iE!pZGa3_!kl8vJZkXQ)tMXgME1 z7%Dwht=-ML8*S|mY$zbkB{}r_Jgm{Y-7w7bC73@g=nhG2Z3qx(>%$O2>WwxKlkCOR zA95@woTGEtjZ6S5F)_-8qSN{mHAUEy!$?Q@W5);fmif|F#5)UtI?Q4%BYVn1lWA&< zTsg-+Yonk~=gI%)y!IgCNK~G~?zz^ebd6iMfh}f+2lrNey3cMwQ#` zO2|`+*AtR<-2APqyEw{?8!KoA7E<#Ba`y7q16+U z+|tU7`?NpWrv}a@>sjp4MvW;U?3q)1<8wnf-1=W-2Gq!*grH;Qqi+S8ZuYjRE6{i7 z<3sprq%~sUAvFMEI*w&VA(Bj*0R2$s^|ZR3{H3V$?sCA*HgdsB8EU^82?Q_5Y?1-X z%vk4C)UHWeL}=g&6VtJsAOL-?5KuabggSslVIv6k3GhuK?m;-l04BxTvu;XUw8#!` zCO)U9UPrml+a+?k#iqK^I<5sCsoqRkmi!LLw&hYXzIJ9_{2jaAyue|Qh<5sjPcmJtWN0}kBb!>XOxZw1>7_}dgNQ#|TV>%Ozq8Q~)Y#R+e z0-crbS`Z9V^bLQ=eX0_VM5*Q-w~}W~vS~3RRS5EA#%-0GY$M#O?xzs{dJ`Z~qvkrN2Oh%~~KmrD2&})eE z&BI;9BIqRXW3Wh}R7AX5!J7}&JoCT7S=KC6QMU95Yh-hd28t|>oIac;9xTj}k~66S zP?o=BbsOrjYimrG=wbTb3i0EJ_OsEmmtlQ17uCRJ`=9ChWE^WDvHRq*S@bwu7 zKl<27{~r~AVGV>a#yF)eS+>F-ae2aZfF*{7k94@xb1bcR{@bc-MK?antK^hM82xGbs2<-5GTn{c-^)_K>F8T?fv}}k5wfS(b#+0SzPdE=xKgJ< z{*W&dc`U8z5^UdeMYZGLm*#DcO#!b;XG+20pccBl|C7$O9?*F+qXi9lUGGcE-0Xy8 z(*#X85Emdn)Gw!(^`wn!n;E`Z=#d3SqakqRH1sz*mlaO%0Z~g3^=MqG>PCFH&JXrQ* zB+pPve*_|Jn&6BUJB2w>D+bfQYyblxHoYQ~^OU1;7`Dr7wW!YlGWbKzJZF!s2gtzS zwTl+7frVeJ>d~-eci=E~!+TAP2~@0&f?=B7Na z13dB*_Vr!uBi9hqo)%44)vnhCXr%FPoOg2`MNoXBBIGIn+j9(jfG%Q1C30`7EL%sC z*wap>=VI|UJk{{Dz>6M+K+Sw8ESyb-$#X2Di{=b+=pUE*P0W#um6+I11AN z-c*0Lb!R{OV*{ra!wkZ0o*|y6q(h@E#`mkmuelyVU~34J{V!voy}iR=a2sRr)S&OQ zw&!qlzp~zrOyww@c5Hd?^#&_L8|47HKHa@sUA{jd;99<*vqhmJ%f|vO*DB0qN{=Lk zO(k1jC1t&t4Fh)w%)3ByuUw2opufD43u~T9nrQD(Vbu0dPAVb+Pxi<+uBD#E1%El* zmBpv|+jNxZM23{|ZHwv`#O5(h|7>U=+Kd)kliRwaaYuTpfb$=`j;E;KxQk$<>`=BZ zgv^BE2V@*?AAguTpoLTuk!oraM5lw33$<%eE^0CcoMj7qMr<_2(Jl>2A$!=#-VH(* zsO*;J?yxq{da}X(tQ~M=`VdhrM)02*pL?CmRwn*UEXEY^=&|o{ljLUJm#-4AJomFKwu6=@wbA zOt;_fJy^EseXDY0JQR`^Qb9VHHUV4bV(Y!*t*VA#n%~!6aEJu-?;cD~nWWnsT}Yx* z{36-dHx{4Pp2K&D`Lzkt$;J6oLzY9V>j1p|3HDhp3%jF#9~9SrACwc`aTS|l=-q&! zCZqr~@oo;B&&oSpuYAmuGfJ868-!y`H%Sp>PQ@qx1#Sl})R-M97<^J| z#Pcw-O#P)KaO=vqyZ7tBttz0hD43^2i&Sj!J@L4t6Q~( zox@u}>i;9^9~kRwqpfXt#dc%cHX1gzt;V+Prm>C2wz*Ay^W-yPWOCKq139JYQ?Y+m`ouwq^ZZU#zZP;@=;s+;VZ=N1RJ+v=y;KW#X z1e(R4!uiXc#qhC`tF?9x_!@K0lYO)Iv5_ggYfTg+Ey(dp!n5E^U8lAhK-r|j5BNkY z7jR13*$KQS_(Gfe&2`@E8mBtpNSR3RwS|KvkdwejtV}^@XIs9tg;>u|sx@Qjl-VWA zY*+I!H?~eWb}rbMwB{Z;SaK|fIb6>%_W{ZRcY}7G9Ti1fKn#sc z*xY;Hq~KzMHkjEuG~|HdKuo&afPNT@cGWoNh0e;`={QWY#gms4oA|FI+_SLzWQT!4 z#14)cT*znmdlbEj6AUpdh3Y$K@WQKuZ7Aywwg^xoQ`Edj(|OVtsDZZrpmR#fKdWGx z55e|kt%W|_14&Y^!I{%ewD~BwN^E624T%y=(6fW93xfMM+Go$n#dxTR3wHbS=S5)G zRU~hbeW8cf2J($`4=sx5PWaaMKhjF7CKUCq`DrrzEk)R+ds4dH=j|yN=+k zgifTiZx`u{yBwVowP1*g>>lhFwv~q86GIsZiYjaTmAq?TA?>B!acO?fd0l6)J*jQP zw>cW-{Gu3RgD4M=s52GL-upqm+l@p}-^Q8!P_|p8S$svM|51VT!8(=zGbOtTf;h2- zG}QQxb5M8@o=QX1w0Yrf6g7C-HM+mi0!K?rt*aPhV}FRZ!hm$Wp^9WwQDS5b0RYn| ztmrmhuG@^efeNO{j;bIhSbqt$rMl!6ittH6hVQuEKFK#C)D1%nSTB84*BZ;w06lS$@dW!eI0)lwssQa7at zrb)smc+@e;rm^#s8Mq$J)mNgph=gXGl@0i3l4g29xY|e$Dy?Te<%3A^lWd z8?P_;KQ^e+uZ@hn?$b4wTHMtFjU@!i+_w;-&U^A@_ewn`5%LgpfPl^x4 zs~ntcTWLP|<{Ly;S9PM5UcBTYkeygBNCkETwo4?|Kzwb9Nb2YnTpS|6^Njo}@%taN z-ar7xbO2c3;#<>X8&FP$5Jt8=LKhhh7z^oO>t@YX!oSb&M@=mM^NIs(%Y9QKMa$f#mJEBo(tNh*0UXj;Oh5@ zY7Id4in*761yTQ`L*Tff)PiHpor92iqT4MRKmKBTo=-e8NO;kF|1SnpGR@;oB-yXM zRKbpVbjrKB*TDa`J<#9`0>cBlU5^kV+E zymV{hRwE06iZoM4q0tykb+^H|$ODy%0%VFkFKXq2k9DrSNAe9P1BL_ENZShB!N|vE z883auu5&sN`Md6Ziju+u(w1m<;%np{|9&j#zo4k-KBXsjc$;pO6DQOhcT1m9`lAd} zrF5MXpq*;j>waLbw$-n9Ddj@OdquB@{(63n8U(5n;2I*!w9onK>X^ZSMQ(c0ZD1R- zu_Y??)Hmeth;90i=eAp54BOgMuhvHgMv%abB4913@}FYrT-C9Z)1_0}i<6>!l7grR z9?-l%R^fM2LrF(dXo78!s=d5C#2+|vG)-RRYH59Qx6QSyhvJJsZE8?3Ct3V^ zckAzfR4_&#E+A%~hQmiX8qqmpl9P>85@3@@>#~ zo={009W1CY*yb$JA7Z^|O#XkJ`u{13D?0z}&(hq%d@c$#fA(moG_8fq>scq$KySBl zuIHDz?_`_gZYv;RQt0iw%tWLK*q7qK`2<~ugGr^pMXaKOgn(_a5~GhLM>N+fF`e!f zG5Prt=Tz;YZ%*j?dve$sM`+8Io$DIGD#^=kr^AhLKIkXo`wAoz`-@lxyk4%+sxRA^ zP3>C%rGx*f>Riw5;2Pilqy&$Mknu58owW4Ph7UYo)b5V_ErrGIVrKJgxN7;_G zw0?v4R+>>Wq~Iw00Q|%`wjW-Q)nje?{PFQw&}RpGx&B8R_S`4NZoid!dkyz18ZfySc)KU+ZQn_5H^^)&yg|~DhLIzYTMV)DU@twL*Ny=n4C4zs zoxYSDKhqm+;t`K=103{M1`I3A{O2ExN1dFTxhS$*)@zZDqav$jCt!LVH}vKA263`H zmw}#`yq{9wJaWE13Ik6)u_G_FCQg12Os1(g@|A+iFw{jH=|3XWarM0*BvBOSeemRs z=vXa2`NN_0O0fvfL7Q78DlLr(KurYKIf9xANLVQLYeP0y*3WZyD4qM4Z4 z=jk4sfvLU2_SGLUTHae%>t<8Y4+%XlQqhCS4~heX5YI1wx!?P! zm-#^LtU+4`vaVFXJ1#O!pt4HJQ2H;V9ajVD93SBoGr!5Y93a)c*}Pn~284&P_>V3} zhu}f+cMzm`_2A)!ru2pQLX8KZ|4;+&-At0Y`xubg>=01U-0JF3G#$@qR$}0Jpz0+u zoNQ@Khg7ld{AOQhD&NY%eBkwB_tKdkI5?$d7E{Rhf9tQv{q^7fd#bUo+u6luBa`8r z2(nroo?uFJ!`|)E0O@Jp9_C3MH|Eyva!tsb;#)Y93S^jaD!S8sWk1FUy~QI6IexdW zne+RbRdihRG|qVS;^XCymSz|jrifFhr$P;j{%Cb#-Z{5tVJiNkJ6zhGS)-TBAj)B2 z3%31PpIolxMtSKrTQxrmd*?O=duJ~u43=^9gT5xnaRnVyI2&ORUVtl&^{cO~RG!zw z!PhRnTOFJ2WA6|PUGco)pssPgT3J!0UMJpJ5NN}=_ZKv66q5i^Q4Fm1S-D*fZ`2@z z0a#9rEcHTZjj_e6=jT;w)7PSD#DcA8$y40FWfDsp%yS!m{q*6Zru+ApObMd@|IKZ+{MUGEJa_1n zs&(<1qRrWHkwpQi&rJI>xNZ&|PYlZnQ5TDMj@P8U>#d~{hU03Ya(1mMcu9y`vLd*2 z(AAV){mVlz+ew`$(&~Hae+&qkp9367Z$%^z|&y=nen|=!k;vNxWBI(?zUZ1hw>f7e>*H*SDk8w$<661=}pM_mMWgtV$4obTSzV z8fay3bJFLjas-VShv5v|1C7lu#biZpnMVoX#jf?0ytyPcr@3ypRUgott$6v?Il(n} z8jTWg9e}#Zu+o`qNpuM-f2<$9J4Zs`Wsl%3Fyl<#Vn%R*vS29;hyWW>pt?CG$1c2N z7pPdPw11`P^_K* zd67T>O2%Dcob+*DsiJdDrk5q=X0b8yBaP|&5?zvBK+d!sj5exb#ejzlCZK990IA37 zQ7L_)K&~;D(#}Nz9F||CC@C${cIjPb{-P|;c7)L5Y>Lh48h_jLh1SiT64kDdl5ibr zN6zL;rm&i48LzHX4^wB;(XFP}#?&r1#I3TW{sw!LD%OuCu%6KI3>Kd0y%Q`XfI1>BjELh5rW1zWAG(CdO18Ts8p$0(f- zyb{;01|;*u#1hrCjtR=hF4>)$|}<%F#I>t?v+2C}~H#0dJA-hVzr zu-&dW6dB}Fx)?qiWIP0WNR@YaO>s?cW2PAWNQKaa)YmHxBj^#IneI?xGtddVGxX~n z*j{{oW}6OF&;4N?IR6u-g*cbSuF>#U<*_1g%B{_9+9y8V7~-E?_5??cU8f(@k`9BN z`!zxi6N3DFJi}RhVG1yu&ss+EQ<=|9CQucsZS9vXWZobpHlzl9y}l#onHA?!twx_Y z4#+%XmVUdiuMCi^UhBU5GinH+EPIG8)T?gby@p?xIrOSquv1ap1L?FvS7x{@Awq($ zLYfPKzeYcv-ymsr^FG;UQ&M<@TA^s{Lu^5ZtHVD-1lW$s{#a&IARO$ z%|>!>R4n#s$YXMr?eH3BOSuvC^Cw^RiOdRxXh9s4`uk&-+^Aeo=_Z}vD;RD zoelx@rw$?%2{@n}g$wz!)20UV#yBJ@Pze03E(dG5hvN=)C^dY%~>^cG_EG{Ie~!GL5d!M&f58*PXX>o88$Bz$M+ zI_Nd(wX4>QUQRo-J1S8vdqI{a2*%8P5fSZ~VHZKo`bGL+I2tW${KAs$;!Gct2#0^? zx5q=v;V$`l7;04d9Oibh?SHScsFZCdWeH~2+$;%|j$QoUb+g6$_3GssNbv7Pa^J*O z<)?dm{ca`-X0 zJ;fIhp&=oF41ZoY)p6kmyLs1Ed=v!(!|{*Fis z(cJ>-W~tG}`}}Gf-0Bv2iNglf_pe8OY1#0FGVFHhuVXUP(j4I0;_ZR1A(`0IyMnjD zJDv9XsY9fzV^r$*$;a#dN=2G^Z|gMNR+c@mWjOx8nH`6J`doUED55CU0~w7Urqdb3 zY1(gjmV^qP!ed$6+L?*FVzsC9?~9dkUHdQ~V9WSb-l9a2pl4FF{WFwckMDO4;A@o$ z-Tq(Dh7i;b{Lo?6aKyOKb$cy+G8b^)lQ@4bR^xqExCPdLgDk?{ zopShXdLhl0zq7Dpr`k`u?#&mffW%G_dp^?^O`7 zbgFufpua^J!XZ5zXH6*ve~-4uc%eSQ$7mwq_G24W5;3@VuX{*7w;K!YT& z|JlHV#A-mNO4j;xM?frf%J!paH>>oNCz362Wnx&ZrZ9YwC0ZGh)6~X@Dq5ig-g3~? zg1~~L0zbz!9Wl(*tg4FMgz+2nbPaLIP5l(-gcn}0+mBGpU`~WKD;FY3vdeFgU>UOj zB`;h(^B)w<)(|LAKD)!4EOt#*C&qkQ#ra|~jg9F9(H9Jy?NbwIL@EM^{+!;2^%16r zyrt5I^)RMemD34f#Gmjj7`Hycw05^xLx%_`7~MyM5OEQew}bi(pD+P1Z^*Pw9?N?=y~2AZ1jLP2)L)+$m?^S zn>@G2kO7|=ZGrn7*--rOIodRZ!zw+=?d}OWZ4!9yWXd;UYPPA^^b zf0(+HQ_Y*EWm$3|XT0@V(KU8zmK@zHKXKmai+O%unTZ4l;?Qc=m0@4s?7sfgTkok1 zu40?EYQ}V*PpL-lcXg9}i1h_jAp$z(sK~uku9P2U@DbLne&N)+ElK^!3Z*Q zZ~F+L2by}iFIdDgJxFmGMpydhITRwwHvVgw#oO#y6$CY*+=DkVhZ+ZbQA`lw{g~er zg;Xy;tiijh3N^5j-rxwkJ)V`xpjh;RaOXXBs9AdZ3+vDiOwy6@6iT=P5uxKfvsLvy zaT5%{m{K7v*GNCA40}S z6B;u$=l6x?Y?Muq?Iq+0gn^97LqX&3pMASbqz3s#sx1qUy8Juy%?Q{ky~)qlouj4^ z2+e=MEchWD+P*v3+G16B|G6iM`#xosZW`4@>|MgZb5W?0-P)OC6=4L*VUy$`o;eXw zq|xOC*OxlW$yRM(-@&bu*^W^efM20u+9d&y>(|?90_ubk=CW0b7yNjrj!*>?0{*_2 z6O(h|4M8l3pG1GZ%CPZSovK-kxS6UN!L-eJr1MQ|yQO?iJD0)M>}m^BY89`uX#KrV zkapHs+}Oj+)T0Go*ZhrMr&IK)uD(JY>x5`~3ZCBtUp-|(gaENR#Dfq*?3N8MI~5X; zT{3I;5W-kjR$5f!D?7~76}@Eq{Tvr05)!?IY|E1CyKa}v{PdqD_602{u@Zh8VWFaf zH3IXcabS(5R+c7Su;#pNqc> zNs&~7G}!;h<jl=Nv$(yPp(1p)^ z>%G+YweL93w()xf7NZ-Dg0wkrIjAagdjl4Ptglc9L4)H1{Kvms$x5lAP#S<3vDFc+ zqbI|8dsKt}L^Qg`|7hvZ4MEic;a6mfR=mpG<(S02RF;M)sj3}h#Fh3oezMF|g|ud! zD|H~Jjy{+VR11n=xcvjI{^lNI7)Q}ZWA8Bc(b+#Z^&3NKVN83XDi;LO&$AeOH68AZU|mb zdNXShC8eB~&We_E5v{Z4|8Y2Kpk0Y#K9#_Jpap_KyjWH<2f{1dgJHR%E3lwZed1{Q ziW-2mIkpCYgJbn0WxdnGg2i;00+%Tw7y5t*2#&#PZG#wHh{CFQK?i`r()
pyG-g;#M+smQld+itsSlU`5i7(NFN+1|`7=*7G65~PD;=>p?`KCX+zX8UoU1`5`4jN-!+~B$q}RTsq}I|}M?t{0Nu0&~Odojc zdxb}2ht!LM@I>={DEH^YXu;t8%YnV8t0PG_O1AU5Aml6dxl5k5LnT^eyDPB#gKFt= z#oMZCB+@gM(7|_j+Tw3=Qq&*8$+qtX9d^``nU$^Bt@G()?R&15?mo^0R3(||#4wv0 zb|mn5KejpRDRk3*`Yc>6rFfn@t~;p*J;vK6twlG;sa!{{pMSeW_Ih2S-#`re#O8;q zbN-p+v#}v-InymO9F2L+iT$;zGN_4*{vSqgj^ZC>q5Yxq_5}h;rU&UEIKE({nkIR{XOCh$O-$Sg& zq^N&QMcWEW9QyYTaVmHdO*8M>kSu?UV%psx{rY))Hy1FVd2g#R(ttgl%`W&gYV@Qc zn29W;XEyJfqg^aLT{uG z5)nOj>=O2s9A>h$!6zQ=w$%P);GfdE(GmRNyfd$`HmdtBfw4%l)cP%UDRlz&v#q-h z9>DdR+sw`PIz4>Au}ZSWycrXv&w7dI#QsS%qWfz~uMexYb%xvG!ENZ%?&^DQ zgftQ0-UZ!7v`J)GaKu%3+Qdp0tLwyOfuEemtc)JMQ(;^Wl29;<_HDlUu8<84`73414IL~uBp)dsQRP;3TrBG znQeRExsde8dTPimNWr*+V{sZ{5q; zo{9zH_nEXf>f9e$m;$y@dZ;R7T5ELWh7>y;{)w^1Se4bfx?TVTuG0~jh&NU%hmm7_ z89tE_8EE@y)t#XFluBIsJiV~OZt+#Wr*4i7s=ok0oAj!eGLyn9Qk|o>4EFx&Xq$wu z_5Wi5tnY}~f(OF#AhN7zQA%n3hNswQ^W9a4af0qAg_Z@V~od91w2k zrL>>)gT~qOynbbSQKhDF5Tv$DoU}_QS?^u1UvjcJogrO;B19Y*rXQ?_*zjBx zZ@BEgyFuIMZFoiyO4OD#b{%yU{d7EQ#OK56X*W6MbN$!cusd=bRpkTTiprGIZm}~k z6_LG~uOuIlcd+UKa}gd(=RJc~L&zzS!H1FqrCMtb0KDP0kbXjL-*n^uVX)|IGJdEO zICiC-@&_A+vH7HHEe*L?4bQLs$%=xPlG5_3#o($(0B}nUyQ&LSj)$-kg)H@1l=$f* zin6>WQ%P!TB!Bljgu7LjPo3+6BCOC(!Rm!R{`iEbBoP)UWK2WXx?CgCXld}6B^r|$or3| zYif!1=phX)E)+(M%ZqOJyc~L%b@+{4`s}D2ui5ea1FERsqV}A6E znYmb|rk*t9bJ7U+OETVvc zMLa+Pyr&~Oj;0w0K}*eF;l*fGrH~Y&P5bZ#ImN)Co{5%x+;~z)GND*ybpY*B@fi}S z-uF4UJ5sUCW<(u!5WBrWbSE&XqK>f=3FDJ*O;`H594Qu4aYNZd0U07^trWDRXtubvMqV>FF4YO0gWCAOxhQ&X$r=Ygvu$+e4d?s>Aks-h`5>nOC1-m$H~2 zcg!@JQtExiG=;lEV%+z;lNcofXi@XFy1KLW{5=^b(8a>%v>sXJ@>1-n_0zFs5MqeX~;C5l8c!BSexlXXEVK;4Ogu(GGbZ@FDmux{iQTLHKQ&0lJk9 zjNQD#oLIMas$S$B5#%Z83>~dxb+XYTejPUh9e2<-@12xa>#nXp?8m}|uW(!v8dA}_ z5X-$N*hGVZ?~)G;%a#vd&uL=fA;Zui1SnuGZx9n(2E4GuTO0TT=LVip?I?hiOPt{+ zNI!sH&35>^ykfZ?6`7mm!(in;@5}Y|My@^HOohn0bRHqGuc~ynUq{YhsH=B%1Gra9 ziqdLRHuIMExyQ;37HrAP&NtvGB6E|;@hOOVodc;=^3={y$^wJ_S{R=iC9jC`10vVs zV=KC(Sy~HS(wyb8RS^DtRS}X`EcLY@@@m)WnV@1&FvG%x>U;D!?91QcANLHF6#n31 zprk&Iaw0L}MMntw=TM8OLHO6;5#$SpM7kDFumTdm4kW-Lc^y=d)$iV*JP0=W4NQwf zmoczd85|3k+5wJNHS!GzlOG-^4knL8|FsPu>5>{E;}j`PyKgLDCqP3+fG`-xsm!#& zfb(tI+3hwtvnbvIoM^Y6cnuI(H@s1o_meLe$rV^8c!n16Ylgj7UCCrvk!RN~kQ{JG zE>*sp2;PH7CTG%tK9`hc7qNFHk(FFO-gm|89+YcTOazqD?t|=?(W^!ghW);oS-Lb% zjv_=iLg>RbXp9FT42ffQZSvi*Q@b4LbjO~Y<)`3IUl*K~l;kVAhQF%~c0VADqXvkH zHP|QzDPsnpWf&5MZqesvKzaXDZCR%7d-fx{_g$_q8dS0UPl{{HBagso(rX8g9c(>( zjDOW@s}H*U)ie%K49=tMw-#XtUYvFC!wWfS1Z41;j9W%( zeolV~>kCOxO3zh**l(Xp=1%=vS*vvu2Z6W~mS=oEgY#cAq+u2Y{Dk*1A+4V<_A>80 zN9g#)esP6n(-VT!gq?ewl*HzO&j$lwg3<6d?78mgH+RGuXDj=p^0#2X1fPS$5h0q+ z#ZL(dqQ)p5_?$P{w+(hDg1?BgscBrUBx?@N&Ju+=vN%6Z;zECAN3W74x!!N>zR{#R z7T>a@4?0tZV3aCX7F7r%ShO3(ee-NNC%xYsm?5R+%9c`h(m-(daihHd*pD`+yn=!e zvgstd%g*Aqg5L%9<0iPJT~EVF4T^qtubh||)-qyToahxyVvcMps_!boNl9kzAg9IJ zQs+ICYq~V`pD*|xvxu66T25FavY7t-;~1tW2Jjo^@3pDpMXw+2Bv_SUlNK*+~JnB z{tGeH=deAXQQ4m0BOk0%Igol#-3;S-26_i9V7&vn4vNIAQaZiC>QCFAC`KR|%Qs@4 z)F9y)-5zW2YvM2{SffAMqK{Ca{E$4a(PRrLR@?uKd3nnzj7Wt7G48)X3Yb;xG)>r6 zCA*ddSi+V{XbRB65V_LaLNL&}hp>At*O`3{ztFRE3`2P9Zz>aSlr5>$BlwQNxCJhz z|HRxW?N%EkU{$+lPt#^qncSrJ-frn?XeCn|iD zmA1{m{r)WJyx`;@X1kVV=4H*t5p3IbC(a5)sb@usOeqda3bz}(x2KgSiq%(-Z!l0& zc(=lwN4}*)70Zv%wWjawkrNYcU^|pUEipl`lNF|Ov$C0qmNH4OUH_CDA!O|X7a|}97t~cOvBr~KwX=*RO(HL3N+De+twPR|3?`uOuHM+nB5-kn(ZCPh6-|{jI}>ATq$Ke>183aAB(LG<`B&m_n5^jx zTLc@KlDMl^!uU!=5997thSg~`lL{lX8WQp~$JSp2+gP)k_>>ow(oF49jD(_AKG(Rr zz?k6n&jn;q;7yT1!7<}P)X3rE0cU(j{n)v6X~}_D2{c#4$=XbOmEgYzHqR-{IsX~7 zhV|ZeQPVW>pio8UHEHh=D-bCaTjgb1jAobN7u<&|EViBPxHvEQ(&Q68e-wtym4%PB zLC$T5Le_J2m-9XitLo(zrk##3wYLubk-XgYIcOo`GG!k{GD7*hK8oikkFt0g@ER|% zO(h;eLTwc}Ne9lyhXJ*#OyH|KkNO45$TNlBjTeg#B0P{XjzL@`?svWLw`KN~lBhrt zEx??KlwXh&6lf`{bM{j_rMavWt}JX4Y5}4;-VkVZHY|?8r%Se%uk$II+Y)x2_n+9t zH~I<}Bw1UNhEhAQh8SSt@p?9h<{g1%fiorc&dPv!#vZAl+tSpdIpxD1r-X zFlkm*%lf#$f|4M(=ArW!+SrD>{uW2|iaZ|uNuu+74=J+s5LCWf^ajTcj-Uh1u!yJ_ zqYBzP?6+_Rl2*aT?7Wl>fLLmt5wXKvQzG)z%NFW0i|B3(X4rN}O!MHoe05LByyBGczbn z=($^ry-Ldi_Lp{F*IO^eY9uPrUSLe`<^&bxEH#J z4@i_X{=04Hn^AdSN`VU64m3UYI|+YlQ$`-WXd44uaGL9zo?1)vUC<%QD9XPV_S+@d zPq=3|Gt-Q6Lc`#Eye>8|ofZgFqdp?gqFm^o#5o?2?7UC6?myWaZxu>0z6Vv%B>K%# z?r9(KdhQa&8!2?Ce|GCm!cr>(+3*{iiq}^u^#_R^*Rij{_ICiZ3#fB(36 z^7J7os;U?v2}+67?N^jj3vkR*j904E`$0+`F>!}`!VTw3(z0L>nvg7{AC&paOsC?f zn^BdgiEdJHnjMh> z;N`hhL7s*Z6p0h0blMQ4Ky1pYlFGV})jAI(xAF4x;yIuFhjY|W&Oe6V#VQmPGe7%? zqUhtBDQSWi2f7&hpK5e|UO~1vr%T9+fs$x+O}JLzAvSG%#_k_|&PXYu;aL;n!Q`fwKV~o@taz`yCY8Me z=55}ZeJ~l7=d}Q=POL$$>y+azt)9<|k%I-HcHz_uXjCj*{3jmRaA`gY8ZwFtd+th(v?y;m3gbAfzskm0-Z9Ii~KpEm` z=jKI}_(yb*^F<7sR{N-?yjonvM0gDs;sQ;fdv1-RVpj4bpBH{v=0kF7n6IxyDuu=t zt2|y(r+YN?++()E>zlycxIWt6@Dyye-uWWiW>P2*fnnTg9#L1I|qVf zkGBwBGZK)0qQMtTG85G5C1Fppz7AbwKO!- z%yIgk=tEs6u2YThsL%J|*zW;f&W8gy>)m!7@H{r5K7b>e>`}qTo?M(gf5_Lob7ks_ zb4Y#!P+SC+nO2D}cfS4^T*G6{k=<6;56jcBx=bJXHT>{O=o+p4VB#O$A)5%cFvjh^ zi^Pe>)=-^+ytccjCLZ*N?C3uG}S!JkOva$NWJB}?H}qisC))O`sm=pSkCG{ zRzK<0?k8wA&CiT+*VN*INCs{AMKZp!!k1yTq;YuM1x0=jX7R}JIiMiMPUOWyMVu** zG?nG5LBCpwS}DWGmyZtjQ#D z@XUFm99mg3$Iz;HBX~Th|Gs7X)sahZgpz0E(s|W#W z;v2Z&ap@(;yO6i^o)Npm2d%M1u>I#_St(?zn)D*Ub?Mj;%?z|!F$6EAUWPEB;_SXS z%l3-l!&WXn_%;B$pb!SlC^{`TycDoDF#l^~m%DXqm14nsBWca3wx6Nw5duPk>eS#= z;YlzbcuXGvbpZ#{i)GnAeq-r&6Xj%Cc9&t6(7k2ZiP^%BPZzh}( z!r|Lh>@#Z6`LuodkTh)ZgFJy`;PgeuEuCD?(uNhgwS<+TS{`)ZELH@<7(wZZGh|j> zjh3+1*F|xXVvc9h)YL<-(5C?np^frUjG5k6GgG0HDlJKlFD}RKV(15z+LB4F^>4}H z$q6vG61T0B)CKOP^X(VASr**m`2u7aKYL-`R*qhV4&CwM@Yi$Y^yP)wMa)f3M+|=a zw2fV{u-a$S##Pz-Cilab;?{}GChkvY>Rv?C7y{ujre~3}a~NE_d@EyILSHKM2)_Zk zfmH@4Y?!5XY^XnjWH?C66eE1Z_os(M4Qr^}1Fx}!3=7uxbFy{whNg0%ltx_35~rjj zno>Mjh^fZqdK!2FEyBC_sX}qIM7O6L*H!44x%hYi#VE^2OFC-X*KDo? zJ%c{>2tVEWic<^fjYwm_UMZNbWus{-AjLr1@RIMFv6JKs4{fy9i0{7R41cf!bFPj_XUT-26CND~(gXH*TmctYCf@Vi-0AY%k+ZRGFwN-yunLd>;a1keL7kk8gaM%cGiiQd)d z7IjgDs{0GeeTv45dKk0A2m{(?&Pvlu!yM*2(3`6)+}y44@28PUvwf6*Slrk($#Vr? zZWDT@WNjazR$9Vs?>F~^13Ntobyyrf(eUMuR(tWPn3`GSLY8wDz2O@fTF{8cl#EH$ zoH06w#&P0km6-zrw@b691eg1f4ACIl#C)cHLJC_bX039SJJQ$}=LIFm76KGqIh&)* zgD|JeqqBAngL^_p@Qa<$M`X#fJn!J3eLwnq)K2E-YxJ}tiQGP~8L}CN_p@;H^!|E)qcg41Fe2wt$IKn3VbDfK! z_3cK%ws}We@495`bVnK7$|rSrMg$>Gva{YFQ~rX0xUway9pP zwR;Gru*%S(T7eGQvi~4)&JK(4Dy?y+Nj8kUI^B1L`+h$VW9gkmSRwUPa*hxrEdPPp z*Dz*DDH#|Y7>QP<3mUKkO?)f~N-3r!X|F+#g{*#iSmITb2B2`GpR^_denTVpH9V6f zP#>D(R^!CuiL6*6>BT0`za>OyL{b#*+lEn5pT_Njt>!MyIuIlO}) zMB{7iPWR2wHVj49wox`6K!vvsvm42MfysmjPmCK zCMvZPtlEQv^P}?Z-It9&hn!4iP3PsXg$`q4mK6!OHaAzXgS9^|yfZnp`GgTU#E>syf$)#%!~;prutBqcmyJ4=9Jm%F>hr{@EvkWSs* z-E1r@Bzf-#)Q4Y`hEQBn^?orKShvcWvqj00a)>6DM7^R0y!Gkf$+kixClLh7~ye43Bh7H+5DItwiNX*v`kM zZ1q07_Gg^4CAXWcFk&XzRf%m5hPN0%JJBu zeY@=Jy}x%g0q&{AdKD!J_1^pnEd5oTmK?KQ5Gwr3_oZ1DC$%AzzT#=4mdb}2Kjj0t ztiNWwznDD#SYBFUxwD66;);3fH_Y$b(GYR3`#!GIZK-ak4Bm;jn!v-mfsfnNT<4oC zUM?^0P4xrr-gbzKD^#nI2M`rM<(hx^?SdmqP#%RUZ#hO)!^)IrGWrgMp6MzIH9$8Os#@$KE1FhQFV$1AZ>@y5+K> zh75DO3?aF7^tQl_Cfx)AVOR$}59V5!7nY%t+zprLAPRDWq@$dM{DX4k86OpwkZyF8 zBsWMzPccZbXAxDglT9mmcDF$d8u0H#qOCKChXXmgmjQs?@_;nwzb{w)~zpZ#S>}HIF7U$f@&uomI-~3lf1?u}?iu-M4dT zJsgo%DVpf*5CnXz@JSRz;8Z00{~rKuK#{*>a_~o&OW&v8CKXJsSO4XQH4F8l3suj~Ll#S)4 z@wz(w^wZ>9-})B9F`)(tC)~;wG+K6@r2Fk&Od0YHpn>UzOIU5(EZIoevjHRExdX9*XcHR;ak;5B4Zms=$k%VfFk1ceHoYJN4~=nE4cO^IbbuVB4{} zRK_Y)du1L{cgoMcf3>{&<$s3NDs1DccHu*%_*gbCf~fcCN>vf7Pwm*c$IBqFqfh_H zkEL}`Z!2RC>!>T}2=dkN+}St%44516wRqB)j#%dg(hB%sleR6?hw{g-fiKW74DE*3 zyIY;{g$7snYjXPOXX-#jh{b%BpMtNrO{Mi(L;-5JrX7tOO~A@QebKN@Tl=O5_0Ja> zTJHp<2t&K3Uegy28pxy>!?GA4^az%P0H5v0+K}bR_%qHpL%#E!?>Om|*I$?WuC%sVbtYSu7}o!nJdT_vx0 z#Vh2v3df_erT|uKeWi zm&;MlK3Tf)#z!ZWk*e73Z~E>3mENCyMC!wR(y`|;GWSm|mhz%!ASRv6HI$Euz@tI; zm@rm0UL~XJz9ZF5cj`{Sdi(Cux$sZ*LJllxK=+(T!r0tV(_6iT$s`7$R`tjv1lIqb zy*B~0?5gU#_q}hZSM!*vq%uQD2!w4s37`bqc-ws3p5I1 zHx1H?t#&IaA|N6tgoq5vD04_4A#+tKHIMJTdvE`LYwfkqKIh$6RS5}6mDyGA?rH5c z?cuC-_Bs1-SAx4%?U0dKq3;09>m3; zW5L!Kbm)$S!9>G|>*3f!!qm*;J7B|!3jM3x=5lUlV3bMn?!4gqK${B&1W^U`ZJ|Ln z@RqcIb+;xD0a`2!wE_%x1433vrA*1+6fa11npu7D5;281cnjzA0(AF^f|~DOh$lx_ zmzFPI9!1Ao%$kY}$4WnpQ!v+O?oc1g{lJ~|V_gRLXPr8h#}Ydmwz#cy z@8mbQs@K?fttje_hxoX6#=1sI-Dzx_bI0r#e&H8v+m^>KF#uRJjy5nr_`BDJFs!q6 zgfX`Bjju?%e*bl;x8cNe(px@|w*Jwd8~a^HY)%Jr?EdSQr$b-=u)LjRY1LC-m6l!d zpR)Nn#t{oE%V?R&th?;Dr#YR7$e|p)`CDX6>S3zo-<|sFpQZ1QJ;oO2GRdqx7PoLK z-Sk~H!PT}7+3u^0S_UQ+e9LGyeJLFneO7;8(!mM(lgU2`E-c;QbMP}1mw z_ooiZiP9&*^|wpTteh%2S_kD+9a3Lk{@e5EZ)cyK4(ffn*|b|acAYV{22z181m zujp}r#7u9E+^N&#T&>gJYB|Ajw1%toVQZ!3WGz)J7efx#D#aX(g45@r@ET(%Q(_#o zJcB$o&Ev>zW86m{m74-B+#urU^)~N-wBgZV<>n&wd+ z_hr{Q*IQ)mT*%r_DjuT&xz=q*iyI!cqlUxSj5(8C{8-m_b(ZyD5s#BbsFD=99#wd_ z_P}+WOv+GN6*{( z+VieINK>aiAZ_}+52VSH&(O_qcgAX?b>C;+QFg3H(24C@tueT1 zmBkoXAmP!d9G-#?>pvRheyI90^yyA#MX7@E(q_CgeNy49nl6?!eyYw6+To582g~5F zp)UQo9L*TA#{n~cHU}2)N^4gVeo{lHkpT!ojAtG-92?Z$(6?v=o}=i9ihk&=^h+UF z$yO^M*H<$w!4?=eb{Ra zG}pDd^!Q5un{vjwlj_n-FHQU%^P#d}Y@v{mQ|zgn80kA|TYl-;>A;8Houc9ikz@#rRlZLkjJr_UX^YbULWYp z_?#S_qg}5Hw5#$^IRod*d01WQk2bM@ufsOfE?zdOBd)=V_;q1UJDujDThs00>gH>7 z)bTFW!O`t$Ki@s;?NItQeThoDlybcGtNftK_b1iq1i@;9q()B71#lHFV;i&! zgMP&AT5^ZScl6>OX?%^ZKis@o$m_RP0g&EI+6?t+$~*DkN7WZ}>HEjLn(*U| zIK$u^owP0OTXRFYK{tFEN3^jUlZHcSd+I>2%ze=U#@dkwqkwhXlhLC-XzQ!0UZ&@E z3~yGgS7VYrD@k6AG?o#BS|;>n{vjw!XGzzCLkl3K^&_$!daOHuTEjQ^(B|5L!bI+ znt8_Y9NJvU9Py3CxS0$dV@H_8fFPS}EI0`1q%%@=fl z!>8qNd{%$#e5G{pZc_XFOl(hk=Cv_(3QgEic$M*_FWA>F1} zJ6g)K%LUxw0!OLOjMk+!{rkzOT4&A`j@C?Xz3pTz)e-AU^w{7M!A$n^W4q$X7RnZ4 z=_4E(@j94yh8NvEZMFRlW(w~t=6*xL;;i3soYYl|_IC|bAsJV^D2}R~CF%Qd2)b}p zzB62^nmm+*50s1XP|6pf8!R>2YmqoiCg#myKo(R*o5QUUhpPkO_Bb0uLf`|pOaD9tP#hHFpA|qYK zvy4hJCGC(X(b9JU2^jtuj^PM!&<-X(M(99M(4LN2TGz40+*n zgC1D=hhKQp+thlgdQK;7(?uhb8(t-Y^h|ryjcbFp10U_&VHu{|o_L$y^&O_)pZf=- zG(OD9>2s>9Zeq%AaHmHrv)DtPFw}vcm#n<7Fp#0{e5qbAcPiL53p^gs$D-pRfQbKH zO4p_<(>1eyXz(#w#hL}iPaRy(K2Ez&k^o0L8*@1>e02B=oNyd8$Cg>YcA21`!XD8Z z#uue@YyZ}CtB{2T3}>b}j)oNNYX|EC0e(YgxhU2atLLOR1)IIX%ZGmmIzP~2vwcii z)Ts>G3Y>He-U+)y%=y*SPK&nF2ad5aJa|C7XTsL<*#EiD89Vm-&?U(8&nC8&XiBMU zxNTdy<%Lg9b60&n%{<}qbmD9NETtKp0v9kE*fY9#obb8Vq}{iECXMv6_Nu46IxXkj zFnhnnCjkSWX~FP^lublFWPAHx=}?Y8Nh7@vmPSibfAtg6)CoV9CYPQsIB(^&I=_L) zmIEfDV409ix(bxV{80LeoQ!`q=WD;-`O-ZeTNqgWmyXVp^Y!rb=HK~9dgjx9DQ!OI zyk?Q8@GM+t+e=Q+WG!3pE=}PPgw4)Zg?>!Z7ZimC2j! z#W9eoAxNy_b&R_ls1>6VCCXD z%$aasJ-3GpMv$tIG5Q$8i#gm4rlYFd+cmOU9-R8;YXI}Fe$+A34O)c+b6U5DO1?`O zKEY1FSO}akhB(=?9bz47my!$F4`)<4KQI(yAaoz=LvRx;TV6ccO|D!>S=85jfWr=% zi7v8^tbn6EhHaL$!R3-kA*vgPUGnAivCvdw`*t4%brX&Ao;|bb<$=#+plB?9Re(?J z9F+`e;o&3XX_-Dvt{YuL8TNxA2C|H1$>1YQzv7uynlDkfIgVlPclar%o;*RvIH{`y zsLzL(;jNZ~eD{4I!`>Vfm0--v;k_Kb?P(KG!2y^$(Z>FE|Lpp6cLL_@HKG2Io5&l=_EZR4X`mwP5{%Qy|T00QCEO zVgh+xlidC1kW+9o?&xW{Ag(iJq=Qal!se|vbKGjnd%UBIR460*uLqxWl2SI*8EW9f zDT5w;3!Mnj*QHFn;#8S@8lQY0Gvv^Bj+FM3biF-@If0n#4SyMH7Mp^eaEusl&_yPi z*pCFx`r(?O;gW{yR5_foH;g9*%vEMWGEb_^cCtjv^5D|HX7273VDLRT57u3V8yMv!rsxBi7U z1}JgS14X7I=f&*}X?>*AdnHrogsBtscnt<;N+l|T+QQ(gTv&z+fozV9Y3$l^e6)Ju z2VW>!{@TPsD#vEYea_gi*>8(-&4l7^5|eNK#%t3pFL;vTYtqVRJTI;PFTc;)YLm_v z%6>ZV)%T@m_5Ly~yLCP-IsFkjDe?6>T;u+lOtI8^+}BFLgkT~J2YTF1yI}L%|4NIQ zCWH+8$#p-LmTY{sR*O@C$bVXdEX^V$u)vvl^wk>}f?pI^cIHMmYxn1$^(fsZWdwXy z_1tN6K4ymZPcxGj>yfw%(z5=ATFf|GJf-Wd`g9sSjbpz3!a!N1Bc`kfAv&#ct91E{ z7PtGf=y>pjEN5)-;iAbRgn3FZIa%K8w23k}IMAy;adJ|MlOca|Qz+@#Y3z9zcfZ4qS*2)=4!q@s_}8@%3|0)12h{fSk; zMNYBH*yt<9L#s_`?0P8KoCxfg2aMeqr&QZT&Hz-0kzivgH&n!&%1X|Kc`S*sk@zm{ z!C}lge!DPIpIbG3QuUjTyf3l}5ZRy?y=n6;x3_Uj-|L@WEE#{Amzl0b`k~%*l*gE{ zWH@TRfs2rFC>yX50}=XmX!;>^?Bf)Js~dbB@;+?n2rAD#(@GGD7^zSa5+IZeA#*w~ zh-^$)m60->rCrF9$GzZfr$KXhuCMW9y8;;fGQ5>Oq%k!iM`2DD3cDLSb%@QX2hFBy z2cHsdIUid8SO@0Jc?iQ_PZj8lXQZYlQ9qsy*QYV^DqlMMmO*powjSEZ-?q1JXl_7qrtkYdQq1gj<58Mmh-cI ztC!w1_Y~7H7%{Hl*K}!mSAXcjLS4)q8@rO4?*>8x;}P2Wgq>tkKg>#}vKGw&FwOgj zWCTQr(IDh1ir!{yl56O31(BA7TY485;#ha96?MZEy0^Y!n7%dGX1pU?Uq&Uh82Zdx zW=?N3ZSWY>lUi>Hx>cEBIb_JoxKrFZzpioS_@d%EngkCS{;=G+ORsH2zc zJSaAt;vJ)U0;IWwKEoz3BVV%jG3M1TcJs`>HHfB!&&ov9=%WYelvcuL&I0L-w=Wqc zBpX`rc{6DofX7xE+EB+lo9v}O{Dc3U`ud*ZbARkVw5}tzb_TC>9$4sdg7W2>Wq4Fk zU>(GNyuRijzDLC54a6(0-C3p8-TEj(UzzX5#{^@mT^SKXBk2&Y5Do6Gl z3Nhi4V}sVvs0XL1k?S`}sHH!mt@0*w$>&7iv~J8ev{v|arVFe*@Y;C{Ts9XnnBRy4 zK*(-ek(M6Xs22>*@OdIe%C!b~7z5NM5;G&;JW`pd&guYEFy2Uru5LnbGX}l*dP|b| z%G?qj;bR1%2a{gq7Hl#_KL>K;5IuttG_>K9^*aLN;W!EluXe|gaR1gsv7yO;)lffp z_2<);7d#~mZ@)FI`A`2}TKluFkve>$GN^|K_oh96^Gj*}zrIVmC)4TnvwtL=_oJ`X zVAqf+lMsxW2rP&gle0IbgW3ffZhNPulMdyWT$3i&zbH+v{~;~1yo<%m%rw;0rVZ^# zTPDw3c#H*6bwk}fJvjOoJzn=IIVb-jL*pi0q-3C|?Syu7mi8Vm9v_jG>u)4FeI~bG z4Moob*FXZ3)#rF#e2uossDn57A!s7ECbj`Yy%r9E8Osjc`2~(eMG-#);XTm1UCx$t zq@Ao?awrdsZqb`tTeZV=lVrP1CfK}RrZ8lzo$FPfIhJgj(luY0O&6Z?=(Kj`bU9up zNahpLGVN?pH$BRal^Rprb@i!h3mv*JW>~z$ioxW5P}*o&8GWgyg0TyOD(Xu{=%Zf5 zW3@FS7+kr35!w3M6qR*K|JVJJd2-l$$FJRORNwP`Ia5iICp%1H(=PxGzY86$xNv|0 zJ#&GKrId@8>#6KoNH2!djL#TY!l8eDId}a99n-&f^XhFlqtzzlh`Vbjh0LQ@` zWnPqv9q&4Xqv^6i(HuaVr;U81qVKI<1mea?jD;9OHor_>ICFlKuwby!=fniok}QQ~ zRX)_(F(>0^D2HaAN3Aq3Mm;$tI2m$k=H(c$zHE4iK0+~IJ-|6py_}8tp+9~*(2U}- zC3iAt>yLcR>h#o}43;^?{&<)i5R7!;!-1I_%28224CW8&`__uhX~8iPFE~7MRDknG z#c)s@uh-9+GvRW2KcjPYJ=on~1Pm~ynOEpU_leH^)nWRJ;m^oKaow9XtZ!w=3XXO? zJ=%+7f}Z+X8(d>(OF_1cw}D>c>`+Bt;E$P(G44crq#Y*-Ao}V<9banB21fBfI~;Nb zxU)_?Ap?9$-`ShU3n$~3I=)*ssWH~qwFWJ^dizdisO~ z9~mdGeleTmf*20p@nL*u*TbA0fAmP7JQdGc(;3)Pq9GpO1373*zzO18kXq;sCp2tl zfgF6v;A2ZY91vPtoqtEes`&}f274|P`&JqB!Jv7v>$<;7JHGby z^oUFUJ)0fvkomR3oHm+eEoN;HFC`C&TGo)WlBI&J@mku1Qi>;Mr0Y@^!UR7W=cu~u zw(1*(BlRoY$Jny<&-z|tn=(TLKH<&lT|6yA6?iH@!DkstJ2lJwrLN2PRLL47e6Z#C zBro;$6a0r#ZI$%4)MqR)7UBj`&@rUYhc)rTm?!u;3O#fy8YZ8{Mb10#2B~%^sXewB zYuFgBlPss?aJ#9N+sN6E>oCisl8XJzkFc@!m~OqD!H{%9N;vL<%lMY9V+z$6;<}@L zFb6xYS&j+)BCE^aOdG)phvUO$LPy>gR#8YZUty2+6J4@?h%J5;yglX4YV?Oy9w$Fx zK^!OI{2La7QEHQ6ln#9QV`=Npe1975*_GD5?7yWo|MBHz5ddoTn;%U(|3V*l-g8Tu z+I(L6R^?0o&)yh~dHO)7;kIOM~5iFACbFnmSddBI;4Z^-tGi z@trB3BzYp+f|F+v1Ql#DD~?5Mws*7MdHT5CdHSd@eo@yi9&6Epq>t||PZ#S@h)d*% zT%zmQDc0U_=tuWtH8Gn7Cn{ybSnx>-H$LHGGCMa_yY9ut0GfJRY}$?Wh~PmvTsNgX za=7*mZ;+#hVGCa49{MK^TjfbK}397PvZ{shzx&%)weU+N^l99Io|xY;cp( z>kaUkzxhMyId6GsTEE=$EuC85!X$!Lju<>Tpy6;iNlF%#TfP)}|4?XstNslUt#SS_ z@PboqxZu(T-RDKpLA|_g%cBY<6uPD49#7c#;9^qbi$3>w+#+9Y9H3Lvzh5{I#`Tfg zDvyrrV$;#Bk9$*M?ym-i><7Aw^Y3*^2l%EHm zQl!Cus3#{#c)bj#3kOG!u;J*?UKAoM)OB=<#}EIll>Th+vjJXWYbPDxbYUY9FoKG+ zqMhaVjDi_Q(jjdGVC&ClUSm{aU?e!*MUrvvI|-Bah>!N5$;*?H>*3A;wB)2<;P)rE z`%el-BJV)pgh=^49;=ek-PaBaZRZZnr}zKO-=-gW=CicE0V{4qqp$4_93OBRF56w0 z#tjjJ>_$iyqlYmD9k2l(&IdV-ADoU!c4@qvctX1-+JcdtEI#sj?ixDsug&hTdNTMm zw_TGy@z&R+Xa3&n#~{e-$(WjPMRb)d39{F$-w<~kphgN~y});2aw8iDc^!vsklH+} zkus&!Pt7A#U1W7$z!lNBRsrE-Rg9a10n!NK6JgZ1p*n}f@RmVs{Z=#N?V9zck=2|A zlOYUR;V^LDY2oGqFlE=;^d#PNJuDP*qUIf4HUL3C%V6-)+RGTp-4L=-9`Xg=N@d>6 znv2)s=;vbH5Ws<>Iv$x0T*b)GeeW$;Bas)~X0B*#1YK{yIeqf*h761YO0$ePwzb)8 z2O%*Y?Z@Pyt?R7OWvs`n`F?{zJ3G3u16=O%mR=p+`3ikG&RiyzEN=`4Z>|pB$b;oI7)&hZGa z3NC9dpgkdjcqCZ^zt_6%rO%MBpKZG~=8Q%>@`x?t!M-yF&&N@?&lx*jI@3mPFYW)x z`_h(Q_+h>5t2@iT@rP;E_dnMcD;AJ>eR}tUuSo|!@it~xT7K!zq!pL_eA@AcOTjuxsZZWix^JV zfx*Z1Sl&O%K)k_PGJ%(jPL&yRu^zSiZaF60fz1a-0AY)Qfr=+BBI2t%QKdMH>Q1Zz;?>{n$`EUSf!vNaV!m{DLIgm>bc z*58Tx8kU?b#Vh-pbvbs2)u=*;wX~AU%JstuLg0>IYSY3)QB&S5#HB2n)Hv&OAQWLQ z7V~-0D^)q+3$zwI)jL|+u+Wo>vTmy;Z{s3pN8D83<0;cw@D*{zRncix)*f(;{sC#m zJ!yj1bFmv}7iUh+2@cIb?mD|ZyhDQ{G%p7QM`pgSKke4wu*_+Oke|cBk#l72^!P!5xflUe;6P%qr}aGBcT=-5A%lYZI<=hExv9%mf!gIw_fIek1X*h3^5gYa$x z)Dz=COBomK8f;>u$GSA)+41Q2r{zk>LC|}QliJa+$C|V|f{VkWSv-2ny9cD%5g}$7 zVF!gnWB&9{8Jr~Qcx=iYp9#Gq($~k;Z3hM%G2h0Fg(BpgOzhaRBfa&{{wY1?M}DHg!0^C` z=#Zz%NzYDS0cv-+_G|ajT zzP#A4DQclg)jmj-%9 z+qy<~a0D($m;!3uRF$1%i~~frcEM-9sZj<>=DS{RSm$XMae?j7uxt>@bs?*@t>8=l zch|fMhNQI@k3Jrx9o>Bg*YOnYbHa>Sjy)AU4@*+Dt@KxUl+w&2du)Sqx%L#jdPDXq} zp7PRl1ZD}8cWDd%gd9GBnbYb-Y*4{-n}?S0@2eN8(StCp$@K$~7Hjs_ca3alr* zSag&f2NDZ=T^BrbP%V69A5M&RjAn=X z)2UCHPoEyVLvV7A^cdZMa={GDVZxDeM+m2fb~sma7ULY@L=iVTK#R$UUPpfFK?6dU zR-risi~iExQVe-BYUFI#%j`HZOEjZ2r!-2J>oWs5J6C=2>U6%n{^78a|&vtzZU9h~N}dfvDJM}^kOFnj`DadVSN^!9_Go#}aNZwP`=cjXd9?BR@pZri-2!iSVRNoQZUwDuE3*iEYo0p~ z&F)s%Izjo!ahKO4wV*4yUC?b)<1~@<6LA-|o3F(Sbwu2SwS3*60}u}Xk@)R2JEpSt zIb+8{cO7Ps2K&4I@VC?}uM!k7_J?#B zr@l(>TI$I6jMo=PIZp?^EGO(OX}J3z?G8|H=|glV#|wn>u|X!s*$Egkvj*Bd+OJ0s z_w}yS2ZQzEy6)`ji5Zz7>(a8((_}0@M!R1Zw|Bof*pHNL43{osW69zY%xRZvPx^*- zx~{d|uHB>S6n{(3;Vm-6^#}>?8Q3gWI~lgibO6TM{zYk3|J1Z{#K)mePOEzQwwB5{ zeNaI9TYTZ}){Rk5n_&UiMODjNz34SSNa2g}cwFOo0XBw=#|!x$kFRM54}qiMr%o-z zX|-||;*xzdi+zm|U6_NT9-7r3PR*ea?*<*vt`JU>93Q0*$zftwXjc8pPLnxJO5+&W zZjoYO$%CiuARS&R_&M*TDSc@0#+tQ-Y0xO(*i36DcR~)zw8ltZ582|NEYah;6Xdl+ zG^I4I5>5>#hp_`>@9QYfi~j7~c)r;o0)BERCrckow};dO>+Qm+@&f~$i-o_JzUl==J~Q;`X_ zYFZfw@S;1?F?U#!e^U*{ueWU#9C@W^!!KAc$Mj>T#ZhOw{C4w4jp*9}yh93EI9Bfw zp1&P=$F${&e8<8f*GZ7vh2!In@#N4)T#oMy(yGlJ7H@2WYy+vTd1o`5Z56HKA$gxO zb}aOw4MaC`%eHY|7>Rbg;g`~`|Mi+Qv2k-c@h$I9)92{OQib{LH>92K`q^~o+E3`a zVke|^&-m>$bIub~lMN>u{KItOy4~r_Wp7Rgzwrh6CVIhEPT2IO7o;gUVYc{G>yK|U zw-?%ZedB81=p#BE@JboL|7s2x&dpTsG&x?6(YsQQk!g9JIUI*G%HritV_rYwU`tt+ zAJ{{qJ!$0`d(yTQAJuNx2h#4rH|2C)r@f5Z1C{$+x+6W+Tdorc&(>pwXX+8cGt=t6 zcDmAO+Tl9c3~Cxws9R~At-209IzR2(?KMoD4rVB$EqB4{3zXmatc}{ExI0!8P&&p3 zU29eL)9x=L-}wo>HjmxKV?_>V_2St3pEBRYGp9)o5+9Fd_h{WkqjdG?AJgnWPE&8M zIYl_dz!g|IShFL27QxyH4#x|JOXa-xQwP(J9K5(I9GA9;Ygm)m069#7-J)gY1aa!* zly-Wim7mn11?=`r>#wg*F--NB>oHk&fU?7+cCUZU8`Cep;=c%9r-aI(n&Lz?Ib1kM z)0!WXdhC>)CLE}`|JuAXx#$ObPl87+)H!jduYnqq>UNtU5}eK3G4OXoQH+Zkb+FNt zjqi=9@8W3Zo3=-195nEO|FCg~*-p0Aw9Qwm>f6fHc?G#dkCv>+fPZ z3f?1b;m?i6)@8sp-l`v~iiJD?N62fhV9Od5?MhiT+)CbCwtp+S?TRLs@!A?{J2{$i z8k{B@lW(#4w^(_D`A(;xeRqVz^;gi#>S)Vd3Ii%)?*l1IYHI5WTD-@&XwyK^jn!c6 z_`VbRhPLr$i%okh6kTL`fOgmSc=VLI#Y2r(i+D%i=*xn;QxD#zs2Tr9z8T!KYuY=P zAzRQM$2&vJ4sMDa$AYAmr;TqMo>E5p2xI!HpbwZu;?lHwHD=to0gE(0W{U4~#_si9 zg%01?on{{R zy=mRke>?S7tjp56l{Yx}b?t<`HT}mYeN>ZBQ)B5xa>9NxO|E!UhU3|81!(4pA+~WcAWM|eR?EMM{*yq z-6wab4#{x><{%DK+O2-q`%iMb=F&bx#=A(o`@^9Um%LWr!kO2&Gph8R8!-SPpXpoU zfJe3Z+9kr-StqFEyK)hpz<1~$fB!_2OC%a7x2B(N}cA;j7wQGcPH6j6K(aemnJ)-}Dc^o6h~uJdztwxjzI;*V@Hgf?yytq1|Uq zxyubRW`+o9=%K}5-Jp{$EZXCVFyJ9Bu#vwz;xbnX@)+N>ybVtUtV*)!x6+L&^SM`$RSC&eJyzA#Z3}l~6kDwwR&VB;7$E<}IB;2mCHjGELZ^kT*qD{tP%y!Ch6_Kx7-oN1VfWEztoOjn#%{Fib z&w&+o@Ib8djv;>Ay047#pk@4vRy9V9c1B<-%K9<-IgRdYPMJ0Yob#sBAYNi0Kc#;= zIw8xSLxC!YC@tl(bg865y|_LhY3NCmzNp|;X--C=5p~1_>4;8MFx};TsEAwLf}cV( z@HG(TD%pVXGJo%m21x9V6!O)9eAE=ZQCR5I&>E3e-o=t(=-W=aPPRs7X=Aq;kPGUg zU;&;51-akKB#B;j4D@fvX9rwm#8F1p-svjsl~@1Na~hK9vX;KfMhy>i)g5GA*XlYu zw4_>-d_3e+7oAW&5Up)l1jJVX5x>#T%^DYD%qbery1v+xIKjMPOA48`&>i{mZa=ZxL!d$d_Fd=bkF?19;I+be!J z?f=kw)AR!`Oeg)%_os;yHtFDw18L8@e=+U*!aGxMdTCmH`D@eiNBo#gaHfte9&${PH;~LspBOUcBVQ9Gi$XA#)`h%F>Mq%5K-L;nzj+YkIHi z+O$KC*N)+}n!$Vr$2ntSPmT0g=ETF(XFhywdgOzDAl?6@ho!Z>vt*pFv^6Anx0MNI zEMyEKZPcSYSP@LiXt#2|SlOaw+VlmN#~tlm8Nt}X#p0>7HOUTKizc{py~pqZJ!H35 z%6Xp$@1{?j9gK19IAYAs>rCr|{q1@fZhKxMX;JEJcF;6{b$|**Sze$}8xl~Tl@^q3pMl(24 zqZQg=l0!6@N&ol%yemELxj&)D^yECrQCiwxp*G93`=nhecA?}(v9n}Omv*NtWFwAr z$V`{i%Ob`Y$m65i ze@5$W`^j@gJh(i_qOy`dGGXM!374=YtBa1jmdZl9jsQik3xo4vb4``C4!m!g7N%eO zY0BcJO1FJ|(FZ#48qee_6eXj=R(YAXj2W--JL&LDXk_zzBO}l@jzrMn03bFdV%$0o z@S41;E^U3#=P^WS?jvw0-5d^J1)U#0CBiDiqucs#dV_EOE2rNH0?bygevH0z9x_iR zdnL2sq7h{cPxVbJN2+ROk%`E>tl^R0>4u&hA8pVXeDR$%4r>t(%X^*8DN6=V!oxbP z;JQ}Y=ACE?gi|`5PgKw2?5qcFsGIaK5+U$d-rJ#z2zE*!`pj^F*Xk+PKfBh5M#Ho7 z1`PECml?SzGcDzwuxc++B}Q@=k6P)*mq0Yn>O)$54j^0LKsuKp*5O!>>?6hki*ao& z)GkzE?QAWOk*xPgZQOWAI>WgwpLob3m9@T*7fjH#N7AaX$oM0mj~bq`Xyap+lFU~I z?7}+)zsQ<{@hWK z0I}G{2{${GG4Py<=vPq0U zgWu^1ui;j0#iNZywV*#seQsc5J79?w;yO&4kInlhWWaL#xh}__MD*J67Bnzz0$>np zst)(vw1;MJqzi< z-uAR(Ajhk(Lq_JWk>m9>?Za#}zWMRRYEtiW-9N2KXX)*;v(oC`S$enYelqUYm~Q^; zuU?ccKjYEq#NGp)E)B&?xeE_33Le2kvnbjkKxOc33rrh^Y6)mKtD!0vU~g;2zmf(gMv!Yx`aCe&pZ+hhOo~znMzfGENC}o2$V;~w~SXx3qw!-_}d3B!ik8Dv8Dj5?##od=0Rn}1EF~N241}H~7@JbqBJh%$TbbQdcQ$^H{nI1K!3a@@6^0 z;E!gm&w3mQRQMSpwXtD%7$cO2P81uflm$XYU#C573H4oHifkBCZnf2qgL?&O0XY4r zfIrp&4?`UQQ^r9Q+88AxT``v6oml_sapBCFX=ElZi#_3}UjY&p53g(cFynw~H z4}LQH8G~-XSONN0VD9Dd3x8q6+x(XfjkbvT%*su)1`f5-@FC}7#2KzUC)LRHn&*Wv zsk+WOX?>V^aLf)LeH(FHubgfD$_X%(!WS^Kw{Hp>Vb&A$px_E>;4}`Y!)sxT*fa#J z^rhAf;Z?26ELqWkYdX_IUl}hX2)1r`a_q13NUBITY#}kY#@5^{6nF=^Il@7hV}J%DA!2u=c)&XV(#BGNG%!Hu{FB znd3nhy$31qn!E;!{0%%s(Z=ZKMrMyt868Qw3g+yIM)2pnX8_~?51|O?S$;XmZ(Kkg zMu!A0!TJQv_s-AnOoMHImy!&20Lq)L-=!;bkIz$R?G~Bft0`)G3I2 zhac2#%9Wabvida{r+N?2`(NLqeT~PjON^?uh`{*G5VT@WnmLImy{j3jiJ z@+@FfQwTj45KUwjc59N$;ftlwc#`}Ek0oLk3OLEKlnX~yCY*ua(4#*QwTp++`$jwU z-7)Q0$%(SG9;CE1F}qXz35LJ@+V`8+gM!AaejoVDDP1x8Z(50aIV<&85{Fpkp`U1cNFvZquQ`)7J6R7Fha-Km@$=;RRk57k0sj$C`fVKH57H zZ|k_6mc!+KYtac=iB(S@$Bl%rSh(w!d4vx1#i)%l7R*x)A@0ePL5TvBjl+R9TD zauu0W*wqIZqTY8d8`f;BXA*aJ6o!J)F?quHt0_1AR+mQF__ax=5_AxH%yKikrR7qN zE@B)7j%X5j;=mJnDvG790D525cUtSVkP6%pm!^>rOs(@sJAJ1F&y>3Xs{Ym%vl$~u zrV5A69(~M7L!dN%C z(S>!Qx3yobv$!i}`C~vCugnGKBV>#g;I5rEqYF*Z>hk9Jy=BzLns22n#`S#62ux=f zhBhdGWQ6G&hg^ao$A9vCtb0hIo(}LsPJzS_^k4?O7BFDVSY*8bv+^VB3}t0-Qs*~L zREs()UMPtj7=us8?laInPA>c=9W=xx{fWWd8)hA;4SSO% zh^X%iK3I0gw37A}ygUXtnj2 z?;RpD*K$S;-*N>nnxtRqQ0U=w>4Wq&uZGP8^cIFg`soJxq;3~;&dR_m9@hQm73mYB zkETz|U1@yr)Jp_zBjw(VB9B#w49F58a7Ugv`l#lkE@Lezb;4=y5OV!h;5QFHhJ%r^ zDTcPBGp6`JuzVDL>7~n4x<+&2I12YUW5-HoY9P+tcx~G9g6~bU*I%7hJo9&foqgY4*0aYZcqAk*@c0HoYuOu6?Ek zd%kzeOV9E-E8X}ZJ^6zh9~vDE3NB4NIN!Xr**w^MQ>xF zvml|#=u=l@;2i+_QLNd@A{TdBy{@@SUEoyVEi-H&5n?1UgDpE|eEb$?aldx1_R66; zFxZ~<=$)#4I<(|~oT+`<)za776yGkrNyh}~fh8-9C@a$s7ni;*CVJy(v{FaqpQgwC z*2sxkBZq2LdjDU3Fg^V#&q^Cs>f_L(RcYDOT6+X=Mldsi?CS%yhYPkqn^6L>3>mtq z8lpFX!54><0{xAH2RMgrwdHeR7##si97Dp=`T+)TyI7IVyiniJ*McqW1v?qNgXH#> ziJuHmKgaHJG(7+vmp20&@?4M3f*5Sroj6BMF`>n$^)96iesXna!$(bfRM>SN()!C> zb?D@FrLuveCW-_5T^%!nV~$6BBpQqH)YAPJAoS(y$e79_5zY0c$EqKjW})|po0>?C z@2{xMu~?(eSb>0tQ~wCI$67f|2F4QRKWDivSv#qe@`oQ3CY@qV-Zpw`pVj&=JL547Ia_~6@cIPZEd^il!IIORcaE+m5x|DKR zFW9|l(V$Wl{%s-2mfJWU^yf1%)PRkOyeN00cz93=@YMEdEl=>#v^#+W()Iol3h0k*Lb6`!b60*XpSz@H#&M zPahT>f>#Fi^*X5E)JAotAJuvP&=MY*i+a$xq93?fHwoZiRm-zRv>B_Aa2odUYx*4= zX1X!2Xh>_lCZP}7Bg0>P$sKwxJwAR9Z`~aqG9DLF%zgcf=>Ts)kiTX*VuNkBq&3g` zg|zNvuS5qeD6-R;;&!J?8hkH_dK&vpl$4HFH+U3H#YJ zx&B8r(W?(COEVlrf9}QCrxVV5ecCeI;){ZIQdXwR(~60wYM1IEMSnKo^F*sBh%GjP zV%O*P;pfwBT5Pvz=WCaC!1M(sU-(qdVGEo3dZ(-ZK<(~4SdQ0&<#=r{{CUn7T8k#k z;aXU0>xtc=W13@Z1XmSoHK}>eO6M=i$=a6ojJ7H*XKQ#{+OPMp_6>A8q`2RwM2k7Gn{%~1t=7)eI%#sXbht(ka=PSTEuCC1rii>Yq;>zOH)Q?G3w5>KTcw-=~sP6x9Fk_o%mZELI zbV;}9#{xY@-e^CLz6Sb&;-E`KxxiSa16m=j;i}@Q!9qG!d*;e)|>|>rbghr3~hADooD{JDeVS5<;*zRVZ=v!jB(FnT+>D{R&Nl7ufVDt zn0Z@RFt-Qk0srBQbmibf){Z&tba4Qbwgp4@6&K@NIQ-5$C7C9C7j-)C&aWHf;9>0u z{*s&xZ{af0!ZqN=7hGUKfup0gRu|Y9T9ML4Z+S?1^Zf6$>MYavK@02ds**-<#~Ar> z_@gfPio9OEUH#Y<>GQ+SwsAy#jjJwe{2gDwYBdZ<57DG+{ zm?(mskfF=x=r9D$sHUx|8pE);b>>Gac22dKbB8>g$Bj6dFu@<-c+ z)A$iC)+6v&bZAQmnsz@&KS1(p!o?>z*tl7k<+U=WRSa3-_}Z7hlD2N$ znl5|XrLH64B*3e$SE4K@!T2{tIsX&Rn2lLCrM(^0tbO3IHsIjDYliyfD(X6DWTA$e zH4UD)!R!149&d*}-u13`iPwI5#xtH#>7=PQek5xI*MHU@PJ;!HgGN`+fcQJVZ8&fH z?f<_1ZLd!cJonu6w5L7o+ebDILnHpU+PkFeQ-Au3bl%f1OqX18$z6i)E=S@+!qGB5 z)s;Car2gcq?vgT4QpW^a9?PEq`d2C+Way8b!#t+3w2>VgqN;z0Um z9RvSf{e3ij_fzI{2Tfn9$ha}6J&zX$91_%rMdQy>Nn0Yiv|e1Yg*eH6dC2-(Ho z@0#q_uHK%}tvYDrHhsu>tIq$s%^WN8d*y%~&@R?N-M4N6cVfJ)Y%L2s{1m+92M<#Mucu9o$2w$@43T2~F$k_y2h&J}S%DR5PSK8kw3tf;ai zD!`JgSFlnzK9Tu2EV?l*gP#ReA(!rG-6bIyi}>3>x+u?!;H>rD0tp#aSi{(dq|HIW zLGTYf<8;jHfD{fx(G&SLzTK5@hlF49?tGM-?)=LUD9#Q9IbLVh=0&uJw!0MWB>2vZ zXlTwEP1O&D^n2Ei z-YFsZSdwSKYe$Cq3 zV@2w7zI{h1Mm;=NdG7kVd`{CUt9qAN1>P*G@0R$JSA8(azy_TLnl7ew*nj2w z(w3M1h<3Z?(+R)v2WjS!m!vIkc}f~=`C6LXc)zsnhu)GVPdqP;4qcmOZ~3h>x9>__ zCUuct{nRwQ@x`e>eTr~0fVqo(yPT8vq}}=(j<(pMKBI4Jee?s<>C_F+PLI0y$-dUb zf)}v{KLejr4R0HLHr+D%oOZrGFEeqcU7#`SrgfU$ru1EMUd~G!`sb(hqX*gPd9^I0 z9i>mGSToHL%MKX^VO-!1UUYo{^fv5h?G^7j!bC^h-)!mKN}u#|*Q5`g{EO+m^V?*A zy1Z^EVW?toV$KZh{i+pu^zx+9CVgiNr)s@+wbrNQa=cdPG0qj*saq*$tFI#~A{ftc z$ExTgYD1=MkWn+8HYhF&yyp<7$J42cmALejC*p*Su zoc`g0c-kEiN^Cbp@w|3I*j-`AW?qk^0(bEnFG_EpeXHF~9;j?2Paj7Ij8HQNM|2`E zKJSo>7`*EDac$ypo4`FTuIZs!yHM3CR(kDuYtya68||5V=7AZ{GRUWx4B~gvRtep# zk>i0ILBP=Va=$m;S6xp#3*>M#Y6IMlO3<9rJ5gceJKU7PGNu{YeCV3sb?&h6A~r)1 ztWdW3twm&la`71a{QOH_mfrM+HwgkbCZK-R(D`6SbNQmi2ehTs9tQ+x$kz?82QM-# z8cdO@jkp4|BK?@^Dv&Xt){1_G_OAWA(x3j$U#8bx`i6on`rLU_aeKK}fvyYkhH2M=`_ zc(g7Wp6uXJ6rrIXB_2n4H!e_k&v$hQx$hwAuDD0TR*aX3yKM}oev1AxK+U4T*foca z%mDCi6`l|M<=Uf+Vk|_wuo-xd9K3xEX{rtWy77?_wjrW@yY#4Xq4&eeQSgTzB3_(C z-~<17-FI>1JhTXh9eYjN1~+Adh&^Y&h5xGT4kx=4UI+?a(bTo5%X9D+@mP{s&iaX` z=##PV$6(=o&e*-G(=<>uaKj+p`<_2aTYmZZX>xihZTjtZrs0}{Y1><$s^jYqrJ0BR za9a2M|5eW~&!t1Ryv`2i81@HgYUW{S;-p_plgl1tlY1zmbZ+!7Y3Jx&>EPhwG6Hpa z%}8$`^`9nZBh8m{!?!!4Gc$0XzRgTwx^wEfChcp5JDk2K!m$1ntj+;)rYetmFY?8dhWd{j1oY@UHVdN) zyoDJ}Br)EyPROxfK^gg|&LL!te6x53ZjYT^KBr!r<_O2B19g%{*t>Y zt-k=$`z7bD(nG7;?74poes&|wfzUe!E95YsEt&kb`+%uWx~KQ~a01AIh0`mia-ZV* zOycz5*odY%3$#)HP{y3$odf9QxLD?WS$tmbkh1?%%Imr3RrQ>rr1h=K6&N>~J`89w%7LN$rX)86@hz$nS ze*3@fN~h@2-zErx{*`jCRCY7ssg8fK7k(xQ%rdy;kK7pUyLfLv=%t?3N!c zA2f&wMkgGc!!@kxYH_RLvB{u^gSv1vceT;baO$Uw$t+y0N2{wGb(0|E5Qai)EGLI6 z^s&G?HZClRcR>eud*j*FYl6j?u{hcg!+Xccj_R>|pr3IScc2Ve_#<@X3O*Y>jL}Ch z=qRfBB;KlZtzoH)Bj=Aw5MX`H6!JX90$;=prRLh&uB%x-DzX(yOO{5$Tham4+;|=@ zzrzI&(du}N?{miPMZIbRPJ@+;|L#Bf?X>;%zo>V>mZlAFd{;Vfl)n7L{uPsdAZ4>f6+NLONmM zVd+Gjbhx5-O1U_ci6S_Av6~C8j89Idl9j6VZ6&k2wPSRH-Y>gJhhf|(!}n$#?r}rf zJ-AWM*H*(jP&-}-jm3}0CfD>g+R^oE^er0TiVt7rI-GCdg+T_o*wwX zvz;E3UUb8;EoO!p^O+}G7<7pfoEa%uA0BxNs}r1oW}GZq7}5kQ(&EfQ(kv#;0t1XK z+JX;*q~M}`=>zCx*bG2BoCs56fy3d@8I0!S;Lz|^-aw~b?lax96Esxa0XaWBHpgz! zT2%p;k4qo<$19Pp1na{|gz(X8prH33aLL1N2S->xTddiK5nkW z&;v*5_%Q}3bKmBLv!ZmFb+AxEjiwZ0Y+_gi|4N$78Gsu_jHBR%u|{8Dpn^}pc`oJt ziLsme%VaVzhqM07`lNZ0%QF5G^RDR8c&d0%z7?`yh3_yFqwfT4bRpJlTOkVG99XpA3emCi>_y%O&b#a1#so0>hYJ;Y2Hw`T zOwK-{>uiseop$sgF@4H-4&2}(fX{SG>_tX1C!Ky72T_{&ubq$#lUaj#52c`KTc@I5 zC~MYjWul*J;5uD&e`Hc7U&de4g9dx^-B5HS-eKSL2vC-#B@!9UGkYgaJb7IM5&CV( z2Ci>2EQ+roy^uoG!Dmj}H`}BKvLdW-b|B!E+rom|)2G?#zF| z)qEaFw1)cll(8ASTI_2`4IO+F*CBLnYeZdf9HsAb#_r+HjIjwDv5;*0onK0Oe*ZP8 zzy8Fu;lI8$9r)z0r$bw>PE(s7nASh*ZD}-fTRM34v(xaE7hqQg0!qucS* zTClIxF4CXt`&1v0!Nm^7WLn*Sir#n9E?7F>rOiY~I{J27|4V7pWmlzJ&;43@*ZfW5 zfeY$LuFvvxV*fIobf^zX_Z}hV>-4e+8Ir&O-(i?(wqhV42alBPloPmpc)dBbKI=mtxajo#3}lo*okSC9xJqk zK@=jErS1W`^V(7Hb*HJ9;li#0!G2jy$P;Iyk4YZ}02iv}!b%G*7BX6+Uxe6T!w8Cn zgN1_kaNLZ5KiYa87YE1b;Ap=bBb=N=`dG8#!9jg1OuJ3?5lYnD(z%G3l(8#f@Zz5f zDTZ4KYDim=^!AJo3g{00s7GXyp$}z@Zj1-L1V7?gxC{d#8`Cxj@|cJ*RN=v3r{}o| z!B}8C8*T9G&oLU><_F$H*FVx4afZ({>|{@+%Y`3&G&6yewsD7e-q&%AIFD%--GtoU zQ1oz6owj*;N;;2j?AwLfc+T>w9tyyqEHk>ZQDjy5hjupJ%ABEngyzC)XjDvWLG#W( zLm}L18+}tQzydOP)gbD;LnAL?)Gi~lD8@=IG`@vga89+>XMrgR=Qa8*cE+e~j>gY0 z=mT9cpB%MdG7ZWVB2UMav{xqokQbHpKJm3f@&D7Ud2l@#QF{#-X+ zU~0+w21)P{@DZC#nOfZk#)q{F$i?HJ9WjtKuDWGQKJXi(O78*}_ericeTSpgZgThLT8fJCT#*#J5rTIcLtLxtzB9MKpryWPSmTPclhzCs z8g7)@_{nR?7!<}>;WMMQd9)ax4f(MtTYr#KwZ0~_<)J)yjkt>_%IkjU!W^sl`<$_R zxaVRL*qvXkMYp~BC)57FdV88Y^?qs1OMWix{QIAkqj4xLzxc<~iYNY5n%(xMG`!`5 zc0pRQ_8Dnv<4e+LdZUc}f6`-o?~oJrdCfF-DmJFI6aP+*&G%~wU*#)@48KF#{kkQ6 zGTkuuG3`NpQcl7Cbi!jtGT?i9A+d26eMJcu z5zjBUkcxoO0E`4om4e*&xeS^yhM?=lJK(}lA@dkU78|>YjV%L%AE#w33)W?EW47=ITfpa-w96np zTEm<*-rI98oI9GpSLrL-86vB3G_((XRafZe3%;Sq&1f3+HWv&ZrA_}*--PUXhw!<= z`caGoE8(8|dPVyfI}Xw6i)fT_H6rCUK^(YJNgWGKg|~wznzdrJ$1!R+ZPk`c8J9&) z##8i3hp)^-@KTUOLNtwD#eX*+pmiL5>}5`qwD*_iqwi{c*7c=BB!{Ud^q1qV$|$bK zSKx2xdW*W8x&@&_r&XVc);PL+wBS3LR=d(aZJ;2(0B;m14wz^O-o--Q7t8=cT^48q zXUy>$U+`@(`8pSCT-D*ej?x#45wui?SDe&(&GDwpB5;Wg>D9=mYbP0JT1Viv5W{gv8H zd!XLeI!zSL(2?(oN2e)1S$E|9M5WrGv7Q$VyJ%o|$O|b3Z9Ob9PZasWNGcK*d>f1lKVFc+sc6Bljf!C^YSzO4RfA1&f$MtT8L22*2weSd8 z4P&_ZQJY4OaOB2+)T5UoU!|n-NMZ(b(rO>hvye9QRUW!;h~@fBFViXW3DzolHe#Y} z#4XyM;RcaAWUgK02?q^`R{tLcPexs$c01%ORY#W)e7Q+>W6xr&*{NdWJ&jeKWdcwQ-HESqG&~%~AU&HgruZatIvy#*4;X@Z?mQU;EBmz%|7- z%4+%T+i7F)n2c%{@^|UrP_S#wjXUtcBQU!*>pKa0O5}@!9bT^bzy%xjw1fDHI9Mxu zNav{69){54D5Y(sV{}=|01m3_GI*);@W~i$%2^*9{WWs-(!PhDqPmH6#Xz6i$)O@| zco-?QPNF^F?CA61Yje7AToghM<5L$Koe1Vsz zV&;uk@g%-Hlhr@{wDg%(E7I5Izfn-}9L4z1?T_(r(BrXo_#}8fg!FI3wa2E- z(27r|?)}}+aJ_mRS|lLr+8=mS+WE)tkBZ|WzRwxE7j)xjua2pB$>r(br>{)Y7d$LY zUO1BuUH$$vvH85T`ul$>4G#Q48g9K_i}AWNb>c6i{+i2lZ2LR)JuH1=thY}aD>_)9 z|D?34_wQxsKfng~_Q6-v4e2B4MjfWWK^!r>H>7jZ=BdZ&c#BK)k>&eK`hI%PRlkxZ z&Rkj+u~|7OTSwREy|J%pw~P2{9bbQ~IXAVsX7u6W)B4)w(j$x;(wX``*8Oyn;u&&7 z{M%s$tGQ{5Ri2k_RoJDuMrG+(Slj`rV1$E19`?&k!jU>S+G`HhLG9}8k@H0Ugdbm% zK6b(t=@Wx1lxNS%_q7%f38pIZ#ug6cah8_JaayL+6qodtYA;I8lHw^nipQ?gw04=6 z=^rt5OXN^3=`S^>X?i3_OYK93F=V{R7A+|wI;3K7|8)n_>fsuDR1kxqg{y+QGs!Nl z=#IeUi{}`oGQfiNad8@3-}GIVPSA_Ei?`~QIvL=txQm<1K)1}U4N<7Lc1Wx^>ROl= z&xCW_y4XNB>%(GW1YI_ISRCWxI-b5}5baNB1UaVqiuLZ&iBqpp%X7&kT1O*YID~ zuf^o3+82;oN8{?pmC<;y@`8AL0v_X_r`}m7>$5o{ol3p00S>&~7>Fo4T)M&Jsk%+8 zPIFJrRx6B!ZD8W2C-W3%iJOJ}6V|5v`uMV5l&~`J;V893tPd)!)+^pzB$R&RdO@C_ zz`>f63mh)5mKC0YG+#G;byTV0sGMJ|H@wE;!9S!usg-mz%RzKeetg9DIb-*5KMroc zJ>B|KPfW94`&^oS*uzu*3?0qB^H5s)@Mq}6#Hlpe^=fgb0}R$ZJM}mIpdSBwciK1q zyDFN~BW5dgc*Va@%e50WIa;rS>%W-3GI(RUK@OPQDU*zc*iK2`olco}j2y5>YS*fA zlmx+H8vQf2ryEZENP73&2XuhPSGC*byKJEv4mUVKj@Aji`|0Gwv*dK0rNcb#uiYR2 zI5BggHP50Uu__kU`2^;qz5{Zu_73-$leJf00o$w8K{=RSrkr*H_sKbA=gMchUxb>) zz=^GR_%eM>Y>OS$)gA#BQg=da0^REt0^9amNw99<%0zY9=_V5OL& zBY&r%xS(SibNL}nKVVE#hAdtt178<0U<_7p1mFUuZnN=G=WFkGkKL6nMsTzhe#2>b z$7gvVA_fn^=qs;FhUYS0R;ThXpn%&{0?y3&1`URgg?3; zrpN#3Z>Ik_e~rUqWb3(JaY43)^ z;}4jKD`*UZD5h`CxY4??;gJ`lt82rJHUYRu`%)Zm#QNiuQ18K*UwYrujG3HQB|C%Y z(jFHzM8JR`VEpdAMue4dxQ*{-3PL*%)(<@9u0Z;bjGn#Q_N0xctYlM3_#!h#l}Q%(qW{=s=!R$)H)NcSw=oJ<2$Mtj65l8#F>`3WX z{PHW()1UtId+$e|#|dB^!8r4k<)`2O+e$a%Zd{XNt?WK$>^sq8Wk&m83X*d-UYoYO z;Cs{jjn|~93w5~0DLVB~&cTW&KPyeF`D7aGlcTisd>vK)+_Y!gv--$X| z@JH-u`t5^nrY{ZuZ@PZ)4{~g7H`J4II_{UApm)D6)#-ze)Vo+SR?bIdZ=L^Yy1Dli zeJkwC>E^-L>~M{x&l#m_`=7Cc8>X}qbV~n1y~}lW+T1%gZR+1&pEW*17s$>~DKhzD zWm)}jkO6mf_i8_GkKRwiy^476XqTMH-8$({`&)9jc)%Gb1GiNFmMcFqT%r9bIa(9TwUed1(!cS_|C)aKKfExVd(L^1HT0}lyN2c{39p&n zvM9<0rX)-~X7D&Kg6Y;}ki{avO$Qx-Zdo@Ec*tIw!mAKE3%=lRZ^`mrSU@dN$}p{2 z)-^`L_-aG)gpiDJeJ@M>1T_52nejDLf1oaXB0#Of_wyi9&;uy?mtjc>p2v@nhMk(mq43=c zb5gvi=_aGeB~3IE0lP?I7)%JiY|Z*27WzkxVE(RO`|0$aIlc3!5OtPWizPcTy7a?t{G+=gy~l`Q=o(V2cJv+wCf_Aw#7yeF zK{MiYLxo3Z+;H||@S(?vrxV~X!qmfwpHfIak)|w+Yo{OF;`+I9&b;OEA-jty__&)1 z-rx}uJjUyXjyMf8js#BEbwrwW|KorBkMuJyda+vNAU$vrW`x>MfulJ6F$_ZBoPJ~U zI$ZE?(wQL`kB3B-SnT;+dUJ4=i7auJ^*4?{zrwn+T+Jtn6Zep>AE70b(3S+-+CN#lpx=4W)fAU31+v>9w!@ zqx36pds{<4^I78v*6K3S1#eX`woLU$DO$#at_U$6Tz6j9{{7_j*Qc+(_g~Tz9`%fN z#hBb;as+79vntZ3xp$(v6$2{;l(8L^E%^_JfCjn##v6B~EmvKi&VTaSu{sUh5krFk zP>+GAYsE*RZ@`P|Hu!7dtTPq<>8*R!UA=U&uHM!zlnHzVS2wRgTICsjk!Ce$lU@v2 z199ZkzC&qJuaqq7+C#ae^{r$y{j1DQt~@f<3{mU3P9HUbyBScUUh7}1)pr>&`lSxz zI+Ze8)TC3vyMANt*NuDl zhWn)z-@P%Vr5}Sn#`^sBo3^|h08nobscuFS2o()GiSq-*D&qsR1a z(cskShyCU0%=F}RYX35wg7`>5Pv{Vd-RZjFXVcC4Nb^nUD{{WRqP8;NbeEj9dQy(f zsp-OW^~blQ^EW;rU3%`*(%R9fS}+;yT+M5(vN#a>=3MO>ZPyOk9=Tk*w2QS%@ot@- zxJxwm$kE#Gpt@jj$s%B!nZYy9G386rN*t<*P5RLCNe-2+-QVXJL+6G zhjNbl#L`z|G)CV8DU(rn<3}>2 zy4^^Sa{3%&FL=gG82l6YduEI?HhgK^p8x~qsmQj5=TYq&$y67dp z+JY?eu~k}Sx;&^8XoI4n-z={tkuOT5!|D+EjDz)~%YX1|&1%_2a;OtS=XUPZtt1>! z^%;Xx!PYI~vzdPrnhzs6(LvHXi#{qPO|r~82m(V0;+|*8TDXQ+GFuyXakNDjx;8YU zE&~-<$zTEpt)`ywT7vQCyu~|!(QgqK*qjI{BktCFUa~O(#>%F3Nj&7sfxyv2!zXLx z0vx%-qO1s$!|ISR8Ey7P1#zH%*V2s@vFgjPU|L75*AY zw>*nicz_q=3SLXwT8RSju_`E2W$53>7=?yMjpIfLdUu0eEgAE=(Np@uE+{bF=pu9i z{W@)V{S^K}0O0C!03$3~;Q*$ufFULn0-ohJK)fVm^_=ddC{PyV%^0is@9Ljc)JG`w zLCmUzEBMhkx2niT!_K%a#YdTdhu|Y(cp+WKHM*vb>nU=>RLEaLj!UB-U>A#3)snH% zXM-(|si2E3#|^|q#(vZ8*h<~!jC}|DD+cv}&wng!dyzigylZ!wy6D8zJMCbaI_p7c z=|gXqQTMIXU-784cjI*0KlP{LPN(CI9+Z~#pQ-n_4rmwboq7@ZD{`b{oaye&8KcY6 z8TxM6rrsqwy>DN-cJR6MrNJ9?V8>?#|4lRM*j?Zvw!U|!9#?!&+B`ZhZJxX!tsCh; z4dMBf5B*x&_~i5S8Rye%&g>JNox|JHj{c6cTaFe^*3RMfw7a)Mj@T}n1Q`3=$+cZ9 z77k6)DH)O+U2$svR5=u@bb!a2v_jvFTA>}Rl{(G>r)$~d3Nxjf3F;ldHGqk3k3F;| zXLOJzbf#m*0@luF3_Bgj@SFL(i^8j`fkf1 zm9ry*<20u~oFE*dSzSnYxptOv?fl_L(FXUy934^MRK<}F-Jl+41V_XcJiIZ{hp%}h zCwPHcRs$C;nQ8im?7ei>3w}`NTgs80+i&_rw_Lx>u|zJV2l7VxB5n&2TRiZ^PLFVK zq2S1QCN;(#dr%x4LOYJ0mn)-o`TJgsAMu2?sMksKQjJbw6gMn%I4L}~Waa2ma5x#Z zlY&Dtl^r4B;UmWI$=}bv>}BaqZ+eqC6*yqDLwfthm-MAmO9ZE}G9_$=7ajy90n}X3 zt~cbV$4Hb~Y*$sP)k6AU>^T+ThngJ~l`m$XA;1I#+#aT6VNg9EPJhKa{yts!!dD6$ z<5N6|IZKO*Sk|vl<%^ePYD~^}2xGCeZ3HaPfzxqh-X)8DlE7pD6vjQc*s51w65!2( zF_h)a^cUX2^zj$?sAnz^TzAOihm(M|D~2jDvGp!-m58&m~X~33q*=EPW@2 z>to{U{&oCt=afz7f!s+5#0`ePmy4}iy_IUXP)CJgUsr0QQ+mkytH3O2qGTHFI@(ae zj7Cr7v(sGlPiX^DyaMwKa$hlqR16x^O=i+=6oFIosHexaxzV6oDH(s$_kr7W5aq6M z_|E8*@--)DgiN$&g|nMmt`uv;O%WRk2xw_Axt?i5Kvtt6nE%(_nZQ|ARQJESr)Omb zXP5!mVL*^gK_Q3=2#6XZDjM8^LZT*`{7pVF>feP#!3A;G#O<%f4Wqb3+(iY&1y>YV zL|J8%9T}F{r+fat@2Pv?M@uNLpX~m_R#wErL>w^@K%e<+x!o%9IuA8!) zN~<1Rm2I!u#%ScT2FiWK>Qh>lnp)~!SIU`JdC4!F%6VU=d#D3jX4UcaBp zYxGKlm**KDWS8qyhovjKH4Zsl)%NJh=wV}m260JGk=!pTKO-hxtkSF#!MeUm8nsP^ zQu2{xtTO$2wE^|uyqx(YWo9khtWA`hsVN~6H7~MSe^3Xb2(9AI9ug|*G^Bey7WO=g zWZv*-y0&q(YCmsJJu{U->^` zi&uw$%T#8$9PX3n;cQfAWW9{FqqJmxR-dk$^>4vXkpf?Dm8@PxTVdAH(c=(Xm3b`k zmdX8yu_*T`38H=~@|3pVcI7=Yd0YaK>Nijje;U z;`O_9$+};r8`ggy-8FE72C97XnxU1lT?P)(mcs+mPJ;*Px1S892UXgR*n3!i(z{{H z)-6jjk6xdC|B%bmm1{582bk}aA;L?VntW??V}Rp^J*+_*V`}@s9n<{v3)9v!=I6sE zW-QcdnhdVNZPFb1Ty{Pf+KpLr7QfI9gX+R#T9Yr-Jiz#kv`REN8E{zbSvja<<~0!T zRC=`%R!Kg-rL{&rt4yo3{c_u99Fczg;1Qh=biFXs6KUnF(H5<2FmVvQ3>jfJ%!keL z=)y8mt2)GD8yMT5d_dJ+FU?ORrB+l1D+6j!SWuo9dhHzu$z{ffX8E)DR+mQWc{6lU zBHz=Jyzs-|!Wd#AG)p?I9~#i%ANq{74Kl10k~5G#_L2XWPI|$KY2j82%$S+shK}lE zwFkp_rsNr%DPEEzfB#DcRB2!!A2T7Pwe&DFC-6s&2M#LOYBMX98>+=X_f)$fQb#r0 zRh#EBw_kE)+ClH)fsqx{A9xbBe!?vXOTN8BqbM?1zg3#!Xq>5E|4cj4wDW|vnn)Mr zDkMhH!oQ_zr7IKJ%-?TdwS>r&4|Skab|z!RL{+wA9jI1BJ>Mi&efj3j&5bZZW>0^W zrU@%;PdeG8Id9t23^Aq27&pBkGdf{u6L7y-gKfn?A==DWl-g0xI#MT$Fy`SaAxyq3 zqvALt$vj&Ioy%7Fs;Q_o7c--v;#-x@DpzH^ZK1aOtWYl8`rFj6=^HIzQ!=7 zvJL}Ub!=TSurNqze+*@Cse2mFHSD`eJh4-RkG&fvqO!5U+uRy9^J=Z!LnCsqHZs-a zzOodS937mqv@Dh3nnot4cacr!vOIctW|7X=k8^q(BUDL=pAmE@n+u|YnEU;q@~MuW zvcla=0xx9X$6GQdUiLML6*5z%vB8ebv>|!y1KrdmyZp~5I!wwTrelI zIJwpym7dlgp-_g8AMWRZ^n>i`ew5>tgr42;#hq}w~z@yY#<4`3Zs+R52 zwa=6ld$_`>HU4-*fn(Jlvdp@EG&T}u_s^E*!Wf&P7G-e1_nT*?yH5FAjdz-$KT6vW z_gIv+I&5~Du|(gfTC`8PcgYQUD85455tnMC+EN`NaIwA{_6h6d3kP>gy9_-^2G7n( zJK)m~htEp4jl4<589kOKf3wpb`e5>|g9mHt;luU5*M3SK5}#%1u8}*^MI)E#gUfg5 ztupcuy(+|52hbn9<5`h|K!Y|+3Xy_2@kjID)(i*;1~LVe$Ap`9A&Wz6@n!!J-J z`b3o>L(@_jMKYu`F~OKxIjoNuOWxI5%E5?Qt@M?;uVA0wWn?T^Ap2GVTZJ6SuL zA*MoJc2+iUX3KEP#tvIP)jqV528CJLT7*AS1{sFXfL3DgXF;RisOcZ~X2yw`dC(-N zs#~r#8I$Nf2zusi=Utfge)db#HVYPI9^k5fHn5AY(F;FYd9YDYC2cYUhYE{gqU8gb z@pnPoS7OU>FoOKY#yAatwQLSP{IgC>c=$#Zw7yN$kL~828mm`%3QBejplU;0ezFD{ z^-Z@Wx25LEl&}0yCX1``)ugY5hw?Hf_(CaX#03u{K%Sh9yvQWwlvd%Dv+Qryz0y~7 zxo-Gp2Hg0wPBlIi>lPQEY?0vQJk#sLme)IEk_KP{s4{mFL$e2trL}M&uYqYlMYKUb~#jCfc`3~f@t zc%$oWt;v~%;V%z-*pj$bt6XW$R%sPOl@!Q2=!#%=Q#pojTwXjE9x^sYSp6vsGH~#= zVS6%t%*I3sv>pb2eQ7*oVvA#v#0p+^-q$6)H>ff!SN+W%I4J@ahPiZdUGG?@4Z_xCRRU?q(QYU@oW)+^PJ6<>UJ z)Wh9|vWB5&$TvLY=kbP#WRa;L{i&1l)|7FJr48Hh7SY z@9vJB4pDG@`tI$yT*cXNwo0Jq+9(8f{G3NCE=&l6x3``9PK#gmci6I{g_f&&tMPDp z>!*dh#0@J`BG+}#zQ?317A{PyZx$X(=b!ZxVUz2x8Dv@Oe&Y3%K4oym%dR2tr=KBb zY3QRbQn&M?9VX&h*EYmQJTLuf&d%xD8%LK#jx5vYys|y(vBi9d(5K!gSU8D>Tu+PM0F@bR8>$VSByzbzM4l z-I+30w2e&{EjR0(2M$QP4L(Yn3m>VEDKFJw9Czv%`dib*>#tAeuK$&-a^>%3<%^vQ zl5#S$#CNeyMO>^8E-y)6{rH#DQ3oEKjymKR8{AruaBbx4Lk82Z%sL&pp{KnoG+Dri zTA`<49>=&^soT*?ZSh+vT1-9CeCXpM$JiNJt27xl_HSWMUDSsfpOhL~=>aZ2P}+^fZuoVbq`AvspVVa< zGt3Garyb>2Y#8WNsnuB;4n~ju%4aaG>&=5GL!uc8ridopu25BxYwY&1@v%Guw4##s z)eWaguq~lr&9+xtfmQo*D*_js-5gA4T17IDpR=r$nAlP`4j+25y*%&cnE|3iCcLuc zZDkTBOmdj)!JhkEzL^fDMUOZ#U3`zy3O)+j)>VjXA|jco5AHa-Ps;ZR8ECl-Ib79a zv&(A2L%o%r=p@x_%c*g#^0M@*TMsaD{~$xWX(V%s%jH8*NXs|v-Tv;B^tqeBQrasS zW58q-{v4XKUfVHEap_?qfP?P+BdUk*`M6vLy}0HHY1WVW;7L0n6SO`#Tc-l_7{>)# z%O_QJqrPe++3Iag;;j@9WYjm2S9(1Bjc29PuQXEolP4ZoU)KvC$6s=2Yn;oUIl-6y z#e0|<6EuF=g)VAqd&$qFp`|MjSM8GZgLAIeiR^l?>kbrf^lkMGO>ps%M1y)+2z zZ}@}at@aW!U?eef9l0MdUJa`QWNgqO>!m>Da{XqAAun}^Po`?pQUslpZ`WI<_p!ot z%ZxK#RVCs}f5_KV9;l~`^3J={X{kZ35~wzmsm%G*I2f&8hZbqitL4m; z&A-mEJ-wYrd!EM%n%xdcd?oGHyUEj-QmIm7TH-~yhOQJVoXec~s1;PiR)0l9m_K%@ z!^b8kWAiImH-goe0n4Qa>a#~F-FRezPa01cYk%lNum zWo}NtUVom}fQs*42m}s3SS-pVgWJid*-qCwK!|d%0>o>r;&l}H$1iB(rLe7RIf&rxq3RbK>2e- zFi+bOSb>_Q5*SsphxAi;jy{GwN4#c9?>U<^!qF^8#E5Byc9x|EoP;Uoo2rC}&F--#>CZG%?7#s{FOuUIRx#Su6 zh!Q9_XU~VHYuC(9x7|lPmj!nwoJ^z$Q_c+sXzY|hYm+=wK?^^TTA6&n2W4|z@Ig!B z`frn8aG`!QARiKS4RdU?LI>nlNOXB3L2bEQ&VxonXL{sY{x_Za2XRunW*Trn=FHa) zRZ&UHqaw9^?Q$J;oDga5+Vklv=+N#;dUA4GXIdvlW^%xw9`K!JuNR-DiJQ}w+?_XV zC`44h_arY{%bWSaAKY-m$!=B3za)!{lMK%}5VEsS4EemY3`00nysEYtyBdU7Q~I$VVC}GL3owVm+~9mAw`}qHR}4OBmNpaLRWLh#p`_d*PJM?{!-~@c`C4M*|K!ug%_q{kJUp#YtTmdBAPMD3Bcp+ov#5n zQb$>%rQ{~DU~Yq&2E0moY1FE3bbG;~ZrO|n<*&Q$`gGZ4m!;#5drGBW%@Y}MZR0@6 zBxl>-oLra9S*6S^;o5L5SQy6TwUpb)DeCf`;`;yQH#&&x=9|-TPyMU5HiFJ+ybQi$ zUjWw1t}!gjx?b*Qa_%^|PIV|X6X|cOzM{X8ncH5YgTOoIoO4b8Cq3y&t#SnFK3D6{ zb!@$LSX5oxJ}jVuq=+C$iAX5j4JruI3QDJRcMOdnhz#A`jC3~x5)Lu+&@glj9YYNa zeB*ulyzg_o-|w$|9D5&Yue$0y*IL)YUTF1(yK;s%=<~G$lVpX))TBAw@y&(9ptt(I3U2QpzV*o zWuYG?uGiM-QO+KPzNuu8X=Xth-$K9Uv=*lw=Z{j&C*w~Fu7++rb)-~fdt$<28awD$Q>p-+=UHY+MK7*2h~&4mq#bpH>n^p z?=Kt89_8P@$1LVG1e!es>ZnflximAY4l~j|^?6{|zysK5Exi(m^1@zO-x*_i!aNJe zE!63j6%!D!+`0b_H{Rq6p+|jogeA6UlE?0AWm~FlDn~nopLZ3Xa9AB8(}ZPPi3UPm z07SCHGQYmcg8hu5{(90qT!uC5!&eoDU*b3fia#C~@IB76UA19hdo^GhD329)LgKR| zEvkmjV*OKrw*iWOtnHoR^dowV)s4t<AvmA>%9*YG0tCrx-VB87VEg(AqzelF6k zf5QwK6>rsxb9VKSu1pr*8(?#gPrAKfL41$P92+xsg=ehMDGP|2tvIh$Q)><@LmgB+ z7QNnyTJEgMhI5u26dx zoO8AR{$z?%es0*^e(y3<)X87{l)8c$uD?sSeY!rH(B_NPe|5%bM?ma)WNb1 zy5{HitOuQKn~r7h?x=ol_F8VXhu~hd6F|DZeN?1&q_VF?X)1`Le#^tNj9Lx_0bmv|M4+0AZt*UF~# zy3IGs1F|lu={5U6jnPEn-9!qjot3YrbH!`V!BGPFCL2@vb9L!XbsEjWmyVumDiT(* z!py$`%{{MsU-(BdLkVQf3odzc>&I-58l>8u?SXeP5ymZ2-M|Wf*P?NGzmZXdUu+uI zDt1q!cHZTTsJ0mN^8{~MVW}GGyP$c6n#5W~0-?>lN4O59WU7QY0{xqf?qfW`K;l(} zR&IBV9hU0Ej^Epakwr#y*zq&Y#ai|ym_1~u$Zh&29#x7Ml1;K_1U3Re;G_IY{0Pz+ zdgiQH{enploBPs(B_?9_sV~ceaK%yGClDp>d)Db3=;xCma@5 zbHCE)?-iEUeX9>U<=-s0)$pQ%Y=vWrZ3P9BU2ERv#Qr8yFm7^wo;cO{>V6^owdgi| zX2ycYO_U4*p;3y$i5dVY4H~NsuUksUoA|plmW!o{GldqH&K8>=Tq`uc%{W_oC95o| zkHj@piUM@qzGQXwQenNEoV)xbs%daO7B)XGcT##eMfo_F|7)bOH{6T145^G}pZpDp4l@R+8 zUTaHdbCD3r-|oxa)2i6{8dcI_80m2_7o&>XtgJA52e9q+!=^%Im(Cg9qOQaWq9J4X zWW*b$7aGxN!+UQA&w%qv_Hjn-^MytI#4*sL;jCJGQ08d7UPanRj-9GlcDgqAYyyGhm#F%wYtqXfCX{89 z-i&N!N2QaPyx$Y`)o!|W8T(on*+`I^s4b3(0)AN>L!FxJBd+X7O{M7bT5^w7^FybORwh*xJH;W(7t+ zjaV&1^9-6+iTHruZIid$Jj9d_F-{zFHf+l9n&|wsGj~F5zLoSIG2W%yc+pk4 zHahq7v|zFSZQH!2f=EmsVB%qkL3vueP2m?)18=DpeNGFGw2E!|j(1JAUu!q@Lt}{j z^+QxbZ(X0!3l;4(!ILra}l*UPg>7FH+FykmlII~=iD_K=v*>!MAr zu`^!2qLpn}w7eAKn;!YJDaLat*Wlo$?ABP=vOLF`Gqsr6+{dGjyKeQZ>2}@bBbD81 zlnJ=cEfQ+v>~BvItgxx(7??~}%{3T_egz0iGTvhxPV#jU%w?YTf{-eBk{ zXRxG^z|Xh}jaRMKgO!ox^a?^H^oB(REWi?S-d`H>vKmsX`qu3G{BGg;r*YO@61Og#h2D4Rb-Ch{tYPxN=kwpu zmIn0PK&;<*-<9dax0s5dk4jv>L8(PRwvQUlV@!>HMcGByVi~75fBjab|Ncvzs*kq9 z8oyX1>m4#N4PD>VFnhZ`~o#;03c+ z7o*ZSCA)Dc=#n|x%5Q>SqjNp{8bIQt_!1rbS)56yl;d4kDrJJCBN67=_NRud+g(gD z7NRMp%w5kGL-}fST<@6a-c%dk-wTM>21TYum6eA`623MX5$L3NL)<_)dsG3N^83+N z%i*b}LBg_TlD`>u5buz@Cb&N5dY@9QINgDZh9a^MC)=fJIXo`qDmJVYXmQpNJ2Vd3$fa){yrxKswn}l;wRcViBA@a zRZV?RfezCtWGb9b@GgQLOZ5g#xSJv+dro#o1A z7@$VfVY*UWiAX-tU_FQ$QbV zd5A?x!EEZN_meYSYzffk=2RJPaNE1{;-{{nJ(yXH@7am%d3G z9Bg1-?1v)cZ|nJ@S(m}o+c>|Ak`825I1}i5Q_%8HXjOGE(S>@VO%fH2ui*!wkfs~^ zrgiW1k${6)Z3m^K%)EmrzlOH`UYnH#PJ+kk2i1gn4YjzuyoQu2y2Jh&slLPhy0eML zEPrB7dC~9?J8H)ehgMFw>)4x@a5ux$oW1WSw}2_vVPoFzjlnS|B%@V|Y~+Ma!&91h z?Vi#dlVQFME9VAqq4``f};OCVtMuy47#E+N!5>{W+}#rZ^71WzHDO0No@)G{gJ3N}Y`~Ppu)HDaR1on-(|F*JIhonxRgH!-@!VZ4@$M** zkzTyTw^&?oqwYE8nw1if%IJ98SHc1IDA0#C7)HIoBGJ{yEr_2fCHukr-^8P21%G<6Uznn@sv!! z({`J0XlqD(RJ~4FqSKO*pL}T~aj=WuN!5Wm9bW)5Q?j~0i3&a=^BBS97>ZEF+r8-a>H3n}b3WUx;pXH>{3tNXX_Q{R;8@xlt&SQwpN=yy z8^Qhk)uF|>#F0!^s`9N0jh(|28hqB!HaRgTJ^siCqQ1Ykuxvw6*=84m@vT02ed3>m zo;WHBlBU_GNC~WPV~upp>X5vh+)4Aen+}gEM!hI)T$2QjemrW697i{$*C%V^lcEV@ajVZ*14c3AifcoUyi+J&Z6C{|fh9 zsQ?G)sEPt?(pEP??!L%{=4?IdN%#`oJK{qKNNUoKgqT@ck?!4~+027-P2Y65P8Q_7 zb$MFbYZl|HDmRMi#`{lb;{CiijK|z0tQ&%;VsmZ!RGL|xTcp!ySLq_3_Tu8s@xQq$ z5cX53LA@{s<3b7diTECr`lGQ~hv#p9mOb`x6%bu>&p=8YTh0fv1NCb4zx zR8)snq~>jsnz}?H`g%8c^$5M*NRnW-a4Np#7-M-E7-{lYd2-5PMQ5_rP5)~cP z$|109zqH!7aaZ-9_BR+yGtePQD`Kz^(r;<8telmP%giwIv@4+P|K)w<4Td1hHvD9dlj-SHfe?JJklm9giiT_UNUUA`3j}MQrb|ac=(cHOrqXef4eJ7Np9XcD9kianUJ6lG(3KsmM zLo%u1ReWfvrlIfWS(_*c*a*9z*|u!|q{66rqMp))-(6SpHlXVNV57LvZ^ zqKN!W-Q;Rpv31llaUED z6+StKixXEzAmP=^ivc0NC40~EhO$P$806IIBAnGkE#at|ieX3f zSzwoNCGi(*MqVu#WYPx6T=JR*SM@H>sZ83@Gy9&?8fQ~Nb5nCxs-dbZNhPkvpXDez_=~gcjnxu8Oo(rgfbz{Z8U2>BNqD-av+8%(@`?EF zpU=Cfdi5z9#14t>lmc7oBUiV1_)M0n1HSF-V|y7el_zlBditf*8!uOZ?r0jKdyw@F zU=Cko9zC49epSsIj6?&WjqgMs#rOV#UT)C6jmbjqCLwGLuXMb2tQ^Wv)^f6+b5G{9 zQd$kpdx~vV0E-t8k}+~ky%>X|3Y55tTnUg- zOO{?VFqF*gt+e;UNwigsNJWYFy#t@k6stwwb7fTkerN~g5DuLnSyB6b4?vIZeFb1J z6m}FPAt|w4*~PzrOesNKNP&^!8F3>P)lrP)QF^P<@7z7^%8t2fW~JFn?xC$9PnBco zPP1!|BfJagIWiOMrxLsBcFr|E(!P_bjI$pX%b#GQ$d5^I89OYV(IFZ``12+@QhpR? z&#KZPMNgKGd+W2+;pY`pud|uHKm;Y6!z+B;UhhOT6Sz1Z7JEVk&p4w+#4{20Tj>(hS@~r*(A@cOre8?;|$8}IrTY1&@6>(g0P6Gen z`5w58D%JKw2q?0e#dawJ3(U;I$8WNBh`*oU!vd72AyZ|ZrxZEkOgavgvA{L|APX>$ zw(RXi9x@xA>a=YKw6A&Y%q=DwIIb+_7qlFdHWpe=+$CyjjT7w6hi^ZkI1YU*bXK&9ajCM3R$xlb(H)W*wDN;;8-WZZ<|xF6Ewf zO1iku)g|IPj-LNHCL55pHpnDkF`a$f>#2vuQXA7`tC9hNolL>EQl$d=s_b)pN6S*( zO&i;ofmrlnzLPI-8iI>zGv;VBFZH@Ie{_}Rux5~$$%)hY4&+x6!Xvp7Pqt{9{ks`%LJX>zBN6Cg_LB#gs{fx8tCU99UjysE?C|PTz-%oB^98ILbQ;{LcD!Vdm1|aq7g=m%%F4uN}-8O2@l+}^_a_!jU*3GM;Cc@!! zZQ+~qup{a;YuECr(Sa%+lTYooYIQv=N7kU@wxmt+!B!PvVP&D4{MG(yl^ws0k7p#E zc@-X8sn@AT10^Sh6vOJic zvnRUkN%>wE@m^~Iw!%E@tywDTIDHTD5Zcu0o)Gb3%(T{M{wMqW$Qw;rVBuK4aX0t8 z<-*BCMP>%wQ6+zItL;FElR+WA3p1UYM1feodY3j6bvGz@=cWrLvWbX?UKW(bV$Q09_>K}V ze58DqnB#D5hC^zKy*SnKG8?0{c2&dKi2}ZVt)7=-<^D7>!C{J*e2olmvO0&rZFA40 z$x?suu2#hJltv{sxlC4CJ&JQV9`;A+5cG3sc}%nY+Yb?Y=?m!8RPv^41LX{jkX8~` zJ6w&vACl^O1mxkPZV5gvjpI=}{m@2PIxayM#oAph6NCy@E%DFt6`vx_BGR-e><;1qdZ-GYONYP-Qzkstvnn z($lvPlH5Zyzy+n?K2wIaO9J}GtX&yvm=$S>;VbuzvCOGVjm?|`fhl&CDY&zdG;X_` zYphjiZK?;nCl%>;K>E(imH*|oXJ3ViT?l8hX^$(E1BZi_@>c95ld|3YhKvIiQLfuO z6??+f^rdK!X!d|)u$s zyeE4;+u}N*44SKe7Fgf9*jybmS_s-Z9hC@Yf_j8wBT zIgz-P$Xzz4FzIujE6mCgkKXs}q(h{&fcfF>gA9lpYKnp@2ZMyk`I0CmF3c?sWh0N0 z4AT1#o?Cgn?48!mU_UKG$ETJKZ3|b%(PIbDtlnQpGcGNe^$(z>yK z%bL+HTE^A+;nvg}3+GxA&cN5t9^&1_{^w!)0M9i=-Qhv;XVG9DL8=G@n|@gtNo!44 z+^N@k0N?uVHy`h918~64<~@C$IsbY4R%0clgcI_BqEeS?H#Rrct~mYSjkQfx|M|sq zH#_2mNU_$dGA;(LIg3MD|8pT+jkF+(mkv}5G;VgBnFaG^o-Pv&O_%Pl99`5#qJ{J& zBTG5#be=@C@w(iDMMAtH$#*JmagFQhy?Q8bMN$=)na%cxjZ^9Abr0<;kW`hbQpLfR z9+s*7_A&}tLl2oYt<5Y0_Dxq$RN8iEo>yvssvMvrVXl=SZiUtr&*e&LO3fR@SL5!b zMh*$mx~bg1W+IvDK=W46cXBpdp`W?1P+ckeB{ifi%Jxm?DS5uWFk!cAYTb9TYE zyd}VC#PBiik6HHB?urNRXrqf3*X&lNqmG5lI9JUYi)^@hu0HQG7y9PN*%;_$RPV&? zXn3iY+yEQ6dXOMu7+0OPnpd&?6?w~R{0QnVuFNZS7NTp%+O*zZ-dGScyki{k;r$GO zI#vV)loqs_H7=SSxB(O|X*LTD$BGx|3MNp6^Js;BH-Y5g9>(DRaA^eYe089de% zk#ESAZzoTAUcxEKCF_TFfU}8%pP>3odmplyqT{Mox*5u=B6R%T;rU3J^t3vj z*TZ%d;;x{jc)xfvWUG|wLm+BT?7v7U9UM>qRK zY@pe%3LEqsJ+m2K-$vOOd3kpve!Wf1?LnS}C|7{h#atEUkf~q0aP9?il-=4|p+-o$ zD7~}wB509F;=PhGtWSD(?ywNc%e?vIO?U8mwniS!?mhgqIqd7HiPWr20;o(Fy;u=w zMfN3@?d%4IWNAv3Hxc@Ht)C@d;u%Yo;N==S0h`ZS+YZwI_Iiex_y_2e?+ne}($E!h z0nV>Dr%!56GIdF5zU-ZiZzxi2s7A-rL9|A72JdrKqa?SQo1)$h62pP#abuWzXPC_z zvkpD9W7@OkI#2QZQ4bF>Rf1G=i7HZdvH=_|l8!bTcAi9O4KgoFrq-X@fhhg9K{@9?#Y|6D-;0GU5Ohph2nb|`0B~|H5%F^ANukEXwc417KAg`E-^*v^K zMCPU+ivc*D0@w4WTS#aqOtT#|fz zM?^~#%eU-SE0(|SmtQEyQ|eZP*6(833Y6iV z+BqxK_Uf>ZB*S9?V6`_}S9T-C%Nt8~RvB9G=hbS8s*}8H({Vo=%q&UY{KAD}AXCCS z{&D%qPavIq<8lb~n1kO*8gdC&N*Mjy@cLbLleso!7&)7ksrn_=JOK2<+w#avzc zrr$`ar%x54yvFm!I=>O<0>G4*v#xAo$Lmm72QK|QbLQfS0(=&)kY{Wc)_#jV*jv!s zc7(f46@+s(vkqp63DLSw8<)8sR`09kJ+=ERG>3KRhk|7lrr9^Y#B2^4hp@P&4DA?; z4`4Fu(-*)!7A5wYcgi{7tX&7YHJI%1nAb33vE7mWG!=cFw~w*bu8*Sp)7|Ingsx)T z4#4L+Vh?2vHo)^Wib8apOnV#nNxavGp;AiTyH%m^;pmiBYKK-HG-|3{rN(?vL5>b! znkwagQ+rmR+_8++&I?&O`?DI)lcERqIxRGs(KJi>2|md6bLr|r9G=r-{g;eWH~KSqCh(bE>^J5l@@v154a z)qFA}w&#J#mT{UvOv!WLy?AAt+jZ)QLV)JFe)xUpcDPYWc4)iYK!T*ueW=l?wle`f zc17C$9gtF1xubffA$nUAu}Xj22>&oFfw{io&z!_#QpaV;nVr4vJjaYSGLXdQS($bX zb50jVJTB>?t$j!vSq_bM)U!~ZQ0rX&Gp`&mMe{vcS82n-1kRxz;2nK)WCNZTYo+tL zLRz{nW-3(X$>!Z)gP1Vj{6XQ4<3@@_J>r+!pu|23vmd$v?ylX)7rPA&l2(VdMGW|;)bO0^}^m!*^{TQ+~E!23Ze8}pVW1*>-#=GU>uVH zAX_$w2AD8-{i*;~J$-{C^-xbFY&i^@?aRC=U{;>R{CPL5-oSnRHw1RV7%BW*VpC*T z9;1tfsCLY4v9mI@SsK{CQr(Tl`e1b%%4JD&on|Jl4XaJ%y>3pj9FD!I6VQWJ-V>mM znzuK_n&AHOdm3SY>LCT2cHu*hP^@2df5fPDf*CzR*N)zEuoGBK8TK*91PS1=9?7$+ z#Ow03bFQfKSP}?keaj)py{+*sq z9v%0dOye&?4R4%n2q4<~^x_5k0zF-L%vrTKQXa~1uOl7Dl##$bigTyADLu<;c5ZM|&`>v2W&(mY5{6E*6tvH9v$G?mfN1*E#n8|FM{Xh++%Xr}ud z_tj?yQg}rkCq?I?hrw+l~_i-x$4%md7D$@N@P@ zPx;#g(ai-W-}w{qS@qC*?6Qz6Y1qHFeP`S`5)}!mr8KSZJ1v2Iy+<(c+8io9v*@MI z<^RkDLS>Qs5u#D*$G1&uk||@Nm+3xhmAJOI)CN2Kx)>j}6F`myc~Q?+?b|F5BXIVJ z!_rO(I1V7_`N8JIEVZstXul5P%aA9$|Ag$?!Dp44<71a zW+6@qRl%Du`&(4Stu>jt#*ufGYLn8|p~LN&Lw#=lE3jC73o7v)ifnb?wc$;}rP>U! z_?ojv|4Wco%QeP0zNfrw)fp+-|Ctx5aJ_&m6iWGC&SpYZa?X@BA#bT+{V+WTD=m@B!k;gqnTsC%~v%Va8Ror#6jHnHF=3#QZZ!UdWY<6~D(S z9~`l@-0ZjSlBIaH*N|1l9>JukeqLn>5{yR34a3KUz=}dr0H$lLSYr^{7~x-MEJ8 zN2x{fMubMtV>Sct>Sy_1_xRV!TguOcFRS@6U$v$UTQ3qA9AdY$0d6B~TBm49SRGr{ zezgX{aVfh?KUCvG&!B#eend1b13ZYAs(>GR%wKN0_bdG@ag*pvMJ~SK8j|>KNyD6a zXe}UX0#kZ0lEIOW5N?QQXZ1P@Z^!Zj(W~JZ{BHGEe&CJ%j@H(P@)n0iS=?L%CL@Qn ziDW^jKJXe7SCyaIa!?Y&S8*hn?6%arWyj$p~MJzvfL647gvN!&jG?>id1CGr+G{FxR=E<7L#+~Nb@HZvw+ zsELEZa1R3w)A_35wDVrC34yubE-^`r!=Ejt)J@e&FkW<#5?OFL5&WV{6*ufB%8y;D zt!?J$zh`4;6GC_(7~gZ}T-qB$JKd)|&>kJuqTM;Awhb#Wq@GXrLO;w@+c!@h4tIP+ zMpeK z{QBI$K1r?qSpN%9zWketZYPv?us&m3I0XNA zFoS&SBh2`ebGkEB>P%MHzy2}7^@v=jGJYUD=|U@$pINasSo@7}2{xeZc}FaVZk!id zUO8ta`HjONPuO!81=6iaX4{>^RYpt#-g zE-iox+0Dkg0Kr2t&!VEa)6sCdiEv&!Tbmq$Id%X^jHY;VT^HmytJrzhyn`~W-1{EM zc#|d=6OYv6hW2)f<7JV{bq=s3Yd(a?Y4{oKb80|>Wk3X_cl$bK)vi@gXF>Mx`{5f3 zYEpIjEZSF9zR`d*yLv>Z{rE@Oo>u-B5@jZVbSk^!ATO=?$W<<(Mn7k!jo`~BVmRt! z1JYoG`cm-{k8dc^>+EZKhAFEVyIVm0z|JT4W?1U6N`rV>p5N@R3Zl(}J+?be@Zf<`ncWGLh1df32wS2jz{i}g>PClUt=R% zSLS4tpL&nq2v*7!)vZdhhr&*1{Z@nfRxqDc#+WzNt$m{hEKk>qYwJ5_fln~hldE?+ zzT?Ov>$-3NgIwZzTzeD&J+V%ut%ylu>1_uL$`^tO1#g;;HPdh=o!CPpz)yUqux3#5 z_B~_k9*eLBekmYN-B#j4FWFu#`n$A9WBhX1wm94s{T;wEFp}5puQ*x~R}RjU6+^P! zpfOp2b9ZmS3v!Uy3IIpcyE#QbWcyWt?Lvk4Fgmtysx!mXc6&5_=0u*WOS#z~EYE~R zL<}KG%X|KVCN1|$#%*hyI8E)qG{Nl>egJ9ETt8rT;FAFIFpL$&T!D?#h$Lb>S!kHm z%AZ)F3efeB2S)R{eK0L}a&;zSx~+MA^>M#?Q8nMrE2eNf2f*PG*T4>oDAXLgsxnl5 z+)_=eAOSs;0VoU5R(r(Oj9V3(d1X&d715#|g!?5)0joH{WsB7H;W{MAYnJUr4%@$c zwt1qSg6IP|au$W$EFoe!;-sl6>(A|0NwE@k|HJ?MrGfrD2m-kwIv-^ImmB)uZ$;A2fK^3ZqSpBT`|dv^Qua5@KRH;R{~w6| zr-EPO3=bjGQ5YNPRyD~EM|6lB(CFY-61V8>$ z%$6OS4Ev9Px$t9!j zSE{}Cylz={_zr}7%6R=9uG>GYx~QB`xEB939@SP?L5nB^}K`?W0kKk@)kDUQnb#JTVtX%DUfJeKxgJz${X|K z-=2=>;sx_e>h6(_{WFLoE_kkd#P9vr*$h*NMb@Gx@n<+1=41Vi!VQy2&k`zpm@@oO zh_KJKV{WUOV@l(Vtbl~&SWUiNSF*A^-Ai+nmQ#fb`_p5E=A$(>E9jx8n~dMzt{gnW zbmgG--TO!X)U3)l!cY8N3L&qm@W(~U^?{+BE%_d8Cm9HrtSddy({c440p8SBq2G;` z$JY3pmu9s2%l-UZn@IRd=0YFWrDzs!nL3rKO+W9bvw`IG-|1M8dq#Y?g%-qrfb)ll z+vG@^)_m!E(M7LLUmrtZ z;ReWDWUrhg?_T@u4FUtBokTIq!V)d(j60ZG5dWYdJ4`XFD2cQ8s@}7(F~DZVlzDap z5SY(5EDqbE!^GGPTWx=$22a4!e#?Q%?e*}jts9qKBR8$*QXs;N%Uk<7xO>d02~n6f z>-eT{r@Vy|jKP^om=>$Po$4YMV+U`4u25jpC_S{+@v9-yq56*+Y-!*9VpeLA#(bCH z&pc=QKV*#{$ZtcR%?&R73UCZ1?WTa3K@$t;F^xzBc6{?5v@wWVxH)S`!wQYTa0O5K zQdv)qliJ1qT)ihKdh^i#Pl$AMkANb-WxtsX?zK~9F6@ipxA}u22e^Ee2@nT2`v+tF z32d<4nHps}V9lQub`^_sCt0u45<@%jixUiUA&y2b-hzK?Pvi~!!3B4vG|n?IoVo6T z45GaCxF6ZgBFUrgk3O}swCp7oz?eqAB+P=s7_xxN_a%BuPD;W10Niloswe#LcZ8^; zc7wgX=ti>1Kg%-V;L~r$5L)gi82ELJ&fXl%w}`O^bQ`G=!4v6D3{gV`IJ6Jv#@!ps)mPLN>xu zE{tB7_qJ|I9LP&uFOv`f|1kdM-;F&hMIo=qO5|8FFpS?H07VI>^_Vw?kh8s~H24F4 zo6i@#VHT1nDf})QN_;mMO6zT&KG>@cJavDVfV1%#+_8%&%wtgtY{ImQLw^x4YW(c@ zMpvl$56vOlLr*A6$fJQ5LmIS=F)T`Qv~KaVKF4E8ZME+d@96!?>t4s~j`*Hn@{JgW z0*7RVSajC~9_!wv*-UX!2@67&n=-4nQ zI9FTG5WBI?^Ij4)8YP-yx6XKcy(uLnaayEW=W3}cynI*p4F*Y~DuRuj*J9*Sjo;Bh z22L{1#q%(Pm;N4_A1I^|i4kMTa1);@foMBlgYz(!%w#_d;lM%&QuSFObHBiY(CFUH zF}~Lim%8qfO3rC;-_zmi=l&@=`X?~A$}>5|=p-t!%9z~#=K7Mtpw=>`>_-*R@%72D z&}zSC&oj%FV~nbH_aB8ONYI!qVy;0g_yd3+Gln6RyODT`F!@ zH=)5nMTgABEx@QThr|kL)O!a2RCgE6HQcS$1zx(xb@<|h$H0-2QThC*oWv_*AbOd^ zpW7tNF66L-n~ipkK|8^OiC}dzH=MJ27o$WKW|Tz4#5&qSwmxRN3?zW}Uu<5iYxj9i z)?}LL5@IxdTF}Hf*R`AkDYjRu{?fej^}26uNkyBezSD2=`p;F}-zupiTiYQZEG>?; z7CTCit*#72g)Pz`5?@i$4qN8Mzg{pKgmGY{pj5`-eg8a4{k5`E%r$ z|8y7K0&vZwXSuFjvd=KeHPd`=U zdHKldTAZp11`LLQ)geD95OOq5!L-A-82u789!PL)m6{COPqiuMX)BOS%$6E&nKJNB z@u4yO%19KdLdQHrp`x*Jb0T%ihau?N6)2;&el0Uo*8X8sbxUH+M0#-OmjC)jFKSFE z;ML;$w)tOGdx|B5tsspX2z4d#Pzx4cSYD~buNST^-dJDmQ=p6_qsaOF`inPRs6KGr zr-gxq6xA2W8A{C-{)EfE?AfKamaWU0BcWgG9K`)C@rn^S0af}whQ2AI<;JGvzy66U zY6xI!uzg-KwZmqyUQAWp)*w23h?>| zeg90w7Qx;5@0KWdFc%SSzavoWCaL|}j4z)Rmk9LA?`m#QP>`k-Yw!=OKC19pXXDU$ zw19DSGl^{lib;h{E}OH~6bKsSgE`VL7gGsbm)4^Q2YwSE{{lH9#>n3s)X&O1jdTd= z2=_V?F+NhpB%&LQ*@z4hNw;5U1=PbIWqAP>OU9GzBH~XEGDV_PBoD$r(uXjJvxW`} zzN2vq{>MdOe7D2hFKJ)=8w}sm{}cSwGA==6VRGC;&zc{|QvtJ8{f^_#hl0%i#&)qDyKM5mB3IM@=@ONtF{6^R*#%2yx}_oo59kNg`2dM(!?U& zDh8$r_(2C4s|xm&nQ3Q(5k5bARW|0EDqi47(; z=|gy`0zIa*1iF5CW9S{5o{59DtNpOD2%4U#q1Jb=!A_B*TH|vJBX)orU zU2gFcFZ@RhP=C|_)q;MD`bP~4$peq`x-#xM;Y5hnQ>|R!IU|IPqYu2R5~9@~`eR&b zZMDdoXvQtLlMdtDJ&~j6D7venFk96%q%7eJ8n+{!^(Wx1cW0U8Au(b=uE_rLgo3h$ zg<0auUyaMUhBwP*TNoaA5s5i}TIbFzpE1?7f;%qjno-92P!qxD1L*Zyq-@T#n5o6pFAebBGEt2<(8u)+X!P? zbYh4Ceci=`I!G897gLXiDyl^~_^;7@f<5n2-n{*a@AWjQ$6LEKd}7dP>=~|)BRd)s zZNWr^^W=xc^zCb%#w9>hiL$vc7l*Eqma|zKyEz6--V&d~4tLA%u%#1~rzIxosl8`1 zThs2-{Jc5nldN0Y5?!C*r$G^hETWbzB5Svp$jkU#hnQ4kDF8>7Hf6EQHXrw2`(sOY zw^7RJ;bSpc&&HmvM(rB&l;Jlj!6HgOc(S-9Nw_Z)&a=58f~r?{r~a83?7)cE0h>YV z%GQipz*j5caQb)LDxHwTpt2-4|McSLVtceDq6Lw708F!zA=bxz4^VzcihLC06 zl%WW*bD{Wi8K_(A9JIMT#|_u_Uvu&+F#-c`bltB)-2d@Q$a~oKy%+egJ&Ma>1qqj{ z-@vU`tD_E(Pj#gxJJ8tlY-Qav(=R;g|DQno_D>*wTl@L_(|^qY$^?z~V$ZO1PUEzIe6Ax=Rwoic;r2qzy%Ob4j z1f0nX4>`6^jNr~N+v$(Pv;={&w^1#Nk6*0(ZP$N4koefjEd@X_$W025i7Zs*`K}=88Cf|y zOuhnBwY_ae>s*C)3c*T(*SxPP$^TvU{xgjR(%H4T^B2xkRZ))lSJ>pp8<(yDM5`W* z9!BY6{`lAt2FlIJVOUk9!@jK0*6#jCPX7U7|I_a++`E-lju-Zujq{lyv}+-nRxBd4 zZJ;D8x*?7D9?=VfWPC;F5XWm(3}MvlW_7kZ1Nqj-HWFy};{OH1Pw*P`S0%A4^jie~ zz#emYW8jfX%g>^R>&;D05j^x^;tAT42e>^)l- zJQ(;NjQv*~|23D`SPg)Au08rO^PzMr!O<8wx)~jEHY;&L4k-__X;|}96BQtdH1K75 z&(S3VA={TwdOuIm!(TXq3VLlm03EQG+fL~Edzvl+ot0qt2N&c2_{jer45MO<(9rBs z8}5CXq9;(r?9q|OfS~Hd>&uhD`#P0If$K2`^`!1(#_6CY)u)2dn`8&pz?d0VgJ^}H zkIn5bml^r*Q@m|Cx*x$cXZ-!r`YA%#heT*6{6FISKVy!mG%g}wj=msgt)93ZI45Qg zG|q0~38C$-u)=K`3@RN8_rgm$O=xx%fTUw}f4YnFYDsSTp3K9$j1lBqV>5-{Pw_Y+ zg|D-NAQ1v%P6kiJ6^uFfZvOT9|J|c!+Z+1mK%Pi`t?Ild?Z;Ugx*QQLtkLr@K>VUqy9Tnw z)BBz=i{1wg0Gp+5e*4Ek|Mx6mNSeZD0kkVad(=Kc>4#PN^UqvNpqhQXEQ40_lYyX6 zc+cb!N_0jDQxpD?3zqip+%Hcahez}K*?(AW$+^eDf9=@H7xFHQ0XO4zY4d&-so+iH zVZ_?^zZUPmJ6PF)XXM|Q5fr8WRpRZmuh6gg#Eyqu!i`DI6JI_9rTsmfQ zOra#1J4vRnE~F*#>C|1U9#1VU{e50C5ISSzGt-|+d}CigJT7U+-F?c(bN~J|4D!=x!c+1!`%-> z$~|0~r~6InEWYas)gzavQ1{>P;Yg^S;x@7Uy{BYxpPk6*Hfy^}Zti!{oA!K5UQ(*%NBQ zj5+){65G=s#ICEEc<%gL86J~4(h0uJyjG_k?}<5i+X#47Zm(fW(c+Fna&4A<7E>Q6 zGbFyaQ=t5gO~Rz*Ze`WU)9`jSN|0*_9Pm4+cJO%Od6W7llb`LoZFj?ZsjW+8#*a#g zeX9AVHU9BvY%XoHb=1nTx^!Cpm`LIG$hS$Wlhmay75Ke=y5jiD)4y!?`gCKfpk^~O z<_Ps@mETZ)+F$Z0FJo%ul+SaU^49E(pH_U&cYkgw&#|S&&Zlb6H}{z=cjxHQEpIt_ zxLmo%M*PfuRpq|yPuq|D5Jq+_q(nN9=5`=gYW=bB-5rykoAD&pJ*k#F&4g)MMyha$ozSg=H!W9y-S?R4l|z}yBYEHl#M?3e5^%) zD%0FI6a3t!UEaCh(5Ua{xf^W;CC+E=3xD3EC$mpFYTomGmn&rM|D2jB$cJ1`K{9)S z5iln%&Ro1BH|UoBylX4to?q6?-?POtQnL7=nX3ScZllIjdH>E6(4HG|93?mdwI0r$ znHIU-ch^(%m*#5wP9BTceCZ?4rjMUy|51`dRt$~MXHEy+PQLWx)0VWk^WN1N*E>I+ zozvqxO+nA%Pr>8JRetiY;aTJ=N!WG4gtUmLNH@|A(jeU_-3!hQ_8cmd*|~hMsD?C@8EijSUPQ+~Z(vH#9Ub zXz#wohU4V^AS^8Mfq`FpJ$`UC#0Y{D{V)S8WC?a1b2{Dv`k{2^LZvwl(3R8cL`%D1}g{u48EbYBQBdkJiCuKtu!f8)M zH~J_&N-43y2tEgEDa*g$ec_AVt|{Lm4@zt}L2n6XhnI z=@wsG|2ZIY8B?u$X3EMa?7(L*3K}Xg3Oeu!75IY^YKa2+=Q9clGw?483ffz=-$y`{ zZ_$5$M!#|WB`?W77jO!OrG}P^ma>wNvAr#qp^3ebDVK+>!}SR$A|67(M_W@DLzsuH zjh(ZQhba9&X9xkGuMflNVgH=sVl7IqrK|>%ws$gx@p0YeLePuhz+f;DClfQF2QqTM zE(iW6N^jxf;vfWvySuw{x$|<_JDJ0|1qB7+2p%{O4<~R2r?aP>i=hXnoioGFoBY0y zjH$D+lcj@;rM(^O`o4xn_O33X^z_#c`t$lZPE!xdf1hOM{A*gk1mV};z`3~)@V{N= zVrlk&x$OFzpO^hJub+<-xxSf@nx%)Sjh2k1t*M$ia&KH4S3+g`v_fsqX90k-Oh9d(1 zqhc`}9ks7jC@2yr_hckBJWw}kuw(Qe#@5wXr!IHxix5ho(RF3`;|v%Gm-@+IgsQf< z8TgLpPWgqpaoS#JmNyLymxb67-JckO;lpn8$kv0v!NE!SQ#Wi3m~u>m6W7B4J@+ zV^czDU(IdUoyZp_u#xQY4jktHm-m5`gpo8{t>oTco-1Q;0%GKcq^0!S`0uBn60L;z zHzW1mTD<F`$%|2hkDHMC-^TQo z42_u5E8v~-U&Y$Q0xL8;*>L&rw=qe;f$1Ee$tL}`h=C(WRSBb}ov~G=zm7>CEN`=d z@r*zGZ$gBm0g{+2{+969G1U;h812KoVN3isAwtCfNi>;%13?qe>Eb6 z4PzT4hu znIAsjXRma3cOPwEU2fAo*{jlHnQE-x)Djj@RBVk;^tQVxC* zlK*XOFnz#GnzL&(bpEk~fcr8i83~zrd0aVcI!;bSOw7zWa&oQYa5mHI&!3BwllaFT z)tx;|67#L>P7|M*KFo8+)3vd%vMSmJhJtkH>+d&wq~|*Hwgp+^eLOCH@l8BrpODqA z?&4^{2puvpF@auuaB#3NaTkZ49@~_KiHS*DQ!|cl3kzj z^ToMllR03)$Zfx?^R@}_%OL9_y*~?oc98Iec~jQh=f^)yu@w~+6w=Y5Fj41M7aJ23 zoVu65Yp&zw=C+dARxDAoj6MVQkcUlD3AwcE=;%Zd^g~a&0;0pJRiP?@cQ7qmBgq@8 z0(}+!EQyauV3DXdJ^b=>0+Hxw!fqP{R~Iu^c>0iv@4PO7bhr?``U)nlMh9btNOYgJ z>@b+RmX-wxiwYzV-H-Q%?4Pm1YOhsPzNz8#Q$@V;{?jKxSOnupJW46HXV0G5obD|h zb==C=QdWL$J5wua!=fS;6Lzn_tUIy5#LR5`{k_*4d!6v|8C-~6kKpm7 zv-D&jOR7g>M@L7X|I4&A``0Y0Wu07A9MEMpHa0qI5sr%QX_p5d9jK;B!L*>@m&IDreR1@!aD(bdLDBj{DzI7&hBo}21WGyvn%}>W!}ej-fLMO zbJEl4!Z-#4Bw`*t@pWZwl8}TEndE)>P7yR$b39EsuTOYBzcbfFcNPESsbCHpPwP5H{@d0;eMwPqURgMhG4KhSNWuqqJ&B{c-*r$Rg}(v#plzu_w;@$ zOun?NY)Ngh7^si=iOlvcXdoj6Y2 zKu4-@6k+!*2r9!9-@_rqf|P0@>hA3NlPj;47V-6*;y~`x>?arOVI+_it!j_LT%A&O z=pb~U?zG$9X8(J)oI{J{w+~}Qrk#OA&$Nib@xXY{PtY~UssyM(-G2@ZS{zec9z566 z7ic?CHm2%#_RRoHaw{NsuG*j>5WyJCv+J&!5nuO}ve18@h^FH5oos|nPqJW{!(5}< za6mKWnq$k&N27yT>YEK%v=DmSRJ>-sQ;*p94*Kkf0iCIWG) zEtV}JG>d`O!BUpv*ICg$H-Gx@fN!#Z)K=+p*MA1pNOH7;0um^(G!%{oSz=O*8^yab zX;61{u`RuQyXn@7<6VI;VmT(!BSy3v^h%Sy$5RcgZ5EeHa6fVxtVkQAabI?~8wfKP z%j<+Zbr*iM2RC%XZpQJNruAA$e?hQ}=tN5;fM!2VV}k?UDubTt$%3imSlvM;93z7! z0IliGv`ggK{JhcmroA7f2s0tU)14sN;OYzr!k=8IQ6uiYAd!GT{2Wsl)I+*@KV|!$ z)IcbA#8p>UcPGc6Wtt9r2O@jg@u-%#8f8|QCX6VI(4jtKG2+P&quJ}53WweCFpe}? ziy)%M*QcuCeiyl%?5wh5_vzCo@KPF&sRCFod<1ub(2me@_O2+AaRuo#!ogU4^X`PT zz*qUQPkTRupFj$*Zj)8UE93r&&-HI${*FGg^#KMs#v9){qfk3`P$9B17?JLgo@g`! z=rhIc6br=CuTrhOD(*ouq3K{84lve+u`p6Zj-MU_lg;k*F=akxGe`udodi8io0<@B zZ*MQqqM_uKD9Q3G0h)zW*F`=_xQOY8)IoHH)YRjZWLEg)hhu8GU}rYUR1^rAgiAdo zI%d$lod8NS93@utR2s;xKbucN8A(%eQGvlH2A5>^Ad%1Zs&X+Hm%zNc-x*SeF^1vp zq*o7O1O$`?;Cc4-c*wl4P%PtaM*F^)|2tGWGQkSz@;E;_Mf?+;ley8LjjCd&COhDI z^||>7cv+@mJTlb+Nr1>kYhv9|gOQ@sgODyUh#Vq1M2z@RVRT432{Z!|a8_(N4mR0*AzHVc+*J z@;fR{!$UfltQc#(CWJiQd!0r_8yMgrp?|-Tkmc$QuvXOKNwtPA-Y1F!0DiE2vTPD z0wubAA;_(9JwSk3{Cuo8@NFX@d0r4qa-wl(KoO2N-Y|Ip%giDgqIMJ=;!^4{FAO zctt8zGdW}~^Gcz#S}68|)YrkFwN!D^LIp zdK8o5vnwAK>04$9T3GGlCF(^*PqZGOB)}R5>>U+MkIp1RQ1Mdy@NQ&-A{rbE1VtwK z0Iq}pLTIo<^)?j<;tzLl{1r8p1M>J{E_}HI36#8yWhhg9kH*q-Em-Ca9ir<4Fu2#o zt@H7W@Ta-M@D@YE8lQs5v}C67rP=bMetVC88Nhp3SmDLW{uA8|21)Auo5AKtu-HO? z|NZAE4HQj83^#+w$-F>VB6MDg&~|8SPKF@}I_=YHa5s3C_dG-7RG8f0L@$ z(}%f``D%*>`@Ud%kW+tB)T~5xaC?|px7hIGAf|D$6xv+w_e4?^q)W|OX5E61(KCGB zHh)LRHfsL%+Sprdje*k#;ZpgEAEDdRT>Xaj9SfZO{GNXo1}9lWFC zBJf3UIXWueSTs~-EQ_}h`!GB>^JPx-uhmT$@a^8UTYR5u{WDE&POVpj*W5s2_3cNE z);sNY-@%f8)zL5fygv*J6hKS_8x?Q!F7alL?A?-M!ep6{hh~EzQzYl_F8bZ_LL61* zc@>WbS;-$0}B#enwQ^h5-Os2xf3cr>baa^{^WdoB=9cAG%7>F znNjc^EP7m2L2n)-C`Kc;wFoUMd{cg+@n(;QUk;F2*)$cSHh}YQY*EjvC;MHV8j8Mh zy|4c(wQ;BfwmJe+&90(9lMyYFdUO;95{A@i%g7Fk6=@A_B*QGHzdH&qX&Qwculn@N{A@xP&MW?HJ=-*gMD>XMa-qIf;x{D58g;9}&%%5IKmUOz@WI z8MFnu3(2U5w$7SYpdr7@Ge>HgafKo88B`a|x=MN?#=|}R8zy)iA*Kt^p0tHjvSvvb z4H_DD&8COBj1hXx7L~Wq1IF73P>2wZE~X;{F?vr`WLM@Sas|bFEmWRoR3?S+!MiyM z(OzjpJ!L=wJ+PL%?>10*^U&M(FqMIhQKva$DDAO~9QyPbK^V;tq?XJ)&N5x1+LN{1 zKVFs@@UlI*AB%o@S$;I=L>N}ZPO$-0-|yn^=&R~eo@Utbl0p(~-LKXan4DHNIA^W)S zYC@zxOo8w12o&8DL>BW2Td5q(_sM z*g;BK%s(}RVuaVHIG9Lsq;EpS8bk*!^w+fcFF1eYZH{yf^CbLSOpgSA?Hp%s6HC~< zy_1yc68SjN3Gz6O^@XtpRWR6VeASc1k!D_ck%^Gny~x^Y*0H?JG;NiXyAfMP-d;%b zIOaJp{~Piz9Xrj-oM~Ebw~8Y9mJ3_unVC_GC1+73eYxL+^VJJ})UlC339CkB#jUw2 zFcH9+2e%4tq8bN-k*YG&)PuHfgZ%?SapZjMk)l$NLKuCSC^^w+p}1TO_BIv>Q|rFw zI7a?Ui#Y5&NlF-$`!R?hd?h)cBmd&pG9ttROmeY@R9*~}tFBm)NB6hT28TrK-uvNV6Je?eo} z|K5Coo(8euKO3P$eVyNS(0I%S%r5zl`rq$C1V{TUGNjXh(ZM1?%8=;#*BSZ2@(!z+ z@#CiPdZhDO2PVyj_Q1wYjGX%>`!1Z&>Rq#FP`UJCKm!F48W9dRco)qv)b0K+Bp{$r z0&tgF7P3Q<|HOgW7?QVS6zDP2cGZ*)?rnOt<-wAX*%v@6NeD4+#)?!JzTPaXD7Vd; zL;PY^zM8*5LvF-A(kBF$uZor*;b}KLJ8F`d!^{hyTT*{dOg3*GBN{}=Fg#b5Ca%!jAKn`oI zsnC}xDwJ+1T$l|IkUP9u!$J#)&~=?ake+18~fm{8upsUUs0Q zIF6m08va)}4h~G`V!mJHuR=@*B!SQ{64L(-Mf@i~`SuAgowJsVl)nm58jytHr)HPx zzl}+v4w%kC#9iUP3K6LQtPQpB)&JLu4OmQ1MUX~qZ)}v5mGN6!S{6n{MHMhIGC~!- zyehB3p9c>Hc0W6DwDH}!6Urw%nwFew17HL80!JtJro>9h%R~1Q6B8q?iyg!it*q84 zd!jo?s5@t3SlB7ow@laF$bJ7}QUUiR4IV$kyLt2GQ5SFTC^~_Nf%oxNDZ||;EjznB zToM+k|LMXNT*y$6HfJ!0upDK|uksYXHDoZkweeNYmZ<7D<ja$KOsE1KAlfyQHRaew&2QWq>EL5OGQj^AyMW?>T2n^*Mn|E|A!JW{xWOm@o|aB+Wn~q( z+z7xhko>@#w=_Y~XiRo8c-;>tR?2svtjbEE#bU>WRtK^9;8%Y!rbtb+1qB-e zc{I$c@lxwe%9#^nchVg=^lapbpD*Gp&F|9le9OJgdO6LnR?mIP)lj}=t|@dgY39cV zI-$ko<%w%28ys*QLymTu2tup5sy28!+uOnOGRH_eTU)+r)*TDjc4MQI@OJgS4S;I2 zo`yleq#goFZx9U>6cihUZ8W&1vs%^UJE;;rTIF^rzRSWhg%MnptTE5iZ~hB|{ku*O z6xfls3Q<+jt1-el9TuM7!IXYFoTKg5Be)EjL*25F` zg{P+{G9IIev;F)-l3md?K*2Zi*f@fev*_My=CO<88CntcotRmjgoK1C_{ZLV2l>Y- zBG|!^Ra=gcm&wUg!T{`K3m|L_o&G1d*YMl~`M5t2}3_bC&~BTz`&g zj~%GV{uiLV-hvU4CqntA1vLODfhgO1sfQK&pZL$!T90s@U+>LZ#85`rT#=! zQ4tqY+}bStjgYGqn4KK2I}8-L^*r(}h#Ly#`6>u zV)?C+`=vnRVLQ5`5rCwX0Z^2~#n#9-^Z&~Vh#f_7fVdH>Ytr+;z#?ZW8Ap@Oy&(zo zT(u`gKuyP#5aS(6G*xsP`f>sDE;*gQF(Jv$)0Kqwx^tI=e!>3J``Q9zL;)DvA*ts? z_XOgDD;gYg{&&<pIoLgeOiUqOYr@19#O0# zqAhxn`@Y`9_ykgI{^c!6E2C#iA5C@L6p&0zk-}|1UZQ(qI#IYANjD2ToAG~y>PS&$ zH${PDeGH&`h87s9m{d&;IK=ema^lvc!I-4P@1z)sgYnufr3q(!_QHFXlT(+SxjY?g zVpNZRWGraECTlC&g3}okxQKHRv$lsa<*|KMFNqqb>p4v4x}PMoE-=huMbbgD>?N~t z+S7b-`HsstQ}3OZ%uIa6jPaRrRIO!(b*>w^-X>8ja@+S{%6!7&^3uH~{m?^o{dBqT zxT0S(nx-Xk=eX_zSCdyh)$q_6yc2QkWMAr5az0>YTRRHVe=WVLhhpJ|UVW-%K4$=* z8R)m-+_Yn0^xz6=mKf6-uSpK0LTAP&ml4J6Y9o+PSUsrZFXJcJ8V~yFQqblhTJ(U| z*6tFLq$kkAqdtJ?{UM4H1Js&1>Mz;5K@9kbc-!$3wl3B}kKK8~+k4-W?D2OgEhy)2 zBWwb1JPnS*#`1{*VbTy&H5H1Iq~d}ynzaByjZgJ1Q}rwfpsC7D<1h9~&9|@+L)&k4 z@NR4@h?|wdP8d5~hZx$k2IlUK`qLNDZJwx9;7n}`zc2kom2f@mV`CpnZH8km?q=gQb+{1Z`>`==vdVJd4>u>jey$%;ErRk~ zu5@_>;WNHlg%wYaGnVP1T4IN0BIH37L@Jby{r zRe}<$N)0XP<{X|L-f}Yt%ryIOeCmVk=_yB-kD6%u)>uf23!Q4IO1K&yJ+o)a)oMSg zw31oz>(TMl;)r)LR!?T92la~125n+5in+iS$-y9oXcoAGcZB3l#ueRgkWc+7Vj2T59KGjhOdq5{r!Vh*ld^jtFGi(gEZCLa_r>+`vHY~rMjtD zyH5(&M9v4#uV{4<)?4)~Yhm}LuVW>YC={O>M_rYk|3%o#0;85^gz&>Rq!_r>q( z@&&;zeFdo^6$w%hPSsrDPhE(ZPgYP=ly*=H3>;wYf00lz#KzNONxP+9tKMHjTVAQA z4~g2GC=VSoK%~yI^Y5JB*VH6U^gn_@?UF;}ws_4@>Fc***wp7etV4MAtCW;zpNm783vwh4W4+jE&H+^fo{?Xw6Hf!c{Dmso9~SEq!;Z8Cl?o6GM<@Klc6 zsma6feuOv7Oplu>m*NeN&o@@rJ^8M*vVJ-cD_P)MRkU{K7bWDDrGI>vvMQc)eArnz z<(<><q0Q}K$Tx~IF6err_k?nk!wJ(!xG z4~U;mi_Q8n{q==_|F}c-?WdCl1eq0RvxdXe$JhIt-N#?_e9I!i!8>p;K-1t)91X8K6g{=D@Z6k8jRQ4{Z2yt z3a)D*(BmgpXCs@{`#reo%5HvHv$E(xabzwu@TQYAL1!}$Nim06i7=vud&!FRcOhs!>5*Y{7#J9Hyvt6ak(m060&%W>tJmP& z{Jp`>uEJ~FQL1*^v)9{ZYw}A2bORpUUunNRU6YQN<}n|x7J6N?$SD03#6ALlx{K?* z(}1<N$70K~7PrdFep=*wAinlSn-vv&{~FJQB~Lnaa<=ZLpmaMbmEdj*tBM|Kc$E17 zTf=9@d{ObIwdY&KGe5rHX-kU*N4+;VGh&@LnjRyatX}oCbtFKWoO2YmcXM}r+?yoq z6P8s~&AU}o+O%MMYTjdQw|`+LQGPbF*idotK{GmI>9pkR%OXkZXw|y+i21SDp|Rtw z?fRS3<;DVcvpP?<&%|xkj|#t3evPtWEB(+Rr+A>hEcmD!cYS4&w`NOoQ1WJ`mwSk9 z<+^9mg&DzPv3v(GrqCF{p;Zw3Kmop$wMFSg@7Devi?)>}Qd!imlIf#+ILn3E%CNhU zQ4!NAPfYXf*L%sl9_ylCJL6(zBPN)9nVR3lRmxd^`c&*H?%DNS&oPeEYrmrwpSIC0 z|6`kiyrR?Y(7I3M18?VSTaO*VPL-Y#&*EiWFP*ES-c|PaJYEkp>2ouP*vx%TM&vP2 z2D52G;+1*sfA6abjksO22ra0Nd5u_HjWsO;>)-a^{y6e|^XdIi(dHYk6484o_%E~Jo`ffD)pACBnk3Jn-8>ieH`ab3MDZSO{bHr4w`!>pzt;JpT z`kiBp2LH=FelnQQV~+abw?lR2V02q9Mi-3Hecv#menD)A;~@h{71|D+K?zgE9d^(2 zFFzLUgsn53INr1CV{)54Ok8Puf8rJ?zHQ$+>mtq3@Vp3g2dw>(kr4}>R2q+=FsrCx zT)~HZzsE~aMY&LLKVIj-T6q4#8|T#5l<&8CX5uB+u$bK3zMLBeAH@o!S+hJStKHjs zeF0WbgS~T*_nvARbj%mEDicfS&5xUDib@M zFEaQ8)7{5ey_hdo)P`$$bg-IUQIRGX<#t7m>!2mQ!+idPW#vvn1;hxwiCJssM!mFu zyr>BN%Jb*MHHu_>z1SPndzV5<;dAMx}C0iH0cY3vh!7B?!q_$q34yQ{F*h z7~kHDgnkOW$&mjso$Sksx~9I!PI8!WAc0-mV5m@QDGiagz7I=Z$q-y5hoaDZxKH)S})~o29k7E_Dn}gWTF+HzrKCD9X-eMtLYu?tr zHc!=0=tk(S&z!4dY=bJ=-Nk!)6*^R?KXoQ}X&N1TbEk%!_JwcyRTcJVUMaZePQ7Sb ze_PrgDqm^g`o47dv#^h4R&hr6(C}=av}e=(i7AhEtBJME(`S!38Q3~sCB4ca$wwo* z5xC;ebs}U3cID-%>SBb4ZHrtA{upyTSP!K+7akAgTv0U9a<934jv1+V$4@?gd0Ebx zXV=%~2{CWn7s)L}9fe9t3$})WRunt=?9$;t=4|WSvcZGfx&qz_neS5sG+3Z>`UNiA z_gd>WZZWZ(C|O>@bJO&l_7o0%!sgQkRrSH7nDs*$b^vTc#r`E~4!8=aAwHICc zkNK8;bUlYp<6;{5h-+%aZqQ}j%1`x_@%t!DmKT0U@(JJjt+A|&Ws)VbTsA+mqP7=1 z&Q*{z3)LCx>R83AYVqpheM+~^&vj9`h$s5`b}fP}ZjW^0a^F-oPk;Hr>HEkhW?S;M zZ|zDr%tEz;3v4vX3NLy#5>#J7Ot~T{Wg>9{wo4vFV;{QJDs1;wh@5)uB6 z#_T_!L!0=eBLF%)_3-?jxET7WzVL1o74|#^95-eafEr7_I4{?x=ZKE0|K_&bnfxczdPj-hW`+IZZQM!v_^K5IBy1cRUgh9pSXf zA|AQFQXn?+c=a%QXgT&&FuV-rSDBk!QvV>?x_)-K?y1Ihf-CiiXnAcECF@6$Udl6a zmhb7Dz;>KP)!=bB-T`t>*1vNZzuxuFr%*^n>%>z6l6nhjJZp#a(`z?p)z`VkJh@rd)GmP=9R>N!lf>s*TNQhFW z@~p1PHJl)43b&!035y7|kZ!F;6~`3YD0n$xOCJ<=Q?Kp5TyIqD>@o90@{n#TpI-K-p!RW*wd)((7e@XfWe+}T3@|Oq?!(hU@sX0%BeVF@P zbKGN)J;}E{$eWUCHyvM@ivnbiaaGl{0H4i5IIOK%s;czv(uG*Y#oxCO(%lHGgplJF42LE)g+UYsN0w#U}&nu_UZQx^KM_9oO;qLGYhOA^I!W4g9q?`uyNrIV52?lii!4s!FUMK15Usjx9mUd z!6F}S6-p4cT4nE|MDlTQY24P-eQlq;Ye@K;RolEj@zA%uOmn03f<~+G zhx}__`zCnK^vBqoeQg@6^;?f6cC@f*gae=vbnSfKgwGzHD0#FlqzTrmzl*>Ow_7nc zIf>+7<)S*_z?BuNMoowHisCVUAPc4=$YH4{kbud~GgL^;(#y2ddCL54YpC-S46-#lX_R;`MH&1qsFUH zYsK6Td0jes!7H%o#yN`Yyq%VoFt;@JS6K|vr#DV=a4x@w!WqA4y@Pae_Cb0TA3P^h$jN;fuiJA|ZXCREG zYc_F6kdmfp-Fg1;^EI$p&qfdMUv30EEc+K}?Mp$Cq)fn|S7KOgl&ZqTP!`Kc-yDSy zK{}(p9}CmXG^K`oPgh>=|LGkg%F}`)56^PqsNl{D4n0kDeXH54??>eSY~> zdDS{rYMQPga-&L@Ag}XWutki#OyF`C^G0zRvpSVn{87~~8DDJfR zKwIavH(=bvDl(ek&B6M+0+XhdV_QS@2QLNV7AAI_4BF8r-Z1kh-CgAg`tXeETlrgdmTS+I z@d~J|-5=v%kNGX3dJ6_Z5q$9U3Puw;9nK`QMFrL)mEg@5!%tHx%EzR+{!NMI2qmgi zj6p`%y13MPM~>MWvP(!D{<8i_xZb?~RZ8-!bzV`E(ctP;e!=YakFUB)EXPP}AIQB_ zK9YF;&6ye04+|H-{jDQJ$8`a33Ge;(iOmcBI)R0LT$kA^3f0VlM>1FTlQ4n5}@8<^|u>UDC*0V9yJA}C% zYZ;t05k=>|xc|tgJ2pkED_s!e#Br>J8%o*X`$;A!c9^8Tu%TmJ6r9nfYhf?_*n*%5 z23>p6^8)i&0)|9upnNSFCFNz6XZmqjD-KS=%d8bg5c}pk4Mdhp?8XUUcy-Cf?2?1R zt*ov;bO)jrqYjA@>pXwVBqJV03cXl%@H~=mNqOjKu_2x#%QU-`TA|=sVw0G$OtGtn zO^6tYKG;$_uBqhpRu}lNdVOTDc+FwRGL@E}diZ(Tev=*9Jb@U7@ zTrJ;z<9W;~f3JIojYXYv$lQmuBN1vA_$E>GtCJ73+2zVxZg>$Ua>H~nc$Fzc`}fT1 zjc;NH{?27AoVzR&Y;mgVkGbQn_5Mn*t*9y$RP~7mXLqf9z@Kvl4cBRD9ElHWuFR4?+8_(`Xp#F1jr_#&CtRT9$MC;l9YJoo0Dj5V@@*L zaLl8nVx_@xZP|Sr%elw8FYa_cc=+~@zsDNl>9#xa~oAFGKXas@x z+GAeZit#qjojD25^U8`i?qJ-?n>07&5^^ak$G8eYWSTf7nwpZ1Hhzt;O;nZioO{1i zmSvFAd)sl8v=W6I?w;7)m2kU}NyF{e1Q23?7lqPp=IH!p=)Yn1Z|@r%HuBp=i4I+l z8ttsj%VTrg4w18lsWfpDy<_!@Q$AQ_?oIP4!^Kt)ydz!KrVsx1@a%T1B~8+=JOrq< z&n{l`%RG@CKUpHzM<9e2E=1{HGKQ>tDrEGmYlb}P+oo<-<>t(NiXEgWlRLIrIS_!1 zt$r~q3)>jvNP3Kz2$j7tzEMri&*vPd+`&<#ktRy7kQl>5pI-V)A<0w$BWZao@zFj1 zk=}ljd)pMMaKqc7EvQz+dFAHBlfpKI&qumdxP*C#U?;}2!5H#YPq&_pAvd>vG~Gn; z5wm5Lvc=%{-!xV9es@%~-U2kRP`dQc{#V`?MifAr_N=I|W{jU|%+TBVnXTWUWcCg$ z`gyK0%}(KPqOYr!4yjD(g}K4bqU ztt2$R_DYjp>{Y*}5^0F$0e5+W<$d6Rizk*Xqo)|;%^NeG_ZhwHn<%-Jp3Ta}3Lt1^ zCT1Nkh0jZ03J`SG@49=^Y!#o8R*t^dbcEiHXol7*Yw-Ou;DGzrTm)8I=uO36Hr2|D zDueVbWzt+z*A#nH)PF?d*=?2dIk(|su8k`^boj_kQC_KVGDjp$*(jXT$59X}O--Or%V5QG>IgC8~Lx!j%TG-Hvcfe?3`iLctP9+7uCL7}Z!rw$*e=rb*h$(wG{PgsG%Z4eStjA4Q>Ieohxp2$R%{!D-v^`jm?>7-?pI{qb$cEKv}-GJi+tZbq>JKXs#8N&!=Sc zcv|dp$v?`JfB>s1Op+lh?AJ0QbVp0kM@8PdU0SZCsH><&n{%sBbm-jHyTwk}!6lmS z_K;IdCL^=%2Q2R{c~jtORPXHX?TMV`HcP-x5tsWZ}r>5GOxFH=ebKt%EubccqTLoJM}qd zEQJZ|_vT2HhgZL8GM^*DWypw%2J{}cr&&7h8oeoC1Vf6QSUSDwdhP^taQ(Vl8=!!` z+&?@3hXK%ziNIPa#BcJL%=^p1L*a2X!`PwF=W`^SVjA!8UN(eEFOn)1M|{XTuw-W$ ze-;jT-ClCAs6osAat%%9T`=;s9k%K3+hqg+QJ}vcpFQN)(rtbvVXGMQkZ(jgBLe4P zH(yzmQ#5rB5CxtO4fkoSqDeo?%zQs_gO>SaLZa>KJ@e7(Ky7}(;`Vao5{+Xgc?G3N z)2W9RzxS5`wSenfNqTLU0}HdSWdTliayc{v=@|MkNL8`oRHqX{j(-_}CJP=6zCXzQ!Pr`k!Hsq>tgYUkY8 z8)WBd;iR-UFOA8?M2uFOL-_mAMN*d?p?f?|oNb~Md*7Uc$eO}#%8>ubSYiC-$@s6fvJ1^)T%IPcF# z-Zn_1Y{!@BS-C9(4~l^{yqR%b-5loCx88{NI%ZC1Y_}qK{)Ch;g6n%(-ip=u9a6M2k9^?gP_oYK0j)aBRo0Qc^AGsshRFEo^#hD_)`uwTLsU!Y93`a`b!-#`a64Md?skz1SFe`&ogt@*&W{V3M9 zlt0avo||p#gNlwtysG#NSDIIRi-`T(%Aw=3-y`zB*v)tw?R^Nc5AW76`Lt>Gm{(u;)UVx{*d1=x7WP?qx0 z&%e{iCVGTj3$mw2#oErU4CpPkwzVyN|Nec!`;Q+(S1T*OnTWTQmXrkZofDIgZ~~3& z9BgbCy|mNQ(=R}_0IUTtMrW&2Rr5RZ`Mw|JfVeKdU}U> z{HRW0+ok()+NRo+;kpAssLb)>c7@KuVrF>x*eUPkc)~K)OGC!IERjEOR;yTmBO8B7 zX{olJUdj~EDph9MNvd0H_M8(aruB$l`J8W2|QIfCZMYF1XfJB{gVp)d-uYJhKI*D#)@s{8bgle z2>eFB_omrvYirMy0DV*wwZ7g0WhEtpKp&u#=Lgj^JNHS)(C#q?zhn z;<|3{W>ZIx&m}gM6`K_EmGEm-;m(J6ezT2(Z$CaUOL{5XQuKAJ5hT4cw46yU~IMfCmQ+Mz$x-wZCLI z0;<#6Zf<4Q-JTvSvzdLOa}EA?Ky3h}t{b09fKY@~0P{YoJ;q+Dh^NyviLRmt5CT<4 z2&?4hygd939u#g2sRVUQw!T@{X{(YVJI*P7gaDN80w+s z(ET4AyCb0gtns?%2qrZ;@37yIYazY zvPjD1$7W+}~g>^dH()t}^QunS|>(ck>yBwOx0rUY>84Uz{I@TK6XMb+U&3 zCO|@D{Mk5leKfX69Ib%X>HDe;VV31k80-w`8gvPsk|A=Nc2@4pv552g!c(ZDK`!X*odQSbTf zgYvqkAkeX39)mKIYcc12ZFdMEFkuov-?LCJ-E@pb)(o|j94@M3`bcWium4S@&5(^V7f5Ce^;j);xpjj?a$*1gw+ z&&y_``gXs$5HcH}>zS?=y^wTA3ue|7h=Cgj?c>b=n7Omm4LM|CH$m#|Yt>PjeduA&U8D)Q1-jI~*azlO4u1aGPYH!db z@iZ!`A?V6`t>^E)am`-i=|cu`lR zk1pR5RnoFF^Y@!wg=lHhJbe9WsB5liKsT@!7PX!xjx^UdLIKwoXJM3mCYuO%^z zld{(|nDOf_1El6ba(JLIAtsruZruO{=1D5+_Wsk$8|t`Xp8OX>o0AeI^_pL z&C#!*LWQL^@fS-w%o7FfxqRhL;_g~eX1e?mX!xk*~7*rb< zlBe3AaF5632aO9x#BR3TkN%`L|05@|7B0flCRMeQvV8eLpTn`HmsPm8V{4NqE;Y7# zz4cW4tGl>Yty+8q(^lq+XQTO6X~ok=2EE52Gw^Yyo|)GbQ+FA(^#K}vAEN`qHzS@T z(4CW^M^9|CHFI$aDN?=GvJf)!KoPW%n*@WKG%UMMbXO{x41^>jXkY1UG^gS5ag+z& zq>6v}(s2@OAdVYuy`QlEi!@kgp5{Bu${>#DkKYH{Sa^|cliu4k4YwHbnh;PsDW8ZG zVRxi|;*-n0`17}f(cO@*Y@D2U$KO{si9NIE_`o)pgE?#IoI=`|E_dSQpFGhJG?ij)OrNz zMu$M8IzruPw$kIY*g?}A z(OaHkJU2wwz|R)k{i@@%jikjnd!-Y}**sVg@6q6xAMzHF=9*xA{O~l1E{w?L>1NEQ zpXeDv;yc@S?(&(^$zBr!384&K}Dv3;f!X-f4@~mZW+_)Jw%3$FL&@p|m7IetAI0O4$L8DxO zF6V`&qIZ?8hRV7-RqYqD-fABO{EoBG>%I;~ctsP_AH|B3k#qzl7p5S zuWE;TG;Wh`KOVdV5GU4nG}B`Hg|`XqM|hul9Gf%MwHO0p=XK@~xpi8*pR*{+TV&aD zf|r2?Ndz_xPu0>L1{m6LZ!}QZe_4t{;4#5NSkpw>@7PaMq1|=rdUo^H^b1Nf3^Wi9 z+Y`6QE8r&~#({LJF&Zidu{=9irJH4-M_JyH6>?cogQhktuY?B1tJCCxLaA2hypP7r zvF-=cs@A?`^g>^etOK$cX+bZQA#(g@4So)brlhKPYdZl1J}}J8t*Wr=?)e}z-;2YM zIywi78S}^I;N!dv;EM*Q0n#oFO%iqSK@r;3Qg zysE9r|3lVWKt&m?;ljjFQUj=TBcReCoq~YUqDVV5(nvQ$4h@2YAYlLo4FgDbN=SE0 zclX_+o^$Sh|Fu}IB@1!B{q1=7Q?K@osEcT$LDJ-;8H4KX>C+xJqFZgbBIy>`hWw@Y z=n;65`s(UD-}e~VH*zIm6ZekBhu=gcPX3lbi1A;ftCTp$v^i{UbbW6RRqF0ehe=v= zBaX$HI`?fF{O42L&Ns`6ztMeM`gDB~bB$YPV(+`3Dm%#u z1S0e%z=TKn`F-hEBNuci6|&+i?zD=~vg#piihz%CW_mZ;tvOF5Iw{Fw36#m?TlWK& z+D>cs+&{ODg*vhcW`<|6Ds&1Hn;0IAM&D=WrG(zzc~+mfyhLmSPtq5sR1~K{)mD8A z9g@*=p#-*-Z|i32e6-%<2>$AL=k zG?rd!-23-<#RysCo0NO(vVLE3bJ-~r202No*>P&raOnsxVYF>Q?txxnThB^|K&`W& z9kpPV?eofM>(&-#bFMIJB%!#ECG}c~X~!Fe(v~8wgp_S@yoInIax%J2trV9E+_sDP zz1ufKY-y$%PibY{KW~&`)xCAR+S;d?cY8NuS$izb|A8_b+skVRDX9IPn>)d#NcN{f zp5V9EU#u3|=1-$L@~;8dtXyejM)f7;{Z$C%t!X^<=2 z>zw}9`}pI`5+ge09h?DH=cjVp4;<~u<;b?mM4Wy@ND#+a!r3d}4DkCde&2)KT-Y%! z<1NL?1-2&nH20}W^m+;DTvD;g{pL%ZFrU_vH*RPf#TA}C&Aa7RpE||!o3ZVl88WD! z8+z}y%!b6w#W*&*J~OYTJTcyT1E2MW*8lu@m6PEs>ac82=jqOx>G_&~Tid&G^~-#N zFEEBst(^mD7R6rE=QMKP*57kw^#bqQX?GSP-KFUe=+(}9%%K(j6f!A7z~Owm^OlGF zj>+gtCgQ}curqbTeDWGOml^t`-fD410>)Z(g>3dHr}?>7e4Jyn%|-%tN9AhBQ}WvT zgP}>zwf7xWysuBv8Lzr`ll0bZwgthXcbo0;xakK!FWbw~tUWpIpvq>$(wbAc8I|Qru#Gk_#=<;AC2E8>3W(hHSIZ3$ORdw8s22m-q7N)_!_3 z7|#@8*7Q4r!N)S`aj5-kn{S(E&@8j3uz%dV`h`4g@ z3ar2j4PE}+#2)hb2Lv9{7t+)Wk^`zjtC-NyKlx>No)| zm}cxqX9CZgT_ruD-+FJyga|U+%*^J+j-u1^#QWfHxY0zLQZz{u7=V~{*s5H{CdN9- z(&z6R;G|d&wHclwuJ|>v=wdc_Ah`T zR@ejO;F`suwZ}+AT^IwiLqnTjq;@`1XZ6Ub^Ll5%w&mr4TlLqsn`{(zPRDDRIG(lJp|u4Q}KE z49JFFji<|scUZ}&bm$21LXn9U^4KhhZZQ0)TVXf{*E-UW0HeaT2P96c#e`6*d2s@P zeA~>|F)A3lm(M9uH?wsA1HU?AsBCf~^G!=^#fqnpN!x|nu?g>tlDezgvzJxN zB62dUAFX;Y;(iJWSy(wRiX_QgPOH#t7DqS{i-vHx7+G@P?QzMva9{2b`Td!C`9~jP z81&}n3a>P|!#-U|4+=xJ_<`l@^AECGk@rW7Z8pz6PGPmuU9%~`ClH&8H(KsD*edCJ zb(bzQi|1qe@0;Dou}Xd$)hz)f)z~h3p`bHiY`oc@P>Yz5+{Zla3mfRrA!c2Zgf_?U z_S}o95tF&AHA8xz+wgvrDcRBz>+OH&rf3pNOIu`kHkB7_B*VsS$@ji%LC7%jb`mA2 z&G@GlL2ke78n<0N+lTV$pMUHyWXY6A|97rhf}9T{0c3dRKl#!YZmA0rNC2Kr7?g3l z^HsZ=ral*VrW=71nzja~w^;gFT9T7)7B7Le7!-NIGa&aNKsvhWT<+FC{19FN0DEXs z;?sYo_f{7455LOYZ9;w|dQRw8wiybays7ba4|FL-2C2uSP*w{1HDc&VY>HQzj_)z> zMLvdp{U3v$jKa;8ALQI){>vhY2kk_hJY+aV1l>gXnE(Y#$Rfoo5a#dCMzqipJ@24j+yPZ z2iZt%6_dQrIiK`uas1Ps3y-i`s3Bj~-u$$zE&p^p*(CGE|L|Y~fCsnQO?)-~y9_@j zpz*5?A_a9FRl;m1%Vuu8dCmENt%Z~{-d3w$Jm#lEw1Ln%M(Wxw<(r#HMhVCd;dlOl z_e_2C;A36(_t$DD`G5IHvE2PPkkFAyeY1#?Xe4pW=-5(t++pxL=g?D4eh#UedMy=0 zqx~DpC#8uc9NZ7ONH5D(|F5g!ydu!j(CDd{{e2^dJLtv&G>5M^-Jai?$ofJ0?Nu(a zF*+m!f;;h0GwbgT*dq?ll~sNJ+M<@T)eDbBF!EST`VgR- zEAeP_0#BHDo-k2cTOARuoMdf8b*K??x<>SyM7a<>T4){`vX$ilf-)LN9cTjo+C4807)lXh4FN zHUeMEk?sF*b0(hKC=M4tFIV(mu9FqUA=p^P)$QDDFYLb^3KPD!{h1j5Zc~<(b>j1Y zRz+VdTb9wY^2{55WFn}y_5b?2>lyHzPx|me)Wj>+A5Ul$jjXMAao!Ob;@i*G)2-Es zyH1+DP5|I%D-QgHp-0OWaJE2aJ@*znT)`~}V12H+;uAtPqfkjd5b0DpVOM24s(x10 zQ^+6H5XRiWgFW<|Tv%0dfa$Qw<_^nSW zh2aVJx)fC-tcRZ2kq9qAaP3B>r|p1|YR&EF%coB)N{=7!>KFjMoX|)p`<-#is7lS} z&&|}NE=ygUoksy&DtpNkiwm(H{*HH^|6}c|<$mGtr9n76k6tZyL95-|LB#A;kqLcLK!ISq8z(?xdTl_xz z@%7)n5vha0ooHK~NqDc(m5^}h6bORjg;OjnR0Zt++eh+Dz z3NYc(<}fl8RP74VFCc26wNAt7=@1xYn5cVrJry%u5!?qM<$m+~%ev{K?HT&&8!*(x z>9~6>;X;KH7{ke$vB!UW`EnO=W0F}z7aV<-ew~ra2!JHkrvQ)sT=(9{(BIYBN`Y>k zo@;MiO0HBse#Bg$^SDJ)N$F>Cb>u^@fsF`T`6JV=4MmObA-uy|Uwgi=`Ohg8xGajQ z*?Y^%2G(5cb!k0)YFy>E4RBwemW930cWiMif-~ZCRLqt{M-Et4Jo5DP#iUOYmpz;5c&8zj{CG|D;-LdOW#&RUmKTP zZ!rp75tJiSKU~%ww}2Hs%b-1G;WmdhH2ThVZq$#L7MaEU$f-~>2dRW88-eTO>hq0PgNq9=u4~$Tn0GkoWWDC}r- zy7ZN1F6M~wNjnN*UZB5rub2+PBMWf~BkSqt?JWnEwg`D&ip@g#Q4xn(e;gRED5PcGw#gxXw+|&-$!c{kC@3HfVe*I# zkBA6l49ikh6Kxf0lbgm$>zx5vH6LuJt3_yfk?i)yDzG3YTjR%Rk)!o4xSs7UP@!CM ziH(EbnyUHxAQ>&#+T^=}i*O2ckS9#Pi7GBM2p;1fSSTH?UGm=0XOszBUG?@!aZEMT z4|*R_DeVKr*?A}}@Sz$PcaV@9V?1(S1ZNi`%l}NCj%e|5IP%d4(g|FL4k&R?0~zxZ zeKHx#%;JU^Pv+Z<&ol(9&Dp7sF-Dk(B{hjU+usHMC`lZJYK-VYx>*EQxc(z}BVq9G zD=a_`(oO9KZRU^K(q0{>;YHZ)CX{Sme6g4q?EXMf5nc>_dPNm2Fdhw#Af%Wo`5$Iyv_=OKHwdtPsy07X_{5(tWybKE^rXnO(dK2giBDuZi@MUAsZ*_GAyKK(dd_9nJZ5jqje%W4@Y?vIk}E1STfx~uiN zkYpl?BZ8t#TWx+!oTcjPt8-cP#}GKT&#Dqgqx4kgCf%SQastN!WH?RAq9<+kCx%x( zNz1Z!nbq5x!#w*3!uWA>5jPZc;5Seq9d1*~S& zclJv;a;r$n+mWcc666wOlBdwEvt@Ym9b7Q;&3;wu71-K1sCOdRI-n@>p5dxod;{B< z50)+v$v>rtKoJ&x3JVt>w^?hBQBj|qFKflqB0@16FSZep)76f@$-ZsXv-t+yP zV)3v*NM1-{LI3_9l)^@ZM2zSAZngAirYZrW5iZW*qUb?|Nwd^WJ?5Nt2oyFMwh=b?V<(JsJr-zB{_(DG7-0h);zWGhA1TSxQqTvI13R)vJ zQ*#IF9t?p!32Q7PqL-uzBJO;6$uvBOPnU2@1|y$<8crENu<1YRe~h_wM{OJ*9nlN9 zh$MAcNH*(A4Bi*vev%Mq{m2lysG#S>ncuHBpWd)X5Wq|e7Y{BV0(n^-vorhC2@mN*mS8kYdML>WMYQ;#hNcW0$DhF)LrwQ&Wca9$d2Up8l&7?>fnJ{UYsZ2;r5?p%a>_uDej4(M8JjBGnY+&Y9<~`ueuH*`{HYz1b za1*Y`xQ0Gr+GSW9vtUtiaGm@=qU~rRlcD=K0&XoQ%x9>oD$aZ~2>M<})FgCj{ZT2w@ zmop(^50#>phSEE;wW(SB!^ZeAer|GVP3YQteGAVkMRvdQW(}_fa>D+kM_5jrVl7?< zWFg0U;yvnLe=zZ|fG6Hx?j=r#Oko}$zQtq0ltt$`;T7O*=50SsHG)#KX*624^vQ8h zC^EpLPUV}hd0Kb9XQ^;0C`$Fko*>X8m)jKS*|%3{hAB=cE)(z;($_W2^GWbnAi6XMh z$)8K_Xk&Cf;)E(Isg{>#xWxbLNwq6+VoQx#lvuT9#{>s#JO~)3y6M!N5q5HYbzDdM z0nIO7X!;fafax~@S#wSeiH2J#R_-R&OPjZ2c<}DGf^hgDbz*`Q5JZ1XgbhyJ27al% zxR@ZYQ!GjRI-f(ZH#|$|cm9w-w(SoJkdgE~hIe4F(z=b&EyRhSccBpMcww$R*c^Y; zGYV`V3K@YA$4+Noe9FVs3gh8TE}lDm4H5`Lq!TBlP*4V&0vM5w-GQ;c``bd0w2}e< z*@i|#-l%L170v{Qu-@-}XUTuVeC$nQ<<^)wLzYq6B>q=(aa^8#^pLH+rLMqp$)S}KzA`qpzsEz|$p3q+3%YWNEkmLo(2qJ|hrpHOW zT3SLb-=0tTWesHiRw;4H&M)*h9pLPepg~1$>_WgP@KiOX|`2un;uBAU^r zk+ymuh6@8G<%lz!Z$Mp5BWOE*GlY4z2wM4znH~1sRqaA05k_C-BT+hDd0WMRwFPsglRj`Ra zkwb?xzr{BsnL#j?UGL?{s_)OOj4vf8Cur)Iu73h_7xj(K)*9c_D`m{w*MSMMb7I>FB01D@=D)%@R z_qtDQi{;kYR)m^31pq|a5ykiUPdX(TuCudig@Ww+&F_=eQqv9@&xaB{l|$t81TOWf zjDKUfo*wLT@SippHL{t0A_TucmdPLLkApFdOR?7Dn zA8|@h;cz90{z4?Sq8`if-rI__vrgA};b2T*K|zWI_l~yP+#E(iiW{V)56^3(1C9QmNA=jtcX_iMv){khou_acgtEDC^Dywm3blQr zS(NnwLB3r26+55W7<+5OOdR5)U=Nwpv@^aWL6#cC(1_yz1vHRE7QNVpPl6%u9jy$x zsy_Xldii3}@k6ukV%JyZt|abbk0$hKnJH#U>_$9~{+=97K}dM5Swwe<{TMshp&X3q z@N&xUi=P}r2tYUybFDA_K{aP=eGAp(<6fe+YL_w-nr`)0x?eeau>6#jl%2k*Di?l; zjN@W3wYpAOc>%V&5~g}WCLyPajtpBSVq<}WB#;^yeV*cupYvpL7F%sl4Y?T>KoCtY zbrqDFp*V;uxQH$M)E~E2YD`S1hE1#|>NpG@Ha%`%wf=9xstww?Fb?;k4gJ;Y&jvvd13TU6L&y@ljOT+} zB}e(LN~&EY>ud#ucPl?9zFSF5aZ)0)-FV0V#WY_qs^T0xkVmwDqq0(da9ms9-3seAZgW`7mFP)Up> z&Id<0%R_~8eY)g1S)CkQ9j!~z5AmT&)e zOXGdyZ^q^JAYqKFynCrqFR zYX(~FKT`jW4Q>!z+Cr`TLFFB;mm)hz+b`2b zwzMjVDT(%XdOpsDzX{fgeaDb&ECED zMMO?>eQ0djyk5K*(a?JTbskk^lq71#p+StF+GNJtfF3jobRNxu_R}`@)w>}o z??s1hbLm^6a_yFW|E7}=8$GIrVhSDyl{NlL$C z277;p{dj4|(dNW*jN4*6i8bghwY$(Zfl^u{C+tc_zL(b^Bp+vFKGm8zB}U1KBX zcew5dq)95-0<}8N4y2I0pzg}kKGfCOIqd+grKRNvmC7t1L$|rv|Lz^tM2%Ou1ULtg zF6&zMZpOXEw1R9$i$E*Q$<5sxL4xW5^pXCued5Pum!JeMTDdDGoKuyzb59pAgx z6+YF0`G8Iz3&|$P<$CvM5um%(qxDVYO`*gSAlT{xlZ!5Ujs#v4c^MJai78S|qlmbT zOSt$`&|MIQso?qegzzv1wM2w5+NNoVomiY(aS69;j?}7i_nQV?Ojsd`5a-di zZ{HrNT_31jh0w=@tmjwtY#%q`bB|8g*P+yp#l7CY`3)PemBK_ewSZ#7LhJ`RV zXiU}xBvUgdsx%}R#5mZoiHWzpKq0#U;%T#HZohR0c^rn`(ywa4i?acdwn*ca8LVUa zf%a4!OL3a}oSbFW1vOd^n>?)i%lRW>JY$&pc#7i zx{VgN3+(hf!_J-}Re$5Qp(JkV;SlVGiKm7`m%ck2Zd=Ia(RRc_Y@=_ZySErz6OjWM z@Wf0_{BkQH%s&A^BhIjpMI*>-HtY3AS&oa_oG>b#6UG;rR1Xqpy_dtkdKJq>VokQM z?5rZfKJNf<#NN<9Gq7gyjgn0YKG7+;-!6Hr=2j{(tt2nSO70k45ynyqdcbQ2?bsdv zOegut%zq%Xc6J4;Iy)mV4?;oO*G zW4r~a%5*5c)AHC-SmMq26G%v+w24=Y?N^(UsI8&C9xHrVz4Q_Z(TB268gWx~VvYH4 zyy4`2(11_87`lnr?1=K&DGZa29F1>QlD=85da+)2Wo^%F9KY9hgB#L}>uV8?Ilx`$ z_t+-JjZ^b3lsF)nXwk1Y$O6mEXpP5_*3jqhIXw-n2YhXCJjm zmcm3aZlB3?-t=`ES#{@f=-c8b^Qr=d3_2B#U2*&eaG!7E#Y?B1DzH8-^7>FS&L$X+OLNSuhH4OE1dz z55Drf=cN_T@E{Jt5%u1)n2@$XTu6+jyX_h4O`j_*4!Mb4vHD?i8!C6;nxF*thjX`v zJs}$+y%;2SyEh+-sgw6e^tfC}4tY@VAX?qzBuKXhgPo$Rd2GUp2UycgN{N>#E}xH* zF6C^%N1qtvPON?!&L79AR%bS)>fWyUvy4~gv!G;I`;#|&d3lEmN0RR^ zu#HnQ4OZe;dr!`t*ZHAs^zGu7WNXsYgrSltqL59}-;ycCI3{;|>ZQ|OjBMzPbRw&awn`p<0n)Ssg4hj7EGk+ujpMLaT2?u{X9nW*X-S zKL*IEQ=RW??d2hog#eEbP{!>Qz4tH5~!_1pDsb z(PSveUloWmiB7bWAn&9Y+I)h(O|E4=B{=3!^`E>MF43m5ngEy zu~GTusF~Z$oh|R9I@?9Hh;Q-%@6`CnvIS@qRY-Zi(qnO4WJJJqL;Jcfm~C}Zo#^?! zPQ}s*^2M>*an+_S#_xEiqWvCxksVJ;i^jMNAI`Jw)+OJI$lb}a_vykX+%c?h$dY0s z!Pl0U2O+67FIys!W^V=TF4XRX4=l^EWW8lEa?pt5ndYT=ZC;m_Mu#9)t(X) zkM!|HC;j=R8`qfJD4XYn05kdosraofd=3%+eqTohO}(oztCbt1C1VSQs1`(-eJ7>GyC& zeeLuEsQo1OnTiNKcIhVjcBoI^v{So?L8(WNo`H~J95vGblQ;C-T+e**qnC(DKlrhW zxnyz;@^2W+_8|xF?s?;B#Gicl#Wfi0I;a2Hppiomf=LC|pEXxSV$+}?1(!^!y6;-! zjFD2BX4=by3`x$D$(ItIlaea5oLbwEkiGF6Ziagaxoy8lH97NyT1cz(cS`bI*H^gX z_Yd^?{4}`75uUpukzv+BqC8r=AGnNEO9>A%RgLKH-<5L7QpN1&T5LNM8eFytsAB6? zaU3ujm^_?3>>%_U?WvNsX?Jva?4)^DKeGKJ9(7cz`@B!TuebbSLsjB4ZS9p{oL1Ix zNS0Kg=IMLEwF#|@pQrWqaN7tKfZ#E_wz-$B0MTSa?E3pl7ao9s`Rj+@&0j`$?G}cP zrSHArUdBCTe@}}}fqmIKreCtrd!ksU>=int`g@Yt(5H8~g!y|7b}GuffcQB3tK(PJ z>!Lk@C^xRfdVdQy(KRxOyPr(5_s#uhUlH@ttNVA5A12=kQY4^*c$*I49nBfff3X6_ z%j@piiqDQk{aG0{UsN*2GOmrb=!#g_*_Q4U5s+fG0tZ?3e7E$iRyk>v6Ahs?RN^#` z)`DfqEBhX-MB_V_mNTou3PO>4#ND?ZMYXBR2sG5}$&EZpc(Gu)o6LF$no*vxJ%%KF zRy9&~PwTUHOz-#O&_j0PXB&OPztrZ*I01T)LwNgH)zRwV_|!p|#c_V|Rw7rIb!S;~ z&@&~qj^cGzpYh_UdpGam(c`zuHUwNn@CLgY5ee-22c#mh*n2B!;;$mseG8nb%*EFW z3_t>TU>UawfyojOkFV5F1;Tm)T`u6FM2D~;^!#f$)%_x+Ld_6eMO6p4rOLZ@m2Hc2 zMy(%sMgYv1a~^HnUGzRbH&Y4 z7Ws%{_VVS`(#s3Nd&`op_XXKxe(h?X3}jrHf^@yiayO6po~wk=P_I=>0C^B?tz{)xlZP>w&ls$vmS*=<(Ch}yil!&wm*R9~3R~;P-(G|Tv#OZ$L z#aYDM|N4i)O;>V)*FCu@$i5n|G$;9-WRK+%91$M92mOd&9Bnkisk+S$*`>4d;o9Rb zt3ZFuCW-e&?;PKdU%sZ$vJ#A= zQEM>^BBak^$4=?CDhnlF8CjJL80uOvDReA)85pYC5XjvsH2$WR4JuM38xU$?6QiQ6 zt|(_n_muI62{->8HYk64C^_=ZIb^|4AdMb#iZ1Xiz0ImZWu>HE5gaKtRrI=W%>~&u zcVPg;5;L^a^2@_xZ)kp8hJ>L{rXqYno*uQBH3Tu1(8Pde9qsY$En%&xljz6GBTSoG}H*!2WvT|B*wEDs!unqZnSGT`ZUvgw7{C^ zNQfR#6t(`~sm&}!8vkS;xtERlj1c8qh-34IM}XJ%ZeM!}-W<#;2Sd zR~2AB=dZG8P(U$58bsHCAmjycUfBbj;n7gD_3vGH#3sd0Hm*)L_0!W{zv&1Z1WA&i=a*w??KO@{Gsiez=`07xY<-)sf6n<UGHk@7v4!p3`W#TiYqoXMQ!iO z)%Tc+(jMJM+M3Rz(-8l3uMa7NPleTlPesy3s6;AgeJL^6HD~a%dG2dM-RXYf~^ zEUv?9s33}517E5c_385D;>fIS!>Oy{G8d$_vHk}G-lYMpcM`+dODm5jR^tZ~QGAjL zNb{X+y`H1LYVhI}2U0;p2w2<)pf>br;^vSW#!@HrR~N)}j1=MreX`R|a1*D<+E+m8D5-r%(~m?_ z5kbD8rt@bM0n}K;$dKjsSNqgQvhtw(rlVUZt(_~pca2zAXMxeenN8PMH$BRUj*wY% zpM#mV8vaCfgyCKxSTp{l^-b`R6y=X*o{;mjSL*5zd@U1`aeKe8RZ^A!`9FBHv>&QF zmx4mwU$Q{%0lYQ(_Jma~ESKY`HgGKd}FfuZZ@x9^S2zMkO8=Tx#wN!MT z5ByKM0eA<9dUfFU;JG>IqWt$kotWz1Bu3HxJUVMQ-gHpEW@d6* z*WCCW85PTeG&0l8|E9eG_6Fr>5vd=@|I3@m%FYIMZXQK&_Kr=5+YXNpnd5!Yaa}n0 zW~)0b*Y%{cP?(%W<^Qrg$iY@nt^m;^(c-_Xg${IOb+hOPQdDfvp-)tFf}@4gQRj`G zRSP9^9>aq+e8M+WJs96z|M5+zg^Z4}!Jrx4yZ`qw_Lcm#3ExXhxqjNpyhDFcKd+D0 zUNqL?I)NoL5%ir&Nlj6t4oiLO@5lZ7XAaO3HoY?XCI9ak9s|37aaqqj-L>yEIZZ#N zME7?ccLkk5*4u1=OtkXPvQNTnQ zat-PE&F%|Q_c)xIWLqwT<(SUGQE)z<@bJ&938938NS)=5Av@p}A70R!S>v7> z=X2GmJ$x8&>*h_0ZD#r0m(h!#Q2n{gNvWN0qt*y`uXo_)o^SIwH8za~ zbPUstm`{)ni#Eu}+ddO~cLO+rco-mnoH0icA)xE|Ov&2Xn(u!1&!1&=r>S*CsHR}3 zZt4K-Cv`ql^DPm!R~M&k zrl7js9v#lp+l1rL6@pG}sHS4}CT-D&9<(J{S77WB9)LeIzPbrTLrnsNB!+^n^@gI; z+qXkoMc6`bnRq2ze#fM}+QiE{Vq2ce`~%`PrAQkae>mo#cwjZ?n2t4ARarR(B0Q?y zWV|ohe3;S++yw@QhtJ5T@lX)BA+e8+$~%D$Vfjaof{%mTfkV5dyb;xj9WWHrO>?Kq z8OLquAV;QOe8);UcC^}~WLIKd-q0}p*k;9x;BRYHFswxXhLsi`sB#NgaFzMI;zfBX zUtHW9vwi#=Jw5#hVko5xmKGdLZR`wbsR0Of9nZ3Rv*ffcFuwS{!!*Q-ii&D8jm~vg z>0=ZF>UnaSK9m1|xeFmJG`rdgKH z_*UhCOdHqjXMQN=*wm}f!J4+MxjI_O>DGr)HL9L{H^XyZ@!XPw zgoOK7rEEE??RXj31Ws!<3s8JzO5dwcg(2JqDCYIQV;RPMsi+u@ASBm!Xy7d(N6h%2 z?4TMCCR=F$w}%ZV0ey$P9uAI-oKq0v;yrrw$aO$Ph*pR&U;%=GRYcW}V}!vS{%Rom zbQB-B2P9o(0X=97YA||Cc;M=7kUJ4#(HsRDdOl=iF8)(uKqpXU3)k~+N2qlNeGY+= z-_u*ymu|oJ&Hh`7FgcV@>cL2>1$otTc1a>4%I8>GMyQwZUb?_(Y1=`l*1!xWFDLIX zIdxZtyStJGTEuv_WnLi)bQKQo?JOnfQGy3i)JG)WhzqNa0|N4c0rnkOvWQc5Op>&} zB8I@87nI^nT?~zgF(?T{*3jX>vC(+B;(DP)P71{|s*#6CXQE9luLJ1qsMFI%SI4KNK7!GLY#xZQsfkw+s5rrDOC;DZexl zw2u#}p7eFHwX`fmIVI#{<;4k567SKI-33B5NHrA#)v*=_!UU3aD^IUM9eW`NTJIr2 zLx46fRwxVK=#eSTk{cuvfM4#!p`aDf7>IVL9(4c&pC@C0Er?GLP31KS;Z~a&y04m8 zUJLwr6j$J#5L^pt5u!GBhBZ7MpAT6zV?=^9$e}93V?)B#urEiIce`v8Q|05JIhnB< zGl+YcxCEqdlC4!Q?>WVY-j0%V9<^_;b(;_sa!T!;WhctZDY1QiQlV_sViJdH#EDtd;&@h?)0RxN$_^Y~1 zpW>ftK6W(I=}(m>2W!WJ4GxPIgjki|c=TMevd%}*(OCACYuM6{+1T&_o<)^U7zpV> zsI-kDJ4b2y2h#P&y@+?O-+RdD_x`pUT$uXl?d|!FjP8t_8j&Hbu9z*KkeGNj!~n$r zLES;P^=`_3v-|_p$;J%_cxO70Ul_40osJh8PeaSO{E9fou--Hl?v$x9%w&_ z7hmpqzutmfYa)t$TJjU911;PQV%cUM+u-WTZ8QBpi{utW)a%E_>81Vn)elUrd5@f^ z9?r7)@5ZU|QZ0OGD}Q%Xba*qM#(S~YN~5itsA>3eBgr81Z!~R!@S$OdUoX#4$aoD7 z6ifSa0Ql69fac|=Y!7)<0&Jh^r=zUylau<~;)MxIz$NE}VrwtHlA`=B*FGR_=?K+w z-LU-x1iWn2Fztk#00rUpBiw4b9Ybm9WWbANG|F6oxG!OcG*qKa$zDQgL2XslXbc7H zs1I%=2uIWbaRI?KIn-G5$m+Wf%Eq7!=_)evHL-Uah<%h&1WB^>i>s5ycA>aU+v;I) z#>1?2iHpteRG_9Msi&@&$cuT~T#6eYK$=MsgK4+5O9wjzoIS(b`})!lU|KjayO;71 zP60BjnyqJBB;8q|2XRXrBsj^@GUs{TY3;D1xuxG%1?=Vxq z8FHX*w=%lk-bNOC%T1ij=Z{17s)GD!4UGd;{V@XDU1h~wh`{=Jv*bpJJ2n7;8v#d8UKby;aqIQy&3Df zk6#H2T6{NS5ea;tDmy5`G>oc~oBYv)4wTJi-&0?LOdgYfhuF`XKcdCKHpj~hSzxca zvG8xxyq~WZAP7)mB4W^mQt&;sfpyEW!|+rv9y94PXm_WH47B+$)WHt%swt?bsV|Wm zfozazBIU8ZUr90%E2wna#Izo;lcP3sM#jGJA-e)PeQUjYNF67W;5(np_2S5=u6h^E z64Ns?V`YD_i{|2joq}XG`znxFa!2SG0Vy&6x%W_JCV)>RVD*-AFlWGll*!8Lvs3KK2}B8oq)VaF?DYc-J9G@K7$0P3nt%F&EV~TRBClh+y4P6g1kL8K zHOPDeiiNyKihEl*1(CMrZvmMgO)?tEH$X`CW1vKV@|h5GTuSlvP^&xt__Y`kxRCaq%qv4v!k1oHp&)eJp4{Xj6{ysOV1Q z3CoYOSn_9Be+HbLvHm8umY?w0Gb{*hHMN~{SHOHr-{j;5=976!um;v{AqY8AI{pu1 zZvhq68?}8CL)TD((VBj=27Id5G)$OlgDLmf%LbagJGW_hMWRl zw@|;@J%7K@`((5215l2%X%MpMOrC0qy@h>A_=!KbXW`P&3iRo_jwSS%!E_a|0P#@q^`=RJJC#i?bmGX8jkm~u;%OVM&yyvU`&;8w zCtY>nlpqHA@nZs7-DB6~EMABGB`fN}Lgc>ZZV=|HBbqQ8-`X^|96g!((t$BUdhiFe z78JfLY%YE?gyOSC<-ouwZ;n(a3tv-zX}Y`RvRdqzxP1Ckj$Hd^$z6X|uv17^l$H7P zk2MRRWbBMnLoe}Nt2q6tTv1~kHyjRottIhYM%?E!9V7mZ**DdH!$Gi5LLss6&UKJZ z0J)M2*ooC++T~5AH;P)XzOv^Pk{QmWy>Iq{gmd)kj&YP;VJPN0o3_#U@q@T!(6E;^B2-TIZrH2yGZ4@i3;>VVV5NgD~*xsO5`oE{r}MjqnZ0rsvb5G$93YI{JTq zdw`3O;goFL#eFXJC&ZWV#R(?^Rkl6NLr!~#54#uDx-uTT*y1!Sh#G~<%8MLzrGMP} zPei&1P1Eb6H*=^^8dPS(yn|cwIhS#;Q3Fj?Hq>PebRQ$lM|dfUOqqzv!Gl8+uV3N2lEgToCnaP7+kSw~q4w z!S%NC_aYuH{}H7;I#NSPcf`N<0gh_mLUe~V*nGSMY2G7M;qTUMO9nu?cBJLuqU&$k zxdcO3-3ZznS!|O0LY(yPoQgo9ZWzm0;2en3ShUc3(g50S|9?0)M;ZbinKaEDMS8|G1gSV$}(3w)EzbW zGJ5r={Znd&M}1o>p%HpjOVo#&x`wpM&}`0rfhGR?oEMll+p9cdKBkp3Tfr2Md!D|p zKjMKvP|#&AK!xD#@9)Q~{j6E-Rc0**vFYO)>d{IN5sp5?yZ|2cWwo_Z0!pId;-hf^ zJC~s7^b2sDZw(f7m@;zu+%nn}ri(OHd|FR(Yf!4Z08)WRD`f5>`U}nQ-F^s1<>TrlG4&I_QUP4P{O-s)~sxk zK=N_>xU@UpxOMTVX3}QnWHR?xk_)^=2Bp>)(<$Ajxx2h25Qb%CWf&l5^#JOTKdpGz z3^f)^8Va%ma_o}fJ6L~Z{2>=Y6s_7TE%HdyKC>{Jz? zkvfkf0Jfm()Xp!dO4*eR~0)Fr4p z(3=ulz*OqW-x%fI@^|qGhf#T;*NPS!OrSZYB*-Qsm_86b+4<(F>~>6V%?`3aXPC@82^#?w1Y*EF6Gh#B2+FZio487wO>Hw`7)9MiItRt{^$iU&#tSvn z>qN~IESZ}wg&+|GB##Y=$l_yiyB9(NTfc1wdGrX!NEV~06R(hX(}5+W&Ctjwj;IHd zB&CEH)z;G+Rc7^{U3kkzD#$UdoleHxz0!7e*?7>q_wbGU%q|)WRf#t$lsVZIIs~gH z7^SL2`MV^&3AT}){|Pk{h9gBOK`=Ce7cyq_toY6?@sf{go;=?#+Wej&L8AJ2LD&n#Q8eJNf) zBhc_>Mld1ppB35Q3IJXG@F^rI9*kf`?MzA3EK)&9DRd(Jw1{W(qZMm&Fd`S1qV#T} zgpB73SSwa%uGb#@dJm!c0{nif_V>5jb*NN`@oNFy&{@64pIfvcFH!GTO#IZT4QaUEVS!d!w?=J4{4=Sqg7M9*sZSK&Qo= z{3GydAep|d?z}Wj(Y0dA&AVo-4k}J(KFTg;zY)dEqyLMNd?qfiWqutms0E0eujFZ} zrb_e@yliGnBCuTP7TWMeEMAv~9Tvx(@6*kx7#B{pyLlZn_}a!eTVw8hYBI>KrSZj5 z<{-SZYga}8gGS<$RFE}?ew_$j_2CkznEO)SEGB2#P|@H;h^U40H70ZWq9d<|l(S$T zXG&jO3{$CbS?lFbEj3pwBe(*`4PKUT*v(=Nvd>ta_e-^`5*n%y#~2+C4Nq0$4))FI z{<_WQ`H8(FR;7H6e2CRxNHQxJ@Kq;%B zz~&chvmx0jiVg>xg%ZBlvH57uc|>fHm6D_CaKU+mFfROSMfU1JY;lTxLOugfO+w3r zQ_QMF<8P7wO+9YHorz@JjHe@uALChF{&>+-BnY<+*lz9R5ji$3yRVD0$I+yc$N^}F zYOpxuvFly8kDEaRyIRC_pwH*DYzQdR5UkrN<#meU<4pCiQM-q|NPCg~BBLuI3N^v5 zm5I0{T;%T(%;aZ%pDIoC_{UT!#g(d}1J$smx|O!fhKl%Lg3%o{)k8Bpl5Z^mmvQig zbY>vN&nrwph{94{jq4U=Fx%DNK+~~4te8Q$;{*uI_-IC<)jI1R6sQ5Zg18m#h7_{Z zFTEj=(WK8x%Kxzj>cicWtA3|NPwkJj_Gt%q=Ndh;|8ara2R$p`qy%o>PX+rAZ}K|u zg53LBTVu+8wh!#B-yZG0=36fd$X5EF-mgFp?5~%nlYvYJQdW(hZ*GXUQXUn5=_;aF zHnur>(0U;kb}yr7zdbr(#}b1T5)yJ|-sE$gtjoS4RS(0%`|#^AvW!H%(14PJe}_vU zp=7IXwdA*STkMLf5LxO5d{B|;HD!dWt|;4tQqsJkT`QMr#K6rAG%*c~BaeB#dYNAU ztA|yXlMTo0%~m77RDvU69-5OhS?EKMPOo>7l2pm^r~2_IVsE71X4L(i8Ht9@Vk=77 z@ZUw&-x&l1ODq`PYa{rJzA+4u?QzKmTSVbK?OtJye}T1ysRD<=>!oQw2jeX{X69Vz zc_i}|or~frHD5N~M5GRGBZOLA*u%+NuZPksQ}xA*aK)|*792#I2W{SXa&}^Q=R!Ey zN>fX>49XV0fPDB?!3LQXY(7a?5u?qanIXxNCOx_}exLml5@s$-HR0+Ps}jJ(6CLqb zlK^({SMah~GWDuFBc9`K|ZAl@aYutrv}FHYMAOdM_}M*qc=8O0+HNdAp{w znUO29%l-i7Ht*dm6rvVhKDcuGN@D+1ZPjDnG2vufFaLXzc$`$eZz7e4%ET9WBwSUJeSDK*~ZUY#is1A3yH>2L4%i)A)Un!*qa&YflPD z*;ZRxA?i_zCb7BEisw(qLI2MF_lmunlkX#POQT13l@uo2oXR702ul>U?3C z4X~d`fh&uuOAZvwz&92s5!)siKZ+<8bA6Ca-FhhqJCNjQ-e$9(*^{TF>DQlm-wO;< zv-ytIxUM=e*^ZqNjC?WMAO_}H+ppsk?5C)phRbk9dcrFG_DdUY7i;d*pS8ZrA@2{l zuGuZf6^%O*A!gn~Vec;?E4gk3?+)gKhr=QK{Aj_A0+uPo&|6v9 zbvs@gt*^0PZ-DyIM#Uw6e4YX}90aKYaKy;?rSb z33E73=zxjWf4xGQGFI zi=Vc1FL;gnw2{yg5))D>UR1J0+!JKRW%h;ZBzF@sSLLv&PQD7A0KHX}FCEa*jk}!#6{(8$+%2g{{59ZZa<8CICyUlS!pESEc8srkgP$s&=r_!jLIw}rl@Mb?Mn$+5Dvwsp#0a- z6qt-?k3amP!#K$K9t1?55$~TNI}xm=FBAN2srQD|riL>pi)Ks%8CObEBIR#vJfj-j zTFT2{xnRj5CcJQA-@3PFKh=M^bv|7|){vCliyvtmm3;r3pU8C$ekJYubvDS>uaoR~ zxVc&jEza=~{>e7#%HJO)4jH?}OoV;5i<90=f4+WF96H|pS!*M_8-MV!%BNeh5jH6|y? z^t#zNR`7S+ndfJr0p!?tl){4i-8sBY_d=QNK9(`xSmqVsAAM}-%O`GAXmb5fxW;;m z_O2~GCNEJN5p~ee=4#i+WIZ!UTV3l67HL9ED}Jdh7RB+az*QovS#%xzfEG zYgUDI*}xKb-w6t<){ z$G&yWikl6k9;F_o$x7TLJx-E&>B`{BcFzI9>f}!OhEm+SSGoA8`8kJ*-`VWsFgleP8PkH&=reBh^4N2qxIXH?u?`yzbuMN2)Bl6P;}+lHy5R95@UXT0f*hm zc@&o)A=v~-x17dErCllz5Z{v$nrV$={GGs~Hv+X`#E|ljeQmCA|KYv{<4FP4U-9wJ zz1iD&!3)!7vhyX7++#pHd#(Y3VKP6EG7#0y&;rshTg;+qjZhmQ+1-kpK>M8GQN13!%K zzA7&lH+X#S)lbn=yVvou=ID@66nE(s93{dAk4~^DiL0PRp)RATjk}ue|2`TzYmI+> z1ZDn56EI=kQi!cfKz+(gWor@#8%q<10w!fx4_t7(1x&W&z2yVZM$SMkay(ZNvH04X zoyFTUUUpBA9mi@~uJKKr%&(UF-+~DQvoB=hdkT$SvN-P}0&T+}NO&_BDg!6H>q(4& zflA$rC+r>PT0VZuW2EdFeK1Hr7X{+Bh+gXhgCNTKN z7dNqe_0NNL1ROB0%mU-ETF5V;R0elZ^~vu0`^=THch(?L@0q#`DW8(f>uHD2NttTl zB7fLB2BI?e@{x7V({?+NCf2T+}hUnkgV8Rz!>tx>$CT zolF2V#K!`-IHDz&MS`#?@{=D&c;T3SBE)J4=20Y&vLj--jl5-%kAUFC&Bs;y{lQl`Hr??wCT8;A_Bc7UKdJ>TPOv@E zm%~}PkAP$6Fr0as>bc_~=BC&+=jR-)4{u3|SC5>NTrzBdZCEUX-gF3l!Bz3_81%~s z#N9h@!*Ezgy~qAx6cMesL~*!#m&E!bU?@aDKQIcIm8RP$Yk86FYzS&9ChomA1AYk< zbKGjCH+!N;^;cKpS7Fjy=Y=yM{qPcY)yRI;MJog}4(TUF1;0q2&h@d1cJDBWEvv#N zC-(W)XnRgd(9gr*G~Q{q(a2_ky#}5sRjO%x%HJt_qxTz|k`xOG&p&%H4&Z2Ki;Loa za?$F6f}el#>o%!?iYA}V=!Yh?jIU}Pl{cxAMldTD9k;s#zq<^zv;UoXhC+0}6~dqO z{4oqg-zF0Esu~iv0 zT!>Ik2dcDzf`BA;rT)ij?qZ{_B0m7RVymCbe2MA5*yC)XD-QW39w=qA$7Q6Z2mA*K z1hu;EP>h4uz}q^W~0PT_r*n-|$Z0h5eP!{QJvO zgW87+`_;cX@zKZl_(6uUk1OozAGMA1dO;on+%7Gw z9}xP+4v&IWn-qrbf?9=*=kNAcH;j0BINIi8YcQ>I(ZwhIynG%PqqstT{f7ayK>~=- z2217jd7*+A4s<6RKDcRd6@aqSz#t=?P5zZ7F(I#1qX_naX=U5R@Q`h!$A4-zZfxN1 zyJhA1L!}cldMexHwW5JA*|Jrg8-+Qa8=v2Eb9C1&K3)IOF{Vx2Vn-jU_VF(T2h0yrqnJ)Ao;$1$sTeF470=5%KsX)XgaAM^ z0J6MK)|Zxw$Hz@oZrv&Zx#y1d_F@U~0X`X-@uZ{)U~yMiQ#0!9RdVMt7nhN_dDcXd zBR~VAEze=ZuOk1#h`Uzitlu;>G$tpMxm{c?b3!%K|3YUHcP0~p?H!d@P3;}+OUlZa z7}G=sFVKFk2zt5lW_0l{(T_u}z@j4iA$|xYJe{ViF9JmmBTLISbX2Wztj?fbTM5?U zj)|2xhHKxdh8OmsU>0QhZ9t)ji*FV*gRCUgpXB7^=04V(t~*}aZZiN#M9$l{`k;yH z=i}uM72cZ`uVtT{2^|70?HiCTgzqGZz+tS))${l1{wSu{(%-br;hiirjnct1N|wcg zo!4?Z0Y3wDOWv%08g?YG+e`NKw4N!w;~>{7)o}~KJ=>=Kz4;FkJ9$FAxVX5{*g&l= zHH8-jFcxo$V2}fED$Oh@`SJSwCB%Z7fh0l9dfweMJ7B3dUOH7341s>AWJncfUL70zd`61| z$*i;*N2o$TP^Rxx8 z1q*)xJ{pjs2&7Hy00fW6OaCAEL=-(&&vGq&tf=1bC-KvUSW%rCnFy!uO*X=rJO)c{E`CQ4|hP#6L#X8`jBQrf1;W>;IG9(xvVjme9erlw9n z;be218YrL(=NchACoiJVuIy}<8xNNt!{J_F{H#z`5&i94Pd^xBfKf}-Iv>h)=Mq1! z{93J;eM-agoyGF-iezHu5_ND7@%5)*vZugpz0&oS4ebhBc1=v2h?74D@TNX|T2mZX zx-zTUai_f`x>-H9P$-6tkT?Q^)(!zustiF`rX(=0%O7!A@EwdyOjh%*!<|tRx0_ug z9?gcY4wtq;+$%Z|0ui6W0@|p9P7gc1U}@2$#O>>av`8jb#SgxZ5nR&8d4Ln?o2knfA~$$Px5YJ1_UC8^Ff%#-$iSQJAo2p z-vQ+!yK3qf#z=9zF2LfJl`#L(Q1?-F)MzH#G&iq5m?@y(>;1rE-`yy#rrqOrn1tpT ziynm@9c$wLi-MxJ96Zv3KeK?t;ke(nn$hP+IT=Uj@3LBqa0WOB2H!krHJJhBjTTe& zMFyh(;t;Xb!yzNe^J16k8G$R)xbM2O0y=Xnob3b|#kF4@X`^xmV7dwS+Y zp@d~w%=fD$id>@2?X+S_-K083u(f z5>~ahy~m~qF}n`yyS(v$n}=sx{5K&1}#w&(uI?%#vz_av0>t7ieGa2bfw)GiX!uCb0^)hdA*SC+eN}M+wMihn0?G} zZ%NUt2x38ae_TJe{ZPD!l4Ulu_hlqE@K;G_`J5Ll>67E>+H3s!l~I8{ndYGGRq+4N zT(CRB#H*hc0vf8*lmlym&t}7(1w?uU-Ig~#5mF&_yA-F_0NC;`5@^xzn)SNTh{jD* zQFJgi8;%@`E*pCs4s$vgtgM@p1}3Ncbq5x#qu8R|Qrpqer#pS7^k%e?5S|7klBsGy znQ|3qlW+1E8$UVSH7!Hh9)L|}F>V*Am-hOqgBXHx6OiqX&8I<&?oJTyocBs`+sPeT zR=*7toj8qz@LR4ok$gC~s$dVs!qxFSKY*;lT%@f5A*xcYBdX)wB+S7!aHsT+abSt) z!T_9gRY&6x+Fg;(390SwD$MJ!yz-VA{|0WzvMil2^w3(dQ*IUJGUo&+02rqxOY$F%YM?9FFpFf%@ z@tKGU^@ zHq5oZgwMbuC%~>H*kC^ZzRt^eGH`K}Sq$uHb1-T`|KW7?^2gHbZ1(khw3=*2$~llI zi-)U@-%ONy7r_Em{Gg);t~xu7;$0uaAkL_;hvk2WMA-|bBn}<@Q62m>ol&Haz}EPM zmmZ)lZ`yB0OIFMHzi%xm+$^Fhw##YMpm=y>=0+-t-sZ)29;S-PhQ50D*NbUt%fO%l zZYYqPLZHc{`Yyq#!@J?$B1J*4agsvv2H}^4B&x1R+sT{ouZ+&My}m+#it+8m{zTY} zpZG@6p$eReP9kY%SyMKmk)23ej*%E00#Wgc-fBo(`pSg(ZCmZ?2~PSGm{(W z5;0u~rx84WI?@oHkO1V*3cc?j3b6=B-n36k*zY&;a;t2~D`gtduX*d8uJ)Zzr!bWM zI)%0lcmf-6qzl5d5$LozfShx{RhX$=v+iUoYcCrQPe2skRbUUo2qtya#^!4%9^k+D(|CGbqYj zHFIbnMxTr??ZaSCuh|u8{<{i(xiQ@rZ6wI_0@8L+%Ht4)ay5|muLS4u5 z*7MF_$)dToTt&U({3Qf;j9^(m#;Rm-cJrDWl zg>hcndyWo9rVS2{KD-iAa1u{rm%j3oScJH?=h>@FeX?TjyYIUGx>9K2ONPx33nrI&@IoI* z55wUzajeLjDoPkyt2{aqW~8KZKFpUCV=Ki_{j@pH#6XY#PYPrLyw#Qv;aHUn2Gt14&a}wMc_l@xp^2a-P_#a4SG zfgc8Sn}MNEwODR?qhH&KfH7A8!)qnEu~5Z@UX5qzRtC2(QZY1+mRC zs+{=r;lpaTa0*~cvRcx?Ukbp8G5#+*_XJ=} zKd(&VjynDSQE^{2)Uok6}epwMO{nhjRcbac%F@b_| zb<2Yvw&&zuA_hPsnxB{hW^!LSRpT!qM@JK8-62!wa(+_$TK@BordZrKa^Yix(X5vO64o{%|q=e6;x<85x1n+GRf{Re+;)k>Qpe}_eG$>sW zuRo0O2Oym3Q*={SW+ob7u72r%=sj-{-urc9Q4~lL=5~Tp-F47Z+#L;+NS@>Gn1UDn(Cm6iJ?<2HxvII+3+W@`i@5y2XVr zHAezrLqjX896EwJpy}*gYzB6xvnp>TsqIdY3eYN$A*&^t>?C*b)8~1H*E0UqbmGa= zLXT!|`GSg;0|?^BwJbmurd8-%pf|H^_x5O7&qiaq&fv(f_3)KpF|V-}-Q+~)c9XWp z#u16oe0Umdvd?t~RZTLfxp}V5laWd`Ug>a@7<<7tI)UI-DMm0AIbIZHPf$R%ET@BlL zq|m1S$~SKL!X;>_B$UO@P5Ee0+N#bM6a9g<;uU3TZDC=jtgZY5i4-qK{a+z%g2ml- z_V!=Ym=YiD^Kp4fQJfSlZ~Do^n@o7ILS3sacF;&gh-QY)a0mi}vL}}HHr?qj?pZMA zN(g$e>H7yU21wEBelVQ-LJGeG>6`+*t!=Kar)SbqP_U@T4zGcE3H>$dk)TJ=)9SR8 zl%*SX(;^!;EO16QQYOA;NWr)dlGb^yv1e4%$ z|KcfVZF0E_3qQn6Hivr9zFvK{Z5QrFa#!_RhHZ{d4wx91_xIaQe@Zed-uOp}8JgT^ z19-S(@f0sTbJ|tZd-`oW138@a(9doQN8aR}j8d8>Fc@~OK0`BD) zgFG|A8%ASHi%+&Txu##v&eFGim<{%N1AZOC(9;29;u*^|p z9#ki}<>en601oYUdzIX;^UB>u+zOf~G^rWP*nuS&gZ>qh$4fb&2b|g}SR98P#;zcU zR3cAw$GSYfQrw6)PKhGGt;ee`rNGDaaoKLI$g7UHB*>9{>n$B@f)d1vqB1~$4uIsc zn#FI&h1lz4=6m7&oceifX zu^bmuq#?vf+yfjse4ktq{1$wQNnDq}Poto7)ThS1)+*`ujvCi9ncBlVGuK2y&vrqO z(+Ml(mEvnNq&bb!DA`epOOABa**iM%sxmcEA2IiR_tEj{QyIYrD*mM$pASfh+BXM# zG1lMtIUV2oOQ}T%a4r%^blcKde1FQCJHk4$I4Tw7?0P>Xru&0DI%UVQS4=m3O|sFW zJ8Cl|sr6eQhgU$QrE!+YEkAPmCw>7}ZhEazF&;f+z0T+)3`q^JF2-|Q{k^t+)&-*H zb0fhkWS+W(pkc0+7#7Oub}k|_$s8pyEZaq71faq!~0-6s{zIVmcL zDpvCr&w?HZ&d?eslXlKh(zBSGq;u21&8HAJBX^s|5B8jD4JN-9K1W$`y_Y=Is6Wg; zjB%`J5O1$xvh_xghUh@fkdKi2j{9&|q%>$zTlu)}*`d}^5x?m(I6SRbb)XL8>3W~3 zCfM_ktE;kz<4EWiKYnTnuO==liy=zlannQr|~a`_-n9Wmb=YW8f}n$_b3D148< zoAiAe;y7Ayh>jz~3&(~!-qXp9->Kf1R9tw7-67DMl|5O)fG562dZB86N=XLlL&a;@ zO7K=dut0tV0q6yhwZPe!%s>Qa_@55J*UdzxqF1lD6wiqCi3;rw92I>=$;k zVw#eJwiEWIq>ScsFNO>U0*rwQI5%7njW!{ZpkB|Bl9EmBLiJx;_dP{p|8UBWh5R3Kqqql zRn(rRgyvz@d`CyeX&JmVPq30?ceKvGhK{~!@8X1V9E*Rpo${#{hF>n7#A69 zg4;NO^|h_oL)eUVG%KnUM-t zxjrx5f(66WGY(=D^N#Y>{l5t)M9`z9JYZ4X{%dZYy90Wo=YnX*`|JBSxNQ%}Iksao z@3zIUuD9UA2o#AF3Fg_@`CVK!t>+uIvyD+xZUtOsvmHFby-Uwn@%wj{`W&a5BjRPl z=0&oJEZ|y3Ak*Urw6?RZ97hlXcT8PhpzBeKebZlJzcE?j6Xgp0C;Xz!>5_WbqdH4; z`gJonJC19Na^KkZ7^jquu1LPbBn`8NCd`Si5^a*yYQ|(_twK1OnQycZXQ90LcHHPS z!pY22msKZP4nvTtMrKGbH*7k6z;*c7bOH@t+a`ajcvU|{J0tYkSz587=c{Jv%ooq zt*N|ofqJi8gHM1Cyl*d-I-V4RU}F7V`KMt}{FbApT+dn5!1TI?uij($LD4j4L@uMPB%n_Zfw;^n*Yv(=i$;O>uhJz>I+ zzCSbfmG%Boj7q(NLI=c?x#iBDJ=q(Vs_I&He z$qdKlkD>A(uG`hFqwXt9qu=|^;!`}IKYZ<;YdO@H>)QX8I?r>Y^>)F~r#Va_Z~F*` z9oNms>AOJ~R}{&ZKlb>T$#H@MmZdFIsb$HGZHI;9lM8$TIE=yQP%1{- z`J47Q0W!Z2y9H{(9^w^`ZG}BK2-D-eL(LgrYg(b5<;*P$MML+Z?CQV?5&zON{s)^U z8*HiRQo(-LW3QIl*~U0D{!H`LWZW>l-a$6#Z}(A|kcL3LB=gEAa;^H8dQUn(ksVu0 zrwZI`P;5Lo86R+_tdhZDyyH+MqiuMO+uTt`IOp@{mAXp#&*Md_?%qg>@D-m3aU}af zc!(o7n*2lOuJ0eB9Y2D*Yn?hcvlJ3J0349t?6x;~n`;NRXKl6@3sxJ{ z9BVYG318m`A?+X3341T}Zyu@WF5%)8k2LqUuRwclkql9%K7OR4OpFMpSgL5Td24^z z$7;_N@nSZI3*;?UpdHQXOU1pDlPG2}@2eP<+ms2#9 zeYs}SF73ZpxYr06QFB!tOg_#u}62cpVvMbZ8%q*=o$mdTo%lpf9?9V-&lgpg7 zP>^D2o18=htnUXh) z5V{>ysF`9C@2=@<&01RTQa>QIW~^82#v{{W{NI-;JL>*@_s^e!6EEs{6dAB5g9RKk zu}*`IN!$-iz+K~4;l-<0uL?>^Mr>}n0?mFcM zu+w7jo=L8&^)%_Y#1nXmAO7kEnyo$~*~s~VP~mr31%Ho{KbO{VN#jwmxveds^OxNV z#348!J}>q^_Us=RkX#Pw?bS4{a=~tDY69(`f{S+>=Cq+dVkS+MEVN&&FBW^7gjg~q zIy<|BYM_B(=Vmp0?+W+q;}y5^|IFV(9_W&&sj2U(9*F;*pO^&Im`3USu^Iio5_4;7 ze2`xfP6sY)Qef+maGQ^A4&8lxxxfT`y<78r2kj|zF778Z)_k`fxbAhVxVWANYAQi+yB6co!CF>~sFuu~5Ah+T?8nSk4q1v&M;g5d7pQlq4KvXMk zC!opr@H3i}8fvcgr90RJC*VvhIZE>f4`5t(Q(YbktpjyZRdw~58xx1Iuk}RVEG;iL zL8haL@AgJMKy$-b7B!~I(oOm$;sy1>vvv**YA2+TKb@zTvz$uR=8;z>-#-%w`UTBE z4K59-f{!1>L{E3{`=`UNu^QQ!EB@;9xfHQd0#L4#w z<6q>~dHU}JZ_dkeFvReS8uURo8%+(ncgWlN{Dp+riCAn*nqVbb80eI}j|N@ka6;I)O|grC^rs^md;4Xbg@>Wg?Ra?uOhq?upGCn| zYE8itNBa)39noFG>JIV)s{xI*pLs`6UFYwYaR?HOApC#_N|E-oj5JJJSEb*#gJEf< zo@vHU)2mIokcO2d;d<`5jhbM`oGx zN`~}Va=BLh*6Gy$rP6A5(6|?88P#I1@h?{i)glC-rvXW?)dChtMfd@OYHl3_->1!cfit!t7TdTLLm~}=Yym&8QuP15$OeWhxiej3&y(C=Q(yBSoYFG zQm$4PzYRWB&Nj-8L)Z1(Q%rB|&mj54ladwM=z_fed@%ANHTR(wAFh-Vdpr;P`^f7$ z`K&-yPF%xluwXd@QDeE=kQrO;EkvT4nG|!Aws2(aXD#h8yI#${Ahmh<21NYTKkM6H zKY>{;2OVR;a%BJsr2hM9GP!#}NK7mg(Em7~d4-ppNdhX)%MWvXMCK5IH?dsW=$y3o z7Jtkz?1#TwzPji%5?L4eeevV9Vr*I#`P^J_|Hk%FHrrn&(0+6cBKvkrCr#Utbe=dqf10iw`Z>t+y^|nB&e( z=bhN;v0VGsH7n%sky_yeouD0SMvKj2{%SMxhZ;&v{K&1v%LCJ|2shHdZ{NT9@6Hnm zjZz4rAi)ox4ORg=9jFWZn4?>_#IQCGwZeJVKAxBy{cK79jX5*mhs z2u1d1BrQS7qMBg4jwYf}HU3KTs7ml!_|(C>_Yb2CM9PNBFU^t|JiFCm$33&AH2|$6 zf4@G)gEc9%tLv`2ySs7uQOn|9ee^NwBguE=^TZs;Ol+T3j2eT*Aft zEWyPlq00X+Hjcnqjz_>4BW5~R z-sk%N&n$NVmA+dsTSoUx`H*Q7$Zn4h2}TmNOmBZb6r>}@6OSln0JNI%O6Xw+ZPL)W zTh&WOXyfCu#Fdcr#5sM_Ca5J8RWYJ_a({G9*hNlZ8dx12dP8NzPjBqE7 zaG(nDyO5>9TyT2r9mQbd{jAJqRzH0TQvb86p*^U_xv|REIPH z?!T_=D67{*Q~Or$P37kD*%A*Kyv2{meLs#p^5613@-|W7XAF8!IL4|tIyQD12vfK( z2~>h(rLYzaAAL{*!gFm5RD+3_Wc)A&NWWiN88~_Gp%IV#OhvEKA_$~1Zmr-vAFgUi zA)2a4G+F$x{=7%yV_NRHB=X-I=9mT!2PNZtC6o#7DwzWIBZjv)mYpJY2rN>};sp6B2xUwc4d8<_))d=LG*x$tq)4pRSn__kBVb&f5OT zoWSqz7;58;HTE$9S>p^=Vy+YZ3;g0w49;?wiTI==Jzm%Qxk^JL<|PGcN}FZ@tRrvz zSAL;JTyXcw9Ta@k><_i?UHhMpTjw%3_M(Dq$@hLQKRNxhxVqW`Y+MZJ2%qDw*osCb z-4D13TCvz$TU(JGVT_vGEX^~nC+!(0M6pbgK|s=s0Wi7LG8-t0$&9nUCy}kK`$3hO zX5JtfgpfKY5W8nfDT56 z>gLB3=&@ep)Yr3ue{ky%wru1?x!~ZY3Hl&sS{NLtA!NdNy%^8T9E*% z&nZk|*LKZ)M_ELNMBi}go3PMo^Zm0*K);wJ5WO^Zu(h+3zkff2QQOU|OO@8WG!p}2 zh$Z}SCU-AS&uWUi`|4Rm4Xcl2LE6oW9c$*MO9qX&?QIR-LiPVc)ma8a)va%zj-g@b zMkJ($?gopNknU1ix*MbfRJv1;?vNN7q(QnHq(NZlcaP_P&hxxq{NNXzz1LprUibaG zuIpLC2YVX*Fc~TCX_T6Ga01=h!NEO|6e|KpKe2;j#rMjf;o$mwC&LxFVbo5|+7mDf zS`=UraP%kT)Q1AB`_XTCwVjIc9s7WU zccQl|fPvceGaGg?p}@7au<{@v0qek92aqJ4z*WkjKq-%lCc6I-iwcsUt?P2lzI&v2;6dn8GbYepFL zS*WA)4E3(vuB=k_>p=R!Z)qAt|D3D%f&6svFD(ek0E5gnKG@E0@+N>26&rV877fe* zOMHBe@;tu)V&L+FaD7%4qxHLv>mCd8hQR$e%re?W8hNt6g%N!m>n0@Q zRqhHq1x$4HJWq5YBJ4Yc5An>-gQi58hSI-Ro1C#Hyb!8P1tXAsjkm|G6t&pK&^crW2qRp5%zR-nK+LfXkFl#sBm8*;gA))W6E3Wd~4SO!q zHb^@Kxh}W)-rm0XII>dV2W)Dk9Eg!v4xgy|_9A%QXtLx(n-qU(rYvZ#ELj(OajhQA zPrvs5ceRKgH~}xcpmZO7N>tpD(1OgT(IXM4zODeHNzPBmyw6YE0n%phr4zqG$d>Wu zYDVZn_Ev{!=n*zpLYqYc*o{}%?}qKvP;!!0^+$$VV0iL`BW%4PEamF@S?h>cGX)=^ zcx9y8jkZn_`#;-t8aX)ME*7R0`2!E~^=mr4{`IM~25vsP^?cNbMg5hS@|UCxfx4t* z)%gjNBmeZ8fE_9u1^%$dp04hW=fRDXmMHz2sZL}`BmM7UAGvXguP%a7NJU2^Hsm=VZ6|=T*r>BNQREPLv{Ss8!%(!zH`Rl%uaKUFL48}|839K z^{}1OTmidyql4czS6_S7?Xx2XKi}4~G{q?F$mrHLSE0Xk4wxgAZS_u*^{nSUWcGTU z!`8pe0&UOI^nKsD=2J2=)=ajyHdwr>-ESs6>K^e6C%zJ<)rJNNG8R zrhoLP^DWzUxx~5+roD`L8(XzrSK)C)x=@{Zpyj;K<7Xlo*+=%xv#Rpp4jju{QJ>eJ z3FOT8x`A&Cg+>)tO8rm0^lf94e*1eG%#qZaJqSBr^BBUsbNrg-?=7b0c|{wxqKw!U zhi_+|Wgg#cJ1ah2LL+_M^589!_!(WUTFcpGLO5UsQFhPgF?PqN5K`XbdE6ztKDDv(|y>DUTv3{FvNCEgzl5 zBk@bs)pi?wvU=J_wZALtMx1nxUTBl~d@iR~Y&hmb>ft#M+ptDhh}-iaIG4T zKpsmR)mZrw%Q${OFGtL`&C0;WTC8wuCH@m@^4|7q;8L+(TDE4!~+n*#BS>%s49Qw{~ zVO%+!G=gl4suEdUSQRaw9P45Rd>Lh(DSh$^4;Dp}2ETm&M_@#ZcDo)Lnk=>)_AzrUk3O?cYg-E1Spy~{c3*_*spH*6C+ z!<|VPZP#VP(BA5EbnZ2}Pa4aeDcE9o?!ZMdoi)QQ)`w(Y+dP0V=-hKL|M@PYbVS9;Yd0}{BAN(SV zP1nl4W>Ck%#baoh&&u)Wz_a@sAsJ-^XP$BrM|C>2LEBFsXwtCWpV5*7HUW##R^+ba zkDq?r{`~Pm8R{?^<=msy{L}00!drSP656+EO=B*4LZgD+wll96EK9&Jsw1teg?-N- zZl@w{5BlxHd<{n4$_6j(9QWs*vC+1uTSEp7kK98q3KBc-Qx+>3XIungPRCE1Zar8& ze(6(bvPw>vnQ?Pj2^R@12X8Lo^w7yvnFtbW}YC|`V|JezI z!hE;8z@of<%+$FrIs%6c)s&JAeD;ys3988d8IuxgPDrsw59Rd(;}ANL1fL&Z@6-K> zT2x;V4R<*zG=)XT__{{&mX}#Te=tyYar$*T`OD9V#9%BKeoq6+ka0)*HFQLp*q`_0 z32OWx)`qep4F~P)^S0B&{e5R<%7&f}Y^<3rmo~di5!)v#a;kMZ4oBg)d1D=RPC9;E zT8(!AiRZs(k~nx~l8EfmTzC>Q?=uo*SF*T$noLh5fl)24B7OmQVLQoRtm#?l3bb6# z+Z>T;ziiYUM^mVU(Dq*&57wWwz$1(k!9A}vrYsH-_^Mjb4j# zjX}@t>YJI14~M+dSu*$)gTTRX8yX#T^|N8wYY;Q0pc>@^GRelfN6~Vs0F6e(035`{ z!Gk8mUyGD0O^ArsKVn-W6lWKP_qx9>v4wLBP{`AZ?|g1f->|k{VWTvk&9pq&5-UpXK~m+z4lqiqw;2!d9b z_30;KOh=?}v$&mn#dbZ7(_+Yke0e_T_Vw3R26jTBv z7FS~j7CJW{@+LBl(sq+XjgsTSUD|dnU$K=hORb|$s`DGF)dv=3_KV(R5(akpeT)ao zA5F*bYeNLxB5)Z(uQh*RLwW{i3feY%EcL&itN7ojU&Sf!)6{=UF4&wvqPgzaNa*7T z<-xUNrQ>u>PjsHN-hSP2^n~^r0|>_O?LiPv7+sYy#h(0Tg|Ga{tiBp4qwWy)r#?21 z-kej-!gxxmttIn}Y{T_auugNXr`p)MtR#AEOWOo-bm#Go#8uM=i4c-9N>p2rG?pc%CPHH2eEMi-hd_gTLckZ;LS|B#Dr2R4X}bM_lLJ?i#Lhwk zWp?T-G4y%?${LA>4Xq!wcAS0dm#%w)q-lEfuwk6uXUzB+)UrIu&+Qs%^eF8!^gPKQ zNfvnC9$S>Ik~C?DM_uS1>FSp^w)af4CUfs<*b<5>iI$2JXrvI&MS_|ttV5eZ=eU4F zaZiETbt|>l7HOwXnLa+UspB9sQ*^cF7Ih|VVFq;h)&#M~_mah7Wsrl!b4aUN^BK$r zm2DokQMn-2X>eK3!McTZ=Y_KI=(Ml3!%@)VvnvVEGyANWYA^7U!gcPu zo=3qDUvGyVad*Ez6N?FVt5HvEe%{`AKizlM`CL)?u;I4-u=Z;!NnawW&;Ob%XpPS6 zrWqd;p4eWU$c_c?3<|y6$-V+?HC=+OGp)ghFuLAw-&C_V2&=MW=%!*P6?G?;T0Yua z*&p%Nd_+gW#g%uu2+=R7?$jA)n_Wx1(+2L(hH+2{fVG}Ia={966b7M!8DW>_-Yd76 zCCBiF1`t`F)nVYiv{nD&%NePW&-mdN5?nCb>~pl1{0kJ|x{+H_G8pmf57ACQs_XUw zv7a_qBrTXSk~F`hDtoqL^se*1W&}(r_-oGMT}YE!O2m<|trwOgwZa9Cz(kjvs72`gkHl zoMYj%4)1;iW4>$UHSK!jZR_}oyrdVdEvvQP!+DnbOfqF_*3>dhEJuClG=l#Lx_+;s{ zv9GdEvb=yzzZ-(Fu?jNw0KKs&tmyVikqlihMq)MJaw zeQLvF&rD-|)A5x59<`F9yp#PVUw!@Ib2B@v-!`dQwUY%`mC$X@GkxQc+%F`0c0Wrg zgtTe1XsWG-5bPHoq*2Pp2|wLpYN96jF!>l+;52gyk#43VpC*7QI8cz6w8KZ{oJDv>hJYF;OeGpI^xVY;S#OB{tT}Q(O6}yqm zS{EWJA_(>Ix6wV@)k(+w*!MtWZ`>Q}pCf^fKo0b~yI}tlyhZ4PyZ@E@62fozl`=5v zZjCk=h*%A5+P!Rx3T6fD?xHU5{Qi@}R;WV-6kPJepYN=j}H#ztb4 z@*}pTQ1RP@(YD??16F(Tv$VafzE`<|6A}2qX2qqT!0Vld?*~$p7gUJ4q+=ff)Ha-1 zqv*2g`}YS*YgGFghoWbLBGl+!_HexM6A4%RDUt4g1Y{4KlVd?`We}B$mhQX%1gVFk z;m0VgmVHw(EuyzT){9y)HeWmpyP|#(@hmj$_d{lyJAsi?N>sx)g)7zu(BoR~b{pqC z%fq1nUqeO!j*t*!BRd$G-)M~H&W;5AV+TIEy}+p7sCd6KzSW?kCuJoJnYbus9{E9) z#EQt(+U{Lv8SR`?Rgi+uobsK(OXmf{?Nw+55!I}Yg>b*FTh-PM+FJ!Y%jY!0LGHcZ zoo@Twv%S@0ThsRpFYOz%ZDP6g2LclI<3ha^#J_E_x2kOP2{uvXbJkYmtkG*ciiOtf zd|!g@4X$|LYffFFEor0Z-)li*57!Z^J3qWjNT~4YdC)bitoLgtboW0Z@!1Wgtv2Iz zQ9EjGdE?{u!)N~N!EN85>!-c@@qNwi2rzv+`F$;5s8-cx(UowNQYKjSVyE<|be2+S z2ov|d)UW%-g5qeTpSZocDAvWjUj6JW z!K5w08oM!+WG%wG&aEr8R91* zrs~O$mZr&kIf2hd!IWN4sCP@>ood@?7!a^#npRTeN zD1*|l_FVcBd$6OqMu-LX;jrysx!=GCS||DL$stKa{w%cpdaLj>cF@l`vuty^1~m%r z=XryA$KfpO^WZRT`iE8FhNB+AA4kI{iw{9ea*lbFTNE4o63`AqFjHO84G;T- zkt!&ksJrERuG8?E2mw~;R{m{S(7QvjKPWeFbh>pm0t=WKFwCrRcV5i;CncG;p-s8c zhkOslSa7zNEos`(dfQ|XsZ@!GEEt&A8yMYu9W2EJ^{sSv3}Mx%H7ykkEYPJj=M3A_4lDc$f4nqcU_V#rUdmdS$O`i zuD3%!e2@$nVNF2qoh!?A$)A)~*MoljMS&Pbk3`@pLbug7<18P%I0K zO{Lz8Y^<~9vqQ=K)yZD=OggUza(ofE3RmDnPqOo#^PhLNZG5(hR&7Elq&bK1M4VF2 z#vQp?M0b3AUfAjt6fqyiZ3k`LQXD_`qw(Z{Nv7qf^W?SV3eBIxE=1;@VB=kJ6FRc` zEuoD4lNe$D1*w2h=JZ~RYq8;#8NE-mcpdI6p))GKa`GxLZ;y=%ExIm_JQAiIY-5vG z+z{;2D97F%?(Lph{vM2@MyA5hny2rC1=EXO%1m=|k!GSNt+2Ju($oiYfiI#DdY08Q z1{2^DgP^qmB^$I}NH%oUzS(WVq6Hb)XP*W#KVC%QY|UeSPXeZLf*3>EfZ051*xgnW zDL2HmL-VG7q!s97%O~gv!mj@mF(6S!Bb0$yup#!+K0Kk5;bQJAr1pasqtiwjQGts5Y$A=aOJ7R9#uRdeq080ifnMw77zifcH|Bf@#45BJ zocs_M?9n#7kv5dJILfZ~H+icsLueJnVbis#DXpr6+LJHlJy5;Qw|z3fZU7$zfe6yc3aho$q15 zm8-l<@IW8RacnsfL6rXezti9SK=|WHmE>_G-yj<62{^?is|iHh-Zhm@LT)Bhjm}Q% z+>)N3mSrx&0cI4-baA}rham-xR1tVjQlsag9pRr+1zcua8;jPRyD%MU6>Q-FL^ZV8CE2pZ}zGwSpaO?Zl|8@6` zTjAUb)E0jz>0#KxZxYoZ`gz`wbl4HGi>Ps8Bs_W!rsu!!ApAB2a6mkc1iS3Fe)%N< z2P^0t-MsL_dsXNxO=Tt0syh^(9Q|%Y^-gUV{GKD${IX6P6=|UOYZLz_M1n6ACI_0l zOd+e4>bIz4ihi0`2suh%ICnO1mGbRkcOn3=p}*#!(!>a3}(--^B&l)1fvZa(Q2SY)*XNj z_n#A121*)GZ}SLfFQVKI3xOh{P6;M1hdnS|f`RuVk4~y!^0QiUmTx3)E2ziGB@uJz zGZewkSz?bQIDiwxgx@HHc6Yc=3GtZIk4An@YDFjB%axpFNzjMvmy|kMX0|^eA2^M^ z_-Ql*6-4ArjmZ=LvOR}Bs>xCPQR*v45#>?f5 zl8Wfbq_XPARAOW^c17Ht;VJIpbtY9M z$44he|M8wcEmThE67~}DGY)wjjI??Iy||t@BC<|bY`+(zVYv#(W#FKZ*MUKZ93=nH zVbjcTswa9}Y9_+y@xsX6p6~~Nnw*kHnj)7`TMwK7VrgSj)6ORC($R9&68O+90U=n1 zhDtPSV}m(fMP+`q81e983FdJ{T~rT^d&Z#p35CooPzywqH_1e`33+EKW6LM8^I)8d zR3mD>uCw_r5lRb5#{#w5WV9h{DbnzpXW^TYo<;YzvI~gn6<9?3hXMEG||M+qNM8e5mNa@ea zrqzcJ6A`#zS~9-Rh($siUj~HO&f}XWdIGq#G(3H z_p3g;uCNCar>!aOti*`mP#T5v34|FNTJR}fDDGRMaXC)<$cpD6ZhVa*!Iuput1<|G zW_PU)xA_~L?%vNNL*w0OgV<{|Qr~J-vngd8e+F^sYN0g?j`;?bW4p!x=6o`C!Km*9 zN>I>@qm%okqQaUB-!qfY$3EE~`%^W+8AI!vC^ou*5EZjmxniQ+BTLVr*1lBQ}OwVE} zViU(HDbG_HOa30pUHf#IHmS$xf%l)^iZE$zhB>9ZI>>VNeH;_!uZ~8dG}kLDg(!%GJcGSW3-=)A7lqRH_AX zFvJjh_2pn#Pe>TfJpcRu!9%d5%TM0Wd)^ zzC&x){|jJ2bqUB`ed;2usJFh=2?@R^s<4-dvd9K_n^H~U+ALSaY%*GU8(@@4U^#Se z(yI|f9+eeWjS!>b9QqNr8$b4GeC5|KY6|>&NP?*d@pVH4`fZ(yq%0T^rl3)ywe_bk zPD|Tt8##5W46Oc_Y@simhtqF^b$EaMQg^K6`%G`)q1zXpocdp+^66i88cYm;T^Zr~!MeC<|i-N#Ugh}j~1Com!y-HZ)h zpb*%Q8Z{^ak{1z|(7JP&R-}-kYoN)PwQqz@0cnK>U__Mu-1J#!hz>U+lX|}uM_Ilv zixk8gWu}UjWTAhEWEaiERHmDq#JX73W?j0qNhYKOSy`j#9Y&tO8w-E*VcndGqb#PE zvkg7=E{WJ+X0m>@e=YU@@f87;K;TnSC_}<)13+Rj4&4L1BSty{+Y0`2l)wrnqvFX> zVn|VfI_NM{lu(RmE?8DkFnX11(v~LOLne`XkaVAJ4(Xb_H=QpfenVnJ9~`mvE?P^8 zjySW*mf%(X`Zf>2D4pFLL!)6pIW{8JwDmMdGtuxfH{tF!KE^diKwgi2CBi4*3)Yhx z|6nqr#1K+hkcd71;a?zU>9LW%N_Vej8jr73%HlI}N72LqJAG7IHgC#v*$q7zyYPN-1__PPe%H=bH2&-k}pl ziNmLPksqPWPoPEjBRi_etWZw*BA$}4*sG;r>KI=_ifMz`6&M-5;NYLFb|;$G)m58$<39engPoYcBzEg5 z?|;1jYK%{s$gmXI_Reot1=&!WWg#TU!GaUSGXGi$KjCB{8d{(^38=7X^J+Zr#jx#H zJXj5)Qz9n%L>!H{{97{6b}gqg2W$9A@`OzEEgtDT;^HDGI7o) z!pZ5svCh|Z>cTiNl$VYyCm2Fft7ONI*sCQXc|NLQIusAMS zK^?qPB`>PPCYa)!GS_?Ygkqk7#GgKzf{5b%euXvU7Hp?5O2j`EKO+?o-stD*xE`iobP#{?PZel)#zO z-~9y6`4FsF!K^?SaOhUj!mX($Q$evEbXqNrepz)&=KjyGjzeq+tJHS}T z`onazb2v-0yscvO`?~)YTTrjRnA{xm=K)5zsfIDI8N)Ho<-Tjc1+eprip1U`*ePcExI4d`yw2_;m=prs4gfr0iT@lG^3?Ih8F5rQyF=gc+7}=u9-8DOk&Vy zdjj^BW6c}3A-l>&)*`=uFe*p8zc5MaTB4r4Qwq!Xl9CE*c?g-DtSmC%va+Mk4z5@O z$-!x3$6yRGQ5ci5Qf8M1!~3=?a!RqA%9f?-PpJH`HezF%n-&k$YA)^0qIh;&G?;N|^Ts&tHwL8BYS)YlfF%`mIX*L!l!c+NV zgHIdsg6PRV#h#pT9$Yj6jV6j7cU5r}vq8_r?a^}}*L({(*)CFn+T z*8kal8iE{NgNTesbvqOeN3Lgn3Y-3&hB~0-ZO_oIcF;r9Fnx0 zT^eqG&-;G_g@G}O@Nx(6Q;dQ$eIK9aDI0qL-Ym;jb8*UgAnqDRkM#&<{htcWYT!^b zx5aRYKlBkel-C$q3-YUI_#X?+JW3xeqM3VDO=K*ceM#}Fz6KLg*dr|QEQIX+nyg}c zlbHEowv;4nR4KVKt|K24D@6kk+N3C(Lu|+yfxzrk1vw>OGCLCIz!i?P-)fqqJWd@B zBskIy*anRMdh1ds%PN265#DN2)^>Kj{=)}c%?d;ADJ+~2N$S}LoA6%-&2<8SH5U|1))LSITcd-H~QKr0>5_PiT}ZuxEYTX zu?e#wzy;vx@@0|Xzcrye#w-Lp?m|UsD(i9a2TK57=?USdRbD_o#yiP;g7M%HU&mjv zh&i@kFCxOso?e4ZxDl*Q)`~A{I~ydHdIF`3F7x;ossFpzKnYP^GYM>-dqQTP7%=?a-#17{d$4>q^w!9C zs!0>Tg@3HZ10t@*jZdQK3CO;dJEZO6bpH|5)Zu4qcCDQf32{47G|5oZO~qIjzmtD! zAWEpYF;o4jOkD;kMT5jsL4}+;(@mQCT@^&w^oU@f)OUf;IpbyWAfP9?K~5;LiOO!P z>qYgkwJmYBC#*HJwykh3W-A%0&SByCTB$StzdbPk!{f8m!1Lct`nYgtwu3(9;d3B^ zm1Xj4_HY0jogAhFfTa{BI8Y6s&cXKN5m=dGBN}@+G6B=Cz&Ja7nyfp8q?RBdD)ET( zDrd|0MpF6BH?;9p}q7I}g>A-%$TY+Lfn3Q=@ReL^R$9 z+^R2Od6G9z04!7-*3B$|2*QQ4y8aKNkK`&6*NlKRBmKk?=o+*DN%NLJDY}8A%#Kp< zUD@B}(Tprzyn-2@aG+VRg9#(|y3fh+;e0Ih@PgW*KUeF~#ewX8ISryNx8f%yvlAHE zIycs(^(m>T879_AvaFX#lr7WF8=afG1kP+T8~0!x?q4D$q0`IHnT0e`R`JWLzzOw= zbhXMCi?-~rW%$O^;O_4)G0d^4_92^Xg`;?c*E5{P29#lJ{ zS$zO`5_@~xP764#bOOd%O29};vIFS$$^y;|Se&Ta4tKo{?8!Nuw+1;R!2i7TX<#17 zx3!3e;FsoKFs@6+C+o3%ani;O7JgR~mRcCpRuo`D;x?cI-1(qwp3Rqy1BVY*F!aU z#weg~^VUWjxH1zOqeaI5LP7f$1`%_jX?rb6(TUSoa!(=`^twQgZX_6Z$O1xh^@BSx!yN@lT}V+=}QVhR~=Yr=FLp4wfWid5RB>43)iDZKsvBsQwL zNHzdU+_dI6s{=9TA&(-o$NOqI{I`Pu0Ix;G#nKKATySZxqA9s5PyEZq>^Km%&U~=E zH)-I76kUqSTD-c-+Exkm zF^y22*vykur;UwB8#E;y!k)ZgcXbG@c$B1V04F47P9TZh*wILCv*!G_5ezS#RMFsa zo$OI|4ssR<1PJa?|CSyH4TvAN2G^Pwm6y9|;eg2j4FsU$GRI4zC#Czm|5p_Pt;2sw zTK!QkIxHRrS>JvwU6sRJjhXhIgC##C%tqQvb~>jgwFmdPSgI6LN>_J3-*XPvt<9HI z0|T{#V6_EvPC}dn43*K`&hAi0CH(kp3TCOrxYyQC{we3^kOaTN_bu#I`I!iy7QVYM zdgO;UG?3(ZtQk2-kJ@hSlR|^=vcPn>fP@AhKdAs){oR8DISY#|9MtR>K*(uJg(N$` z!l{V2ws@kJ4!C0*cxLgr0x$Iz9glGP0hB~xyhcF=Mtl+eaRL!PZ| zC2tjM$lKqxjE=@x6ZJRQdo~;yNc*=(`hR!6z%xepSB@GQPUF?D!+!@v@kzi9x8WBN zP7-7@UbvD+{>6)M=M0a{_!lQF;hHhKSW9eIH(Z1_mFPV+V{mT?s@bMcgU&q(CKKcTlryQOU_ma+nc<%Dw7H>y z!4#3!eR15bgVu&))oga%&V0C4Iq1Aul4>B-!`BxFNny8k=N*EKa~~9?6LO84rb!R*3}(siNG78=ujk# zNn^17UBp`wMxrqlmd+;6p6Fi8wz81w_ivr;SGGWYQp(-uRaT=k2a8RUO=^mYib8{^ zg^lKp{eYr@nFS)y1vnrF0Im5^)X02qR5M{m-~Y6%F$2vdg1-O~Kk-XWwA^nd1gK8V z=Wchu6Jv#{Or9=GRL{Ji6Ciov;sFXDvS1M53*B9<9TY>v>YJRN3`tbFn7yi^w%&`@ zKIsdxrh60yMeFr6Y*V`I8kf1gDo4HBwzO7f86#_E_}@(2_D32J5C7E^5+mb?<3k9gX2 zvjRS(j4V_iadP98Vhpq6Zi+e?ZL|r%btIQh>|EvKl#z)4n6GkmVD@sWH>x(*Hl0lU zx2RKf8(yS+6(-e$w_2$2v&T+8p@#Ul-!XKv^e$a0M|hFvt&hd%1NBg$0Hd$}NfjO(D~cOS#wrwS^B`4k4g z0o!>?a;D!hoJ?J}>pc1nsI`Cv%YWr@AEoAiv>sIfgPcg< z?-pMoeMu1tBQzsx&`3J{71DzNnY`aFn_aG*Dro-Y{fAO+VVy@YTJg!d&d$&;d1N&j zi5sM*$pV9D6l{F;FUFec$XzWvptIOGWv)fVct*9Bjnb}Tmj5^Kl0un&il{4b)|HR= zZ21XYRfo54Aq7xXu?IsvM8YYw6h=Z=52<3 zRw}e{X1uk*XG{?NWVs=B3S3F|`R*{x{FLPhIkaX4zCV1c^|x-hZFSS76sh>wsH%G# zX%YKNHPe7m_y4+ZCm`TeD*X91G=vQtS#hrmAYx+CfI-KyOsEV!pMZejjfNKIUEx=U zQlL`@?0X|wlCg?R!9EhPzkk2K+B-UOTLHA|Qz3&-2{9XN1=3sx(SxN!x=jB3`P1l7 zUILt(m5{(YTSWE5^$!f<5d)hjmbM{!)J46CUZOKTCZv+aYyAAKYDkJ^DORg};5P&8 zXezOKCw)S>!Rjx2d6QX(QX5snU)sa~rEg9FThM&iGYvgkwEyo|iFpB-)e!nB$FGsL z!%&seg#u~sR?(FmS-_y|myUq#-v&_@428yH6_J^Yy_S{J8>n>C#XJdDZl)U?*E&%Z zm6S{X^Vr!ME4+tm$;TbI3>}ETS^N#}NczA|3M|6I!p0UCqleQ3HyZqJ8^&j5b`p)O zjo>|P1jV$$Znh`KtF;9!(JHZY`1OGf2BH#k&ZI#gkmqptM?E=Z3RrO8y>ww`G@uLk;bOMkzg_R) zeIoe$s$zwqavWnQ`RRDF4)5LYz&D5lKZbt+EqXJavA0rn zuQXDKFje1N13LG+V)mL8D(gYb1^t+1@x$5b1}xXhA5~=|6S`=OeC)JUiT_Gja#b)k zS$K3^SWMuz1!k;Gs$)DRj*eqGWUB0N!v)|7$)GzK5j_@?4kW=(B5jr)iwx8vxEs3< zBmsd*0Q-cFYcLgXFfTbYtNgjT3SP+Hm$R{9Yiuts=LDqbf*A{IUM|P*j;M!Zpv&?| zlkH+bbM!*PC_8!cz6fA~@IKfK6X*C_UBA&bk90h}a6-q|rq|Kh2>m%VYJ&pY_BzZH z$-|?$^;Ppd=GOamE^|yGH>tL|#7Ok-W~1V!{@P~$=gXRfp#0HjeEF8Q7l{KzW|mV^ zLzMM+x05l5vcc@Q3<#Mc;aI7Tr0UCT7NCK{vwksSE3>80Plvq_(atK^&#N@Wa`cqOKN(dQ5JEId(?O&F2}HembrLf+;W zJD+0cXq19DO==3A?3c$sF+~kj9tWnWYEsJ?$kth8LY8!ON6rvzSpV5PX6b;PihW|- zB`Vt$F%(gk2(pY6EM5)KW-KGO4umFyfUxzqwh@USY|dAw0SiECk|W|%RxL-sCXNHV z`@Z8aCN}oRY8;qpeqmvW2TX4*-_b6dfymfoo7H0ve^1FzphJUAGBn}rT3y$(o>=Q5 z8z^CA9HOd3rO%;@tQsWDaihA%N<_qHDlt0v{fwMcv|ZhCsQ$G9aclE*-+y<`))w^i zm>1PRV{wN0nRYdrN7wbH_5b+=_<=DmrBqg<{)nK%z@%g?@wrf-Keo?K0jLt8FCsC) zm2Yi0Yr5+Q;EcyAIPzcmbqHozzdx= zD1*_buavAH9+p($nZkj)Kq#MOvRjJi9TSUO>J#gEjaWU2X4GM70+g=fC6UMl-RGL+ zHU!fNx9j2UQTHDVC^^=C9)z#+H+w9X5)V=?*-roPpk}+Aj9Ko}wU52$ek9YwyMNQd zRPnTrvbEx3f=lczr=(GfS9DeET;jUm!rD}Q<+50BByB}~fyd!98ne60_gN>6&n^{C z{q}GL?l)MGj>WmXzR%mJ>qKJI%D_k;*Ns+TryH=W$8&$6+nDJX><7Z3z2ALtI-ue= zVUfrJLO-|Z4SyAhE;i0efr6B1vy6iLV2K@O+N_|fG-gVlqG;Gm=O`h`t{>jsM8g&I z_j&gwXFq*@8kjivL6?uh)t+*(x4*yNG>v7!Gup=K=Fhts65YhHgr31rL@7@(YH_b$ zbrJWQJu-t-&D7k%pxBEfL$84hNt^M+2N;X8iUG8kC_H}T8v(>7?DZGYPGX%F?h}z` zhl@Jza()nw^7h)UIrZX=N>>nr3SDm3anfdLfMCw8&sZcITtLwsA;?L`oze+|e!WdA z2X{P^ocB%}o0$2yJuG44kM`|mrDLvRqEYcgI(Vkv6l7XIFt{U8(IGbD>2Hjk1@!JN zBI&veg{M6#);vdrUbIwrG#T}`cvP6*F)nv`4gnG^!vPzfis2R}?^Yv^icS82tJiJ) zYfd{ooe#!(9_dv^hJM!;kc{THgMcXeu-xo`beVaM39hudUl;DWl`zQL>m0JFnE@Rq zv>c!74xRRRHNKtT$mj##e!NlykYb>MeCdBmAIxk!-Wo_stxKlLxZ3j(*%NoU37f03 zMQE5yj5~6@^KP#Ne~3%}=>6b`QF$XxlEL?r=ZgDS&5q!iye*XdpHZyeP747IAG)N3 z`AM$q5jdzt-@3Rn5ZwXefT(^jDzuOEHmr}PhnvR#AZvb%i8RGiZ&cBb*Uf(eoikLEH~7R7B%X4 zG>h>0l)W&oSa=4*=;`-6dK7g}82ii3A#0=rfwEtrxl|QREth94r)N#0;ZpUXePrmr zd!$W@$&Cgdu2uD1$jw#FxvsDlMs3I{x>`n0ZaQxZNwH$tB=T!GsD`{+jUumJTVigw z##~VWI<~YO?9s>d*3UDR6^ZKz89P{6!L5E3?3w2+Oy|qTJ)O>(eWXS_rAgjTN8{JA z^tmnvo|o5jhsk?o30k&I-33d+kas4e*uv0hJfH@OkLz3yNI(+V2M5sQ(b7JWz|nl& zzOUYfQiuZ~tI)}M54yR8cJ+z$7yp_Q`T$ZsT%jghEH3=JO2;_p7F?1NpCbbpB)A)9P`j)%d=*t2UM1l-0a3N z|6w@6z+ApQu#c=l+P15|QipGNmJ%sy5Nb;VrbYl|GkIxgWsmT@9#hI~W{7s~I}}l8 z(xurSwV|*0LUqS|Sos#6@_@5G6tBjXly<_?_wx6G((+r_nk>htcZJaxK)>}Z)9dH? z)$2^Q7L_*`+x+u`fV9vsDeCHVMJCq)dM2Bg6^y+>>+0v!Z|_UY3akAi!*@GMrzt*l zvt_+*J1cCg4?L>kxBVrdeI#Wm*VRen_mO4*Zff;pTF>3kk{0c{Qn@4yNFBri zgNx>u0pk#Rz;A{rgP08{B&xSkQ7eMbbyZ zt)G3l8>S>c&l6i~bm08)^~2DgRH~EHj`RiN97+uIU?9%5V$gnkdV0Ii`;aygTVvu~ zArKW51h|w88rpQ;{vJgCW|isL+q79Je&#AbEo0zZ zh}#V*aQ7W-*f+PP9w%%0i~z;g?^geIfdLc)2D3tVZm|}ssY-J9?IvRkvpN^K{7$hL z3xVd~yTmj~dzqe6ya9k8v`l@Xm0j?IhCd!M&+coXWY;g0O8K_GA-~8oZ@+o=(t~>A z;>(OoAp+cU<8*G+&#g-Hrxy)66*$DxUSx?J3+ z?aXwo^)r&dDCIJn|KW_E-PCbH$w0A3h0jR``cmuX(H6tjw`ZQwqx(L4UFTV&n}%%X zeK@t|n;u)dS=Z4ssZPahK65t!_0{McxnDkEjRGh;2+mB^ChTYAkvL=0a4#s71}Z{fzCxv4Vb)*y+71KFK-XhgUxwl+{$}f5S=0% zkJb(QmYoezZRp7rM;8_K6@DpJ_jc`tKZyKgqy<=}D}=2r z=d2mGUX<+QVQ(yS)o7wkU~iu1WomvrOKOLwYKZ$Q6||ex1C$>v3Hv0 z0V@g@8Q@*L#+~pyegp;}Yx9$U;l_Ypjtv&NqEF(QxHHF5LJ8*YGw*`826!Gm%5N59S7oY@X$+E~~J2bw;LT+fCJK4IIF$%G`;G#%lnh zu;AX!W!;m*Zy|yKxj%c;Xm;$Dnx|T?SEU}{*RBkH6xufucWZb*zO(=Wtg^@ZWB(PL zXRIi96^|F~P-&)_Ej@Kz`4goXU{tdcg40HC3SpKwfjG`$akZ?notL+_tWzyBj2=ySuwVx*Mdsq*J;8mk;iOC?mhkde{S=*IIA}X^0FkabGl{$}qsbDc2`bShZ3rc4_dX8KRsV zaqAypTn823IPGery5(ET=-2Wn*=Zx2B;i;xW=V3t6T^Nm#}^hc?Ihj(seH>ouez#g z)m2b%$dw-Ty&RrgX}ah~^}$;LJr2eR$>IM{E`V1Its8g{`*{GnVp5k_g)A?ub2RYT z&5BySDo8jR4)t{h;7xL*$h7}nJ2r7BND(Be7~6Mx^SrX^)@J;2Ch{!9D)ok23+Y!m1GhN{ss_O9y;NxQK*}tu0-PiL_Ko zjhNnk>ZKV^EWIuiqVUdXLiv2twJqMyfm=-3B3wbm2uPAUP(Kd38xGWc$EFv9hnp8F z>U`#vcWVYA>q*WM7!aHo)SK zM$sYi2e2bClH?;t!Gmh>w}2G&!3H-r)Dv496cdqkm1t)W1kwK2L45Q_=X<{w?)yX6 zW^e%^+eBh*lY2iZ*br5-2!i{<3oR+CyI<5DD&5 zB=IGDI1L_#Q#rb^q)sT%Z@t76^vuxRnCo3(5z!-Oz!4hC&wH9|)s36}c=I2~}YWMK-_=WB{AlAz0Sv ztdRxsg+XlLzj-DB6Tm5q4_H% z%{0v7a;$*1w$(_G(fKaB_qXp%1$r-(y(~Sfw#QhV^a}0z#G)QOA*0+Hjc=9wQZ4E7xlh#Fy(t7NMid-2}ZYOK(Czr3pq_$ud(*OPUF&bDz zwWQeqU`@3Y$sCTcu=eFzIL^6~8!1ED$d0X>VU}x&iPWt7DXSy(1;eXlBF0{hX{AS$ zUU7&TnsfQwxaXauc@DvzpOTjMD2{xCwLxJJ-l+-s?S_NMjRP}#0h`%w`6wH2V7`*k`!gF(t1nnKW8dXv z&{>QvRT5+|DtCY0VJbq=NdKl>u(0pW8GIH@C;0MJB7@|una@P2U>8JsSXN&dmBt{*l%j>18;uD7Bl^-X13Te zl28AwvRA$V3@+x-mrJFigX$4jr?+)nF`dv_99K8X*=`&c5^|UX(2JIM)7fA{1h3C^ zvweV`xfPPG(nd86sjj_+nGi$L!|o9QA9Q#EG?3-#HAKb2e=+S2ezHoJ&l9s^R>cT_ zxHCeFfHx`&3aK=EiewS{hqN7%ORj63ra@1Q@*8AqOOR?mp7R!{8lNbm=S=${DOc7YwSN9a)szN&*jypq^D|`o zoSC_UvI{ie@4Bt)53#N~^)wzN(plQdpT93k3Tum!r}fIdKueFjHFLEf3}{E2-k~2~ zP*2!Vy0T`wL1P zQ*GJ*4iR67XTK*LXvL@w(}fNRP_UXe0ovrIG8ZK~mZ0=;SW9lQ53KWaZ`&2MP)cRI2k!P9=RSdjXB z>b^FXtf(1CW9OPKlR(&J{P&=jk^=YK%v<9hROFS8K#?<%^YiB}Fv@gIH-xK#^Fu;g ziD;o@#;P=2kv_tm{J@NZ6`fKf0E@7TON@rS=7uZ3>Z>Dj?RL|?4VNVNU~}U_v@y~J zaBB@tFVvE&2)13SIhIA*iNt^(*7(H309r$f5S$IN^13|az?X|9*YE#Q+lJ)7BR+1p z8Vrj?JoDw$(ok1-p9Imn+o-I|0SLpd1Fo^dN2Sk32CbG?aZ+*SysbzVczD)k671c` zp$d!t6B+;cA3Wd~o{F;+$CFnE!&5RTck9rHckb!NW)gu)QSO^5a=?MB=se7%`{hck z`w~ntffPmkeD^Z%JG$0ieqetiwF}!63`@vo?rJfD4I<0Lb?`?_vzVpPzn;$Zbx0i) zODnOzNHaXI{UuWR#ei8idGIHrzw*yAlPGeWB1yI=oBja|j(&o;5x%7>M@6*Gb!6BM zvP+1W&-`v<%QS~ihbh;-TJY;#No*068Dee-09KpX5qg+5Hh_9?qd!yP-xUD5zSaPO>kv#!_Q zdGXy?D}sEnj=1Vi1xgA!o3@7cd31Z1;l;VGW zn!%9#z9Abv>8#nTvbfc^xZ*2n#tE%LGf$&oJ+}qd%>DL{FJxr|MWbXjxYgRocgRC$ z1d{{wAZ99ET1<7?Usm-EN|&-N;XY0#>hLHaaSS>HNIoIK2)+SMHXaNaqf&xwBN{>} z6L?wM!TUPBsVQ$x^lz!CMr9@7>G}6KI`rX-=1y@b@56vUB@!dkX3P^|4-X!LQH=Bm zU0x3v-Rz?fx{1`3FroNS^ZNlzireEg^4oy6?E6BCeO`nWoL|flBoJtmo9XL+thrj@ zsPf0ZANWiu4+IX;Ojg73TLgPE$f32$2@M6hD%;!RFe~Q($5)_Jhx8F!wVO0v0R34eo_*~b2@pUR`P`af=|7MiTv^cKcumL23 zNblRYfi?bT~monn^&v$uuy66XbG)ZvH(sW$466Xn(Dg{Lb7Tm0&sM&j}L^!&0fr z?-GzLDTJ_2N#i4S2X3}Trfe^LSlHHg8B^Sh7F zCAS}^8tBB3l<`OVy&Q0xO`6ZH+xWSoOs;QE%L^`{5gU= zXl@2z&AIJHZJR#^!N9XBcQ^LKe<$yb1Qk+Re<4}~{a8OD=IN%Gr!CcDC#P3L9bWIB z+(jo$AY;dhP!AF2_MBS3et*PO%#^t?L5GW?_pcNEpDk-io%gmStMPrUgM3~Wf(0U9 zY-E38e-9Ok1uWNw`1o3xjGYJ6q2@JW#S_sqL!Xtb^khcTtHcy2H~6=`K|e5mP^G?8 z=?R}{BlCk`S+X5Jh2?!x_;c5qOk%23nNE6^aVsKda0g?`XDE+s5EZs3G+MwrM!?-% zu7nbIIuv;}Ff^Yd+0nF-&0C;G1o*+ON8u~C@kaV_qeTqHw-NDI9;7MTw^wyrJbUDPKXYZQiH6|gY~5W~o& zDF-FJ_~V1kv645~-+c&=KZ+}IxHR2$$g%$YBci#NDwvFEoWAVapPMxZQwIl$Q!WCh~w7?jvQ5j}B80UcChVJjP^Xd;`n99H+q z(*0iFq{P`c)UPhco*$5N7>NzXNXAFuiyAd~KQ}g^o)E4jLbzb33bZj45YWtAHB98t z{rAQYMbN+n#z0>pQo}88GKqzsc8DcoIcmbp9aRdC#_UAw=rAAS-%0GO;RPG*#ruwt zAmBVV0zFp&$g;ka4@5LslCInx)ORst(mbN1p1}UxM`L%$`*S%u!hzUf+TAS5kOy6d z8Z2HF^gIUhxYgw*8#AVIQrw;6?I0g)m_Q)|*jUCQuzx-eek{b^4tFbhrwAtX!2N?XR@f za@)%pk1ht_8y*>-+c6Zi0$+%g)@;&(-D)AwLUcW$|3MWRB;rpMlqjCVDXs&WVKqspZnm$-G zU*i>&1W6`ueAOJby;)yny$y{gw|(f~4reYy{^xCeR&)y^ND*AhRw^j5nH>q*tr%-- zEQRp$SNEuOU+eOHRz8V>K$!F#Ng7w80AC)Zl~o3vdsbl)(d_xg_99ku4mS(V)r; zN?tdaB)OdOkcEx@MOc;|O+~p$K#8S`jYKu11OnI`UuTR%>)OaXR~DjeE!YhN@xKk={0Hq*V-hS>0>xWMsV112>2gwx&5FyDvwV;$Vq#vwmaHmR; zCwFnYxFJWN=5m^a*7t_>#_I{*b}m|w0I$zDM3mVCz50J=HUGLI{+J~0WT0ggSAhx( z-IbF++Kes1M_XvYudK+$XT2OSZI-IChF1dhB)ti!kh5o9NeKk= z*0plaPRHu}gP!0Dg0t&2aAH`{DZ$vGm!RCs1Uq;IG8b5P6A(gawd#yq1uJY zZ|IAe-w@D2wprHPEsjxyNJxFe1fCjf93*U7C`p+gG^!)-ulaA;rz__VlNTn~a#wzK zLF#HjiakO)zK~Y78j6^7Oe98dz&Wtv_fe1+g zMUJw$mlr-@l5*!qGCe(Q`TOvY)2-QGIF2NJQ@8=(-f#`N8IvTy85$Z|j(F742Fp_? zrn^~?L5+={{zQ%Zmck>vfqEPGK*YiKwwS=Cw*WQXn<@k`Bl|^u?_{$_vr2ud3FKw8v@!_ON9YL z3G=>qLp@J3GssR8biicB>vCLXd~wk(t$m{HQh-W@4q7b?Ie_z#9hMwVWvF1?X-}-W zofxj?N9V!ZnpjJNvIU3tB`FDLJU6HB(z!o_<@TV&<$>i`+Rj+TjMHoFnx6rta7NjX$xNGwV)~$uj9sDF#o^$=&k>6buewF$_(6BbDCP=2a_ZV9Tykp zwH6G=%E}sau{*j602j!PfCIDhU5Tz*OEKiV7=rz);Fcas*)2>jhg;2W(QN9WKmy%+ z9qvFxf<4io+{5m*-%P_gBSLYEh0$QQ1Ru@SO`LGZB_66RJo!uPuUr z!#_#y`ene%SLT3&MKAmM>3a7qfMeJ%FuU)&Sz zuOB%qAvd{IUajo{C`KSh8nQuIVPT&RKbUUc`)mDN34j0`@eR@)(aOrosEa6>$gOKd zlR|J2-D~s6*aQUZN{MLA0MV6sk`Y)@Iym6imYCFicELsEQ z=g@1A(hXjz*ZFcjKoMp1P5MA5>E%~{D~jut`MBSDX!f3q`oFb>%YXIh-&LpHfAC-; z)qZUD^V6+j+HRV3h$~oP*$IVtVWVKc;}rVg2x@F=kElMfk$@694`2K6V4Au_2xj>+dDY$ot&YCcNSXFp(RvF z%rog|CkV}FRAz;RV!~|@LBwKw%)vsMU0*dwpdn6goq=J+jmh-FKuR~)*CCC@!4_UR zMj1gg(W`%av7X033{%vfQ|@i7bj|PAsLM9Z{g{AMQd=B&EBIL?5Pn^DPD9AVE?8tY zlt)XPRydB2FJQL%bZ%5`CQ3WNnb3`#JN9!qcH!|CG?=%9qM`<(C0pen%?R{vRPyeB-gi_dV4a*}$8WfXC@hjdRTiR_+ zJ~GWc_0#1oulmhbJ^i~3Ab9n#P!Dt!Z&~j>~kBf)e5S`NVa zj2)9?i$Nnh6ez**MvLqmP>qd?eIrZ*nN#**P842Z9^!STr-Q6pbQt;1V!`;=M>6)z zHcK=uT+CBjLcBbOq8@Wl>ASzvMX%wUY>|Kc+Kioj#gKNsmVicV4`mKw)hWY4f>Ua7 zJi7_Zm4}={mI3YHd$^v24;-Gg;%x42eoTNyS#= zS!_*a*_dOFM%62oTKoNWVaB%a(^Q%h$1k2BunPjw@GKw?_ zFbXff`5D-`7!;H;qhM8oAQEst@EMm1K3z`U z0@9M!j{VzMDQLk<)XQRX<>zg{(#W8X5eUVs69^>c5jo8qsIyYn_bm zGyZt7ODK&fNa~%<#%gybShwNQYljM_+ya}_$uTPEHhdscP?zGc&J_z42ez$Jd}BY| zRi|QL(asuoUf=%YFsR3M_Q~KF5A~IILY3=$DS&f-E;Rr)?&Z_v6wkl40B!@F=hx6x2IQFYofA0+AIR1r1a;o;S}NmSwbYTzdV_RX*uTKcwM)j41pG}r)Gg|I|n z8(agu{iVg-%_~>TK&CZp(V$~blzLCJ>Nv)~33!(Y16~=Y&Fv4(se02?(+3B}FZ^v6 zIVWp3fIFk2ua}@s0k*tU)MR3h2=N1dFHIloEF zoW3Nh`#35IcWUNxEaj>CdzS;2Lvh2eXv{Yg%)Wk$mtb$zTd)@OlGkS3&THdnP1S-c z;;>RDzfGc@&a~MtH?1fB=^G#oJwv<_w2Edww-LKda8l^E21Uy1=nzw;KG1#^yifXa zMmp?o0VF652j$Hj5p)c=E2Cb4Urm1b4uai){t*veeOg}4yl#0|KH)x2@g1KYFL#&GiXef`5u*S=+nf@oDwNf06`tqRuS8V5oXj*sfIh_7E(|KP5<`SH)Dy zagzFvYO2W7q)6>!YjPic?$MpviO`96!n=Riaz=MFf#)<{fKv^cWp}mhdh2=a%U!P0 z)y?6&x$dB1$+>Zy56e-pFW0q2r^BtE@Fu(1yA(W9L|DJM?JTPw6WFhLZ`X!HR#hq2 zP7KmkU4&qRx19V`cJvuPy*lg359)}4NY5{THsmOBbz|-5T5S|z9`tBnMyeltS5dI% zhCX6rx-Rwc_XW^nTIIAVjAdoEexh}kg|=lcq8{=y4sft7)cg?u@&OymQOD6i#j$rI zfGA6_EpsylB~^31aaG?Ea(xZZ@NKdF;RFFybpOL{rj`!q)8?RXbVJDK4*(fLHnH(k>LX`H;#~jov!f$5~0# zJTKzIr~SWa36Z}_SL zOLcC$LS`!^B2XQoeW@zU{fss)kWNxsV0EfgGQKtj-03FGS{P-O>D@98S?LPvvkMSC z^hbx?$m?YSC#=2xyfxWjUh(GFiT{bOR&(={?pd}@8Gp%KCHz1r9NMP{n(xJ1 zLAg6q8sGM{AHe*#-raZ}__nKWAV~kyTj>ZiqZ6+_0cXIQCsRxw=sr`$2b85=aFA&S zh_&hh9WWyn>{n(2vK3Jaff1Fhd~%!!otGFMlA!x5|b4lHgqbMJ-@k`FVNhd zI+8NoyaFEKEx&y2-^D!j0)6Vkm3-?!WUr}tpd~~QK~Cd{B@+0EZz)ZIFUS^8?|qv; zcG^*~91_kg65>!xebCdSDgXZ4pA{6Kvcw9!N^$r75D|tJM8|^z-fDa$fRFgW1ob%9 zl?PB^B40hmhd>X@4F(4mT~F|bh*8~1$1j?&it34;mf;${p?$5=Li_MRy=INbky*iX z6X;L1Z1*eaJF#(8$nT8aS&GS<$z_xdav?P18?aB#23cERH~PUQv%rWsg(7t9{p8!8 zypKW|DAGYvqLH+Q&+^V!5jSkb>%8U%Dtv25ve{S<8!pO>GcbCFePI!+i*29 z-js-UljnRFDMJdjXG@rL3*{B|My8Q5PBMw{obvu%+1!f80cCz*JFS9kYP#1$socUE zgw#i)k{FceSb-(rc-(>Fv>M+V&yPbmvt2Zn^9KS2JcxsNz~~BW48t?X3(4Ir4+e?} zX|GRi5L!=Yj67I4X`2@b8*idByITP zL!^W7>As$J7$m7V=j*$DKA@J^)!%4it~5?NgIq7z0yk_3QDu8tGFCZ5Tou1qIQGNr zfFE+!Q1_GQo!@$Ga>{>7HU~=JQVsg<@Tbr~KRHhY}f?S z{es4$^_zZQq1-}dBPCS97$4*UMNWgTSEB^AunmZ>pY#wI$vWJ^=4rXR z`P3alKR+Px>%3?{&Vox;2hc?&48djMK{m{NSk(=z430>c75TJhq`pu&4f$8nQ;koN z^D%Y_;*7!SXUNhc%I3G1lsmoVw9#W@6NU-##7fdY->-)Pb@UaIa^rQ}jL_d(2I2ri zrK;1%|2vl!PJ0~9#xP|)=>t&LUYZ`=KO@;2oZu0+*qiNu6SCBlh{jmd=(pk`5jFGU{ zC13-(E0fh86>nww!Sm314mP1Xs+MHKYSKIV_6`P_B)4O1pAP$6inHd{WiwQu>M7jw z_IE2ir+w$9TGn4cpUNFHXR_Y*P11}Cf<1h&S#e}k4>EuyMn;b%4i>Dt&3+kNjV8&o z*R=D!>;LAOY{U^q7d4LlDUzHo{X=1I+(O={4(ILflJ#;=2Y908;=fCiDv&W)Du5E) z-Cl*fi2`Q7Ty}V5gW}_D*Qm4QHKW=*C7~T4C2|~5#W5F=_S>h*R!5*2R*&_yZ#n7s zJaoL!WI{`iwX-*nN(COtn9C6Jzvn5D>P{16=h6O}IoX;$>+e>psQ>lR4u&N%TY|J6(Ir|9_CDQ^mN*2*= zlTDIpn5tUE%g+&-&`yN`D^$!jHXKpdtH$>4jU)=}*Sv^eV3ba8STi#~+RDQ5XQvHY z*^GH?b1@E`#9lJHWp?zOmE`IYZ?Z-B!@rJZ%TQ;A4LeGVwrL%5N*@wU`Qz(BPHy(z0|eXcFXxz|JYF;p;Q`P>z>mu zmljoB5ofZt#|s;;BpVyqQf1w+pKrK_2@YpsyxG8NZ*;%S`Wx7Yf-iOWP_G0np9Ng} z0sy86^lGl(LQ7*|VHUojCZG{4y5P*KuR}S)tTrt}oYbY>Bp8bQz$Snz#)zH1mf$$R ztr|D8;xnZH8*SUJ|F}5&1GedZuFpJZt&|`=?ow){-Ug)hMZzn z+S1~Cp1SFq{K?f2TMUw!AK4;;AvPFi`GZIka)w;ABphiRqlMoaGD!o!Kn)?zgLrPS5@qqgckL$=6Ric` zPvKc(`GN0l83b|o^#~(w`z<7mJ{pYA@tGOON@JB_fneU5*>MXMS9TTZyUr)XP;IP^HqthX4x@ENIHHtP+*BDWyY^ z>V;eImVL9vnLEiet#z<2n^gbKXDXS&!4Ge!35!Z46Z&V^Ys^N<@UHF*g)kNRoiV-H zC~jk-kk7BO>!#Z!$2}Yspsehku9roa9 zQaMKN*(NZ;NTg&!O$^ep#~jTLB$OKvUjHd@R-S{FF9RK+r#<{h!^u-HI%#r}ml78R zn^5O^Wtss{7_7XoM1b8NqvW%LG~)U3ckG)<0_xod@cQoypy{Ik7_R3A?lUNJ494Q8 z+?0at;LN@9(ozjv+{(RXg{`o5$6lt5OD;YaGj^timYTj#)j^%(VdGaK4<+HbBYMtK zey`=faL^#kxmS?)7VQvY9_jKXUlFzxV0!k1F^EAb7SK`y((5<3;3*|)+4!~g!)Tg* zry9lrQ+Mo#sV8Fyum=0?^Xq6{ROl8^zX|<|ic_aPX_hqUFK7HcLBOO)iZT&#!?zr3 zA=py}6UaH;^{gS`X9$PNn!%!C5IWj5Bb?0NDc|OlFmP7peBJ#X*MGXilR%z2gs&Y% zM7k8WQy$cya#ge%X%J?`^X+f+A{SD5g znE)iusT;!lPOVxW*tY}Lgb11U#-urDu$e<&>hfXZh&}e^S3?#|;(D!%rb49-3jSV! z@=!2-0`XQ`6H<#p{tYUy3@3$aX%iLPXMerjTPvJsib7Yhp2JUB-6z>;=Scn z`rNDYYTFKvzmZ~qngPEz84%_XsU?F@iWBT5OeOXP3lrNFTK$YpWB$o56vjI)<;oc#>yXFe2UH<_F8aS>~W&5-qfj^yFp9Nnk>UzFwTNE#;V;D zzaSe-m|AoM$U5(Z9R2$oU2?_-{LSdsNS${7+WN z03e8+h^^l|G$0u$6X`4zW5Zd9?^uRwWC7 z#acVl6z!E*9^eevk`P{rhUl zO6s^u;O3^laY(_OgNAkmz5a~v1tF321_Q!U^~g@TtU*a|;)0vgn@Fo5tV%`gLpYz{ z%P>Vo27bCpBGr5XQm0lF!r7_g)U7Qe6X(ZOLZ06e>F4}h~&e{UNoy2BpsQN!h zW-jo7nG*?zV9W-|AaMyr*oTT((%$;fXZR=sNQk#Wjz_*k*Rb_p)eY$EG1b?7egO&X zP^|Rn#->b?yrpT%@KJLinv^yn#o24+oOpxL9gqJn4dI3WLJPMTjV%^19?_;mPz+Yz z7-=#u%0BJVu^#7a-TLRc(4w12yKWD7lzI1+NaUxA1T#yI`uHhrR(pRT%~bQo;m`v)UTrvE^ZU+~@>pv`~-{b%(4l(CeeFMe!W%Rw!&( zv_J3sOk^R)P|CVYd#Z>dXUF1TBcSC3I9bI05Bh9GX@di2!yt|Skq4uw6w&vF%}4lyLvykb7>{F{vweB^`-psWyq zCuWSb;1_3oI#cE)bLNaVAiMCbKD*#RQV_~G6t67^PstEsifg9h$fMlrq3O%t5laO! zD+O5LtZL(0P5sDMVd1je@wq61G3p#vNi17c)s1L89xKtGn>=r`S8yi5Z=#e?H{P=@ z?<(tlIn)^X!`5oNvR0HiHyO0U_yZ*F#*OIx=)VpD@EZ+I@ZHhmTjMIfwg5bc@B_H- z3B?EaK1NI3+7gao?e%nqJ2=m4TY4m>ttD*YS+e>0VCJ6{^#s!9_nt`Y9#gv?*-HDz z7z5&(g8nzk%c8*hH*<8EG>!n+U3*@Ni-V%UQ26%+{;}f+@RB#pq@|&z2F#{exw&EM7vlgS z6fl=Tc{g=jTZe0r7;xD<&4W@$)c zfQyFdX$1`!$gtzf%W+_(zSh=O%e%0LvG#hBU<>9@;4OPP)dVWMX(tJN zC3NM*b7hBUGYYHk&iARN*#S1_d@cofuRJ%Q1jZL;gUWM;ZO1FGP&pi`{@(UFY{A=c zvRW-f2Nkjmq5Jzbf_GafUfZeK0OQe*dvPP_)~)gN&d$y$AclbeG)}XVgQeVK!@7X( zzX%GM__dVWM@r$V;&1niyR_TRaU{tx0AZVrU^tSFj*eGgL7P#)@C_`8 zGJHO}P=6I=hg2?|M~RA6@iw>Xt&EWvCl{PmD)CjEfV1|Z(j3NKaCe1UnCSMq#}b{@3O6 zYE2?z^ro(AUoIlVcgjv`VIQ$+twGMmOMD#T|I#(_6V7!>$y-B5jTl~a&&4Mo=mZ4k z0RIC(2?k8fKo{|j==K|RaB0RCsIeDRGz=b#(O(}7b~ zf~f3-K^vK~j zg2rye29w(gpt)EEk*V`b#^SvekRaKeGZf`ip zJoLmd!HuiW2HQp~G6ocQ;5kMFPI{O*vPYYbUK5ps+w(`*w&NWMgv`0UMADX9z2-iCt?^rI{<%ZRxwA~M_(?TNloqp$D^xsD{94g)z%p$!Q zuGUuVh0mV50cBq*^g?qRowRw8z0w2#+L zFWi8FqV)!i3Uq^3K3RtYD+Nrtm5(AK>|+)i{;z#zI_rP5NrEuI@4?C*Sqi>XF;pY8duj!hafhkB+6V6U`KJ>BO1Y^`R%7 z;a4lw`Mn+feSKiroTWjDnN4H3U9?IPQMM*_jI#MKCU$yA7ZK zmf(%Q6)J$lvXadUzpjCc_A6@(RL98tv7Mo!{*)uVdEqBgI>Rbsnkz=3Y!@T0Uk7bP z-wFOwvKFCVkeQwmLz-)QB@?!@Q6f=oD$=I=X?`NzTbtT0(QimdWrS*X$jUjw;VSGO zK3L@SYvZjKd2Hw$!}}?pbb%`F-*aclFsJmbQ&^!R6`*IvcW--iW_eP0wIR0gRX|5% z*C#gomd3pceiBQkAhE*kGxFIluuMf(`c`8NZo4f0pKoYzD6dgCvQ==zotb^Ov+B`c&Te@opGRf+vJ4nQ@y^6!Uz`|Bx;r9(N|*G0|< zy7BIdVtl;^%e$)Jr`ixZ#gH2u?*Ka7-HHJg1%q0`#uIIO-LZD0#lb-t`BDhWEuZY9 ziv$NBRmPe!y`K}go34RXzJifML*x}^q1#Prpm3?CL%{ZxB%VabHq8V%Ooqg}2OcrD zN`?FFRwy}X(A}EXojx6EgP^Ocit}37XS9cRG0@Sk9*4TbkPWGB>)PyxJL>7PbsEr^ zN4p$c=IvTD{Qy;?SSeW2j0RzadGZj)HwG_yi>wTqYk?O1QHpcnq|c`jI68v`+EIO| zh3)qx?M-Iw*x$-v2E>yv4#L$m2avrCxoMWzg`!@nw}`jhVAiRrJ$?$sdrEGEOgf~` zA#?lPHUG>!@Z(W02|Jfn-1pDvE%|=yHOzOJ{_b1 zRJDlE1%Sg6*vHd$hQiPQ^jc@tw2)$w26(YstLwBF>QM$L%m6|cUO>8XnsIW2> z9wr>H2%u<@R>f8to7mR&QAKOm1u%GUFcRl%5zlq6SPW*oR;9UGzK;*@{ zQ8z8Su)vt`0MdE>wQTQh84=TbB9opC_&|FBb{xHtrrsr;^)_H$z_5hRT^u&)(p}n9 z!t-9jKXS~YFOQ?EHC(;#0P$N+Gst1qMn(}H9-gfFc0Z_|u8t%iv!#}XnqBYa#5r+& zCHLto2NgA(2sTRt<8DmqP5aAJ17I&0m#3;#Bl2=Ln#B*6^atpD90bg`i_!(p(zsA& zwVj>z`uaoxyYB-E)k>Pa`S`1oyvp@EmzzYbi@;I<@CXa`*j%*s*z|B?jLtU+-#<|= zH6JVs&bXIC>Xaa3W}QuW#u`g6e8& zR%z|elsHy}$2YdV0zz6`36lj5-sWi=jW2zGB`d(TIaU|kEw!HS284xruZJJP0XtOl<}i-y2-1S{@aRn$yU2; zd!-T@?9+Fl;qn9TgO+~<7~8>y%K=&b(A}L4Yfrw@^}1dLraJ0XO*RuYQ1y@L#`enO z)vQmTw^qBS`i2hH$(yB7qhcH3WOzHZHlf}UEDmdaI0`x|{O$Bk)_pzO9j5i0626{Y zR2P~oTjYK}ejVvt5f3??epq^VX}9_eqB(Aa^9>cNveyZ%V=Oqfujux!Y8@1z#&k6d zR8t$hAXs8rB3Y>>nzl1_`T4Pq(Uc&1Qd7`T@uh9t$Vgai9{Ibu%j5L>_6V8llfH^2 zze&tGoy-`Et>^pIiZ;Zo7Hc8r&A6g7-BI>x_JMNaGOZiLrhqG>bfIyk5GPK8{v;aam740M~e}}0-lU@QPEFv zPok*cms2PIN$br@blHI#eXkf(0tBixpi~}<-gEU6^g4dz(!A31_0=?i?YrEgscI@8d1PEa@fv9eMKhUfCK&!PuCcdwRlU+7ee9=0zjVW$+roCD7 zGNe`GacMYb+hs@u=iX{D0gOGAIToJZfbP;@GL-wzLL&UKOxomgy`DOisnT2WN8O=U zM$eXHwK|lx<@JJXO;X=lAHs=-ZY)`yaNBOnRT#a7-W!bC?`~KD+0p0)MBxrh$QQxW zP>34Z*R1HNiXaU&XebPl9@}Afw994X!S^+&Uoyy`coC5cV(pBw`v-Pw+yaQxb$-5k z7esy&i^($iotd3yH00cP+HdJ|O(cp4l9ZJFD<8WbE-4uwcpCBA%d4ZD=(io(_6Ml~ z)k|7{-Le))Mzu)QL1^D%_6;%r=Dpxr+u>2PQ^D4&({v*F1MI^z2Ig4>6uHL zu$u71o2@Z7F50f-AVNg^y)V&m+S;`i6P@>WKO-adoq`;XI5BTa!yW&LA1JGmS4PVW zd(@EK-yat$o(Na&M&5twFuXu3y+HYvcdBi6J_7eX8kzKAt}hk@$wWrtf2q0|a})o* z1qxvKlR9GK#1D=oJlPpPe7cK+@^7>GRtp7}zF66^K&viUG@Avh;J(@FRO@|6??Kqy5FIw_JP9WiAu9V~U))h^@g+m$^Tm5YneezZ6LkF9SEtTS4=Zfv8mPi(WXZ8Wyc291-`*lujAv5m&IZ8!W*?~Cu^ z{dNBCXU^=I*)wa_8s%^SX7YdBDLMkTE>m8<8@_Ntdbc*CX@6AyZhhwJO?|Xt)xXHl zhga!c9BgVBLzQN%mi2LjRkfJtrAv0nHxrM0Q>h--8J=^Xs&3rP(J2LC}Tj zwVmD)f$J){>$LL@(EPqDIQ`W2Jsca2U}djx)cSH)o^PMUrc=b&yiSV;bw%BB@3{ zhjaGGi0=@cQ&eEr`)NrzmTY)jVupMh`bp8>3$;Uk~cA0`b#H3vzNSbx@9=a#oh z(wo;iXM2P%8TPZ4bDBpid{x<1N%v3YyO_Z9+MvU5*3tPfiwKLwwMtmC)<+ zji;H3MENsWop1xs8%yj;uyb>n8@%q-EsSF>QzygXg8#_WPINjASu}5E~A=B zu%R2MhdZ~?NolmkJq8H$h)q8*@k>w~U%Q)p2@stfhk7U`;r{qoeVV+DbQs+;s(Q_0 zL199GC4hCtKe!zb7K9mCqipKiq+z~t_<_XQT<$zZ60@4f>*zS~z`Me?wb6qAvvpr! zNdvg`+m6wjne@EYsfOlW|Dn}3d+lSCf9aU<15($SY0rOyQG?BPY(Jz~R(G;S>mWaD zE`{HY@t5XFduA_TeTO}ob8{8|Gwca^b^pA+qec9=2xFpZ15oX4bz8^OX~r?sTQ>k* zMOVSiP&<+G(6)sl$%`OqiL7pHXMFod{_Ch<28=taUe%TAMmO}ho$-hgU?*Hu?w&A8 zUSes*-&*&Pk5leqri*AXxZvsZZHXiwfY8 zGJ`++R%dX;I^+?Pj|%tu)pJkxkD{20h1iJu#xaf`hrpJ^F%GBFMW+Z(4^<8CG>=#L zk*%_*lZ%Va9S2ZP%!``=)iS!>W|5H`G+d-E9?2hJMfhHP`TRdHNWHDkyNU5H%yFm}ONRZtwm;nqi`g?!Lv4bh5Wc z-9DoJ0a^n5MH&9+&_>L_YT-Cso)q71CO^Ma39rY4y zu*0r9xms6#{AdjU}nLBBrjJu#_ga4ocV+n%)De7d zGSCfkxs~|&(pI75_(1ug>zd5}x`T|K_^Dr>%<*gO_{i7d^Z>A>u6sLfab^?{KwRT5 z2jOZEQq9=)(J@xSm7OoEUE5to()-r6MYJNkn6s_(Rj&Ad57)ZC{bdY*YQWvP{!4Qh zDagfujx!wBxsD0`ca03EC*T^J``WuzV9FRIQk%beyB&{>mihE1()CcsF#y_mG+(2o z)|rYA7;}8Vq-e0!2e%sGo+ifav+1ke@i_{FgZC1>1zTJ3!VjFkM;DXXkkBtIFt(~S zmf8&&iZQaLh!Wm5uytt zsKo0J1jz?|JLFd_7K-jPDZYa{0(r(v%(??@n?JlpE;5NXxY&2@e=sResg*^)_o zP}%V(I@>JXjLCN>AVcnTd3>xZWwY7Q`&CcIt8*C{#V*DT_G%w;(-kj*^i=Ju&415N zLBrA?NOVV1$WLj<+czSzFy@7zeZ{0ejDav4Ec*-$sK`d@=c!t3HBF0*8*b`j2A5RM z3k=op0?{382DGMubfXN&P*>R;Dn9vN)k;6m&7v>RjYjxc{78cnA-NNZW#^y_y387o6S42Yrs zvFz6(#l+-Wk3sn|J0?|QUy)eDrofAo6)t% zz;J!`&4joK2!|FYJ|N?kC^C%)YPwDp)|UL(kfA+v)h&l*gI~3%11!3H5iuZ0#fnWz zO7C+@+t5(_o;Wdzb9KJhEPsQ%Aw%5j*CV9^8)2<&hEqrNyMeT@83;jd9)mWDqeHC>pH(6{!n@MRIAK-BMR z;*S7pVAbzW`YG^Ghzcr<^~#( zd?4sfw96D*SV#TiuNT`i} zbxk%x1AA-^uw?`e4e5ZQ(FB$U4NYz>*a{89yeKMMDO~DA5?YhKI1!U2&vZuaM@a7g z4+92Hc&&_B2raZkMJd}g{88st$DzJjgrOmZCRAI$s3E*qhLb^TD)h}VBZ&DEEz&JO zI?9vf0Q{VcaZo!)$%*DE*T-V!C8=wd6_d5$U&iXTR)28^#}|u(4(tJeTI_qWUS6x2 z!V()Id@}ZsWkHseR-9Ih15)d$ohhdybIC1o`oW>iaFEhHq*#-^>gQr6k^+H*jb!X| z-TP<>ZiJUfwRT5qruK#l&`!S00XS*%!WBr7^MT{??$EUw)T#8yJLoKY5hC1VU^wK% zzbC@mf=q*8fB*PIN*2`2he;t&aIA|49*G6M4rkdT!UbI`(VTb^?Nw?v`XeKF_YO)r z*E&eln7rBjBJ``u&C2VSk+3h>JJUoZTw|>E;Nq|elrdF^|IVue{}&q~;@Fyw-mDKk z{v~eI0u`hDFA4(N3qx=BVcYN#gi~!s(%X@6^2(iJW+UpUwP4z6mP>QRzQCgbVZxht z;{+^ED#H3WvfVFl-0p9oQBk?VMJQ{zV4%&% zSu_Hh<>_@S^++_J=G|&uPK|6XnR~F((t0*fgH>5KxZB$LjeB4$R1?xPWq-kT73`U< z=oOt*e#{$)3xRW3|4V2FL2ds+UmFX`S2e&jNl_;YnNy;-HWdYchY~0O*vLc z5(o~#HZvOF@^6f3hU9;NHE45g*UZiY+FMc(Krl)Jtxmr?l4n zK{#<;xfhRG5F633#Vu^aY5%wuq-wky8C7=HPRu5Vd7>!#Q~E$&kNxZEn9cF)H&|v^ z6JQT+VQMNI;xILtFqR4Fl#Vc~;ML386ZH)S2KDeJCZWu6A}lJpi&645mT6jZGr!bF zZ7L27;;>W`%#Tl)a1>)fC2%*|ohfHXuHH3VjeV5%NStVR1U)(ZUrPe&3$daXurWNR z)tN-pyztG(K$+y9nAH5yOZdSZA}wjF?RCfjHOH|1tkQB6=GP8XogpqR5a9#+zdb3V z@uWXL1!SR^cw90zpWjG)6E^xZ4BDso2a^zrEG3vzmZdEU&LYtJ`#!X^+i}49^#OYT zg2tj?inMOW-oup2Htq zbXlxh534V+##pn$oIkWk!0^t0lMysDj7PxQ#V@F>5fdOG4MGKKz;TA@CX0tNJK^GZ z1_gZn*aU!^k~e0>?WL(T<>vH-?%NgyCEQ-R3v@q4 zfw~DuJpRUb-<>G-lmQXx3S48HFB~B~yBJbpDwJ9jyR5F4cH-3qO$Ad*G%R>!+|-@i zX>(Cn8?%Kz3c7@>!}4-@)XDI2#M+pjVT+7EJ zwR5WjrwoHb;4O;hRl!p*wptuQZr^Xdo&L@C|Ao&oJpb#P?zV1YGF#{%jE(>G9wM?l z(a@9q$>HtIf~L=tY+DeS9HRwr_!H~qZNVgjB(VTD#)Oi7_ft&-qZ1>uV-|4w6^@k$ZjYLOFCxUz@(ogGTkab$odt!5FwL(Qcv>}0zp5w^j zA-&6N)Z-zsd@edF3O}GkSt;}U!$G4NB>*F;9Imt`^w-8_5pIBE@p)venxn%eoP{D2 z!9Ca#z%#$Tao*Igrp-+6-@=^`Tzd%UOB{sr45$On=x(7dJwmYIbJOdgk|HxGbWqT2hCO^@9tmz6tmQY9!?`z`Nfgv?SXLNY0A|8 z<@(m6v)0F}gF!F_5e+bc9mnm42Q>m8_r(_;Y6LS5pHSG!d`^oo)i8RTnKUqZgq;*u z&=#G%uhXU)($Y5A`_bO>;UYw@PJlZjed=yztfuPDt9DOg7)_Hf*kj^K;{2%0R-Ywz>_hXLc_#;p;KRkKSnrMnhZxrlQA)( zwe#G9F)RT#BO;3JmMP-p}*BbfzV^rTY~2T5;q-h(jj;j3Wp$R&@V26a2&LYm`A79)EY)HswW0z7B(`lflE7S1!uF zzHpgz*|xr@g;wO(OMJoLAf(mEshXM|C?`0np?c4^V;7t+0#@%ubRpFf5g9~lz_-V{ zTu!Ze$E4qXxI#ib2}*aV!1uo^DBllShvY?al+Yi;bm0vIUoa;khM9TE9kvEW zbBkI*0)Q{}u0J>+LPGHleR703`4ZwI;dWS^KuR{_(Go1q_RwtPM!;#qzN*#M8t+L? za`w6Kqnb4MUB)SAQePt_dQ8hg=IFIZw9dnQnM|F+1vj z8PE=kbnJtdFoJs*1|7K+J5i{7{y=(UGdS^VXITo@X*5k@k0ECwooi&z8VW=p1)qJ0R#iaxzyMo)lN`Yu?Ojt0*8^1NcdRkX=u!Ny$4NW zse>uyZ4oeJd!z$|StXeJhF&R3z9U@sH}unt_b?pO6Cbs}T*j6b|3XrLL$-ns33Vl+ zGQjH(A>YN}{z3yD)ILxR4le%%QiQe8M()ShuP-CfhV#8=Xsj$3BKj2=2c7o}(%U>C zuTLfYIyi~!Ns&XbELCWj6bEdQQYL`tkdAu%U#-y1j~8L}ZIVUyo&y|#$q4Ff#lrk9!d4yT{5PruG z4HudHLPXXLLU-JmWYC}#-e0KyPm%AbJcbuW2GxS4Y z=yhxaXzkJc$T3lKLsU3v$uysREYpdfp#mwwqr3iJAw!Mne;89BO0CF*J1PP40y`8~ zCD@yC$|Q8jOzl(H6XleTE$x#wPYh8Y$5|WPnP=S|GOGTq?o8}{{@Ymf^*Y_4ml4`n z4r0L@#Hhys%5Rn4Dw1c(=TQfp_*WxU8joDbu3k!ZtfDlnhk(GgKFKr;3Ea0QutlMV z{cgq*k+@}Bciew*l7kbU?3=&y>7O_V&AS*M7{-ZwhLbKN-4P~&Lc_S(W{wX-CSBf) z*&AabqhrA(h|eMqtAM3;2BMV*)1n!a>CPLEq6O#6gY&q%_HsuT2@UG$cTTt>mD}SvWgfxyHz3E?rdY!zcVn!ztCL;_S+ZMOEwf8aI{OJAFs=zJ{ zVljO+kr}JKMSR8S$t_kOrv? zco~qu1@yBhZV2sAq$-KZlVF;d?1D2oS6gdjZ@i43dvxBf=93QwnX}i8X7cH*e&O|) zSU$|`_-L#8(6>1!6DX$*gPcpPz1L;qKwkeUCi z87Y<1qcEEvP|?RvxjAX>AF~J#olQPcy)$-??QRm$_hpbP#|^$6nwl+y40_ITJR}+^ zH-L7J?lusO<8?>G4xvyYNKq2azaW_|7#hc&4Oh}zkNgNxP5j~=^)F}rd-5j?Fmn7? zZN_BUY?9cK!@Wa2#o?aqKIfsItANUW2(iAwOWhjIsIS<=&F1kzb#q#+x6<+ z1mahlT+Aaz36P2AVS*0$P#Kc17GwcMtBT2G8j>U3{$es?rUTjUrS{ay-{vBFdA$0k z^Pxn$QJEnT!T$e`)&nfga?M%966=!)+EMCJf~bk!jnq*7Oz{NC@=9IHx5Bx8w?$yG zta^T~icBwyv_b)ZBPm&Q(p~nkNBEeBpPmMQM>ZW>v9v^DGv^wpM>T3A3&5OK|DKJG z)N<`KQu-0n!27Mg)TF9ObtbDdp+A+k@ys&icm$4ALFtVV6Dvikxlz5h(G7jZjykA( zL5j9iZ2YGHda6vxcW90zB?g!Y?0-J+KaRh3CJJ(m`s#6pp$H+8B-t@x03OkipUlrA zPu&?AcCkQGZB^gsiZb0o(>_ihW(XiVD;c;Q9C@cWoZxZkW{v>_CW_6$nTp#1GhLh_ zY@00$6Hg{EY~7B_{T~8(z517TT^Z??JN2a-8%Oru9%X+uftX{mG2J+G575d6a#je= z;L*Z|+%iVz(JLxbp0Jn_mRcLpr|oDVrc2~Xt;D5b@)+;84SW90+RTs>){v35+~pCQ ztb(5d+TpjjgI*6@Jcc(q^_(3Ys|%7mOBifoQ>wdE^rxMHbDuS3*-_(0rVGxz>r~x0 zzAH(58!|KYk;xJYEwmO7(S09eP*K;Uyl*`f(`v+hm0;hBAZ25xP(=}>PrI;}7PxQT z3xiS5H+&EgallBfKUXh^Mc7|reNN{Q~$ z)6j+VPcHIb7OxQhYw=%447)C9Q*M68nP&-K+`yN=tS|3r@zCz}sm^#?N;TpQnmO~A^2zqk>E?-*;g1zc#Gucc3-$GU7WSpzn_~x$ zC*|TL^ZHdW$3Qzfd9GrB=o^1(J8Oe+0?SGo@Pk&80&>hv5*UgNmrQ3=XOy2VJ15<& z-BdYu8f|zbK1h%DKSASvL&%mS$k10NrCR9|+~BB4Rvdt*jm|c+$t^#t)74TYQXdKo1irUDF_wm(roz%V7O{9iJjoP^j&Ztb~Dz z@E?aWgw6Z}F2R}kNekP}i;TJO9fz0l+y2YTW&FCpLgCEjx1)bdHIzv@UNnJ&35TbJ6G#om9-0O+HAb*_hVj~l+blhN^| zqR9Rxa%0UHC(y1~N8Z<(5NvN$YT?74lZC3|8x2`@O5qofF3HYSTG|g!Q&xdJPBCTM z{W<7ABLp*~0wyT1DPXchblIW~m+p$XMNvZl(T)i&lk^~7OkJ(Toc~0sB`=JO-k56} zbV!UA?Z(URnNGza2C>euF&>XJ1osLbLe>etvCcK9@!kRf%T_z#`9nS`z6>ROl0J;4 zyu1`HPdOAG#~MjNzVQMzUpW}SCz?c**^4MdfRHk-l5p$dWLk?P+YE=Yu4WNp8tf%( z!&`MUCS&3M5ryfIK!&A9x_D40CSgv`jIF&ZcN%~+m*V(T4K zL2ng1YFNsDU*Ewx#Y5&zd>U)ZTb{v+DSbX_U20bqD{IiDOc> zOj~)+F>T|WU*0ug6=0#A1=6fb1+G&rDUmVds#mHMOc2R3elHE4TQ+&^MVPnEyZfU+ z1Z?PZPx`bN#SK_v(@(3JV*g@kG>F zr@sK!3E!NrmWk2`q@^g+5?a;ORW#J;Pk%K^S*h!emaFrT6p00)qgqf8 zl(z(5P#W<`XU4_X$KZf>1qvz0{ZbVuQs)~9{AY8IA%WZ?`72Pz4_oZhEU?s8Wo6EG zXXD}A*|I_2xl|e$Y^k`N{I?^pk(kosA*n7*qjyx;6YUX{ zc|+K_IoWFflX85n^v-9ygqnB+TXm~{54hBjkddiO!7Ay3Q4*ZvF;VN<=CDHSXSiSJ zVI)@e`1t%v-f^J;<>t`yt+V|rW%JH`$)^-v)C`1e-utC(4i=H?>LNJ z^UzjWdgQe;;py_3U|rCyD`~192&F+Vt`VaGtoKLc@x-`^x{6`($kGC=_T@4@ERZ{9 z=*!<~?bVm50Zg5`BKJt>Wu;EhMAtp2;bP;T`&i2-lL`NSGXAgBJPFFkTZc2X4Oy&^ z=q-tn<=;bnWjG0ltWt9ObHoCTfFbh~d3ov@68HdSg2cE7INb9L*HxXoB?6kLksloM zt*c@!Y8=U@_88M?>y!%GqX+F$jh~&#%SxGf%fv)voJE5s_{m(3a!gl|%dms=i7!6i zE0l_f)W*Z#pPaE!=AP)lIjoW8wtj=F)~)=m$#V+|9+hF$4#GUu5Z<0!SE)4e9n*K|1)`LSKWB|5t{Z&PbI54S0$MHN7l zjm_QK&T+ zXPZ=2(h9^x2WE2KaepOc(aq;t^E7nGs)*t??TRrbq*ywsY1ow|gf8F-lu>A)yS?Ko zc%3jO;1H+0?iK6}CYm-MGU75tOIsO>u%4gCXHR)AH(-jZ2a#f@Y@N)XMC6K){r-(! z;hfER3T30BzUfLyj^KENv73%I|6hh`A+@Wv+|i=~(FA(^&SBz^7jb zfPyw@$R81kb}MIg|5vgi`&+b#3$56^hIBW`jh(ly_6JP6dmVL80^)wg*YL{tjI5Lw zP#Q3lx2BsO?uMB*K3cc%rE8`_m&RFmF&ji8uo7Lj3W)9pP8BUQ`ilP+<9K0IT= zYdoiYQ(vd&_>Yq^!+;{v!6(+o$@VG{6l7!>vbflvL|DjdxJ^{w=&=(?16e_~pvjJBLYao*8hdZ)V9b#MxR1mB zXwt>F3wCtWCk4WUmIhbF2iXjJn`NFAQj8HeAe4y;T6tm}&>2`{9Dk-jHyx|?fd~gI zrxbP4R>NDIv`IigLIoc_3Cd)y1w`GD*Q1rd`=+VN%EJ+%ajcJ zR%u>7J~O%V+r=t9y05=%<4}B$MC+V(C1_L|Jw-G%Q}|!b>LqtY9OsU(Lwznyh+k40 ze*J2F8j^m{_U0>&#^f9F-cQyOjD^sfq@HFj;}eB;vl&Bj)}PlH+2mkI2(sc?^Ac(a zCWDgzuk%}#vC>ipd~P?+qD3yb3`zjtM(3bR$J*PZTzg+C6C>Kif7|m*(=ayTP2fcr zRYgUXR;DO26^TpKd(7St)Pd zel3xfp6-kXUG2Soy7s3BhBy%D>uCPe!e-{a`^MK0q3H57x@o}ESx^S_1?(Nu2R=)Kgs!M zij*g(>@oZ8%)$(`|IGOAla4tl+s*o(Us5t`m72pN(v7xP!2A7m!9_5ss+N&w>bAm~ zyMThID)w`dKJB!q6K16Lyg)l1gDn09S=(82nwL#tsiTK%nF_Z? zv2?sBOGkk9$NxUC$1nm~TvGSbWXI-JNQK^Zg!oo7sF>7s&e}r#_9tO1!m{Ao-onx&QpEz`JyXJ%T~7HO zXB;H}=bABLMhnzpPF%B0C7k1rR8*nY^;rp!q`magDzx+%=A-si8uMO5&OuBPRb~Ou zeGSRV?v6q#VaPJhmqgNnw~6scCaq)rQ_2Pi!sDbTuAhN}*l-R@1&5S0Up~O$1fQEB z8x){qWX6y4HA~z%|K%+VO1}Yt5};=e)DIK`gjC`7Z6pWBBE-L(vu1D4_ZN8JA0RGC z)#BPuX#Tk39aUx}xKY0Sp@>iJFQZH*~7C_RY$q%OF9 zy6#Yjlh<7JMW$I>49|>9GfNV4izNZsX|>Uo`kGAl<+S@Vi}rDz;&LL}Iq{rK-S#4< z;tGw5l-cW~swfUAwjL>_9)g8E5c&evwG5n>UEooD;#R+f%m za3~7oQ4X{x#U)?eGWW%gSI_Ec4e1~{8Hi+4|24BJqA}MQ1q50t^`KfrI((bW$TaLS z|BdG{*bg=fJwb|v?S#ssSst*MSIW$sQ@$=kB*a*uRVz~F>V|I-W67|ki;hJl$8ZG| zKrZt$Aax6rM1o67N*qC}#4z#wcIul*7T(>ic^1|}el;JAUiOY%h@}#J4Z(n9ptP?+ zesCC>b!*NF4DF+4DW#~qYD+~|jX0>=Pym@H?2++lRvc;=iU9oSFgbn;CGzAe1*`*o6?t}tIFSfy9w$LOsKH8OVb>Rm^Q3T zETSza^i9GJn8e8g|?h zo0pA;Z)b4Wm%f_#;Hvj*bE8p&*IWDg#*OxNx8p@_D~?ZvF%b*qy9=iE)y&UX@amefA)x7i*=XsJTF?#pJ*=Z%Xp<<_`DMB_-P;IS~N#zJ_(eMXYJSNKt| z4sEh>tW#Rul92t70WSoQ;qZR91ji(dhxHth7DWX%)=J2cjj|dy=!$BxLO%fM)kzD* z3)0u7a;C;Qqh&G$6}*g^?c4nKV@d~pl5+-q#uCD>%mv7$^^*5ZaXzkX_NvQF%fBF6 z<;{!-X!Pb`4IAS}9R)T{FJe_jz_$Yx-J**NztiS>q2kKQ zkL4;mP!-H({g}Od?-5%_(w-F45lL@4R!z)4J|>ekZD7nKbuu?(1_)r_;>wr<5}D%l z-lTz8pOZZm^bVv>bzL8YX6COu`mAU!R1|yG>KdiXnuU<^@!Ogzwvxb zOjJ1GJSt{3ZDcZh{y7g-&$B*3^ZMhWm6MayS0EwpxBlTMO-qyAD`w}%cqeU^%&-(0 zmGHp0h!L5gX&>1r68NVm=!U-{AKP-&c=-5PgAfx$)BIQALCe+o^&!-$tH%?K9|!L~ zP8MC0-u4$S=0n$hyL0H-XsARRF0WCg(9x8n3d}>)1>Jiz)mguPioTdG{?ub-;V+uN zy#>MeH3MZh#clv9J|y(hreb8vv597Lx@46)q%XHByd|b${HzY{0+DOf-G({Mh4b1L zc)i=p78KP*7|TDS4Zc+Gmmw23+#*Pu8cK--)byh?NgFy!1yWg3_9&2ZqnnMXj)pnY z_WO^Ze(m4c!!$kz5p+0GiiV_qo{7BG2=BFM{QcR=YbeGNKu9Mz_xm$}!pZjTcdSje zR9~-XGvc-PDYCbY%!6P;!Q;sYVf>Kx!p*!7-hv`I!LG~B!vUHCL6RuGhU^J*my;_l zT6GSTa)+D~k&!}6=kqw)Bs1c`V&pFqHnnyZS&c{^KBz;VhRT;DUS=G)Rz1Z>B8z>7 zUUqB+f0MJOCCv}=wXZmv;}@uV3z)rcnSI}|bU<}2XVrO1y$lKgC@_!4#wQH%&G zwWA>bc#u!ZhL6A)pFMH~CCS+5t1v-&&68h=mR#eXam21BKWz)`N?tv(qo+Q37oncn zgBkVg&CZ(pZ(TJIpn8TYZt3;!w<|quJa$rLzpNc*PQw1A^29?!5qz!je)qi8I(n0J zikUB-YdB#oxfQ=joV2v4oFMehK8qLnLLw{x8_QyAf{REq9dtY7Kp@y?kA8Gyt_N;B zlWXQy;V&u)r6@Ujg$Tqv!t^pftj%M5#tXz4`isWLHf{05Ewop)pur#Ak`#QNMwHMG z2Iouo9K0IyvH5Yj0>CK$L#edJr=d0HYTOwXbKm>f(N2eomMOnwYh-uKk}$rjeA+&hSCsKr0@s>9lYrO4C_snwjQA z$*t^$9)0&BH^FVIEa5{ps1u%f=(gL>R9v-%bo!&Qid1XdS6iYnt?!*B zQjK%)EX>KuoVZznN6l`ll}%X2jL}6r+4EW1byk1whCT%GqKKe$7*~Yl4qc<23i3Yg zeq|H_{KJ13kJs#SC8v?1F z@c4P-VB%qf9cO*&*iI1R&SD&F znm*q)Q-cp8T*Wes!S?h_L@LuVgC>BlwNjZ#qw}9K8})h;YGuGDPQ8UPWRhL`ud&tIUoJJlycHbu=RO+iNm349sM9XyO1K|WLJ-=`Q>|Ysrde`6vbPl^Nx%^UDx3k4>FW4|7N4#n49Es zNcW?j24SxJUR?*d3cuP9xD2}S-)@I{!Y*Q?hrTm@)qi0G+W7sTvr*u6A{hX)x5)F6 zay0f4YxNK$HR)(o$}`z-S$t2|F=Oq-RPe7VN)HJXpZV?>v*tEtvA2Kuj#2ux-e{wC z=CVbWs>pN_!lNWPG`%S}-+3aUI$6r;HIXvom-Hsa7oyGY=mus+qzO`^{lori4XZ++xi6ZOwEp4VUbSVwPxpHXioEkm4G1I% zOYi81QL*5tV6gA5M3(S5GSPz~(j()hM8&a|j3ig0Bsr9mj2Ng$?f49E8{+&sQ{kSU zAD#F|Uc8{^)fCGEn)#cQ{H01tOPwz7cGf{^P4@F?gRNGxl-h0Xl^$c7hYc63aifK1 z+$@v;RZ-^>S(XxlL_?MGaz<#1Zy4w_>9M9xDx>7;b@l_4z=8bMJ~3U!)+d5eTk52P z`^L#Jj8$dYulaNit*m+bsj6<9!RZovy`<7=iDgq|<38>xY913jK8Tn@u3SKCIE_VV z*Hun9Ixr=l_dn=46^hpyNw#LAoJEIO9zV$gG>)sVLU7uj<@tn}yY6OW=aD%sAYm$3 z@JL`%C%nqWo=?LKb59)@$1X0(7cEhA_u-^MmLH!WZazsW!0D-{k;30Kt*r0J!PfPl zA&v4=kYe09oK=(Jn_t`_A}1z#`nzsz#J#Lk+-pY-!8FRJa8@RaHh!J2rEUv{tc zw>VAw&09fhD>A>k7t2+qq8hZCRdGofOs=4^jVarE*4O4@K=q?3EKAei(9fv7Npmd*s!n7bWF!qINJOXxkK>wMIWmYUP|pR0bWMV5wFj`tARYX!CfEnZs$n> z0x=^iE}XI`Wg(=3P= ztKtUgjNsfhq%m4&dXjFMUnFLx#~K0ZFI4{I*P12idX7XG443;{%V}^N%)AgKXptOZ zI|(2;8cwByq@ z%J(AzWwP$;HyC1{DKzu~usZS`4edikklx3UYkT)*!DlwanbY&o?RA3_HX8YI>+Q~M z(VM$&eXl1Fs$raiG+{(p`t&_X*lid`kyGYRO}cV}VwvxHs+z=Dq1imVc2lGFg5DB6 zN7R06VIl7#;-t#1D&mZ_YUT_Bt?J{ONZngUJYS8h^GR&N{&|VJseLONQ`~R}@6l;A z`rkHwZ&?6(S!Em!9JA&(>J1UgT)mHo1Feq1KwXJ|- zG2TbRf(_p_=+gKJ>NSoAY9@xk35LRj)Q#1LF$C0Oso0%h_6)k&s$)E-)1}06pGg-uO|te_oxJ* zo}95||0B*bwySzvyqN#JDEZ2kn>O1tGG5%7Y@o}X`ZehfEu4l!THwaA1v zZ~4@XMYrC5W*H3r+;h|PS9Fhkmh5LK&IT%5oTf+@%7Q=0z>L^^CNe7`VT zz*B{mD6$ZJPVUsg!T~#(B|ogWC2mb6pvy|kQo(kkeR*Jim0P6uHE<&6)V2@E9F|kB zbaml!`k6JVEu_#OL?r{^BU^P+@p0YK5&vwHj!-Yho?0g8t_r6S z5yko#RL8@V4WO!_3y*~O!zbpZ^8#%*$VjuUBsD7+vH)uJxvz6|EA?YNFXu^dnv}A7 zjIiqj6%X~TG2PLe{-e(dPm5#UzK4F=!ZU|iyTt!p7It3oZAqiLXW9RZP_5Bd@7kYQ zicWNk9X?UYUrQ+BQPHiCdylLnA@Upc~~*mztHk7+4_VFTp_ou0w3R$9t({2lxK z5jwi49T8OFG_IQ|7VykPxz=bWRVE(c4EEoTfjlv2@`uRj3eL67%vkc$U#+C-PUJYy zk;c+bQh#NHXil$r+~FfXQ3;L!WcyX9dagJgB&fpUIERI zU6GQg7-2126|`H0DTul2k4o-=2TxI(qs=BRHBtloRniuZr4MK#5p3daIFCV$Xh|i+ zUE>R&Yqz99z3TC2c&F39hHtqZ#9z0^Mkz^oN5bdiZuBCMuhOm`$UY5bYfZe${ zcksK-xOnR)Wu$!=E6pvXFAcQN0D*pVnvU?|S06Vk_a;)ye99LBLWMXfx5YXtmKLc2 zyH2I4w8__Vv51oOD!Jv24EQH|NsC>>Jb`zPX$wic73d-uWdpGbgkkM9vR1@Wt z{nOq3UgGtb>Kd}g^VP|YF7^FQdei~41s#reZBSQzY|=QY8iu-hCFFN8Cl0Tqj&?iY z?!A^egw$mV!Xj{iEbGaZwuVX``8X*(ob#A)rlwb&e)Fu_S|tLw+^&o{y*2T0XjwJK zDA6S{J8}|eo>R1jg;|^ZW;gy^CRLwL#h5^&58Z5!#k*zhNg83LigI?8(6T-6=U0cH z1~i(w%9=HJROIC1thzA}I#}Gs$}RSyE$Epc$M}Y}^h|cgB`)amYS?iI`0%QFDc`bT z4-3>zziMQysUM5QzE*Gx*KM1wOqTj+co8oyG_*ATlHjZRXV~38djA1U?fVQjqne#6 z_RZVS#oCS)B^4r~pK{XtpI<<&>oZuG1_Ex!#4vLRJOor|OX;m6G&X4DDp4&@utWd$ z!=em(=U}J;sC2~sZ9Y`=F;dexroPT;g=L;*O?Tw8gohr8*1*b%%{f!Dlxd)KtL_Oe zUIDiR7VVuSr3GSW{ z+}+*Xp@U0scemi~?gZChL4&&l2>}8Gcc-!2>|^)rz3&frtKKhAR6*BbuKD;F&!}$n zaFwl6j0&S8RgDc79d(CHufc;ET6Dba4VW}mDFihYsUr{inl6P#CWmAcYYQKtIdcJ8 zn*7*Ne?>S%)(c3WSQ9if17!upNfi#yLP@RQV~z+Wp=E;K(_mjK<1JYeS^0Jg6!#T4 z{mz>Kt3BcG=PM0}khz^u6dylK++o}rG*idEc9Dr(AM}G` z7gT0%P}-m~%7>7u`Yd&59gpM@>JrngUk{ecyyrQq={KEzS>o;Wp{{?~DlD)|u@}|S zm=eQ%OKl?Q!{7aw`&Oo>y`*_glBaSb{tkUn-cBpm(t>Z5+Ql)S+CzZqfnp?Fyy~Q2 zQJ-d1M57Ivkug2chBb7ls@#mzCn_(XP+~#VG7)2xDAX-=JNG>-E%K9=?nWjU1gYHJz}1>7ZnI$0L6^ax)$J?p?`R9dTdL)eKs>le zfQNgJ<;$k=o&0NNyO@AmZUweRL6qc|lIzGQv8Tx2%mL|DNMaJQInJ7mQ4Fd;?cf51 zMWEDU)8&Xn7%{z?Wu=}HS*H|6aIF7t7tsm7eaq z<%eZ}O4&G#XD~KDG-J6hBV?VY?|%;#At%d11ZfXi6gNx+_+Y!y9$4BGO`T$?x2Fgc zuc8ceEY24ehBO9%dSWV!!yywBhO zsT`Fss}_@suqkz`*L9tjsH|m7PW^gh_BY(y`nSecm^zrUlEH=TN1ETiX|OTYn6VM> z##2r|B$5!P`8J#ivDWMYJ0?w3bxS3fX9V-~wd6+MY0KzLYOT4amSej7j1fG6o{Ag! z>zf6LyqrF>&#Y!j_cIQ!;zaQs5)H?gBE{+V+l#Au~MiFe!Q& zSb5&{mGIng7=eXJCr8M^fcb&S4jcMna^sFs7}#bN8JK_tZ!QP5Dbt`(mwLcC0y~vK zf3EO=IX%bjVD!|Z>*l;S2kJlB5^c(Ovrv9G3+$`!@@u+zZsCAR`gJD|Oo*R4 zKowD1;bvsrh`(BBTdX2Me7t4li z_IC|B+1=NsVd&9YSALj60M;kT;!q8F@}x1DO~>?8YSmI&Y+IV@U-97!e~MkW&d1Gi z&zWW5f-Q%j3KLZM;Vr8+{lBh+OKtf}oeT}98sPtgb%}tc!KKxVh89L1kQ3XVN{I9A zT?=AqLK&DiMP%ia7r7t46V1m$W)*DHsx+O^<0Pt#Mhb=AMf*Gpm<_xQa!IK$8<-$H zXNOoLXbBF0Fm_rM zyYPZ6xk0)yGds)Zg>)_6y?DGH_u_>?7d572Hm~X5N%Mx(2&4frm+GcfeFdv1Ock5e z!Cv3oy5SB97gn}4*)Wl1HQ6W{9DK!#YHF~0HlL`RlwWo@fGG<5*%Lf_G2(L6*NSGp ze+NCgC1Rm}b-_^^;@V(uhTwYXCt5fvPslpvAMls5aN z-XP#pX>;q(k?QrfYXG7EK6&-rG*j2>C)F*c{UZ95|iHKgY`nsikJ}Uvzj_|)p z4aDvLWKLWU;G=n$FoJ%3k%e!M1b83{b$hY z8;(Ux8iHdHWA0VtA3GL|aL9+K4%GBFHT^#pnVHiJ=cz zTdQSl^tBudD9Ph3K`1OGVhVi~K3f8o?cEU#m`*_IS-bcogM_eWN`d&E^$JS{;IIdX z&)FpGG^RHuUz8(Hd9SKcn1yn4QU7bGK}nJHP(FC-sgR9O4KaGq@--rJXEMh!hsk>< z*h5Ha?j-4dgHitR(>U&%G26}Nb;SH#G%yk1d~b&>D97e{h>rcZc>PHSVYrjJ@H_V9 zA&^x_jn1u-?frPlNR@=h2Z)(geV2A?i;77Jo5LdgoLsb!vIFUoizs&ERLV-4;a9#Vg+TFjJ{&^~H!mS}6#P((yafVCp2H#Af0=7=l3Y;2=@-+8l7sBZF!p0Q1c zdzS-?C8(E|N{PhFLN0*+3Te?w#W?QN&}q7`=yYGD=$D`fQ%V*4P<;{tjd$z``N~Bh zb(J2fH(CuWF>{A4_;ckc7^sC1WJif~y!CJRBal3G^WhCL>ML+uXG)%+Z5OUeLzH*A zL3igSNNecl<4QE%9Gy9Rh?|mGk#hZ0R=q+#;A^NX4NAuX#dZZ2+DS114H4F*frD6G z<@-SuIs4!2{xNj<0Z3|4CWR7{q+e1sDl{jA0(HvQkcJ-R?hu}KH@a|MT!yGEa<%4@JYSGhuE<15UIl3NAON2*HJoAHG7A~S<8 zh_+^vIxVNDmaD$4@o(wqwg_j5bWFU$ao0 zkSYVhU8!jYIwZ}`WX7!Nc#;7$?}jv!KW#=n43yZ=mn@_QztlNFC@I2~cWgSBJyeCjV9eqh0s8XDvc|^SX8Z4&t#aR+d zbptiAGExIIti)P@gqpUz)XPL;tPEU2%}XC7qwz%}wxFU)4rcMD!`wW1qyvrZ_Y8ge zq&^K%^mwxkPyHkWRcN21U{<2eiHkKx>l$ZiPMw&0(NhpArWXZ>M95(;!VfYX$^l!e z`1e|qfu?3u2(c!pmgO3i0`M3LRWyl{I=1TBJu0H7*Pw^{xPTLt-f@|LA6bJYx33RUf;|fBR-_f0uG#P_8b=oDQKkPikeW)bKPjT^f zmkBxjfSIi%t3o1ykRm~^#u&ceDo?XeVu1zere7Y$Q>YugKfyk{6O9U~&9grEdBRBN zdNg|KM1w!qaZ-|mbZ_Bk7Llds*~44xrGmwf1fHu0%L8Q8btTly&DpdJm=Z};b$j@j z0(|V|XMYo)|EzfBH%3mtX790d+;02l9Qz*>xS;uX$lWU^Gc^tfVx(H>zbvp}J|+?< zSVg63w6w~%N8_#1msG0w9ej#gn1wnC>r_dgbTrF+6ya0Kk($zRTrqfPO9PA_-}z#Z z`LQN#bW2Wlfm2?IM5K(4K@)|7+PWnff8LHZxhj#RY!}m1j-#M~1(Kb@t#N8p3a-X; z|JN=6Qz>7j##FP)D&~Spm2gujP03yfm?DZILXV!NfA$Nj+>J@{^m3(pX{44nC{V>FI^=Tic?c1Ici2n!vtGZ z*QLNf3*&BdY*w@~S4%yLlJi@n6m^etjoHGV?M<(A83(VBYrG|yX)`TF)-v-7W(EQ` z>deXVA1A*Ha-iY}S`#WNk|FE46eh7GH}FPwe$m-#rDjVp)e)TUC^B(^bsuE zgR{gRbNUEB<+J@WA{63p7v8!rl>>8k4r199$>R|3Efkfe^qv)%bUJFEsi0WVK9C}T zb*REhl7!6ZLl0R(4GDswSE{2`nPLG>3Q6zW*i?Vh8!mn|>nc%07(b+;5?u_US4$2L zWDlX&3MQ}Gfi8izz~FHlbTSnum?G?Eq+2X3HmXyli?c@rP`&dt_V^g|->3FJW|;$c zBM<@f;7Pe_Xwk$ElmGBfKPga#9G(??q7|R_T9g?HEiI~1^JBvq<@Dh%q0UY_06{ik zA5tFFS*5hP{i4QZPVeFi5+Gdo3-f|QPMDRV(0g5|H%XMG8C_`b%vfEU<8+9hZ;Ie_ z?e+NSpJ3MixQ_K7--Z~vxJM1_oP1nNumb~XMbx6I-xb6T*eVaJ5~><1^uW9p`P^dPEmC1deCX13$)GSRIqEf4U!8w$tv_UB3mq-y|3SH2k+MVsA%T}&Hv)#C5CRT{R1a-(6iH!Uh#U#P7RRt+a4zB}4D zevE7jrRqSDkTuBC;~E{>b!%*Qs(~Xqq)}1(kO=mEA3K>Lk#bavsk&&jIbn}k)}jLZ zVH?HquNSzN8}fmh*+o3hNJtTGc#)n_)rKvqTn4U*Ih{8KzrV0;xhDb$iygrzz2E=a zvHXv>>D3K>J7rnX&d*ho;u0Ql%L{6ZM@RCdr5~%%Nv3I`KGyx$3;FLFTBM3#_B)2Y^3GsA8}fbWAO&Tm_S}=H2rs1?LYYqAKj3a@BSs+ z{)bODe*>)Sy@@h*RS$wl_?6!%JKrF=@3!9%F4>bxjD7>A3pF|Xhrg~vQmtisjdF{_4{h& z^H0HPemyX_Ldny>o8Q@o|Sp$T`m|a?4s; zmQyi%`j4kEUP1)SWVr0t=*`W|Pn`g~Aq|#Q^dM$E7w+->KwzglR1F9WX zIRBX>_@DO|1CT-R1Ew@EP1M7q%@;hMpT_Ke5e;+U2mx4+Wp6xL5Rj3j>pOI73SDJR zkIc*@6hO0bo3Rmi#9InKu1xbK{pq@zN^a|UJ~=g17JhE_-NMdK2tmX^E`eLc_E>X@ zcr*$K=vnyrbBure0v!T?cOjPTk;cC|L@uY3MI9}**t01%f(?B?c{*w$)VDa|xF?>3z z>oH>Ld2$Y_2Ef5wLhypTitq{?o^-3Ii0H(Q{)Fq`pKW|Y&)=TH1Fg9}s!%4NhJ=Jn4N?%J%d4v=W1r8eSXo&mBqd>aV4xv# zknbXJy!#fRE;|zTjzLRCQ!~}&GV&)3I_<2=rY-CiFs#;>(io}1Q0-f7O-U0my5^hnC#zP zZ8Azw78(i;a=&2k%NkUl$obUZb_P+`-ro9E-qn`Rw2wrnhu`VS8w!1QXxqVk7W8Xk zg&MFl)4vSiy-|rQOBMrRl{i-VLawEYRlW8LBam5%r00DhB(1hiq!&>sY3bbEvDs|+ zYuIE8-#C?N@?BE@`%mT1>LR+HMruwk$f`2!D$^zn%dEd1u1GKckR9jDudkniVOsZp zOvjXK{vFtv%BBVjM{0pN0Y;Y^BX%3(C?y#Ni+uNgL6E#!b9C&d^S3D72IsnxB)?j0)92xSlr#fjZ=!fnZzhK1UQ-IV zwdQsSt}fEGDokmj(-)Y{0$W>KgY6$$Fq-?(&5Ftq1FO$xeO_kMYh8L%SAizO*LxL}gSJlef+U^;0>Bo; zMPhsWCH!&`{};vhJ~*4@LLg`q`^@)t#q#%Hh-fVk_L~z6OW+bLhJZ@s3Qv~BgxkpY z#?$1+w3Z4z#%x#w*a;It73SW6SP~pvcNpPFv}M__&Q(jD-=y{UI}`u?`1g22_;70;->-7R zGGdFZrFiIsfpICZ+)QM#D&)dxM>-Fq%Kpx}v8i|KJ`R1iqa0y>`Lx*LnXVg>z8^#U zUfCK1YY9JR`)tG3-OyN8Hk9aM6{Ao8@eR6G&;^>Ys&M6EvCYlRmG;O1iT!}f^I>FU zoO;+^)Bckl*Sbft}GT*_Ab;ujO597v64BE8<7Fl@S<;JH$Xr60+cfZlciR{1iG0Xah z9*BTC_VRqz;Bq@eyBP)pq3$87BmB4|*u@@Q+a&fyMv-0=lht{mP~ET3XX%RBTqJFi z51jcxkp)&TOk}lo4|s8^y~cRHQ>7zgq4C3gl(KLC3F`F`M5F>m^6o}(EJT)^nna({ z*mYKNsxH0`TTprHoN93S@-K71O03hHNabFXE`Itb;zRpk)z@8;4HOExb)C`s{^iTO zyRLFzlAr@&z-4m&H>Z5o{HINcP9Ur)4WY%vdy2;O+t#)for93zK~a7&UKcwVsUf-M zDaegJW!LgQRL^&Q@Eq4)SBqS6w6>^zn)3L*J#x=!`xEEbpc;g-i9@{xq1TB>_#qF+ z0F+#X65vs>0N{$VzS>y|QD8kgypz>hHSIY!ba_Go8sG`_DFF{PLBY%uFFD}5I0RnX z&;TBJUR~9bwmL`M2w4_^AZ&;ApQS)FOoL%~Z>-Gpp%&XEzB#zLA|Py4%I4J1LLeue zv9A+_#kN(J2P6)S`E3uy+MA$YYD5O{$s2}c6#E-_{t2r^$2BpMVYiED4S?{xMq2HD z85rT3_V2VkiMck4MHeV_78*bT*mK&%c3H$rqEI>#-$URx#+_DWBb`~ZE}d@g76ZpV zc%?u-CZJFZ)Wdk+{f}>&BY$DK5?o^T)^%hba7@mJ#vo);Z{3*GYtseR)|awp7aS8% zb!b6x9OOjvvCKYUOd5yk?>^|a*)uLTV7X8!V5E)fM3sFU^tHCO?z4dcmzU)~q(HJ{ zsNHG{%6f718ApfqzqryoEX#%c(JWhvQW+rD`hb0LGG`%7kVIYgtzMhnkF-n<@SBR8 zeTyq3?XZ`O_VAu|fFQ?^-gI&Di4=Msf1k;@xHS3DwRS<|aPTxDAy`d1Kq){J1s;Hk z{sv>_P~%hKpe3h5b}O(T53DHsJfdE>JHQ|upHSqB(r%zrSZJ?G`&4E?Uo3_O(bz!P zfw9ZxLJiW1G=r@IU&AZdSikPTW3|k{_z^HDE6h+BQ79m{pNMmLQgfb!I|m6c4)#(5 zlQ2zk1t8f{ps-&C_pLf@SQgnB9889L5Al#3nDG$brEzFzD3}p%*CFOHC5jGpRj2)0 zknC^Yx2;69i9TJ0kIlV0qm+=F>ViA;Dt0o^o7XVMfVV2V-4oU?_D1U*LkWtC!j^z) ztssujfGTXn2BI$28K2S8a9GhAuoMIOfk;o2P%xssZpz|8vceMZBv6CUmfwFA3_y+D zMMgum(Gx!~P517KLy);7%KI0mK9+Oi4(Nnc9**5J!RZ)h2Kyu!59FTaY84L@zl|~- zZ!guYZpP*7w9$?7;-t^LrXNm@Z}5zSklPKq1UxP4VxGbuOyD*9SI@s&Edgg8xhQX)AzXTf&;USKy#ICa6xH*d&>e3(M0buPDsc04 zi2J*0ZRaW9uu3s9N>E@fjsz?NG6ZIE2T7HJF~W!(x@Ifcw`UUeruokV9^QC8%jC0> zzxGuWN?fLZm&{GvTNbEZfXzv)m zOA|&8JPOu)*{1$w|NqK5-|D~NAW}w{W^5i7rwnEwhB3M)PCijR>~^3pk5Qn)W^ee? zzilN1Qm8}%GSXwkK61)8{ZEVK|IRBnP2m)p`i8??Aj=_m5ornU14U3ESUFl6t0>TV zuyU*zM#i#%^C*o{wt1_pV&PvD7qX{V5IDpdQ^^mRck|(?>T9j@-z{Ff4}(uCxHTP< zjHInj9OJ4LLC(ET$L7pFne6fm3%&{VtBAj->DY(lpGwRgQ)^JTd+}AHFM(^hoEQGjyZhbEALtqv2>A4!SkIPas5afEA@M zajww&R~l>LUGbGHpX%Ib=JiFkQc7I@RQQu)Y)BOUo){MTfzHA8N@i$Nn<3`n)HDqL z-#*dji!u0Pibj0=F1x2L=PT3SS-+dRUA>p+5s7=)RHb`w=B8I3Pk!9YXZix^Q6L}d zJ9C@qO1{k2SGv|!tg?#YMIn+?AI9RqtPi;)@jcJDT~8`)_ln*G4Au-y!*XM>JVu6BKHqyYualG@4#)Iz z=dY8y;gx=-=K)2{PTzP0x0Vy)S0=J&f_K0lQ$FngKlRl#12vqHd@b@6}vzI zka|)v@sn>MBJb7?4jzb}$;wkPj5|kf%Ll|eib=gJCq!k+tDmsC-23c(Kf6qB(cgTz zKK<1;{WsC)dir>7xGUy5IbO_~-@gy+S|0K}$os+g^~U%CQk0-P0u-Cn`vvdTTsnH} z&Wugqtm-wO_~acxWmG4Jhe;5~z4jZzZ=*(z6XDA-O^# zT^-uPd*)_`)^+oOvPqVxQUxpab-1XY%&1|CTvrvXos*lofbQtM@~(+=+{+PU#0Ltp zfJ?f7En1ppg61}QabW~n>5}vyyu$cVQoHad?4>s*>nT-5GDa)!ttp7OaH{_DY!R}r z2cu(j<84hr?d&NJfkRq`qPSRqe# z--}2*Dq>U-0e84`_HueQ29IYz{)U+KE7pX({Ar}&J&5Y5G|NBO7tbdl7((>N2r{on znA+Ei37BtO{+%WNlclvH;K@j^Ft8vemRYjMBdtzG-eB1X_QNQaH1&md+pft%A4CW>#!|uY6Bs3>0sspe6pyc#Ovu z>HNp@a+Hn)DdJqhC-5_Xtd%Z|2l`BO=AK*dU{K&Vt;lQaXn9T6>Tte<$}g z40MFo807rvbKw**gQqEqc}U=|s;p|O&ohWB7|&8RiDavs=3-d~(V1Uo&XVkh#8$DM z@$AAM7ubjJR-^O5X1gpCiu;y=Sc$IlLu7u}vwN|OJMkTn?oeWsrsW$$W2Td%R?G`j ztEes$Vj0On!rOxP&IuN)QF!-?KEaL!r>tisN^^7*OH*Bz>079}ie$Z%7=CPijMn8C zWs~z#`vV!=$^Mtq>@g2lld|cQWF^U7RDP`HP`5Fh&16IFGFV{4x#OGBoe=*(|A~?C zQu>x3e)A*YKmIg-G@S)?LlYrfV7#7V_(2$S1fjYJJMjTe+x8|BTlfn{dW+O~<)9#BDPIb)2m$s?%l?a42j2m=9M`-v@1@S2+%w;DhsLYx zdF9Tj=Qq*a+yaRXf;AP+rx9r(%78nMfIS3f+9o5=`EsjW_IR{$DBavpAiQlH)Wv~v zfF308A>)Nk(8Qo^etkK6JvHykB{Agpqv99zkyTR!y&O-! zOg!*{!oqv0Ll+a6egB};PQ4Xj9@tVnJ7KO*5JlXGY|n{wS}-#NG70zRHvjb@-*AQ8 z_52s}4$?{HDDZ?#ER@6NCh|KPMH<%t^-T8p+_0g?Z?{WGzBQZp_3D!&Z5{i{;}2$k ziVcW><<4p6nR`#>@+J4lAQfR3hw2>=)tccmQEY2?K8yscDZ;_)ZClR??cPp=E4zP! z#Ss1>t{<^P>k?gk79_^-8Jk5c7Wce9_ISYj@I}fJY<;>e7k0ZzYzS*e>ewq65iC}= zKs7VkLh^`VZH}_7>;7r|I&0tM1L%yY(Khlbr3!vZA_JSQzPvsNze)?;_hF3XzZ~Ru zymPA~om8TezPY=PXctN)g^I3-1t7GVN0(` z{zG_&crKyha=u=Et=fB$+v$!+HEkV@LHB*f*jo`VU%d8&pXY_!zayjFZrsOiIGVn` zxjcSFy0J*F*R`;b(lNZN=YYqy0GESLs+h;t;@7YlN~+WTSKI;fH;X`qS8(0y;cnK1 zM~1Ptn?vQC!$vL{^y{_RRr%~GWTB#K5kxJT8}9}#1hJZK`kt|O%>PJ#!}->^{s|yk z5j-D6X~5DD7F!1EJt}Xs)wc60=RJbaPx6(xBpZ5FADX<8dxUkCQUr!o1sE@znhyg@ z1PcXAG}XakS16Ei&E{nO?kdZ+)(Kl!BM!5koPK2Z*T#!`I$h5WVxO|z81cBWKafkO z`vGz#$g~kq*LK2E*=Y$BuvDeXVjCuF@<$K=$!}#C69(#7Gr=nIAWUm{3Z{AB{J0pP zBp0cW8%cUUn*H<4RwN`UI->Ul~=(v#V+twF`wIC5U z2yK%OErRUze)yCynMoLqgXQH)_;nr$GXby}Ki^R2fAcl&a|vVDE@z$7UrGJ;=i6U~ zWVdfU0Hh;`Th@_92#8eC8mEVi?*jK>_>;d?gV-$OBzl@ey>&rOIjzdND(Mz=Ov$_L zrYO%u(=%G+O3%3XR8A9!vcvarTDbk>&v;kwLOmk$-WK1aW>)QYq^|z5@0_%rDs1viNWjplB+!4B;F{p3E6(3thXgs@Ht{|&Wg3v^i{mMby&H23Lmqg|*j7&17!k1=Q0rq`H| zI@iMw)@>#@05ZVr>oLCyR@<%IVcPvf_%Vh&w`v2%dH_A+x{z?RikC!?ga#Ykp(Q~H zP#E9WH{FLFqmoQpvlAvu@gaXF2tAeOiI&`zh4&9gZND6fXlf8Q2-eLF0g6^KK}*3~ z*UN-$pL6)|~A4TD_HTD7t93WJ0Zrn{qQic!i{i)Z^myJsi@2&>;iT4QtfH17H3vl6kImKvy+jK|-zxqB85HKKZ?Je2 zDvMl=+A;v?6XLEn{86v<7w}evqFsoMjHSE}Fs#I5ieqA*b|=_(Hk5;0S@-@H*k5q_ zy|XUMxmPqS=`pP?KY3&&^Y354ux4%S!zgt`o`*njeKsD~i#BA6Z}ct2w`B1clw3Kg z!(GVF|12Q1Xg8DELz*eve?;8AeDgr0gVf4P*r8lXDQ`r$6CX!6s;14L5*- zXWC|##WrqJ>wJG;V)+v>>}4l66vfRbWs4@mPJRU2U7jxWu6=2M86H_6QMi5CVt(mI zs*QQLHlNT(rkTN;$0*<&*h2E-AViCaPe2E{W+;n_&EOTgNeP-A2kBhMgQmi6$*jwj zL_zF%GyVdxdJdl{9IQkxxZzYOCaj-=uhdEgAc>2}GlzdN0^;^`Xp~a;)PgDdo`2d@ z_$Y2aK&&<&h8k9k1ePEKS_}spolg@^mk(drZQ{srggJr?_HTbEuBM+>PG3$R{*8^6 z{XXb`B{K#Xsr>TE`ME?+c2$PTS}Z|?#{{b%nIb^l9-xJ4Q*qhwWk7HYMJnsjAGss~ zIu08Doz^APh4`v9nH3!QvNL%OFd~F!K~flgEZEycMmwvLe}Q=wHJA?$HyQ2osVZhU z>U(T3QV+r^Z?YDcc~$s9G=owZ(9%qEDNEp;g_eR6kssW~H${Ol9$XGtRJO*Ex9+87=1X1bF{u$2*N^n#@%r?1odCd&QJUT9+zD{HT`eh8+ zu-u%mhmw?Dr4P_3LwD9f2S`cgpPM{uAw%ZJBnIx>c($k8RNDi(R$8Wz_`zECAc8@M zD1JMJHRKiQ784hf@Hd7e=Sq1$ogj252zC^u&~hmh$JawqX?lQb0eW4 zqwugKB*F|iR=o9wbl5IAJ`I$;)U$PFu-Ft@9G`OD6Cs$>l2@KcM_#ZoxYMNAY(dX0(2RR zN$0{x%J&qKWRW2qJs2@wSf*eGXv)OC>`N1^fSEye@S5T=h?N2{Z3nb!( zYQgcZ@|yuq2tK88#am;#jj4+crKOEhJQSgW8577>Sq_g9=ysx?X2Nwe%TEdn#oA{h zRF|GAev9Z21wi|;+9Bv4L%e>dN?{D+0w$PhEYNkEJEW&lc!75;^7f2ZuT+7aAIv#~ zH=-pBzxzJJizTA)_dMQ5j@B6qd|S^cWrit`+%KM=IWdi*R6wz8cbHGXA?9Fa;px$l z_;jfW(M&{^e2MHR@ZZFX1>r5{drp?Ua{J%KSS01k(!9g> zcyKNVsQA_+IENIlq4_Xw2axT69@tv9?&04|$io%OnJ5ejYKIRI1K0~K9i?dUI`+#0 z!%>wA-X`nqd|`o8a&&HSTvNAcfRGF|7K%?MKMtY%0*zsH*b{%0!2C(O4F>jS-oil3 zW*445aH=pV3|enjPX+T6qABDolM!P@%D$t9O{UjEux4l`5VoFHiTB_0@E@*}o8M)P z2dT;H7v|2`&)871i0<&gkXr}>#r;v5(Z=9|aG|5vK$j=6tN_0ZvOg8c1Nxd*`a)gT zGwG}^c$dp!Mpp9)#W4@SUZ8FaQ4A|kA0Yb%6JTK1xSjPb$`2$DM!ix8c_56;y)}?; zv>}D-ASCdwqWSTx#>epbBVSF9W=xClung6IljMbbtxyBFuwj_43YFDZjf=cEtJIPE z>wLTX|Xl=FyX{#g8(w9I4-cc zbQgjaU>&DjA(yh3vgGm*34D`&IntR0P_R;jxL&4b0-}yJ0w;nKpZ4X>l8E%E=(^5@ zxXM;wjigTq(z{&Y2g-b6e-u;`fV={7Uyf*C-1^Z|CV694h>9fmz5L}E`ILh&d|lqG zl8%$fk4(Njq>u$}1pZ6W_C)DWAZ>zw(?RH8Izyn-0-4ruW*627T`)wxGW7k61q+=q znTQx4C4I0!CNjJ z40T-NBSX!{lbV#a=WOur)@;91LA>d9%e?V`xQ3~9%d?gx@b}jomzsyyfQ_7S-=5Us z>+BRXSZI>DA49P<_HzhF$v-^!Sh3>w<$fF<^xFWBEX)fcW;y^-Huwhg#~#V&xy=l6 z9Kvgx=7Jx?`=#+zZ$LI-LCnTVLJvD!Gm=sU20kA?)4q(10J}k*qMfbcD)m!A^aYWH z(`z#&?Gy*ylD3;R^{RG?t}ByheU44yLJ1$U-6fZ+L~FbcD($b~{WCg>l$TM3h8~-R z2IxZQXRZCg$0_Pc)^Kg*?p%|&FBkJIlQ=AQjI(0>@j@Y}M84M=%eLa+Wya1vsDy8& zjFlLEQphbwxzh{TK`HK*y^Hd*+Se%Vjk+6j*Oz@B;I<&L4KsEi0V?WEavnm<`NAn$ z?+yGC!_p^Mon`HY_#nPlGvuEweb4Y0hwb|e^QVlIS!_0I`ptEuC}OAU!3CXkmp=r< zL0@z*i54@3#GiiVn~9Taa|-SEG5ht?&Q<3FRX#)hYBl-$nRktmcSjpe+TkZ>g|d9? zhIh|D%6hJaXidvsCdf{z*`S-5?d1J*ul0PKjahGx6(_2^FZ50nepTKUe~0tCA1=q* z1-K7Bk`9~t&ico&t|+8v)A>3x-V$J{k*P6<3Q(HK83U~153QOr&IXDq zJ4hJ9_n~IWI)Q&)(biY^@fJrC7S0LUsi3#xyxzli^CSRI`SF`&u`CE<0HXG*z~9 z$6~JizhBSB$m|jm`kCK<>Be!tlr#hqD!j53Y(?;Wg|6LiI{RI6!?Ws1qoSN%%IdGRi7YOJ%oQy>s3X% z))qW;-(8BZtCrHjh&i+V#oN(gR=DeO*iA8iFS$cRAc4Lp2PEep2CHEB^)t8?ToH@G z^|G>DmuEoL+(7yZFJQTB@|*D3XJ_TvxaF^L3)y}E+QV^;deULD(^zmr3k{%`>jbs( z#*9QP%Gw(vw$|1cdt`2XjXid9!B9DjrJwGI?Q`czE1CzTKu@*XPRH^0?bVumonl3( z5uFH?y4YKlDyI8F|EIcXpwvS2D z4auczwGk?5MDC~bu)&D=3n6#N7wPfckOdjP7+`Gm)j#o5%IIiHKb=?ll8RW5B?f{vJ<+YNCZoZL$z|+QETdSx=L0iPo=K z?q%DFEy5o^u}GWg?4pfpF>eoQQiQ=xw_0~N{tbr0&UWM?SSn^P;2v({YwS#2Qm^;? z^10_oUT(q$yki;q4JMKy8y>#%@e*@4>Fa|C&mv`&KN#O_W9bqMeIUg=^DgMVkW?iD zCw#WJSr~88ErYz)@t%g$l-sh`&S9eL$~NwvhsjB@XSvQRqURso&QE%?#FP2b-reafho2-W!h5@Hs?U$*rG=VT60Q%0K|qZ_fO@MEiC84he_SsvuZ!1$ z!+LeU{)LMmh2c=b&nn=pou*HO{m!8J2RVss`u8K%anh@$aSmiZk?c>|T(qm7$>Z)% zIP@l#sM4h?tG~j(TS8KHZtN|uM4AqGx$3OKg?lS{&96+eJ{<-J;Pz9EQP4_Ys~$Yx zZ3NWQn=-@yY-E0eC^jGAZY-qtBT_3Hi@F+?D`Gn-Cw__mJ=CW68>x##7OWEd(bLZ! zCHuZlbt;(J0$E&p%2-xo!_LO4n8;$d)O~^RvWY?HYXW7m=tJhjXnz$-F zNx#uCN53Xdfq*W(k80U(#ubU?_fx(a8AcQ&NDhKB@704XYstm3c6Dju(Usizd7FK6 z(_PWDkMM}fl_2Q;LCrAHsPeRkyXX*s5+NR;OAE*?b5Pm4x~a4iT(6>zazBhQt1yc? zi$RTd!3o0o&2he8s?m+l5miJ`L3sUO(0z__AfC}IjVXR(xyk>_yHJ&tK^GAcNChh2!f^hLI`~!-wyk$_xn{;Ri$4MZILvWUzQIy>gn{n zS}wxQzAwdlGpu3;Tzi!kJ-ti4A$VGu!aJF0(FypYuKc50a$)7G&{_GUP8gHquG30L-aKrHT6c?uN7(ah=*8v6$HgWLUAQ70h}O!}2Pl^14%?V+=3Zytp8 zR?Q0z*%AMgoP07^q!ou+Ic=hKW}VfO#p08Qqpx6JTu=n)D#Qz9M6n#0fLs7mKYMDH zuhXg@kXDrPM>93VSK0&dhIP|oZ!Mm@zi z85)8RhyCD8YM5{1HE1aY+Ia2OLOeXNd*4y>0<0&S_uyqiel|rLvvy)}mR!BwXS2t0 z2@yJ8jg*X>+i7JmkHT75`<8r3X=Q=}-90W+Ln2)nuGe++JH6th1d%I3a>sACdi0)b zxfM?WqJ@cbGZ~LQeOK;R;Bb)QCs9!jAF4$kCw93}>hi2`BMgNS6eI{DAYOIpCZ-`~ z%wBei!W=S;;iW4Pvy-oXeJVJ&%CpY1!Q-N>UV2vYq=$`!Cg7_+98C2_8{zUHT!9_w zbo|jZn8qP7^3s=zc{KQCWxvG_yf_Q1=k_i&K_-}~0y0F-h_t2CSiv+nSb)Oh&FEgn zj^v}hEUH`Hat=hA25HMQrP_SFl!|OLN5yy|UxSa*6xMuySeKo# z>*X5+!bbUgS?o-?^Z3Ea(GN9~!8^;VF>YnrmrKD;6%BwtYw!K@pM|Hf2TSAYlH*3M z`yFg(L+z`6+Pq)H1J*luJ4c3f-KX7(2NaHMN?Q1xL5-)`zA**$U8;`3pa!p%r*hcc z_6KrxrFC&-#*^Sc)J5qjcfY=Ba*SfB!u~>>FW1DRF{ps(S#$k}@B4_;yyon_Ztt?V zi(g{Rd3#ZconiiKJV{pqp(4QLM6ZpOzs;BoeX{Z*ZunC5v7TIBF#cf_ZExkXwI|*- z6PbE8zerU9~R%nW%2VULu~*?{p8!{jKWzBpJ#ph5vDY!;T2kUW(sTTI^^ z?a3^{7|o#gj=tYGm{$9{1oo5k#fi^DVd9|GE1Np+kQR`r>C>iZC$c!kg^L~bOLt}| z4y_6?AEE33pth>dyv?}&ju)+bp3{b1-b9-Fqf`d0BWGhHAxqsk3IAIZUNzmtRu zt1s9U4mnzM@+9rpPgG^Ek<7q|P!12;lpQc=PxrRsjPzUbh`Unm-5+H(G%#wKpxFUI zC#e>18JMdc(7ovQRjRALOnkcn!BFXJ`eaUbzjv3rk5K?+A}@}9y^`IysEogGw8Lb0 zc>#sbnrP|~yOEy`7qa3;BW)6;>L<$M^3Pn*?N8b(zeyKb-XO%J5Iogw)4;zew?6Jv z>U^jk6oO(#zwdHNb%@`L5%wMHF;Wft$X?AU|Lh?po!OI?r>+aZ7hG@iI?rxL)6E4O zET4*={~XkG=pWgCX3cJdPOY@%7C{<_o##k`#h2tAFIDeK|5*8(2?|6s zjQA%B1y8h)hzvKRTl|WO+mO~z&f+TzY+G`twEnQF&2pl*Q>2h?xwE?YSf}i4_vq7H z`Fni)FTM#MvK*qhCYhAwChbPwPNs<}bq`RE_FU}TjC2q5jdZ6_D0(5d1+9T)B znX&gQ>w^B>O+Lhpp{Rn#NT<<|J=iAk-R_7s4nRWhw+qKJ<7?yv45PtH2&;IC_J}?j zo5(nrE-a0B&rjI}0tqfMBQ?%pp!Nbi3`xJU&m%Q@7N@?WeLnPab}Ai#uS-OU<;Jv{ zG?e?7?GGC(5Io-3KA&>ZLflX5*GF7;1#&S}t1-JknT@*(W7&>G51HG@B7Vz^w3tP$ z6>55gd2z|86OEre8xhWkq0UV|xnp_9zR-t*pq@wHvhmp--A3^{XHb$;g#*WGe!l3~ zH;rD78+4n4XYR!X)t)}TuiWCj0iCWWGwB1tK!r|;zC6Gk5uK$ml2di29VENIT(vIh z^p}?^2tW}hwbieFZkfiJQksz2WbGI?4%YfK#J1@+wWbu0U(4$BG~#&uATP|f>F|U? zsc+c2NxWk>pTmNyGV(?38HxSJp&QY4R}6X{HGk9>S` z2087^@A8#+COeIokvKeC(&g*Jcpkz7BdCteNNc3q{wq8hL#_Anr-S7}$bi}eJAYKv<`Mmbz-jS0X2;+m32r#{y ziyCrY__>Fj>ZVTnL6HS8GbB%(ygG&dST|YT10(+_k)=E9)5c% zeBu1nnUZ$|1^3XOi0*tR!@UU>{hsoCn&-Nr*K_h4Xmy1h2373?wkQYZRpmx^1-0@0 zr}BDApN_NR80PoXzfJ0+BeOl~%od zZa@$9u!w{}Y3Anh=gh$MKW)T8YoGKa8*d*%sDc%-vA}ctI$GFdTBdz9m`P@?Y|99Y z;JX^&!{R-p*fA3^>8E6LZ2NspEGRyZ)*RuyE~Y!FIsEJ7BqIi%4Vn$V-yXNq{zx7g zai%y$QRD;D@{5<#B_ee%)}Y?Fda(ZETJ_CSW}5fcGxmqgM;|HXoL8Do+f^z*82UCu zJB?}{bOj+x=;de+>{SNdRx|rQv#mXB)|DK8({@Wq`N7kh zA4eXtqhd&LefGKNiqv{*&p2+`^F1-Lbzu%jR=tBqc2A) zg3QjoU)x6$?wgSXREb@vQ>q;t5njUT@&Y+(nuc%xh*Ga#u~5(QcTtJ2D(2?QV!pYB z?Y`&4JbtY_Ydjvk%4Bi~obsz0Jgn2PatEUh;YRU&CTTYKZytZ)FV3K*-gB~wKxUUV zZZ;&z%}X!6>Z(n+C;d*dT4eu@`RY4C(}pUcaWdcbVX^d`=p@?kB5L;07KSgWcImf1 z98{M&lkuhzI9jU51?^*WoE#ywCe$w*ZuoMQe3Y?;LyUD!6kDq~QYp|w$RZGdQYI(S z&jP1R@dU$tbRXeF^_X6W8xOnh+0WMY;l|7|o^{7o{nEh$&tP~ft#)PX^Uw+({_ZPt zY9K6~St@<^b=c;PJ6-VL1xhDjW6J?HZsKZ1IPkO|NiV_CDb1c;-FX!v9&BvGYB{ik z9Ehh*WzCDk%)uJvXl&FM;))kj6vSV#Wl?Y}BSHJj*+Fe}-M4gX+hi^edEij$v%uOX z=nzlM3#hK&9A$rDei0rTA!jhH=sTBud8{tZpH+wu^k1(UychG@SRr#$Qm(4fo!O*g zFG7MA5qwFPFy!hZKy+&@EyXAE+FroERV79sD;Zq%L(jOnC@c=WZmsFfmF{QCRr?h^I zwLEQg9V8^`K4zO-UEfZ(C9_)ac0BVZ-UXn*v`$lgd~v)a$qwmYBPH-|yFyD>itM>{xk1h)23(X+8wF>Z&i%VU-Q5b zp!{)DS0uA_T8-70HjZ$XfxOa)7cC3i!Vdh$bXrqDYjxV_!v)szV)2V9zk$4X_qd=v zpC1qPC1CzQLy2U?rnH506u+9Nrb!D(=xjsV4eIFNadK6=Q`ZR7bhi73pSFTc799m1 zN&}otPYvvSVQ|4G6bom64I#9w4R)V@w$lB(;&3Zn`BrgRuZ1xpI@2PysE^z#x1Nas zrqPYeZ8%u$c(s1>IrjlWCkzVvRlyLi3~}i9=ojDJqe^UC5Yw0EpsDnB3?0)n@hL1`$oQCpD|c$?f2o z=SM4&tGS{CLrz-ACW8-s`zUy*V!rT-ZWArK-Lps}iDLe?>WQkRB(&fQ!F{bC)8{2i z%5Ea(s*5ky#BM5?4_u2-fRBh?bblKd9&&O;HoCJH2?|+Zn%niZs`>Zxw;r$_m`OHS zerVo^7%gjt^d0}%aWglApC7mA?2c6LB~7_xs-eJH)zC4B8cYA81oL*&9Brw6f2Cy8 zil$KFh~u0bDUZ{8LPEE+z#=tcDh=5hEwAT&$UZ@aXDhkMaGi=g>*BtxJ1CK(nor>$ z2jXK=BO8>85Z@u#Dbh3BloYiVfDa{w9(3L)07{y!0`mOtg~MW=m{Bn zE5Yk8v{x^FC7Vy>VfR!CenbgUt>FtESdG(E6f3MLs28sZDXAwBVzHyk<9XLK%gZv* zdzI;AO0fY~*}N?(4JRru;`S+ukSc;FGglQxO`uGLBU6!I<;ft_0X73*&7)Sm!Kt6d z@69k&!?GNtxj@qEm_OYRVf*)j=!S@7PPlimPRytiZ9D~v=|-I>BQD~1iL5jAD?0Ce z1&GUG^TdllEnF?_s^E**x>stAgZ7q<`pv%+V^WNNOcGkX+_*Y-82d(I=i+)qD^iaDeqfCEVLsx!Oc~ z5P8u9iYK_yU~~@>@q9xe9ke^sq0)esYzvi$G<~M!qi@yhkaJM$~qLn%E*uxXqchY2;BZ@ z=;TpBRK%#<{aBNS4ifBRM7;os)%44B+4CSXePv|n2qF;nz>8S2j=KOqwb+zbF^G@J z%2?JSEf0ZOvZre0eOM9WKZk+Kv;Jcc6@$q4$bSod=SEIvI*iL2z8fNb*zMx_v6c26 ztz1&YjUIdmmsAQN>broby(wO>Vh)kgJModJGk#z44@f7hay9`B^YS!fLtQ!pYffms zKbA16SoPv}@4bC1IpW>qVv6VA-%Do4^&MHHi&Yd%`LJXqpE z6_Ck@4C{kk&zpw_80eXg9HlY(=c?#$h&lQ%3j0?0_l|mo3miC3K8qV`)^9)4Lg$w0 z@|Jw=RHGUZA0ZeK zKgYN>(VQob7T!RW)S4Z40Tosb`8uG3Tak-8SFJyX-o&?z(@KT18qECnNf(T;00O2x zSw{pBj3)av8?8fD;b&!(2p*mLYH`_GH)kBGzZo!esFq7?e@W^QOz}8(GsAbYeghkd z>n)9vWfVNP0Z(DGd>@sMVi=|Jbu_DNlbY>%`vWmSJ{l)~vdq)4r=vhrMBlWG+;GoH zFR>IL`^rlKo%VAH@MrP(dNW4$uVd4VCE#pFXng%Mp3|<{7pcc)WT!veeY_=#ku;{C z;sj#=dB+Z9zy02ZM$_n-YRm8D{2`t7nw^xJ~_isM7^uAa>AhmfbkO`5*W9+ zR*b2@yaFv%InWSmWNS69SKN&ng=#m^1f#grS0yb2-(=r^NN&{oM&d}Uchv1RRdpWh}Dq6y)!V$HO4{ow1aZF?lo(7PL$` zbPhNyQmr^-Lbrwy1yu{_t6^`t2|oxu;rGZo)7BzNa1V%A?eG1-F=I;l_GvGUdd1C0YR?mvDx0HMpeU{+ACsKJv)9o_jm@7O zMLfHzm0DJEi_0Iv!Hp?*0|AY-^XU;sh3n$2kHb+yHa{ zSR!B#o-8(}h;x9>bmr;~W?yY?sm5&R&nO=<#>%tNMN*~9nsaSXREKULPFiw+3wG2W z=U;Vfd*{mZQ4m+eBba`6y}E2rpv`efSG!k=aU()*NA1my$4~YRttKdo-)g87ZJs){ z0vl6=;{F18^Vm_FOFNyF3sya(P?G%%ed!6PBEJthm4{Y$Jv5u-8)vz+p-5p;cH`FB z(;0Q(yeNB9Q0Tm~GS7bL-RP1yIi9pm6XZbB)pVrowT)~lGc?y$xT|U<;(M$Leh)|1 z6@GN7)*K^hG9moAivo()S5B+B_mw~BnGZX74#EkOo_zx?=$|tn5V9oNpT7@ulwyu=|NIDC_wut4zyGdod|- zxAo%f+-!Tl_lIW3pB|lVXUVVGTF6t}g~Oit@uxW{Y*3WLd>E^!gX2xKXjjU?_du@0 zgEI-sQbF3-@!wb5D%c5Z%cVNYYO~FTt|}Ys&xvu}sTss|fL)V`p);5SIzC>t^4-lH z33?fI(IYh*wN9}g1f`-Q$;CM*oU)V9c#gz9YPcsDk};f6R`M07qYe&d;ad0y^6CxP zJF8gd;{CUnGW!bRk^ymAG5VQu%$lLrm8oH(Tl3LkOok)hh9cI(tmEWrNOFD%W4!1( z_kinHhpo!xj&=bJo=ce_Vr+<3S4EI`g`ZE~#2wk_vP{m{zEGnKyawK=O zZ&1}HXK#Y)7LV+*x{m4l`_wgq@VRH1*-6)LMXC2z^(p(i#OrHUNR0KrtrKzBLY<`) zwJ<#>+6;ak&MqAW&n}kx!(>M1e5v3T4 zrlAGS4b14ay2kI@e`4BSyAm!%1R~E1H7EirtrtTl*iXKPhg~oI@VM?|wUBwtnlq^O zbhDAN&v$A!%>1<4+*qy&^ts{k;xrtf7E7^3KvMjcIT`U8vXy!VqCocYJ-roSdq`$R zz{RnUwA`TU$l+4=WVpiF>;cGttTi(I`szoThy*S9XWko5<`e3|L1xn&v3U&!on^@| z>X{dJZ#Zmxlos==|CMA65Y+FS26k~Mjpqy;Z6kkV_7c6-1Z=|tpPjCG^B)x0K!$Ad zQWnh^weQp0VUps?C2WH74Jna6{k5)jvth%Zs>H}98dOtmSSgvDo5Lxv{V&sB%HxP@ zyQa?fe|FMe(Y*+QPq_7~C%M*shUw|qr({^@@PLSBR#(sybD-cTWW-P9q^+aNi|EDf z^!Y7{2^He=BS5}4U=``(P}*s60*|Gxr~*+cttaulvrP`t6&wgpUjd?!+NKR>p$P;H zS7gUCr{E85r6C~71rNxuF=MNmf<#SLGPJ-^ZeNu4j7)}2@ zT`KSd8(AZW6qLo+Qsq#pGmUnMA?|-f5Q6r-LzvM?jV~~(IK+6X)YAZ5@bLkLUHy&M zBcqUyf|`lnFErlNZ8e_~NA((q3=J~V0D38ekFUTuc>soU9Kx<)$N>k}*~r*?9B}yW z=yTNVjZT3dqXXYmSP2rW(QdA)EKENk-0w0!JzQ3+hBTL9M`xNEw0Y0OxI;D&)R${o zCx)(bCdV&EN;$#h96}ubI#ECbQDFSw$NW>6PE@2)eX-7@-EP``J>_GL-S)S%*b%@S zr53^)r`xpIuoebHEU&twxu}U(#B@-a{*CIC-9Z}cQ6%2j%@ z{I1o^>r-*dp$fkreHFh3lEVv2Yljn8$MrG4TX7peeD&F<|+9)}|g z#kI#9$**!DNUQaYv*Rvp<)F)m2(#OnKC_fm_NyWAaGK$l zELeNbyiJV7!+@sTP0rcQE3gO$B+&b-RY=d3lo?dFo9KFRSnm~{vs+)A-D|IpkT&G$ zq>8KMCg1T)(1bgT@#Iw%$ebPsz}x8-JB2)3d28PDo||CH+qB619F6@F6JHDn6F`_x ziqj0}a6sX&T}c$k2vM}^?N=3uCy&bGP$ga+yd!t81&~N-2m3(*pIma7>wy}I%=lc8 zyh;k-%2NxsV}5p6(4u?qR&MV*H9T9yo}TQN7pB?eTYgJ2;eh>?zZ7t%x^d1y!P{6S zoXQ9D%+*V)QjN8{PVuOue(@EL2pGB9e7eb#cQo~YR5=NCjgevt*r!ah5|i2auw7+% za1k;3Q&95!M{1V$n3P@P;fNKErsMW|WclqT0pJaN`e8VLkMdX>R9`=ijWtUkn@jLW6v{GeA@mp5l^+H=HIC@4yO-wY&uy44cUan8Est(In{xE$0(P5~oz z?;e!Yi%k!?&qxWN+MZPj7M~rgI;^sdT0?`dKPl(e?#HmAUCky#`qqSN8f(}ckzy^O zDsy90Inr1qxH!_25kvmagfo6eziIWMkZ$Xfs4p|ipEF*m<|u$yK>8I-HlORv3(OBMcT=zc;uR1z)lH#a%p~ugO=5gqLwniW^|i#HuMLuw zPUOweaeO|mMxj-1@=;QUDR*MH+DzWdJhmzMaEY{wxR%F8Q@=l62zuaMnS9d6-0}YiBKlyr=u2XBx#6|>MkmNxb)3VeXaD1 zXG)-F2bCFrx$dG;$&^Fcj;veG6`*DJNC zjlf-OWCLn8+aV<0yTKwMP%2uR?3BB%Cn0?~2V1q%{xMuIj9ilA-SLFOdE{mPg+_I} z<=g4A1J_HhWG6?k%BbC|DCr7CuCEbF@|E8Lz4RCfLZlZa59Me*Tm3J<)T4J7+?(dY zy_S3wyG4sbmlfCVtdQXY98WZx*2(spr&IL;08RZv3s-UZ>tF%Uerpj#1ggeVG;TIX z@+h(y1|?q7!TR3GVtbloI?#-?L=GH_-gteKks0*TIK%4m3vQtarI(e5?UFSUUZa-b zN$D*B2Dql>J3eT{)zq~f-Tq)g>3%gUmzJ@v7V3btP01_9fwVgl?cBUp{lHjadr%XR=571SgV<1c6R8}Xh!e474SIbK9ACwZM% zzI9ZbvV9mJU`EO=hw|kme){e979y$9-H!sbv=lf}zPPwGsRP=ym8L>1W9x_iwo`*z zi3qyuG(xKrnF=_A<>(KJdsRD0ZkwY*CqZ?{Q##{*e-LT4!F1g@o#_J%M2?=3G5c2~ zfA)G_n1Q%X9tG7;FR`s-yauT{sT zHTLPhCgbmjipm5Pv1l@@S=i~?kfh{su1-1aJOQWDBM8^vV6ZGBLN6Z4f%Or6~=+5ob=#RyN08y~jYdBnkYK+0#LlidyMaNQUT_ZhAvI6jx|Ki?=w zHReRd8ulNo@xRU|i&!v}#hc(Giqy)f7>|th;03;jL#+cF&e38*TtGRvntU`W-uF(- z%0mg;AmKcNZrHX=>a`{sL&l8Dv!ygQ08mezm0|Kf%G%ycJ8!@tTRvfi*(qWMxpsI!WwrI4Rwjr^1BnIauYeZhrU!JA=^b3TV-@8Fbu7<@jL> z#RfU~$GB5+O~Sx@{)(`7TN#kKSF0hu3_wM2?rxekW!}7^(|4Z%4w`j7q?nI_LQ-F@ zdfHBstm*KHLNQc%abQE)XS{0?dpc2r0LB+#P4;8@w`26LfglcfUVpChJ9mk5HG7$@ zQfecDM!h)S#h|E4zr4*__1N-G8-4S3sA{LCN_<55N?saV>7(xj6|)W8AivE{4v;@W zFS=!SXySppQ_IFQ)VGhcQz?nA?q{0G19qQqc8&byWBwb=_eY)$l^{^wL*IXe|M&6} zq$5h-eZ5pwa6B8%KBc}cRQpqO9SBbfpTjnfJdR5oH1D)+w`}189_X z_#3>o{jn;(mcHCw_9x$!oU_y!!A*(z3g;`q>tTK9O^=NTaxMSg3C2mpk1y)Fvi5q>2;08`>but^`G%pLP;n)uonc~Q}!;1$?k$LE>oARm+L zVLCF`1YeuEI@cwFIqkQ_W*~B8*3qWzct+yzvlkxLl__jgmU;AEj3Sz z2R|=a+8y``as{9gE)3$VdW33GgAkBl_eqsT>@yMPHzsRI{TW&vEy+zgbxDW)&arxkEo*AB|_ z@01kNyK>WmBI!ki?lV8q8h$rs97SX>r0?bMQuO%@SB7=TZMqk(x%pjwpd|QbBH^+` zbkltH9fiT(G=D~TT5+b({CpKC7;aN`An8rTap55*g$+kL7hSYcp0#e9PVbvKYgu&w z&7RG(MU~%}(ocr+;Z~PTfc}q+2Y!Y#x!kr3II!z@m!Cc!5~m3q8>2pJ#q`Cac&E5p zPaSY|IrAcJ$A@nK;QMG3Aj5uGb=a7q0b>#0!qOdmiG~M zfL$+n#>HNKngOnCTKn|{`{fRMhPEtLyW%rX8o9#BTLozVF2aM?F*p|!$Dn@mvybLg zn{AhwJ;)v-<+RwyXD!-BgKY=+_^G@S6WwFRcW?4za{n?BfsqvoO7YN-SVI zb9w9ReEJgYdk$RFIgq_J2mr|ImwQ^5LkCJOI9Dz=36e{|^-UaSN9r>DIUekJiF2!| z`JA_%+TFB*k1>AJ^8jQ>3#zjAe(1NzlIYwo&vJgVxLtl7{OhS~SJ^E)h((xhS z(())A4N*OnlD`~V@P>N{Odq1BCAUZF*S7)yax(=!MnB*3&bp)fCWaOV6vBb!6yQ=b zk%9iEJyA7(`gO}TDdo{lrNU`tubx%#JCRsB$7lyeBC?v+PuJNCuYGYHqx{xmzW>YD zD>>$ywZPT&t}98>vHU_)GXAWC&xUk=JeB=GZGwy=maTTz~Wh0Cqg$jWgPw zj_*OfukZG|psIxxSZY_F{JeH5BUx1C(W1)|6|i0a|0;i~C*#KAY<(t~$5bBGWP4Tc zi)2?-n;T1`*TC67a9E@Z*wHE0iXL@;wrmPB5x5wqLxcQCyslrvcMH~dyqKmX*T$=G z{CUJx?X@A!3G zs?6H6qp5PV0+{o7-P^({UrB8SQj3WvS5D=`jlv0T)_e=}kUwA1a&3mLHCyw-d|L6Z zlCvLot1)Grr)C_d!ac2l+C8h}+a|U5wtU?;>HyJvI1bdtU|_F3*KuyXCUQ-)xT#K) zW53uAXC_g5KenT*u&>(z0N9BKpfR$9D{T^*?R!|xSgCAu3=O-_a#jbx7mK}qI`ymr z=Nbf8b{2}7k5ll!Z{Ezyb-r(Y>6s=lFPs0y%gC5;9v8;8Pexjr(OoW`OmIMsvsQ+q zErCE>~P6{b14k)HS->|O*S>s3lC1a*D+F9+T0K!a8O&Sd7i36 zz#Hm~7jEoQpX-b>&6%+Cn*d$H5=LCZ8g#^N8fuUJ? zZgBTwh91~S+XPVoYwUhZ3qke!Og}4yZem_dgBj1_IytIC$hc?>5eMMC;+k>CI)HwB zg%?x+^KRL@+cE^(@nqvNe8~hs{6?%|(Gx((6UV7^Hl$Fq6S$H%T`~eiLR>-rdKU;J zu85(agfok@X-tYS!(dQKcl}nrrf}dD^J&0)OF{tz-KGhBO5Qa`*p8Yc^D0j*^?M#+ z4Lwx2+*O$F7AJosus%FV)3G4*GjZvGQl@Lu{%}~FHI=8p z?@PeHzTnN(SzhU~+h`-ZInym4eQGAqL!cUI$GO;<0epy(V;v_|noX1&%c*oJTqIUT z!NyXmME{^IUh}VHK_v6uETKM}D$b?(cyTxkB!=s~qJF?~Il1Nkw32=?mP2tUN)pOyF|bH1 zP#WTBZ~bBQ24(GW=btnBSb1jcR=}?39*gAPhkEN<#Pd-ol~5yos`76nV1hwSx0ns} zBf>}8nC!hu34B7$s(}x7t_j0e=7UAkaCWN;<0}of)ybvb2^@;J!x`6dQrI&7P3eQ8 z^7*F=49{a}EMB)c#x?dX zN-?|XcZcu6XM!1K1;Fc43JQx0NgHm9rT;KznxiEji%YR_dZiJ#J^CI;mi_D)1V3QyK9Av6d1P)6B^T_kR zA+5uq*);zsf@VT^p9;D&g$#s@qO#T!m22?62zYtf5$) zaaw@DM^s_uvjgX4O7?t|!;46*2$jE@XNQ3#1Zlderg6zkCquRddc^DK6T2a!dXcph z&%j+l4h_tc2}GOR4?;_|2RJ*)3RZJ?&^#4IydlhLmQVBrctrQ_b~VKc3aKqt~UOlZ^2wU2xUHt zFqG$%x^)P+i%0T2fD~fv#_6?NvtRjcRO?eSf@J-;#mgT0j@+NIxS;V#P?MAr7vi^<8s0c8L7=<7%Q#K9+ zF{HNsMmJOT(kN^@dpNs$igOK)MW2q2hT&0Ni*FQYPKdA!$T8hXorVn_l-hq-t_gC3 zMPhEfSVki^Al{u+#H48~8E7**f$oNBX?m*_2HUH~qh0!^<%BidCeaB-OZ&&KNLh{) z)v?@xs7iA<9`mSx%Ezh%0XJkr*ZH>0X(dTso?N#^K{V+F-2p0$+n9vZ|E*NIrY{G< zHe~Zx;}tHlr&}cS7&&$j(R`hZ!fOm!1>&gS{8q+vMfmqlRfc!2h;*q1-#L)w+XGLQ z=CU!n*!d6sU3#TI9=&gZIFIJ|f0|&te9zjdy<^;BENW!ec?-lU>Hz}#J+dR=Yu5S~ z7|6hZ0j(z<>wgyRQ4%D+;fC%^cGL~W&h3hx8%`@L)!kFIenGA*cqA`%;)o{hJlSS@ zCZufF0t@NBDXL($9+eZDaEl0hvq~W-TK3NQ;ro<3mX|xz(B$=U`19ys=@$D2K6G)6 zi2vr!p}Igt#8)cv_%SNM^{%U4Nt)~K&1$;w&lst`Bkd@fNpacjcK>lBb3O6~Y>o zBERN~UC~ZG@cT>tDxk`|k3D7w6>!bK%(;ND(+SZ+;WZq*;Ri>L|p)Wgw|3jj- zngAsr%MwWM&Yuj&;vPit1=w$Q0eRM^aCt^2q&l2aqpvg+>CLeU;(n}WNCYbCTWZAU zRXV?BI3d6Fh#iZ!gSd!NH)hcJ(o%KwyKM{EgAOy%I%$9_tg^UqxT)tK8s&C^mQ=hV zxI8zI1$)g{Y2@Ygb}b^MPqxwz_-_)>iEy+^ zN$Qlu9L1cI@J8xG&`#Xjao&N^^qX{ds!E8X?|xwHdZR$Zv~SIN#YxQ|F4#1LR5{+^ zT5ML6p>9xFyIqu#bnW@Z_23|=N@o0dtE-pO^lCf7%d^6E%B5NMwvgU~cXNl^uLM_{ zhSA>_ZPE-_UQnRQ(?dcfiupwc6HIyHQZN5tc_>Jh2|y0O4P3v|{wy?uQV{fEH)JmK zHOE%>u(uw5wh7i3f&z-e&bin)GQ8bi&vz^OuK!+pJ;nJJbW^A29)dAqfpUP~xb3H3 zD4#OJjO63Ukk}}S%JQax^;sRRCJ}cOg5@*vo-@j-=Pf_-_3?AJ>-&uDW==#!y;ob5 z-p_W@WyfgBwdc5b`eow_I`1=QOt63Ux?wYUSwV$i_1kM~pDbL*TXUC+^%9G1JpYmA z6M{WIf+YlbTLi#jcN3l07s8`KT@?!2%Eq>oZLJsI@+k_em$vIqwvD^uKhJo;se(r< zYTE5uek{(oNQWP&^ z@>0}=o&Oh|9hctMr{!*3IxDxS0OTOJXLr#I^2VBJdlJz^NR+bk*OX-~i%o-Vh;|>A z`aI<9UURGsWyKD`x{}R&95{c0mT@FejrUt#PJ?cMp3}3ppl^?^O8Y(Mz~m`d+U;@P z0%r$tiE_?leVf{eeOiU2InKOix!X!eDGsB&I|`w!q8KAvJp`h7!r5=ic&!1KDi{1tLF*GK8M;fPo_8-Ad2#g5pq1SN(O4qCgXKaDY3d^}f;W{AOjzCZsLbPU z7mHt_uBE+oQTZLmB6k2;N&Xi5^~CJmZiKANwckr(#u3cxWdT_G44JrTsr<{_;>yA1 z#dT_C#4Og2i^{K;?^`hBca!$xG4ty#n12MNr<5cLk9Pa1-Kb$Al`*cau0fx6xrfOscat zsFmn~dh1E>DlAE#)*Q>ZtDJia+6fKWo6m)I8MRaO^Ui=ph7yZNQ^^i$g^fpNkGMAr zt^&L%nIX+SgHDDo(e+v7^P#G^cFHNg8<%9R&g7~UOna1!5+U6FWq~uw7IPUscmM5l zO?h4K*v0ykMK5*$r27vICdfsAsp1oSu|oR{VbOKF$bkf7*n3Ou4AKrOmZwM7@XMz!EB!l$Vu3}iCicY`YglGnZ^?~qXopzsLy_WV^ z2MW5&+}J{@4!B>BuGX1tbY1fj_!jsesc)l$@j|MFV&%yV1{rzsnJeev5>8+P+{O^3|h zyVw?ZuA6@H_!Z;G?n;u9Z*R-$MU~cjZhVxFHFa+F&5h-!&OO^V-RRkLmwhwgx?bvh zeLajscI+FRx#hLFOuitUT|M+1(4j}1DdHjF4@V_V1N@e`N{vWWz{s>zB|3CfLKwG?p5EZfkYy@SR zYxA@3{|wQ8@YKMI*0;(tPQXnLfN3_R-+qtz#qak#aM|~77u5a?>3{#eBA7wN;%yB4 eWOaGE^qifreQFY8Xe^BfeBDOgLzF061pPlGF)A Date: Thu, 24 Dec 2020 12:49:14 +0100 Subject: [PATCH 03/17] Add missing files, code cleanup and more progress --- _includes/code.md | 3 +- _includes/figure.md | 2 +- better-code/05-concurrency.md | 70 +- better-code/code/05-background_worker.cpp | 10 +- better-code/code/05-bad_cow.cpp | 2 +- better-code/code/05-correct_cow.cpp | 2 +- better-code/code/05-notification_queue-1.cpp | 6 +- better-code/code/05-notification_queue-2.cpp | 2 +- better-code/code/05-notification_queue-3.cpp | 2 +- better-code/code/05-registry-0.cpp | 2 +- better-code/code/05-registry-1.cpp | 2 +- better-code/code/05-registry-2.cpp | 2 +- better-code/code/05-task_system-1.cpp | 2 +- better-code/code/05-task_system-2.cpp | 2 +- better-code/code/05-task_system-3.cpp | 9 +- better-code/code/05-task_system-4.cpp | 2 +- better-code/code/sort-subrange-0.cpp | 2 +- better-code/code/sort-subrange-1.cpp | 2 +- .../figures/05-sequential_operations.svg | 599 +++++++++++++++++ .../figures/05-traditional_locking.svg | 630 ++++++++++++++++++ 20 files changed, 1296 insertions(+), 57 deletions(-) create mode 100644 better-code/figures/05-sequential_operations.svg create mode 100644 better-code/figures/05-traditional_locking.svg diff --git a/_includes/code.md b/_includes/code.md index 360e03b..471cd7f 100644 --- a/_includes/code.md +++ b/_includes/code.md @@ -14,7 +14,8 @@ {% endif %} ```cpp -{% include_relative code/{{include.name}}.cpp %}``` +{% include_relative code/{{include.name}}.cpp %} +```

Code {{page.chapter}}.{{figure-number}}: {{include.caption}}

{: #{{include.name}} } diff --git a/_includes/figure.md b/_includes/figure.md index 6422a29..6f2105a 100644 --- a/_includes/figure.md +++ b/_includes/figure.md @@ -15,7 +15,7 @@ ![figure {{page.chapter}}.{{figure-number}}: {{include.caption}}][{{include.name}}]\\ -figure {{page.chapter}}.{{figure-number}}: {{include.caption}} +Figure {{page.chapter}}.{{figure-number}}: {{include.caption}}

{: #{{include.name}} } [{{include.name}}]: figures/{{include.name}}.svg diff --git a/better-code/05-concurrency.md b/better-code/05-concurrency.md index 2f93cb3..0bef88b 100644 --- a/better-code/05-concurrency.md +++ b/better-code/05-concurrency.md @@ -50,7 +50,7 @@ Where the speedup $$S$$ is defined by this equation. $$P$$ is hereby the amount Drawing the abscissa in logarithmic scale illustrates that there is only a speedup of 20 times, even when the system is running on 2048 or more cores and just 5% synchronization takes place. {::comment} Convert/Create new SVG image -{% include figure.md name='amdahl_log' caption="Amdahl's Law logarithmic scale" %} +{% include figure.md name='amdahl_log' caption="Amdahl's law logarithmic scale" %} {::/comment} ![Amdahl's Law](figures/amdahl_log.png){:height="40%" width="40%"} @@ -59,14 +59,14 @@ Amdahl's Law Logarithmic Scale Since most desktop or mobile processors have less than 64 cores, it is better to take a look at the graph with linear scale. Each line below the diagonal represents 10% more of serialisation. So if the application just has 10% of serialisation and it is running on 16 cores then the speed-up is just a little better than factor of six. {::comment} Convert/Create new SVG image -{% include figure.md name='amdahl_lin' caption="Amdahl's Law linear scale" %} +{% include figure.md name='amdahl_lin' caption="Amdahl's law linear scale" %} {::/comment} ![Amdahl's Law](figures/amdahl_lin.png){:height="40%" width="40%"} Amdahl's Law Linear Scale So Amdahl's law has a huge impact. Serialization doesn't mean only locking on a mutex. Serialization can mean sharing the same memory or sharing the same address bus for the memory, if it is not a NUMA architecture. Sharing the same cache line or anything that is shared within the processor starts to bend that curve down and it bends down rapidly, even an atomic bends that curve down. -An often used model for implementing exclusive access to an object by multiple threads is this: +This is an often used model for implementing exclusive access to an object by multiple threads: {% include figure.md name='05-traditional_locking' caption="Exclusive access by different threads" %} @@ -76,7 +76,7 @@ This is a horrible way to think about threading. The goal has to be to minimize In the following, let's take a look at a traditional piece of code: -{% include code.md name='05-registry-0' caption='Registry Example' %} +{% include code.md name='05-registry-0' caption='Registry example' %} It is a registry class with a shared `set` and `get` function. The access to the underlying unordered map is protected against concurrent access with a mutex. At the first glance it seems that only minimal work is done under the mutex. The unordered map is a fairly efficient data structure, it is a hash map. But the amount of time it takes to hash the key depends on the length of the string. So the work that is being done under the lock here is actually fairly unbounded. It depends completely on the lengths of the string. It may be probably typically small but it could be big. On top of the hash calculation comes a potentially allocation of a new bucket within the unordered map, which in most cases requires another lock within the memory manager. This lock can be, depending on the operating system, a global lock within the process. @@ -84,7 +84,7 @@ For a better understanding what shall be actually achieved by using the locks it So why is this an important sentence? It means that one can always think about mutexes as if one has some set of interleaved operations. -{% include figure.md name='05-sequential_operations' caption='Sequential Operations' %} +{% include figure.md name='05-sequential_operations' caption='Sequential operations' %} * A mutex serializes a set of operations, $$Op_n$$, where the operation is the code executed while the mutex is locked * Operations are interleaved and may be executed in any order and may be repeated @@ -97,29 +97,27 @@ So there is not a lot of difference between an `std::atomic`. In fact there is a That means that any piece of code that has a mutex can be transformed into a queued model. This idea applied to the registry example from above leads to this: -{% include code.md name='05-registry-1' caption='registry with queue' %} +{% include code.md name='05-registry-1' caption='Registry with queue' %} Given that there is a serial queue `_q` with an `async` function which executes the passed item and it uses the same calling conventions as `std::async`. Hereby with the difference that it guarantees that the next item being processed in that queue doesn't start until the previous one is completed. Then one can rewrite the `set` string function to be executed with `_q.async`. As well one can rewrite the `get` string operation. But here the difference is, that one needs the result back out, paired with that particular `get`. It is realized here with a future. (Futures will be covered later in more detail.) So the result of the `get` function, e.g. with a continuation, can be used whenever the `key` is hashed and and the lookup in the hash is completed. -{% include code.md name='05-registry-2' caption='Enhanced Registry with Queue' %} +{% include code.md name='05-registry-2' caption='Enhanced registry with queue' %} Why is it important to understand this concept? Because at any place with a mutex in the code one can always make this transformation. One can always transform it into a serialized queue model. And this means that within the serialized queue model anytime somebody can come along and calls `set`, regardless of the amount of work that `set` takes, the time it takes for `set` to return back to the caller itself constant. This means as well that one can add something like an arbitrary `set`, e.g a whole vector of key value pairs. And to the caller this `set` will take just as much time as the previous `set`. It's a non blocking operation with an upper bound of overhead. -### Definition of _raw threads_ +### Problems of _raw threads_ A _thread_ is a execution environment consisting of a stack and processor state running in parallel to other threads. A _task_ is a unit of work, often a function, to be executed on a thread. -### Problems of _raw threads_ - -Another common scenario is that increased work within an application is outsourced to a spawned background thread with the intent that the available CPU cores are better utililized. +Another common scenario is that increased work within an application is outsourced to a spawned background thread with the intent that the available CPU cores are better utilized. -{% include figure.md name='05-background_thread' caption='Background Thread executing Tasks' %} +{% include figure.md name='05-background_thread' caption='Background thread executing tasks' %} Since this is recognized as a successful idiom to solve performance problems of an application, it becomes easily the default way to solve such issues. -{% include code.md name='05-background_worker' caption='Simplified Background Worker' %} +{% include code.md name='05-background_worker' caption='Simple background worker' %} Over time the application gets enhanced with more modules and plugins. When now for each of these the same idea was applied then the complete application uses a huge number threads. An over subscription of threads is then easily the case. That means that more threads are used than CPU cores are available. So the kernel of the operating system has to constantly switch the threads between the available cores to prevent starvation of single threads. @@ -128,7 +126,7 @@ So the goal has to be that the number of context switches is as low as possible. One way to archive this goal is to use a task system. A task system uses a set of threads, normally equal to the number of CPU cores and distributes the submitted tasks over the available threads. In case that more tasks are submitted than free threads are available then they are put into a queue and whenever one is done the next task is taken from the queue and executed. -{% include figure.md name='05-simple_tasking_system' caption='Simple Tasking System' %} +{% include figure.md name='05-simple_tasking_system' caption='Simple task system' %} Since the number of threads is constant, ideally there is no need to perform any context switches. (Because of simplification the fact here is neglected that other system services have running threads as well.) So a task system within an application is an appropriate measure to reduce the number of context switches as long as all modules within it use the same instance of the task system. @@ -136,37 +134,47 @@ For illustrational purpose and understanding better the implications within such The figure above shows that the task system consist out of a notification queue: -{% include code.md name='05-notification_queue-1' caption='Notification Queue' %} +{% include code.md name='05-notification_queue-1' caption='Notification queue' %} This notification queue is build out of a `deque` of `std::function` with a `mutex` and a `condition_variable`. It has a pop operation which is just going to pull one item off of the queue. And it has a push operation to push one item into the queue and notify anybody who might be waiting on the queue. -{% include code.md name='05-task_system-1' caption='Task System' %} +{% include code.md name='05-task_system-1' caption='Task system' %} -The task system has a `count` member which contains the number of available cores. It has a vector of threads and the notification queue. The `run` function is the function that will be executed by the threads. In which it creates an empty function object and pops the function from the queue and executes it. -The constructor of the task system spins up one thread and binds it with a lambda against our run function. -When the task system gets destructed, it is necessasry to join all threads. The function that is used by the outside is `async`. It just takes a function and pushs it into the queue. -This system is so far very primitive. As well it would hang on destruction. The latter is corrected by the following additions: +The task system has a `_count` member which is set to the number of available cores. It has a vector of threads and the notification queue. The `run` function is the function that will be executed by the threads. Inside that function is an empty function object. As an item is available in the queue, it pops it from the queue and executes it and try to pick the next one. +The constructor of the task system spins up as many threads as there are cores. Each thread is bound with a lambda against the `run` function. +When the task system gets destructed, it is necessary to join all threads. The function that is used by the outside is `async`. It just takes a function and pushes it into the queue. +This system is so far very primitive, e.g. it would hang on destruction. The latter is corrected by the following additions: -{% include code.md name='05-notification_queue-2' caption='Notification Queue With Termination Switch' %} - -{% include code.md name='05-task_system-2' caption='Non-blocking Task System on Destruction' %} +{% include code.md name='05-notification_queue-2' caption='Notification queue with done switch' %} So with the new `done` function the new member `_done` is set and the queue is notified about the change. In case the code is waiting in the pop function, it is woken up from the condition variable and it is checked if `_done` is set and then returned false. -so how do you guys think this performs I already told you right right badly kind of barely get off the mark horrible why is this horrible makes a good example right it's easy to write nothing fundamentally wrong about it it's exactly this model right we've got a single Q and we've got a bunch of threads and they're banging on that Q okay and we've got locks understanding that I can transform those locks into a queue model doesn't help me because all I have is a Q it locks around it okay so I need to come up with a better way. +{% include code.md name='05-task_system-2' caption='Non-blocking task system on destruction' %} + +The task system notifies within the destructor all queues to ignore all potentially remaining entries which allows that the threads can be joined without delay. (With C++20 this could be enhanced with `jthread`s.) + +This task system performs very badly compared to MacOS' Grand Central Dispatch (GCD). It just has a throughput of nnn%. Why does this system perform so badly even that this is the recommended design at several places? +This design follows principle from above /*Figure 5.5: Exclusive access by different threads*/. It has a single queue and a bunch of threads. These are banging on that queue and so the threads are waiting often on the mutex. + +Unfortunately it is not possible to transform this model as it is described above because all that is there is a queue. So a different approach is needed. + +{% include figure.md name='05-task_system_multiple_queues' caption='Task system with multiple notification queues' %} + +A way to reduce the contention on this single queue is to change the task system it in a way that each thread has its own queue. + +{% include code.md name='05-task_system-3' caption='Task system with multiple queues' %} + +we're just going to have a vector of notification queues. We get to reuse or same notification queue. okay one for each thread so now our run is going to take an index into into which q it's actually bound against when we join now we need to tell all the Q's they're done. next one and when we're going to do our push we're going to keep a little atomic index so we can be pushing from multiple threads and we're just going to keep incrementing it but then we're going to modulo it by our count and so we're just going to round-robin going through pushing into into it there okay and if you notice that's unsigned so wrapping around on that index is not a problem well-defined behavior on our overflow it's a modulo arithmetic + +okay so how do you guys think we did on our speedometer twice as fast is it going to go half halfway up we're just going to go nobody so so I actually did profile all this code. I wrote this. All profiled it it's about ten times better. -{% include figure.md name='05-task_system_multiple_queues' caption='Task System with Multiple Notification Queues' %} +okay barely get this movie okay so and we have two problems here one is is I can get a long-running task in one of my Q's and it can cause a bubble and I can have my other course sitting there idle okay so the other is is even in a fully loaded system I can end up with a fair amount of contention right where one of those mutexes blocks and that's you know upwards of a million cycles to do a full task switch right in overhead so having keeping one of those mutexes and actually having it locked kills performance okay -{% include code.md name='05-notification_queue-3' caption='Notification Queue With Termination Switch' %} -{% include code.md name='05-task_system-3' caption='Non-blocking Task System on Destruction' %} {% include figure.md name='05-task_system_task_stealing' caption='Task System with Task Stealing' %} -okay so that's X so here is the common answer I put a Q on each thread that minimizes my contention okay so let's write that we can do this pretty quickly we're just going to have a vector of notification Q's we get to reuse or same notification q okay one for each thread so now our run is going to take an index into into which q it's actually bound against when we join now we need to tell all the Q's they're done next one and when we're going to do our push we're going to keep a little atomic index so we can be pushing from multiple threads and we're just going to keep incrementing it but then we're going to modulo it by our count and so we're just going to round-robin going through -pushing into into it there okay and if you notice that's unsigned so wrapping -around on that index is not a problem well-defined behavior on our overflow -it's a modulo arithmetic okay so how do you guys think we did on our speedometer twice as fast is it going to go half halfway up we're just going to go nobody so so I actually did profile all this code I wrote this all profiled it it's about ten times better okay barely get this movie okay so and we have two problems here one is is I can get a long-running task in one of my Q's and it can cause a bubble and I can have my other course sitting there idle okay so the other is is even in a fully loaded system I can end up with a fair amount of contention right where one of those mutexes blocks and that's you know upwards of a million cycles to do a full task switch right in overhead so having keeping one of those mutexes and actually having it locked kills performance okay so here's the next solution right called task stealing okay now there are lots of sophisticated algorithms that are heavily tuned for +so here's the next solution right called task stealing okay now there are lots of sophisticated algorithms that are heavily tuned for doing task stealing but we're just going to code it very simply here and the idea with task stealing is is if your queue you being a thread is busy because somebody's pushing in the other end okay ah or it's empty either you don't really care see if you can go pull something out to somebody else's queue okay so let's do that so and we're going to take our pop and we're going to have tri pop here okay so our tri pop is going to take a tri lock on our mutex diff --git a/better-code/code/05-background_worker.cpp b/better-code/code/05-background_worker.cpp index f364c18..a1b1e3b 100644 --- a/better-code/code/05-background_worker.cpp +++ b/better-code/code/05-background_worker.cpp @@ -5,7 +5,7 @@ class background_worker thread _thread; queue> _queue; mutex _mutex; - condition_variable _cv; + condition_variable _ready; bool _done; public: @@ -15,7 +15,7 @@ class background_worker function task; { lock_t lock{ _mutex }; - while (!_done && _queue.empty()) _cv.wait(lock); + while (!_done && _queue.empty()) _ready.wait(lock); if (_done) return; if (!_queue.empty()) { task = move(_queue.front()); @@ -33,7 +33,7 @@ class background_worker lock_t lock{_mutex}; _done = true; } - _cv.notify_one(); + _ready.notify_one(); _thread.join(); } @@ -42,6 +42,6 @@ class background_worker lock_t lock{_mutex}; _queue.emplace(move(task)); } - _cv.notify_one(); + _ready.notify_one(); } -}; +}; \ No newline at end of file diff --git a/better-code/code/05-bad_cow.cpp b/better-code/code/05-bad_cow.cpp index 075eacd..3890f3a 100644 --- a/better-code/code/05-bad_cow.cpp +++ b/better-code/code/05-bad_cow.cpp @@ -23,4 +23,4 @@ class bad_cow } return *this; } -}; +}; \ No newline at end of file diff --git a/better-code/code/05-correct_cow.cpp b/better-code/code/05-correct_cow.cpp index 9e8878d..c3dcb1b 100644 --- a/better-code/code/05-correct_cow.cpp +++ b/better-code/code/05-correct_cow.cpp @@ -23,4 +23,4 @@ class correct_cow } return *this; } -}; +}; \ No newline at end of file diff --git a/better-code/code/05-notification_queue-1.cpp b/better-code/code/05-notification_queue-1.cpp index 7884242..9e9e981 100644 --- a/better-code/code/05-notification_queue-1.cpp +++ b/better-code/code/05-notification_queue-1.cpp @@ -1,6 +1,7 @@ using lock_t = unique_lock; -class notification_queue { +class notification_queue +{ deque> _q; mutex _mutex; condition_variable _ready; @@ -23,5 +24,4 @@ class notification_queue { } _ready.notify_one(); } -}; - +}; \ No newline at end of file diff --git a/better-code/code/05-notification_queue-2.cpp b/better-code/code/05-notification_queue-2.cpp index e0865c0..5c7c9f6 100644 --- a/better-code/code/05-notification_queue-2.cpp +++ b/better-code/code/05-notification_queue-2.cpp @@ -27,4 +27,4 @@ class notification_queue } ... -}; +}; \ No newline at end of file diff --git a/better-code/code/05-notification_queue-3.cpp b/better-code/code/05-notification_queue-3.cpp index 168e039..d04af4a 100644 --- a/better-code/code/05-notification_queue-3.cpp +++ b/better-code/code/05-notification_queue-3.cpp @@ -49,4 +49,4 @@ class notification_queue { } _ready.notify_one(); } -}; +}; \ No newline at end of file diff --git a/better-code/code/05-registry-0.cpp b/better-code/code/05-registry-0.cpp index 053a1a3..8a4527f 100644 --- a/better-code/code/05-registry-0.cpp +++ b/better-code/code/05-registry-0.cpp @@ -12,4 +12,4 @@ class registry unique_lock lock{mutex}; return _map.at(key); } -}; +}; \ No newline at end of file diff --git a/better-code/code/05-registry-1.cpp b/better-code/code/05-registry-1.cpp index 4fb299d..4cd4723 100644 --- a/better-code/code/05-registry-1.cpp +++ b/better-code/code/05-registry-1.cpp @@ -17,4 +17,4 @@ class registry return _map->at(key); }, move(key)); } -}; +}; \ No newline at end of file diff --git a/better-code/code/05-registry-2.cpp b/better-code/code/05-registry-2.cpp index 491c834..883a5be 100644 --- a/better-code/code/05-registry-2.cpp +++ b/better-code/code/05-registry-2.cpp @@ -26,4 +26,4 @@ class registry return _map->at(key); }, move(key)); } -}; +}; \ No newline at end of file diff --git a/better-code/code/05-task_system-1.cpp b/better-code/code/05-task_system-1.cpp index c5d0d10..0754769 100644 --- a/better-code/code/05-task_system-1.cpp +++ b/better-code/code/05-task_system-1.cpp @@ -27,4 +27,4 @@ class task_system void async(F&& f) { _q.push(forward(f)); } -}; +}; \ No newline at end of file diff --git a/better-code/code/05-task_system-2.cpp b/better-code/code/05-task_system-2.cpp index 279b501..1653950 100644 --- a/better-code/code/05-task_system-2.cpp +++ b/better-code/code/05-task_system-2.cpp @@ -6,4 +6,4 @@ class task_system { for (auto& e : _threads) e.join(); } -}; +}; \ No newline at end of file diff --git a/better-code/code/05-task_system-3.cpp b/better-code/code/05-task_system-3.cpp index fc54fdc..503c140 100644 --- a/better-code/code/05-task_system-3.cpp +++ b/better-code/code/05-task_system-3.cpp @@ -1,10 +1,11 @@ -class task_system { +class task_system +{ const unsigned _count{thread::hardware_concurrency()}; vector _threads; vector _q{_count}; atomic _index{0}; - void run(unsigned i) { + void run(unsigned i) { while (true) { function f; if (!_q[i].pop(f)) break; @@ -12,7 +13,7 @@ class task_system { } } - public: +public: task_system() { } ~task_system() { @@ -25,4 +26,4 @@ class task_system { auto i = _index++; _q[i % _count].push(forward(f)); } -}; +}; \ No newline at end of file diff --git a/better-code/code/05-task_system-4.cpp b/better-code/code/05-task_system-4.cpp index dca6988..d660717 100644 --- a/better-code/code/05-task_system-4.cpp +++ b/better-code/code/05-task_system-4.cpp @@ -26,4 +26,4 @@ _q[i % _count].push(forward(f)); } -}; +}; \ No newline at end of file diff --git a/better-code/code/sort-subrange-0.cpp b/better-code/code/sort-subrange-0.cpp index 49baf8a..e161a05 100644 --- a/better-code/code/sort-subrange-0.cpp +++ b/better-code/code/sort-subrange-0.cpp @@ -1,4 +1,4 @@ template // I models RandomAccessIterator void sort_subrange_0(I f, I l, I sf, I sl) { std::sort(f, l); -} +} \ No newline at end of file diff --git a/better-code/code/sort-subrange-1.cpp b/better-code/code/sort-subrange-1.cpp index 830c1c3..e727012 100644 --- a/better-code/code/sort-subrange-1.cpp +++ b/better-code/code/sort-subrange-1.cpp @@ -5,4 +5,4 @@ void sort_subrange_1(I f, I l, I sf, I sl) { ++sf; std::partial_sort(sf, sl, l); } -} +} \ No newline at end of file diff --git a/better-code/figures/05-sequential_operations.svg b/better-code/figures/05-sequential_operations.svg new file mode 100644 index 0000000..fc14b56 --- /dev/null +++ b/better-code/figures/05-sequential_operations.svg @@ -0,0 +1,599 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + Opm(x) + + rm + + + + + + Op3(x) + + r3 + + + + + + Op2(x) + + r2 + + + + + Op1(x) + + r1 + + + . + . + . + + + + diff --git a/better-code/figures/05-traditional_locking.svg b/better-code/figures/05-traditional_locking.svg new file mode 100644 index 0000000..05b666b --- /dev/null +++ b/better-code/figures/05-traditional_locking.svg @@ -0,0 +1,630 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + thread + + + + thread + + + + thread + + + + + + + + + Object + + + + + + + + + + + + thread + + + + thread + + + + thread + + + + + + + + + Object + + + + + + + + + + + + thread + + + + thread + + + + thread + + + + + + + + + Object + + + + + + + + + + STOP + + + + GO + + + + STOP + + + + STOP + + + + STOP + + + + GO + + + From 579cadb39f6cabc0703a50d90c356c5b3287c7b5 Mon Sep 17 00:00:00 2001 From: Felix Petriconi Date: Thu, 24 Dec 2020 21:08:15 +0100 Subject: [PATCH 04/17] Separate image into three individual ones --- better-code/05-concurrency.md | 6 +- .../figures/05-traditional_locking-1.svg | 279 ++++++++ .../figures/05-traditional_locking-2.svg | 372 +++++++++++ .../figures/05-traditional_locking-3.svg | 378 +++++++++++ .../figures/05-traditional_locking.svg | 630 ------------------ 5 files changed, 1034 insertions(+), 631 deletions(-) create mode 100644 better-code/figures/05-traditional_locking-1.svg create mode 100644 better-code/figures/05-traditional_locking-2.svg create mode 100644 better-code/figures/05-traditional_locking-3.svg delete mode 100644 better-code/figures/05-traditional_locking.svg diff --git a/better-code/05-concurrency.md b/better-code/05-concurrency.md index 0bef88b..5d8ccb0 100644 --- a/better-code/05-concurrency.md +++ b/better-code/05-concurrency.md @@ -68,7 +68,11 @@ So Amdahl's law has a huge impact. Serialization doesn't mean only locking on a This is an often used model for implementing exclusive access to an object by multiple threads: -{% include figure.md name='05-traditional_locking' caption="Exclusive access by different threads" %} +{% include figure.md name='05-traditional_locking-1' caption="Different threads need access to single object" %} + +{% include figure.md name='05-traditional_locking-2' caption="Exclusive access with locking" %} + +{% include figure.md name='05-traditional_locking-3' caption="Exclusive access by different threads" %} As long as one thread has exclusive access to the object all other threads have to wait until they get the access right. diff --git a/better-code/figures/05-traditional_locking-1.svg b/better-code/figures/05-traditional_locking-1.svg new file mode 100644 index 0000000..7b95a8d --- /dev/null +++ b/better-code/figures/05-traditional_locking-1.svg @@ -0,0 +1,279 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + Object + + + + Thread + + + + + Thread + + + + Thread + + + + + + Thread + + + + diff --git a/better-code/figures/05-traditional_locking-2.svg b/better-code/figures/05-traditional_locking-2.svg new file mode 100644 index 0000000..1e961b0 --- /dev/null +++ b/better-code/figures/05-traditional_locking-2.svg @@ -0,0 +1,372 @@ + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + Object + + + + Thread + + + + + Thread + + + + Thread + + + + + + Thread + + + + + STOP + + + + STOP + + + + STOP + + + + GO + + + diff --git a/better-code/figures/05-traditional_locking-3.svg b/better-code/figures/05-traditional_locking-3.svg new file mode 100644 index 0000000..176778e --- /dev/null +++ b/better-code/figures/05-traditional_locking-3.svg @@ -0,0 +1,378 @@ + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + Object + + + + Thread + + + + + Thread + + + + Thread + + + + + + Thread + + + + + STOP + + + + STOP + + + + STOP + + + + GO + + + diff --git a/better-code/figures/05-traditional_locking.svg b/better-code/figures/05-traditional_locking.svg deleted file mode 100644 index 05b666b..0000000 --- a/better-code/figures/05-traditional_locking.svg +++ /dev/null @@ -1,630 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - thread - - - - thread - - - - thread - - - - - - - - - Object - - - - - - - - - - - - thread - - - - thread - - - - thread - - - - - - - - - Object - - - - - - - - - - - - thread - - - - thread - - - - thread - - - - - - - - - Object - - - - - - - - - - STOP - - - - GO - - - - STOP - - - - STOP - - - - STOP - - - - GO - - - From e2138d2df9fd1dab028929106e4f2e56055e767a Mon Sep 17 00:00:00 2001 From: Felix Petriconi Date: Sun, 27 Dec 2020 23:51:30 +0100 Subject: [PATCH 05/17] Replace figures with svg version --- better-code/figures/05_amdahl_lin.svg | 168 +++++++++++++++++++++++ better-code/figures/05_amdahl_log.svg | 169 ++++++++++++++++++++++++ better-code/figures/AmdahlsLaw.jpg | Bin 194111 -> 0 bytes better-code/figures/R/05_amdahl_lin.svg | 168 +++++++++++++++++++++++ better-code/figures/R/05_amdahl_log.svg | 169 ++++++++++++++++++++++++ better-code/figures/R/amdahl_lin.R | 44 ++++++ better-code/figures/R/amdahl_log.R | 32 +++++ better-code/figures/amdahl_lin.jpg | Bin 236082 -> 0 bytes better-code/figures/amdahl_lin.png | Bin 158661 -> 0 bytes better-code/figures/amdahl_log.png | Bin 146117 -> 0 bytes 10 files changed, 750 insertions(+) create mode 100644 better-code/figures/05_amdahl_lin.svg create mode 100644 better-code/figures/05_amdahl_log.svg delete mode 100644 better-code/figures/AmdahlsLaw.jpg create mode 100644 better-code/figures/R/05_amdahl_lin.svg create mode 100644 better-code/figures/R/05_amdahl_log.svg create mode 100644 better-code/figures/R/amdahl_lin.R create mode 100644 better-code/figures/R/amdahl_log.R delete mode 100644 better-code/figures/amdahl_lin.jpg delete mode 100644 better-code/figures/amdahl_lin.png delete mode 100644 better-code/figures/amdahl_log.png diff --git a/better-code/figures/05_amdahl_lin.svg b/better-code/figures/05_amdahl_lin.svg new file mode 100644 index 0000000..fec19fe --- /dev/null +++ b/better-code/figures/05_amdahl_lin.svg @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +Number of Processors +Speedup + +Parallel Portion + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +100% +95% +90% +75% +50% + diff --git a/better-code/figures/05_amdahl_log.svg b/better-code/figures/05_amdahl_log.svg new file mode 100644 index 0000000..2abc9fd --- /dev/null +++ b/better-code/figures/05_amdahl_log.svg @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2 +4 +6 +8 +10 +12 +14 +16 +18 +20 + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +2 +4 +8 +16 +32 +64 +128 +256 +512 +1024 +2048 +4096 +8192 +16384 +32768 +65536 +Number of Processors +Speedup + +Parallel Portion + + + + + + + + + + + + + + + + + + + + +95% +90% +75% +50% + diff --git a/better-code/figures/AmdahlsLaw.jpg b/better-code/figures/AmdahlsLaw.jpg deleted file mode 100644 index e38cbc7ea2f971ecf4ae7e3c35b5354689081fc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 194111 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%0AK8(H`^l`+p5Bb{Wi9tvb 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%0AXxDS8d9^6`6Neic|n-MU5F^ggv- z^-Icy-#25+|ARcML&76!1AjPw&LH(M;@tve2XLozp^5k20r($`Cc=6IwG|Mc8%Va+ zVoy7x!d7>R`dSCG7cK#kK>d`~WkA%(pM#va6X> zvx%T`--0)4>O7(a9Q6g=rdab~#%z!)Yn-Hrr9T@iQ91c0itwz{>sDmzhWfePLCsFPr0pYKUU(?Go)w@7o_xuC0{?_vz(ILg9y!Mm*&R<4V*H~2WTv*ug^3yDa1Q~2@*z;P=6 zI7@mCVqlCXN4|alD3J!|Zk>A2b1;>F`*E{Y`;XHeo5ebBxxLa-2adZko~gjql~Kz! zKoiEI4gJVd5>4!+dh3&<>}`emW+8`;I?mvbG$_Zz3JhsiP%qagfW3MrcXy+ZYmL{I z5&vKe!~?4Enx_8#zM;TnZkStL5`Sn_NbZ*rY_%JuE!(+B0fl3wRJ5Zpy^(k9W$SEE z2RORaVH3#Drm5UT{7)G0`||p!B;260O<~0|ap(XJNpV^pba#Nc2e0f`Gh(m|w4##t zI5!|rat3$$b5~1Vyv>FH9E=0=m(=x}n7o6))9oAf0y9*ggo!|>NMQYL^#qOyA7*PG z@E3(lxSIjokz@~zV@7;zP|n(e^HZoMKU3o9(RBtdSgkRjkL}{v;#5r(P!h9t$31YP z2pJ8n@FQ)+p-ZD@Lgt2{&3r@{1wX|?B&PS!?0GQC^rL)EW>}OBfa;5&Fu+w|6fyy?bnQD&vq|Qsv72+Z ze>`-2MHToXnW<8&0VmcA?78drFWDo9oWo#dOrZ}22QVV6}M&iCX`{P>jAfywEEgw2_f zx(orn*7eKC3?rdu(H;r4hAVa~9eWuzL)ui*(o$zo@;&Pv0*fYD$go?>h(;R>Aitg4 zvc=ZK`8j9Kqv2pFjITQ{x=xEKY-vY?gxBwf#+bdgIDAL*jRQYsXG=jqihfmT4VCFx z_ENHOB(tr*O%#lX_oH`m6}jUefKuweU~G8o8(cT&|7H5IMbYdnz0|6I@;rNerL{1zV^=;l@;hIf%ex&3KFDuPFYm zD_BXnTlEjDqHaqzLU`js*i!;VB!dS0D{9Aoqu6n20{6&sNFr>Sz&p8*Ub|`Qn-043 z@Xe{Dypk*X9@6b1^(zepX^O4%Z+e4KDsK%)+sWCcRwP!OOVkemO`G}FCazBwByUK% z?fr0|XDX_^iK9bek!iqJaTGJAd>WZFgO)sGJN8P#SC;xk8B?#Dk{fvkH4Yq&p`a=M96mz22v1K!ydNA<#1#XQsAndr9C}uQDxX?(8ad97DPoV8 zhdptp!ajn;GBgC~P{D4Ib{nJ(2+S;9u{}DrbMN%BiexGrIogWFK{l2oT+AI!K#AMs zKTEKTMsFZO-6iFrSrPz%n10REyNYqq8$a27w4`)qaBMkx2MzhL(cM|(fC!y=0-Ly7 zzoc%wQcJ_`RRO^Z5RU0|!8?<)+aOw1k{Ucc5o^G}(rZ47&j}5)9SOjDFUMK1B~nk4 z3DQB@%B`TmK~5vR&N|)O^aJ!TEUC?!plV)25}F)I0oVJks}-c!#8KMkd++2yj?qVP|}XcZz{7uC!iN%LX888|%>NW}+f^r^%q8u5UI!72XYL=`-We zbIi)>!&f26s&d$At1ziFN()^;V{z4K<7lKwDhT_v+zx|BT+U@@;YYuTrD|rWirB|G z>@~%no5&Gaex4LjO&bY1#M7DBdgKa|RU;e)*&e4MDD$cQ9_!?u1v|*H=$3OBbrDwx z+Nx0GNCOok;*#vSvg~8GvGK~}&K19;n7}*Hi{?(=wDY7>nR}$&Cj`ve@Npg|4xSm; z4kAKR>7Ssq55A2p_}?OxV#*@5`EMK<7t9Yjji)-BA&f29s!@18blj(?KXRqyre~cK z;T>MK1@G{Bw`3!7aH$}zMu<`kDK`m%AhvS-WFyRO^Eqo%2`$LtQ*6135bK@0A->)~ zVm+d+%#|H=z>AnMzoecwP=;SrLUOM7*-y8b^%K~7J>Fn^3sUYVkaxw-Z06Yr2b@G> zW#wQ#NqE_qOs(yl`gf>__S;Q0WahY$e$_9jFU`<247?(z%)z0^PpblM$fmOb3|>-N zUjr%k3nOv?r{Y_mJS-y{t_;S$zv|N*wFj1e@Ke_WE5+PnuH%r8c zx8y!zD@JZ0^?PD)SFO4}&-=;*QvQ2i_<4Z`xJ?ryP!h+}2RX`3r{WhQYFoGVD7{zj zPh(Uv_kX15&+Kt3UP2 zd$eu1y*l#Axe6!kCx8Ygg&&VxCpOIe%IA!t%%4M`8-%OSExCV+ZF;lsr&U@_ZMhr4 zL-!K^CV=T5?lN$c-yobcKQhYPTaT0~J0$Of^>om>LI6&pKE`-wi#{HQmgPtO|@&=o*N{E9R`P0~&N4fj1-h`Hbrkmqg!8zsnnd=o5w&eTV~d=4ZpG%9tC z?RaE!i%~Dnget!0lf_nyZ_&N4=`)^ubIcA(<5_g$;*p&3>O11;Pa(kNR)%t>65REw z63%FF`-gAzGaoI7Is(FTq-Ut4*Vc;(O_bFzVR$b>kMlrxWJ2!Uphf*GG(BMy$XH}l z8nV*kjpNpd!_0VeR#vb;#!YNtrCrEuW(ps)k0;B_qG^SWsh zJBM!_gM_~eLisDh)$ww&&16~JcQ^}+@Rl57_Xr1qK*V7EoLvSIQs3vW(uuF$2YU^t z9%I_gzXW8@XE=g?Kgu|A1#}YtPlxQE92JbG53oBn)-WXvAk#|T9lBQdd{5SSuTrQv z5r*D)oRO|EGZp?Fn;S@yPXGt}H1jDCL1xiJ%qy2P(E3gT{;5HQqa+=QaBuH$VWbJ(!M=*q zO#T5Qcd)ibXvixWI5Hb-M)vxz`}o@H&iSdz<4oaxv_inDhGgr|I_u@hk8-*2@K(au z9yS)cY#cQN4vTtO$t|Gvo8HU=cdZmi2plemEmdhTNRVSCqsx(F@EAOaG-J&T@DK!! zmKYZhLpe_BEDMt;@JWd64$x;Sp6J9+JS)Jlu1~ds0p z4sKe21DB%5@I(=-29l#WDWO()2TvAw9BeVY_GVpQCi2y7y1M<(2iWfj!i!Y|acZ{6 z8LI&GZiWbmF6KHGpqHg2j-} zoC7(Uu^2!U;E#frH67FkUl`(k%mEr~C?%sx_EUeQa$K(C9s{`-x$p1@kv~2)hZ~SH zT@L1SyTAs+<%t@pBnp-XLa_HwLzrAH0HOx30}qkOs+9Tg*ANy5O_@{Edea5Y9Ay%~ zoH+oCZ;FJnZ5!xQihzqMLEKSz2(I$tm!1`nF2MY7E^rB#z=MM95p%jo4s2nxA3RYh zaRX+^@2vnh4Z;o*&^53EScgAf9m7Qe-~5NOQQm+&+f2b(8{mW;!XIS8O{O?h)d_50 z0-zg%g%@c?%7T{xl1&^X6!4%y2^rPg3m;^GfD?$87~DyNu2yKk0lsvBD@7fDtZfp& zQH@D!OukHq>p32aq2<;uu7JIqX7U4m7rnw`kzmUz4>Xbx2TWserZHb1!%YD$`)ls1 z9JHbk33rcXmC0xpf0^5$k!$AUzfC|E(vf{SyLfBO~|N`Qs8V7E16$6xQ= zE0M;OlVjm2GX$tFc|~bpx(v-sgQ(&(3DsCBmd8&HfV_z-a8(chg8@;Y-@wg%+kLP$ zogOBN<%6MD>r~NDVGbCSM?m!r16J$6HlMaRo+^KVx2$O*|oD#7;(lh<$j>PGyWM_BG8ZT{PV^$|yypw0x7 zC18hiKBl1}z&96cz)ode1;pt92q#*RK$>C}N6!)GKl(8Z)h7Wsjvx>zQ?Ud;*ZVvM z+)L~(I-&*eJ0c87e_PQ(JU?RZX89GA%6AqYTh6a)G|esFIvkj9Inc`*A4jLe6H zGC~OtD4B3R2cr?@!`z+s=YSM++8L-M@0ZlYdLW9p&K7Jp+^d8`oUDPmXzK4xM%TW? z1C)lYHozRk5Xd8$csFwvY!@DxzXMZdgT0xupa5#g8v)9LO)Ng&`WRe#h42K>UcjV@ zu!KM0(BD>qwGRRa3axS_uy(aS*ZwxgX^@V|uK3@+?-rB^BU;h_@x%^b;ov|C#(6sl z!5|j^U;z;c>aL|O#LsT@fzaDb_5`Ne_3wX0LY$~tV1>iI^gmbVnEekwfw)`e;AFO>ba8<3Q4$YJG(V1Y~IgWwM6hibCcz@kJVZ)Uv<9;C~5lvP!Mm}|55OUfXEI9te9&7`>P$p z*3Mh_UN?P-&HQL~*8C+=3s)rFPg0bM#PeHbb^&;5^eA#%U;?D2PSKE8hpx>q;Vq!? zpNMd=A&4jMOyMKSq!aCrO_8UNo1uLi<&tWvw+gKHT>%A0$TXs!=M%pK_4w&4#?zF5 z{qLp6mxDnk37A}d_OKZ?Pm+JCqIqhhGYyjm93vx}XdmVo5VH0v>_@n=rzmbs+?N%n z&dD!sI&^K`i9^y;-k1`7G2A5m2T;cjG|*q;zV!cnpD@7j1*TXhxl}L*8BevNu=>=K znP)gEl$*Vv8>Y=;9}YO0PvPYKtqu63F`zGGT?p64G-wxeQQ!iYj&V0@TtF9(i%+(V@J)Le1T@>dbkd^y1t&kD%c} zDXDJxp&V%|h|MnW_~zfU31JGAHBuO+CvTTiatx71$?VP4(X+^1t*(|YKM@R6m< zMss4xl4jsYi`;0IaoS<)%0+cb%UW|6ZZ|hrwrrOlEIoBo6g=pmchbKKFB80*V%4kT zLQ8eM#7)1EvFL?4&;9jcyRX|^je@c-)(5ToSa?ReexyAsF8|2eJ>wfb{rH$ZLz)B*8&$CYm5K}zJ7QhTBJWX}mj%+<$Np_tXSF^2@<=4H>E#Gs8Qs*um<)K(dcqKPGv5{S(1e)w$&Am)%d4Q)Y{@tb|E#ipb#r#@;zmei}T zu-T=?S=oyFYX>U>-8<#lwRhO@e`W}x4_v&&RykKDgtVxu5jsyRX9vqeHPtqy^^8Ki z3DSZP$o|`05}zrh5d2aCTPI%^HQT4w_3jsh)jFwqtv9<&R5sRn|D;5wHhtgnBQ0lo zIE(U~^HOW~zIO3BzAi|WGOV{O0PlkUV{*O;|6mz!x3vNF+b^l*Xt?-L{MN93SoT(VI78mep=bFG&AkH+ipp|IIg0PH<%M8t$kfv1HZ9 z=O~?!jS_X-E@wrva!;mzvs4+bbyBC_WAdkgvO6#P z82@iS0jVzk<`+`oC0DT(R5oYPXAX~$Sg{0Ivg=J}B#A+>Vm-gM>%eNuw{7Xqt&((; zR)<}?_PC&CN0j5XcVGQ$f)gp8mnrwIxYG?l1ozHBU{B*m3em`Cm*JS*{=^f-H*G`k z`qjjUcVBfi?Bh%8VoC#chL~m!3J4CQ8=I1bO8(fKf0(B0*RMfK$!)4gSXRCRJ8C$!;a(8LG>F-)r>sJPpE z@(D9GNIj^yFx$9#FJix~`9UU$tCXx*(Ngz{Gx3)>G6KiBEe#3yJg8s zA`kL8mjWl;Co=Y&(bcdF{PBI#X_~yKUz_|P;g)rq_DyJA;nXa*fmguCw2+-VSo?&h z@$RZjX~pQ=gHbBb^PKA2IU2rX-{=^J&|DN)y4+k~Qa*%$srvmEz?Ugs*L&p*)cQf- zyZY7LPEDjA7=AaMk)7gd((Uk6&-E6s$kXIpbQ|u04Y>AvI6if?dT=sFz>3~*`^d9= zJ<#>x*2O-ja}I9b3P$My7a>T6F3P{QZngvurDw$=T}P#h<;V% zcshSCUenD+-|Pr-*j$srcTP@OM0KWAf7iW2TaYd=!%4L zJqs3Mj;+YQd7!4{RWr4P7E)kOev;(vFiReTkXs~tX>v~=DFW;oPYd~A%;aWl>N)|c0&bUh zXmpqoHxAAosorDt!gHWbX=*}%lXE}6sru`z%UrKo3R=uT+GXpZc>ANuq|axCA>Z_#Q`kq-PgLMGi+rP2h8TO< zB=9YET9BO#xleVjrunqh^_QZ1jCxeFw^|#ydx;i1Pw9xvz0#kS$n?Fqd#(7%sjvI0 zZ@d{dFkjR%FD65j*OUUiDIt_25i>Z+)yNIXVv`v^WSd2@rke-<+#O!7=6PlP_!I5! z&wgm!t_c6CNDaLsS&0TWmQ|F1FP--@H`Tvr@NiO(>R7XnsIou8Jb&kC#{_okmPE5$ z=7W%$%hms_HLzs;i}f_w3|rF|gP&F=-MqoMQ{n&c=iRc=BWB>Pd8tCX^UvJ>DqKvL zTEl6qmM?pGs`2*li_s&0Xa;rrESu6`Txg)QB!(oB$EfRhr&}^nPM5_`|D=HmlykVo z<*n$O|95I!Y9J(YvYhz^#a9WP^eZKISVBkXv=TyFU`nC?SvWMQmEz4hCPjp@E=Wl! zu6ZXV`@2+$l$7~0{H@5AfLGlCCFgp^W+Q$`sFOdI+OEEJP24;0|KU#-I2Lgki^J9E zf)$^k??&0bq#6uZ*rkKasj3U6%>N>9{8xEtlCCziT!m_iILrIIw%cjV57>8 z?xKuM?;n(B>LV4;EpxBGv?|z_|4iffa_MUczw2E8e^{#iQKKx_NsleJkmQ5>E1(-k zfN?b^XHia)4fhq{|FJ#$M{afo=gX|>$c|ro-80_2WoDx! zzHO;_lfeUn3#tcX_Pyg>fb4wcKslgaAcJV_-{3i2dKQV}LNSnhq%`nb`yXvq+vk=bbRRD3z zxjfVU7Dkt;qVvA87tNcuu4*(64Tx~7Xqj?QtNkT)uyuVwt`ur4c?|i;f&N^Cg(KF+ zl43^raq$W;gDs&6zU#}C#01-*0t#uS8ywJazO}1D*8#ANgH-{#HSi10=m&<)X3Ha} zQu5wr>bl51&4ktDF2icNY`I3BA4#^{N#IWAsmoI$Qp@Y(URY8*DC{2;`Gbr*1E#uf ziHqeoUA234W@AS9#Bm>sojk+OiDms_(j~}-sakO@-Bw4F&yEe!$SumV_13@$bQzYG z)%N@r}~Ft z*O^uyXAq{+x}(4i-aATG%WNjBS##Kh_JB76oh)@@m4Dp(@~}s{GA2_2%3#Iw3gLdn_fpc6VWyDfRjJWd($hxHWyw%6)5|AHc75Ykg~=yYZsH zy1BM;_&z330r(|6JDHuX&^&*2!B5%9K`!f1dT7 zCG;x($S+UhtwONmvlbwEbAqx-qAbQlZ8G%OCdMk6bVT!tHP$z0D~H+ldI&#c(zy;6 zf!Y$yL`$XZ3+r?RMYmvk>&mk=^>_WTTqr-^LXSP0ye_6h`lTh@5`JMh zHu^4MAYNdn4l+KB`$}3ro%yO=ePJ}^9W9aHvHj3%Gjd+`y{{XPCr6x{TSw1?d%|6Q zEu+>+kI5ENpeL3;1ndy)n|;9p#J*0&cd|i*Go|}^n|Jx1F;xS}WQ2JXle>FO^FM#+{AR9PlP7o+#0~CBE=Yds4i~)re$-?qUPKPe^9B+DBGi}S*#|! z2u8FQ+`P}97}wY%h>V;9`E65C6TZ@Hh{uj~HotonD%_UHDq%E}*C50Q@BV}-<-eUt zx6vC&5#I*L!`LI6(u=x%Xtzogm`R$kHJn$zral7`o|iX{#cih+B@Sj-9tgq9DGiA~ zv)1R49^%h)lUPk8&0#jDV`Xcc%fr4=K{9!0BIojtlV4(JbN5U=+L!~xwB@TzsHL$d z9DU(B|9M`_N8GvhD_siTCiM31=qtK&w(ZI7m9EF1M5q+#Jd4`#^pBV7zE8vA3~c^9 zy85xqa!RdA&E7LnXJXFAxNdmhy5V(#<(F-X|6F-Z5v$b5$81rl{5>khWkZ%q&90`H zi?1J?wYAXEdRp)|`*)biq{z2iZYSGuH=&rShZrKMU6n~eMD%lJ1(8kgv{P!&lf1&S zcJWt@djWK?^p*qFW=j(XN+P^tUoJXZ?o_!7Yz(b_FgYGJxw`hw;~Kd-2h%q`CqC$Z zXu+F#-J(~w$AA$X+pxFz>WcN5v0^yg$=<-_DX}-RBiNw_j^qM+eoD9vzU+Q`o_9Hx zE4AFzZNQFHGNHxA)@$2DUTDnK!|tYGm-=(%0&!caDmbH#(4{Te|IwB-O#u<$bgb7jVG?ldwHSZ zxkq91P90%d4kSCGaUgQM?#J7Y9R{&40#6#Od7UI)W*XkIO}HT}c-c=f-AWs`wilC`ORtQXyzhGN3cMFIM9vIc>HVX86}(ftZ$#PA-qWOI zxGOn#1Bf;1V!R9FrlNww0_ATXW^*>}MI3VsFLM@C^!ktMWC##7}%a z$~Yar@uI8ks?M294-a^dnqsH4K)%RTO8a7IgHZ8NsNxS(&C&fSXaVrWpd<6f+Pjv4 zEvy)r&dmLS6b6^p92mX#+^(N8rTt{xHFXgetkbytNhj)e)$_bv zHLj@#A3AWhKP4MRBP*N4DzH;Cud0h!MTk;%lZ@TNdhpWfSGs4!EvPfWy$0FiXP#-5 zmJAhNmc81{O1`n+yjkQ=8cC};H~rdfjZc!ApLN_(=B%#*?WErMYW!W#q5Eggv^>f% z@i^r1>PA$2JAbNC^OJh!nVd9^aZZdEJM%Ss=dM77Wb=w`@N9%XfQ>k%XGc!bKJ$LT z(~@4MIZW^D0EqApOLali;?2h_@-o<3qwEDqtb;qS3g>bT znVpLrDoz^w`{<3kPWc5lUeK8!7N}n8!leXcz)3adU)c~R_B`ul#?dW{1=5tbL9Io$88%s;h0_h1Ot>FS*&4+noQZ2#(Sa{g;@*OWAS=8#iY ziO?oDJ2$q}Hrcjac%yJw^LAIe%ESaG=KAp`_iT+DZ=AC^GtxpFXv?v!I+t)N=mI)zs0owtx-<+Q}BUMzUYTz^b#0+JbvDzT39z=0`vn|tYo5GEE)a-S7 znjo%MOnv&8li6d& zKMdu9#g_MrI5UmoSt&fheo?vX#zjyxL(igFp-;+~NCjkpl9#(v3t)Do(#K#at?Gk; z${Z^#xVW}N!icV@BHj8#Iw&Q^7Msg?BY9P+hH?%e;uBZB=jos3uJGfPF6z!vRJf}1 z-QW9DlN>}LSOfZeD6lV-pcuwVU4J1pioG^h(7_V0!a21aU)xsTSoQ)h_zPzputMww zc1*GnM6AW`J=Q)op>GULl+!1Iua_DL6y%96pBz2x#UXl1tX+hbL>Z9aT>iB-O&AW# z5vlq-yUI5vuc6Ufzr$^nRQ_c7pvLgzf|@0wr!RnLSrqbwe4Q z(%GMaiyUbxjba0%A*)($2CnDK=7LmWQv8y;;&Qre0YZq2at_BWCA;MCVPf?dQhw?C z2b?GvNVefjQQ4iBNINzE_Jv+^0Nxf->36W(aqDgcXGf*W_u9?{DJ9&t*t`zaUiyJy z1!V<*<{6b|izFg?G<`l~jh4ei6S*sojUQg%og_pu%Qq9|rju3Uk<6+i?DlxlV1?L? z^0lz=MqY!!{TOP~`;}u#sa%WCmtt)qCjmbC=G(@*O-ojkb}>${vb5A@;DQ88_RN?r z*97<{-+u9A_m}Cu?8Xmw^1`kB;Ly|@ka6+#+DWS^Vd?{rgLcYu8u@{H*LtBxVEcU$ zXmK@Zl34$R|8a<4%e(I!fTzheT}xUhwXOUJvC5TrkJy2EoO|p6s1+p6hSYjeQA_Ly zJXWzSKv-kBEO_*=d$Y7BIO5&fJ#fnI@+J^{&bsI}t%Wh1hl;GKD`1SV zm%%p~vr}@-1X^x)yrXFp1#8*S_vku^P*?rXq|vtr;l^&fIg=<9gKWoxWZ#z!KV=*x zYTPC&E$!J+(S*cUk!d|LHw%bXdmw`#ny)BzWXw+D@zYMdlDyH#CQR*4V&!*Lh{rvp z0f~;8Li~`e4}go8(3z@VRE2C#K}ujVr;VbZLILG*Fc0>MgWf9)H=rW#&4{RdoHYv| z`)P&C2sFXiK7PG+_#W?i(dX%hQ1sn*z>0fjLmiuG1Zg4s)9lVX(@8qF1owlV4U%x1 z5^9l9lcH_Fh9Wk-GaC42{DuY_<2C3b6T6rKacUF#$$acSw%+G0$Zo(dKV=H7GkfD( zK#%Ogv!u&tE{g~T`xkA2k#WD3A=wZp40OIv zk}f9FHULAkajq34*4%pIfi$tRN^j6=+i(?3Y4YG-SaT{&BJL!J2F&H&JB^C-GhCpv2Z_q7Xmgs#-PKwWAsxlrQ^$j2Z5m6^B#7_ljmWt*^u zf(t)odcaDAnfTZ}N3Bp+fPR_c&8{!RlJ7Q=$F zP-Twm(OFG_9sPF_IYk;v0v^dJ8ft7(0ns4vPydw30qE34KV^!w!)m7m&!{c@5p&78 zq6#~S=}N(kPzDDT)`29}<_2RMegy_vjsr4a8HoFkR1a#v(O}DDD^Au7Ijac`2xmo=n{Skw;Ls1afRJt zL!9~1*8(6yVtq7W>^8v-!o1~|_KevE+5+YwRQ1T$9xgr17vbg)J(P<2?1tu@WF=Ta z1#MEI0T;68*ETbrKkkvn&t?H!lL|VAA6VT9^|&d;@C9 z5i?jYje<$EaQqK=ufUrzxrv4vxE?Bn*1ZQ9O~p16Q#lxr${Lva>M9v#PD}oVm{sKcl&K0_v^&BP;y$00f{kDUfaQV%z!JkB0HR;UEvXKp zeySD6#p`F5Ym>-~Nuu(?2atHnL^L)%MStWQaXV*$=Pw@#0|HqW55Ks496>K7J3;fO zDv(4FwPUEsA=|_TW89R;9Ar>{nnB9@(R_ZHcF`wlw0n#6x9)|T(BXy4;L}s*gnZ5F zj-N8uB}M>ehXkm9dhZydh&3h58xf|xDNxWcfMu|HDeXt~Z}d;`(W?g7=N;X~pDYP4 z`=KA?D!-kxL9yCo{&eMeGgVo){NFPU(J?mjURk_3lROD9X+}njS;5;O7uMZhj;h}6XHW; z2b^$NcDki|ff95O55HLB%r>Vg6Qo}-ElZ`Lz@c#OXo_?b=)q3<)o6jIxghOutd(Gw z$M;Ax5M3&M7C#Dfku*he1#sO>qoO7@=v9+}4F8lNYzAMOJCR)$(b87qSSk!$DUQ>( zUI>uIb-_5CfsIgCBb-EpRQn0R-U-sOs6-F&-w80h{0? z0sw#Lr#e6J#s38<@lzK~vI7;hzxI#Txtu%?!;kmoG($OM)>hNrvcmIUleyzP^~{Sa zw;8MGnoID5J11s+1OY(ZXX9ITBIQ6U-m_!^JO_PJFk=#n(|(9!O#)K^Cf0vr=R?)+ zLQU(9e#-1ZO-o)vRfsDzq9y_Aq|%Zt8G@)kaPWiI7^y})3Z&HHkRVx!5m-d2T3|Ip zvLX%K6>Ej6q^_b+HL@c#uXBNN;UMD&V=q*d&A|=NE>^X;^Ah;H0TIgQ(4zgUXb4^l z&Qm+hL1(~?DjCGh#!~da@kkd!{85M&29VX9#+;ID0`io37~G?rdj&NWkR8D00bFbg ze?rtDD@1!pe`MBE0Cs{Oxe(&Fh!0i=W_h9lY8qW!IoUHH2lthv9O%A?g*L`;C!+gP zh8;~s+*$v?%1JI$XJbtl`_qPFN2%DTMR-_3bQ!UA(p7)ytm z_rV{*QTICo@s*WW-f%1u6fKhHFf?@$0E|M{!4&7)al@VEV2XW**dXV>mB9_o&!iqB zDC784CC2YJi`Oq9x!SCei!KtTfeB_dZaIdbP+H8$S&s;-2su zV`L+CkpsxU8Zu*oNBDXZn9Z36`x(fh6>2VocFf0v&;60ucrIJI0LC{MOqJl@+z^WP zkrqe0IEnK4IiP7DjMI^L2+VTdf6THQw4CMo4^_c}E|RqcJ2LAk2m~@E@B#J zjdoHr3MAZLQv=Jm1+dQ;9cs#3WFLkRL(i`)kik%zv7AZi^|n;4f-(U+hO9X4`V4FKC!f>qTAI5Wr4i^~e8*Z3W( zdf_Gqsh1vNNJE*>%-kYg95a{{iNr!+Swv-ESpYH?^#suS_am!W5^dmspWTlJRKiKo zn14~}382yl7cDXbRvI)v3aF483<*rhe+Wf;NQ)a8;a{Cy0-uvh4*@@YF%h9eN{ncC zq2Z2SvX#R|+<^YPHw_v(3NB_r|2f3}MPE_x#^XB|=e5AViC@zfW^2DfRSUi-=~giA ze=Q93&)jf8SzQL&nM&K@F821~ljf@^o6$hm?bK>5-O^XKX*MZhej?d-IG7brcWu>1 zgA=cK|FhmL$z81vn@)VN8Pqtt@gj~(E{;U*LtuB1UtIQU6^pEr2+aMNMby3(F1Q7; zD;>z+v;ZwtonK@Z=s(!S5onR)4DJ-7z=K3;C^%^i6^W+;DbNS{jn(+S<{J!5)dQ1% z<}C0Bi6pLoH~yL&g4X_a#nt-|-s3Ocp_v%4?>0lxLk?j9&xkNy;oi%~}asH)$fcP(@0sT{dmocJT z3iMKiF&IGv6VWmQQ_31zR6do^%q)&mT51lCv}FP!B4LB=%m|NY*WT@AgE2z;s7}6V9ya3@m|S!e;;p)SeJ6Pa?+~9 z;DWySIxMTSWT|Eczz=|dG;N()6zP94nji7s7!BB2|HDPB1$;E3{EuG$pIZI@`{AM{ z6Zx?DC!qCKJoI{~!UAh&8XwA8C-sV4Agi5KN5b@D3aa~j>qx-+2|Cvra1wp8!ywe$uCZ5TE?2MC z`rXIY>p^;onLUP9YC-)aExp%mNw$+a?2p>+EdK4v(u<&Ak>m&PAh{^metxj6)qlaRopzqORXMFS*HTDwXakc z#t$JN-?Fx5sw+}>r9}dv4(n zHS@(egRkRIB#@srrsOnJv9O)m$Q0raCb*{AJhEJo$LlC!Io&_ z!R}D`M0(d$9u^BL;Q}9xdW*=44=YNZlUB4Jx9m3HH>^tx;4*%{Fp{t#sM~_y6CdgR z{>*OEJ%vSXC3OFTf-&v$)N$t}U-C5!zo}jyu3Z{gb*BC??~4D?+O^or+cUPeq~tNJ znU<>s;LZiG4A&P^M-C_0eAT`Wd*63A)$-L1YCWASyEdAZEVk1*m%FRC=DADUxlyak z*8n0d{H0vOq9GHk9pGXVviTQYQA2euIYEo zY`>maUi*5S8Q{@9k+>1>nIw~OO( z;9_ygLAqtRtBON%fam3h0HR6N-&Xj5@3lNUIkpLZwx}8uA&DP%;HOON7tv~B6{&F45#jNSh;Gv?8CY^Z~OGb!LyYEZ7p%HMrb&Yzn#sxsV+a^;R;M0J=We< zx?&1H*5t=Y`)53X_4%*w6#aq?w@N$Io!uhe)6v0}mN-p@MA3+cuQ3Y2b;=2M!cPP% zx&p6^OT2k^uYpQ7*A{l7g|S7Ef0Z=4*j)>BlpJjlhPy4?bB`9@mHrMZ+~TPshNPKF zM?>33XX$@mTAy{dVb`%Q^`iy;ChzlA6QY`1iwO!L&nIX&?s}0M=~it*5^AYwe5q^o z22UeZb+f8-V=nI=`7w4=3aoU(uNFQ^?3gdL2`|#IrOd>x1<2zP#d+QjYonNQeXR^IGUa0jftytyZ&-FSmP?q}UXzWzvUxMv4@x4b^+VItKCtOzUE7Y=!$-v+e z_q8?QS9`YFxei z8R0vq!DTT0W7GL?L(8l|!&c58%6kiNWMqD0pkJO1a5qT;e|A}X3jlxpA7l*dth0OYtf$+%r_71fInqM2{5>1|IhF3Z z`ua%Cp0F*7S3ttYnV5?SAScA)O2WHir|4YbS~xUttbB8m!MUZrp# zYxG(8T+)G}_58uZ%Gi0_mwo58z7C~bE>{1r3-@&(hJIA*T2aySH_qjR1osQ?ANak_ zGWgox^T1ESP>e|oO<*>^ni?Q}JVn%L$9WKdyYI*kLsSfelGA2K;|0f3UY`mJu)SlR ziTni|h8s}h{!x;AV^Hj9$$kIb%o+^p0EZHMe%+3`nP9#bsV?G-!zO!ugm*h7QH%>r zA?@T2deqP1*BMtFBdiewDIL_y-X?lg61&^b2tBpaZ??t1eva7vQTSK${4Vkls%?_~ z!|T-5q(U-JTx6tbn4371XO%o>%nKY?C~7Ghu1K0Wrm>~H!LxEc>j9sx#KjN?s%*db z6z^m^_;Irfy6x`GUx1pdYj+3gq{udZvQEmi-oq-UBr&RwCA$+8)dI>jFxiPG`1qw@ zBRB%w=4PKXmhov4aK4hCYw$YEha%qVyl;Mg@^^dFC)rmDZSAbqbo6d3C{Dnbu3F}& zm6&p3&(Uu>GwDoW0!jV|?QPvOT0wtw`bL(zEDG2zttm$lc2zOi5-%>cOhBfr$KOIn z*ot0eUA&oVtLi*-Jwv^WzP|bYu38RfN zILZDhJ4uC;;J_-C&&cFtsXJUc1yiq10hdR@!Qn4l_WGC5Dk(uZQkcQ$2dHa@fg36? zvq!z?AdYMOu2fd?AkzpAP4ELp%=w4GrO9k5NZqa5kIckpy!j3>t&z4z?KqBxG#;cr zM~bQZ`#;8-CRir{eo-SmM?N%%gaSzoJWS^|A<-S^VDd;0Z$uZ*&Qf|4?=fI6rWxDRgM9Yasc z!OQu)qqjs>uRN1+SE3KCa-iQ!{_2Cm3G`g=&#yRcjckpa`28EM|3aT~#DW&^Jk*bO z7y|ICmM(r3DJdc?gpDXX7a7+K<5~$%2AvQow`1d=4R9pr@m19A-cbV@%x-&S4)ksI@I(32ZZpjq-^RuFkc)wH<>icSRnJ>k$ZGenUn*57M#mBlT4UZNL*Vr#jf>5>UTT;8hdEu)Rjg(&zky<5&2^vIa- z4s!cA1zqeMeHk;?DfBQf&A7QUp0WdY9K1w-4HBk}L=HS3N4BzXzpOzxoq=h4)t@n2 zgsJ-iLM3-QX0KO3pFa*SL{vL)kmjmBEy|DH-b{CRMpVW`R2aPQd6SNbEWz0TB7;ao zNB!w6CbRBs-J6+ik106-3Y0KwB$N_%i+S~lKivc_{8spBhGOVKkiRAMB+Tq(e`gBzy5@=V$my|32lfFF z^)e#wtp+U&Rk4-z502pA^BfVmo-XcKH>kvLZy4-t#&NHcxRH`*k|uL}Jz+J%Y8a{q zT&z!4?kgYD^Hw9m+Zp4)rH1Ws<$4bSz^y9#)k9-K+{!M>L#eNGgqrYbDEfs%*C4Xp zRkuT-Drf_7Y|eCjC1q8Reee7x;&WPb67frl&oNby1(UWvsmwI5>U?~4{lLpI;N)30 zDNWbadacp&o&;;&P9#8iuYE;QdeEK zt(6E{C04!*(k#am+&#%c&sdXaqjcjAhr~+91Q79{cBaU40Vln7S0v61F7(y{fI4kn zI3c=9y#eYdU1tTXg_CX%Cgy_;Ut8Is-?@)-Jlt;ZC0qE(@Pzwy58X+co7=s*Lidk< z_p57!n)2yqQ<^ZtJ;#1zqWE`;B+^Q*mlR;iEr| z5-R!bm5&xlOxeT_1K@0#IBE~wXt%^pU`Z2TEqEhZ z9CPM*K}$U!6TS$|X2&RM?Vp&W^>u`8fWkTW2oQB0V=wh71r5?$ida{sSyfbdPck{Q z2B={4hM{*7!PLxLS#+Lc7fevX(j$=H;?+@@3Pj^X=>8GrtfWS#P(u-RvFv3r6m`8}o4uSlnLDxQq|{UK6tBO-38x##PpS?~6!{CItM*!U!&ZU!VlA&fr(W7jbhG^+s!H0~${lxP}AW zjYi7(G~n(;`t5-3>;M(`Tsj6uydKt@va|(52i`NPAM&&o+97)Vu?tSJX84jU4+~^6 z<1(X8UW!w{_(AjjrN7~Qpo%(S3 z5!D}`N0|54?N~Sls*^R_6ZR1lJ_&t{w32V zbLeI*h{@qHt|mC>1bav!r?1__8|)m$kTkTiaWlB^0lZ}Yaoa=Y@tO=*}d-^Y2-T8}JVlvcr~mFQ$-h^Y1@~zr;Q`b)RKO(9ZyFB&=Xe?b zgvGohi2&~+NS~!tp+z->JU1CiLgQjFTIgrfFTWqEGX8sg72zGdn$Sf6Wiu%&;f_A& z)_D0QRJ^Ktn87l^P*?!Ft3#O4PWJMD(F=Ffu$5*fHsu@4}unG0Gia}GO}mqdSA8KJP*cc=TV&!8Z><`=jYz+K@YAXrlX93=(@GC?>M z5XR8vv%sE2*$KjP5jRoVJhXHfvJtc!UyYMAHZJLx0I7LQW#T0AFwicKRAsQ#7-&`j zb_Y8qZUYEEnEj!yyl5GGsI9;)ffKnYHK3G}Ot~_7KR+NIq-K@|@fPMVt4LPNc3lJ8 zydR??q=fr%)4po$kHtm#1qwg1dYpeabauZ^(XUXr3F%Ycr%04>AOlnS%8DN^ly7n8 z2Zog%4sd&RfzoI#*&;woK=I><&?D12Iq1&%KD#Q-S6})rwdRi7)-k#96HEF+*zyjh z*^2Yve0iCnJX{ovj|1D|D&7>@*g7n4-{*Ih0mUuRG~4s`8)~^FdGB4E z4aRCbeKO@_tv1DnpARvCubL#JO1t~ejX*aj@B8lCp~l@qkt3O#tzFZiR_hqJasZBT zJ~eXeV{QKhjs1lya>;9k&pmNY4otr|ef4&sQc=6lfjF04`b?`T1LAj<1$>|{NOD*l zf&j0u^dWW=cfuKcw|pC{704qhO3q4OLRU~qpIe+zcX8?g2XpbYkP@Y;KG!6rM7)~qsCWb6354%r%TgkB;Ue38UvI|u&1`a9+f&5?%V0V zYa!0#;lVLwPC)AQH2+6?y)>8g-=jn0)M?Lm+hRRNQra#O;91s*`o+ z9n*GYV~y7K8(Z!h$~Dug>_|G`Y>m_gWE&pTzyVGs0cXf0RbY;+22!$oIiDU^iuYu9 z`H(dTYM$*H>TfMl8q)Ah??dhxs+xNwrlhFD6$S7OS_$Y(qgA&CTi(&_2#mTHTcYk!wGKR^qRwi^O6Q8 zO_zXi-;^wems~QHM=GKGxL96Jiu~Q{Q{m7`tR3ew)@nDpwdJt@0*1S8V?#Lk~O$T{)U_>JB-$sxX16LH8Ue>aSV*4Qd zTy(@a&pyvf2LdeDSv@*UmA~9Hz%bldU9+AohDN%%Z&Hoc^5btUC}~@g#)rPQvowzo z)V0O}cwE$PWF*jTJY^Udk z_98bfrSGb3aRqt#h$z0pmB9Kzan$1Fc3!@GMg`_FQ|z$m?{GkjVl1BKmF=OSzQ z+&_J{4*hJVfPPmLvv0S-Ue%pO@wJx)e$h!5wv64O>N&&Oj|A;FRFohdoLJ7)Pu0fLw%@WY(+G7pS69pEEHNGV&aW4Sx&_I$jq-_2 z&G}We3Fq|Vc7E~V=EZrkCsfGYv7-$x+1fdotKVom2#DG6*P}zSAa;E_9Ckh0?e%0d z7#AhHdb<-Sg|TX-(|gp;?%)yRVJ36>8L8`4&Q-@H1uolm5IK`urBB)BuM3~?9<=c& z`>M{Ro$Iv#kpXjgTfe3f-~9)-R)x$2GjdMl_Ou-+(~`y}hOR9o)U-r)yyP?1o(Z!v z@W)OXW~lnuSDS6Cy!<}&bI#Ea(qa1_qdJd_KWI-RiY-aEw#9!U!eIt7?LjU9B+{K{$$D?=LchZlztO zcD3%=gYQeaG9cL-RiULrn;Lqc>~VY^BsiWgR?wU;X4m%0)p?r1#cNQ)P{$Lwf@2Tz zQYX>t`%B-Il#g7A8%1jX2h}mGgKBPMB@|J%VZ`eN%(gF9TY)lB z6}gm;GUmj>yS|Vl3aiN4LR^N1|hwY^{nWZ?nvfUF`sH4=z znMkPLm8+~GxV8(ep{B>=J_*lY4E3BaTGuxc@@?!y?~Tdwo!i*5P~T(Iooc0K;v=vT z(+32x^~zOmZM^N+=ie;Se%+k%t#^Pc@wfvhQ2-HyINy0sV|{)r=EXkOX-}RK|Lo%lU{rvsbggO-!~7?=GLSs+xtYp0blbS1GYD}SjtCU z@$zrI9{)Z1)1%FHk)O~j-}J1oclwKbrhVyOeynxbypahR-Zrfd+M#!}14mPFjkMwF zgy~XTc5u|MMNmvVj`vC+k<#o7uE8V(|j0=d||dy{8rRVAfYyvpA4YmS5w3m;@H>?Bc{Q{DB#Q*Zz%0wghE zPkdSQf$&jDebDOM21boPw2xx73Zo8k>w^Y#XTTbx!@bX<+Ad&mq|U?bSa zpm?^VF}@BJOu@TrB?@Cq(C&L&-*b@26B3U($aqWHH*C7|n+b6Bgt>B8FPE9t zbw}0#U(D?jS3b7myICCDtbOjk53}=86B)099wGw`bf(c;k@Cksg5w@68L($aHbsIC z-nSTqMhoLiw{)jNmngss_5OsKK+2wguOHFxrm+0>{-Hs51y%In_$Q^URgz%S{?(GduwpZtb|7%g6C@8EJMvSs5KngPwy<@B(FI57S(ic`BEvjsSFfhbj z9ytoZ+L(zTI%vucKnbTX4&nOIJgGZ95Be*(aaqnHQZJ?PQM@FYz(0=a zmUZkw=tO3`S}ph?k9nf)gZSF)(49XNQ1Ah!5M)3C$8rd=(p>C1c0l})kEwYv9}Lx| zR7kDqg+FCpj{UJ71sl&Gt9yViV>1ReG85LdZIE_=wK5l`93HQ-r_>jX#SP6r9GgLL zWKwZ`eetkvJ21dDvtc8gFuj1)gS7GiYARX@*DJOgpU(zm#6^wE!J**xC{z(jWb}g- zUICLY6!x@;Et$OQq}d)JRmOupkO=S*J(;Zf-08I)nA=On!uHgCmNtR zGY{HKH#~QGSqW(EBcNs7e0z}&5iF=~llRtyRY|>wxaNgxY}Q|sWB_U7@lz(i0{dd* zv%wNWnnckYSr=AZSmbmNSsBZ(Gp_pmH9j=g>&1m-p7Pz_U^b2C*Owk%6TEJ@j3b(V z7UV{oRE{BsaDCCxk}WKJAt{+8n44jEs$pukL7)6*WRBzdz`Xf4vRM+qffedFw_^X6 z2?{3vM6i2v`J2*9;0G4eNT;hQF4&K?*Tn?PKsof==_1@iQ1w;a$5AMG|l zXy!(M)~P%%(XhZsI%UU~c!RgZTWRQpq9XKA$J8SDj$A$%Tngg7RJbU-C25~((F^Yb z(L*g+07tF}*Eel}8|;Aol7qw#v8&l)fj-FY?imJIg5f|#$R=3)l-WNemN`rn#lnht zAmQ-aRab$;9~-J{l)F+I%JQ_Q2FSk(6kOP2xetM<9~G=g?w5Cw1;FhG_S#C&D31^Ef%2yGR3Jp7TbOl zFL@REfmz?Fd@El_Eno_-@{W;d)PbolXuaSyjmxLT>A%|k+8~y}NIxzjQ>V@YFVQ_P zFE!9SZe~B_6QJC+-sL!Pu6%9FOtlR9JAogx1^kdDlp%-%_&dRk3y>Rv`3A6P%zwy9Euz$zgJoTOF}3(&sE@!x{(O#v0@+*%7-A($qH!D=e1iPy z%X!5CFxyQG)*I8)>&%?_wUWh)RI9XaMbHEa!qrHJxAg@LwJTT2sD5)2*67uyKYCq1 zb)WElCRZKpS2XpNwB&8w5}=7H0i9$M&M&^yWy1d zrmU1HSp&^eA!;QU=bzB8aT;0)Wi;5G$a0WkeFI!0_(N8*70nOQmMY@EF9nj;yZGW7 zL>&Mxwy=M_fWFIwK<*?!!VFNDJPELJ1X$!q#1qg0H@T_L6WGznmHI6m2_yYR(7ytS-@gG9CfyRr3puWpOYtf7Z zh{K{t05JA#psq7u4ycd*i7gr3@jrh0TTD5i$DLZ-`>RZeyYwc~>P`H*%)@!b_buzs zOP}E+_AyF&-i7Kuih>xxbns!o40w?)?yW4cn!Faw=P984fBoSfi(Cf2CoFznDkn8v z{|nL!4Wt_sug(#IK~~^zF&3Kt-yX|uaqlC*San!j{+ zEj6#CgvxCCKJww{Q;)&Mu3ak)>WwAUiND7r|Ap$dTy(Reem4J4fGaK6H9ylb8)^zH zySAzE_qp1Z?>@8!9KxUZaJv@Ya$T<)z^>DEpA0<8@Hy;Fav+4fb66a9=h6z*r%Wtxk&`bM<}*s*7JnC?_CPZxl#e9w zPO4cS4$K;3D43#0S6)+?F+C_C-Y&&OXQf}pD5ux$%dK+8z)5Kw7{lBh zDR;CjJQ#kX-Ed%s>p&#^C@3{ePRR7QSD$C&GqyiF#pTuOKXGZOD7Ffsg?xuL%o6T_ z^n==3j2fj8F>DF2Yc*9PtH3T#cca%J>b(uSyW*(c{1A>!nRJNBTIRX++obnWM2U45 zV~U|Pp0V%l{thQv3s$79zHn3$QccklFz%7UlXf4&MC@C0wOu1#j-O)cS{2mlRk=4# z4gILnpoJD?og0~nmea7A(8Md>cTHEc9@nQo?-=KaU6+duKGG3 z-D$dxUlR~sWpjP(lA)kg@cl%<2`x*N6E{$xFt@f^$IG)1axO_+63pc7P^dSE25E}R z2%AlvWkfn}gWbi;V4QV9h^}i@uLjUY!0+z`DUQ&moxYEn>Ne$00e|Bm&wU$uNR+M_ zp$EULzUpFW!{ujKqfEu?_5GL(Yf0~Vro7+~>)d1J-ebJxo zy&;_%DRk_r!NPB)*f0=+A#rQLbuU*vXR7w+Hi^tIaK;uaydVB zsMU0<=esVCK>G)g

>Q$fx9a?qu(ci|oq+y|mXS0`roxL*Lm=Q#Vn1(d&zm?5ioC z7^~nRwB;jF?iyKH{-E0K2QRhik7ZzMGE5JBdtr}Fei>Hp7hI+pLDR6ojKnRIMw`m> zcV(xOKGr(oqN~3VF3{t7dYh|UM?yTT9u-&&yiHl@_W!W==3z}OTi$RG5dk40lL8VI z6_p_lCo?t85ALk2RMol91syPGAkeIyC|Q07aQVTFLMW1@L^_6#JHL56!52=e&39~UBBy*w0J*y@{f1|)@b^N^t+P;G z*%?*Lod-sC*Kw84u|Ezwm^IM?Y!kq_(RV5AySX**WWj^)kCC+asrwQc3D#Hwq9-gF%1z%Ykt@yOuMf$_`PcNSv?u3~#iFtuhI4G;R-NznMMt zVA!MVO`}i3C6E|*evRz_Wv1ixr;amg-Mle_+Ch_LDfD$V&-F)k;-@TiG4J}FQ@p~s zEAT_bwIKj=dQPr@9|LdsbEffmd-xm!x7xQU?(7K~r)0%JS8;l~yd|Z4chW762GWkH z_kd$+Ivn&mjie3CPJu3{6`TCNAemRqQD>|UI5+OQ_WaH6+i=zJwrj@@$Ba0fG6H2g z*VLF)EGHGQYX=z%=ETK!FQ&1?TF2)4dK%mmEuS6!rjy0Da5Zpv-E!Rt39BT8IrDda zsXxEsX@%OB1CBFl7X!Tm1NRLi%S8CL7*JQLz&0mgDsB&~d$yPm2k&hg$ZpSiP8YV=z1pfIGs^%%t*~=^P&bNL-gT zNydts3TuAicEG&LsF`2EQ+}FGJuHx(KrRK$+h4nl!+%m+WY5-Cx(0>4uq8x2by;R? zSz}DB-F3P5%IO)=%U+7_2A`hodW51DQF<;)_0g+Y|bG(Fwuw z*GIdC&q@BcJXA3N@y<}mKyfby6Z8^bYDfN{YlA=a{T$Vu@`ir%JckHCabEZHnVtz9 zy)-IGv`o@iebC6?>(1{@Qq$k<>$dh%9ykD~2(`o`4r$^vbJyaG!}9QzpNy0CPq+dlH3^Iy#$O`Y0J}k$Ln&~pv0T<84^9ygRS?(n-tD23 z#eF;ER~`quRPVS#dym$duI*MB&ssYGZ78|{ctHZwRCOA<1rB3jj*w^%0*O~YNeC6l zh^Q&ZxnqCjEZM?iGLdyIa%Bh^SrZ{mdEYb2@uPwyC(K4!Z((&#Wii-sX?5jL$_0u8+jxsIO{ATAIUWTM z7pFTVx~hSE@pKwo-*xL+_e+P<{6&@I69b>G8CmghV|m05H*CfS*wKNh%iy|IxvY>1 zI?cqSI?K-UP_g4$S~_oh;r5EBYqPZO^8gGGZSP=kVFm?uG2)r$bXq5FY<$-FjXGGl zwGXPkm|hVJsB7f|#Rc}Wi7t?mfr-Rjfxck$){zQau8Si|I=k(gVS@wZW=XkgJgaD* zlv)o!Tu+kl175wb@%Fc$xB^D1wzfi;(+Nl|O!q{j<34(=}<-^-6&M*s$XbUaCTHQZZ( zYzpCADFXK1elVqFgX?5Y{OF`iZ$Wh1Y-xXc)vEPCqDZuJP@Nj;#55WtecM(v4i$p? zS2BMkxQ6{MzgsQscpDKTKLzZdO&eqeO#l=ejszIX?sYz-P>|SL2kEgIcINms=Z~^Z zKM$X=3mCC=8#qOqI3sv@5=r>bt}I6yI;bKEaPCg0_mw$FU!Y{8^>_s8glz(_xkgvG<-^r6#QRlwzITBHs}=oG#r^)z8>fF6~~_s<<`L9;%|m2^(m zDBYjhE*P1er7$9C7M<8SuuYgG*xNiSOp^fOSr1&oH-id}9!pWI>JbjA9UCUdx1!q7 zm`3B$bu(B`7AN{~E>$2s8cCc{-Uycu3U8v2z7v2M1@LAnVrANw!{_)ArgtzHz76A@ zNT10>mUz355qK&tw9rUNb)Hp zbDhF2jjP4lh*%Cb-3N4MO`RONhk}hdPTxpp_)4+>H^gxm9}}@WY`Pn0K%kQCC{eo@ zhbw6x0hpk(UJYc}2$7eh%iYkKEKGfNNB@@r&J-a!PV0~$7+oA`3tb|>uK3Q-J#fs} zJ-`eb$(>D37sl{f+uHeYR~S?8X_s&=olS_p6Ozy{YkSrA1IaBGOQ-n1tEzJizfC!QBt*Gt`#arsoF7P%7I=)Zw5@P8B%9;TNU{ z&28e_MglU9s*;vZfogdqVXkiuI@3s+NTPHqOFby^7e8@(C+8}}Jsx0iQ4dU5@Old0 zR3a}V9gD$2^TAq@L^v`M2Eu%H{QxbdFy2ATp>&x!5$gt3Eya-rm`NaDfCB&zkAw)k zc4><|W$V}Ab`amddm?-Wf^|^}PyWR5-=G{Yc#^1>1-n)WVCr}Sr%^g6zrJ-e z1ptB9o+|oF0sVR6(E*txMCSHPs_W*y-LEYhR;vQ@|L6Y?LThoE| z&#i+L=~wyhz309CE6pBx@~FnmFPc48=RYc( zjY|OED4vog-G+M%Ff-0SJpHrnMu23=(ZfL8PRNtDj$TKx1&S2~T8c`@Ph2(wTMmiO zGhPx3}j0iOQbehC!t18-74g$*(S06@DCETKN| zk_3l_14u6>`PJ(|&?`tVbB%-aDyRX^N5OLx_56vej|6nKC}24SJ*-K$KCu9^P?l~3 zobWpk$|DrSyj^ZSDxre!D$7inU*2HnX?&#&8&o#|Qy&a*Qp2N)qwLr*r*+%+fHY95 zgULG|jP&2%uFSkPb&=_w{HBR&_NQ1ysf^+HuOE3HVV+TzbYZ=%|DB}&@Og`|j11!+2FRf!XmDC^pt@|@&drFe{ zL;-(IqD2{@qOvqgYXCFZ`j1ppSwLbg=}#h{UqlRu8!-!=KZ*Ts-V8WD|GKCEiPyG+ z0iRb)yQ4Xnb}r{A6|+&W)^$uBXqP)sx*K4jXvPZx8mw4LGY~h3r633!tmQNXzjfh` z1GJ0_Do3)-9|Qz*fHi%Q)UWD$`xzPg53m@ZarcSW?>}V0@(8`ko+%6LN@0IyRjZZ57-PQ{=_wW zRcxYUh)aR`DNLZeBTuLufIk!8DMZ;qAj*Jt)50O>0hT=^Q0x{X1$+Ig<1~2#^qn{f zrw+QL&w+RGj8Si7-2(;>Fbe7nCT3b&32_d6&Ih`Wh!=0jtbKEY{IN&6Dv5&kLRxEV zVL|-;*d^jy-|TE<#!)8|;u60qk6{YWUge*y|6W`(j9D*8gjB0=H1mDPHA#~=4Jct3 zO>oUe{7cAl=sP5gXdy?lW7&m^X>JnDv6yR_zq#64CLe$LG^HnY`n}XmTYKw$p3wB1 z#S&{jyRmgiCVGog4mzJ>8_xEy10n5;uS;p++PNNgTXa7UGToNF7`-w=`=fVlFwx}6 zJ`>{d{NJu*$26VXee3XE!VR&&%D|%O>no?u9?94f#7=uW&-EhFbfQ9@%MtcLQHJ|G zfJfXRLUiV0`NPT`KF>;uk!Fdi%vYE*_%i!bvB5iT?#BRrTjD9nUUB6b!<6C$=k2-P z$}Q-+NBkX{%(^_i6sz`;ZcEAai%;G7d+NlWBu_jJEonXQsP#t8?{{)ix0K8|lw+{x z13V!m&adCF`BkC?nM=IT!_;*!fy)nEAsI?AcP8%%Q%Akhl$(+^^Z2#;L)kL4Y;O7? zzn;QJY@N$@?QE~G2r4&^hDGJRbX&!J@HU^=7cGrO`emm8t8Om2a7yNe?v)tSGt~|T z?EYqFR!!9KcO%Ro9V2SJRGIu1zNZrfZWHExNY44JE?=2>9c1jVT@qba>N9@Rt1bDW zXU>h^VbzwV#uJ65XSkKxNpNee?VbZysPU-p4I!ctcXHzFt%)M_%CLI!LaxIiLLdlf zLEMl3-v4q}-I0Q3mpxd(8!zCg9%GmFIDR&^gz4VJv7jW1z~t^7U8zIV-V zaTZN;_B5*H@b~XGBpamAqHofQYWJ_O?n`<#axgR7ucdaZ+eDsB-#hK<%`#?)22l;6 zxRk{#O7nVuqH>Pt`AWWSM{x3+T%)k8;@B0XdeKg$NlQNLSvm6p#WYq#?r0UJf~;fb zCf&pi^q!bK`yV2^fBg2M06j0yzLI0(u*HOZY3vCv?hGZ!bx*c;!fP6Z@V0lE?ZC6Q z7f+c*K_%3FZUXm|!R2R=VehTgv7fQmZ>z4MZcepTc+pOW{$>S1|79Jp1BtP2dCgORIHptBWOD0eZ|YHR}wYEJ$ADxx>Z;I zcxkn)p%+OsbEs8`e|_4-G?(BTP@D^nNN2Hw&aKZ6gl5h=R)exVB7Db2VFU2*W!@9C zE@RKKF{BczyQlV^oQ$dyjl~eh()D7*>b80Nf^||&qfXOz?(On zY`%)bPw6bB;pxC-PC#hOtOI}0*gtCGVk*}%AM{~)wAFEWwb!Z-f62E{*>P)8lyIM`FfbARnx>jj*+IHq;;=WZepk;B*rM~7rhkl%SKbo3`~Mx7*{-7CLM z3LI7ij-{@pSLWuM`c0bE38GAvm)(4?oNjtAz-`$pAB>l|p|`y!%x!QOZqiG{K1xhM z_@;ztmup4$He3BRSGXK`_Uhn=MeYr;hclk-OFvDOAELUQ`#iz>v_i1c(dKrHJ5>eF zQ90@2?&9!A!0Z`?wDPBZ4a=4%F8n4eESbG|Nw%CBG^=;_j+MQ15)i=v)`_}EKln6| zG8OBl6q?np_CM#1Y!#9QDUzlhcA~`%?6Zf#Wh%#qbY*&bL29S*&CrH~Y2QPp%>bI! z?WcRcmi&kia*mFW)Smvf|3OD*xtN<>Qc7r zv2TP7khF~Bne$HR`oAyFB$(GXE~s@O4wCWLTALoc)tBkb-)-;J?RIUbl%oX+Zxc*{ z?lQ$&hoS)*G#5Sj&eu7aMwSKxx*2p|m{}9%x*^%kOVT&w2Ip`mopZhVb(859DQM{@ z%eK|Df$@V@I%*ecTWb!Td`dUbzY?}Y^rYBd1pl~GnrLTzSp95|{NrZRk;*Nm+6nm% zTb4aP;T+DqnN8p9-j=_|t8dTU-@l-r1;S$;K(v`vX}!rMXd}azT059KAEZkhb}|^) zO#w_0P`!O=Pby1C4R(L}&kJ~P0k zi@?TgKmv0+g=-3AhrrjX8CuAFH{b26K@~N8gVb@BFmZIV{~cCk^ThReJ8+YGYr1XW zvfBB&RXA9H&hdp!0*~OH1LtIOP7+Jo8s^lLb1ohV`c3?e_`Gz$ecS6uQkoUx5dM5C zC`bhvRhk~*A7h~gz};xCY+e6T^~un|53=R7_Qq8GSCuNoCGW>XDzEBRE||5Y`ohaO z6On7ZD42SJMMZi82M*m@o2cIfbcUX72tX>P#=+TNH+=FyF89=CuJ}McnW$H2gG-)J zT5sD#=xmj`NF4UCsf=WKN(^gUwgvPOcLMKd>Isk@~(n zzC=FNch^2{!za=2I6&IeqIOVdiiFNplJr3qA<;6*0O17BOK_Z`9z06wV%k4#+z-?s z@LBGhvBx14#55E&_L6WywL+*d;MPu>FMa(J2LX9m>>Fznmhlt!!IxBf<-xSaX)-Wm zu7SnpQELLSx)IaxdUQ~yf+t}P4oF&#-gr83KfRGu>U#V1AQbX zryHrLDFpks56Nf-CKPlrsi-Vw%P`p5H{T#n83aaRjXeMu z<51VihBZ))m&_4+89>fS2YxA5&mS=y4?D(LE9JvE`{C~_Azqm^1LEHE*iy6{PK#S5 z4#SMFYDbgnbt@sCj^K9hFS1S7cU>zvK24tUJhb8}@5@1*rRS?ndhVmnNMFtnP=nks zO$WF;(?IS$91p={o<fd#-t4$!^{ zoqOiWr2M+5rf;sKy)#ka`J)MxRn@7^0H;ygFPrZUfHL50<>YzgJfjJQeT~mLOwK^F z6dxpjb{b8JcDXW5KGfbmRPYES=j*5h{zXYupHu)lF+d-6z$(iF1fGYuj+W;gTV)jF z3;jHUC)~}dCB*sxeL4n657pUDaL2277PbVi#H2MUyrRzQ_z5@(Y)derdNyi{$kuG6OAiW^JbF8ub zCG00Bt+-wctm4BE_a$$fy8aqGZE8A zq_NH()uCgH9jn|fHbD5+JCUv+pB!pj417K@aI$je9A*x-PQ+9#Wqdqs%X}5o`x|Yq zf6%ke>rq|jF5^5&ATQTzOaH*n=yEXrrHzCR;Rx0&F_5-|cJx}cVC0yZ@12RAG~Q0& zQ`jg4?zC-!&}tIAX*Oqoox}+?Ls8BQi23e#q=9TNrbVSzhzQ91ThLf*1ECBE{I4dn zA!x%(V!)=v)xZ=lI(5O><$K4c6uSYl3St<6Il zbDrb21OpM|4MSX&y#s)QxEm;hi5*Ob2z;%s5*OW80T?wEK>RbSur3IhzrdfxH!&WC z3fUxTPSq$!w6Mjo#z%Hk+jD|K)fWVQvXL`+BLypV;J#~ukqEj+vFQs~?!XRnM!%5z z&={O`H^hCDF-Ae=h0A@wghZB-M($?{J|B-Xk_wQuc~zjtshSkoS;adWtj`o=>AV$- zqk_?WVPFc|O639Y3k)5?1Z;HS-LfbB?|pS~=gTlHpJ6cvnRi-l&FKUN_*ZW;?`}cr z>1s`xFKWzrk2GP^7jm4gUjTJ?6gYKZv@_fgf2@ zZ6NqG4LdWS3GOSihHEm?gwj2Zm^YkMsjpMI<$iiX&H*ECqY!GikAahdcv>5If~}?+?yI ze5B1?edo*Z^MD-CztF38ZqE9ND-os1A9a;(gMMDf0m{TxZL^F}+2tp0 z4o4UxKz1-XasYHj0%T7KVukaU8HoroI&u4CYF z4@l|o*U!Hy%>W+K$bbZt)j3Z3zFS@phkaL_z{0@1K)+gB0l*)81v){+0>3KJd5EnH zOJJfifpk~Hck28(@?|)Of8~YUzwwm33e$1~tOxjFDlj%`HcA0P_oW&D$G}1KUwv2g zfAG8(Fc@YM+SwE*$afTQH&F?@k(hEqiAH^DT!#30B z%MOJtAlbN#Uc4b;3@@L!+6p0VgMe?yN|Ur>)6Xq_!^))8kV?i=p_6p>LcGDW z+2pbGOHF61r~Ju6qgX=OKeCYWUs&kh`_v2Ec%2f+4S+oQlPy$%ll#UA##x+#VSw)O z6&z7qP0)%de?pol%2I}aS^~UX!37{_aS<8z6X1Lx8r>Lcfc#k1soli#=Mrl>?dZXQS%Eftz132W3_rQ^ zKy}bk5sk0<^ZlO@^eK*7jCWN;Bwe;1YvxQtx5H`fh))h(r`d640A}>wVS7G8+24jn z9F~~xMxOZ)FD18gv3U}!l)K0|ADFKS_oiTX@t3;0zkKVdv)ht*%EB<{sp^NbppTIY zK)aRNaC^v0$-0rWp$3%Z-=9Wyr^D@RqlQM0HK&yXT$`PQR9`z z3-LcDO1BKx?&IeE5wax65`w~XJw@9YPVu%J<*Pf+<~2X~mc2E(bY&@F>8oDX%4hz& zVtsGyuWhbBVmZuHOQ~Ji*s${Qfwe9tFIKH0^0!v@nfJ7AQc`>Z^1RmTW^;e}1s8^PPUj1@Em1acf2o28RWGZYgH!2I?<@KAVir z^8@vn8jSbeY+}&)I-9$(kTW7%4KAFxV#Kow%MVzmOWrc zjjvkp$uEt$a;K%kYJ9yv!-&2bKA!IHu&p$iz7B4_%>Sh9zeu>RtG70amasBoyRUh? zk%61`<-671x}VoR4k0h8^T~bao-zF-W~5V1CtQdcO;$ zQx71ki+dV8+DNklR@hIOQK7|`c^io`%|(>sh(2QuZQUOIT|8TZ+7qhAw6yK#%L^oC zjXSBAp3=*f-yA0u+Y&C=YPMV^<74i6W)_!<$aiv@(_+qN&;`-9jrFe^GVb?@-Hd%s zKL!})z?>H0@C^8qfxGDX4zhCQDT>bC2g8ORmbC=m=y9|JymABLZo}p;ECqGk9X7z7 zzg4^lG7>^H75Hhkt_~9>W<@ZT+Y=-_WO1E#^R&^dnMa%4uGeL%oy>`M&#)M8FdnEQ z&RxaV^YWO(y3##g5=z*JU+N8WKZiXIKqyvOzu!6>+caXa#^e^EFnfpY^B2$_xY5L? za$VEIqusjj_!NY6{looS*J_$)HM)vhShv|d*JstiGNL=?SmeKhcI8}9JbO@W07V(JX+J;@;C)MNSvpb)K+nC>Dzr#eu8EfCMrX7~E8y>6HK2=;3HB5(7XyGVJ_ zv8joyEO3vi2A8RcslyYRxN9f-~?XD_sAA_F$QFv04kBoHg$V$_qokz66h5pR#PrL z&d2l^@5B+;T32>_z=t~pRx5*nwffPsA@niCkLbUZ>GXL@wMp|GI#6Yz;*bzgx`+jk2pI#JUBkUy zjJOMlNze>yY(yA5Wg&e3~=YQTJnz>DmKBcXr;IvNlU&KxU1#FqWGW6M^cGLL#j0Or3wT zr;b&`85$KAaiYA2DuD!7S=>4ptmcqXUbKV^&)B7U&yP@O&}hG&)xm*xk_`Rs`S^h& zBZ|_AyfC{@uE%%wxUcfTGFMd~@1xE|MyyGYt!A{9ULXO_oWp?`X0!Q3NEj`EU5537 z8h5fT5sJG@kM;913F{7&*+;IUY(h4GK6P7wP^%%q$_?JeiQ762Vo1U$7QC6Lazgn| z9ic$$q@#%p9}+Q5b6F=FSdU^96f{t zqo)g#zFFn~Wp33~dV`RpzsXC29Ttf~K}0PNS-OTjBh#cg(>@I-6yQH!mS)GNE&Pyz z?fI2<(mTT&N>g@J+O4j3|MB9+iR{-`S7d2jVE`+tynS=&^-b?tY00=}2^D?V?Arlg8ICV)3_l2$?O0@S!!6h`c4Dg4UGv4fF;Eb_)8FiUFY|=&nyM0jP%c zw*Z%M2(j(-hImbqWxlLYkZ}iiLcVEZ$$e3yE|L2>aC48?vg@g=$2rT{)=kk~oe(Q^#I3OB4l4{Z0R5Mo0X0oHA&Ahv;G9Y%x$Jqx46 zD?EZiN-EBS&)S#@i~f917W?>q(-ALV#4sukD;mV!5=3B{9ArlK2*l;G^gIW~84G`5 z2%vLUe={~}6e4plfqHXLV`Yg8nMcy*4X|qSaT|fPH1%O~8y{@r_+ZZQr_x&UFfdsv zFp_@Kr)Gtqx2$f#!lmP-x2O#(USv%XU~1$$&nqo|;%0VYO)cMJ7mq5?kP-T}*EcrX zzap5RF;$YCqBCW;)N$$9+^x57L5*uDh1UQWh-s8bfPKSCO79oIZ$LEMx4Balk!!${ zgM{KSjk^*sl@7>9Y0o5xq$R-pa%C(fU(N(GABcgZHw_qL74Qmrk)_H+7EQZo2XVnq z3mSU>u{Dwo6#9G;nCn2GD04*bJ?8a;_4>$YU@=ks(MC&fPgHXlbi``R#vMX(0Gyb! z;m$!Pf6z#XHQqc})91AR`4cdZ7Fv&IMdHy9C+?w01jdex`AsVZji$XfviM=q)x(4ID2d^`5tqktyQ`Ng@mOht4TTN zBHtgROV~VBJhEsD*lIiYSe=5hvW7SSn?z5tc+-Ga&D{O>rGSBhI7ciZz()hpiw9=Im-qer3f5?!I+Zj)2S40oaJ?slc(#5EOkY_9dkeUqq0IW<5 zOKu)2Q^T`SeV_V1FgynaCvNR8|D6LKP)ix>2@|vO1XWRf1>!SB+()a&Yw2WWIGNzBGo6S zjanTcFJvOyv_7yL_r8qo&AVaSnS!eTyR)zqxOGsWLjv?*P6BBnVm&bE|MHNB9!yKX zV}0!t40na^UPwln+&n@y4HAE*y8{bK6SxuCy%m(9MiDX@G!X5ViBAg^@djgmPV5%g{YE?Z2eXiiJf7y-<=q4#@tqy8}5nlPL5rUIx zhXAV@7)HV6tqfO{&!AwLesL#%RNrpiPa# zQ{TEc6s$J@L=^l5_C^+&KEjv92xyDVhp(q2!|>oHJZy;r$Z_PRSt1 zpC`{#Gz6g~=7W?DyHF`vst=UGZ@?*hOJr|JH7Q;8*f4SD=AG*dY<66H_;w|$AZJ<1BK7SLmhQWi z{N+|hPg7i>ny)o-+1-R}HSeyA?t{L_@OTkJy42z_fcXDvx#d}}mG7eyS~JbSjfF5X2YT+MUy z9gl_OCfxp;5SMq+!-Z6c>7ll*=i~xl1S%s(c+}Rx$)g8QlJ`TU5A`CZW_6S;eckO^ zL%5*+-p4HoKlYcYlawYT>t{hV>$0GC_^n`Oj-~y?%?9#Ldq^3J3|drI z;fFF%Heh$4C^jqsg8X8{dXU}Ggb6sKiHNNL{)wi1RXOelgzCFPlFLAqHF-z+s(Kfk zGKEb)aaVSMBWk+z0w@!@4qTC{q*Bl$K=f}d#!o7N+bP5X*m^zSp#6^^WsaRqTrs`~ zpxbp!FsQ4gKv!MfM4VLb`iW~*$F=>Z5szPutjhX&nm!M4TX=KL^@YjwwXjn~RmSn} z-@A=ko$QN#bH8zE(I3g%*Dma{R_dqx_nPMakQG-V?}DWlq#DD>HNXavK41iZrJ4|f zdTuq5`n9!u)sH7Q;;n#<8nesLS_=-yxC_=09MAtZm`V99!@}?8YR-icwfrB6E7kVy zhcjOuZXH^1EtFRAn=8M6){{?<_K9NmT|KR}M7f#sU&rJBA(Q_fwcQ%Qc3aSjEet22 zF~!hCtUL5>M?3b%u4!feIYJ?uKR3Y4&UNT7-PCbdFz*~ zix%ldUz|myWu~e(fr$FQBX<6dmgH}eGR;}BWm|QMhLitucrWLYsj08j_u&e)*gpu+n2U8oAAe{ zKu@BMbcOtK&7B324=&@>AL4L_lp;Y2={tWq;J5vI9q_^3o+3l`zxZdGOCktXY$r+e z+n^r?O$EFlN}gM7i~!vWEZj9OCNXOf-6!Gw>Fm0-Ij0 z*EkHmx`r~=9|W8O_C#9#O3w{CSG`FGO6N62iH#@hi_qBecYew(|CHYQpMP@-2q|VF z;{XYIQVO)99CHs`+b>P`7ZDD?J88rLT?pQS*hXk#+ox>;SJ39LVp-=!XDO@eM%`5`heq_;808R_d=uCHPZW{X zaD*(u$bLwe3rUkHGogVwjQZb|CY=-$uk^G1f7a^1&076gKk^qlDvy|nSX>UW)NN3Z zM?V9%bD7hzT80Bcl^98H$!}whNFW7aNs4;M1~@iy-I?;HjG;FtukOUA(CbxJ~_7rhpKD z6{t6g#gC&pKyjS4Rhj|35%vT7Wfl=J?~`i}Ba8d6h0Gy);P{sZOqBl~_C9#Wh0N0jrttp0hNZerqytv+ z9L$VySS50TE&{93#i$9Ifk0be)Zh%GSy24xjMwJ7{cV%<&{++v!pC*VN6Ti}E#B`Q zzXwDm+Y$bUpZ-I)!}OeX5DIvPYpp5-cVs#to0_+4AC`fQckjV9^;t^tl#|<3O|5Yo z9s>ZtTNpcgD;F5#iwCA3Nt)Lv1-tNcjrDZ3#=*QRS67}|54>~!%XaG8VOMkP z(lIae5eSTa+_I2*5u_b{ukGd0HHD)PT-yUZD0>7{KL~hTR$u^i+rD%Uptvl}ET8H^b(*&C4y> z_4LL3^mR(RH2&_E#dr)1AgaQX#&(wg=P&U8CrcU%M8lf2aHoy3t&G+qvk!w@=Hll& zjDEk$c-6`GOp|!k?YWD4kb1Rn*3pw$bMb#)=luU?wXcFe0_^tSaq#!8H3Vd_B(P{& zFA2!7wHHTBM;cmzH&)*Dr^dH_e6@e4!v1^HRJ8h}vk@Ihldy|Dv_TA9gefsI(anmy zE&+3WdQgmjtP!g?*`MnY+DjF5B5 zaUqe^wEEO5wZXG-d%7+?+*$+S!NKYBFj)qfbesyYWatZuH<$8<_0Wf!Wn z>3fi9(U7VzgFU1sNp)UYIrp9bH9&&a6o|W~eId>KIKVI~F&t#Y@t;-8!uO z&p@6(e%E`0x4!R0AF4^eouKBgwl`Y0qlWhVQHX|T#DMt&&$Di8(oWu!w$=&ijo-aU zHVt)EeU9_^n@lkg-Y9(xFB)#-#8aj$dgl;w=M%ad*&iYCtan^1AxBp_iO8x=+5Y8| zU&CX{VjiO#@A-EegxKHi&^T3*~Zd$#fhqQ<2(_^@LTs1W5$9}lx-(R5n3VT; zAafNwtw6GOqeLYw$-=?OCQ1bFbHu^z39H|PdRM-;>}&o4-!HqDVKuzl@Py%2)fSR+ z)$)FdF?~wr>egb*z?!r+@5K`K1-d)X^tDU>m>j<7a0Zmmx!D-ya7^@O$9a9(-WH;f zi)301y)-=O1{8AmVL#g^m%rms<>p;@%HN#oT%QLA0!|v`ubFJ!RqC1Ex%g?pv)Jz{ zm95lZ>#i;D-YCDE{j7D&$TLslqefV1T4}p}(L?f#_$)P(yE$({B78LEx61edp4%UE zG=?a59oR}s-tNC>sQkt85~l~ERHx$^KJG0`4Hvw+vQN1e&%Z7$fJxPqXc*~pmO!=r zB`iavp%#>p%%Id|E^W1NH0Gll+ZVhy0rtHyl1to6ZbmJIU8{Dq(f5n1+ph-Lcm&6s zx$W0vb7{5nf>&RauY;96jZ&T=&9bEksqQAP{<%#L<%%^`7j=fy5-ZOfj<|P_cRt^b zqwTPRzw3Rzwfp^|=Eqj3L8!>fm)v4-gew~I+?@GwUE-VUIw9fA|7L$H>5kS0&1kn- zwV6t#>R#tLj4a&6ow3c^{eH@;d#AQs<}FNm6@S@19(NNLl>eb*sN{KXMxDXA(36`( z{6hmR&U7B^BpWuV)K^MYZMN3gG_Y__!yDskh2<+;RU%gj>I`RuGw$YX&+k{u?w=*t zkQYGCb$`sdPtJY?2b}z7lW5a1nB98+@&W4IXUR6jsWwT%E#J879ku1`5PTA5CLvTm zw--)9_eoTv#^w^lP=ez;Z*(fcgwJpprWGYEL6v%e!aqdqj!PSJ{rIuz4?#uoD9>$Y z)7QpyXCL-ak>+H(yHMXL_j5WL#RjpMIei+kU4pMM@ZnoaBf_CVEA55`Ofk?UQXF*Pa?vMmH7|;tef~(>8B@pM2$6| z=F`TW@gY;m-aXHo&EWBd*_dWd?1{l(;^(##Nsjl9l}*}yfj zXlyR|ZHc?d@ZesR3)PNsf0MBRNQ=)T`I9bYnj(!NYMh-}EcL9D24^}0*p5YI_0M-W zpZkLGyCE&QDN+x1SG@Pa!h-W8=MM|7dp>VItI-ss#TOfSYGmy3JU|??T+`h9ybL#S zMob#ala$q&*nuB0XS{^j*ql!3Wkdpp_Vm>eX9k7?G&l>nA=2Q)ouf>Dgq{*IHIX&# zHDy&M05a3Yb0JNq`$#6Z{&Xam=uu|Ua^ApL-lEJa!I7jL|1e{}0Oo(|z*HVJs38?{ z8i6|>qyZfXZ)ai7I!R0Z^9ON8P8EF}AfD9`Sv+28$GgQL2-I ze-Nh&x&xhp!X9;cL^4Vc-}O)6oLH133bJ%R%hU9`>2e{*{8sr#zc&5JkUP)5*K~I; zZ+!M8a?RJj)Z6^$io#$1a@-?f4^HGF13h4}8S?_#`F5y-By=!aOzarl+uHMt10cp* z0Sr^gqw=nn(2ERBx(i|h2@@&eI)P^X>Idjvwg-Ax5|CArg|ur?0PoyZY*=@dO=5Gde{w0SA8DOWV;{C(x<%&7&!Lf^)q5H+I$XO0uXEZ$Jz6gsbu# zO9Jl?OdjjLe*Tn*r;S9{82(sO_O4QA`#sv-nwzOiv6u3$16_%wdAGlnpUd&J>c}U~ zyWzSShnQk&9=>z~kHH4@rLJYNpL0 zt`#5wJz=&+`uUlgb7?ofOU;{3JvYSN! zr-R>7PYsA9xG)+*S<_0`d?RT_`%m1lXAT;q!JacP$Q2jVGBoU{|FOSRpc#y<^j`yF ziXo9Tvvw5{-YuvNHLOa9zYU8tS-_dSue*~ck2##{U~q1w=L6Ml79JzeHj1b*k5E0K zv#Cs@c8vix@BNT9uk71RR?2xXbLO`y^LAg^@q&m40kh6mP};`8DQM+c77P5wj};|# zzcPyO!`a*Y<=*ID?h?l%@*)S7EczCC8e{EO$35ih`RQ#I;Sam5u_#_h?qJt?s9t{UFSDa*VCwafJTg*456$~lweX!Oa`-kH zgnY=R?HLv`IO4qL9znjfr35|Inl5tPCi1C>^j0lOMe(@bn`ZfYY3-ARc?eE>%29qSfbEG z`k8yQLO<(#$9~i_um6;P8vlGzdW6vjoZJD1F49*E@oGq5b+=~oqe@U~QPt0m9P6+m ztN(@1ljh>N>J6GU+gmNQZ-AP$2Rb)U4gMIOf1q}|=`-JxT1ko5z84^CE6yZ^w&K_cB6|=a*GmsV%e+#6)Edmf_?)QzG@NTRIN?>jijDv;uO&ow1=p( zJ@;k)nhL7rqtr`&@+*ob*W;k|i zc#eC&<7&xp4Bb4p3)xunQa95~vcDwu*~5=rWD!SetHZ27{^wn#H|{NLUUNGnxbVIZ zzvijD81l&@$92y^%0guaus8Y~b$Z}qn^?M$WKB;Gr{*Jr0P4{uSi261z%0Hc>k;Et z51sPOoNlzerNq2KVqLH$D7xGfM~{{r#=1>b$TOf|7P6?ZdhVY3G)oU~LUK zzd4cw^g8q$LXfSeF~;jzN>wZA%aBfym(BjC?@9tUW;|i89QFmOHY=ntPpFO;Z+@Z`p;fC;rM6 z8>z@G2zP-<41c%}o1=qi6A(``(KdOm6?v%KQF(#{UxjLb76{7U=p90ih6oThmc$dP zxdR@xVmeAJWUHpAZQ3hbx4eoYEXkaXoB;)@Kz=%s59<=8Xq3jo)CrP2A*B`{&6qF0 zGxpV*r-m+u@%2l`iY3Dhg3H}AT2P9pD-_fIe`@>osHX09+aM|`U_c&0*bujfs0e5U zsT#7hsHikXtB3|MT0|ZZvK5f1F^iXkhd`AIdqW{2@A6VeKp_%BfShU-2}mSV@}S)+ zBxS8uU~Tf)=huDDxMQ4g?-_TDd&c>T0e`TPtd;Ng&H2r5&Y|?q-S#FsEZrTo&bq6H zoF~PRP17aROMcG|na_#lkG$#G#`q`BjBVS>{tG5R+=1Pe;EBMMhR>t7pUe23l?YnX z0=6gI5OJ0ja29!0_B}SCac4e7ek#54#@7#=K+~oE^VL2H{H(0OLl2MPU%cR9o0YmN z`V*$tB0jNq7V}VQtB|TGLK++exlXdzVWJ8|E57WmpGz&WaR<w?C99#;&u2?Y?uD9>6M62>3Diw53z4yUZ`wDLO6bgRXn45KLDAtk9Ht) z+S#k$&=^ISSH#$qETQ)19)7Ond}nd6;OWVO+n(DjX}PaI&iQe1A(y>f6_5YpF>S&o z1{FZmPudJ(nm^JV4QBON-N57~#6e(uUjUYV3-L5odVDxtZXm?g#Fd=eI{c|ICkh~V#=>P*xvLxRp=Xw`wlD@|-WS&tWn2b<{C;%M`q zCMgZCgMflcGK*uC^#6AD`Rnjtwa#*YvtE`=iT!os!K|et@d>mup;dQwG=$>H z=F2fu4UZ?zU&UthhghRqD;zNbQUb7ngP@Gc_ipMcZ%q?!Z(wD{bQJNg>PG#aHm#TW zjh>D!X6PqkE~H<-c<8$&O6?SC2_ophp5AOac-{+pBUY8S=0W7Q;CO)Kdzif0s{5`^dBm+j{i-$L5knCM;nx6k{#>c+kIl3y9KM5=m#;2>S2-rayRHu45I1k9R&E*!!t zQz{JsST|}eRuFQVlc{No;D0FZIMPmbE*2D5c*%s8Om%b6fOD;=dR*#Im>&HI^$|rq z2qMjQq!Lfg0JBByQ#CKM%U7yg!;!%_A%uAK7q}y{gU!q-g5;%_+UJ@3;ajU}^H67f z|0xsxO+?Lz|EBb}Gdms^9qqXjrSn;WyFpJitv8UdI<>2p#zI1L#R4<|sdFDTK7DP7 zS3!0kDtwWG_IM_#Lr!oG%OOFx>SGjlY|c&$G5tD9+Jo(p7xs5rT^^=h50)?$3-c80 zGUy?y{TH?61jm;7!@T*z&AyV*KzG zrt44g8|>{9B&6xb{4L9I3WTfk*9Wk_!0u}bGu+IK4|-Oxrl#=ej;J9Psp=y-7%V_E z_&FQO?vGoOEzsb!q=*{}1I|m{PIjG{+}T*8uneyYxt{yu#HJ;!19(N%`~~dK8ake} zV=7qZinyrpcSvWE18V9j_AyL^=zHBfP*TZfe8*wz<`*bEn_qr{b~ER0Wt!hacyV!P z%#_u1=w3h0c9RTh7io1-)zfr7UMfoeCvM3n-Ho5eKL9a`lW8-HsJ>s^&T{kHSxS-T zC%;=`eeh?}>&o<3himX#<4*Xbr|x9OqMa(K1m<1=-m*Dpikh3sv75r z`#~6Ih{8@x!5Iopc@u*GDlIrH@qJ_uEH<(lyEYcCw23RJ*gY)B8?u~;Rk(g@caA}5 zk86mprAfR8w2!_hm^Ld>GZobNWb{>Q14s^~6FI9e34K_&tePD<=0~+;pFje#{cm}y z;q0y6{uB$%!J68SyLIn$g{gvPpP8h`WuyzqR%Ex)Cf|4;?cB=dU(es|b;pAAUz%P5 z!ykwDxd2e6iueREF<)+4_N0T43JUv(xuA#_U02O?k24>%cc7Hc41Z%B6Mr^hsCIhW z#J)z4>Y^8Q%HTEKil4Ubb$j=J6XyNFZy&I-nHXH(nYC%XwR^TYfBhZ5Hovw<`&U&~ z-=93}WF;(kHGat>)#LvG8du>i-j(`YJ+L))>sM95Tff>Oyn1jtbn32?LsGKGnbQtY z8*KKiPj#@34Ba2P|Gd*AAHePYU#&FQ0{IVnkpE2t{5RU? z|J-4l|0CB3#@CUvnQ$jq`jbzEY3tC=qX8U?KU|oX;@f2h8<|T#n;~1H{&l*AhH0`5 zx{!5_y}@k*5|-ngG;0&P^}SYp;&l0*63A@Y;pN&aiG*3syMDvwDcF zbbA_g6OBHMMuUo3MVlRn;Nb09&d<*ng4BV&hY^qTnUsoksB2b9<)EUD%YR%Cx+%&k z$yd04Z3ks>UWt}Nad^z9)3AoCu9FU##fa=VE)$&RNFAjo0f=w>+*@D)!IIQrQ-Wg=r=5G;qQSemAW? z`^IoU|G8m{T!U=}a<+V=wRd(kgKQ_8^IdANZbL1!V{B$?9K6h6o4mBb9y_Bc5AQ!! z>itp*ux#~*ijAEDM4ILI5(;e_0p#9E+;2*U)0`pLo&@$Vm%|_F9g}sc<`5P6DH1R> zRx$oJw_tQ6u%j@EtHwvc8A+ehiPtrB_Qy1aR*TTHM zbANvP=F_bNeMmQMkx4}oid3`M=3s-PR&-k=w6AM6w%RQFZxPBKq2^D3V zw#C87BeDnUw|GXs^UlUvQTnHT)FRtsL_l5nact7|jd#+E*Z4OewAn&iqW_#74lXE! z#SAjp5QYV+=s6&|$(Az)=J9^5nLX}Un%cN$UfHse{ zSH~oZ@{{sHVEYM4<;UV;XTklpv%yJb^I!oy5Fr9^NCaP*D@FlWfnO&RFm138tUbLv zo6CkB4-Y2z`>u)Mt>E~uA*@+rT>t#JKco5RB6S58aJFm2FP}uNYK-eB-W~sKK;k=( z`@I(Dl|Z0~dCCoYs!a+y(!;R<(w}B#T5x|*FNBn`qD^-0nn?9}5mLoX6LmnHKsWt0 zSO)`brZvDEDdYKox2b!6`t+s6RHziRgS)`e8*&)Nb_S>c35}FVN<_8-81v$3C*n2U z1PvjB?;3t~#AIU{CIW3#Ebq=XwwL_ESkg=x#@^A2G5g(YM}?6p>+^yt#$Rp~M#!p! zvMB){XVQ{<)l4gvyQIrElSELzwCHoQLnh1Pt64YuOaz&q(OlBCx+uyiYbazmiLzyK zgd+Pib13xdj<&}g>53Jj!S+WUtiqYT7OB!fN$)t%f0yv=4I!1-juQY0OEeu-4_O&vh#+)NX;GdIXZ1+KN8As$OdR~ZcH~p6a7X>5 zcv(khjMfYg>Ei2f3^DDWIB<_5XUC_f#E_F=B^o{-fPk2d!uj3U3Gf)KL-7({m)J=k z1O$tji5u}YAc3i{f7XU|WO3oh4A|Z8_9uQZto^qnzXz**O)IYJH?lWF?Ii|#%lS40FIJji8S{!i zki4q0!WpBYMFV6v89R82w>%Coxa{z17EuD@1;!hS`KexKkI80@^-;>zk-pjLy6ign zTmWi0eN1Sx*X$qQWMBGk#v*nI@S6G&eiYDu-&hZ;?(=Y@6ny|kLBkJ1L`>9A#~TQ{NH z^0>ZV{WqEXZtYz3EI6a9!5Q0dn^ry8Qg3$B3TJ`CZNr(T;-(a-&^HW_KsC=bHi2sO zl#ZO8HDfy&pK>;G270WR7C;=#2kU|H2v;qVfQSuDuPIK`;K$>phAI-zN_Na#Kf7+KzybI8ZQFAGIZ!|yV_IdtAf&dtc`g>PjI2vSgWr#92ps$T#H0! z0YDT8%|Brlc1Shxb+_5X@87;Pe4ZgKRsutuxfP!<@J2s-hvy2s>L>IP3Mt8`m;izujpgt+w2^m)J$N9TBO@OM?w|c?0)gv8T#-Ph+f`1%Kl?PZ{sE zm~4WPzj8)PTRM2=b8B_hO^VNWd7YC1fXa}$u7ceTG^|YyMSnU%`g(bzeK!uWfmGkZ zZLwG@c$D2my0xlS1=qCF6GcO$toGdU#UvrpzT5Vpmk5JVWj6E5>z z;H-JTVjKfMVADILB`NBb-X9B??>FW`u`WE^jEJukzhw5(0&W`|)GMG%t|?*Q#kVk5 zGj{)azxjjPo>7hq#*;j98A<9g{p}&+N^s@mhx2Y9L7B?IfFIkC;;6*5>Izb)A!xnP zFb%#JetQ*6^{#*`vSIN)LZ7S^5R1`yN(WY<<~y=K7F~tqF1|m99Y+iMcLZsO%RkC* zv~uJ9h-)Teq>|2n1*T)S+IZ1C4SR<&Rbjed{Z&}pBXSVMLRmddSeSm9;cMev(^lZ1 zybp<<@+p7#mW>DCYELtJ8zPuZW8*dN0>WjVnB1^VlN}PMD=0^3l*mJEBZ571?cK=6 zzcI))%erybg&lx%Nn$E|O{=58ctIOY$cTp{F-Y}SLJ3g6e;UeMSsRQ5g&12~plDw1 zl{ggJsq9l>ZbJhB=PYuKrVabl7pz`t7}xFkQP+ewV>o;Z2p9Ro@P8k8`^z!FrR5u? z65_ZIeFF4dbI4av0W27+A>951uLb952+9+mTZUTExB%^ARbRcHquR3ek>IA7E}tS~ z;VfEFuC7!M*BHpJp~w7LE!Nx%MpSu_vw+Ek1Qt>zwoy4i%-}s56|E&N10CZ^&bo1q z9C`$C4FL}^!c?nx#`_Y;c@5Z)y{P?A8u)A|)8zf3unA7UTfdvGqjXUi{au||LZ~k0 z(#RRq#^TfC{|b%#AG<^UwFKvn)fwV{?4$n=V1+EA71_BkCwS^}?7Hd#dRu5EvU1Tp zL5e|jx7^(0T-#&vqH?)XI+!pb-xAF|b2q?id@~Cgjj3Jwo=1LYef!yC%M(E+FbRN4 zckC0;&6=D$rJu8%l&jZcuP2uw-R#qO>Z$2y8q-XQ+J6ilT&WryJ0rM+bj`R2#Z&Up z#{v6a>~$joCPWO0E?7sN!m3&s(Bo)rRnrXgC-*Gkovw<<`arhF8z$K+XnA)H>)|Hy zdTKrEh}sZ|Ll545$SSWyE#@<+8W6ZAuMU3G6rZ5MExZg-2lu^;*5Ge*yl05kZ1e98 zp@>gT3yUEp+9ms1u&(Jf_zdAL4eV}OLox5`+0iu;g?e)NR2yUQgg)_z%-?H|b+{I} z)iXKuoRYeh7Tr6Peq)Q_WCT&Q(D%}Vvs+1@hFwa&#BQm*mSNI{xKhaA-c?bF9;1D< z#b<{p3c0|%;{cqZnbqa|3U)h-&mQ);s}ICop9O>0NZ)ab!5$YZUNz*zc|mON%q6Ww zm=f|vgx*KBU}dO8Kugj`w-UNeQSo9mM8K%M=hpThKQ9t9h5j0*rDB4W67ibvW$EgB za(Ep#mE;IS_)@?btBfYsZbr3QB>hQ8MIOQR5bdIbCC9S57f`6|ZzBhS^a z8H+%VP?v?E0qV|Fj(Z58qizree7Rq-X2p|kXi^0ZD^p*5mM4L1h4!X(Bgu|PYk^^x zV@#JboGCEQMC3bj zGFlBMu~5~}TC6B&gd>x;)_gE+7~|(Pr-aCAyHlP#9od?^VyjQ>wR@V$gO|3NDKO&v z1!Ea!t-)io2iRR0c_vF1QNx)r1v+hF!H#0QR#Ghk+?O}v>b~M z$Z;M!^Gh4$+Em|ex4Y!#`|m+B0;ltp7$@fMWhxij|_J zl|^|~nUc8OcdwhR2LF~g?}A1TIv6WSC-knI7bbU1+f`oM4Jr~h0>dMcQ`kL)iRaH> zOv(Nky$?+FJ>@m%#xjrch7op8mmVSJ!j^&iba~S_`_(+z^a3s^L5ASfF&I=JmLMsRm?AwtcC&S$Nxxj1n^pfi0{N zb-py8pNuTrd5>M!lv9s($w`EOyrdN)K`5!mMKnS@H$0s5GPFf||NMj1;ZuO8(LJ7#@w<2V+knFSAlB|GSKlYe$)slqjqGQtk6neI>|JYM!}px-90 zW4pM1pVjZd4t*P1oXjh+NRS=xE2b`q#)*u%hm$^Y;;q@e5*)~BbQ25}mmdOJW-i!OlM`}_QUV<{;L9r<#UulsrkfG(2- z+h0!hkT%7jw4jI6zp>=UkvG!pgye|TUY7Q+1uo@ZFkafw0KpMOiTnDCR7dhojzsym zP`6prOpww+X(#fy(f(V8)m=`jm!RLH>2T`9q?QWAb3uf)Hl#_1=2Rpij zUEO&H86C2*Up3*pw(HuVy>55WNR>rzYaxWE_R;f|%Q=qhbJ*E%>Rpa2I|LjOLZ<4k zmt^Z>lJfEZ6;K#5n#2fiUhjEPmY{3?^V1QFouBpY^)tJ#B90f%GqF&lBn-1ahE#Yl z3{E|BVNe}ILCx;Lv-YUD>4sfEr$CF&{j?xshem3MOFq)PTeFfUVEfp6A$3@BU^qqS zZ2YcmVp@4Q_l!gDZWm=baoHS{3C<RpB5bSuzmXLa&>B7e5X0PArjp&xGgpb$PUu)rH5px#bclkO7vc_H%vMD z9h@O(860i&97sXpDmFdB0+1JC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +Number of Processors +Speedup + +Parallel Portion + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +100% +95% +90% +75% +50% + diff --git a/better-code/figures/R/05_amdahl_log.svg b/better-code/figures/R/05_amdahl_log.svg new file mode 100644 index 0000000..2abc9fd --- /dev/null +++ b/better-code/figures/R/05_amdahl_log.svg @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2 +4 +6 +8 +10 +12 +14 +16 +18 +20 + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +2 +4 +8 +16 +32 +64 +128 +256 +512 +1024 +2048 +4096 +8192 +16384 +32768 +65536 +Number of Processors +Speedup + +Parallel Portion + + + + + + + + + + + + + + + + + + + + +95% +90% +75% +50% + diff --git a/better-code/figures/R/amdahl_lin.R b/better-code/figures/R/amdahl_lin.R new file mode 100644 index 0000000..6ed5d22 --- /dev/null +++ b/better-code/figures/R/amdahl_lin.R @@ -0,0 +1,44 @@ +library(ggplot2) +library(scales) + +amdahlFun95 <- function(x) { + 1.0 / ((1.0 - 0.95) + 0.95 / x) +} +amdahlFun90 <- function(x) { + 1.0 / ((1.0 - 0.9) + 0.9 / x) +} +amdahlFun75 <- function(x) { + 1.0 / ((1.0 - 0.75) + 0.75 / x) +} +amdahlFun50 <- function(x) { + 1.0 / ((1.0 - 0.50) + 0.50 / x) +} + +optimalFun <- function(x) { + x +} + +p1 <- ggplot(data.frame(x = c(1, 16)), aes(x=x)) + + stat_function(fun = optimalFun, aes(colour = "100%")) + + stat_function(fun = amdahlFun95, aes(colour = "95%")) + + stat_function(fun = amdahlFun90, aes(colour = "90%")) + + stat_function(fun = amdahlFun75, aes(colour = "75%")) + + stat_function(fun = amdahlFun50, aes(colour = "50%")) + + scale_x_continuous(name = "Number of Processors", breaks = seq(1, 16, 1), limits=c(1, 16)) + + scale_y_continuous(name = "Speedup", breaks = seq(1, 16, 1)) + + scale_colour_manual("Parallel Portion", + limits=c("100%", "95%", "90%", "75%", "50%"), + values = c("100%" = "green", "95%" = "red", "90%" = "orange", "75%" = "deeppink", "50%" = "blue")) + + theme_bw() + + theme(axis.line = element_line(size=1, colour = "black"), + panel.grid.major = element_line(colour = "#d3d3d3"), + panel.grid.minor = element_blank(), + panel.border = element_blank(), panel.background = element_blank(), + plot.title = element_text(size = 14, family = "Arial", face = "bold"), + text=element_text(family="Arial"), + axis.text.x=element_text(colour="black", size = 9), + axis.text.y=element_text(colour="black", size = 9)) + +ggsave(file="05_amdahl_lin.svg", plot=p1, width=10, height=10) + + diff --git a/better-code/figures/R/amdahl_log.R b/better-code/figures/R/amdahl_log.R new file mode 100644 index 0000000..9d3ac64 --- /dev/null +++ b/better-code/figures/R/amdahl_log.R @@ -0,0 +1,32 @@ +library(ggplot2) +library(scales) + +amdahlFun95 <- function(x) { + 1.0 / ((1.0 - 0.95) + 0.95 / x) +} +amdahlFun90 <- function(x) { + 1.0 / ((1.0 - 0.9) + 0.9 / x) +} +amdahlFun75 <- function(x) { + 1.0 / ((1.0 - 0.75) + 0.75 / x) +} +amdahlFun50 <- function(x) { + 1.0 / ((1.0 - 0.50) + 0.50 / x) +} + +p1 <- ggplot(data.frame(x = c(1, 65536)), aes(x=x)) + + stat_function(fun = amdahlFun95, aes(colour = "95%")) + + stat_function(fun = amdahlFun90, aes(colour = "90%")) + + stat_function(fun = amdahlFun75, aes(colour = "75%")) + + stat_function(fun = amdahlFun50, aes(colour = "50%")) + + scale_x_continuous(trans = 'log2', name = "Number of Processors", limits=c(1, 65536), + breaks = trans_breaks("log2", n = 16, function(x) 2^x), labels = trans_format("log2", function(x) 2^x)) + + scale_y_continuous(name = "Speedup", breaks = seq(0, 21, 2), limits=c(1, 20)) + + scale_colour_manual("Parallel Portion", + limits=c("95%", "90%", "75%", "50%"), + values = c("95%" = "red", "90%" = "orange", "75%" = "deeppink", "50%" = "blue")) + + theme_bw() + + ggsave(file="05_amdahl_log.svg", plot=p1, width=12, height=10) + + diff --git a/better-code/figures/amdahl_lin.jpg b/better-code/figures/amdahl_lin.jpg deleted file mode 100644 index 15848f7426d08b63d4db69d924bf6966cb8af101..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 236082 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 z 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 diff --git a/better-code/figures/amdahl_lin.png b/better-code/figures/amdahl_lin.png deleted file mode 100644 index cbd81cd181b5fab0c0ab20486e971b8450e7fa45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158661 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 eWOaGE^qifreQFY8Xe^BfeBDOgLzF061pPlGF)A Date: Mon, 28 Dec 2020 01:43:42 +0100 Subject: [PATCH 06/17] Use correct file names --- better-code/05-concurrency.md | 62 +++++----- better-code/figures/05-amdahl_lin.svg | 168 +++++++++++++++++++++++++ better-code/figures/05-amdahl_log.svg | 169 ++++++++++++++++++++++++++ 3 files changed, 370 insertions(+), 29 deletions(-) create mode 100644 better-code/figures/05-amdahl_lin.svg create mode 100644 better-code/figures/05-amdahl_log.svg diff --git a/better-code/05-concurrency.md b/better-code/05-concurrency.md index 5d8ccb0..58f311b 100644 --- a/better-code/05-concurrency.md +++ b/better-code/05-concurrency.md @@ -49,34 +49,29 @@ Where the speedup $$S$$ is defined by this equation. $$P$$ is hereby the amount Drawing the abscissa in logarithmic scale illustrates that there is only a speedup of 20 times, even when the system is running on 2048 or more cores and just 5% synchronization takes place. -{::comment} Convert/Create new SVG image -{% include figure.md name='amdahl_log' caption="Amdahl's law logarithmic scale" %} -{::/comment} - -![Amdahl's Law](figures/amdahl_log.png){:height="40%" width="40%"} -Amdahl's Law Logarithmic Scale +{% include figure.md name='05-amdahl_log' caption="Amdahl's law logarithmic scale" size=75 %} Since most desktop or mobile processors have less than 64 cores, it is better to take a look at the graph with linear scale. Each line below the diagonal represents 10% more of serialisation. So if the application just has 10% of serialisation and it is running on 16 cores then the speed-up is just a little better than factor of six. -{::comment} Convert/Create new SVG image -{% include figure.md name='amdahl_lin' caption="Amdahl's law linear scale" %} -{::/comment} -![Amdahl's Law](figures/amdahl_lin.png){:height="40%" width="40%"} -Amdahl's Law Linear Scale +{% include figure.md name='05-amdahl_lin' caption="Amdahl's law linear scale" %} So Amdahl's law has a huge impact. Serialization doesn't mean only locking on a mutex. Serialization can mean sharing the same memory or sharing the same address bus for the memory, if it is not a NUMA architecture. Sharing the same cache line or anything that is shared within the processor starts to bend that curve down and it bends down rapidly, even an atomic bends that curve down. -This is an often used model for implementing exclusive access to an object by multiple threads: +The following illustrates an often used model for implementing exclusive access to an object by multiple threads: {% include figure.md name='05-traditional_locking-1' caption="Different threads need access to single object" %} +As soon as the different threads do not only want to read the single object, but need write access as well, it is necessary to give just a single thread exclusive access. (Otherwise undefined behavior is the result.) All other threads have to wait for their turn to get read or access. + {% include figure.md name='05-traditional_locking-2' caption="Exclusive access with locking" %} +When the one threads does not need any more its exclusive access it gives its up. + {% include figure.md name='05-traditional_locking-3' caption="Exclusive access by different threads" %} -As long as one thread has exclusive access to the object all other threads have to wait until they get the access right. +And the next thread can get the exclusive [^access]. -This is a horrible way to think about threading. The goal has to be to minimize waiting at all costs. David Butenhof, one of the POSIX implementors, coined the phrase that mutex should be better named bottleneck, because of the property of slowing down an application[^butenhof]. +This is a horrible way to think about threading. The goal has to be to minimize waiting at all costs. David [^Butenhof], one of the POSIX implementors, coined the phrase that mutex should be better named bottleneck, because of the property of slowing down an application. In the following, let's take a look at a traditional piece of code: @@ -123,7 +118,7 @@ Since this is recognized as a successful idiom to solve performance problems of {% include code.md name='05-background_worker' caption='Simple background worker' %} -Over time the application gets enhanced with more modules and plugins. When now for each of these the same idea was applied then the complete application uses a huge number threads. +Over time the application gets enhanced with more modules and plugins. When now for each of these the same idea was applied then the complete application uses a huge number of threads. An over subscription of threads is then easily the case. That means that more threads are used than CPU cores are available. So the kernel of the operating system has to constantly switch the threads between the available cores to prevent starvation of single threads. Within such a switch - named context switch - the CPU registers, program counter and stack pointer of the old thread are saved and the ones from the new thread needs to be restored. This save and restore takes time that is lost for computational tasks of an application. Beside this the translation lookaside buffer (TLB) must be flushed and the page table of the next process is loaded. The flushing of the TLB causes that the memory access of the new thread is slower in the beginning. This causes an additional slow down. So the goal has to be that the number of context switches is as low as possible. @@ -132,43 +127,49 @@ One way to archive this goal is to use a task system. A task system uses a set o {% include figure.md name='05-simple_tasking_system' caption='Simple task system' %} -Since the number of threads is constant, ideally there is no need to perform any context switches. (Because of simplification the fact here is neglected that other system services have running threads as well.) So a task system within an application is an appropriate measure to reduce the number of context switches as long as all modules within it use the same instance of the task system. +Since the number of threads is constant, ideally there is no need to perform any context switches. (Because of simplification reasons a fact is here ignored that other system services have running threads as well so there are happening context switches in any case.) A task system within an application is an appropriate measure to reduce the number of context switches as long as all modules within it use the same instance of the task system. -For illustrational purpose and understanding better the implications within such a task system, its code is developed in the following. +For illustration purpose and a better understanding of the implications within such a task system, its code is developed in the following. The figure above shows that the task system consist out of a notification queue: -{% include code.md name='05-notification_queue-1' caption='Notification queue' %} +{% include code.md name='05-notification_queue-1' caption='Notification queue class' %} This notification queue is build out of a `deque` of `std::function` with a `mutex` and a `condition_variable`. It has a pop operation which is just going to pull one item off of the queue. And it has a push operation to push one item into the queue and notify anybody who might be waiting on the queue. -{% include code.md name='05-task_system-1' caption='Task system' %} +{% include code.md name='05-task_system-1' caption='Task system class' %} -The task system has a `_count` member which is set to the number of available cores. It has a vector of threads and the notification queue. The `run` function is the function that will be executed by the threads. Inside that function is an empty function object. As an item is available in the queue, it pops it from the queue and executes it and try to pick the next one. +The task system has a `_count` member which is set to the number of available cores. It has a vector of threads and the notification queue as additional members. The `run` function is the function that will be executed by the threads. Inside that function is an empty function object. As an item is available in the queue, it pops it from the queue and executes it and try to pick the next one. The constructor of the task system spins up as many threads as there are cores. Each thread is bound with a lambda against the `run` function. -When the task system gets destructed, it is necessary to join all threads. The function that is used by the outside is `async`. It just takes a function and pushes it into the queue. +When the task system gets destructed, it is necessary to join all threads. The function that is used by the external user is `async`. It just takes the given function and pushes it into the queue. This system is so far very primitive, e.g. it would hang on destruction. The latter is corrected by the following additions: -{% include code.md name='05-notification_queue-2' caption='Notification queue with done switch' %} +{% include code.md name='05-notification_queue-2' caption='Notification queue class with done switch' %} -So with the new `done` function the new member `_done` is set and the queue is notified about the change. In case the code is waiting in the pop function, it is woken up from the condition variable and it is checked if `_done` is set and then returned false. +So with the new `done` function the new member `_done` is set and the queue is notified about this change. In case the code is waiting in the pop function, it is woken up from the condition variable and it is checked if `_done` is set and then it returns false. -{% include code.md name='05-task_system-2' caption='Non-blocking task system on destruction' %} +{% include code.md name='05-task_system-2' caption='Non-blocking task system class on destruction' %} The task system notifies within the destructor all queues to ignore all potentially remaining entries which allows that the threads can be joined without delay. (With C++20 this could be enhanced with `jthread`s.) -This task system performs very badly compared to MacOS' Grand Central Dispatch (GCD). It just has a throughput of nnn%. Why does this system perform so badly even that this is the recommended design at several places? +This task system performs very badly e.g. compared to MacOS' Grand Central Dispatch (GCD). It just has a throughput of nnn%. Why does this system perform so badly even that this is the recommended design at several places? This design follows principle from above /*Figure 5.5: Exclusive access by different threads*/. It has a single queue and a bunch of threads. These are banging on that queue and so the threads are waiting often on the mutex. Unfortunately it is not possible to transform this model as it is described above because all that is there is a queue. So a different approach is needed. -{% include figure.md name='05-task_system_multiple_queues' caption='Task system with multiple notification queues' %} +{% include figure.md name='05-task_system_multiple_queues' caption='Task system class with multiple notification queues' %} A way to reduce the contention on this single queue is to change the task system it in a way that each thread has its own queue. {% include code.md name='05-task_system-3' caption='Task system with multiple queues' %} -we're just going to have a vector of notification queues. We get to reuse or same notification queue. okay one for each thread so now our run is going to take an index into into which q it's actually bound against when we join now we need to tell all the Q's they're done. next one and when we're going to do our push we're going to keep a little atomic index so we can be pushing from multiple threads and we're just going to keep incrementing it but then we're going to modulo it by our count and so we're just going to round-robin going through pushing into into it there okay and if you notice that's unsigned so wrapping around on that index is not a problem well-defined behavior on our overflow it's a modulo arithmetic +So the task system has now not a single notification queue, but one for each thread of the same type as before. +Each thread gets now the index for its queue during construction. All queues are informed within the destructor that they are done. An constantly by one increased atomic int modulo the numbers of threads is used within the `async` function to distribute equally the incoming tasks over the different queues. + + + + +we're going to keep a little atomic index so we can be pushing from multiple threads and we're just going to keep incrementing it but then we're going to modulo it by our count and so we're just going to round-robin going through pushing into into it there okay and if you notice that's unsigned so wrapping around on that index is not a problem well-defined behavior on our overflow it's a modulo arithmetic okay so how do you guys think we did on our speedometer twice as fast is it going to go half halfway up we're just going to go nobody so so I actually did profile all this code. I wrote this. All profiled it it's about ten times better. @@ -260,5 +261,8 @@ The primary advantage of a future over a simple callback is that a callback requ [^cow]: Copy-on-write implementation in stlab. [https://github.com/stlab/libraries/blob/develop/stlab/copy_on_write.hpp](https://github.com/stlab/libraries/blob/develop/stlab/copy_on_write.hpp) -[^butenhof]: - Recursive mutexes by David Butenhof [http://zaval.org/resources/library/butenhof1.html](Recursive mutexes by David Butenhof) \ No newline at end of file +[^access]: + Different operating systems have different strategies to which currently waiting thread they give the next access. This strategy might not be fair which means that some OS prefer to give the next lock to those who previously already had it. This causes that individual threads get the lock with a lower probability than others. + +[^Butenhof]: + Recursive mutexes by David Butenhof [http://zaval.org/resources/library/butenhof1.html](http://zaval.org/resources/library/butenhof1.html) \ No newline at end of file diff --git a/better-code/figures/05-amdahl_lin.svg b/better-code/figures/05-amdahl_lin.svg new file mode 100644 index 0000000..fec19fe --- /dev/null +++ b/better-code/figures/05-amdahl_lin.svg @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +Number of Processors +Speedup + +Parallel Portion + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +100% +95% +90% +75% +50% + diff --git a/better-code/figures/05-amdahl_log.svg b/better-code/figures/05-amdahl_log.svg new file mode 100644 index 0000000..2abc9fd --- /dev/null +++ b/better-code/figures/05-amdahl_log.svg @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2 +4 +6 +8 +10 +12 +14 +16 +18 +20 + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +2 +4 +8 +16 +32 +64 +128 +256 +512 +1024 +2048 +4096 +8192 +16384 +32768 +65536 +Number of Processors +Speedup + +Parallel Portion + + + + + + + + + + + + + + + + + + + + +95% +90% +75% +50% + From 5cf98f0c26d2222813ffa7f2f17aee5e381c4019 Mon Sep 17 00:00:00 2001 From: Felix Petriconi Date: Mon, 28 Dec 2020 13:51:32 +0100 Subject: [PATCH 07/17] Further improvements on Amdahl's graphs --- better-code/05-concurrency.md | 51 +++++++++++++---------------------- 1 file changed, 19 insertions(+), 32 deletions(-) diff --git a/better-code/05-concurrency.md b/better-code/05-concurrency.md index 58f311b..ca8f0ff 100644 --- a/better-code/05-concurrency.md +++ b/better-code/05-concurrency.md @@ -49,7 +49,7 @@ Where the speedup $$S$$ is defined by this equation. $$P$$ is hereby the amount Drawing the abscissa in logarithmic scale illustrates that there is only a speedup of 20 times, even when the system is running on 2048 or more cores and just 5% synchronization takes place. -{% include figure.md name='05-amdahl_log' caption="Amdahl's law logarithmic scale" size=75 %} +{% include figure.md name='05-amdahl_log' caption="Amdahl's law logarithmic scale" %} Since most desktop or mobile processors have less than 64 cores, it is better to take a look at the graph with linear scale. Each line below the diagonal represents 10% more of serialisation. So if the application just has 10% of serialisation and it is running on 16 cores then the speed-up is just a little better than factor of six. @@ -57,21 +57,17 @@ Since most desktop or mobile processors have less than 64 cores, it is better to So Amdahl's law has a huge impact. Serialization doesn't mean only locking on a mutex. Serialization can mean sharing the same memory or sharing the same address bus for the memory, if it is not a NUMA architecture. Sharing the same cache line or anything that is shared within the processor starts to bend that curve down and it bends down rapidly, even an atomic bends that curve down. -The following illustrates an often used model for implementing exclusive access to an object by multiple threads: +This is an often used model for implementing exclusive access to an object by multiple threads: {% include figure.md name='05-traditional_locking-1' caption="Different threads need access to single object" %} -As soon as the different threads do not only want to read the single object, but need write access as well, it is necessary to give just a single thread exclusive access. (Otherwise undefined behavior is the result.) All other threads have to wait for their turn to get read or access. - {% include figure.md name='05-traditional_locking-2' caption="Exclusive access with locking" %} -When the one threads does not need any more its exclusive access it gives its up. - {% include figure.md name='05-traditional_locking-3' caption="Exclusive access by different threads" %} -And the next thread can get the exclusive [^access]. +As long as one thread has exclusive access to the object all other threads have to wait until they get the access right. -This is a horrible way to think about threading. The goal has to be to minimize waiting at all costs. David [^Butenhof], one of the POSIX implementors, coined the phrase that mutex should be better named bottleneck, because of the property of slowing down an application. +This is a horrible way to think about threading. The goal has to be to minimize waiting at all costs. David Butenhof, one of the POSIX implementors, coined the phrase that mutex should be better named bottleneck, because of the property of slowing down an application[^butenhof]. In the following, let's take a look at a traditional piece of code: @@ -118,7 +114,7 @@ Since this is recognized as a successful idiom to solve performance problems of {% include code.md name='05-background_worker' caption='Simple background worker' %} -Over time the application gets enhanced with more modules and plugins. When now for each of these the same idea was applied then the complete application uses a huge number of threads. +Over time the application gets enhanced with more modules and plugins. When now for each of these the same idea was applied then the complete application uses a huge number threads. An over subscription of threads is then easily the case. That means that more threads are used than CPU cores are available. So the kernel of the operating system has to constantly switch the threads between the available cores to prevent starvation of single threads. Within such a switch - named context switch - the CPU registers, program counter and stack pointer of the old thread are saved and the ones from the new thread needs to be restored. This save and restore takes time that is lost for computational tasks of an application. Beside this the translation lookaside buffer (TLB) must be flushed and the page table of the next process is loaded. The flushing of the TLB causes that the memory access of the new thread is slower in the beginning. This causes an additional slow down. So the goal has to be that the number of context switches is as low as possible. @@ -127,49 +123,43 @@ One way to archive this goal is to use a task system. A task system uses a set o {% include figure.md name='05-simple_tasking_system' caption='Simple task system' %} -Since the number of threads is constant, ideally there is no need to perform any context switches. (Because of simplification reasons a fact is here ignored that other system services have running threads as well so there are happening context switches in any case.) A task system within an application is an appropriate measure to reduce the number of context switches as long as all modules within it use the same instance of the task system. +Since the number of threads is constant, ideally there is no need to perform any context switches. (Because of simplification the fact here is neglected that other system services have running threads as well.) So a task system within an application is an appropriate measure to reduce the number of context switches as long as all modules within it use the same instance of the task system. -For illustration purpose and a better understanding of the implications within such a task system, its code is developed in the following. +For illustrational purpose and understanding better the implications within such a task system, its code is developed in the following. The figure above shows that the task system consist out of a notification queue: -{% include code.md name='05-notification_queue-1' caption='Notification queue class' %} +{% include code.md name='05-notification_queue-1' caption='Notification queue' %} This notification queue is build out of a `deque` of `std::function` with a `mutex` and a `condition_variable`. It has a pop operation which is just going to pull one item off of the queue. And it has a push operation to push one item into the queue and notify anybody who might be waiting on the queue. -{% include code.md name='05-task_system-1' caption='Task system class' %} +{% include code.md name='05-task_system-1' caption='Task system' %} -The task system has a `_count` member which is set to the number of available cores. It has a vector of threads and the notification queue as additional members. The `run` function is the function that will be executed by the threads. Inside that function is an empty function object. As an item is available in the queue, it pops it from the queue and executes it and try to pick the next one. +The task system has a `_count` member which is set to the number of available cores. It has a vector of threads and the notification queue. The `run` function is the function that will be executed by the threads. Inside that function is an empty function object. As an item is available in the queue, it pops it from the queue and executes it and try to pick the next one. The constructor of the task system spins up as many threads as there are cores. Each thread is bound with a lambda against the `run` function. -When the task system gets destructed, it is necessary to join all threads. The function that is used by the external user is `async`. It just takes the given function and pushes it into the queue. +When the task system gets destructed, it is necessary to join all threads. The function that is used by the outside is `async`. It just takes a function and pushes it into the queue. This system is so far very primitive, e.g. it would hang on destruction. The latter is corrected by the following additions: -{% include code.md name='05-notification_queue-2' caption='Notification queue class with done switch' %} +{% include code.md name='05-notification_queue-2' caption='Notification queue with done switch' %} -So with the new `done` function the new member `_done` is set and the queue is notified about this change. In case the code is waiting in the pop function, it is woken up from the condition variable and it is checked if `_done` is set and then it returns false. +So with the new `done` function the new member `_done` is set and the queue is notified about the change. In case the code is waiting in the pop function, it is woken up from the condition variable and it is checked if `_done` is set and then returned false. -{% include code.md name='05-task_system-2' caption='Non-blocking task system class on destruction' %} +{% include code.md name='05-task_system-2' caption='Non-blocking task system on destruction' %} The task system notifies within the destructor all queues to ignore all potentially remaining entries which allows that the threads can be joined without delay. (With C++20 this could be enhanced with `jthread`s.) -This task system performs very badly e.g. compared to MacOS' Grand Central Dispatch (GCD). It just has a throughput of nnn%. Why does this system perform so badly even that this is the recommended design at several places? +This task system performs very badly compared to MacOS' Grand Central Dispatch (GCD). It just has a throughput of nnn%. Why does this system perform so badly even that this is the recommended design at several places? This design follows principle from above /*Figure 5.5: Exclusive access by different threads*/. It has a single queue and a bunch of threads. These are banging on that queue and so the threads are waiting often on the mutex. Unfortunately it is not possible to transform this model as it is described above because all that is there is a queue. So a different approach is needed. -{% include figure.md name='05-task_system_multiple_queues' caption='Task system class with multiple notification queues' %} +{% include figure.md name='05-task_system_multiple_queues' caption='Task system with multiple notification queues' %} A way to reduce the contention on this single queue is to change the task system it in a way that each thread has its own queue. {% include code.md name='05-task_system-3' caption='Task system with multiple queues' %} -So the task system has now not a single notification queue, but one for each thread of the same type as before. -Each thread gets now the index for its queue during construction. All queues are informed within the destructor that they are done. An constantly by one increased atomic int modulo the numbers of threads is used within the `async` function to distribute equally the incoming tasks over the different queues. - - - - -we're going to keep a little atomic index so we can be pushing from multiple threads and we're just going to keep incrementing it but then we're going to modulo it by our count and so we're just going to round-robin going through pushing into into it there okay and if you notice that's unsigned so wrapping around on that index is not a problem well-defined behavior on our overflow it's a modulo arithmetic +we're just going to have a vector of notification queues. We get to reuse or same notification queue. okay one for each thread so now our run is going to take an index into into which q it's actually bound against when we join now we need to tell all the Q's they're done. next one and when we're going to do our push we're going to keep a little atomic index so we can be pushing from multiple threads and we're just going to keep incrementing it but then we're going to modulo it by our count and so we're just going to round-robin going through pushing into into it there okay and if you notice that's unsigned so wrapping around on that index is not a problem well-defined behavior on our overflow it's a modulo arithmetic okay so how do you guys think we did on our speedometer twice as fast is it going to go half halfway up we're just going to go nobody so so I actually did profile all this code. I wrote this. All profiled it it's about ten times better. @@ -261,8 +251,5 @@ The primary advantage of a future over a simple callback is that a callback requ [^cow]: Copy-on-write implementation in stlab. [https://github.com/stlab/libraries/blob/develop/stlab/copy_on_write.hpp](https://github.com/stlab/libraries/blob/develop/stlab/copy_on_write.hpp) -[^access]: - Different operating systems have different strategies to which currently waiting thread they give the next access. This strategy might not be fair which means that some OS prefer to give the next lock to those who previously already had it. This causes that individual threads get the lock with a lower probability than others. - -[^Butenhof]: - Recursive mutexes by David Butenhof [http://zaval.org/resources/library/butenhof1.html](http://zaval.org/resources/library/butenhof1.html) \ No newline at end of file +[^butenhof]: + Recursive mutexes by David Butenhof [http://zaval.org/resources/library/butenhof1.html](Recursive mutexes by David Butenhof) \ No newline at end of file From 033520a43a495dadf6c21049f4b0a09eed5add1b Mon Sep 17 00:00:00 2001 From: Felix Petriconi Date: Tue, 29 Dec 2020 17:32:46 +0100 Subject: [PATCH 08/17] Let code and figures have different index Remove accidentally added files Give Amdahl's graphs dotted and dashed lines --- _includes/code.md | 16 +- better-code/05-concurrency.md.orig | 271 --------------------- better-code/code/05-bad_cow.cpp.orig | 26 -- better-code/code/05-correct_cow.cpp.orig | 26 -- better-code/code/05-registry-0.cpp.orig | 15 -- better-code/code/05-registry-1.cpp.orig | 20 -- better-code/code/05-registry-2.cpp.orig | 29 --- better-code/figures/05-amdahl_lin.svg | 297 ++++++++++++----------- better-code/figures/05-amdahl_log.svg | 271 ++++++++++----------- better-code/figures/05_amdahl_lin.svg | 168 ------------- better-code/figures/05_amdahl_log.svg | 169 ------------- better-code/figures/R/05_amdahl_lin.svg | 168 ------------- better-code/figures/R/05_amdahl_log.svg | 169 ------------- better-code/figures/R/amdahl_lin.R | 54 ++--- better-code/figures/R/amdahl_log.R | 57 +++-- 15 files changed, 340 insertions(+), 1416 deletions(-) delete mode 100644 better-code/05-concurrency.md.orig delete mode 100644 better-code/code/05-bad_cow.cpp.orig delete mode 100644 better-code/code/05-correct_cow.cpp.orig delete mode 100644 better-code/code/05-registry-0.cpp.orig delete mode 100644 better-code/code/05-registry-1.cpp.orig delete mode 100644 better-code/code/05-registry-2.cpp.orig delete mode 100644 better-code/figures/05_amdahl_lin.svg delete mode 100644 better-code/figures/05_amdahl_log.svg delete mode 100644 better-code/figures/R/05_amdahl_lin.svg delete mode 100644 better-code/figures/R/05_amdahl_log.svg diff --git a/_includes/code.md b/_includes/code.md index 471cd7f..e8e23b8 100644 --- a/_includes/code.md +++ b/_includes/code.md @@ -1,21 +1,21 @@ -{% assign figure-number = figure-number | default: 0 | plus: 1 %} -{% assign figure-index = figure-number | minus: 1 %} +{% assign code-number = code-number | default: 0 | plus: 1 %} +{% assign code-index = code-number | minus: 1 %} -{% assign -figure-ref = '[figure ' | append: page.chapter | append: '.' | append: figure-number +{% assign -code-ref = '[code ' | append: page.chapter | append: '.' | append: code-number | append: '](#' | append: include.name | append: ')' %} -{% if figure-reference %} - {% assign figure-reference = ((figure-reference | join: '$') | append: '$' - | append: -figure-ref) | split: '$' %} +{% if code-reference %} + {% assign code-reference = ((code-reference | join: '$') | append: '$' + | append: -code-ref) | split: '$' %} {% else %} - {% assign figure-reference = -figure-ref | split: '$' %} + {% assign code-reference = -code-ref | split: '$' %} {% endif %} ```cpp {% include_relative code/{{include.name}}.cpp %} ```

-Code {{page.chapter}}.{{figure-number}}: {{include.caption}} +Code {{page.chapter}}.{{code-number}}: {{include.caption}}

{: #{{include.name}} } diff --git a/better-code/05-concurrency.md.orig b/better-code/05-concurrency.md.orig deleted file mode 100644 index 76a6b9f..0000000 --- a/better-code/05-concurrency.md.orig +++ /dev/null @@ -1,271 +0,0 @@ ---- -title: Concurrency -tagline: No Raw Synchronization Primitives - -layout: book-page -tags: [ better-code ] ---- - -### Motivation - -{::comment} -For this section I need to first provide motivation for concurrency, and define concurrency and parallelism. which are not commonly understood. Do I need to provide a motivation section for each chapter? -{:/comment} - -_Concurrency_ is when multiple tasks start, run, and complete in overlapping time periods and should not be confused with _parallelism_ which is when multiple tasks execute simultaneously. Parallelism requires some form of hardware support, where as concurrency can be achieved strictly through software, such as a cooperative tasking system. - -There are two primary benefits for concurrent code. The first is performance by enabling parallelism. The second is to improve interactivity by not blocking the user while a prior action is being processed. - -As clock rates on systems have stagnated, hardware developers have turned to parallelism to increase performance. Figure [xxx] shows the performance distribution on a typical desktop system. A single threaded, non-vectorized, application can only utilize about 0.25% of the performance capabilities of the machine. - -### Definition of _raw synchronization primitives_. - -A _raw synchronization primitive_ is a low level construct used to synchronize access to data. Examples include locks and mutexes, condition variables, semaphores, atomic operations, and memory fences. - -{::comment} Discuss difference between data parallelism and task concurrency, so far this chapter is only dealing with tasking. However, it could be expanded upon. {:/comment} - -The goal of this chapter is to develop concurrent code without using raw synchronization primitives. - -The first problem with raw synchronization primitives are that they are exceedingly error prone to use because, by definition, they require reasoning about non-local effects. - -For example, [xxxx] is a snippet from a copy-on-write datatype, this is a simplified version of code from a shipping system. - -{::comment} -Insert bad cow example here. Can this example be simplified even more? Remove the template and make it a string? -{:/comment} - -The highlighted lines {::comment} how? {:/comment} contain a subtle race condition. The `if` statement is checking the value of an atomic count to see if it is `1`. The `else` statement handles the case where it is not 1. Within the else statement the count is decremented. The problem is that if decrementing the count results in a value of `0` then the object stored in `object_m` should be deleted. The code fails to check for this case, and so an object may be leaked. - -The initial test to see if the count was `1` isn't sufficient, between that check and when the count is decremented another thread may have released ownership and decremented the count leaving this object instance as the sole owner. - -The fix is to test atomically with the decrement, the correct code is shown in [xxxx]. - -Another problem with raw synchronization primitives is that their use can have a large negative impact on system performance. To understand why, we need to understand Amdahl's Law. - -<<<<<<< Updated upstream -The intuition behind Amdahl's Law is that if part of system takes time x to complete, - -{::comment} -Math experiment for Fibonacci matrix. -{:/comment} -$$ -\begin{align*} - \left[ \begin{array}{cc} - 1 & 1 \\ - 1 & 0 - \end{array} \right]^{n} = - \left[ \begin{array}{cc} - F_{n+1} & F_n \\ - F_n & F_{n-1} - \end{array} \right] -\end{align*} -$$ -======= -The intuition behind Amdahl's Law is that if a part of system takes time x to complete on a single core or processor, then it will encounter a speedup of y if it is run on y cores, but only if no synchronization takes places between the different cores or processors. -$$S(N) = \frac{1}{(1-P)+\frac{P}{N}}$$ -Where the speedup $$S$$ is defined by this equation. $$P$$ is hereby the amount of synchronization in the range of $$[0 .. 1]$$ and $$N$$ the number of cores or processors. - -Drawing the abscissa in logarithmic scale illustrates that there is only a speedup of 20 times, even when the system is running on 2048 or more cores and just 5% synchronization takes place. - -{::comment} Convert/Create new SVG image -{% include figure.md name='amdahl_log' caption="Amdahl's Law logarithmic scale" %} -{::/comment} - -![Amdahl's Law](figures/amdahl_log.png){:height="40%" width="40%"} -Amdahl's Law Logarithmic Scale - -Since most desktop or mobile processors have less than 64 cores, it is better to take a look at the graph with linear scale. Each line below the diagonal represents 10% more of serialisation. So if the application just has 10% of serialisation and it is running on 16 cores then the speed-up is just a little better than factor of six. - -{::comment} Convert/Create new SVG image -{% include figure.md name='amdahl_lin' caption="Amdahl's Law linear scale" %} -{::/comment} -![Amdahl's Law](figures/amdahl_lin.png){:height="40%" width="40%"} -Amdahl's Law Linear Scale - -So Amdahl's law has a huge impact. Serialization doesn't mean only locking on a mutex. Serialization can mean sharing the same memory or sharing the same address bus for the memory, if it is not a NUMA architecture. Sharing the same cache line or anything that is shared within the processor starts to bend that curve down and it bends down rapidly, even an atomic bends that curve down. - -An often used model for implementing exclusive access to an object by multiple threads is this: - -{% include figure.md name='05-traditional_locking' caption="Exclusive access by different threads" %} - -As long as one thread has exclusive access to the object all other threads have to wait until they get the access right. - -This is a horrible way to think about threading. The goal has to be to minimize waiting at all costs. David Butenhof, one of the POSIX implementors, coined the phrase that mutex should be better named bottleneck, because of the property of slowing down an application[^butenhof]. - -In the following, let's take a look at a traditional piece of code: - -{% include code.md name='05-registry-0' caption='Registry Example' %} - -It is a registry class with a shared `set` and `get` function. The access to the underlying unordered map is protected against concurrent access with a mutex. At the first glance it seems that only minimal work is done under the mutex. The unordered map is a fairly efficient data structure, it is a hash map. But the amount of time it takes to hash the key depends on the length of the string. So the work that is being done under the lock here is actually fairly unbounded. It depends completely on the lengths of the string. It may be probably typically small but it could be big. On top of the hash calculation comes a potentially allocation of a new bucket within the unordered map, which in most cases requires another lock within the memory manager. This lock can be, depending on the operating system, a global lock within the process. - -For a better understanding what shall be actually achieved by using the locks it is necessary to take step back. The C++ standard states here: _It can be shown that programs that correctly use mutexes and memory\_order\_seq\_cst operations to prevent all data races and use no other synchronization operations behave as if the operations executed by their constituent threads were simply interleaved, with each value computation of an object being taken from the last side effect on that object in that interleaving. This is normally referred to as ‘sequential consistency.’_, C++11 Standard 1.10.21. - -So why is this an important sentence? It means that one can always think about mutexes as if one has some set of interleaved operations. - -{% include figure.md name='05-sequential_operations' caption='Sequential Operations' %} - -* A mutex serializes a set of operations, $$Op_n$$, where the operation is the code executed while the mutex is locked -* Operations are interleaved and may be executed in any order and may be repeated -* Each operation takes an argument, $$x$$, which is the set of all objects mutated under all operations - * $$x$$ may not be safely read or written without holding the lock if it may be modified by a task holding the lock -* Each operation may yield a result, $$r_m$$, which can communicate information about the state of $$x$$ while it’s associated operation was executed -* The same is true of all atomic operations - -So there is not a lot of difference between an `std::atomic`. In fact there is a call on `std::atomic` that returns `true`, if it is lock free. This means the processor supports to do that as an atomic item within the processor or is there not processor support and the compiler has to generate a mutex pair to lock, make the change on the atomic operation, and do the unlock. So all that mutexes and locks are the way to construct atomic operations. - -That means that any piece of code that has a mutex can be transformed into a queued model. This idea applied to the registry example from above leads to this: - -{% include code.md name='05-registry-1' caption='registry with queue' %} - -Given that there is a serial queue `_q` with an `async` function which executes the passed item and it uses the same calling conventions as `std::async`. Hereby with the difference that it guarantees that the next item being processed in that queue doesn't start until the previous one is completed. Then one can rewrite the `set` string function to be executed with `_q.async`. -As well one can rewrite the `get` string operation. But here the difference is, that one needs the result back out, paired with that particular `get`. It is realized here with a future. (Futures will be covered later in more detail.) So the result of the `get` function, e.g. with a continuation, can be used whenever the `key` is hashed and and the lookup in the hash is completed. - -{% include code.md name='05-registry-2' caption='Enhanced Registry with Queue' %} - -Why is it important to understand this concept? Because at any place with a mutex in the code one can always make this transformation. One can always transform it into a serialized queue model. And this means that within the serialized queue model anytime somebody can come along and calls `set`, regardless of the amount of work that `set` takes, the time it takes for `set` to return back to the caller itself constant. This means as well that one can add something like an arbitrary `set`, e.g a whole vector of key value pairs. And to the caller this `set` will take just as much time as the previous `set`. It's a non blocking operation with an upper bound of overhead. - -### Definition of _raw threads_ - -A _thread_ is a execution environment consisting of a stack and processor state running in parallel to other threads. -A _task_ is a unit of work, often a function, to be executed on a thread. - -### Problems of _raw threads_ - -Another common scenario is that increased work within an application is outsourced to a spawned background thread with the intent that the available CPU cores are better utililized. - -{% include figure.md name='05-background_thread' caption='Background Thread executing Tasks' %} - -Since this is recognized as a successful idiom to solve performance problems of an application, it becomes easily the default way to solve such issues. - -{% include code.md name='05-background_worker' caption='Simplified Background Worker' %} - -Over time the application gets enhanced with more modules and plugins. When now for each of these the same idea was applied then the complete application uses a huge number threads. -An over subscription of threads is then easily the case. That means that more threads are used than CPU cores are available. So the kernel of the operating system has to constantly switch the threads between the available cores to prevent starvation of single threads. -Within such a switch - named context switch - the CPU registers, program counter and stack pointer of the old thread are saved and the ones from the new thread needs to be restored. This save and restore takes time that is lost for computational tasks of an application. Beside this the translation lookaside buffer (TLB) must be flushed and the page table of the next process is loaded. The flushing of the TLB causes that the memory access of the new thread is slower in the beginning. This causes an additional slow down. -So the goal has to be that the number of context switches is as low as possible. - -One way to archive this goal is to use a task system. A task system uses a set of threads, normally equal to the number of CPU cores and distributes the submitted tasks over the available threads. In case that more tasks are submitted than free threads are available then they are put into a queue and whenever one is done the next task is taken from the queue and executed. - -{% include figure.md name='05-simple_tasking_system' caption='Simple Tasking System' %} - -Since the number of threads is constant, ideally there is no need to perform any context switches. (Because of simplification the fact here is neglected that other system services have running threads as well.) So a task system within an application is an appropriate measure to reduce the number of context switches as long as all modules within it use the same instance of the task system. - -For illustrational purpose and understanding better the implications within such a task system, its code is developed in the following. - -The figure above shows that the task system consist out of a notification queue: - -{% include code.md name='05-notification_queue-1' caption='Notification Queue' %} - -This notification queue is build out of a `deque` of `std::function` with a `mutex` and a `condition_variable`. It has a pop operation which is just going to pull one item off of the queue. And it has a push operation to push one item into the queue and notify anybody who might be waiting on the queue. - -{% include code.md name='05-task_system-1' caption='Task System' %} - -The task system has a `count` member which contains the number of available cores. It has a vector of threads and the notification queue. The `run` function is the function that will be executed by the threads. In which it creates an empty function object and pops the function from the queue and executes it. -The constructor of the task system spins up one thread and binds it with a lambda against our run function. -When the task system gets destructed, it is necessasry to join all threads. The function that is used by the outside is `async`. It just takes a function and pushs it into the queue. -This system is so far very primitive. As well it would hang on destruction. The latter is corrected by the following additions: - -{% include code.md name='05-notification_queue-2' caption='Notification Queue With Termination Switch' %} - -{% include code.md name='05-task_system-2' caption='Non-blocking Task System on Destruction' %} - -So with the new `done` function the new member `_done` is set and the queue is notified about the change. In case the code is waiting in the pop function, it is woken up from the condition variable and it is checked if `_done` is set and then returned false. - -so how do you guys think this performs I already told you right right badly kind of barely get off the mark horrible why is this horrible makes a good example right it's easy to write nothing fundamentally wrong about it it's exactly this model right we've got a single Q and we've got a bunch of threads and they're banging on that Q okay and we've got locks understanding that I can transform those locks into a queue model doesn't help me because all I have is a Q it locks around it okay so I need to come up with a better way. - -{% include figure.md name='05-task_system_multiple_queues' caption='Task System with Multiple Notification Queues' %} - -{% include code.md name='05-notification_queue-3' caption='Notification Queue With Termination Switch' %} - -{% include code.md name='05-task_system-3' caption='Non-blocking Task System on Destruction' %} - -{% include figure.md name='05-task_system_task_stealing' caption='Task System with Task Stealing' %} - -okay so that's X so here is the common answer I put a Q on each thread that minimizes my contention okay so let's write that we can do this pretty quickly we're just going to have a vector of notification Q's we get to reuse or same notification q okay one for each thread so now our run is going to take an index into into which q it's actually bound against when we join now we need to tell all the Q's they're done next one and when we're going to do our push we're going to keep a little atomic index so we can be pushing from multiple threads and we're just going to keep incrementing it but then we're going to modulo it by our count and so we're just going to round-robin going through -pushing into into it there okay and if you notice that's unsigned so wrapping -around on that index is not a problem well-defined behavior on our overflow -it's a modulo arithmetic okay so how do you guys think we did on our speedometer twice as fast is it going to go half halfway up we're just going to go nobody so so I actually did profile all this code I wrote this all profiled it it's about ten times better okay barely get this movie okay so and we have two problems here one is is I can get a long-running task in one of my Q's and it can cause a bubble and I can have my other course sitting there idle okay so the other is is even in a fully loaded system I can end up with a fair amount of contention right where one of those mutexes blocks and that's you know upwards of a million cycles to do a full task switch right in overhead so having keeping one of those mutexes and actually having it locked kills performance okay so here's the next solution right called task stealing okay now there are lots of sophisticated algorithms that are heavily tuned for -doing task stealing but we're just going to code it very simply here and the idea with task stealing is is if your queue you being a thread is busy because -somebody's pushing in the other end okay ah or it's empty either you don't really care see if you can go pull something out to somebody else's queue -okay so let's do that so and we're going to take our pop and we're going to have tri pop here okay so our tri pop is going to take a tri lock on our mutex -okay so it's going to try to lock will either get the lock or not if we don't -get the lock we just return false okay or if the queue is empty we return false -by the way so we'll do that we're going to do the same thing on our push just for good measure okay so if I'm trying to push something into a queue and that queue is busy I shouldn't wait on it okay cause hold a mutex cause a whole process or cast square to even do a spin lock okay what I'm going to do is if it's busy I'm just going to return false okay couldn't push it okay so now our -caste system our constructor and destructor stay the same okay but when we do the run now what we're going to do is we're going to do try pop and we'll just run once round all the queues okay and then if we don't get anything once around then we'll just wait where we were okay now on the push side we'll spin around and it turns out on the push if all the cues are busy right right you have to push okay so so what are you going to do well you could just sit and wait on one cue but there's no guarantee that that's the first cue that frees up okay so it's actually better on the push to spin a little more okay so I've got a que there right right and there's a trade-off there you're you're improving overall throughput of the system versus sacrificing a single core to burn it in the spin loop so whether or not it's a win in your system depends on what the load is on your system okay whether or not you have that core to burn so but you can tune it quite a bit so now how do you think we did -okay so way better okay so we got way up into there now at this point we're about a hundred times better than when we started from Oracle's example code so -this is a pretty huge improvement okay now what I was benchmarking these at was -Apple's Grand Central Dispatch that's my one point oh right that's my mindful thing apples Grand Central Dispatch is a very nice piece of work if you actually go and read the code and it even has hooked into Lib colonel and the reason why it has looks into Lib colonel is because it understands when one task is blocked and how to go just ignore that task and go take care of other -things so you cannot match it with the primitives that you have in standard C++ -okay but we actually came within about 15% okay of it with some straightforward -code so that's pretty good - - - - - - - - - - - - - - - - - - - - - - - - -But as soon as each application on a system uses its own thread pool there is again the problem of over subscription. - -So the only solution to reduce the amount of context switches is that all application within a system use the same thread pool. Since an optimized thread pool needs knowledge about the locking state of a possible task within the thread pool to potentially spawn new threads to avoid dead locks this must be an operating system facility. MacOS and Windows provide here out of the box a thread pool through a low level API. - - - -### Problems of call backs -* Contra: Hard dto reason about the flow in the code -* Contra: Callback must be set beforehand, futures can be attached later -* Pro: Can be faster than futures because no overhead of shared state counter - - -#### Futures as abstraction - -Futures -Conceptually, a future is a way to separate the result of a function from the execution of the function. The task (the function packaged so it returns void) can be executed in a different context (the execution context is controlled by executors in some of the proposals) and the result will become available via the future. - -A future also serves as a handle to the associated task, and may provide some operation to control the task. - -The primary advantage of a future over a simple callback is that a callback requires you to provide the subsequent operation in advance. Where a future allows you to provide a continuation, via a then() member function, at some later point. This feature makes futures easier to compose, easier to integrate into an existing system, and more powerful as they can be stored and the continuation can be attached as the result of another action, later. However, this flexibility comes with inherent cost, it requires an atomic test when the continuation is attached to determine if the value is already available. Because of this cost, for many library operations it makes sense to provide a form taking a callback as well as one returning a future. Although at first glance it may appear that a callback from is easily adapted to a future form, that is not the case for reasons discussed below. - -#### Channels (or actors) as abstraction - - - - -### Motivation - -1st example export from ui with compression and possibility to cancel -2nd example export group of images with compression and possibility to cancel - -### Develop Solution - -1st solution Use futures -2nd solution Use channels - -### Conclusion - -[^cow_definition]: - Copy-on-write [https://en.wikipedia.org/wiki/Copy-on-write](https://en.wikipedia.org/wiki/Copy-on-write) - -[^cow]: - Copy-on-write implementation in stlab. [https://github.com/stlab/libraries/blob/develop/stlab/copy_on_write.hpp](https://github.com/stlab/libraries/blob/develop/stlab/copy_on_write.hpp) - -[^butenhof]: - Recursive mutexes by David Butenhof [http://zaval.org/resources/library/butenhof1.html](Recursive mutexes by David Butenhof) ->>>>>>> Stashed changes diff --git a/better-code/code/05-bad_cow.cpp.orig b/better-code/code/05-bad_cow.cpp.orig deleted file mode 100644 index 075eacd..0000000 --- a/better-code/code/05-bad_cow.cpp.orig +++ /dev/null @@ -1,26 +0,0 @@ -template -class bad_cow -{ - struct object_t - { - explicit object_t(const T& x) : _data(x) {} - atomic _count{1}; - T _data; - }; - object_t* _object; - - public: - explicit bad_cow(const T& x) : _object(new object_t(x)) { } - ~bad_cow() { if (0 == --_object->_count) delete _object; } - bad_cow(const bad_cow& x) : _object(x._object) { ++_object->_count; } - - bad_cow& operator=(const T& x) { - if (_object->_count == 1) _object->_data = x; - else { - object_t* tmp = new object_t(x); - --_object->_count; - _object = tmp; - } - return *this; - } -}; diff --git a/better-code/code/05-correct_cow.cpp.orig b/better-code/code/05-correct_cow.cpp.orig deleted file mode 100644 index 9e8878d..0000000 --- a/better-code/code/05-correct_cow.cpp.orig +++ /dev/null @@ -1,26 +0,0 @@ -template -class correct_cow -{ - struct object_t - { - explicit object_t(const T& x) : _data(x) {} - atomic _count{1}; - T _data; - }; - object_t* _object; - - public: - explicit correct_cow(const T& x) : _object(new object_t(x)) { } - ~correct_cow() { if (0 == --_object->_count) delete _object; } - correct_cow(const correct_cow& x) : _object(x._object) { ++_object->_count; } - - correct_cow& operator=(const T& x) { - if (_object->_count == 1) _object->_data = x; - else { - object_t* tmp = new object_t(x); - if (0 == --_object->_count) delete _object; - _object = tmp; - } - return *this; - } -}; diff --git a/better-code/code/05-registry-0.cpp.orig b/better-code/code/05-registry-0.cpp.orig deleted file mode 100644 index 053a1a3..0000000 --- a/better-code/code/05-registry-0.cpp.orig +++ /dev/null @@ -1,15 +0,0 @@ -class registry -{ - mutex _mutex; - unordered_map _map; - public: - void set(string key, string value) { - unique_lock lock{mutex}; - _map.emplace(move(key), move(value)); - } - - auto get(const string& key) -> string { - unique_lock lock{mutex}; - return _map.at(key); - } -}; diff --git a/better-code/code/05-registry-1.cpp.orig b/better-code/code/05-registry-1.cpp.orig deleted file mode 100644 index 4fb299d..0000000 --- a/better-code/code/05-registry-1.cpp.orig +++ /dev/null @@ -1,20 +0,0 @@ -class registry -{ - serial_queue _q; - - using map_t = unordered_map; - - shared_ptr _map = make_shared(); -public: - void set(string key, string value) { - _q.async([_map = _map](string key, string value) { - _map->emplace(move(key), move(value)); - }, move(key), move(value)); - } - - auto get(string key) -> future { - return _q.async([_map = _map](string key) { - return _map->at(key); - }, move(key)); - } -}; diff --git a/better-code/code/05-registry-2.cpp.orig b/better-code/code/05-registry-2.cpp.orig deleted file mode 100644 index 491c834..0000000 --- a/better-code/code/05-registry-2.cpp.orig +++ /dev/null @@ -1,29 +0,0 @@ -class registry -{ - serial_queue _q; - - using map_t = unordered_map; - - shared_ptr _map = make_shared(); -public: - void set(string key, string value) { - _q.async([_map = _map](string key, string value) { - _map->emplace(move(key), move(value)); - }, move(key), move(value)); - } - - void set(vector> sequence) { - _q.async([_map = _map](vector> sequence) { - _map->insert( - make_move_iterator(begin(sequence)), - make_move_iterator(end(sequence)) - ); - }, move(sequence)); - } - - auto get(string key) -> future { - return _q.async([_map = _map](string key) { - return _map->at(key); - }, move(key)); - } -}; diff --git a/better-code/figures/05-amdahl_lin.svg b/better-code/figures/05-amdahl_lin.svg index fec19fe..3f75b9b 100644 --- a/better-code/figures/05-amdahl_lin.svg +++ b/better-code/figures/05-amdahl_lin.svg @@ -1,5 +1,5 @@ - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -Number of Processors -Speedup - -Parallel Portion - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -100% -95% -90% -75% -50% + +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +Number of Processors +Speedup + +Percentage of +synchronization + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0% +10% +20% +30% +40% diff --git a/better-code/figures/05-amdahl_log.svg b/better-code/figures/05-amdahl_log.svg index 2abc9fd..13e4ccb 100644 --- a/better-code/figures/05-amdahl_log.svg +++ b/better-code/figures/05-amdahl_log.svg @@ -1,5 +1,5 @@ - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + -2 -4 -6 -8 -10 -12 -14 -16 -18 -20 - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -2 -4 -8 -16 -32 -64 -128 -256 -512 -1024 -2048 -4096 -8192 -16384 -32768 -65536 -Number of Processors -Speedup - -Parallel Portion - - - - - - - - - - - - - - - - - - - - -95% -90% -75% -50% + +2 +4 +6 +8 +10 +12 +14 +16 +18 +20 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +2 +4 +8 +16 +32 +64 +128 +256 +512 +1024 +2048 +4096 +8192 +16384 +32768 +65536 +Number of Processors +Speedup + +Percentage of +synchronization + + + + + + + + + + + + + + + + + + + + +5% +10% +25% +50% diff --git a/better-code/figures/05_amdahl_lin.svg b/better-code/figures/05_amdahl_lin.svg deleted file mode 100644 index fec19fe..0000000 --- a/better-code/figures/05_amdahl_lin.svg +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -Number of Processors -Speedup - -Parallel Portion - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -100% -95% -90% -75% -50% - diff --git a/better-code/figures/05_amdahl_log.svg b/better-code/figures/05_amdahl_log.svg deleted file mode 100644 index 2abc9fd..0000000 --- a/better-code/figures/05_amdahl_log.svg +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -2 -4 -6 -8 -10 -12 -14 -16 -18 -20 - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -2 -4 -8 -16 -32 -64 -128 -256 -512 -1024 -2048 -4096 -8192 -16384 -32768 -65536 -Number of Processors -Speedup - -Parallel Portion - - - - - - - - - - - - - - - - - - - - -95% -90% -75% -50% - diff --git a/better-code/figures/R/05_amdahl_lin.svg b/better-code/figures/R/05_amdahl_lin.svg deleted file mode 100644 index fec19fe..0000000 --- a/better-code/figures/R/05_amdahl_lin.svg +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -Number of Processors -Speedup - -Parallel Portion - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -100% -95% -90% -75% -50% - diff --git a/better-code/figures/R/05_amdahl_log.svg b/better-code/figures/R/05_amdahl_log.svg deleted file mode 100644 index 2abc9fd..0000000 --- a/better-code/figures/R/05_amdahl_log.svg +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -2 -4 -6 -8 -10 -12 -14 -16 -18 -20 - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -2 -4 -8 -16 -32 -64 -128 -256 -512 -1024 -2048 -4096 -8192 -16384 -32768 -65536 -Number of Processors -Speedup - -Parallel Portion - - - - - - - - - - - - - - - - - - - - -95% -90% -75% -50% - diff --git a/better-code/figures/R/amdahl_lin.R b/better-code/figures/R/amdahl_lin.R index 6ed5d22..d488bca 100644 --- a/better-code/figures/R/amdahl_lin.R +++ b/better-code/figures/R/amdahl_lin.R @@ -1,44 +1,44 @@ library(ggplot2) library(scales) -amdahlFun95 <- function(x) { - 1.0 / ((1.0 - 0.95) + 0.95 / x) -} -amdahlFun90 <- function(x) { - 1.0 / ((1.0 - 0.9) + 0.9 / x) -} -amdahlFun75 <- function(x) { - 1.0 / ((1.0 - 0.75) + 0.75 / x) -} -amdahlFun50 <- function(x) { - 1.0 / ((1.0 - 0.50) + 0.50 / x) -} +amdahl <- function(x, p) {1.0 / ((1.0 - p) + p / x)} -optimalFun <- function(x) { - x -} +amdahlFun10 <- function(x) amdahl(x, 0.90) +amdahlFun20 <- function(x) amdahl(x, 0.80) +amdahlFun30 <- function(x) amdahl(x, 0.70) +amdahlFun40 <- function(x) amdahl(x, 0.60) +optimalFun <- function(x) x + +LegendTitle = "Percentage of\nsynchronization" p1 <- ggplot(data.frame(x = c(1, 16)), aes(x=x)) + - stat_function(fun = optimalFun, aes(colour = "100%")) + - stat_function(fun = amdahlFun95, aes(colour = "95%")) + - stat_function(fun = amdahlFun90, aes(colour = "90%")) + - stat_function(fun = amdahlFun75, aes(colour = "75%")) + - stat_function(fun = amdahlFun50, aes(colour = "50%")) + + stat_function(fun = optimalFun, aes(colour = "amdahlFun00", linetype="amdahlFun00")) + + stat_function(fun = amdahlFun10, aes(colour = "amdahlFun10", linetype="amdahlFun10")) + + stat_function(fun = amdahlFun20, aes(colour = "amdahlFun20", linetype="amdahlFun20")) + + stat_function(fun = amdahlFun30, aes(colour = "amdahlFun30", linetype="amdahlFun30")) + + stat_function(fun = amdahlFun40, aes(colour = "amdahlFun40", linetype="amdahlFun40")) + scale_x_continuous(name = "Number of Processors", breaks = seq(1, 16, 1), limits=c(1, 16)) + scale_y_continuous(name = "Speedup", breaks = seq(1, 16, 1)) + - scale_colour_manual("Parallel Portion", - limits=c("100%", "95%", "90%", "75%", "50%"), - values = c("100%" = "green", "95%" = "red", "90%" = "orange", "75%" = "deeppink", "50%" = "blue")) + + scale_colour_manual(LegendTitle, + labels = c("0%", "10%", "20%", "30%", "40%"), + values = c("amdahlFun00" = "green", "amdahlFun10" = "red", "amdahlFun20" = "orange", "amdahlFun30" = "deeppink", "amdahlFun40" = "blue")) + + scale_linetype_manual(LegendTitle, + values = c("amdahlFun00" = "solid", "amdahlFun10" = "dashed", "amdahlFun20" = "longdash", "amdahlFun30" = "dotted", "amdahlFun40" = "dotdash"), + labels = c("0%", "10%", "20%", "30%", "40%")) + theme_bw() + theme(axis.line = element_line(size=1, colour = "black"), panel.grid.major = element_line(colour = "#d3d3d3"), panel.grid.minor = element_blank(), panel.border = element_blank(), panel.background = element_blank(), - plot.title = element_text(size = 14, family = "Arial", face = "bold"), text=element_text(family="Arial"), - axis.text.x=element_text(colour="black", size = 9), - axis.text.y=element_text(colour="black", size = 9)) + legend.title=element_text(size = 10, family = "Arial"), + legend.text = element_text(size = 10), + legend.position = c(0.25, 0.8), + axis.text.x=element_text(colour="black", size = 8), + axis.text.y=element_text(colour="black", size = 8), + axis.title.x=element_text(colour="black", size = 12), + axis.title.y=element_text(colour="black", size = 12)) -ggsave(file="05_amdahl_lin.svg", plot=p1, width=10, height=10) +ggsave(file="../05-amdahl_lin.svg", plot=p1, width=8, height=8) diff --git a/better-code/figures/R/amdahl_log.R b/better-code/figures/R/amdahl_log.R index 9d3ac64..0ad6ab9 100644 --- a/better-code/figures/R/amdahl_log.R +++ b/better-code/figures/R/amdahl_log.R @@ -1,32 +1,43 @@ library(ggplot2) library(scales) -amdahlFun95 <- function(x) { - 1.0 / ((1.0 - 0.95) + 0.95 / x) -} -amdahlFun90 <- function(x) { - 1.0 / ((1.0 - 0.9) + 0.9 / x) -} -amdahlFun75 <- function(x) { - 1.0 / ((1.0 - 0.75) + 0.75 / x) -} -amdahlFun50 <- function(x) { - 1.0 / ((1.0 - 0.50) + 0.50 / x) -} +amdahl <- function(x, p) {1.0 / ((1.0 - p) + p / x)} -p1 <- ggplot(data.frame(x = c(1, 65536)), aes(x=x)) + - stat_function(fun = amdahlFun95, aes(colour = "95%")) + - stat_function(fun = amdahlFun90, aes(colour = "90%")) + - stat_function(fun = amdahlFun75, aes(colour = "75%")) + - stat_function(fun = amdahlFun50, aes(colour = "50%")) + +amdahlFun05 <- function(x) amdahl(x, 0.95) +amdahlFun10 <- function(x) amdahl(x, 0.90) +amdahlFun25 <- function(x) amdahl(x, 0.75) +amdahlFun50 <- function(x) amdahl(x, 0.50) + +LegendTitle = "Percentage of\nsynchronization" + +p1 <- ggplot(data = data.frame(x = c(1, 65536)), mapping = aes(x=x)) + + stat_function(fun = amdahlFun05, mapping = aes(colour = "amdahlFun05", linetype = "amdahlFun05")) + + stat_function(fun = amdahlFun10, mapping = aes(colour = "amdahlFun10", linetype = "amdahlFun10")) + + stat_function(fun = amdahlFun25, mapping = aes(colour = "amdahlFun25", linetype = "amdahlFun25")) + + stat_function(fun = amdahlFun50, mapping = aes(colour = "amdahlFun50", linetype = "amdahlFun50")) + scale_x_continuous(trans = 'log2', name = "Number of Processors", limits=c(1, 65536), breaks = trans_breaks("log2", n = 16, function(x) 2^x), labels = trans_format("log2", function(x) 2^x)) + scale_y_continuous(name = "Speedup", breaks = seq(0, 21, 2), limits=c(1, 20)) + - scale_colour_manual("Parallel Portion", - limits=c("95%", "90%", "75%", "50%"), - values = c("95%" = "red", "90%" = "orange", "75%" = "deeppink", "50%" = "blue")) + - theme_bw() - - ggsave(file="05_amdahl_log.svg", plot=p1, width=12, height=10) + scale_colour_manual(LegendTitle, + values = c("amdahlFun05" = "red", "amdahlFun10" = "orange", "amdahlFun25" = "deeppink", "amdahlFun50" = "blue"), + labels = c("5%", "10%", "25%", "50%")) + + scale_linetype_manual(LegendTitle, + values = c("amdahlFun05" = "solid", "amdahlFun10" = "dashed", "amdahlFun25" = "longdash", "amdahlFun50" = "dotted"), + labels = c("5%", "10%", "25%", "50%")) + + theme_bw() + + theme(axis.line = element_line(size=1, colour = "black"), + panel.grid.major = element_line(colour = "#d3d3d3"), + panel.grid.minor = element_blank(), + panel.border = element_blank(), panel.background = element_blank(), + text=element_text(family="Arial"), + legend.title=element_text(size = 10, family = "Arial"), + legend.text = element_text(size = 10), + legend.position = c(0.25, 0.8), + axis.text.x=element_text(colour="black", size = 8), + axis.text.y=element_text(colour="black", size = 8), + axis.title.x=element_text(colour="black", size = 12), + axis.title.y=element_text(colour="black", size = 12)) + + ggsave(file="../05-amdahl_log.svg", plot=p1, width=8, height=6) From aef590bc2707127b7cf6b9b92a71d79f07cc78fd Mon Sep 17 00:00:00 2001 From: Felix Petriconi Date: Fri, 1 Jan 2021 12:56:25 +0100 Subject: [PATCH 09/17] About to finalize the task system development --- better-code/05-concurrency.md | 87 ++++++++------------ better-code/code/05-notification_queue-3.cpp | 26 ------ better-code/code/05-task_system-3.cpp | 4 +- better-code/code/05-task_system-4.cpp | 23 ++++-- 4 files changed, 51 insertions(+), 89 deletions(-) diff --git a/better-code/05-concurrency.md b/better-code/05-concurrency.md index ca8f0ff..8fda210 100644 --- a/better-code/05-concurrency.md +++ b/better-code/05-concurrency.md @@ -57,17 +57,21 @@ Since most desktop or mobile processors have less than 64 cores, it is better to So Amdahl's law has a huge impact. Serialization doesn't mean only locking on a mutex. Serialization can mean sharing the same memory or sharing the same address bus for the memory, if it is not a NUMA architecture. Sharing the same cache line or anything that is shared within the processor starts to bend that curve down and it bends down rapidly, even an atomic bends that curve down. -This is an often used model for implementing exclusive access to an object by multiple threads: +The following illustrates an often used model for implementing exclusive access to an object by multiple threads: {% include figure.md name='05-traditional_locking-1' caption="Different threads need access to single object" %} +As soon as the different threads do not only want to read the single object, but need write access as well, it is necessary to give just a single thread exclusive access. (Otherwise undefined behavior is the result.) All other threads have to wait for their turn to get read or access. + {% include figure.md name='05-traditional_locking-2' caption="Exclusive access with locking" %} +When the one threads does not need any more its exclusive access it gives its up. + {% include figure.md name='05-traditional_locking-3' caption="Exclusive access by different threads" %} -As long as one thread has exclusive access to the object all other threads have to wait until they get the access right. +And the next thread can get the exclusive [^access]. -This is a horrible way to think about threading. The goal has to be to minimize waiting at all costs. David Butenhof, one of the POSIX implementors, coined the phrase that mutex should be better named bottleneck, because of the property of slowing down an application[^butenhof]. +This is a horrible way to think about threading. The goal has to be to minimize waiting at all costs. David [^Butenhof], one of the POSIX implementors, coined the phrase that mutex should be better named bottleneck, because of the property of slowing down an application. In the following, let's take a look at a traditional piece of code: @@ -114,7 +118,7 @@ Since this is recognized as a successful idiom to solve performance problems of {% include code.md name='05-background_worker' caption='Simple background worker' %} -Over time the application gets enhanced with more modules and plugins. When now for each of these the same idea was applied then the complete application uses a huge number threads. +Over time the application gets enhanced with more modules and plugins. When now for each of these the same idea was applied then the complete application uses a huge number of threads. An over subscription of threads is then easily the case. That means that more threads are used than CPU cores are available. So the kernel of the operating system has to constantly switch the threads between the available cores to prevent starvation of single threads. Within such a switch - named context switch - the CPU registers, program counter and stack pointer of the old thread are saved and the ones from the new thread needs to be restored. This save and restore takes time that is lost for computational tasks of an application. Beside this the translation lookaside buffer (TLB) must be flushed and the page table of the next process is loaded. The flushing of the TLB causes that the memory access of the new thread is slower in the beginning. This causes an additional slow down. So the goal has to be that the number of context switches is as low as possible. @@ -123,33 +127,33 @@ One way to archive this goal is to use a task system. A task system uses a set o {% include figure.md name='05-simple_tasking_system' caption='Simple task system' %} -Since the number of threads is constant, ideally there is no need to perform any context switches. (Because of simplification the fact here is neglected that other system services have running threads as well.) So a task system within an application is an appropriate measure to reduce the number of context switches as long as all modules within it use the same instance of the task system. +Since the number of threads is constant, ideally there is no need to perform any context switches. (Because of simplification reasons a fact is here ignored that other system services have running threads as well so there are happening context switches in any case.) A task system within an application is an appropriate measure to reduce the number of context switches as long as all modules within it use the same instance of the task system. -For illustrational purpose and understanding better the implications within such a task system, its code is developed in the following. +For illustration purpose and a better understanding of the implications within such a task system, its code is developed in the following. -The figure above shows that the task system consist out of a notification queue: +The [figure](#05-simple_tasking_system) above shows that the task system consist out of a notification queue: -{% include code.md name='05-notification_queue-1' caption='Notification queue' %} +{% include code.md name='05-notification_queue-1' caption='Notification queue class' %} -This notification queue is build out of a `deque` of `std::function` with a `mutex` and a `condition_variable`. It has a pop operation which is just going to pull one item off of the queue. And it has a push operation to push one item into the queue and notify anybody who might be waiting on the queue. +This notification queue consists of a `deque` of `std::function` with a `mutex` and a `condition_variable`. It has a `pop()` operation which is just going to pull one item off of the queue. And it has a `push()` operation to push one item into the queue and notify anybody who might be waiting on the queue. -{% include code.md name='05-task_system-1' caption='Task system' %} +{% include code.md name='05-task_system-1' caption='Task system class' %} -The task system has a `_count` member which is set to the number of available cores. It has a vector of threads and the notification queue. The `run` function is the function that will be executed by the threads. Inside that function is an empty function object. As an item is available in the queue, it pops it from the queue and executes it and try to pick the next one. -The constructor of the task system spins up as many threads as there are cores. Each thread is bound with a lambda against the `run` function. -When the task system gets destructed, it is necessary to join all threads. The function that is used by the outside is `async`. It just takes a function and pushes it into the queue. +The task system has a `_count` member which is set to the number of available cores. The system has a vector of threads and the notification queue. The `run()` function is the function that will be executed by the threads. Inside that function is an empty function object. As soon as an item is available in the queue, it pops it from the queue and executes it and tries to pick the next one. +The constructor of the task system spins up as many threads as there are cores. Each thread is bound with a lambda against the `run()` function. +When the task system gets destructed, it is necessary to join all threads. The function that is used by the outside is `async`. It takes the function object and pushes it into the queue. This system is so far very primitive, e.g. it would hang on destruction. The latter is corrected by the following additions: {% include code.md name='05-notification_queue-2' caption='Notification queue with done switch' %} -So with the new `done` function the new member `_done` is set and the queue is notified about the change. In case the code is waiting in the pop function, it is woken up from the condition variable and it is checked if `_done` is set and then returned false. +So with the new `done()` function the new member `_done` is set and the queue is notified about the change. In case the code is waiting in the `pop()` function, it is woken up from the condition variable and it is checked if `_done` is set and then returns `false`. {% include code.md name='05-task_system-2' caption='Non-blocking task system on destruction' %} The task system notifies within the destructor all queues to ignore all potentially remaining entries which allows that the threads can be joined without delay. (With C++20 this could be enhanced with `jthread`s.) -This task system performs very badly compared to MacOS' Grand Central Dispatch (GCD). It just has a throughput of nnn%. Why does this system perform so badly even that this is the recommended design at several places? -This design follows principle from above /*Figure 5.5: Exclusive access by different threads*/. It has a single queue and a bunch of threads. These are banging on that queue and so the threads are waiting often on the mutex. +This task system performs very badly compared to MacOS' Grand Central Dispatch (GCD) for instance. It just has a throughput of about 6%. Why does this system perform so badly even that this is the recommended design at several places? +This design follows principle from the above [figure](#05-traditional_locking-2). It has a single queue and a bunch of threads. These are banging on that queue and so the threads are waiting often on the mutex. Unfortunately it is not possible to transform this model as it is described above because all that is there is a queue. So a different approach is needed. @@ -159,52 +163,31 @@ A way to reduce the contention on this single queue is to change the task system {% include code.md name='05-task_system-3' caption='Task system with multiple queues' %} -we're just going to have a vector of notification queues. We get to reuse or same notification queue. okay one for each thread so now our run is going to take an index into into which q it's actually bound against when we join now we need to tell all the Q's they're done. next one and when we're going to do our push we're going to keep a little atomic index so we can be pushing from multiple threads and we're just going to keep incrementing it but then we're going to modulo it by our count and so we're just going to round-robin going through pushing into into it there okay and if you notice that's unsigned so wrapping around on that index is not a problem well-defined behavior on our overflow it's a modulo arithmetic - -okay so how do you guys think we did on our speedometer twice as fast is it going to go half halfway up we're just going to go nobody so so I actually did profile all this code. I wrote this. All profiled it it's about ten times better. - -okay barely get this movie okay so and we have two problems here one is is I can get a long-running task in one of my Q's and it can cause a bubble and I can have my other course sitting there idle okay so the other is is even in a fully loaded system I can end up with a fair amount of contention right where one of those mutexes blocks and that's you know upwards of a million cycles to do a full task switch right in overhead so having keeping one of those mutexes and actually having it locked kills performance okay +The task system has now as many queues as threads and the `run()` function gets as parameter the index for its corresponding queue so that it can pick its belonging items. +On destruction the task system has now to notify all queues about to end their work. +An continuously incremented atomic integer modulo the number of queues is used within the `async()` function to distribute the tasks in round robin manner over the queues. An atomic member is used to enable that this function can be used from multiple threads. +This system now performs about as twice as fast compared to the previuous approach. But this new way has still two problems: A long running task will block the execution of all other tasks which are behind this one in the queue even that the queues of other cores went dry. And on a fully loaded system there is a fair amount of contention on the mutex of a queue. +These problems can be minimized by using the mechanism of task stealing. {% include figure.md name='05-task_system_task_stealing' caption='Task System with Task Stealing' %} -so here's the next solution right called task stealing okay now there are lots of sophisticated algorithms that are heavily tuned for -doing task stealing but we're just going to code it very simply here and the idea with task stealing is is if your queue you being a thread is busy because -somebody's pushing in the other end okay ah or it's empty either you don't really care see if you can go pull something out to somebody else's queue -okay so let's do that so and we're going to take our pop and we're going to have tri pop here okay so our tri pop is going to take a tri lock on our mutex -okay so it's going to try to lock will either get the lock or not if we don't -get the lock we just return false okay or if the queue is empty we return false -by the way so we'll do that we're going to do the same thing on our push just for good measure okay so if I'm trying to push something into a queue and that queue is busy I shouldn't wait on it okay cause hold a mutex cause a whole process or cast square to even do a spin lock okay what I'm going to do is if it's busy I'm just going to return false okay couldn't push it okay so now our -caste system our constructor and destructor stay the same okay but when we do the run now what we're going to do is we're going to do try pop and we'll just run once round all the queues okay and then if we don't get anything once around then we'll just wait where we were okay now on the push side we'll spin around and it turns out on the push if all the cues are busy right right you have to push okay so so what are you going to do well you could just sit and wait on one cue but there's no guarantee that that's the first cue that frees up okay so it's actually better on the push to spin a little more okay so I've got a que there right right and there's a trade-off there you're you're improving overall throughput of the system versus sacrificing a single core to burn it in the spin loop so whether or not it's a win in your system depends on what the load is on your system okay whether or not you have that core to burn so but you can tune it quite a bit so now how do you think we did -okay so way better okay so we got way up into there now at this point we're about a hundred times better than when we started from Oracle's example code so -this is a pretty huge improvement okay now what I was benchmarking these at was -Apple's Grand Central Dispatch that's my one point oh right that's my mindful thing apples Grand Central Dispatch is a very nice piece of work if you actually go and read the code and it even has hooked into Lib colonel and the reason why it has looks into Lib colonel is because it understands when one task is blocked and how to go just ignore that task and go take care of other -things so you cannot match it with the primitives that you have in standard C++ -okay but we actually came within about 15% okay of it with some straightforward -code so that's pretty good - - - - - - - - - - - - - - - - - +There are different soffisticated, highly optimized approaches in implemening task stealing. Here is take a very simple strategy. +{% include code.md name='05-notification_queue-3' caption='Notification queue with try_pop and try_push' %} +The queue is enhanced by two new functions, `try_pop()` and `try_push()`. +The `try_pop()` function return `false` when the atempt fails to get the lock on the mutex with the additional `try_to_lock` property. This can be the case when either an other thread currently pushes or pops an item into or from the queue. The other possibility of a `false` result is when the queue is empty. +Similar applies for the `try_push()` function. +The important difference is that a thread using one of these two functions does never stop on a blocked mutex! +{% include code.md name='05-task_system-4' caption='Task system with task stealing' %} +The code tries within the `run()` function to pop an item from its corresponding queue by calling `try_pop()`. This can either fail because that queue is currently busy or empty. In both cases the code tries to steal a task from a different thread until it has checked for all other queues. If there are no tasks to execute, then it calls for a blocking `pop()` and it is woken up whenever there is more work to do. +The same approach is taken for pushing an item into the queue in the `async()` function with the difference that the code spins some times over all queues until it finds one to push the task to. The spinning is done to lower the probability that the calling thread get stuck on the later finally implemented `push()` call. +The task system reaches about 85% of the performance of the reference implementation. But as soon as each application on a system uses its own thread pool there is again the problem of over subscription. diff --git a/better-code/code/05-notification_queue-3.cpp b/better-code/code/05-notification_queue-3.cpp index d04af4a..1415801 100644 --- a/better-code/code/05-notification_queue-3.cpp +++ b/better-code/code/05-notification_queue-3.cpp @@ -23,30 +23,4 @@ class notification_queue { _ready.notify_one(); return true; } - - void done() { - { - unique_lock lock{_mutex}; - _done = true; - } - _ready.notify_all(); - } - - bool pop(function& x) { - lock_t lock{_mutex}; - while (_q.empty() && !_done) _ready.wait(lock); - if (_q.empty()) return false; - x = move(_q.front()); - _q.pop_front(); - return true; - } - - template - void push(F&& f) { - { - lock_t lock{_mutex}; - _q.emplace_back(forward(f)); - } - _ready.notify_one(); - } }; \ No newline at end of file diff --git a/better-code/code/05-task_system-3.cpp b/better-code/code/05-task_system-3.cpp index 503c140..0fac854 100644 --- a/better-code/code/05-task_system-3.cpp +++ b/better-code/code/05-task_system-3.cpp @@ -14,15 +14,13 @@ class task_system } public: - task_system() { } - ~task_system() { for (auto& e : _q) e.done(); for (auto& e : _threads) e.join(); } template - void async_(F&& f) { + void async(F&& f) { auto i = _index++; _q[i % _count].push(forward(f)); } diff --git a/better-code/code/05-task_system-4.cpp b/better-code/code/05-task_system-4.cpp index d660717..6f6215b 100644 --- a/better-code/code/05-task_system-4.cpp +++ b/better-code/code/05-task_system-4.cpp @@ -1,8 +1,19 @@ +class task_system +{ + const unsigned _count{thread::hardware_concurrency()}; + const unsigned _spin{_count<64? 64 : _count}; + + vector _threads; + vector _q{_count}; + atomic _index{0}; + + void run(unsigned i) { while (true) { function f; - for (unsigned n = 0; n != _count; ++n) { + // TODO Take _spin / _count or something different? + for (unsigned n = 0; n != _spin / _count; ++n) { if (_q[(i + n) % _count].try_pop(f)) break; } if (!f && !_q[i].pop(f)) break; @@ -11,16 +22,12 @@ } } - public: - task_system() { } - - ~task_system() { } - +public: template - void async_(F&& f) { + void async(F&& f) { auto i = _index++; - for (unsigned n = 0; n != _count * K; ++n) { + for (unsigned n = 0; n != _spin / _count; ++n) { if (_q[(i + n) % _count].try_push(forward(f))) return; } From 0b377631b669e7ba376f0c03eb05817f42ab6720 Mon Sep 17 00:00:00 2001 From: Felix Petriconi Date: Fri, 1 Jan 2021 17:50:37 +0100 Subject: [PATCH 10/17] Draft until end of task system --- better-code/05-concurrency.md | 10 +- better-code/concurrency_talk.md | 781 --------------------------- better-code/figures/05-dead_lock.svg | 447 +++++++++++++++ 3 files changed, 454 insertions(+), 784 deletions(-) delete mode 100644 better-code/concurrency_talk.md create mode 100644 better-code/figures/05-dead_lock.svg diff --git a/better-code/05-concurrency.md b/better-code/05-concurrency.md index 8fda210..89ed0da 100644 --- a/better-code/05-concurrency.md +++ b/better-code/05-concurrency.md @@ -187,13 +187,17 @@ The important difference is that a thread using one of these two functions does The code tries within the `run()` function to pop an item from its corresponding queue by calling `try_pop()`. This can either fail because that queue is currently busy or empty. In both cases the code tries to steal a task from a different thread until it has checked for all other queues. If there are no tasks to execute, then it calls for a blocking `pop()` and it is woken up whenever there is more work to do. The same approach is taken for pushing an item into the queue in the `async()` function with the difference that the code spins some times over all queues until it finds one to push the task to. The spinning is done to lower the probability that the calling thread get stuck on the later finally implemented `push()` call. -The task system reaches about 85% of the performance of the reference implementation. +The task system reaches now about 85% of the performance of the reference implementation. +So the first goal reducing the number of arbitrary thread is fulfilled; the number of context switches can be minimized by using a task system. But as soon as each individual application on a machine uses its own instance of a task system there is again the problem of over subscription, because each instance would start as many threads as there are cores. +Such a task system has an other problem. There is the risk of dead-locks. -But as soon as each application on a system uses its own thread pool there is again the problem of over subscription. +{% include figure.md name='05-dead_lock' caption='Dead lock within queued tasks' %} -So the only solution to reduce the amount of context switches is that all application within a system use the same thread pool. Since an optimized thread pool needs knowledge about the locking state of a possible task within the thread pool to potentially spawn new threads to avoid dead locks this must be an operating system facility. MacOS and Windows provide here out of the box a thread pool through a low level API. +As soon as a task `a` creates a new task `b` and the progress of `a` depends on the result of task `b` and task `b` got stuck in the queue behind `a` then the system is in a dead-lock. Figure [](#05-dead_lock) illustrates the problem just with a single queue. But the same problem is there with multiple queues and depending tasks get stuck behind other tasks that are blocked because they are waiting for getting a lock on a mutex or waiting for an other result. +So the only solution to reduce the problem having unbound number of threads and dead-locks is that all application within a system use the same task system. Only a task system on OS's kernel level has knowledge about threads that currently don't make progress and so can spawn new threads to prevent the dead-lock situation. +MacOS and Windows provide here out of the box a thread pool through a low level API. ### Problems of call backs diff --git a/better-code/concurrency_talk.md b/better-code/concurrency_talk.md deleted file mode 100644 index 1861a01..0000000 --- a/better-code/concurrency_talk.md +++ /dev/null @@ -1,781 +0,0 @@ -I'm Shawn parent for anybody who wasn't at my previous talk I'm a principal scientist at Adobe. I've had a number of roles they're good at Adobe now about 22 years depending on how you count because I was there 15 years and then I went to Google for about a year and then back to Adobe. I started my career at Adobe on the Photoshop team and later I ran Adobe's software technology lab that was a research group that spun out of our technology group. I ran that group for about eight years and now I'm actually back working with Photoshop team again so I've had a number of roles. - -I mentioned this before - a few years back I gave a talk at going native conference called C++ seasoning and and it was well-received and I got a lot of requests to write a book and so since then whenever I get asked to give a talk I try to flesh out a chapter of the book so this is kind of -my working outlines you see for each -chapter here I've got a goal most of the -goals I need to redo the first one now -that one's also stated in the negative -are stated as a negative as far as their -what not to do and there's a reason -there the the word goal was chosen very -carefully because what I talked about is -is not prescriptive things they're not -rules they're things to strive for but -they can be difficult especially when -you're dealing with a large system to -achieve these goals so they're not rules -are not guidelines they're not things -that should be held up in a code review -or people that John said don't do that -what Sean said is think about that -really hard and and the reason the other -reason why they're stated as a negative -is because I can't give you all the -answers as to as to what the -alternatives are so these are things -things to try to avoid and I'll talk -some about better in different ways but -sometimes it just requires more thought -so these are all tend to be open-ended -problems - -so today we're talking about concurrency. -Alright some common themes in all my talks are our that they're all about managing relationships and what I mean about that is relationships between components and software understanding the fundamentals which i think is incredibly important. Learning how to write simple code and learning how to how to reason about code through local and equational reasoning. So local reasoning means that just looking at a piece of code you can reason about it without having to understand the whole system. And equational reasoning means that you can you can describe what something is in terms of something else a is equal to B right a plus B is equal to C all right so you're able to go through those transformations now this talk started because I was working on what became this product right here. - -This is Lightroom for web and and this is the complete Lightroom rendering engine running inside of the Safari browser with no plugins okay so for people who don't know Lightroom is a product that adobe ships that professional photography rendering engine and it's a parametric model so it's a non-destructive model you you edit your image and you can come back later and change your edit and read just it so to make this work over the web means that we had to have full parity with the desktop rendering engine okay and this is a piece of code now that's a decade old and heavily tuned on the desktop. To give you some idea this is a woman in the London subway and as the train was pulling up. I glanced backwards and snap the photo and so that's the the unedited photo and that's what it looks like edited. So this was a big problem taking a 10 year old codebase that's heavily threaded getting it to compile with the emscripten compiler which is a compiler that Mozilla puts out to compile C++ code into JavaScript removing all of the need for threading in it because in JavaScript you have no threads you have web workers which is the equivalent of having separate processes but you don't have threads and getting the code to run well and to behave in an interactive fashion so that was the challenge so this got me thinking really really hard about concurrency and the reason why I got me thinking is because going forward this code base needs to be shared so I needed to leave the system in a state where we had a code base that developers could work on that would continue to run in run performant in a heavily multi-threaded environment and the same code would run very well when you had no threads right so I had to think about what is the actual programming model for how you write threaded code. - -So first some definitions here right concurrency is when tasks start run and complete in overlapping time periods where parallelism is when two or more tasks execute simultaneously right so on a single threaded system you can have concurrency and you can have threads and it just means things are time sliced okay but parallelism is when you have multiple cores right or something like a sim decore where you can do multiple things at the same time now the reason why we want concurrency is because concurrency is our first building block to enable parallelism right right -if I can't run run with multiple threads on a single core then I certainly can't run with multiple threads with multi-core the other reason why we want concurrency is because it improves interactivity right in the previous thing there right when I'm sliding my my slider I'm receiving user events coming in and I'm updating frames and if every time I update a frame. if that slider stops that the users sliding that makes for a pretty at the user experience right so we want to be able to slice things up so that we give give good interactivity down goal. -for this talk is no raw synchronization primitives so what are raw synchronization primitives? well there's these things they're mutexes there are atomics a lot of people don't don't like me putting Atomics on this this list but they're certainly Atomics and i'll explain more about that later but things like semaphores memory fences and conditional condition variables okay the number one reason why you don't want to use these things is you'll likely get them wrong. - -How do I know that? Because I've been doing this a very long time and I still get them wrong. So here is a class that I wrote once upon a time its renamed it's the copy-on-write class and it's abbreviated here. It's renamed as bad cow and the reason why I renamed it is because giving this as a as an example of a bug then somebody immediately when it was just named copy-on-write. somebody immediately copy and pasted the code from my slides and put it into a working system. so not actually looking at the rest of my presentation where I showed the bug so who can find the bug in this code. I'll even help you the bug is between those two lines does anybody see what's wrong here? time of check and time of use problem absolutely okay so and I'm using an atomic here right so what happens is. I check to see is my count equal to 1 what a count of one would mean is that this object is the sole owner of some shared data. if this object is the sole owner of some shared data then I know that it's safe to assign directly into it. If it's not one, then I need to make a copy here. this is my copy on write. When I make the copy then I need to to decrement the count of over this one here okay so so what's the problem? The problem is if I wasn't the sole owner on the first check then by the time the second check comes around I might be the sole owner and if now at the second at that decrement if I am the sole owner it's my responsibility to free the shared state okay and I'm not doing that here right so the six is when I do the decrement I have to say okay when I do this decrement was I the sole owner and now my count went to zero and if so delete the object. - -So this piece of code shipped in a running system and probably ran for something like five years okay and it wasn't that bad right you have a very short window there where you do that new where somebody else can release ownership and if they do then you'll leak one block okay okay but it was very vexing because occasionally we would see these blocks leak and couldn't figure out why or where they were coming from okay even with these slides I've given this talk now a couple times I've received five email messages where people tell me my fix is is wrong okay it is correct I'm quite convinced I can write the proof fix is correct the five people who wrote to me all what they believe is a bug all boils down to to one of two things in those five emails one is they assume that my bad count implementation is an atomic type it is not an atomic type right right if it were an atomic type then when I was sole ownership somebody else could come along and and claim ownership of it okay so the account could go up it's not an atomic type in that a copy-on-write integer is just as thread-safe as an integer right it just means that I can have separate threads each with their own instances with shared data okay but I can't share a single instance of the cow right the cow refers to share data. - -The other thing is people don't understand what - minus X does on an atomic and that's that it's an equivalent of effect such subtract of an atomic such a subtract which means the subtraction and the fetch of the value happen is a single atomic operation and sometimes people think that. Because I'm doing the -- and then my compare that between the subtraction and the compare something could go wrong nobody caught. I fixed it in the previous slide that my count was uninitialized. Neither did I so neither did the compiler which Frost's me so originally when I wrote the code. it was in a working system. I didn't have this problem and it's because I wasn't using SPD Atomics because the code long predates STD Atomics. I was using a Atomics with different behavior but an STD atomic of an int if you just default construct it right without giving it any value is an uninitialized variable just like an INT is okay so I actually introduced a bug and nobody caught that. - -Even atomics can be very difficult to reason about why do we want performance through parallelism. - - -This is a slide that one of my colleagues Russell Williams on the Photoshop team put together awhile ago but it's very true today so this is your typical desktop computer right and this is looking at where the nips are where the gigaflops in a desktop computer okay that's the bar that's the GPU right right so so this is looking at an AMD Radeon which is a little outdated that bar these days is getting bigger if you're running on mobile it's a little bit smaller okay to get into that you need to get into OpenGL OpenCL cuda direct compute c++ am DirectX metal pick your thing all of those things tend to be C or C++ derived programming environments with constraints tailored towards parallelism okay that's how much of your performance is in the vectorization unit on the machine okay so to get to that you're going to have to be writing with Auto vectorization or like the Intel compiler we'll just some degree of that but you have to know how to structure your code to utilize it OpenCL can target it or your writing with intrinsics which is where most people end up if you want to unlock multi-core as of C++ 11 we actually at least have a threading model there that's how much of your processor is tied up with multi-core and if you're talking about just one core the scalar unit that's the slice right there that's what most people think of a straight C++ and if you're writing in JavaScript or Java or something like else something else divide that by a factor of 2 to 5 these days okay so that red line at the -end there is point 0 to 5 percent of the performance of your machine - -okay now this is Armdahl's law Kevlin mentioned this in his last talks you were in here what AM does law says is is basically if some amount of your machine is serialized okay then you cannot accede to that in overall performance by adding parallelism okay so in this graph here you can see if the the Purple Line is at ninety percent so if just 10% of our app is serialized we can never perform better than 1010 X increase in performance because now that will be the bottleneck is that that cereal is serialized piece okay but the interesting thing about this graph is that you don't hit something approximating that 10x speed up until you get out to a thousand cores okay the bottom scale on this thing is logarithmic where the top scale is linear and I hate the graph for that reason I think this is a very misleading graph okay so but this is what you'll find on Wikipedia or in most textbooks is people draw the graph this way because otherwise you can't really see the shape of the curve okay but the more telling graph is to just look on linear scale down at the access so each line here represents just 10% of serialisation so if I just have 10% of my application that's serialized and I'm on 16 cores I'm only getting a little better than a 6x speed-up okay so Amdahl's law sucks right right it bites us okay and serialization doesn't mean locking on mutex utilization can just mean sharing the same memory right or sharing the same address bus for them for the memory if I don't have a Numa architecture okay or sharing the same cache line right anything that's shared within the processor starts to bend that curve down and it bends down rapidly any synchronization anatomic bends that curve down. - - - -most people think about threading at least most people you know coming from kind of a C or C++ background in this horrible way they say I've got this object that I'm sharing and I got a bunch of threads that are banging on it and so I'm going to stick a mutex on there and we're going to keep rotating that around. That is a horrible horrible way to think about threading. Don't do that! We don't want to stop! No stops, minimize locks! - - -Now a lot of people that I find when I talk about mutex and I asked them what is a mutex right can't give me a good answer say give me an equivalency to a mutex. Give me a mental model for a mutex? I added this section to the top because somebody who I work with came to me and said "I'm trying to optimize this piece of code where I've got this mutex and I've got this lock over this big block of code and I've tried to minimize the amount of work I'm doing under the lock to the absolute minimum and it's still huge. So now I'm trying to optimize the locks and I'm playing with like adaptive spin locks and stuff." - - -And I'm like ah you're thinking about it all wrong. -So let's take a look at a traditional little piece of code here. I've got some registry class that I'm going to write and it's going to be shared so I want the operations to behave in an atomic fashion so I'm going to have a set and a get right where I can set a key and a value and it's just going to store it into a map and because I'm sharing my map I've got that under my mutex and I'm going to get it okay and so I'm going to lock lock my mute my mutex and just pull it out at the same time okay so I've got this this little piece of code right now even here although it looks like I'm doing just a little bit of work under the mutex right and I'm using an unordered map which is a fairly efficient data structure an unordered map is a hash map the amount of time it takes me to hash my key depends on the length of the string so the amount of work that's being done under the locks here is actually fairly unbounded right it depends completely on the lengths of length of my string so it's probably typically small but it could be big okay - - - -there's this line of the C++ standard and you'd find it in a bunch of text books but I pulled it from there because I think you know it's a good way to think about it it can be showing the programs that correctly use mutexes and memory ordered sequential sorry I'm drawing a blank it's a memory very a sequentially consistent memory barrier and a memory order sequentially consistent memory barrier operations to prevent all data races and use no other synchronization operations behave as if the operations executed by their constituent threads were simply interleaved with each value computation of an object being taken from the last side-effect of that object in that interleaving this is normally referred to as sequential consistency so why is this an important sentence well it means that we can always think about mutexes as if we had some set of operations and those operations are interleaved right that we have op and I messed up the numbers here so I can have operation 3 repeated multiple times right right and and what an operation is is that's the code that's executing onto the lock and its operating on some value what's that value it's the set of all objects that are modified by that operation ok so by all operations okay so so X is everything that gets modified within my lock ok by all the pieces of code that acquire that lock on the mutex ok and each of those can yield out some values some result right those operations can say it's a read-modify-write operation they can read modify write the data under that yielding out some results from the read okay so the same is true of all atomic operations right so there's really not a lot of difference between an STD atomic in fact there is a call on STD atomic that says is this lock free so what that means is is their processor support to do that as an atomic item within the processor or is there not processor support and the compiler has to generate a mutex pair to to lock make the change on the atomic operation and do the the unlock right so all that mutexes and locks are our way to construct atomic operations right so if you look you know fetch subtract follows from my previous example for the bad cow you're doing a section subtract that's a read modify write operation on X to the atomic so what we have here then is that we can take any piece of code that has mutexes and we can transform it into a queued model okay so if we assume that I've got a serial q and my serial q has just one operation on it which is go a sync execute this thing and it's the same same calling conventions as STD async here except it guarantees that that the next item being processed in that queue doesn't start until the previous one completed okay then I can rewrite my set string to go do QA sync okay and I can rewrite my get string but I've got a little bit of a problem there in that I need the result back out and I need it paired with that particular gift okay so I'm going to use a future there and we'll talk more about futures okay and I've got the Q async here why is this important to understand because any place I have a mutex in my code I can always make this transformation I can always trance form it into a serialize queue model and that means that within the serialized queue model now anytime somebody comes along and says set here regardless of the amount of work that set takes the time it takes for set to return back to the caller is constant. okay so that means that I can add something like set an arbitrary set of value the whole vector of key value pairs okay and to the caller that set will take just as much time as the previous set. it's a no block. okay so so this puts an upper bound. now there's overhead in this right. I've got to queue an item. I've got to DQ the item. I've got to deal with futures if I've got results coming in if I'm calling this set as opposed to calling just set string set sync set string. - - -maybe I have to construct my vector pairs I can't just pass iterators in there because my whatever I'm passing iterators in to might go away okay so there's overhead in this but it gives me an upper bound so if I'm looking at a piece of code or I'm like I've got this big hoo Creek and piece of code with a bunch of mutexes around it. I'm like you're totally in the weeds right the place is enough abound on both synchronization overhead and time to issue operations. -Now couple more definitions: - threads: a thread is an execution environment consisting of a stack and processor state running in parallel or concurrent plugged in my slides to other threads okay a task is a unit of work off often a function that you want to issue on a thread so tasks are scheduled they can be scheduled onto a thread pool top to Mai's machine utilization I mean threads tend to be relatively heavy weights because they're carrying around processor state and and stacks and if you saw cat Kevin's talk previous to this you had a great graph showing just how expensive it is to do a task switch from thread to thread. You can do an awful lot of processing on the 10s which now unfortunately C++ 14 doesn't really have a task system. we have threads okay and we have futures okay but we don't have a task system now. worse it's in its implementation to find whether or not STD async spins up a thread or execute it on a thread pool. in C++ 11 it was actually defined that it's spun up a thread but Microsoft's complained because under Windows 10 Microsoft doesn't want to expose developers to threads. they want everything to go through the windows thread pool. so they didn't want STD async to spin up threads. so in C++ 14 they changed the standard wording to say well it's undefined maybe it's a thread maybe it's executed on a thread pool. - -I'm going to show you in a few slides why that was a very problematic decision. okay now I'm going to walk you guys through building a tasking system. We're going to build kind of a portable reference implementation and C++ 14 but don't do it on your own right not unless you have to. I actually had to do this because in the previous slides getting Lightroom web to run one of the places where I had -to make it run was inside the Chrome -browser using pinnacle which is Google's -portable Native Client and that's -basically in an environment where you -can run threaded C++ code inside of the -browser so long as it's a Chrome browser -or or on a Chromebook but they didn't -have a stock tasking system for it and I -couldn't find a reasonable one that was -open sourced apples Grand Central -Dispatch is open sourced but it has a -lot of dependency on Lib kernel and I -don't have a kernel inside of Chrome -unfortunately so I couldn't make that -work -but there are lots of good ones here -right there's windows has thread pool -and ppl Apple has Grand Central Dispatch -which can run on Linux and Android -there's until TBB there's HP X I'm sure -that you can find others but those would -be the ones that I would I would -recommend okay this is one that I would -not recommend. - -So there's a little link in the URL there Oracle has this paper that they published years ago which is how to write high-performance multi-threaded server code and and as an appendix they have how to build a tasking system in there for a thread pool this is their model. - -You've got a issue tasks into the queue, the tasks get dequeues by multiple threads, you have one queue per piece of hardware that you have and their implementation is about 20 pages. - -But we can build with c++ better one pretty quickly so we're going to build a notification queue. Here we're just going to build it out of a deck of STD functions with the mutex and a conditioner variable around it we're going to have a pop operation which is just going to pull one item off of the queue okay in our function we're going to have a push operation to just push one item in the queue and notify anybody who might be waiting on the queue okay and then we can build a tasking system where we have count which is the number of course we have and our vector of threads okay and our notification queue a run function for our our threads which is just going to to create a function pop the function from our queue and execute it okay and then our constructor here for our test system will spin up one thread binding it with a lambda against our run when we destruct we need to join all of our threads and then we're going to have an async operation where we just take a function and we push it okay so pretty primitive the one thing we would hang on destruction right there because we didn't have a way to signal done so we'll add that real quick we're going to have a bool that's done when you call done we're going to set the bool to true and notify everybody okay in our pop function when we're waiting if we get woken up from our condition of variable then we're also going to be checking done right returning false and that's it that's the complete thing so how do you guys think this performs I already told you right right badly kind of barely get off the mark horrible why is this horrible makes a good example right it's easy to write nothing fundamentally wrong about it it's exactly this model right we've got a single Q and we've got a bunch of threads and they're banging on that Q okay and we've got locks understanding that I can transform those locks into a queue model doesn't help me because all I have is a Q it locks around it okay so I need to come up with a better way. - -okay so that's X so here is the common -answer I put a Q on each thread that -minimizes my contention okay so let's -write that we can do this pretty quickly -we're just going to have a vector of -notification Q's we get to reuse or same -notification q okay one for each thread -so now our run is going to take an index -into into which q it's actually bound -against when we join now we need to tell -all the Q's they're done -next one and when we're going to do our -push we're going to keep a little atomic -index so we can be pushing from multiple -threads and we're just going to keep -incrementing it but then we're going to -modulo it by our count and so we're just -going to round-robin going through -pushing into into it there okay and if -you notice that's unsigned so wrapping -around on that index is not a problem -well-defined behavior on our overflow -it's a modulo arithmetic okay so how do -you guys think we did on our speedometer -twice as fast is it going to go half -halfway up we're just going to go nobody -so so I actually did profile all this -code I wrote this all profiled it it's -about ten times better okay -barely get this movie okay so and we -have two problems here one is is I can -get a long-running task in one of my Q's -and it can cause a bubble and I can have -my other course sitting there idle okay -so the other is is even in a fully -loaded system I can end up with a fair -amount of contention right where one of -those mutexes blocks and that's you know -upwards of a million cycles to do a full -task switch right in overhead so having -keeping one of those mutexes and -actually having it locked kills -performance okay so here's the next -solution right called task stealing okay -now there are lots of sophisticated -algorithms that are heavily tuned for -doing task stealing but we're just going -to code it very simply here and the idea -with task stealing is is if your queue -you being a thread is busy because -somebody's pushing in the other end okay -ah or it's empty -either you don't really care see if you -can go pull something out to somebody -else's queue -okay so let's do that so and we're going -to take our pop and we're going to have -tri pop here okay so our tri pop is -going to take a tri lock on our mutex -okay so it's going to try to lock will -either get the lock or not if we don't -get the lock we just return false okay -or if the queue is empty we return false -by the way -so we'll do that we're going to do the -same thing on our push just for good -measure okay -so if I'm trying to push something into -a queue and that queue is busy I -shouldn't wait on it okay cause hold a -mutex cause a whole process or cast -square to even do a spin lock okay what -I'm going to do is if it's busy I'm just -going to return false -okay couldn't push it okay so now our -caste system our constructor and -destructor stay the same okay but when -we do the run now what we're going to do -is we're going to do try pop and we'll -just run once round all the queues okay -and then if we don't get anything once -around then we'll just wait where we -were -okay now -on the push side we'll spin around and -it turns out on the push if all the cues -are busy right right you have to push -okay so so what are you going to do well -you could just sit and wait on one cue -but there's no guarantee that that's the -first cue that frees up okay so it's -actually better on the push to spin a -little more okay so I've got a que there -right right and there's a trade-off -there you're you're improving overall -throughput of the system versus -sacrificing a single core to burn it in -the spin loop so whether or not it's a -win in your system depends on what the -load is on your system okay whether or -not you have that core to burn so but -you can tune it quite a bit so now how -do you think we did -okay so way better okay so we got way up -into there now at this point we're about -a hundred times better than when we -started from Oracle's example code so -this is a pretty huge improvement okay -now what I was benchmarking these at was -Apple's Grand Central Dispatch -that's my one point oh right that's my -mindful thing apples Grand Central -Dispatch is a very nice piece of work if -you actually go and read the code and it -even has hooked into Lib colonel and the -reason why it has looks into Lib colonel -is because it understands when one task -is blocked and how to go just ignore -that task and go take care of other -things so you cannot match it with the -primitives that you have in standard C++ -okay but we actually came within about -15% -okay of it with some straightforward -code so that's pretty good okay now if -you happen to have live dispatch this is -a standard STD async compatible function -I'm not going to walk through the whole -thing here that sits on top of dispatch -async F which is a call into Lib -dispatch so this is is is fully STD -async compliant including allowing you -to move arguments through the whole -thing and stuff written in terms of -dispatch async so if you're on a machine -where you can use Lib dispatch by all -means steal this code and do -okay now the first time I gave this talk -somebody went and bent my ear for about -three hours and said well if you're -doing anything you should be writing and -writing it in terms of a CEO and a do -tasks because that's been proposed to -the standard and a CEO being a -synchronous i/o and it has been as an -experimental library and I think a zero -is a beautiful piece of work so don't -get me wrong here -but a CEO is not a tasking system so in -fact a CEO doesn't even have tasking -primitives so is this person spending my -ears and why didn't I use a CEO I'm like -well what are you even talking about -okay but you can build a tasking system -out of a CEO and and this is what it -looks like it's fairly straightforward -and that's how it performs almost -identically to my first piece of code -for exactly the same reasons in here we -have a single single service queue that -we are posting work to and it's under -heavy contention and it's getting -pounded upon it is actually slightly -faster by about 10% then my -implementation with a single queue okay -but that doesn't show up as a pixel even -on my speedometer so so that's where a -CEO is so don't let people tell you as -you as a tasking system it's not okay so -now we have a system where we can issue -tasks -so what happens we issue a task which is -some function some work bound to it it -goes and executes we've got another task -that task yielded some object and we -want to communicate that result to -something else that's executing right -how do we do that what's our what's our -form of communication between tasks -all right well this is where futures -come into play okay so we're going to -calculate Fibonacci of a million CPP -inte is a boost a infinite precision -math type so that's an infinite -precision integer okay anybody you have -any idea of how big fibonacci of a -million is so it's big -subin achi is also is often used as an -example in in parallel algorithms please -stop -almost every talk I go to on parallelism -uses Fibonacci numbers uh here's why so -there's a slow way to calculate -Fibonacci which is what most people -demonstrate and there's a proper way to -calculate Fibonacci to calculate -Fibonacci what you need is a power -function so this power function will -take X to the power of n for some -operation so if my operation here is -addition then this does multiplication -okay if my operation is multiplication -this does exponentiation okay so this is -a generic form of it unfortunately power -isn't in the standard library but it -should be if you want more information -about how this works there's a great -write-up on it in Alec Stepanov and Dan -Rose's book for mathematics to generic -programming kind of the full history of -this algorithm it's also known as -Egyptian multiplication or the Russian -peasant algorithm okay so what I want to -do then is I want to take a particular -matrix which oh there it is I want to -take that matrix which is 1 1 1 0 which -is known as the Fibonacci matrix and I -want to raise it to this let me back up -didn't mean to go that far that's -Fibonacci of a million -slow okay -so I want to take a Fibonacci matrix -raised to the nth power and that will -give me the Fibonacci number of n plus 1 -in the top left Fibonacci n on the two -diagonals and n minus on the bottom -right ok so I can actually take -Fibonacci here of n minus 1 and pull it -from impulsive iñaki n from the top left -okay so with that code and now you see -the delay here it takes a key note a -minute to prep this this is the result -of Fibonacci of a million okay it took -point seven two seconds to calculate on -my old on this laptop on my old 2013 or -so MacBook Pro it's two hundred and -eight almost two hundred nine thousand -digits and and it calculates and and -that's just running single threaded okay -so I can calculate way bigger Fibonacci -numbers then then people do in the -parallel examples the reason why bugs me -is because I've actually seen people use -the bad algorithm that people use to -demonstrate with parallel algorithms in -actual code okay stop so try to only -give real examples so we'll calculate -seven oxy of a million with our future -so what's our mental model of futures -okay what we're doing is we're taking a -function and we're slicing off the -results okay -so what I end up with is a function okay -still take some arguments but has no -result and a future which is a token for -the result and that future will appear -sometime later okay so that's the model -the futures it's separating the function -from the results of the function and -having a communication channel before -them now the nice thing about futures is -they allow minimum code transformations -to express dependencies -okay so if I have a future and oh the -other nice thing about futures and C++ -is they can marshal exceptions right so -if I have a future and I fail this will -end up printing failure right so across -threads my exception can be thrown in -one thread and caught in the other -go there and then I call future get and -let's just stop right we just block that -thread while we wait for the results STD -futures and then the result comes over I -hate stops right unfortunately C++ even -14 lacks continuations with the -continuation instead of saying dot get -and stop you say when the results for -this is available then do the next thing -if you've done JavaScript programming -with with promises it's the same idea -okay -so along with that C++ 14 lacks joins -which are win all and win any when all -these features are available to -something it'll act splits which we'll -talk about more cancellation and -progress monitoring in C++ 14 features -don't compose particularly easily to add -these things okay so what's the model -for continuations well we've got is a -function yielding a result which we want -change to the next function yielding -some results and so on -okay now STD future has two additional -problems -so first is that it consumes one -resource right which we talked about -increasing contention but it possibly -deadlocks if you have a tasking system -and any non subsequent non-dependent -calculations on the task girls are -blocked -now even though C++ 14 doesn't have the -primitives boost futures has been with -TS concurrency which is following to the -standard has been TVB has flow graphs -ppl has chain tasks CCD has serialized -queues and groups these are all things -to solve the same problem as -continuation -okay so how can get caused a deadlock -let's say I have a task and it issued -another task and then it waits on a gift -that other task will never complete -because it's not coming out of the queue -so if I'm on a single threaded system -okay then a future get is an immediate -deadlock this is why promises in -JavaScript do not have git or dot wait -they only have continuations in a single -threaded system it's an immediate -deadlock okay well what if I have two -threads that guy issues two tasks one -task goes into the queue he waits for it -he's deadlocked well the other task a -task steal unless he issues a task and -waits for it and then we're deadlocked -okay and so on right -it's very difficult to use future like -it is very difficult to use safely in -the presence of a thread pool an STD a -sink it's undefined whether or not it's -a thread pool or not okay that's a -problem it's not just yet it's any -conditional blocking right such as -condition variables weight or -problematic in a task system they're -exactly the same thing -somehow I dropped a negative here this -should say do not call s to be future -get or STD future wait when the -originating task or any subordinate task -is on the same queue even if it's a -concurrent queue or a thread pool that's -the rule -for using them safely okay which means -that I can issue a task within C++ with -async from my main thread and call yet -on the future okay but I can't call get -on a future from anything that was -queued through STD async -okay so you see this problem in every -tasking system it will have some kind of -warning like this so I could have put a -whole list of them up there but this is -from lib dispatch I've kind of been -using live dispatch as an example you -should never call dispatch sinc what's -just batch sync it's the equivalent of -queueing something into the queue and -then waiting for it immediately right -never call dispatch synch from a task -that is executing in the same queue that -you are planning to pass to the function -this is particularly important for -serial queues which are guaranteed -deadlock but should also be avoided for -concurrent queues okay -why because depending on how the stars -align it will be a deadlock now how did -I discover this well taking a heavily -threaded piece of code and taking it -down to one thread it was very apparent -where all the dead locks were right -there but then we also realized that hey -if we took it to mobile where I also -took Lightroom engine to mobile with two -cores we were seeing a lot more dead -locks -okay when we actually finally figured -out what in the world the problem was we -realized that even on eight cores and -sixteen core machines the system under -heavy load would occasionally deadlock -it was just rare enough that you -wouldn't see it okay so so but in our -bug backlog when we went back through it -was like oh yeah this this is that -problem this deadlock is that problem -okay so a huge thing okay so this is -what a dot then continuation looks like -right we can calculate Fibonacci and -then once the Fibonacci gets we can -serialize it we're going to go ahead and -put our weight in here because we're -executing this on the main thread not -over over on our async it's useful at -least for debugging so so now we can do -it and then print it -okay so bins are are the equivalent of -completion handlers okay and in the -standard committee a lot of times -there's debate over whether or not the -futures are the right model or whether -or not completion handlers are the right -model okay so so conceptually the two -are interchangeable okay so the -advantage with the completion handler is -that there's no need to synchronize -between invocation and and and setting -it because it was set in advance the -completion handler gets passed into the -function okay whereas a future there's a -little bit of synchronization that -happens because you don't know well your -asynchronous task is setting when you're -setting the value is somebody attaching -a continuation at that exact moment in -time okay so there's a small amount of -synchronization that has to happen but -the advantage with the future is that -you don't have to know where the results -are going in advance right so so those -are the trade-offs so you can actually -express one in terms of the other and -vice versa if if you if you build build -a system correctly so my answer is -always when people say do we want -futures or completion routines I'm like -yes that is my answer I want both okay -now the other thing you find when you -start to construct these things is we -need joins okay so what I want to do is -I have two futures and when both of -those futures are available then I want -to issue the nest nest next task now a -lot of people have the wrong mental -model about this what they think is is -then I will have my continuation I get -get one result in and then I will block -and wait for the other result but that's -not how joins work at all -what happens if you keep a count of how -many things that you're waiting for that -are pending okay and when I get one -result in I issue the task or when I get -one result in I'm okay when I might when -my count goes to zero then it's the it's -the setting the result decrement -the count to zero that causes the next -task in the chain to fire so you're -never blocking and waiting you're just -counting down -okay so this is what it looks like with -this is using boost when all I really do -not like the syntax here and that a win -all right I'm taking a win all of two -futures and then a continuation and my -argument F coming in there is a tuple is -a future of a tuple two futures which is -why you get the in order to print my end -I've got get get x get get right right F -is a future tuple futures and the result -of this is a bunch of digits we're not -going to print it so the other thing you -want to be able to do is split -so here now this is still the boost -slash proposed C++ 17 model so it seems -like the way you would do a split is -just attach to continuations to your -future so I've got X and then I want to -say then go multiply it by two and also -when I have X divide it by five that -looks like a split -yeah just abort okay the reason is the -first then actually consumes X so trying -to add hacks a second X a second then is -a cig abort that's not a particularly -friendly thing now a shared future lets -me copy them around okay and do multiple -get operations but it still doesn't let -me do multiple event operations okay -well that's horrible so now if I've got -a shared future in my hand I don't know -whether or not I can attach a -continuation to it okay so my opinion -the future should behave as a regular -type it's a token to the value so you -should be able to to copy them to get a -split but in absence of that we could -write a split so let's see how we would -do that okay so this is what it would -look like to call what we're going to do -is we're going to take X we're going to -split it okay which is going to leave -our X as a future and give us a new one -to which we can attach our dot then okay -so we can split it and then we can -attach it and if we wanted to keep going -we keep splitting okay we could just -keep splitting X -so and then we can write this and that -will print that right the first one beam -times two and the second one divided by -fifteen okay so let's see how we would -build that well first we've been talking -about futures but we haven't been -talking about the other in the futures -we can c++ is known as a promise okay so -a promise is the sending side of a -future so if we create a promise X then -we can get a future out of it and if we -set the value 42 on our promise then we -will get the value out of our future -okay so so that's the pairing there so -internally async STD async is is -creating a promise that we'll turn our -42 okay so here's how we're going to -write our split we'll walk through it -here okay when we initially come in -there is a promise somewhere that's in -gray a gray circle okay which is going -to set our future which is X okay so -we've got a promise somewhere and we're -hanging on to X so we're passing in a -reference to X now the first thing we're -going to do is we're going to move that -future out of X to get it out of the way -okay so the promise still points to the -move future now which is in temp then -we're going to construct a new future -and get a new promise for it and put the -new promise into X okay so now we've -rewritten X to be our new future okay -then what we're going to do is we're -going to take our temp -okay which is our future we're going to -put it in to our lambda here so now it's -underscore temp we're going to attach a -continuation to it which is going to -return our results we're binding P right -we are moving the promise we created in -the dotted line there eight so we we -took P we moved it over into underscore -P okay -that's the result we have the original -promise which points into our underscore -temp future okay which has a -continuation which is going to set the -value on T my underscore P set value -okay and it's going to return the value -right so there's the copy right there so -that's how you implement the splits okay -then we do the same thing to split the -exception right so we want the exception -to also go down both paths okay so if we -have an exception then we're going to -send an exception down both paths you're -not sure we write a split -okay now here's a tough thing this is -something I want with futures but -they're not in C++ 17 and I don't know -of a good way to compose them into the -sequence plus 17 futures basically what -I want is now that I can split split my -futures right right and I can join them -so I can build these complicated graphs -is when the last piece of code see I -think I have a graph here when the last -piece of code lets go of a future like -the top right one there okay then if the -task associated with that piece of code -hasn't started to execute then I want it -to not execute and to free the resources -okay which then leaves two futures which -are no longer needed and so those -futures go away and I'm left with this -right so I eliminated one task from my -system that's executing now when you're -developing interactive software this -comes up a lot the user does something -and then the user does something else -and you're like okay well forget about -that old thing you don't want to keep -doing it so a cancellation model is nice -because that wasn't there and because -even the boost futures with -continuations will deadlock on a single -threaded system which I consider a bug -they shouldn't but they do it's a part -of their their their implementation I -ended up writing this experimental -library which is available on that -website and I've got futures in there -that support multiple continuations and -they can be copied they're optimized for -our values so you can have move only -types with them it supports joins for -winning and win all it has cancellation -on destruction as well as an explicit -recess reset and it has a detach so you -can detach a future meaning that but now -I can destruct this but I still want -whatever it's associated with to -continue processing right just like you -would detach a thread and say keep going -even though though I'm destructing my my -toe -and hold on to it so I put this library -out there and I have to thank Felix -petrosini who's in Germany who's been -just a massive contributor and so when I -wrote it I wrote it to the extent that I -needed it and going to show it to the -standard folks and say here's some -issues with the direction you're going -and a Felix is really kind of flushed it -out and and our goal now is to release -kind of a 1.0 version sometime earlier -this year that's there but futures -aren't enough right so the next thing is -to talk about channels and I am probably -way over time aren't I at this point I'm -not seen any hands -since this took me a little longer to go -through then I wanted to I will stop -here Kevin's already talked some about -the basic concepts of channels channels -are also in my library so if you want me -to to discuss them just see me outside -of this and the last thing I will just -flip through slides very quickly but I -wanted to finish on that slide won't let -me go too quick all these great -animations -channels it is this what we're building -here is dependency graphs within the -code and it turns out there's a lot of -information in the graph right when -you're building channels and you're -building futures you're building -dependency graphs and there's a lot of -information that's in the graph but -these are are what I call incidental -data structures right there isn't is no -place within your code where it's like -here's my dependency graph okay which -makes it makes it nearly impossible to -mine that graph for values especially if -you want information about all the -possible states of that graph -so maybe constructing these dependency -graphs is is not the right approach -instead maybe we should be actually -writing the graph to script descriptions -and and compiling those and statically -validate them and I've got a whole body -of work and a bunch of published papers -on something called property models -which is exactly that which is how do -you describe dependency graphs and flows -between states and reason about them -outside so if anybody wants to talk on -that way outside the scope of this talk -but I'd be happy to and there are some -slides there for my papers and -presentations and the library and what -we're talking about here largely is -communicating sequential processes which -is which is from Tony Hoare and his book -is now out of publication but freely -available online and so that's the link -to CSP so thank you and sorry for not -paying attention to the time and running \ No newline at end of file diff --git a/better-code/figures/05-dead_lock.svg b/better-code/figures/05-dead_lock.svg new file mode 100644 index 0000000..171394f --- /dev/null +++ b/better-code/figures/05-dead_lock.svg @@ -0,0 +1,447 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + Task + + + + Task + + + + Taska + + Taskb + + + + + Task + + + + Task + + + + + Task + + + + Taskb + + + + STOP + + + From cf7b4722c8c70f50906ac5f652f3892c1c93015c Mon Sep 17 00:00:00 2001 From: Felix Petriconi Date: Mon, 4 Jan 2021 15:15:16 +0100 Subject: [PATCH 11/17] Small improvements --- better-code/05-concurrency.md | 12 ++++-- better-code/figures/05-dead_lock.svg | 56 ++++++++++------------------ 2 files changed, 28 insertions(+), 40 deletions(-) diff --git a/better-code/05-concurrency.md b/better-code/05-concurrency.md index 89ed0da..82f3c1d 100644 --- a/better-code/05-concurrency.md +++ b/better-code/05-concurrency.md @@ -189,17 +189,21 @@ The same approach is taken for pushing an item into the queue in the `async()` f The task system reaches now about 85% of the performance of the reference implementation. -So the first goal reducing the number of arbitrary thread is fulfilled; the number of context switches can be minimized by using a task system. But as soon as each individual application on a machine uses its own instance of a task system there is again the problem of over subscription, because each instance would start as many threads as there are cores. -Such a task system has an other problem. There is the risk of dead-locks. +So the first goal reducing the number of arbitrary thread is fulfilled; the number of context switches can be minimized by using a task system. But as soon as each individual application on a machine uses its own instance of a task system, there is again the problem of over subscription because each instance would start as many threads as there are cores. +Such a task system of fixed number of threads has an other problem. There is the risk of dead-locks. {% include figure.md name='05-dead_lock' caption='Dead lock within queued tasks' %} As soon as a task `a` creates a new task `b` and the progress of `a` depends on the result of task `b` and task `b` got stuck in the queue behind `a` then the system is in a dead-lock. Figure [](#05-dead_lock) illustrates the problem just with a single queue. But the same problem is there with multiple queues and depending tasks get stuck behind other tasks that are blocked because they are waiting for getting a lock on a mutex or waiting for an other result. -So the only solution to reduce the problem having unbound number of threads and dead-locks is that all application within a system use the same task system. Only a task system on OS's kernel level has knowledge about threads that currently don't make progress and so can spawn new threads to prevent the dead-lock situation. -MacOS and Windows provide here out of the box a thread pool through a low level API. +So the only solution to reduce the problem of having an unbound number of threads and the probability of dead-locks because of depending tasks is that all application within a system use the same task system. Only a task system on OS's kernel level has knowledge about threads that currently don't make progress and can spawn new threads to prevent the dead-lock situation. +MacOS and Windows e.g. provide here out of the box a task system through a low level API. +{::comment} +Shall call backs be discussed here? Technically they don't introduce a problem. But from the point of view of maintenability it is one, because the control flow is hard to understand. +{:/comment} + ### Problems of call backs * Contra: Hard dto reason about the flow in the code * Contra: Callback must be set beforehand, futures can be attached later diff --git a/better-code/figures/05-dead_lock.svg b/better-code/figures/05-dead_lock.svg index 171394f..16923e0 100644 --- a/better-code/figures/05-dead_lock.svg +++ b/better-code/figures/05-dead_lock.svg @@ -164,11 +164,11 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="2.8" - inkscape:cx="1.1825314" - inkscape:cy="187.22356" + inkscape:zoom="31.678384" + inkscape:cx="241.33688" + inkscape:cy="255.45979" inkscape:document-units="mm" - inkscape:current-layer="g364-1-0-1-5-3" + inkscape:current-layer="layer1" inkscape:document-rotation="0" showgrid="true" inkscape:window-width="2482" @@ -194,7 +194,7 @@ image/svg+xml - + @@ -378,13 +378,13 @@ Task b + id="g1553" + transform="matrix(0.22545791,0,0,0.22545791,109.68474,164.16451)"> - STOP + style="fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:1.965;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 100.54167,88.635417 19.84375,31.750003 H 80.697917 Z" + id="path833" + sodipodi:nodetypes="cccc" /> + From 0f1b9a1f7531a03aeceed92e50f95dc71edd852f Mon Sep 17 00:00:00 2001 From: Felix Petriconi Date: Mon, 4 Jan 2021 22:00:13 +0100 Subject: [PATCH 12/17] Reformat all code examples with new .clang-format --- better-code/code/05-background_worker.cpp | 77 ++++++++++---------- better-code/code/05-bad_cow.cpp | 16 ++-- better-code/code/05-correct_cow.cpp | 43 +++++------ better-code/code/05-notification_queue-1.cpp | 39 +++++----- better-code/code/05-notification_queue-2.cpp | 49 ++++++------- better-code/code/05-notification_queue-3.cpp | 42 +++++------ better-code/code/05-registry-0.cpp | 28 +++---- better-code/code/05-registry-1.cpp | 39 +++++----- better-code/code/05-registry-2.cpp | 57 ++++++++------- better-code/code/05-task_system-1.cpp | 45 ++++++------ better-code/code/05-task_system-2.cpp | 12 ++- better-code/code/05-task_system-3.cpp | 43 ++++++----- better-code/code/05-task_system-4.cpp | 52 +++++++------ better-code/code/sort-subrange-0.cpp | 4 +- better-code/code/sort-subrange-1.cpp | 12 +-- 15 files changed, 275 insertions(+), 283 deletions(-) diff --git a/better-code/code/05-background_worker.cpp b/better-code/code/05-background_worker.cpp index a1b1e3b..636e93a 100644 --- a/better-code/code/05-background_worker.cpp +++ b/better-code/code/05-background_worker.cpp @@ -1,47 +1,46 @@ using lock_t = unique_lock; -class background_worker -{ - thread _thread; - queue> _queue; - mutex _mutex; - condition_variable _ready; - bool _done; +class background_worker { + thread _thread; + queue> _queue; + mutex _mutex; + condition_variable _ready; + bool _done; -public: - background_worker() { - auto worker = [this] { - while (true) { - function task; - { - lock_t lock{ _mutex }; - while (!_done && _queue.empty()) _ready.wait(lock); - if (_done) return; - if (!_queue.empty()) { - task = move(_queue.front()); - _queue.pop(); - } - } - if (task) task(); - } - }; - _thread = thread(worker); - } - - ~background_worker() { + public: + background_worker() { + auto worker = [this] { + while (true) { + function task; { - lock_t lock{_mutex}; - _done = true; + lock_t lock{_mutex}; + while (!_done && _queue.empty()) _ready.wait(lock); + if (_done) return; + if (!_queue.empty()) { + task = move(_queue.front()); + _queue.pop(); + } } - _ready.notify_one(); - _thread.join(); + if (task) task(); + } + }; + _thread = thread(worker); + } + + ~background_worker() { + { + lock_t lock{_mutex}; + _done = true; } - - void submit_task(function task) { - { - lock_t lock{_mutex}; - _queue.emplace(move(task)); - } - _ready.notify_one(); + _ready.notify_one(); + _thread.join(); + } + + void submit_task(function task) { + { + lock_t lock{_mutex}; + _queue.emplace(move(task)); } + _ready.notify_one(); + } }; \ No newline at end of file diff --git a/better-code/code/05-bad_cow.cpp b/better-code/code/05-bad_cow.cpp index 3890f3a..347fe9b 100644 --- a/better-code/code/05-bad_cow.cpp +++ b/better-code/code/05-bad_cow.cpp @@ -1,13 +1,11 @@ template -class bad_cow -{ - struct object_t - { - explicit object_t(const T& x) : _data(x) {} - atomic _count{1}; - T _data; - }; - object_t* _object; +class bad_cow { + struct object_t { + explicit object_t(const T& x) : _data(x) {} + atomic _count{1}; + T _data; + }; + object_t* _object; public: explicit bad_cow(const T& x) : _object(new object_t(x)) { } diff --git a/better-code/code/05-correct_cow.cpp b/better-code/code/05-correct_cow.cpp index c3dcb1b..2a0bf58 100644 --- a/better-code/code/05-correct_cow.cpp +++ b/better-code/code/05-correct_cow.cpp @@ -1,26 +1,27 @@ template -class correct_cow -{ - struct object_t - { - explicit object_t(const T& x) : _data(x) {} - atomic _count{1}; - T _data; - }; - object_t* _object; +class correct_cow { + struct object_t { + explicit object_t(const T& x) : _data(x) {} + atomic _count{1}; + T _data; + }; + object_t* _object; public: - explicit correct_cow(const T& x) : _object(new object_t(x)) { } - ~correct_cow() { if (0 == --_object->_count) delete _object; } - correct_cow(const correct_cow& x) : _object(x._object) { ++_object->_count; } - - correct_cow& operator=(const T& x) { - if (_object->_count == 1) _object->_data = x; - else { - object_t* tmp = new object_t(x); - if (0 == --_object->_count) delete _object; - _object = tmp; - } - return *this; + explicit correct_cow(const T& x) : _object(new object_t(x)) {} + ~correct_cow() { + if (0 == --_object->_count) delete _object; + } + correct_cow(const correct_cow& x) : _object(x._object) { ++_object->_count; } + + correct_cow& operator=(const T& x) { + if (_object->_count == 1) + _object->_data = x; + else { + object_t* tmp = new object_t(x); + if (0 == --_object->_count) delete _object; + _object = tmp; } + return *this; + } }; \ No newline at end of file diff --git a/better-code/code/05-notification_queue-1.cpp b/better-code/code/05-notification_queue-1.cpp index 9e9e981..d01b97e 100644 --- a/better-code/code/05-notification_queue-1.cpp +++ b/better-code/code/05-notification_queue-1.cpp @@ -1,27 +1,26 @@ using lock_t = unique_lock; -class notification_queue -{ - deque> _q; - mutex _mutex; - condition_variable _ready; +class notification_queue { + deque> _q; + mutex _mutex; + condition_variable _ready; -public: - void pop(function& x) { - lock_t lock{_mutex}; + public: + void pop(function& x) { + lock_t lock{_mutex}; - while (_q.empty()) _ready.wait(lock); - - x = move(_q.front()); - _q.pop_front(); - } + while (_q.empty()) _ready.wait(lock); + + x = move(_q.front()); + _q.pop_front(); + } - template - void push(F&& f) { - { - lock_t lock{_mutex}; - _q.emplace_back(forward(f)); - } - _ready.notify_one(); + template + void push(F&& f) { + { + lock_t lock{_mutex}; + _q.emplace_back(forward(f)); } + _ready.notify_one(); + } }; \ No newline at end of file diff --git a/better-code/code/05-notification_queue-2.cpp b/better-code/code/05-notification_queue-2.cpp index 5c7c9f6..1c422a7 100644 --- a/better-code/code/05-notification_queue-2.cpp +++ b/better-code/code/05-notification_queue-2.cpp @@ -1,30 +1,29 @@ -class notification_queue -{ - deque> _q; - bool _done{false}; - mutex _mutex; - condition_variable _ready; +class notification_queue { + deque> _q; + bool _done{false}; + mutex _mutex; + condition_variable _ready; - public: - void done() { - { - lock_t lock{_mutex}; - _done = true; - } - _ready.notify_all(); + public: + void done() { + { + lock_t lock{_mutex}; + _done = true; } + _ready.notify_all(); + } - bool pop(function& x) { - lock_t lock{_mutex}; - - while (_q.empty() && !_done) _ready.wait(lock); - - if (_q.empty()) return false; - - x = move(_q.front()); - _q.pop_front(); - return true; - } + bool pop(function& x) { + lock_t lock{_mutex}; + + while (_q.empty() && !_done) _ready.wait(lock); + + if (_q.empty()) return false; + + x = move(_q.front()); + _q.pop_front(); + return true; + } - ... + ... }; \ No newline at end of file diff --git a/better-code/code/05-notification_queue-3.cpp b/better-code/code/05-notification_queue-3.cpp index 1415801..6e5cf7b 100644 --- a/better-code/code/05-notification_queue-3.cpp +++ b/better-code/code/05-notification_queue-3.cpp @@ -1,26 +1,26 @@ class notification_queue { - deque> _q; - bool _done{false}; - mutex _mutex; - condition_variable _ready; + deque> _q; + bool _done{false}; + mutex _mutex; + condition_variable _ready; - public: - bool try_pop(function& x) { - lock_t lock{_mutex, try_to_lock}; - if (!lock || _q.empty()) return false; - x = move(_q.front()); - _q.pop_front(); - return true; - } + public: + bool try_pop(function& x) { + lock_t lock{_mutex, try_to_lock}; + if (!lock || _q.empty()) return false; + x = move(_q.front()); + _q.pop_front(); + return true; + } - template - bool try_push(F&& f) { - { - lock_t lock{_mutex, try_to_lock}; - if (!lock) return false; - _q.emplace_back(forward(f)); - } - _ready.notify_one(); - return true; + template + bool try_push(F&& f) { + { + lock_t lock{_mutex, try_to_lock}; + if (!lock) return false; + _q.emplace_back(forward(f)); } + _ready.notify_one(); + return true; + } }; \ No newline at end of file diff --git a/better-code/code/05-registry-0.cpp b/better-code/code/05-registry-0.cpp index 8a4527f..eeddffa 100644 --- a/better-code/code/05-registry-0.cpp +++ b/better-code/code/05-registry-0.cpp @@ -1,15 +1,15 @@ -class registry -{ - mutex _mutex; - unordered_map _map; - public: - void set(string key, string value) { - unique_lock lock{mutex}; - _map.emplace(move(key), move(value)); - } - - auto get(const string& key) -> string { - unique_lock lock{mutex}; - return _map.at(key); - } +class registry { + mutex _mutex; + unordered_map _map; + + public: + void set(string key, string value) { + unique_lock lock{mutex}; + _map.emplace(move(key), move(value)); + } + + auto get(const string& key) -> string { + unique_lock lock{mutex}; + return _map.at(key); + } }; \ No newline at end of file diff --git a/better-code/code/05-registry-1.cpp b/better-code/code/05-registry-1.cpp index 4cd4723..9e7ddc9 100644 --- a/better-code/code/05-registry-1.cpp +++ b/better-code/code/05-registry-1.cpp @@ -1,20 +1,21 @@ -class registry -{ - serial_queue _q; - - using map_t = unordered_map; - - shared_ptr _map = make_shared(); -public: - void set(string key, string value) { - _q.async([_map = _map](string key, string value) { - _map->emplace(move(key), move(value)); - }, move(key), move(value)); - } - - auto get(string key) -> future { - return _q.async([_map = _map](string key) { - return _map->at(key); - }, move(key)); - } +class registry { + serial_queue _q; + + using map_t = unordered_map; + + shared_ptr _map = make_shared(); + + public: + void set(string key, string value) { + _q.async( + [_map = _map](string key, string value) { + _map->emplace(move(key), move(value)); + }, + move(key), move(value)); + } + + auto get(string key) -> future { + return _q.async([_map = _map](string key) { return _map->at(key); }, + move(key)); + } }; \ No newline at end of file diff --git a/better-code/code/05-registry-2.cpp b/better-code/code/05-registry-2.cpp index 883a5be..9137a31 100644 --- a/better-code/code/05-registry-2.cpp +++ b/better-code/code/05-registry-2.cpp @@ -1,29 +1,30 @@ -class registry -{ - serial_queue _q; - - using map_t = unordered_map; - - shared_ptr _map = make_shared(); -public: - void set(string key, string value) { - _q.async([_map = _map](string key, string value) { - _map->emplace(move(key), move(value)); - }, move(key), move(value)); - } - - void set(vector> sequence) { - _q.async([_map = _map](vector> sequence) { - _map->insert( - make_move_iterator(begin(sequence)), - make_move_iterator(end(sequence)) - ); - }, move(sequence)); - } - - auto get(string key) -> future { - return _q.async([_map = _map](string key) { - return _map->at(key); - }, move(key)); - } +class registry { + serial_queue _q; + + using map_t = unordered_map; + + shared_ptr _map = make_shared(); + + public: + void set(string key, string value) { + _q.async( + [_map = _map](string key, string value) { + _map->emplace(move(key), move(value)); + }, + move(key), move(value)); + } + + void set(vector> sequence) { + _q.async( + [_map = _map](vector> sequence) { + _map->insert(make_move_iterator(begin(sequence)), + make_move_iterator(end(sequence))); + }, + move(sequence)); + } + + auto get(string key) -> future { + return _q.async([_map = _map](string key) { return _map->at(key); }, + move(key)); + } }; \ No newline at end of file diff --git a/better-code/code/05-task_system-1.cpp b/better-code/code/05-task_system-1.cpp index 0754769..cfbc1e6 100644 --- a/better-code/code/05-task_system-1.cpp +++ b/better-code/code/05-task_system-1.cpp @@ -1,30 +1,29 @@ -class task_system -{ - const unsigned _count{thread::hardware_concurrency()}; - vector _threads; - notification_queue _q; +class task_system { + const unsigned _count{thread::hardware_concurrency()}; + vector _threads; + notification_queue _q; - void run(unsigned i) { - while (true) { - function f; - _q.pop(f); - f(); - } + void run(unsigned i) { + while (true) { + function f; + _q.pop(f); + f(); } + } -public: - task_system() { - for (unsigned n = 0; n != _count; ++n) { - _threads.emplace_back([&, n]{ run(n); }); - } + public: + task_system() { + for (unsigned n = 0; n != _count; ++n) { + _threads.emplace_back([&, n] { run(n); }); } + } - ~task_system() { - for (auto& e : _threads) e.join(); - } + ~task_system() { + for (auto& e : _threads) e.join(); + } - template - void async(F&& f) { - _q.push(forward(f)); - } + template + void async(F&& f) { + _q.push(forward(f)); + } }; \ No newline at end of file diff --git a/better-code/code/05-task_system-2.cpp b/better-code/code/05-task_system-2.cpp index 1653950..2e6a8dd 100644 --- a/better-code/code/05-task_system-2.cpp +++ b/better-code/code/05-task_system-2.cpp @@ -1,9 +1,7 @@ class task_system { - - public: - ~task_system() { - for (auto& e : _q) e.done(); - for (auto& e : _threads) e.join(); - } - + public: + ~task_system() { + for (auto& e : _q) e.done(); + for (auto& e : _threads) e.join(); + } }; \ No newline at end of file diff --git a/better-code/code/05-task_system-3.cpp b/better-code/code/05-task_system-3.cpp index 0fac854..98875fd 100644 --- a/better-code/code/05-task_system-3.cpp +++ b/better-code/code/05-task_system-3.cpp @@ -1,27 +1,26 @@ -class task_system -{ - const unsigned _count{thread::hardware_concurrency()}; - vector _threads; - vector _q{_count}; - atomic _index{0}; +class task_system { + const unsigned _count{thread::hardware_concurrency()}; + vector _threads; + vector _q{_count}; + atomic _index{0}; - void run(unsigned i) { - while (true) { - function f; - if (!_q[i].pop(f)) break; - f(); - } + void run(unsigned i) { + while (true) { + function f; + if (!_q[i].pop(f)) break; + f(); } + } -public: - ~task_system() { - for (auto& e : _q) e.done(); - for (auto& e : _threads) e.join(); - } + public: + ~task_system() { + for (auto& e : _q) e.done(); + for (auto& e : _threads) e.join(); + } - template - void async(F&& f) { - auto i = _index++; - _q[i % _count].push(forward(f)); - } + template + void async(F&& f) { + auto i = _index++; + _q[i % _count].push(forward(f)); + } }; \ No newline at end of file diff --git a/better-code/code/05-task_system-4.cpp b/better-code/code/05-task_system-4.cpp index 6f6215b..72e5dc8 100644 --- a/better-code/code/05-task_system-4.cpp +++ b/better-code/code/05-task_system-4.cpp @@ -1,36 +1,34 @@ -class task_system -{ - const unsigned _count{thread::hardware_concurrency()}; - const unsigned _spin{_count<64? 64 : _count}; +class task_system { + const unsigned _count{thread::hardware_concurrency()}; + const unsigned _spin{_count < 64 ? 64 : _count}; - vector _threads; - vector _q{_count}; - atomic _index{0}; + vector _threads; + vector _q{_count}; + atomic _index{0}; + void run(unsigned i) { + while (true) { + function f; - void run(unsigned i) { - while (true) { - function f; + // TODO Take _spin / _count or something different? + for (unsigned n = 0; n != _spin / _count; ++n) { + if (_q[(i + n) % _count].try_pop(f)) break; + } + if (!f && !_q[i].pop(f)) break; - // TODO Take _spin / _count or something different? - for (unsigned n = 0; n != _spin / _count; ++n) { - if (_q[(i + n) % _count].try_pop(f)) break; - } - if (!f && !_q[i].pop(f)) break; - - f(); - } + f(); } + } -public: - template - void async(F&& f) { - auto i = _index++; - - for (unsigned n = 0; n != _spin / _count; ++n) { - if (_q[(i + n) % _count].try_push(forward(f))) return; - } + public: + template + void async(F&& f) { + auto i = _index++; - _q[i % _count].push(forward(f)); + for (unsigned n = 0; n != _spin / _count; ++n) { + if (_q[(i + n) % _count].try_push(forward(f))) return; } + + _q[i % _count].push(forward(f)); + } }; \ No newline at end of file diff --git a/better-code/code/sort-subrange-0.cpp b/better-code/code/sort-subrange-0.cpp index e161a05..60e88e3 100644 --- a/better-code/code/sort-subrange-0.cpp +++ b/better-code/code/sort-subrange-0.cpp @@ -1,4 +1,4 @@ -template // I models RandomAccessIterator +template // I models RandomAccessIterator void sort_subrange_0(I f, I l, I sf, I sl) { - std::sort(f, l); + std::sort(f, l); } \ No newline at end of file diff --git a/better-code/code/sort-subrange-1.cpp b/better-code/code/sort-subrange-1.cpp index e727012..8ce7d94 100644 --- a/better-code/code/sort-subrange-1.cpp +++ b/better-code/code/sort-subrange-1.cpp @@ -1,8 +1,8 @@ -template // I models RandomAccessIterator +template // I models RandomAccessIterator void sort_subrange_1(I f, I l, I sf, I sl) { - std::nth_element(f, sf, l); // partitions [f, l) at sf - if (sf != l) { - ++sf; - std::partial_sort(sf, sl, l); - } + std::nth_element(f, sf, l); // partitions [f, l) at sf + if (sf != l) { + ++sf; + std::partial_sort(sf, sl, l); + } } \ No newline at end of file From c5fd4684a245e9badf2359aafedd85fd1ac46350 Mon Sep 17 00:00:00 2001 From: Felix Petriconi Date: Wed, 6 Jan 2021 17:45:52 +0100 Subject: [PATCH 13/17] First pass with Grammarly --- better-code/05-concurrency.md | 82 ++++++++++++++-------------- better-code/figures/05-dead_lock.svg | 6 +- 2 files changed, 44 insertions(+), 44 deletions(-) diff --git a/better-code/05-concurrency.md b/better-code/05-concurrency.md index 82f3c1d..8bef9a2 100644 --- a/better-code/05-concurrency.md +++ b/better-code/05-concurrency.md @@ -9,23 +9,23 @@ chapter: 5 ### Motivation -_Concurrency_ is when multiple tasks start, run, and complete in overlapping time periods and should not be confused with _parallelism_ which is when multiple tasks execute simultaneously. Parallelism requires some form of hardware support, where as concurrency can be achieved strictly through software, such as a cooperative tasking system. +_Concurrency_ is when multiple tasks start, run, and complete in overlapping time-periods and should not be confused with _parallelism_ which is when multiple tasks execute simultaneously. Parallelism requires some form of hardware support, whereas concurrency can be achieved strictly through software, such as a cooperative tasking system. -There are two primary benefits for concurrent code. The first is performance by enabling parallelism. The second is to improve interactivity by not blocking the user while a prior action is being processed. +There are two primary benefits of concurrent code. The performance is the first by enabling parallelism. The second is to improve interactivity by not blocking the user while a prior action is being processed. -As clock rates on systems have stagnated, hardware developers have turned to parallelism to increase performance. Figure [xxx] shows the performance distribution on a typical desktop system. A single threaded, non-vectorized, application can only utilize about 0.25% of the performance capabilities of the machine. +As clock rates on systems have stagnated, hardware developers have turned to parallelism to increase performance. Figure [xxx] shows the performance distribution on a typical desktop system. A single-threaded, non-vectorized, application can only utilize about 0.25% of the performance capabilities of the machine. The goal of this chapter is to develop concurrent code without using raw synchronization primitives. ### Definition of _raw synchronization primitives_ -A _raw synchronization primitive_ is a low level construct used to synchronize access to data. Examples include locks and mutexes, condition variables, semaphores, atomic operations and memory fences. +A _raw synchronization primitive_ is a low-level construct used to synchronize access to data. Examples include locks and mutexes, condition variables, semaphores, atomic operations, and memory fences. -{::comment} Discuss difference between data parallelism and task concurrency, so far this chapter is only dealing with tasking. However, it could be expanded upon. {:/comment} +{::comment} Discuss the difference between data parallelism and task concurrency, so far this chapter is only dealing with tasking. However, it could be expanded upon. {:/comment} ### Problems of _raw synchronization primitives_ -The first problem with raw synchronization primitives is that they are exceedingly error prone to use because, by definition, they require reasoning about non-local effects. +The first problem with raw synchronization primitives is that they are exceedingly error-prone to use because, by definition, they require reasoning about non-local effects. For example, the following is a snippet from a copy-on-write[^cow_definition] data type, this is a simplified version of code from a shipping system. @@ -43,7 +43,7 @@ The code of the complete, correct implementations is available online[^cow]. Another problem with raw synchronization primitives is that their use can have a large negative impact on system performance. To understand why, we need to understand Amdahl's Law. -The intuition behind Amdahl's Law is that if a part of system takes time x to complete on a single core or processor, then it will encounter a speedup of y if it is run on y cores, but only if no synchronization takes places between the different cores or processors. +The intuition behind Amdahl's Law is that if a part of the system takes time x to complete on a single core or processor, then it will encounter a speedup of y if it is run on y cores, but only if no synchronization takes places between the different cores or processors. $$S(N) = \frac{1}{(1-P)+\frac{P}{N}}$$ Where the speedup $$S$$ is defined by this equation. $$P$$ is hereby the amount of synchronization in the range of $$[0 .. 1]$$ and $$N$$ the number of cores or processors. @@ -51,7 +51,7 @@ Drawing the abscissa in logarithmic scale illustrates that there is only a speed {% include figure.md name='05-amdahl_log' caption="Amdahl's law logarithmic scale" %} -Since most desktop or mobile processors have less than 64 cores, it is better to take a look at the graph with linear scale. Each line below the diagonal represents 10% more of serialisation. So if the application just has 10% of serialisation and it is running on 16 cores then the speed-up is just a little better than factor of six. +Since most desktop or mobile processors have less than 64 cores, it is better to take a look at the graph with a linear scale. Each line below the diagonal represents 10% more serialization. So if the application just has 10% of serialization and it is running on 16 cores then the speed-up is just a little better than the factor of six. {% include figure.md name='05-amdahl_lin' caption="Amdahl's law linear scale" %} @@ -61,25 +61,25 @@ The following illustrates an often used model for implementing exclusive access {% include figure.md name='05-traditional_locking-1' caption="Different threads need access to single object" %} -As soon as the different threads do not only want to read the single object, but need write access as well, it is necessary to give just a single thread exclusive access. (Otherwise undefined behavior is the result.) All other threads have to wait for their turn to get read or access. +As soon as the different threads do not only want to read the single object, but need write access as well, it is necessary to give just a single thread exclusive access. (Otherwise, undefined behavior is the result.) All other threads have to wait for their turn to get read or access. {% include figure.md name='05-traditional_locking-2' caption="Exclusive access with locking" %} -When the one threads does not need any more its exclusive access it gives its up. +When the one thread does not need anymore its exclusive access, it gives its up. {% include figure.md name='05-traditional_locking-3' caption="Exclusive access by different threads" %} And the next thread can get the exclusive [^access]. -This is a horrible way to think about threading. The goal has to be to minimize waiting at all costs. David [^Butenhof], one of the POSIX implementors, coined the phrase that mutex should be better named bottleneck, because of the property of slowing down an application. +This is a horrible way to think about threading. The goal has to be to minimize waiting at all costs. David [^Butenhof], one of the POSIX implementors, coined the phrase that mutex should be named better bottleneck, because of the property of slowing down an application. In the following, let's take a look at a traditional piece of code: {% include code.md name='05-registry-0' caption='Registry example' %} -It is a registry class with a shared `set` and `get` function. The access to the underlying unordered map is protected against concurrent access with a mutex. At the first glance it seems that only minimal work is done under the mutex. The unordered map is a fairly efficient data structure, it is a hash map. But the amount of time it takes to hash the key depends on the length of the string. So the work that is being done under the lock here is actually fairly unbounded. It depends completely on the lengths of the string. It may be probably typically small but it could be big. On top of the hash calculation comes a potentially allocation of a new bucket within the unordered map, which in most cases requires another lock within the memory manager. This lock can be, depending on the operating system, a global lock within the process. +It is a registry class with a shared `set` and `get` function. The access to the underlying unordered map is protected against concurrent access with a mutex. At the first glance, it seems that only minimal work is done under the mutex. The unordered map is a fairly efficient data structure, it is a hash map. But the amount of time it takes to hash the key depends on the length of the string. So the work that is being done under the lock here is fairly unbounded. It depends completely on the lengths of the string. It may be probably typically small but it could be big. On top of the hash calculation comes a potential allocation of a new bucket within the unordered map, which in most cases requires another lock within the memory manager. This lock can be, depending on the operating system, a global lock within the process. -For a better understanding what shall be actually achieved by using the locks it is necessary to take step back. The C++ standard states here: _It can be shown that programs that correctly use mutexes and memory\_order\_seq\_cst operations to prevent all data races and use no other synchronization operations behave as if the operations executed by their constituent threads were simply interleaved, with each value computation of an object being taken from the last side effect on that object in that interleaving. This is normally referred to as ‘sequential consistency.’_, C++11 Standard 1.10.21. +For a better understanding of the purpose of using locks, it is necessary to take a step back. The C++ standard states here: _It can be shown that programs that correctly use mutexes and memory\_order\_seq\_cst operations to prevent all data races and use no other synchronization operations behave as if the operations executed by their constituent threads were simply interleaved, with each value computation of an object being taken from the last side effect on that object in that interleaving. This is normally referred to as ‘sequential consistency.’_, C++11 Standard 1.10.21. So why is this an important sentence? It means that one can always think about mutexes as if one has some set of interleaved operations. @@ -92,44 +92,44 @@ So why is this an important sentence? It means that one can always think about m * Each operation may yield a result, $$r_m$$, which can communicate information about the state of $$x$$ while it’s associated operation was executed * The same is true of all atomic operations -So there is not a lot of difference between an `std::atomic`. In fact there is a call on `std::atomic` that returns `true`, if it is lock free. This means the processor supports to do that as an atomic item within the processor or is there not processor support and the compiler has to generate a mutex pair to lock, make the change on the atomic operation, and do the unlock. So all that mutexes and locks are the way to construct atomic operations. +So there is not a lot of difference between a `std::atomic`. In fact there, is a call on `std::atomic` that returns `true`, if it is lock-free. This means the processor supports to do that as an atomic item within the processor or is there, not processor support and the compiler has to generate a mutex pair to lock, make the change on the atomic operation, and do the unlock. So all that mutexes and locks are the way to construct atomic operations. That means that any piece of code that has a mutex can be transformed into a queued model. This idea applied to the registry example from above leads to this: {% include code.md name='05-registry-1' caption='Registry with queue' %} Given that there is a serial queue `_q` with an `async` function which executes the passed item and it uses the same calling conventions as `std::async`. Hereby with the difference that it guarantees that the next item being processed in that queue doesn't start until the previous one is completed. Then one can rewrite the `set` string function to be executed with `_q.async`. -As well one can rewrite the `get` string operation. But here the difference is, that one needs the result back out, paired with that particular `get`. It is realized here with a future. (Futures will be covered later in more detail.) So the result of the `get` function, e.g. with a continuation, can be used whenever the `key` is hashed and and the lookup in the hash is completed. +As well one can rewrite the `get` string operation. But here the difference is, that one needs the result back out, paired with that particular `get`. It is realized here with a future. (Futures will be covered later in more detail.) So the result of the `get` function, e.g. with a continuation, can be used whenever the `key` is hashed and the lookup in the hash is completed. {% include code.md name='05-registry-2' caption='Enhanced registry with queue' %} -Why is it important to understand this concept? Because at any place with a mutex in the code one can always make this transformation. One can always transform it into a serialized queue model. And this means that within the serialized queue model anytime somebody can come along and calls `set`, regardless of the amount of work that `set` takes, the time it takes for `set` to return back to the caller itself constant. This means as well that one can add something like an arbitrary `set`, e.g a whole vector of key value pairs. And to the caller this `set` will take just as much time as the previous `set`. It's a non blocking operation with an upper bound of overhead. +Why is it important to understand this concept? Because at any place with a mutex in the code one can always make this transformation. One can always transform it into a serialized queue model. And this means that within the serialized queue model anytime somebody can come along and calls `set`, regardless of the amount of work that `set` takes, the time it takes for `set` to return to the caller itself constant. This means as well that one can add something like an arbitrary `set`, e.g a whole vector of key-value pairs. And to the caller, this `set` will take just as much time as the previous `set`. It's a non-blocking operation with an upper bound of overhead. ### Problems of _raw threads_ -A _thread_ is a execution environment consisting of a stack and processor state running in parallel to other threads. +A _thread_ is an execution environment consisting of a stack and processor state running in parallel to other threads. A _task_ is a unit of work, often a function, to be executed on a thread. Another common scenario is that increased work within an application is outsourced to a spawned background thread with the intent that the available CPU cores are better utilized. {% include figure.md name='05-background_thread' caption='Background thread executing tasks' %} -Since this is recognized as a successful idiom to solve performance problems of an application, it becomes easily the default way to solve such issues. +Since this is recognized as a successful idiom to solve performance problems of an application, it becomes easy the default way to solve such issues. {% include code.md name='05-background_worker' caption='Simple background worker' %} Over time the application gets enhanced with more modules and plugins. When now for each of these the same idea was applied then the complete application uses a huge number of threads. -An over subscription of threads is then easily the case. That means that more threads are used than CPU cores are available. So the kernel of the operating system has to constantly switch the threads between the available cores to prevent starvation of single threads. -Within such a switch - named context switch - the CPU registers, program counter and stack pointer of the old thread are saved and the ones from the new thread needs to be restored. This save and restore takes time that is lost for computational tasks of an application. Beside this the translation lookaside buffer (TLB) must be flushed and the page table of the next process is loaded. The flushing of the TLB causes that the memory access of the new thread is slower in the beginning. This causes an additional slow down. +An over-subscription of threads is then easily the case. That means that more threads are used than CPU cores are available. So the kernel of the operating system has to constantly switch the threads between the available cores to prevent starvation of single threads. +Within such a switch - named context switch - the CPU registers, program counter, and stack pointer of the old thread are saved and the ones from the new thread need to be restored. This saving and restoring take time that is lost for computational tasks of an application. Besides this, the translation lookaside buffer (TLB) must be flushed and the page table of the next process is loaded. The flushing of the TLB causes that the memory access of the new thread is slower in the beginning. This causes an additional slow down. So the goal has to be that the number of context switches is as low as possible. -One way to archive this goal is to use a task system. A task system uses a set of threads, normally equal to the number of CPU cores and distributes the submitted tasks over the available threads. In case that more tasks are submitted than free threads are available then they are put into a queue and whenever one is done the next task is taken from the queue and executed. +One way to archive this goal is to use a task system. A task system uses a set of threads, normally equal to the number of CPU-cores and distributes the submitted tasks over the available threads. In case that more tasks are submitted than free threads are available then they are put into a queue and whenever one is done the next task is taken from the queue and executed. {% include figure.md name='05-simple_tasking_system' caption='Simple task system' %} Since the number of threads is constant, ideally there is no need to perform any context switches. (Because of simplification reasons a fact is here ignored that other system services have running threads as well so there are happening context switches in any case.) A task system within an application is an appropriate measure to reduce the number of context switches as long as all modules within it use the same instance of the task system. -For illustration purpose and a better understanding of the implications within such a task system, its code is developed in the following. +To illustrate the purpose and gaining a better understanding of the implications within such a task system, its code is developed in the following. The [figure](#05-simple_tasking_system) above shows that the task system consist out of a notification queue: @@ -139,7 +139,7 @@ This notification queue consists of a `deque` of `std::function` with a `mutex` {% include code.md name='05-task_system-1' caption='Task system class' %} -The task system has a `_count` member which is set to the number of available cores. The system has a vector of threads and the notification queue. The `run()` function is the function that will be executed by the threads. Inside that function is an empty function object. As soon as an item is available in the queue, it pops it from the queue and executes it and tries to pick the next one. +The task system has a `_count` member which is set to the number of available cores. The system has a vector of threads and the notification queue. The `run()` function is the function that will be executed by the threads. Inside that function is an empty function object. As soon as an item is available in the queue, it pops it from the queue and executes it, and tries to pick the next one. The constructor of the task system spins up as many threads as there are cores. Each thread is bound with a lambda against the `run()` function. When the task system gets destructed, it is necessary to join all threads. The function that is used by the outside is `async`. It takes the function object and pushes it into the queue. This system is so far very primitive, e.g. it would hang on destruction. The latter is corrected by the following additions: @@ -150,58 +150,58 @@ So with the new `done()` function the new member `_done` is set and the queue is {% include code.md name='05-task_system-2' caption='Non-blocking task system on destruction' %} -The task system notifies within the destructor all queues to ignore all potentially remaining entries which allows that the threads can be joined without delay. (With C++20 this could be enhanced with `jthread`s.) +The task system notifies within the destructor all queues to ignore all potentially remaining entries which allow that the threads can be joined without delay. (With C++20 this could be enhanced with `jthread`s.) This task system performs very badly compared to MacOS' Grand Central Dispatch (GCD) for instance. It just has a throughput of about 6%. Why does this system perform so badly even that this is the recommended design at several places? This design follows principle from the above [figure](#05-traditional_locking-2). It has a single queue and a bunch of threads. These are banging on that queue and so the threads are waiting often on the mutex. -Unfortunately it is not possible to transform this model as it is described above because all that is there is a queue. So a different approach is needed. +Unfortunately, it is not possible to transform this model as it is described above because all that is there is a queue. So a different approach is needed. {% include figure.md name='05-task_system_multiple_queues' caption='Task system with multiple notification queues' %} -A way to reduce the contention on this single queue is to change the task system it in a way that each thread has its own queue. +A way to reduce the contention on this single queue is to change the task system in a way that each thread has its individual queue. {% include code.md name='05-task_system-3' caption='Task system with multiple queues' %} -The task system has now as many queues as threads and the `run()` function gets as parameter the index for its corresponding queue so that it can pick its belonging items. -On destruction the task system has now to notify all queues about to end their work. -An continuously incremented atomic integer modulo the number of queues is used within the `async()` function to distribute the tasks in round robin manner over the queues. An atomic member is used to enable that this function can be used from multiple threads. +The task system has now as many queues as threads and the `run()` function gets the parameter index for its corresponding queue so that it can pick its belonging items. +On destruction, the task system has now to notify all queues about to end their work. +A continuously incremented atomic integer modulo the number of queues is used within the `async()` function to distribute the tasks in a round-robin manner over the queues. An atomic member is used to enable that this function can be used from multiple threads. -This system now performs about as twice as fast compared to the previuous approach. But this new way has still two problems: A long running task will block the execution of all other tasks which are behind this one in the queue even that the queues of other cores went dry. And on a fully loaded system there is a fair amount of contention on the mutex of a queue. +This system now performs about as twice as fast compared to the previous approach. But this new way has still two problems: A long-running task will block the execution of all other tasks which are behind this one in the queue even that the queues of other cores went dry. And on a fully loaded system, there is a fair amount of contention on the mutex of a queue. These problems can be minimized by using the mechanism of task stealing. {% include figure.md name='05-task_system_task_stealing' caption='Task System with Task Stealing' %} -There are different soffisticated, highly optimized approaches in implemening task stealing. Here is take a very simple strategy. +There are different sophisticated, highly optimized approaches in implementing task stealing. Here is take a very simple strategy. {% include code.md name='05-notification_queue-3' caption='Notification queue with try_pop and try_push' %} The queue is enhanced by two new functions, `try_pop()` and `try_push()`. -The `try_pop()` function return `false` when the atempt fails to get the lock on the mutex with the additional `try_to_lock` property. This can be the case when either an other thread currently pushes or pops an item into or from the queue. The other possibility of a `false` result is when the queue is empty. +The `try_pop()` function return `false` when the attempt fails to get the lock on the mutex with the additional `try_to_lock` property. This can be the case when either another thread currently pushes or pops an item into or from the queue. The other possibility of a `false` result is when the queue is empty. Similar applies for the `try_push()` function. The important difference is that a thread using one of these two functions does never stop on a blocked mutex! {% include code.md name='05-task_system-4' caption='Task system with task stealing' %} -The code tries within the `run()` function to pop an item from its corresponding queue by calling `try_pop()`. This can either fail because that queue is currently busy or empty. In both cases the code tries to steal a task from a different thread until it has checked for all other queues. If there are no tasks to execute, then it calls for a blocking `pop()` and it is woken up whenever there is more work to do. -The same approach is taken for pushing an item into the queue in the `async()` function with the difference that the code spins some times over all queues until it finds one to push the task to. The spinning is done to lower the probability that the calling thread get stuck on the later finally implemented `push()` call. +The code tries within the `run()` function to pop an item from its corresponding queue by calling `try_pop()`. This can either fail because that queue is currently busy or empty. In both cases, the code tries to steal a task from a different thread until it has checked for all other queues. If there are no tasks to execute, then it calls for a blocking `pop()` and it is woken up whenever there is more work to do. +The same approach is taken for pushing an item into the queue in the `async()` function with the difference that the code spins some time over every queue until it finds one to push the task to. The spinning is done to lower the probability that the calling thread is getting stuck on the later finally implemented `push()` call. The task system reaches now about 85% of the performance of the reference implementation. -So the first goal reducing the number of arbitrary thread is fulfilled; the number of context switches can be minimized by using a task system. But as soon as each individual application on a machine uses its own instance of a task system, there is again the problem of over subscription because each instance would start as many threads as there are cores. -Such a task system of fixed number of threads has an other problem. There is the risk of dead-locks. +So the first goal, reducing the number of arbitrary threads is fulfilled; the number of context switches can be minimized by using a task system. But as soon as every single application on a machine uses its instance of a task system, there is again the problem of over-subscription because each instance would start as many threads as there are cores. +Such a task system with a fixed number of threads has another problem. The risk is there of dead-locks. {% include figure.md name='05-dead_lock' caption='Dead lock within queued tasks' %} -As soon as a task `a` creates a new task `b` and the progress of `a` depends on the result of task `b` and task `b` got stuck in the queue behind `a` then the system is in a dead-lock. Figure [](#05-dead_lock) illustrates the problem just with a single queue. But the same problem is there with multiple queues and depending tasks get stuck behind other tasks that are blocked because they are waiting for getting a lock on a mutex or waiting for an other result. +As soon as a task `a` creates a new task `b` and the progress of `a` depends on the result of task `b` and task `b` got stuck in the queue behind `a` then the system is in a dead-lock. Figure [](#05-dead_lock) illustrates the problem just with a single queue. But the same problem is there with multiple queues and depending task get stuck behind other tasks that are blocked because they are waiting for getting a lock on a mutex or waiting for another result. -So the only solution to reduce the problem of having an unbound number of threads and the probability of dead-locks because of depending tasks is that all application within a system use the same task system. Only a task system on OS's kernel level has knowledge about threads that currently don't make progress and can spawn new threads to prevent the dead-lock situation. -MacOS and Windows e.g. provide here out of the box a task system through a low level API. +So the only solution to reduce the problem of having an unbound number of threads and the probability of dead-locks because of depending tasks is that all applications within a system use the same task system. Only a task system on OS's kernel-level knows about threads that currently don't make progress and can spawn new threads to prevent a dead-lock situation. +MacOS and Windows e.g. provide here out of the box a task system through a low-level API. {::comment} -Shall call backs be discussed here? Technically they don't introduce a problem. But from the point of view of maintenability it is one, because the control flow is hard to understand. +Shall call backs be discussed here? Technically they don't introduce a problem. But from the point of view of maintainability it is one because the control flow is hard to understand. {:/comment} ### Problems of call backs @@ -217,7 +217,7 @@ Conceptually, a future is a way to separate the result of a function from the ex A future also serves as a handle to the associated task, and may provide some operation to control the task. -The primary advantage of a future over a simple callback is that a callback requires you to provide the subsequent operation in advance. Where a future allows you to provide a continuation, via a then() member function, at some later point. This feature makes futures easier to compose, easier to integrate into an existing system, and more powerful as they can be stored and the continuation can be attached as the result of another action, later. However, this flexibility comes with inherent cost, it requires an atomic test when the continuation is attached to determine if the value is already available. Because of this cost, for many library operations it makes sense to provide a form taking a callback as well as one returning a future. Although at first glance it may appear that a callback from is easily adapted to a future form, that is not the case for reasons discussed below. +The primary advantage of a future over a simple callback is that a callback requires you to provide the subsequent operation in advance. Where a future allows you to provide a continuation, via a then() member function, at some later point. This feature makes futures easier to compose, easier to integrate into an existing system, and more powerful as they can be stored and the continuation can be attached as the result of another action, later. However, this flexibility comes with the inherent cost, it requires an atomic test when the continuation is attached to determine if the value is already available. Because of this cost, for many library operations, it makes sense to provide a form taking a callback as well as one returning a future. Although at first glance it may appear, that a callback from is easily adapted to a future form, that is not the case for reasons discussed below. #### Channels (or actors) as abstraction diff --git a/better-code/figures/05-dead_lock.svg b/better-code/figures/05-dead_lock.svg index 16923e0..56872f3 100644 --- a/better-code/figures/05-dead_lock.svg +++ b/better-code/figures/05-dead_lock.svg @@ -164,9 +164,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="31.678384" - inkscape:cx="241.33688" - inkscape:cy="255.45979" + inkscape:zoom="2.8" + inkscape:cx="102.43065" + inkscape:cy="171.07592" inkscape:document-units="mm" inkscape:current-layer="layer1" inkscape:document-rotation="0" From 46f040f012c4735ac0324c58e1721139c46452b9 Mon Sep 17 00:00:00 2001 From: Felix Petriconi Date: Thu, 7 Jan 2021 20:47:13 +0100 Subject: [PATCH 14/17] * Replace std::function with task * Run Grammarly over all files --- better-code/03-data-structures.md | 8 ++++---- better-code/05-concurrency.md | 10 +++++----- better-code/06-relationships.md | 6 +++--- better-code/code/05-notification_queue-2.cpp | 4 ++-- better-code/code/05-notification_queue-3.cpp | 4 ++-- better-code/code/05-task_system-1.cpp | 2 +- better-code/code/05-task_system-3.cpp | 2 +- better-code/code/05-task_system-4.cpp | 2 +- 8 files changed, 19 insertions(+), 19 deletions(-) diff --git a/better-code/03-data-structures.md b/better-code/03-data-structures.md index 234e75f..55b4893 100644 --- a/better-code/03-data-structures.md +++ b/better-code/03-data-structures.md @@ -22,7 +22,7 @@ As we saw in [chapter 1](01-types.html) a type is a pattern for storing and modi Values are related to other values, for example, 3 is not equal to 4. -If two objects of the same type have the same representation then they represent the same value. Representational equality implies value equality. If the representation is unique then the converse is also true. A hash is a regular function on a representation or a value. Because it is regular, if two values are equal then the hash of the values are also equal. +If two objects of the same type have the same representation then they represent the same value. Representational equality implies value equality. If the representation is unique then the converse is also true. A hash is a regular function on a representation or a value. Because it is regular, if two values are equal then the hash of the values is also equal. Because objects exist in memory, they have a _physical_ relationship. The value at the first location in an array is located before the value in the second location. If we sort the values, we establish a correspondence between the physical and value relationships, i.e. an element before another element is less than or equal to that element. We can represent locations as values (pointers) and use those to represent additional relationships, such as "is a child of". @@ -36,15 +36,15 @@ The choice of encoding can make a dramatic difference on the performance of oper Although data structures tend to be thought of simply in terms of containers such as arrays, lists, or maps, anytime a relationship is established between objects a data structure is created. However, to avoid confusion we will reserve the term _data structure_ to refer to types with a set of invariants which insure a set of relationships are maintained. More transient data structures will be referred to as _structured data_. -As an example of utilizing structured data_, consider the problem of finding the `nth` to `mth` elements of an array as if the array was in sorted order. The trivial way to do this is to simply sort the entire array and then print the `nth` to `mth` elements. In this example `[sf, sl)` is a subrange of `[f, l)`. {::comment}appendix to describe half open notation?{:/comment} +As an example of utilizing structured data_, consider the problem of finding the `nth` to `mth` elements of an array as if the array was in sorted order. The trivial way to do this is to simply sort the entire array and then print the `nth` to `mth` elements. In this example `[sf, sl)` is a subrange of `[f, l)`. {::comment}appendix to describe half-open notation?{:/comment} {% include code.md name='sort-subrange-0' caption='inefficient sort subrange' %} {::comment} Should this section start with partial_sort then add nth_element instead of the other way around? {:/comment} -This function, however, does more work than is necessary. There is a function in the standard library, `nth_element()` which given a position `nth` within a range `[f, l)` has the post condition that the element at `nth` is the same element that would be in that position if `[f, l)` were sorted. `nth_element()` is a special case of sort_subrange when the subrange is of length 1 (or 0 if `nth == l`). +This function, however, does more work than is necessary. There is a function in the standard library, `nth_element()` which given a position `nth` within a range `[f, l)` has the post-condition that the element at `nth` is the same element that would be in that position if `[f, l)` were sorted. `nth_element()` is a special case of sort_subrange when the subrange is of length 1 (or 0 if `nth == l`). -This would not be of much use to build `sort_subrang()` except that `nth_element()` has an additional post condition. The range `[f, l)` is partitioned such that all elements prior to `nth` are less than or equal to the final element at `nth`. This post condition leaves us with _structured data_ and we can take advantage of that structure. If we find the `nth_element()` where `nth` is `sf` then we only need to sort the remaining elements to `sl` which can be done with `partial_sort()`. +This would not be of much use to build `sort_subrang()` except that `nth_element()` has an additional post-condition. The range `[f, l)` is partitioned such that all elements prior to `nth` are less than or equal to the final element at `nth`. This post-condition leaves us with _structured data_ and we can take advantage of that structure. If we find the `nth_element()` where `nth` is `sf` then we only need to sort the remaining elements to `sl` which can be done with `partial_sort()`. {% include code.md name='sort-subrange-1' caption='improved sort subrange' %} diff --git a/better-code/05-concurrency.md b/better-code/05-concurrency.md index 8bef9a2..598385f 100644 --- a/better-code/05-concurrency.md +++ b/better-code/05-concurrency.md @@ -123,7 +123,7 @@ An over-subscription of threads is then easily the case. That means that more th Within such a switch - named context switch - the CPU registers, program counter, and stack pointer of the old thread are saved and the ones from the new thread need to be restored. This saving and restoring take time that is lost for computational tasks of an application. Besides this, the translation lookaside buffer (TLB) must be flushed and the page table of the next process is loaded. The flushing of the TLB causes that the memory access of the new thread is slower in the beginning. This causes an additional slow down. So the goal has to be that the number of context switches is as low as possible. -One way to archive this goal is to use a task system. A task system uses a set of threads, normally equal to the number of CPU-cores and distributes the submitted tasks over the available threads. In case that more tasks are submitted than free threads are available then they are put into a queue and whenever one is done the next task is taken from the queue and executed. +One way to archive this goal is to use a task system. A task system uses a set of threads, normally equal to the number of CPU-cores, and distributes the submitted tasks over the available threads. In case that more tasks are submitted than free threads are available then they are put into a queue and whenever one is done the next task is taken from the queue and executed. {% include figure.md name='05-simple_tasking_system' caption='Simple task system' %} @@ -135,13 +135,13 @@ The [figure](#05-simple_tasking_system) above shows that the task system consist {% include code.md name='05-notification_queue-1' caption='Notification queue class' %} -This notification queue consists of a `deque` of `std::function` with a `mutex` and a `condition_variable`. It has a `pop()` operation which is just going to pull one item off of the queue. And it has a `push()` operation to push one item into the queue and notify anybody who might be waiting on the queue. +This notification queue consists of a `deque` of `task` with a `mutex` and a `condition_variable`. It has a `pop()` operation which is just going to pull one item off of the queue. And it has a `push()` operation to push one item into the queue and notify anybody who might be waiting on the queue. {% include code.md name='05-task_system-1' caption='Task system class' %} -The task system has a `_count` member which is set to the number of available cores. The system has a vector of threads and the notification queue. The `run()` function is the function that will be executed by the threads. Inside that function is an empty function object. As soon as an item is available in the queue, it pops it from the queue and executes it, and tries to pick the next one. +The task system has a `_count` member which is set to the number of available cores. The system has a vector of threads and the notification queue. The `run()` function is the function that will be executed by the threads. Inside that function is an empty `task` object. As soon as an item is available in the queue, it pops it from the queue and executes it, and tries to pick the next one. The constructor of the task system spins up as many threads as there are cores. Each thread is bound with a lambda against the `run()` function. -When the task system gets destructed, it is necessary to join all threads. The function that is used by the outside is `async`. It takes the function object and pushes it into the queue. +When the task system gets destructed, it is necessary to join all threads. The function that is used by the outside is `async`. It takes the `task` object and pushes it into the queue. This system is so far very primitive, e.g. it would hang on destruction. The latter is corrected by the following additions: {% include code.md name='05-notification_queue-2' caption='Notification queue with done switch' %} @@ -243,4 +243,4 @@ The primary advantage of a future over a simple callback is that a callback requ Copy-on-write implementation in stlab. [https://github.com/stlab/libraries/blob/develop/stlab/copy_on_write.hpp](https://github.com/stlab/libraries/blob/develop/stlab/copy_on_write.hpp) [^butenhof]: - Recursive mutexes by David Butenhof [http://zaval.org/resources/library/butenhof1.html](Recursive mutexes by David Butenhof) \ No newline at end of file + Recursive mutexes by David Butenhof [http://zaval.org/resources/library/butenhof1.html](Recursive mutexes by David Butenhof) diff --git a/better-code/06-relationships.md b/better-code/06-relationships.md index 4ac6fde..3ec6949 100644 --- a/better-code/06-relationships.md +++ b/better-code/06-relationships.md @@ -18,13 +18,13 @@ All of the goals and lessons in this book have been, in one way or another, abou ### Definition of _raw synchronization primitives_. -A _raw synchronization primitive_ is a low level construct used to synchronize access to data. Examples include locks and mutexes, condition variables, semaphores, atomic operations, and memory fences. +A _raw synchronization primitive_ is a low-level construct used to synchronize access to data. Examples include locks and mutexes, condition variables, semaphores, atomic operations, and memory fences. -{::comment} Discuss difference between data parallelism and task concurrency, so far this chapter is only dealing with tasking. However, it could be expanded upon. {:/comment} +{::comment} Discuss the difference between data parallelism and task concurrency, so far this chapter is only dealing with tasking. However, it could be expanded upon. {:/comment} The goal of this chapter is to develop concurrent code without using raw synchronization primitives. -The first problem with raw synchronization primitives are that they are exceedingly error prone to use because, by defintion, they require reasoning about non-local effects. +The first problem with raw synchronization primitives are that they are exceedingly error-prone to use because, by definition, they require reasoning about non-local effects. For example, [xxxx] is a snippet from a copy-on-write datatype, this is a simplified version of code from a shipping system. diff --git a/better-code/code/05-notification_queue-2.cpp b/better-code/code/05-notification_queue-2.cpp index 1c422a7..fb29089 100644 --- a/better-code/code/05-notification_queue-2.cpp +++ b/better-code/code/05-notification_queue-2.cpp @@ -1,5 +1,5 @@ class notification_queue { - deque> _q; + deque> _q; bool _done{false}; mutex _mutex; condition_variable _ready; @@ -13,7 +13,7 @@ class notification_queue { _ready.notify_all(); } - bool pop(function& x) { + bool pop(task& x) { lock_t lock{_mutex}; while (_q.empty() && !_done) _ready.wait(lock); diff --git a/better-code/code/05-notification_queue-3.cpp b/better-code/code/05-notification_queue-3.cpp index 6e5cf7b..5f9844c 100644 --- a/better-code/code/05-notification_queue-3.cpp +++ b/better-code/code/05-notification_queue-3.cpp @@ -1,11 +1,11 @@ class notification_queue { - deque> _q; + deque> _q; bool _done{false}; mutex _mutex; condition_variable _ready; public: - bool try_pop(function& x) { + bool try_pop(task& x) { lock_t lock{_mutex, try_to_lock}; if (!lock || _q.empty()) return false; x = move(_q.front()); diff --git a/better-code/code/05-task_system-1.cpp b/better-code/code/05-task_system-1.cpp index cfbc1e6..db2d223 100644 --- a/better-code/code/05-task_system-1.cpp +++ b/better-code/code/05-task_system-1.cpp @@ -5,7 +5,7 @@ class task_system { void run(unsigned i) { while (true) { - function f; + task f; _q.pop(f); f(); } diff --git a/better-code/code/05-task_system-3.cpp b/better-code/code/05-task_system-3.cpp index 98875fd..21f722e 100644 --- a/better-code/code/05-task_system-3.cpp +++ b/better-code/code/05-task_system-3.cpp @@ -6,7 +6,7 @@ class task_system { void run(unsigned i) { while (true) { - function f; + task f; if (!_q[i].pop(f)) break; f(); } diff --git a/better-code/code/05-task_system-4.cpp b/better-code/code/05-task_system-4.cpp index 72e5dc8..bfac938 100644 --- a/better-code/code/05-task_system-4.cpp +++ b/better-code/code/05-task_system-4.cpp @@ -8,7 +8,7 @@ class task_system { void run(unsigned i) { while (true) { - function f; + task f; // TODO Take _spin / _count or something different? for (unsigned n = 0; n != _spin / _count; ++n) { From 3e45cd4f349b71475502ea20d1b20861d4f55018 Mon Sep 17 00:00:00 2001 From: Felix Petriconi Date: Fri, 8 Jan 2021 23:09:29 +0100 Subject: [PATCH 15/17] Improve dead-lock image --- better-code/figures/05-dead_lock.svg | 47 +++++++++++++++++++--------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/better-code/figures/05-dead_lock.svg b/better-code/figures/05-dead_lock.svg index 56872f3..c35a4ac 100644 --- a/better-code/figures/05-dead_lock.svg +++ b/better-code/figures/05-dead_lock.svg @@ -8,8 +8,8 @@ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="72.732498mm" - height="76.622696mm" - viewBox="0 0 72.732498 76.622694" + height="82.372803mm" + viewBox="0 0 72.732498 82.372801" version="1.1" id="svg2267" inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)" @@ -165,14 +165,14 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="2.8" - inkscape:cx="102.43065" - inkscape:cy="171.07592" + inkscape:cx="187.43065" + inkscape:cy="223.64195" inkscape:document-units="mm" inkscape:current-layer="layer1" inkscape:document-rotation="0" showgrid="true" - inkscape:window-width="2482" - inkscape:window-height="1417" + inkscape:window-width="1362" + inkscape:window-height="877" inkscape:window-x="70" inkscape:window-y="-8" inkscape:window-maximized="1" @@ -183,8 +183,8 @@ + originx="-4.1576962" + originy="-25.190655" /> @@ -194,7 +194,7 @@ image/svg+xml - + @@ -202,7 +202,7 @@ inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" - transform="translate(-69.039396,-120.14831)"> + transform="translate(-69.039396,-114.3982)"> Task - + State 1 + State 2 From eaf4055610139e497f3ab44fbc9b4368fa286a3a Mon Sep 17 00:00:00 2001 From: Felix Petriconi Date: Sun, 24 Jan 2021 14:32:17 +0100 Subject: [PATCH 16/17] Small enhancements, still wip --- better-code/05-concurrency.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/better-code/05-concurrency.md b/better-code/05-concurrency.md index 598385f..0dc0050 100644 --- a/better-code/05-concurrency.md +++ b/better-code/05-concurrency.md @@ -57,6 +57,10 @@ Since most desktop or mobile processors have less than 64 cores, it is better to So Amdahl's law has a huge impact. Serialization doesn't mean only locking on a mutex. Serialization can mean sharing the same memory or sharing the same address bus for the memory, if it is not a NUMA architecture. Sharing the same cache line or anything that is shared within the processor starts to bend that curve down and it bends down rapidly, even an atomic bends that curve down. +{::comment} +Also, in the Amdahl's law section I think we should have a passing reference to Gustafson's law which is related to Amdahl's law but is looking at latency of the system as the number of processors increases instead of time to complete a fixed body of work. Gustafson's law is applicable for building interactive systems and scalable server architectures as examples where scalability implies the system will be processing more requests. +{:/comment} + The following illustrates an often used model for implementing exclusive access to an object by multiple threads: {% include figure.md name='05-traditional_locking-1' caption="Different threads need access to single object" %} @@ -197,8 +201,22 @@ Such a task system with a fixed number of threads has another problem. The risk As soon as a task `a` creates a new task `b` and the progress of `a` depends on the result of task `b` and task `b` got stuck in the queue behind `a` then the system is in a dead-lock. Figure [](#05-dead_lock) illustrates the problem just with a single queue. But the same problem is there with multiple queues and depending task get stuck behind other tasks that are blocked because they are waiting for getting a lock on a mutex or waiting for another result. So the only solution to reduce the problem of having an unbound number of threads and the probability of dead-locks because of depending tasks is that all applications within a system use the same task system. Only a task system on OS's kernel-level knows about threads that currently don't make progress and can spawn new threads to prevent a dead-lock situation. -MacOS and Windows e.g. provide here out of the box a task system through a low-level API. +MacOS and Windows e.g. provide here out of the box a task system through a low-level API. (Mac's task-system libdispatch can be added to Linux via package managements.) + +Regarding the previous implementation with the serial-queue and the task-system, it is important to keep in mind that lock-free implementations of queues exist which can be utilized to improve the performance. Lock-free does not mean that no synchronizations take place, but the overhead is reduced. +While submitting tasks, the size of the task should be weighted against the overhead of the used serial-queue or task-system. If the tasks are too small compared to the overhead then it is more efficient to execute them serially. +#### Futures as abstraction + +Conceptually, a future is a way to separate the result of a function from the execution of the function. The task (the function packaged so it returns void) can be executed in a different context (the execution context is controlled by executors in some of the proposals) and the result will become available via the future. + +A future also serves as a handle to the associated task, and may provide some operation to control the task. + +The primary advantage of a future over a callback is that a callback requires the subsequent operation in advance. Where a future allows a continuation, via a `then()` function, at some later point. This feature makes futures easier to compose, easier to integrate into an existing system, and more powerful as they can be stored and the continuation can be attached as the result of another action, later. However, this flexibility comes with the inherent cost, it requires an atomic test when the continuation is attached to determine if the value is already available. Because of this cost, for many library operations, it makes sense to provide a form taking a callback as well as one returning a future. Although at first glance it may appear, that a callback from is easily adapted to a future form, that is not the case for reasons discussed below. + +{::comment} +Add that under a mutex no user objects should be destroyed +{:/comment} {::comment} Shall call backs be discussed here? Technically they don't introduce a problem. But from the point of view of maintainability it is one because the control flow is hard to understand. From 0c74c71929f21d534fac0034f6319dc562048c76 Mon Sep 17 00:00:00 2001 From: Felix Petriconi Date: Fri, 26 Mar 2021 23:49:54 +0100 Subject: [PATCH 17/17] Describe more mutex problems and add code examples --- better-code/05-concurrency.md | 61 ++++++++++++++++++++------- better-code/code/05-destruction-0.cpp | 18 ++++++++ better-code/code/05-destruction-1.cpp | 21 +++++++++ better-code/code/05-destruction-2.cpp | 16 +++++++ better-code/code/05-destruction-3.cpp | 19 +++++++++ 5 files changed, 120 insertions(+), 15 deletions(-) create mode 100644 better-code/code/05-destruction-0.cpp create mode 100644 better-code/code/05-destruction-1.cpp create mode 100644 better-code/code/05-destruction-2.cpp create mode 100644 better-code/code/05-destruction-3.cpp diff --git a/better-code/05-concurrency.md b/better-code/05-concurrency.md index 0dc0050..14d21dc 100644 --- a/better-code/05-concurrency.md +++ b/better-code/05-concurrency.md @@ -9,6 +9,8 @@ chapter: 5 ### Motivation +A _task_ is a unit of work, often a function. + _Concurrency_ is when multiple tasks start, run, and complete in overlapping time-periods and should not be confused with _parallelism_ which is when multiple tasks execute simultaneously. Parallelism requires some form of hardware support, whereas concurrency can be achieved strictly through software, such as a cooperative tasking system. There are two primary benefits of concurrent code. The performance is the first by enabling parallelism. The second is to improve interactivity by not blocking the user while a prior action is being processed. @@ -19,7 +21,7 @@ The goal of this chapter is to develop concurrent code without using raw synchro ### Definition of _raw synchronization primitives_ -A _raw synchronization primitive_ is a low-level construct used to synchronize access to data. Examples include locks and mutexes, condition variables, semaphores, atomic operations, and memory fences. +A _raw synchronization primitive_ is a low-level construct used to synchronize access to data. Examples include locks and [^mutex]es, condition variables, semaphores, atomic operations, and memory fences. {::comment} Discuss the difference between data parallelism and task concurrency, so far this chapter is only dealing with tasking. However, it could be expanded upon. {:/comment} @@ -31,31 +33,31 @@ For example, the following is a snippet from a copy-on-write[^cow_definition] da {% include code.md name='05-bad_cow' caption='Incorrect copy-on-write' %} -The code contains a subtle race condition. The `if` statement at line 16 is checking the value of an atomic count to see if it is 1. The `else` statement handles the case where it is not 1. Within the else statement the count is decremented at line 19. The problem is that if decrementing the count results in a value of 0 then the object stored in `_object` should be deleted. The code fails to check for this case, and so an object may be leaked. +The code contains a subtle race condition. The `if` statement at line 16 is checking the value of an atomic count to see if it is one. The `else` statement handles the case where it is not one. At line 19, the count is decremented within the `else` statement. The problem is that if decrementing the count results in a value of zero then the object stored in `_object` should be deleted. The code fails to check for this case, and so an object may be leaked. -The initial test to see if the count was 1 isn't sufficient, between that check and when the count is decremented and another thread may have released ownership and decremented the count leaving this object instance as the sole owner. +The initial test isn’t sufficient to see if the count was one. Between that check and when the count is decremented and another thread may have released ownership and decremented the count leaving this object instance as the sole owner. -The fix is to test atomically with the decrement in the same statement, line 19. The correct code is shown in shown below: +The correct way is to test atomically with the decrement in the same statement, line 19. The code is shown below: {% include code.md name='05-correct_cow' caption='Correct copy-on-write' %} The code of the complete, correct implementations is available online[^cow]. -Another problem with raw synchronization primitives is that their use can have a large negative impact on system performance. To understand why, we need to understand Amdahl's Law. +Another problem with raw synchronization primitives is that their use can have a large negative impact on the system performance. This implications are described by Amdahl’s Law. The intuition behind Amdahl's Law is that if a part of the system takes time x to complete on a single core or processor, then it will encounter a speedup of y if it is run on y cores, but only if no synchronization takes places between the different cores or processors. $$S(N) = \frac{1}{(1-P)+\frac{P}{N}}$$ -Where the speedup $$S$$ is defined by this equation. $$P$$ is hereby the amount of synchronization in the range of $$[0 .. 1]$$ and $$N$$ the number of cores or processors. +Where the speedup $$S$$ is defined by this equation. $$P$$ is hereby the amount of synchronization in the range of $$[0 .. 1]$$ and $$N$$ is the number of cores or processors. Drawing the abscissa in logarithmic scale illustrates that there is only a speedup of 20 times, even when the system is running on 2048 or more cores and just 5% synchronization takes place. {% include figure.md name='05-amdahl_log' caption="Amdahl's law logarithmic scale" %} -Since most desktop or mobile processors have less than 64 cores, it is better to take a look at the graph with a linear scale. Each line below the diagonal represents 10% more serialization. So if the application just has 10% of serialization and it is running on 16 cores then the speed-up is just a little better than the factor of six. +Since most desktop or mobile processors have nowadays less than 64 cores, it is better to take a look at the graph with a linear scale. Each line below the diagonal represents 10% more serialization. So if the application just has 10% of serialization and it is running on 16 cores then the speed-up is just a little better than factor of six. {% include figure.md name='05-amdahl_lin' caption="Amdahl's law linear scale" %} -So Amdahl's law has a huge impact. Serialization doesn't mean only locking on a mutex. Serialization can mean sharing the same memory or sharing the same address bus for the memory, if it is not a NUMA architecture. Sharing the same cache line or anything that is shared within the processor starts to bend that curve down and it bends down rapidly, even an atomic bends that curve down. +So Amdahl's law has a huge impact. Serialization doesn't mean only locking on a mutex. Serialization can mean sharing the same memory or sharing the same address bus for the memory, if it is not a NUMA architecture. Sharing the same cache line or anything that is shared within the processor starts to bend that curve down. Even a write operation on an atomic value is synchronized between the cores and bends that curve down, it bends it down rapidly, {::comment} Also, in the Amdahl's law section I think we should have a passing reference to Gustafson's law which is related to Amdahl's law but is looking at latency of the system as the number of processors increases instead of time to complete a fixed body of work. Gustafson's law is applicable for building interactive systems and scalable server architectures as examples where scalability implies the system will be processing more requests. @@ -65,7 +67,7 @@ The following illustrates an often used model for implementing exclusive access {% include figure.md name='05-traditional_locking-1' caption="Different threads need access to single object" %} -As soon as the different threads do not only want to read the single object, but need write access as well, it is necessary to give just a single thread exclusive access. (Otherwise, undefined behavior is the result.) All other threads have to wait for their turn to get read or access. +As soon as the different threads do not only want to read the single object, but need write access as well, it is necessary to give just a single thread exclusive access. (Otherwise, undefined behavior is the result.) All other threads have to stop for their turn to get read or write access. {% include figure.md name='05-traditional_locking-2' caption="Exclusive access with locking" %} @@ -73,7 +75,7 @@ When the one thread does not need anymore its exclusive access, it gives its up. {% include figure.md name='05-traditional_locking-3' caption="Exclusive access by different threads" %} -And the next thread can get the exclusive [^access]. +And the next thread can get the exclusive access. This is a horrible way to think about threading. The goal has to be to minimize waiting at all costs. David [^Butenhof], one of the POSIX implementors, coined the phrase that mutex should be named better bottleneck, because of the property of slowing down an application. @@ -96,7 +98,7 @@ So why is this an important sentence? It means that one can always think about m * Each operation may yield a result, $$r_m$$, which can communicate information about the state of $$x$$ while it’s associated operation was executed * The same is true of all atomic operations -So there is not a lot of difference between a `std::atomic`. In fact there, is a call on `std::atomic` that returns `true`, if it is lock-free. This means the processor supports to do that as an atomic item within the processor or is there, not processor support and the compiler has to generate a mutex pair to lock, make the change on the atomic operation, and do the unlock. So all that mutexes and locks are the way to construct atomic operations. +So there is not a lot of difference between a `std::atomic`. In fact, there is a call on `std::atomic` that returns `true`, if it is lock-free. This means the processor supports to do that as an atomic item within the processor, or is there, not processor support and the compiler has to generate a mutex pair to lock, make the change on the atomic operation, and do the unlock. So that mutexes and locks are the way to construct atomic operations. That means that any piece of code that has a mutex can be transformed into a queued model. This idea applied to the registry example from above leads to this: @@ -109,6 +111,36 @@ As well one can rewrite the `get` string operation. But here the difference is, Why is it important to understand this concept? Because at any place with a mutex in the code one can always make this transformation. One can always transform it into a serialized queue model. And this means that within the serialized queue model anytime somebody can come along and calls `set`, regardless of the amount of work that `set` takes, the time it takes for `set` to return to the caller itself constant. This means as well that one can add something like an arbitrary `set`, e.g a whole vector of key-value pairs. And to the caller, this `set` will take just as much time as the previous `set`. It's a non-blocking operation with an upper bound of overhead. +{::comment} +Add here the two measurement graphs that compare the mutex guarded and serial queue guarded map without and with additional load +{:/comment} + +### Further problems of mutexes + +The usage of mutexes raise the probability of dead-locks within a complex system. Function calls under a locked mutex should be avoided. + +This means as well that user objects should not be destructed under a locked mutex. + +{% include code.md name='05-destruction-0' caption='Destruction of container node under mutex' %} + +Depending of the - in this example omitted - complexity of class `Field`, the destruction of the object under the mutex increases the contention under the lock. + +{% include code.md name='05-destruction-1' caption='Destruction of list node outside the mutex' %} + +Only node pointers are transfered within the `list.splice` operation to the temporary element `obsolete_field`, so that the node can be deleted outside the mutex. + +{% include code.md name='05-destruction-2' caption='Destruction of unordered_map node outside the mutex' %} + +`unordered_map.find` returns the iterator of the searched noded, if it is available. `unordered_map.extract` moves the node out of the container into the temporary object `obsolete_node`. The possible content of the node is deleted - outside of the mutex - when it is destructed by leaving the outer scope. + +{% include code.md name='05-destruction-3' caption='Destruction of vector objects outside the mutex' %} + +The situation within a container is different because it is not node based. When the complexity of `vector::value_type` is beyond trivial destructable one can move the obsolete objects into a temporary vector and delete it outside of the mutex. + +{::comment} +More problems??? +{:/comment} + ### Problems of _raw threads_ A _thread_ is an execution environment consisting of a stack and processor state running in parallel to other threads. @@ -214,10 +246,6 @@ A future also serves as a handle to the associated task, and may provide some op The primary advantage of a future over a callback is that a callback requires the subsequent operation in advance. Where a future allows a continuation, via a `then()` function, at some later point. This feature makes futures easier to compose, easier to integrate into an existing system, and more powerful as they can be stored and the continuation can be attached as the result of another action, later. However, this flexibility comes with the inherent cost, it requires an atomic test when the continuation is attached to determine if the value is already available. Because of this cost, for many library operations, it makes sense to provide a form taking a callback as well as one returning a future. Although at first glance it may appear, that a callback from is easily adapted to a future form, that is not the case for reasons discussed below. -{::comment} -Add that under a mutex no user objects should be destroyed -{:/comment} - {::comment} Shall call backs be discussed here? Technically they don't introduce a problem. But from the point of view of maintainability it is one because the control flow is hard to understand. {:/comment} @@ -254,6 +282,9 @@ The primary advantage of a future over a simple callback is that a callback requ ### Conclusion +[^mutex]: + mutual exclusion + [^cow_definition]: Copy-on-write [https://en.wikipedia.org/wiki/Copy-on-write](https://en.wikipedia.org/wiki/Copy-on-write) diff --git a/better-code/code/05-destruction-0.cpp b/better-code/code/05-destruction-0.cpp new file mode 100644 index 0000000..fb19a4f --- /dev/null +++ b/better-code/code/05-destruction-0.cpp @@ -0,0 +1,18 @@ +class Field { + int _property; +public: + int property() const { return _property; } +}; + +list _fields; +mutex _fields_mutex; + +{ + unique_lock guard{_fields_mutex}; + auto it = find_if(_fields.begin(), _fields.end(), + [item_to_remove](auto const& field) { return field.property() == item_to_remove; } ); + + if (it != _fields.end()) { + _fields.erase(it); + } +} diff --git a/better-code/code/05-destruction-1.cpp b/better-code/code/05-destruction-1.cpp new file mode 100644 index 0000000..617c5f2 --- /dev/null +++ b/better-code/code/05-destruction-1.cpp @@ -0,0 +1,21 @@ +class Field { + int _property; +public: + int property() const { return _property; } +}; + +list _fields; +mutex _fields_mutex; + +list obsolete_field; +{ + unique_lock guard{_fields_mutex}; + auto it = find_if(_fields.begin(), _fields.end(), + [item_to_remove](auto const& field) { return field.property() == item_to_remove; } ); + + if (it != _fields.end()) { + obsolete_field.splice(obsolete_field.end(), _fields, it); + } +} + +obsolete_field.clear(); \ No newline at end of file diff --git a/better-code/code/05-destruction-2.cpp b/better-code/code/05-destruction-2.cpp new file mode 100644 index 0000000..435fd28 --- /dev/null +++ b/better-code/code/05-destruction-2.cpp @@ -0,0 +1,16 @@ +class Field { + int _property; +public: + int property() const { return _property; } +}; + +unordered_map _fields; +mutex _fields_mutex; + +{ + unordered_map::note_type obsolete_node; + { + unique_lock guard{_fields_mutex}; + obsolete_node = _fields.extract(_fields.find(key_to_remove)); + } +} \ No newline at end of file diff --git a/better-code/code/05-destruction-3.cpp b/better-code/code/05-destruction-3.cpp new file mode 100644 index 0000000..22f26c4 --- /dev/null +++ b/better-code/code/05-destruction-3.cpp @@ -0,0 +1,19 @@ +class Field { + int _property; +public: + int property() const { return _property; } +}; + +vector _fields; +mutex _fields_mutex; + +vector obsolete_fields; +{ + unique_lock guard{_fields_mutex}; + auto it = remove_if(_fields.begin(), _fields.end(), + [items_to_remove](auto const& field) { return field.property() == items_to_remove; } ); + + obsolete_fields.resize(distance(it, _fields.end())); + std::move(it, _fields.end(), obsolete_fields.begin()); +} +obsolete_fields.resize(0); \ No newline at end of file