From 0384bc3d1099bc6b4d44f676b08052c7515ca1a9 Mon Sep 17 00:00:00 2001 From: anatoly Date: Mon, 30 Nov 2015 22:03:37 -0500 Subject: [PATCH] updating suspendable example to the latest mount --- README.md | 173 +++++++++++++++++++++++++- dev/dev.clj | 8 +- doc/differences-from-component.md | 197 ------------------------------ doc/img/get-uberjar.png | Bin 45106 -> 0 bytes doc/img/post-uberjar.png | Bin 68242 -> 0 bytes doc/img/welcome-uberjar.png | Bin 43221 -> 0 bytes doc/intro.md | 3 - doc/runtime-arguments.md | 130 -------------------- doc/uberjar.md | 163 ------------------------ project.clj | 26 ++-- src/mount/core.clj | 151 +++++++++++++---------- test/app/utils/logging.clj | 46 +++++++ 12 files changed, 314 insertions(+), 583 deletions(-) delete mode 100644 doc/differences-from-component.md delete mode 100644 doc/img/get-uberjar.png delete mode 100644 doc/img/post-uberjar.png delete mode 100644 doc/img/welcome-uberjar.png delete mode 100644 doc/intro.md delete mode 100644 doc/runtime-arguments.md delete mode 100644 doc/uberjar.md create mode 100644 test/app/utils/logging.clj diff --git a/README.md b/README.md index ddb5c04..2989373 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ _**Alan J. Perlis** from [Structure and Interpretation of Computer Programs](htt module | branch | status ----------|----------|---------- mount | `master` | [![Circle CI](https://circleci.com/gh/tolitius/mount/tree/master.png?style=svg)](https://circleci.com/gh/tolitius/mount/tree/master) + mount | `0.1.5` | [![Circle CI](https://circleci.com/gh/tolitius/mount/tree/0.1.5.png?style=svg)](https://circleci.com/gh/tolitius/mount/tree/0.1.5) [![Clojars Project](http://clojars.org/mount/latest-version.svg)](http://clojars.org/mount) @@ -18,6 +19,7 @@ _**Alan J. Perlis** from [Structure and Interpretation of Computer Programs](htt - [Differences from Component](#differences-from-component) - [How](#how) - [Creating State](#creating-state) + - [Value of Values](#value-of-values) - [Using State](#using-state) - [Dependencies](#dependencies) - [Talking States](#talking-states) @@ -25,7 +27,14 @@ _**Alan J. Perlis** from [Structure and Interpretation of Computer Programs](htt - [Start and Stop Order](#start-and-stop-order) - [Start and Stop Parts of Application](#start-and-stop-parts-of-application) - [Start an Application Without Certain States](#start-an-application-without-certain-states) +- [Stop an Application Except Certain States](#stop-an-application-except-certain-states) - [Swapping Alternate Implementations](#swapping-alternate-implementations) +- [Suspending and Resuming](#suspending-and-resuming) + - [Suspendable Lifecycle](#suspendable-lifecycle) + - [Plugging into (reset)](#plugging-into-reset) + - [Suspendable Example Application](#suspendable-example-application) +- [Affected States](#affected-states) +- [Logging](#logging) - [Mount and Develop!](#mount-and-develop) - [Running New York Stock Exchange](#running-new-york-stock-exchange) - [Web and Uberjar](#web-and-uberjar) @@ -72,15 +81,15 @@ mount is an alternative to the [component](https://github.com/stuartsierra/compo Creating state is easy: ```clojure -(defstate conn :start (create-conn)) +(defstate conn :start create-conn) ``` -where `(create-conn)` is defined elsewhere, can be right above it. +where the `create-conn` function is defined elsewhere, can be right above it. In case this state needs to be cleaned / destryed between reloads, there is also `:stop` ```clojure -(defstate conn :start (create-conn) +(defstate conn :start create-conn :stop (disconnect conn)) ``` @@ -94,6 +103,14 @@ dev=> conn #object[datomic.peer.LocalConnection 0x1661a4eb "datomic.peer.LocalConnection@1661a4eb"] ``` +#### Value of values + +Lifecycle functions start/stop/suspend/resume can take both functions and values. This is "valuable" and also works: + +```clojure +(mount/defstate answer-to-the-ultimate-question-of-life-the-universe-and-everything :start 42) +``` + ### Using State For example let's say an `app` needs a connection above. No problem: @@ -248,10 +265,157 @@ One thing to note, whenever (mount/stop) ``` -is run after `start-with`, it rolls back to an original "state of states", i.e. `#'app.nyse/db` is `#'app.nyse/db` again. So a subsequent calls to `(mount/start)` or even to `(mount/start-with {something else})` will start from a clean slate. +is run after `start-with`, it rolls back to an original "state of states", i.e. `#'app.nyse/db` is `#'app.nyse/db` again. So subsequent calls to `(mount/start)` or even to `(mount/start-with {something else})` will start from a clean slate. Here is an [example](test/check/start_with_test.clj) test that starts an app with mocking Datomic connection and nREPL. +## Stop an Application Except Certain States + +Calling `(mount/stop)` will stop all the application states. In case everything needs to be stopped _besides certain ones_, it can be done with `(mount/stop-except)`. + +Here is an example of restarting the application without bringing down `#'app.www/nyse-app`: + +```clojure +dev=> (mount/start) +14:34:10.813 [nREPL-worker-0] INFO mount.core - >> starting.. app-config +14:34:10.814 [nREPL-worker-0] INFO mount.core - >> starting.. conn +14:34:10.814 [nREPL-worker-0] INFO app.db - creating a connection to datomic: datomic:mem://mount +14:34:10.838 [nREPL-worker-0] INFO mount.core - >> starting.. nyse-app +14:34:10.843 [nREPL-worker-0] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED SelectChannelConnector@0.0.0.0:4242 +14:34:10.843 [nREPL-worker-0] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED org.eclipse.jetty.server.Server@194f37af +14:34:10.844 [nREPL-worker-0] INFO mount.core - >> starting.. nrepl +:started + +dev=> (mount/stop-except #'app.www/nyse-app) +14:34:47.766 [nREPL-worker-0] INFO mount.core - << stopping.. nrepl +14:34:47.766 [nREPL-worker-0] INFO mount.core - << stopping.. conn +14:34:47.766 [nREPL-worker-0] INFO app.db - disconnecting from datomic:mem://mount +14:34:47.766 [nREPL-worker-0] INFO mount.core - << stopping.. app-config +:stopped +dev=> + +dev=> (mount/start) +14:34:58.673 [nREPL-worker-0] INFO mount.core - >> starting.. app-config +14:34:58.674 [nREPL-worker-0] INFO app.config - loading config from test/resources/config.edn +14:34:58.674 [nREPL-worker-0] INFO mount.core - >> starting.. conn +14:34:58.674 [nREPL-worker-0] INFO app.db - creating a connection to datomic: datomic:mem://mount +14:34:58.693 [nREPL-worker-0] INFO mount.core - >> starting.. nrepl +:started +``` + +Notice that the `nyse-app` is not started the second time (hence no more accidental `java.net.BindException: Address already in use`). It is already up and running. + +## Suspending and Resuming + +Besides starting and stopping states can also be suspended and resumed. While this is not needed most of the time, it does comes really handy _when_ this need is there. For example: + +* while working in REPL, you only want to truly restart a web server/queue listener/db connection _iff_ something changed, all other times `(mount/stop)` / `(mount/start)` or `(reset)` is called, these states should not be restarted. This might have to do with time to connect / bound ports / connection timeouts, etc.. + +* when taking an application out of rotation in a data center, and then phasing it back in, it might be handy to still keep it _up_, but suspend all the client / novelty facing components in between. + +and some other use cases. + +### Suspendable Lifecycle + +In additiong to `start` / `stop` functions, a state can also have `resume` and, if needed, `suspend` ones: + +```clojure +(defstate web-server :start start-server + :resume resume-server + :stop stop-server) + +``` + +`suspend` function is optional. Combining this with [(mount/stop-except)](#stop-an-application-except-certain-states), can result in an interesting restart behavior where everything is restared, but this `web-server` is _resumed_ instead (in this case `#'app.www/nyse-app` is an example of the above `web-server`): + +```clojure +dev=> (mount/stop-except #'app.www/nyse-app) +14:44:33.991 [nREPL-worker-1] INFO mount.core - << stopping.. nrepl +14:44:33.992 [nREPL-worker-1] INFO mount.core - << stopping.. conn +14:44:33.992 [nREPL-worker-1] INFO app.db - disconnecting from datomic:mem://mount +14:44:33.992 [nREPL-worker-1] INFO mount.core - << stopping.. app-config +:stopped +dev=> + +dev=> (mount/suspend) +14:44:52.467 [nREPL-worker-1] INFO mount.core - >> suspending.. nyse-app +:suspended +dev=> + +dev=> (mount/start) +14:45:00.297 [nREPL-worker-1] INFO mount.core - >> starting.. app-config +14:45:00.297 [nREPL-worker-1] INFO mount.core - >> starting.. conn +14:45:00.298 [nREPL-worker-1] INFO app.db - creating a connection to datomic: datomic:mem://mount +14:45:00.315 [nREPL-worker-1] INFO mount.core - >> resuming.. nyse-app +14:45:00.316 [nREPL-worker-1] INFO mount.core - >> starting.. nrepl +:started +``` + +Notice `>> resuming.. nyse-app`, which in [this case](https://github.com/tolitius/mount/blob/suspendable/test/app/www.clj#L32) just recreates Datomic schema vs. doing that _and_ starting the actual web server. + +### Plugging into (reset) + +In case `tools.namespace` is used, this lifecycle can be easily hooked up with `dev.clj`: + +```clojure +(defn start [] + (mount/start)) + +(defn stop [] + (mount/suspend) + (mount/stop-except #'app.www/nyse-app)) + +(defn reset [] + (stop) + (tn/refresh :after 'dev/start)) +``` + +### Suspendable Example Application + +An [example application](https://github.com/tolitius/mount/tree/suspendable/test/app) with a suspendable web server and `dev.clj` lives in the `suspendable` branch. You can clone mount and try it out: + +``` +$ git checkout suspendable +Switched to branch 'suspendable' +``` + +## Affected States + +Every time a lifecycle function (start/stop/suspend/resume) is called mount will return all the states that were affected: + +```clojure +dev=> (mount/start) +{:started [#'app.config/app-config + #'app.nyse/conn + #'app/nrepl + #'check.suspend-resume-test/web-server + #'check.suspend-resume-test/q-listener]} +``` +```clojure +dev=> (mount/suspend) +{:suspended [#'check.suspend-resume-test/web-server + #'check.suspend-resume-test/q-listener]} +``` +```clojure +dev=> (mount/start) +{:started [#'check.suspend-resume-test/web-server + #'check.suspend-resume-test/q-listener]} +``` + +An interesting bit here is a vector vs. a set: all the states are returned _in the order they were changed_. + +## Logging + +> All the mount examples have `>> starting..` / `<< stopping..` logging messages, but when I develop an application with mount I don't see them. + +Valid question. It was a [conscious choice](https://github.com/tolitius/mount/issues/15) not to depend on any particular logging library, since there are few to select from, and this decision is best left to the developer who may choose to use mount. + +Since mount is a _library_ it should _not_ bring any dependencies unless its functionality directly depends on them. + +> But I still these logging statements in the examples. + +The way this is done is via an excellent [robert hooke](https://github.com/technomancy/robert-hooke/). Example applications live in `test`, so does the [utility](https://github.com/tolitius/mount/blob/75d7cdc610ce38623d4d3aea1da3170d1c9a3b4b/test/app/utils/logging.clj#L44) that adds logging to all the mount's lifecycle functions on start in [dev.clj](https://github.com/tolitius/mount/blob/75d7cdc610ce38623d4d3aea1da3170d1c9a3b4b/dev/dev.clj#L21). + ## Mount and Develop! `mount` comes with an example [app](https://github.com/tolitius/mount/tree/master/test/app) @@ -366,6 +530,7 @@ Switched to branch 'with-args' ``` The documentation is [here](doc/runtime-arguments.md#passing-runtime-arguments). + ## License Copyright © 2015 tolitius diff --git a/dev/dev.clj b/dev/dev.clj index 76c58d1..9894e54 100644 --- a/dev/dev.clj +++ b/dev/dev.clj @@ -1,8 +1,6 @@ (ns dev "Tools for interactive development with the REPL. This file should - not be included in a production build of the application." - ;; (:use [cljs.repl :only [repl]] - ;; [cljs.repl.browser :only [repl-env]]) + not be included in a production build of the application." (:require [clojure.java.io :as io] [clojure.java.javadoc :refer [javadoc]] [clojure.pprint :refer [pprint]] @@ -11,8 +9,8 @@ [clojure.set :as set] [clojure.string :as str] [clojure.test :as test] - ;; [clojure.core.async :refer [>!! ! _[source](http://www.javacodegeeks.com/2015/09/clojure-web-development-state-of-the-art.html):_ - -> _I think all agreed that Component is the industry standard for managing lifecycle of Clojure applications. If you are a Java developer you may think of it as a Spring (DI) replacement – you declare dependencies between “components” which are resolved on “system” startup. So you just say “my component needs a repository/database pool” and component library “injects” it for you._ - -While this is a common understanding, the Component is far from being Spring, in a good sense: - -* its codebase is fairly small -* it aims to solve one thing and one thing only: manage application state via inversion of control - -The not so hidden benefit is REPL time reloadability that it brings to the table with `component/start` and `component/stop` - - -**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - -- [Then why "mount"!?](#then-why-mount) -- [So what are the differences?](#so-what-are-the-differences) - - [Objects vs. Namespaces](#objects-vs-namespaces) - - [Start and Stop Order](#start-and-stop-order) - - [Component requires whole app buy in](#component-requires-whole-app-buy-in) - - [Refactoring an existing application](#refactoring-an-existing-application) - - [Code navigation](#code-navigation) - - [Starting and stopping _parts_ of an application](#starting-and-stopping-_parts_-of-an-application) - - [Boilerplate code](#boilerplate-code) -- [What Component does better](#what-component-does-better) - - [Swapping alternate implementations](#swapping-alternate-implementations) - - [Uberjar / Packaging](#uberjar--packaging) - - [Multiple separate systems](#multiple-separate-systems) - - [Visualizing dependency graph](#visualizing-dependency-graph) - - - -## Then why "mount"!? - -[mount](https://github.com/tolitius/mount) was created after using Component for several projects. - -While Component is an interesting way to manage state, it has its limitations that prevented us -from having the ultimate super power of Clojure: _fun working with it_. Plus several other disadvantages -that we wanted to "fix". - -## So what are the differences? - -### Objects vs. Namespaces - -One thing that feels a bit "unClojure" about Component is "Objects". Objects everywhere, and Objects for everything. -This is how Component "separates explicit dependencies" and "clears the bounaries". - -This is also how an Object Oriented language does it, which does not leave a lot of room for functions: -with Component most of the functions are _methods_ which is an important distinction. - -Mount relies on Clojure namespaces to clear the boundaries. No change from Clojure here: `defstate` in one namespace -can be easily `:require`d in another. - -### Start and Stop Order - -Component relies on a cool [dependency](https://github.com/stuartsierra/dependency) library to build -a graph of dependencies, and start/stop them via topological sort based on the dependencies in this graph. - -Since Mount relies on Clojure namespaces and `:require`/`:use`, the order of states -and their dependencies are revealed by the Clojure Compiler itself. Mount just records that order and replays -it back and forth on stop and start. - -### Component requires whole app buy in - -Component really only works if you build your entire app around its model: application is fully based on Components -where every Component is an Object. - -Mount does not require you to "buy anything at all", it is free :) Just create a `defstate` whenever/whereever -you need it and use it. - -This one was a big deal for all the projects we used Component with, "the whole app buy in" converts an "_open_" application -of Namespaces and Functions to a "_closed_" application of Objects and Methods. "open" and "close" -here are rather feelings, but it is way easier and more natural to - -* go to a namespace to see this function -than to -* go to a namespace, go to a component, go to another component that this function maybe using/referenced at via a component key, to get the full view of the function. - -Again this is mostly a personal preference: the code works in both cases. - -### Refactoring an existing application - -Since to get the most benefits of Component the approach is "all or nothing", to rewrite an existing application -in Component, depending on the application size, is daunting at best. - -Mount allows adding `defstates` _incrementally_, the same way you would add functions to an application. - -### Code navigation - -Component changes the way the code is structured. Depending on the size of the code base, and how rich the dependency graph is, Component might add a good amount of cognitive load. To a simple navigation from namespace to namespace, from function to function, Components add, well.. "Components" that can't be ignored when [loading the codebase in one's head](http://paulgraham.com/head.html) - -Since Mount relies on Clojure namespaces (`:require`/`:use`), navigation across functions / states is exactly -the same with or without Mount: there are no extra mental steps. - -### Starting and stopping _parts_ of an application - -Component can't really start and stop parts of an application within the same "system". Other sub systems can be -created from scratch or by dissoc'ing / merging with existing systems, but it is usually not all -that flexible in terms of REPL sessions where lots of time is spent. - -Mount _can_ start and stop parts of an application via given states with their namespaces: - -```clojure -dev=> (mount/start #'app.config/app-config #'app.nyse/conn) - -11:35:06.753 [nREPL-worker-1] INFO mount - >> starting.. app-config -11:35:06.756 [nREPL-worker-1] INFO mount - >> starting.. conn -:started -dev=> -``` - -Here is more [documentation](../README.md#start-and-stop-parts-of-application) on how to start/stop parts of an app. - -### Boilerplate code - -Component does not require a whole lot of "extra" code but: - -* a system with dependencies -* components as records -* with optional constructors -* and a Lifecycle/start Lifecycle/stop implementations -* destructuring component maps - -Depending on the number of application components the "extra" size may vary. - -Mount is pretty much: - -```clojure -(defstate name :start (fn) - :stop (fn)) -``` - -no "ceremony". - -## What Component does better - -### Swapping alternate implementations - -This is someting that is very useful for testing and is very easy to do in Component by simply assoc'ing onto a map. - -Mount can do it to: https://github.com/tolitius/mount#swapping-alternate-implementations - -The reason it is in "Component does it better" section is because, while result is the same, merging maps is a bit simpler than: - -```clojure -(mount/start-with {#'app.nyse/db #'app.test/test-db - #'app.nyse/publisher #'app.test/test-publisher}) -``` - -### Uberjar / Packaging - -Since Component fully controls the `system` where the whole application lives, it is quite simple -to start an application from anywhere including a `-main` function of the uberjar. - -In order to start the whole system in development, Mount just needs `(mount/start)` or `(reset)` -it's [simple](https://github.com/tolitius/mount#the-importance-of-being-reloadable). - -However there is no "tools.namespaces"/REPL at a "stand alone jar runtime" and in order for Mount to start / stop -the app, states need to be `:require`/`:use`d, which is usually done within the same namespace as `-main`. - -Depending on app dependencies, it could only require a few states to be `:require`/`:use`d, others -will be brought transitively. Here is an [example](uberjar.md#creating-reloadable-uberjarable-app) of building a wepapp uberjar with Mount. - -On the flip side, Component _system_ usually requires lots of `:require`s as well, since in order to be built, it needs to "see" all the top level states. - -###### _conclusion: it's simple in Mount as well, but requires an additional step._ - -### Multiple separate systems - -With Component multiple separate systems can be started _in the same Clojure runtime_ with different settings. Which is very useful for testing. - -Mount keeps states in namespaces, hence the app becomes "[The One](https://en.wikipedia.org/wiki/Neo_(The_Matrix))", and there can't be "multiples The Ones". - -Testing is not alien to Mount and it knows how to do a thing or two: - -* [starting / stopping parts of an application](https://github.com/tolitius/mount/blob/master/doc/differences-from-component.md#starting-and-stopping-parts-of-an-application) -* [start an application without certain states](https://github.com/tolitius/mount#start-an-application-without-certain-states) -* and [swapping alternate implementations](https://github.com/tolitius/mount#swapping-alternate-implementations) - -But running two apps in the same JVM side by side with "same but different" states, is not something Mount can do at the moment. - -###### _conclusion: needs more thinking._ - -### Visualizing dependency graph - -Component keeps an actual graph which can be visualized with great libraries like [loom](https://github.com/aysylu/loom). -Having this visualization is really helpful, especially during code discusions between multiple developers. - -Mount does not have this at the moment. It does have all the data to create such a visualization, perhaps even -by building a graph out of the data it has just for this purpose. diff --git a/doc/img/get-uberjar.png b/doc/img/get-uberjar.png deleted file mode 100644 index 97b1dd94c7fa33875c276169464dc3cd2c5d4c84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45106 zcmZ^~1yr2PwkF)TyL;o-KyY_=f;aB&?oP1a?(XjH5G=U6Cpd)QmdSU{y>rjZ{C}_2 zy{fDBE_wD-ReM*xZBT)T=MSqT5W_TASVzum3ZsZ7_I_t~w?YytrG zB^Xkas|s2KRoD=pxXkPP%ysoJDbQ6EPjS>`jt;ICj`LTZ8 zk86&~9ghOQgyBt19-9gFg9hj&Gok;05;^(e5z6}v$=V-Y!w?1u0ZbarVK!%CEtgx@ zIlv;iL|R7!u%(V-mO&K&XJ$c0<--DqkmD)?JP`mub9RAkg+!64hih>_86`ySVZSUeXDs40kzNy&kV~xwf!>GkAr!mwUhSjvO z_t_~#b_~KdWdboO>1=EV;kMYMbi;`_48m{^E<*&`mLUU$4Wiz*!5jS}sSO%{iyq=O z0F%Zxr7aOs5{_2ST7dor6NPm9?a+^^R!;?RY51*np_*DIxdm5-qG>>FoVSDKD!6;! z_~s0zn(69m_t#NYoUuH)JK7hF&`1c0W@i$+3O*uD^1b)+OI@mc`of5tNT=L6=?)Yz zV@A9Oa7}{nPP5mIM3Ur#FK)feQ>Y6KJe>b0W|5U{b$r23KSGJbmr*;=u2ApAFL|I= zq0>49FQT}w5MF-(YIhm2W2>LI(u9SSYp!2~CNB_wAfmG2R35(gkM#z8KX~27cit1c zlUBBa@xVVHP%_19QiYAVFr%T#FPeg$eJ|Igtm zC=;^q$UoHYYRm6e$W1O&2JKO)=DK3?V&@{i_P8dm#Sdtv~3;BIMtJU8-$Cy}w< zi^Y^6OprW1M_FKVBQk*J0UPkr?Z_3n>f~Juv**RFO9e{UaQYPv_`{C9KRE~B8vtYs z39Um)@4@y23ByAq0&%H=Go6;$MNriR;XnX+Q3N_D+d(N6n6^;;0$gH1gb2G8RQaH{ z6Mi zwi0A|>8gZW8IoH@7i8X8Jqe$L&2e!vfOo8)7;8#&RnbNTD<6ToRPVeB2X1a~S#hTo zxz5)*DaLt1H{p%2JSmpq)p?;i7{0F%3Z$k+J{iiJrq>K!HbT*6 z^jp1n;Bu+e?uNRbmGd3VHwie*YIN63Cka?KS29M{>B(AHAkV1u7@xf zCLzXWj9M6`BDyBdBgX@$r7pZrk|<+_t{AE0WKV;^9`!q_I#M?(c0_H2^uYAsQqp|GLMCwoSHpDdJcJke#Q>jL1-{7#FP$T(FG z)u0Nmxkm@mtkASlJ<;&0q${^7IjQAQYgB0z`_*uOGb&2WOKnPRNS(GoQEF3aD#xAr zCG~WYYcg??cd|O=k={@}piWGcRr8nDeg$^*g(`3HZARQY%1NIamp_3&_d9W~VQPg< z5n)YMrB0cTNUOZNjH2YU0h57!olfh9bE^>Sw@(((>`er=_!0Qr`1v$e$~SofxeYF2 z!(lrJ*UPk3zLl=a^2$}v zW69H!W_d{?EwimguVmG?%2%t|YU@h#tLPT=f?vNr6rhTa$Z3O4TDC!yq}v@Aw0R+J)^B&`cW~IW zRyuuLTwQG2cTT?AzYW@M+Ir{|%r{{R=Qn>$8M}J90zKwl`I9QdW5<(_`sexNfo2J3 zr43*Wi0cInW_zZ4*n1y+`|lbbFkXo7y|2&Dy5}BK$bR6RXq~Md*B_AmG(7$T6cGjr z76=*9&5=6=>{SBARIKK@3bF?`1~2xy_6pI<6T-qgV9wnewo z`*>AV>9myXyeYbAwtB6a`Q7ff>+x)H^`fR{t+QUUJ(Dw2;AO0P-nq?G>J-uxSv{KJ zZcA`yq1*6gY%`ZZO+)=!UsRK9OJzM*~{-Qd-FL|IVpS?o{1oe z!zWpHNeO6aL9otRr1Z-}Wt!nz~T|Q-DrC^QHN-5*! z5erfCaC-5*-yJ@HFFj|e@;W^{&erQ(3x6`_pz#Ej4R;?N!8{__vmbaNc$A^kf%Jb`k4sOdCs_pCdyvN-`R^)DbrKa|9@atMLGYE{L3w@32n}-crLL9)`KRFp+nV)Cr zE?nCLdKy^e&#KR)quj4XMpA-rjSz-V6CQbb_sQ~nJU5S(Pdt^fco^*>(-Syif= zzi|Y#wYs*OwxR-`siQr!v6-WZIkT6&(_d)-K){RdZ_?h}%^2uqZ|C63=Osw-FA2WC z>3_0WD1iSGakCYq&{k9diaWZP138&Fm_JbnAp(Iw0T(k1K2-^+|5E?^PmsdO&CQ9A zg~ij;li8D<+0n(4g_W0=m*o>13mY5LUkN5xZwEJHFD3_9%70h#-}OkCyPCRKJGogq zIspHv*Vx3--A#~!;-7~8_vhdJH21RppOze4|7%!(2gveI2@5OpCzk&&H8*RE{~xt~ zO8%|(uW|jmIe~vF<5RKrGPeUuSlgRBxc=>$5Gy-}z`vULe@gzRqyM3){Xd%AY&`#| z`5z_!q4`fw_>^6&&HsY*4-`VI0xbVe-haspu>6D5f8h3Sqx>uPuT_K)1z7&Kg@q8m zFL=WP03rZc2~l+~h>KpNAPw`*vGimf6=H+v|JZ{QI6+BHy3ewd>j-+h2AoAl&A!rR&Pt-w!NS1`09d zM;9zIJE%p*>RDRNSFDQ2!Ydmw=0LuD}ERh*?0gDN2OlP*l0)-8FR=T;S9C7%VQEMpP*i~$o z(FDd*Z+d=3Fm)AKEEOS0(zmqNjX1XwH9A3n;7E#|SllbXv`#!a{el_o*uu(D_2m$! zHz~`H;S1L<=4{2xI62`-Oz9o`TWvzYilVP)M`5aCJYOyd;+knsU4L3xfsWtt#OpxM z&0x9vNviy#gbG!7A6e%-e@D0%CqY{ICFmHn04Vc9Alux>314(w@d@7oE#Fg)#IAJb zb_G`8D@!(z$O4koG=#Q~u)xU(%?Jds zLI|)jQY)azi$MaWLS&%)hA(bT&;fhJaPCYQ?y6kDuw;BRxsjVN9SDSZ6!yfCaX+D5=xCIY@wM2b=vAdY z-8c!t&E=FCIQO|7AXq2I(B_Jrn7pUJsvRk+DulwKE@fhPEh-bz0l%)T2a{*3hb|Ef z-WLu=1sw2t7oXF0#TA{?y$D73#TWe>M7je?Rv;h?cJeMAq6<2RAk!750+PW91YgP}gsU?Mq{LrFOJ#7zZmE+iuOCi-#EnlL&|@c`T7r#SGM#1Ob5l0@gvevjvt%c{fvwyKsh7A zso)%-e42W&OUNp613uhNW7{I%_IZ}lfw2X8A{j8aFoBR` zbN&?K$70e+yk3Y2>?O&xFw2!91`|`xU^~;GI`JZf3rK}Q11B7)!Qi*a_fj3WXiAidSVBDw_AymwVC+5-{^C?6Z}0XU~A zNgi=_8=~S?6ZVEo>L&BYeA_dW9R+P5qie1dmd&Q<5zU&q$L)%lTdta-*MCx4e*x)o zzk=-1Ir1fs4`z2E*o{)K67Mhhy5cyjV(TdVt%|QH_2K3pKmVP|SGE{r?}E1&9n=Ry zs>nA8Rm~^>vJvV8Z1r?N6l875nldw?h#}^=9kP>~ut`k;!w^$-h;$+TV;c7J8`o4H zs1jVR;=nUt3OSdI!%uxq-y-c1(a(d<6lmnk%uA=1dJqScNk!ulMtxA}E7+99m~+ji zS^i?jHlG#=G`H1UPuZ6>k688Hpf*!SLD(pT2nX;$taTwFG?mFGAR+PRC}vmc*0JX( zBZ6QC=%zA>bQB>ALe!pJZKpa~@nt7ykoadd#v=^dq%g%aj^>R9-#deiz#*J6pPyZR zCfqJ)7jgnc#e>*hB=yK!19rZz6>KnoaMiLXk?hMqQe5aN)6WmJsI7AGuZ{2i#3 z(BK{m6q|AK`$?U8(FjDDE{)u(x%50}v&7LT;pK$(JxU%lf+e)0LAY&psnySJB$BJ2 z@BFd-$s`|JPx^3weIAj<{ksEs8tnp-IPnszA@?AwoLa{ZaDghvwZpVrs-Bk#8oaP6 zNsvKUgZn!`6_{JIUQE}{dx9!?z`V;d`al;9;VK$8B9tTev!F=1w9Qo@%A74$jjf5H zf&(t397GL%ybE-Xb6gbv@n+7bH1FU9Y%sG+XKQvBRZD@U1Hpl&Fl|iJ9xj5p#_XOn z^I=oXNYV!F>*olCwX3uw+jtr*)u7M-DR)Z#{tl;VVzaQXSSiVxz8c(|Y@h;%dhJ6z zPBpKK73);$K-(OVn`XjHS(gmCq->yhP)=?tfztF3axhs$&Y`VQCkRXSRzM`G5IRr^O{lC`9if|9e+`xhO4`$qQ`vO?Ee)1Makhekf`q6Y z*q}A2LYvPv+8V_3#FSas*VpvDHbtBPhWeFpIz{hKC8J2G6N*9bErpYsK7~{(**7JX zLl^nP2nf*uQPjmT?;+!uPE^#`kB4ppdgJ60I44@~zY*21pF7$$)athX9+3)V0HEYr zH1(Cq4A4 zCfR{y{FJffO54%mtrPab*&0l%#nG_3P}pLuNzGHf5*9;AI+s;?)GD1*$~k`bTY{VF zI0k*?qs7Hf{vLiaVSF(QZ}iEC%f2%(P#%-N208BwXj_Gu1+4&Lx*1(W80yB3e^-#Vyg#yJPE1`(@le-=MYhVLZ+M;n~D7x$OH z>e!v9O>ZT3=+i9`dE#t;4;w{A=qiLT-lFJCv@RkU>)fO}3l|b@BJOP6bd(G+mLyL! z4R<(tgA*|0Rr)2B#wjc%G?-gt)sYRyT}j1lYVd}dhO_5V{Fu#2CKp^mgBKmVwX5Y6 zi3G!?mZC4^4Qnd9b@ThcQt9Hbi+$G8T7Y;v7GFP>HYhcmFI(OhZoIHKiGg3PLl`%PR#jhfq3L)~z3_PIkC^JhsAdzyU#4J>v-m0wlp z*m+X|C6xJ-sq27d{DejwK$9;e#eo1?4@XpDp4SXnBLxF|M;r}d8V>axa7wo`m|hVf zq@sd=NKeOmtVx076>79*z5)z!Z_`zBX|&IcF@$P z<~0v4AuSt)Z)s07Svz@rU-Qo#=B#u6KxA3cc+m$roJ%3m*-8-Ar-jAzCD|VZujndW z^X|6+opDDGw|5JrE6)|ETuyU9+ugq2;nt~3Rp~$fgR@9Uunbg$7L=C^KsKo0RhMCe zNYge@LLR>xh)ilktL;9Jgp#1Ba9ltS9|64%ZJ2dVV}(p12e3F=lo0C_eJVECQrSE9YRb!(qaWXey5q3n-*cyz zHKX-HVf_cX+%8RykB^xH?^qW8h3Mu*sUMp;pm1Sz?p3_nRUa+sg?(jZTuX&i^{^9EW!lZ-zXhP8yS4^|+FNcKQb zS3;~IooN|#T3E5=QdrO-oFJW$6OBv+4xsV^^d6DmLbk`$$!{xkuL!ME(Ih6{7(H>H z3w_uzv>oW9mzfN$o-?Mzt~e0BPKsquj!vdEN1g|_Bu!5h6MH&;o>hr>^J_&2@i!^o zh;wKH9VGwA@oN)If)9l<C6Tj70uYO@ z9u1SPq>2z3moXkuSE?G^umB&lKL1H(#gbYsae#LDbNr)lk!=C6noEcgnR`64&dr%a z#&e+sKL7XaY1&5#oWx-VX!EZ0%r9SGn$XXF!=smmWxDbR9EM8)ZG6OVUu=1b|I);Q1T%>Vo+Ock$%8s+r0QJE_ ziBR;RmmaQ?CrCt}RJ+#pH1x*Qwh*=Y>~SjIVQq zE;@=vhF2w7N~JP5^0inEtDM9H=8q5<9XwKXMG=zWlKt6t$*#7qg7Q{4F;#c(>N8V9 zA+$eq-(E|2u(&L2J1S!Ohjo&<{LS0S!aaksN_E{qesTMGO3PAtaQH@?N(+*{w^jk; zOl2}?fH?|Jgu^NFF?TRsz& z4p*&OlI_xJ_meq@%wnehi?BzWK~pS2VVgmFbCg!&%Mf07PMR)iPBOzLC^d8(X%QBo zJCNu{_%+ny%VE3`e1T*l9D0g;iG=(|csj6!f85~lkEI9jBI=Hzm?B4TncRluvLJYj zc{;g1IWH7ys*J~5{GuiI1TVu}BWQ#bfG4s05rO*w_3Uod35-b8d<_gP5RyQSP?$ZH z6(g#@w>cGux9>EqEzt7C$cXp>&~D%NUMCWN}4ksVVzi3*zZ%1TDL~OH9q02 zhAxRrUr^FQUkP0p;BJ)nzQ`7sLa-D|=}QUH3TW zyWVAvY*W`gOrl8!Fa>qIsLe~`X#1PsYy*i*&tu4qsW@(vsVb5%vFII>L!Q3uryy4K5Q|7mX$P6eB!{ zg^r+5CRs=YO)f|h3Fr1(Nz*b&K~oQ+@#iX$Dql5UFk`)u`T)H)R<1E;8WDm~WyVa? zu+N2s3@1}N)LGKKZZn;KAudqo87EEYmJfa^WIFC*`gS@EN52jYB@3Irx`rpQ3Pb(? zu!}wJ8(|~Lun<%?P&Bjy(L;qQ=GMqEUiOArvvmvpVis%@%oMPhB%h{h_9&?>(Pf7M zY2wJg^L@Y_aFr5;sz(H=mxSnK9-g+?{I-M>&mS3pnNmC`gWj*rqeNP=7&%~y$G(?9 zZ7|1zu0>`&ln1(0XEtr=9vbhePjEFe)6#STUrd}I!k4C}=8jr@GLeTR6R0GerHB#g zPB~5HOVnzNUw&OkbgT5*)S2872dPfI{^DCGQ1Dp*P;C5Pn^qt*N&^qM7owIoHcG)~ zW~?F+!yM?OTl{8J&uGY^u$RojrHA(Rjm(5MUluTl73eUVbo(8biHs5ZkY{OM?ML4{ySkq=M> z7EZ2YFv@R<2!5Z|wheR%p#PNR!q@@}ESbI-m4t=Y$}G8mFwvjE?AQH7C*A{#{8a>d zB)nl2!fBB~I2|+6mhJ#Oen=k$rR12W7~@7q%9{*+JXPHO@gqT?WLl;FsKD(7(a;v5 zU%n+Vys(7jc%%w>21O`x8l$7R;C()U^bm=L-tV16F5jq-ZD zO#4^@V7{2prd;>kViNLV({769Y`~PbOn*i)QMgg(z`GU?+A7XU5Et5wjwQ9cEpwAp zMf{=lUStcIxy!wZfhqTmZimw!+y1{d{(t$i`HE0N5h}*pBf23rk`Z$hbboz-e5+0a zx|i^@nVGabTckDfV=W*}%DRpl%y$GxcDYc-5NWji2E_DZb?5Zsu0$A~Z~;h9aJTuC z1|$w;g(4M%X=ljz&(%szT$kY1JxrCP(sUn*p6KVCZx=Olu1%P)B?{p93FR;=t%CYK z88E(=K67{#mh|uybM?#=jb6y;M!HA&b~FMLVp?_NnwHQ!dXsKivQj5;@g-PMCdEiq zZw|1hDvko`K?ZKQ$Pt7%qi7#xGo>R*LL~A>ckjqZ6Vg@qSE-pmRWz~s5<5-|i)!pM z$}ONr7;aSDR*c?L;Nf;|cP!_P=sbM^35|>3TW^u8)hbTdO&5eI-Stgd1(Uy5IJ|&A z9&OrTF|AVBmqwETr{XXZ5eCOrgVOncs%WQ)&o7U=?qP3t8ZDCl6&w7QSM`xYIDkuE zT?tSKXdhq}`bHrr88L2Div0<(RR)j@0di=B@q=KK97Hz^{sAEWR3U>GB5$OVhXpB= z-!SGoLzf9v8p?e?>2mg~eS#K?sp31*m@I8FV+M*0WMq*WRibjMh|&Q4#GYnFTa zV-1&;O3*Ta#}PUJG13;3RF*zMYvkr>t;5et6!GTkR+bE%UaD=>sw|96e42Z@Zd3%5 znG;asq~|QTSL+jq(NC^#x92zvU%ltleIh!qggIT;TcaNqkpas{(lq#3OJth0)*`q->g3GybB^Tx2(THoyBir+##aVG|Z zwSn`vf8(tG@KB$ct%Jf}g7^x)3(^hzC6~xnP*ly#8{L_dX5VDkMl$(geAElHKBV>d z=QN92gA6m(B9^?N+pw%2TJ4l+k2u_l< z+P0kZDpZxnTZv1xwa|ArZVrNyZ7G_vg;u?I+Fh*~O(}*#OD={o6fx-9eOp74osm|e znFYNfY;z1?&QDHAeBQ^FS20I`%@DbX;FbZ9HFQJMn)sZx8&JOYL@3sYI%7hOPCgW& z72P=0Uy8;|5*7t^EwP`CzGC4Ry~Ebf!xG$HdNa4d(kXemP#E!3ToYW^+7SC1q$Uy7 z4)#MOPPZze^{|RNwGMmhHsAKp!sOFS`@;jpz~o&|M>*F|RcZmAZlwj3D|0*zDGQZG z<&Xc+xM7)!oZKW|i|A`@D*J*GZE(Q1l#EnYxl%`&q!UH4M)yi?Ag$w`T$nz^61AKr z^03FZ04WsFRf=!)abf96ruv{9aBIi^Bf}Jx-Z6##|FFjS3Lr8pRr7{+&Ey~(l!XA~ zgaIO2!t7;jRX9 zC;W76{;gt_X*UlC9cJz*o_K5lq#%dT6s#nw_SG+#B>Qc^5BV|G461-}zhPwZn8Il~ z0R*H>vj@8l%4BHbRP^My;{)#`jok2WmWG(Gd_kB}a94p$PwGUy26JjoG0c(lkXyDP zMItE+5Q+0{xkXSZbT%jrbY>4JHLlQbC|0Z{*+?rPnZ76elxdt?hA2JapwTBiR!cQ@2l_lm8w9 zADPV+L}gKrr~dMwWc>TUT~0u*O#e7}J0ZO!t_!%G6FmXc>4|I<sstDty;w>i=G>iYV}JHw|T zYPeL#nH=7Sn_;v~;rB&h@Z;4s8iQjB&;MznRRDRivnl%4(LVm(er-)q0VOhRLa3Qn z`KXLpYpOV4;=SQ(gG+M)gt`N)iGpN)LSXY`WU`0@u53||N@8e&^dErNpU0W*i(g}; za6i~QCZ&aK)XEi`n@~$tl8uy~aDrM71du3Uc1cCW%}Sd9PON#a%G}T&>(P}YVSVDv zMo0=UI|;MFq!rQwEuiTkz6~Hx%3O$2yNFtRmFH8*WdRXLfpDHPFvoq$5jPzv|Av12 zM@Lci_%zfGb^iu)JEABp8v~wG*F$P++kNk&UYU?!eBpcqi44V zwI&#B4JG_(PKeFtD~bQzJah3zaTQhj+fOLG@wG4ny!q6F-9JwgjI@Qg`OP5Y2K<%uWfQ%UtO_)ut$%g{_$x4$DXCvBsbkh&Vo`%d71a=fQ(Y8M=kiA`;uNW_cK;&54l!l@&?SAgX>mff>TWG(OyvOMR7RS4{Ah)XIYzn^HCoRg+|h9xaOJC1C+jn~O0*U5(D6 zKnuqNcwcU;+O1ycx3n(=JDsnPw0T}%+m9y{1|Q@3+a8p#98jd=PQZ^$-s{HUE+9a9 zZ&Rt)qIMyG2CEbT_6Py8v(Z*XU!apo2}*#_({A4W1w%nnF-V2zf7GmRbJ0xVpkD79 zVW}3pR9IX@>TNy@#BK#2)+o8I_q{>lA91aYyLsVya zo@lu)#D_1~@${|8h=mk-!;vBVH%$8bXqx3opCKyWqR@)&~vTy ztK_S^kX7-mH|QF38bSgl^_SUsCB);nA^{0(As0~d+9@>uGauhBtp^m#eYEqFvcsM* z*4&V&6BuL?Nx(N5ka~9~2AZOe^*G<1G?BVSCW^JkbutsoP<_M%J9+3h@)gpvyx_h; zI9PYTk9n?5rZUzj=QG&u7WR%$PEJi-mZod2@4R3)XdXCMn%AZowxp?h{xSZQ*P{(s zhXz)sVrujR$^E3(4OKX=!law!bpo=)CK^%Ux^m2OE z{&h-a;FWM##jo&8R3Yj>CG@bAF2&A_pJ)Y!qVGg8Blruz2{qKqo>x28g2CrhBQ+G0 z8)W9XZFX(KJulHH9|Pz|QrT2m+Z@A8O$4GP!U(`n7iYcW%HR-7s~gHcUZ`hD2-4i-zi1k6Oox z4j-8BiFK82oQ_uoXKd&EZUyd`a4k*C4x1*|eeJ2fEZ-EbCd|#H!IG=YE4^yojJ&8v zP8&9Dy;EvuByBM+?)A#54y&YsHS)Zqa1lKul`hk9UrAB>3MG!9PJ$?&P;D7C!2{z= zrNoO(YdJ8tM%{W{3VSU`Yx7ef6kx9KnOk2J8Ekw!xXFX{pzg*X9Lx|>`XP&bOyJag z;~1&@&vf1%gyYGEut`FOY)XZn4v>hUEkGv+LlSn^C8+|}GgW5KrwHBW>I=lz$v_@zUVzJJMVu`V z;)#K#)x;ZVK%I(0l~yKNNfptQ4)_=xu99}#1^&T?;rJ7Qv*1)EtI4$Mv0-|1r%~%q z!wxL+RehT2_RoXSq5N3W%k;|ho~95ak7c$&cG@0dL0**}I}K*;?16Iq@p!vCW#mq^ zftFVXwMbZ=L1<+IPML%YNQVt-Tfsj(aRxAZXMuNA)h)n3tMNz+I2x%{4OAMdZa z5vU|Q(gZE*v^W%@NEF8hp0!O={3*UK4%=PpQ?@H>>HTjwuRHgvn^?+1*6{*O165To z+KP%OT`77Ywx^x<=Q3#UetQzx?%Sj8OidGl5~0Mw9Fp@&iWQ{_W{JLvx^3tU)-$5^ zqo*vLM@Sy4`VnMJo^>CU{%%i9EACGWL{F_6T)%%0qso1IbUes?_-&1K33tBJta0r> zk|xZ*sC0oZr)%lj@6nd~=g60}6`M1?|TnHovV*It>ndi{|=D7fr9QUm^n~YPL41YECK0kPDwtBME*+_%q4`DZN z(BfOj;h-jT^O}hqx@plJm(*V;s3~J4-(PqBFwQAnc0E5_a|>IW<5;+pD7RnhyT-M` zFzup|d~D4+H2AK_B(Y`RhU(h6HM1JV)_R4MPxkBBW$V5w6eWBv&oTY!=knEk_YWL{ zmB%}-?#uZzSKvMy)=qm%ss?JSvcg+RE^m`z^Q^o4>HAtD!)jatsgC{lhw>f|#8)wD zhgR%QeDzVP9Q$** zmYKlo1v~0$sd?!DCM`KeC+vl}*!o-{*~oT*!ZOUqa6}l&@n+igap09bjnb``_#M2^1l}$+J!jmStBQ@h~J>( zoBi5hj(Kvtc!SL|-WF*66_s8vBP|b1zNAtw&(>MC7r{Y=naMgS;LQFx9`=~se$=_% z>AgIOMjT>AJb+RhSKSW!J&{SnuTr7 zN0L1A{!9P)C*7uVdmQ1HOZCMbG*qdLN8OFwY`pa<$)qZ>-z?GXu)dB^v`ZHn$~yN- z0DiRH(bJv&*Lp#|MTfu_MO(+QHObwstuG}0R!t6Gx1`yv1up&wpgwumAYAe(!){4l;1c*Fes-+I=|#uatTxSxB!4{r37; zD`AiL@mNgK+>g4=p`9D>c5DAO{Yz^-qSf~D*Ucg8-lB)<{_x>+ zF%3bjf^h$yd@ElW9bR<(rKZjq##aW^wtCXebQkORnibU7pqf_$-!&1!qp`-* z$u8tK2I#^x`}FK^5n-%i!7L+Lf~4(E@W;e>;hZ07m6Cgsh*uqrSB+z56EI(8n>$}6 zQcn(W^B~aH-h2N|x6OCf!FJXZ=ecW&rH4b!X4}`TnJJrl(`T=7*LmzSvy&ou)h<)p z(k>9Gb+Rlsx^!EFY&@t2BJ|aa9dT|E4qUH>NlIW1`_meW?c_8J^g=+UATym(YLQ5D z$;`dP5W^dB-vV(uC%>ZE^Hj9W|MMr{SEGVt8Pt5tMnV0N`J7gUdYQ@o}lkmtwg{kA)WQ25w%o*Ij5ECyI#!b zY9fu191sN^|9H-lP@OeW1=(%Kch^>8(7k*jv*|6So4tdu@*FiHCbH|7QCr%Aa;8hv zbe?|)`KwXM%ek!Xo8b16NO!$!APUplVs`vmE&Gqo3LGq9+hHXk?4fTq-7r|cA?#nf z6>$+O!LJF^I;ss?scacScDfqvQY$Aou65;gxZ@oiLtXb=uU&!7OYXugtlQ6Tc#fww z+1~flZB0+wNU!`W-MRsZmVxwA-D-udW$gW<*BVJ?Wpo~-smb6UCk`t)1ox#aT zuF|)vWA;r{S<}#S7Jb~>DcG+Ak5037i(XH1iHX}@mJSR(;3AsPnzvOHm@Y1o4zq-F zrc}oW2Ay5XZGtuO`vivkrp|01wdwoDog;>8-07?x1>t|TJ#RBH%)bzO3a}X&!%}eq z5|F;u>|BKm4Zzmp;x-iOxlz1Vpdhkme0~zBIr%7n*ekK*AuCDld2Uw$q4hNlvp>>@sie_nXWku8=yUgh>p38jPchPVf zF%BNXhw@*FK&Y1om_GoPP4@BNDw2CP6{eJ~45?bpQcFl+?(RLxTHWZK&VpZ3Hb zMp**LuiJNYx=x;U%V6bdj9gf3`FwcxXjV7KR*xOB&Bg7{R%yZ9LP$*ZJ|C;aso4g_ zclYNP51Y7Ld`q|4Y(%aT>gUq#wK4S*`;KcQ%?)Bd+b|B5#-SX#Ugp0!>2uEX1)P@K z8Kt|(uR1n!#*jAf{|G%0v0M@{X;UJO8o04qq3MCpgM1^bY-ql)5=_(8+G^ zV6{<~XW4Jy8J)Yju}wx`t0`<=*yuFETaFFh7{+~j@00pF2kzdvd|&3@aIDFQRL$If zH2bJwb&#^2x?~Fk$e5;QsLeJZF;}*>DsMTqPwS^Sj%*PH*n~RdTWD-4$F$#-(Pj;} zXU1l`bSe^V$NSpPbA5oazgCZ7J$`iD5F9SL{(ih_zn<+VnE$EX8K>Uq5q77tw7_*~ zQ;RboTOjGhPm4VuUjP;9gU>fJWk4rh$%sEy9>NtQ{wacV3~Ikb(c8{46(^|rKxnGz zb;=uUgC+3ZHsZW^GTtQ!sqpW04`-qCS?OX8(#mH=_1_hw9I`yg5SY1%L;#(d^bn;^ zy>Uqq8Uq3m!3U0C-7vFpYaMOlL%EE>Y>CoNGu1)b`*(i9c%oc1Mqn{Dhxd~0flS=i zU)1|BTNkeXd4WK^El~OYEi1_!BWC^cz+>t> zMU^lmLIvoH{aw5D%&5xiilP1I3dRT(%$CB`g59!&ZgJTF$*qDpbkRffWZTXP!VzO3 zwYD~YvO%x;Mo#k^G*j=kuEBvF*=0zSA?gQwP)V8!DVomt=^YS|hIed!NrtgI{KplA!$?^={jj zORbHb`@wzl*y?o6(Q0 zqO!F0lIoAeZ;y;GLkxVjrQ6S6{a1a|w~RbNHK;Qe+IDE5ckOvg{fKz=PH8!`(OA1p zp)w&vfSmcSOHO32*Uig#^t+)jk_}?0dr_gw$c=$yVxccyPVKR}xEnlS7>RvcI4hggQ}HF5UH27$R6T&c#=nwPrmA5b!k?({RJ5n$J3mp1P6 zwcd%}ijUf>EC3vEY(QRsg^g5XI=&Y4$E5~(R}YBB-$s^<=e}nHsQ~371Xe3XM8xYs z`o__sqAdh2YR!nXyEfqo?(9$vMUs@0MY>6idV~CpdA7`uW_{$Ug#sG9V*a}+b@I3{ zzU9|+yCho!nl|Tu9KJp@b4QZs_jB8qPO!;|S?Dn3IV=9 zO~7(5{Rq-i0Pv%~T3}nZZuNF~$5W0rRT=!_m3>`Dso389b)@!_y(``GHXziBV6c*$OSYm;r201Ps^5k2OZ$`9DEQNye|(=HBqYfsM9PJ3nf zGJA3Dx?K64?6`r$?H|URxc{=-qMN$yw)&+NwmM&Lsdehu6TJ*VFN2%uMS9r0CuP68 zdrrQ&udH5UZ+61=yazw}-hHimPMPW2Ew=GpTsx%OWV!X~*(ES=Jyz06A&&ps?zq*HY_0h+)9`YCkq` z&@n~ln(S_S$sP-mS;eRcHn4~(YPM9{d%IFr*13oE6yc|9Y~3pQ{ndAZ`2i&z?3iN* z*sv3ZSeK%F0*g)6+jKYZKCGe-TivkQS8uHK{-!4DS5*u?Sl2hLvsYey&Hnh#pS;cz zCYg8bdaU&sILP{S4|URN>9(zUt*w4}y}k3N-JYnV^D#E$gTrh{)jnhji`$28!X*A$ zyUo@T6>I&5YTM0iK+iWicRR*DF!V##ua$|W_1iYt##(78X}!WhBG>+kmzLYBuWz)5 z&Li#ob4E70zH7H^VAA{_^1A3iTaNp{P#fB>yOr^j^gy?R(@EHuJP#`G#dV;L#!YJ- zlWSMMY8!Vn*oP*Z-)OEtTl?&#g-_+0QekI|9av~q{aTw}@mCl{`=j%;HZv-W}_TYPXJb= zfCU80QZ1(kr*5|#3&#O&{5%A&Dqc}KV)EnVi~ui#UvE;@V+{sG>p^jpDGM)c1}b4z z{{lp6w}8rjJRjA9lH7_dD5V}v@>JYyi5C~_I(3FP4h>HH!2 zR30)U%aYc+Zy$TB`YkKfLGmiDw`A>re|9(P%7nnTy-mmV?#TpGTB;`p=t34}eoUgATd4$jr`JAe?iIhCHMlIT$ziBtXgK%t<-w4-KB=@5~-Q=#KKF+2@{n z4tWwjIgz&xg;L-J7hD+lO0%D7zUTZRJ0L?+Y zy4L(!Ah%qQG*EKuG=geiqXA7)qZJC0zj*-d>VE3LXI$<(TA5S2^|=8mPi`|D*Atlx z{qL4*H`$Y@&70c!*S77nCudH#@t5A(s^G&X|G?(lc2%nr?Y6I;YnKl{-{!Ph!fEzD zPt3Myr}u3k#TJ`;{nzdM>8@&#?UY=MlhiAAMVBEqt4YdRFaC&yz4L?L zZL_P~9~+C$e@!pk?8?U34{o`jk;_8u*6O_P<$$5Ro0NKxZ?`>fx81Wc$W(c@T{7uI z_M^oM53-O#^7NLac4KIHwo1F~iYAd9>Y1aFzmZqkkUp&eV!geV189}b^zT9?d~5%y z$OU~j;lng=Y_{jS`5OJlE#V$N!wr0e02x->`oAzHeb$`|y9+ZK1hxz=igc zZ=4#WViM<^oA0nCt%irtJkT@ksw>a4o-LG}-m=2(xOtZ4=BzfVdEq=Ht{Q8XUoqMG zwbljXXk9m9akcjRLwDKig`qn`c)akcdM^9QWNSLN?)8PY<=cJsH9xcuSO0%@-91Z+ zGM3x9Az%~TX8s+w*@BiDqa2l^Y|=?i_J#Z{>>ZL$YG1e8Znz`p_sWTO>$M-W2d=+? zekoMY?jOz#0K1KS<|P7;zgd>M_y?R}Clrl?HvR55Mb_&|`=?J84_*uMG~Y|u$kWFH z*h{#tGmnbJ;TY28zE{%r?8A>0vXqUo^YTxe3Wr6ofT>=RP z9bow{C~i*(yQ4beGNZwPTw^4NoWij|RfM?BWKLi+h&N%A3j zcs)oIZF(>Fpzu1<3oTRcE+rZi zal>`LZgs>VZlMMHKo^=hkZQs*4&E6Z&8Y!Hg{SNJAXg*E5p^~KYsllo7Dec zOxeT9Imf1)zb|-SWfz|`#roGgY$tat63yDCo7aAM4RAf9xWE?n(aXnrTgSCE_L;#{ zzUNQ2u7y;^hsyMQmD?I<8>rg(q^ao7b(+?Uh-FJ+Ijl53R80R=s6AaXl(6?Pxvw z47Oqa@DFzKketc7wLIH1B7dLd?u?|;nBY~rJBL}2)3IBAjm zA8d6XvdNwdqp{$wGN#GouMVBbEQ9;z1$N_Yytca4*}U6sw%$MduD7|%38&yjvn&Tg z>ut%J8tXT#$d5K(&KCRa?{bag*xBcPI5<L-{4 zH#grG`Ra;x>Z+I6jo+-bYg+Kf4U+9!H`vzg(VMQ$yWtcS-Dp?!+xaIo41uJ8Khb+)YV;3Joy=wTGj=}}ypZ@uLpi{tw z+^UGlg>L!8jlpf5ns|u3vOY_sz)zXS^)l(I{gfwH564!4tP9IOfDbu-`%#& zA8#kyVJ%V9I2~9@fj#Mrq{_z{^wa?OqBAFU(u#|v2U%Q8{ZUo`%!)hhC&}Xe@PK1^ z#|~WJUG23EuQO06v2I6qbr%>=*yU8&4epNun37&kBHW6t#|pBmGoOe606+jqL_t*e zb6#IeS~gx*W{KmGRn$%f8SYX-8`TKcgJk1vO5yo{S%uV-zcBB-LGl?MHf$LCf?D*% z07TYmxy>Z-i&o?kIp*j(y8EX;wMQR))R#=xU_w!19CTd)(mb1VEoEu*frZ+I)K1kr zP0;m11LP%dz2}`Oq1F*Mtj%i{*$q=B+N@PU#nUHTVV?wK!+6y@U!2_tuBZOs z0sGqIQ|-7e9j##xlh~e_Yf~p)p=f))&3k4YfX(%Fz+0G887A8UPk+b8k2nt5_So`Y z-EJQ_e|oN@d3M+QSM21^49=I_Hr;Ho2d^!_wVnXn{+$bKMDI$j$8EOmx%u|Z2?dM# z#kV|W=gpi%oc}@g!>6CNhVpi{_MUIslv@|MJXg+s#4g0`VXra!KU5xP8vc|Q*X&P? zZMWRT?X_3JyL+82oE`RKm}iG=-ds)efQ5F?e!^$1n}0iy8sr-~=`tJLg?-FgM6y4m zZPQZ^0q^|3}z3R)Jj$|g;{$VLt7 zW#vh3^v}+dp4}GaK+B?}tHspiLNCk&nufOyy}@oThHECm zUO4sB_Tl4uaQSSrm!JBj&0erFC&o&<;f|$t`&Y*_lWl*xS@+QGjp4d#luf;8f(`0L zz=GO$ZNv-=i@(7f4Z-|#c*cgrO$z+0WI2d>?+3Z#`)4zQDk53&!AI^8Gjt@zn( z1sx%E#R#6XoOi1A=~QaC~{IG9E*vA?T%2LLfb@^@VxWD%>H_!OsN% z9_;GBu**|7*$LrQhqWn<+&M~#(6MysZ*9`~7pftalKBN=5Uc0_ZO9GurD>lg0174@ ziV<0^C0azr7b;O{v_)xPQZHK}-#nTM09cAfcI?=0l`IaU)hA_{mK%aB*a<0y?9>MM z$tuhn>XbW%G$a2ES+En7FDt7cSy4P>L6#-i;S)JH%s%Pm)FN02fS^{28^kcG)qeofC{W=QItD|}1pxEr1B${LrYh00H*q5bSndP&t`c$qI zA}hALme5{!pOi|^AM&(iI}$K_B+6{m#=6yZks?>$e_HSJvOoy?my< zJ+i;`{#eevZC0D=i1EYR@v_M!?7c4 zn`ggSxy4S*C0h6FlYUhHCjRJmHuLh6^Y6>bdfCb6Ue01e?^tiZUfa$?j^ll$t=)5r z4c3j%w=z3<(zUks-ap!qocVs;AB$+Ut-9G+ZAvrqp4rUzRQ?b!K=`bGGrR7V$<3ff*1VfT%PoG=myE9pGUnS;RL+6y z0x&<%yM~yJ``m=QALfB%FHWP-TmO}JuRwnzK5l~m%i=B3eYDNEE@fYueot_C#~PbE zyU4niPdvb;&zRh3l34x}-x13eEY7{HvNJx?vv8`#y`gs1tzWgmysuIlHvSU3s$sj` zn43+xbt|#`bKCG!&oEn(n>YqAzgl~$<=x10Xw4ZUz^P+F#n!MxQgy1`n8TSKqcED09sN z_T08HHbw)i{I(z65W(Sr5U9vgHuOUK&##_Zu(p;~*{K(N!-fu;Lu87a+eh6po4?}I zcFD*_73FKJtE;d{U;mbkA6Rt0cD2n5-6cp_Ic}eo-`Kjp}}8@|t-3}8!{J+bhVGWCwMp*w;0gS<*58+)!4V5%cN-WxY=a_g@q2U0cg zMJd3dRz~z?&fRC3yzc%Y7{fwM6O({i77MkasJNpt1q;q(bxvWW6%1)mA!tni!6oh6 z0d?pEXqH=rqOD-xCp~$1Nm8aJOv=0}e085;okDqzh!iG|XSrf{=sdNNdVKRn37OHg zthps|>jY$PA>xSqyukt>T!a-EpkB4IK9cdZO@bwUiXqM%0mes6q z4!pVe7dhzF*~vC%MiE>WW$1OvRrbiY@3jdt0%Dv#YoUGXl+OTZZ`v=W%*m&`a^8=M z;5vVpJL)j|+U%(|XG&l}UAm&$!h}^LC)jDjYwSIe|MSONUa+Hmc|}oShqim&6W0{M zb)k#_W6$JGAlD)$%5A^uWILK8ZP!hq4h<@1-uaCEXxb_0tgt2fo@w)D&$ewG>e9ae zOkoN>9{H`lfe%Wf+&Y!Om0+~>%cp9xQ~QpsYjmTZXqR1drd8$EP_Es!&K{e6hb;_e zDdH1(_Y;L*>Bbd`N~F|VMCfgeA5y~O}V%T zt_x@ToG^mRAt-3a%j=MAm|MaVSai>19N%+_+R zZ~on*w&L_YHnPz&e5E$>>Qo&A>2@0j9iWIwvuw48;W@+zpZ%cd5=b^f?ncia*_J7T%rvog47mp$^lT|Bbo znB-@E{ojG>#>iLA;yIH)Sk9 zbxYvFMX&|Azyx}(w(Vl`{d^XhmRH$tK)wX4&pmZJQso{gJv41p8{cCj6wU!hJWkIL ze@_d|DC&lP7nrJ8p*9|}u44qJkOBcsYz!!S~!hA82x;;Wj2QZH( z%{!2e|Jnj*3m{oXgX01@KQGGCPH@Tr*Yo5G2vU*2-}4WkQdvDJEAa;g){r@?@NR&! z1_mXvtg_;Y7R8ZO-lJOppjtFW6YEmIq%6ulNt32!XiFSuq!4`0Rkn=70_r58^g4K` zzC3ZFtXuO{CpsjZCSFQD zDLO$L=wZ@Ic^Vfek_i1x*=|`UPZqh_vV|}lzP6>TFz?|kD=f44wdT!&6>s=;Q>~eS zv?%eoFI;Oj<>*tZkylZ{}dkUvR;lF7WCqeFNGgp##cHy!)g zgwtTDML}J&F8!Fzy7V;r_K&`36Fz#P4IX$LkwCiJxu5@hkl+aXudmr-14oRohP}J2 z^+e$ zbH6(*`tqx=G7^va=Q9t$)uKtMEd4(Jt~;7cVym>zPX9(TtFK1sOK1Lv-Is&5prlG0 zd-f?dsIt9n+pyXmTf8#wEU|Pbfas!hWUwL-B00 zq7;cPeX!5rFRo*NNufVF*(v9Yu!Xrvq$?LMxB4*!xUApsLcSlYs_|sD-oueKgzvgF zHf#EoRxx0Njrs6s`_Q1i)~iPs>oVk2JEw7zZ~@r?PKFy$yX!66uuiKtG~SZHPpU(~ z8EE};FIzo;9dgzFbhGQ7LM>%YBCj;A$?T-FKLudt26S6CG5`U*n0bwfKmK zKNCd>upkwOKt7FGER$MAQI=6ol8*Coeb9!#cGle~NXX$N$29?R5{r-AHT$Q)50+%N zVw09ELZa}W!y|8WELU1^DxZd=o2sEaD)tyRe9@ zG;qMTLafSJFpnKY0+IDuv70pz(4;)Cwv{UP9BroLoRY!`hREBChOa~52=ulwwItwt^(Jme6kP6b)?~i z$Nom`KJ?+0OO0Bnm2rzK(!t3tf zbGDx2NR(Mz+m?5A`wF&6V+V)3ExwlZE&|b2%UOEd@WV#o;da`mZLmzg``L=&x;W{^ z)z8@CrN6bO9${gTkV=aav~^#i7MqXr52B~NuRP|y;>A5pYu?5N_&pBOQwz9Pu6lf>vI>{W7ETx-Zt3|SgVQ~ zXU*#SZC37)yB_OLYdT0N8YnT5VL$Z*r?;(ISTrabYG=0M0?=Av8fWeY%>bH-$(Kn-|`1tIuEpVtz2O#TGr5 zgMx~2Hn!mR;nlbJkNZoWKpQ2{iQHD;K|j#_q|>bmz;^h?_2s2)X9d3QoL#eIX_(8# zPG}sCuG5fD+mumjZFW(-?;Y!jU#vgRRc2K~huMiIpJJzt9#{~owhk}-!Zz==8w+pt zwYPJ(=L-OP|GL?}qfpDR5B1$w$yVBDC+xeP z@?($Z>tIRa>qwFv7M+AmthC{M@)uEf&|eR^&vK<~dFh$FYtPsTqYHf+)>7WvhF4mC z-bC~1&q2cSL1)@$Cw8#+ioOPQriA%3FF&@w5S-Qa=Eiy(av-0FP%eKh4Av@#G<6SA zg2PzupG6Oi8h1!mt25$KzqgVF*%X&Nm`;?5Tsw#>wxJ;fKWdyc?6!h zGk}ut6xP*$3Jff*A3Nn^L=yS9s1@iWma;6M{HShUti*vD)FjFU>j(m7;F>C6P#{}y zur#`a2xLsj|ChWexswQzX}+Rbbg%5je$4(}YlR|OD1wHMQ$*N;Zh+7I zt7T>8kRq96v8Kzst*9e%qbXyuqyW*~E;ue%4DDyoO%v zaRZS>?qV92S1Uif~$ZSCcd%_e|)@r4(yPw!(HI0bEMkOiGFa13j|0KK*ANFn#+hC)O6ht5;P zEN8!^>qwy?x%em(J)p-D`d{tTfJzGj=}Cn5EhV{&32B0{jjZ#?z(7Lfrlsdn+OAPn z8@3RJ!`C(xmCt%O%gPtp+RlCfsqr_kx@qUS=L-JUOd>iYM67$wZoF`ST|KWA!G@n^ zwrWu;C;v=`4?#DQtgP=@_GHZ)`1{VZJFb{f1lobzs}{|nY51L9VRq%ctL&D~9L(g+ z!`Sxj!|Wp!_vI!E*4xhAd)E1ZtKL>Txh!91#n^Ff&CMU!*G_%4-OmCyi$ix7Pg`bVFTBhyI(4Az2rX`} z|Mt1U@yc=btzx(i&y-f#%VzN?$P&VTk|%~8_W;VR=e(*{KUDTXN);yfAO%o zR$m)UcHCjlJYQ|2&#J;oP;JkK)=C>{rw(swt}MkD|GQQ->IwVh{NLEhFq}%hqB^Ty zLzEK!=KW%Xef@jWe3|On_cr9M^7*6(vQt<1E;wl2?Dw-&Gyp-CmWFK|JGcBzQ`Wr~ zIRdBT9mJ8}*Outi-7VwQO%fdrofL}f$efD8yT*Hm)@MN(wf4IO;peEO>p`g+e(|$_bZ=$KK{Z&Gzyi-nFy(ag84ER%0(NYpQiJ zAE|PWlpYSay$6;M&s%X7u*D@WtE8@cJ@S{Yfj^e#kbp*DmMYUqMs~qh)_uYSvqB72YU*!Cl?hx3D~u3H(~gyS=|x$2g#;Xh^2PdL5%e*Q!clcPMte4NC2*Z z;=sv8)gchS0$aI@D4!PkQIrkUidaB15Dpxd&?mlNj`~)ndVY}*iDbc6wQ^fgKO!If zo@}Rd85=Zcpl#T&fv|kRmtJ{!xjnh~Njq!8*;dj{*M?d~S+rj^cmLnQb(Bc91N3EE zR-I}k`=!Xmb>yKRTeyyV(Id)@yMVH*(?^soHyG$%;xX7@kR$=re*G}ONYg)xXYPXq z+NnW|u9LQGAq?x9JzQH@=HV)DU*&AuF7xdHn4rB7dExQ&qTk6jkymHq4S#ZLP;kai zAHctz_VX(m!}Y`~f8ewJ2NCyPPlApWzlBt_ui7(3ckD4^2Nllk zYp-Ul-E{SBjp|o)h|4CQk>50Nz*9VmKJKGZ%ww9M{VQ{=Snr_=VrqtE0L zRx-JSU-~{n7~m`nEanv>Z0aSaTbcX^TijT0z+n;NRI(!H_HgjJ zsjcDKYSI4OQl$k;XYtv7{d*L@E$r`pudu%#mx%gzUkln@$l-f!*GW-?0v}ljgT+Pk@Sfv>EPS9(8a3L^op>%*SSGvy zdm-kyYX|vjaqE~d(8T>#Sy1Eq^=N-)XfwYdOCYi_0$CMT7~#Xe|@{YHB%7 zy4^g=s%2Hdnq7N%UuS#kh@&mJ(t9N|@a(vboWeSQOyCS?N={)?oSC;V#f}!Jx;qGx zyTw@(7O|2dzXlKiQqgAQB|DG@&*6U2fMr=rVryl?-F1?6kL}^uo?Z36znjNVwYBwD z&$8mR$lgFZcH@^`x0hqMd~C-L^$%;;xXkW?;gCuTWTj;$?w-AMR!IbpildLFZ9p{c zBp9R7t8^d8r9nYTR(QF9r17QVWtpczc-6zJ zf`8i0;3M!u*T5oUqfYv;KVb;3uQFC3RH(lD|L;B~QA&qA4Z#0i8rDFgrRzx6bX`X& zo^ULf|7*Mcd*8RYb01{YI<5)&OJN#Yx{lN@KCxBU&HwI~>`Pzzl6{50`5Ow4>6?{YztL6)_hC*|+E9P2ooeJh&@9g( z9N6~qvZ6_7Lv2K#{m_TkL0seiD2D3_JA3MMn=$P`;hOLIa4Q&I!y}DfTjIHzHMS@R z-HK4sG_ptI0^0sAnCzGN4C9w0H3u((Mi4r zc9_7|>ehxnTl4gyT(L}UJiYZn>d^706+Km4Zx1cp(5g61Ppn?Bpt<{uCn~j%o_BU3 z`Hsc5V8yn=`+e@Qn9ST?6{R4wV19!0kt)~h$mpS{8HZsPR1sUtMFA)Qhy*gSsA}>f z>;f8x-U z<*gro{4sm%Hw)=IxhQ4hgy`l4O?h! zR$C9ppF|1EY=c<)%zE6Ij~33~daW(kSa{obZ@c~9xA9{Lw}D-)z4kkH<$-m$t+M}l z=*93&lh>3jy?=WC*n7Kz8&BQauM}KNPWzF4_LN@vG{rm19=X5x?Vn}8t-7gu<)_w( z0Zi}Sy{*TLr(2LYY5h<6JmKSp=g$QW3Hi5;cJu`6;I?ubFr)xg%b$O>)$CguMR{l! zd>54uvdgcz#;$4YZ~Anb{`CvN@nEYMb)ikaZn~#Gdr%8hM6&h2FF;M%h?85fyfqec z!=pdXyJz5hVpG5WJv(P)&&G-N@vf|M*TUKN{^%>x6%G{b)xU0w8%=}^&Q&ifM5fsP z=Ra@ZkT_QeTO=}Lme|7UhC%%R5!hb4K9?o=3#rb)q!}8 z{pRP33u(J`Zth!LINNN`Ck}>3*F4&yE`rlr?1_ihgee=pwoxaI3v2CN8~QB0!5$AM zv}$r=(PBJJYfJR}sC~Nd1#Ro+-DvaI=}G0jx7u~{a}i@&PFLFRR2x@OIJachZT9>Y zz+pezh9~Z@`-+|r4VZLxqlu_Ts@x-`hy677piaY-017}R@YDh$N#1L|aT*{@1C;X7 zmDO1Q1@j0W9jN3Eq9v@wG`u(lc|-|_)K>*0e;u%R>PJ6jAOHB7fLa}Jq*8)SKE2($ zclX6izK*{t} zmrfOSbl1*q=~m2XfuepC-6f-Nf~1uHxa88pF%6J&1CW~nzU5b~=F7!GfWH@@C#Sph zNH4M^D~;<*I>1_E2_EqgY*+G`dX|>=1_adN}^1 z$FNN8ABnBwuyd@ycdKmTglp`@?M-W{vqx{7VwWx|9KZK#pUPQA`r7C2oti%}@6wZq zdENZ(x$(I>ix!g^Zl4@C!1E-NM_C>(7d>geZ=Tg&d-O*8*wsaqGuZrdY;Dy|vVE6A z+h%;t=Dt#xfK`wm-`HXxYGTlB$a^@OJ-hUcLbm)~+EzR?({B3j|F-|W=_b4D(ExnH z(-p@Q;BxcgJM8}Fn*&sR^-{Yz7r8?DD#lL8g`g|7o>f&=)!JXro~#1dE5Fc8X+gt<&6{&mWAlAh$RF%=vQJ%7WX0yW)a>ck+Y{@Gzs!pB)bc%blifJCcu+IS zK2sd((UTvka*vcAird(>eFnThSP75U6=DwLQtV>IkCy8IwBmpWA$s^T$1ItI0nidG zkHMpOl^{DKVberI0v$lqAMOKqn#eeQ{24%P$`&nNK-Gm&30VB^c1L#z}HOz{s9G=Wd?s1;(*A(BfgTtr5(uf?VUExCti z5})87M;EsiV`HaD02*@2Z3N18A7^({MrIll0JB^yR2e|)7HaCy+0i)x<}1TDxbbb?@BGx)6FP zja!KP&8glYQRQlokRWXe-N;g`iHJUdl8O~ES|F*#Ur6W!p)jh4;8QRf*OLL{QZLh) z9y3}lCXz$#BhU)Ekx*E;1*(+QxuUCm@{^ymUoZHz9aVl5b;hi7=gyQDw?$7bvZoe5 zWfLY$u+bm+|JytNXg#ay&YyeV_vQytjDZk-N;3wPC}67~H6WmZKc*1Jg@TH#ykXs#?~~m7zVGv#v(Mh&bME_m&wlpV=d^b8k;k?k_o>ZzF}3qcU;c;o zWq#aY^J&LFt+rUVo(mC=J@#1UNNVCZVx*uW-CP*&IF4B8STI7QnG6`eK8g389u;tu zMprTBjP`&U|G>mPa`;vsX!PD4+sLp3Z!pI;nS+tHqm-lDr60b&T|K*r%yp!D`fF0j zy}P~Q1y65d>%QJT^;>VA-G#C0vl-26x9!%_p7rWqYi}iw^dC(Nzx4DY+Ly2VNPEND zQ`-@3efu&u?RQM?Mre_fue`p!a(b)v{)%JUO3vL`b#G`dI^xCc`cJ&Go%Qq;Z4+(( z?WaH3uKRd*wTkfThEM%j`^*Wgz3jy&RX*04^MilgH*EUHKfhhb?BUK*|IYRr9)(_V z?MK>cPCbFR@{#t#d+%z0{l}NKKe}m~=C61mhRr#ia+v6J$Hy=U1<6 z7d+j^?pxY@x8C0Fnc=NJxU*gO@@*Lwjymh&cIqduW)tr2xcOt(w%h+1p2Vp4p&4!^sJ>2@mZ%?B4dp32USb2d%U zd;iks@62=GYpY*y5@|-dUfy!oXWD=JwcFddFMEDFcEzD&ih88o_pkrAeQ|C-FFm}zw^uOhMTwbLR)%vrN|q-@5VjA zW_f$no7S{jXE%|#z5T(vf2}?D?3cCE*p_~5!?)ON@^jneZEj?(Id_krR?lc3Qjg@^#xb3Zlr(fBL?5^JkB1XTNYwd&a6Gh`aw$`~J7S(f;Yiue9&X ziMy@`DuTs*Ath-uubhr%$bGpZUGtZ2xP;>UQRt&ub?f{ZyQ1KWg{i z^{?FjZ=DI*o-Rv1{onb;?Y!6fTW;G=ILzq1udk$fmPA4yWjN&x?#LT&*=gK7(u5sI z!XPYNPG!BL&>6hlFg{L0=qTK$oI3?hLO5l3llEy-rd4Ks5bVGP=5jswj|o!5T$QZdW0eBW~AuI zxSo5%77X=JH<}>jP0tJ&5-t0<2e=c6)|1ppW4y-}uHiYLl9$9!l;>%1XSc zfRHKTwzoiB4{ghiJOU^9XtklMw%dq?hG>)D9NLJ9{1R8Qx+q_IS>9b4J5KOUQfQZ{pGbU-&TLo&q3zbwj16tlS1UC_U<>#NSRY_?%SKL zYp=QKmUhb{H?|kRG3R^8-yvkTixe)Xz$|26MzvwU^qJ?(R!oIA1DR(%n>?!Dvum7JJpw|(Kp=?g2` zd8Z$@tX@4}0BWCSz9Cy~++SQ9c#b!@8&tBWI?ymMlJk`5| zd(rCl_TPGYJL$(fiP~Rs_ZJSc#_z)$LU|ePkUZ#)Obt@fk!E9adD>410uE0uOp%0G zue6(abgYpV>bV_u4>GLh)AzC(iBDzXfOJdR^^i`Dj<;8>J-?lP`p?(mz_~h)5GrA~ z$hrsCwM{JW!&eDO?MS~_Alx{`0~!SZEc&aqMdV?I5JT9No^^f#gO-g@{fSlwTQ9XkP-Z{0T_3US2iSvtM!9MMil~h)s{liQz74UzcgWva$HI zqMllyzx{`8pi%8lfbHvF|N3?cnPJ?e)36-9{!Wq(XW8)yt4?UoeCD&-v!DI!wsPgl zwtDqyK0l)!fBf;-g}sXwf+-nT*r;ZV3D#>bx`+joKZ~wTchEyqcVirxMa8Ml2-vt& zrIR>}DQ~-8>>iVWZWAPIWDqzGB<6a}XP%f~)IJ<>Rec-xw z*1m*5>=OHF<(M!pn10)Mw`eYVnmxb$oAJkXhpKE}hlK$<;Mf)(*WPm72ijZLu4yZF z_1JqUUhOwu)jl}0>)xij+Gl5CvR9weR!@6;AK%)}KX0>i=hvst?xeqF%J+_2jn8`9 zapsFp+4feV}JF0=H=ZQlEzG}KN!|G&0t z-+p0RwTotsW4vGf)^lfVU3$XGITMa))%FyV8H*MzZAZ5>f~#lR{xPphh?~BKK7Ql5&)qI$zwqtt10THX$CB$AefF2!{e{Df-h2BxbpL(#!S$e2 zcx?L;R7jj@)g+M;w~7>jxEcE3BE(ue2O~ANv4qs{hQ47E#g(W}1-*!szK!~(R+GF} zE@O5HTtteuKmUurXt&*V+jgF8$?N*{54G#wcO9wg7Ixln!W#Mz%5jLS`Ku*WdbP)0 zRLFZ5{?R%*8Z}LvGvsgF7+{E`>kz4c9+YEYpxI8eOERrdaO#B4M0@tZScMdfw8Oy<)%6Uxt2& zGoEHcMJlvMqKUetdso4T5o9pI0W0IzC$Lp=@5F*P6&hm(kx3>MEL$xCUG05UR9wxv zE$$w?3GObz-GT-J!D$)`1Z&(~8h0l^@Zj$5?(S~E-6gqX-*L~`|9-k}cib^fucxlA z{<_z!`N^79s}}77H&<)~J1s56FqII_lj`#}0dSLV3cp6y$pr(sX-OuD#lym5?HHub zG)Gq-W+StC??|HlB>gm6>-BCN$}Q0nlPmUs)>sJw1lQFC0qssUN z$>W8(F{1n~ayrAN+8X@r+Yjq;-6$~_Wl(?I`6 zSNXb>Dkb7>x{1}u`%evP#ljrRJXTs8A3cQL18B;OeB=aS-a8X>w&}uPj!LAFE=`iU zrJyOtc)KtFuW+3OsH30n2FzN{_0P;OH=Xr=mws7B9wGJddY*>;Q@fS9lGyQBbvE^s z^JS%u%yR@I&p{I$Wwa5b{k$k?IP^t!$Nj+ij>{NgMQysaZN2amo*~7zeO3Rp1$nC7 z*qE{F_L$5X6`6+Q^*&fPQ$(xXD%zBzh0~|yI*rt=5d3g2)38*HrhC`O;rl=dN%}{y zD?|#@-qg(54NQ?D+)3@?mHE)r4dM+Ay#EB;^_(Gy!Bns*a%V)Lwkmx zd4{Eo2%a_O*6${Tq+Xr%zSC?72f1+MX+<-is;&$kF4G6{JV7`*;T6guF@H$WkcyPrG|Zu2z!1WE}sDOfR|V?yT;hMUQhtv$u3LuK_D)6yJPA%^1 zNFkB31Akjm$Zs8GDqT>p{|p9M)3JT6u{>_SCl^$*wg|`cOPSs`g~?8022DqK6IWT} z(t{9;8}{5V9kHCozu>209@g{U^h$zHnzLht(Te%3BqV7g$MF9gAr5|EYzlPWv*`yN zr?Ef?32(${pPH*CkzP;FA~Q1OEEkRMw(>ddN*tmoXyIioQHRXiVwvfEBo*&Esy|OT zoXwjrhIk!BOMz6ug-G)alK3pvZ0=Lx%S3DfU*IQKhIGFztVdB1xCultju|beoKYKFkd%HfbZM0>4uuK-ohV#h8 zi}oeQg1aN~Yx#54c6#6b@FUJ)mC2_~&*?YvGcy;AzZh0ZCK6VpZ#1sWAz#L%bu2k9 z{CU1q9cfJuakjp#>L7leVz*vevY6E#Bu=v}g!QB+5J@G$Z0pnRHlI_LaKa8ro@L7C zP>R8ILPK%_y_YBF#jW5vpWg+#6vnzM*WPDtr~aB9C@MIhK{9P2TJ#Ouph%z-*Uum8 z7Bk2gZ#AXAp~3?7cQ2t4_lbg-^KOyvb?d;PZCsP=Wj!liffj8gF!H!mH=#x7Cej`g z-i9L@*D_A7)y{k90e=+fBKTxH4GCn)&y{7g_&8wgwoU&t@4^)L?hbvivulc^0!F~!u6h@W#5cYGT+WEKJ-lxJy@iAgaybpg4r=Tb;>k!cH-qJ~)zu;l*WqB zSn&1Jbp2`o&Z~pm=z2k|L#K%~mjVE#W zAwz=k2WI!KA`fFH<(rYhnrMzbfSri&C#FnMK*HUnp>cTim5XTdR+zRqw9eAQT zR2#JOlgq2~`D!-p5aJ*SnG3NYK-i|17DA7PrXsKuSb{Rf73UqP;#2w27E~T*(YC}& zQU;&PDCctf{YBA&E#)(E-;anaO#7!%MOuDd7;`5WQw<_9LulISA+c(_Y9R@$+f;%V zPr>U5Zi8TwquH;y{Rr;tc9X$i_kNM)h$*&PxUXV6g|z64A5@#Sj_J_lBRLdft-?$0 zR*awRAHMGCoi`ilOPzdn;YhpNMS>CEBp35-+`q3>f5zu=SgN+$DeVf+c+Oll7t{u@ z>yq2NjVs?K_JK>w2YJ-4BX=x`wybwC!$h2i+XKsA;UzTlG`nfCgD#Z1>1o`~ zype3AV?cA(RK&(DbOSB$Zv6t1Y)og`IRYZTwT|PPU@WMG`vFU_dIVR8UQP}~_b?xr zrJ@CvhtMe^&g2VSfa?X+<=8wN=FRU`0!F*E!eupO1370=kR>9Sn z$a9vFeStM+2Pk8HA;kFD3d?k*no;TpVL5W|!RHOuoc-0IQNQ^XU`+5e8p} z0ckjAkcChOBv~_^e+J8|Z7ylG-KZHFu1=oU!Z`PpTw|7Np2STF&C_CvPWh4WJ&5B( zRy=;36^f@_?^VyyEE?=Im{k)W=NCmaAbU&2k-Q1^ndO@{prbp=vGZ^v47*NhXl*hY zM-L$CHGFBVPWVBE1m~CO4EKchrNs`T$r_Be(v^8PW9@o^3WF#NBa|5oCob=SqsJ!| z=#1MHARv)LQ`gV9khFqTMi~jgYMhE#S0gHcC|C0!Y;nAZZ?8$_7ac|Hl?#nk{y>&v z+e6c3f5{VC17>oHSduhL*q$ zkM-Uh6+6B)+4Yl{)R@|qTTM724i#du7><|(wnIhUGjJa0}J*EO&`#<9Z-mUPuSp+A(yM|Z$C{u;k&RNC@V&sq4{5G7jRliF}!dsbF7 zWVJ8H*i&O++dbX!I~6&3HL4}FmZ(v30-2+kq~0OB_Z0pR)RRHY90IO2?U-XH2xvgiZ*m?jYUSe6Nf|5+oYJKn<2Pnmg_xj7F!%sCg#sqx{w$xR zKNtagHxhwzl|s$3ELyUrBhOKsb%eNI6qvIK@~^qr>fHK9ST74KOenrqbaZ(FoUS__-ioTOQ zt&7(4+i$f)b_;#*@47?O1tBKVpxVYm3_6sW#}84AJCVL8dlcAF1#WCz3UzN~!9$c# zxt{$Tw>agS8w6lMQ&~|M#4t2wYqb&GK|xWZ%1Mcev;CYEDl|#F99shddi*rRj$E~^+xa-VU5y#=Z7)?OVi?b}Vxc8%RaZ=xxpt(a0U zCS%XG9+06t|Bh9epRj4gAh37P&Rn6Q{%#5vU!Z9Vy)ooxuf{~vyCiF9$_G1;9urT1 zwq#%$xu(5MKSuM@QPpBW?Eo=3ic@NX+{3ieKgLS-7ol(7T63|K@5U^<=Yh5 z1M+Z!tWs{?QB-u?|2reU(HG8-{6dOS%s<>HW|FF{m7PrlKuh^N!-Q&*;B@)L3cVek z0;1<`A|X*8Tx;CAS61)Z$L)You0g8JTNdm4-8*VTI_!B5wAXfmSzVN@7F~Vr6-?OCGU?ytCH(3*(B1X;_q*u!zQ|APpsWAsx6QEM! zrBT0P$%gVST)-xO!uf3|>+aSWei{!A>mM2x13nVxdkZ_bxq{S-9}5p6lkF|O^g+FO zDXYB%=SS*oLM}OtD9VY1iiD7aq7?IPlUkrXSdhLCpr8thi=0?Crs$6H(J}3_fQ|asnfNgVU z)Cx^^;Uhvut5%*ma87HlDP_^=!d^nPD2AGJ#;o2NdA_?L&60ao$@|-ah^nCj^(7Uv z1`(>pqc6@(3C+sG*lpK@D%sTOQ14{vZ`t2t`g|iRUZCX(gk5OkvqnRv_Cldrg;%{5 z=$6yV<)P;thxnp-VBJfU2p!lvCl>O7L%1w(5ZO2uJd|{VhEofck(^+fC}!gf=gx&L zalSJ5@U*>5+O>pEzby&K2Vgm$iqjd7Ru#}PeNa{SWOuy6wpWDcz=78gs&inG$L)0* z50BI#s6lLRwA$9wN9d-`+Y<76aFTPCK2c)_Nu7zutQ*6I`&WVZFF5HCpm|s!o}24V z9NGLCG{a{kizYEK&BREPflRWbdX==vGb7p%bk!1>nN9eecqS4!ZAmPyp{y-JYdvB3 z%Q{?KoVy}Kf^*xZM&SVlog&~$IbFJemXM-Bk|{5I9VHA4isS>va}+b7z^e+9nf6)PI$1|4qpN zC~T-0#QtQ-I@q=R({>v6HaInkn7D9=L zjiqd{)AYku!Ks{Rn4?BJB5#pLk*YvwC8BdiqbaS_vvsU)$+sfpydRFZkq?hrIc`7f~w#P=c+Lr3F)j`jIN6;zbMh8wGmM&KYEhL7%w&? zywqTdT#)a;P&vFs$2af(d+{Q^i7W;MVzQgfMy~Sb7Hg742v z#90foujy7xGZ!b1OkwiLkj^l*Pz$H6F-F;m#>zLML{8>@8l9sI)ia{iGqpeM_VYFPS5o-G7f0G`eXL<0@AtNV6`$f-0)`tI^6!R z0Lk*Cd?G34%qrOKjb8;XOT99HaX)F`P3o(JTlcrw^%F9$<(&G;l`WG@@X{|cpqEa# zp83ieEh>?1e1bBz?b!qN`6FKx61&YnCEly>{n`wV%{nv6zh|Dx4eU+^i&mBdc{bMF zSu66yTIiLl;5JeHf&jnNohZ%Xs{ zr@UXpJl(s)KLou**1e~7!NkA$}7an2jQvo#2zAD-Xziu<%KNyQ}8!;W-7 z3L(asb6K$uVUSun!LB9{?(V-$)ot#Up`LB6z_Q>c>aDp3MsFDg?Qd(7FhKrbPLQ!7X?Q-uf5Zc z8Pp)X$jhW`mvC5y0AEt@{I+=Lw>}YaNj6T--PAh%NXA6r!Fd425b4K^>QN2V#~zBt ze#>OlS}rSBG;oWnqXpV)`k-0KqN<_*TNKU_MFSMj~pgANpoZ5fXg4WbMVa?e89Hwk#Q&V9j#!bhQ+iPmiN#MY(uB0Tq|_$lO3G)Qjo+9>9SMEr;o6nIi=QuFN(7I4ZKV7}3``y5-nkO1t`NUU`D&qGRc<(l; zRPY!J5YieSCATfJf6RBpMrt0+44j=8eK2^wYv@=ZUB9tSGjRFz$GqY?#clvUWfsy0 zUA$+YRfC{xQ4%7My0J+v*cmJpGeWYYwcRT|y~)RpRZ!! zO!C;E4nGI~{l#lBo9mEtt^**G;Lu&fl3wEYqt$LuAd1k{X}x;6XuOd98_8vtmEg?I zpxiaCPi>F)RtS+#ZM|sUZsji*xFDEMOIya-3{M}01n7L7m?!QbS4XXEzlCi-{p6QY z_lh0n2l1WXFHrmF{?>EckWunw5nN*;M(kX>$L5|IlXGX-MwJ0~=9L?bbJrHP5AwkX zUf^FvsBom#7) zoCRha`X8U|8&a|FJ1q{Z^X?8YTFtT^@08Y-p6?Ht=L@g>ya0e4rkz zysmw(&{k64`+g!Mk+tGOHh>DtbFTy->V&C@05gng<5~SDM(^-h7F~-vR-h+{??Rv- zU7d0aTo>_0Y3##;*^A@P)*e#fUYy|NO?a<9Ecg1zM_11G= zhH0adrZLIL@AO$DUPgnmUF7|dN|KErH%&z#QHyr=Ay=Jmc9r6_7M zQx@6m+j-f>~?bo;B${b9caBvfKBrYzH4amqcY;z6R@sK@L_Nwy zkNUpI^IQ=THK?*%9M2rR1)yP(WHQtkMfT`=47J83q&YU8lWNy^c+BzTxzDSXv= zr#6Tq@B|rbCt+1XT7R^7QXa-q=DxIqWPj2yO}6%81AA9>qr*JA6smL^kX%>QtGQ+2 z&>uA&dBvl5iVsW};e#o7qY>3_{41}7bE*za%&TV|pA;+d^%F-~_nJa17;8{`OpG-H zC2y}eqLQ0aqupT*H-;uYpLh^5P++>Q*)Q=M+GlirLRwZAob!Tp!98W!)+RwB3`5I) zku(?WiDI|`N1u34jbM50V4#g>ogMmZV_1QT1Ve0=_M&NKA>MhHbWG#-X6Oh|v7v-Y zKRF65(MhWZtMzWatYD%3m3p!D+PtR7tszccZ9pa8w_0B%?X{Hn=rp*4!7kA2734^e+z^L2ODJ8>Q2k>z5FkGsAue=geG zf#o>JXUAO_2KDf5@I<97^6fVwq~5sS7XKLIV-%N7zx+BK_v^h(l<`-AsFMYeouvX~ z0nZ;aPim6N;OI$!)D^C;w>`-vVuAiL$sTa8&Bx&e*~x;01H-er_AORLB+VgRKGjB8 z=lGT-+_9^FeJ#tCO5PzIQc7uFf-X}{Lax`s6;XU)rsH>t>$agTijLRcn4#PmtlHa5 zH6Y>daweIBguh(kHTCgT^AK2&pmRh4dv$k0u9Z@l?uAqMqS%{{o_B|vcz=K+f@^!}^k3d;OXMuRsQLQaQolen@gN~XXyy$z4P=j`{A)6}~T9nqXoe~*W>v3r&F=p)mZ=jGLBo%3p!mnZJk=;pLg5TKRa zJ-H1p32`Zn=<9M?1Bl9|c4u{!`s+H<+M#Vw!pQAW|Gr+Zr9iAjvh=w!4*pPv=;~_Y zXX@aV#sohbJs;W8pWSZDN4Ldo zF81Kd0F8y>^aMVkQ@gqZi30I8`a%ZZ(kv2G@0JHDCC=tuAC9 zA#V|w|GlUG6C|a1ZSswTAMP(~S6+F!(#qED(GN%CUS(%^O%-xBjo*UEoLUj%u4cxg zLu6xCFNKlh;y~!fk%7IBdu9=K_lv~#1r0iU^g=CMRKI`+nvOtay56$Zj%Ia=L-*4J z-IthV<2Y%I8c?Hp6Qm_QzxF(z=^c)maHwq)N|9JQs1jv-ij&qhuXnQ7RS4YcY&FURe(Cw)?vykqiNhF}->Fq>2-9n3;x#|TCTW_X z++qEoK#|^@^MQkB%pg&Dw>y*sdkmAtsmw?8x%qkQ=2=vKum#27y#Sf-1ScR5(U-`J8fL*#-3SCZX^xYx{-=#aXx&gQ6n z8qlC4D(r%G-lHVg!7ylBh*#8L{LqEt*j?#^dy^}Cn8F@~zdPKMW(Nl%k|C0L6dAt9 z){j}gx7Q!>VtE-Xh(M$hJ<{`D5-j&)>gtE`lgS@1Up>ha>dZ3oHV?gJ->nXhO#*du zZW#y<>Wqn(q881BDyTd2Lvjuo_8j_NB}gODSt^R7dw*^PHbOu!GS{_Vq_pA&)HJKd zm!5LU*Wlc2WRX&_a>y@(R^>3vC+hKxUaIj%g6XgCf^$802i2oUHSttz($8P^+ZM1s zXqzj4i1Z=cHvY=%94kxgz=X|{TwmwDxm6w&WGBm9*MiYQPd%NGS^R5%*%wW&L%@C9 z2K2W1)b4O=j?mmyRXcOq#8Kf>s%c9xOVh0{Tk={Ep=@yre1S7Xv+oa7>L0QXvTGt$ z{_!!@0h}U6GN|Qp=h@dcP5g~a{i(-zBbEeTn(!TqFt1L?1UekQBo04FxP3#|){^O0 z>5r{?`ir0u+U_&`eckFpcQl5EH?<8b44q-38PS4v_ye^nmd=j&b0tGX+H-RVH|Z#) zvDMdY!zV%Blvq#oQU-_;<_Y97c{sT?`IpAWqQmQAZ@Q>9l>Wa!!WWzHJ9ML#j_eDF4s`pOEkk_x7TmfIo=iSr)Ay z2*%?L%5nxQ_+B~!>p5xjLmRhPI{jr*_?EiGp3TX;PU)nTv(YBtTw#2pwh>Gdoy5&d z)>F+~QLpqOw9*!3^BB(a4EBqlaY|Yy z=zeV$#eV^OJKCe)^6zu%v6Q`j&k&ZkxTnSy0~Am zTbr=Dmp9=g=(|4P_Vp$8i^P9zb}Uu%la^mb~rjS6>`Yg~g7sZIPApzflKbzE2`#TgCu2CuFhKI!9 z=2VGqtpoXRjye=e4cbGtEE2N_PU89D3QX|X&QDT)PuvVu%2Qov?5z8x5xA~9miBq< zR)C)RRCr&@pW4OSiD`rLN2Ji14jjsep{ttL-GJ&2<~W+!irEe4y=H%Qqgo7gJ2 zvpKeIkuqL31wRKkpoxn6o7+<}~}Ht0Xcgz1Rkm z23F57blO7}H<8AMu4$Ha>?3j$-YIyrVw+?AK`3p0Bk8*r@-`cDQ}i9kxSRhjyOwe_ zu^B5zL=FK#vTH2QU#(bjcTSSIw~xn)>1`@lmq>=Y_iuhlIL}>Ou-6X|bu^dmiQY9t zd?#uzhmVlfEx+9hMUI|SwB89_-H9wb0KrIk%>nk~$X`uIN>WCaaAfFYXhG8C-3ypn zkTO&xF?NITSaUR&wDbcaX?**CFX!(uXyU$$uEEfJ?Y?>%#-KdUa||?;4WaRyJ*F=r zqrP@`m?KiP2yjm-K>oQ!pST69T5{cJlVKB*J>zRpGFa0~G|d;pGROoI5w#atP$oaM zPpNdoFUMYvU>D=#eF?8qwUu7N%(R!Cln@pzMeKH^bd-8d{8kW^EicAWqO>7i-AM>yslUydOmhlRD;Eb^@nEsm!-*4~gV zbwAQmEZ!aFEoA}rbXWJq;DS%$ozYeF$e83v_}He%oVTc`D0f1BL+wXU4S@c-^n>x> zJ@&@WRVsV^5)bt=%k`a}XmWH!bkUY=>{Y!}?#Dbw%goWWW`ftVj?-zZMAO_z^{=+gfC6>Ri7&{f?KY#MAC))q? z{FkWv7ytj)C{2=Om1?WJJ@B4jdCg^G4WC)-^RJIGGArM|Wh^Q2?8?0rT&FwFYkxbfprzvd=LnBdvfKK%xn1wyF?C!qou+NP>|0T_ zyG?kkUqi4?bgi3y>Nzi&tkkhIbsXlW=~OJNoOz1;2PMR*-fRd939V+__Png3Th*Zr)wPsiJ`?EUBg1<+L-ZP$9O`HZ&>FZw_K3N-d& zML0>M&-lMfZf^!LXyNXdx-{*h4I~tPz69*t1!dX{FN{U&u$dg&!QtO+^+Rg%||@0HDjuNofE8z*ztQ#sUf9pBn6SQvd)B-&Rsm zO2Uo(jS zxM%u6ao!3z5Qdm3A=%-el9GZ|@+$xw45tNvFKb-(0bZ1qab6}KY@i26U+A(8x4*7j z^x|7$@Fk)H-oXo`rHo95_`?B=QrNJ5!h#MXJ;MYZfLy&1Rm|Z)7|P_~EOtvau2O{+ zgIyewGt?DK0C(E(yAs$u%E>8Kv(iCf6yWHhKSm;^526L8Cqf)-JLXkUR@MpxuNMWo+;?|&dw8wfDR|I+S_6c=Z?0R$KfAtz0!~ZNINugsG$;oK2Zq4u1tlua( zjMhx!_&gsiH_8m*xa5Bq#I-es1wTCYjJV>{twaYJL*fw zvtG;6ct7;lbF1J@CO{8lQQLf8xy-Zr(J@jEjQXb%2=^RqyMoO|T}tw0QQm*TDH5D% zgzvgX8byJ0{%QCmVfl)Q^4_23n}2wLO}&-msPkMn%!~$wk_dxymFX9}OuCsoj1?9! z8eTc#I6Cm3cZ1)WT-yR)HP8v8CK6L@zipph#XyIlNDYM+ugknno@Pz%S@mH)@LcBg z-48CI@*^;QsbeTH$;Ts`$XA7*idS7o!(mLf5x;=o?3urybHmiy*ZE+*Cbz%=@UcSO z`{1G66M9miMG=^_TzOc}@G+=Y-}d}ztBuqEXQtn(XDjLCQkwAPs2ln;M+MsG&qF$Q zK3*QfSF)YQcg7EM;f>@dTr)gkheg9kHM){HlnIjPP;I}Io*B~aFy%*GM!RHB%eJ9Q zd}JZG)vtnxZ8myeN+nC*`r+5g-G_nckq`qo*+Gk)T7)8;Kf_2Q7ckl|&oOQ!&-h`N z;Gk_Hr!joz$WK23)mtpMpDXWqp<<${RTod9=o1x^9bH z%c?rSdlH`XshAVg^HvdY)~D#9F2;}%{JB^1rv8d-t{MlmnF#gqHWyvIS%h88ecL-? z{R+(A4+!%=U-$nVdYR4kg<-$gdjEa*4#C$6w4aUD^jwbBj-&vrpsnKEL_V}JFOrW& zk5&^R@WF~qJS9Pm^=JV8TU@|nr!#NZl8a9@{I)lrAuTIp)#Y~t;O#x`&iFJyun+KM zKy(EtyN%ElEQSP=M2Sxu^3`SjJqSZf1d$b>D2~hsYu_)U2Hz59oQF>ehyuO0fi3O# zaUpUKJK1K>B6-<{Cj?&fA%#-XhDT0gqe~HRNw8uW4iWtZJtuL}63a_yK-|L z{!6;`q7GP3(KxPxlS6Df&u9aCF1$H$90R&L+TLuN;km=LyO_VJo>@X!rX-m(q}`A#aol_bTu@VTUYt{~S<;g~WAlxN!+@JDw*()q2sQ-)i4sv%H#^(A2j{jkTKH-IRB?}fD6G_B08 zfVe87+@Qo4)U4bcA`vxL=!YD#M!d!YA)ytf|>^iW- zVE88T#R5ZxU%A_Y;sVJ+ZDr7`nccm;g>BWG&0YKD2;`cLtW58n=d^!eY?`GYQcsEVy~V#ZdUCvNB|XI0!I&UhCF|iA6hI*(Aw|qW%ht$h;oorA@kjuh9QgM~Z13(h zEEoScD6A~B?>V7b>fK=7Xjs2(7s>s^9U)|SmpXF(c+Ps4eI7url!%*1Mjnvko5MOq zJSA&_U_x3eVlvhBqw9V5onP;D{Vnz*>5b3D$#LiOT`I*-f5jb2{?-1|?T+nytWrn>m9=DfK3BeWe&WFQ!SIjOJ2u{O z_m7u;*fQA9(Ld#|h)CN-uL4u$wVdXiHDfdjOLSBNh#hgdDLZH)$=|bBnSSro%U%9Z z@3p72C*^wfJNEb7-pTG3!#!Op!!@0XiqRKu0r~ea>GR1-3JI#4DZ;`(f>yuTzRZ!8 zq$~Au4O)C#CnB)6oBW>R;}6|sU91{p3QrAB4PeUEPpTqbbg^?ehR##9aQNXo!H>i> zhP?0d_yu*#Ep9JOD-}`oQZ>yLh3tG)PvRQ=bD;g(#1g^MY05tr?`t!kJ&zDoCs$Nf zO0rvg?ZDJ-Zg%y1zw=Y_kcd2~>GYF~PA)GwLgw|9sQn+K_G7vchS@4f<%bM2gTTbl z<4{bu-Cv|RmBQ&_t!_CFU1@)E@DOlcxhZm|a<+Ov&i%9Sm;}BY>+MMTsU2kj_5HiM z!!L@!^m+DT)*l9sen}qcJ~L~U$P)%}&2j0tVy{e>rH}6--hCYVao{x3THB|4spDSV zWZ3R=u%w}KRLp(S5Zf?Sxm?Nq;_%1qV5+ckPRFa-)u_>t&6O?a?6XJCiQPon1nLAu zEvD&KQ%HNh`{3H=MqZPuy4vNQm=ey2Fu2spUs(Kx|UkTwYTL?>jll02hcl1 z0Ykr5A4mJ;n(l6gr&6*mvQ|%obB7A9n(}4ob?v&7qx1U>vR?i-jaFGV)s-9$zX!i3 zyF&Y^MS+Edv$@sQ67p(-1@}L}d2o_-_qi+j)oExxFRNzI$qi`L~0U zQ6ve3WGmp*z@{c-+l(ci`K+1srR4cpH`aYUze>ZCnXRh8wY8EZodBb=`wW~^oM8qT zRs0-MQ9Aw)-hwaJd$;;$UQ@I=?Vg^;D>ZKUzu2=d`GZOZJNNeC?@%2Hj5)|V_x;Ns z8ukuKRH7yedxf3@nh$}zVU9S+U?P2g8<&o_-KMA$nRxCAeDdq zP2t||`lf=9*!i}nIcQCk^uzPE@nmPxT`>iZ=zO62>+)}=ow>#&fn51qmfkM`wlBnw zH=8z-hh@QZ7V<4X!YUgBVnFR35TqFDhv=P9$S5~unj9)O75@(SHZ=P_qlh0^w}cwp zMh6J*7a8Z(`%J01W8C$Ua04vM-tbOK>*5hIv}I=&9>x-lPw1IJ2%bmjBiK1S99^85 z;pog?UIS!}r{z2iMIhbX3-Jui`)DFR>%GG3oZC}J;TY5WO%#w_Bl|}S=TDaG-i|JRp#cD4Z^6GsM@#pQl-`aGPHuwUBGmr{ zA^5laPc;WM<$r;=+lx@^DXURRI)g1KKd|$#b5e_ zakq7LqWq`dkDr`9+(oFV{~752UH_V=rMK<>jO66@-(>wIkmH{g4lZ_1j{h$-cU!Cf zAGCj3{)P5mbp2~M;eR?4RI~NAbkLWwb+mMH`#Uw!_aAtL|7)24)$%_R{Wna#|H0(r z=Kgoge{1aD zB6Iwh((lQ(ank%rv3d$jg-mg@@&v!Uxj&70$KN#-7ho%vCgZD0%Z~)|C>Ox_SsZ-8 zx8@)!Bpg=-)8fBxXw2OGsFDcVU6PQa) z-_O;>Qy1dz|K*NL^e$C7Ft(vdYDbAy#_t|NZOS7axIo&hmkMS~ z(Jf>y4>7MW9C>F#Pc*7feaK0-!f)-t1a=9%mDV^NPSKHC)ACF;x07s07$|VPQYSA? zivJ`}Q5?8h{&-`0rb{H#&HO)I|R?A~Ha7U2Y zNH*f6?9xx`UW9pl3FWRCND)Kz`uf1=`Eb{JCn@d(M~LHx982A&3v7%3odYx|>~jY~ z6=B@f&#|y4>0qjZbAffCA|YIX!te=zFJ>ztB!sFkdX&_V5dzd;e5V-nx!~+=R`@SM z*Rf0wZr(U~Fb>#=&T2YC=t?Lk+AS@(BjK*&DMcU{W_ZDEjg(f&_|t~y$5B=7CK?rz zvbjH$wcF_}+{pka5mH^PcxXyN#+Xw^7f{>L_6mjl#cE6lS(_*Mk|U&Qx-5@k$GC+b zjM6|B?;&>vAur>TC?1QJ%MA$EG`2Ix&ATm0V*eq)>`qozt3^OjhF^`JBvuaA5(e8- zN?zfjdl|d3hO*1=Dqp`+Rfnff79MjHYbR}r9u%^>f3Hk>NS>51q5EDk7ysw5-sm`W~vTR5`$d=xt*nCZQ4z$YvdT zWLUA_W`Bnkb}C3wjHVh(rwtp*c=qnNJd*Hiwog2dBn59l{;MZ06@ktt{%BrJuO=j$ zcwosq)wHz!?r&Tz;?j-K=`X}TpaWMq1?2TMQu8QgG7rf}M$%cf`!ji&s^l5xB0uK&rGd3wr(I zw*_&%{Zwhv6)ZU=OK_ivjmm=geId+qO_I<%o-3gh^KPrDwS?{0>%L55+JKZK81?^< z(%rjMQ)wa&l)DeO>TR`n_j0F~UX!v(cdY>s=x-ci_^M!rb=G|oD$0XGNqSyYvv;ki zfuz)Z3{3a=SmnbT)u3y-$`Z&-_1Lr_n%=jZ)4U97RbpKL-xbi-Rz3Y5^;oOti_wQ= zxC88cmvqdKLXbAAtN?J0abzf6eYW_7F*C&jXs~~!E(&1Ehp%n$j8lEdVjT+AqfJdS za-!kJpEzbIhyNYw@wKQwppV-|RjUrY3FYtrxRa;U@Fh5h+u~!Qx{Ah`_QpKYt7fY% zYtJ=>wrfSz4`voNH<6OG1CQ*-F(Yr1CQJy7$wyGiRyK*TfZz#MHS* zXfuyh<-ATOUOBW9xsv5(ow<$%^1rx`f)L$I*cL$&FO(v7eIW_urktM#LOk1d%A5{% zvLoq^q|z!&@rfDBvltJ`^C=ciqBmRkt$c4NP+ZC6$sXn2&mf1982cUbf9{zlRI!5; z;rqU+N1B=(iy6N^G*|+Z9;w)72H_GL$#&Fespb_%yR*N9Z{bu><(mrmqU14fcL>ww zuA6I>`EvP@sYf-ap$IX@iG2>8e>0Ljj^bYm;AEWj`W%4%laa>;r@?YHvopbcM}r>z z1Q|JoDaxSS6xKYTHwi)D`UR!uy?PIiZ^uwv5TZ6C(?e;c3AaMxX(ib_g^{cg6*yl* zq$43UK|#~Vo0+dGp^FrmsXl2UD3MWCRj-XxAXwCAE-#&`@=pKWZ+|RF_sXWPdYsm) z?sr1Yb(4~Z8p;J@<`#zW)2z?yMUp$w!W;+hn@9m^I)(oGm7WokABKnu2bAmSvXT3-)yx(4jq2M>{B zMNb50o2##TYJ1doNPn>&xT>ff{&kJiVL`vt>UzQg*K1{)!?_Pp$^PhuFnE-)_a+=l z!L)QzQ&kzFl`A@K)7eDr=Na{$Ym?p}^DO9W-N%1(5A`h~OhDz;=0$EJ4!gRp%x923 z9PGt;oMaB+HC8$lv~l5=L&iYfobwl3KZq&NuD-@T%ocpWxYzzgjmUj;1ns1q@uZ-f z@eQ&on%m?hOUGawL7W*aZ@QM(@|^~Swb)?ok9l;{m`__=a5)!bDDv`VGxT1^cjd?$ zF#Xk+ssRtJwuF1`lc#(N$iM}*Y3$#JSk9a7xqXtOVQW92Us>_~gfowXU^JA@{wkTs z4Ej9_)OR`z)I>ml%gSJ6Sac0C5~r-eTvlt}x$@8!b^6rcG`3hoQn>{u&k)9!OpQ3Q z(+d~#(kPh^$PP=^24umIh!>UaMlypitL(CV{j3oD&{S4((qtoW-(N$$O z25czl^%vJ#>}8u-TE^1{rXOqU-Wp#&iQG9tHxJjM5vUJ8j0H=IZZrtX)(r_7;m%Oc z7xp8p-o4ZATzB;^pp#`>Klp8&#twiP5>r@GSJJr+Xl{A-nwT*dN)Wo$JDD#}X||n1 zcu~lVsLl%sML;2Dw8{Hd!6qAl+OV}N9l!5eKEr34e3h!y;K=*Yd;&R~ZL6veP9#8$ z0+&YeDTGU@zxkeLp6k ze@Ge#Gxx>6D#R7{JoqF;NUdEVde?wT-~fX<&NDl2$#T&QrVYO2W?A?=3}192G)mPg zxnG_%pz{WuZakK)vV~H>yQ@ZzmG}_w9h@lsiu z=rHn`*c(p9>rsP-2)$}P0EuzKKedLYy;8W-zuiN)A{(8Me|ojW@dWD(+&LeS{vTZa z%WeVp5Q!O2T6a2P}Uy;IHU;JqySERqlc8I zP_crv2wc+*+EhYB7q~XxEcPWN3=MoWB_er?X#0WOb@=eo`BG$GCo($mP*??qeJ@2m z@Hp==h~x5CmZ9e-yP7BOI9>2=Sf<_WL<{s0sWp-|xjCG4#xK)Fqujh#+z` z3u$(z<*3D!KuDmJ6H}@wT-5}$is2?yD@cm^8NuKH_B;i{*6=$O@dGU;EZmVS)b0Xv zn-5_WHGu}q6%x9D!A*rzYL4gwW5jeVE$~aMRuQS5q zqtHi^4v$Zn>Y;H?mH}aO!I2(h7X8Q)1FxI=!BsY}Ak@G`Xm5%&2xb<@Z_C<3Xhe4H zT}&-{$=(`E2qC<80f+Bp%$FeHDFAnY?xP6$S15f{h?FORYkf6O!OYjB9uq&PFDY~$ zQjv|vRp&Ef`oIh^fZ!`_C}tb$rpjkfDQgWf0#1n1Je>$cr=fi%3%ve8S|nKbYH)#m z`34zkC)6R&us_JkiT^!0T^wY@P71@WiGTKSi|vuv04ZFa;Y~TDef^U^h$i}HZq=GJ z&@#3_gZ0WiSpnpZA}#9vd9qxsK$9YOMP1QCS*IZUG2u_fe%Wgh@dwJwILb)XPVNF0 z{i>6)^sE|ZV$eg#YZ0Q^9FX~){x2Pt|J-&zlJtY0;2#J+XLgQiY=^}{<~Ry3Kqp< z9=IdF%UGeI+VqrmU`R_e$4_j%XtGsH7+uk00zl=X*{z7rSfL=S4bJkoaMd-g)P|Ef z0Z^iEOb*+D(Vq3ek`6w}Tral}7=-VxzK;T9k4sWzk$kfhPzAr}bXF2LiJzoW!x~Fm z5Tk%GS%fWY*SGV!JHPLb=8tj}FiSqomgl~NF_hXFw_0c=D|JYkR2f~h2z1Y-jX;w= zq`6#>2|~k))o3$UYr9rWVKol7<`rs)obZr5r)aPe`qZf+uNXiKDmw#OJP0Eiht%+w zdg3R^;vbeNoir&1oTj`xB0)ELH(u*0_(kzzURs~{`MyZiT~dBuI*QnA8YArt|0QwO zV`$rX>HO~kYg*ec)sS%${3l}>ZMHA%0i@7kg6Y&aAms34!M@2hXCyo^qxvWlrVm0f zeBTJy7X{AB7<&xoSAk&5`>*cQ+@7Nx;b;=aM_AKiVj;%3vCzZ@Gi>B=8@2UO%f?X)D_oe!OT#<}*z~a72cvLnS+{5KSY2tm4$a5^Pc)k>(X2knKq;M-W0Ni*- z99$71l7~^xN|6o*Bn2EIy;CVsnva=Q-M0p`%mtLwAM?L`Vx$5#P4MYnnGI@RzFP{L zr(9Pt&rXnB1=AppOFT8{zBTz4g7i|z57?7S5|AE$*9Cz&@^f(`#6dMz`;FO9RY8h% z2GW3Uu9`6w-B%PzVkmvpuUgj_B92(|rNO`8d>4XccVG`1sN%ZU{R;FB%jpj}R&feR zO{tPabv9zPLh4D0W+;TP+e;6}0FMu4#tic zzk?z+_QeI0dPiO@&8Q|iwoUq~MQ4Wu^e4-WzF8uE(m%l){~UihUcrVc>=V$HcioWD zXoD(aJGLE0yRfHkk#C*O9RMz_L0&D~Oiw6M9Ii|#=hz4RfPTU%3VdKRmL>L=S0!e| z{a-RFXB+$gZUX_Lz#dp<57gvXDI+!>(VFwDQO#Omut38)s?7Hc9}nR&^#TvrcjNx}bOy`nd#|K- zhF)s2qtC|4lBxSKO5cDo(159OVOS54C2V5VMO*zz7}dP@J35x=JaU<v!ci1-v)I4Lqg%vNvY7y9N^*VAtfg+$bbwB{nU%#+E4V`!+7Fx zPNR5(Y(=5Ec?wX?6=`uvfRc{hCVXgcsiXkC8doFh(m6){^LW@qD73BwZuGMkNEPSA zV&*o&m~@#jjEC8fGe>3ogXB%6(^%;Db9|uGgdO{0VGS?sNreK z(5X{y^(mS_wMYzFi&yAh3dmn150JR!QB^fK8jy`vFdZ7lBM)@gaTFv;;6|lEH7BxX zG8hrZu<~g!XnCRs%*BRzAx`bGWiPnl^fm-f8E}Uw0!KJU#!lbuGC5E}(U=u#@VO=I zw*q8?Ki;4xLrh*|ge<6`uk(O+;~tXW4vx-n8I0j&&+QV=kWwSN`A{SrHawBxC#=g` zM(TYm3zin|RQc3dJb9)sZ^s12I26SvNXT^NR3zL+}GTC!J z#6VADuNIJ)P{XPxim_aFEeSU)7kpN{SZA@Kj8@C8%7$;KmvGuA+VFCQ3@9U6MZbUuZP!0)R4b37{n!pux$aT6 zg~5B#+_-Lh-dk`&C!A)sE<>H@xy}#W->U&P0SZ)yw4~c+8M_D0Ne0MR*)(Im<j>8aMF8n)VbC$nS&XW zs%h_GRD^6gE+wU61jC+>{KQUcx566 zlSb#1-IaoW|(5 zo>8(C)=KNi2_)J#i9-~2LyAalIO`58(xT}-t%B7ee2sLQ&?@FOl zk?tX#(Q39!;c|3LnWyu&AGg$qTdv$4noGQ(NeNAzOuODA25` z&B$W-G=DWmnQN$ujJ0#LP8{oiTum=A^T-%ttsAQAeNoFs&Q>@hm zK|svl)DJgea^`C&7(_B-+Oi);Pq*90peY{RWwUP%Hf^vF(WNejs2*!IYSmgre<)}!A{LO0i-_(aZ-RHW0nH&NqxTD*IHanbj&Ht=R3 zY@E+|Q`qk?Kk791^(eRMZ+MKD)(UC+kL`)qTOO?R8=O?^NI(|oof;hVfE|!GIzrW; zNm55oWHf5!xh}o}oCp!uJcs!tFYO0;s~?X}2AyNO7C12~g$IumIs#hW+(xo*hxSwf zj!Yy^N2+VrMDMGLjJYI`j>Gj~KrAW^E;Bx=12K78_<3wlx3`}ieL)6Xe22sl3r@kNzt}LfTy{aoV%8H2{U_aL#tgB^4m!TimEo#gxJqtD zGgA9GFiXj%j_E?-+wX|dP?3z^R(+qg2QiIHHa8OM|9+Df@6KHeTQW;w&GVq@2xKV7 zI4U+gcA0i>FSb4kMhmrm9XlqCIdfxasy&nwDxZZhh8$-P)Z;=QkbD9{i0tNQg&#aB zGn*@@wAtSxo)eFxK3llww7Ra^f+7GtK+ahVt65j5DPVL_wn?b)2UCHPmvae?yXqtdt z|22;QN&$6)X{NJlam)^Zd1ZWCig>kPgimZM18RPzFUL!#2|}->fH^jG11jZzi^7BU zh+S}Ue$GmV=(HXKLkE=GMMstUl)u%5Q(}h|OQwfm)285N!N_L#A6^vwS^m}_QGv@^ zc~z>d^^>qJ8;<<#Y4NQk-Nbi{A_(=+#GrlFVbY=Vx+G%#iqO%BBgzCP4OnmNf@9GkK$@P(ws zZ^~)a@O=BOA5qA0t4C~kyI&Hh$o{wpCu4dlRl}H!9kQRnhKO8hU)5ic8D6mv!W(I+ zn>MCu2upUPpCm93F}tFAiNfNUJGg;Ch9zLj36*$OEgowXiC#gUpBo|emfI8W9)&5c zcz8ncxVzs=Tn&xFuY11rTWoPO#2032DWGQal@RIsRnofIVx1GP740E{`IBQp6WMcp(vrUt44@bK3a2!7v@kj_hHfNib z#B)!>3|qE;DPf>tTLFH-)WA3Epd)4}V)~yrVB6Ug_BR|QGT(r510gJBUzwSd=ST5R zK+p`0m;S^0oAxwyTwWM2C9Iikv1qcuH1g4YMjphATiOmt+J=xvch-`-;Z&(x+pyWq zQsvm$Le0p+#@4KBqHq3WhXc}28u3`96?F>pEc2;9&Co>P=h@(m_@7H2b*@;|dXOGF75O*JL#TZir4}~xJ}=d+ z`vIr79OohADbCPCU~2xcVoUCG1}D}gpWhaAblw!|$k1GzLO_Z1x1i9k1tO2$@hfb+`UB-bg?6~PuDuGaF` z##ZW;TrldD7*@1Mbc796Wloq~uN|vj;eU?l6M1ZAA^z2;BcH9VS|67gziF zF=(gjD$N~#_omgcn{HEmJKa)$d_q4cn*^b;@g&72NU4=!+0A1h%`vuKZT)yW}a=28$ zYrvI;8s+nDQ}@mX^M^R8d=yBaJ#j(A{~{r*MlHQeN`5f$Zlh9{L$G~_N_kW#)KYU% zc?IhupILGTjM&1I?JwEZ$8loCufUR25dIhZG8EhstklbCGkOo|(m_seTN=SV*giiq zn~4G|&Q620XNy*y?R*ytmKiT&a)TjQ<>8K=7Ew?={#O|S8ldKrAPasANKu-a+9NdQ zkT(A^80bs^LekeS$*`m_pW)3>+w4D!#qm^Ha%%B-^1FSc;4^p=f0+kY-53?=ozAIO z-EnUu6VUI+_lS&A`C4q}q1@1dewQ?J+z}==vn>%_jYbKFt|RBI1XMCf!G1L>pt~Su zlJ^YxaF%?NO^{Hi8^U{W%%T4k{!gNC&*;xh*HVwu<(bEu6YI0p<~>r&X{+4zC^U8? z55mA1=FTSL^3sdh;<)Y(r|f_|lC35RW4~&Vo9nsT!@{_#f`V3UZS8!;F}i4IPG)a{ z#pNB$JI6&2f`#T$`c@2dE4c5(u=g65hcbi6?ZZu0sNxwvN#~)tuLG#Pc3zu4_aA+i zR!vt+qc$9}qpIs+woJ?$d%3UkES?YPH!XW}xK?VmF7vA&E;U=O9#%Xhp43)}GvChM zpJtVcHGK@|wM!IrkGVloeKGZ`t!dJ(4eX<-ec=-h)Z!o!+@|!uNijU_Ukh@qJ>wSI zp(tG$>dz+DqRcZeriG&Ccs!6Y-XOz@V(-Sf9pX(jeyGKT+XzvG;3_QK-WZ zlZ4-)jZCa<0K>mhWwk}w-r=A^_w3BeYxz9j$%RX3yn{?=G%^4jjxI__xOp3D>~*pc z;!RV!HpM}j#Buy~_R8(Xn!^JPs^iWs9(}yC z9Sal1r`+skAE5xLEt##8lG&$v8tob~DiNMF$Tx=F*q?wS814b8nP~dgb{yF95J?Q_ zdNfo|+&w)VCH?1tX?IQ%B1=50D0!3qP--v^W$rlaA{@??*jtvQyQ@5x+K_y-Wa9N5 zSH1lxByo>kt>75=W`eYo4;_n5-G`(NNU)u>taHq}0U0Mb0U(q7f&w$nBQ=&kV{8%h zSihBR=peMY6BxnV;_BREBZT?3jjZc-IrMYt>`|85>GrWu(R7L$|6)m2H}4{ocE-{1 zOpq6`9RE^{wj9RDBcD`fwf= zmULSP^;}w{Yq5$cI<9PQ^fAm1Xp6zIyUi%A1`|+bN1S$9Q0#2*k!L!#iafP6H=Cb6 zUzmQ9Ocdq$$R`re`a@r9CG@+c=WkW3m1+EU!xdZWc5zGat&_$qTaLgYdxwWCftIHB zOwY!5pX*P8L>IuMkfvr-=hig>0lN9AW~XL0!ww|RL+3g6x027to8LEj?ZP&E=9F7L z*}t4VHYIRF**liTBb8b%g6s=C?6Qhxl5VC%l0O0Fg0cG8Pz+X=))4mwHyR+#m_! z$*$^ZuFJNorB+R2+yE+{Wc>I=iT6k9XT}ZC_L-Ys!vL3>VZ$GH@f=n{A8EP50!`j}m7? zE=T3w^Q&e;#8pY)R+uPwNs;%|@MF9aC%2A==gs4QS`p=dSk^jzz_=t14@`gGCz)`JH#FD;B>XE=+mo3q*C zbz$O#m}J_FAhpWF7&Cn#kDj0#EB8Njo2SEVFTOGbf&mm-GjO5SlzW4y%?wF&M z*S{KGVloP!_lO#7mfY~>G}JsQRqmYrIVrNv8NjLWa#r-?O~lE@Wn-(oHv<3l;Y{`n zs*h?k-!Nv{kk3GdB5xkC5joZ-y%ypW)hjrpX$oGa%#lTjT zeR5ROv*WWc79J1#_Qk!NIA74`$&IVo6#PKRZ@F9&ttY2Ch7a*CYaVyJ!5iEpqE_n(gA%K4|@UZ)!>nXe-9greQh#y=9p@4W(!W86+d{DK@+Sp(O7uMc<=H8=MP^2hn{n_j)?#n%sz}<`=s}^N zuYPx@FtJZ&#v*IJH;3}MAKOb!`u&QmheSgzu8XDu7a1Vz-rg`_QQeCe5O(TwcXdSn zA?dFe-@6)Tge@#N!#0UcWUqpjK9q;(W7kL!PTL})d_Fi2J@Zs?Gc+>+OYIj;J^QH#1y{F3plek{qdN_mtN!Ye4z;|4Sk=V&O=Jq)Hb$o zTZ;a5&3p_i^EI1kG2%i(Gc)IxhyBl=IvfFK2%Tq(!#5ZoUh;=zO!+q+HH`o4+9%%{ zdOnd>jem8#zu#-5%&hXS5|z@8Z@nFVE?IoDn{>ejMR1!`>~a5m}3W+q2mo)rQ@~KGCgnhSqqQh#UuD!dj6n)F7&PS zR|&<2wOEdaQ};zVn5-OphIB+#Ta4I@dMlU=LGF7u4ag$jL{CV1QH@m9rG+ZN%LDw( zP(@@ATjVn@mq$qvP2kF6Gg%eS22siDqJo~HC9luv&_O#jSS)`|#|Gwl!+r`8IK+RHJ2(cYeKJ3bl~6eLyll`jHCyI!c4|%Xqtz z)1wC~){Ho%hBXtp)oRv>QYo(YUgHpGe;a^H#fPH79W=ASo@L6UxM+;xCa?kiEUm51 zn>uv@8%URiK-bWMkF&D7Y!Yx<-O8&E_r+;WrIiXR`4$&8!?;dKNXZ=jc%u-gzn~*g zmwy2`w7kIBciD1}@(m{DM1Kt96;BQQ-S;A1e)IvChEbN$qD0{a^Q8z~wAf)ageA(% zz_!R99sRufO;mNRUDMiKQlMxfPCDQ|8s~I9NHj4Kxw2;CSKzUM9D@rBQv)%c6jH}t zB864J6PY#NhIiqeBftKfeFB!))ChI8{c&F=>rJjD*33G+;&UiG=KJ6(wqSQRg-0PVlT>RB zF^f3oGaWxRp7$PPW|GVu)>Jps^Sbt`8=i9^6xe<{T$O}^1I!p|GZj9V7MiKKf%QKK zH$?sj*mAJ?3j0lte_Kne9pCUbAI^3-93tXvJag#$xrwIaY;1m^13S9{Bc4``PW3f; ze8kjYOVG`x<-1d*_S;1yR~-;v?i}4fI_%9CCqHt=BWYk zpOB%sPT`!cp=6F3dGvioO)g0yoNwY$hqtn1(hs;wL@r4S=jPPZiO;2~y`vrJUN=6m zd0CQK90tHIV;cIj_MAOkj(I=BDZf5ij-?rf_bFep=p|5^lf4cnQTtnSt$a$qHNOI5 z7)b?N1^-}BMxkahg0LS_U-8tyH5~sv6C=(O)>8(s2hLMcGw0feba5w{J~9`WR3Cql z67{O@YdCRYSE)#igE#$nV^N*vr%1-R5y?xjR9f3DeR{AOAkUJJuJ%qajC!rb(K_SH z-Ffb&WayWh^1sfA6gZH|i1T3S>ZvI5bsv)*Q9}gz68=*eO{i0o68{217#c1;#W{Zf z-4~r`3H=tXlg$9=D!|4r6}5-7Z!}I;>K^R&82kZjI1Mc6?4ZNIcI5O3Kh% zgP*L{peq~~OQmU8jxClC9FBnq{88~@8@Dfk^^OkhvT`jVJCjgrt6!{>c-G5zQkquIT+dl#^ewBAUKNgq+mNETYIA~jmY}^Mb=bj*KbvvY zTOgMp^I{4T&dV=dZs?w^y`K^h$EqCmX-Oa>7}{&hXM-EaEJw>fI^zDGp0#{Le|dfM z3waAv7ZNJb4I=SifQ*xZ`82w=H_LA3uHINh$E zI4|dJJ~b}s4_RDHX8Y-1z`#~JFR3y7fI6+QEUm5T@~!#>ZSKXy3X+?LiHXi5=$^`! z)U~}F(kty=EUY<-sF(3NRWymLBV2bCn5UbcnoEj)49NU?soxn8=U4-c++Cz0MFXGJ z`dSuuzy7qUJmDXh6mXO3KI!ybqo=QZRJ~8Q>dcORv?Xy=FKa*)nnVmLfK(1M}>uq74 z`;`Wf%|mo9Th~$N+mz>)WxwaEUsz|!QRA||E6K{|Y*FY(Lbl;wy1aRa&J}Az&%V?q zzxF*_koo?szW*uPK6+~QJAI_ewIig5yrv!WuHOn_E#DMhxlWMGpC*AhM9V)FFp|rK zpibb#M*t9z1a#bmfh0uub(nkn@yG4H`|fkMfTP+I@{DpsHvvGAj?dGl|0|Gv4Axq{ zNPKonvmjiACU{a}ffTSS%d@QJPSmH9F#7<5 zFSE*yArG2$u)T?VP7LX+Y%GW(3s$Mgy0)MkN#^fA9d#)&10gPq*A|v{I#X>%RLc zPwp-p_hs2-RTqi737$l)-qg;&wQZL@J$t52xagK<1s^u`dYgCa<;_lb+p%`OT{7$( zo7Zd!r`Ru^nrkyo?bAexZ8rbf@7Osro6oIG*FW`^UEXB=CW@?gsJ*RuXtsUtoQrHp zz2o7BVRp~TrS`=Wni?#$PB&{GzQKk~z9OusiFfq!>^z$>HWO1M@tR%QX|T;{kn)xb zK4oF=T>ty+cDegYW5M~anYo)<$#}c|=5y=08dQH!ne~nAKcr`aQV;Uu_80BeyH^L9 z%FnP1r+mVGx^(eD7LrSz+_v0q2rbE0ZWmwLAaX)2b11Sm>~b62yEzc7wKp=LtkRi= zovVaj?LX(ai0>gRmj;N9Hh!bRZNnxaoYb?xg=fq*EPFDm&vEr88CKh)*IgG(tVB1L zpWDvn+&Vwx_gn$&-3tIuzU2R5a%S)de*25}*)?-lWYYAv%WwOx_0{iv6WjWS{>yF+ z&5!-hv!8!=T#$;%l=E)7-Ig^QjzRM=Pq)i2JKMT9QFe0MD!curIhL6_TCe8C3y`>C zj9qf+RO{PZ7m%ZQ-Gs$e+lvq0X>%8cZV2J=+`Hx8G`unre)4l#jG2Cpy9B@;9+}NII#0({8=)_MqR(C)+Jo zf86fB_B#3{S3#S9I4c0@R`!{f2qZqaB6IQgKh2KM8}DrS{gZjt=yLm~&*u+PbMiFa zi`j@%#{kmHxUVzMiAB^Hx@CS>lJ@*VkLR+KjI^_}Pmpqlo8Bw6Q_i1k3vLMJeOS#h zTejgJ?M!#0I#T5__&*|gXu5?hJ*s$d0F{=J23A-#PIwv7qjW$wt*hRp3RwJ^0zqocSNNbEg(2 z+2@eeQepGcwJU9Br=ND3efeLe1uiBKn*W{vVKGgVkwqPAxx%{%%mry8XZNFqD8+Aa zU`y6hO_o#GJGdMu2GTq! z5=hYJpvtQ(@ofnWcT`7QT{H-gON#`NPYf31quK%N+%w(=wBU}Yzl^D+Wx9O3owE_1cUB8sm~uk(j~7zC*8G3750MydETqHhq>`Pk0?^5~zILrCPUkGbo6nZ=WElOt=lnN-bY@Ex)b-jdZIagqCM_ zR}c+;xUst5wL0Pux6mTp(gj&sQcYN9OVS>CnjM6Y>tq)+B)0|yu9sR%Vozy;0G;5u1-gx*bAbM7QflchAmy>&1`}I}! z#X(fQ_s_PWiB$QAO7we`+3MjyN1iH$Co=C_H*C!8l~}vIZ`e~0uCf=_ykom?87eMr zZ{2$jvZ4R*4|dYv?v3)+FRIEOymf8{49jfVB|vXtz2)$;e(D2%+HUi2x;qP{!@o46 ziD)4u*1gPZt2m*gx0N;9?J?^|x=N*EYgdx5g;E>PzsweUA!bYOd)!WM;6rUhJa{;q zJV^eJH#^|iVo!(BPjE9C-Cz<{yN+a*0e$NtyWv*eo84+`!L2u0&!7Cz+uZ5+vADmi z$Ux6VTehys`VP(WbIq2s&3^a$Od~mV##x^X&eU#d(PYY+jf?G?TRPe;-sUEWSj|F`7s$C%Z&hK4gD{>DqG70kDwyv=Gi}F4Zq0ATG?lz$lF#vn}y}^pBb6gueG-BrMv;lkW*~Peg;8d zdEtAf5mW8wM9yiv@swzDPPrAQo?`W%i8RiUf26qYC>v9iB00Ny0RmDY~%5NBlf!& zSJ)kQ-Wfo2M?o}TCyvROqTwjt6k}LE%4LL8JJd};A_#x_=_Pg)t|R~S&*uP_0xRTJ zMNIN@OD66IZoAY3K;)G*St12~#5`t~i58Gmd2-QkJQc9Iu)F|v_&3;_tl0Pd_U-;y zI^G8BhnmLe!14*yNoOQgzBphig7!&o(gFX)ztV#&sKx#WDga}}ZT6F7@mSCRVrlz! zT*#g6jZJSdASkjfM|XDD6_D5ERM~azM*@J7UW=@_Ra%b;WWndWet@)Gx~#?$$0M1j zo%FT4g3v|@=6aB9d`u|p9nh*!b@J!slQ&2{y+el%Wnb{BYlZr_HstOS!*5xULgY}R z$(MKi@|X75V~_b#;Tkk3DvJZHD?plOldh#KZ9afdyO7%HnWqD~UTA>4*bQh;GKkai z?mp9!#wbFI21J@PDi4S+P)SBtkWr!q{n`=9-RO&ESGvhB5%zrD>qbZ{?Kv$yPRKcZRN@wAYuvpRAxft_I1m$aw&%J$jM)} zNw~1ctDtK8JNDc|Jn;*yvm58zlFCop#BdOh++?@qLo^do&zt@Q`{Z%mxO}$TtIs@a za~G}7h_TwPyM4Lc_N~#4WIK>#2sd>A06+jqL_t(;HavJ+eTc3YY17Z2WCME;IH3A{ zTebLq?cSv!9B;L`*Zs=+-h5#bkXBCXXOFYq9g3~CYO}3){6U+)O!a6~mIJ~}1B182p%WFqbz^o?s_N@M@BJ4Etudom_A5l`z(J%Wh-F*N^0pJ#nx*)$iJRjb}33&`)rk9Msmy zP8wTb%R*mi9?JW6q{`*ye?;_fP;G9UI4%f_Vi8FIpBh-n$5@ZW1<6sY&wBhXj**2^ za4ZX*05Af$$(9K1I8fft1U32jDn_tJ=MeDt+2Gwllh0ACyzOG`{9FLq!LD9~SDw1T zP6(+wtW9a;hEYsJjOELJXH(8OkAm@vmN^CEPMi#aYWZd-X`d$I2^t-K5m_!FT5QD^ z^iXNEMQLD9FI%D1JbDSBSByq>?%ZMJETW>-7-eZr0e7-U$D|mtQyYLMD=#0YQ*IQ} zjQlEOk&aQmtfqotMa_^!Se9XjOyuA&`=pmU0{PpuYj0(pQue2J-?lDYyWqF3d@75! zA*AfEeBv{ifa(N!;`otEC+a8QlK=h^*4?5<+|7 zdQvJqf5_9C?MOiHktnlX8*A3u4HxAswZkr3U@zQ!mfvDLT}eMX>yp{_?udTY^W=|i$TVPMF-exCc z5^Z??X+Nr$$v^$Q&A#NM?B|k_9(K}Mm#`?$d)5-XMlgLH%Qt;9~6 za<#3$=T9~`V~*eOr#vcct!{Qz+VU*JPbNCc<#vL;1HSdJ6PP6T#K!hk)c=Cu(404I z*K9NvKN{VP^)cJDB^E#C3nx?r8ME!lE2ky9fXc74E*)m$ zzdR}HC)twh`Dql=>c6sX5$JFDXKWw#_<-2> znQhp()6AA-CU619uUC(=tebZx&Fjm5A11eoQ*)NUt*?gw8ce3VaN>Y$x~`>z?d)&; z&^q3DS=Q%u^9PK8G9bNa@q?Dl%^;#)`-{8Vs558Sp#BT(idz>2Wv;v5Uf4d`Mr$CI z-437|A|~7)f)ja4hMZ^r`K@s|>uGU?jXU?dHe}#DB0*%_HELGa!c||e3rEzeC|hGq zO_@#k&i8G?fV}h7Yi&X3=0M8w@zd>x=Z?tcDel_WCQPNCGvDFz)9X(%Gg-F%23g0(7NAZGA9#x&#|_y*=W^gH;5o|Sj+uO=%FR8uAfFM37-hg02E#| z0T1c~7y%}M3jhTJ0W2g0Tx9bM9-#})1V`8~I3<^ja)3*260#HOzn{=6<;Yqae$Jc> zph}rNu`rY}^@+5h8-VtMyhTN9Ypy2gQ8kc7DL|oC3iRc@-KUtm z?zST6!s1L5;{aJ2i?bGRaYteb7KF*aBZ1Xb(4)bF;4}v87PV~yyrC1hfM6L_bQA3L zq$dw=amv)hMVU*5sqWLOQz*|-kiz7VEEfv7!Kh6^=)O#Y(2@6otg}T?>i|q|Bf^LL zu*3WTp3)f-%tOEdv4UWuT7VO@QUY>HtO#edpi zUv4bOmZ)RmreGUcsR`XiSxlxa*Mf8^y>OK4BL?KwvA9cI*9q5#EXC=%T1x`~TAk9b zBQ7ot8q`)T{^E6#*2D7g!9kz)k`+bM59$L=K9pvWA;l8~ccGz$8gHn7)A&hiIr{+1 zImkdkPe|%?%?hj`e8nTzU@o|ZDEkn$5PHM+LnxwAmcv6Slwno&A<6&wGfgjS(YCZKudqYgz2>Q_@*p}_M*lIV^C6IH2@}?K zTz--r&5_pYCRc|B53}!h&VD*$EIP|=@jj>9g1K{TJBK>;%Yjjtg0Dw*tF7aUQZKho z#c%-_Wqq@$8thcRXB+C>&?no)=bvsBnYDwfw{Nh==iY9M!`XuPEZ+6hIQwo0%3jQ{rQPn1zBTqczQ3dMuaN`j zX3I(zM9Qk5!Y-bk2hrK%W?gY7_|ou|cK7PwqFwRmi*~_?rek`a{+)jZqU)nwC5z;Q z8e$5Z&B%l3ylSlb=nHJh?{M$P^k@D#JZcY*PQpU*m;d(}6Pkd~FacxOgX*(fzBSK0 znfXv+pBbMUJo&-u59&<<&hrM#6~JEgn~PbYb7{R}jX#vIP}9wU>lHx{%L@t9Oa@G2 z>C}Wj!M1+rHPO#Wlz4AZ9`F02D8QC4x>2)NsOX^O@tFAp8}X_wfU^LGbu>6GVDs~$ zDeVNO9ArIDrhp(73H&oJfRoDVR$h+3E>MQdX@yM#kTn1(lBJZDNwj#3tn4050?^dr zDw^Py02*Z>_Q{eoEk#?Rz#)a;6Rxsl>=ii22~pS1L*T`V0btn8eT-cn0aT_H7f@<} z7=6&8`UH&p3$%uf6p=BSJ1@$rE$Ei+U_QzuEzl`Ts@kLhi*$ZeS$pd821{L}(J+Qh z{Xs@eaMVahfgs>U+CV>2rk*lrfFQfB7BP{(v4CEno?=p>qK;4kpiP|uT)BlXK~bQe zzkIu{0lCoB;_@LEo~Y9-<#Ajwq$5zg1}2&enxb)XtMKK`>5qK?uAr6_Sg?cZ$cGfP z&7HBSKaFWS#**k!x!zEo+*EYkD8fkEt@ElA9g(BG8p zmU8l>k*hUZ2)*HZYsw1q9?r7DGV|Z7-p*O&hFvq=8W}wE5|97t)n>EK3689J!{M*T zt`GAbU7liRkL{C}qyFv*Uzu%b{`AB`Zam@Eb?gj#`jr{s$IN@ecJ0_<+i^R1<@b-+ z)zfA+IDfDoC)?-hK}jxuoQNP(`8ZF9c%mOl)@t3f?`xAzfti*Bb~Jhg;pg-Bxt$XY5}H`^MKkyOnktU}t~# zN7n8}X3}S%Vk6F@mE&`9V^`gIYu0UG_?Nz6BbxSl$d-A)9TrFVZCDwJNB;BaEpU-& zP%2BFFTC^i29wFk?MpMi+sKNm(fIP&|6%uL;4CPq+{TnkrstW$67ZTNHR7yy#%j}A8W z%;B~;GnsSs(v?;_ItP)pn_kNHgH_a@RMvACvWAddv(Dzsyv)k_54X{u9A%#v*vEQw z>tvkyKqxRKKSw( z*h2VFdY$r6ZYl$4(gGo;PME+a&LR#XyX%Poyf^Q^pJm zcbj}K>6r(dYgV%4w&5p@!o%&9FW4ZNau2ZOLv()9&1;{trOSV3&pgTk93g$?Cur@y zM9nt`XUofLLrxvmYTdLy+WrN<=KGGFWJ|JjEwNdb@|XEM?3AfC=bt&Wf#sEb%3m;Hu1~n+2b?AmCv@=PME5K8)Vhm`)p3;QMn$+&uBOp$r}(c z(cl2}1gE#JS)4cc8e*q6^XR_0!Zs~u!HBz;X2I9fRgAaGFFm)(h!V*yOS2YEr7atN z9u~qpxEVFtCVrukr!l$63R@T7XKPPmB4BpVu+5e{p1Jv#jkhs5e+{p`$rtV~S<A=(NOOxB#hj~AP zI#a~_mRBD?P-x3adwX-O4Q|QzA(YGCbAz(-!42Iyl;ALy`xntey~efZLp*|2QgMj| zQ3A-o{~61tKZ+M=@t7V*aLENw zLpTjKCJ7RjNJ~=-cJyEMI!O8vVABsv9sy?N3_v6dg=zIlnStf>;XsjVh{Y)?YswL@1}%DKV0r4~@FBT|Q~?$U(=wfc!2h0v>0dnqF(3$7;I zX|kk_NnA9G;Yc$o0Erj0iy%j}evmVZ}vV}Icb3hQP z|4XZG+O^?@oPRWvc@7B$Yu>OM&g*YiENDisVW*g_S<=kOztG`B(2XQ3=`+!uu6hf9 z+}U>frL*#YI*@zKl6f=@ztBs~F1u%q-TcLanM8RQ+un7keX8u<%!IvK+qH);O37yX z)$L2OmGoi)-r7~G>RT)KZpvDxw!ZeVty;UA38Fyw$46NACM{L9w(98>*)q$>#G`y2I?EBkd9lE-uyRt!|!=aO0 zk?ooDko#1B@6h@zD5KhbzbO13HFZ5GRsCPw z@JuOTDDkx08mQS`{p0&Ku`kzXi?=F!c|}95lle%Md!+Qx;`TP35ZvOiJXS_s;d)dr z9|3=y&LIa`04!0&Fu^%kdz;>e7O^}SMI_dwvKmc zVIQsy-FkMlW1@tV5^Z2`6Um~EIHUy=sLNU$g;nC_a4IARkGS4 zZVQr4sSr!;u7M0|S)N<&DjhnuXD|Rn1HXZDimF2({tIB`=AnFA5JyohR4ZZu$G|oa zTtuH}5}p=iann0hAt4e4lPWc0Q5LIxz<~p7)22;?y9<8YN=r-a>7`HG z#7SpZQ5#(wY8hqGe%a9dm3GPHC;vK%#oGY%vK6aNwUYf}`bY7=eNaFWLS}x>G1F7PdeQA%yO%mc&-({ zz9MVI_rZs515Iq*hfc5={3UCdWctqA_U3ErYz>Pet;+}Nn$>pGPZ!!xuEN*7_h1Gx zivtUI*>IbF;i*<4zrQ9o;`KWeVuXs9W!x1GUN_ZMTw6`rlbfnEXSvKj+qYl0{ExZ) zJs;-w58%pB`~Dk2yK^~wuk|{~E3kZ^b<2LQ@{Z^29(13PH@W4dZ0z{*@uxLfzB?#h zVIRw}NN@FzTbDjzo2CqHHa>ZtNWt#**KB3OuY#W`B}fE28IaaBx}9sZ+3!_@f|FZT zLBkI6Bc#I5GOz;efgOvyWrAYV5#I^pES; zxy)w4eR!+o>vZIftZNM^aAQ+d?t8^d8CHPOsst!=0fZsCuZ*)2<6K_|^`J6?I-=7pzE`Ly*F@8z!!w&osNxh+i4_KI6&`ZiE@?JyNB8JwC!KnhU2^r!_=VTm#%Jf+DS6W0wPZuyr`GOP+rl4y-M;?y zuiH2ITevCrc)d}{wVQ2iaKGhLxef8h(TRGG{Tt;ugag}OU6D5#Y={l-eE`bvI*1GW zANdenW@k*FX|rau6r%a954W5lH9S)Py(w<1T4zf#aIJ_S4I^pPFQE0Gf=P#&a(4dS z{;<8)UT0!lxSckki3z#fQ?_l}#@}}DvsiHlt6+)qac7=u-@0m+-S(5K?2O?&=MOi+ z=)EbP&EIzJwz2^OY%q`7oBr!NCv@P*-UA>ak_!?);9@+k83%+ZIqLXY5>@bn8*{v0Qw(i*_nPQn_cxv;5 z(IFE~$$Lt;(H>m9sabIvo>;qRQDe6kPgHE5KKqPZ@|{a<(W>pa&->kD(UtkX%}YVZ zzU)NfBUP^1kg;Zh2U@V{n76H~0xB|!&sPJW4j6_Rvi{Z4% z!Yc-sl`?{3Y#kqDMIAkQv`so=lI;OFwQO^+1)18lZHomlX|t}o-rjk86Q_Vd%1J_u za%;dNSOrrav8@HWUcXkk3tU1Hig5=x>&qvEkEXbx@GIa8#*o%mAVgmI=}I;&9wOjV zo1%c7mI@a((^#s(s?IZQhi$}@@3*YE+5*d~02FWqNad5ACLAFC30OgqnT(3Q;SoB} zovgEh3h7Cd7mW7FM;m0tuCCf;e_&Z)t-{#87!Z~2kO8E}#RN+=gMzL{cd?G0$}9z} z3*Ho)*?q53xMDUdu}_vHpY*Meb?)rUfTs@lOk$-~cs*?q9|0gANwm0&tmjGIBQm!O zRMA6Uad%~9AH#2+e!`;CRrsmz( za;_n#{M5cQwnsKi{?3X=@5}%A7uj#EZfaiprFCGS(z9nz>o)7zCS;CVzp-B-EZeZ` zxxkSi`?21Ro=6?sR%-nR=iq7Oi?27EeOtY#3T=YlqSAqO$yHa`Rn7g)oM|(^a~{|o zY-J&8Y=VABw($=+cqtivQZtsc`eJT+?AKYh3Y zl1Kg;pm5x$Pqxo|=5&Cp1_)9q!6u*Eu3fwOq8~rTGW{nWSqc6kxPi#1Z2Kq_>#stf zIg?UfavvZmFp^0W81(W4Oq8ozxcrxew34Qd$$7kCT?Vs(U#*Uv=J8evYjYicvUsX& zcS8`2VfE!OfTyF1>JeDEg>iB-i0KcDudJQ&377F(AgJ{2U#{bt6-RFAOk(Q1WRP4% zfb%Y_)9ZOG*N(+#1j=Nt{EfY?TX&&AchN{2YlAFN((5|f^8OZ^`5!ZR z>hP-d@892!?b{buo_@CW4}b8%Qm|5E^VgBW*dYuu=mk}9ZNcp5R2Fas0~iEjg#YtF zAW8HzM7sAF-6&SqC5>*CMLL9Dy&sN0=`k!*`$uAHKlDt?aoif4Jn1TXc}K&VYV5Ha zrrAYHa>wua_UAK}jz0F~d!}bkEV$@IVn#QPYul`E+x*vZ6QOeQJ{AB@c)IME97Jwidb{2CVq;LMtz2$5Wg#BA&;Im5fpmw#r&_KxJ8kZ@cUt2IG1PPCP1%+88VJG1*65^hX-ywF^gi3pe38r* zX(OAOWLU4ln2oz&8cR6kwnaBxVfQWH)Qq)0X`0OYy_+&qRI`1S%OC7@u+LwZXO-qT z)7+WY+EW|yf6VgpRP#G^qunq+fABKWzL+0E(UTvka*vcA^4oZD`>gMwu`IBLSx@no z^~fJ8aS((AJ*=4HluW#UW)YUe;1RmmO?E@Vk%@W)GytbRln3NAp>V>4(}356Em^w6 zVJv*qE|~5HOmAh$?d$$?mi^!dKd@d*a#QT;x*`_+kl!x=F1Wu5JFpZlCWvgi>z zs`M!8j9ABx9VstrOP*e0&n$h$CQX`TqdqmtdK}ZsV%(4RV3kxmpMCy0d!9e7IN7^T zZ(mwm`7|N0SFc`-g(QitBd!!=q?=vGjjtmn9J(3-W}sjGLXpg-Un25h+7VNb>SVJEm!8@DX(!UJ?x^}uD6-l#a3n!M(Ghkv|VA7PU>fM zTi4rtS5M2XO6d7nwB?_3tD4xLv%hWAiNic6Q}{)n>SoVh`3t*X@<{7u@7wd-oG;C+ z&Zi{9uDssP$Sg4)FYjf2Ikv|0F0hlkood(LbD53nS8mnR{p9^O+pKxPSx>^tg8P1B z^9PuH_SB&s&on%K_}^Qnn|Pm3+7w0!Yh3&_b`Fm)r(W|5J7?qo{Jx89#~bVHk^i~K z<}ArcK4~-!%iB73mUe<|-bGXK75|*cJ@J%pUTJ6b)8q0Q+q7b}Z4CMJgEcl~VlJXV z_i^Xh$a`n9_;j!>oqLU~er}9S9DBTVYP;9oTJfAMS`prsm8RUjc-Dwa>Xy9mdlGK^ zZtr))ePmPCeFR|VN!Ee3+IR5p%_gd`Cm+6($mMnXYi`48QFfx8f9~ika2EIdj7{mk zC>t}llJItyt>|xOOdMv9pTCr0iVcG_xWSY=3Ec=Opu!=2-sdLgW^ zV+=jF@bz)+z-CzZ+IL2W3E5^V&xGHeazgm*j{gFWyrW_c$m@%&zT@ z2BCTm-7-u_H|Wu(F6aJmQrL3WUBZ?duNLZNOb+Azu6okHmu5PoqnI=!uEOPx_SxJp z?%wpTSrKo_7M)h8YUmfjsmD)m+E7PX#@}#m7=QPgVaIJphYi+SMSk%gg?Hb0H9R@) zvG7*TFFL;HhD_(Kr8Nv*f6s8*f$xT2-SSN1rRm|e^M4xtHhg5*e*4db^;cU_MzW8> zn=d}E=l_J%rMfY%;?e)|kRoezcgqdkghQ%#d%tVqqPb|@Es!)FYKLv&Fw0#4vL#|t zh)ImKQ?y0aYcV@r7I9PN8s%f>yao|Vm|TNC*iEs5HY{uiyM5)q6pMJVb|8FA7TIMo z{i?A{uQDvmm_8$1an%*!tTDfk43QwLud=qX*bggXeKd#bSi~Hkl7h8XWE%1ZiO2dX zA|(!`WBnwHyFB0v;K zH@dkEc#4q z7OPKiUqR0pp(7I4NIw+|8yrMgX^*55uen}Uek|)mCy5a%e zKR^hJJZl`)VcKtH97SB2C<*u2r?Nsv7aqxs$RL|030C55C-McaQJzBEBXAx5Cnde$ z-c>1;*=c#rGmkJ#o2|U`=UHLn{l+#{^Q=O&eJcymR#f-Fmxp&Q*sCzfN^cC@C|or8 z&M;}cy~Bfz*Zw&6XoV9?GvvNUof+;p^UF=;2W}zKzIV9u2WiNT2g51fN~Pq=P37Y=4lE%r5<^~{89Qc#jLclvJF_N&_#Hjju` z2ZWuEJuSRB=2s!(rL!i7dv3{3AexE~)Gl;C*mE6Ss1HxwKd$k{@UYv~Yc^$C0!O1n z{=$TGBOC=$`RtC(`ezUO!neYKPe0cbD|^A@@IWqBcd@!6F(>Vvi)}nC9Q^a+!-rbT znbPIyFOJtM`0>TX;+b4)PC7u76vgIlCpJU1*~-cL&XrX%C0+}{Gvn{nr&2Y$hBLME zA&L; zm;Xn&vJpo$t1PX#!%^XkL4VSwNaM463#Pvq9+2g^S-76EE$}0wR^geD2OjsW;VSjutR-`1hNfuwMZ|POpakMSRG^J z3z2JF6R>zD3+uwy_TDpWz4bP6kzQW6TDdsj<}rQh^e|To?PPlt85OM+dm-uq8;p=d zmqhd;%|+Wt*u?-v0L7xPlIU(GZB!r6F*)4V~cSJka(uFAaV)EL@dD%8{cH*6^giuNE?+^pgjqN_$^9Aj#YN$ z(!x6;7_2s8_0S-H;s&*WxX>u1IZ7n$aa(V!ulleckSPK3V+0b_ z579<`y~r|FTQtN{AN{5y>C~}YW2!X?VZwy=@wV!Z(NB2$5Z^*bfBH{t6B@DpdSQFe zK?jA+6p4jhD{-g6iqB+-t>D*RZ~d_0h8u-VHrXVsv(7qU>+p+BvRD(T{SP=m3mG?;u8?5qK~vi>j_^HVic>3W*twC(ni>TlXnewJJ-fLRy)OextR|O+!XRxVRYp?Ls z4Ec`#u-HGfsPdhT3^zVJIsEnb?VBbTjTvgz`dWDQ&*y}_N2P5n+*o;;5)e~?MWniL zk?pa^TzE#5)5yk&PDI z(%LGYH?_3#{l=>m`YX*}z2->SpqtY6U)rqcr0i%w*x{((gcHBLYxC_>nL-vYeBp)aCq2p-{ZrD zr+vL_6P6W5G+E zteTFo7W$VUQP!`;PCar-bbDm z#vHt@);?|0czdO=Y%@POtA62taLF%E4!dvJ-0w@Hh=H~D`NTO4Hx=U_% z;gIUx*6)6=zx`%X0}&NjBU~9|5rP&yJVelNSzs|>T*M~kNo-(jrTtlM%&s1b3j z6JaI(Gvo;?bsdZQbj$)g)h-?JYL*|eNM0R2x+09M2UG#+p?q4PM|2U|1!<;HaIt>! z8K{@#x=I#I3P6*pF!8G1ItZoOg%uP^7X6F+Y4<%@;#nLREvm|jC7u>yS+2*jDssoO z1b=1-96SA03%{3MctNi{hlZ;DSd5`$bzz=%C>t_ZBzn!&6rE$fu1bvB#Uun`n240q zKCJFKR9*B6{UWN1%LX{ha*T^dbjg8GO5Lb?p#Yv9lA(!=u)@E*UTuZMGl9@SbZH@C zM}sC0T0Rp1$GKRhlpqCS6Q;1cF>Tmeo#_|2OWzu=iejMk{$+ z^v&m)J$rVz{PHWpDW{yQmGd9uZ*};1*szttIp>@kjz0RR=qA%)LG3J9x8TF@&O0;1 zG73F6Z~DwoyV5FQwP9@}qSU3=dGEb5Bg|W7XsDetJI8*LWWA6k09ICqzy&HQIL^{3YrUWpIfGMstA zVP)j9xjGlBeKWK6X%B+I%PTzUa&7EqjS)rvAj*}VcA;kAvT`FF76unhd^(Q}A^K*_ zm>mYl1#sa9vqO#gVA#-h%~qOge$n;0bKVOxKlr$*Eko6oc6Vi4Fe$3G-6w77vxPHX z4-;RW8p5De!)BYWBP!m}r1ngm5vITYz6^A{$Eyv4hO7`q$X#|=+227s>Zn)rn0IG{ zY45)mqF5vkS~1F9wKIL&U2^q4vs-Xz17!W)dUJ{>i6|HU;?@A66A5G2>u7})v5XsF zNEkc?zttG$S%ey^Y_$kAgeJy>7Wsud6Hx-0ShV97*SJ530M_VL|DWU&IdS5|xD_>o zlTdOSZ#*&_@XZ57ezCBsUX{kPIc_MTI%?#8AkG)%Lj3f<68_Lwj-{{8tFf(1H#{yV zCmyf+Q5(2b)JqMFki^LWWLynmOLXWlbwf&3jK+vq7Pdeqj2w#%@jZ@<`Gkj29yBB<^I9;-HFmGW z-Ge^l17YmFWmuF^_ctn`fPj>A58a4##|#WD9TL(hFi3YZbV+wfr*y~A(k-1*0wOK( zj-KcFzxtl*I-kyUoiAtZZ}-gXSo^ovT6_KW+B;NuYcqE))a==d=Z1HiguO0?%M?!w z_!8@tsf32Vy5)FDe}(e-^5NeKYrdlW(b+S)a#t)V(UUB z^3U@3o68ET9Kw|oHtQ*p0B;>aYNRGvA9E3pVK5s&xuBzY|f(R{31bv3nw8YNrK+Sl&PO23oQEHU&16a_$B=?i=6&xd(xOK zGhSoQTo3}K1*&1inObG#Xj^ovGGeb=8V(dx4j~Y{ z&k!h`Ikw!H`^4WAgWXUx&W&48DZ9ekj z;T{DTv3yWgLBUJb3?ZuDr?<}bkR{y(7qo!TnYQ=?V4t7V-fy9v<5RW8aO@qgE%t2UI%88+FD;*}sKTdw1&g>VeqKmUdECgxF=Vo3_PU zTd)ylZxI#xnt(MHnT&!?uqjwPoxhx6tm!8j1c>AQ2wU`*J^HOMn7k zVwkisH+oy=2I#iHiX1Qo=nMu3%-(}UL7yINl2>|;!(S^d3dW6qo;y`au{pw2kn##> z0qSg50Yn43wm6&6LJel-Drhz;UhY!0p3I}+z7`t*>xLfDV3`(q%>vb@?s&K!5fKw7 zxt<4p_bX;4o%>9<&69^&Z8H@_5t8buKqQM;Rs61CWOT>KI|Rj9wgyr{!sI3B8=Q@( z2r9E+{bH^8vMK?|YoOnZG|n;zP|pl(>S`(ed@DXMd8TBFqkqWYN_5KBWY0;ApuDUb zgcCuZs*Y;H1Xvj?0tM`S5!rw4-Y+ng_leW!0VPKReshS}hdLEZSGAd5u zRH3>3k^c)2g2Skb%Cs1MT>~y?((D+|Z~RJc+qq(C#2~2ONP+6T(XT)h2NrYPf&}*aFazb|n zS(*s!Epu9cUEH!{In@}T0n<1-R=@@6rC1_Wc|kDdTd2?E8!c_3P>xzl({uTd*tywJ zES~U})X$MIlbls*`3WR?(uV0-kD@|_PzW5YP*7gJGEEjOUpW<`-OpMkCqdSWQNfn- zVpE6QHBNo{ROgvt&xXGmw;cMCwgruV`GyH#eZl_?BD$u9j^oY)`F$79N|y`iVL-1; zwhaQHKF^N1f_Dn*U7_Q3fIJ1>lU2zX#<447XSefL$uF%`Et8-0Ka$<++{whS84rRj z=qdFDqlsv0D0lFf+V*4kqb)fTu$^)tMDU6>i5biTT80n#0n1w-900hsy+bmhhcO(=ef^_ zGrpfGMGT5xj(lWcoBk)1V~M z=g48KP5G$WO0(?6?Gq~Gd!;X?#Y*KPPHcik0nFmXw{6)Zjl~eMeb$B|p#hb;lo9JO zfTF=GSXgp(_iX6UOAqIn`an(}AbrX7W?`j5tfi^Y@98pvGm+PEF-Jy0-~$wwxz8$p zY(Bj}y2QvtE0`L=`S3HcOEp3q6B1+t5_BVvu|cpyixUnP-YAPq#5aaE*Gj;2Gn&PZ zO%;QWjJnMchu`kCboujHWMv^^82#CP(L^RPI^0-BDoSGrJUO&5sFY*~u~QJfZ-wz0{i ztCd9>RG@B8qFP84u;}nZDi7%>4lNS>Ap7(5X&E0rz%X zHb&ywo}+_p>ORS*HZiIxMj7vLNu&sG3gRUTHK5;Va7*9EM)p~2MecU%)6>Qm(U)X6 z;Mg7IX;;AWR`tHezDP6eqABC?7dMCkvlFJgMAEh89?dnFixn#^cKt9t!L>f>Tv z5F>V+VVS}*5t8aNgpW^OM@3Q}6q%@4$8nTb=Q-Z?ua?|WIbvITOMPAUnIYyF(IPse zF<8=$WMU#g@gzu%{-W<8z6~NRRCem^GLw7^vyd6#Kga5TMo2`O=YBZbk|D!P10>oa ze@K%DEIn^oEdc2tGPun3DTS!2B~4?iZ3QsFA_)MF+35jSjn$m)o! zC21lv(#UCi)xI~3n5?0%U1F783cmvbwkO`?M~6%x&ySbTBPqU7bht<2&CD$XwFAVX zhcQTow9vJ<1LLte^yULPwFzOAVkUz%XOnjNaTu&Whgr%ujg^MVR98LrpHpDFCOL2g zhQ&!0F!BD(;*Cye`>plgAxHjp#-wwEaIo)ttXV?n&VVpXZ3<0I6`F-a(YVAgt+4Ab zkYf?WW>nwjF5CQz)T7B0?RnTxUU1^5e$H@^^YnMHk4;{)`ardCoLqU9HdJ6Yovl_Q zKOUM7W{n_1UkYXsgAu8*3o_$r>Mcs_&{TLVJP7LQ&;bi@vegNcdq5?b4Mrujl{^ub zv>NXNmLnJ?tDTiyRu<@?-id>5b(S)kRZu)YysAop?hcR@O(OJV8yD4-ThcrI(5~rE zd-*JhWt{FKiFpJ)75&_d&!uUHhAE{mnU&A2lG4%HLV;>AAEyum5-GXZ&>)C2;`Y5c9r1DB(MDs9*PZg|ZYGSak2$HqwejH6NhW`;}7pfBj;sg)};0>fjZzBq! zr(lqN%JxzX&mNcOrF%~(fhT8V@`OvZz+EPdRp0~!!zdv~khPU7H#}W7YZ&TfLPtmc zK}2a0kOE9t_rZ8u#MN}Rsa!Foj#JSAe1I-R_mUgA%c*Ldb47s!<^msv z15c{Y!zaP&_QJ{Q@SHZnFu{377|NUr51_?wFJPGf$g82Gm|R#tAzDJg=Xn&OrSjji z0K)k9MEMR+@3Gy&NV+Sb#adKJ%n^;jXR~3~ERLC|9zYgd7hPjuZ{Ipbq- zeABj?xyLP??rN|=O2AuhJ%@0Hy4y6qr+~|&b!Zu?&yN6^g17gDWWb*}l&K&X|HhPT zDf~`ZS{_mcV#`C*|Dg5v8sS(%oV^y14{*XZc9~)U+WO_4A$G2tKan-vAj-fjGov*J zRB1Cp1iO6sTOeRfF&s`XrQJ*0#SG|ryu7*!D_%r-dHba4D387>+bhlbO8E4xGOi%N zp%r}kHY8#ZR3?C2UHyTIt0q=59+X6z=7O6px(Ex0>N*S}{n3PR9Qn%{Pgn_e$ zOE4mc51kMQ$*OnWBWPb1Kwz}cOa?+$y`0N`6o4o8JLgnr{9x)JZh?Z#WGSl$t0Vmx za$sQTP$a3;nAI$?=ty2LWFs@O5MaAmtIbQtaK>C-UJIN1oY-`{5fEorig;7_qUSSp zObd0vc5qHy^>&Y@&iR}&fjR-g=CjG1_xE`Snp}{C;si%*VKAQN##c*g_Bv|2Re*8K zQb-=L%o!yaLa zg9pvem2gwbBr4fw7@cXyhr2%Fu9oVxZYqrm+o0OeHD$+~?IL+<+gC$6fF5a$1#S-S zo=^QUGu2%i^~4P5o(@Ap5$Tw{=fwi*NvKBpB`oYobKkknHn>L-xeG5bZm`%h@mOQz zOt~}1aYk#Q8YJX1;e1vW-SLxIUPFPbI`T>_!`@hRpqNI)l8jCBm*$(hIV-gyE4|{l z-(DNhf7I*VGvt@ZlE`vL;2Gw4W?_VCZpjy0=A-~sm~($Hm9!7GEDc{A)h6#G{{^#h z{UAkKd@*s8s(3PJ+Ss6BxU#4XjOm1l7`4UTM(p}DQPTj&2#m#!W9;_o1A$b)<=R85^Y1*gOjG@~nRJ?+5kAW`&M(u}>VR7E##~Kr;BhSTQ}nuR$!$oH|s>#w6?_;hhQl#QJ$ zU7!o|dwAcc&kXx9rP!tvk0&{XIT{J;7`{qJ9jIEpE9y1*RU9Fj++U--m8Uj4dK`g6 zyz%TtX&Y}e4|p2=<5ND%n{i?p$0t~2Ht3f_Rmv}Z?v5fo{YTjfAa1@lmImYk*PySW zse=KklipNLmE=7B$UN~vpVML%~{A-v`Q5=t_uLir?@UE>_%pEC5z zg$J_FS=2#;G^qC%z{rhw1miW|)3wpnH@P|)R;G|o6xgK-454n5ZCndOZJ zx%OzyOB$6g!VSbMd>zBMG_gOgk_hFnQD8(or;#^xWGa{xC*SDayd(CT~|zO4*#+K%jD zE)@Te>1tiYyoF{iTX)o-*DJW`0xjO+8O~(-85;(Gl&A9N#yXK83p1u8Lbfll zf_i*8HMq>GiZ8LfB7X=ZamHz7vLGeB(-U>r=@NtI>FI;jF?cqU=4DZfa43=0wi8?OHMF_bKSJ;b)x*EX*_JN>rZwV2 zS@Qy6*GqufYc-idb!B`zw$gM^#*p#;Ku~Z)Kt-*@Qa8@#a!kbyP^nMOBoo{HMd_^h z(Jm|X4EYl_?B%_LNQ}E=P(fDpPC@=6w8Uw zYr$!!eR?wLr8bc#p3AZeDae>q_sjONWua-gT!PXJiHZJi??Dph#%ENvqTLYgoQBTw z8O3IKJBAjP0ND6rU0{#}dV5oTKyrD0Rhb}OSPR$aaIuO9`6`2oG z3qsA_WKKy#MFXbJ-vlYL1PukMZEQYKnUOK;%iGps4QI`MaWn?;wA4wfiIn!$SE*o> z*(T230%L=wPA`HvaT|zB15emHW?6lD*$}1(*y`gyYtNS!+I)%l;NTzH^9)W8o>3QL z3r6<^Q2RS*kc{N@G^Hpn$1kxeMOc?1lSOd401N%T$cS0ZMrx#0yMBy0rk;8l(Nb(K zfx>1CiyPM{;szbB zeDMH@3GDRpmFvD9)i^ZjnD0Os?7qw>%{B3yWQppK?_N@iYs2UReh*eHk{NungkA>N zpq@|KKqV29fPY%R5jI^Ry3X0(7xM9S>l0EO7kWa>vtPw=pmu-WTrscq(8&BWiF%_{ z1fd2L(fbAJh5W<6nCHWKy0X$t4=V@CA|ZVkBKl7jj0=L>#nP z>ylk8yJ$r+>zK`8*1*D|n42@uQtWe?GvAsV^#g0{@G%vTk3;DL<}D59y#tv~cvD=k{8D z$EDuk)ia=OL8$?0HWW0Fd2)UfE?VDq_N_aVj_`$+8@ogr#A_lj!uMi*i(-;97D*>k z^ovJVEz`4yDdBv=2u?f#j*!J^DJYoyM=0MdvXschJ9Uv6Meoy*Ydx5*oT5kVhLtLG zgf%%r7sq`&KV9^PP80?jbneYv=#BElK(*WRX2PMIVfBr)oRdBe2g#I+>&Pf6CDQ=G zzD|LVcs0-JYf0=)X~wA{rD0Gb9*(=ycK4Uhk1$DTW8jaM5BWU#oLmY#meM*>sEPn9Z7;(ri?0A#%oLtdlBTtom7qEiamUKQ2(xL*SKVlE5g&L2_ z2(P`vz}gSnLapVuT=#pkWcdAwR=toTXO{^VHiOIo`>g>}Lts`Oq-Oj{med%}ix~sG zIAj@GOeeDp6G_ePk8LgV+)h-lA{EI$TfQck0+kwbcP-JBJd?6J%;v|XYoiK`46e;k zlk&gD-~LdEki#k%ZdywflfgU`)}P%^#PwWjGbPMaJ&}-J`OP~s4THOL6XGabs3_k= zC@*JLH*x^+{eyGp_0K)2)>!5A=XSa+48%3%!!kNkc;V!aNfYuWojIY$@<0Upb8+IR zX|OT+7WWGivpj~_aagjo?9A{2>+;jLv%~Mr$>XIuLHC6?k7@|s7*Xb^FK;DoVGsGJ zT+iokk_D$-fGg_Jr6%ny#DuJ#WM~XAH1z!xGI#HPT@7~1kRW;QHGkslj|zIN>vVpN zx5&tfHWOGiNrhLz?ICUy*r!a;pjE|)$u%iHvKh#%+j7p?qmd)$^BJ?&+&HS&PY0`e zP7Rgs8HL0(JzgV`JQFa4(*sj*V3d1TJ_ch^pAIOvyF$lkk~FG^gi}(mPeEmp^jDd;q&m z8Q4O^Ca>^Nyz0=J89uQ!Vt5ze&B^o}OQfe5pEgzW^n7aA_chA7EF}kihrTLxmptS@ zSL3$v?)yIAoE_?hv4}FMiN@;V@Z!88ezguQJm3coE@){&*e+tU1{o+X8UQ1jh>{JN zNq8ZsX;7Xpc}Awws*A_Ac|e&tK>mDINs>^S5Van`h8mCV7AM^R!w5`lq*hq%7fW+X z?1%%mnpVohGUu>7_vdf<4ZRt+Pm5wmu|U^O07{4?Qh-e)K|W-aJDS^HW$F1ASO>jb z&ccQaBoUvYORs@9Pb?E@GGt0NS;a##-bUW#H)0#x_)^=TY=?^`uJ!<(uRrc#z4|rY z)>~KSFKZdMK(kH$DgJdul}Ub83S9yj)GJc6m-NWiWsV7`-9*2@axaZx@?3cNJ*?vO z%vJPL?{I!hBFA{ezM-cPCQ1q6tPESnOV5MA7K|NcM~1%upG%T4Xoh!Eh*WY%Gggp7 z$S$V&jbFVdlW7@)@%Kj)(nr$p2qt|~d}-1t=j-J7Wr|kstT0`Cwn<%dgREi#BJ#wW z0YuyQ&RI+J0wmUBe!wP|tFM4aTr?#;e}ja=LtacdLtp>;fkL9=hBTs6MiO+fF88T3 zEpLq`=Ff9KdixuWKa3_Cvu$R@gg35Vy`rx!XV#8z-v&i+VzI@UQ}Ai~yXDO7Q-3Nl z@>;L?X(*Sr?(_qpe;S0v5-ACpm&lUB#sia6iol#`;)z8n+#}D(@M_cq4%9Z8HFK}8 zL1gpARJFT^8?uHxChwWGV`)PbJW2u~>n&RPure2Bpe3d6c~6GFN>{FhwUM z-UG^*B(XuJPfbf%rU&P@WS=;1)mMkhb37|7E{gu~HgQ9iJcyplssv+hi3E}Jko$#! z&S&T|-fRSfl}>5l*m;}um(!t)tEMSmZeWZZfg1N@vE;iqNx6)&L=tGF6f z{L>El3c6^J27E}t`dom>o5u}hcFvsn8lG$D0l)4oDB6n8b>d^nBoTAXqHNA~X@zx> zT^RB-pEV}lQ`vQrx1R`4Kgx%gBi8x*zB9<3S_EeHWAdHGyZ&MY(m~=*jimUJR zo)FnM1%jWFMda zV*68?NdX+1IAinYO*~M1smwCq!vV1A+9*;}#=w=C1G(Y(*{4q2Vk0LM?3x}MlNwa6 zhrysAnzLXcgF6*}hl6lS>dDtst}R83RHwWIr$D|)@FZ19JTq4YG@~bEGKOd}RuJ46 z1SEXgM7k84ke41{d}_oKGO^(jfS_S-t3r+IY0NqB^kb~p_Ff=}+)6W1s z;V&~2A>1OsnFS)6muUT(DU>f2ckU7FZkn_wA--VRNIHbRo2-)v;x!ikrO`Po9)Obx zCRY5wT@o9;PXERDBT|l;aSqI!`<^x%zXPMzM!tbj5%6`#Hhk7>E0b-*h+pH@~IbsI0Ba z%nnevE)#(bMbL)QH8{2Zv72MTchgoR#9Rolb{Wsv`58dk8;iV#=cBgtYOW?vh?U1m4fFh+Aj8*}gx zw^ZX!yM|}Nu;Am}c8`U>BJh+gq&OdOtquv146Rk^U;+t1WF}jA_BoOF78Wea>A;GX zh5#!@t(6}LR;t~e(&Q16ra{Q?C~wksD>3}WTK7_`P?B8Ujyq=BQa@tOtNi**W3K#3 zyQQ*-ZQ4`K9s%~Yc*X;ZP4N*2tnPZGyJ`%=(sSC@2jkyaV0xTozC1ZuvJqA6KYp&6cr|#jSxq{nnWL6o! z5qk662;G*Pe;6I-$@&h5W)`JY%?6sudNX8$DoBM~Ir5wJLTQJNt!D6!x_c?;3^jqy znpl>B;9WVE15ch)tWbzy0!YV6hX#E0k&+K;-5k9x{X{3kYr{B)1>nv%gl{LWCMt@Iz=FuvyDTu}80aa~)5+_ICXfiNtK6lt3(d zlLOk$GY~Tqx+6C@Vz_(Fg!{#Hp(CLlgA-+Kk>k^YA+!SWLsr2EFIDQKP3cW2scd9% zH$W&&D#I2>e9xyG{jykC+ZDc_oh@aMx@GE>?!1N;hIhX)LZS)R8@l*1R=~|I3c6Ed za1>VaF`uC6!1tbDos1XYEZ5W~=a!cmiQKwp!Hr)7FZjnyoB~nl zn)Iso;%cw85|Zr+==xvuHtJ^vutZVeJ+lrhr>={V=3)Yf?dT|k?_`29!O=fFtRjv} zf@|2C;wSn^yecNsWf9}M5F+<12&fL24UU4bO{}q``nCptKbW9kl-w5Eb{tUSH|_JI3*cg8B~Z0=8uO3AFyE zqyBgB^a%o%S_T>o3d|NqPX52a)+_~z3h z;A+j+H-+0ub#JZH_seI8jh^cJ%cam!-lg(It`0bV`-gt~&v++EBez6?$J6;ZyiPpV z(5u=nb#Y!;WI88>IpF|AU;T}XJxo+5;<(Dv(&r=Wt+uf3*0p=P>oM03yxs9^O5PQx z=~cgkrT?;<|0zBkdyfl{nJfsu(Xe`2Noa@TX5oK=^nVa@&Wzk*R0b^2qQC=@37&{40?6s43v91`21-e=1Bu zg;yw#Y_4Vex2PwUusP$7--{ev{!<|<4!pu-)Gw8=zvYtCNc|45vg9%I{htc80jN&s zamQ<&kGLwU|2CY+U-`Lz+HtYlCM;~Dq$uk-Isq#xsa=ziw);+EYd*;c_rD^{CPLIV zkE^Vz!lLxOgV+wzCF|jeKHiLnes5S}*Ms!oXKQci)%-19Kb$>whkecJ2E|pwjP{Ksh6NLP=AX z@Ox4J0nG&UZ&ibwj{c8!J9mb^{dJ4#@GI(X_zDL3g*k=3`#}A78U7v7@VADP2zH%+ zcR)P!_XuFyvj4?t!Zq7G4*cyQP1pB-K(>bsA4Kwi(cpiE_Er%7*4rDo>HeSIkW0c9 zDN=O}@itrIGOp)D z`_U#Sf*`p0!?%7_c>bRO|89!OSEla8f28Jtgy{0!(t-oNnda?AAE9AnVFP^l;7OP+ z|A=uFK1G~_JZnFF8iHnv*%c94{39amVYuWBhJ_{$ND=<}pBERrca3;gEiElBNe=%< ziO@eKUPKEW56WS~1HJ!%-X1WqeYzyI)cLMEz+op*D+G?K2H9SoIc*v;w{?F={zqPX zOQ}!pKX-$D@3tu62`6@_@Ibxyf^h_!@$w!f??Mh{VP@YyW%2A=GoX2q$lE?-XHoM@#r;Rv#V{ zWvOg3*7m-bZEZub7|S4rH=(9_-oO*ISXN#u=k{>(t+(2!x2268{hx`tcLOgBurf{c zdoOA4-ei8hE*`xCYWCyZH_x>2xq-j?`VNh1VoP5r>B+P2rHJx%|EIZ+yCnLjot%i| z;=k>Gj=NNn3*zq4Ux?l-{5^!9O|*2a3S(Pbu?_!k0|nPkV?LBzreLC1#z0o*rT2|} zmVoasH~uaKuBYLy#J-Z#CLCg9ylY-R9d=VK8r;A2DXD+U`>Q%mL=jYk(9T0~3v6YN z*6$50%(B{T?;93B?WHOIi*OD^p7utom3gjBuyQIF-LliPqS0Krj?vykuF*`f%8FJl z-9K17=SQ}UJBH{R|2vJ7o*^I6v~!=wJO3+e$Zvh##9kx$Pvhi~e(Q574jq}lP)_7e z5emn0%poqzKkB5Ko9Z3l|FxoLNU^U^d$D?RLn%n21rLfjy>HJ~CukeH|7YA8;Wn=Y z89Upj7IkKRJ`{dyV$RWL`211UtZ|w1Id1+IviA6JwK2?6h0(a;@>WRxYWe7p79kd%SFSUUTahuF^uI?mM;P#1#R18K97%`>pRbC zeBLU&coKhmf8yI&Y^Vvx)G7Qc_DOo9{WZ6(sEG4-Z8;-q$|ChZ=Y6nQ#37+Y-zRTj zHj42SAsU}?1Ad_|Rq5F)_TS$fZ#El2q!QZZ&c2C-fjvKT5ZF(({5P9AYZm~+g3!|!ryFr{L(*EinHQ{E9<5~GE{8QNIv3vtp z+41{z{UkQ9Aqf{FCXp0AdjlddAFtF)?a*Y?9>v}Id4sp{8ZK7)?whxL^&Q%@p7*(j zp}Bz}1o|u@sa&3N{P*3{y^7;2FR2O&sP99ARz%z1YPSMb z!$;g8YZaIGQ>I9m#7FSBXk&wqa;&n7+p@5Fjs90~bHr|lSo>*_!y-j;a4)YIYil-z z6G5YTbmt$1uO9`+s1}X2JGt~bxTQ8q)X+qW-JRk#9gLl*GJN%ladaAQtR^LzT!>d~ z2cGAIIl|Vc=h9I}fk7e6e+1W%_`l3$8?3HRH;h)C=k=|J&QHxkL(@vrzyZ{uu`Bgj z+CsuyJ8_m#(Z@`q7(Z>YI_U2@TOSOGmnqq98J8cXzAs+iY+oF6Q9#Hro&BI(5G3$q`budOmv^71fDjw|JG5=V-OsYS7Gb`SOwJ zkBosaCcxx?y|b6wMhaoi$Up~~Psi4HL}}@PmIf^f%jKu!_i1r^QJSlacjFR|c=Qw^ zuk_A$BDgj&h}UkgghFo%I>4(dRjc~Iyc#z#kA?gVLzxGbJBLF`b9d#o6WD2)j89_b zhbLjH8!hBqxTCb2JsgHa^ps)(3jD^B*JI{uOv5q9iK;S?GTM>(KPpo{%#UqKKWtZ( z75#CW(7=sa_-grs(alaW7VGhrXCNjos!dh9OJCB4^^e_j`w;l&NVKCgmK?Wgok1Z5 zd)4>xexlR&vAXw#5YSy`cNqbeilu2W{Ii?za!lyt%TB2m^my<7psY%|eTc^x2CZH+ zPwzXCD{N7{QWrISghNMOxfjdlG?3GFq57!p{E2Ir@BN{niv2MrxgfXC+*|whQy89d zP_m(q02u^^gTP{&Mit9?J;FdwWm8eF342j)F`AaxNnX9XC6jT&Vj54#6)rz&A^J15 z8t%0WygI%6IX)m*eRtfjWS3i78n(RcoEt9@`0VMaFWm3x+3brzYFQuaag{Hj*$^3BOkx{7D+w^ zJ;r})P;b_jgzKzSd>GqF5#Q`cR?~;GaaLtOq1q#8eO>G@@d+gulYN!St7*M=&&7Xf zuu;ZaXxRA2R-@gcrtoey>18uDnef5-(H;Ei9`++X$4<`MuK}WuA`hLt59vpgbEGW> zUp~yLX@P8n7;M-&HB%h6gE(zd`#aI@74#nK4|{iMc(E9kwd{t*m?tG<97d9_{&?j% zOV|@-z#`G;F7K`7mV=HDE@r5Vq(tX(dA{#AyHdyO9=zF~p z8nF$%qyKgESy{(G$1$Svd-J!fut9qj9i?OVt)T?YVmI3f2{B?1P33x8dj`zsBD`zJp0hFW!|Li+p5;%mhBbSwfCC4@Wj38qxPhO zHIo<-T%2u%P}v0f#33efp}Kqccq?*u55sfm1qD~nxcJ#;K?x00tfN`epUNs*m>1z5 z9Pau3&A4yYmn@Oi#XEgxDR#mk(Z-_$TgQF+A(Wq@P~(BlSE9sjb6r3c;o(v%FiHH1 z{jvy}$$4YRI623PN)ki6!(IEpfN=OjoF&Ad?e2W0=yUC%L7kn82wQ?r=lQC1J9Y@72W9--NM+?rmzy-SkvF~h4R8FVo@O<~VIxAxsHY1>gc_Uf!J=*u!2b-%b? zXNK~n7l|}!yxffV?HTyniTlN>D0#m`fR2s(Tz=*{0mEBTH%OWV&dryvR!)fE&AD;OIhD_8bMh=vQoHcW{p8$L>^DP*ve6Kx*$g@d)uLV4K5fx8tFU~(4 zyhUB-h0N(#;Pa4luHq^2Q-A+i{U}%8Q-DxlU z0M2NL)KF39{dfCGHc5g>DtWsH&E3)-ke+SFSz^`86=h}7ixTBNYzM&4{lX(stq3G6 zVNM}stn*LQd!rH_B%R$j zuIcABXL-w39g&jI#a1r|j9Qi7C-1m_@0AR~)01@3cbz}-*hh$y2mp_b)Z1|&4FydlXD#$@! z985MIB#mG1lc+3>q=`4eB*~o=)-t2!s z^&&ZJ;UUKU@qPZQ=!hnX2S@A1pJ1jqhg8m|1I^FFBR+t+g&^0@ibHnxS6#ZsQz&B_+alr!hpa!_0}TOxJ=j6c^rB7g*MUkf{Ef> zqD^GdRZxkviGhK)^_cLFk<}{>^M;P)#JAZ zO96I#1z>Ddx#7)skk#tBFlDcYxbyUhxJPIG3I4On3EiZlhxE^D7%`m}ZUnDrTXO?v zL&`PlQn-A_2mUC=tPr@rseBkmSD?JlVhhz~>XyPEWSiUgh>Wus$cUAA7Ed`JYwz1y zy_x-U7gvRJs_u7WQjwQw^$P;uvzvFJhgF@Tqeh-Lw^Dc8MluP^9e!5p_MFplVFg18C z5QcY;gzNRAkI+H~G6|+BHYFs*S^yV1VK}h#6;HLR5@-B;MwOlN?iCX_jQeT8=fph-Q$ z2x}Cms)Q3E@f_){eeZe+pq>YETulu-Vfb?=kgAvw7$j@$oUV1!O`IExH>Bia()Ui= z>(h@|Eb&KjH{PSaS97PbfOmj<*}O-zxlD%IVu@=muu%!7OkCnt)j4DFDqH1m|u@{3c36J`zsJ@cU9Y&96ZFt z(xdF7ifWUT!~s7HA)wv~u1i^4f>~sIxctZYkEu%vDe`=}5ZHbd5}+OR2l{g>!M!OBIv>)%97G<6v*Rvg1fP$Nd%Z>h$Py~Bp^k(EFu>MAeiFDS!+D^@!+`cFXC4&cX*l;-Db#r zOzLjK&5p%1#6h>wB)JS;mt1GdnZ21M=~3>N_P062@tlj0J`&0#HkYf;)wt#2mUTL!8my@G2TqZeuv zF?C93pO`oTZInfCOt0_0iDj=w+lhs9$7g;J*E^~tvoASS)o0$%+GV>pzw_s@L8u=4 z40%z>z5X>}3Th?;W9!msyXx`e0BXHx*ru;}a++nol2G#N=-i^$98NBU9c_h*QB(tp zeq;k7fWCMPAe(=P1k2H&|+_{S_NYVK8gHjmx+)iiPdGhIF!?o{?@#2pJd$Cj; zt4*UVddWp@raHsxAr~>UGWJ&MHkixy4cich$64NKZ|5VYZOiZ{5TtVYO#fnZA%h=c z>|~*;{iXWXajUE4q?6XZi2!`2pCcjzpJm)qA=b9h3mrF^sGxG*jM9fQ;!IMFRhDOf zu6UO5bPQkD0TJ;w#aYf|R5~DA{d8XyX#2D1fy74Ra(EjXvB^HgLQxtOeXgL~?ZIB} zxI@NgD4`n|lqow!P0)xBV|WSx?TV4i-<<`Z#lu_Gr1 zQ>o@IH~e6*rQqjL(3)X z)O9aAW^(zF@E%XHPeTr`Nb!s0Z2Pat)>jc;WeGT)#Bss7c*N{1aw)C$Yd^lTj>nul zLXy6X>e$lv;e%fFu8w08x83`XN+ENK?CQBq?1lxQqgbfJDbW^bNw5bKkCiLkTi6(S2% zmbcZe-RL7V4|-Ya(JjUfhOQ{2wOZPp!IqS1h38LBMS#6(6x zvW8ACGa3_q#|Dl>NqY-O`w9^2%8Xqo7hT&OwQ8&FjN0x`N*>2}^(Cq}^e%#ty{D0L zWz6MjskdA^9bJ=TjsZh!2KR4kZ{5oVgl*N4Zcd^LoGC!QNa5uPd+&j+>Sn3GAxw>I zef|V;kdJB$@4dezvEluJRs=SfkYJYscgKIidLJM~Fsz}=n#_?vvGqwM&22?_JDPh_ zYTtW|W#6AA2vt+uRgdayQk+qZge2OAcGI{BeORze=**#yYFIYS2OeQCUnrRWdK)D= z+LuXByYVUA?rS-tv}Y$d6d_@3=R z!zGAd+|K50)bK;s^%KuY4e7&q6I&uan%yF^SHC$e$T#yiUGXdd=Sw5h!R zajrUfrNwt`opQNly&|9SgOG9x{|?O%XUET1UzeE1{x6<}81cTk!@@#zZyMDy z{Sd4`Efy=U&vN0zmH1KO!`IJIUS|B;2n!f4D&Kq0jLN= z8zyy)6OtNt+web2#LHk(;*T_HM*oT+B|vHZ07Iq7P+K$a<+D+1-_ADV6RT!CyLUes znDF?h?0oWN_w}G1(<|vzXyK$!%C^SW@1N<2J1l;OZHs?%dUWbuqo{QV2*!L;K4CL) zYdN1VK|+ba`Zubsk(3Xop%Uod@`TIlwb#VpY+GYkkgFUTAupml4x%k>q8)26PZ}D7 zy;8=XP*^6YOLQs|G_muG74fFpUj8|r~4U5#{v1~;0CMASMn|8MaQefz__I!QQtcF5XqyGcon^FE`_{o$}C zG=5Wh`0+_5$VpESZ~Br(H3r7Qey5~yQ~SL|!SS8Cz*BVf`a>1$ks)5j9h3R6zei5u zN3=CrT_!OqpA>l&w1kT?g#Ty#3~#qKBD_QngjoIHe>lt&sV+!?r(t#r=(ofDKfIg# zZ>ELrNp0Cb6wjXbZ$hI()H&jhApZLgcnjgd`zNMa|Lg^r`1P9}_4Ym>_=k99{k`)e z`N?2q&tKI^=Un|JsDItguyG;&x7h#3M#B%Kz9@M+gY++-(ZmD6dNaiQzx$yN584ur zeCDT_U_xGa@PKnWW?av(D9E0@Ak%hfFEZeVM=^U(d>?-muNJH1_gr;8-Yd+)Ne?O^ zbNQ28sZjH8w8UmUmLXsSCs9E=Es~7@|Nq(9FfsDG z*Jk7`+_VRSksOQC6dN|^ugP9~a`JtL5 zdpKpT=j0X;1cy_hw2`=5o=)$0Mo%xi0pa#LCDWlk-EibVV*q|Y+-$tL28iSqOFW6& zYDy7s9F5ucA1G(aqQD)^Yo%Zw&y9R^>pC_cRA%J2zrK7h7y0A^I!SI>uDX%)@ciA; z2)VYMl=6(@*yFhlS`iSz&$J*iE5O*UVMOXVVxW0EThu{AZdvcx3QMfXwpJ7L`#~gY zUl`zjHojf!2ZEY=PIXo9-Xe$7_yUZTe9Be=d81J8M*(qjhU;8|0ep|GeuPWLPx+ni za=O`BmtP_tN79{vxJbZ{;XtagADGgeP^GNODLWapBLa&&3@6~3x(L|J)CGk5fbg=> z8O;6t2)>1fz^ejS_>AjHqH(E0vOs+s=9=IoxsS*bddO8;aGa#$*>qFnJyhWrN5kmM zbwzw_7KOg=zbH{$ZP$`RFJMb&2N3bEkLD&!v}j7tF0J@S`%wfh-y*M$YU?9{knAg) z7oGO$ONBK#r@BE&2wOzVt%y+LKiyw|cYp6re|VfA2y7H}GUOsj+M5wjL?M`MuA$7X z78|q~nLRq^LUUGyP<8DlYNyP}|)7b1lpDRqz9Eru= zteo`}TfYWj3Y-ZZGD~n26C2~Tx9fem;$!1^5U<#Rt7SQ`jnW2iLG+@i1M%O!c)F`f z(>y~3%blH%`6vgf-tt|$bhW%>d4TEJgd#_!Ng^@_X=I>nJ!8*kbKid2q<1sP?^9h? zFlaA%)5YRfG#`-RtSK;Snuea_n)w^IiS1nEJn^q4`DPCm!1+m|t}?-mq2w??dhnw3 zJkN@Rb{fuR-h6!A1h@)1#fep#b!W@*DJd!BwT*+)jBDh2E}e~;C;eE4$L=>*Cr0!e zq-2)uxe;W2^xm0#$w5XGvi=Sk>}#A35<3t*56<--$7iMSRuvkT@&`+ewIH^@{Qrq9 z@bTm8>N68RH+}u>ag}<}?_iXB%;eC@h?%gDtc#Tu6BkwB{_ZIJUbjh)qItj?3Pnxf1W4Z)IAV(0`6 zi3gpAWT-FWLR6lG>tbst6aZ+xWIsX&pnrh{78DVQujIyzS2jiDu<&9nCiJYYUOE(XkUd0^qj6?vC z2e2!}QS%mxrYl3G8_@vljWn+nXAMXjc?Hne(a+D_wu{?HaJrV4(%YCY%<66F!tZ{M za;#UGX6D5s%HhD6QwWRJlgC7!t6rh$u<;D1x;d5T8WG}?`1&kDaJz~MgdM^b*K<*q z3hUUVbX_x+_US`2uT_F0hIeW#!uZY%yOwzE@utZKhqGQ9TY717ha=M9hg?+9V69b9 zEJ6QBL=@n{SU*kH^?+R08HplOI5nZrQb~|{I84+lFy9frqqJ~J-6NO&)cpc9QN`dN$C9n6cal0s@ zU3INvuu(d()|MTB%?b!`n2<`6dbEj}**k%KV0?lO4*$)$&FRd25`$#59I4M^P({F?H6YXUO9xxCdN^nOey~$8`&6?(Za#u z05q7#v@3tkIAx#SdqyRmQy^v(F4=m~QK$Xh2M3Yb&)Q2URsmWw-1vx29n{h3l?m|msTP&&`NO29R_VJc z?n!{d47a;e7<7qI&ZnXUM=(c4I{hGBx!^oBLPU~$Wv4-F=Ha@2jGEmmufu`N8fDUT zJCwxQCYi65v&_+VQskw$1co(J`_0)yt#K$!{v005P`s@_yW~ieDF;gkA>~N6eMA#@ zfnJ^R9OETr;|576|7Yw0ZOqW2Oq~2p&6Fn5?~>t{=H-+L6+T_m6u#{bc%3uWLfXkF zIwpLNa8w`#bgxiROVL&+7BonnNLT(~uK6Bbv7W?|)mZWlu%1k!7rlrCfQ~R;v3fb4 zV~8r?MBQye|Md}<_}V&Em#aqinvKVXmQ}&0su}oE-yj{k!jX2pQ=WHgczHjuLlXZ5 zg*Dxwi>%Lj!{H!}|EBu5k`lLX+E??=SK7-CrI^P^O001uqB^1t+1PH@Fspbjzq7H% z53KZzGi#`X){@;jc5Dw{hl{bt^7Hzf%rN#XFv2$jAO`Xyml5gZy04cFle`y7YEONV zGDhZ`5uYSfb>NB;I;yE&p%kY3y*j@mTZN{cOUsg6A%LAL z3%^a^wwZ22GK7z_+Q=}P>|nb1VqU_sd`tw3aBX*OTQs88;ktF1F-`%8+DYFe4ciGf z4||4*Nrt==6nBYD?kdN0Ey~uFf1dRjW)H}2$Z^V|6gqEpHPs4onbTom9I`R?OUto3 zs=iBqkI_Q+z=53+T>r?N|GLC69(PAgRmE~I$4$}!sb{NMUGGzRYolKhyWrqSw)hF%Um*IMlvz=Et<2G?M__3nm zj>iE?cM;hNt%7z}R^8_1(c$SUt8XHkmh*~m^l1(_UKT?>)J(HUHcng3m_5IuTf#r7 zLnyj?I=a!$q-r#QWr;aJ zwm1o3->9?3bu>znQaWZiJ8sF(cN0&-sYyLcMDu?{KlOS8HIo6brBWW>8;b zJ5XDKZ8b@6O2QSFWqEmL!>XWUb72_{apXx2?hYd1n z{>CBt##G zqGBmCG3aUal}?pn*)`#S$9aSebwg<%#mq9{#7r1MG>}%k`f;I+JJJto&Ww*mKB!#% zY>H8*h}%H??JH76f#;21FgVmN+gEO`3;jhYKORIWWw1iaG6pHc7tsfwG|41&F*CL_ z%5TsdI|@*}>3H2SEObAHbpnC$-Y5U9X}1k3*Xy$;$8C?(w`%G0cf5GdKEKQeuM6;n z4*c2sfpAiAYa%Qv6S#F=7FhJn6pzm2l(jy;liuEsFG^oJYXE-Tq>3|x-%cB;7a!Ko zf=_4eOvG3fEaiDlzT0+2bU7D*SkrrGzWwdFrc_eM^DN$$c)PO}8m6A5LI-|@baLTM z6%Bg5Yt1BCZWE&dAIiC%qIb?FgGF#7&LC>qJ^YiQNB1RDSC(V@=BFD!TE~NRfAd zaO&o?P0)BzkcF3&y9RUl%wqMJrva&2^kQO>IyuDLta|WZbopaO@h{sgyTAM12lCE>=mm)HZr)3$u zgY_pfxpa?fB?ch6u0}8BKU4Ck27Pwvry^(ej1c4gj8I8HoS}@9!y4m#@%!gT1LWEf z9Ibo@aucofkXh&MU&2FQBWz@dBljh*cK5r;kqfF;LnLvwo^tIpk~VD=;^8ut=&FU1 z;2@SL$+eClvq%_zskTQQL#dZItveP!H}zpE+AYpELXqXL(j;d`E>Gijv|zHXq$R=e zBXKjWK#tk<-_O;fXhfTyc>(#$KqdqD4lz=1>zDUjy8cKJlEh!tfA96fFy53%7~-D& zYRkktFMfXQZqxQ-ivtedL{R+RbV=lK@bUf2Y>zaK6`Z=&zUg#}2qXSHus-c>%Y%``vZ9i zSTarg54MFz39zj|-Z8m9lk+b)wJHGYYAu?U4A*VMYqb@QMEsw-e8GxH>UsJW+$Ss2 ztSCW@lc|tA;}`mF=-;6n>LQuD*$hpUWMFuopP#c@jOMYAJovvOUP(DQNB@Q0cs>KB zAAGfINW1~(z6d1e_<%*J-n9Sq)WpHVcbdxfUp8)fVaR(#H-F~DLnnPjb_wN z@(rI)wLMI2rurX1-~{lVr`^x(zT0#N7pFbtFjlc_3uI})C;KWRQnM7L#m+gVZV>e1 zWjnLOz)!%=YvzJkVyOWXh1InG8-jobc~3lEQ>euK`b6ZnLvkWupP_HpbNh_xq22ia zi#j|UBF}5|MD{w9QQk(u62|A}@!{Pztx;S1%;QomRDbr|SQc5!5~Hb&bfxh8pBy7M zUbuwR`$eZ7KgMSz%PZ+*z~LleH~gIE$9{FR>tk~`UTna@q`-ePTm*0;qZJ*;_p?Vx z<9Y^h51Kdcnsr8?7u4j~iNM(ThWX#ldc=3mdb%Sov^@x_Z7R2cQu;u2&1&@A99nV6 zwVgEP)~_%8cDp(5Sv-g6dT{!H0}XEqOXQaQUqMtq2i}$L`FY-$xwf)07729sC!nU1 z`owaWd;%JV*J5KTW3m2B&v02be_i$=prtnEJ=SsEwI${Bur5>du9Hu|N8Bd%I#<4U zU4PJvuIrxvdU?l-rOJ7;NCX*;f0$||&LZyXfrS0C4@l3!D|l0Xy+A55Zdr;hFUao` zF3+Idcsl>Vkx#Gp4_5;maNRL>^_yp4m0RXduRB=kc7xP#|^^*PgmNk7C z0u%Hoey_7aP*dMs?#WTPPgS9h>Qq+c_5CB!(G=hOGL=asegkf#j3K`-zv`uB^-@#^ zVCSiP3d0?aToPRU_Av}l>8T`0Tn#7q7X<+mP0UWzGu-2NBI{YL%v~fqTk*kg3&R|0o2;1swoC(vylUwXIi`$GHLr>ry zw;h-l+5l`!!9|eN1t~dyQMH;H7|@yS*nbj-L?w9Ep};T$?*o=xRDfXy?ZU4hnTlD@ z3!mdKoBhR(wS4M*ruGc`FjE&(XqooX@OOV!mc_=y!Tq{mezhvUIuxwVonT_Es^BlN z9DzH^CnWCA*OVX-=&Z><9uY6bkMl)vG<;8VwP_-lE19Ge7J2jOUDkhyk9LOtf5b;m zz#W$}#OYh#dN|GTHt4~@N}mGuGV{<%I*`hqu*6xnjeLy;?C8;kpF#dDAjt)$jr)O- z(LS#-gG(eG=Zf+rFuDw#Ga`@JBEva_AGj^NjuO-}5wLM4uJn`S!1JNvmWUWh*u3WG zi?D!pv-w_x97~JFGD{qLKd6vj@5;Cc_!~oc7KB{3(3(whBwzpV&J;~AaEns8=EmFs zR^yWvEKsw`LwjK!3Fju`6drWmSm<47Y9x&^KLU(p<5#`bwOgZ_$HqIePB5!Ez&`HV zF2&yi0M27@$F67<$VNIeuV0(yVW!DSuzMK(E2gou23*DXgai;C;Rz4M5W~ctuLlpR z)HeGV%C&`^L&wQ1Jh#pF<^VWNlopk~P15SDC79MTdp=spV0<~XB7jHf^;#l>ih?*N zH*n@nZdKi0NA@dIk-e~O3GAEqr z{Z%}xBgoH!HfMR9NxYR%bMCvs$%EAUY`s1UajbTWlH(@FihL^o*dd#bn^riOH-8`a zVE>&AoGlot4Uj|s%MS*{fEM#kYv&S-`_~3Utx0 zO@Xcu7m6kf{+0yMj~^r!-w9!h@jnbmMW!gJ{wad1vFMH3IrmfK@f%hQN@P(k>Yt+C zLO;mbnURpa(OW!c8&}k3*WNe?gzC6 zmRanYv7ub{Ju{OEp&Or4iu-i7JVQ79uH4d(x~3%Sn8XT56Wu%~eG!nz5WGXFziIF& zkz#&sjEXjWcrQ|d9dLXT)F0luu%Gk*okCggfjw`hYd z6bg_K+KTu$$7vS)%Idwi0;3Z{Ia`j8)qlw?YZD&Z17(MYBcq2YU~zrtEu0I;1yN%` zctGs%T1{NIMzWh(qlAhv?O5NlT0AXKqttk5{d$?ZQA#E|Ib;Ha0q{q<^*Yrq#3?Og z7RZv<=45s2qWod~QEEPi_wal;Eml;0%j)BY&t8vJia!A(xdRA3-UFrBv%?5xr^s|4 zL}H!*7~pW@idA7HAR&dRpdR*t!kuo?hwBc#wB2Jia&-sB=qzLmfmpqKaNR2Lm66-j zFAConw2D$O`)a5TU5zh_K;XC6fd&=zTLp@X0ho|4X{s$JxsxQLrGkhr@vy32$;LgW ze-@V5RZrm%`r0dC5Q8RiVyt2+++8{idtbTQxDU4?W0jsOE!k?`uAvh-Xtpu(0^Zh)U4CP{1xxy#hV4Hm&JH&B%BdJPdTAQoFY zhFMhC?rcBXms3R9hYwfi+ZZxgy1SJqqkzJ*781|XxnV!`c{*9lska(d&eO8bS}FJ~ z`;xgWnxh$c%(X08QXOZFdz2dumfFl72L@-ddX{L-*J|YGyO00UW1^X4DbHed{GaLa5@V$9=3@ZSw%H!L~dSJ*)AyUxwn)1rMu!vwO+d2 ztO9*dm-hwQ>4D$;taMS7aBVd!J`DP;nboc2s)IJM6@kU;;SS}N$F~LN4x=t}N5=>( zWE4d7_XtRC$q2$VCv8=`C^+0NWO1b^5_MD_EwIKC3US$gzs#?g%#o-2#P$V;g(t!B zF>HTj88ZZH#eSt%?xMfDQUPE+Le^ZGsQY#8!D6S^7dt!5)r*+41KJVK1DW@#)-vNq zr>#ehi|(Kp*pqjZbf1iaWMS(GM<~Sw4va@O$L8%?iOCR!tbGtlAa+t)=|1Lc+yvTC zc;=(>T?H2Oq{K#>0`@iLFwBE4*)y|R+vFBa*<7lF33&sP4PT+s4ZYI*tDL$b6|>rD zBg@KT2ey<^pUF6t__MwfRvX=|Ns`%yqxRXM$WeXsW*ii2cWw9H6n0I$?~ipOoF+Ra zc7(R-HuXFjfI4p3G-_=l)APDI>dFBX-jRh65Ys}1SWdHcALU~e#f}+*a7*{4)>dh( z>0B&INf{dxerY>?^#y}LX`zNmg`8vRi~f}4yv}w7r-4*4vrRK5$#52{1Z)y{qpRTa z}gH@wt;htw(%u@>vAEGG;un!qc8u4qEOCJnWa3nj&*e!n4U= zxd^vv&0M}*m8m*cHP23dwu*`Cvk#cpiF1Fb}8zzK9w<$HT+`JG&J*91k#_`m=^nSy%~NUDO4BIANZY> zq@-_Xz?h))oHN8v6Ff#^hGkR{UueV5%KF*_LMI6sbGmti znJ}{)64a>Y^l0Pk+^DU8yQp4WGI|8kz|}F(C6O?HFR|fqJ&~%E*iqMJ{-ACo`$J^? z9n+2`U;p|R>JHns5v0w6TAE`D#jdgX44FW!A%1_ID>wq*6-A9}L?s1%WV(d5?V&vO z-sk-11GJIG^L5S8BDo8k;@Qxeoa#sQ>c7~=bL)JT2<8y~NWb{KJ3fcm_@6>K=FOGw z>I!l4n2W2=k7Y3kk5}SZH_dNsyfFCnMcU)S$pIdgETt*Sed|&VL4^^u!lV(dg=fn>K*UdO0Q^Cb_amE>(@mm|34(*%TuJ^p(LPs{U@m|)uoUvIf zQ9rZr!GcRAIzA2(`e2$qzWC^8iA~<^5)CEa=R;%t0@tOLD*CTE5_KO%5K|-JJyZXk zJ3{Qp;>4z?HHpZJ8(_DhP9Vq0Rid*ciO;~N6EpeNy^1$QmmQmQ_Qx#Wy5Wct~RKP-0KI(MUql158TQggIgin;BnF+97z%%l;9 zSEAeht4(}|GfpF_|LaDKUr;N*jdhA~6XyZZSTb*=t4?GQ@{8&{hVx&Unlcd|{+d1- zR`L7eUQJZU>7k^uF*P7rko&Q1mgJ*&n+Dfu;d1$JgZi9U#%6keW4ER$6`(n11rbGM zl2jpdi;}1E4T$Hm(wrmgcH**F&Cg;fne}}BrFnAS%=H(tiK4L-s%G1_B zsX$OC-HD?tNNW%_siFAxq!ZT)w>*U}P%vp`P*ef|Jfp=7KSNS`O!D8?mB zvd;UUARU8}DId zQ0s{Gq1{}iuFYt&Xd%T%Ny}VPmQ>Z9M$2G}X&X*EABt25gA#=2xW2|C&$yx1D~Vc# zxvr>UJbP=W3&9ei?)XIHz#uu0-!V?Feb>)geS#cw@r8ps;uBit_=K%X({JC71fz~A(F8H=j;4~xNJ_5}WV-IeCO-3LM^?=sF1Lhj9rDj+m-_Z%*V_7e;6jq^y#{Jz)CCWV?D+KKf9=NVS(m<{o zCH!{(&spLN17elamz=pD_{a`P@5SEGPkAVLPR6lOzXI|PpYhj0z-kfDO8@&AZji|& z5XQa|Jz@T1o&WF8kta6)y!WRi_=W;6%)tV6LY5vo! zB)6Pe;KeB&(8wpO3Y=8;Jr4Y?Ab3^g4vvJ=aTW!!)+hA?;)EG1sytpG3Y@5m5JqJS z)EFRC2iX_8jpXL2WIXyi`fn^KWa$@n;}R<(H=sa=T{x|R6WoPN^wvA;ge0_>ai;_7 zQnv>%KRvP@AR99|(Rp5U$`iN{wIFqDW822-LQ4m4Oxr%l9TbDnir(SCWzpSixVhS? z1xMF56Qedz&Y}ijI}Rfh>zfjScH1E$p9;EqN!;42 zWteTZzi=eD&--hBf6VpHx|e8W=K2`Q&(J^}fA+*_?Dl_X1BHpl{ zbgo;YS=nxYRhN%4Sld6ous*m;`p&xfao`T4^PKRC{EMH}j0M?|6NXqT4JZ67PhR|Z zIYJAUoKXE;_WE8Cv#aRsCs2Y%0 z##n28;%^+>xa-SObk$5K3RB#^Ighl$T^|dy|rT2q`@Nd@6HM_zq zp65fq@@Jr>_B$>Twy`%Cf-4|M@1@YV{(yLK3PdnUqd84jEY2>p|BT~4d>r^00>!q8 zj-$5m?Q6%X*mvJ489g?)Z8C((CAR*b^Q^c{490$AnBwE z&_VjHKuB4h@CxK4Y15@T4%H_6)bH2?tN?DCjGj4-Y|QVO(_h@5Dle`tI~fyUCduTF z+DLb%4%d3?kIT!S!o>B2OpVWcuo8IJ(o@dke$E(0$02Y96IHHdikw`=&XA7jH9ArM zth+kC?(J7R8r5}Qtw}VQlW=+StzpUQGVS>C$T>l)go-7VrJ>6BW-V*X_;5?7huAT~ z-Xu{~0H!<4>{+UK;r+Z?Ee4%PYkr{|R3^EYoL(lW+}6%jGz zz=i8s7l3s*UnXSL8i2F5Cuidp4l|CodUz4_`U0ftY+r-o2PP-fO}hN2jdhofH-#$*UlU#_)r=P z9tq5>)&`<~<8F6OBx_ggGQFX@!h#wMGS{;&z#9|TCx@{kjmtRi)`8UR@kfilu?^q$ zXf6Z#QNncOJHVWrP1fPI{}{^HgDHpigof$!A%&(!kLV%$fk+hyX_fT7*Y%|OMJpGl zVqTlHL;v#p3C&S45UMN|dCkr2zApZgsRhIM{VdtoFi$7wSty@5*I9(JIj*E=m(8i* zby|&BAO8w~7)Cl}MEl}bEZIzs&Zjk%wi%=``)jwB(T?mob>V?bhqe+mAG9mE&*auufWA-O+&LuQS4sLUf8sl$7G(%zMtS_ zN)f+3ht#m1VhLXPW~spk-eR#FvDV2b=P{kI!SZB~26tr4(g@AIe#~8_cGHR%ZaCjU zHDT99rO{BQ264Tv1Ggu$c%060!mP3f%k;(c8zKHdat9UAX%wvWu0m}McV^piJ==>q zZku4tKT?Tx$Kyz5T^SKm3U@8#^$(xa_GFoN7wI)%)4W@%X?Pr8d?ZH&C#o`z1^bqr z-wZ}KsC;ke38Ud+Oge%+ftCKcuVBeF;?vvGO%lkCiPurk^MH?Wr8(Y zFmeO-$VQ#him|LTPj9Iaq%-DX?e_^>SZ=>091&a$5wSa>PM_V6s#K}av669tapP2* z^tVbYzuB|T&O2XK*%uz4c@uS!z*RnCm$BAYd%#vS7f4qiP9++ z7}hdV8>Xy~UvAsQ6tv++o_~J)HMSzf{%YKSwj}>|VwPZ z!ql3)>ORj3wHX0<$0pbet@6c4R6WN;7es?`Q3RL>{6wV9KD_UGC^3RIiP@p}XMnjB z16}4w{$7jMSAsiYLzU;SLo0YD6`)mG-qZQ%#DLtRn%-}>!SVtqmV_yQQ+9w_HkQH$ z!rRxh0(<^bo9pZ2x`(bn+T;ra13xLM)Pa}1=T zHcr-x3WGK;O2qFg%;VwB_V#ek65(0Fjv$S3cp=9w$InCrG0Ot+@SJJMErXL7Nk>P{ zJTIs_N{p6{I4Oz8PztFXC1mCE8ZlDRj;kkG&WpF*M{opIFd6VO4UdmIQk;-6si7?TI z$z;BlY|cB3Pm)Zo_E952&AOnQ?&GF&V}A*YGIK z2uXwRJgoU7)@ah-_(OerR7fTDLn{RW60P3X(a-N*d!s#?Ah{wiSz@WR%>J^1O>z`Q zJ{FuB{W%Xq{*Mt5Mikv*RUHbJQeh;#xHOa+wBjK0;qqhBU5H ztW=Dr8W*Q35V@w8B6IYneti-6bIUS3VW0RuPLn*LUR;Nn(wAlXKF8zO0v#50R&0ub zDCLVW#A<9B)YswScZ*F!w?HaNk!*c{z=bWq*1`uC1$vngxYN1uwoJuh!AOd-ii3}bFi98_js#c;YW-29>A z54+53H;ms7=zFWRWM~kIIYN`pCXFdHUAZi_LC{eU3nP;vHGTRLyH~+U2Ffj?YKaDW zO|-0cy&tU+Rn4n1XiVeTy~4+v{19odWBN+LSRqR zB0q9Ov2OL$)5(6frNOh${{WQC%k(f^hS6?~xn1~(hI!V`<+-ajR9%9c1d{d z6f}6cw_sn1!*S6sg4VNih6>IX3t=`U0m`MVZ_UeRi>zG=`aX}Z!7y7l1bRO_$Lrbk zb5vWIYV0x56X(5lDdUAj9vA=-N}t-7K7mZj0c_Sh?0fv08P zSj)r$#FOnM8_UjtZEgCg$8(Sb&=p0nPz)#%2);`mQSyL zc-0zqEHL_sER@N}tRpPN^RjdtJwFOmz3x1%NHq;KG9I7xp+dp4(NwqlJCRi13J;__ zq{(z8S6dZ`lE+qLE?owwQr5+C;BaVbr3A6Wd%7GgLq7^0y2uHEi6&%hD;3O#Ya`{; zg3S=7g6K+K!-X9@;y_%?bFP5R(fXL=mdwJTO?-*s*Eh@emA_w0(I%>#04Byyw1*q! zA`z*5B6R6p>%aP5`x@1~8K@lS*mZu`gZt}sMfun7WGWF)V1DgY!=B7F*-y0MQcei; z#6LLiCUWYutcX=@TPVJbDf_0dmHTy0;gIoLYv4Jk`vX-D_l^`mEI+cz-+29!ypkpR z3jKXg3ObyZ-BPHa>QiJxIpxzjHfHM z>9-zs)*v#sQ6LJCx9V74?Rucc$A2DV*m~wUOxW|h!^p6kDdglB@Ydp##Ep*FVf-TVls;^f}T;WI9v`Q_qjhUZ0Q9-P`I*-0TlvnKR z=nsqh94uz2K9($#cVUCx#HC-*0EIphd#A3qLQt8SKkY%-Mr1EbF&51lX?1sd<1|em zaE6#Fk2JY0e!X4nSL3r*BbX}_norV%|MqU%;C?LKVFDfh0Gcv8jc>d|$$pm!b^DkRh|7|1mq}Uz@@X`u$;0%vm+*=cQX>>KnksI5(r?o*-tqpFh|u8KKznWP-&V z=aYON*~P-Wl*AIbWaTTAA(Jc(hY%;&H{XvRf68p0h=!`>oV;l?w;rHa!M1%J_yp&5 zW~YR%w;8~&s!fur&nU2$9fArL&EU4 z|NVWLKj;c#JBTS)!z%;{f^0~80C$-9YGU7R!3ebQFs;^MZ7^?mbE0$_(DN4oc9^ha zi+F4JUZ72!U(oZzHEWQLxebcTbxHSugg4$5r2jN1^z8=ui`28DS%bn!EYuO;TQ3yU ztTWKsdbHv|sz6>}fu_OmpP<9v7q6Nlc1u>WLifWxn+az^M&YF!*Eyzz9RqHS;t(A~ zh8UhK?=N*hifKk}O|=^w-^P(pbz>qZn{2gLaFZ$N1M)%~_ zq--G}dsRN9bO9+IRUkyn0|EZU_PcNzxy~iqJGY*zMT!ZvwzY)hsVi2Aor)7$4eQHb z``ub)V|beqI{-7b#nXe@YRX&>0{VTfR)u9O47f*Hmj3hqb{|N^wCtN6Yc5YJ%SKRq zc*vT2{LNi%n;E`JfQ^3jd3uQQ-<8VcBcX6ahOKxNN7`6tOfF3H4Qo= z=uagfZzM4O+f*)G^u&)ryt+$YBKOn>1qA{<0I*#(Tk5~BL-5uG60$uKx>S8jmUyH=%;M{OhV6fv{XafOKCM{y{I(Rp z`&Z9X!iRUOI}!lS=M9MdbxZlUMS|@Jk%(HkEo^jPwj}lj|7T6W(f?$4*RYPoNf4;e!WwAX-~uv7w2v8cWje|*L=jStanfL32D(h9D@)7hp(!1><{d5s9;b^yoCTL|WJ2oA&3a1{Y6zAhzs zUAtE9G+bmt;iN0w-z^;fDA_-=N+$8mN?0@h$)iW%aMLu?<-5TQ~ zQlOZ2i!*6&i3|zc=%oByRJ_&3r(mF_PSuC7ZixpPT>JOG*{8eJMzh2>N@2In@#5wa zq{F|_zrX+W#vm&)=DpCab18N|U(1>q9YGxed+G!vs>R$iU70EKDCDP-#&ip0-LQCiogax-~OXi-xva+ zkod$~e_J)Z1VRywMz(y*7<_pI7P0+Z7Ub3|SUbH~?&4>R7ArpBV diff --git a/doc/img/welcome-uberjar.png b/doc/img/welcome-uberjar.png deleted file mode 100644 index ef112aa140eecf1b245e1ac87471fa9ec42a0cb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43221 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

l@m*SUh@&}R;QC^RXl&(|f|e9r^C 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®BsFUq)H5><@b#?sg^7DG- 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�W$MGUhQMe5I6_wt_^Y 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 (parse-opts args opts) - :options))) - -;; example of an app entry point with arguments -(defn -main [& args] - (mount/start-with-args - (parse-args args))) -``` - -For the example sake the app reads arguments in two places: - -* [inside](https://github.com/tolitius/mount/blob/with-args/test/app/nyse.clj#L17) a `defstate` - -```clojure -(defstate conn :start (new-connection (mount/args)) - :stop (disconnect (mount/args) conn)) -``` - -* and from "any" [other place](https://github.com/tolitius/mount/blob/with-args/test/app/config.clj#L8) within a function: - -```clojure -(defn load-config [path] - ;; ... - (if (:help (mount/args)) - (info "\n\nthis is a sample mount app to demo how to pass and read runtime arguments\n")) - ;; ...) -``` - -### "Uber" example - -In order to demo all of the above, we'll build an uberjar: - -```bash -$ lein do clean, uberjar -... -Created .. mount/target/mount-0.2.0-SNAPSHOT-standalone.jar -``` - -Since we have a default for a Datomic URI, it'll work with no arguments: - -```bash -$ java -jar target/mount-0.2.0-SNAPSHOT-standalone.jar - -22:12:03.290 [main] INFO mount - >> starting.. app-config -22:12:03.293 [main] INFO mount - >> starting.. conn -22:12:03.293 [main] INFO app.nyse - creating a connection to datomic: datomic:mem://mount -22:12:03.444 [main] INFO mount - >> starting.. nrepl -``` - -Now let's ask it to help us: - -```bash -$ java -jar target/mount-0.2.0-SNAPSHOT-standalone.jar --help - -22:13:48.798 [main] INFO mount - >> starting.. app-config -22:13:48.799 [main] INFO app.config - - -this is a sample mount app to demo how to pass and read runtime arguments - -22:13:48.801 [main] INFO mount - >> starting.. conn -22:13:48.801 [main] INFO app.nyse - creating a connection to datomic: datomic:mem://mount -22:13:48.946 [main] INFO mount - >> starting.. nrepl -``` - -And finally let's connect to the Single Malt Database. It's Friday.. - -```bash -$ java -jar target/mount-0.2.0-SNAPSHOT-standalone.jar -d datomic:mem://single-malt-database - -22:16:10.733 [main] INFO mount - >> starting.. app-config -22:16:10.737 [main] INFO mount - >> starting.. conn -22:16:10.737 [main] INFO app.nyse - creating a connection to datomic: datomic:mem://single-malt-database -22:16:10.885 [main] INFO mount - >> starting.. nrepl -``` - -### Other usecases - -Depending the requirements, these runtime arguments could take different shapes of forms. You would have a full control -over what is passed to the app, the same way you have it without mount through `-main [& args]`. diff --git a/doc/uberjar.md b/doc/uberjar.md deleted file mode 100644 index 1300840..0000000 --- a/doc/uberjar.md +++ /dev/null @@ -1,163 +0,0 @@ -## Creating Reloadable Uberjar'able App - -This example lives in the `uberjar` branch. If you'd like to follow along: - -```bash -$ git checkout uberjar -Switched to branch 'uberjar' -``` - -### App state - -Here is an example [app](https://github.com/tolitius/mount/tree/uberjar/test/app) that has these states: - -```clojure -16:20:44.997 [nREPL-worker-0] INFO mount - >> starting.. app-config -16:20:44.998 [nREPL-worker-0] INFO mount - >> starting.. conn -16:20:45.393 [nREPL-worker-0] INFO mount - >> starting.. nyse-app -16:20:45.443 [nREPL-worker-0] INFO mount - >> starting.. nrepl -``` - -where `nyse-app` is _the_ app. It has the usual routes: - -```clojure -(defroutes mount-example-routes - - (GET "/" [] "welcome to mount sample app!") - (GET "/nyse/orders/:ticker" [ticker] - (generate-string (find-orders ticker))) - - (POST "/nyse/orders" [ticker qty bid offer] - (add-order ticker (bigdec bid) (bigdec offer) (Integer/parseInt qty)) - (generate-string {:added {:ticker ticker - :qty qty - :bid bid - :offer offer}}))) -``` - -and the reloadable state: - -```clojure -(defn start-nyse [] - (create-nyse-schema) ;; creating schema (usually done long before the app is started..) - (-> (routes mount-example-routes) - (handler/site) - (run-jetty {:join? false - :port (get-in app-config [:www :port])}))) - -(defstate nyse-app :start (start-nyse) - :stop (.stop nyse-app)) ;; it's a "org.eclipse.jetty.server.Server" at this point -``` - -In order not to block, and being reloadable, the Jetty server is started in the "`:join? false`" mode which starts the server, -and just returns a reference to it, so it can be easily stopped by `(.stop server)` - -### "Uberjar is the :main" - -In order for a standalone jar to run, it needs an entry point. This sample app [has one](https://github.com/tolitius/mount/blob/uberjar/test/app/app.clj#L16): - -```clojure -;; example of an app entry point -(defn -main [& args] - (mount/start)) -``` - -And some usual suspects from `project.clj`: - -```clojure -;; "test" is in sources here to just "demo" the uberjar without poluting mount "src" -:uberjar {:source-paths ["test/app"] - :dependencies [[compojure "1.4.0"] - [ring/ring-jetty-adapter "1.1.0"] - [cheshire "5.5.0"] - [org.clojure/tools.nrepl "0.2.11"] - [com.datomic/datomic-free "0.9.5327" :exclusions [joda-time]]] - :main app - :aot :all}} -``` - -### REPL time - -```clojure -$ lein do clean, repl - -user=> (dev)(reset) -16:20:44.997 [nREPL-worker-0] INFO mount - >> starting.. app-config -16:20:44.998 [nREPL-worker-0] INFO mount - >> starting.. conn -16:20:45.393 [nREPL-worker-0] INFO mount - >> starting.. nyse-app - -16:20:45.442 [nREPL-worker-0] INFO o.e.jetty.server.AbstractConnector - Started SelectChannelConnector@0.0.0.0:53600 - -16:20:45.443 [nREPL-worker-0] INFO mount - >> starting.. nrepl -:ready -dev=> -``` - -Jetty server is started and ready to roll. And everything is still reloadable: - -```clojure -dev=> (reset) -16:44:16.625 [nREPL-worker-2] INFO mount - << stopping.. nrepl -16:44:16.626 [nREPL-worker-2] INFO mount - << stopping.. nyse-app -16:44:16.711 [nREPL-worker-2] INFO mount - << stopping.. conn -16:44:16.713 [nREPL-worker-2] INFO mount - << stopping.. app-config - -16:44:16.747 [nREPL-worker-2] INFO mount - >> starting.. app-config -16:44:16.748 [nREPL-worker-2] INFO mount - >> starting.. conn -16:44:16.773 [nREPL-worker-2] INFO mount - >> starting.. nyse-app - -16:44:16.777 [nREPL-worker-2] INFO o.e.jetty.server.AbstractConnector - Started SelectChannelConnector@0.0.0.0:54476 - -16:44:16.778 [nREPL-worker-2] INFO mount - >> starting.. nrepl -``` - -Notice the Jetty port difference between reloads: `53600` vs. `54476`. This is done on purpose via [config](https://github.com/tolitius/mount/blob/uberjar/test/resources/config.edn#L4): - -```clojure -:www {:port 0} ;; Jetty will randomly assign the available port (this is good for dev reloadability) -``` - -This of course can be solidified for different env deployments. For example I like `4242` :) - -### Packaging one super uber jar - -```clojure -$ lein do clean, uberjar -... -Created /Users/tolitius/1/fun/mount/target/mount-0.1.0-SNAPSHOT-standalone.jar ;; your version may vary -``` - -Let's give it a spin: - -```bash -$ java -jar target/mount-0.1.0-SNAPSHOT-standalone.jar -... -16:51:35.586 [main] DEBUG o.e.j.u.component.AbstractLifeCycle - STARTED SelectChannelConnector@0.0.0.0:54728 -``` - -Up and running on port `:54728`: - - - -See if we have any orders: - - - -we don't. let's put something into Datomic: - -```clojure -$ curl -X POST -d "ticker=GOOG&qty=100&bid=665.51&offer=665.59" "http://localhost:54728/nyse/orders" -{"added":{"ticker":"GOOG","qty":"100","bid":"665.51","offer":"665.59"}} -``` - -now we should: - - - -### Choices - -There are multiple ways to start a web app. This above is the most straighforward one: start server / stop server. - -But depending on the requirements / architecture, the app can also have an entry point to `(mount/start)` -via something like [:ring :init](https://github.com/weavejester/lein-ring#general-options)). Or the `(mount/start)` -can go into the handler function, etc. diff --git a/project.clj b/project.clj index 857fbd7..c47068f 100644 --- a/project.clj +++ b/project.clj @@ -1,4 +1,4 @@ -(defproject mount "0.1.4-SNAPSHOT" +(defproject mount "0.1.5-SNAPSHOT" :description "managing Clojure app state since (reset)" :url "https://github.com/tolitius/mount" :license {:name "Eclipse Public License" @@ -6,26 +6,22 @@ :source-paths ["src"] + ;; these dependencies are here for uberjar and dev example :dependencies [[org.clojure/clojure "1.7.0"] - [ch.qos.logback/logback-classic "1.1.3"] [org.clojure/tools.logging "0.3.1"] - [org.clojure/tools.macro "0.1.2"] - [org.clojure/tools.namespace "0.2.11"]] + [ch.qos.logback/logback-classic "1.1.3"] + [compojure "1.4.0"] + [ring/ring-jetty-adapter "1.1.0"] + [cheshire "5.5.0"] + [com.datomic/datomic-free "0.9.5327" :exclusions [joda-time]] + [robert/hooke "1.3.0"] + [org.clojure/tools.nrepl "0.2.11"] + [org.clojure/tools.macro "0.1.2"]] :profiles {:dev {:source-paths ["dev" "test/app"] - :dependencies [[yesql "0.5.1"] - [compojure "1.4.0"] - [ring/ring-jetty-adapter "1.1.0"] - [cheshire "5.5.0"] - [org.clojure/tools.nrepl "0.2.11"] - [com.datomic/datomic-free "0.9.5327" :exclusions [joda-time]]]} + :dependencies [[org.clojure/tools.namespace "0.2.11"]]} ;; "test" is in sources here to just "demo" the uberjar without poluting mount "src" :uberjar {:source-paths ["test/app"] - :dependencies [[compojure "1.4.0"] - [ring/ring-jetty-adapter "1.1.0"] - [cheshire "5.5.0"] - [org.clojure/tools.nrepl "0.2.11"] - [com.datomic/datomic-free "0.9.5327" :exclusions [joda-time]]] :main app :aot :all}}) diff --git a/src/mount/core.clj b/src/mount/core.clj index c03be64..6ca57c4 100644 --- a/src/mount/core.clj +++ b/src/mount/core.clj @@ -1,15 +1,14 @@ (ns mount.core - (:require [clojure.tools.macro :as macro] - [clojure.tools.namespace.repl :refer [disable-reload!]] - [clojure.tools.logging :refer [info warn debug error]])) + (:require [clojure.tools.macro :as macro])) -(disable-reload!) - -;; (defonce ^:private session-id (System/currentTimeMillis)) (defonce ^:private mount-state 42) (defonce ^:private -args (atom :no-args)) ;; mostly for command line args and external files (defonce ^:private state-seq (atom 0)) (defonce ^:private state-order (atom {})) +(defonce ^:private running (atom {})) ;; to clean dirty states on redefs + +;; supporting tools.namespace: (disable-reload!) +(alter-meta! *ns* assoc ::load false) ;; to exclude the dependency (defn- make-state-seq [state] (or (@state-order state) @@ -30,63 +29,87 @@ (and suspend (not resume)) (throw (IllegalArgumentException. "suspendable state should have a resume function (i.e. missing :resume fn)")))) +(defn- with-ns [ns name] + (str ns "/" name)) + +(defn- pounded? [f] + (let [pound "(fn* [] "] ;;TODO: think of a better (i.e. typed) way to distinguish #(f params) from (fn [params] (...))) + (.startsWith (str f) pound))) + +(defn- unpound [f] + (if (pounded? f) + (nth f 2) ;; magic 2 is to get the body => ["fn*" "[]" "(fn body)"] + f)) + +(defn- cleanup-if-dirty + "in case a namespace is recompiled without calling (mount/stop), + a running state instance will still be running. + this function stops this 'lost' state instance. + it is meant to be called by defstate before defining a new state" + [state] + (when-let [stop (@running state)] + (stop))) + (defmacro defstate [state & body] (let [[state params] (macro/name-with-attributes state body) {:keys [start stop suspend resume] :as lifecycle} (apply hash-map params)] (validate lifecycle) + (cleanup-if-dirty (with-ns *ns* state)) (let [s-meta (cond-> {:mount-state mount-state - :order (make-state-seq state) - :start `(fn [] (~@start)) - :started? false} - stop (assoc :stop `(fn [] (~@stop))) - suspend (assoc :suspend `(fn [] (~@suspend))) - resume (assoc :resume `(fn [] (~@resume))))] + :order (make-state-seq (with-ns *ns* state)) + :start `(fn [] ~start) + :status #{:stopped}} + stop (assoc :stop `(fn [] ~(unpound stop))) + suspend (assoc :suspend `(fn [] ~suspend)) + resume (assoc :resume `(fn [] ~resume)))] `(defonce ~(with-meta state (merge (meta state) s-meta)) (NotStartedState. ~(str state)))))) -(defn- up [var {:keys [ns name start started? resume suspended?]}] - (when-not started? - (let [s (try (if suspended? - (do (info ">> resuming.. " name) - (resume)) - (do (info ">> starting.. " name) - (start))) +(defn- record! [{:keys [ns name]} f done] + (let [state (f)] + (swap! done conj (ns-resolve ns name)) + state)) + +(defn- up [var {:keys [ns name start stop resume status] :as state} done] + (when-not (:started status) + (let [s (try (if (:suspended status) + (record! state resume done) + (record! state start done)) (catch Throwable t (throw (RuntimeException. (str "could not start [" name "] due to") t))))] (intern ns (symbol name) s) - (alter-meta! var assoc :started? true :suspended? false)))) + (swap! running assoc (with-ns ns name) stop) + (alter-meta! var assoc :status #{:started})))) -(defn- down [var {:keys [ns name stop started? suspended?]}] - (when (or started? suspended?) - (info "<< stopping.. " name) +(defn- down [var {:keys [ns name stop status] :as state} done] + (when (some status #{:started :suspended}) (when stop (try - (stop) + (record! state stop done) (catch Throwable t (throw (RuntimeException. (str "could not stop [" name "] due to") t))))) (intern ns (symbol name) (NotStartedState. name)) ;; (!) if a state does not have :stop when _should_ this might leak - (alter-meta! var assoc :started? false :suspended? false))) + (swap! running dissoc (with-ns ns name)) + (alter-meta! var assoc :status #{:stopped}))) -(defn- sigstop [var {:keys [ns name started? suspend resume]}] - (when (and started? resume) ;; can't have suspend without resume, but the reverse is possible - (info ">> suspending.. " name) - (when suspend ;; don't suspend if there is only resume function (just mark it :suspended?) - (let [s (try (suspend) +(defn- sigstop [var {:keys [ns name suspend resume status] :as state} done] + (when (and (:started status) resume) ;; can't have suspend without resume, but the reverse is possible + (when suspend ;; don't suspend if there is only resume function (just mark it :suspended?) + (let [s (try (record! state suspend done) (catch Throwable t (throw (RuntimeException. (str "could not suspend [" name "] due to") t))))] (intern ns (symbol name) s))) - (alter-meta! var assoc :started? false :suspended? true))) + (alter-meta! var assoc :status #{:suspended}))) -(defn- sigcont [var {:keys [ns name start started? resume suspended?]}] +(defn- sigcont [var {:keys [ns name start resume status] :as state} done] (when (instance? NotStartedState var) (throw (RuntimeException. (str "could not resume [" name "] since it is stoppped (i.e. not suspended)")))) - (when suspended? - (info ">> resuming.. " name) - (let [s (try (resume) + (when (:suspended status) + (let [s (try (record! state resume done) (catch Throwable t (throw (RuntimeException. (str "could not resume [" name "] due to") t))))] (intern ns (symbol name) s) - (alter-meta! var assoc :started? true :suspended? false)))) + (alter-meta! var assoc :status #{:started})))) ;;TODO args might need more thinking (defn args [] @-args) @@ -111,35 +134,37 @@ (defn states-with-deps [] (let [all (find-all-states)] (->> (map (comp #(add-deps % all) - #(select-keys % [:name :order :ns :started? :suspended?]) + #(select-keys % [:name :order :ns :status]) meta) all) (sort-by :order)))) (defn- bring [states fun order] - (->> states - (sort-by (comp :order meta) order) - (map #(fun % (meta %))) - doall)) + (let [done (atom [])] + (->> states + (sort-by (comp :order meta) order) + (map #(fun % (meta %) done)) + dorun) + @done)) -(defn merge-lifecycles +(defn- merge-lifecycles "merges with overriding _certain_ non existing keys. i.e. :suspend is in a 'state', but not in a 'substitute': it should be overriden with nil however other keys of 'state' (such as :ns,:name,:order) should not be overriden" ([state sub] (merge-lifecycles state nil sub)) - ([state origin {:keys [start stop suspend resume suspended?]}] + ([state origin {:keys [start stop suspend resume status]}] (assoc state :origin origin - :suspended? suspended? + :status status :start start :stop stop :suspend suspend :resume resume))) -(defn rollback! [state] +(defn- rollback! [state] (let [{:keys [origin]} (meta state)] (when origin (alter-meta! state #(merge-lifecycles % origin))))) -(defn substitute! [state with] - (let [lifecycle-fns #(select-keys % [:start :stop :suspend :resume :suspended?]) +(defn- substitute! [state with] + (let [lifecycle-fns #(select-keys % [:start :stop :suspend :resume :status]) origin (meta state) sub (meta with)] (alter-meta! with assoc :sub? true) @@ -147,31 +172,26 @@ (defn- unsub [state] (when (-> (meta state) :sub?) - (alter-meta! state assoc :sub? nil - :started false))) + (alter-meta! state dissoc :sub?))) (defn- all-without-subs [] (remove (comp :sub? meta) (find-all-states))) (defn start [& states] (let [states (or (seq states) (all-without-subs))] - (bring states up <) - :started)) + {:started (bring states up <)})) (defn stop [& states] - (let [states (or states (find-all-states))] - (doall (map unsub states)) ;; unmark substitutions marked by "start-with" - (bring states down >) - (doall (map rollback! states)) ;; restore to origin from "start-with" - :stopped)) + (let [states (or states (find-all-states)) + _ (dorun (map unsub states)) ;; unmark substitutions marked by "start-with" + stopped (bring states down >)] + (dorun (map rollback! states)) ;; restore to origin from "start-with" + {:stopped stopped})) (defn stop-except [& states] (let [all (set (find-all-states)) states (remove (set states) all)] - (doall (map unsub states)) ;; unmark substitutions marked by "start-with" - (bring states down >) - (doall (map rollback! states)) ;; restore to origin from "start-with" - :stopped)) + (apply stop states))) (defn start-with-args [xs & states] (reset! -args xs) @@ -180,9 +200,8 @@ (start))) (defn start-with [with] - (doall - (for [[from to] with] - (substitute! from to))) + (doseq [[from to] with] + (substitute! from to)) (start)) (defn start-without [& states] @@ -194,10 +213,8 @@ (defn suspend [& states] (let [states (or (seq states) (all-without-subs))] - (bring states sigstop <) - :suspended)) + {:suspended (bring states sigstop <)})) (defn resume [& states] (let [states (or (seq states) (all-without-subs))] - (bring states sigcont <) - :resumed)) + {:resumed (bring states sigcont <)})) diff --git a/test/app/utils/logging.clj b/test/app/utils/logging.clj new file mode 100644 index 0000000..dc0216c --- /dev/null +++ b/test/app/utils/logging.clj @@ -0,0 +1,46 @@ +(ns app.utils.logging ;; << change to your namespace/path + (:require [mount.core] + [robert.hooke :refer [add-hook clear-hooks]] + [clojure.string :refer [split]] + [clojure.tools.logging :refer [info]])) + +(alter-meta! *ns* assoc ::load false) + +(defn- f-to-action [f] + (let [fname (-> (str f) + (split #"@") + first)] + (case fname + "mount.core$up" :up + "mount.core$down" :down + "mount.core$sigstop" :suspend + "mount.core$sigcont" :resume + :noop))) + +(defn whatcha-doing? [{:keys [status suspend]} action] + (case action + :up (if (status :suspended) ">> resuming" + (if-not (status :started) ">> starting")) + :down (if (or (status :started) (status :suspended)) "<< stopping") + :suspend (if (and (status :started) suspend) "<< suspending") + :resume (if (status :suspended) ">> resuming"))) + +(defn log-status [f & args] + (let [{:keys [ns name] :as state} (second args) + action (f-to-action f)] + (when-let [taking-over-the-world (whatcha-doing? state action)] + (info (str taking-over-the-world ".. " (ns-resolve ns name)))) + (apply f args))) + +(defonce lifecycle-fns + #{#'mount.core/up + #'mount.core/down + #'mount.core/sigstop + #'mount.core/sigcont}) + +(defn without-logging-status [] + (doall (map #(clear-hooks %) lifecycle-fns))) + +(defn with-logging-status [] + (without-logging-status) + (doall (map #(add-hook % log-status) lifecycle-fns)))