From 71d50fb89510c9e44d6c342e2b0438dd3931846c Mon Sep 17 00:00:00 2001 From: jafermarq Date: Sun, 25 Jun 2023 13:45:15 +0100 Subject: [PATCH 001/133] VCE with ActorPool --- src/py/flwr/server/app.py | 1 + src/py/flwr/server/server.py | 12 ++ src/py/flwr/simulation/app.py | 25 +++- .../simulation/ray_transport/ray_actor.py | 11 ++ .../ray_transport/ray_client_proxy.py | 117 ++++++++++++++++++ 5 files changed, 163 insertions(+), 3 deletions(-) create mode 100644 src/py/flwr/simulation/ray_transport/ray_actor.py diff --git a/src/py/flwr/server/app.py b/src/py/flwr/server/app.py index fdfaba4c90bb..c90a8b3ed673 100644 --- a/src/py/flwr/server/app.py +++ b/src/py/flwr/server/app.py @@ -72,6 +72,7 @@ class ServerConfig: num_rounds: int = 1 round_timeout: Optional[float] = None + is_simulation: bool = False def start_server( # pylint: disable=too-many-arguments,too-many-locals diff --git a/src/py/flwr/server/server.py b/src/py/flwr/server/server.py index 279914e801d6..d53cc0c6d9a6 100644 --- a/src/py/flwr/server/server.py +++ b/src/py/flwr/server/server.py @@ -67,6 +67,7 @@ def __init__( ) self.strategy: Strategy = strategy if strategy is not None else FedAvg() self.max_workers: Optional[int] = None + self.is_simulation: bool = False def set_max_workers(self, max_workers: Optional[int]) -> None: """Set the max_workers used by ThreadPoolExecutor.""" @@ -231,6 +232,7 @@ def fit_round( results, failures = fit_clients( client_instructions=client_instructions, max_workers=self.max_workers, + is_simulation=self.is_simulation, timeout=timeout, ) log( @@ -325,6 +327,7 @@ def reconnect_client( def fit_clients( client_instructions: List[Tuple[ClientProxy, FitIns]], + is_simulation: bool, max_workers: Optional[int], timeout: Optional[float], ) -> FitResultsAndFailures: @@ -346,6 +349,15 @@ def fit_clients( _handle_finished_future_after_fit( future=future, results=results, failures=failures ) + + if is_simulation: + # because how the pool of actors and the client proxies interact + # a client w/ id A could have fetched the result of client w/ id B + # Therefore, we need to ensure each FiTRes is paired with its respective + # ClientProxy + print("Results from ActorPool might not be in order!") + # TODO + return results, failures diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 542982d16ce4..59c803ddd827 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -20,6 +20,7 @@ from typing import Any, Callable, Dict, List, Optional import ray +from ray.util.actor_pool import ActorPool from flwr.client import ClientLike from flwr.common import EventType, event @@ -29,7 +30,8 @@ from flwr.server.client_manager import ClientManager from flwr.server.history import History from flwr.server.strategy import Strategy -from flwr.simulation.ray_transport.ray_client_proxy import RayClientProxy +from flwr.simulation.ray_transport.ray_client_proxy import RayClientProxy, RayClientProxyForActorPool +from flwr.simulation.ray_transport.ray_actor import VirtualClientEngineActor INVALID_ARGUMENTS_START_SIMULATION = """ INVALID ARGUMENTS ERROR @@ -142,6 +144,8 @@ def start_simulation( # pylint: disable=too-many-arguments strategy=strategy, client_manager=client_manager, ) + # Setting simulation ON for server + initialized_server.is_simulation = True log( INFO, "Starting Flower simulation, config: %s", @@ -184,11 +188,26 @@ def start_simulation( # pylint: disable=too-many-arguments # Register one RayClientProxy object for each client with the ClientManager resources = client_resources if client_resources is not None else {} + + + # instantiate ActorPool + # Let's spawn a pool with as many actors as could be fit in the system + num_gpus = ray.cluster_resources()['GPU'] + num_actors = int(num_gpus / resources['num_gpus']) + actors = [VirtualClientEngineActor.options(**resources).remote(i) for i in range(num_actors)] + log( + INFO, + "Flower VCE: creating ActorPool with %s actors", + len(actors) + ) + + pool = ActorPool(actors) + for cid in cids: - client_proxy = RayClientProxy( + client_proxy = RayClientProxyForActorPool( client_fn=client_fn, cid=cid, - resources=resources, + actor_pool=pool, ) initialized_server.client_manager().register(client=client_proxy) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py new file mode 100644 index 000000000000..e65ba68d171f --- /dev/null +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -0,0 +1,11 @@ +import ray + +@ray.remote +class VirtualClientEngineActor: + + def __init__(self, actor_id: int): + + self.actor_id = actor_id + + def run(self, client_fn, client_id): + return client_id, client_fn() diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index 0543999b4178..ad219475341a 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -17,6 +17,7 @@ from logging import ERROR from typing import Callable, Dict, Optional, cast +from time import sleep import ray @@ -30,6 +31,7 @@ ) from flwr.common.logger import log from flwr.server.client_proxy import ClientProxy +from flwr.simulation.ray_transport.ray_actor import VirtualClientEngineActor ClientFn = Callable[[str], ClientLike] @@ -115,6 +117,121 @@ def reconnect( return common.DisconnectRes(reason="") # Nothing to do here (yet) +class RayClientProxyForActorPool(ClientProxy): + """Flower client proxy which delegates work using Ray.""" + + def __init__(self, client_fn: ClientFn, cid: str, actor_pool: VirtualClientEngineActor): + super().__init__(cid) + self.client_fn = client_fn + self.actor_pool = actor_pool + + def get_properties( + self, ins: common.GetPropertiesIns, timeout: Optional[float] + ) -> common.GetPropertiesRes: + """Return client's properties.""" + + def get_properties(): + client: Client = _create_client(self.client_fn, self.cid) + return maybe_call_get_properties(client=client, + get_properties_ins=ins, + ) + try: + self.actor_pool.submit(lambda a, v : a.run.remote(v, self.cid), get_properties) + while not(self.actor_pool.has_next()): + sleep(0.1) + continue + cid, res = self.actor_pool.get_next() + + # print(cid, self.cid) + + except Exception as ex: + log(ERROR, ex) + raise ex + return cast( + common.GetPropertiesRes, + res, + ) + + def get_parameters( + self, ins: common.GetParametersIns, timeout: Optional[float] + ) -> common.GetParametersRes: + """Return the current local model parameters.""" + + def get_parameters(): + client: Client = _create_client(self.client_fn, self.cid) + return maybe_call_get_parameters(client=client, + get_parameters_ins=ins, + ) + try: + self.actor_pool.submit(lambda a, v : a.run.remote(v, self.cid), get_parameters) + while not(self.actor_pool.has_next()): + sleep(0.1) + continue + cid, res = self.actor_pool.get_next() + # print(cid, self.cid) + except Exception as ex: + log(ERROR, ex) + raise ex + return cast( + common.GetParametersRes, + res, + ) + + def fit(self, ins: common.FitIns, timeout: Optional[float]) -> common.FitRes: + """Train model parameters on the locally held dataset.""" + def fit(): + client: Client = _create_client(self.client_fn, self.cid) + return maybe_call_fit(client=client, + fit_ins=ins, + ) + try: + self.actor_pool.submit(lambda a, v : a.run.remote(v, self.cid), fit) + #! This is not ideal. A preferred solution would be to collect results from actor pool in server.fit_clients() + while not(self.actor_pool.has_next()): + sleep(0.1) + continue + cid, res = self.actor_pool.get_next() + # print(cid, self.cid) + except Exception as ex: + log(ERROR, ex) + raise ex + return cast( + common.FitRes, + res, + ) + + def evaluate( + self, ins: common.EvaluateIns, timeout: Optional[float] + ) -> common.EvaluateRes: + """Evaluate model parameters on the locally held dataset.""" + def evaluate(): + client: Client = _create_client(self.client_fn, self.cid) + #! This is not ideal. A preferred solution would be to collect results from actor pool in server.evaluate_clients() + return maybe_call_evaluate(client=client, + evaluate_ins=ins, + ) + try: + self.actor_pool.submit(lambda a, v : a.run.remote(v, self.cid), evaluate) + while not(self.actor_pool.has_next()): + sleep(0.1) + continue + cid, res = self.actor_pool.get_next() + # print(cid, self.cid) + except Exception as ex: + log(ERROR, ex) + raise ex + return cast( + common.EvaluateRes, + res, + ) + + def reconnect( + self, ins: common.ReconnectIns, timeout: Optional[float] + ) -> common.DisconnectRes: + """Disconnect and (optionally) reconnect later.""" + return common.DisconnectRes(reason="") # Nothing to do here (yet) + + @ray.remote def launch_and_get_properties( client_fn: ClientFn, cid: str, get_properties_ins: common.GetPropertiesIns From 6f91e7011817cd2f9554df1eab645868d05afbf6 Mon Sep 17 00:00:00 2001 From: jafermarq Date: Mon, 26 Jun 2023 19:51:25 +0100 Subject: [PATCH 002/133] each clientproxy gets its result (discarding other logic in server.py) --- src/py/flwr/server/app.py | 1 - src/py/flwr/server/server.py | 12 ---- src/py/flwr/simulation/app.py | 5 ++ .../simulation/ray_transport/ray_actor.py | 3 + .../ray_transport/ray_client_proxy.py | 56 +++++++++++-------- 5 files changed, 42 insertions(+), 35 deletions(-) diff --git a/src/py/flwr/server/app.py b/src/py/flwr/server/app.py index c90a8b3ed673..fdfaba4c90bb 100644 --- a/src/py/flwr/server/app.py +++ b/src/py/flwr/server/app.py @@ -72,7 +72,6 @@ class ServerConfig: num_rounds: int = 1 round_timeout: Optional[float] = None - is_simulation: bool = False def start_server( # pylint: disable=too-many-arguments,too-many-locals diff --git a/src/py/flwr/server/server.py b/src/py/flwr/server/server.py index d53cc0c6d9a6..279914e801d6 100644 --- a/src/py/flwr/server/server.py +++ b/src/py/flwr/server/server.py @@ -67,7 +67,6 @@ def __init__( ) self.strategy: Strategy = strategy if strategy is not None else FedAvg() self.max_workers: Optional[int] = None - self.is_simulation: bool = False def set_max_workers(self, max_workers: Optional[int]) -> None: """Set the max_workers used by ThreadPoolExecutor.""" @@ -232,7 +231,6 @@ def fit_round( results, failures = fit_clients( client_instructions=client_instructions, max_workers=self.max_workers, - is_simulation=self.is_simulation, timeout=timeout, ) log( @@ -327,7 +325,6 @@ def reconnect_client( def fit_clients( client_instructions: List[Tuple[ClientProxy, FitIns]], - is_simulation: bool, max_workers: Optional[int], timeout: Optional[float], ) -> FitResultsAndFailures: @@ -349,15 +346,6 @@ def fit_clients( _handle_finished_future_after_fit( future=future, results=results, failures=failures ) - - if is_simulation: - # because how the pool of actors and the client proxies interact - # a client w/ id A could have fetched the result of client w/ id B - # Therefore, we need to ensure each FiTRes is paired with its respective - # ClientProxy - print("Results from ActorPool might not be in order!") - # TODO - return results, failures diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 59c803ddd827..2662e4247642 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -202,12 +202,17 @@ def start_simulation( # pylint: disable=too-many-arguments ) pool = ActorPool(actors) + # ClientProxies might be retrieving results from the ActorPool that belong to other clients + # when this happens, the client proxy will put that result in the cache. All clients check + # if their result is in the cache periodically. + results_cache = {} for cid in cids: client_proxy = RayClientProxyForActorPool( client_fn=client_fn, cid=cid, actor_pool=pool, + cache=results_cache, ) initialized_server.client_manager().register(client=client_proxy) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index e65ba68d171f..1452a2b6166d 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -8,4 +8,7 @@ def __init__(self, actor_id: int): self.actor_id = actor_id def run(self, client_fn, client_id): + # execute tasks and return result + # return also cid which is needed to ensure results + # from the pool are correctly assigned to each ClientProxy return client_id, client_fn() diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index ad219475341a..26b5a7511cec 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -120,10 +120,36 @@ def reconnect( class RayClientProxyForActorPool(ClientProxy): """Flower client proxy which delegates work using Ray.""" - def __init__(self, client_fn: ClientFn, cid: str, actor_pool: VirtualClientEngineActor): + def __init__(self, client_fn: ClientFn, cid: str, actor_pool: VirtualClientEngineActor, cache: Dict): super().__init__(cid) self.client_fn = client_fn self.actor_pool = actor_pool + self.cache = cache + + + def _wait_for_client_result(self): + # TODO: can we do this without while+sleep? + # Wait until one result is ready + while not(self.actor_pool.has_next()): + sleep(0.1) + continue + # get result + cid, res = self.actor_pool.get_next() + + # if it doesn't belong to this client + if cid != self.cid: + # add to cache + self.cache[cid] = res + + # wait until this clientProxy's result is in the cache + while self.cid not in self.cache.keys(): + sleep(0.1) + + # get this client's result + res = self.cache.pop(self.cid) + + return res + def get_properties( self, ins: common.GetPropertiesIns, timeout: Optional[float] @@ -137,12 +163,7 @@ def get_properties(): ) try: self.actor_pool.submit(lambda a, v : a.run.remote(v, self.cid), get_properties) - while not(self.actor_pool.has_next()): - sleep(0.1) - continue - cid, res = self.actor_pool.get_next() - - # print(cid, self.cid) + res = self._wait_for_client_result() except Exception as ex: log(ERROR, ex) @@ -164,11 +185,8 @@ def get_parameters(): ) try: self.actor_pool.submit(lambda a, v : a.run.remote(v, self.cid), get_parameters) - while not(self.actor_pool.has_next()): - sleep(0.1) - continue - cid, res = self.actor_pool.get_next() - # print(cid, self.cid) + res = self._wait_for_client_result() + except Exception as ex: log(ERROR, ex) raise ex @@ -187,11 +205,8 @@ def fit(): try: self.actor_pool.submit(lambda a, v : a.run.remote(v, self.cid), fit) #! This is not ideal. A preferred solution would be to collect results from actor pool in server.fit_clients() - while not(self.actor_pool.has_next()): - sleep(0.1) - continue - cid, res = self.actor_pool.get_next() - # print(cid, self.cid) + res = self._wait_for_client_result() + except Exception as ex: log(ERROR, ex) raise ex @@ -212,11 +227,8 @@ def evaluate(): ) try: self.actor_pool.submit(lambda a, v : a.run.remote(v, self.cid), evaluate) - while not(self.actor_pool.has_next()): - sleep(0.1) - continue - cid, res = self.actor_pool.get_next() - # print(cid, self.cid) + res = self._wait_for_client_result() + except Exception as ex: log(ERROR, ex) raise ex From f6588dd091e8d16c3d7ec9e0a82fae68180b45aa Mon Sep 17 00:00:00 2001 From: jafermarq Date: Sat, 8 Jul 2023 15:07:15 +0100 Subject: [PATCH 003/133] custom ActorPool addressable by each ClientProxy --- src/py/flwr/simulation/app.py | 13 +++-- .../simulation/ray_transport/ray_actor.py | 40 +++++++++++++++ .../ray_transport/ray_client_proxy.py | 49 +++++-------------- 3 files changed, 57 insertions(+), 45 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 2662e4247642..6390b63189e1 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -20,7 +20,6 @@ from typing import Any, Callable, Dict, List, Optional import ray -from ray.util.actor_pool import ActorPool from flwr.client import ClientLike from flwr.common import EventType, event @@ -30,8 +29,8 @@ from flwr.server.client_manager import ClientManager from flwr.server.history import History from flwr.server.strategy import Strategy -from flwr.simulation.ray_transport.ray_client_proxy import RayClientProxy, RayClientProxyForActorPool -from flwr.simulation.ray_transport.ray_actor import VirtualClientEngineActor +from flwr.simulation.ray_transport.ray_client_proxy import RayClientProxy, RayActorClientProxy +from flwr.simulation.ray_transport.ray_actor import VirtualClientEngineActor, VirtualClientEngineActorPool INVALID_ARGUMENTS_START_SIMULATION = """ INVALID ARGUMENTS ERROR @@ -192,8 +191,8 @@ def start_simulation( # pylint: disable=too-many-arguments # instantiate ActorPool # Let's spawn a pool with as many actors as could be fit in the system - num_gpus = ray.cluster_resources()['GPU'] - num_actors = int(num_gpus / resources['num_gpus']) + num_gpus = ray.cluster_resources()['CPU'] + num_actors = int(num_gpus / resources['num_cpus']) actors = [VirtualClientEngineActor.options(**resources).remote(i) for i in range(num_actors)] log( INFO, @@ -201,14 +200,14 @@ def start_simulation( # pylint: disable=too-many-arguments len(actors) ) - pool = ActorPool(actors) + pool = VirtualClientEngineActorPool(actors) # ClientProxies might be retrieving results from the ActorPool that belong to other clients # when this happens, the client proxy will put that result in the cache. All clients check # if their result is in the cache periodically. results_cache = {} for cid in cids: - client_proxy = RayClientProxyForActorPool( + client_proxy = RayActorClientProxy( client_fn=client_fn, cid=cid, actor_pool=pool, diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 1452a2b6166d..9ff29d092eeb 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -1,4 +1,7 @@ +from typing import Any, Callable + import ray +from ray.util.actor_pool import ActorPool @ray.remote class VirtualClientEngineActor: @@ -12,3 +15,40 @@ def run(self, client_fn, client_id): # return also cid which is needed to ensure results # from the pool are correctly assigned to each ClientProxy return client_id, client_fn() + + +class VirtualClientEngineActorPool(ActorPool): + + def __init__(self, actors: list): + super().__init__(actors) + + # stores completed job while keeping track to + # which VirtualClient it belongs to + self._results = {} + + def submit_client_job(self, fn: Any, value: Callable, cid: int): + self._results[cid] = None + # print(f"Submitted to pool from VirtualClient {cid}") + return super().submit(fn, value) + + def get_client_result(self, cid: int, timeout: int=3600): + + while self._results[cid] is None: + # we need a try/except because if all VirtualClients are pinging the queue for the first + # result, only one of them will be able to "fetch" it. Leaving the rest trying to fetch + # the object following a reference that doesn't exist anymore. + try: + res_cid, res = self.get_next_unordered() + # Track in dictionary + # print(f"Adding result to dict for cid: {res_cid}") + self._results[res_cid] = res + except: + continue + + # print(f"VirtualClient with cid: {cid} still needs to wait for its result...") + # ready = not(self._results[cid] is None) + # print(f"is result for {cid} read?: {ready}") + + # print(f"Returning result for client {cid}") + return self._results.pop(cid) + \ No newline at end of file diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index 26b5a7511cec..f8f635235200 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -31,7 +31,7 @@ ) from flwr.common.logger import log from flwr.server.client_proxy import ClientProxy -from flwr.simulation.ray_transport.ray_actor import VirtualClientEngineActor +from flwr.simulation.ray_transport.ray_actor import VirtualClientEngineActorPool ClientFn = Callable[[str], ClientLike] @@ -117,40 +117,15 @@ def reconnect( return common.DisconnectRes(reason="") # Nothing to do here (yet) -class RayClientProxyForActorPool(ClientProxy): +class RayActorClientProxy(ClientProxy): """Flower client proxy which delegates work using Ray.""" - def __init__(self, client_fn: ClientFn, cid: str, actor_pool: VirtualClientEngineActor, cache: Dict): + def __init__(self, client_fn: ClientFn, cid: str, actor_pool: VirtualClientEngineActorPool, cache: Dict): super().__init__(cid) self.client_fn = client_fn self.actor_pool = actor_pool self.cache = cache - - def _wait_for_client_result(self): - # TODO: can we do this without while+sleep? - # Wait until one result is ready - while not(self.actor_pool.has_next()): - sleep(0.1) - continue - # get result - cid, res = self.actor_pool.get_next() - - # if it doesn't belong to this client - if cid != self.cid: - # add to cache - self.cache[cid] = res - - # wait until this clientProxy's result is in the cache - while self.cid not in self.cache.keys(): - sleep(0.1) - - # get this client's result - res = self.cache.pop(self.cid) - - return res - - def get_properties( self, ins: common.GetPropertiesIns, timeout: Optional[float] ) -> common.GetPropertiesRes: @@ -162,8 +137,8 @@ def get_properties(): get_properties_ins=ins, ) try: - self.actor_pool.submit(lambda a, v : a.run.remote(v, self.cid), get_properties) - res = self._wait_for_client_result() + self.actor_pool.submit_client_job(lambda a, v : a.run.remote(v, self.cid), get_properties, self.cid) + res = self.actor_pool.get_client_result(self.cid) except Exception as ex: log(ERROR, ex) @@ -184,8 +159,8 @@ def get_parameters(): get_parameters_ins=ins, ) try: - self.actor_pool.submit(lambda a, v : a.run.remote(v, self.cid), get_parameters) - res = self._wait_for_client_result() + self.actor_pool.submit_client_job(lambda a, v : a.run.remote(v, self.cid), get_parameters, self.cid) + res = self.actor_pool.get_client_result(self.cid) except Exception as ex: log(ERROR, ex) @@ -203,9 +178,8 @@ def fit(): fit_ins=ins, ) try: - self.actor_pool.submit(lambda a, v : a.run.remote(v, self.cid), fit) - #! This is not ideal. A preferred solution would be to collect results from actor pool in server.fit_clients() - res = self._wait_for_client_result() + self.actor_pool.submit_client_job(lambda a, v : a.run.remote(v, self.cid), fit, self.cid) + res = self.actor_pool.get_client_result(self.cid) except Exception as ex: log(ERROR, ex) @@ -221,13 +195,12 @@ def evaluate( """Evaluate model parameters on the locally held dataset.""" def evaluate(): client: Client = _create_client(self.client_fn, self.cid) - #! This is not ideal. A preferred solution would be to collect results from actor pool in server.evaluate_clients() return maybe_call_evaluate(client=client, evaluate_ins=ins, ) try: - self.actor_pool.submit(lambda a, v : a.run.remote(v, self.cid), evaluate) - res = self._wait_for_client_result() + self.actor_pool.submit_client_job(lambda a, v : a.run.remote(v, self.cid), evaluate, self.cid) + res = self.actor_pool.get_client_result(self.cid) except Exception as ex: log(ERROR, ex) From a1ee6306b6f679541fec3791481d70286d1100e0 Mon Sep 17 00:00:00 2001 From: jafermarq Date: Sat, 8 Jul 2023 20:27:08 +0100 Subject: [PATCH 004/133] parse CPU/GPU resources to spawn correct size of ActorPool; other small changes --- src/py/flwr/simulation/app.py | 34 ++++++++++++------- .../ray_transport/ray_client_proxy.py | 3 +- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 6390b63189e1..e5ca150c2e80 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -179,39 +179,49 @@ def start_simulation( # pylint: disable=too-many-arguments # Initialize Ray ray.init(**ray_init_args) + cluster_resources = ray.cluster_resources() log( INFO, "Flower VCE: Ray initialized with resources: %s", - ray.cluster_resources(), + cluster_resources, ) - # Register one RayClientProxy object for each client with the ClientManager - resources = client_resources if client_resources is not None else {} + # log resources for each virtual_client + # If not specified by user, Ray uses default: 1x CPU, 0x GPU + minimal_resources = {'num_cpus': 1.0, 'num_gpus': 0.0} + resources = client_resources if client_resources is not None else minimal_resources + log( + INFO, + "Flower VCE: Resources for each Virtual Client: %s", + resources, + ) + + # determine how many actors can be added to the pool. + # this a function of the total resources visible to Ray and + # the resources allocated for each virtual client + num_cpus = cluster_resources['CPU'] + num_gpus = cluster_resources.get('GPU', 0) # there might not be GPU + num_actors = int(num_cpus / resources['num_cpus']) + if num_gpus: + num_actors = min(num_actors, int(num_gpus / resources['num_gpus']) ) + # instantiate ActorPool - # Let's spawn a pool with as many actors as could be fit in the system - num_gpus = ray.cluster_resources()['CPU'] - num_actors = int(num_gpus / resources['num_cpus']) actors = [VirtualClientEngineActor.options(**resources).remote(i) for i in range(num_actors)] log( INFO, - "Flower VCE: creating ActorPool with %s actors", + "Flower VCE: Creating ActorPool with %s actors", len(actors) ) pool = VirtualClientEngineActorPool(actors) - # ClientProxies might be retrieving results from the ActorPool that belong to other clients - # when this happens, the client proxy will put that result in the cache. All clients check - # if their result is in the cache periodically. - results_cache = {} for cid in cids: client_proxy = RayActorClientProxy( client_fn=client_fn, cid=cid, actor_pool=pool, - cache=results_cache, ) initialized_server.client_manager().register(client=client_proxy) diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index f8f635235200..c7384689e52d 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -120,11 +120,10 @@ def reconnect( class RayActorClientProxy(ClientProxy): """Flower client proxy which delegates work using Ray.""" - def __init__(self, client_fn: ClientFn, cid: str, actor_pool: VirtualClientEngineActorPool, cache: Dict): + def __init__(self, client_fn: ClientFn, cid: str, actor_pool: VirtualClientEngineActorPool): super().__init__(cid) self.client_fn = client_fn self.actor_pool = actor_pool - self.cache = cache def get_properties( self, ins: common.GetPropertiesIns, timeout: Optional[float] From 8b09717cb44a97dae155ee6da534160ea28801ab Mon Sep 17 00:00:00 2001 From: jafermarq Date: Tue, 11 Jul 2023 12:54:05 +0100 Subject: [PATCH 005/133] handling clinents failure --- src/py/flwr/simulation/app.py | 42 ++++++++------ .../simulation/ray_transport/ray_actor.py | 44 +++++++++++---- .../ray_transport/ray_client_proxy.py | 56 +++++++++++++------ 3 files changed, 96 insertions(+), 46 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index e5ca150c2e80..2c027647f4dd 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -29,8 +29,14 @@ from flwr.server.client_manager import ClientManager from flwr.server.history import History from flwr.server.strategy import Strategy -from flwr.simulation.ray_transport.ray_client_proxy import RayClientProxy, RayActorClientProxy -from flwr.simulation.ray_transport.ray_actor import VirtualClientEngineActor, VirtualClientEngineActorPool +from flwr.simulation.ray_transport.ray_actor import ( + VirtualClientEngineActor, + VirtualClientEngineActorPool, +) +from flwr.simulation.ray_transport.ray_client_proxy import ( + RayActorClientProxy, + RayClientProxy, +) INVALID_ARGUMENTS_START_SIMULATION = """ INVALID ARGUMENTS ERROR @@ -188,8 +194,10 @@ def start_simulation( # pylint: disable=too-many-arguments # log resources for each virtual_client # If not specified by user, Ray uses default: 1x CPU, 0x GPU - minimal_resources = {'num_cpus': 1.0, 'num_gpus': 0.0} - resources = client_resources if client_resources is not None else minimal_resources + resources = {"num_cpus": 1.0, "num_gpus": 0.0} + if client_resources: + for k, v in client_resources.items(): + resources[k] = v log( INFO, "Flower VCE: Resources for each Virtual Client: %s", @@ -199,22 +207,22 @@ def start_simulation( # pylint: disable=too-many-arguments # determine how many actors can be added to the pool. # this a function of the total resources visible to Ray and # the resources allocated for each virtual client - num_cpus = cluster_resources['CPU'] - num_gpus = cluster_resources.get('GPU', 0) # there might not be GPU + num_cpus = cluster_resources["CPU"] + num_gpus = cluster_resources.get("GPU", 0) # there might not be GPU - num_actors = int(num_cpus / resources['num_cpus']) + num_actors = int(num_cpus / resources["num_cpus"]) + + # if a GPU is present and client resources do require one + if num_gpus and resources["num_gpus"] > 0.0: + num_actors = min(num_actors, int(num_gpus / resources["num_gpus"])) - if num_gpus: - num_actors = min(num_actors, int(num_gpus / resources['num_gpus']) ) - # instantiate ActorPool - actors = [VirtualClientEngineActor.options(**resources).remote(i) for i in range(num_actors)] - log( - INFO, - "Flower VCE: Creating ActorPool with %s actors", - len(actors) - ) - + actors = [ + VirtualClientEngineActor.options(**resources).remote(i) + for i in range(num_actors) + ] + log(INFO, "Flower VCE: Creating ActorPool with %s actors", len(actors)) + pool = VirtualClientEngineActorPool(actors) for cid in cids: diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 9ff29d092eeb..7f7bd9f90d93 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -1,24 +1,42 @@ +import traceback from typing import Any, Callable import ray from ray.util.actor_pool import ActorPool + +class ClientException(Exception): + """Raised when client side logic crashes with an exception.""" + + def __init__(self, message): + self.message = f"\n{'>'*7} A ClientException occurred." + message + super().__init__(self.message) + + @ray.remote class VirtualClientEngineActor: - def __init__(self, actor_id: int): - self.actor_id = actor_id - + def run(self, client_fn, client_id): # execute tasks and return result # return also cid which is needed to ensure results # from the pool are correctly assigned to each ClientProxy - return client_id, client_fn() + try: + client_results = client_fn() + except Exception as ex: + client_trace = traceback.format_exc() + message = ( + "\n\tSomething went wrong when running your client workload." + f"\n\tClient {client_id} crashed when the {self.__class__.__name__} was running its workload." + f" \n\tThis is the exception triggered on the client side: {client_trace}" + ) + raise ClientException(message) + return client_id, client_results -class VirtualClientEngineActorPool(ActorPool): +class VirtualClientEngineActorPool(ActorPool): def __init__(self, actors: list): super().__init__(actors) @@ -31,24 +49,28 @@ def submit_client_job(self, fn: Any, value: Callable, cid: int): # print(f"Submitted to pool from VirtualClient {cid}") return super().submit(fn, value) - def get_client_result(self, cid: int, timeout: int=3600): - + def get_client_result(self, cid: int, timeout: int = 3600): while self._results[cid] is None: # we need a try/except because if all VirtualClients are pinging the queue for the first # result, only one of them will be able to "fetch" it. Leaving the rest trying to fetch # the object following a reference that doesn't exist anymore. try: - res_cid, res = self.get_next_unordered() + res_cid, res = self.get_next_unordered(timeout=timeout) # Track in dictionary # print(f"Adding result to dict for cid: {res_cid}") self._results[res_cid] = res - except: + except KeyError as ex: + # result was already fetched, that's fine, continue continue # print(f"VirtualClient with cid: {cid} still needs to wait for its result...") # ready = not(self._results[cid] is None) # print(f"is result for {cid} read?: {ready}") - # print(f"Returning result for client {cid}") + # print(f"Returning result for client {cid}, is it none: {self._results[cid] is None}") + if self._results[cid] is None: + raise RuntimeError( + f"Client {cid} failed, no result is available in the VirtualClientEngine." + ) + return self._results.pop(cid) - \ No newline at end of file diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index c7384689e52d..f944662bf92c 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -16,8 +16,8 @@ from logging import ERROR -from typing import Callable, Dict, Optional, cast from time import sleep +from typing import Callable, Dict, Optional, cast import ray @@ -120,7 +120,9 @@ def reconnect( class RayActorClientProxy(ClientProxy): """Flower client proxy which delegates work using Ray.""" - def __init__(self, client_fn: ClientFn, cid: str, actor_pool: VirtualClientEngineActorPool): + def __init__( + self, client_fn: ClientFn, cid: str, actor_pool: VirtualClientEngineActorPool + ): super().__init__(cid) self.client_fn = client_fn self.actor_pool = actor_pool @@ -132,11 +134,15 @@ def get_properties( def get_properties(): client: Client = _create_client(self.client_fn, self.cid) - return maybe_call_get_properties(client=client, - get_properties_ins=ins, - ) + return maybe_call_get_properties( + client=client, + get_properties_ins=ins, + ) + try: - self.actor_pool.submit_client_job(lambda a, v : a.run.remote(v, self.cid), get_properties, self.cid) + self.actor_pool.submit_client_job( + lambda a, v: a.run.remote(v, self.cid), get_properties, self.cid + ) res = self.actor_pool.get_client_result(self.cid) except Exception as ex: @@ -154,11 +160,15 @@ def get_parameters( def get_parameters(): client: Client = _create_client(self.client_fn, self.cid) - return maybe_call_get_parameters(client=client, - get_parameters_ins=ins, - ) + return maybe_call_get_parameters( + client=client, + get_parameters_ins=ins, + ) + try: - self.actor_pool.submit_client_job(lambda a, v : a.run.remote(v, self.cid), get_parameters, self.cid) + self.actor_pool.submit_client_job( + lambda a, v: a.run.remote(v, self.cid), get_parameters, self.cid + ) res = self.actor_pool.get_client_result(self.cid) except Exception as ex: @@ -171,13 +181,18 @@ def get_parameters(): def fit(self, ins: common.FitIns, timeout: Optional[float]) -> common.FitRes: """Train model parameters on the locally held dataset.""" + def fit(): client: Client = _create_client(self.client_fn, self.cid) - return maybe_call_fit(client=client, - fit_ins=ins, - ) + return maybe_call_fit( + client=client, + fit_ins=ins, + ) + try: - self.actor_pool.submit_client_job(lambda a, v : a.run.remote(v, self.cid), fit, self.cid) + self.actor_pool.submit_client_job( + lambda a, v: a.run.remote(v, self.cid), fit, self.cid + ) res = self.actor_pool.get_client_result(self.cid) except Exception as ex: @@ -192,13 +207,18 @@ def evaluate( self, ins: common.EvaluateIns, timeout: Optional[float] ) -> common.EvaluateRes: """Evaluate model parameters on the locally held dataset.""" + def evaluate(): client: Client = _create_client(self.client_fn, self.cid) - return maybe_call_evaluate(client=client, - evaluate_ins=ins, - ) + return maybe_call_evaluate( + client=client, + evaluate_ins=ins, + ) + try: - self.actor_pool.submit_client_job(lambda a, v : a.run.remote(v, self.cid), evaluate, self.cid) + self.actor_pool.submit_client_job( + lambda a, v: a.run.remote(v, self.cid), evaluate, self.cid + ) res = self.actor_pool.get_client_result(self.cid) except Exception as ex: From 248cba5a856578c5de75ebb3ec33fb7aa0abbb96 Mon Sep 17 00:00:00 2001 From: jafermarq Date: Tue, 11 Jul 2023 15:02:00 +0100 Subject: [PATCH 006/133] formatting --- src/py/flwr/simulation/app.py | 5 +- .../simulation/ray_transport/ray_actor.py | 46 +++++++++++++------ .../ray_transport/ray_client_proxy.py | 1 - 3 files changed, 34 insertions(+), 18 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 2c027647f4dd..a6fff530d37c 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -33,10 +33,7 @@ VirtualClientEngineActor, VirtualClientEngineActorPool, ) -from flwr.simulation.ray_transport.ray_client_proxy import ( - RayActorClientProxy, - RayClientProxy, -) +from flwr.simulation.ray_transport.ray_client_proxy import RayActorClientProxy INVALID_ARGUMENTS_START_SIMULATION = """ INVALID ARGUMENTS ERROR diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 7f7bd9f90d93..e0e353648f30 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -1,3 +1,19 @@ +# Copyright 2020 Adap GmbH. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"""Ray-based Flower Actor and ActorPool implementation.""" + import traceback from typing import Any, Callable @@ -15,10 +31,13 @@ def __init__(self, message): @ray.remote class VirtualClientEngineActor: + """A Ray Actor class that runs client workloads.""" + def __init__(self, actor_id: int): self.actor_id = actor_id def run(self, client_fn, client_id): + """Run a client workload.""" # execute tasks and return result # return also cid which is needed to ensure results # from the pool are correctly assigned to each ClientProxy @@ -28,15 +47,18 @@ def run(self, client_fn, client_id): client_trace = traceback.format_exc() message = ( "\n\tSomething went wrong when running your client workload." - f"\n\tClient {client_id} crashed when the {self.__class__.__name__} was running its workload." - f" \n\tThis is the exception triggered on the client side: {client_trace}" + f"\n\tClient {client_id} crashed when the {self.__class__.__name__}" + " was running its workload." + f"\n\tException triggered on the client side: {client_trace}" ) - raise ClientException(message) + raise ClientException(message) from ex return client_id, client_results class VirtualClientEngineActorPool(ActorPool): + """A pool of VirtualClientEngine Actors.""" + def __init__(self, actors: list): super().__init__(actors) @@ -45,32 +67,30 @@ def __init__(self, actors: list): self._results = {} def submit_client_job(self, fn: Any, value: Callable, cid: int): + """Submit a job to the pool.""" self._results[cid] = None # print(f"Submitted to pool from VirtualClient {cid}") return super().submit(fn, value) def get_client_result(self, cid: int, timeout: int = 3600): + """Fetch the result submitted by the specified VirtualClient.""" while self._results[cid] is None: - # we need a try/except because if all VirtualClients are pinging the queue for the first - # result, only one of them will be able to "fetch" it. Leaving the rest trying to fetch - # the object following a reference that doesn't exist anymore. + # we need a try/except because if all VirtualClients are pinging the queue + # for the first result, only one of them will be able to "fetch" it. + # Leaving the rest trying to fetch the object following a reference that + # doesn't exist anymore. try: res_cid, res = self.get_next_unordered(timeout=timeout) # Track in dictionary # print(f"Adding result to dict for cid: {res_cid}") self._results[res_cid] = res - except KeyError as ex: + except KeyError: # result was already fetched, that's fine, continue continue - # print(f"VirtualClient with cid: {cid} still needs to wait for its result...") - # ready = not(self._results[cid] is None) - # print(f"is result for {cid} read?: {ready}") - - # print(f"Returning result for client {cid}, is it none: {self._results[cid] is None}") if self._results[cid] is None: raise RuntimeError( - f"Client {cid} failed, no result is available in the VirtualClientEngine." + f"No result is available in the VirtualClientEngine for client {cid}" ) return self._results.pop(cid) diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index f944662bf92c..38ec704f07f3 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -16,7 +16,6 @@ from logging import ERROR -from time import sleep from typing import Callable, Dict, Optional, cast import ray From 5ff115a51af3baf9c636e292f78992bf60e1c8a4 Mon Sep 17 00:00:00 2001 From: jafermarq Date: Wed, 12 Jul 2023 23:00:26 +0100 Subject: [PATCH 007/133] client failure OK; actor restarted if it fails; after N fails actor is removed from pool --- src/py/flwr/simulation/app.py | 8 +- .../simulation/ray_transport/ray_actor.py | 175 ++++++++++++++---- .../ray_transport/ray_client_proxy.py | 29 ++- 3 files changed, 171 insertions(+), 41 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index a6fff530d37c..4d180b8c5af5 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -147,7 +147,6 @@ def start_simulation( # pylint: disable=too-many-arguments client_manager=client_manager, ) # Setting simulation ON for server - initialized_server.is_simulation = True log( INFO, "Starting Flower simulation, config: %s", @@ -214,8 +213,13 @@ def start_simulation( # pylint: disable=too-many-arguments num_actors = min(num_actors, int(num_gpus / resources["num_gpus"])) # instantiate ActorPool + # TODO: maybe we want `max_restarts` to be user-defined ? + max_restarts = 1 # how many times an actor that crashes should be restarted + # after these many restarts, it will be removed from the pool actors = [ - VirtualClientEngineActor.options(**resources).remote(i) + VirtualClientEngineActor.options(**resources, max_restarts=max_restarts).remote( + i + ) for i in range(num_actors) ] log(INFO, "Flower VCE: Creating ActorPool with %s actors", len(actors)) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index e0e353648f30..294fec761881 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -14,8 +14,9 @@ # ============================================================================== """Ray-based Flower Actor and ActorPool implementation.""" +import threading import traceback -from typing import Any, Callable +from typing import Any, Callable, List, Set import ray from ray.util.actor_pool import ActorPool @@ -24,7 +25,7 @@ class ClientException(Exception): """Raised when client side logic crashes with an exception.""" - def __init__(self, message): + def __init__(self, message: str): self.message = f"\n{'>'*7} A ClientException occurred." + message super().__init__(self.message) @@ -36,7 +37,7 @@ class VirtualClientEngineActor: def __init__(self, actor_id: int): self.actor_id = actor_id - def run(self, client_fn, client_id): + def run(self, client_fn: Callable, client_id): """Run a client workload.""" # execute tasks and return result # return also cid which is needed to ensure results @@ -59,38 +60,144 @@ def run(self, client_fn, client_id): class VirtualClientEngineActorPool(ActorPool): """A pool of VirtualClientEngine Actors.""" - def __init__(self, actors: list): + def __init__(self, actors: List[VirtualClientEngineActor]): super().__init__(actors) - # stores completed job while keeping track to - # which VirtualClient it belongs to - self._results = {} - - def submit_client_job(self, fn: Any, value: Callable, cid: int): - """Submit a job to the pool.""" - self._results[cid] = None - # print(f"Submitted to pool from VirtualClient {cid}") - return super().submit(fn, value) - - def get_client_result(self, cid: int, timeout: int = 3600): - """Fetch the result submitted by the specified VirtualClient.""" - while self._results[cid] is None: - # we need a try/except because if all VirtualClients are pinging the queue - # for the first result, only one of them will be able to "fetch" it. - # Leaving the rest trying to fetch the object following a reference that - # doesn't exist anymore. + self._cid_to_future = {} # a dict + self.actor_to_remove: Set[str] = set() # a set + + self.lock = threading.RLock() + + def __reduce__(self): + """Make this class serialisable (needed due to lock).""" + return VirtualClientEngineActorPool, (self._idle_actors,) + + def submit(self, fn: Any, value: Callable, cid: str) -> None: + """Take idle actor and assign it a client workload.""" + actor = self._idle_actors.pop() + if self._check_and_remove_actor_from_pool(actor): + future = fn(actor, value) + future_key = tuple(future) if isinstance(future, List) else future + self._future_to_actor[future_key] = (self._next_task_index, actor, cid) + self._next_task_index += 1 + + # creating cid to future mapping + self._reset_cid_to_future_dict(cid) + self._cid_to_future[cid]["future"] = future_key + + def submit_client_job(self, fn: Any, value: Callable, cid: str) -> None: + """Submit a job while tracking client ids.""" + # We need to put this behind a lock since .submit() involves + # removing and adding elements from a dictionary. Which creates + # issues in multi-threaded settings + with self.lock: + if self._idle_actors: + # submit job since there is an Actor that's available + self.submit(fn, value, cid) + else: + # no actors are available, append to list of jobs to run later + self._pending_submits.append((fn, value, cid)) + + def _flag_future_as_ready(self, cid) -> None: + """Flag future for VirtualClient as ready.""" + self._cid_to_future[cid]["ready"] = True + + def _reset_cid_to_future_dict(self, cid: str) -> None: + """Reset cid:future mapping info.""" + if cid not in self._cid_to_future.keys(): + self._cid_to_future[cid] = {} + + self._cid_to_future[cid]["future"] = None + self._cid_to_future[cid]["ready"] = False + + def _is_future_ready(self, cid: str) -> bool: + """Return status of future for this VirtualClient.""" + if cid not in self._cid_to_future.keys(): + return False + else: + return self._cid_to_future[cid]["ready"] + + def _fetch_future_result(self, cid: str) -> Any: + """Fetch result for VirtualClient from Object Store.""" + res_cid, res = ray.get(self._cid_to_future[cid]["future"]) + + # sanity check: was the result fetched generated by a client with cid=cid? + assert ( + res_cid != res + ), f"The VirtualClient {cid} got result from client {res_cid}" + + # reset mapping + self._reset_cid_to_future_dict(cid) + + return res + + def flag_actor_for_removal(self, actor_id_hex: str) -> None: + """Flag actor that should be removed from pool.""" + with self.lock: + self.actor_to_remove.add(actor_id_hex) + print(f"Actor({actor_id_hex}) will be remove from pool.") + + def _check_and_remove_actor_from_pool( + self, actor: VirtualClientEngineActor + ) -> bool: + """Check if actor in set of those that should be removed. + + Remove the actor if so. + """ + with self.lock: + actor_id = actor._actor_id.hex() + # print(f"{self.actor_to_remove = }") + if actor_id in self.actor_to_remove: + # the actor should be removed + print(f"REMOVED actor {actor_id} from pool") + self.actor_to_remove.remove(actor_id) + return False + else: + # print(f"actor: {actor_id} should not be killed") + return True + + def process_unordered_future(self, timeout=None, ignore_if_timedout=False) -> None: + """Similar to parent's get_next_unordered() but without final ray.get().""" + if not self.has_next(): + raise StopIteration("No more results to get") + res, _ = ray.wait(list(self._future_to_actor), num_returns=1, timeout=timeout) + timeout_msg = "Timed out waiting for result" + raise_timeout_after_ignore = False + if res: + [future] = res + else: + if not ignore_if_timedout: + raise TimeoutError(timeout_msg) + else: + raise_timeout_after_ignore = True + + # it is highly likely that all VirtuaLClientEngine instances were waiting for + # the first result to be avaialbe, but only one VCE can do .pop() and fetch the + # actor we put this behind a lock since we are removing and adding elements to + # dictionaries note that ._return_actor will run .submit() internally + with self.lock: + _, a, cid = self._future_to_actor.pop(future, (None, None, -1)) + if a is not None: + # this thread did .pop() --> flag actor as available and submit new job + if self._check_and_remove_actor_from_pool(a): + self._return_actor(a) + # flag future as ready + self._flag_future_as_ready(cid) + # print(self._cid_to_future[cid]) + + if raise_timeout_after_ignore: + raise TimeoutError(timeout_msg + f". The task {future} has been ignored.") + + def get_client_result(self, cid: str, timeout: int = 3600) -> Any: + """Get result from VirtualClient with specific cid.""" + # loop until all jobs submitted to the pool are completed. Break early + # if the result for the ClientProxy running this method is ready + while self.has_next() and not (self._is_future_ready(cid)): try: - res_cid, res = self.get_next_unordered(timeout=timeout) - # Track in dictionary - # print(f"Adding result to dict for cid: {res_cid}") - self._results[res_cid] = res - except KeyError: - # result was already fetched, that's fine, continue - continue - - if self._results[cid] is None: - raise RuntimeError( - f"No result is available in the VirtualClientEngine for client {cid}" - ) + self.process_unordered_future(timeout=timeout) + except StopIteration: + # there are no pending jobs in the pool + break - return self._results.pop(cid) + # Fetch result belonging to the VirtualClient calling this method + return self._fetch_future_result(cid) diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index 38ec704f07f3..b9c835381130 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -15,7 +15,7 @@ """Ray-based Flower ClientProxy implementation.""" -from logging import ERROR +from logging import ERROR, WARNING from typing import Callable, Dict, Optional, cast import ray @@ -131,7 +131,7 @@ def get_properties( ) -> common.GetPropertiesRes: """Return client's properties.""" - def get_properties(): + def get_properties() -> common.GetPropertiesRes: client: Client = _create_client(self.client_fn, self.cid) return maybe_call_get_properties( client=client, @@ -144,6 +144,10 @@ def get_properties(): ) res = self.actor_pool.get_client_result(self.cid) + except ray.exceptions.RayActorError as ex: + log(WARNING, ex) + if hasattr(ex, "actor_id"): + self.actor_pool.flag_actor_for_removal(ex.actor_id) except Exception as ex: log(ERROR, ex) raise ex @@ -157,7 +161,7 @@ def get_parameters( ) -> common.GetParametersRes: """Return the current local model parameters.""" - def get_parameters(): + def get_parameters() -> common.GetParametersRes: client: Client = _create_client(self.client_fn, self.cid) return maybe_call_get_parameters( client=client, @@ -170,6 +174,11 @@ def get_parameters(): ) res = self.actor_pool.get_client_result(self.cid) + except ray.exceptions.RayActorError as ex: + log(WARNING, ex) + if hasattr(ex, "actor_id"): + self.actor_pool.flag_actor_for_removal(ex.actor_id) + except Exception as ex: log(ERROR, ex) raise ex @@ -181,7 +190,7 @@ def get_parameters(): def fit(self, ins: common.FitIns, timeout: Optional[float]) -> common.FitRes: """Train model parameters on the locally held dataset.""" - def fit(): + def fit() -> common.FitRes: client: Client = _create_client(self.client_fn, self.cid) return maybe_call_fit( client=client, @@ -194,6 +203,11 @@ def fit(): ) res = self.actor_pool.get_client_result(self.cid) + except ray.exceptions.RayActorError as ex: + log(WARNING, ex) + if hasattr(ex, "actor_id"): + self.actor_pool.flag_actor_for_removal(ex.actor_id) + except Exception as ex: log(ERROR, ex) raise ex @@ -207,7 +221,7 @@ def evaluate( ) -> common.EvaluateRes: """Evaluate model parameters on the locally held dataset.""" - def evaluate(): + def evaluate() -> common.EvaluateRes: client: Client = _create_client(self.client_fn, self.cid) return maybe_call_evaluate( client=client, @@ -220,6 +234,11 @@ def evaluate(): ) res = self.actor_pool.get_client_result(self.cid) + except ray.exceptions.RayActorError as ex: + log(WARNING, ex) + if hasattr(ex, "actor_id"): + self.actor_pool.flag_actor_for_removal(ex.actor_id) + except Exception as ex: log(ERROR, ex) raise ex From e15eb452bab3a9181248bae6851496dc57ce6004 Mon Sep 17 00:00:00 2001 From: jafermarq Date: Thu, 13 Jul 2023 22:09:55 +0100 Subject: [PATCH 008/133] fix --- src/py/flwr/simulation/ray_transport/ray_actor.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 294fec761881..4efbabc2f2b5 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -81,8 +81,7 @@ def submit(self, fn: Any, value: Callable, cid: str) -> None: self._future_to_actor[future_key] = (self._next_task_index, actor, cid) self._next_task_index += 1 - # creating cid to future mapping - self._reset_cid_to_future_dict(cid) + # update with future self._cid_to_future[cid]["future"] = future_key def submit_client_job(self, fn: Any, value: Callable, cid: str) -> None: @@ -91,6 +90,8 @@ def submit_client_job(self, fn: Any, value: Callable, cid: str) -> None: # removing and adding elements from a dictionary. Which creates # issues in multi-threaded settings with self.lock: + # creating cid to future mapping + self._reset_cid_to_future_dict(cid) if self._idle_actors: # submit job since there is an Actor that's available self.submit(fn, value, cid) From 72a7bde878f43344ea9fffe929e532dfca088daf Mon Sep 17 00:00:00 2001 From: jafermarq Date: Fri, 14 Jul 2023 18:44:06 +0100 Subject: [PATCH 009/133] tolerant to full node disconnect --- src/py/flwr/simulation/app.py | 35 ++++++--- .../simulation/ray_transport/ray_actor.py | 62 ++++++++++++---- .../ray_transport/ray_client_proxy.py | 72 ++++++------------- 3 files changed, 97 insertions(+), 72 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 4d180b8c5af5..7827ea0806f5 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -203,14 +203,27 @@ def start_simulation( # pylint: disable=too-many-arguments # determine how many actors can be added to the pool. # this a function of the total resources visible to Ray and # the resources allocated for each virtual client - num_cpus = cluster_resources["CPU"] - num_gpus = cluster_resources.get("GPU", 0) # there might not be GPU + # TODO: this function needs a better name + def pool_actor_size(): + """Calculate number of Actors that fit in pool given the resources in the. - num_actors = int(num_cpus / resources["num_cpus"]) + cluster and those required per client. + """ + cluster_resources = ray.cluster_resources() + num_cpus = cluster_resources["CPU"] + num_gpus = cluster_resources.get("GPU", 0) # there might not be GPU + num_actors = int(num_cpus / resources["num_cpus"]) + # if a GPU is present and client resources do require one + if resources["num_gpus"] > 0.0: + if num_gpus: + # if there are gpus in the cluster + num_actors = min(num_actors, int(num_gpus / resources["num_gpus"])) + else: + num_actors = 0 - # if a GPU is present and client resources do require one - if num_gpus and resources["num_gpus"] > 0.0: - num_actors = min(num_actors, int(num_gpus / resources["num_gpus"])) + return num_actors + + num_actors = pool_actor_size() # instantiate ActorPool # TODO: maybe we want `max_restarts` to be user-defined ? @@ -222,9 +235,15 @@ def start_simulation( # pylint: disable=too-many-arguments ) for i in range(num_actors) ] - log(INFO, "Flower VCE: Creating ActorPool with %s actors", len(actors)) + log( + INFO, + "Flower VCE: Creating %s with %s %s", + VirtualClientEngineActorPool.__name__, + len(actors), + VirtualClientEngineActor.__class__.__name__, + ) - pool = VirtualClientEngineActorPool(actors) + pool = VirtualClientEngineActorPool(actors, pool_size_fn=pool_actor_size) for cid in cids: client_proxy = RayActorClientProxy( diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 4efbabc2f2b5..428cd9ef8668 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -16,11 +16,14 @@ import threading import traceback +from logging import ERROR, WARNING from typing import Any, Callable, List, Set import ray from ray.util.actor_pool import ActorPool +from flwr.common.logger import log + class ClientException(Exception): """Raised when client side logic crashes with an exception.""" @@ -37,6 +40,11 @@ class VirtualClientEngineActor: def __init__(self, actor_id: int): self.actor_id = actor_id + def terminate(self): + """Terminate Actor.""" + log(WARNING, f"Manually terminating {self.__class__.__name__}") + ray.actor.exit_actor() + def run(self, client_fn: Callable, client_id): """Run a client workload.""" # execute tasks and return result @@ -60,17 +68,19 @@ def run(self, client_fn: Callable, client_id): class VirtualClientEngineActorPool(ActorPool): """A pool of VirtualClientEngine Actors.""" - def __init__(self, actors: List[VirtualClientEngineActor]): + def __init__(self, actors: List[VirtualClientEngineActor], pool_size_fn: Callable): super().__init__(actors) self._cid_to_future = {} # a dict self.actor_to_remove: Set[str] = set() # a set + self.pool_size = pool_size_fn + self.num_actors = self.pool_size() self.lock = threading.RLock() def __reduce__(self): """Make this class serialisable (needed due to lock).""" - return VirtualClientEngineActorPool, (self._idle_actors,) + return VirtualClientEngineActorPool, (self._idle_actors, self.pool_size) def submit(self, fn: Any, value: Callable, cid: str) -> None: """Take idle actor and assign it a client workload.""" @@ -123,9 +133,9 @@ def _fetch_future_result(self, cid: str) -> Any: res_cid, res = ray.get(self._cid_to_future[cid]["future"]) # sanity check: was the result fetched generated by a client with cid=cid? - assert ( - res_cid != res - ), f"The VirtualClient {cid} got result from client {res_cid}" + assert res_cid != res, log( + ERROR, f"The VirtualClient {cid} got result from client {res_cid}" + ) # reset mapping self._reset_cid_to_future_dict(cid) @@ -136,7 +146,7 @@ def flag_actor_for_removal(self, actor_id_hex: str) -> None: """Flag actor that should be removed from pool.""" with self.lock: self.actor_to_remove.add(actor_id_hex) - print(f"Actor({actor_id_hex}) will be remove from pool.") + log(WARNING, f"Actor({actor_id_hex}) will be remove from pool.") def _check_and_remove_actor_from_pool( self, actor: VirtualClientEngineActor @@ -150,13 +160,36 @@ def _check_and_remove_actor_from_pool( # print(f"{self.actor_to_remove = }") if actor_id in self.actor_to_remove: # the actor should be removed - print(f"REMOVED actor {actor_id} from pool") + log(WARNING, f"REMOVED actor {actor_id} from pool") self.actor_to_remove.remove(actor_id) return False else: # print(f"actor: {actor_id} should not be killed") return True + def _check_actor_fits_in_pool(self) -> bool: + """Determine if available resources are haven't changed. + + If true, allow the actor to be added back to the pool. Else don't allow it + (effectively reducing the size of the pool). + """ + num_actors_updated = self.pool_size() + + if num_actors_updated < self.num_actors: + log( + WARNING, + "Cluster resources have changed. Number of actors in the pool should be" + "reduced from {self.num_actors} down to {num_actors_updated} -- This" + "might take several intermediate steps", + ) + # we are preventing one actor to be added back in the queue, so we just + # decreated the number of actors by one eventually `self.num_actors` + # should be equal what self.pool_size() returns + self.num_actors -= 1 + return False + else: + return True + def process_unordered_future(self, timeout=None, ignore_if_timedout=False) -> None: """Similar to parent's get_next_unordered() but without final ray.get().""" if not self.has_next(): @@ -179,12 +212,15 @@ def process_unordered_future(self, timeout=None, ignore_if_timedout=False) -> No with self.lock: _, a, cid = self._future_to_actor.pop(future, (None, None, -1)) if a is not None: - # this thread did .pop() --> flag actor as available and submit new job - if self._check_and_remove_actor_from_pool(a): - self._return_actor(a) - # flag future as ready - self._flag_future_as_ready(cid) - # print(self._cid_to_future[cid]) + # still space in queue ? (no if a node died) + if self._check_actor_fits_in_pool(): + if self._check_and_remove_actor_from_pool(a): + self._return_actor(a) + # flag future as ready + self._flag_future_as_ready(cid) + # print(self._cid_to_future[cid]) + else: + a.terminate.remote() if raise_timeout_after_ignore: raise TimeoutError(timeout_msg + f". The task {future} has been ignored.") diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index b9c835381130..f32ce2d716d7 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -126,6 +126,23 @@ def __init__( self.client_fn = client_fn self.actor_pool = actor_pool + def _submit_job(self, job: Callable): + try: + self.actor_pool.submit_client_job( + lambda a, v: a.run.remote(v, self.cid), job, self.cid + ) + res = self.actor_pool.get_client_result(self.cid) + + except ray.exceptions.RayActorError as ex: + log(WARNING, ex) + if hasattr(ex, "actor_id"): + self.actor_pool.flag_actor_for_removal(ex.actor_id) + except Exception as ex: + log(ERROR, ex) + raise ex + + return res + def get_properties( self, ins: common.GetPropertiesIns, timeout: Optional[float] ) -> common.GetPropertiesRes: @@ -138,19 +155,8 @@ def get_properties() -> common.GetPropertiesRes: get_properties_ins=ins, ) - try: - self.actor_pool.submit_client_job( - lambda a, v: a.run.remote(v, self.cid), get_properties, self.cid - ) - res = self.actor_pool.get_client_result(self.cid) + res = self._submit_job(get_properties) - except ray.exceptions.RayActorError as ex: - log(WARNING, ex) - if hasattr(ex, "actor_id"): - self.actor_pool.flag_actor_for_removal(ex.actor_id) - except Exception as ex: - log(ERROR, ex) - raise ex return cast( common.GetPropertiesRes, res, @@ -168,20 +174,8 @@ def get_parameters() -> common.GetParametersRes: get_parameters_ins=ins, ) - try: - self.actor_pool.submit_client_job( - lambda a, v: a.run.remote(v, self.cid), get_parameters, self.cid - ) - res = self.actor_pool.get_client_result(self.cid) + res = self._submit_job(get_parameters) - except ray.exceptions.RayActorError as ex: - log(WARNING, ex) - if hasattr(ex, "actor_id"): - self.actor_pool.flag_actor_for_removal(ex.actor_id) - - except Exception as ex: - log(ERROR, ex) - raise ex return cast( common.GetParametersRes, res, @@ -197,20 +191,8 @@ def fit() -> common.FitRes: fit_ins=ins, ) - try: - self.actor_pool.submit_client_job( - lambda a, v: a.run.remote(v, self.cid), fit, self.cid - ) - res = self.actor_pool.get_client_result(self.cid) - - except ray.exceptions.RayActorError as ex: - log(WARNING, ex) - if hasattr(ex, "actor_id"): - self.actor_pool.flag_actor_for_removal(ex.actor_id) + res = self._submit_job(fit) - except Exception as ex: - log(ERROR, ex) - raise ex return cast( common.FitRes, res, @@ -228,20 +210,8 @@ def evaluate() -> common.EvaluateRes: evaluate_ins=ins, ) - try: - self.actor_pool.submit_client_job( - lambda a, v: a.run.remote(v, self.cid), evaluate, self.cid - ) - res = self.actor_pool.get_client_result(self.cid) + res = self._submit_job(evaluate) - except ray.exceptions.RayActorError as ex: - log(WARNING, ex) - if hasattr(ex, "actor_id"): - self.actor_pool.flag_actor_for_removal(ex.actor_id) - - except Exception as ex: - log(ERROR, ex) - raise ex return cast( common.EvaluateRes, res, From 45b4021c4f6e1ad84e38b5cfa8c1d123dd9caf2e Mon Sep 17 00:00:00 2001 From: jafermarq Date: Sat, 15 Jul 2023 13:54:38 +0100 Subject: [PATCH 010/133] better --- src/py/flwr/simulation/ray_transport/ray_actor.py | 14 ++++++++++---- .../simulation/ray_transport/ray_client_proxy.py | 10 ++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 428cd9ef8668..18a18443db8c 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -74,7 +74,7 @@ def __init__(self, actors: List[VirtualClientEngineActor], pool_size_fn: Callabl self._cid_to_future = {} # a dict self.actor_to_remove: Set[str] = set() # a set self.pool_size = pool_size_fn - self.num_actors = self.pool_size() + self.num_actors = len(actors) self.lock = threading.RLock() @@ -130,7 +130,11 @@ def _is_future_ready(self, cid: str) -> bool: def _fetch_future_result(self, cid: str) -> Any: """Fetch result for VirtualClient from Object Store.""" - res_cid, res = ray.get(self._cid_to_future[cid]["future"]) + try: + res_cid, res = ray.get(self._cid_to_future[cid]["future"]) + except ray.exceptions.RayActorError as ex: + log(ERROR, ex) + self._flag_actor_for_removal(ex.actor_id) # sanity check: was the result fetched generated by a client with cid=cid? assert res_cid != res, log( @@ -142,7 +146,7 @@ def _fetch_future_result(self, cid: str) -> Any: return res - def flag_actor_for_removal(self, actor_id_hex: str) -> None: + def _flag_actor_for_removal(self, actor_id_hex: str) -> None: """Flag actor that should be removed from pool.""" with self.lock: self.actor_to_remove.add(actor_id_hex) @@ -160,8 +164,10 @@ def _check_and_remove_actor_from_pool( # print(f"{self.actor_to_remove = }") if actor_id in self.actor_to_remove: # the actor should be removed - log(WARNING, f"REMOVED actor {actor_id} from pool") self.actor_to_remove.remove(actor_id) + self.num_actors -= 1 + log(WARNING, f"REMOVED actor {actor_id} from pool") + log(WARNING, f"Pool size: {self.num_actors}") return False else: # print(f"actor: {actor_id} should not be killed") diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index f32ce2d716d7..909d3e12dabb 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -133,11 +133,13 @@ def _submit_job(self, job: Callable): ) res = self.actor_pool.get_client_result(self.cid) - except ray.exceptions.RayActorError as ex: - log(WARNING, ex) - if hasattr(ex, "actor_id"): - self.actor_pool.flag_actor_for_removal(ex.actor_id) except Exception as ex: + if self.actor_pool.num_actors == 0: + # At this point we want to stop the simulation. + # since no more client workloads will be executed + log(ERROR, "ActorPool is empty!!! Disconnecting VirtualClient") + # TODO: the below does nothing? + self.reconnect() log(ERROR, ex) raise ex From 94564700f4d0d4eac571864517edfee1a61f2ffd Mon Sep 17 00:00:00 2001 From: jafermarq Date: Sat, 15 Jul 2023 14:14:36 +0100 Subject: [PATCH 011/133] consolidate actorpool and utilities --- src/py/flwr/simulation/app.py | 47 +++---------------- .../simulation/ray_transport/ray_actor.py | 47 +++++++++++++++---- .../ray_transport/ray_client_proxy.py | 2 +- 3 files changed, 46 insertions(+), 50 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 7827ea0806f5..0083f0ebfdfe 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -29,10 +29,7 @@ from flwr.server.client_manager import ClientManager from flwr.server.history import History from flwr.server.strategy import Strategy -from flwr.simulation.ray_transport.ray_actor import ( - VirtualClientEngineActor, - VirtualClientEngineActorPool, -) +from flwr.simulation.ray_transport.ray_actor import VirtualClientEngineActorPool from flwr.simulation.ray_transport.ray_client_proxy import RayActorClientProxy INVALID_ARGUMENTS_START_SIMULATION = """ @@ -200,51 +197,21 @@ def start_simulation( # pylint: disable=too-many-arguments resources, ) - # determine how many actors can be added to the pool. - # this a function of the total resources visible to Ray and - # the resources allocated for each virtual client - # TODO: this function needs a better name - def pool_actor_size(): - """Calculate number of Actors that fit in pool given the resources in the. - - cluster and those required per client. - """ - cluster_resources = ray.cluster_resources() - num_cpus = cluster_resources["CPU"] - num_gpus = cluster_resources.get("GPU", 0) # there might not be GPU - num_actors = int(num_cpus / resources["num_cpus"]) - # if a GPU is present and client resources do require one - if resources["num_gpus"] > 0.0: - if num_gpus: - # if there are gpus in the cluster - num_actors = min(num_actors, int(num_gpus / resources["num_gpus"])) - else: - num_actors = 0 - - return num_actors - - num_actors = pool_actor_size() - # instantiate ActorPool # TODO: maybe we want `max_restarts` to be user-defined ? max_restarts = 1 # how many times an actor that crashes should be restarted # after these many restarts, it will be removed from the pool - actors = [ - VirtualClientEngineActor.options(**resources, max_restarts=max_restarts).remote( - i - ) - for i in range(num_actors) - ] + + pool = VirtualClientEngineActorPool(resources, max_restarts) + log( INFO, "Flower VCE: Creating %s with %s %s", - VirtualClientEngineActorPool.__name__, - len(actors), - VirtualClientEngineActor.__class__.__name__, + pool.__class__.__name__, + pool.num_actors, + pool._idle_actors[0].__class__.__name__, ) - pool = VirtualClientEngineActorPool(actors, pool_size_fn=pool_actor_size) - for cid in cids: client_proxy = RayActorClientProxy( client_fn=client_fn, diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 18a18443db8c..74e71c0a019e 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -17,7 +17,7 @@ import threading import traceback from logging import ERROR, WARNING -from typing import Any, Callable, List, Set +from typing import Any, Callable, Dict, List, Set import ray from ray.util.actor_pool import ActorPool @@ -37,9 +37,6 @@ def __init__(self, message: str): class VirtualClientEngineActor: """A Ray Actor class that runs client workloads.""" - def __init__(self, actor_id: int): - self.actor_id = actor_id - def terminate(self): """Terminate Actor.""" log(WARNING, f"Manually terminating {self.__class__.__name__}") @@ -65,22 +62,54 @@ def run(self, client_fn: Callable, client_id): return client_id, client_results +def pool_size_from_resources(client_resources: Dict): + """Calculate number of Actors that fit in pool given the resources in the. + + cluster and those required per client. + """ + cluster_resources = ray.cluster_resources() + num_cpus = cluster_resources["CPU"] + num_gpus = cluster_resources.get("GPU", 0) # there might not be GPU + num_actors = int(num_cpus / client_resources["num_cpus"]) + # if a GPU is present and client resources do require one + if client_resources["num_gpus"] > 0.0: + if num_gpus: + # if there are gpus in the cluster + num_actors = min(num_actors, int(num_gpus / client_resources["num_gpus"])) + else: + num_actors = 0 + + return num_actors + + class VirtualClientEngineActorPool(ActorPool): """A pool of VirtualClientEngine Actors.""" - def __init__(self, actors: List[VirtualClientEngineActor], pool_size_fn: Callable): + def __init__(self, client_resources: Dict, max_restarts: int = 1): + self.client_resources = client_resources + self.actor_max_restarts = max_restarts + num_actors = pool_size_from_resources(client_resources) + actors = [ + VirtualClientEngineActor.options( + **client_resources, max_restarts=max_restarts + ).remote() + for _ in range(num_actors) + ] + super().__init__(actors) self._cid_to_future = {} # a dict self.actor_to_remove: Set[str] = set() # a set - self.pool_size = pool_size_fn self.num_actors = len(actors) self.lock = threading.RLock() def __reduce__(self): """Make this class serialisable (needed due to lock).""" - return VirtualClientEngineActorPool, (self._idle_actors, self.pool_size) + return VirtualClientEngineActorPool, ( + self.client_resources, + self.actor_max_restarts, + ) def submit(self, fn: Any, value: Callable, cid: str) -> None: """Take idle actor and assign it a client workload.""" @@ -179,7 +208,7 @@ def _check_actor_fits_in_pool(self) -> bool: If true, allow the actor to be added back to the pool. Else don't allow it (effectively reducing the size of the pool). """ - num_actors_updated = self.pool_size() + num_actors_updated = pool_size_from_resources(self.client_resources) if num_actors_updated < self.num_actors: log( @@ -190,7 +219,7 @@ def _check_actor_fits_in_pool(self) -> bool: ) # we are preventing one actor to be added back in the queue, so we just # decreated the number of actors by one eventually `self.num_actors` - # should be equal what self.pool_size() returns + # should be equal what pool_size_from_resources(self.resources) returns self.num_actors -= 1 return False else: diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index 909d3e12dabb..40c45c57416a 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -15,7 +15,7 @@ """Ray-based Flower ClientProxy implementation.""" -from logging import ERROR, WARNING +from logging import ERROR from typing import Callable, Dict, Optional, cast import ray From ea967c4fc2242460f270fc2bbe957c9476611c4b Mon Sep 17 00:00:00 2001 From: jafermarq Date: Sat, 15 Jul 2023 14:44:46 +0100 Subject: [PATCH 012/133] better handling of exception when actor dies for good --- src/py/flwr/simulation/ray_transport/ray_actor.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 74e71c0a019e..756f92a7b56e 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -163,7 +163,12 @@ def _fetch_future_result(self, cid: str) -> Any: res_cid, res = ray.get(self._cid_to_future[cid]["future"]) except ray.exceptions.RayActorError as ex: log(ERROR, ex) - self._flag_actor_for_removal(ex.actor_id) + log(ERROR, traceback.format_exc()) + if hasattr(ex, 'actor_id'): + # RayActorError only contains the actor_id attribute + # if the actor won't be restarted again. + self._flag_actor_for_removal(ex.actor_id) + raise ex # sanity check: was the result fetched generated by a client with cid=cid? assert res_cid != res, log( @@ -214,8 +219,8 @@ def _check_actor_fits_in_pool(self) -> bool: log( WARNING, "Cluster resources have changed. Number of actors in the pool should be" - "reduced from {self.num_actors} down to {num_actors_updated} -- This" - "might take several intermediate steps", + f" reduced from {self.num_actors} down to {num_actors_updated}. This" + " might take several intermediate steps", ) # we are preventing one actor to be added back in the queue, so we just # decreated the number of actors by one eventually `self.num_actors` From 5386bffbe083f52fdb086984b2382deb713c7261 Mon Sep 17 00:00:00 2001 From: jafermarq Date: Sat, 15 Jul 2023 15:12:53 +0100 Subject: [PATCH 013/133] w/ previous --- src/py/flwr/simulation/ray_transport/ray_actor.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 756f92a7b56e..b4e3d4be5f2c 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -104,6 +104,8 @@ def __init__(self, client_resources: Dict, max_restarts: int = 1): self.lock = threading.RLock() + # TODO: asyncio check every N seconds if cluster has grown --> add more actors to the pool if so + def __reduce__(self): """Make this class serialisable (needed due to lock).""" return VirtualClientEngineActorPool, ( @@ -164,8 +166,8 @@ def _fetch_future_result(self, cid: str) -> Any: except ray.exceptions.RayActorError as ex: log(ERROR, ex) log(ERROR, traceback.format_exc()) - if hasattr(ex, 'actor_id'): - # RayActorError only contains the actor_id attribute + if hasattr(ex, "actor_id"): + # RayActorError only contains the actor_id attribute # if the actor won't be restarted again. self._flag_actor_for_removal(ex.actor_id) raise ex From 591e667656f9872db0431ac99d93f321912f58fe Mon Sep 17 00:00:00 2001 From: jafermarq Date: Mon, 17 Jul 2023 09:13:37 +0100 Subject: [PATCH 014/133] minor changes --- .../simulation/ray_transport/ray_actor.py | 34 ++++++++----------- .../ray_transport/ray_client_proxy.py | 4 +-- 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index b4e3d4be5f2c..e7d881735a97 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -16,7 +16,7 @@ import threading import traceback -from logging import ERROR, WARNING +from logging import ERROR, WARNING, INFO from typing import Any, Callable, Dict, List, Set import ray @@ -225,7 +225,7 @@ def _check_actor_fits_in_pool(self) -> bool: " might take several intermediate steps", ) # we are preventing one actor to be added back in the queue, so we just - # decreated the number of actors by one eventually `self.num_actors` + # decrease the number of actors by one eventually `self.num_actors` # should be equal what pool_size_from_resources(self.resources) returns self.num_actors -= 1 return False @@ -247,22 +247,17 @@ def process_unordered_future(self, timeout=None, ignore_if_timedout=False) -> No else: raise_timeout_after_ignore = True - # it is highly likely that all VirtuaLClientEngine instances were waiting for - # the first result to be avaialbe, but only one VCE can do .pop() and fetch the - # actor we put this behind a lock since we are removing and adding elements to - # dictionaries note that ._return_actor will run .submit() internally - with self.lock: - _, a, cid = self._future_to_actor.pop(future, (None, None, -1)) - if a is not None: - # still space in queue ? (no if a node died) - if self._check_actor_fits_in_pool(): - if self._check_and_remove_actor_from_pool(a): - self._return_actor(a) - # flag future as ready - self._flag_future_as_ready(cid) - # print(self._cid_to_future[cid]) - else: - a.terminate.remote() + _, a, cid = self._future_to_actor.pop(future, (None, None, -1)) + if a is not None: + # still space in queue ? (no if a node died) + if self._check_actor_fits_in_pool(): + if self._check_and_remove_actor_from_pool(a): + self._return_actor(a) + # flag future as ready + self._flag_future_as_ready(cid) + # print(self._cid_to_future[cid]) + else: + a.terminate.remote() if raise_timeout_after_ignore: raise TimeoutError(timeout_msg + f". The task {future} has been ignored.") @@ -273,7 +268,8 @@ def get_client_result(self, cid: str, timeout: int = 3600) -> Any: # if the result for the ClientProxy running this method is ready while self.has_next() and not (self._is_future_ready(cid)): try: - self.process_unordered_future(timeout=timeout) + with self.lock: + self.process_unordered_future(timeout=timeout) except StopIteration: # there are no pending jobs in the pool break diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index 40c45c57416a..f7c55d0ca8f7 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -14,7 +14,7 @@ # ============================================================================== """Ray-based Flower ClientProxy implementation.""" - +import traceback from logging import ERROR from typing import Callable, Dict, Optional, cast @@ -115,7 +115,6 @@ def reconnect( """Disconnect and (optionally) reconnect later.""" return common.DisconnectRes(reason="") # Nothing to do here (yet) - class RayActorClientProxy(ClientProxy): """Flower client proxy which delegates work using Ray.""" @@ -140,6 +139,7 @@ def _submit_job(self, job: Callable): log(ERROR, "ActorPool is empty!!! Disconnecting VirtualClient") # TODO: the below does nothing? self.reconnect() + log(ERROR, traceback.format_exc()) log(ERROR, ex) raise ex From 3e9d1a84aa05328debbaa97341e35a0b3cfa36b9 Mon Sep 17 00:00:00 2001 From: jafermarq Date: Mon, 17 Jul 2023 13:37:59 +0100 Subject: [PATCH 015/133] suport for node abrupt disconnect --- src/py/flwr/simulation/app.py | 3 +-- .../flwr/simulation/ray_transport/ray_actor.py | 17 ++++++++++------- .../ray_transport/ray_client_proxy.py | 1 + 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 0083f0ebfdfe..0215788b90ec 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -206,10 +206,9 @@ def start_simulation( # pylint: disable=too-many-arguments log( INFO, - "Flower VCE: Creating %s with %s %s", + "Flower VCE: Creating %s with %s actors", pool.__class__.__name__, pool.num_actors, - pool._idle_actors[0].__class__.__name__, ) for cid in cids: diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index e7d881735a97..65ed23ca5ef1 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -16,7 +16,7 @@ import threading import traceback -from logging import ERROR, WARNING, INFO +from logging import ERROR, INFO, WARNING from typing import Any, Callable, Dict, List, Set import ray @@ -238,14 +238,14 @@ def process_unordered_future(self, timeout=None, ignore_if_timedout=False) -> No raise StopIteration("No more results to get") res, _ = ray.wait(list(self._future_to_actor), num_returns=1, timeout=timeout) timeout_msg = "Timed out waiting for result" - raise_timeout_after_ignore = False if res: [future] = res else: if not ignore_if_timedout: raise TimeoutError(timeout_msg) else: - raise_timeout_after_ignore = True + # Treat as if nothing happened. + return _, a, cid = self._future_to_actor.pop(future, (None, None, -1)) if a is not None: @@ -259,9 +259,6 @@ def process_unordered_future(self, timeout=None, ignore_if_timedout=False) -> No else: a.terminate.remote() - if raise_timeout_after_ignore: - raise TimeoutError(timeout_msg + f". The task {future} has been ignored.") - def get_client_result(self, cid: str, timeout: int = 3600) -> Any: """Get result from VirtualClient with specific cid.""" # loop until all jobs submitted to the pool are completed. Break early @@ -269,7 +266,13 @@ def get_client_result(self, cid: str, timeout: int = 3600) -> Any: while self.has_next() and not (self._is_future_ready(cid)): try: with self.lock: - self.process_unordered_future(timeout=timeout) + # in multi-node settings, if one node goes down abruptly, the + # ray.wait() in the method below might wait forever... to get + # around this, we set small timeout (1second). We ignore the + # TimeOutException when this happens. Note none of this is + # strictly necessary if the users decides to manually de-register + # a node from Ray (i.e. via `ray stop` in the cli). + self.process_unordered_future(timeout=1, ignore_if_timedout=True) except StopIteration: # there are no pending jobs in the pool break diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index f7c55d0ca8f7..d74230dd987e 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -115,6 +115,7 @@ def reconnect( """Disconnect and (optionally) reconnect later.""" return common.DisconnectRes(reason="") # Nothing to do here (yet) + class RayActorClientProxy(ClientProxy): """Flower client proxy which delegates work using Ray.""" From 18de9e4b028864bf2f0cd6a5679e80162fd3b55a Mon Sep 17 00:00:00 2001 From: jafermarq Date: Mon, 17 Jul 2023 14:32:11 +0100 Subject: [PATCH 016/133] reverting lock positioning --- .../simulation/ray_transport/ray_actor.py | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 65ed23ca5ef1..05ece9901763 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -247,17 +247,18 @@ def process_unordered_future(self, timeout=None, ignore_if_timedout=False) -> No # Treat as if nothing happened. return - _, a, cid = self._future_to_actor.pop(future, (None, None, -1)) - if a is not None: - # still space in queue ? (no if a node died) - if self._check_actor_fits_in_pool(): - if self._check_and_remove_actor_from_pool(a): - self._return_actor(a) - # flag future as ready - self._flag_future_as_ready(cid) - # print(self._cid_to_future[cid]) - else: - a.terminate.remote() + with self.lock: + _, a, cid = self._future_to_actor.pop(future, (None, None, -1)) + if a is not None: + # still space in queue ? (no if a node died) + if self._check_actor_fits_in_pool(): + if self._check_and_remove_actor_from_pool(a): + self._return_actor(a) + # flag future as ready + self._flag_future_as_ready(cid) + # print(self._cid_to_future[cid]) + else: + a.terminate.remote() def get_client_result(self, cid: str, timeout: int = 3600) -> Any: """Get result from VirtualClient with specific cid.""" @@ -265,14 +266,13 @@ def get_client_result(self, cid: str, timeout: int = 3600) -> Any: # if the result for the ClientProxy running this method is ready while self.has_next() and not (self._is_future_ready(cid)): try: - with self.lock: - # in multi-node settings, if one node goes down abruptly, the - # ray.wait() in the method below might wait forever... to get - # around this, we set small timeout (1second). We ignore the - # TimeOutException when this happens. Note none of this is - # strictly necessary if the users decides to manually de-register - # a node from Ray (i.e. via `ray stop` in the cli). - self.process_unordered_future(timeout=1, ignore_if_timedout=True) + # in multi-node settings, if one node goes down abruptly, the + # ray.wait() in the method below might wait forever... to get + # around this, we set small timeout (1second). We ignore the + # TimeOutException when this happens. Note none of this is + # strictly necessary if the users decides to manually de-register + # a node from Ray (i.e. via `ray stop` in the cli). + self.process_unordered_future(timeout=1, ignore_if_timedout=True) except StopIteration: # there are no pending jobs in the pool break From 0213d9da788953a4c80d520d684bbd9e192010eb Mon Sep 17 00:00:00 2001 From: jafermarq Date: Mon, 17 Jul 2023 15:02:52 +0100 Subject: [PATCH 017/133] minor changes --- src/py/flwr/simulation/app.py | 26 ++++++++++--------- .../simulation/ray_transport/ray_actor.py | 21 +++++---------- 2 files changed, 20 insertions(+), 27 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 0215788b90ec..1b2534a20c60 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -94,11 +94,11 @@ def start_simulation( # pylint: disable=too-many-arguments List `client_id`s for each client. This is only required if `num_clients` is not set. Setting both `num_clients` and `clients_ids` with `len(clients_ids)` not equal to `num_clients` generates an error. - client_resources : Optional[Dict[str, float]] (default: None) - CPU and GPU resources for a single client. Supported keys are - `num_cpus` and `num_gpus`. Example: `{"num_cpus": 4, "num_gpus": 1}`. - To understand the GPU utilization caused by `num_gpus`, consult the Ray - documentation on GPU support. + client_resources : Optional[Dict[str, float]] (default: `{"num_cpus": 1, + "num_gpus": 0.0}` CPU and GPU resources for a single client. Supported keys + are `num_cpus` and `num_gpus`. To understand the GPU utilization caused by + `num_gpus`, as well as using custom resources, please consult the Ray + documentation. server : Optional[flwr.server.Server] (default: None). An implementation of the abstract base class `flwr.server.Server`. If no instance is provided, then `start_server` will create one. @@ -186,15 +186,17 @@ def start_simulation( # pylint: disable=too-many-arguments ) # log resources for each virtual_client - # If not specified by user, Ray uses default: 1x CPU, 0x GPU - resources = {"num_cpus": 1.0, "num_gpus": 0.0} - if client_resources: - for k, v in client_resources.items(): - resources[k] = v + if client_resources is None: + client_resources = {"num_cpus": 1, "num_gpus": 0.0} + log( + INFO, + "No `client_resources` specified. Using minimal resources for clients.", + ) + log( INFO, "Flower VCE: Resources for each Virtual Client: %s", - resources, + client_resources, ) # instantiate ActorPool @@ -202,7 +204,7 @@ def start_simulation( # pylint: disable=too-many-arguments max_restarts = 1 # how many times an actor that crashes should be restarted # after these many restarts, it will be removed from the pool - pool = VirtualClientEngineActorPool(resources, max_restarts) + pool = VirtualClientEngineActorPool(client_resources, max_restarts) log( INFO, diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 05ece9901763..4765a109e13f 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -16,7 +16,7 @@ import threading import traceback -from logging import ERROR, INFO, WARNING +from logging import ERROR, WARNING from typing import Any, Callable, Dict, List, Set import ray @@ -104,7 +104,8 @@ def __init__(self, client_resources: Dict, max_restarts: int = 1): self.lock = threading.RLock() - # TODO: asyncio check every N seconds if cluster has grown --> add more actors to the pool if so + # TODO: asyncio check every N seconds if cluster has grown + # --> add more actors to the pool if so def __reduce__(self): """Make this class serialisable (needed due to lock).""" @@ -232,7 +233,7 @@ def _check_actor_fits_in_pool(self) -> bool: else: return True - def process_unordered_future(self, timeout=None, ignore_if_timedout=False) -> None: + def process_unordered_future(self, timeout=None) -> None: """Similar to parent's get_next_unordered() but without final ray.get().""" if not self.has_next(): raise StopIteration("No more results to get") @@ -241,11 +242,7 @@ def process_unordered_future(self, timeout=None, ignore_if_timedout=False) -> No if res: [future] = res else: - if not ignore_if_timedout: - raise TimeoutError(timeout_msg) - else: - # Treat as if nothing happened. - return + raise TimeoutError(timeout_msg) with self.lock: _, a, cid = self._future_to_actor.pop(future, (None, None, -1)) @@ -266,13 +263,7 @@ def get_client_result(self, cid: str, timeout: int = 3600) -> Any: # if the result for the ClientProxy running this method is ready while self.has_next() and not (self._is_future_ready(cid)): try: - # in multi-node settings, if one node goes down abruptly, the - # ray.wait() in the method below might wait forever... to get - # around this, we set small timeout (1second). We ignore the - # TimeOutException when this happens. Note none of this is - # strictly necessary if the users decides to manually de-register - # a node from Ray (i.e. via `ray stop` in the cli). - self.process_unordered_future(timeout=1, ignore_if_timedout=True) + self.process_unordered_future(timeout=timeout) except StopIteration: # there are no pending jobs in the pool break From 7a3c79183366b092bd8480e94f4be05a89f6d746 Mon Sep 17 00:00:00 2001 From: jafermarq Date: Mon, 17 Jul 2023 17:34:12 +0100 Subject: [PATCH 018/133] minor changes; hints on how to try if simulation fails --- src/py/flwr/simulation/app.py | 29 ++++++++++++++++--- .../simulation/ray_transport/ray_actor.py | 28 +++++++++++------- .../ray_transport/ray_client_proxy.py | 12 ++++---- 3 files changed, 49 insertions(+), 20 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 1b2534a20c60..0c033593a5bf 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -222,10 +222,31 @@ def start_simulation( # pylint: disable=too-many-arguments initialized_server.client_manager().register(client=client_proxy) # Start training - hist = run_fl( - server=initialized_server, - config=initialized_config, - ) + try: + hist = run_fl( + server=initialized_server, + config=initialized_config, + ) + except Exception as ex: + log(ERROR, ex) + log( + ERROR, + "Your simulation crashed :(. This could be because of several reasons." + "The most common are: " + "\n\t > Your system couldn't fit a single VirtualClient: try lowering " + "`client_resources`." + "\n\t > All the actors in your pool crashed. This could be because: " + "\n\t\t - You clients hit an out-of-memory (OOM) error and actors couldn't " + "recover from it. Try launching your simulation with more generous " + f"`client_resources` setting (i.e. it seems {client_resources} is " + "not enough for your workload). Use fewer concurrent actors. " + "\n\t\t - You were running a multi-node simulation and all worker nodes " + "disconnected. The head node might still be alive but cannot accommodate " + f"any actor with resources: {client_resources}." + "\n\t\t - Your Actors crashed because of an unknown reason and all their " + f"restarts attempts ({max_restarts=}) have been exhausted." + ) + hist = None event(EventType.START_SIMULATION_LEAVE) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 4765a109e13f..428d90e38b37 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -79,6 +79,14 @@ def pool_size_from_resources(client_resources: Dict): else: num_actors = 0 + if num_actors == 0: + log( + WARNING, + f"Your ActorPool is empty. Your system ({num_cpus = }, {num_gpus = }) " + "does not meet the criteria to host at least one client with resources:" + f" {client_resources}. Consider lowering your `client_resources`", + ) + return num_actors @@ -142,7 +150,7 @@ def submit_client_job(self, fn: Any, value: Callable, cid: str) -> None: self._pending_submits.append((fn, value, cid)) def _flag_future_as_ready(self, cid) -> None: - """Flag future for VirtualClient as ready.""" + """Flag future for VirtualClient with cid=cid as ready.""" self._cid_to_future[cid]["ready"] = True def _reset_cid_to_future_dict(self, cid: str) -> None: @@ -154,7 +162,7 @@ def _reset_cid_to_future_dict(self, cid: str) -> None: self._cid_to_future[cid]["ready"] = False def _is_future_ready(self, cid: str) -> bool: - """Return status of future for this VirtualClient.""" + """Return status of future associated to the given client id (cid).""" if cid not in self._cid_to_future.keys(): return False else: @@ -166,7 +174,6 @@ def _fetch_future_result(self, cid: str) -> Any: res_cid, res = ray.get(self._cid_to_future[cid]["future"]) except ray.exceptions.RayActorError as ex: log(ERROR, ex) - log(ERROR, traceback.format_exc()) if hasattr(ex, "actor_id"): # RayActorError only contains the actor_id attribute # if the actor won't be restarted again. @@ -207,11 +214,10 @@ def _check_and_remove_actor_from_pool( log(WARNING, f"Pool size: {self.num_actors}") return False else: - # print(f"actor: {actor_id} should not be killed") return True def _check_actor_fits_in_pool(self) -> bool: - """Determine if available resources are haven't changed. + """Determine if available resources haven't changed. If true, allow the actor to be added back to the pool. Else don't allow it (effectively reducing the size of the pool). @@ -226,7 +232,7 @@ def _check_actor_fits_in_pool(self) -> bool: " might take several intermediate steps", ) # we are preventing one actor to be added back in the queue, so we just - # decrease the number of actors by one eventually `self.num_actors` + # decrease the number of actors by one. Eventually `self.num_actors` # should be equal what pool_size_from_resources(self.resources) returns self.num_actors -= 1 return False @@ -238,13 +244,14 @@ def process_unordered_future(self, timeout=None) -> None: if not self.has_next(): raise StopIteration("No more results to get") res, _ = ray.wait(list(self._future_to_actor), num_returns=1, timeout=timeout) - timeout_msg = "Timed out waiting for result" + if res: [future] = res else: - raise TimeoutError(timeout_msg) + raise TimeoutError("Timed out waiting for result") with self.lock: + # get actor that completed a job _, a, cid = self._future_to_actor.pop(future, (None, None, -1)) if a is not None: # still space in queue ? (no if a node died) @@ -253,14 +260,15 @@ def process_unordered_future(self, timeout=None) -> None: self._return_actor(a) # flag future as ready self._flag_future_as_ready(cid) - # print(self._cid_to_future[cid]) else: + # the actor doesn't fit in the pool anymore. + # Manually terminate the actor a.terminate.remote() def get_client_result(self, cid: str, timeout: int = 3600) -> Any: """Get result from VirtualClient with specific cid.""" # loop until all jobs submitted to the pool are completed. Break early - # if the result for the ClientProxy running this method is ready + # if the result for the ClientProxy calling this method is ready while self.has_next() and not (self._is_future_ready(cid)): try: self.process_unordered_future(timeout=timeout) diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index d74230dd987e..859eafe0cee8 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -126,12 +126,12 @@ def __init__( self.client_fn = client_fn self.actor_pool = actor_pool - def _submit_job(self, job: Callable): + def _submit_job(self, job: Callable, timeout: Optional[float]): try: self.actor_pool.submit_client_job( lambda a, v: a.run.remote(v, self.cid), job, self.cid ) - res = self.actor_pool.get_client_result(self.cid) + res = self.actor_pool.get_client_result(self.cid, timeout) except Exception as ex: if self.actor_pool.num_actors == 0: @@ -158,7 +158,7 @@ def get_properties() -> common.GetPropertiesRes: get_properties_ins=ins, ) - res = self._submit_job(get_properties) + res = self._submit_job(get_properties, timeout) return cast( common.GetPropertiesRes, @@ -177,7 +177,7 @@ def get_parameters() -> common.GetParametersRes: get_parameters_ins=ins, ) - res = self._submit_job(get_parameters) + res = self._submit_job(get_parameters, timeout) return cast( common.GetParametersRes, @@ -194,7 +194,7 @@ def fit() -> common.FitRes: fit_ins=ins, ) - res = self._submit_job(fit) + res = self._submit_job(fit, timeout) return cast( common.FitRes, @@ -213,7 +213,7 @@ def evaluate() -> common.EvaluateRes: evaluate_ins=ins, ) - res = self._submit_job(evaluate) + res = self._submit_job(evaluate, timeout) return cast( common.EvaluateRes, From c47780f9d85e26cfdb172eaec83e9ec3b718fcf0 Mon Sep 17 00:00:00 2001 From: "Daniel J. Beutel" Date: Fri, 11 Aug 2023 17:32:53 +0200 Subject: [PATCH 019/133] Format --- src/py/flwr/simulation/app.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 0c033593a5bf..ec4b3466480d 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -244,7 +244,7 @@ def start_simulation( # pylint: disable=too-many-arguments "disconnected. The head node might still be alive but cannot accommodate " f"any actor with resources: {client_resources}." "\n\t\t - Your Actors crashed because of an unknown reason and all their " - f"restarts attempts ({max_restarts=}) have been exhausted." + f"restarts attempts ({max_restarts=}) have been exhausted.", ) hist = None From 36ba7e79803f353d07a957819d52646155cf3d63 Mon Sep 17 00:00:00 2001 From: Javier Date: Sat, 12 Aug 2023 14:08:26 +0100 Subject: [PATCH 020/133] Update src/py/flwr/simulation/ray_transport/ray_actor.py Co-authored-by: Daniel J. Beutel --- src/py/flwr/simulation/ray_transport/ray_actor.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 428d90e38b37..24ea69628b6a 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -14,6 +14,7 @@ # ============================================================================== """Ray-based Flower Actor and ActorPool implementation.""" + import threading import traceback from logging import ERROR, WARNING From b0238b94735f6fc16ca1ebef5697ce37b6234697 Mon Sep 17 00:00:00 2001 From: Javier Date: Sat, 12 Aug 2023 14:15:47 +0100 Subject: [PATCH 021/133] Apply suggestions from code review Co-authored-by: Daniel J. Beutel --- src/py/flwr/simulation/app.py | 9 +++++---- src/py/flwr/simulation/ray_transport/ray_actor.py | 8 ++++---- src/py/flwr/simulation/ray_transport/ray_client_proxy.py | 3 ++- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index ec4b3466480d..8d636b85d116 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -185,13 +185,13 @@ def start_simulation( # pylint: disable=too-many-arguments cluster_resources, ) - # log resources for each virtual_client + # Log the resources that a single client will be able to use if client_resources is None: - client_resources = {"num_cpus": 1, "num_gpus": 0.0} log( INFO, "No `client_resources` specified. Using minimal resources for clients.", ) + client_resources = {"num_cpus": 1, "num_gpus": 0.0} log( INFO, @@ -199,10 +199,11 @@ def start_simulation( # pylint: disable=too-many-arguments client_resources, ) - # instantiate ActorPool + # Instantiate ActorPool # TODO: maybe we want `max_restarts` to be user-defined ? - max_restarts = 1 # how many times an actor that crashes should be restarted + # `max_restarts` determines how many times an actor that crashes should be restarted # after these many restarts, it will be removed from the pool + max_restarts = 1 pool = VirtualClientEngineActorPool(client_resources, max_restarts) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 24ea69628b6a..b8cbd913e052 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -43,13 +43,13 @@ def terminate(self): log(WARNING, f"Manually terminating {self.__class__.__name__}") ray.actor.exit_actor() - def run(self, client_fn: Callable, client_id): + def run(self, job_fn: Callable, cid: str): """Run a client workload.""" # execute tasks and return result # return also cid which is needed to ensure results # from the pool are correctly assigned to each ClientProxy try: - client_results = client_fn() + job_results = job_fn() except Exception as ex: client_trace = traceback.format_exc() message = ( @@ -123,7 +123,7 @@ def __reduce__(self): self.actor_max_restarts, ) - def submit(self, fn: Any, value: Callable, cid: str) -> None: + def submit(self, fn: Any, job_fn: Callable, cid: str) -> None: """Take idle actor and assign it a client workload.""" actor = self._idle_actors.pop() if self._check_and_remove_actor_from_pool(actor): @@ -135,7 +135,7 @@ def submit(self, fn: Any, value: Callable, cid: str) -> None: # update with future self._cid_to_future[cid]["future"] = future_key - def submit_client_job(self, fn: Any, value: Callable, cid: str) -> None: + def submit_client_job(self, fn: Any, job_fn: Callable, cid: str) -> None: """Submit a job while tracking client ids.""" # We need to put this behind a lock since .submit() involves # removing and adding elements from a dictionary. Which creates diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index 859eafe0cee8..1d03f359eac6 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -14,6 +14,7 @@ # ============================================================================== """Ray-based Flower ClientProxy implementation.""" + import traceback from logging import ERROR from typing import Callable, Dict, Optional, cast @@ -126,7 +127,7 @@ def __init__( self.client_fn = client_fn self.actor_pool = actor_pool - def _submit_job(self, job: Callable, timeout: Optional[float]): + def _submit_job(self, job_fn: Callable, timeout: Optional[float]): try: self.actor_pool.submit_client_job( lambda a, v: a.run.remote(v, self.cid), job, self.cid From 73ef8365e7de15fa50332499b29e46a1e7d572b8 Mon Sep 17 00:00:00 2001 From: javier Date: Sat, 12 Aug 2023 13:47:08 +0000 Subject: [PATCH 022/133] tweaks post-comments; fix to pool_size_from_resources --- src/py/flwr/simulation/app.py | 3 ++- .../simulation/ray_transport/ray_actor.py | 22 +++++++++++-------- .../ray_transport/ray_client_proxy.py | 2 +- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 8d636b85d116..0b16fa7325d5 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -143,7 +143,7 @@ def start_simulation( # pylint: disable=too-many-arguments strategy=strategy, client_manager=client_manager, ) - # Setting simulation ON for server + log( INFO, "Starting Flower simulation, config: %s", @@ -214,6 +214,7 @@ def start_simulation( # pylint: disable=too-many-arguments pool.num_actors, ) + # Register one RayClientProxy object for each client with the ClientManager for cid in cids: client_proxy = RayActorClientProxy( client_fn=client_fn, diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index b8cbd913e052..804f2ace62b0 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -1,4 +1,4 @@ -# Copyright 2020 Adap GmbH. All Rights Reserved. +# Copyright 2023 Flower Labs. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -54,13 +54,13 @@ def run(self, job_fn: Callable, cid: str): client_trace = traceback.format_exc() message = ( "\n\tSomething went wrong when running your client workload." - f"\n\tClient {client_id} crashed when the {self.__class__.__name__}" + f"\n\tClient {cid} crashed when the {self.__class__.__name__}" " was running its workload." f"\n\tException triggered on the client side: {client_trace}" ) raise ClientException(message) from ex - return client_id, client_results + return cid, job_results def pool_size_from_resources(client_resources: Dict): @@ -73,7 +73,7 @@ def pool_size_from_resources(client_resources: Dict): num_gpus = cluster_resources.get("GPU", 0) # there might not be GPU num_actors = int(num_cpus / client_resources["num_cpus"]) # if a GPU is present and client resources do require one - if client_resources["num_gpus"] > 0.0: + if "num_gpus" in client_resources.keys() and client_resources["num_gpus"] > 0.0: if num_gpus: # if there are gpus in the cluster num_actors = min(num_actors, int(num_gpus / client_resources["num_gpus"])) @@ -87,7 +87,9 @@ def pool_size_from_resources(client_resources: Dict): "does not meet the criteria to host at least one client with resources:" f" {client_resources}. Consider lowering your `client_resources`", ) - + raise ValueError(f"ActorPool is empty. Stopping Simulation."\ + "Check 'client_resources'") + return num_actors @@ -107,7 +109,9 @@ def __init__(self, client_resources: Dict, max_restarts: int = 1): super().__init__(actors) - self._cid_to_future = {} # a dict + # A dict that maps cid to another dict containing: a reference to the remote job + # and its status (i.e. whether it is ready or not) + self._cid_to_future: Dict[str, Dict[str, Any]] = {} self.actor_to_remove: Set[str] = set() # a set self.num_actors = len(actors) @@ -127,7 +131,7 @@ def submit(self, fn: Any, job_fn: Callable, cid: str) -> None: """Take idle actor and assign it a client workload.""" actor = self._idle_actors.pop() if self._check_and_remove_actor_from_pool(actor): - future = fn(actor, value) + future = fn(actor, job_fn) future_key = tuple(future) if isinstance(future, List) else future self._future_to_actor[future_key] = (self._next_task_index, actor, cid) self._next_task_index += 1 @@ -145,10 +149,10 @@ def submit_client_job(self, fn: Any, job_fn: Callable, cid: str) -> None: self._reset_cid_to_future_dict(cid) if self._idle_actors: # submit job since there is an Actor that's available - self.submit(fn, value, cid) + self.submit(fn, job_fn, cid) else: # no actors are available, append to list of jobs to run later - self._pending_submits.append((fn, value, cid)) + self._pending_submits.append((fn, job_fn, cid)) def _flag_future_as_ready(self, cid) -> None: """Flag future for VirtualClient with cid=cid as ready.""" diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index 1d03f359eac6..6c9d4d7cd036 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -130,7 +130,7 @@ def __init__( def _submit_job(self, job_fn: Callable, timeout: Optional[float]): try: self.actor_pool.submit_client_job( - lambda a, v: a.run.remote(v, self.cid), job, self.cid + lambda a, v: a.run.remote(v, self.cid), job_fn, self.cid ) res = self.actor_pool.get_client_result(self.cid, timeout) From 6f2c374bb7342e0c127de51c275db6f5e5713480 Mon Sep 17 00:00:00 2001 From: javier Date: Sat, 12 Aug 2023 14:48:52 +0000 Subject: [PATCH 023/133] Added TF actor with GPU fix; now you can specify which VCEActor to use --- src/py/flwr/simulation/app.py | 21 +++++- .../simulation/ray_transport/ray_actor.py | 70 ++++++++++++++++--- 2 files changed, 78 insertions(+), 13 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 0b16fa7325d5..94544e6ebf05 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -29,7 +29,7 @@ from flwr.server.client_manager import ClientManager from flwr.server.history import History from flwr.server.strategy import Strategy -from flwr.simulation.ray_transport.ray_actor import VirtualClientEngineActorPool +from flwr.simulation.ray_transport.ray_actor import VirtualClientEngineActorPool, VirtualClientEngineActor, DefaultActor from flwr.simulation.ray_transport.ray_client_proxy import RayActorClientProxy INVALID_ARGUMENTS_START_SIMULATION = """ @@ -72,6 +72,8 @@ def start_simulation( # pylint: disable=too-many-arguments client_manager: Optional[ClientManager] = None, ray_init_args: Optional[Dict[str, Any]] = None, keep_initialised: Optional[bool] = False, + actor_type: Optional[VirtualClientEngineActor] = DefaultActor, + actor_kwargs: Optional[Dict[str, Any]] = {}, ) -> History: """Start a Ray-based Flower simulation server. @@ -124,6 +126,18 @@ def start_simulation( # pylint: disable=too-many-arguments arguments from being passed to ray.init. keep_initialised: Optional[bool] (default: False) Set to True to prevent `ray.shutdown()` in case `ray.is_initialized()=True`. + + actor_type: Optional[VirtualClientEngineActor] (default: DefaultActor) + + Optionally specify the type of actor to use. The actor object, which + persist throughout the simulation will be the process in charged of + running the clients' jobs (i.e. their fit() method). If you are using + Tensorflow, you should use type `DefaultActor_TF` which will set TF's + GPU memory growth to True at initialisation (preventing premature OOM). + + actor_kwargs: Optional[Dict[str, Any]] (default: {}) + If you want to create your own Actor classes, you might need to pass + some input argument. You can use this dictionary for such purpose. Returns ------- @@ -205,7 +219,10 @@ def start_simulation( # pylint: disable=too-many-arguments # after these many restarts, it will be removed from the pool max_restarts = 1 - pool = VirtualClientEngineActorPool(client_resources, max_restarts) + pool = VirtualClientEngineActorPool(client_resources, + actor_type, + actor_kwargs, + max_restarts) log( INFO, diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 804f2ace62b0..b4672b3b6a11 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -17,8 +17,9 @@ import threading import traceback +from abc import ABC from logging import ERROR, WARNING -from typing import Any, Callable, Dict, List, Set +from typing import Any, Callable, Dict, List, Set, Union import ray from ray.util.actor_pool import ActorPool @@ -34,15 +35,14 @@ def __init__(self, message: str): super().__init__(self.message) -@ray.remote -class VirtualClientEngineActor: - """A Ray Actor class that runs client workloads.""" +class VirtualClientEngineActor(ABC): + """Abstract base class for VirtualClientEngine Actors""" def terminate(self): - """Terminate Actor.""" + """Manually terminate Actor object.""" log(WARNING, f"Manually terminating {self.__class__.__name__}") ray.actor.exit_actor() - + def run(self, job_fn: Callable, cid: str): """Run a client workload.""" # execute tasks and return result @@ -63,6 +63,45 @@ def run(self, job_fn: Callable, cid: str): return cid, job_results +@ray.remote +class DefaultActor(VirtualClientEngineActor): + """A Ray Actor class that runs client workloads.""" + + +@ray.remote +class DefaultActor_TF(VirtualClientEngineActor): + """A Ray Actor class that runs TF client workloads. + + It enables GPU memory growth to prevent premature OOM.""" + + def __init__(self): + super().__init__() + # By default, TF attempts maps all GPU memory to the process. + # We don't this behaviour in simulation, since it prevents us + # from having multiple Actors (and therefore Flower clients) sharing + # the same GPU. + # Luckily we can disable this behaviour by enabling memory growth + # on the GPU. In this way, VRAM allocated to the processes grows based + # on the needs for the workload. (this is for instance the default + # behaviour in Pytorch) + try: + import tensorflow as tf + gpus = tf.config.list_physical_devices('GPU') + if gpus: + try: + # Currently, memory growth needs to be the same across GPUs + for gpu in gpus: + tf.config.experimental.set_memory_growth(gpu, True) + logical_gpus = tf.config.list_logical_devices('GPU') + except RuntimeError as e: + # Memory growth must be set before GPUs have been initialized + print(e) + except Exception as e: + log(ERROR, "Do you have Tensorflow installed?") + raise e + + + def pool_size_from_resources(client_resources: Dict): """Calculate number of Actors that fit in pool given the resources in the. @@ -87,23 +126,30 @@ def pool_size_from_resources(client_resources: Dict): "does not meet the criteria to host at least one client with resources:" f" {client_resources}. Consider lowering your `client_resources`", ) - raise ValueError(f"ActorPool is empty. Stopping Simulation."\ + raise ValueError(f"ActorPool is empty. Stopping Simulation." \ "Check 'client_resources'") - + return num_actors class VirtualClientEngineActorPool(ActorPool): """A pool of VirtualClientEngine Actors.""" - def __init__(self, client_resources: Dict, max_restarts: int = 1): + def __init__(self, + client_resources: Dict[str, Union[int, float]], + actor_type: VirtualClientEngineActor, + actor_kwargs: Dict[str, Any], + max_restarts: int, + ): self.client_resources = client_resources + self.actor_type = actor_type + self.actor_kwargs = actor_kwargs self.actor_max_restarts = max_restarts num_actors = pool_size_from_resources(client_resources) actors = [ - VirtualClientEngineActor.options( + actor_type.options( **client_resources, max_restarts=max_restarts - ).remote() + ).remote(**actor_kwargs) for _ in range(num_actors) ] @@ -124,6 +170,8 @@ def __reduce__(self): """Make this class serialisable (needed due to lock).""" return VirtualClientEngineActorPool, ( self.client_resources, + self.actor_type, + self.actor_kwargs, self.actor_max_restarts, ) From 58d6722d997fba410d551758c1a3f097e817b2ca Mon Sep 17 00:00:00 2001 From: javier Date: Sat, 12 Aug 2023 15:13:21 +0000 Subject: [PATCH 024/133] minor tweaks --- src/py/flwr/simulation/ray_transport/ray_actor.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index b4672b3b6a11..2c719a183f6d 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -76,7 +76,7 @@ class DefaultActor_TF(VirtualClientEngineActor): def __init__(self): super().__init__() - # By default, TF attempts maps all GPU memory to the process. + # By default, TF maps all GPU memory to the process. # We don't this behaviour in simulation, since it prevents us # from having multiple Actors (and therefore Flower clients) sharing # the same GPU. @@ -86,13 +86,14 @@ def __init__(self): # behaviour in Pytorch) try: import tensorflow as tf + # this bit of code follows the guidelines for GPU usage + # in https://www.tensorflow.org/guide/gpu gpus = tf.config.list_physical_devices('GPU') if gpus: try: # Currently, memory growth needs to be the same across GPUs for gpu in gpus: tf.config.experimental.set_memory_growth(gpu, True) - logical_gpus = tf.config.list_logical_devices('GPU') except RuntimeError as e: # Memory growth must be set before GPUs have been initialized print(e) From b6f5fa7a5f95dfd4b04d15cc01dbca39f376e5e7 Mon Sep 17 00:00:00 2001 From: javier Date: Tue, 15 Aug 2023 13:50:45 +0000 Subject: [PATCH 025/133] option to specify actor scheduling strategy --- src/py/flwr/simulation/app.py | 24 ++++++++++++++----- .../simulation/ray_transport/ray_actor.py | 7 +++++- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 94544e6ebf05..19b1fdd5f6a3 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -17,9 +17,10 @@ import sys from logging import ERROR, INFO -from typing import Any, Callable, Dict, List, Optional +from typing import Any, Callable, Dict, List, Optional, Union import ray +from ray.util.scheduling_strategies import NodeAffinitySchedulingStrategy from flwr.client import ClientLike from flwr.common import EventType, event @@ -74,6 +75,9 @@ def start_simulation( # pylint: disable=too-many-arguments keep_initialised: Optional[bool] = False, actor_type: Optional[VirtualClientEngineActor] = DefaultActor, actor_kwargs: Optional[Dict[str, Any]] = {}, + actor_scheduling: Optional[Union[str, + NodeAffinitySchedulingStrategy] + ] = "DEFAULT", ) -> History: """Start a Ray-based Flower simulation server. @@ -126,7 +130,7 @@ def start_simulation( # pylint: disable=too-many-arguments arguments from being passed to ray.init. keep_initialised: Optional[bool] (default: False) Set to True to prevent `ray.shutdown()` in case `ray.is_initialized()=True`. - + actor_type: Optional[VirtualClientEngineActor] (default: DefaultActor) Optionally specify the type of actor to use. The actor object, which @@ -139,6 +143,13 @@ def start_simulation( # pylint: disable=too-many-arguments If you want to create your own Actor classes, you might need to pass some input argument. You can use this dictionary for such purpose. + actor_scheduling: Optional[Union[str, NodeAffinitySchedulingStrategy]] (default: "DEFAULT") + Optional string ("DEFAULT" or "SPREAD") for the VCE to choose in which + node the actor is placed. If you are an advanced user needed more control + you can use lower-level scheduling strategies to pin actors to specific + compute nodes (e.g. via NodeAffinitySchedulingStrategy). Please note this + is an advanced feature. For all details, please refer to the Ray documentation: + https://docs.ray.io/en/latest/ray-core/scheduling/index.html Returns ------- hist : flwr.server.history.History @@ -219,10 +230,11 @@ def start_simulation( # pylint: disable=too-many-arguments # after these many restarts, it will be removed from the pool max_restarts = 1 - pool = VirtualClientEngineActorPool(client_resources, - actor_type, - actor_kwargs, - max_restarts) + pool = VirtualClientEngineActorPool(client_resources=client_resources, + actor_type=actor_type, + actor_kwargs=actor_kwargs, + actor_scheduling=actor_scheduling, + max_restarts=max_restarts) log( INFO, diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 2c719a183f6d..59be16722948 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -140,16 +140,20 @@ def __init__(self, client_resources: Dict[str, Union[int, float]], actor_type: VirtualClientEngineActor, actor_kwargs: Dict[str, Any], + actor_scheduling: str, max_restarts: int, ): self.client_resources = client_resources self.actor_type = actor_type self.actor_kwargs = actor_kwargs + self.actor_scheduling = actor_scheduling self.actor_max_restarts = max_restarts num_actors = pool_size_from_resources(client_resources) actors = [ actor_type.options( - **client_resources, max_restarts=max_restarts + **client_resources, + scheduling_strategy=actor_scheduling, + max_restarts=max_restarts ).remote(**actor_kwargs) for _ in range(num_actors) ] @@ -173,6 +177,7 @@ def __reduce__(self): self.client_resources, self.actor_type, self.actor_kwargs, + self.actor_scheduling, self.actor_max_restarts, ) From 8980a4463151eb270eed4af5ffb01fb9481606cf Mon Sep 17 00:00:00 2001 From: jafermarq Date: Tue, 15 Aug 2023 16:53:19 +0100 Subject: [PATCH 026/133] format --- src/py/flwr/simulation/app.py | 33 ++++++++------- .../simulation/ray_transport/ray_actor.py | 42 +++++++++++-------- 2 files changed, 43 insertions(+), 32 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 19b1fdd5f6a3..342e94ea97e4 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -30,7 +30,11 @@ from flwr.server.client_manager import ClientManager from flwr.server.history import History from flwr.server.strategy import Strategy -from flwr.simulation.ray_transport.ray_actor import VirtualClientEngineActorPool, VirtualClientEngineActor, DefaultActor +from flwr.simulation.ray_transport.ray_actor import ( + DefaultActor, + VirtualClientEngineActor, + VirtualClientEngineActorPool, +) from flwr.simulation.ray_transport.ray_client_proxy import RayActorClientProxy INVALID_ARGUMENTS_START_SIMULATION = """ @@ -74,10 +78,8 @@ def start_simulation( # pylint: disable=too-many-arguments ray_init_args: Optional[Dict[str, Any]] = None, keep_initialised: Optional[bool] = False, actor_type: Optional[VirtualClientEngineActor] = DefaultActor, - actor_kwargs: Optional[Dict[str, Any]] = {}, - actor_scheduling: Optional[Union[str, - NodeAffinitySchedulingStrategy] - ] = "DEFAULT", + actor_kwargs: Optional[Dict[str, Any]] = None, + actor_scheduling: Optional[Union[str, NodeAffinitySchedulingStrategy]] = "DEFAULT", ) -> History: """Start a Ray-based Flower simulation server. @@ -139,11 +141,12 @@ def start_simulation( # pylint: disable=too-many-arguments Tensorflow, you should use type `DefaultActor_TF` which will set TF's GPU memory growth to True at initialisation (preventing premature OOM). - actor_kwargs: Optional[Dict[str, Any]] (default: {}) + actor_kwargs: Optional[Dict[str, Any]] (default: None) If you want to create your own Actor classes, you might need to pass some input argument. You can use this dictionary for such purpose. - actor_scheduling: Optional[Union[str, NodeAffinitySchedulingStrategy]] (default: "DEFAULT") + actor_scheduling: Optional[Union[str, NodeAffinitySchedulingStrategy]] + (default: "DEFAULT") Optional string ("DEFAULT" or "SPREAD") for the VCE to choose in which node the actor is placed. If you are an advanced user needed more control you can use lower-level scheduling strategies to pin actors to specific @@ -228,13 +231,15 @@ def start_simulation( # pylint: disable=too-many-arguments # TODO: maybe we want `max_restarts` to be user-defined ? # `max_restarts` determines how many times an actor that crashes should be restarted # after these many restarts, it will be removed from the pool - max_restarts = 1 - - pool = VirtualClientEngineActorPool(client_resources=client_resources, - actor_type=actor_type, - actor_kwargs=actor_kwargs, - actor_scheduling=actor_scheduling, - max_restarts=max_restarts) + max_restarts = 1 + + pool = VirtualClientEngineActorPool( + client_resources=client_resources, + actor_type=actor_type, + actor_kwargs=actor_kwargs, + actor_scheduling=actor_scheduling, + max_restarts=max_restarts, + ) log( INFO, diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 59be16722948..ee4be1b4923a 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -36,13 +36,13 @@ def __init__(self, message: str): class VirtualClientEngineActor(ABC): - """Abstract base class for VirtualClientEngine Actors""" + """Abstract base class for VirtualClientEngine Actors.""" def terminate(self): """Manually terminate Actor object.""" log(WARNING, f"Manually terminating {self.__class__.__name__}") ray.actor.exit_actor() - + def run(self, job_fn: Callable, cid: str): """Run a client workload.""" # execute tasks and return result @@ -71,8 +71,9 @@ class DefaultActor(VirtualClientEngineActor): @ray.remote class DefaultActor_TF(VirtualClientEngineActor): """A Ray Actor class that runs TF client workloads. - - It enables GPU memory growth to prevent premature OOM.""" + + It enables GPU memory growth to prevent premature OOM. + """ def __init__(self): super().__init__() @@ -82,13 +83,14 @@ def __init__(self): # the same GPU. # Luckily we can disable this behaviour by enabling memory growth # on the GPU. In this way, VRAM allocated to the processes grows based - # on the needs for the workload. (this is for instance the default + # on the needs for the workload. (this is for instance the default # behaviour in Pytorch) try: import tensorflow as tf + # this bit of code follows the guidelines for GPU usage # in https://www.tensorflow.org/guide/gpu - gpus = tf.config.list_physical_devices('GPU') + gpus = tf.config.list_physical_devices("GPU") if gpus: try: # Currently, memory growth needs to be the same across GPUs @@ -102,7 +104,6 @@ def __init__(self): raise e - def pool_size_from_resources(client_resources: Dict): """Calculate number of Actors that fit in pool given the resources in the. @@ -127,8 +128,9 @@ def pool_size_from_resources(client_resources: Dict): "does not meet the criteria to host at least one client with resources:" f" {client_resources}. Consider lowering your `client_resources`", ) - raise ValueError(f"ActorPool is empty. Stopping Simulation." \ - "Check 'client_resources'") + raise ValueError( + "ActorPool is empty. Stopping Simulation. Check 'client_resources'" + ) return num_actors @@ -136,25 +138,29 @@ def pool_size_from_resources(client_resources: Dict): class VirtualClientEngineActorPool(ActorPool): """A pool of VirtualClientEngine Actors.""" - def __init__(self, - client_resources: Dict[str, Union[int, float]], - actor_type: VirtualClientEngineActor, - actor_kwargs: Dict[str, Any], - actor_scheduling: str, - max_restarts: int, - ): + def __init__( + self, + client_resources: Dict[str, Union[int, float]], + actor_type: VirtualClientEngineActor, + actor_kwargs: Dict[str, Any], + actor_scheduling: str, + max_restarts: int, + ): self.client_resources = client_resources self.actor_type = actor_type self.actor_kwargs = actor_kwargs self.actor_scheduling = actor_scheduling self.actor_max_restarts = max_restarts num_actors = pool_size_from_resources(client_resources) + + args = actor_kwargs if actor_kwargs is not None else {} + actors = [ actor_type.options( **client_resources, scheduling_strategy=actor_scheduling, - max_restarts=max_restarts - ).remote(**actor_kwargs) + max_restarts=max_restarts, + ).remote(**args) for _ in range(num_actors) ] From d851f4c12c9c8b762e21d3b4da9f8454b1ecc494 Mon Sep 17 00:00:00 2001 From: jafermarq Date: Tue, 15 Aug 2023 17:06:40 +0100 Subject: [PATCH 027/133] . --- src/py/flwr/simulation/app.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 342e94ea97e4..1b4c4fe3ab7b 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -153,6 +153,7 @@ def start_simulation( # pylint: disable=too-many-arguments compute nodes (e.g. via NodeAffinitySchedulingStrategy). Please note this is an advanced feature. For all details, please refer to the Ray documentation: https://docs.ray.io/en/latest/ray-core/scheduling/index.html + Returns ------- hist : flwr.server.history.History From c4883f374555a4a3214070370b321624964cb122 Mon Sep 17 00:00:00 2001 From: javier Date: Wed, 16 Aug 2023 12:55:14 +0000 Subject: [PATCH 028/133] tweaks --- src/py/flwr/simulation/app.py | 10 +-- .../simulation/ray_transport/ray_actor.py | 87 ++++++++++--------- 2 files changed, 45 insertions(+), 52 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 1b4c4fe3ab7b..c038aed8e594 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -229,17 +229,11 @@ def start_simulation( # pylint: disable=too-many-arguments ) # Instantiate ActorPool - # TODO: maybe we want `max_restarts` to be user-defined ? - # `max_restarts` determines how many times an actor that crashes should be restarted - # after these many restarts, it will be removed from the pool - max_restarts = 1 - pool = VirtualClientEngineActorPool( client_resources=client_resources, actor_type=actor_type, actor_kwargs=actor_kwargs, actor_scheduling=actor_scheduling, - max_restarts=max_restarts, ) log( @@ -279,9 +273,7 @@ def start_simulation( # pylint: disable=too-many-arguments "not enough for your workload). Use fewer concurrent actors. " "\n\t\t - You were running a multi-node simulation and all worker nodes " "disconnected. The head node might still be alive but cannot accommodate " - f"any actor with resources: {client_resources}." - "\n\t\t - Your Actors crashed because of an unknown reason and all their " - f"restarts attempts ({max_restarts=}) have been exhausted.", + f"any actor with resources: {client_resources}.", ) hist = None diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index ee4be1b4923a..e64d96a6f55a 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -19,13 +19,19 @@ import traceback from abc import ABC from logging import ERROR, WARNING -from typing import Any, Callable, Dict, List, Set, Union +from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Union import ray from ray.util.actor_pool import ActorPool +from flwr import common from flwr.common.logger import log +# All possible returns by a client +ClientRes = Union[ + common.GetPropertiesRes, common.GetParametersRes, common.FitRes, common.EvaluateRes +] + class ClientException(Exception): """Raised when client side logic crashes with an exception.""" @@ -38,14 +44,14 @@ def __init__(self, message: str): class VirtualClientEngineActor(ABC): """Abstract base class for VirtualClientEngine Actors.""" - def terminate(self): + def terminate(self) -> None: """Manually terminate Actor object.""" log(WARNING, f"Manually terminating {self.__class__.__name__}") ray.actor.exit_actor() - def run(self, job_fn: Callable, cid: str): + def run(self, job_fn: Callable[[], ClientRes], cid: str) -> Tuple[str, Any]: """Run a client workload.""" - # execute tasks and return result + # Execute tasks and return result # return also cid which is needed to ensure results # from the pool are correctly assigned to each ClientProxy try: @@ -75,7 +81,7 @@ class DefaultActor_TF(VirtualClientEngineActor): It enables GPU memory growth to prevent premature OOM. """ - def __init__(self): + def __init__(self) -> None: super().__init__() # By default, TF maps all GPU memory to the process. # We don't this behaviour in simulation, since it prevents us @@ -88,7 +94,7 @@ def __init__(self): try: import tensorflow as tf - # this bit of code follows the guidelines for GPU usage + # This bit of code follows the guidelines for GPU usage # in https://www.tensorflow.org/guide/gpu gpus = tf.config.list_physical_devices("GPU") if gpus: @@ -104,19 +110,19 @@ def __init__(self): raise e -def pool_size_from_resources(client_resources: Dict): +def pool_size_from_resources(client_resources: Dict) -> int: """Calculate number of Actors that fit in pool given the resources in the. cluster and those required per client. """ cluster_resources = ray.cluster_resources() num_cpus = cluster_resources["CPU"] - num_gpus = cluster_resources.get("GPU", 0) # there might not be GPU + num_gpus = cluster_resources.get("GPU", 0) # There might not be GPU num_actors = int(num_cpus / client_resources["num_cpus"]) - # if a GPU is present and client resources do require one + # If a GPU is present and client resources do require one if "num_gpus" in client_resources.keys() and client_resources["num_gpus"] > 0.0: if num_gpus: - # if there are gpus in the cluster + # If there are gpus in the cluster num_actors = min(num_actors, int(num_gpus / client_resources["num_gpus"])) else: num_actors = 0 @@ -144,22 +150,19 @@ def __init__( actor_type: VirtualClientEngineActor, actor_kwargs: Dict[str, Any], actor_scheduling: str, - max_restarts: int, ): self.client_resources = client_resources self.actor_type = actor_type self.actor_kwargs = actor_kwargs self.actor_scheduling = actor_scheduling - self.actor_max_restarts = max_restarts num_actors = pool_size_from_resources(client_resources) args = actor_kwargs if actor_kwargs is not None else {} actors = [ - actor_type.options( + actor_type.options( # type: ignore **client_resources, scheduling_strategy=actor_scheduling, - max_restarts=max_restarts, ).remote(**args) for _ in range(num_actors) ] @@ -168,23 +171,19 @@ def __init__( # A dict that maps cid to another dict containing: a reference to the remote job # and its status (i.e. whether it is ready or not) - self._cid_to_future: Dict[str, Dict[str, Any]] = {} + self._cid_to_future: Dict[str, Dict[str, Union[bool, Any]]] = {} self.actor_to_remove: Set[str] = set() # a set self.num_actors = len(actors) self.lock = threading.RLock() - # TODO: asyncio check every N seconds if cluster has grown - # --> add more actors to the pool if so - - def __reduce__(self): + def __reduce__(self): # type: ignore """Make this class serialisable (needed due to lock).""" return VirtualClientEngineActorPool, ( self.client_resources, self.actor_type, self.actor_kwargs, self.actor_scheduling, - self.actor_max_restarts, ) def submit(self, fn: Any, job_fn: Callable, cid: str) -> None: @@ -204,17 +203,19 @@ def submit_client_job(self, fn: Any, job_fn: Callable, cid: str) -> None: # We need to put this behind a lock since .submit() involves # removing and adding elements from a dictionary. Which creates # issues in multi-threaded settings + with self.lock: - # creating cid to future mapping + #TODO: w/ timestamp check, call ray.resources() and add more actors to pool if more resources available + # Creating cid to future mapping self._reset_cid_to_future_dict(cid) if self._idle_actors: - # submit job since there is an Actor that's available + # Submit job since there is an Actor that's available self.submit(fn, job_fn, cid) else: - # no actors are available, append to list of jobs to run later + # No actors are available, append to list of jobs to run later self._pending_submits.append((fn, job_fn, cid)) - def _flag_future_as_ready(self, cid) -> None: + def _flag_future_as_ready(self, cid: str) -> None: """Flag future for VirtualClient with cid=cid as ready.""" self._cid_to_future[cid]["ready"] = True @@ -233,7 +234,7 @@ def _is_future_ready(self, cid: str) -> bool: else: return self._cid_to_future[cid]["ready"] - def _fetch_future_result(self, cid: str) -> Any: + def _fetch_future_result(self, cid: str) -> ClientRes: """Fetch result for VirtualClient from Object Store.""" try: res_cid, res = ray.get(self._cid_to_future[cid]["future"]) @@ -245,12 +246,12 @@ def _fetch_future_result(self, cid: str) -> Any: self._flag_actor_for_removal(ex.actor_id) raise ex - # sanity check: was the result fetched generated by a client with cid=cid? - assert res_cid != res, log( + # Sanity check: was the result fetched generated by a client with cid=cid? + assert res_cid == cid, log( ERROR, f"The VirtualClient {cid} got result from client {res_cid}" ) - # reset mapping + # Reset mapping self._reset_cid_to_future_dict(cid) return res @@ -269,10 +270,10 @@ def _check_and_remove_actor_from_pool( Remove the actor if so. """ with self.lock: - actor_id = actor._actor_id.hex() - # print(f"{self.actor_to_remove = }") + actor_id = actor._actor_id.hex() # type: ignore + if actor_id in self.actor_to_remove: - # the actor should be removed + # The actor should be removed self.actor_to_remove.remove(actor_id) self.num_actors -= 1 log(WARNING, f"REMOVED actor {actor_id} from pool") @@ -296,7 +297,7 @@ def _check_actor_fits_in_pool(self) -> bool: f" reduced from {self.num_actors} down to {num_actors_updated}. This" " might take several intermediate steps", ) - # we are preventing one actor to be added back in the queue, so we just + # We are preventing one actor to be added back in the queue, so we just # decrease the number of actors by one. Eventually `self.num_actors` # should be equal what pool_size_from_resources(self.resources) returns self.num_actors -= 1 @@ -304,9 +305,9 @@ def _check_actor_fits_in_pool(self) -> bool: else: return True - def process_unordered_future(self, timeout=None) -> None: + def process_unordered_future(self, timeout: Optional[float] = None) -> None: """Similar to parent's get_next_unordered() but without final ray.get().""" - if not self.has_next(): + if not self.has_next(): # type: ignore raise StopIteration("No more results to get") res, _ = ray.wait(list(self._future_to_actor), num_returns=1, timeout=timeout) @@ -316,29 +317,29 @@ def process_unordered_future(self, timeout=None) -> None: raise TimeoutError("Timed out waiting for result") with self.lock: - # get actor that completed a job + # Get actor that completed a job _, a, cid = self._future_to_actor.pop(future, (None, None, -1)) if a is not None: - # still space in queue ? (no if a node died) + # Still space in queue ? (no if a node died) if self._check_actor_fits_in_pool(): if self._check_and_remove_actor_from_pool(a): - self._return_actor(a) - # flag future as ready + self._return_actor(a) # type: ignore + # Flag future as ready self._flag_future_as_ready(cid) else: - # the actor doesn't fit in the pool anymore. + # The actor doesn't fit in the pool anymore. # Manually terminate the actor a.terminate.remote() - def get_client_result(self, cid: str, timeout: int = 3600) -> Any: + def get_client_result(self, cid: str, timeout: Optional[float]) -> ClientRes: """Get result from VirtualClient with specific cid.""" - # loop until all jobs submitted to the pool are completed. Break early + # Loop until all jobs submitted to the pool are completed. Break early # if the result for the ClientProxy calling this method is ready - while self.has_next() and not (self._is_future_ready(cid)): + while self.has_next() and not (self._is_future_ready(cid)): # type: ignore try: self.process_unordered_future(timeout=timeout) except StopIteration: - # there are no pending jobs in the pool + # There are no pending jobs in the pool break # Fetch result belonging to the VirtualClient calling this method From 9b2d27e473728040583eb235fbef0741c227e398 Mon Sep 17 00:00:00 2001 From: javier Date: Wed, 16 Aug 2023 14:19:26 +0000 Subject: [PATCH 029/133] tweaks, fixes for serialisation --- src/py/flwr/simulation/app.py | 31 +---- .../simulation/ray_transport/ray_actor.py | 111 ++++++++++-------- 2 files changed, 68 insertions(+), 74 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index c038aed8e594..d185af74076f 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -137,9 +137,7 @@ def start_simulation( # pylint: disable=too-many-arguments Optionally specify the type of actor to use. The actor object, which persist throughout the simulation will be the process in charged of - running the clients' jobs (i.e. their fit() method). If you are using - Tensorflow, you should use type `DefaultActor_TF` which will set TF's - GPU memory growth to True at initialisation (preventing premature OOM). + running the clients' jobs (i.e. their fit() method). actor_kwargs: Optional[Dict[str, Any]] (default: None) If you want to create your own Actor classes, you might need to pass @@ -253,29 +251,10 @@ def start_simulation( # pylint: disable=too-many-arguments initialized_server.client_manager().register(client=client_proxy) # Start training - try: - hist = run_fl( - server=initialized_server, - config=initialized_config, - ) - except Exception as ex: - log(ERROR, ex) - log( - ERROR, - "Your simulation crashed :(. This could be because of several reasons." - "The most common are: " - "\n\t > Your system couldn't fit a single VirtualClient: try lowering " - "`client_resources`." - "\n\t > All the actors in your pool crashed. This could be because: " - "\n\t\t - You clients hit an out-of-memory (OOM) error and actors couldn't " - "recover from it. Try launching your simulation with more generous " - f"`client_resources` setting (i.e. it seems {client_resources} is " - "not enough for your workload). Use fewer concurrent actors. " - "\n\t\t - You were running a multi-node simulation and all worker nodes " - "disconnected. The head node might still be alive but cannot accommodate " - f"any actor with resources: {client_resources}.", - ) - hist = None + hist = run_fl( + server=initialized_server, + config=initialized_config, + ) event(EventType.START_SIMULATION_LEAVE) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index e64d96a6f55a..ff20cf8639ae 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -23,6 +23,7 @@ import ray from ray.util.actor_pool import ActorPool +from ray.util.scheduling_strategies import NodeAffinitySchedulingStrategy from flwr import common from flwr.common.logger import log @@ -74,42 +75,6 @@ class DefaultActor(VirtualClientEngineActor): """A Ray Actor class that runs client workloads.""" -@ray.remote -class DefaultActor_TF(VirtualClientEngineActor): - """A Ray Actor class that runs TF client workloads. - - It enables GPU memory growth to prevent premature OOM. - """ - - def __init__(self) -> None: - super().__init__() - # By default, TF maps all GPU memory to the process. - # We don't this behaviour in simulation, since it prevents us - # from having multiple Actors (and therefore Flower clients) sharing - # the same GPU. - # Luckily we can disable this behaviour by enabling memory growth - # on the GPU. In this way, VRAM allocated to the processes grows based - # on the needs for the workload. (this is for instance the default - # behaviour in Pytorch) - try: - import tensorflow as tf - - # This bit of code follows the guidelines for GPU usage - # in https://www.tensorflow.org/guide/gpu - gpus = tf.config.list_physical_devices("GPU") - if gpus: - try: - # Currently, memory growth needs to be the same across GPUs - for gpu in gpus: - tf.config.experimental.set_memory_growth(gpu, True) - except RuntimeError as e: - # Memory growth must be set before GPUs have been initialized - print(e) - except Exception as e: - log(ERROR, "Do you have Tensorflow installed?") - raise e - - def pool_size_from_resources(client_resources: Dict) -> int: """Calculate number of Actors that fit in pool given the resources in the. @@ -142,14 +107,48 @@ def pool_size_from_resources(client_resources: Dict) -> int: class VirtualClientEngineActorPool(ActorPool): - """A pool of VirtualClientEngine Actors.""" + """A pool of VirtualClientEngine Actors. + + + Parameters + ---------- + client_resources : Dict[str, Union[int, float]] + A dictionary specifying the system resources that each + actor should have access. This will be used to calculate + the number of actors that fit in your cluster. Supported keys + are `num_cpus` and `num_gpus`. E.g. {`num_cpus`: 2, `num_gpus`: 0.5} + would allocate two Actors per GPU in your system assuming you have + enough CPUs. To understand the GPU utilization caused by `num_gpus`, + as well as using custom resources, please consult the Ray documentation. + + actor_type : VirtualClientEngineActor + A class defining how your Actor behaves. It should have the @ray.remote + decorator. Recall actors run workloads of virtual/simulated clients. In + this way, an actor would first "spawn" a particular client, then run the + method that indicated by the strategy (e.g. `fit()`), then it will return + the results back to the client proxy. + + actor_kwargs : Dict[str, Any] + If you implement your own Actor class, you might want to pass it some arguments + for initialization. You should use this argument to achieve so. + + actor_scheduling : Union[str, NodeAffinitySchedulingStrategy] + This allows you to control how Actors are scheduled/placed in the nodes + available to your simulation. + + actor_lists: List[VirtualClientEngineActor] (default: None) + This argument should not be used. It's only needed for serialization purposes + (see the `__reduce__` method). Each time it is executed, we want to retain + the same list of actors. + """ def __init__( self, client_resources: Dict[str, Union[int, float]], actor_type: VirtualClientEngineActor, actor_kwargs: Dict[str, Any], - actor_scheduling: str, + actor_scheduling: Union[str, NodeAffinitySchedulingStrategy], + actor_list: List[VirtualClientEngineActor] = None, ): self.client_resources = client_resources self.actor_type = actor_type @@ -159,13 +158,18 @@ def __init__( args = actor_kwargs if actor_kwargs is not None else {} - actors = [ - actor_type.options( # type: ignore - **client_resources, - scheduling_strategy=actor_scheduling, - ).remote(**args) - for _ in range(num_actors) - ] + if actor_list is None: + # When __reduce__ is executed, we don't want to created + # a new list of actors again. + actors = [ + actor_type.options( # type: ignore + **client_resources, + scheduling_strategy=actor_scheduling, + ).remote(**args) + for _ in range(num_actors) + ] + else: + actors = actor_list super().__init__(actors) @@ -184,6 +188,7 @@ def __reduce__(self): # type: ignore self.actor_type, self.actor_kwargs, self.actor_scheduling, + self._idle_actors, # Pass existing actors to avoid killing/re-creating ) def submit(self, fn: Any, job_fn: Callable, cid: str) -> None: @@ -230,12 +235,19 @@ def _reset_cid_to_future_dict(self, cid: str) -> None: def _is_future_ready(self, cid: str) -> bool: """Return status of future associated to the given client id (cid).""" if cid not in self._cid_to_future.keys(): + # With the current ClientProxy<-->ActorPool interaction + # we should never be hitting this condition. + log(WARNING, "This shouldn't be happening") return False else: return self._cid_to_future[cid]["ready"] def _fetch_future_result(self, cid: str) -> ClientRes: - """Fetch result for VirtualClient from Object Store.""" + """Fetch result for VirtualClient from Object Store. + + The job submitted by the ClientProxy interfacing with client with + cid=cid is ready. Here we fetch it from the object store and return. + """ try: res_cid, res = ray.get(self._cid_to_future[cid]["future"]) except ray.exceptions.RayActorError as ex: @@ -309,6 +321,7 @@ def process_unordered_future(self, timeout: Optional[float] = None) -> None: """Similar to parent's get_next_unordered() but without final ray.get().""" if not self.has_next(): # type: ignore raise StopIteration("No more results to get") + # Block until one result is ready res, _ = ray.wait(list(self._future_to_actor), num_returns=1, timeout=timeout) if res: @@ -320,11 +333,13 @@ def process_unordered_future(self, timeout: Optional[float] = None) -> None: # Get actor that completed a job _, a, cid = self._future_to_actor.pop(future, (None, None, -1)) if a is not None: - # Still space in queue ? (no if a node died) + # Still space in queue ? (no if a node in the cluster died) if self._check_actor_fits_in_pool(): if self._check_and_remove_actor_from_pool(a): self._return_actor(a) # type: ignore - # Flag future as ready + # Flag future as ready so ClientProxy with cid + # can break from the while loop (in `get_client_result()`) + # and fetch its result self._flag_future_as_ready(cid) else: # The actor doesn't fit in the pool anymore. From ff48ee144d1892003facd346f97b43b851cca2f0 Mon Sep 17 00:00:00 2001 From: javier Date: Wed, 16 Aug 2023 19:48:23 +0000 Subject: [PATCH 030/133] types and more --- src/py/flwr/simulation/app.py | 18 ++++-- .../simulation/ray_transport/ray_actor.py | 56 +++++++++++-------- .../ray_transport/ray_client_proxy.py | 15 +++-- 3 files changed, 56 insertions(+), 33 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 4d880f58e679..c6d8d29c2901 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -77,9 +77,9 @@ def start_simulation( # pylint: disable=too-many-arguments client_manager: Optional[ClientManager] = None, ray_init_args: Optional[Dict[str, Any]] = None, keep_initialised: Optional[bool] = False, - actor_type: Optional[VirtualClientEngineActor] = DefaultActor, + actor_type: type[VirtualClientEngineActor] = DefaultActor, actor_kwargs: Optional[Dict[str, Any]] = None, - actor_scheduling: Optional[Union[str, NodeAffinitySchedulingStrategy]] = "DEFAULT", + actor_scheduling: Union[str, NodeAffinitySchedulingStrategy] = "DEFAULT", ) -> History: """Start a Ray-based Flower simulation server. @@ -133,7 +133,7 @@ def start_simulation( # pylint: disable=too-many-arguments keep_initialised: Optional[bool] (default: False) Set to True to prevent `ray.shutdown()` in case `ray.is_initialized()=True`. - actor_type: Optional[VirtualClientEngineActor] (default: DefaultActor) + actor_type: VirtualClientEngineActor (default: DefaultActor) Optionally specify the type of actor to use. The actor object, which persist throughout the simulation will be the process in charged of @@ -264,9 +264,15 @@ def start_simulation( # pylint: disable=too-many-arguments "Your simulation crashed :(. This could be because of several reasons." "The most common are: " "\n\t > Your system couldn't fit a single VirtualClient: try lowering " - "`client_resources`. You used: %s" - "\n\t > Too many VirtualClients were spawned causing an issue: try raising " - "`client_resources`. You used: %s", + "`client_resources`." + "\n\t > All the actors in your pool crashed. This could be because: " + "\n\t\t - You clients hit an out-of-memory (OOM) error and actors couldn't " + "recover from it. Try launching your simulation with more generous " + "`client_resources` setting (i.e. it seems %s is " + "not enough for your workload). Use fewer concurrent actors. " + "\n\t\t - You were running a multi-node simulation and all worker nodes " + "disconnected. The head node might still be alive but cannot accommodate " + "any actor with resources: %s.", client_resources, client_resources, ) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index ff20cf8639ae..11d8f0bc6568 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -22,6 +22,7 @@ from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Union import ray +from ray import ObjectRef from ray.util.actor_pool import ActorPool from ray.util.scheduling_strategies import NodeAffinitySchedulingStrategy @@ -50,7 +51,7 @@ def terminate(self) -> None: log(WARNING, f"Manually terminating {self.__class__.__name__}") ray.actor.exit_actor() - def run(self, job_fn: Callable[[], ClientRes], cid: str) -> Tuple[str, Any]: + def run(self, job_fn: Callable[[], ClientRes], cid: str) -> Tuple[str, ClientRes]: """Run a client workload.""" # Execute tasks and return result # return also cid which is needed to ensure results @@ -75,7 +76,7 @@ class DefaultActor(VirtualClientEngineActor): """A Ray Actor class that runs client workloads.""" -def pool_size_from_resources(client_resources: Dict) -> int: +def pool_size_from_resources(client_resources: Dict[str, Union[int, float]]) -> int: """Calculate number of Actors that fit in pool given the resources in the. cluster and those required per client. @@ -108,8 +109,7 @@ def pool_size_from_resources(client_resources: Dict) -> int: class VirtualClientEngineActorPool(ActorPool): """A pool of VirtualClientEngine Actors. - - + Parameters ---------- client_resources : Dict[str, Union[int, float]] @@ -127,7 +127,7 @@ class VirtualClientEngineActorPool(ActorPool): this way, an actor would first "spawn" a particular client, then run the method that indicated by the strategy (e.g. `fit()`), then it will return the results back to the client proxy. - + actor_kwargs : Dict[str, Any] If you implement your own Actor class, you might want to pass it some arguments for initialization. You should use this argument to achieve so. @@ -135,7 +135,7 @@ class VirtualClientEngineActorPool(ActorPool): actor_scheduling : Union[str, NodeAffinitySchedulingStrategy] This allows you to control how Actors are scheduled/placed in the nodes available to your simulation. - + actor_lists: List[VirtualClientEngineActor] (default: None) This argument should not be used. It's only needed for serialization purposes (see the `__reduce__` method). Each time it is executed, we want to retain @@ -145,10 +145,10 @@ class VirtualClientEngineActorPool(ActorPool): def __init__( self, client_resources: Dict[str, Union[int, float]], - actor_type: VirtualClientEngineActor, - actor_kwargs: Dict[str, Any], + actor_type: type[VirtualClientEngineActor], + actor_kwargs: Optional[Dict[str, Any]], actor_scheduling: Union[str, NodeAffinitySchedulingStrategy], - actor_list: List[VirtualClientEngineActor] = None, + actor_list: Optional[List[VirtualClientEngineActor]] = None, ): self.client_resources = client_resources self.actor_type = actor_type @@ -175,24 +175,32 @@ def __init__( # A dict that maps cid to another dict containing: a reference to the remote job # and its status (i.e. whether it is ready or not) - self._cid_to_future: Dict[str, Dict[str, Union[bool, Any]]] = {} + self._cid_to_future: Dict[ + str, Dict[str, Union[bool, Optional[ObjectRef[Any]]]] + ] = {} self.actor_to_remove: Set[str] = set() # a set self.num_actors = len(actors) self.lock = threading.RLock() def __reduce__(self): # type: ignore - """Make this class serialisable (needed due to lock).""" + """Make this class serializable (needed due to lock).""" return VirtualClientEngineActorPool, ( self.client_resources, self.actor_type, self.actor_kwargs, self.actor_scheduling, - self._idle_actors, # Pass existing actors to avoid killing/re-creating + self._idle_actors, # Pass existing actors to avoid killing/re-creating ) - def submit(self, fn: Any, job_fn: Callable, cid: str) -> None: - """Take idle actor and assign it a client workload.""" + def submit( # type: ignore[override] + self, fn: Any, job_fn: Callable[[], ClientRes], cid: str + ) -> None: + """Take idle actor and assign it a client workload. + + Submit a job to an actor by first removing it from the list of idle actors, then + check if this actor was flagged to be removed from the pool + """ actor = self._idle_actors.pop() if self._check_and_remove_actor_from_pool(actor): future = fn(actor, job_fn) @@ -203,14 +211,16 @@ def submit(self, fn: Any, job_fn: Callable, cid: str) -> None: # update with future self._cid_to_future[cid]["future"] = future_key - def submit_client_job(self, fn: Any, job_fn: Callable, cid: str) -> None: + def submit_client_job( + self, fn: Any, job_fn: Callable[[], ClientRes], cid: str + ) -> None: """Submit a job while tracking client ids.""" # We need to put this behind a lock since .submit() involves # removing and adding elements from a dictionary. Which creates # issues in multi-threaded settings with self.lock: - #TODO: w/ timestamp check, call ray.resources() and add more actors to pool if more resources available + # TODO: w/ timestamp check, call ray.resources() # Creating cid to future mapping self._reset_cid_to_future_dict(cid) if self._idle_actors: @@ -240,16 +250,18 @@ def _is_future_ready(self, cid: str) -> bool: log(WARNING, "This shouldn't be happening") return False else: - return self._cid_to_future[cid]["ready"] + is_ready: bool = self._cid_to_future[cid]["ready"] # type: ignore + return is_ready def _fetch_future_result(self, cid: str) -> ClientRes: """Fetch result for VirtualClient from Object Store. - - The job submitted by the ClientProxy interfacing with client with - cid=cid is ready. Here we fetch it from the object store and return. + + The job submitted by the ClientProxy interfacing with client with cid=cid is + ready. Here we fetch it from the object store and return. """ try: - res_cid, res = ray.get(self._cid_to_future[cid]["future"]) + future: ObjectRef[Any] = self._cid_to_future[cid]["future"] # type: ignore + res_cid, res = ray.get(future) # type: (str, ClientRes) except ray.exceptions.RayActorError as ex: log(ERROR, ex) if hasattr(ex, "actor_id"): @@ -350,7 +362,7 @@ def get_client_result(self, cid: str, timeout: Optional[float]) -> ClientRes: """Get result from VirtualClient with specific cid.""" # Loop until all jobs submitted to the pool are completed. Break early # if the result for the ClientProxy calling this method is ready - while self.has_next() and not (self._is_future_ready(cid)): # type: ignore + while self.has_next() and not self._is_future_ready(cid): # type: ignore try: self.process_unordered_future(timeout=timeout) except StopIteration: diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index 6c9d4d7cd036..fe34dde73a7c 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -17,7 +17,7 @@ import traceback from logging import ERROR -from typing import Callable, Dict, Optional, cast +from typing import Callable, Dict, Optional, Union, cast import ray @@ -34,6 +34,9 @@ from flwr.simulation.ray_transport.ray_actor import VirtualClientEngineActorPool ClientFn = Callable[[str], ClientLike] +ClientRes = Union[ + common.GetPropertiesRes, common.GetParametersRes, common.FitRes, common.EvaluateRes +] class RayClientProxy(ClientProxy): @@ -127,7 +130,9 @@ def __init__( self.client_fn = client_fn self.actor_pool = actor_pool - def _submit_job(self, job_fn: Callable, timeout: Optional[float]): + def _submit_job( + self, job_fn: Callable[[], ClientRes], timeout: Optional[float] + ) -> ClientRes: try: self.actor_pool.submit_client_job( lambda a, v: a.run.remote(v, self.cid), job_fn, self.cid @@ -138,9 +143,9 @@ def _submit_job(self, job_fn: Callable, timeout: Optional[float]): if self.actor_pool.num_actors == 0: # At this point we want to stop the simulation. # since no more client workloads will be executed - log(ERROR, "ActorPool is empty!!! Disconnecting VirtualClient") - # TODO: the below does nothing? - self.reconnect() + log(ERROR, "ActorPool is empty!!!") + # TODO: Figure out how to disconnect ClientProxy + # self.reconnect() log(ERROR, traceback.format_exc()) log(ERROR, ex) raise ex From 400e89d205b9a604df694ff8201bddb4328cc6cd Mon Sep 17 00:00:00 2001 From: javier Date: Wed, 16 Aug 2023 19:54:23 +0000 Subject: [PATCH 031/133] w/ previous --- src/py/flwr/simulation/app.py | 4 ++-- src/py/flwr/simulation/ray_transport/ray_actor.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index c6d8d29c2901..5e9a56170f17 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -17,7 +17,7 @@ import sys from logging import ERROR, INFO -from typing import Any, Callable, Dict, List, Optional, Union +from typing import Any, Callable, Dict, List, Optional, Type, Union import ray from ray.util.scheduling_strategies import NodeAffinitySchedulingStrategy @@ -77,7 +77,7 @@ def start_simulation( # pylint: disable=too-many-arguments client_manager: Optional[ClientManager] = None, ray_init_args: Optional[Dict[str, Any]] = None, keep_initialised: Optional[bool] = False, - actor_type: type[VirtualClientEngineActor] = DefaultActor, + actor_type: Type[VirtualClientEngineActor] = DefaultActor, actor_kwargs: Optional[Dict[str, Any]] = None, actor_scheduling: Union[str, NodeAffinitySchedulingStrategy] = "DEFAULT", ) -> History: diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 11d8f0bc6568..c12336e68de3 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -19,7 +19,7 @@ import traceback from abc import ABC from logging import ERROR, WARNING -from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Union +from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Type, Union import ray from ray import ObjectRef @@ -145,7 +145,7 @@ class VirtualClientEngineActorPool(ActorPool): def __init__( self, client_resources: Dict[str, Union[int, float]], - actor_type: type[VirtualClientEngineActor], + actor_type: Type[VirtualClientEngineActor], actor_kwargs: Optional[Dict[str, Any]], actor_scheduling: Union[str, NodeAffinitySchedulingStrategy], actor_list: Optional[List[VirtualClientEngineActor]] = None, From ed5b01df9af42464181af4965f1b2cf91366ce73 Mon Sep 17 00:00:00 2001 From: javier Date: Wed, 16 Aug 2023 20:11:34 +0000 Subject: [PATCH 032/133] p37 --- .../simulation/ray_transport/ray_actor.py | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index c12336e68de3..34151e71f87a 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -39,7 +39,8 @@ class ClientException(Exception): """Raised when client side logic crashes with an exception.""" def __init__(self, message: str): - self.message = f"\n{'>'*7} A ClientException occurred." + message + div = ">" * 7 + self.message = "\n" + div + "A ClientException occurred." + message super().__init__(self.message) @@ -48,7 +49,7 @@ class VirtualClientEngineActor(ABC): def terminate(self) -> None: """Manually terminate Actor object.""" - log(WARNING, f"Manually terminating {self.__class__.__name__}") + log(WARNING, "Manually terminating %s}", self.__class__.__name__) ray.actor.exit_actor() def run(self, job_fn: Callable[[], ClientRes], cid: str) -> Tuple[str, ClientRes]: @@ -62,11 +63,14 @@ def run(self, job_fn: Callable[[], ClientRes], cid: str) -> Tuple[str, ClientRes client_trace = traceback.format_exc() message = ( "\n\tSomething went wrong when running your client workload." - f"\n\tClient {cid} crashed when the {self.__class__.__name__}" - " was running its workload." - f"\n\tException triggered on the client side: {client_trace}" + "\n\tClient " + + cid + + " crashed when the " + + self.__class__.__name__ + + " was running its workload." + "\n\tException triggered on the client side: " + client_trace, ) - raise ClientException(message) from ex + raise ClientException(str(message)) from ex return cid, job_results @@ -96,9 +100,12 @@ def pool_size_from_resources(client_resources: Dict[str, Union[int, float]]) -> if num_actors == 0: log( WARNING, - f"Your ActorPool is empty. Your system ({num_cpus = }, {num_gpus = }) " + "Your ActorPool is empty. Your system (%s, %s) " "does not meet the criteria to host at least one client with resources:" - f" {client_resources}. Consider lowering your `client_resources`", + " %s. Consider lowering your `client_resources`", + num_cpus, + num_gpus, + client_resources, ) raise ValueError( "ActorPool is empty. Stopping Simulation. Check 'client_resources'" @@ -272,7 +279,7 @@ def _fetch_future_result(self, cid: str) -> ClientRes: # Sanity check: was the result fetched generated by a client with cid=cid? assert res_cid == cid, log( - ERROR, f"The VirtualClient {cid} got result from client {res_cid}" + ERROR, "The VirtualClient %s got result from client %s", cid, res_cid ) # Reset mapping @@ -284,7 +291,7 @@ def _flag_actor_for_removal(self, actor_id_hex: str) -> None: """Flag actor that should be removed from pool.""" with self.lock: self.actor_to_remove.add(actor_id_hex) - log(WARNING, f"Actor({actor_id_hex}) will be remove from pool.") + log(WARNING, "Actor(%s) will be remove from pool.", actor_id_hex) def _check_and_remove_actor_from_pool( self, actor: VirtualClientEngineActor @@ -300,8 +307,8 @@ def _check_and_remove_actor_from_pool( # The actor should be removed self.actor_to_remove.remove(actor_id) self.num_actors -= 1 - log(WARNING, f"REMOVED actor {actor_id} from pool") - log(WARNING, f"Pool size: {self.num_actors}") + log(WARNING, "REMOVED actor %s from pool", actor_id) + log(WARNING, "Pool size: %s", self.num_actors) return False else: return True @@ -318,8 +325,10 @@ def _check_actor_fits_in_pool(self) -> bool: log( WARNING, "Cluster resources have changed. Number of actors in the pool should be" - f" reduced from {self.num_actors} down to {num_actors_updated}. This" + " reduced from %s down to %s. This" " might take several intermediate steps", + self.num_actors, + num_actors_updated, ) # We are preventing one actor to be added back in the queue, so we just # decrease the number of actors by one. Eventually `self.num_actors` From fcb42a16aa50c2bb6fcb3185e207137044184688 Mon Sep 17 00:00:00 2001 From: javier Date: Wed, 16 Aug 2023 20:36:37 +0000 Subject: [PATCH 033/133] yes --- .../simulation/ray_transport/ray_actor.py | 49 ++++++++++--------- .../ray_transport/ray_client_proxy.py | 4 +- 2 files changed, 28 insertions(+), 25 deletions(-) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 34151e71f87a..0c7ba38cf012 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -114,7 +114,9 @@ def pool_size_from_resources(client_resources: Dict[str, Union[int, float]]) -> return num_actors -class VirtualClientEngineActorPool(ActorPool): +class VirtualClientEngineActorPool( + ActorPool +): # pylint: disable=[too-many-instance-attributes, too-many-arguments] """A pool of VirtualClientEngine Actors. Parameters @@ -200,14 +202,13 @@ def __reduce__(self): # type: ignore self._idle_actors, # Pass existing actors to avoid killing/re-creating ) - def submit( # type: ignore[override] - self, fn: Any, job_fn: Callable[[], ClientRes], cid: str - ) -> None: + def submit(self, fn: Any, value: Tuple[Callable[[], ClientRes], str]) -> None: """Take idle actor and assign it a client workload. Submit a job to an actor by first removing it from the list of idle actors, then check if this actor was flagged to be removed from the pool """ + job_fn, cid = value actor = self._idle_actors.pop() if self._check_and_remove_actor_from_pool(actor): future = fn(actor, job_fn) @@ -219,23 +220,24 @@ def submit( # type: ignore[override] self._cid_to_future[cid]["future"] = future_key def submit_client_job( - self, fn: Any, job_fn: Callable[[], ClientRes], cid: str + self, actor_fn: Any, job: Tuple[Callable[[], ClientRes], str] ) -> None: """Submit a job while tracking client ids.""" # We need to put this behind a lock since .submit() involves # removing and adding elements from a dictionary. Which creates # issues in multi-threaded settings + _, cid = job with self.lock: - # TODO: w/ timestamp check, call ray.resources() + # TODO: w/ timestamp check, call ray.resources() # pylint: disable=fixme # Creating cid to future mapping self._reset_cid_to_future_dict(cid) if self._idle_actors: # Submit job since there is an Actor that's available - self.submit(fn, job_fn, cid) + self.submit(actor_fn, job) else: # No actors are available, append to list of jobs to run later - self._pending_submits.append((fn, job_fn, cid)) + self._pending_submits.append((actor_fn, job)) def _flag_future_as_ready(self, cid: str) -> None: """Flag future for VirtualClient with cid=cid as ready.""" @@ -243,7 +245,7 @@ def _flag_future_as_ready(self, cid: str) -> None: def _reset_cid_to_future_dict(self, cid: str) -> None: """Reset cid:future mapping info.""" - if cid not in self._cid_to_future.keys(): + if cid not in self._cid_to_future: self._cid_to_future[cid] = {} self._cid_to_future[cid]["future"] = None @@ -251,14 +253,13 @@ def _reset_cid_to_future_dict(self, cid: str) -> None: def _is_future_ready(self, cid: str) -> bool: """Return status of future associated to the given client id (cid).""" - if cid not in self._cid_to_future.keys(): + if cid not in self._cid_to_future: # With the current ClientProxy<-->ActorPool interaction # we should never be hitting this condition. log(WARNING, "This shouldn't be happening") return False - else: - is_ready: bool = self._cid_to_future[cid]["ready"] # type: ignore - return is_ready + + return self._cid_to_future[cid]["ready"] # type: ignore def _fetch_future_result(self, cid: str) -> ClientRes: """Fetch result for VirtualClient from Object Store. @@ -301,7 +302,9 @@ def _check_and_remove_actor_from_pool( Remove the actor if so. """ with self.lock: - actor_id = actor._actor_id.hex() # type: ignore + actor_id = ( + actor._actor_id.hex() # type: ignore # pylint: disable=protected-access + ) if actor_id in self.actor_to_remove: # The actor should be removed @@ -310,8 +313,8 @@ def _check_and_remove_actor_from_pool( log(WARNING, "REMOVED actor %s from pool", actor_id) log(WARNING, "Pool size: %s", self.num_actors) return False - else: - return True + + return True def _check_actor_fits_in_pool(self) -> bool: """Determine if available resources haven't changed. @@ -335,8 +338,8 @@ def _check_actor_fits_in_pool(self) -> bool: # should be equal what pool_size_from_resources(self.resources) returns self.num_actors -= 1 return False - else: - return True + + return True def process_unordered_future(self, timeout: Optional[float] = None) -> None: """Similar to parent's get_next_unordered() but without final ray.get().""" @@ -352,12 +355,12 @@ def process_unordered_future(self, timeout: Optional[float] = None) -> None: with self.lock: # Get actor that completed a job - _, a, cid = self._future_to_actor.pop(future, (None, None, -1)) - if a is not None: + _, actor, cid = self._future_to_actor.pop(future, (None, None, -1)) + if actor is not None: # Still space in queue ? (no if a node in the cluster died) if self._check_actor_fits_in_pool(): - if self._check_and_remove_actor_from_pool(a): - self._return_actor(a) # type: ignore + if self._check_and_remove_actor_from_pool(actor): + self._return_actor(actor) # type: ignore # Flag future as ready so ClientProxy with cid # can break from the while loop (in `get_client_result()`) # and fetch its result @@ -365,7 +368,7 @@ def process_unordered_future(self, timeout: Optional[float] = None) -> None: else: # The actor doesn't fit in the pool anymore. # Manually terminate the actor - a.terminate.remote() + actor.terminate.remote() def get_client_result(self, cid: str, timeout: Optional[float]) -> ClientRes: """Get result from VirtualClient with specific cid.""" diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index fe34dde73a7c..dcdcaefc377e 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -135,7 +135,7 @@ def _submit_job( ) -> ClientRes: try: self.actor_pool.submit_client_job( - lambda a, v: a.run.remote(v, self.cid), job_fn, self.cid + lambda a, v: a.run.remote(v, self.cid), (job_fn, self.cid) ) res = self.actor_pool.get_client_result(self.cid, timeout) @@ -144,7 +144,7 @@ def _submit_job( # At this point we want to stop the simulation. # since no more client workloads will be executed log(ERROR, "ActorPool is empty!!!") - # TODO: Figure out how to disconnect ClientProxy + # TODO: Implement ClientProxy disconnect # pylint: disable=fixme # self.reconnect() log(ERROR, traceback.format_exc()) log(ERROR, ex) From 151a507b1c69141b0654f1bf9618ea89c403097a Mon Sep 17 00:00:00 2001 From: javier Date: Thu, 17 Aug 2023 09:00:26 +0000 Subject: [PATCH 034/133] actor generator; periodically check for cluster growth --- src/py/flwr/simulation/app.py | 37 ++++++++++- .../simulation/ray_transport/ray_actor.py | 63 +++++++------------ 2 files changed, 57 insertions(+), 43 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 5e9a56170f17..4c860035c5b2 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -16,6 +16,7 @@ import sys +import threading from logging import ERROR, INFO from typing import Any, Callable, Dict, List, Optional, Type, Union @@ -34,6 +35,7 @@ DefaultActor, VirtualClientEngineActor, VirtualClientEngineActorPool, + pool_size_from_resources, ) from flwr.simulation.ray_transport.ray_client_proxy import RayActorClientProxy @@ -226,14 +228,40 @@ def start_simulation( # pylint: disable=too-many-arguments client_resources, ) + actor_args = {} if actor_kwargs is None else actor_kwargs + + # An actor generator. This is called N times to add N actors + # to the pool. If at some point the pool can accommodate more actors + # this will be called again. + def create_actor_fn() -> Type[VirtualClientEngineActor]: + return actor_type.options( # type: ignore + **client_resources, + scheduling_strategy=actor_scheduling, + ).remote(**actor_args) + # Instantiate ActorPool pool = VirtualClientEngineActorPool( + create_actor_fn=create_actor_fn, client_resources=client_resources, - actor_type=actor_type, - actor_kwargs=actor_kwargs, - actor_scheduling=actor_scheduling, ) + f_stop = threading.Event() + + # Periodically, we want to check if the cluster has grown (i.e. a new + # node has been added). When this happens, we likely want to enlarge + # the actor pool by adding more Actors to it. + def update_resources(f_stop: threading.Event) -> None: + if not f_stop.is_set(): + num_max_actors = pool_size_from_resources(client_resources) + if num_max_actors > pool.num_actors: + num = num_max_actors - pool.num_actors + log(INFO, "The cluster expanded. Adding %s actors to the pool.", num) + pool.add_actors_to_pool(num_actors=num) + + threading.Timer(10, update_resources, [f_stop]).start() + + update_resources(f_stop) + log( INFO, "Flower VCE: Creating %s with %s actors", @@ -278,6 +306,9 @@ def start_simulation( # pylint: disable=too-many-arguments ) hist = History() + # Stop time monitoring resources in cluster + f_stop.set() + event(EventType.START_SIMULATION_LEAVE) return hist diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 0c7ba38cf012..1ca32bfb2313 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -24,7 +24,6 @@ import ray from ray import ObjectRef from ray.util.actor_pool import ActorPool -from ray.util.scheduling_strategies import NodeAffinitySchedulingStrategy from flwr import common from flwr.common.logger import log @@ -114,13 +113,14 @@ def pool_size_from_resources(client_resources: Dict[str, Union[int, float]]) -> return num_actors -class VirtualClientEngineActorPool( - ActorPool -): # pylint: disable=[too-many-instance-attributes, too-many-arguments] +class VirtualClientEngineActorPool(ActorPool): """A pool of VirtualClientEngine Actors. Parameters ---------- + create_actor_fn : Callable[[], Type[VirtualClientEngineActor]] + A function that returns an actor that can be added to the pool. + client_resources : Dict[str, Union[int, float]] A dictionary specifying the system resources that each actor should have access. This will be used to calculate @@ -130,21 +130,6 @@ class VirtualClientEngineActorPool( enough CPUs. To understand the GPU utilization caused by `num_gpus`, as well as using custom resources, please consult the Ray documentation. - actor_type : VirtualClientEngineActor - A class defining how your Actor behaves. It should have the @ray.remote - decorator. Recall actors run workloads of virtual/simulated clients. In - this way, an actor would first "spawn" a particular client, then run the - method that indicated by the strategy (e.g. `fit()`), then it will return - the results back to the client proxy. - - actor_kwargs : Dict[str, Any] - If you implement your own Actor class, you might want to pass it some arguments - for initialization. You should use this argument to achieve so. - - actor_scheduling : Union[str, NodeAffinitySchedulingStrategy] - This allows you to control how Actors are scheduled/placed in the nodes - available to your simulation. - actor_lists: List[VirtualClientEngineActor] (default: None) This argument should not be used. It's only needed for serialization purposes (see the `__reduce__` method). Each time it is executed, we want to retain @@ -153,31 +138,21 @@ class VirtualClientEngineActorPool( def __init__( self, + create_actor_fn: Callable[[], Type[VirtualClientEngineActor]], client_resources: Dict[str, Union[int, float]], - actor_type: Type[VirtualClientEngineActor], - actor_kwargs: Optional[Dict[str, Any]], - actor_scheduling: Union[str, NodeAffinitySchedulingStrategy], - actor_list: Optional[List[VirtualClientEngineActor]] = None, + actor_list: Optional[List[Type[VirtualClientEngineActor]]] = None, ): self.client_resources = client_resources - self.actor_type = actor_type - self.actor_kwargs = actor_kwargs - self.actor_scheduling = actor_scheduling - num_actors = pool_size_from_resources(client_resources) - - args = actor_kwargs if actor_kwargs is not None else {} + self.create_actor_fn = create_actor_fn if actor_list is None: + # Figure out how many actors can be created given the cluster resources + # and the resources the user indicates each VirtualClient will need. + num_actors = pool_size_from_resources(client_resources) + actors = [create_actor_fn() for _ in range(num_actors)] + else: # When __reduce__ is executed, we don't want to created # a new list of actors again. - actors = [ - actor_type.options( # type: ignore - **client_resources, - scheduling_strategy=actor_scheduling, - ).remote(**args) - for _ in range(num_actors) - ] - else: actors = actor_list super().__init__(actors) @@ -195,13 +170,21 @@ def __init__( def __reduce__(self): # type: ignore """Make this class serializable (needed due to lock).""" return VirtualClientEngineActorPool, ( + self.create_actor_fn, self.client_resources, - self.actor_type, - self.actor_kwargs, - self.actor_scheduling, self._idle_actors, # Pass existing actors to avoid killing/re-creating ) + def add_actors_to_pool(self, num_actors: int) -> None: + """Add actors to the pool. + + This expands the pool after it has been created iif new resources are added to + your Ray cluster (e.g. you add a new node). + """ + with self.lock: + new_actors = [self.create_actor_fn() for _ in range(num_actors)] + self._idle_actors.extend(new_actors) + def submit(self, fn: Any, value: Tuple[Callable[[], ClientRes], str]) -> None: """Take idle actor and assign it a client workload. From f524fff614b4e90ae0e2a088ca8aed8ed22d32a4 Mon Sep 17 00:00:00 2001 From: javier Date: Thu, 17 Aug 2023 09:01:02 +0000 Subject: [PATCH 035/133] w/ previous --- src/py/flwr/simulation/app.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 4c860035c5b2..9c5341b52ece 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -251,6 +251,9 @@ def create_actor_fn() -> Type[VirtualClientEngineActor]: # node has been added). When this happens, we likely want to enlarge # the actor pool by adding more Actors to it. def update_resources(f_stop: threading.Event) -> None: + """Periodically check if more actors can be added to the pool. + + If so, extend the pool.""" if not f_stop.is_set(): num_max_actors = pool_size_from_resources(client_resources) if num_max_actors > pool.num_actors: From de7e252c96026f70a79eeed9fdd9dc976943a5d3 Mon Sep 17 00:00:00 2001 From: javier Date: Thu, 17 Aug 2023 09:29:14 +0000 Subject: [PATCH 036/133] better assesment of number of actors that fit in cluster; fix --- src/py/flwr/simulation/app.py | 5 +- .../simulation/ray_transport/ray_actor.py | 50 +++++++++++++------ 2 files changed, 38 insertions(+), 17 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 9c5341b52ece..79b79f24f564 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -252,8 +252,9 @@ def create_actor_fn() -> Type[VirtualClientEngineActor]: # the actor pool by adding more Actors to it. def update_resources(f_stop: threading.Event) -> None: """Periodically check if more actors can be added to the pool. - - If so, extend the pool.""" + + If so, extend the pool. + """ if not f_stop.is_set(): num_max_actors = pool_size_from_resources(client_resources) if num_max_actors > pool.num_actors: diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 1ca32bfb2313..311d224ba0a6 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -80,23 +80,42 @@ class DefaultActor(VirtualClientEngineActor): def pool_size_from_resources(client_resources: Dict[str, Union[int, float]]) -> int: - """Calculate number of Actors that fit in pool given the resources in the. + """Calculate number of Actors that fit in the cluster. - cluster and those required per client. + For this we consider the resources available on each node and those required per + client. """ - cluster_resources = ray.cluster_resources() - num_cpus = cluster_resources["CPU"] - num_gpus = cluster_resources.get("GPU", 0) # There might not be GPU - num_actors = int(num_cpus / client_resources["num_cpus"]) - # If a GPU is present and client resources do require one - if "num_gpus" in client_resources.keys() and client_resources["num_gpus"] > 0.0: - if num_gpus: - # If there are gpus in the cluster - num_actors = min(num_actors, int(num_gpus / client_resources["num_gpus"])) - else: - num_actors = 0 + total_num_actors = 0 + # We calculate the number of actors that fit in a node per node basis. This is + # the right way of doing it otherwise situations like the following arise: imagine + # each client needs 3 CPUs and Ray has w nodes (one with 2 CPUs and another with 4) + # if we don't follow a per-node estimation of actors, we'll be creating an actor + # pool with 2 Actors. This, however, doesn't fit in the cluster since only one of + # the nodes can fit one Actor. + nodes = ray.nodes() + for node in nodes: + node_resources = node["Resources"] + + # If a node has detached, it is still in the list of nodes + # however, its resources will be empty. + if not node_resources: + continue + + num_cpus = node_resources["CPU"] + num_gpus = node_resources.get("GPU", 0) # There might not be GPU + num_actors = int(num_cpus / client_resources["num_cpus"]) + # If a GPU is present and client resources do require one + if "num_gpus" in client_resources.keys() and client_resources["num_gpus"] > 0.0: + if num_gpus: + # If there are gpus in the cluster + num_actors = min( + num_actors, int(num_gpus / client_resources["num_gpus"]) + ) + else: + num_actors = 0 + total_num_actors += num_actors - if num_actors == 0: + if total_num_actors == 0: log( WARNING, "Your ActorPool is empty. Your system (%s, %s) " @@ -110,7 +129,7 @@ def pool_size_from_resources(client_resources: Dict[str, Union[int, float]]) -> "ActorPool is empty. Stopping Simulation. Check 'client_resources'" ) - return num_actors + return total_num_actors class VirtualClientEngineActorPool(ActorPool): @@ -184,6 +203,7 @@ def add_actors_to_pool(self, num_actors: int) -> None: with self.lock: new_actors = [self.create_actor_fn() for _ in range(num_actors)] self._idle_actors.extend(new_actors) + self.num_actors += num_actors def submit(self, fn: Any, value: Tuple[Callable[[], ClientRes], str]) -> None: """Take idle actor and assign it a client workload. From 935a4ca7894dce487f9f3b03e4bdeff5890ca17e Mon Sep 17 00:00:00 2001 From: javier Date: Thu, 17 Aug 2023 10:30:22 +0000 Subject: [PATCH 037/133] minor tweaks --- src/py/flwr/simulation/ray_transport/ray_actor.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 311d224ba0a6..4eec06d0c9e8 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -118,7 +118,7 @@ def pool_size_from_resources(client_resources: Dict[str, Union[int, float]]) -> if total_num_actors == 0: log( WARNING, - "Your ActorPool is empty. Your system (%s, %s) " + "Your ActorPool is empty. Your system (CPUs=%s, GPUs=%s) " "does not meet the criteria to host at least one client with resources:" " %s. Consider lowering your `client_resources`", num_cpus, @@ -126,7 +126,8 @@ def pool_size_from_resources(client_resources: Dict[str, Union[int, float]]) -> client_resources, ) raise ValueError( - "ActorPool is empty. Stopping Simulation. Check 'client_resources'" + "ActorPool is empty. Stopping Simulation. " + "Check 'client_resources' passed to `start_simulation`" ) return total_num_actors From 9a41ead9206005a28f895d966d349d3f6d4a865e Mon Sep 17 00:00:00 2001 From: jafermarq Date: Fri, 18 Aug 2023 09:57:22 +0100 Subject: [PATCH 038/133] init simulation-pytorch test --- e2e/simulation-pytorch/README.md | 7 ++ e2e/simulation-pytorch/sim.py | 160 +++++++++++++++++++++++++++++++ 2 files changed, 167 insertions(+) create mode 100644 e2e/simulation-pytorch/README.md create mode 100644 e2e/simulation-pytorch/sim.py diff --git a/e2e/simulation-pytorch/README.md b/e2e/simulation-pytorch/README.md new file mode 100644 index 000000000000..435072ffe979 --- /dev/null +++ b/e2e/simulation-pytorch/README.md @@ -0,0 +1,7 @@ +# Flower's VirtualClientEngine with PyTorch testing + +This directory is used for testing Flower's VirtualClientEngine to simulate FL workloads with PyTorch by using the CIFAR10 dataset and a CNN. This test heavily borrows from that in [e2d/pytorch](https://github.com/adap/flower/tree/main/e2e/pytorch). + +It uses the `FedAvg` strategy with a pool of 100 clients. The VCE allocates 1 cpu core per actor. + +It uses a subset of size 1000 for the training data and 10 data points for the testing. \ No newline at end of file diff --git a/e2e/simulation-pytorch/sim.py b/e2e/simulation-pytorch/sim.py new file mode 100644 index 000000000000..177735e225ee --- /dev/null +++ b/e2e/simulation-pytorch/sim.py @@ -0,0 +1,160 @@ +import warnings +from collections import OrderedDict + +import torch +import torch.nn as nn +import torch.nn.functional as F +from torch.utils.data import DataLoader, Subset +from torchvision.datasets import CIFAR10 +from torchvision.transforms import Compose, Normalize, ToTensor +from tqdm import tqdm + +import flwr as fl + +# ############################################################################# +# 1. Regular PyTorch pipeline: nn.Module, train, test, and DataLoader +# ############################################################################# + +warnings.filterwarnings("ignore", category=UserWarning) +SUBSET_SIZE = 1000 +POOL_SIZE = 100 # number of total clients in the experiment +CLIENT_RESOURCES = {'num_cpus': 1} + + +class Net(nn.Module): + """Model (simple CNN adapted from 'PyTorch: A 60 Minute Blitz').""" + + def __init__(self) -> None: + super().__init__() + self.conv1 = nn.Conv2d(3, 6, 5) + self.pool = nn.MaxPool2d(2, 2) + self.conv2 = nn.Conv2d(6, 16, 5) + self.fc1 = nn.Linear(16 * 5 * 5, 120) + self.fc2 = nn.Linear(120, 84) + self.fc3 = nn.Linear(84, 10) + + def forward(self, x: torch.Tensor) -> torch.Tensor: + x = self.pool(F.relu(self.conv1(x))) + x = self.pool(F.relu(self.conv2(x))) + x = x.view(-1, 16 * 5 * 5) + x = F.relu(self.fc1(x)) + x = F.relu(self.fc2(x)) + return self.fc3(x) + + +def train(net, trainloader, epochs, device): + """Train the model on the training set.""" + criterion = torch.nn.CrossEntropyLoss() + optimizer = torch.optim.SGD(net.parameters(), lr=0.001, momentum=0.9) + for _ in range(epochs): + for images, labels in trainloader: + optimizer.zero_grad() + criterion(net(images.to(device)), labels.to(device)).backward() + optimizer.step() + + +def test(net, testloader, device): + """Validate the model on the test set.""" + criterion = torch.nn.CrossEntropyLoss() + correct, loss = 0, 0.0 + with torch.no_grad(): + for images, labels in testloader: + outputs = net(images.to(device)) + labels = labels.to(device) + loss += criterion(outputs, labels).item() + correct += (torch.max(outputs.data, 1)[1] == labels).sum().item() + accuracy = correct / len(testloader.dataset) + return loss, accuracy + + +def load_data(): + """Load CIFAR-10 (training and test set).""" + trf = Compose([ToTensor(), Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) + trainset = CIFAR10("./data", train=True, download=True, transform=trf) + testset = CIFAR10("./data", train=False, download=True, transform=trf) + trainset = Subset(trainset, range(SUBSET_SIZE)) + testset = Subset(testset, range(10)) + return DataLoader(trainset, batch_size=32, shuffle=True), DataLoader(testset) + + +# ############################################################################# +# 2. Federation of the pipeline with Flower +# ############################################################################# + + +# Define Flower client +class FlowerClient(fl.client.NumPyClient): + def __init__(self): + super().__init__() + self.device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + self.net = Net() + + def get_parameters(self, config): + return [val.cpu().numpy() for _, val in self.net.state_dict().items()] + + def fit(self, parameters, config): + set_parameters(self.net, parameters) + train(self.net, trainloader, epochs=1, device=self.device) + return self.get_parameters(config={}), len(trainloader.dataset), {} + + def evaluate(self, parameters, config): + set_parameters(self.net, parameters) + loss, accuracy = test(self.net, testloader, device=self.device) + return loss, len(testloader.dataset), {"accuracy": accuracy} + + +def set_parameters(model, parameters): + params_dict = zip(model.state_dict().keys(), parameters) + state_dict = OrderedDict({k: torch.tensor(v) for k, v in params_dict}) + model.load_state_dict(state_dict, strict=True) + return + + +def client_fn(cid): + return FlowerClient() + + +def get_evaluate_fn(test_loader): + """Return an evaluation function for centralized evaluation.""" + + def evaluate(server_round, parameters, config): + """Use the entire CIFAR-10 test set for evaluation.""" + # determine device + device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + + model = Net() + set_parameters(model, parameters) + model.to(device) + loss, accuracy = test(model, test_loader, device=device) + + # return statistics + return loss, {"accuracy": accuracy} + + return evaluate + + +if __name__ == "__main__": + # Load model and data (simple CNN, CIFAR-10) + trainloader, testloader = load_data() + + strategy = fl.server.strategy.FedAvg( + fraction_fit=0.1, + fraction_evaluate=0.1, + min_fit_clients=10, + min_evaluate_clients=10, + min_available_clients=POOL_SIZE, # All clients should be available + evaluate_fn=get_evaluate_fn(testloader), # centralised evaluation of global model + ) + + # (optional) specify Ray config + ray_init_args = {"include_dashboard": False} + + # start simulation + fl.simulation.start_simulation( + client_fn=client_fn, + num_clients=POOL_SIZE, + client_resources=CLIENT_RESOURCES, + config=fl.server.ServerConfig(num_rounds=3), + strategy=strategy, + ray_init_args=ray_init_args, + ) From 1539c9e0a724a45d93890298e8f343d2437de8a4 Mon Sep 17 00:00:00 2001 From: jafermarq Date: Fri, 18 Aug 2023 11:03:23 +0100 Subject: [PATCH 039/133] added pyproject.toml --- e2e/simulation-pytorch/pyproject.toml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 e2e/simulation-pytorch/pyproject.toml diff --git a/e2e/simulation-pytorch/pyproject.toml b/e2e/simulation-pytorch/pyproject.toml new file mode 100644 index 000000000000..272d976062b0 --- /dev/null +++ b/e2e/simulation-pytorch/pyproject.toml @@ -0,0 +1,15 @@ +[build-system] +requires = ["poetry-core>=1.4.0"] +build-backend = "poetry.core.masonry.api" + +[tool.poetry] +name = "simulation_pytorch" +version = "0.1.0" +description = "Federated Learning Simulation with Flower and PyTorch" +authors = ["The Flower Authors "] + +[tool.poetry.dependencies] +python = ">=3.8,<3.11" +flwr = {version = ">=1.0,<2.0", extras = ["simulation"]} +torch = "1.13.1" +torchvision = "0.14.1" From 3873f07e917d1ec363a27191577eb61037162995 Mon Sep 17 00:00:00 2001 From: jafermarq Date: Fri, 18 Aug 2023 11:15:43 +0100 Subject: [PATCH 040/133] added CI stuff correctly? --- .github/dependabot.yml | 6 ++++++ .github/workflows/e2e.yml | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index fed26fa6eb24..2e8756db5b4a 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -76,3 +76,9 @@ updates: schedule: interval: "daily" open-pull-requests-limit: 2 + + - package-ecosystem: "pip" + directory: "/e2e/simulation-pytorch" + schedule: + interval: "daily" + open-pull-requests-limit: 2 \ No newline at end of file diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index ded3aa611195..c59ce5e4adee 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -70,6 +70,11 @@ jobs: from sklearn.datasets import load_iris Path('data').mkdir(exist_ok=True) load_iris(as_frame=True)['data'].to_csv('./data/client.csv') + + - directory: simulation-pytorch + dataset: | + from torchvision.datasets import CIFAR10 + CIFAR10('./data', download=True) name: Framework / ${{matrix.directory}} From 4e7e5dd7516ab2d14f92f1849d1c725df61ee45e Mon Sep 17 00:00:00 2001 From: jafermarq Date: Fri, 18 Aug 2023 11:46:49 +0100 Subject: [PATCH 041/133] conditional ECE & driver tests --- .github/workflows/e2e.yml | 4 ++++ e2e/simulation-pytorch/{sim.py => simulation.py} | 0 2 files changed, 4 insertions(+) rename e2e/simulation-pytorch/{sim.py => simulation.py} (100%) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index c59ce5e4adee..5a798bfbf97b 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -75,6 +75,8 @@ jobs: dataset: | from torchvision.datasets import CIFAR10 CIFAR10('./data', download=True) + skip-ece: True + skip-driver: True name: Framework / ${{matrix.directory}} @@ -94,10 +96,12 @@ jobs: if: ${{ matrix.dataset }} run: python -c "${{ matrix.dataset }}" - name: Run edge client test + if: ${{!matrix.skip-ece}} run: ./../test.sh "${{ matrix.directory }}" - name: Run virtual client test run: python simulation.py - name: Run driver test + if: ${{!matrix.skip-driver}} run: ./../test_driver.sh strategies: diff --git a/e2e/simulation-pytorch/sim.py b/e2e/simulation-pytorch/simulation.py similarity index 100% rename from e2e/simulation-pytorch/sim.py rename to e2e/simulation-pytorch/simulation.py From a848a3497fdac916d691c6c34f881c6042be1085 Mon Sep 17 00:00:00 2001 From: jafermarq Date: Fri, 18 Aug 2023 11:50:09 +0100 Subject: [PATCH 042/133] fix --- e2e/simulation-pytorch/simulation.py | 1 - 1 file changed, 1 deletion(-) diff --git a/e2e/simulation-pytorch/simulation.py b/e2e/simulation-pytorch/simulation.py index 177735e225ee..c061218fb615 100644 --- a/e2e/simulation-pytorch/simulation.py +++ b/e2e/simulation-pytorch/simulation.py @@ -7,7 +7,6 @@ from torch.utils.data import DataLoader, Subset from torchvision.datasets import CIFAR10 from torchvision.transforms import Compose, Normalize, ToTensor -from tqdm import tqdm import flwr as fl From ee85152145c6dbdd9c6f1834d7d9446df2aa1e7a Mon Sep 17 00:00:00 2001 From: jafermarq Date: Mon, 21 Aug 2023 09:16:23 +0100 Subject: [PATCH 043/133] reverted adding tests --- .github/dependabot.yml | 6 - .github/workflows/e2e.yml | 9 - e2e/simulation-pytorch/README.md | 7 - e2e/simulation-pytorch/pyproject.toml | 15 -- e2e/simulation-pytorch/simulation.py | 159 ------------------ .../simulation/ray_transport/ray_actor.py | 5 +- 6 files changed, 2 insertions(+), 199 deletions(-) delete mode 100644 e2e/simulation-pytorch/README.md delete mode 100644 e2e/simulation-pytorch/pyproject.toml delete mode 100644 e2e/simulation-pytorch/simulation.py diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 2e8756db5b4a..fed26fa6eb24 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -76,9 +76,3 @@ updates: schedule: interval: "daily" open-pull-requests-limit: 2 - - - package-ecosystem: "pip" - directory: "/e2e/simulation-pytorch" - schedule: - interval: "daily" - open-pull-requests-limit: 2 \ No newline at end of file diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 5a798bfbf97b..ded3aa611195 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -70,13 +70,6 @@ jobs: from sklearn.datasets import load_iris Path('data').mkdir(exist_ok=True) load_iris(as_frame=True)['data'].to_csv('./data/client.csv') - - - directory: simulation-pytorch - dataset: | - from torchvision.datasets import CIFAR10 - CIFAR10('./data', download=True) - skip-ece: True - skip-driver: True name: Framework / ${{matrix.directory}} @@ -96,12 +89,10 @@ jobs: if: ${{ matrix.dataset }} run: python -c "${{ matrix.dataset }}" - name: Run edge client test - if: ${{!matrix.skip-ece}} run: ./../test.sh "${{ matrix.directory }}" - name: Run virtual client test run: python simulation.py - name: Run driver test - if: ${{!matrix.skip-driver}} run: ./../test_driver.sh strategies: diff --git a/e2e/simulation-pytorch/README.md b/e2e/simulation-pytorch/README.md deleted file mode 100644 index 435072ffe979..000000000000 --- a/e2e/simulation-pytorch/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Flower's VirtualClientEngine with PyTorch testing - -This directory is used for testing Flower's VirtualClientEngine to simulate FL workloads with PyTorch by using the CIFAR10 dataset and a CNN. This test heavily borrows from that in [e2d/pytorch](https://github.com/adap/flower/tree/main/e2e/pytorch). - -It uses the `FedAvg` strategy with a pool of 100 clients. The VCE allocates 1 cpu core per actor. - -It uses a subset of size 1000 for the training data and 10 data points for the testing. \ No newline at end of file diff --git a/e2e/simulation-pytorch/pyproject.toml b/e2e/simulation-pytorch/pyproject.toml deleted file mode 100644 index 272d976062b0..000000000000 --- a/e2e/simulation-pytorch/pyproject.toml +++ /dev/null @@ -1,15 +0,0 @@ -[build-system] -requires = ["poetry-core>=1.4.0"] -build-backend = "poetry.core.masonry.api" - -[tool.poetry] -name = "simulation_pytorch" -version = "0.1.0" -description = "Federated Learning Simulation with Flower and PyTorch" -authors = ["The Flower Authors "] - -[tool.poetry.dependencies] -python = ">=3.8,<3.11" -flwr = {version = ">=1.0,<2.0", extras = ["simulation"]} -torch = "1.13.1" -torchvision = "0.14.1" diff --git a/e2e/simulation-pytorch/simulation.py b/e2e/simulation-pytorch/simulation.py deleted file mode 100644 index c061218fb615..000000000000 --- a/e2e/simulation-pytorch/simulation.py +++ /dev/null @@ -1,159 +0,0 @@ -import warnings -from collections import OrderedDict - -import torch -import torch.nn as nn -import torch.nn.functional as F -from torch.utils.data import DataLoader, Subset -from torchvision.datasets import CIFAR10 -from torchvision.transforms import Compose, Normalize, ToTensor - -import flwr as fl - -# ############################################################################# -# 1. Regular PyTorch pipeline: nn.Module, train, test, and DataLoader -# ############################################################################# - -warnings.filterwarnings("ignore", category=UserWarning) -SUBSET_SIZE = 1000 -POOL_SIZE = 100 # number of total clients in the experiment -CLIENT_RESOURCES = {'num_cpus': 1} - - -class Net(nn.Module): - """Model (simple CNN adapted from 'PyTorch: A 60 Minute Blitz').""" - - def __init__(self) -> None: - super().__init__() - self.conv1 = nn.Conv2d(3, 6, 5) - self.pool = nn.MaxPool2d(2, 2) - self.conv2 = nn.Conv2d(6, 16, 5) - self.fc1 = nn.Linear(16 * 5 * 5, 120) - self.fc2 = nn.Linear(120, 84) - self.fc3 = nn.Linear(84, 10) - - def forward(self, x: torch.Tensor) -> torch.Tensor: - x = self.pool(F.relu(self.conv1(x))) - x = self.pool(F.relu(self.conv2(x))) - x = x.view(-1, 16 * 5 * 5) - x = F.relu(self.fc1(x)) - x = F.relu(self.fc2(x)) - return self.fc3(x) - - -def train(net, trainloader, epochs, device): - """Train the model on the training set.""" - criterion = torch.nn.CrossEntropyLoss() - optimizer = torch.optim.SGD(net.parameters(), lr=0.001, momentum=0.9) - for _ in range(epochs): - for images, labels in trainloader: - optimizer.zero_grad() - criterion(net(images.to(device)), labels.to(device)).backward() - optimizer.step() - - -def test(net, testloader, device): - """Validate the model on the test set.""" - criterion = torch.nn.CrossEntropyLoss() - correct, loss = 0, 0.0 - with torch.no_grad(): - for images, labels in testloader: - outputs = net(images.to(device)) - labels = labels.to(device) - loss += criterion(outputs, labels).item() - correct += (torch.max(outputs.data, 1)[1] == labels).sum().item() - accuracy = correct / len(testloader.dataset) - return loss, accuracy - - -def load_data(): - """Load CIFAR-10 (training and test set).""" - trf = Compose([ToTensor(), Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) - trainset = CIFAR10("./data", train=True, download=True, transform=trf) - testset = CIFAR10("./data", train=False, download=True, transform=trf) - trainset = Subset(trainset, range(SUBSET_SIZE)) - testset = Subset(testset, range(10)) - return DataLoader(trainset, batch_size=32, shuffle=True), DataLoader(testset) - - -# ############################################################################# -# 2. Federation of the pipeline with Flower -# ############################################################################# - - -# Define Flower client -class FlowerClient(fl.client.NumPyClient): - def __init__(self): - super().__init__() - self.device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") - self.net = Net() - - def get_parameters(self, config): - return [val.cpu().numpy() for _, val in self.net.state_dict().items()] - - def fit(self, parameters, config): - set_parameters(self.net, parameters) - train(self.net, trainloader, epochs=1, device=self.device) - return self.get_parameters(config={}), len(trainloader.dataset), {} - - def evaluate(self, parameters, config): - set_parameters(self.net, parameters) - loss, accuracy = test(self.net, testloader, device=self.device) - return loss, len(testloader.dataset), {"accuracy": accuracy} - - -def set_parameters(model, parameters): - params_dict = zip(model.state_dict().keys(), parameters) - state_dict = OrderedDict({k: torch.tensor(v) for k, v in params_dict}) - model.load_state_dict(state_dict, strict=True) - return - - -def client_fn(cid): - return FlowerClient() - - -def get_evaluate_fn(test_loader): - """Return an evaluation function for centralized evaluation.""" - - def evaluate(server_round, parameters, config): - """Use the entire CIFAR-10 test set for evaluation.""" - # determine device - device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") - - model = Net() - set_parameters(model, parameters) - model.to(device) - loss, accuracy = test(model, test_loader, device=device) - - # return statistics - return loss, {"accuracy": accuracy} - - return evaluate - - -if __name__ == "__main__": - # Load model and data (simple CNN, CIFAR-10) - trainloader, testloader = load_data() - - strategy = fl.server.strategy.FedAvg( - fraction_fit=0.1, - fraction_evaluate=0.1, - min_fit_clients=10, - min_evaluate_clients=10, - min_available_clients=POOL_SIZE, # All clients should be available - evaluate_fn=get_evaluate_fn(testloader), # centralised evaluation of global model - ) - - # (optional) specify Ray config - ray_init_args = {"include_dashboard": False} - - # start simulation - fl.simulation.start_simulation( - client_fn=client_fn, - num_clients=POOL_SIZE, - client_resources=CLIENT_RESOURCES, - config=fl.server.ServerConfig(num_rounds=3), - strategy=strategy, - ray_init_args=ray_init_args, - ) diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 4eec06d0c9e8..311d224ba0a6 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -118,7 +118,7 @@ def pool_size_from_resources(client_resources: Dict[str, Union[int, float]]) -> if total_num_actors == 0: log( WARNING, - "Your ActorPool is empty. Your system (CPUs=%s, GPUs=%s) " + "Your ActorPool is empty. Your system (%s, %s) " "does not meet the criteria to host at least one client with resources:" " %s. Consider lowering your `client_resources`", num_cpus, @@ -126,8 +126,7 @@ def pool_size_from_resources(client_resources: Dict[str, Union[int, float]]) -> client_resources, ) raise ValueError( - "ActorPool is empty. Stopping Simulation. " - "Check 'client_resources' passed to `start_simulation`" + "ActorPool is empty. Stopping Simulation. Check 'client_resources'" ) return total_num_actors From b6a51c426351456e4024d3fba26dc4695f1bc951 Mon Sep 17 00:00:00 2001 From: Javier Date: Tue, 22 Aug 2023 20:15:29 +0100 Subject: [PATCH 044/133] Apply suggestions from code review Co-authored-by: Daniel J. Beutel --- src/py/flwr/simulation/app.py | 17 +++++++------ .../simulation/ray_transport/ray_actor.py | 24 +++++++++++-------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/src/py/flwr/simulation/app.py b/src/py/flwr/simulation/app.py index 79b79f24f564..18ba34cc94de 100644 --- a/src/py/flwr/simulation/app.py +++ b/src/py/flwr/simulation/app.py @@ -136,10 +136,9 @@ def start_simulation( # pylint: disable=too-many-arguments Set to True to prevent `ray.shutdown()` in case `ray.is_initialized()=True`. actor_type: VirtualClientEngineActor (default: DefaultActor) - Optionally specify the type of actor to use. The actor object, which - persist throughout the simulation will be the process in charged of - running the clients' jobs (i.e. their fit() method). + persists throughout the simulation, will be the process in charge of + running the clients' jobs (i.e. their `fit()` method). actor_kwargs: Optional[Dict[str, Any]] (default: None) If you want to create your own Actor classes, you might need to pass @@ -230,7 +229,7 @@ def start_simulation( # pylint: disable=too-many-arguments actor_args = {} if actor_kwargs is None else actor_kwargs - # An actor generator. This is called N times to add N actors + # An actor factory. This is called N times to add N actors # to the pool. If at some point the pool can accommodate more actors # this will be called again. def create_actor_fn() -> Type[VirtualClientEngineActor]: @@ -247,8 +246,8 @@ def create_actor_fn() -> Type[VirtualClientEngineActor]: f_stop = threading.Event() - # Periodically, we want to check if the cluster has grown (i.e. a new - # node has been added). When this happens, we likely want to enlarge + # Periodically, check if the cluster has grown (i.e. a new + # node has been added). If this happens, we likely want to grow # the actor pool by adding more Actors to it. def update_resources(f_stop: threading.Event) -> None: """Periodically check if more actors can be added to the pool. @@ -258,9 +257,9 @@ def update_resources(f_stop: threading.Event) -> None: if not f_stop.is_set(): num_max_actors = pool_size_from_resources(client_resources) if num_max_actors > pool.num_actors: - num = num_max_actors - pool.num_actors - log(INFO, "The cluster expanded. Adding %s actors to the pool.", num) - pool.add_actors_to_pool(num_actors=num) + num_new = num_max_actors - pool.num_actors + log(INFO, "The cluster expanded. Adding %s actors to the pool.", num_new) + pool.add_actors_to_pool(num_actors=num_new) threading.Timer(10, update_resources, [f_stop]).start() diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 311d224ba0a6..39274d016b5c 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -86,6 +86,7 @@ def pool_size_from_resources(client_resources: Dict[str, Union[int, float]]) -> client. """ total_num_actors = 0 + # We calculate the number of actors that fit in a node per node basis. This is # the right way of doing it otherwise situations like the following arise: imagine # each client needs 3 CPUs and Ray has w nodes (one with 2 CPUs and another with 4) @@ -104,6 +105,7 @@ def pool_size_from_resources(client_resources: Dict[str, Union[int, float]]) -> num_cpus = node_resources["CPU"] num_gpus = node_resources.get("GPU", 0) # There might not be GPU num_actors = int(num_cpus / client_resources["num_cpus"]) + # If a GPU is present and client resources do require one if "num_gpus" in client_resources.keys() and client_resources["num_gpus"] > 0.0: if num_gpus: @@ -118,9 +120,9 @@ def pool_size_from_resources(client_resources: Dict[str, Union[int, float]]) -> if total_num_actors == 0: log( WARNING, - "Your ActorPool is empty. Your system (%s, %s) " + "The ActorPool is empty. The system (%s, %s) " "does not meet the criteria to host at least one client with resources:" - " %s. Consider lowering your `client_resources`", + " %s. Lowering the `client_resources` could help.", num_cpus, num_gpus, client_resources, @@ -166,7 +168,7 @@ def __init__( if actor_list is None: # Figure out how many actors can be created given the cluster resources - # and the resources the user indicates each VirtualClient will need. + # and the resources the user indicates each VirtualClient will need num_actors = pool_size_from_resources(client_resources) actors = [create_actor_fn() for _ in range(num_actors)] else: @@ -219,21 +221,21 @@ def submit(self, fn: Any, value: Tuple[Callable[[], ClientRes], str]) -> None: self._future_to_actor[future_key] = (self._next_task_index, actor, cid) self._next_task_index += 1 - # update with future + # Update with future self._cid_to_future[cid]["future"] = future_key def submit_client_job( self, actor_fn: Any, job: Tuple[Callable[[], ClientRes], str] ) -> None: """Submit a job while tracking client ids.""" + _, cid = job + # We need to put this behind a lock since .submit() involves # removing and adding elements from a dictionary. Which creates # issues in multi-threaded settings - - _, cid = job with self.lock: # TODO: w/ timestamp check, call ray.resources() # pylint: disable=fixme - # Creating cid to future mapping + # Create cid to future mapping self._reset_cid_to_future_dict(cid) if self._idle_actors: # Submit job since there is an Actor that's available @@ -336,9 +338,9 @@ def _check_actor_fits_in_pool(self) -> bool: self.num_actors, num_actors_updated, ) - # We are preventing one actor to be added back in the queue, so we just + # We are preventing one actor from being added back to the queue, so we just # decrease the number of actors by one. Eventually `self.num_actors` - # should be equal what pool_size_from_resources(self.resources) returns + # should be equal to what `pool_size_from_resources(self.resources)` returns self.num_actors -= 1 return False @@ -348,6 +350,7 @@ def process_unordered_future(self, timeout: Optional[float] = None) -> None: """Similar to parent's get_next_unordered() but without final ray.get().""" if not self.has_next(): # type: ignore raise StopIteration("No more results to get") + # Block until one result is ready res, _ = ray.wait(list(self._future_to_actor), num_returns=1, timeout=timeout) @@ -360,7 +363,7 @@ def process_unordered_future(self, timeout: Optional[float] = None) -> None: # Get actor that completed a job _, actor, cid = self._future_to_actor.pop(future, (None, None, -1)) if actor is not None: - # Still space in queue ? (no if a node in the cluster died) + # Still space in queue? (no if a node in the cluster died) if self._check_actor_fits_in_pool(): if self._check_and_remove_actor_from_pool(actor): self._return_actor(actor) # type: ignore @@ -375,6 +378,7 @@ def process_unordered_future(self, timeout: Optional[float] = None) -> None: def get_client_result(self, cid: str, timeout: Optional[float]) -> ClientRes: """Get result from VirtualClient with specific cid.""" + # Loop until all jobs submitted to the pool are completed. Break early # if the result for the ClientProxy calling this method is ready while self.has_next() and not self._is_future_ready(cid): # type: ignore From 9decadb69ea35fd2bed4aeae9afd5fc5c9a1fcb8 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 23 Aug 2023 13:53:38 +0900 Subject: [PATCH 045/133] create Fedmeta --- baselines/FedMeta/EXTENDED_README.md | 123 +++++++++++ baselines/FedMeta/FedMeta/__init__.py | 1 + baselines/FedMeta/FedMeta/client.py | 5 + baselines/FedMeta/FedMeta/conf/base.yaml | 17 ++ baselines/FedMeta/FedMeta/dataset.py | 10 + .../FedMeta/FedMeta/dataset_preparation.py | 34 +++ baselines/FedMeta/FedMeta/main.py | 53 +++++ baselines/FedMeta/FedMeta/models.py | 7 + baselines/FedMeta/FedMeta/server.py | 5 + baselines/FedMeta/FedMeta/strategy.py | 5 + baselines/FedMeta/FedMeta/utils.py | 6 + baselines/FedMeta/LICENSE | 202 ++++++++++++++++++ baselines/FedMeta/README.md | 79 +++++++ baselines/FedMeta/pyproject.toml | 135 ++++++++++++ 14 files changed, 682 insertions(+) create mode 100644 baselines/FedMeta/EXTENDED_README.md create mode 100644 baselines/FedMeta/FedMeta/__init__.py create mode 100644 baselines/FedMeta/FedMeta/client.py create mode 100644 baselines/FedMeta/FedMeta/conf/base.yaml create mode 100644 baselines/FedMeta/FedMeta/dataset.py create mode 100644 baselines/FedMeta/FedMeta/dataset_preparation.py create mode 100644 baselines/FedMeta/FedMeta/main.py create mode 100644 baselines/FedMeta/FedMeta/models.py create mode 100644 baselines/FedMeta/FedMeta/server.py create mode 100644 baselines/FedMeta/FedMeta/strategy.py create mode 100644 baselines/FedMeta/FedMeta/utils.py create mode 100644 baselines/FedMeta/LICENSE create mode 100644 baselines/FedMeta/README.md create mode 100644 baselines/FedMeta/pyproject.toml diff --git a/baselines/FedMeta/EXTENDED_README.md b/baselines/FedMeta/EXTENDED_README.md new file mode 100644 index 000000000000..9c8f5bc72fa9 --- /dev/null +++ b/baselines/FedMeta/EXTENDED_README.md @@ -0,0 +1,123 @@ + +# Extended Readme + +> The baselines are expected to run in a machine running Ubuntu 22.04 + +While `README.md` should include information about the baseline you implement and how to run it, this _extended_ readme provides info on what's the expected directory structure for a new baseline and more generally the instructions to follow before your baseline can be merged into the Flower repository. Please follow closely these instructions. It is likely that you have already completed steps 1-2. + +1. Fork the Flower repository and clone it. +2. Navigate to the `baselines/` directory and from there run: + ```bash + # This will create a new directory with the same structure as this `baseline_template` directory. + ./dev/create-baseline.sh + ``` +3. All your code and configs should go into a sub-directory with the same name as the name of your baseline. + * The sub-directory contains a series of Python scripts that you can edit. Please stick to these files and consult with us if you need additional ones. + * There is also a basic config structure in `/conf` ready be parsed by [Hydra](https://hydra.cc/) when executing your `main.py`. +4. Therefore, the directory structure in your baseline should look like: + ```bash + baselines/ + ├── README.md # describes your baseline and everything needed to use it + ├── EXTENDED_README.md # to remove before creating your PR + ├── pyproject.toml # details your Python environment + └── + ├── *.py # several .py files including main.py and __init__.py + └── conf + └── *.yaml # one or more Hydra config files + + ``` +> :warning: Make sure the variable `name` in `pyproject.toml` is set to the name of the sub-directory containing all your code. + +5. Add your dependencies to the `pyproject.toml` (see below a few examples on how to do it). Read more about Poetry below in this `EXTENDED_README.md`. +6. Regularly check that your coding style and the documentation you add follow good coding practices. To test whether your code meets the requirements, please run the following: + ```bash + # After activating your environment and from your baseline's directory + cd .. # to go to the top-level directory of all baselines + ./dev/test-baseline.sh + ./dev/test-baseline-structure.sh + ``` + Both `test-baseline.sh` and `test-baseline-structure.sh` will also be automatically run when you create a PR, and both tests need to pass for the baseline to be merged. + To automatically solve some formatting issues and apply easy fixes, please run the formatting script: + ```bash + # After activating your environment and from your baseline's directory + cd .. # to go to the top-level directory of all baselines + ./dev/format-baseline.sh + ``` +7. Ensure that the Python environment for your baseline can be created without errors by simply running `poetry install` and that this is properly described later when you complete the `Environment Setup` section in `README.md`. This is specially important if your environment requires additional steps after doing `poetry install`. +8. Ensure that your baseline runs with default arguments by running `poetry run python -m .main`. Then, describe this and other forms of running your code in the `Running the Experiments` section in `README.md`. +9. Once your code is ready and you have checked: + * that following the instructions in your `README.md` the Python environment can be created correctly + + * that running the code following your instructions can reproduce the experiments in the paper + + , then you just need to create a Pull Request (PR) to kickstart the process of merging your baseline into the Flower repository. + +> Once you are happy to merge your baseline contribution, please delete this `EXTENDED_README.md` file. + + +## About Poetry + +We use Poetry to manage the Python environment for each individual baseline. You can follow the instructions [here](https://python-poetry.org/docs/) to install Poetry in your machine. + + +### Specifying a Python Version (optional) +By default, Poetry will use the Python version in your system. In some settings, you might want to specify a particular version of Python to use inside your Poetry environment. You can do so with [`pyenv`](https://github.com/pyenv/pyenv). Check the documentation for the different ways of installing `pyenv`, but one easy way is using the [automatic installer](https://github.com/pyenv/pyenv-installer): +```bash +curl https://pyenv.run | bash # then, don't forget links to your .bashrc/.zshrc +``` + +You can then install any Python version with `pyenv install ` (e.g. `pyenv install 3.9.17`). Then, in order to use that version for your baseline, you'd do the following: + +```bash +# cd to your baseline directory (i.e. where the `pyproject.toml` is) +pyenv local + +# set that version for poetry +poetry env use + +# then you can install your Poetry environment (see the next setp) +``` + +### Installing Your Environment +With the Poetry tool already installed, you can create an environment for this baseline with commands: +```bash +# run this from the same directory as the `pyproject.toml` file is +poetry install +``` + +This will create a basic Python environment with just Flower and additional packages, including those needed for simulation. Next, you should add the dependencies for your code. It is **critical** that you fix the version of the packages you use using a `=` not a `=^`. You can do so via [`poetry add`](https://python-poetry.org/docs/cli/#add). Below are some examples: + +```bash +# For instance, if you want to install tqdm +poetry add tqdm==4.65.0 + +# If you already have a requirements.txt, you can add all those packages (but ensure you have fixed the version) in one go as follows: +poetry add $( cat requirements.txt ) +``` +With each `poetry add` command, the `pyproject.toml` gets automatically updated so you don't need to keep that `requirements.txt` as part of this baseline. + + +More critically however, is adding your ML framework of choice to the list of dependencies. For some frameworks you might be able to do so with the `poetry add` command. Check [the Poetry documentation](https://python-poetry.org/docs/cli/#add) for how to add packages in various ways. For instance, let's say you want to use PyTorch: + +```bash +# with plain `pip` you'd run a command such as: +pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117 + +# to add the same 3 dependencies to your Poetry environment you'd need to add the URL to the wheel that the above pip command auto-resolves for you. +# You can find those wheels in `https://download.pytorch.org/whl/cu117`. Copy the link and paste it after the `poetry add` command. +# For instance to add `torch==1.13.1+cu117` and a x86 Linux system with Python3.8 you'd: +poetry add https://download.pytorch.org/whl/cu117/torch-1.13.1%2Bcu117-cp38-cp38-linux_x86_64.whl +# you'll need to repeat this for both `torchvision` and `torchaudio` +``` +The above is just an example of how you can add these dependencies. Please refer to the Poetry documentation to extra reference. + +If all attempts fail, you can still install packages via standard `pip`. You'd first need to source/activate your Poetry environment. +```bash +# first ensure you have created your environment +# and installed the base packages provided in the template +poetry install + +# then activate it +poetry shell +``` +Now you are inside your environment (pretty much as when you use `virtualenv` or `conda`) so you can install further packages with `pip`. Please note that, unlike with `poetry add`, these extra requirements won't be captured by `pyproject.toml`. Therefore, please ensure that you provide all instructions needed to: (1) create the base environment with Poetry and (2) install any additional dependencies via `pip` when you complete your `README.md`. \ No newline at end of file diff --git a/baselines/FedMeta/FedMeta/__init__.py b/baselines/FedMeta/FedMeta/__init__.py new file mode 100644 index 000000000000..a5e567b59135 --- /dev/null +++ b/baselines/FedMeta/FedMeta/__init__.py @@ -0,0 +1 @@ +"""Template baseline package.""" diff --git a/baselines/FedMeta/FedMeta/client.py b/baselines/FedMeta/FedMeta/client.py new file mode 100644 index 000000000000..d2e2206111f3 --- /dev/null +++ b/baselines/FedMeta/FedMeta/client.py @@ -0,0 +1,5 @@ +"""Define your client class and a function to construct such clients. + +Please overwrite `flwr.client.NumPyClient` or `flwr.client.Client` and create a function +to instantiate your client. +""" diff --git a/baselines/FedMeta/FedMeta/conf/base.yaml b/baselines/FedMeta/FedMeta/conf/base.yaml new file mode 100644 index 000000000000..2d65b3b989b2 --- /dev/null +++ b/baselines/FedMeta/FedMeta/conf/base.yaml @@ -0,0 +1,17 @@ +--- +# this is the config that will be loaded as default by main.py +# Please follow the provided structure (this will ensuring all baseline follow +# a similar configuration structure and hence be easy to customise) + +dataset: + # dataset config + +model: + # model config + +strategy: + _target_: # points to your strategy (either custom or exiting in Flower) + # rest of strategy config + +client: + # client config diff --git a/baselines/FedMeta/FedMeta/dataset.py b/baselines/FedMeta/FedMeta/dataset.py new file mode 100644 index 000000000000..5e436abe12fb --- /dev/null +++ b/baselines/FedMeta/FedMeta/dataset.py @@ -0,0 +1,10 @@ +"""Handle basic dataset creation. + +In case of PyTorch it should return dataloaders for your dataset (for both the clients +and the server). If you are using a custom dataset class, this module is the place to +define it. If your dataset requires to be downloaded (and this is not done +automatically -- e.g. as it is the case for many dataset in TorchVision) and +partitioned, please include all those functions and logic in the +`dataset_preparation.py` module. You can use all those functions from functions/methods +defined here of course. +""" diff --git a/baselines/FedMeta/FedMeta/dataset_preparation.py b/baselines/FedMeta/FedMeta/dataset_preparation.py new file mode 100644 index 000000000000..bd3440b9276b --- /dev/null +++ b/baselines/FedMeta/FedMeta/dataset_preparation.py @@ -0,0 +1,34 @@ +"""Handle the dataset partitioning and (optionally) complex downloads. + +Please add here all the necessary logic to either download, uncompress, pre/post-process +your dataset (or all of the above). If the desired way of running your baseline is to +first download the dataset and partition it and then run the experiments, please +uncomment the lines below and tell us in the README.md (see the "Running the Experiment" +block) that this file should be executed first. +""" +# import hydra +# from hydra.core.hydra_config import HydraConfig +# from hydra.utils import call, instantiate +# from omegaconf import DictConfig, OmegaConf + + +# @hydra.main(config_path="conf", config_name="base", version_base=None) +# def download_and_preprocess(cfg: DictConfig) -> None: +# """Does everything needed to get the dataset. + +# Parameters +# ---------- +# cfg : DictConfig +# An omegaconf object that stores the hydra config. +# """ + +# ## 1. print parsed config +# print(OmegaConf.to_yaml(cfg)) + +# # Please include here all the logic +# # Please use the Hydra config style as much as possible specially +# # for parts that can be customised (e.g. how data is partitioned) + +# if __name__ == "__main__": + +# download_and_preprocess() diff --git a/baselines/FedMeta/FedMeta/main.py b/baselines/FedMeta/FedMeta/main.py new file mode 100644 index 000000000000..795800c64e21 --- /dev/null +++ b/baselines/FedMeta/FedMeta/main.py @@ -0,0 +1,53 @@ +"""Create and connect the building blocks for your experiments; start the simulation. + +It includes processioning the dataset, instantiate strategy, specify how the global +model is going to be evaluated, etc. At the end, this script saves the results. +""" +# these are the basic packages you'll need here +# feel free to remove some if aren't needed +import hydra +from omegaconf import DictConfig, OmegaConf + + +@hydra.main(config_path="conf", config_name="base", version_base=None) +def main(cfg: DictConfig) -> None: + """Run the baseline. + + Parameters + ---------- + cfg : DictConfig + An omegaconf object that stores the hydra config. + """ + # 1. Print parsed config + print(OmegaConf.to_yaml(cfg)) + + # 2. Prepare your dataset + # here you should call a function in datasets.py that returns whatever is needed to: + # (1) ensure the server can access the dataset used to evaluate your model after + # aggregation + # (2) tell each client what dataset partitions they should use (e.g. a this could + # be a location in the file system, a list of dataloader, a list of ids to extract + # from a dataset, it's up to you) + + # 3. Define your clients + # Define a function that returns another function that will be used during + # simulation to instantiate each individual client + # client_fn = client.() + + # 4. Define your strategy + # pass all relevant argument (including the global dataset used after aggregation, + # if needed by your method.) + # strategy = instantiate(cfg.strategy, ) + + # 5. Start Simulation + # history = fl.simulation.start_simulation() + + # 6. Save your results + # Here you can save the `history` returned by the simulation and include + # also other buffers, statistics, info needed to be saved in order to later + # on generate the plots you provide in the README.md. You can for instance + # access elements that belong to the strategy for example: + # data = strategy.get_my_custom_data() -- assuming you have such method defined. + # Hydra will generate for you a directory each time you run the code. You + # can retrieve the path to that directory with this: + # save_path = HydraConfig.get().runtime.output_dir diff --git a/baselines/FedMeta/FedMeta/models.py b/baselines/FedMeta/FedMeta/models.py new file mode 100644 index 000000000000..71fa553d1f59 --- /dev/null +++ b/baselines/FedMeta/FedMeta/models.py @@ -0,0 +1,7 @@ +"""Define our models, and training and eval functions. + +If your model is 100% off-the-shelf (e.g. directly from torchvision without requiring +modifications) you might be better off instantiating your model directly from the Hydra +config. In this way, swapping your model for another one can be done without changing +the python code at all +""" diff --git a/baselines/FedMeta/FedMeta/server.py b/baselines/FedMeta/FedMeta/server.py new file mode 100644 index 000000000000..2fd7d42cde5a --- /dev/null +++ b/baselines/FedMeta/FedMeta/server.py @@ -0,0 +1,5 @@ +"""Create global evaluation function. + +Optionally, also define a new Server class (please note this is not needed in most +settings). +""" diff --git a/baselines/FedMeta/FedMeta/strategy.py b/baselines/FedMeta/FedMeta/strategy.py new file mode 100644 index 000000000000..17436c401c30 --- /dev/null +++ b/baselines/FedMeta/FedMeta/strategy.py @@ -0,0 +1,5 @@ +"""Optionally define a custom strategy. + +Needed only when the strategy is not yet implemented in Flower or because you want to +extend or modify the functionality of an existing strategy. +""" diff --git a/baselines/FedMeta/FedMeta/utils.py b/baselines/FedMeta/FedMeta/utils.py new file mode 100644 index 000000000000..9a831719d623 --- /dev/null +++ b/baselines/FedMeta/FedMeta/utils.py @@ -0,0 +1,6 @@ +"""Define any utility function. + +They are not directly relevant to the other (more FL specific) python modules. For +example, you may define here things like: loading a model from a checkpoint, saving +results, plotting. +""" diff --git a/baselines/FedMeta/LICENSE b/baselines/FedMeta/LICENSE new file mode 100644 index 000000000000..d64569567334 --- /dev/null +++ b/baselines/FedMeta/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md new file mode 100644 index 000000000000..0f9ecb972652 --- /dev/null +++ b/baselines/FedMeta/README.md @@ -0,0 +1,79 @@ +--- +title: Federated Meta-Learning with Fast Convergence and Efficient Communication +url: https://arxiv.org/abs/1802.07876 +labels: [meta learning, maml, meta-sgd, personalization] # please add between 4 and 10 single-word (maybe two-words) labels (e.g. "system heterogeneity", "image classification", "asynchronous", "weight sharing", "cross-silo") +dataset: [Femnist, Shakespeare] # list of datasets you include in your baseline +--- + +# FedMeta: Federated Meta-Learning with Fast Convergence and Efficient Communication + +****Paper:**** : https://arxiv.org/abs/1802.07876 + +****Authors:**** :Fei Chen, Mi Luo, Zhenhua Dong, Zhenguo Li, Xiuqiang He + +****Abstract:**** :Statistical and systematic challenges in collaboratively training machine learning models across distributed networks of mobile devices have been the bottlenecks in the real-world application of federated learning. In this work, we show that meta-learning is a natural choice to handle these issues, and propose a federated meta-learning framework FedMeta, where a parameterized algorithm (or meta-learner) is shared, instead of a global model in previous approaches. We conduct an extensive empirical evaluation on LEAF datasets and a real-world production dataset, and demonstrate that FedMeta achieves a reduction in required communication cost by 2.82-4.33 times with faster convergence, and an increase in accuracy by 3.23%-14.84% as compared to Federated Averaging (FedAvg) which is a leading optimization algorithm in federated learning. Moreover, FedMeta preserves user privacy since only the parameterized algorithm is transmitted between mobile devices and central servers, and no raw data is collected onto the servers. + + +## About this baseline + +****What’s implemented:**** :warning: *_Concisely describe what experiment(s) in the publication can be replicated by running the code. Please only use a few sentences. Start with: “The code in this directory …”_* + +****Datasets:**** :warning: *_List the datasets you used (if you used a medium to large dataset, >10GB please also include the sizes of the dataset)._* + +****Hardware Setup:**** :warning: *_Give some details about the hardware (e.g. a server with 8x V100 32GB and 256GB of RAM) you used to run the experiments for this baseline. Someone out there might not have access to the same resources you have so, could list the absolute minimum hardware needed to run the experiment in a reasonable amount of time ? (e.g. minimum is 1x 16GB GPU otherwise a client model can’t be trained with a sufficiently large batch size). Could you test this works too?_* + +****Contributors:**** :warning: *_let the world know who contributed to this baseline. This could be either your name, your name and affiliation at the time, or your GitHub profile name if you prefer. If multiple contributors signed up for this baseline, please list yourself and your colleagues_* + + +## Experimental Setup + +****Task:**** :warning: *_what’s the primary task that is being federated? (e.g. image classification, next-word prediction). If you have experiments for several, please list them_* + +****Model:**** :warning: *_provide details about the model you used in your experiments (if more than use a list). If your model is small, describing it as a table would be :100:. Some FL methods do not use an off-the-shelve model (e.g. ResNet18) instead they create your own. If this is your case, please provide a summary here and give pointers to where in the paper (e.g. Appendix B.4) is detailed._* + +****Dataset:**** :warning: *_Earlier you listed already the datasets that your baseline uses. Now you should include a breakdown of the details about each of them. Please include information about: how the dataset is partitioned (e.g. LDA with alpha 0.1 as default and all clients have the same number of training examples; or each client gets assigned a different number of samples following a power-law distribution with each client only instances of 2 classes)? if your dataset is naturally partitioned just state “naturally partitioned”; how many partitions there are (i.e. how many clients)? Please include this an all information relevant about the dataset and its partitioning into a table._* + +****Training Hyperparameters:**** :warning: *_Include a table with all the main hyperparameters in your baseline. Please show them with their default value._* + + +## Environment Setup + +:warning: _The Python environment for all baselines should follow these guidelines in the `EXTENDED_README`. Specify the steps to create and activate your environment. If there are any external system-wide requirements, please include instructions for them too. These instructions should be comprehensive enough so anyone can run them (if non standard, describe them step-by-step)._ + + +## Running the Experiments + +:warning: _Provide instructions on the steps to follow to run all the experiments._ +```bash +# The main experiment implemented in your baseline using default hyperparameters (that should be setup in the Hydra configs) should run (including dataset download and necessary partitioning) by executing the command: + +poetry run -m .main # where is the name of this directory and that of the only sub-directory in this directory (i.e. where all your source code is) + +# If you are using a dataset that requires a complicated download (i.e. not using one natively supported by TF/PyTorch) + preprocessing logic, you might want to tell people to run one script first that will do all that. Please ensure the download + preprocessing can be configured to suit (at least!) a different download directory (and use as default the current directory). The expected command to run to do this is: + +poetry run -m .dataset_preparation + +# It is expected that you baseline supports more than one dataset and different FL settings (e.g. different number of clients, dataset partitioning methods, etc). Please provide a list of commands showing how these experiments are run. Include also a short explanation of what each one does. Here it is expected you'll be using the Hydra syntax to override the default config. + +poetry run -m .main +. +. +. +poetry run -m .main +``` + + +## Expected Results + +:warning: _Your baseline implementation should replicate several of the experiments in the original paper. Please include here the exact command(s) needed to run each of those experiments followed by a figure (e.g. a line plot) or table showing the results you obtained when you ran the code. Below is an example of how you can present this. Please add command followed by results for all your experiments._ + +```bash +# it is likely that for one experiment you need to sweep over different hyperparameters. You are encouraged to use Hydra's multirun functionality for this. This is an example of how you could achieve this for some typical FL hyperparameteres + +poetry run -m .main --multirun num_client_per_round=5,10,50 dataset=femnist,cifar10 +# the above command will run a total of 6 individual experiments (because 3client_configs x 2datasets = 6 -- you can think of it as a grid). + +[Now show a figure/table displaying the results of the above command] + +# add more commands + plots for additional experiments. +``` diff --git a/baselines/FedMeta/pyproject.toml b/baselines/FedMeta/pyproject.toml new file mode 100644 index 000000000000..013db24e8871 --- /dev/null +++ b/baselines/FedMeta/pyproject.toml @@ -0,0 +1,135 @@ +[build-system] +requires = ["poetry-core>=1.4.0"] +build-backend = "poetry.masonry.api" + +[tool.poetry] +name = "FedMeta" # <----- Ensure it matches the name of your baseline directory containing all the source code +version = "1.0.0" +description = "Flower Baselines" +license = "Apache-2.0" +authors = ["The Flower Authors "] +readme = "README.md" +homepage = "https://flower.dev" +repository = "https://github.com/adap/flower" +documentation = "https://flower.dev" +classifiers = [ + "Development Status :: 3 - Alpha", + "Intended Audience :: Developers", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: Apache Software License", + "Operating System :: MacOS :: MacOS X", + "Operating System :: POSIX :: Linux", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: Implementation :: CPython", + "Topic :: Scientific/Engineering", + "Topic :: Scientific/Engineering :: Artificial Intelligence", + "Topic :: Scientific/Engineering :: Mathematics", + "Topic :: Software Development", + "Topic :: Software Development :: Libraries", + "Topic :: Software Development :: Libraries :: Python Modules", + "Typing :: Typed", +] + +[tool.poetry.dependencies] +python = ">=3.8.15, <3.12.0" # don't change this +flwr = "1.3.0" # don't change this +ray = "1.11.1" # don't change this +hydra-core = "1.3.2" # don't change this + +[tool.poetry.dev-dependencies] +isort = "==5.11.5" +black = "==23.1.0" +docformatter = "==1.5.1" +mypy = "==0.961" +pylint = "==2.8.2" +flake8 = "==3.9.2" +pytest = "==6.2.4" +pytest-watch = "==4.2.0" +ruff = "==0.0.272" +types-requests = "==2.27.7" + +[tool.isort] +line_length = 88 +indent = " " +multi_line_output = 3 +include_trailing_comma = true +force_grid_wrap = 0 +use_parentheses = true + +[tool.black] +line-length = 88 +target-version = ["py38", "py39", "py310", "py311"] + +[tool.pytest.ini_options] +minversion = "6.2" +addopts = "-qq" +testpaths = [ + "flwr_baselines", +] + +[tool.mypy] +ignore_missing_imports = true +strict = false +plugins = "numpy.typing.mypy_plugin" + +[tool.pylint."MESSAGES CONTROL"] +disable = "bad-continuation,duplicate-code,too-few-public-methods,useless-import-alias" +good-names = "i,j,k,_,x,y,X,Y" +signature-mutators="hydra.main.main" + +[[tool.mypy.overrides]] +module = [ + "importlib.metadata.*", + "importlib_metadata.*", +] +follow_imports = "skip" +follow_imports_for_stubs = true +disallow_untyped_calls = false + +[[tool.mypy.overrides]] +module = "torch.*" +follow_imports = "skip" +follow_imports_for_stubs = true + +[tool.docformatter] +wrap-summaries = 88 +wrap-descriptions = 88 + +[tool.ruff] +target-version = "py38" +line-length = 88 +select = ["D", "E", "F", "W", "B", "ISC", "C4"] +fixable = ["D", "E", "F", "W", "B", "ISC", "C4"] +ignore = ["B024", "B027"] +exclude = [ + ".bzr", + ".direnv", + ".eggs", + ".git", + ".hg", + ".mypy_cache", + ".nox", + ".pants.d", + ".pytype", + ".ruff_cache", + ".svn", + ".tox", + ".venv", + "__pypackages__", + "_build", + "buck-out", + "build", + "dist", + "node_modules", + "venv", + "proto", +] + +[tool.ruff.pydocstyle] +convention = "numpy" From 4561d980b78a076b92fc9dcf5c9e772b688a5c58 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 23 Aug 2023 14:01:07 +0900 Subject: [PATCH 046/133] Test Source Tree --- baselines/FedMeta/README.md | 2 +- doc/source/tutorial-get-started-with-flower-pytorch.ipynb | 0 doc/source/tutorial-what-is-federated-learning.ipynb | 0 3 files changed, 1 insertion(+), 1 deletion(-) mode change 100755 => 100644 doc/source/tutorial-get-started-with-flower-pytorch.ipynb mode change 100755 => 100644 doc/source/tutorial-what-is-federated-learning.ipynb diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index 0f9ecb972652..4cca63a1c006 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -16,7 +16,7 @@ dataset: [Femnist, Shakespeare] # list of datasets you include in your baseline ## About this baseline -****What’s implemented:**** :warning: *_Concisely describe what experiment(s) in the publication can be replicated by running the code. Please only use a few sentences. Start with: “The code in this directory …”_* +****What’s implemented:**** : I implement ~~~~~ ****Datasets:**** :warning: *_List the datasets you used (if you used a medium to large dataset, >10GB please also include the sizes of the dataset)._* diff --git a/doc/source/tutorial-get-started-with-flower-pytorch.ipynb b/doc/source/tutorial-get-started-with-flower-pytorch.ipynb old mode 100755 new mode 100644 diff --git a/doc/source/tutorial-what-is-federated-learning.ipynb b/doc/source/tutorial-what-is-federated-learning.ipynb old mode 100755 new mode 100644 From 60e51acab82f14e402fa84e98a54a6166fa49b08 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 23 Aug 2023 14:13:34 +0900 Subject: [PATCH 047/133] Section "About this baseline" --- baselines/FedMeta/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index 4cca63a1c006..2edaf283df33 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -16,13 +16,13 @@ dataset: [Femnist, Shakespeare] # list of datasets you include in your baseline ## About this baseline -****What’s implemented:**** : I implement ~~~~~ +****What’s implemented:**** : I implement ~~ -****Datasets:**** :warning: *_List the datasets you used (if you used a medium to large dataset, >10GB please also include the sizes of the dataset)._* +****Datasets:**** : -****Hardware Setup:**** :warning: *_Give some details about the hardware (e.g. a server with 8x V100 32GB and 256GB of RAM) you used to run the experiments for this baseline. Someone out there might not have access to the same resources you have so, could list the absolute minimum hardware needed to run the experiment in a reasonable amount of time ? (e.g. minimum is 1x 16GB GPU otherwise a client model can’t be trained with a sufficiently large batch size). Could you test this works too?_* +****Hardware Setup:**** : -****Contributors:**** :warning: *_let the world know who contributed to this baseline. This could be either your name, your name and affiliation at the time, or your GitHub profile name if you prefer. If multiple contributors signed up for this baseline, please list yourself and your colleagues_* +****Contributors:**** : ## Experimental Setup From 4b4d63c9871cf32adf30965275d5773d8b35f0b5 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 23 Aug 2023 14:18:00 +0900 Subject: [PATCH 048/133] Test branch --- baselines/FedMeta/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index 2edaf283df33..390d23715b96 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -18,9 +18,9 @@ dataset: [Femnist, Shakespeare] # list of datasets you include in your baseline ****What’s implemented:**** : I implement ~~ -****Datasets:**** : +****Datasets:**** : Dataset~ -****Hardware Setup:**** : +****Hardware Setup:**** : Hardware Setup ~ ****Contributors:**** : From 4862a25b726cbb9b491ee8515d202271b7c4ba12 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 23 Aug 2023 14:19:28 +0900 Subject: [PATCH 049/133] test branch --- baselines/FedMeta/FedMeta/Test_Source_Tree.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 baselines/FedMeta/FedMeta/Test_Source_Tree.py diff --git a/baselines/FedMeta/FedMeta/Test_Source_Tree.py b/baselines/FedMeta/FedMeta/Test_Source_Tree.py new file mode 100644 index 000000000000..e69de29bb2d1 From 3d9fde60490f91812c4cf87bf1e0753f8aedb292 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 23 Aug 2023 14:27:37 +0900 Subject: [PATCH 050/133] Delete Test file --- baselines/FedMeta/FedMeta/Test_Source_Tree.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 baselines/FedMeta/FedMeta/Test_Source_Tree.py diff --git a/baselines/FedMeta/FedMeta/Test_Source_Tree.py b/baselines/FedMeta/FedMeta/Test_Source_Tree.py deleted file mode 100644 index e69de29bb2d1..000000000000 From e75b0dce49a325bd7890d3a5935c78aaff3c6b1d Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Thu, 24 Aug 2023 09:27:27 +0900 Subject: [PATCH 051/133] update Fedmeta strategy base --- baselines/FedMeta/FedMeta/main.py | 25 ++++++++++++-- baselines/FedMeta/FedMeta/strategy.py | 47 +++++++++++++++++++++++++++ baselines/FedMeta/README.md | 2 +- 3 files changed, 70 insertions(+), 4 deletions(-) diff --git a/baselines/FedMeta/FedMeta/main.py b/baselines/FedMeta/FedMeta/main.py index 795800c64e21..b3a7c8b00657 100644 --- a/baselines/FedMeta/FedMeta/main.py +++ b/baselines/FedMeta/FedMeta/main.py @@ -7,6 +7,11 @@ # feel free to remove some if aren't needed import hydra from omegaconf import DictConfig, OmegaConf +from hydra.utils import instantiate +from strategy import FedMeta + +import flwr as fl + @hydra.main(config_path="conf", config_name="base", version_base=None) @@ -20,7 +25,6 @@ def main(cfg: DictConfig) -> None: """ # 1. Print parsed config print(OmegaConf.to_yaml(cfg)) - # 2. Prepare your dataset # here you should call a function in datasets.py that returns whatever is needed to: # (1) ensure the server can access the dataset used to evaluate your model after @@ -37,10 +41,22 @@ def main(cfg: DictConfig) -> None: # 4. Define your strategy # pass all relevant argument (including the global dataset used after aggregation, # if needed by your method.) - # strategy = instantiate(cfg.strategy, ) + strategy = instantiate( + cfg.strategy, + evaluate_fn=evaluate_fn, + on_fit_config_fn=get_on_fit_config(), + ) # 5. Start Simulation - # history = fl.simulation.start_simulation() + history = fl.simulation.start_simulation( + client_fn = "test", + num_clients = "test", + config = fl.server.ServerConfig(num_rounds=), + client_resources = { + + }, + strategy = strategy + ) # 6. Save your results # Here you can save the `history` returned by the simulation and include @@ -51,3 +67,6 @@ def main(cfg: DictConfig) -> None: # Hydra will generate for you a directory each time you run the code. You # can retrieve the path to that directory with this: # save_path = HydraConfig.get().runtime.output_dir + +if __name__ == "__main__": + main() diff --git a/baselines/FedMeta/FedMeta/strategy.py b/baselines/FedMeta/FedMeta/strategy.py index 17436c401c30..decd722dc543 100644 --- a/baselines/FedMeta/FedMeta/strategy.py +++ b/baselines/FedMeta/FedMeta/strategy.py @@ -3,3 +3,50 @@ Needed only when the strategy is not yet implemented in Flower or because you want to extend or modify the functionality of an existing strategy. """ +from typing import Dict, List, Optional, Tuple, Union +from logging import WARNING + +from flwr.server.client_proxy import ClientProxy +from flwr.server.strategy import FedAvg +from flwr.server.strategy.aggregate import aggregate + +from flwr.common.logger import log +from flwr.common import ( + FitRes, + Parameters, + Scalar, + ndarrays_to_parameters, + parameters_to_ndarrays, +) + + +class FedMeta(FedAvg): + def aggregate_fit( + self, + server_round: int, + results: List[Tuple[ClientProxy, FitRes]], + failures: List[Union[Tuple[ClientProxy, FitRes], BaseException]], + ) -> Tuple[Optional[Parameters], Dict[str, Scalar]]: + """Aggregate fit results using weighted average.""" + if not results: + return None, {} + # Do not aggregate if there are failures and failures are not accepted + if not self.accept_failures and failures: + return None, {} + + # Convert results + weights_results = [ + (parameters_to_ndarrays(fit_res.parameters), fit_res.num_examples) + for _, fit_res in results + ] + parameters_aggregated = ndarrays_to_parameters(aggregate(weights_results)) + + # Aggregate custom metrics if aggregation fn was provided + metrics_aggregated = {} + if self.fit_metrics_aggregation_fn: + fit_metrics = [(res.num_examples, res.metrics) for _, res in results] + metrics_aggregated = self.fit_metrics_aggregation_fn(fit_metrics) + elif server_round == 1: # Only log this warning once + log(WARNING, "No fit_metrics_aggregation_fn provided") + + return parameters_aggregated, metrics_aggregated diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index 390d23715b96..0ddf72e01b90 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -22,7 +22,7 @@ dataset: [Femnist, Shakespeare] # list of datasets you include in your baseline ****Hardware Setup:**** : Hardware Setup ~ -****Contributors:**** : +****Contributors:**** : Jinsoo Kim and Kangyoon Lee ## Experimental Setup From 1a361c2e262c539e3b34c719902d1ac5979779e7 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Mon, 28 Aug 2023 15:04:22 +0900 Subject: [PATCH 052/133] based fedmeta test --- baselines/FedMeta/FedMeta/client.py | 146 +++++++++++++++++++- baselines/FedMeta/FedMeta/conf/base.yaml | 17 --- baselines/FedMeta/FedMeta/conf/config.yaml | 35 +++++ baselines/FedMeta/FedMeta/dataset.py | 21 +++ baselines/FedMeta/FedMeta/main.py | 26 ++-- baselines/FedMeta/FedMeta/models.py | 151 +++++++++++++++++++++ baselines/FedMeta/FedMeta/strategy.py | 56 +++++++- 7 files changed, 421 insertions(+), 31 deletions(-) delete mode 100644 baselines/FedMeta/FedMeta/conf/base.yaml create mode 100644 baselines/FedMeta/FedMeta/conf/config.yaml diff --git a/baselines/FedMeta/FedMeta/client.py b/baselines/FedMeta/FedMeta/client.py index d2e2206111f3..49f3e60367fa 100644 --- a/baselines/FedMeta/FedMeta/client.py +++ b/baselines/FedMeta/FedMeta/client.py @@ -1,5 +1,145 @@ """Define your client class and a function to construct such clients. - -Please overwrite `flwr.client.NumPyClient` or `flwr.client.Client` and create a function -to instantiate your client. """ + +from collections import OrderedDict +from typing import Callable, Dict, List, Tuple +from omegaconf import DictConfig +from hydra.utils import instantiate + +import flwr as fl +from flwr.common.typing import NDArrays, Scalar + +import torch.nn +from torch.utils.data import DataLoader + +from models import train, test + +import json +import random +from dataset import FemnistDataset +import torchvision.transforms as transforms + + +class FlowerClient( + fl.client.NumPyClient +): + def __init__( + self, + net: torch.nn.Module, + trainloader: DataLoader, + valloader: DataLoader, + device: torch.device, + num_epochs: int, + learning_rate: float + ) -> object: + self.net = net + self.trainloader = trainloader + self.valloader = valloader + self.device = device + self.num_epochs = num_epochs + self.learning_rate = learning_rate + + def get_parameters(self, config: Dict[str, Scalar]) -> NDArrays: + """Returns the parameters of the current net.""" + return [val.cpu().numpy() for _, val in self.net.state_dict().items()] + + def set_parameters(self, parameters: NDArrays) -> None: + """Changes the parameters of the model using the given ones.""" + params_dict = zip(self.net.state_dict().keys(), parameters) + state_dict = OrderedDict({k: torch.Tensor(v) for k, v in params_dict}) + self.net.load_state_dict(state_dict, strict=True) + + def fit( + self, parameters: NDArrays, config: Dict[str, Scalar] + ) -> Tuple[NDArrays, int, Dict]: + """Implements distributed fit function for a given client.""" + self.set_parameters(parameters) + train( + self.net, + self.trainloader, + self.device, + epochs=self.num_epochs, + learning_rate=self.learning_rate, + ) + + return self.get_parameters({}), len(self.trainloader), {} + + def evaluate( + self, parameters: NDArrays, config: Dict[str, Scalar] + ) -> Tuple[float, int, Dict]: + """Implements distributed evaluation for a given client.""" + self.set_parameters(parameters) + loss, accuracy = test(self.net, self.valloader, self.device) + print("test now") + return float(loss), len(self.valloader), {"accuracy": float(accuracy)} + + +def gen_client_fn( + num_epochs: int, + # trainloaders: List[DataLoader], + # valloaders: List[DataLoader], + learning_rate: float, + model: DictConfig, +) -> Callable[[str], FlowerClient]: # pylint: disable=too-many-arguments + """Generates the client function that creates the Flower Clients. + + Parameters + ---------- + num_epochs : int + The number of local epochs each client should run the training for before + sending it to the server. + trainloaders: List[DataLoader] + A list of DataLoaders, each pointing to the dataset training partition + belonging to a particular client. + valloaders: List[DataLoader] + A list of DataLoaders, each pointing to the dataset validation partition + belonging to a particular client. + learning_rate : float + The learning rate for the SGD optimizer of clients. + + Returns + ------- + Tuple[Callable[[str], FlowerClient], DataLoader] + A tuple containing the client function that creates Flower Clients and + the DataLoader that will be used for testing + """ + + + def client_fn(cid: str) -> FlowerClient: + """Create a Flower client representing a single organization.""" + + print(f'cid : {cid}') + + # Load model + device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + net = instantiate(model).to(device) + ''' + Test Dataset + ''' + transform = transforms.Compose([transforms.ToTensor()]) + with open("/Users/jinsookim/PycharmProjects/fedmeta/leaf_data/train/all_data_" + str(cid) + "_niid_1_keep_0_train_9.json", "r") as f: + train_json = json.load(f) + with open("/Users/jinsookim/PycharmProjects/fedmeta/leaf_data/test/all_data_" + str(cid) + "_niid_1_keep_0_test_9.json", "r") as f: + test_json = json.load(f) + round_user = random.choice(train_json['users']) + trainset = FemnistDataset(train_json['user_data'][round_user], transform) + testset = FemnistDataset(test_json['user_data'][round_user],transform) + + # Note: each client gets a different trainloader/valloader, so each client + # will train and evaluate on their own unique data + # trainloader = trainloaders[int(cid)] + # valloader = valloaders[int(cid)] + + trainloader = DataLoader(trainset, batch_size=10, shuffle=True) + valloader = DataLoader(testset) + + return FlowerClient( + net, + trainloader, + valloader, + device, + num_epochs, + learning_rate, + ) + + return client_fn diff --git a/baselines/FedMeta/FedMeta/conf/base.yaml b/baselines/FedMeta/FedMeta/conf/base.yaml deleted file mode 100644 index 2d65b3b989b2..000000000000 --- a/baselines/FedMeta/FedMeta/conf/base.yaml +++ /dev/null @@ -1,17 +0,0 @@ ---- -# this is the config that will be loaded as default by main.py -# Please follow the provided structure (this will ensuring all baseline follow -# a similar configuration structure and hence be easy to customise) - -dataset: - # dataset config - -model: - # model config - -strategy: - _target_: # points to your strategy (either custom or exiting in Flower) - # rest of strategy config - -client: - # client config diff --git a/baselines/FedMeta/FedMeta/conf/config.yaml b/baselines/FedMeta/FedMeta/conf/config.yaml new file mode 100644 index 000000000000..4f726d38bb7d --- /dev/null +++ b/baselines/FedMeta/FedMeta/conf/config.yaml @@ -0,0 +1,35 @@ +--- +# this is the config that will be loaded as default by main.py +# Please follow the provided structure (this will ensuring all baseline follow +# a similar configuration structure and hence be easy to customise) + +num_clients: 10 # total number of clients +num_epochs: 1 # number of local epochs +batch_size: 10 +clients_per_round: 4 +num_rounds: 10 +learning_rate: 0.03 + +client_resources: + num_cpus: 2 + num_gpus: 0.0 + +server_device: cpu + +dataset: + # dataset config + +model: + _target_: baselines.fedmeta.fedmeta.models.Femnist_network # model config + +strategy: + _target_: baselines.fedmeta.fedmeta.strategy.FedMeta + # points to your strategy (either custom or exiting in Flower) + fraction_fit : 0.3 + min_fit_clients: ${clients_per_round} + min_available_clients: ${clients_per_round} + + # rest of strategy config + +client: + # client config diff --git a/baselines/FedMeta/FedMeta/dataset.py b/baselines/FedMeta/FedMeta/dataset.py index 5e436abe12fb..3454dea227bf 100644 --- a/baselines/FedMeta/FedMeta/dataset.py +++ b/baselines/FedMeta/FedMeta/dataset.py @@ -8,3 +8,24 @@ `dataset_preparation.py` module. You can use all those functions from functions/methods defined here of course. """ +import json +import numpy as np +from torch.utils.data import DataLoader, Dataset +import torchvision.transforms as transforms + + +class FemnistDataset(Dataset): + def __init__(self, dataset, transform): + self.x = dataset['x'] + self.y = dataset['y'] + self.transform = transform + + def __getitem__(self, index): + input_data = np.array(self.x[index]).reshape(28, 28, 1) + if self.transform: + input_data = self.transform(input_data) + target_data = self.y[index] + return input_data, target_data + + def __len__(self): + return len(self.y) diff --git a/baselines/FedMeta/FedMeta/main.py b/baselines/FedMeta/FedMeta/main.py index b3a7c8b00657..cbcd10510c04 100644 --- a/baselines/FedMeta/FedMeta/main.py +++ b/baselines/FedMeta/FedMeta/main.py @@ -8,13 +8,13 @@ import hydra from omegaconf import DictConfig, OmegaConf from hydra.utils import instantiate -from strategy import FedMeta +from strategy import weighted_average import flwr as fl +import client - -@hydra.main(config_path="conf", config_name="base", version_base=None) +@hydra.main(config_path="conf", config_name="config", version_base=None) def main(cfg: DictConfig) -> None: """Run the baseline. @@ -38,22 +38,28 @@ def main(cfg: DictConfig) -> None: # simulation to instantiate each individual client # client_fn = client.() + client_fn = client.gen_client_fn( + num_epochs=cfg.num_epochs, + learning_rate=cfg.learning_rate, + model=cfg.model + ) # 4. Define your strategy # pass all relevant argument (including the global dataset used after aggregation, # if needed by your method.) + strategy = instantiate( cfg.strategy, - evaluate_fn=evaluate_fn, - on_fit_config_fn=get_on_fit_config(), + evaluate_metrics_aggregation_fn = weighted_average ) # 5. Start Simulation history = fl.simulation.start_simulation( - client_fn = "test", - num_clients = "test", - config = fl.server.ServerConfig(num_rounds=), - client_resources = { - + client_fn = client_fn, + num_clients=cfg.num_clients, + config = fl.server.ServerConfig(num_rounds=cfg.num_rounds), + client_resources={ + "num_cpus": cfg.client_resources.num_cpus, + "num_gpus": cfg.client_resources.num_gpus, }, strategy = strategy ) diff --git a/baselines/FedMeta/FedMeta/models.py b/baselines/FedMeta/FedMeta/models.py index 71fa553d1f59..3187035af1eb 100644 --- a/baselines/FedMeta/FedMeta/models.py +++ b/baselines/FedMeta/FedMeta/models.py @@ -5,3 +5,154 @@ config. In this way, swapping your model for another one can be done without changing the python code at all """ + +from typing import Tuple + +import torch +import torch.nn as nn +from torch.utils.data import DataLoader + + +class Femnist_network(nn.Module): + """Convolutional Neural Network architecture. + + As described in McMahan 2017 paper : + + [Communication-Efficient Learning of Deep Networks from + Decentralized Data] (https://arxiv.org/pdf/1602.05629.pdf) + """ + + def __init__(self) -> None: + super(Femnist_network, self).__init__() + self.conv1 = nn.Conv2d(in_channels=1, out_channels=32, kernel_size=5, padding=2) + self.maxpool1 = nn.MaxPool2d(kernel_size=(2, 2)) + self.conv2 = nn.Conv2d(in_channels=32, out_channels=64, kernel_size=5, padding=2) + self.maxpool2 = nn.MaxPool2d(kernel_size=(2, 2)) + self.linear1 = nn.Linear(7 * 7 * 64, 2048) + self.linear2 = nn.Linear(2048, 62) + + def forward(self, input_tensor: torch.Tensor) -> torch.Tensor: + """Forward pass of the CNN. + + Parameters + ---------- + input_tensor : torch.Tensor + Input Tensor that will pass through the network + + Returns + ------- + torch.Tensor + The resulting Tensor after it has passed through the network + """ + output_tensor = torch.relu(self.conv1(input_tensor)) + output_tensor = self.maxpool1(output_tensor) + output_tensor = torch.relu(self.conv2(output_tensor)) + output_tensor = self.maxpool2(output_tensor) + output_tensor = torch.flatten(output_tensor, start_dim=1) + output_tensor = torch.relu((self.linear1(output_tensor))) + output_tensor = self.linear2(output_tensor) + return output_tensor + + +def train( # pylint: disable=too-many-arguments + net: nn.Module, + trainloader: DataLoader, + device: torch.device, + epochs: int, + learning_rate: float, +) -> None: + """Train the network on the training set. + + Parameters + ---------- + net : nn.Module + The neural network to train. + trainloader : DataLoader + The DataLoader containing the data to train the network on. + device : torch.device + The device on which the model should be trained, either 'cpu' or 'cuda'. + epochs : int + The number of epochs the model should be trained for. + learning_rate : float + The learning rate for the SGD optimizer. + """ + criterion = torch.nn.CrossEntropyLoss() + optimizer = torch.optim.SGD(net.parameters(), lr=learning_rate, weight_decay=0.001) + net.train() + for _ in range(epochs): + net = _train_one_epoch( + net, trainloader, device, criterion, optimizer + ) + + +def _train_one_epoch( # pylint: disable=too-many-arguments + net: nn.Module, + trainloader: DataLoader, + device: torch.device, + criterion: torch.nn.CrossEntropyLoss, + optimizer: torch.optim.Adam, +) -> nn.Module: + """Train for one epoch. + + Parameters + ---------- + net : nn.Module + The neural network to train. + trainloader : DataLoader + The DataLoader containing the data to train the network on. + device : torch.device + The device on which the model should be trained, either 'cpu' or 'cuda'. + criterion : torch.nn.CrossEntropyLoss + The loss function to use for training + optimizer : torch.optim.Adam + The optimizer to use for training + + Returns + ------- + nn.Module + The model that has been trained for one epoch. + """ + for images, labels in trainloader: + images, labels = images.to(device), labels.to(device) + optimizer.zero_grad() + loss = criterion(net(images.to(torch.float32)), labels) + loss.backward() + optimizer.step() + return net + + +def test( + net: nn.Module, testloader: DataLoader, device: torch.device +) -> Tuple[float, float]: + """Evaluate the network on the entire test set. + + Parameters + ---------- + net : nn.Module + The neural network to test. + testloader : DataLoader + The DataLoader containing the data to test the network on. + device : torch.device + The device on which the model should be tested, either 'cpu' or 'cuda'. + + Returns + ------- + Tuple[float, float] + The loss and the accuracy of the input model on the given data. + """ + criterion = torch.nn.CrossEntropyLoss() + correct, total, loss = 0, 0, 0.0 + net.eval() + with torch.no_grad(): + for images, labels in testloader: + images, labels = images.to(device), labels.to(device) + outputs = net(images.to(torch.float32)) + loss += criterion(outputs, labels).item() + _, predicted = torch.max(outputs.data, 1) + total += labels.size(0) + correct += (predicted == labels).sum().item() + if len(testloader.dataset) == 0: + raise ValueError("Testloader can't be 0, exiting...") + loss /= len(testloader.dataset) + accuracy = correct / total + return loss, accuracy diff --git a/baselines/FedMeta/FedMeta/strategy.py b/baselines/FedMeta/FedMeta/strategy.py index decd722dc543..d4e150c38fb0 100644 --- a/baselines/FedMeta/FedMeta/strategy.py +++ b/baselines/FedMeta/FedMeta/strategy.py @@ -8,7 +8,7 @@ from flwr.server.client_proxy import ClientProxy from flwr.server.strategy import FedAvg -from flwr.server.strategy.aggregate import aggregate +from flwr.server.strategy.aggregate import aggregate, weighted_loss_avg from flwr.common.logger import log from flwr.common import ( @@ -17,9 +17,32 @@ Scalar, ndarrays_to_parameters, parameters_to_ndarrays, + EvaluateRes, + Metrics ) +def weighted_average(metrics: List[Tuple[int, Metrics]]) -> dict: + """Aggregation function for weighted average during evaluation. + + Parameters + ---------- + metrics : List[Tuple[int, Metrics]] + The list of metrics to aggregate. + + Returns + ------- + Metrics + The weighted average metric. + """ + # Multiply accuracy of each client by number of examples used + accuracies = [num_examples * m["accuracy"] for num_examples, m in metrics] + examples = [num_examples for num_examples, _ in metrics] + + # Aggregate and return custom metric (weighted average) + return {"accuracy": int(sum(accuracies)) / int(sum(examples))} + + class FedMeta(FedAvg): def aggregate_fit( self, @@ -50,3 +73,34 @@ def aggregate_fit( log(WARNING, "No fit_metrics_aggregation_fn provided") return parameters_aggregated, metrics_aggregated + + def aggregate_evaluate( + self, + server_round: int, + results: List[Tuple[ClientProxy, EvaluateRes]], + failures: List[Union[Tuple[ClientProxy, EvaluateRes], BaseException]], + ) -> Tuple[Optional[float], Dict[str, Scalar]]: + """Aggregate evaluation losses using weighted average.""" + if not results: + return None, {} + # Do not aggregate if there are failures and failures are not accepted + if not self.accept_failures and failures: + return None, {} + + # Aggregate loss + loss_aggregated = weighted_loss_avg( + [ + (evaluate_res.num_examples, evaluate_res.loss) + for _, evaluate_res in results + ] + ) + + # Aggregate custom metrics if aggregation fn was provided + metrics_aggregated = {} + if self.evaluate_metrics_aggregation_fn: + eval_metrics = [(res.num_examples, res.metrics) for _, res in results] + metrics_aggregated = self.evaluate_metrics_aggregation_fn(eval_metrics) + elif server_round == 1: # Only log this warning once + log(WARNING, "No evaluate_metrics_aggregation_fn provided") + + return loss_aggregated, metrics_aggregated From f075201b5020641322fa0e3309c7e73801e06230 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Thu, 31 Aug 2023 09:23:20 +0900 Subject: [PATCH 053/133] add Fedmeta data preprocessing & client list add evaluate client selection --- .../FedMeta/FedMeta/Fedmeta_client_manager.py | 45 ++++++++ baselines/FedMeta/FedMeta/client.py | 5 +- baselines/FedMeta/FedMeta/conf/config.yaml | 17 ++- baselines/FedMeta/FedMeta/dataset.py | 28 ++++- .../FedMeta/FedMeta/dataset_preparation.py | 109 +++++++++++++++--- baselines/FedMeta/FedMeta/main.py | 44 ++++--- baselines/FedMeta/FedMeta/strategy.py | 59 +++++++++- 7 files changed, 247 insertions(+), 60 deletions(-) create mode 100644 baselines/FedMeta/FedMeta/Fedmeta_client_manager.py diff --git a/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py b/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py new file mode 100644 index 000000000000..d7a2644b7920 --- /dev/null +++ b/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py @@ -0,0 +1,45 @@ +from flwr.server.client_manager import SimpleClientManager +from typing import List, Optional +from logging import INFO +from flwr.common.logger import log +from flwr.server.criterion import Criterion +from flwr.server.client_proxy import ClientProxy +import random + + +class evaluate_client_Criterion(Criterion): + """Criterion to select evaluate clients.""" + def select(self, evaluate_clients: int) -> bool: + return [str(result) for result in range(0, evaluate_clients)] + + +class Fedmeta_client_manager(SimpleClientManager): + def sample( + self, + num_clients: int, + min_num_clients: Optional[int] = None, + min_evaluate_clients: Optional[int] = None, + criterion: Optional[Criterion] = None, + ) -> List[ClientProxy]: + """Sample a number of Flower ClientProxy instances.""" + # Block until at least num_clients are connected. + if min_num_clients is None: + min_num_clients = num_clients + self.wait_for(min_num_clients) + # Sample clients which meet the criterion + available_cids = list(self.clients) + if criterion is not None: + available_cids = criterion.select(min_evaluate_clients) + + if num_clients > len(available_cids): + log( + INFO, + "Sampling failed: number of available clients" + " (%s) is less than number of requested clients (%s).", + len(available_cids), + num_clients, + ) + return [] + + sampled_cids = random.sample(available_cids, num_clients) + return [self.clients[cid] for cid in sampled_cids] diff --git a/baselines/FedMeta/FedMeta/client.py b/baselines/FedMeta/FedMeta/client.py index 49f3e60367fa..932f98e21a33 100644 --- a/baselines/FedMeta/FedMeta/client.py +++ b/baselines/FedMeta/FedMeta/client.py @@ -70,14 +70,13 @@ def evaluate( """Implements distributed evaluation for a given client.""" self.set_parameters(parameters) loss, accuracy = test(self.net, self.valloader, self.device) - print("test now") return float(loss), len(self.valloader), {"accuracy": float(accuracy)} def gen_client_fn( num_epochs: int, - # trainloaders: List[DataLoader], - # valloaders: List[DataLoader], + # dataset: Tuple[Dict], + # client_list: List[str], learning_rate: float, model: DictConfig, ) -> Callable[[str], FlowerClient]: # pylint: disable=too-many-arguments diff --git a/baselines/FedMeta/FedMeta/conf/config.yaml b/baselines/FedMeta/FedMeta/conf/config.yaml index 4f726d38bb7d..279e93a041a0 100644 --- a/baselines/FedMeta/FedMeta/conf/config.yaml +++ b/baselines/FedMeta/FedMeta/conf/config.yaml @@ -3,20 +3,20 @@ # Please follow the provided structure (this will ensuring all baseline follow # a similar configuration structure and hence be easy to customise) -num_clients: 10 # total number of clients +num_clients: 35 # total number of clients num_epochs: 1 # number of local epochs -batch_size: 10 -clients_per_round: 4 +clients_per_round: 10 num_rounds: 10 learning_rate: 0.03 client_resources: - num_cpus: 2 - num_gpus: 0.0 server_device: cpu dataset: + path: /Users/jinsookim/PycharmProjects/fedmeta/leaf_data # Leaf Dataset path (Femnist or Shakespeare) + support_ratio : 0.2 + batch_size : 10 # dataset config model: @@ -25,10 +25,9 @@ model: strategy: _target_: baselines.fedmeta.fedmeta.strategy.FedMeta # points to your strategy (either custom or exiting in Flower) - fraction_fit : 0.3 - min_fit_clients: ${clients_per_round} - min_available_clients: ${clients_per_round} - + fraction_fit : 0.1 + fraction_evaluate : 0.1 + min_available_clients : ${clients_per_round} # rest of strategy config client: diff --git a/baselines/FedMeta/FedMeta/dataset.py b/baselines/FedMeta/FedMeta/dataset.py index 3454dea227bf..8cb7d9507c31 100644 --- a/baselines/FedMeta/FedMeta/dataset.py +++ b/baselines/FedMeta/FedMeta/dataset.py @@ -8,11 +8,12 @@ `dataset_preparation.py` module. You can use all those functions from functions/methods defined here of course. """ -import json + import numpy as np from torch.utils.data import DataLoader, Dataset -import torchvision.transforms as transforms - +from omegaconf import DictConfig +from typing import Optional, Tuple +from dataset_preparation import _partition_data, split_train_validation_test_clients class FemnistDataset(Dataset): def __init__(self, dataset, transform): @@ -29,3 +30,24 @@ def __getitem__(self, index): def __len__(self): return len(self.y) + + +def load_datasets( # pylint: disable=too-many-arguments + config: DictConfig, + seed: Optional[int] = 42, +) -> Tuple[DataLoader, DataLoader, DataLoader]: + print(f"Dataset partitioning config: {config}") + + dataset = _partition_data( + dir_path= config.path, + support_ratio= config.support_ratio + ) + + clients_list = split_train_validation_test_clients( + dataset[0]['users'] + ) + + return dataset, clients_list + + + diff --git a/baselines/FedMeta/FedMeta/dataset_preparation.py b/baselines/FedMeta/FedMeta/dataset_preparation.py index bd3440b9276b..05557c1dbaff 100644 --- a/baselines/FedMeta/FedMeta/dataset_preparation.py +++ b/baselines/FedMeta/FedMeta/dataset_preparation.py @@ -6,29 +6,100 @@ uncomment the lines below and tell us in the README.md (see the "Running the Experiment" block) that this file should be executed first. """ -# import hydra -# from hydra.core.hydra_config import HydraConfig -# from hydra.utils import call, instantiate -# from omegaconf import DictConfig, OmegaConf +import json +import os +from typing import List, Optional, Tuple, Dict, DefaultDict +from collections import defaultdict +import numpy as np -# @hydra.main(config_path="conf", config_name="base", version_base=None) -# def download_and_preprocess(cfg: DictConfig) -> None: -# """Does everything needed to get the dataset. +# def _read_dataset() -> Dict[List, Dict, List]: +def _read_dataset( + path: str +) -> Tuple[List, DefaultDict]: + """Read (if necessary) and returns the leaf dataset. -# Parameters -# ---------- -# cfg : DictConfig -# An omegaconf object that stores the hydra config. -# """ + Returns + ------- + Tuple[user, data[x,y]] + The dataset for training and the dataset for testing Femnist. + """ + users = [] + data = defaultdict(lambda: None) -# ## 1. print parsed config -# print(OmegaConf.to_yaml(cfg)) + files = [f for f in os.listdir(path) if f.endswith('.json')] -# # Please include here all the logic -# # Please use the Hydra config style as much as possible specially -# # for parts that can be customised (e.g. how data is partitioned) + for file_name in files: + with open(f'{path}/{file_name}') as f: + dataset = json.load(f) + users.extend(dataset['users']) + data.update(dataset['user_data']) -# if __name__ == "__main__": + return users, data -# download_and_preprocess() + +def support_query_split( + data: DefaultDict, + label: List, + support_ratio: int, + seed: Optional[int] = 42, +): + np.random.seed(seed) + random_index = np.random.permutation(len(label)) + slice_index = int(len(label) * support_ratio) + train_index = random_index[:slice_index] + test_index = random_index[slice_index:] + return data[train_index].tolist(), data[test_index].tolist(), label[train_index].tolist(), label[test_index].tolist() + + +def split_train_validation_test_clients( + clients: List, + train_rate: Optional[float] = 0.8, + val_rate: Optional[float] = 0.1, + seed: Optional[int] = 42 +) -> Tuple[List[str], List[str], List[str]]: + + np.random.seed(seed) + train_rate = int(train_rate * len(clients)) + val_rate = int(val_rate * len(clients)) + test_rate = len(clients) - train_rate - val_rate + + index = np.random.permutation(len(clients)) + trans_numpy = np.asarray(clients) + train_clients = trans_numpy[index[:train_rate]].tolist() + val_clients = trans_numpy[index[train_rate:train_rate + val_rate]].tolist() + test_clients = trans_numpy[index[train_rate + val_rate:]].tolist() + + return train_clients, val_clients, test_clients + + +def _partition_data( + dir_path: str, + support_ratio: float, + seed: Optional[int] = 42, +) -> Tuple[Dict, Dict]: + + train_path = f'{dir_path}/train' + test_path = f'{dir_path}/test' + + train_users, train_data = _read_dataset(train_path) + test_users, test_data = _read_dataset(test_path) + + support_dataset = {'users': [], 'user_data': {}, 'num_samples': []} + query_dataset = {'users': [], 'user_data': {}, 'num_samples': []} + + for user in train_users: + print(f'now preprocessing user : {user}') + all_x = np.asarray(train_data[user]['x'] + test_data[user]['x']) + all_y = np.asarray(train_data[user]['y'] + test_data[user]['y']) + sup_x, qry_x, sup_y, qry_y = support_query_split(all_x, all_y, support_ratio, seed) + + support_dataset['users'].append(user) + support_dataset['user_data'][user] = {'x': sup_x, 'y': sup_y} + support_dataset['num_samples'].append(len(sup_y)) + + query_dataset['users'].append(user) + query_dataset['user_data'][user] = {'x': qry_x, 'y': qry_y} + query_dataset['num_samples'].append(len(qry_y)) + + return support_dataset, query_dataset diff --git a/baselines/FedMeta/FedMeta/main.py b/baselines/FedMeta/FedMeta/main.py index cbcd10510c04..a10dc9efc3ea 100644 --- a/baselines/FedMeta/FedMeta/main.py +++ b/baselines/FedMeta/FedMeta/main.py @@ -9,6 +9,8 @@ from omegaconf import DictConfig, OmegaConf from hydra.utils import instantiate from strategy import weighted_average +from dataset import load_datasets +from Fedmeta_client_manager import Fedmeta_client_manager import flwr as fl import client @@ -23,45 +25,39 @@ def main(cfg: DictConfig) -> None: cfg : DictConfig An omegaconf object that stores the hydra config. """ - # 1. Print parsed config + # print config structured as YAML print(OmegaConf.to_yaml(cfg)) - # 2. Prepare your dataset - # here you should call a function in datasets.py that returns whatever is needed to: - # (1) ensure the server can access the dataset used to evaluate your model after - # aggregation - # (2) tell each client what dataset partitions they should use (e.g. a this could - # be a location in the file system, a list of dataloader, a list of ids to extract - # from a dataset, it's up to you) - # 3. Define your clients - # Define a function that returns another function that will be used during - # simulation to instantiate each individual client - # client_fn = client.() + # partition dataset and get dataloaders + # dataset, client_list = load_datasets(config=cfg.dataset) + # train_clients, val_clients, test_clients = client_list + # prepare function that will be used to spawn each client client_fn = client.gen_client_fn( num_epochs=cfg.num_epochs, + # dataset=dataset, + # client_list=client_list, learning_rate=cfg.learning_rate, - model=cfg.model + model=cfg.model, ) - # 4. Define your strategy - # pass all relevant argument (including the global dataset used after aggregation, - # if needed by your method.) strategy = instantiate( cfg.strategy, - evaluate_metrics_aggregation_fn = weighted_average + evaluate_metrics_aggregation_fn=weighted_average, + # min_evaluate_clients=len(val_clients), + min_fit_clients=7, + min_evaluate_clients=3, + # min_fit_client=len(train_clients) ) # 5. Start Simulation history = fl.simulation.start_simulation( - client_fn = client_fn, + client_fn=client_fn, + # num_clients=len(train_clients), num_clients=cfg.num_clients, - config = fl.server.ServerConfig(num_rounds=cfg.num_rounds), - client_resources={ - "num_cpus": cfg.client_resources.num_cpus, - "num_gpus": cfg.client_resources.num_gpus, - }, - strategy = strategy + config=fl.server.ServerConfig(num_rounds=cfg.num_rounds), + strategy=strategy, + client_manager=Fedmeta_client_manager() ) # 6. Save your results diff --git a/baselines/FedMeta/FedMeta/strategy.py b/baselines/FedMeta/FedMeta/strategy.py index d4e150c38fb0..2b894609f1a6 100644 --- a/baselines/FedMeta/FedMeta/strategy.py +++ b/baselines/FedMeta/FedMeta/strategy.py @@ -9,6 +9,8 @@ from flwr.server.client_proxy import ClientProxy from flwr.server.strategy import FedAvg from flwr.server.strategy.aggregate import aggregate, weighted_loss_avg +from flwr.server.client_manager import ClientManager +from Fedmeta_client_manager import evaluate_client_Criterion from flwr.common.logger import log from flwr.common import ( @@ -18,11 +20,13 @@ ndarrays_to_parameters, parameters_to_ndarrays, EvaluateRes, - Metrics + Metrics, + FitIns, + EvaluateIns, ) -def weighted_average(metrics: List[Tuple[int, Metrics]]) -> dict: +def weighted_average(metrics: List[Tuple[int, Metrics]]) -> Metrics: """Aggregation function for weighted average during evaluation. Parameters @@ -44,6 +48,57 @@ def weighted_average(metrics: List[Tuple[int, Metrics]]) -> dict: class FedMeta(FedAvg): + def configure_fit( + self, server_round: int, parameters: Parameters, client_manager: ClientManager + ) -> List[Tuple[ClientProxy, FitIns]]: + """Configure the next round of training.""" + config = {} + if self.on_fit_config_fn is not None: + # Custom fit config function provided + config = self.on_fit_config_fn(server_round) + fit_ins = FitIns(parameters, config) + + # Sample clients + sample_size, min_num_clients = self.num_fit_clients( + client_manager.num_available() + ) + clients = client_manager.sample( + num_clients=sample_size, min_num_clients=min_num_clients + ) + + # Return client/config pairs + return [(client, fit_ins) for client in clients] + + def configure_evaluate( + self, server_round: int, parameters: Parameters, client_manager: ClientManager + ) -> List[Tuple[ClientProxy, EvaluateIns]]: + """Configure the next round of evaluation.""" + # Do not configure federated evaluation if fraction eval is 0. + if self.fraction_evaluate == 0.0: + return [] + + # Parameters and config + config = {} + if self.on_evaluate_config_fn is not None: + # Custom evaluation config function provided + config = self.on_evaluate_config_fn(server_round) + evaluate_ins = EvaluateIns(parameters, config) + + # Sample clients + sample_size, min_num_clients = self.num_evaluation_clients( + client_manager.num_available() + ) + clients = client_manager.sample( + num_clients=sample_size, + min_num_clients=min_num_clients, + min_evaluate_clients=self.min_evaluate_clients, + criterion=evaluate_client_Criterion() + ) + + # Return client/config pairs + return [(client, evaluate_ins) for client in clients] + + def aggregate_fit( self, server_round: int, From 5312b1363a619c36295c370cc30c8c048d8fd58f Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Thu, 31 Aug 2023 13:55:30 +0900 Subject: [PATCH 054/133] fix Fedmeta base code --- .../FedMeta/FedMeta/Fedmeta_client_manager.py | 10 ++-- baselines/FedMeta/FedMeta/client.py | 29 ++++------ baselines/FedMeta/FedMeta/conf/config.yaml | 10 ++-- baselines/FedMeta/FedMeta/main.py | 37 +++++++++---- baselines/FedMeta/FedMeta/models.py | 2 +- baselines/FedMeta/FedMeta/server.py | 54 +++++++++++++++++-- baselines/FedMeta/FedMeta/strategy.py | 25 +-------- 7 files changed, 101 insertions(+), 66 deletions(-) diff --git a/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py b/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py index d7a2644b7920..b5708b6dd75c 100644 --- a/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py +++ b/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py @@ -8,9 +8,12 @@ class evaluate_client_Criterion(Criterion): + def __init__(self, min_evaluate_clients): + self.min_evaluate_clients = min_evaluate_clients + """Criterion to select evaluate clients.""" - def select(self, evaluate_clients: int) -> bool: - return [str(result) for result in range(0, evaluate_clients)] + def select(self, clients_num: int) -> bool: + return [str(result) for result in range(0, min(self.min_evaluate_clients, clients_num))] class Fedmeta_client_manager(SimpleClientManager): @@ -18,7 +21,6 @@ def sample( self, num_clients: int, min_num_clients: Optional[int] = None, - min_evaluate_clients: Optional[int] = None, criterion: Optional[Criterion] = None, ) -> List[ClientProxy]: """Sample a number of Flower ClientProxy instances.""" @@ -29,7 +31,7 @@ def sample( # Sample clients which meet the criterion available_cids = list(self.clients) if criterion is not None: - available_cids = criterion.select(min_evaluate_clients) + available_cids = criterion.select(len(self.clients)) if num_clients > len(available_cids): log( diff --git a/baselines/FedMeta/FedMeta/client.py b/baselines/FedMeta/FedMeta/client.py index 932f98e21a33..6f30cf6943c5 100644 --- a/baselines/FedMeta/FedMeta/client.py +++ b/baselines/FedMeta/FedMeta/client.py @@ -9,13 +9,12 @@ import flwr as fl from flwr.common.typing import NDArrays, Scalar +import torch import torch.nn from torch.utils.data import DataLoader from models import train, test -import json -import random from dataset import FemnistDataset import torchvision.transforms as transforms @@ -75,8 +74,8 @@ def evaluate( def gen_client_fn( num_epochs: int, - # dataset: Tuple[Dict], - # client_list: List[str], + dataset: Tuple[Dict], + client_list: List[str], learning_rate: float, model: DictConfig, ) -> Callable[[str], FlowerClient]: # pylint: disable=too-many-arguments @@ -103,7 +102,6 @@ def gen_client_fn( the DataLoader that will be used for testing """ - def client_fn(cid: str) -> FlowerClient: """Create a Flower client representing a single organization.""" @@ -112,25 +110,18 @@ def client_fn(cid: str) -> FlowerClient: # Load model device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") net = instantiate(model).to(device) - ''' - Test Dataset - ''' transform = transforms.Compose([transforms.ToTensor()]) - with open("/Users/jinsookim/PycharmProjects/fedmeta/leaf_data/train/all_data_" + str(cid) + "_niid_1_keep_0_train_9.json", "r") as f: - train_json = json.load(f) - with open("/Users/jinsookim/PycharmProjects/fedmeta/leaf_data/test/all_data_" + str(cid) + "_niid_1_keep_0_test_9.json", "r") as f: - test_json = json.load(f) - round_user = random.choice(train_json['users']) - trainset = FemnistDataset(train_json['user_data'][round_user], transform) - testset = FemnistDataset(test_json['user_data'][round_user],transform) # Note: each client gets a different trainloader/valloader, so each client # will train and evaluate on their own unique data - # trainloader = trainloaders[int(cid)] - # valloader = valloaders[int(cid)] + sup_set, qry_set = dataset + train_clients, val_client, _ = client_list + + train_set = sup_set['user_data'][train_clients[int(cid)]] + valid_set = sup_set['user_data'][val_client[int(cid)]] - trainloader = DataLoader(trainset, batch_size=10, shuffle=True) - valloader = DataLoader(testset) + trainloader = DataLoader(FemnistDataset(train_set, transform), batch_size=10, shuffle=True) + valloader = DataLoader(FemnistDataset(valid_set, transform)) return FlowerClient( net, diff --git a/baselines/FedMeta/FedMeta/conf/config.yaml b/baselines/FedMeta/FedMeta/conf/config.yaml index 279e93a041a0..36e9013ffabd 100644 --- a/baselines/FedMeta/FedMeta/conf/config.yaml +++ b/baselines/FedMeta/FedMeta/conf/config.yaml @@ -3,9 +3,9 @@ # Please follow the provided structure (this will ensuring all baseline follow # a similar configuration structure and hence be easy to customise) -num_clients: 35 # total number of clients +num_clients: 15 # total number of clients num_epochs: 1 # number of local epochs -clients_per_round: 10 +clients_per_round: 4 num_rounds: 10 learning_rate: 0.03 @@ -25,8 +25,10 @@ model: strategy: _target_: baselines.fedmeta.fedmeta.strategy.FedMeta # points to your strategy (either custom or exiting in Flower) - fraction_fit : 0.1 - fraction_evaluate : 0.1 + fraction_fit: 0.00001 + fraction_evaluate: 0.00001 + min_fit_clients : ${clients_per_round} + min_evaluate_clients : ${clients_per_round} min_available_clients : ${clients_per_round} # rest of strategy config diff --git a/baselines/FedMeta/FedMeta/main.py b/baselines/FedMeta/FedMeta/main.py index a10dc9efc3ea..c979dd96b815 100644 --- a/baselines/FedMeta/FedMeta/main.py +++ b/baselines/FedMeta/FedMeta/main.py @@ -11,6 +11,9 @@ from strategy import weighted_average from dataset import load_datasets from Fedmeta_client_manager import Fedmeta_client_manager +from flwr.common.logger import log +from logging import WARNING +import server import flwr as fl import client @@ -29,35 +32,48 @@ def main(cfg: DictConfig) -> None: print(OmegaConf.to_yaml(cfg)) # partition dataset and get dataloaders - # dataset, client_list = load_datasets(config=cfg.dataset) - # train_clients, val_clients, test_clients = client_list + dataset, client_list = load_datasets(config=cfg.dataset) + train_clients, val_clients, test_clients = client_list + + # Check config Clients value + if cfg.num_clients > len(train_clients): + raise ImportError(f"Total Clients num is {len(train_clients)}") + + if cfg.min_evaluate_clients > len(val_clients): + min_evaluate_clients = min(len(val_clients), cfg.min_evaluate_clients) + log(WARNING, "min_evaluate_clients iis smaller than Validation Clients") # prepare function that will be used to spawn each client client_fn = client.gen_client_fn( num_epochs=cfg.num_epochs, - # dataset=dataset, - # client_list=client_list, + dataset=dataset, + client_list=client_list, learning_rate=cfg.learning_rate, model=cfg.model, ) + # device = cfg.server_device + # evaluate_fn = server.gen_evaluate_fn( + # dataset=dataset, + # device=device, + # model=cfg.model + # ) + + strategy = instantiate( cfg.strategy, + # evaluate_fn=evaluate_fn, evaluate_metrics_aggregation_fn=weighted_average, - # min_evaluate_clients=len(val_clients), - min_fit_clients=7, - min_evaluate_clients=3, - # min_fit_client=len(train_clients) + min_evaluate_clients=int(min_evaluate_clients), ) # 5. Start Simulation history = fl.simulation.start_simulation( client_fn=client_fn, - # num_clients=len(train_clients), num_clients=cfg.num_clients, config=fl.server.ServerConfig(num_rounds=cfg.num_rounds), + client_manager=Fedmeta_client_manager(), strategy=strategy, - client_manager=Fedmeta_client_manager() ) # 6. Save your results @@ -70,5 +86,6 @@ def main(cfg: DictConfig) -> None: # can retrieve the path to that directory with this: # save_path = HydraConfig.get().runtime.output_dir + if __name__ == "__main__": main() diff --git a/baselines/FedMeta/FedMeta/models.py b/baselines/FedMeta/FedMeta/models.py index 3187035af1eb..9de15b834ec7 100644 --- a/baselines/FedMeta/FedMeta/models.py +++ b/baselines/FedMeta/FedMeta/models.py @@ -77,7 +77,7 @@ def train( # pylint: disable=too-many-arguments The learning rate for the SGD optimizer. """ criterion = torch.nn.CrossEntropyLoss() - optimizer = torch.optim.SGD(net.parameters(), lr=learning_rate, weight_decay=0.001) + optimizer = torch.optim.Adam(net.parameters(), lr=learning_rate, weight_decay=0.001) net.train() for _ in range(epochs): net = _train_one_epoch( diff --git a/baselines/FedMeta/FedMeta/server.py b/baselines/FedMeta/FedMeta/server.py index 2fd7d42cde5a..8bd063ad2891 100644 --- a/baselines/FedMeta/FedMeta/server.py +++ b/baselines/FedMeta/FedMeta/server.py @@ -1,5 +1,51 @@ -"""Create global evaluation function. +from collections import OrderedDict +from typing import Callable, Dict, Optional, Tuple -Optionally, also define a new Server class (please note this is not needed in most -settings). -""" +import torch +from flwr.common.typing import NDArrays, Scalar +from hydra.utils import instantiate +from omegaconf import DictConfig +from torch.utils.data import DataLoader + +from fedprox.models import test + + +def gen_evaluate_fn( + testloader: DataLoader, + device: torch.device, + model: DictConfig, +) -> Callable[ + [int, NDArrays, Dict[str, Scalar]], Optional[Tuple[float, Dict[str, Scalar]]] +]: + """Generates the function for centralized evaluation. + + Parameters + ---------- + testloader : DataLoader + The dataloader to test the model with. + device : torch.device + The device to test the model on. + + Returns + ------- + Callable[ [int, NDArrays, Dict[str, Scalar]], Optional[Tuple[float, Dict[str, Scalar]]] ] + The centralized evaluation function. + """ + + def evaluate( + server_round: int, parameters_ndarrays: NDArrays, config: Dict[str, Scalar] + ) -> Optional[Tuple[float, Dict[str, Scalar]]]: + # pylint: disable=unused-argument + """Use the entire CIFAR-10 test set for evaluation.""" + + net = instantiate(model) + params_dict = zip(net.state_dict().keys(), parameters_ndarrays) + state_dict = OrderedDict({k: torch.Tensor(v) for k, v in params_dict}) + net.load_state_dict(state_dict, strict=True) + net.to(device) + + loss, accuracy = test(net, testloader, device=device) + # return statistics + return loss, {"accuracy": accuracy} + + return evaluate diff --git a/baselines/FedMeta/FedMeta/strategy.py b/baselines/FedMeta/FedMeta/strategy.py index 2b894609f1a6..97e142e847c5 100644 --- a/baselines/FedMeta/FedMeta/strategy.py +++ b/baselines/FedMeta/FedMeta/strategy.py @@ -48,27 +48,6 @@ def weighted_average(metrics: List[Tuple[int, Metrics]]) -> Metrics: class FedMeta(FedAvg): - def configure_fit( - self, server_round: int, parameters: Parameters, client_manager: ClientManager - ) -> List[Tuple[ClientProxy, FitIns]]: - """Configure the next round of training.""" - config = {} - if self.on_fit_config_fn is not None: - # Custom fit config function provided - config = self.on_fit_config_fn(server_round) - fit_ins = FitIns(parameters, config) - - # Sample clients - sample_size, min_num_clients = self.num_fit_clients( - client_manager.num_available() - ) - clients = client_manager.sample( - num_clients=sample_size, min_num_clients=min_num_clients - ) - - # Return client/config pairs - return [(client, fit_ins) for client in clients] - def configure_evaluate( self, server_round: int, parameters: Parameters, client_manager: ClientManager ) -> List[Tuple[ClientProxy, EvaluateIns]]: @@ -91,14 +70,12 @@ def configure_evaluate( clients = client_manager.sample( num_clients=sample_size, min_num_clients=min_num_clients, - min_evaluate_clients=self.min_evaluate_clients, - criterion=evaluate_client_Criterion() + criterion=evaluate_client_Criterion(self.min_evaluate_clients) ) # Return client/config pairs return [(client, evaluate_ins) for client in clients] - def aggregate_fit( self, server_round: int, From ba0f908a0ec37e2ee0a18fe6eedc79f3f44638c8 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Thu, 31 Aug 2023 16:04:25 +0900 Subject: [PATCH 055/133] add Fedavg dataset preprocessing --- baselines/FedMeta/FedMeta/conf/config.yaml | 1 + baselines/FedMeta/FedMeta/dataset.py | 14 ++++-- .../FedMeta/FedMeta/dataset_preparation.py | 50 ++++++++++++------- 3 files changed, 44 insertions(+), 21 deletions(-) diff --git a/baselines/FedMeta/FedMeta/conf/config.yaml b/baselines/FedMeta/FedMeta/conf/config.yaml index 36e9013ffabd..52f809c883a6 100644 --- a/baselines/FedMeta/FedMeta/conf/config.yaml +++ b/baselines/FedMeta/FedMeta/conf/config.yaml @@ -14,6 +14,7 @@ client_resources: server_device: cpu dataset: + algo: fedavg #fedavg, fedavg(meta), fedmeta(maml), fedmeta(meta-sgd) path: /Users/jinsookim/PycharmProjects/fedmeta/leaf_data # Leaf Dataset path (Femnist or Shakespeare) support_ratio : 0.2 batch_size : 10 diff --git a/baselines/FedMeta/FedMeta/dataset.py b/baselines/FedMeta/FedMeta/dataset.py index 8cb7d9507c31..fd3b4a705cab 100644 --- a/baselines/FedMeta/FedMeta/dataset.py +++ b/baselines/FedMeta/FedMeta/dataset.py @@ -38,10 +38,16 @@ def load_datasets( # pylint: disable=too-many-arguments ) -> Tuple[DataLoader, DataLoader, DataLoader]: print(f"Dataset partitioning config: {config}") - dataset = _partition_data( - dir_path= config.path, - support_ratio= config.support_ratio - ) + if config.algo == 'fedavg': + dataset = _partition_data( + dir_path= config.path + ) + + elif config.algo == 'fedmeta(maml)': + dataset = _partition_data( + dir_path= config.path, + support_ratio= config.support_ratio + ) clients_list = split_train_validation_test_clients( dataset[0]['users'] diff --git a/baselines/FedMeta/FedMeta/dataset_preparation.py b/baselines/FedMeta/FedMeta/dataset_preparation.py index 05557c1dbaff..03b4e6234793 100644 --- a/baselines/FedMeta/FedMeta/dataset_preparation.py +++ b/baselines/FedMeta/FedMeta/dataset_preparation.py @@ -49,7 +49,8 @@ def support_query_split( slice_index = int(len(label) * support_ratio) train_index = random_index[:slice_index] test_index = random_index[slice_index:] - return data[train_index].tolist(), data[test_index].tolist(), label[train_index].tolist(), label[test_index].tolist() + return data[train_index].tolist(), data[test_index].tolist(), label[train_index].tolist(), label[ + test_index].tolist() def split_train_validation_test_clients( @@ -58,7 +59,6 @@ def split_train_validation_test_clients( val_rate: Optional[float] = 0.1, seed: Optional[int] = 42 ) -> Tuple[List[str], List[str], List[str]]: - np.random.seed(seed) train_rate = int(train_rate * len(clients)) val_rate = int(val_rate * len(clients)) @@ -75,7 +75,7 @@ def split_train_validation_test_clients( def _partition_data( dir_path: str, - support_ratio: float, + support_ratio: Optional[float] = None, seed: Optional[int] = 42, ) -> Tuple[Dict, Dict]: @@ -85,21 +85,37 @@ def _partition_data( train_users, train_data = _read_dataset(train_path) test_users, test_data = _read_dataset(test_path) - support_dataset = {'users': [], 'user_data': {}, 'num_samples': []} - query_dataset = {'users': [], 'user_data': {}, 'num_samples': []} + if support_ratio is None: + train_dataset = {'users': [], 'user_data': {}, 'num_samples': []} + test_dataset = {'users': [], 'user_data': {}, 'num_samples': []} + + for user in train_users: + train_dataset['users'].append(user) + train_dataset['user_data'][user] = {'x': train_data[user]['x'], 'y': train_data[user]['y']} + train_dataset['num_samples'].append(len(train_data[user]['y'])) + + test_dataset['users'].append(user) + test_dataset['user_data'][user] = {'x': test_data[user]['x'], 'y': test_data[user]['y']} + test_dataset['num_samples'].append(len(test_data[user]['y'])) + + return train_dataset, test_dataset + + else: + support_dataset = {'users': [], 'user_data': {}, 'num_samples': []} + query_dataset = {'users': [], 'user_data': {}, 'num_samples': []} - for user in train_users: - print(f'now preprocessing user : {user}') - all_x = np.asarray(train_data[user]['x'] + test_data[user]['x']) - all_y = np.asarray(train_data[user]['y'] + test_data[user]['y']) - sup_x, qry_x, sup_y, qry_y = support_query_split(all_x, all_y, support_ratio, seed) + for user in train_users: + print(f'now preprocessing user : {user}') + all_x = np.asarray(train_data[user]['x'] + test_data[user]['x']) + all_y = np.asarray(train_data[user]['y'] + test_data[user]['y']) + sup_x, qry_x, sup_y, qry_y = support_query_split(all_x, all_y, support_ratio, seed) - support_dataset['users'].append(user) - support_dataset['user_data'][user] = {'x': sup_x, 'y': sup_y} - support_dataset['num_samples'].append(len(sup_y)) + support_dataset['users'].append(user) + support_dataset['user_data'][user] = {'x': sup_x, 'y': sup_y} + support_dataset['num_samples'].append(len(sup_y)) - query_dataset['users'].append(user) - query_dataset['user_data'][user] = {'x': qry_x, 'y': qry_y} - query_dataset['num_samples'].append(len(qry_y)) + query_dataset['users'].append(user) + query_dataset['user_data'][user] = {'x': qry_x, 'y': qry_y} + query_dataset['num_samples'].append(len(qry_y)) - return support_dataset, query_dataset + return support_dataset, query_dataset From 652ac7cfd9ef26ac43da4cab3366ce1e41a83396 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Fri, 1 Sep 2023 10:03:09 +0900 Subject: [PATCH 056/133] setting local --> server interpreter --- baselines/FedMeta/FedMeta/conf/config.yaml | 5 +++-- baselines/FedMeta/FedMeta/dataset.py | 6 +++--- baselines/FedMeta/FedMeta/main.py | 1 - baselines/FedMeta/FedMeta/server.py | 2 -- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/baselines/FedMeta/FedMeta/conf/config.yaml b/baselines/FedMeta/FedMeta/conf/config.yaml index 52f809c883a6..6255dcae7757 100644 --- a/baselines/FedMeta/FedMeta/conf/config.yaml +++ b/baselines/FedMeta/FedMeta/conf/config.yaml @@ -14,8 +14,9 @@ client_resources: server_device: cpu dataset: - algo: fedavg #fedavg, fedavg(meta), fedmeta(maml), fedmeta(meta-sgd) - path: /Users/jinsookim/PycharmProjects/fedmeta/leaf_data # Leaf Dataset path (Femnist or Shakespeare) +# algo: fedavg #fedavg, fedavg(meta), fedmeta(maml), fedmeta(meta-sgd) + algo: fedmeta(maml) #fedavg, fedavg(meta), fedmeta(maml), fedmeta(meta-sgd) + path: # Leaf Dataset path (Femnist or Shakespeare) support_ratio : 0.2 batch_size : 10 # dataset config diff --git a/baselines/FedMeta/FedMeta/dataset.py b/baselines/FedMeta/FedMeta/dataset.py index fd3b4a705cab..31d21b32661a 100644 --- a/baselines/FedMeta/FedMeta/dataset.py +++ b/baselines/FedMeta/FedMeta/dataset.py @@ -40,13 +40,13 @@ def load_datasets( # pylint: disable=too-many-arguments if config.algo == 'fedavg': dataset = _partition_data( - dir_path= config.path + dir_path=config.path ) elif config.algo == 'fedmeta(maml)': dataset = _partition_data( - dir_path= config.path, - support_ratio= config.support_ratio + dir_path=config.path, + support_ratio=config.support_ratio ) clients_list = split_train_validation_test_clients( diff --git a/baselines/FedMeta/FedMeta/main.py b/baselines/FedMeta/FedMeta/main.py index c979dd96b815..a9a6a7394427 100644 --- a/baselines/FedMeta/FedMeta/main.py +++ b/baselines/FedMeta/FedMeta/main.py @@ -13,7 +13,6 @@ from Fedmeta_client_manager import Fedmeta_client_manager from flwr.common.logger import log from logging import WARNING -import server import flwr as fl import client diff --git a/baselines/FedMeta/FedMeta/server.py b/baselines/FedMeta/FedMeta/server.py index 8bd063ad2891..915e9944cffc 100644 --- a/baselines/FedMeta/FedMeta/server.py +++ b/baselines/FedMeta/FedMeta/server.py @@ -7,8 +7,6 @@ from omegaconf import DictConfig from torch.utils.data import DataLoader -from fedprox.models import test - def gen_evaluate_fn( testloader: DataLoader, From 4c9f435f693c63d4ed1fb758938f345a321af1f1 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Fri, 1 Sep 2023 18:04:14 +0900 Subject: [PATCH 057/133] add fedavg learning(ray & gpu) --- .../FedMeta/FedMeta/Fedmeta_client_manager.py | 10 +++-- baselines/FedMeta/FedMeta/client.py | 44 +++++++++++++------ baselines/FedMeta/FedMeta/main.py | 25 ++++------- baselines/FedMeta/FedMeta/models.py | 2 +- baselines/FedMeta/FedMeta/strategy.py | 6 ++- 5 files changed, 50 insertions(+), 37 deletions(-) diff --git a/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py b/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py index b5708b6dd75c..4d04e4ca141a 100644 --- a/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py +++ b/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py @@ -12,11 +12,15 @@ def __init__(self, min_evaluate_clients): self.min_evaluate_clients = min_evaluate_clients """Criterion to select evaluate clients.""" - def select(self, clients_num: int) -> bool: - return [str(result) for result in range(0, min(self.min_evaluate_clients, clients_num))] + def select(self, valid_client: int) -> bool: + return [str(result) for result in range(0, valid_client)] class Fedmeta_client_manager(SimpleClientManager): + def __init__(self, valid_client, **kwargs): + super().__init__(**kwargs) + self.valid_client = valid_client + def sample( self, num_clients: int, @@ -31,7 +35,7 @@ def sample( # Sample clients which meet the criterion available_cids = list(self.clients) if criterion is not None: - available_cids = criterion.select(len(self.clients)) + available_cids = criterion.select(self.valid_client) if num_clients > len(available_cids): log( diff --git a/baselines/FedMeta/FedMeta/client.py b/baselines/FedMeta/FedMeta/client.py index 6f30cf6943c5..4bebfc50762d 100644 --- a/baselines/FedMeta/FedMeta/client.py +++ b/baselines/FedMeta/FedMeta/client.py @@ -25,18 +25,28 @@ class FlowerClient( def __init__( self, net: torch.nn.Module, - trainloader: DataLoader, - valloader: DataLoader, + # trainloader: DataLoader, + # valloader: DataLoader, + cid: int, + dataset: Tuple[Dict], + client_list: List[str], device: torch.device, num_epochs: int, learning_rate: float ) -> object: self.net = net - self.trainloader = trainloader - self.valloader = valloader + self.trainloader = None + self.valloader = None + self.cid = cid self.device = device self.num_epochs = num_epochs self.learning_rate = learning_rate + self.train_set, self.valid_set = dataset + self.train_client, self.valid_client, _ = client_list + + + self.transform = transforms.Compose([transforms.ToTensor()]) + def get_parameters(self, config: Dict[str, Scalar]) -> NDArrays: """Returns the parameters of the current net.""" @@ -53,6 +63,8 @@ def fit( ) -> Tuple[NDArrays, int, Dict]: """Implements distributed fit function for a given client.""" self.set_parameters(parameters) + train_set = self.train_set['user_data'][self.train_client[int(self.cid)]] + self.trainloader = DataLoader(FemnistDataset(train_set, self.transform), batch_size=10, shuffle=True) train( self.net, self.trainloader, @@ -68,8 +80,10 @@ def evaluate( ) -> Tuple[float, int, Dict]: """Implements distributed evaluation for a given client.""" self.set_parameters(parameters) + valid_set = self.valid_set['user_data'][self.valid_client[int(self.cid)]] + self.valloader = DataLoader(FemnistDataset(valid_set, self.transform)) loss, accuracy = test(self.net, self.valloader, self.device) - return float(loss), len(self.valloader), {"accuracy": float(accuracy)} + return float(loss), len(self.valloader), {"correct": accuracy} def gen_client_fn( @@ -79,6 +93,7 @@ def gen_client_fn( learning_rate: float, model: DictConfig, ) -> Callable[[str], FlowerClient]: # pylint: disable=too-many-arguments + """Generates the client function that creates the Flower Clients. Parameters @@ -109,24 +124,25 @@ def client_fn(cid: str) -> FlowerClient: # Load model device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") + # device = 'cpu' net = instantiate(model).to(device) - transform = transforms.Compose([transforms.ToTensor()]) + # transform = transforms.Compose([transforms.ToTensor()]) # Note: each client gets a different trainloader/valloader, so each client # will train and evaluate on their own unique data - sup_set, qry_set = dataset - train_clients, val_client, _ = client_list + # train_clients, val_client, _ = client_list - train_set = sup_set['user_data'][train_clients[int(cid)]] - valid_set = sup_set['user_data'][val_client[int(cid)]] + # train_set = sup_set['user_data'][train_clients[int(cid)]] + # valid_set = sup_set['user_data'][val_client[int(cid)]] - trainloader = DataLoader(FemnistDataset(train_set, transform), batch_size=10, shuffle=True) - valloader = DataLoader(FemnistDataset(valid_set, transform)) + # trainloader = DataLoader(FemnistDataset(train_set, transform), batch_size=10, shuffle=True) + # valloader = DataLoader(FemnistDataset(valid_set, transform), batch_size=10) return FlowerClient( net, - trainloader, - valloader, + cid, + dataset, + client_list, device, num_epochs, learning_rate, diff --git a/baselines/FedMeta/FedMeta/main.py b/baselines/FedMeta/FedMeta/main.py index a9a6a7394427..ea8d5c6202a2 100644 --- a/baselines/FedMeta/FedMeta/main.py +++ b/baselines/FedMeta/FedMeta/main.py @@ -11,8 +11,7 @@ from strategy import weighted_average from dataset import load_datasets from Fedmeta_client_manager import Fedmeta_client_manager -from flwr.common.logger import log -from logging import WARNING + import flwr as fl import client @@ -33,15 +32,10 @@ def main(cfg: DictConfig) -> None: # partition dataset and get dataloaders dataset, client_list = load_datasets(config=cfg.dataset) train_clients, val_clients, test_clients = client_list - # Check config Clients value if cfg.num_clients > len(train_clients): raise ImportError(f"Total Clients num is {len(train_clients)}") - if cfg.min_evaluate_clients > len(val_clients): - min_evaluate_clients = min(len(val_clients), cfg.min_evaluate_clients) - log(WARNING, "min_evaluate_clients iis smaller than Validation Clients") - # prepare function that will be used to spawn each client client_fn = client.gen_client_fn( num_epochs=cfg.num_epochs, @@ -49,21 +43,14 @@ def main(cfg: DictConfig) -> None: client_list=client_list, learning_rate=cfg.learning_rate, model=cfg.model, - ) - - # device = cfg.server_device - # evaluate_fn = server.gen_evaluate_fn( - # dataset=dataset, - # device=device, - # model=cfg.model - # ) + ) strategy = instantiate( cfg.strategy, # evaluate_fn=evaluate_fn, evaluate_metrics_aggregation_fn=weighted_average, - min_evaluate_clients=int(min_evaluate_clients), + min_evaluate_clients=len(val_clients) ) # 5. Start Simulation @@ -71,7 +58,11 @@ def main(cfg: DictConfig) -> None: client_fn=client_fn, num_clients=cfg.num_clients, config=fl.server.ServerConfig(num_rounds=cfg.num_rounds), - client_manager=Fedmeta_client_manager(), + client_resources={ + "num_cpus": cfg.client_resources.num_cpus, + "num_gpus": cfg.client_resources.num_gpus, + }, + client_manager=Fedmeta_client_manager(valid_client=len(val_clients)), strategy=strategy, ) diff --git a/baselines/FedMeta/FedMeta/models.py b/baselines/FedMeta/FedMeta/models.py index 9de15b834ec7..17d6a26b1292 100644 --- a/baselines/FedMeta/FedMeta/models.py +++ b/baselines/FedMeta/FedMeta/models.py @@ -154,5 +154,5 @@ def test( if len(testloader.dataset) == 0: raise ValueError("Testloader can't be 0, exiting...") loss /= len(testloader.dataset) - accuracy = correct / total + accuracy = correct return loss, accuracy diff --git a/baselines/FedMeta/FedMeta/strategy.py b/baselines/FedMeta/FedMeta/strategy.py index 97e142e847c5..37f73d42a5c6 100644 --- a/baselines/FedMeta/FedMeta/strategy.py +++ b/baselines/FedMeta/FedMeta/strategy.py @@ -40,11 +40,11 @@ def weighted_average(metrics: List[Tuple[int, Metrics]]) -> Metrics: The weighted average metric. """ # Multiply accuracy of each client by number of examples used - accuracies = [num_examples * m["accuracy"] for num_examples, m in metrics] + correct = [num_examples * m["correct"] for num_examples, m in metrics] examples = [num_examples for num_examples, _ in metrics] # Aggregate and return custom metric (weighted average) - return {"accuracy": int(sum(accuracies)) / int(sum(examples))} + return {"accuracy": sum(correct) / sum(examples)} class FedMeta(FedAvg): @@ -132,6 +132,8 @@ def aggregate_evaluate( if self.evaluate_metrics_aggregation_fn: eval_metrics = [(res.num_examples, res.metrics) for _, res in results] metrics_aggregated = self.evaluate_metrics_aggregation_fn(eval_metrics) + log(WARNING, f"Test Accuracy : {metrics_aggregated['accuracy']}") + elif server_round == 1: # Only log this warning once log(WARNING, "No evaluate_metrics_aggregation_fn provided") From e461bc141865fac207e7a3531f03c653bd0194d5 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Mon, 4 Sep 2023 14:37:44 +0900 Subject: [PATCH 058/133] completed FedMeta(fedavg) --- .../FedMeta/FedMeta/Fedmeta_client_manager.py | 4 +- baselines/FedMeta/FedMeta/client.py | 54 +- baselines/FedMeta/FedMeta/dataset.py | 23 +- .../FedMeta/FedMeta/dataset_preparation.py | 12 +- baselines/FedMeta/FedMeta/main.py | 16 +- baselines/FedMeta/FedMeta/models.py | 4 +- baselines/FedMeta/FedMeta/server.py | 49 - baselines/FedMeta/FedMeta/strategy.py | 32 +- examples/flower-in-30-minutes/tutorial.ipynb | 2390 ++++++++--------- 9 files changed, 1277 insertions(+), 1307 deletions(-) diff --git a/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py b/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py index 4d04e4ca141a..e39b9a64a01a 100644 --- a/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py +++ b/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py @@ -24,6 +24,7 @@ def __init__(self, valid_client, **kwargs): def sample( self, num_clients: int, + server_round: Optional[int] = None, min_num_clients: Optional[int] = None, criterion: Optional[Criterion] = None, ) -> List[ClientProxy]: @@ -46,6 +47,7 @@ def sample( num_clients, ) return [] - + if server_round is not None: + random.seed(server_round-1) sampled_cids = random.sample(available_cids, num_clients) return [self.clients[cid] for cid in sampled_cids] diff --git a/baselines/FedMeta/FedMeta/client.py b/baselines/FedMeta/FedMeta/client.py index 4bebfc50762d..30b9f6309046 100644 --- a/baselines/FedMeta/FedMeta/client.py +++ b/baselines/FedMeta/FedMeta/client.py @@ -15,38 +15,26 @@ from models import train, test -from dataset import FemnistDataset -import torchvision.transforms as transforms - - class FlowerClient( fl.client.NumPyClient ): def __init__( self, net: torch.nn.Module, - # trainloader: DataLoader, - # valloader: DataLoader, - cid: int, - dataset: Tuple[Dict], - client_list: List[str], + trainloaders: DataLoader, + valloaders: DataLoader, + cid: str, device: torch.device, num_epochs: int, learning_rate: float ) -> object: self.net = net - self.trainloader = None - self.valloader = None - self.cid = cid + self.trainloaders = trainloaders + self.valloaders = valloaders + self.cid = int(cid) self.device = device self.num_epochs = num_epochs self.learning_rate = learning_rate - self.train_set, self.valid_set = dataset - self.train_client, self.valid_client, _ = client_list - - - self.transform = transforms.Compose([transforms.ToTensor()]) - def get_parameters(self, config: Dict[str, Scalar]) -> NDArrays: """Returns the parameters of the current net.""" @@ -63,33 +51,29 @@ def fit( ) -> Tuple[NDArrays, int, Dict]: """Implements distributed fit function for a given client.""" self.set_parameters(parameters) - train_set = self.train_set['user_data'][self.train_client[int(self.cid)]] - self.trainloader = DataLoader(FemnistDataset(train_set, self.transform), batch_size=10, shuffle=True) train( self.net, - self.trainloader, + self.trainloaders['train'][self.cid], self.device, epochs=self.num_epochs, learning_rate=self.learning_rate, ) - return self.get_parameters({}), len(self.trainloader), {} + return self.get_parameters({}), len(self.trainloaders['train'][self.cid]), {} def evaluate( self, parameters: NDArrays, config: Dict[str, Scalar] ) -> Tuple[float, int, Dict]: """Implements distributed evaluation for a given client.""" self.set_parameters(parameters) - valid_set = self.valid_set['user_data'][self.valid_client[int(self.cid)]] - self.valloader = DataLoader(FemnistDataset(valid_set, self.transform)) - loss, accuracy = test(self.net, self.valloader, self.device) - return float(loss), len(self.valloader), {"correct": accuracy} + loss, accuracy = test(self.net, self.valloaders['test'][self.cid], self.device) + return float(loss), len(self.valloaders['test'][self.cid]), {"correct": accuracy} def gen_client_fn( num_epochs: int, - dataset: Tuple[Dict], - client_list: List[str], + trainloaders: List[DataLoader], + valloaders: List[DataLoader], learning_rate: float, model: DictConfig, ) -> Callable[[str], FlowerClient]: # pylint: disable=too-many-arguments @@ -123,26 +107,18 @@ def client_fn(cid: str) -> FlowerClient: print(f'cid : {cid}') # Load model + torch.manual_seed(123) device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") - # device = 'cpu' net = instantiate(model).to(device) - # transform = transforms.Compose([transforms.ToTensor()]) # Note: each client gets a different trainloader/valloader, so each client # will train and evaluate on their own unique data - # train_clients, val_client, _ = client_list - - # train_set = sup_set['user_data'][train_clients[int(cid)]] - # valid_set = sup_set['user_data'][val_client[int(cid)]] - - # trainloader = DataLoader(FemnistDataset(train_set, transform), batch_size=10, shuffle=True) - # valloader = DataLoader(FemnistDataset(valid_set, transform), batch_size=10) return FlowerClient( net, + trainloaders, + valloaders, cid, - dataset, - client_list, device, num_epochs, learning_rate, diff --git a/baselines/FedMeta/FedMeta/dataset.py b/baselines/FedMeta/FedMeta/dataset.py index 31d21b32661a..9e046a9b4d8b 100644 --- a/baselines/FedMeta/FedMeta/dataset.py +++ b/baselines/FedMeta/FedMeta/dataset.py @@ -14,6 +14,11 @@ from omegaconf import DictConfig from typing import Optional, Tuple from dataset_preparation import _partition_data, split_train_validation_test_clients +import numpy as np +from torch.utils.data import DataLoader +import torchvision.transforms as transforms + + class FemnistDataset(Dataset): def __init__(self, dataset, transform): @@ -34,7 +39,6 @@ def __len__(self): def load_datasets( # pylint: disable=too-many-arguments config: DictConfig, - seed: Optional[int] = 42, ) -> Tuple[DataLoader, DataLoader, DataLoader]: print(f"Dataset partitioning config: {config}") @@ -53,7 +57,22 @@ def load_datasets( # pylint: disable=too-many-arguments dataset[0]['users'] ) - return dataset, clients_list + trainloaders = {'train': [], 'test': []} + valloaders = {'train': [], 'test': []} + testloaders = {'train': [], 'test': []} + + transform = transforms.Compose([transforms.ToTensor()]) + for user in clients_list[0]: + trainloaders['train'].append(DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=10, shuffle=True)) + trainloaders['test'].append(DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform))) + for user in clients_list[2]: + valloaders['train'].append(DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=10, shuffle=True)) + valloaders['test'].append(DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform))) + for user in clients_list[1]: + testloaders['train'].append(DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=10, shuffle=True)) + testloaders['test'].append(DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform))) + + return trainloaders, valloaders, testloaders diff --git a/baselines/FedMeta/FedMeta/dataset_preparation.py b/baselines/FedMeta/FedMeta/dataset_preparation.py index 03b4e6234793..0234519281c1 100644 --- a/baselines/FedMeta/FedMeta/dataset_preparation.py +++ b/baselines/FedMeta/FedMeta/dataset_preparation.py @@ -11,6 +11,8 @@ from typing import List, Optional, Tuple, Dict, DefaultDict from collections import defaultdict import numpy as np +import torch +import random # def _read_dataset() -> Dict[List, Dict, List]: @@ -35,6 +37,7 @@ def _read_dataset( users.extend(dataset['users']) data.update(dataset['user_data']) + users = list(sorted(data.keys())) return users, data @@ -42,9 +45,8 @@ def support_query_split( data: DefaultDict, label: List, support_ratio: int, - seed: Optional[int] = 42, ): - np.random.seed(seed) + np.random.seed(42) random_index = np.random.permutation(len(label)) slice_index = int(len(label) * support_ratio) train_index = random_index[:slice_index] @@ -57,9 +59,8 @@ def split_train_validation_test_clients( clients: List, train_rate: Optional[float] = 0.8, val_rate: Optional[float] = 0.1, - seed: Optional[int] = 42 ) -> Tuple[List[str], List[str], List[str]]: - np.random.seed(seed) + np.random.seed(42) train_rate = int(train_rate * len(clients)) val_rate = int(val_rate * len(clients)) test_rate = len(clients) - train_rate - val_rate @@ -76,7 +77,6 @@ def split_train_validation_test_clients( def _partition_data( dir_path: str, support_ratio: Optional[float] = None, - seed: Optional[int] = 42, ) -> Tuple[Dict, Dict]: train_path = f'{dir_path}/train' @@ -108,7 +108,7 @@ def _partition_data( print(f'now preprocessing user : {user}') all_x = np.asarray(train_data[user]['x'] + test_data[user]['x']) all_y = np.asarray(train_data[user]['y'] + test_data[user]['y']) - sup_x, qry_x, sup_y, qry_y = support_query_split(all_x, all_y, support_ratio, seed) + sup_x, qry_x, sup_y, qry_y = support_query_split(all_x, all_y, support_ratio) support_dataset['users'].append(user) support_dataset['user_data'][user] = {'x': sup_x, 'y': sup_y} diff --git a/baselines/FedMeta/FedMeta/main.py b/baselines/FedMeta/FedMeta/main.py index ea8d5c6202a2..18703c5eab2a 100644 --- a/baselines/FedMeta/FedMeta/main.py +++ b/baselines/FedMeta/FedMeta/main.py @@ -30,27 +30,25 @@ def main(cfg: DictConfig) -> None: print(OmegaConf.to_yaml(cfg)) # partition dataset and get dataloaders - dataset, client_list = load_datasets(config=cfg.dataset) - train_clients, val_clients, test_clients = client_list + trainloaders, valloaders, testloaders= load_datasets(config=cfg.dataset) # Check config Clients value - if cfg.num_clients > len(train_clients): - raise ImportError(f"Total Clients num is {len(train_clients)}") + if cfg.num_clients > len(trainloaders['train']): + raise ImportError(f"Total Clients num is {len(trainloaders['train'])}") # prepare function that will be used to spawn each client client_fn = client.gen_client_fn( num_epochs=cfg.num_epochs, - dataset=dataset, - client_list=client_list, + trainloaders=trainloaders, + valloaders=valloaders, learning_rate=cfg.learning_rate, model=cfg.model, - ) strategy = instantiate( cfg.strategy, # evaluate_fn=evaluate_fn, evaluate_metrics_aggregation_fn=weighted_average, - min_evaluate_clients=len(val_clients) + min_evaluate_clients=len(valloaders['train']) ) # 5. Start Simulation @@ -62,7 +60,7 @@ def main(cfg: DictConfig) -> None: "num_cpus": cfg.client_resources.num_cpus, "num_gpus": cfg.client_resources.num_gpus, }, - client_manager=Fedmeta_client_manager(valid_client=len(val_clients)), + client_manager=Fedmeta_client_manager(valid_client=len(valloaders['train'])), strategy=strategy, ) diff --git a/baselines/FedMeta/FedMeta/models.py b/baselines/FedMeta/FedMeta/models.py index 17d6a26b1292..5ae02b9a005a 100644 --- a/baselines/FedMeta/FedMeta/models.py +++ b/baselines/FedMeta/FedMeta/models.py @@ -28,8 +28,8 @@ def __init__(self) -> None: self.maxpool1 = nn.MaxPool2d(kernel_size=(2, 2)) self.conv2 = nn.Conv2d(in_channels=32, out_channels=64, kernel_size=5, padding=2) self.maxpool2 = nn.MaxPool2d(kernel_size=(2, 2)) - self.linear1 = nn.Linear(7 * 7 * 64, 2048) - self.linear2 = nn.Linear(2048, 62) + self.linear1 = nn.Linear(7 * 7 * 64, 1024) + self.linear2 = nn.Linear(1024, 62) def forward(self, input_tensor: torch.Tensor) -> torch.Tensor: """Forward pass of the CNN. diff --git a/baselines/FedMeta/FedMeta/server.py b/baselines/FedMeta/FedMeta/server.py index 915e9944cffc..e69de29bb2d1 100644 --- a/baselines/FedMeta/FedMeta/server.py +++ b/baselines/FedMeta/FedMeta/server.py @@ -1,49 +0,0 @@ -from collections import OrderedDict -from typing import Callable, Dict, Optional, Tuple - -import torch -from flwr.common.typing import NDArrays, Scalar -from hydra.utils import instantiate -from omegaconf import DictConfig -from torch.utils.data import DataLoader - - -def gen_evaluate_fn( - testloader: DataLoader, - device: torch.device, - model: DictConfig, -) -> Callable[ - [int, NDArrays, Dict[str, Scalar]], Optional[Tuple[float, Dict[str, Scalar]]] -]: - """Generates the function for centralized evaluation. - - Parameters - ---------- - testloader : DataLoader - The dataloader to test the model with. - device : torch.device - The device to test the model on. - - Returns - ------- - Callable[ [int, NDArrays, Dict[str, Scalar]], Optional[Tuple[float, Dict[str, Scalar]]] ] - The centralized evaluation function. - """ - - def evaluate( - server_round: int, parameters_ndarrays: NDArrays, config: Dict[str, Scalar] - ) -> Optional[Tuple[float, Dict[str, Scalar]]]: - # pylint: disable=unused-argument - """Use the entire CIFAR-10 test set for evaluation.""" - - net = instantiate(model) - params_dict = zip(net.state_dict().keys(), parameters_ndarrays) - state_dict = OrderedDict({k: torch.Tensor(v) for k, v in params_dict}) - net.load_state_dict(state_dict, strict=True) - net.to(device) - - loss, accuracy = test(net, testloader, device=device) - # return statistics - return loss, {"accuracy": accuracy} - - return evaluate diff --git a/baselines/FedMeta/FedMeta/strategy.py b/baselines/FedMeta/FedMeta/strategy.py index 37f73d42a5c6..bf5883231945 100644 --- a/baselines/FedMeta/FedMeta/strategy.py +++ b/baselines/FedMeta/FedMeta/strategy.py @@ -4,7 +4,7 @@ extend or modify the functionality of an existing strategy. """ from typing import Dict, List, Optional, Tuple, Union -from logging import WARNING +from logging import WARNING, INFO from flwr.server.client_proxy import ClientProxy from flwr.server.strategy import FedAvg @@ -40,7 +40,8 @@ def weighted_average(metrics: List[Tuple[int, Metrics]]) -> Metrics: The weighted average metric. """ # Multiply accuracy of each client by number of examples used - correct = [num_examples * m["correct"] for num_examples, m in metrics] + # correct = [num_examples * m["correct"] for num_examples, m in metrics] + correct = [ m["correct"] for _, m in metrics] examples = [num_examples for num_examples, _ in metrics] # Aggregate and return custom metric (weighted average) @@ -48,6 +49,29 @@ def weighted_average(metrics: List[Tuple[int, Metrics]]) -> Metrics: class FedMeta(FedAvg): + def configure_fit( + self, server_round: int, parameters: Parameters, client_manager: ClientManager + ) -> List[Tuple[ClientProxy, FitIns]]: + """Configure the next round of training.""" + config = {} + if self.on_fit_config_fn is not None: + # Custom fit config function provided + config = self.on_fit_config_fn(server_round) + fit_ins = FitIns(parameters, config) + + # Sample clients + sample_size, min_num_clients = self.num_fit_clients( + client_manager.num_available() + ) + clients = client_manager.sample( + num_clients=sample_size, + min_num_clients=min_num_clients, + server_round=server_round + ) + + # Return client/config pairs + return [(client, fit_ins) for client in clients] + def configure_evaluate( self, server_round: int, parameters: Parameters, client_manager: ClientManager ) -> List[Tuple[ClientProxy, EvaluateIns]]: @@ -70,7 +94,7 @@ def configure_evaluate( clients = client_manager.sample( num_clients=sample_size, min_num_clients=min_num_clients, - criterion=evaluate_client_Criterion(self.min_evaluate_clients) + criterion=evaluate_client_Criterion(self.min_evaluate_clients), ) # Return client/config pairs @@ -132,7 +156,7 @@ def aggregate_evaluate( if self.evaluate_metrics_aggregation_fn: eval_metrics = [(res.num_examples, res.metrics) for _, res in results] metrics_aggregated = self.evaluate_metrics_aggregation_fn(eval_metrics) - log(WARNING, f"Test Accuracy : {metrics_aggregated['accuracy']}") + log(INFO, f'Test Accuracy : {metrics_aggregated["accuracy"]:.3%}') elif server_round == 1: # Only log this warning once log(WARNING, "No evaluate_metrics_aggregation_fn provided") diff --git a/examples/flower-in-30-minutes/tutorial.ipynb b/examples/flower-in-30-minutes/tutorial.ipynb index b6864dcc696c..dd370833ff45 100644 --- a/examples/flower-in-30-minutes/tutorial.ipynb +++ b/examples/flower-in-30-minutes/tutorial.ipynb @@ -1,1240 +1,1240 @@ { - "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "P-iD0bgbXDdC" - }, - "source": [ - "Welcome to the 30 minutes Flower federated learning tutorial!\n", - "\n", - "In this tutorial you will implement your first Federated Learning project using [Flower](https://flower.dev/).\n", - "\n", - "🧑‍🏫 This tutorial starts at zero and expects no familiarity with federated learning. Only a basic understanding of data science and Python programming is assumed. A minimal understanding of ML is not required but if you already know about it, nothing is stopping your from modifying this code as you see fit!\n", - "\n", - "> Star Flower on [GitHub ⭐️](https://github.com/adap/flower) and join the Flower community on Slack to connect, ask questions, and get help: [Join Slack 🌼](https://flower.dev/join-slack/). We'd love to hear from you in the #introductions channel! And if anything is unclear, head over to the #questions channel.\n", - "\n", - "Let's get stated!" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Complementary Content\n", - "\n", - "But before do so, let me point you to a few video tutorials in the [Flower Youtube channel](https://www.youtube.com/@flowerlabs) that you might want to check out after this tutorial. We post new videos fairly regularly with new content:\n", - "* **[VIDEO]** quickstart-tensorflow: [15-min video on how to start with Flower + Tensorflow/Keras](https://www.youtube.com/watch?v=jOmmuzMIQ4c)\n", - "* **[VIDEO]** quickstart-pytorch: [20-min video on how to start with Flower + PyTorch](https://www.youtube.com/watch?v=jOmmuzMIQ4c)\n", - "* **[VIDEO]** Flower simulation mini-series: [9 line-by-line video tutorials](https://www.youtube.com/watch?v=cRebUIGB5RU&list=PLNG4feLHqCWlnj8a_E1A_n5zr2-8pafTB)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "jfy1EuX7Xzfg" - }, - "source": [ - "# Environment Setup\n", - "\n", - "Now let's really begin with this tutorial!\n", - "\n", - "To start working with Flower, very little is required once you have activated your Python environment (e.g. via `conda`, `virtualenv`, `pyenv`, etc). If you are running this code on Colab, there is really nothing to do except to install Flower and other dependencies. The steps below have been verified to run in Colab. Let's first, install Flower, then the ML framework of your choice and extra dependencies you might want to use.\n", - "\n", - "## Installing Flower\n", - "\n", - "You can install flower very conveniently from `pip`:" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "id": "Gc_GOyNXXB35" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Collecting git+https://github.com/adap/flower.git@main\n", - " Cloning https://github.com/adap/flower.git (to revision main) to /private/var/folders/yr/0jrp7k711jzcxcdxgh6y1jh80000gn/T/pip-req-build-9uwmcdwe\n", - " Running command git clone --filter=blob:none --quiet https://github.com/adap/flower.git /private/var/folders/yr/0jrp7k711jzcxcdxgh6y1jh80000gn/T/pip-req-build-9uwmcdwe\n", - " Resolved https://github.com/adap/flower.git to commit 351dae247c2d69680acdca6d449a4d62dfb5baf8\n", - " Installing build dependencies ... \u001b[?25ldone\n", - "\u001b[?25h Getting requirements to build wheel ... \u001b[?25ldone\n", - "\u001b[?25h Preparing metadata (pyproject.toml) ... \u001b[?25ldone\n", - "\u001b[?25hRequirement already satisfied: cryptography<42.0.0,>=41.0.2 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from flwr==1.5.0) (41.0.3)\n", - "Requirement already satisfied: grpcio!=1.52.0,<2.0.0,>=1.48.2 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from flwr==1.5.0) (1.57.0)\n", - "Requirement already satisfied: iterators<0.0.3,>=0.0.2 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from flwr==1.5.0) (0.0.2)\n", - "Requirement already satisfied: numpy<2.0.0,>=1.21.0 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from flwr==1.5.0) (1.24.3)\n", - "Requirement already satisfied: protobuf<4.0.0,>=3.19.0 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from flwr==1.5.0) (3.20.3)\n", - "Requirement already satisfied: pycryptodome<4.0.0,>=3.18.0 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from flwr==1.5.0) (3.18.0)\n", - "Requirement already satisfied: cffi>=1.12 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from cryptography<42.0.0,>=41.0.2->flwr==1.5.0) (1.15.1)\n", - "Requirement already satisfied: pycparser in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from cffi>=1.12->cryptography<42.0.0,>=41.0.2->flwr==1.5.0) (2.21)\n" - ] - } - ], - "source": [ - "# depending on your shell, you might need to add `\\` before `[` and `]`.\n", - "!pip install -q flwr[simulation]" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "y58HdudsYWQP" - }, - "source": [ - "We will be using the _simulation_ model in Flower, which allows you to run a large number of clients without the overheads of manually managing devices. This is achieved via the `Virtual Client Engine`, the core component that runs [FL Simulations](https://flower.dev/docs/framework/how-to-run-simulations.html) with Flower. With simulation, you can dynamically scale your experiments whether you run the code on your laptop, a machine with a single GPU, a server with multiple GPUs os even on a cluster with multiple servers. The `Virtual Client Engine` handles everything transparently and it allows you to specify how many resources (e.g. CPU cores, GPU VRAM) should be assigned to each virtual client." - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "2rkzo1M9a0io" - }, - "source": [ - "## Install your ML framework\n", - "\n", - "Flower is agnostic to your choice of ML Framework. Flower works with `PyTorch`, `Tensorflow`, `NumPy`, `🤗 Transformers`, `MXNet`, `JAX`, `scikit-learn`, `fastai`, `Pandas`. Flower also supports all major platforms: `iOS`, `Android` and plain `C++`. You can find a _quickstart- example for each of the above in the [Flower Repository](https://github.com/adap/flower/tree/main/examples) inside the `examples/` directory. And check the [Flower Documentation](https://flower.dev/docs/) for even more learning materials.\n", - "\n", - "In this tutorial we are going to use PyTorch, so let's install a recent version. In this tutorial we'll use a small model so using CPU only training will suffice (this will also prevent Colab from abruptly terminating your experiment if resource limits are exceeded)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "lqrJYPbZZ8aM", - "outputId": "7192138a-8c87-4d9a-f726-af1038ad264c" - }, - "outputs": [], - "source": [ - "# you might see a warning after running the command below, this can be ignored\n", - "# if you are running this outside Colab, you probably need to adjust the command below\n", - "!pip install torch==1.13.1+cpu torchvision==0.14.1+cpu torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cpu" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "4UTuRurVeLDF" - }, - "source": [ - "We are going to install some other dependencies you are likely familiar with. We'll use these to make plots." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "ybSlTUVXeT3u", - "outputId": "58b7af77-609f-4118-bd5b-5629a4b5a296" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Collecting matplotlib\n", - " Obtaining dependency information for matplotlib from https://files.pythonhosted.org/packages/8d/22/719f4fff33b13b0708711fb52ca3fc44617a26728e0e023358288d5197ae/matplotlib-3.7.2-cp310-cp310-macosx_11_0_arm64.whl.metadata\n", - " Downloading matplotlib-3.7.2-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.6 kB)\n", - "Collecting contourpy>=1.0.1 (from matplotlib)\n", - " Obtaining dependency information for contourpy>=1.0.1 from https://files.pythonhosted.org/packages/15/c4/aae3954fce0e22362cc55430d1a395bf0be5a22b40fce63edda9eb6ea339/contourpy-1.1.0-cp310-cp310-macosx_11_0_arm64.whl.metadata\n", - " Downloading contourpy-1.1.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.7 kB)\n", - "Collecting cycler>=0.10 (from matplotlib)\n", - " Using cached cycler-0.11.0-py3-none-any.whl (6.4 kB)\n", - "Collecting fonttools>=4.22.0 (from matplotlib)\n", - " Obtaining dependency information for fonttools>=4.22.0 from https://files.pythonhosted.org/packages/21/66/bddd878452ae1e2d5f5891daa6bcce594d6b19396d33b8798e722837b222/fonttools-4.42.1-cp310-cp310-macosx_10_9_universal2.whl.metadata\n", - " Downloading fonttools-4.42.1-cp310-cp310-macosx_10_9_universal2.whl.metadata (150 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m151.0/151.0 kB\u001b[0m \u001b[31m6.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hCollecting kiwisolver>=1.0.1 (from matplotlib)\n", - " Obtaining dependency information for kiwisolver>=1.0.1 from https://files.pythonhosted.org/packages/23/11/6fb190bae4b279d712a834e7b1da89f6dcff6791132f7399aa28a57c3565/kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl.metadata\n", - " Downloading kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl.metadata (6.4 kB)\n", - "Requirement already satisfied: numpy>=1.20 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from matplotlib) (1.24.3)\n", - "Requirement already satisfied: packaging>=20.0 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from matplotlib) (23.1)\n", - "Requirement already satisfied: pillow>=6.2.0 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from matplotlib) (10.0.0)\n", - "Collecting pyparsing<3.1,>=2.3.1 (from matplotlib)\n", - " Using cached pyparsing-3.0.9-py3-none-any.whl (98 kB)\n", - "Requirement already satisfied: python-dateutil>=2.7 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from matplotlib) (2.8.2)\n", - "Requirement already satisfied: six>=1.5 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n", - "Downloading matplotlib-3.7.2-cp310-cp310-macosx_11_0_arm64.whl (7.3 MB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.3/7.3 MB\u001b[0m \u001b[31m30.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", - "\u001b[?25hDownloading contourpy-1.1.0-cp310-cp310-macosx_11_0_arm64.whl (229 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m229.4/229.4 kB\u001b[0m \u001b[31m30.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hDownloading fonttools-4.42.1-cp310-cp310-macosx_10_9_universal2.whl (2.7 MB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.7/2.7 MB\u001b[0m \u001b[31m47.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n", - "\u001b[?25hDownloading kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl (66 kB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m66.2/66.2 kB\u001b[0m \u001b[31m10.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", - "\u001b[?25hInstalling collected packages: pyparsing, kiwisolver, fonttools, cycler, contourpy, matplotlib\n", - "Successfully installed contourpy-1.1.0 cycler-0.11.0 fonttools-4.42.1 kiwisolver-1.4.5 matplotlib-3.7.2 pyparsing-3.0.9\n" - ] - } - ], - "source": [ - "!pip install matplotlib" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "mpmcL_STdjIo" - }, - "source": [ - "# Centralised training: the old way of doing ML" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "gvw2TZjSec6C" - }, - "source": [ - "Let's begin by creating a simple (but complete) training loop as it is commonly done in centralised setups. Starting our tutorial in this way will allow us to very clearly identify which parts of a typical ML pipeline are common to both centralised and federated training and which ones are poles a part.\n", - "\n", - "For this tutorial we'll design a image classification pipeline for [MNIST digits](https://en.wikipedia.org/wiki/MNIST_database) and using a simple CNN model as the network to train. The MNIST dataset is comprised of `28x28` greyscale images with digits from 0 to 9 (i.e. 10 classes in total)\n", - "\n", - "\n", - "## A dataset\n", - "\n", - "Let's begin by constructing the dataset." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "id": "p9aFBjd1cpHs" - }, - "outputs": [], - "source": [ - "# we naturally first need to import torch and torchvision\n", - "import torch\n", - "from torch.utils.data import DataLoader\n", - "from torchvision.transforms import ToTensor, Normalize, Compose\n", - "from torchvision.datasets import MNIST\n", - "\n", - "\n", - "def get_mnist(data_path: str = './data'):\n", - " '''This function downloads the MNIST dataset into the `data_path`\n", - " directory if it is not there already. WE construct the train/test\n", - " split by converting the images into tensors and normalising them'''\n", - "\n", - " # transformation to convert images to tensors and apply normalisation\n", - " tr = Compose([ToTensor(), Normalize((0.1307,), (0.3081,))])\n", - "\n", - " # prepare train and test set\n", - " trainset = MNIST(data_path, train=True, download=True, transform=tr)\n", - " testset = MNIST(data_path, train=False, download=True, transform=tr)\n", - "\n", - " return trainset, testset" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "vKoQfqgYgwg0" - }, - "source": [ - "Let's run the code above and do some visualisations to understand better the data we are working with !" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "id": "pS8sL2hDgvZN" - }, - "outputs": [], - "source": [ - "trainset, testset = get_mnist()" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "iNA-6AcYhYVM" - }, - "source": [ - "We can have a quick overview of our datasets by just typing the object on the command line. For instance, below you can see that the `trainset` has 60k training examples and will use the transformation rule we defined above in `get_mnist()`." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "pWsIHsq-g4nX", - "outputId": "f10b649f-3cee-4e86-c7ff-94bd1fd3e082" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "Dataset MNIST\n", - " Number of datapoints: 60000\n", - " Root location: ./data\n", - " Split: Train\n", - " StandardTransform\n", - "Transform: Compose(\n", - " ToTensor()\n", - " Normalize(mean=(0.1307,), std=(0.3081,))\n", - " )" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "trainset" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "NY9bWlaMhweq" - }, - "source": [ - "Let's create a more insightful visualisation. First let's see the distribution over the labels by constructing a histogram. Then, let's visualise some training examples !" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 490 - }, - "id": "DCTjwpizikwy", - "outputId": "c8d0f4c0-60cd-4c58-bc91-3b061dae8046" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Class labels distribution for MNIST')" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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1ofMFixYgJ49e2Lfvn1o0qRJkWv8ly5dqrPiiIiIiMpCqQJRbGys+NUdL59UTURERFTeaB2IlixZgu+++w7Dhw/XQzlEREREZU/rc4jkcjl8fX31UQsRERGRQWgdiCZMmIAVK1booxYiIiIig9D6kNnJkydx4MAB7NmzB40aNSpyUvUvv/yis+KIiIiIyoLWgcjBwQF9+vTRRy1EREREBqF1INq4caM+6iAiIiIyGN5umoiIiCRP6z1EHh4er73f0M2bN9+qICIiIqKypnUgmjhxosZjlUqFs2fPYt++fZg0aZKu6iIiIiIqM1oHogkTJhS7PCoqCqdPn37rgoiIiIjKms7OIerevTt+/vlnXU1HREREVGZ0Foh27NgBR0dHXU1HREREVGa0PmTWokULjZOqBUFAWloa/v33X6xatUqnxRERERGVBa0D0QcffKDx2MzMDFWrVkXnzp3RsGFDXdVFREREVGa0DkSzZ8/WRx1EREREBsMbMxIREZHklXgPkZmZ2WtvyAgAMpkMz549e+uiiIiIiMpSiQPRzp07X7kuMTERy5cvR2FhoU6KIiIiIipLJQ5EvXv3LrLsypUrmDp1Knbv3o0hQ4Zgzpw5Oi2OiIiIqCyU6hyiO3fu4JNPPkGTJk3w7NkzJCcnY9OmTXB3d9d1fURERER6p1UgysrKwpQpU1C3bl2kpKQgPj4eu3fvRuPGjfVVHxEREZHelfiQ2eLFi7Fo0SK4uLjgp59+KvYQGhEREVF5VOJANHXqVFhbW6Nu3brYtGkTNm3aVOy4X375RWfFEREREZWFEgeiYcOGvfGyeyIiIqLyqMSBKDo6Wo9lEBERERkO71RNREREksdARERERJLHQERERESSx0BEREREksdARERERJLHQERERESSx0BEREREksdARERERJLHQERERESSx0BEREREksdARERERJJn0EC0YMECvPPOO6hYsSKcnJzwwQcf4MqVKxpjnj59ipCQEFSuXBl2dnbo27cv0tPTNcbcvn0bgYGBsLGxgZOTEyZNmoRnz55pjDl06BBatmwJuVyOunXr8rvZiIiISGTQQHT48GGEhITg+PHjUCqVUKlU8Pf3R05OjjgmNDQUu3fvxvbt23H48GHcuXMHffr0EdcXFBQgMDAQ+fn5OHbsGDZt2oTo6GjMmjVLHJOamorAwEC8++67SE5OxsSJEzFq1CjExsaWab9ERERknEr8bff6sG/fPo3H0dHRcHJyQlJSEjp27IisrCxs2LABMTEx6NKlCwBg48aN8PT0xPHjx+Ht7Y24uDhcvHgR+/fvh7OzM5o3b465c+diypQpCA8Ph6WlJVavXg0PDw8sWbIEAODp6YmEhARERkYiICCgzPsmIiIi42LQQPSyrKwsAICjoyMAICkpCSqVCn5+fuKYhg0bws3NDYmJifD29kZiYiKaNGkCZ2dncUxAQADGjBmDlJQUtGjRAomJiRpzqMdMnDix2Dry8vKQl5cnPs7OzgYAqFQqqFQqnfSqpp5PbibodN6ypq6ffRgH9mFcTKUPwHR6YR/GRV2/vn7HloTRBKLCwkJMnDgRvr6+aNy4MQAgLS0NlpaWcHBw0Bjr7OyMtLQ0ccyLYUi9Xr3udWOys7Px5MkTWFtba6xbsGABIiIiitQYFxcHGxub0jf5GnNbF+pl3rLGPowL+zAuptIHYDq9sA/jolQqdTpfbm5uiccaTSAKCQnBhQsXkJCQYOhSMG3aNISFhYmPs7OzUbNmTfj7+0OhUOj0uVQqFZRKJWaeNkNeoUync5cluZmAua0L2YeRYB/GxVT6AEynF/ZhXNR9dOvWDRYWFjqbV32EpySMIhCNGzcOe/bswZEjR1CjRg1xuYuLC/Lz85GZmamxlyg9PR0uLi7imJMnT2rMp74K7cUxL1+Zlp6eDoVCUWTvEADI5XLI5fIiyy0sLHT6Rr0or1CGvILy+2FWYx/GhX0YF1PpAzCdXtiHcdH171lt5jLoVWaCIGDcuHHYuXMnDhw4AA8PD431rVq1goWFBeLj48VlV65cwe3bt+Hj4wMA8PHxwfnz55GRkSGOUSqVUCgU8PLyEse8OId6jHoOIiIikjaD7iEKCQlBTEwM/vvf/6JixYriOT/29vawtraGvb09goODERYWBkdHRygUCnz++efw8fGBt7c3AMDf3x9eXl4YOnQoFi9ejLS0NMyYMQMhISHiXp7Ro0dj5cqVmDx5MkaOHIkDBw5g27Zt2Lt3r8F6JyIiIuNh0D1E3377LbKystC5c2dUq1ZN/Nm6das4JjIyEj179kTfvn3RsWNHuLi44JdffhHXm5ubY8+ePTA3N4ePjw8+/vhjDBs2DHPmzBHHeHh4YO/evVAqlWjWrBmWLFmC9evX85J7IiIiAmDgPUSC8ObLBK2srBAVFYWoqKhXjnF3d8evv/762nk6d+6Ms2fPal0jERERmT5+lxkRERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSZ5BA9GRI0fQq1cvuLq6QiaTYdeuXRrrBUHArFmzUK1aNVhbW8PPzw/Xrl3TGPPgwQMMGTIECoUCDg4OCA4OxuPHjzXG/PHHH+jQoQOsrKxQs2ZNLF68WN+tERERUTli0ECUk5ODZs2aISoqqtj1ixcvxvLly7F69WqcOHECtra2CAgIwNOnT8UxQ4YMQUpKCpRKJfbs2YMjR47g008/FddnZ2fD398f7u7uSEpKwldffYXw8HCsXbtW7/0RERFR+VDBkE/evXt3dO/evdh1giDgm2++wYwZM9C7d28AwPfffw9nZ2fs2rULAwcOxKVLl7Bv3z6cOnUKrVu3BgCsWLECPXr0wNdffw1XV1ds3rwZ+fn5+O6772BpaYlGjRohOTkZS5cu1QhOREREJF1Gew5Ramoq0tLS4OfnJy6zt7dH27ZtkZiYCABITEyEg4ODGIYAwM/PD2ZmZjhx4oQ4pmPHjrC0tBTHBAQE4MqVK3j48GEZdUNERETGzKB7iF4nLS0NAODs7Kyx3NnZWVyXlpYGJycnjfUVKlSAo6OjxhgPD48ic6jXVapUqchz5+XlIS8vT3ycnZ0NAFCpVFCpVG/TVhHq+eRmgk7nLWvq+tmHcWAfxsVU+gBMpxf2YVzU9evrd2xJGG0gMqQFCxYgIiKiyPK4uDjY2Njo5Tnnti7Uy7xljX0YF/ZhXEylD8B0emEfxkWpVOp0vtzc3BKPNdpA5OLiAgBIT09HtWrVxOXp6elo3ry5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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "\n", - "\n", - "# construct histogram\n", - "all_labels = trainset.targets\n", - "num_possible_labels = len(set(all_labels.numpy().tolist())) # this counts unique labels (so it should be = 10)\n", - "plt.hist(all_labels, bins=num_possible_labels)\n", - "\n", - "# plot formatting\n", - "plt.xticks(range(num_possible_labels))\n", - "plt.grid()\n", - "plt.xlabel('Label')\n", - "plt.ylabel('Number of images')\n", - "plt.title('Class labels distribution for MNIST')" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "K7-K0bKamho7" - }, - "source": [ - "Let's visualise 32 images from the dataset\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "id": "ExGypiVsjMUv" - }, - "outputs": [], - "source": [ - "import random\n", - "import numpy as np\n", - "\n", - "def visualise_n_random_examples(trainset_, n: int, verbose: bool = True):\n", - " # take n examples at random\n", - " idx =list(range(len(trainset_.data)))\n", - " random.shuffle(idx)\n", - " idx = idx[:n]\n", - " if verbose:\n", - " print(f\"will display images with idx: {idx}\")\n", - "\n", - "\n", - " # construct canvas\n", - " num_cols = 8\n", - " num_rows = int(np.ceil(len(idx)/num_cols))\n", - " fig, axs = plt.subplots(figsize=(16, num_rows*2), nrows=num_rows, ncols=num_cols)\n", - "\n", - " # display images on canvas\n", - " for c_i, i in enumerate(idx):\n", - " axs.flat[c_i].imshow(trainset_.data[i], cmap='gray')" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 715 - }, - "id": "xA2s8vqkmkga", - "outputId": "4e0988a8-388d-4acf-882b-089e4ea887bf" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "will display images with idx: [59717, 34422, 26054, 1199, 3182, 18665, 27924, 45921, 19494, 40038, 31891, 22197, 14705, 4590, 46747, 15779, 2575, 32582, 47065, 19149, 41838, 24098, 28738, 39203, 35935, 55347, 16343, 40626, 31743, 34183, 18890, 47438]\n" - ] - }, - { - "data": { - "image/png": "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FrQWLVqk1Jzf5+k29tf9u2nevLlSc2a0Z8+eyhwOKXGP88CF7OxsZc5f/vIXpdayZUvbWHeIiO77/f379ys1Z6ZmzpypzNEdELZlyxalBgRL9x6lyzXgpksuuUSpdenSJajn+uabb5SaF77v45ODAAAAAAAAgEexOAgAAAAAAAB4FIuDAAAAAAAAgEex52AYNG7cWKktXrzYNm7QoIFrr/fvf//btedCdDv//POV2lNPPWUbp6amKnPmzZun1PzdY9Bp9uzZSu3OO++0jR9//HG/ejhw4EBQPcA33XvQueeea6ATeIlub9GuXbvaxn/+85+VObq92oKl2xf1yJEjtnG7du2UOZmZmUpt586drvWF4DnvV9WrV3ftubdv367UbrjhBqX2008/+XyugoICn3PatGmj1ObMmaPUdN9rZmVl2ca6/ZLYhzA4Z511llJzfm+vm6PLxYcffmgbL1iwQJnz8ccfK7Vjx44pteLiYqUGALGoc+fOtrHufbJ27dpKraKiwrUeVqxYYRvr1mHef/99pbZhwwbbWPd+bgKfHAQAAAAAAAA8isVBAAAAAAAAwKNYHAQAAAAAAAA8KuDFwRUrVkivXr0kIyND4uLilH0xLMuSxx57TBo1aiQ1a9aU7Oxs+f77793qFx61atUqcgcjBgwYQO4QduQOJnCvhQnkDqZwr4UJvOchUgV8IElZWZm0atVKBg8eLP369VP+fNKkSfLCCy/I66+/LllZWTJmzBjp0aOHbN68WWrUqOFK05EsOTlZqb333ns+5+k2f27evHlQPZSWlgb1uEh28OBBcueD7mCR1157Tam1bdvWNl62bJkyZ9SoUW61pWzsLyLywgsv2MavvvqqMichIcG1HqqiZcuWMnTo0JjPne7wkfr16/t8nG7zX1RdLOYuKSlJqTk3kxYRadSokW38448/hqwnEZH169crNefhR/Xq1VPmXHrppUot2g8kiZV77dixY115Ht3hI9dcc41S27Jliyuvp7Nq1Sql1qdPH6WmO8TCeUiJ84ASEf1hY8EeQBasaMzd/fffr9ScB5DovgcbPXq0Utu3b597jSEgsXivjQSXXHJJUI/zyqGa0fieF041a9ZUat26dVNqzvdY3ePefvttpaY7nMsfugPCbrrpJtv48ssvV+aMHDlSqU2ePNk2fuyxx5Q5Jg4pCXhxsGfPntqT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LUFjz549Sq1v375h7eHvf/+7z9ppp6m3rRtvvFGpzZ49W6lVq1bNNr7mmmuUOR988IFS69Onj21cVlamzEFwioqKlNrcuXNPOT6Zs88+W6mlpqYG05Zi1qxZSk13+Mhf//pXpebcZB+RYcqUKUqtR48etnGzZs38eq577rnH55wXX3xRqe3YsUOpRerBJU4tWrQw3YJR0XTYiFssy1Jq27ZtU2qXXnqpbTx9+nRlzu23367U3nrrLdt4wIAByhzdQWIAQkt3SNXnn39uGzdv3lyZozvs0GnFihVKrUGDBkrtvPPOU2p16tSxjRs3bqzMiYuLU2o///yzbaz7+eP1119Xavv27VNqbh6wEgn45CAAAAAAAADgUSwOAgAAAAAAAB7F4iAAAAAAAADgUSwOAgAAAAAAAB7FgSQRLDk5Wak5N9XUbbIJb4rUAzwqKiqUmvOQko8//liZc/DgwZD1hOh1/PhxpabbSHj16tVKbenSpbaxbuPirl27KjXngRIjRozw2SfCT7cxvlu+//57paY7kKR169ZKrXr16qFoCVWky8vVV19tG3/yySfKnKysLL+e33lIie7Qks8++0ypbdiwwTaeOXOmX6/nD90hU5dddplrzw+IqAfk3XXXXcqc008/XanddNNNtvHEiROVORxIAoTfunXrlNobb7xhG996663KnAsvvNDnc//ud79TarrDj3Sch4bofhZ+9tlnldqxY8dsY+cBJV7GJwcBAAAAAAAAj2JxEAAAAAAAAPAoFgcBAAAAAAAAj2JxEAAAAAAAAPAoDiSJYLrNOJ215cuXh6sdGOTPQTRt27ZVas4DGExo3ry5UnP2Om3atHC1A5edffbZSm3UqFFKzXn4x9dff63Meeihh1zr67///a9Su+qqq2zjzz//XJnTtGlTpdaxY0fbOD5e/e9quoN3EDt0WenTp49S69Spk1I799xzbeM1a9a41hfc9d1339nGPXv2VOa8//77Ss35dywictppvr/F7t69u8+am++LgAm6g8SeeOIJpeY8kER3wBOA8CstLVVqgwcPPuUY0YlPDgIAAAAAAAAexeIgAAAAAAAA4FEBLQ7m5uZK27ZtJSkpSRo2bCh9+vSRrVu32uYcPnxYcnJypF69elK7dm3p37+/FBYWuto0vKdLly7kDkaQPZhA7mACuYMJU6ZM4ecLGMF7Hkwg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9GjIekLkatSokVJ76aWXbONevXopc5599lmldt1119nGtWrVUub861//UmpffvmlUnv11Vdt43379ilzysvLlRrCq1u3brbxE088oczRZWzgwIFKbeXKla705NxEWETkzTffVGq698a+ffvaxgsWLHClJ7irXbt2tvGQIUP8etz69euV2pQpU2zjHTt2+PVccXFxtvH+/fuVOdu2bVNqZ599tlIbP368baw7SKxu3bp+9QUEon79+rbxiy++6HOOiMiFF15oG3MgSXB0h3osXbrUtefXHQaiOzTEH7pDnvyZM27cuKBeD9GhRYsWSu31119Xauecc45t7LzviYhMnDhRqTVs2NA2fuSRR5Q5kydP9tmnju7fn+6As0OHDtnG11xzTVCvB/OaNm2q1JyH3oiE9qBW3c9AzgN7RETmzZtnG+u+D9St6egOEXMTnxwEAAAAAAAAPIrFQQAAAAAAAMCjWBwEAAAAAAAAPIrFQQAAAAAAAMCjOJAkgt1+++1K7a677rKNZ8yYocxxHjgBb3BmQ0QkNzdXqaWkpPh8rvvuuy+oHv7whz/4VXvooYds41WrVilzrr766qB6gHsmTJhgG7dt29avx3322WdKbfXq1bbxM888o8w5ePCgUmvZsqVtrNuYukaNGkrNsiyl1r9/f9uYA0kik/P9R3fozccff6zUBgwYoNScG42Hmi53F198cVh7QGxJSEhQarpD5mrXrq3UnBue79y5U5nzwQcfKDXdezh8cx6A4O/hI86DRXSHioT64A9/DiRBbOvUqZNS0x1i9MUXXyi1rl272sYlJSXKHN171IMPPmgbO9+zRETeeOMNtVmNK6+80jZ+7bXXlDm6Ayt0B6wg8uj+7mbOnGkbn3feecqcxo0b+3zutWvXKjVdzj/55BOldsUVV9jGukNvHn74YaW2ZMkS23ju3LnKHN33lBxIAgAAAAAAACAkWBwEAAAAAAAAPIrFQQAAAAAAAMCj2HMwQjRv3lyp6fYXmT17tm2s+x12xL7zzz9fqT355JNKzZ/9BXX27NkT1OMaNGig1E47TX2bce470qFDh6BeD5FJtwegcy8Y5zgczjnnnLC/JkJjypQpSi3c+ws2a9ZMqS1atEip+ZO7jz76yI2WEMEyMjKUWt++fZVax44dbWPd/nNvvvmmUps1a5ZSq1evnm3cq1cvZc6OHTvU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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# it is likely that the plot this function will generate looks familiar to other plots you might have generated before\n", - "# or you might have encountered in other tutorials. So far, we aren't doing anything new, Federated Learning will start soon!\n", - "visualise_n_random_examples(trainset, n=32)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "PmGyjFEFhVwd" - }, - "source": [ - "# A CNN architecture\n", - "\n", - "This tutorial is not so much about novel architectural designs so we keep things simple and make use of a typical CNN that is adequate for the MNIST image classification task.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "id": "Nr4jR6tspOh4" - }, - "outputs": [], - "source": [ - "import torch.nn as nn\n", - "import torch.nn.functional as F\n", - "\n", - "class Net(nn.Module):\n", - " def __init__(self, num_classes: int) -> None:\n", - " super(Net, self).__init__()\n", - " self.conv1 = nn.Conv2d(1, 6, 5)\n", - " self.pool = nn.MaxPool2d(2, 2)\n", - " self.conv2 = nn.Conv2d(6, 16, 5)\n", - " self.fc1 = nn.Linear(16 * 4 * 4, 120)\n", - " self.fc2 = nn.Linear(120, 84)\n", - " self.fc3 = nn.Linear(84, num_classes)\n", - "\n", - " def forward(self, x: torch.Tensor) -> torch.Tensor:\n", - " x = self.pool(F.relu(self.conv1(x)))\n", - " x = self.pool(F.relu(self.conv2(x)))\n", - " x = x.view(-1, 16 * 4 * 4)\n", - " x = F.relu(self.fc1(x))\n", - " x = F.relu(self.fc2(x))\n", - " x = self.fc3(x)\n", - " return x" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "5TJrrCBlpZOp" - }, - "source": [ - "Similarly to what we did with the dataset you could inspect the model in various ways. We can, for instance, count the number of model parameters." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "zdVK9c4hpYaC", - "outputId": "67d01ab4-cdd9-4661-8f01-eaa9aabf786d" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "num_parameters = 44426\n" - ] - } - ], - "source": [ - "model = Net(num_classes=10)\n", - "num_parameters = sum(value.numel() for value in model.state_dict().values())\n", - "print(f\"{num_parameters = }\")" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "XAXzw1dlp_oO" - }, - "source": [ - "## The Training Loop\n", - "\n", - "A minimal training loop in PyTorch can be constructed with three functions:\n", - "* `train()` that will train the model given a dataloader.\n", - "* `test()` that will be used to evaluate the performance of the model on held-out data, e.g., a training set.\n", - "* `run_centralised()` which will define additional elements (e.g. the optimiser) and run the training loop over N epochs.\n", - "\n", - "Let's construct these functions!\n" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "id": "DRhz5bcfpw06" - }, - "outputs": [], - "source": [ - "def train(net, trainloader, optimizer, epochs):\n", - " \"\"\"Train the network on the training set.\"\"\"\n", - " criterion = torch.nn.CrossEntropyLoss()\n", - " net.train()\n", - " for _ in range(epochs):\n", - " for images, labels in trainloader:\n", - " optimizer.zero_grad()\n", - " loss = criterion(net(images), labels)\n", - " loss.backward()\n", - " optimizer.step()\n", - " return net\n", - "\n", - "def test(net, testloader):\n", - " \"\"\"Validate the network on the entire test set.\"\"\"\n", - " criterion = torch.nn.CrossEntropyLoss()\n", - " correct, loss = 0, 0.0\n", - " net.eval()\n", - " with torch.no_grad():\n", - " for images, labels in testloader:\n", - " outputs = net(images)\n", - " loss += criterion(outputs, labels).item()\n", - " _, predicted = torch.max(outputs.data, 1)\n", - " correct += (predicted == labels).sum().item()\n", - " accuracy = correct / len(testloader.dataset)\n", - " return loss, accuracy\n", - "\n", - "\n", - "def run_centralised(epochs: int, lr: float, momentum: float=0.9):\n", - " \"\"\"A minimal (but complete) training loop\"\"\"\n", - "\n", - " # instantiate the model\n", - " model = Net(num_classes=10)\n", - "\n", - " # define optimiser with hyperparameters supplied\n", - " optim = torch.optim.SGD(model.parameters(), lr=lr, momentum=momentum)\n", - "\n", - " # get dataset and construct a dataloaders\n", - " trainset, testset = get_mnist()\n", - " trainloader = DataLoader(trainset, batch_size=64, shuffle=True, num_workers=2)\n", - " testloader = DataLoader(testset, batch_size=128)\n", - "\n", - " # train for the specified number of epochs\n", - " trained_model = train(model, trainloader, optim, epochs)\n", - "\n", - " # training is completed, then evaluate model on the test set\n", - " loss, accuracy = test(trained_model, testloader)\n", - " print(f\"{loss = }\")\n", - " print(f\"{accuracy = }\")" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "76Q0UnqiukYT" - }, - "source": [ - "Let's run this for 5 epochs (you'll see it reaching close to 99% accuracy -- as expected from a centralised setup with the MNIST dataset)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "xgJ6mdNSqzpI", - "outputId": "e8d9b429-178d-4924-e82f-4d4e52863788" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loss = 2.4290689574118005\n", - "accuracy = 0.9894\n" - ] - } - ], - "source": [ - "run_centralised(epochs=5, lr=0.01)" - ] - }, + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "P-iD0bgbXDdC" + }, + "source": [ + "Welcome to the 30 minutes Flower federated learning tutorial!\n", + "\n", + "In this tutorial you will implement your first Federated Learning project using [Flower](https://flower.dev/).\n", + "\n", + "🧑‍🏫 This tutorial starts at zero and expects no familiarity with federated learning. Only a basic understanding of data science and Python programming is assumed. A minimal understanding of ML is not required but if you already know about it, nothing is stopping your from modifying this code as you see fit!\n", + "\n", + "> Star Flower on [GitHub ⭐️](https://github.com/adap/flower) and join the Flower community on Slack to connect, ask questions, and get help: [Join Slack 🌼](https://flower.dev/join-slack/). We'd love to hear from you in the #introductions channel! And if anything is unclear, head over to the #questions channel.\n", + "\n", + "Let's get stated!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Complementary Content\n", + "\n", + "But before do so, let me point you to a few video tutorials in the [Flower Youtube channel](https://www.youtube.com/@flowerlabs) that you might want to check out after this tutorial. We post new videos fairly regularly with new content:\n", + "* **[VIDEO]** quickstart-tensorflow: [15-min video on how to start with Flower + Tensorflow/Keras](https://www.youtube.com/watch?v=jOmmuzMIQ4c)\n", + "* **[VIDEO]** quickstart-pytorch: [20-min video on how to start with Flower + PyTorch](https://www.youtube.com/watch?v=jOmmuzMIQ4c)\n", + "* **[VIDEO]** Flower simulation mini-series: [9 line-by-line video tutorials](https://www.youtube.com/watch?v=cRebUIGB5RU&list=PLNG4feLHqCWlnj8a_E1A_n5zr2-8pafTB)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "jfy1EuX7Xzfg" + }, + "source": [ + "# Environment Setup\n", + "\n", + "Now let's really begin with this tutorial!\n", + "\n", + "To start working with Flower, very little is required once you have activated your Python environment (e.g. via `conda`, `virtualenv`, `pyenv`, etc). If you are running this code on Colab, there is really nothing to do except to install Flower and other dependencies. The steps below have been verified to run in Colab. Let's first, install Flower, then the ML framework of your choice and extra dependencies you might want to use.\n", + "\n", + "## Installing Flower\n", + "\n", + "You can install flower very conveniently from `pip`:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "id": "Gc_GOyNXXB35" + }, + "outputs": [ { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "pyz2gQaluw-5" - }, - "source": [ - "The above centralised formulation has worked just fine for some applications and to showcase the potential of AI in a variety of scenarios. However, as was discussed earlier in the session, centralised training is unsuitable for a larger range of settings were information cannot be collected in order to build a unified (centralised) dataset.\n", - "\n", - "# The Future of AI is Federated\n", - "\n", - "What are the key differences between Federated Learning and Centralised Training? I you could only pick you, probably you'd say:\n", - "* Federated Learning is distributed -- the model is trained on-device by the participating clients.\n", - "* Data remains private and is owned by a specific _client_ -- the data is never sent to the central server.\n", - "\n", - "The are several more differences. But the above two are the main ones to always consider and that are common to all flavours of Federated Learning (e.g. _cross-device_ or _cross-silo_). The remaining of this tutorial is going to focus in transforming the code we have written so far for the centralised setting and construct a Federated Learning pipeline using Flower and PyTorch.\n", - "\n", - "Let's begin! 🚀" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "Collecting git+https://github.com/adap/flower.git@main\n", + " Cloning https://github.com/adap/flower.git (to revision main) to /private/var/folders/yr/0jrp7k711jzcxcdxgh6y1jh80000gn/T/pip-req-build-9uwmcdwe\n", + " Running command git clone --filter=blob:none --quiet https://github.com/adap/flower.git /private/var/folders/yr/0jrp7k711jzcxcdxgh6y1jh80000gn/T/pip-req-build-9uwmcdwe\n", + " Resolved https://github.com/adap/flower.git to commit 351dae247c2d69680acdca6d449a4d62dfb5baf8\n", + " Installing build dependencies ... \u001B[?25ldone\n", + "\u001B[?25h Getting requirements to build wheel ... \u001B[?25ldone\n", + "\u001B[?25h Preparing metadata (pyproject.toml) ... \u001B[?25ldone\n", + "\u001B[?25hRequirement already satisfied: cryptography<42.0.0,>=41.0.2 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from flwr==1.5.0) (41.0.3)\n", + "Requirement already satisfied: grpcio!=1.52.0,<2.0.0,>=1.48.2 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from flwr==1.5.0) (1.57.0)\n", + "Requirement already satisfied: iterators<0.0.3,>=0.0.2 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from flwr==1.5.0) (0.0.2)\n", + "Requirement already satisfied: numpy<2.0.0,>=1.21.0 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from flwr==1.5.0) (1.24.3)\n", + "Requirement already satisfied: protobuf<4.0.0,>=3.19.0 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from flwr==1.5.0) (3.20.3)\n", + "Requirement already satisfied: pycryptodome<4.0.0,>=3.18.0 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from flwr==1.5.0) (3.18.0)\n", + "Requirement already satisfied: cffi>=1.12 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from cryptography<42.0.0,>=41.0.2->flwr==1.5.0) (1.15.1)\n", + "Requirement already satisfied: pycparser in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from cffi>=1.12->cryptography<42.0.0,>=41.0.2->flwr==1.5.0) (2.21)\n" + ] + } + ], + "source": [ + "# depending on your shell, you might need to add `\\` before `[` and `]`.\n", + "!pip install -q flwr[simulation]" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "y58HdudsYWQP" + }, + "source": [ + "We will be using the _simulation_ model in Flower, which allows you to run a large number of clients without the overheads of manually managing devices. This is achieved via the `Virtual Client Engine`, the core component that runs [FL Simulations](https://flower.dev/docs/framework/how-to-run-simulations.html) with Flower. With simulation, you can dynamically scale your experiments whether you run the code on your laptop, a machine with a single GPU, a server with multiple GPUs os even on a cluster with multiple servers. The `Virtual Client Engine` handles everything transparently and it allows you to specify how many resources (e.g. CPU cores, GPU VRAM) should be assigned to each virtual client." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "2rkzo1M9a0io" + }, + "source": [ + "## Install your ML framework\n", + "\n", + "Flower is agnostic to your choice of ML Framework. Flower works with `PyTorch`, `Tensorflow`, `NumPy`, `🤗 Transformers`, `MXNet`, `JAX`, `scikit-learn`, `fastai`, `Pandas`. Flower also supports all major platforms: `iOS`, `Android` and plain `C++`. You can find a _quickstart- example for each of the above in the [Flower Repository](https://github.com/adap/flower/tree/main/examples) inside the `examples/` directory. And check the [Flower Documentation](https://flower.dev/docs/) for even more learning materials.\n", + "\n", + "In this tutorial we are going to use PyTorch, so let's install a recent version. In this tutorial we'll use a small model so using CPU only training will suffice (this will also prevent Colab from abruptly terminating your experiment if resource limits are exceeded)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "-Jv-H2HBzbPA" - }, - "source": [ - "## One Client, One Data Partition\n", - "\n", - "To start designing a Federated Learning pipeline we need to meet one of the key properties in FL: each client has its own data partition. To accomplish this with the MNIST dataset, we are going to generate N random partitions, where N is the total number of clients in our FL system." - ] + "id": "lqrJYPbZZ8aM", + "outputId": "7192138a-8c87-4d9a-f726-af1038ad264c" + }, + "outputs": [], + "source": [ + "# you might see a warning after running the command below, this can be ignored\n", + "# if you are running this outside Colab, you probably need to adjust the command below\n", + "!pip install torch==1.13.1+cpu torchvision==0.14.1+cpu torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cpu" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "4UTuRurVeLDF" + }, + "source": [ + "We are going to install some other dependencies you are likely familiar with. We'll use these to make plots." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" }, + "id": "ybSlTUVXeT3u", + "outputId": "58b7af77-609f-4118-bd5b-5629a4b5a296" + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 14, - "metadata": { - "id": "Lgc5C6yltJCv" - }, - "outputs": [], - "source": [ - "from torch.utils.data import random_split\n", - "\n", - "def prepare_dataset(num_partitions: int,\n", - " batch_size: int,\n", - " val_ratio: float = 0.1):\n", - "\n", - " \"\"\"This function partitions the training set into N disjoint\n", - " subsets, each will become the local dataset of a client. This\n", - " function also subsequently partitions each traininset partition\n", - " into train and validation. The test set is left intact and will\n", - " be used by the central server to asses the performance of the\n", - " global model. \"\"\"\n", - "\n", - " # get the MNIST dataset\n", - " trainset, testset = get_mnist()\n", - "\n", - " # split trainset into `num_partitions` trainsets\n", - " num_images = len(trainset) // num_partitions\n", - "\n", - " partition_len = [num_images] * num_partitions\n", - "\n", - " trainsets = random_split(trainset, partition_len, torch.Generator().manual_seed(2023))\n", - "\n", - " # create dataloaders with train+val support\n", - " trainloaders = []\n", - " valloaders = []\n", - " for trainset_ in trainsets:\n", - " num_total = len(trainset_)\n", - " num_val = int(val_ratio * num_total)\n", - " num_train = num_total - num_val\n", - "\n", - " for_train, for_val = random_split(trainset_, [num_train, num_val], torch.Generator().manual_seed(2023))\n", - "\n", - " trainloaders.append(DataLoader(for_train, batch_size=batch_size, shuffle=True, num_workers=2))\n", - " valloaders.append(DataLoader(for_val, batch_size=batch_size, shuffle=False, num_workers=2))\n", - "\n", - " # create dataloader for the test set\n", - " testloader = DataLoader(testset, batch_size=128)\n", - "\n", - " return trainloaders, valloaders, testloader" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "Collecting matplotlib\n", + " Obtaining dependency information for matplotlib from https://files.pythonhosted.org/packages/8d/22/719f4fff33b13b0708711fb52ca3fc44617a26728e0e023358288d5197ae/matplotlib-3.7.2-cp310-cp310-macosx_11_0_arm64.whl.metadata\n", + " Downloading matplotlib-3.7.2-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.6 kB)\n", + "Collecting contourpy>=1.0.1 (from matplotlib)\n", + " Obtaining dependency information for contourpy>=1.0.1 from https://files.pythonhosted.org/packages/15/c4/aae3954fce0e22362cc55430d1a395bf0be5a22b40fce63edda9eb6ea339/contourpy-1.1.0-cp310-cp310-macosx_11_0_arm64.whl.metadata\n", + " Downloading contourpy-1.1.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.7 kB)\n", + "Collecting cycler>=0.10 (from matplotlib)\n", + " Using cached cycler-0.11.0-py3-none-any.whl (6.4 kB)\n", + "Collecting fonttools>=4.22.0 (from matplotlib)\n", + " Obtaining dependency information for fonttools>=4.22.0 from https://files.pythonhosted.org/packages/21/66/bddd878452ae1e2d5f5891daa6bcce594d6b19396d33b8798e722837b222/fonttools-4.42.1-cp310-cp310-macosx_10_9_universal2.whl.metadata\n", + " Downloading fonttools-4.42.1-cp310-cp310-macosx_10_9_universal2.whl.metadata (150 kB)\n", + "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m151.0/151.0 kB\u001B[0m \u001B[31m6.2 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m\n", + "\u001B[?25hCollecting kiwisolver>=1.0.1 (from matplotlib)\n", + " Obtaining dependency information for kiwisolver>=1.0.1 from https://files.pythonhosted.org/packages/23/11/6fb190bae4b279d712a834e7b1da89f6dcff6791132f7399aa28a57c3565/kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl.metadata\n", + " Downloading kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl.metadata (6.4 kB)\n", + "Requirement already satisfied: numpy>=1.20 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from matplotlib) (1.24.3)\n", + "Requirement already satisfied: packaging>=20.0 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from matplotlib) (23.1)\n", + "Requirement already satisfied: pillow>=6.2.0 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from matplotlib) (10.0.0)\n", + "Collecting pyparsing<3.1,>=2.3.1 (from matplotlib)\n", + " Using cached pyparsing-3.0.9-py3-none-any.whl (98 kB)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from matplotlib) (2.8.2)\n", + "Requirement already satisfied: six>=1.5 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n", + "Downloading matplotlib-3.7.2-cp310-cp310-macosx_11_0_arm64.whl (7.3 MB)\n", + "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m7.3/7.3 MB\u001B[0m \u001B[31m30.3 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0ma \u001B[36m0:00:01\u001B[0m\n", + "\u001B[?25hDownloading contourpy-1.1.0-cp310-cp310-macosx_11_0_arm64.whl (229 kB)\n", + "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m229.4/229.4 kB\u001B[0m \u001B[31m30.6 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m\n", + "\u001B[?25hDownloading fonttools-4.42.1-cp310-cp310-macosx_10_9_universal2.whl (2.7 MB)\n", + "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m2.7/2.7 MB\u001B[0m \u001B[31m47.1 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0ma \u001B[36m0:00:01\u001B[0m\n", + "\u001B[?25hDownloading kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl (66 kB)\n", + "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m66.2/66.2 kB\u001B[0m \u001B[31m10.5 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m\n", + "\u001B[?25hInstalling collected packages: pyparsing, kiwisolver, fonttools, cycler, contourpy, matplotlib\n", + "Successfully installed contourpy-1.1.0 cycler-0.11.0 fonttools-4.42.1 kiwisolver-1.4.5 matplotlib-3.7.2 pyparsing-3.0.9\n" + ] + } + ], + "source": [ + "!pip install matplotlib" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "mpmcL_STdjIo" + }, + "source": [ + "# Centralised training: the old way of doing ML" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "gvw2TZjSec6C" + }, + "source": [ + "Let's begin by creating a simple (but complete) training loop as it is commonly done in centralised setups. Starting our tutorial in this way will allow us to very clearly identify which parts of a typical ML pipeline are common to both centralised and federated training and which ones are poles a part.\n", + "\n", + "For this tutorial we'll design a image classification pipeline for [MNIST digits](https://en.wikipedia.org/wiki/MNIST_database) and using a simple CNN model as the network to train. The MNIST dataset is comprised of `28x28` greyscale images with digits from 0 to 9 (i.e. 10 classes in total)\n", + "\n", + "\n", + "## A dataset\n", + "\n", + "Let's begin by constructing the dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "id": "p9aFBjd1cpHs" + }, + "outputs": [], + "source": [ + "# we naturally first need to import torch and torchvision\n", + "import torch\n", + "from torch.utils.data import DataLoader\n", + "from torchvision.transforms import ToTensor, Normalize, Compose\n", + "from torchvision.datasets import MNIST\n", + "\n", + "\n", + "def get_mnist(data_path: str = './data'):\n", + " '''This function downloads the MNIST dataset into the `data_path`\n", + " directory if it is not there already. WE construct the train/test\n", + " split by converting the images into tensors and normalising them'''\n", + "\n", + " # transformation to convert images to tensors and apply normalisation\n", + " tr = Compose([ToTensor(), Normalize((0.1307,), (0.3081,))])\n", + "\n", + " # prepare train and test set\n", + " trainset = MNIST(data_path, train=True, download=True, transform=tr)\n", + " testset = MNIST(data_path, train=False, download=True, transform=tr)\n", + "\n", + " return trainset, testset" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "vKoQfqgYgwg0" + }, + "source": [ + "Let's run the code above and do some visualisations to understand better the data we are working with !" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "id": "pS8sL2hDgvZN" + }, + "outputs": [], + "source": [ + "trainset, testset = get_mnist()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "iNA-6AcYhYVM" + }, + "source": [ + "We can have a quick overview of our datasets by just typing the object on the command line. For instance, below you can see that the `trainset` has 60k training examples and will use the transformation rule we defined above in `get_mnist()`." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" }, + "id": "pWsIHsq-g4nX", + "outputId": "f10b649f-3cee-4e86-c7ff-94bd1fd3e082" + }, + "outputs": [ { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "9sXWjalq-G39" - }, - "source": [ - "Let's create 100 partitions and extract some statistics from one partition\n" + "data": { + "text/plain": [ + "Dataset MNIST\n", + " Number of datapoints: 60000\n", + " Root location: ./data\n", + " Split: Train\n", + " StandardTransform\n", + "Transform: Compose(\n", + " ToTensor()\n", + " Normalize(mean=(0.1307,), std=(0.3081,))\n", + " )" ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "trainset" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "NY9bWlaMhweq" + }, + "source": [ + "Let's create a more insightful visualisation. First let's see the distribution over the labels by constructing a histogram. Then, let's visualise some training examples !" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 490 }, + "id": "DCTjwpizikwy", + "outputId": "c8d0f4c0-60cd-4c58-bc91-3b061dae8046" + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 508 - }, - "id": "I0LbJhrC0evC", - "outputId": "0f53ca81-cb55-46ef-c8e0-4e19a4f060b2" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "number of images: 540\n" - ] - }, - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Class labels distribution for MNIST')" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAHHCAYAAACle7JuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABH5ElEQVR4nO3deVyU9R73//eAMKAIijsquO9baihqmftxy47m3smt5ZwwF0rTu1TUXLvTcsnUPNpGppaeo5001NLjrpjmlrtZqZgloJA4wvX7ox9zO7HI4MDM5Xk9Hw8eOd+5ru/1+VwM8eaa67rGYhiGIQAAABPycncBAAAAeUWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQgalVqlRJgwcPdncZDlasWCGLxaILFy44ve5jjz2mevXqubSe/N5HWfX72GOP6bHHHsu3bd7NYrEoOjra/jg6OloWi0XXrl0rkO278zW4f/9+tWjRQkWKFJHFYtGhQ4fcUgfgTgQZeKSzZ8/q+eefV5UqVeTn56fAwEC1bNlSb7/9tn7//Xd3l4d8sGvXLkVHRyshIcHdpWTiibXZbDb17t1bv/32m+bOnasPP/xQYWFh+ba9b775RhaLRRaLRR999FGWy7Rs2VIWiyVTGK9UqZIsFotefPHFbOdds2aNfSwjHB84cMBh2R07dqhz584qX768/Pz8FBoaqu7duysmJkaSNHjwYHuNOX152h8/uD+F3F0A8GdffPGFevfuLavVqqefflr16tXT7du3tWPHDo0ZM0bHjh3TkiVL3F0mcvDVV185vc6uXbs0efJkDR48WMWKFcv1er///rsKFcrf/5XlVNvJkyfl5VXwfxOePXtWP/zwg5YuXapnnnmmwLbr5+enmJgYPfXUUw7jFy5c0K5du+Tn55ftukuXLtX48eMVEhLi9HZXr16tvn37qlGjRho5cqSKFy+u8+fPa/v27Vq6dKkGDBig559/Xu3bt7evc/78eU2cOFHPPfecHnnkEft41apVnd4+PBdBBh7l/Pnz6tevn8LCwrR161aVK1fO/lxkZKTOnDmjL774wo0VIjd8fX3zdf709HTdvn1bfn5+Of7iLAhWq9Ut27169aokORX67iU5OVlFihTJcZkuXbro3//+t65du6aSJUvax2NiYlSmTBlVr15d169fz7Re3bp1dfLkSc2cOVPz5s1zurbo6GjVqVNHe/bsyfT6ytgXERERioiIsI8fOHBAEydOVERERKbghQcHby3Bo8yePVs3b97UsmXLHEJMhmrVqmnkyJHZrv/bb7/p5ZdfVv369RUQEKDAwEB17txZhw8fzrTs/PnzVbduXRUuXFjFixdX06ZN7YeoJenGjRsaNWqUKlWqJKvVqtKlS6tDhw46ePCg033961//UteuXRUSEiKr1aqqVatq6tSpSktLy3L5uLg4tWjRQv7+/qpcubLefffdTMukpqZq0qRJqlatmqxWqypWrKixY8cqNTU1x1psNpsmT56s6tWry8/PTyVKlFCrVq0UGxt7zz6OHTumtm3byt/fXxUqVNDrr7+u9PT0TMtldY5MTvs7OjpaY8aMkSRVrlzZ/hZAxnk3FotFw4cP18cff6y6devKarVq48aN9ufuPkcmw7Vr19SnTx8FBgaqRIkSGjlypG7dumV//sKFC7JYLFqxYkWmde+e8161ZXWOzLlz59S7d28FBwercOHCat68eaYAnvGWyqpVqzRt2jRVqFBBfn5+ateunc6cOZOpprsNHjxYrVu3liT17t1bFovFYX9v3bpVjzzyiIoUKaJixYqpR48eOnHihMMcGecSHT9+XAMGDFDx4sXVqlWrHLcrST169JDVatXq1asdxmNiYtSnTx95e3tnuV6lSpX09NNPa+nSpbp06dI9t/NnZ8+e1cMPP5xlSC5durTT8+HBwREZeJT169erSpUqatGiRZ7WP3funNatW6fevXurcuXKio+P1+LFi9W6dWsdP37cfkh76dKlGjFihJ588kn7L7jvvvtOe/fu1YABAyRJf//737VmzRoNHz5cderU0a+//qodO3boxIkTaty4sVN1rVixQgEBAYqKilJAQIC2bt2qiRMnKikpSW+88YbDstevX1eXLl3Up08f9e/fX6tWrdI//vEP+fr6aujQoZL+OCLx+OOPa8eOHXruuedUu3ZtHTlyRHPnztWpU6e0bt26bGuJjo7WjBkz9Mwzzyg8PFxJSUk6cOCADh48qA4dOmS73pUrV9SmTRvduXNH48aNU5EiRbRkyRL5+/vfs/977e+ePXvq1KlT+uSTTzR37lz7X/qlSpWyz7F161atWrVKw4cPV8mSJVWpUqUct9mnTx9VqlRJM2bM0J49ezRv3jxdv35dH3zwwT3rvVtuartbfHy8WrRooZSUFI0YMUIlSpTQ+++/r8cff1xr1qzRX//6V4flZ86cKS8vL7388stKTEzU7NmzNXDgQO3duzfbmp5//nmVL19e06dP14gRI/Twww+rTJkykqTNmzerc+fOqlKliqKjo/X7779r/vz5atmypQ4ePJhpv/Xu3VvVq1fX9OnTZRjGPfdH4cKF1aNHD33yySf6xz/+IUk6fPiwjh07pvfee0/fffddtuu++uqr+uCDD/J0VCYsLExbtmzRTz/9pAoVKji1Lh5wBuAhEhMTDUlGjx49cr1OWFiYMWjQIPvjW7duGWlpaQ7LnD9/3rBarcaUKVPsYz169DDq1q2b49xBQUFGZGRkrmvJsHz5ckOScf78eftYSkpKpuWef/55o3DhwsatW7fsY61btzYkGW+++aZ9LDU11WjUqJFRunRp4/bt24ZhGMaHH35oeHl5Gf/9738d5nz33XcNScbOnTvtY3/eRw0bNjS6du3qdF+jRo0yJBl79+61j129etUICgrK1G/r1q2N1q1b2x/nZn+/8cYbmebJIMnw8vIyjh07luVzkyZNsj+eNGmSIcl4/PHHHZZ74YUXDEnG4cOHDcP443UhyVi+fPk958yptj/v34z9dPf35saNG0blypWNSpUq2V+fX3/9tSHJqF27tpGammpf9u233zYkGUeOHMm0rbtlrL969WqH8YzXyq+//mofO3z4sOHl5WU8/fTT9rGM/dS/f/8ct5PV9jZs2GBYLBbj4sWLhmEYxpgxY4wqVaoYhvHH9/7P3+uwsDD7a27IkCGGn5+fcenSpWz7yPgZ2r9/v31s2bJlhiTD19fXaNOmjTFhwgTjv//9b6af97vt378/2+8xHhy8tQSPkZSUJEkqWrRonuewWq32Ey/T0tL066+/KiAgQDVr1nR4S6hYsWL66aeftH///mznKlasmPbu3Zunw+B/dvdRixs3bujatWt65JFHlJKSou+//95h2UKFCun555+3P/b19dXzzz+vq1evKi4uTtIfJz7Wrl1btWrV0rVr1+xfbdu2lSR9/fXXOfZ17NgxnT592qke/vOf/6h58+YKDw+3j5UqVUoDBw6857q52d/30rp1a9WpUyfXy0dGRjo8zrhi5j//+U+ea8iN//znPwoPD3d4myYgIEDP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flq4cKEWLlzoku0BAIAHi9NBZvny5flRBwAAgNPu//a8AAAAbuL0EZnKlSvneL8YZz9vCQAAIK+cDjKjRo1yeGyz2fTtt99q48aNGjNmjKvqAgAAuKc8XX6dlYULF+rAgQP3XRAAAEBuuewcmc6dO+uzzz5z1XQAAAD35LIgs2bNGgUHB7tqOgAAgHty+q2lhx56yOFkX8MwdOXKFf3yyy/crA4AABQop4PME0884fDYy8tLpUqV0mOPPaZatWq5qi4AAIB7cjrITJo0KT/qAAAAcBo3xAMAAKaV6yMyXl5eOd4IT5IsFovu3Llz30UBAADkRq6DzNq1a7N9bvfu3Zo3b57S09NdUhQAAEBu5DrI9OjRI9PYyZMnNW7cOK1fv14DBw7UlClTXFocAABATvJ0jsylS5f07LPPqn79+rpz544OHTqk999/X2FhYa6uDwAAIFtOBZnExES98sorqlatmo4dO6YtW7Zo/fr1qlevXn7VBwAAkK1cv7U0e/ZszZo1S2XLltUnn3yS5VtNAAAABSnXQWbcuHHy9/dXtWrV9P777+v999/PcrnPP//cZcUBAADkJNdB5umnn77n5dcAAAAFKddBZsWKFflYBgAAgPO4sy8AADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAttwaZGTNm6OGHH1bRokVVunRpPfHEEzp58qTDMrdu3VJkZKRKlCihgIAA9erVS/Hx8W6qGAAAeBK3Bplt27YpMjJSe/bsUWxsrGw2mzp27Kjk5GT7MqNHj9b69eu1evVqbdu2TZcuXVLPnj3dWDUAAPAUhdy58Y0bNzo8XrFihUqXLq24uDg9+uijSkxM1LJlyxQTE6O2bdtKkpYvX67atWtrz549at68uTvKBgAAHsKtQebPEhMTJUnBwcGSpLi4ONlsNrVv396+TK1atRQaGqrdu3dnGWRSU1OVmppqf5yUlCRJstlsstlsLqs1Yy6rl+GyOd0lowez90IfnoU+PAt9eJYHrQ9X/n7NkNs5LYZheMReTE9P1+OPP66EhATt2LFDkhQTE6MhQ4Y4BBNJCg8PV5s2bTRr1qxM80RHR2vy5MmZ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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "trainloaders, valloaders, testloader = prepare_dataset(num_partitions=100,\n", - " batch_size=32)\n", - "\n", - "# first partition\n", - "train_partition = trainloaders[0].dataset\n", - "\n", - "# count data points\n", - "partition_indices = train_partition.indices\n", - "print(f\"number of images: {len(partition_indices)}\")\n", - "\n", - "# visualise histogram\n", - "plt.hist(train_partition.dataset.dataset.targets[partition_indices], bins=10)\n", - "plt.grid()\n", - "plt.xticks(range(10))\n", - "plt.xlabel('Label')\n", - "plt.ylabel('Number of images')\n", - "plt.title('Class labels distribution for MNIST')" + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Class labels distribution for MNIST')" ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" }, { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "me-cNRBO_-fa" - }, - "source": [ - "As you can see, the histogram of this partition is a bit different from the one we obtained at the beginning where we took the entire dataset into consideration. Because our data partitions are artificially constructed by sampling the MNIST dataset in an IID fashion, our Federated Learning example will not face sever _data heterogeneity_ issues (which is a fairly [active research topic](https://arxiv.org/abs/1912.04977)).\n", - "\n", - "Let's next define how our FL clients will behave\n", - "\n", - "## Defining a Flower Client\n", - "\n", - "You can think of a client in FL as an entity that owns some data and trains a model using this data. The caveat is that the model is being trained _collaboratively_ in Federation by multiple clients (sometimes up to hundreds of thousands) and, in most instances of FL, is sent by a central server.\n", - "\n", - "A Flower Client is a simple Python class with four distinct methods:\n", - "\n", - "* `fit()`: With this method, the client does on-device training for a number of epochs using its own data. At the end, the resulting model is sent back to the server for aggregation.\n", - "\n", - "* `evaluate()`: With this method, the server can evaluate the performance of the global model on the local validation set of a client. This can be used for instance when there is no centralised dataset on the server for validation/test. Also, this method can be use to asses the degree of personalisation of the model being federated.\n", - "\n", - "* `set_parameters()`: This method takes the parameters sent by the server and uses them to initialise the parameters of the local model that is ML framework specific (e.g. TF, Pytorch, etc).\n", - "\n", - "* `get_parameters()`: It extract the parameters from the local model and transforms them into a list of NumPy arrays. This ML framework-agnostic representation of the model will be sent to the server.\n", - "\n", - "Let's start by importing Flower!" + "data": { + "image/png": "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1ofMFixYgJ49e2Lfvn1o0qRJkWv8ly5dqrPiiIiIiMpCqQJRbGys+NUdL59UTURERFTeaB2IlixZgu+++w7Dhw/XQzlEREREZU/rc4jkcjl8fX31UQsRERGRQWgdiCZMmIAVK1booxYiIiIig9D6kNnJkydx4MAB7NmzB40aNSpyUvUvv/yis+KIiIiIyoLWgcjBwQF9+vTRRy1EREREBqF1INq4caM+6iAiIiIyGN5umoiIiCRP6z1EHh4er73f0M2bN9+qICIiIqKypnUgmjhxosZjlUqFs2fPYt++fZg0aZKu6iIiIiIqM1oHogkTJhS7PCoqCqdPn37rgoiIiIjKms7OIerevTt+/vlnXU1HREREVGZ0Foh27NgBR0dHXU1HREREVGa0PmTWokULjZOqBUFAWloa/v33X6xatUqnxRERERGVBa0D0QcffKDx2MzMDFWrVkXnzp3RsGFDXdVFREREVGa0DkSzZ8/WRx1EREREBsMbMxIREZHklXgPkZmZ2WtvyAgAMpkMz549e+uiiIiIiMpSiQPRzp07X7kuMTERy5cvR2FhoU6KIiIiIipLJQ5EvXv3LrLsypUrmDp1Knbv3o0hQ4Zgzpw5Oi2OiIiIqCyU6hyiO3fu4JNPPkGTJk3w7NkzJCcnY9OmTXB3d9d1fURERER6p1UgysrKwpQpU1C3bl2kpKQgPj4eu3fvRuPGjfVVHxEREZHelfiQ2eLFi7Fo0SK4uLjgp59+KvYQGhEREVF5VOJANHXqVFhbW6Nu3brYtGkTNm3aVOy4X375RWfFEREREZWFEgeiYcOGvfGyeyIiIqLyqMSBKDo6Wo9lEBERERkO71RNREREksdARERERJLHQERERESSx0BEREREksdARERERJLHQERERESSx0BEREREksdARERERJLHQERERESSx0BEREREksdARERERJJn0EC0YMECvPPOO6hYsSKcnJzwwQcf4MqVKxpjnj59ipCQEFSuXBl2dnbo27cv0tPTNcbcvn0bgYGBsLGxgZOTEyZNmoRnz55pjDl06BBatmwJuVyOunXr8rvZiIiISGTQQHT48GGEhITg+PHjUCqVUKlU8Pf3R05OjjgmNDQUu3fvxvbt23H48GHcuXMHffr0EdcXFBQgMDAQ+fn5OHbsGDZt2oTo6GjMmjVLHJOamorAwEC8++67SE5OxsSJEzFq1CjExsaWab9ERERknEr8bff6sG/fPo3H0dHRcHJyQlJSEjp27IisrCxs2LABMTEx6NKlCwBg48aN8PT0xPHjx+Ht7Y24uDhcvHgR+/fvh7OzM5o3b465c+diypQpCA8Ph6WlJVavXg0PDw8sWbIEAODp6YmEhARERkYiICCgzPsmIiIi42LQQPSyrKwsAICjoyMAICkpCSqVCn5+fuKYhg0bws3NDYmJifD29kZiYiKaNGkCZ2dncUxAQADGjBmDlJQUtGjRAomJiRpzqMdMnDix2Dry8vKQl5cnPs7OzgYAqFQqqFQqnfSqpp5PbibodN6ypq6ffRgH9mFcTKUPwHR6YR/GRV2/vn7HloTRBKLCwkJMnDgRvr6+aNy4MQAgLS0NlpaWcHBw0Bjr7OyMtLQ0ccyLYUi9Xr3udWOys7Px5MkTWFtba6xbsGABIiIiitQYFxcHGxub0jf5GnNbF+pl3rLGPowL+zAuptIHYDq9sA/jolQqdTpfbm5uiccaTSAKCQnBhQsXkJCQYOhSMG3aNISFhYmPs7OzUbNmTfj7+0OhUOj0uVQqFZRKJWaeNkNeoUync5cluZmAua0L2YeRYB/GxVT6AEynF/ZhXNR9dOvWDRYWFjqbV32EpySMIhCNGzcOe/bswZEjR1CjRg1xuYuLC/Lz85GZmamxlyg9PR0uLi7imJMnT2rMp74K7cUxL1+Zlp6eDoVCUWTvEADI5XLI5fIiyy0sLHT6Rr0or1CGvILy+2FWYx/GhX0YF1PpAzCdXtiHcdH171lt5jLoVWaCIGDcuHHYuXMnDhw4AA8PD431rVq1goWFBeLj48VlV65cwe3bt+Hj4wMA8PHxwfnz55GRkSGOUSqVUCgU8PLyEse8OId6jHoOIiIikjaD7iEKCQlBTEwM/vvf/6JixYriOT/29vawtraGvb09goODERYWBkdHRygUCnz++efw8fGBt7c3AMDf3x9eXl4YOnQoFi9ejLS0NMyYMQMhISHiXp7Ro0dj5cqVmDx5MkaOHIkDBw5g27Zt2Lt3r8F6JyIiIuNh0D1E3377LbKystC5c2dUq1ZN/Nm6das4JjIyEj179kTfvn3RsWNHuLi44JdffhHXm5ubY8+ePTA3N4ePjw8+/vhjDBs2DHPmzBHHeHh4YO/evVAqlWjWrBmWLFmC9evX85J7IiIiAmDgPUSC8ObLBK2srBAVFYWoqKhXjnF3d8evv/762nk6d+6Ms2fPal0jERERmT5+lxkRERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSZ5BA9GRI0fQq1cvuLq6QiaTYdeuXRrrBUHArFmzUK1aNVhbW8PPzw/Xrl3TGPPgwQMMGTIECoUCDg4OCA4OxuPHjzXG/PHHH+jQoQOsrKxQs2ZNLF68WN+tERERUTli0ECUk5ODZs2aISoqqtj1ixcvxvLly7F69WqcOHECtra2CAgIwNOnT8UxQ4YMQUpKCpRKJfbs2YMjR47g008/FddnZ2fD398f7u7uSEpKwldffYXw8HCsXbtW7/0RERFR+VDBkE/evXt3dO/evdh1giDgm2++wYwZM9C7d28AwPfffw9nZ2fs2rULAwcOxKVLl7Bv3z6cOnUKrVu3BgCsWLECPXr0wNdffw1XV1ds3rwZ+fn5+O6772BpaYlGjRohOTkZS5cu1QhOREREJF1Gew5Ramoq0tLS4OfnJy6zt7dH27ZtkZiYCABITEyEg4ODGIYAwM/PD2ZmZjhx4oQ4pmPHjrC0tBTHBAQE4MqVK3j48GEZdUNERETGzKB7iF4nLS0NAODs7Kyx3NnZWVyXlpYGJycnjfUVKlSAo6OjxhgPD48ic6jXVapUqchz5+XlIS8vT3ycnZ0NAFCpVFCpVG/TVhHq+eRmgk7nLWvq+tmHcWAfxsVU+gBMpxf2YVzU9evrd2xJGG0gMqQFCxYgIiKiyPK4uDjY2Njo5Tnnti7Uy7xljX0YF/ZhXEylD8B0emEfxkWpVOp0vtzc3BKPNdpA5OLiAgBIT09HtWrVxOXp6elo3ry5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", + "text/plain": [ + "
" ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "\n", + "# construct histogram\n", + "all_labels = trainset.targets\n", + "num_possible_labels = len(set(all_labels.numpy().tolist())) # this counts unique labels (so it should be = 10)\n", + "plt.hist(all_labels, bins=num_possible_labels)\n", + "\n", + "# plot formatting\n", + "plt.xticks(range(num_possible_labels))\n", + "plt.grid()\n", + "plt.xlabel('Label')\n", + "plt.ylabel('Number of images')\n", + "plt.title('Class labels distribution for MNIST')" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "K7-K0bKamho7" + }, + "source": [ + "Let's visualise 32 images from the dataset\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "id": "ExGypiVsjMUv" + }, + "outputs": [], + "source": [ + "import random\n", + "import numpy as np\n", + "\n", + "def visualise_n_random_examples(trainset_, n: int, verbose: bool = True):\n", + " # take n examples at random\n", + " idx =list(range(len(trainset_.data)))\n", + " random.shuffle(idx)\n", + " idx = idx[:n]\n", + " if verbose:\n", + " print(f\"will display images with idx: {idx}\")\n", + "\n", + "\n", + " # construct canvas\n", + " num_cols = 8\n", + " num_rows = int(np.ceil(len(idx)/num_cols))\n", + " fig, axs = plt.subplots(figsize=(16, num_rows*2), nrows=num_rows, ncols=num_cols)\n", + "\n", + " # display images on canvas\n", + " for c_i, i in enumerate(idx):\n", + " axs.flat[c_i].imshow(trainset_.data[i], cmap='gray')" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 715 }, + "id": "xA2s8vqkmkga", + "outputId": "4e0988a8-388d-4acf-882b-089e4ea887bf" + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 16, - "metadata": { - "id": "GckcVE2hH5UV" - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2023-08-28 20:57:17,516\tINFO util.py:159 -- Missing packages: ['ipywidgets']. Run `pip install -U ipywidgets`, then restart the notebook server for rich notebook output.\n" - ] - } - ], - "source": [ - "import flwr as fl" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "will display images with idx: [59717, 34422, 26054, 1199, 3182, 18665, 27924, 45921, 19494, 40038, 31891, 22197, 14705, 4590, 46747, 15779, 2575, 32582, 47065, 19149, 41838, 24098, 28738, 39203, 35935, 55347, 16343, 40626, 31743, 34183, 18890, 47438]\n" + ] }, { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "w3zwIYgVH5wU" - }, - "source": [ - "Now let's define our Flower Client class:" + "data": { + "image/png": "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FrQWLVqk1Jzf5+k29tf9u2nevLlSc2a0Z8+eyhwOKXGP88CF7OxsZc5f/vIXpdayZUvbWHeIiO77/f379ys1Z6ZmzpypzNEdELZlyxalBgRL9x6lyzXgpksuuUSpdenSJajn+uabb5SaF77v45ODAAAAAAAAgEexOAgAAAAAAAB4FIuDAAAAAAAAgEex52AYNG7cWKktXrzYNm7QoIFrr/fvf//btedCdDv//POV2lNPPWUbp6amKnPmzZun1PzdY9Bp9uzZSu3OO++0jR9//HG/ejhw4EBQPcA33XvQueeea6ATeIlub9GuXbvaxn/+85+VObq92oKl2xf1yJEjtnG7du2UOZmZmUpt586drvWF4DnvV9WrV3ftubdv367UbrjhBqX2008/+XyugoICn3PatGmj1ObMmaPUdN9rZmVl2ca6/ZLYhzA4Z511llJzfm+vm6PLxYcffmgbL1iwQJnz8ccfK7Vjx44pteLiYqUGALGoc+fOtrHufbJ27dpKraKiwrUeVqxYYRvr1mHef/99pbZhwwbbWPd+bgKfHAQAAAAAAAA8isVBAAAAAAAAwKNYHAQAAAAAAAA8KuDFwRUrVkivXr0kIyND4uLilH0xLMuSxx57TBo1aiQ1a9aU7Oxs+f77793qFx61atUqcgcjBgwYQO4QduQOJnCvhQnkDqZwr4UJvOchUgV8IElZWZm0atVKBg8eLP369VP+fNKkSfLCCy/I66+/LllZWTJmzBjp0aOHbN68WWrUqOFK05EsOTlZqb333ns+5+k2f27evHlQPZSWlgb1uEh28OBBcueD7mCR1157Tam1bdvWNl62bJkyZ9SoUW61pWzsLyLywgsv2MavvvqqMichIcG1HqqiZcuWMnTo0JjPne7wkfr16/t8nG7zX1RdLOYuKSlJqTk3kxYRadSokW38448/hqwnEZH169crNefhR/Xq1VPmXHrppUot2g8kiZV77dixY115Ht3hI9dcc41S27Jliyuvp7Nq1Sql1qdPH6WmO8TCeUiJ84ASEf1hY8EeQBasaMzd/fffr9ScB5DovgcbPXq0Utu3b597jSEgsXivjQSXXHJJUI/zyqGa0fieF041a9ZUat26dVNqzvdY3ePefvttpaY7nMsfugPCbrrpJtv48ssvV+aMHDlSqU2ePNk2fuyxx5Q5Jg4pCXhxsGfPntqT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LUFjz549Sq1v375h7eHvf/+7z9ppp6m3rRtvvFGpzZ49W6lVq1bNNr7mmmuUOR988IFS69Onj21cVlamzEFwioqKlNrcuXNPOT6Zs88+W6mlpqYG05Zi1qxZSk13+Mhf//pXpebcZB+RYcqUKUqtR48etnGzZs38eq577rnH55wXX3xRqe3YsUOpRerBJU4tWrQw3YJR0XTYiFssy1Jq27ZtU2qXXnqpbTx9+nRlzu23367U3nrrLdt4wIAByhzdQWIAQkt3SNXnn39uGzdv3lyZozvs0GnFihVKrUGDBkrtvPPOU2p16tSxjRs3bqzMiYuLU2o///yzbaz7+eP1119Xavv27VNqbh6wEgn45CAAAAAAAADgUSwOAgAAAAAAAB7F4iAAAAAAAADgUSwOAgAAAAAAAB7FgSQRLDk5Wak5N9XUbbIJb4rUAzwqKiqUmvOQko8//liZc/DgwZD1hOh1/PhxpabbSHj16tVKbenSpbaxbuPirl27KjXngRIjRozw2SfCT7cxvlu+//57paY7kKR169ZKrXr16qFoCVWky8vVV19tG3/yySfKnKysLL+e33lIie7Qks8++0ypbdiwwTaeOXOmX6/nD90hU5dddplrzw+IqAfk3XXXXcqc008/XanddNNNtvHEiROVORxIAoTfunXrlNobb7xhG996663KnAsvvNDnc//ud79TarrDj3Sch4bofhZ+9tlnldqxY8dsY+cBJV7GJwcBAAAAAAAAj2JxEAAAAAAAAPAoFgcBAAAAAAAAj2JxEAAAAAAAAPAoDiSJYLrNOJ215cuXh6sdGOTPQTRt27ZVas4DGExo3ry5UnP2Om3atHC1A5edffbZSm3UqFFKzXn4x9dff63Meeihh1zr67///a9Su+qqq2zjzz//XJnTtGlTpdaxY0fbOD5e/e9quoN3EDt0WenTp49S69Spk1I799xzbeM1a9a41hfc9d1339nGPXv2VOa8//77Ss35dywictppvr/F7t69u8+am++LgAm6g8SeeOIJpeY8kER3wBOA8CstLVVqgwcPPuUY0YlPDgIAAAAAAAAexeIgAAAAAAAA4FEBLQ7m5uZK27ZtJSkpSRo2bCh9+vSRrVu32uYcPnxYcnJypF69elK7dm3p37+/FBYWuto0vKdLly7kDkaQPZhA7mACuYMJU6ZM4ecLGMF7Hkwg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9GjIekLkatSokVJ76aWXbONevXopc5599lmldt1119nGtWrVUub861//UmpffvmlUnv11Vdt43379ilzysvLlRrCq1u3brbxE088oczRZWzgwIFKbeXKla705NxEWETkzTffVGq698a+ffvaxgsWLHClJ7irXbt2tvGQIUP8etz69euV2pQpU2zjHTt2+PVccXFxtvH+/fuVOdu2bVNqZ599tlIbP368baw7SKxu3bp+9QUEon79+rbxiy++6HOOiMiFF15oG3MgSXB0h3osXbrUtefXHQaiOzTEH7pDnvyZM27cuKBeD9GhRYsWSu31119Xauecc45t7LzviYhMnDhRqTVs2NA2fuSRR5Q5kydP9tmnju7fn+6As0OHDtnG11xzTVCvB/OaNm2q1JyH3oiE9qBW3c9AzgN7RETmzZtnG+u+D9St6egOEXMTnxwEAAAAAAAAPIrFQQAAAAAAAMCjWBwEAAAAAAAAPIrFQQAAAAAAAMCjOJAkgt1+++1K7a677rKNZ8yYocxxHjgBb3BmQ0QkNzdXqaWkpPh8rvvuuy+oHv7whz/4VXvooYds41WrVilzrr766qB6gHsmTJhgG7dt29avx3322WdKbfXq1bbxM888o8w5ePCgUmvZsqVtrNuYukaNGkrNsiyl1r9/f9uYA0kik/P9R3fozccff6zUBgwYoNScG42Hmi53F198cVh7QGxJSEhQarpD5mrXrq3UnBue79y5U5nzwQcfKDXdezh8cx6A4O/hI86DRXSHioT64A9/DiRBbOvUqZNS0x1i9MUXXyi1rl272sYlJSXKHN171IMPPmgbO9+zRETeeOMNtVmNK6+80jZ+7bXXlDm6Ayt0B6wg8uj+7mbOnGkbn3feecqcxo0b+3zutWvXKjVdzj/55BOldsUVV9jGukNvHn74YaW2ZMkS23ju3LnKHN33lBxIAgAAAAAAACAkWBwEAAAAAAAAPIrFQQAAAAAAAMCj2HMwQjRv3lyp6fYXmT17tm2s+x12xL7zzz9fqT355JNKzZ/9BXX27NkT1OMaNGig1E47TX2bce470qFDh6BeD5FJtwegcy8Y5zgczjnnnLC/JkJjypQpSi3c+ws2a9ZMqS1atEip+ZO7jz76yI2WEMEyMjKUWt++fZVax44dbWPd/nNvvvmmUps1a5ZSq1evnm3cq1cvZc6OHTvU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", + "text/plain": [ + "
" ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# it is likely that the plot this function will generate looks familiar to other plots you might have generated before\n", + "# or you might have encountered in other tutorials. So far, we aren't doing anything new, Federated Learning will start soon!\n", + "visualise_n_random_examples(trainset, n=32)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "PmGyjFEFhVwd" + }, + "source": [ + "# A CNN architecture\n", + "\n", + "This tutorial is not so much about novel architectural designs so we keep things simple and make use of a typical CNN that is adequate for the MNIST image classification task.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "id": "Nr4jR6tspOh4" + }, + "outputs": [], + "source": [ + "import torch.nn as nn\n", + "import torch.nn.functional as F\n", + "\n", + "class Net(nn.Module):\n", + " def __init__(self, num_classes: int) -> None:\n", + " super(Net, self).__init__()\n", + " self.conv1 = nn.Conv2d(1, 6, 5)\n", + " self.pool = nn.MaxPool2d(2, 2)\n", + " self.conv2 = nn.Conv2d(6, 16, 5)\n", + " self.fc1 = nn.Linear(16 * 4 * 4, 120)\n", + " self.fc2 = nn.Linear(120, 84)\n", + " self.fc3 = nn.Linear(84, num_classes)\n", + "\n", + " def forward(self, x: torch.Tensor) -> torch.Tensor:\n", + " x = self.pool(F.relu(self.conv1(x)))\n", + " x = self.pool(F.relu(self.conv2(x)))\n", + " x = x.view(-1, 16 * 4 * 4)\n", + " x = F.relu(self.fc1(x))\n", + " x = F.relu(self.fc2(x))\n", + " x = self.fc3(x)\n", + " return x" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "5TJrrCBlpZOp" + }, + "source": [ + "Similarly to what we did with the dataset you could inspect the model in various ways. We can, for instance, count the number of model parameters." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" }, + "id": "zdVK9c4hpYaC", + "outputId": "67d01ab4-cdd9-4661-8f01-eaa9aabf786d" + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 17, - "metadata": { - "id": "uXdiNmCE_90y" - }, - "outputs": [], - "source": [ - "from collections import OrderedDict\n", - "from typing import Dict, Tuple\n", - "\n", - "import torch\n", - "from flwr.common import NDArrays, Scalar\n", - "\n", - "class FlowerClient(fl.client.NumPyClient):\n", - " def __init__(self,\n", - " trainloader,\n", - " vallodaer) -> None:\n", - " super().__init__()\n", - "\n", - " self.trainloader = trainloader\n", - " self.valloader = vallodaer\n", - " self.model = Net(num_classes=10)\n", - "\n", - " def set_parameters(self, parameters):\n", - " \"\"\"With the model parameters received from the server,\n", - " overwrite the uninitialise model in this class with them.\"\"\"\n", - "\n", - " params_dict = zip(self.model.state_dict().keys(), parameters)\n", - " state_dict = OrderedDict({k: torch.Tensor(v) for k, v in params_dict})\n", - " # now replace the parameters\n", - " self.model.load_state_dict(state_dict, strict=True)\n", - "\n", - " def get_parameters(self, config: Dict[str, Scalar]):\n", - " \"\"\"Extract all model parameters and convert them to a list of\n", - " NumPy arrays. The server doesn't work with PyTorch/TF/etc.\"\"\"\n", - " return [val.cpu().numpy() for _, val in self.model.state_dict().items()]\n", - "\n", - " def fit(self, parameters, config):\n", - " \"\"\"This method train the model using the parameters sent by the\n", - " server on the dataset of this client. At then end, the parameters\n", - " of the locally trained model are communicated back to the server\"\"\"\n", - "\n", - " # copy parameters sent by the server into client's local model\n", - " self.set_parameters(parameters)\n", - "\n", - " # Define the optimizer -------------------------------------------------------------- Essentially the same as in the centralised example above\n", - " optim = torch.optim.SGD(self.model.parameters(), lr=0.01, momentum=0.9)\n", - "\n", - " # do local training -------------------------------------------------------------- Essentially the same as in the centralised example above (but now using the client's data instead of the whole dataset)\n", - " train(self.model, self.trainloader, optim, epochs=1)\n", - "\n", - " # return the model parameters to the server as well as extra info (number of training examples in this case)\n", - " return self.get_parameters({}), len(self.trainloader), {}\n", - "\n", - " def evaluate(self, parameters: NDArrays, config: Dict[str, Scalar]):\n", - " \"\"\"Evaluate the model sent by the server on this client's\n", - " local validation set. Then return performance metrics.\"\"\"\n", - "\n", - " self.set_parameters(parameters)\n", - " loss, accuracy = test(self.model, self.valloader) # <-------------------------- calls the `test` function, just what we did in the centralised setting (but this time using the client's local validation set)\n", - " # send statistics back to the server\n", - " return float(loss), len(self.valloader), {'accuracy': accuracy}" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "num_parameters = 44426\n" + ] + } + ], + "source": [ + "model = Net(num_classes=10)\n", + "num_parameters = sum(value.numel() for value in model.state_dict().values())\n", + "print(f\"{num_parameters = }\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "XAXzw1dlp_oO" + }, + "source": [ + "## The Training Loop\n", + "\n", + "A minimal training loop in PyTorch can be constructed with three functions:\n", + "* `train()` that will train the model given a dataloader.\n", + "* `test()` that will be used to evaluate the performance of the model on held-out data, e.g., a training set.\n", + "* `run_centralised()` which will define additional elements (e.g. the optimiser) and run the training loop over N epochs.\n", + "\n", + "Let's construct these functions!\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "id": "DRhz5bcfpw06" + }, + "outputs": [], + "source": [ + "def train(net, trainloader, optimizer, epochs):\n", + " \"\"\"Train the network on the training set.\"\"\"\n", + " criterion = torch.nn.CrossEntropyLoss()\n", + " net.train()\n", + " for _ in range(epochs):\n", + " for images, labels in trainloader:\n", + " optimizer.zero_grad()\n", + " loss = criterion(net(images), labels)\n", + " loss.backward()\n", + " optimizer.step()\n", + " return net\n", + "\n", + "def test(net, testloader):\n", + " \"\"\"Validate the network on the entire test set.\"\"\"\n", + " criterion = torch.nn.CrossEntropyLoss()\n", + " correct, loss = 0, 0.0\n", + " net.eval()\n", + " with torch.no_grad():\n", + " for images, labels in testloader:\n", + " outputs = net(images)\n", + " loss += criterion(outputs, labels).item()\n", + " _, predicted = torch.max(outputs.data, 1)\n", + " correct += (predicted == labels).sum().item()\n", + " accuracy = correct / len(testloader.dataset)\n", + " return loss, accuracy\n", + "\n", + "\n", + "def run_centralised(epochs: int, lr: float, momentum: float=0.9):\n", + " \"\"\"A minimal (but complete) training loop\"\"\"\n", + "\n", + " # instantiate the model\n", + " model = Net(num_classes=10)\n", + "\n", + " # define optimiser with hyperparameters supplied\n", + " optim = torch.optim.SGD(model.parameters(), lr=lr, momentum=momentum)\n", + "\n", + " # get dataset and construct a dataloaders\n", + " trainset, testset = get_mnist()\n", + " trainloader = DataLoader(trainset, batch_size=64, shuffle=True, num_workers=2)\n", + " testloader = DataLoader(testset, batch_size=128)\n", + "\n", + " # train for the specified number of epochs\n", + " trained_model = train(model, trainloader, optim, epochs)\n", + "\n", + " # training is completed, then evaluate model on the test set\n", + " loss, accuracy = test(trained_model, testloader)\n", + " print(f\"{loss = }\")\n", + " print(f\"{accuracy = }\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "76Q0UnqiukYT" + }, + "source": [ + "Let's run this for 5 epochs (you'll see it reaching close to 99% accuracy -- as expected from a centralised setup with the MNIST dataset)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" }, + "id": "xgJ6mdNSqzpI", + "outputId": "e8d9b429-178d-4924-e82f-4d4e52863788" + }, + "outputs": [ { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "d5Ku-Z_1Jkvz" - }, - "source": [ - "Spend a few minutes to inspect the `FlowerClient` class above. Please ask questions if there is something unclear !\n", - "\n", - "Then keen-eyed among you might have realised that if we were to fuse the client's `fit()` and `evaluate()` methods, we'll end up with essentially the same as in the `run_centralised()` function we used in the Centralised Training part of this tutorial. And it is true!! In Federated Learning, the way clients perform local training makes use of the same principles as more traditional centralised setup. The key difference is that the dataset now is much smaller and it's never _\"seen\"_ by the entity running the FL workload (i.e. the central server).\n", - "\n", - "\n", - "Talking about the central server... we should define what strategy we want to make use of so the updated models sent from the clients back to the server at the end of the `fit()` method are aggregate.\n", - "\n", - "\n", - "## Chosing a Flower Strategy\n", - "\n", - "\n", - "A strategy sits at the core of the Federated Learning experiment. It is involved in all stages of a FL pipeline: sampling clients; sending the _global model_ to the clients so they can do `fit()`; receive the updated models from the clients and **aggregate** these to construct a new _global model_; define and execute global or federated evaluation; and more.\n", - "\n", - "Flower comes with [many strategies built-in](https://github.com/adap/flower/tree/main/src/py/flwr/server/strategy) and more to be available in the next release (`1.5` already!). For this tutorial, let's use what is arguable the most popular strategy out there: `FedAvg`.\n", - "\n", - "The way `FedAvg` works is simple but performs surprisingly well in practice. It is therefore one good strategy to start your experimentation. `FedAvg`, as its name implies, derives a new version of the _global model_ by taking the average of all the models sent by clients participating in the round. You can read all the details [in the paper](https://arxiv.org/abs/1602.05629).\n", - "\n", - "Let's see how we can define `FedAvg` using Flower. We use one of the callbacks called `evaluate_fn` so we can easily evaluate the state of the global model using a small centralised testset. Note this functionality is user-defined since it requires a choice in terms of ML-framework. (if you recall, Flower is framework agnostic).\n", - "\n", - "> This being said, centralised evaluation of the global model is only possible if there exists a centralised dataset that somewhat follows a similar distribution as the data that's spread across clients. In some cases having such centralised dataset for validation is not possible, so the only solution is to federate the evaluation of the _global model_. This is the default behaviour in Flower. If you don't specify teh `evaluate_fn` argument in your strategy, then, centralised global evaluation won't be performed." - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "loss = 2.4290689574118005\n", + "accuracy = 0.9894\n" + ] + } + ], + "source": [ + "run_centralised(epochs=5, lr=0.01)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "pyz2gQaluw-5" + }, + "source": [ + "The above centralised formulation has worked just fine for some applications and to showcase the potential of AI in a variety of scenarios. However, as was discussed earlier in the session, centralised training is unsuitable for a larger range of settings were information cannot be collected in order to build a unified (centralised) dataset.\n", + "\n", + "# The Future of AI is Federated\n", + "\n", + "What are the key differences between Federated Learning and Centralised Training? I you could only pick you, probably you'd say:\n", + "* Federated Learning is distributed -- the model is trained on-device by the participating clients.\n", + "* Data remains private and is owned by a specific _client_ -- the data is never sent to the central server.\n", + "\n", + "The are several more differences. But the above two are the main ones to always consider and that are common to all flavours of Federated Learning (e.g. _cross-device_ or _cross-silo_). The remaining of this tutorial is going to focus in transforming the code we have written so far for the centralised setting and construct a Federated Learning pipeline using Flower and PyTorch.\n", + "\n", + "Let's begin! 🚀" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "-Jv-H2HBzbPA" + }, + "source": [ + "## One Client, One Data Partition\n", + "\n", + "To start designing a Federated Learning pipeline we need to meet one of the key properties in FL: each client has its own data partition. To accomplish this with the MNIST dataset, we are going to generate N random partitions, where N is the total number of clients in our FL system." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "id": "Lgc5C6yltJCv" + }, + "outputs": [], + "source": [ + "from torch.utils.data import random_split\n", + "\n", + "def prepare_dataset(num_partitions: int,\n", + " batch_size: int,\n", + " val_ratio: float = 0.1):\n", + "\n", + " \"\"\"This function partitions the training set into N disjoint\n", + " subsets, each will become the local dataset of a client. This\n", + " function also subsequently partitions each traininset partition\n", + " into train and validation. The test set is left intact and will\n", + " be used by the central server to asses the performance of the\n", + " global model. \"\"\"\n", + "\n", + " # get the MNIST dataset\n", + " trainset, testset = get_mnist()\n", + "\n", + " # split trainset into `num_partitions` trainsets\n", + " num_images = len(trainset) // num_partitions\n", + "\n", + " partition_len = [num_images] * num_partitions\n", + "\n", + " trainsets = random_split(trainset, partition_len, torch.Generator().manual_seed(2023))\n", + "\n", + " # create dataloaders with train+val support\n", + " trainloaders = []\n", + " valloaders = []\n", + " for trainset_ in trainsets:\n", + " num_total = len(trainset_)\n", + " num_val = int(val_ratio * num_total)\n", + " num_train = num_total - num_val\n", + "\n", + " for_train, for_val = random_split(trainset_, [num_train, num_val], torch.Generator().manual_seed(2023))\n", + "\n", + " trainloaders.append(DataLoader(for_train, batch_size=batch_size, shuffle=True, num_workers=2))\n", + " valloaders.append(DataLoader(for_val, batch_size=batch_size, shuffle=False, num_workers=2))\n", + "\n", + " # create dataloader for the test set\n", + " testloader = DataLoader(testset, batch_size=128)\n", + "\n", + " return trainloaders, valloaders, testloader" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "9sXWjalq-G39" + }, + "source": [ + "Let's create 100 partitions and extract some statistics from one partition\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 508 }, + "id": "I0LbJhrC0evC", + "outputId": "0f53ca81-cb55-46ef-c8e0-4e19a4f060b2" + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 18, - "metadata": { - "id": "gUmUpH5t-Urn" - }, - "outputs": [], - "source": [ - "def get_evalulate_fn(testloader):\n", - " \"\"\"This is a function that returns a function. The returned\n", - " function (i.e. `evaluate_fn`) will be executed by the strategy\n", - " at the end of each round to evaluate the stat of the global\n", - " model.\"\"\"\n", - " def evaluate_fn(server_round: int, parameters, config):\n", - " \"\"\"This function is executed by the strategy it will instantiate\n", - " a model and replace its parameters with those from the global model.\n", - " The, the model will be evaluate on the test set (recall this is the\n", - " whole MNIST test set).\"\"\"\n", - "\n", - " model = Net(num_classes=10)\n", - "\n", - " # set parameters to the model\n", - " params_dict = zip(model.state_dict().keys(), parameters)\n", - " state_dict = OrderedDict({k: torch.Tensor(v) for k, v in params_dict})\n", - " model.load_state_dict(state_dict, strict=True)\n", - "\n", - " # call test\n", - " loss, accuracy = test(model, testloader) # <-------------------------- calls the `test` function, just what we did in the centralised setting\n", - " return loss, {\"accuracy\": accuracy}\n", - "\n", - " return evaluate_fn\n", - "\n", - "\n", - "# now we can define the strategy\n", - "strategy = fl.server.strategy.FedAvg(fraction_fit=0.1, # let's sample 10% of the client each round to do local training\n", - " fraction_evaluate=0.1, # after each round, let's sample 20% of the clients to asses how well the global model is doing\n", - " min_available_clients=100, # total number of clients available in the experiment\n", - " evaluate_fn=get_evalulate_fn(testloader)) # a callback to a function that the strategy can execute to evaluate the state of the global model on a centralised dataset\n" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "number of images: 540\n" + ] }, { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "4UV_kBVGRbQT" - }, - "source": [ - "So far we have:\n", - "* created the dataset partitions (one for each client)\n", - "* defined the client class\n", - "* decided on a strategy to use\n", - "\n", - "Now we just need to launch the Flower FL experiment... not so fast! just one final function: let's create another callback that the Simulation Engine will use in order to span VirtualClients. As you can see this is really simple: construct a FlowerClient object, assigning each their own data partition." + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Class labels distribution for MNIST')" ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" }, { - "cell_type": "code", - "execution_count": 19, - "metadata": { - "id": "frPHAxUg-3Ev" - }, - "outputs": [], - "source": [ - "def generate_client_fn(trainloaders, valloaders):\n", - " def client_fn(cid: str):\n", - " \"\"\"Returns a FlowerClient containing the cid-th data partition\"\"\"\n", - "\n", - " return FlowerClient(trainloader=trainloaders[int(cid)],\n", - " vallodaer=valloaders[int(cid)])\n", - " return client_fn\n", - "\n", - "client_fn_callback = generate_client_fn(trainloaders, valloaders)" + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAHHCAYAAACle7JuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABH5ElEQVR4nO3deVyU9R73//eAMKAIijsquO9baihqmftxy47m3smt5ZwwF0rTu1TUXLvTcsnUPNpGppaeo5001NLjrpjmlrtZqZgloJA4wvX7ox9zO7HI4MDM5Xk9Hw8eOd+5ru/1+VwM8eaa67rGYhiGIQAAABPycncBAAAAeUWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQgalVqlRJgwcPdncZDlasWCGLxaILFy44ve5jjz2mevXqubSe/N5HWfX72GOP6bHHHsu3bd7NYrEoOjra/jg6OloWi0XXrl0rkO278zW4f/9+tWjRQkWKFJHFYtGhQ4fcUgfgTgQZeKSzZ8/q+eefV5UqVeTn56fAwEC1bNlSb7/9tn7//Xd3l4d8sGvXLkVHRyshIcHdpWTiibXZbDb17t1bv/32m+bOnasPP/xQYWFh+ba9b775RhaLRRaLRR999FGWy7Rs2VIWiyVTGK9UqZIsFotefPHFbOdds2aNfSwjHB84cMBh2R07dqhz584qX768/Pz8FBoaqu7duysmJkaSNHjwYHuNOX152h8/uD+F3F0A8GdffPGFevfuLavVqqefflr16tXT7du3tWPHDo0ZM0bHjh3TkiVL3F0mcvDVV185vc6uXbs0efJkDR48WMWKFcv1er///rsKFcrf/5XlVNvJkyfl5VXwfxOePXtWP/zwg5YuXapnnnmmwLbr5+enmJgYPfXUUw7jFy5c0K5du+Tn55ftukuXLtX48eMVEhLi9HZXr16tvn37qlGjRho5cqSKFy+u8+fPa/v27Vq6dKkGDBig559/Xu3bt7evc/78eU2cOFHPPfecHnnkEft41apVnd4+PBdBBh7l/Pnz6tevn8LCwrR161aVK1fO/lxkZKTOnDmjL774wo0VIjd8fX3zdf709HTdvn1bfn5+Of7iLAhWq9Ut27169aokORX67iU5OVlFihTJcZkuXbro3//+t65du6aSJUvax2NiYlSmTBlVr15d169fz7Re3bp1dfLkSc2cOVPz5s1zurbo6GjVqVNHe/bsyfT6ytgXERERioiIsI8fOHBAEydOVERERKbghQcHby3Bo8yePVs3b97UsmXLHEJMhmrVqmnkyJHZrv/bb7/p5ZdfVv369RUQEKDAwEB17txZhw8fzrTs/PnzVbduXRUuXFjFixdX06ZN7YeoJenGjRsaNWqUKlWqJKvVqtKlS6tDhw46ePCg033961//UteuXRUSEiKr1aqqVatq6tSpSktLy3L5uLg4tWjRQv7+/qpcubLefffdTMukpqZq0qRJqlatmqxWqypWrKixY8cqNTU1x1psNpsmT56s6tWry8/PTyVKlFCrVq0UGxt7zz6OHTumtm3byt/fXxUqVNDrr7+u9PT0TMtldY5MTvs7OjpaY8aMkSRVrlzZ/hZAxnk3FotFw4cP18cff6y6devKarVq48aN9ufuPkcmw7Vr19SnTx8FBgaqRIkSGjlypG7dumV//sKFC7JYLFqxYkWmde+e8161ZXWOzLlz59S7d28FBwercOHCat68eaYAnvGWyqpVqzRt2jRVqFBBfn5+ateunc6cOZOpprsNHjxYrVu3liT17t1bFovFYX9v3bpVjzzyiIoUKaJixYqpR48eOnHihMMcGecSHT9+XAMGDFDx4sXVqlWrHLcrST169JDVatXq1asdxmNiYtSnTx95e3tnuV6lSpX09NNPa+nSpbp06dI9t/NnZ8+e1cMPP5xlSC5durTT8+HBwREZeJT169erSpUqatGiRZ7WP3funNatW6fevXurcuXKio+P1+LFi9W6dWsdP37cfkh76dKlGjFihJ588kn7L7jvvvtOe/fu1YABAyRJf//737VmzRoNHz5cderU0a+//qodO3boxIkTaty4sVN1rVixQgEBAYqKilJAQIC2bt2qiRMnKikpSW+88YbDstevX1eXLl3Up08f9e/fX6tWrdI//vEP+fr6aujQoZL+OCLx+OOPa8eOHXruuedUu3ZtHTlyRHPnztWpU6e0bt26bGuJjo7WjBkz9Mwzzyg8PFxJSUk6cOCADh48qA4dOmS73pUrV9SmTRvduXNH48aNU5EiRbRkyRL5+/vfs/977e+ePXvq1KlT+uSTTzR37lz7X/qlSpWyz7F161atWrVKw4cPV8mSJVWpUqUct9mnTx9VqlRJM2bM0J49ezRv3jxdv35dH3zwwT3rvVtuartbfHy8WrRooZSUFI0YMUIlSpTQ+++/r8cff1xr1qzRX//6V4flZ86cKS8vL7388stKTEzU7NmzNXDgQO3duzfbmp5//nmVL19e06dP14gRI/Twww+rTJkykqTNmzerc+fOqlKliqKjo/X7779r/vz5atmypQ4ePJhpv/Xu3VvVq1fX9OnTZRjGPfdH4cKF1aNHD33yySf6xz/+IUk6fPiwjh07pvfee0/fffddtuu++uqr+uCDD/J0VCYsLExbtmzRTz/9pAoVKji1Lh5wBuAhEhMTDUlGjx49cr1OWFiYMWjQIPvjW7duGWlpaQ7LnD9/3rBarcaUKVPsYz169DDq1q2b49xBQUFGZGRkrmvJsHz5ckOScf78eftYSkpKpuWef/55o3DhwsatW7fsY61btzYkGW+++aZ9LDU11WjUqJFRunRp4/bt24ZhGMaHH35oeHl5Gf/9738d5nz33XcNScbOnTvtY3/eRw0bNjS6du3qdF+jRo0yJBl79+61j129etUICgrK1G/r1q2N1q1b2x/nZn+/8cYbmebJIMnw8vIyjh07luVzkyZNsj+eNGmSIcl4/PHHHZZ74YUXDEnG4cOHDcP443UhyVi+fPk958yptj/v34z9dPf35saNG0blypWNSpUq2V+fX3/9tSHJqF27tpGammpf9u233zYkGUeOHMm0rbtlrL969WqH8YzXyq+//mofO3z4sOHl5WU8/fTT9rGM/dS/f/8ct5PV9jZs2GBYLBbj4sWLhmEYxpgxY4wqVaoYhvHH9/7P3+uwsDD7a27IkCGGn5+fcenSpWz7yPgZ2r9/v31s2bJlhiTD19fXaNOmjTFhwgTjv//9b6af97vt378/2+8xHhy8tQSPkZSUJEkqWrRonuewWq32Ey/T0tL066+/KiAgQDVr1nR4S6hYsWL66aeftH///mznKlasmPbu3Zunw+B/dvdRixs3bujatWt65JFHlJKSou+//95h2UKFCun555+3P/b19dXzzz+vq1evKi4uTtIfJz7Wrl1btWrV0rVr1+xfbdu2lSR9/fXXOfZ17NgxnT592qke/vOf/6h58+YKDw+3j5UqVUoDBw6857q52d/30rp1a9WpUyfXy0dGRjo8zrhi5j//+U+ea8iN//znPwoPD3d4myYgIEDP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flq4cKEWLlzoku0BAIAHi9NBZvny5flRBwAAgNPu//a8AAAAbuL0EZnKlSvneL8YZz9vCQAAIK+cDjKjRo1yeGyz2fTtt99q48aNGjNmjKvqAgAAuKc8XX6dlYULF+rAgQP3XRAAAEBuuewcmc6dO+uzzz5z1XQAAAD35LIgs2bNGgUHB7tqOgAAgHty+q2lhx56yOFkX8MwdOXKFf3yyy/crA4AABQop4PME0884fDYy8tLpUqV0mOPPaZatWq5qi4AAIB7cjrITJo0KT/qAAAAcBo3xAMAAKaV6yMyXl5eOd4IT5IsFovu3Llz30UBAADkRq6DzNq1a7N9bvfu3Zo3b57S09NdUhQAAEBu5DrI9OjRI9PYyZMnNW7cOK1fv14DBw7UlClTXFocAABATvJ0jsylS5f07LPPqn79+rpz544OHTqk999/X2FhYa6uDwAAIFtOBZnExES98sorqlatmo4dO6YtW7Zo/fr1qlevXn7VBwAAkK1cv7U0e/ZszZo1S2XLltUnn3yS5VtNAAAABSnXQWbcuHHy9/dXtWrV9P777+v999/PcrnPP//cZcUBAADkJNdB5umnn77n5dcAAAAFKddBZsWKFflYBgAAgPO4sy8AADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAttwaZGTNm6OGHH1bRokVVunRpPfHEEzp58qTDMrdu3VJkZKRKlCihgIAA9erVS/Hx8W6qGAAAeBK3Bplt27YpMjJSe/bsUWxsrGw2mzp27Kjk5GT7MqNHj9b69eu1evVqbdu2TZcuXVLPnj3dWDUAAPAUhdy58Y0bNzo8XrFihUqXLq24uDg9+uijSkxM1LJlyxQTE6O2bdtKkpYvX67atWtrz549at68uTvKBgAAHsKtQebPEhMTJUnBwcGSpLi4ONlsNrVv396+TK1atRQaGqrdu3dnGWRSU1OVmppqf5yUlCRJstlsstlsLqs1Yy6rl+GyOd0lowez90IfnoU+PAt9eJYHrQ9X/n7NkNs5LYZheMReTE9P1+OPP66EhATt2LFDkhQTE6MhQ4Y4BBNJCg8PV5s2bTRr1qxM80RHR2vy5MmZ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", + "text/plain": [ + "
" ] - }, + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "trainloaders, valloaders, testloader = prepare_dataset(num_partitions=100,\n", + " batch_size=32)\n", + "\n", + "# first partition\n", + "train_partition = trainloaders[0].dataset\n", + "\n", + "# count data points\n", + "partition_indices = train_partition.indices\n", + "print(f\"number of images: {len(partition_indices)}\")\n", + "\n", + "# visualise histogram\n", + "plt.hist(train_partition.dataset.dataset.targets[partition_indices], bins=10)\n", + "plt.grid()\n", + "plt.xticks(range(10))\n", + "plt.xlabel('Label')\n", + "plt.ylabel('Number of images')\n", + "plt.title('Class labels distribution for MNIST')" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "me-cNRBO_-fa" + }, + "source": [ + "As you can see, the histogram of this partition is a bit different from the one we obtained at the beginning where we took the entire dataset into consideration. Because our data partitions are artificially constructed by sampling the MNIST dataset in an IID fashion, our Federated Learning example will not face sever _data heterogeneity_ issues (which is a fairly [active research topic](https://arxiv.org/abs/1912.04977)).\n", + "\n", + "Let's next define how our FL clients will behave\n", + "\n", + "## Defining a Flower Client\n", + "\n", + "You can think of a client in FL as an entity that owns some data and trains a model using this data. The caveat is that the model is being trained _collaboratively_ in Federation by multiple clients (sometimes up to hundreds of thousands) and, in most instances of FL, is sent by a central server.\n", + "\n", + "A Flower Client is a simple Python class with four distinct methods:\n", + "\n", + "* `fit()`: With this method, the client does on-device training for a number of epochs using its own data. At the end, the resulting model is sent back to the server for aggregation.\n", + "\n", + "* `evaluate()`: With this method, the server can evaluate the performance of the global model on the local validation set of a client. This can be used for instance when there is no centralised dataset on the server for validation/test. Also, this method can be use to asses the degree of personalisation of the model being federated.\n", + "\n", + "* `set_parameters()`: This method takes the parameters sent by the server and uses them to initialise the parameters of the local model that is ML framework specific (e.g. TF, Pytorch, etc).\n", + "\n", + "* `get_parameters()`: It extract the parameters from the local model and transforms them into a list of NumPy arrays. This ML framework-agnostic representation of the model will be sent to the server.\n", + "\n", + "Let's start by importing Flower!" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "id": "GckcVE2hH5UV" + }, + "outputs": [ { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "uJ0swdTqSyuA" - }, - "source": [ - "Now we are ready to launch the FL experiment using Flower simulation:" - ] + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-08-28 20:57:17,516\tINFO util.py:159 -- Missing packages: ['ipywidgets']. Run `pip install -U ipywidgets`, then restart the notebook server for rich notebook output.\n" + ] + } + ], + "source": [ + "import flwr as fl" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "w3zwIYgVH5wU" + }, + "source": [ + "Now let's define our Flower Client class:" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "id": "uXdiNmCE_90y" + }, + "outputs": [], + "source": [ + "from collections import OrderedDict\n", + "from typing import Dict, Tuple\n", + "\n", + "import torch\n", + "from flwr.common import NDArrays, Scalar\n", + "\n", + "class FlowerClient(fl.client.NumPyClient):\n", + " def __init__(self,\n", + " trainloader,\n", + " vallodaer) -> None:\n", + " super().__init__()\n", + "\n", + " self.trainloader = trainloader\n", + " self.valloader = vallodaer\n", + " self.model = Net(num_classes=10)\n", + "\n", + " def set_parameters(self, parameters):\n", + " \"\"\"With the model parameters received from the server,\n", + " overwrite the uninitialise model in this class with them.\"\"\"\n", + "\n", + " params_dict = zip(self.model.state_dict().keys(), parameters)\n", + " state_dict = OrderedDict({k: torch.Tensor(v) for k, v in params_dict})\n", + " # now replace the parameters\n", + " self.model.load_state_dict(state_dict, strict=True)\n", + "\n", + " def get_parameters(self, config: Dict[str, Scalar]):\n", + " \"\"\"Extract all model parameters and convert them to a list of\n", + " NumPy arrays. The server doesn't work with PyTorch/TF/etc.\"\"\"\n", + " return [val.cpu().numpy() for _, val in self.model.state_dict().items()]\n", + "\n", + " def fit(self, parameters, config):\n", + " \"\"\"This method train the model using the parameters sent by the\n", + " server on the dataset of this client. At then end, the parameters\n", + " of the locally trained model are communicated back to the server\"\"\"\n", + "\n", + " # copy parameters sent by the server into client's local model\n", + " self.set_parameters(parameters)\n", + "\n", + " # Define the optimizer -------------------------------------------------------------- Essentially the same as in the centralised example above\n", + " optim = torch.optim.SGD(self.model.parameters(), lr=0.01, momentum=0.9)\n", + "\n", + " # do local training -------------------------------------------------------------- Essentially the same as in the centralised example above (but now using the client's data instead of the whole dataset)\n", + " train(self.model, self.trainloader, optim, epochs=1)\n", + "\n", + " # return the model parameters to the server as well as extra info (number of training examples in this case)\n", + " return self.get_parameters({}), len(self.trainloader), {}\n", + "\n", + " def evaluate(self, parameters: NDArrays, config: Dict[str, Scalar]):\n", + " \"\"\"Evaluate the model sent by the server on this client's\n", + " local validation set. Then return performance metrics.\"\"\"\n", + "\n", + " self.set_parameters(parameters)\n", + " loss, accuracy = test(self.model, self.valloader) # <-------------------------- calls the `test` function, just what we did in the centralised setting (but this time using the client's local validation set)\n", + " # send statistics back to the server\n", + " return float(loss), len(self.valloader), {'accuracy': accuracy}" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "d5Ku-Z_1Jkvz" + }, + "source": [ + "Spend a few minutes to inspect the `FlowerClient` class above. Please ask questions if there is something unclear !\n", + "\n", + "Then keen-eyed among you might have realised that if we were to fuse the client's `fit()` and `evaluate()` methods, we'll end up with essentially the same as in the `run_centralised()` function we used in the Centralised Training part of this tutorial. And it is true!! In Federated Learning, the way clients perform local training makes use of the same principles as more traditional centralised setup. The key difference is that the dataset now is much smaller and it's never _\"seen\"_ by the entity running the FL workload (i.e. the central server).\n", + "\n", + "\n", + "Talking about the central server... we should define what strategy we want to make use of so the updated models sent from the clients back to the server at the end of the `fit()` method are aggregate.\n", + "\n", + "\n", + "## Chosing a Flower Strategy\n", + "\n", + "\n", + "A strategy sits at the core of the Federated Learning experiment. It is involved in all stages of a FL pipeline: sampling clients; sending the _global model_ to the clients so they can do `fit()`; receive the updated models from the clients and **aggregate** these to construct a new _global model_; define and execute global or federated evaluation; and more.\n", + "\n", + "Flower comes with [many strategies built-in](https://github.com/adap/flower/tree/main/src/py/flwr/server/strategy) and more to be available in the next release (`1.5` already!). For this tutorial, let's use what is arguable the most popular strategy out there: `FedAvg`.\n", + "\n", + "The way `FedAvg` works is simple but performs surprisingly well in practice. It is therefore one good strategy to start your experimentation. `FedAvg`, as its name implies, derives a new version of the _global model_ by taking the average of all the models sent by clients participating in the round. You can read all the details [in the paper](https://arxiv.org/abs/1602.05629).\n", + "\n", + "Let's see how we can define `FedAvg` using Flower. We use one of the callbacks called `evaluate_fn` so we can easily evaluate the state of the global model using a small centralised testset. Note this functionality is user-defined since it requires a choice in terms of ML-framework. (if you recall, Flower is framework agnostic).\n", + "\n", + "> This being said, centralised evaluation of the global model is only possible if there exists a centralised dataset that somewhat follows a similar distribution as the data that's spread across clients. In some cases having such centralised dataset for validation is not possible, so the only solution is to federate the evaluation of the _global model_. This is the default behaviour in Flower. If you don't specify teh `evaluate_fn` argument in your strategy, then, centralised global evaluation won't be performed." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "id": "gUmUpH5t-Urn" + }, + "outputs": [], + "source": [ + "def get_evalulate_fn(testloader):\n", + " \"\"\"This is a function that returns a function. The returned\n", + " function (i.e. `evaluate_fn`) will be executed by the strategy\n", + " at the end of each round to evaluate the stat of the global\n", + " model.\"\"\"\n", + " def evaluate_fn(server_round: int, parameters, config):\n", + " \"\"\"This function is executed by the strategy it will instantiate\n", + " a model and replace its parameters with those from the global model.\n", + " The, the model will be evaluate on the test set (recall this is the\n", + " whole MNIST test set).\"\"\"\n", + "\n", + " model = Net(num_classes=10)\n", + "\n", + " # set parameters to the model\n", + " params_dict = zip(model.state_dict().keys(), parameters)\n", + " state_dict = OrderedDict({k: torch.Tensor(v) for k, v in params_dict})\n", + " model.load_state_dict(state_dict, strict=True)\n", + "\n", + " # call test\n", + " loss, accuracy = test(model, testloader) # <-------------------------- calls the `test` function, just what we did in the centralised setting\n", + " return loss, {\"accuracy\": accuracy}\n", + "\n", + " return evaluate_fn\n", + "\n", + "\n", + "# now we can define the strategy\n", + "strategy = fl.server.strategy.FedAvg(fraction_fit=0.1, # let's sample 10% of the client each round to do local training\n", + " fraction_evaluate=0.1, # after each round, let's sample 20% of the clients to asses how well the global model is doing\n", + " min_available_clients=100, # total number of clients available in the experiment\n", + " evaluate_fn=get_evalulate_fn(testloader)) # a callback to a function that the strategy can execute to evaluate the state of the global model on a centralised dataset\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "4UV_kBVGRbQT" + }, + "source": [ + "So far we have:\n", + "* created the dataset partitions (one for each client)\n", + "* defined the client class\n", + "* decided on a strategy to use\n", + "\n", + "Now we just need to launch the Flower FL experiment... not so fast! just one final function: let's create another callback that the Simulation Engine will use in order to span VirtualClients. As you can see this is really simple: construct a FlowerClient object, assigning each their own data partition." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "id": "frPHAxUg-3Ev" + }, + "outputs": [], + "source": [ + "def generate_client_fn(trainloaders, valloaders):\n", + " def client_fn(cid: str):\n", + " \"\"\"Returns a FlowerClient containing the cid-th data partition\"\"\"\n", + "\n", + " return FlowerClient(trainloader=trainloaders[int(cid)],\n", + " vallodaer=valloaders[int(cid)])\n", + " return client_fn\n", + "\n", + "client_fn_callback = generate_client_fn(trainloaders, valloaders)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "uJ0swdTqSyuA" + }, + "source": [ + "Now we are ready to launch the FL experiment using Flower simulation:" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" }, + "id": "VpXEG9cxR9vu", + "outputId": "9ad8dcea-8004-4c6e-a025-e168da636c88" + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 21, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "VpXEG9cxR9vu", - "outputId": "9ad8dcea-8004-4c6e-a025-e168da636c88" - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO flwr 2023-08-28 20:59:31,625 | app.py:175 | Starting Flower simulation, config: ServerConfig(num_rounds=10, round_timeout=None)\n", - "2023-08-28 20:59:34,903\tINFO worker.py:1621 -- Started a local Ray instance.\n", - "INFO flwr 2023-08-28 20:59:35,673 | app.py:210 | Flower VCE: Ray initialized with resources: {'object_store_memory': 2147483648.0, 'CPU': 10.0, 'node:__internal_head__': 1.0, 'node:127.0.0.1': 1.0, 'memory': 19064990925.0}\n", - "INFO flwr 2023-08-28 20:59:35,673 | app.py:218 | No `client_resources` specified. Using minimal resources for clients.\n", - "INFO flwr 2023-08-28 20:59:35,674 | app.py:224 | Flower VCE: Resources for each Virtual Client: {'num_cpus': 1, 'num_gpus': 0.0}\n", - "INFO flwr 2023-08-28 20:59:35,682 | app.py:270 | Flower VCE: Creating VirtualClientEngineActorPool with 10 actors\n", - "INFO flwr 2023-08-28 20:59:35,682 | server.py:89 | Initializing global parameters\n", - "INFO flwr 2023-08-28 20:59:35,683 | server.py:276 | Requesting initial parameters from one random client\n", - "INFO flwr 2023-08-28 20:59:40,091 | server.py:280 | Received initial parameters from one random client\n", - "INFO flwr 2023-08-28 20:59:40,092 | server.py:91 | Evaluating initial parameters\n", - "INFO flwr 2023-08-28 20:59:40,780 | server.py:94 | initial parameters (loss, other metrics): 182.0281903743744, {'accuracy': 0.1114}\n", - "INFO flwr 2023-08-28 20:59:40,780 | server.py:104 | FL starting\n", - "DEBUG flwr 2023-08-28 20:59:40,781 | server.py:222 | fit_round 1: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 20:59:47,133 | server.py:236 | fit_round 1 received 10 results and 0 failures\n", - "WARNING flwr 2023-08-28 20:59:47,141 | fedavg.py:242 | No fit_metrics_aggregation_fn provided\n", - "INFO flwr 2023-08-28 20:59:47,821 | server.py:125 | fit progress: (1, 181.06436610221863, {'accuracy': 0.1341}, 7.040863708942197)\n", - "DEBUG flwr 2023-08-28 20:59:47,822 | server.py:173 | evaluate_round 1: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 20:59:52,362 | server.py:187 | evaluate_round 1 received 10 results and 0 failures\n", - "WARNING flwr 2023-08-28 20:59:52,363 | fedavg.py:273 | No evaluate_metrics_aggregation_fn provided\n", - "DEBUG flwr 2023-08-28 20:59:52,363 | server.py:222 | fit_round 2: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 20:59:56,935 | server.py:236 | fit_round 2 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 20:59:57,627 | server.py:125 | fit progress: (2, 179.6406238079071, {'accuracy': 0.2844}, 16.846019334043376)\n", - "DEBUG flwr 2023-08-28 20:59:57,627 | server.py:173 | evaluate_round 2: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:02,146 | server.py:187 | evaluate_round 2 received 10 results and 0 failures\n", - "DEBUG flwr 2023-08-28 21:00:02,146 | server.py:222 | fit_round 3: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:06,692 | server.py:236 | fit_round 3 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 21:00:07,369 | server.py:125 | fit progress: (3, 176.3769176006317, {'accuracy': 0.5013}, 26.587926791980863)\n", - "DEBUG flwr 2023-08-28 21:00:07,369 | server.py:173 | evaluate_round 3: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:11,854 | server.py:187 | evaluate_round 3 received 10 results and 0 failures\n", - "DEBUG flwr 2023-08-28 21:00:11,855 | server.py:222 | fit_round 4: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:16,728 | server.py:236 | fit_round 4 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 21:00:17,414 | server.py:125 | fit progress: (4, 165.48094844818115, {'accuracy': 0.4989}, 36.63336270896252)\n", - "DEBUG flwr 2023-08-28 21:00:17,415 | server.py:173 | evaluate_round 4: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:22,117 | server.py:187 | evaluate_round 4 received 10 results and 0 failures\n", - "DEBUG flwr 2023-08-28 21:00:22,118 | server.py:222 | fit_round 5: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:26,776 | server.py:236 | fit_round 5 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 21:00:27,456 | server.py:125 | fit progress: (5, 115.77451705932617, {'accuracy': 0.6265}, 46.67501679202542)\n", - "DEBUG flwr 2023-08-28 21:00:27,457 | server.py:173 | evaluate_round 5: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:31,981 | server.py:187 | evaluate_round 5 received 10 results and 0 failures\n", - "DEBUG flwr 2023-08-28 21:00:31,982 | server.py:222 | fit_round 6: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:36,573 | server.py:236 | fit_round 6 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 21:00:37,266 | server.py:125 | fit progress: (6, 51.16007122397423, {'accuracy': 0.8018}, 56.484427334042266)\n", - "DEBUG flwr 2023-08-28 21:00:37,266 | server.py:173 | evaluate_round 6: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:41,796 | server.py:187 | evaluate_round 6 received 10 results and 0 failures\n", - "DEBUG flwr 2023-08-28 21:00:41,797 | server.py:222 | fit_round 7: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:46,326 | server.py:236 | fit_round 7 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 21:00:47,010 | server.py:125 | fit progress: (7, 46.40866267681122, {'accuracy': 0.8081}, 66.22883979196195)\n", - "DEBUG flwr 2023-08-28 21:00:47,011 | server.py:173 | evaluate_round 7: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:51,524 | server.py:187 | evaluate_round 7 received 10 results and 0 failures\n", - "DEBUG flwr 2023-08-28 21:00:51,525 | server.py:222 | fit_round 8: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:56,240 | server.py:236 | fit_round 8 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 21:00:56,982 | server.py:125 | fit progress: (8, 33.36455833911896, {'accuracy': 0.8698}, 76.20065708400216)\n", - "DEBUG flwr 2023-08-28 21:00:56,983 | server.py:173 | evaluate_round 8: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:01:01,527 | server.py:187 | evaluate_round 8 received 10 results and 0 failures\n", - "DEBUG flwr 2023-08-28 21:01:01,527 | server.py:222 | fit_round 9: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:01:06,174 | server.py:236 | fit_round 9 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 21:01:06,874 | server.py:125 | fit progress: (9, 28.229523852467537, {'accuracy': 0.9001}, 86.09250316699035)\n", - "DEBUG flwr 2023-08-28 21:01:06,874 | server.py:173 | evaluate_round 9: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:01:11,251 | server.py:187 | evaluate_round 9 received 10 results and 0 failures\n", - "DEBUG flwr 2023-08-28 21:01:11,251 | server.py:222 | fit_round 10: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:01:15,794 | server.py:236 | fit_round 10 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 21:01:16,470 | server.py:125 | fit progress: (10, 22.725839115679264, {'accuracy': 0.9168}, 95.68810208397917)\n", - "DEBUG flwr 2023-08-28 21:01:16,470 | server.py:173 | evaluate_round 10: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:01:20,808 | server.py:187 | evaluate_round 10 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 21:01:20,809 | server.py:153 | FL finished in 100.02693225000985\n", - "INFO flwr 2023-08-28 21:01:20,809 | app.py:225 | app_fit: losses_distributed [(1, 4.5842246294021605), (2, 4.546195244789123), (3, 4.46350576877594), (4, 4.165321779251099), (5, 2.8972655892372132), (6, 1.3353233098983766), (7, 1.2181178748607635), (8, 0.9146452054381371), (9, 0.8028807744383812), (10, 0.4898006349802017)]\n", - "INFO flwr 2023-08-28 21:01:20,809 | app.py:226 | app_fit: metrics_distributed_fit {}\n", - "INFO flwr 2023-08-28 21:01:20,810 | app.py:227 | app_fit: metrics_distributed {}\n", - "INFO flwr 2023-08-28 21:01:20,810 | app.py:228 | app_fit: losses_centralized [(0, 182.0281903743744), (1, 181.06436610221863), (2, 179.6406238079071), (3, 176.3769176006317), (4, 165.48094844818115), (5, 115.77451705932617), (6, 51.16007122397423), (7, 46.40866267681122), (8, 33.36455833911896), (9, 28.229523852467537), (10, 22.725839115679264)]\n", - "INFO flwr 2023-08-28 21:01:20,810 | app.py:229 | app_fit: metrics_centralized {'accuracy': [(0, 0.1114), (1, 0.1341), (2, 0.2844), (3, 0.5013), (4, 0.4989), (5, 0.6265), (6, 0.8018), (7, 0.8081), (8, 0.8698), (9, 0.9001), (10, 0.9168)]}\n" - ] - } - ], - "source": [ - "history = fl.simulation.start_simulation(\n", - " client_fn=client_fn_callback, # a callback to construct a client\n", - " num_clients=100, # total number of clients in the experiment\n", - " config=fl.server.ServerConfig(num_rounds=10), # let's run for 10 rounds\n", - " strategy=strategy, # the strategy that will orchestrate the whole FL pipeline\n", - ")" - ] + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO flwr 2023-08-28 20:59:31,625 | app.py:175 | Starting Flower simulation, config: ServerConfig(num_rounds=10, round_timeout=None)\n", + "2023-08-28 20:59:34,903\tINFO worker.py:1621 -- Started a local Ray instance.\n", + "INFO flwr 2023-08-28 20:59:35,673 | app.py:210 | Flower VCE: Ray initialized with resources: {'object_store_memory': 2147483648.0, 'CPU': 10.0, 'node:__internal_head__': 1.0, 'node:127.0.0.1': 1.0, 'memory': 19064990925.0}\n", + "INFO flwr 2023-08-28 20:59:35,673 | app.py:218 | No `client_resources` specified. Using minimal resources for clients.\n", + "INFO flwr 2023-08-28 20:59:35,674 | app.py:224 | Flower VCE: Resources for each Virtual Client: {'num_cpus': 1, 'num_gpus': 0.0}\n", + "INFO flwr 2023-08-28 20:59:35,682 | app.py:270 | Flower VCE: Creating VirtualClientEngineActorPool with 10 actors\n", + "INFO flwr 2023-08-28 20:59:35,682 | server.py:89 | Initializing global parameters\n", + "INFO flwr 2023-08-28 20:59:35,683 | server.py:276 | Requesting initial parameters from one random client\n", + "INFO flwr 2023-08-28 20:59:40,091 | server.py:280 | Received initial parameters from one random client\n", + "INFO flwr 2023-08-28 20:59:40,092 | server.py:91 | Evaluating initial parameters\n", + "INFO flwr 2023-08-28 20:59:40,780 | server.py:94 | initial parameters (loss, other metrics): 182.0281903743744, {'accuracy': 0.1114}\n", + "INFO flwr 2023-08-28 20:59:40,780 | server.py:104 | FL starting\n", + "DEBUG flwr 2023-08-28 20:59:40,781 | server.py:222 | fit_round 1: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 20:59:47,133 | server.py:236 | fit_round 1 received 10 results and 0 failures\n", + "WARNING flwr 2023-08-28 20:59:47,141 | fedavg.py:242 | No fit_metrics_aggregation_fn provided\n", + "INFO flwr 2023-08-28 20:59:47,821 | server.py:125 | fit progress: (1, 181.06436610221863, {'accuracy': 0.1341}, 7.040863708942197)\n", + "DEBUG flwr 2023-08-28 20:59:47,822 | server.py:173 | evaluate_round 1: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 20:59:52,362 | server.py:187 | evaluate_round 1 received 10 results and 0 failures\n", + "WARNING flwr 2023-08-28 20:59:52,363 | fedavg.py:273 | No evaluate_metrics_aggregation_fn provided\n", + "DEBUG flwr 2023-08-28 20:59:52,363 | server.py:222 | fit_round 2: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 20:59:56,935 | server.py:236 | fit_round 2 received 10 results and 0 failures\n", + "INFO flwr 2023-08-28 20:59:57,627 | server.py:125 | fit progress: (2, 179.6406238079071, {'accuracy': 0.2844}, 16.846019334043376)\n", + "DEBUG flwr 2023-08-28 20:59:57,627 | server.py:173 | evaluate_round 2: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 21:00:02,146 | server.py:187 | evaluate_round 2 received 10 results and 0 failures\n", + "DEBUG flwr 2023-08-28 21:00:02,146 | server.py:222 | fit_round 3: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 21:00:06,692 | server.py:236 | fit_round 3 received 10 results and 0 failures\n", + "INFO flwr 2023-08-28 21:00:07,369 | server.py:125 | fit progress: (3, 176.3769176006317, {'accuracy': 0.5013}, 26.587926791980863)\n", + "DEBUG flwr 2023-08-28 21:00:07,369 | server.py:173 | evaluate_round 3: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 21:00:11,854 | server.py:187 | evaluate_round 3 received 10 results and 0 failures\n", + "DEBUG flwr 2023-08-28 21:00:11,855 | server.py:222 | fit_round 4: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 21:00:16,728 | server.py:236 | fit_round 4 received 10 results and 0 failures\n", + "INFO flwr 2023-08-28 21:00:17,414 | server.py:125 | fit progress: (4, 165.48094844818115, {'accuracy': 0.4989}, 36.63336270896252)\n", + "DEBUG flwr 2023-08-28 21:00:17,415 | server.py:173 | evaluate_round 4: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 21:00:22,117 | server.py:187 | evaluate_round 4 received 10 results and 0 failures\n", + "DEBUG flwr 2023-08-28 21:00:22,118 | server.py:222 | fit_round 5: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 21:00:26,776 | server.py:236 | fit_round 5 received 10 results and 0 failures\n", + "INFO flwr 2023-08-28 21:00:27,456 | server.py:125 | fit progress: (5, 115.77451705932617, {'accuracy': 0.6265}, 46.67501679202542)\n", + "DEBUG flwr 2023-08-28 21:00:27,457 | server.py:173 | evaluate_round 5: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 21:00:31,981 | server.py:187 | evaluate_round 5 received 10 results and 0 failures\n", + "DEBUG flwr 2023-08-28 21:00:31,982 | server.py:222 | fit_round 6: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 21:00:36,573 | server.py:236 | fit_round 6 received 10 results and 0 failures\n", + "INFO flwr 2023-08-28 21:00:37,266 | server.py:125 | fit progress: (6, 51.16007122397423, {'accuracy': 0.8018}, 56.484427334042266)\n", + "DEBUG flwr 2023-08-28 21:00:37,266 | server.py:173 | evaluate_round 6: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 21:00:41,796 | server.py:187 | evaluate_round 6 received 10 results and 0 failures\n", + "DEBUG flwr 2023-08-28 21:00:41,797 | server.py:222 | fit_round 7: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 21:00:46,326 | server.py:236 | fit_round 7 received 10 results and 0 failures\n", + "INFO flwr 2023-08-28 21:00:47,010 | server.py:125 | fit progress: (7, 46.40866267681122, {'accuracy': 0.8081}, 66.22883979196195)\n", + "DEBUG flwr 2023-08-28 21:00:47,011 | server.py:173 | evaluate_round 7: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 21:00:51,524 | server.py:187 | evaluate_round 7 received 10 results and 0 failures\n", + "DEBUG flwr 2023-08-28 21:00:51,525 | server.py:222 | fit_round 8: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 21:00:56,240 | server.py:236 | fit_round 8 received 10 results and 0 failures\n", + "INFO flwr 2023-08-28 21:00:56,982 | server.py:125 | fit progress: (8, 33.36455833911896, {'accuracy': 0.8698}, 76.20065708400216)\n", + "DEBUG flwr 2023-08-28 21:00:56,983 | server.py:173 | evaluate_round 8: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 21:01:01,527 | server.py:187 | evaluate_round 8 received 10 results and 0 failures\n", + "DEBUG flwr 2023-08-28 21:01:01,527 | server.py:222 | fit_round 9: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 21:01:06,174 | server.py:236 | fit_round 9 received 10 results and 0 failures\n", + "INFO flwr 2023-08-28 21:01:06,874 | server.py:125 | fit progress: (9, 28.229523852467537, {'accuracy': 0.9001}, 86.09250316699035)\n", + "DEBUG flwr 2023-08-28 21:01:06,874 | server.py:173 | evaluate_round 9: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 21:01:11,251 | server.py:187 | evaluate_round 9 received 10 results and 0 failures\n", + "DEBUG flwr 2023-08-28 21:01:11,251 | server.py:222 | fit_round 10: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 21:01:15,794 | server.py:236 | fit_round 10 received 10 results and 0 failures\n", + "INFO flwr 2023-08-28 21:01:16,470 | server.py:125 | fit progress: (10, 22.725839115679264, {'accuracy': 0.9168}, 95.68810208397917)\n", + "DEBUG flwr 2023-08-28 21:01:16,470 | server.py:173 | evaluate_round 10: strategy sampled 10 clients (out of 100)\n", + "DEBUG flwr 2023-08-28 21:01:20,808 | server.py:187 | evaluate_round 10 received 10 results and 0 failures\n", + "INFO flwr 2023-08-28 21:01:20,809 | server.py:153 | FL finished in 100.02693225000985\n", + "INFO flwr 2023-08-28 21:01:20,809 | app.py:225 | app_fit: losses_distributed [(1, 4.5842246294021605), (2, 4.546195244789123), (3, 4.46350576877594), (4, 4.165321779251099), (5, 2.8972655892372132), (6, 1.3353233098983766), (7, 1.2181178748607635), (8, 0.9146452054381371), (9, 0.8028807744383812), (10, 0.4898006349802017)]\n", + "INFO flwr 2023-08-28 21:01:20,809 | app.py:226 | app_fit: metrics_distributed_fit {}\n", + "INFO flwr 2023-08-28 21:01:20,810 | app.py:227 | app_fit: metrics_distributed {}\n", + "INFO flwr 2023-08-28 21:01:20,810 | app.py:228 | app_fit: losses_centralized [(0, 182.0281903743744), (1, 181.06436610221863), (2, 179.6406238079071), (3, 176.3769176006317), (4, 165.48094844818115), (5, 115.77451705932617), (6, 51.16007122397423), (7, 46.40866267681122), (8, 33.36455833911896), (9, 28.229523852467537), (10, 22.725839115679264)]\n", + "INFO flwr 2023-08-28 21:01:20,810 | app.py:229 | app_fit: metrics_centralized {'accuracy': [(0, 0.1114), (1, 0.1341), (2, 0.2844), (3, 0.5013), (4, 0.4989), (5, 0.6265), (6, 0.8018), (7, 0.8081), (8, 0.8698), (9, 0.9001), (10, 0.9168)]}\n" + ] + } + ], + "source": [ + "history = fl.simulation.start_simulation(\n", + " client_fn=client_fn_callback, # a callback to construct a client\n", + " num_clients=100, # total number of clients in the experiment\n", + " config=fl.server.ServerConfig(num_rounds=10), # let's run for 10 rounds\n", + " strategy=strategy, # the strategy that will orchestrate the whole FL pipeline\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "2hLLbDCEUat7" + }, + "source": [ + "Doing 10 rounds should take less than 2 minutes on a CPU-only Colab instance <-- Flower Simulation is fast! 🚀\n", + "\n", + "You can then use the returned `History` object to either save the results to disk or do some visualisation (or both of course, or neither if you like chaos). Below you can see how you can plot the centralised accuracy obtained at the end of each round (including at the very beginning of the experiment) for the _global model_. This is want the function `evaluate_fn()` that we passed to the strategy reports." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 508 }, + "id": "EQ8GnlFVTJkF", + "outputId": "d8eab106-cee9-4266-9082-0944882cdba8" + }, + "outputs": [ { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "id": "2hLLbDCEUat7" - }, - "source": [ - "Doing 10 rounds should take less than 2 minutes on a CPU-only Colab instance <-- Flower Simulation is fast! 🚀\n", - "\n", - "You can then use the returned `History` object to either save the results to disk or do some visualisation (or both of course, or neither if you like chaos). Below you can see how you can plot the centralised accuracy obtained at the end of each round (including at the very beginning of the experiment) for the _global model_. This is want the function `evaluate_fn()` that we passed to the strategy reports." - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "history.metrics_centralized = {'accuracy': [(0, 0.1114), (1, 0.1341), (2, 0.2844), (3, 0.5013), (4, 0.4989), (5, 0.6265), (6, 0.8018), (7, 0.8081), (8, 0.8698), (9, 0.9001), (10, 0.9168)]}\n" + ] }, { - "cell_type": "code", - "execution_count": 22, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 508 - }, - "id": "EQ8GnlFVTJkF", - "outputId": "d8eab106-cee9-4266-9082-0944882cdba8" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "history.metrics_centralized = {'accuracy': [(0, 0.1114), (1, 0.1341), (2, 0.2844), (3, 0.5013), (4, 0.4989), (5, 0.6265), (6, 0.8018), (7, 0.8081), (8, 0.8698), (9, 0.9001), (10, 0.9168)]}\n" - ] - }, - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'MNIST - IID - 100 clients with 10 clients per round')" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "print(f\"{history.metrics_centralized = }\")\n", - "\n", - "global_accuracy_centralised = history.metrics_centralized['accuracy']\n", - "round = [data[0] for data in global_accuracy_centralised]\n", - "acc = [100.0*data[1] for data in global_accuracy_centralised]\n", - "plt.plot(round, acc)\n", - "plt.grid()\n", - "plt.ylabel('Accuracy (%)')\n", - "plt.xlabel('Round')\n", - "plt.title('MNIST - IID - 100 clients with 10 clients per round')" + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'MNIST - IID - 100 clients with 10 clients per round')" ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" }, { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## What's next?\n", - "\n", - "Well, if you enjoyed this content, consider giving us a ⭐️ on GitHub -> https://github.com/adap/flower\n", - "\n", - "* **[DOCS]** How about running your Flower clients on the GPU? find out how to do it in the [Flower Simulation Documentation](https://flower.dev/docs/framework/how-to-run-simulations.html)\n", - "\n", - "* **[VIDEO]** You can follow our [detailed line-by-line 9-videos tutorial](https://www.youtube.com/watch?v=cRebUIGB5RU&list=PLNG4feLHqCWlnj8a_E1A_n5zr2-8pafTB) about everything you need to know to design your own Flower Simulation pipelines\n", - "\n", - "* Check more advanced simulation examples the Flower GitHub:\n", - "\n", - " * Flower simulation with Tensorflow/Keras: [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://github.com/adap/flower/tree/main/examples/simulation-tensorflow)\n", - " \n", - " * Flower simulation with Pytorch: [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://github.com/adap/flower/tree/main/examples/simulation-pytorch)\n", - "\n", - "* **[DOCS]** All Flower examples: https://flower.dev/docs/examples/\n", - "\n", - "* **[VIDEO]** Our Youtube channel: https://www.youtube.com/@flowerlabs\n", - "\n", - "Don't forget to join our Slack channel: https://flower.dev/join-slack/\n" + "data": { + "image/png": "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", + "text/plain": [ + "
" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - } - ], - "metadata": { - "colab": { - "provenance": [], - "toc_visible": true - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.12" + }, + "metadata": {}, + "output_type": "display_data" } + ], + "source": [ + "print(f\"{history.metrics_centralized = }\")\n", + "\n", + "global_accuracy_centralised = history.metrics_centralized['accuracy']\n", + "round = [data[0] for data in global_accuracy_centralised]\n", + "acc = [100.0*data[1] for data in global_accuracy_centralised]\n", + "plt.plot(round, acc)\n", + "plt.grid()\n", + "plt.ylabel('Accuracy (%)')\n", + "plt.xlabel('Round')\n", + "plt.title('MNIST - IID - 100 clients with 10 clients per round')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## What's next?\n", + "\n", + "Well, if you enjoyed this content, consider giving us a ⭐️ on GitHub -> https://github.com/adap/flower\n", + "\n", + "* **[DOCS]** How about running your Flower clients on the GPU? find out how to do it in the [Flower Simulation Documentation](https://flower.dev/docs/framework/how-to-run-simulations.html)\n", + "\n", + "* **[VIDEO]** You can follow our [detailed line-by-line 9-videos tutorial](https://www.youtube.com/watch?v=cRebUIGB5RU&list=PLNG4feLHqCWlnj8a_E1A_n5zr2-8pafTB) about everything you need to know to design your own Flower Simulation pipelines\n", + "\n", + "* Check more advanced simulation examples the Flower GitHub:\n", + "\n", + " * Flower simulation with Tensorflow/Keras: [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://github.com/adap/flower/tree/main/examples/simulation-tensorflow)\n", + " \n", + " * Flower simulation with Pytorch: [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://github.com/adap/flower/tree/main/examples/simulation-pytorch)\n", + "\n", + "* **[DOCS]** All Flower examples: https://flower.dev/docs/examples/\n", + "\n", + "* **[VIDEO]** Our Youtube channel: https://www.youtube.com/@flowerlabs\n", + "\n", + "Don't forget to join our Slack channel: https://flower.dev/join-slack/\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "colab": { + "provenance": [], + "toc_visible": true + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" }, - "nbformat": 4, - "nbformat_minor": 0 + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } From 23e895c9e580023b6a46d2e89c3c3c91ff3f0799 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 6 Sep 2023 10:23:31 +0900 Subject: [PATCH 059/133] fix dataset and models --- baselines/FedMeta/FedMeta/client.py | 9 +-- baselines/FedMeta/FedMeta/dataset.py | 32 ++++----- .../FedMeta/FedMeta/dataset_preparation.py | 67 +++++++++---------- baselines/FedMeta/FedMeta/main.py | 12 ++-- baselines/FedMeta/FedMeta/models.py | 34 +++++----- baselines/FedMeta/FedMeta/strategy.py | 3 +- 6 files changed, 79 insertions(+), 78 deletions(-) diff --git a/baselines/FedMeta/FedMeta/client.py b/baselines/FedMeta/FedMeta/client.py index 30b9f6309046..00e32fe86125 100644 --- a/baselines/FedMeta/FedMeta/client.py +++ b/baselines/FedMeta/FedMeta/client.py @@ -53,21 +53,22 @@ def fit( self.set_parameters(parameters) train( self.net, - self.trainloaders['train'][self.cid], + self.trainloaders['sup'][self.cid], self.device, epochs=self.num_epochs, learning_rate=self.learning_rate, ) - return self.get_parameters({}), len(self.trainloaders['train'][self.cid]), {} + return self.get_parameters({}), len(self.trainloaders['sup'][self.cid]), {} def evaluate( self, parameters: NDArrays, config: Dict[str, Scalar] ) -> Tuple[float, int, Dict]: """Implements distributed evaluation for a given client.""" self.set_parameters(parameters) - loss, accuracy = test(self.net, self.valloaders['test'][self.cid], self.device) - return float(loss), len(self.valloaders['test'][self.cid]), {"correct": accuracy} + loss, accuracy, total = test(self.net, self.valloaders['qry'][self.cid], self.device) + # return float(loss), len(self.valloaders['test'][self.cid]), {"correct": accuracy} + return float(loss), total, {"correct": accuracy} def gen_client_fn( diff --git a/baselines/FedMeta/FedMeta/dataset.py b/baselines/FedMeta/FedMeta/dataset.py index 9e046a9b4d8b..8d89af88b4fd 100644 --- a/baselines/FedMeta/FedMeta/dataset.py +++ b/baselines/FedMeta/FedMeta/dataset.py @@ -42,35 +42,29 @@ def load_datasets( # pylint: disable=too-many-arguments ) -> Tuple[DataLoader, DataLoader, DataLoader]: print(f"Dataset partitioning config: {config}") - if config.algo == 'fedavg': - dataset = _partition_data( - dir_path=config.path - ) - - elif config.algo == 'fedmeta(maml)': - dataset = _partition_data( - dir_path=config.path, - support_ratio=config.support_ratio - ) + dataset = _partition_data( + dir_path=config.path, + support_ratio=config.support_ratio + ) clients_list = split_train_validation_test_clients( dataset[0]['users'] ) - trainloaders = {'train': [], 'test': []} - valloaders = {'train': [], 'test': []} - testloaders = {'train': [], 'test': []} + trainloaders = {'sup': [], 'qry': []} + valloaders = {'sup': [], 'qry': []} + testloaders = {'sup': [], 'qry': []} transform = transforms.Compose([transforms.ToTensor()]) for user in clients_list[0]: - trainloaders['train'].append(DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=10, shuffle=True)) - trainloaders['test'].append(DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform))) + trainloaders['sup'].append(DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=10, shuffle=True)) + trainloaders['qry'].append(DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=10)) for user in clients_list[2]: - valloaders['train'].append(DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=10, shuffle=True)) - valloaders['test'].append(DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform))) + valloaders['sup'].append(DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=10, shuffle=True)) + valloaders['qry'].append(DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=10)) for user in clients_list[1]: - testloaders['train'].append(DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=10, shuffle=True)) - testloaders['test'].append(DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform))) + testloaders['sup'].append(DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=10, shuffle=True)) + testloaders['qry'].append(DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=10)) return trainloaders, valloaders, testloaders diff --git a/baselines/FedMeta/FedMeta/dataset_preparation.py b/baselines/FedMeta/FedMeta/dataset_preparation.py index 0234519281c1..88ce4499d9d5 100644 --- a/baselines/FedMeta/FedMeta/dataset_preparation.py +++ b/baselines/FedMeta/FedMeta/dataset_preparation.py @@ -85,37 +85,36 @@ def _partition_data( train_users, train_data = _read_dataset(train_path) test_users, test_data = _read_dataset(test_path) - if support_ratio is None: - train_dataset = {'users': [], 'user_data': {}, 'num_samples': []} - test_dataset = {'users': [], 'user_data': {}, 'num_samples': []} - - for user in train_users: - train_dataset['users'].append(user) - train_dataset['user_data'][user] = {'x': train_data[user]['x'], 'y': train_data[user]['y']} - train_dataset['num_samples'].append(len(train_data[user]['y'])) - - test_dataset['users'].append(user) - test_dataset['user_data'][user] = {'x': test_data[user]['x'], 'y': test_data[user]['y']} - test_dataset['num_samples'].append(len(test_data[user]['y'])) - - return train_dataset, test_dataset - - else: - support_dataset = {'users': [], 'user_data': {}, 'num_samples': []} - query_dataset = {'users': [], 'user_data': {}, 'num_samples': []} - - for user in train_users: - print(f'now preprocessing user : {user}') - all_x = np.asarray(train_data[user]['x'] + test_data[user]['x']) - all_y = np.asarray(train_data[user]['y'] + test_data[user]['y']) - sup_x, qry_x, sup_y, qry_y = support_query_split(all_x, all_y, support_ratio) - - support_dataset['users'].append(user) - support_dataset['user_data'][user] = {'x': sup_x, 'y': sup_y} - support_dataset['num_samples'].append(len(sup_y)) - - query_dataset['users'].append(user) - query_dataset['user_data'][user] = {'x': qry_x, 'y': qry_y} - query_dataset['num_samples'].append(len(qry_y)) - - return support_dataset, query_dataset + # if support_ratio is None: + # train_dataset = {'users': [], 'user_data': {}, 'num_samples': []} + # test_dataset = {'users': [], 'user_data': {}, 'num_samples': []} + # + # for user in train_users: + # train_dataset['users'].append(user) + # train_dataset['user_data'][user] = {'x': train_data[user]['x'], 'y': train_data[user]['y']} + # train_dataset['num_samples'].append(len(train_data[user]['y'])) + # + # test_dataset['users'].append(user) + # test_dataset['user_data'][user] = {'x': test_data[user]['x'], 'y': test_data[user]['y']} + # test_dataset['num_samples'].append(len(test_data[user]['y'])) + # + # return train_dataset, test_dataset + + support_dataset = {'users': [], 'user_data': {}, 'num_samples': []} + query_dataset = {'users': [], 'user_data': {}, 'num_samples': []} + + for user in train_users: + print(f'now preprocessing user : {user}') + all_x = np.asarray(train_data[user]['x'] + test_data[user]['x']) + all_y = np.asarray(train_data[user]['y'] + test_data[user]['y']) + sup_x, qry_x, sup_y, qry_y = support_query_split(all_x, all_y, support_ratio) + + support_dataset['users'].append(user) + support_dataset['user_data'][user] = {'x': sup_x, 'y': sup_y} + support_dataset['num_samples'].append(len(sup_y)) + + query_dataset['users'].append(user) + query_dataset['user_data'][user] = {'x': qry_x, 'y': qry_y} + query_dataset['num_samples'].append(len(qry_y)) + + return support_dataset, query_dataset diff --git a/baselines/FedMeta/FedMeta/main.py b/baselines/FedMeta/FedMeta/main.py index 18703c5eab2a..d1ceaf4ff058 100644 --- a/baselines/FedMeta/FedMeta/main.py +++ b/baselines/FedMeta/FedMeta/main.py @@ -11,11 +11,13 @@ from strategy import weighted_average from dataset import load_datasets from Fedmeta_client_manager import Fedmeta_client_manager - +import os import flwr as fl import client +os.environ['PYTHONHASHSEED'] = str(0) + @hydra.main(config_path="conf", config_name="config", version_base=None) def main(cfg: DictConfig) -> None: @@ -32,8 +34,8 @@ def main(cfg: DictConfig) -> None: # partition dataset and get dataloaders trainloaders, valloaders, testloaders= load_datasets(config=cfg.dataset) # Check config Clients value - if cfg.num_clients > len(trainloaders['train']): - raise ImportError(f"Total Clients num is {len(trainloaders['train'])}") + if cfg.num_clients > len(trainloaders['sup']): + raise ImportError(f"Total Clients num is {len(trainloaders['sup'])}") # prepare function that will be used to spawn each client client_fn = client.gen_client_fn( @@ -48,7 +50,7 @@ def main(cfg: DictConfig) -> None: cfg.strategy, # evaluate_fn=evaluate_fn, evaluate_metrics_aggregation_fn=weighted_average, - min_evaluate_clients=len(valloaders['train']) + # min_evaluate_clients=len(valloaders['sup']) ) # 5. Start Simulation @@ -60,7 +62,7 @@ def main(cfg: DictConfig) -> None: "num_cpus": cfg.client_resources.num_cpus, "num_gpus": cfg.client_resources.num_gpus, }, - client_manager=Fedmeta_client_manager(valid_client=len(valloaders['train'])), + client_manager=Fedmeta_client_manager(valid_client=len(valloaders['sup'])), strategy=strategy, ) diff --git a/baselines/FedMeta/FedMeta/models.py b/baselines/FedMeta/FedMeta/models.py index 5ae02b9a005a..616d0d666500 100644 --- a/baselines/FedMeta/FedMeta/models.py +++ b/baselines/FedMeta/FedMeta/models.py @@ -11,6 +11,8 @@ import torch import torch.nn as nn from torch.utils.data import DataLoader +import torch.nn.functional as F + class Femnist_network(nn.Module): @@ -24,14 +26,15 @@ class Femnist_network(nn.Module): def __init__(self) -> None: super(Femnist_network, self).__init__() + self.conv1 = nn.Conv2d(in_channels=1, out_channels=32, kernel_size=5, padding=2) - self.maxpool1 = nn.MaxPool2d(kernel_size=(2, 2)) + self.pool1 = nn.MaxPool2d(kernel_size=2, stride=2) self.conv2 = nn.Conv2d(in_channels=32, out_channels=64, kernel_size=5, padding=2) - self.maxpool2 = nn.MaxPool2d(kernel_size=(2, 2)) - self.linear1 = nn.Linear(7 * 7 * 64, 1024) - self.linear2 = nn.Linear(1024, 62) + self.pool2 = nn.MaxPool2d(kernel_size=2, stride=2) + self.fc1 = nn.Linear(7 * 7 * 64, 2048) + self.fc2 = nn.Linear(2048, 62) - def forward(self, input_tensor: torch.Tensor) -> torch.Tensor: + def forward(self, x: torch.Tensor) -> torch.Tensor: """Forward pass of the CNN. Parameters @@ -44,14 +47,14 @@ def forward(self, input_tensor: torch.Tensor) -> torch.Tensor: torch.Tensor The resulting Tensor after it has passed through the network """ - output_tensor = torch.relu(self.conv1(input_tensor)) - output_tensor = self.maxpool1(output_tensor) - output_tensor = torch.relu(self.conv2(output_tensor)) - output_tensor = self.maxpool2(output_tensor) - output_tensor = torch.flatten(output_tensor, start_dim=1) - output_tensor = torch.relu((self.linear1(output_tensor))) - output_tensor = self.linear2(output_tensor) - return output_tensor + x = F.relu(self.conv1(x)) + x = self.pool1(x) + x = F.relu(self.conv2(x)) + x = self.pool2(x) + x = x.view(-1, 7 * 7 * 64) # Flatten + x = F.relu(self.fc1(x)) + x = self.fc2(x) + return x def train( # pylint: disable=too-many-arguments @@ -77,7 +80,8 @@ def train( # pylint: disable=too-many-arguments The learning rate for the SGD optimizer. """ criterion = torch.nn.CrossEntropyLoss() - optimizer = torch.optim.Adam(net.parameters(), lr=learning_rate, weight_decay=0.001) + # optimizer = torch.optim.Adam(net.parameters(), lr=learning_rate, weight_decay=0.001) + optimizer = torch.optim.Adam(net.parameters(), lr=learning_rate) net.train() for _ in range(epochs): net = _train_one_epoch( @@ -155,4 +159,4 @@ def test( raise ValueError("Testloader can't be 0, exiting...") loss /= len(testloader.dataset) accuracy = correct - return loss, accuracy + return loss, accuracy, total diff --git a/baselines/FedMeta/FedMeta/strategy.py b/baselines/FedMeta/FedMeta/strategy.py index bf5883231945..075c8110e93d 100644 --- a/baselines/FedMeta/FedMeta/strategy.py +++ b/baselines/FedMeta/FedMeta/strategy.py @@ -41,7 +41,7 @@ def weighted_average(metrics: List[Tuple[int, Metrics]]) -> Metrics: """ # Multiply accuracy of each client by number of examples used # correct = [num_examples * m["correct"] for num_examples, m in metrics] - correct = [ m["correct"] for _, m in metrics] + correct = [m["correct"] for _, m in metrics] examples = [num_examples for num_examples, _ in metrics] # Aggregate and return custom metric (weighted average) @@ -118,6 +118,7 @@ def aggregate_fit( (parameters_to_ndarrays(fit_res.parameters), fit_res.num_examples) for _, fit_res in results ] + parameters_aggregated = ndarrays_to_parameters(aggregate(weights_results)) # Aggregate custom metrics if aggregation fn was provided From d53a22f360f2cf98428587fcd5f3c2aa1340e030 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Tue, 26 Sep 2023 09:30:05 +0900 Subject: [PATCH 060/133] move to other gpu server --- .../FedMeta/FedMeta/Fedmeta_client_manager.py | 2 +- baselines/FedMeta/FedMeta/client.py | 63 +++- baselines/FedMeta/FedMeta/conf/config.yaml | 23 +- baselines/FedMeta/FedMeta/dataset.py | 70 ++++- .../FedMeta/FedMeta/dataset_preparation.py | 76 ++--- baselines/FedMeta/FedMeta/main.py | 13 +- baselines/FedMeta/FedMeta/models.py | 278 ++++++++++++++++-- baselines/FedMeta/FedMeta/strategy.py | 107 ++++++- baselines/FedMeta/FedMeta/utils.py | 58 ++++ 9 files changed, 580 insertions(+), 110 deletions(-) diff --git a/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py b/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py index e39b9a64a01a..ca27eac8ed16 100644 --- a/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py +++ b/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py @@ -48,6 +48,6 @@ def sample( ) return [] if server_round is not None: - random.seed(server_round-1) + random.seed(server_round) sampled_cids = random.sample(available_cids, num_clients) return [self.clients[cid] for cid in sampled_cids] diff --git a/baselines/FedMeta/FedMeta/client.py b/baselines/FedMeta/FedMeta/client.py index 00e32fe86125..6f36c7c0e8c0 100644 --- a/baselines/FedMeta/FedMeta/client.py +++ b/baselines/FedMeta/FedMeta/client.py @@ -13,7 +13,7 @@ import torch.nn from torch.utils.data import DataLoader -from models import train, test +from models import train, test, train_meta, test_meta class FlowerClient( fl.client.NumPyClient @@ -38,6 +38,7 @@ def __init__( def get_parameters(self, config: Dict[str, Scalar]) -> NDArrays: """Returns the parameters of the current net.""" + # return [val.cpu().numpy() for name, val in self.net.state_dict().items() if 'lr' not in name] return [val.cpu().numpy() for _, val in self.net.state_dict().items()] def set_parameters(self, parameters: NDArrays) -> None: @@ -46,29 +47,72 @@ def set_parameters(self, parameters: NDArrays) -> None: state_dict = OrderedDict({k: torch.Tensor(v) for k, v in params_dict}) self.net.load_state_dict(state_dict, strict=True) + # def fit( + # self, parameters: NDArrays, config: Dict[str, Scalar] + # ) -> Tuple[NDArrays, int, Dict]: + # """Implements distributed fit function for a given client.""" + # self.set_parameters(parameters) + # loss = train( + # self.net, self.trainloaders['sup'][self.cid], + # self.device, + # epochs=self.num_epochs, + # learning_rate=self.learning_rate + # ) + # total_len = len(self.trainloaders['qry'][self.cid].dataset) + len(self.trainloaders['sup'][self.cid].dataset) + # + # # return self.get_parameters({}), len(self.trainloaders['sup'][self.cid].dataset), {"loss" : loss} + # return self.get_parameters({}), total_len, {"loss" : loss} + # + # def evaluate( + # self, parameters: NDArrays, config: Dict[str, Scalar] + # ) -> Tuple[float, int, Dict]: + # """Implements distributed evaluation for a given client.""" + # self.set_parameters(parameters) + # loss, accuracy, total = test( + # self.net, + # self.valloaders['sup'][self.cid], + # self.valloaders['qry'][self.cid], + # self.device, + # learning_rate=self.learning_rate + # ) + # total_len = len(self.valloaders['qry'][self.cid].dataset) + len(self.valloaders['sup'][self.cid].dataset) + # + # return float(loss), total_len, {"correct": accuracy, "loss": loss} + def fit( self, parameters: NDArrays, config: Dict[str, Scalar] ) -> Tuple[NDArrays, int, Dict]: """Implements distributed fit function for a given client.""" self.set_parameters(parameters) - train( + alpha = config["alpha"] + loss, grads = train_meta( self.net, self.trainloaders['sup'][self.cid], + self.trainloaders['qry'][self.cid], + alpha, self.device, - epochs=self.num_epochs, - learning_rate=self.learning_rate, + learning_rate=self.learning_rate ) + total_len = len(self.trainloaders['qry'][self.cid].dataset) + len(self.trainloaders['sup'][self.cid].dataset) + return self.get_parameters({}), total_len, {"loss": loss, "grads": grads} - return self.get_parameters({}), len(self.trainloaders['sup'][self.cid]), {} def evaluate( self, parameters: NDArrays, config: Dict[str, Scalar] ) -> Tuple[float, int, Dict]: """Implements distributed evaluation for a given client.""" self.set_parameters(parameters) - loss, accuracy, total = test(self.net, self.valloaders['qry'][self.cid], self.device) - # return float(loss), len(self.valloaders['test'][self.cid]), {"correct": accuracy} - return float(loss), total, {"correct": accuracy} + alpha = config["alpha"] + loss, accuracy, total = test_meta( + self.net, + self.valloaders['sup'][self.cid], + self.valloaders['qry'][self.cid], + alpha, + self.device, + learning_rate = self.learning_rate + ) + total_len = len(self.valloaders['qry'][self.cid].dataset) + len(self.valloaders['sup'][self.cid].dataset) + return float(loss), total_len, {"correct": float(accuracy), "loss": loss} def gen_client_fn( @@ -108,7 +152,8 @@ def client_fn(cid: str) -> FlowerClient: print(f'cid : {cid}') # Load model - torch.manual_seed(123) + torch.manual_seed(42) + torch.cuda.manual_seed_all(42) device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") net = instantiate(model).to(device) diff --git a/baselines/FedMeta/FedMeta/conf/config.yaml b/baselines/FedMeta/FedMeta/conf/config.yaml index 6255dcae7757..a278bfc510c7 100644 --- a/baselines/FedMeta/FedMeta/conf/config.yaml +++ b/baselines/FedMeta/FedMeta/conf/config.yaml @@ -3,29 +3,36 @@ # Please follow the provided structure (this will ensuring all baseline follow # a similar configuration structure and hence be easy to customise) -num_clients: 15 # total number of clients +#num_clients: 293 # total number of clients +#num_clients: 869 # total number of clients num_epochs: 1 # number of local epochs clients_per_round: 4 -num_rounds: 10 -learning_rate: 0.03 +num_rounds: 400 +learning_rate: 0.1 client_resources: + num_cpus: 8 + num_gpus: 0.5 server_device: cpu dataset: -# algo: fedavg #fedavg, fedavg(meta), fedmeta(maml), fedmeta(meta-sgd) - algo: fedmeta(maml) #fedavg, fedavg(meta), fedmeta(maml), fedmeta(meta-sgd) - path: # Leaf Dataset path (Femnist or Shakespeare) + algo: fedavg #fedavg, fedavg(meta), fedmeta(maml), fedmeta(meta-sgd) +# algo: fedmeta(maml) #fedavg, fedavg(meta), fedmeta(maml), fedmeta(meta-sgd) +# path: /home/ccl/fedmeta/fedmeta_origin/leaf_data # Leaf Dataset path (Femnist or Shakespeare) +# path: /home/ccl/fedmeta/leaf/data/femnist/data + path: /home/ccl/fedmeta/leaf/data/shakespeare/data + # Leaf Dataset path (Femnist or Shakespeare) support_ratio : 0.2 batch_size : 10 # dataset config model: - _target_: baselines.fedmeta.fedmeta.models.Femnist_network # model config +# _target_: models.Femnist_network # model config + _target_: models.StackedLSTM # model config strategy: - _target_: baselines.fedmeta.fedmeta.strategy.FedMeta + _target_: strategy.FedMeta # points to your strategy (either custom or exiting in Flower) fraction_fit: 0.00001 fraction_evaluate: 0.00001 diff --git a/baselines/FedMeta/FedMeta/dataset.py b/baselines/FedMeta/FedMeta/dataset.py index 8d89af88b4fd..20c504016a44 100644 --- a/baselines/FedMeta/FedMeta/dataset.py +++ b/baselines/FedMeta/FedMeta/dataset.py @@ -9,15 +9,32 @@ defined here of course. """ -import numpy as np from torch.utils.data import DataLoader, Dataset from omegaconf import DictConfig from typing import Optional, Tuple from dataset_preparation import _partition_data, split_train_validation_test_clients import numpy as np -from torch.utils.data import DataLoader import torchvision.transforms as transforms +from utils import word_to_indices, letter_to_vec +import torch + +class ShakespeareDataset(Dataset): + def __init__(self, data): + # self.x = x + # self.y = y + sentence, label = data['x'], data['y'] + sentences_to_indices = [word_to_indices(word) for word in sentence] + sentences_to_indices = np.array(sentences_to_indices) + self.sentences_to_indices = np.array(sentences_to_indices, dtype=np.int64) + self.labels = np.array([letter_to_vec(letter) for letter in label], dtype=np.int64) + + def __len__(self): + return len(self.labels) + + def __getitem__(self, index): + data, target = self.sentences_to_indices[index], self.labels[index] + return torch.tensor(data), torch.tensor(target) class FemnistDataset(Dataset): @@ -40,7 +57,6 @@ def __len__(self): def load_datasets( # pylint: disable=too-many-arguments config: DictConfig, ) -> Tuple[DataLoader, DataLoader, DataLoader]: - print(f"Dataset partitioning config: {config}") dataset = _partition_data( dir_path=config.path, @@ -51,20 +67,48 @@ def load_datasets( # pylint: disable=too-many-arguments dataset[0]['users'] ) + trainloaders = {'sup': [], 'qry': []} valloaders = {'sup': [], 'qry': []} testloaders = {'sup': [], 'qry': []} - transform = transforms.Compose([transforms.ToTensor()]) - for user in clients_list[0]: - trainloaders['sup'].append(DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=10, shuffle=True)) - trainloaders['qry'].append(DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=10)) - for user in clients_list[2]: - valloaders['sup'].append(DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=10, shuffle=True)) - valloaders['qry'].append(DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=10)) - for user in clients_list[1]: - testloaders['sup'].append(DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=10, shuffle=True)) - testloaders['qry'].append(DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=10)) + data_type = 'shakespeare' + if data_type == 'shakespeare': + for user in clients_list[0]: + if len(dataset[0]['user_data'][user]['x']) > 10000: + print(f"over 1000 : {user}") + continue + trainloaders['sup'].append( + DataLoader(ShakespeareDataset(dataset[0]['user_data'][user]), batch_size=10, shuffle=True)) + trainloaders['qry'].append( + DataLoader(ShakespeareDataset(dataset[1]['user_data'][user]), batch_size=10)) + for user in clients_list[1]: + if len(dataset[0]['user_data'][user]['x']) > 10000: + print(f"over 1000 : {user}") + continue + valloaders['sup'].append(DataLoader(ShakespeareDataset(dataset[0]['user_data'][user]), batch_size=10, shuffle=True)) + valloaders['qry'].append(DataLoader(ShakespeareDataset(dataset[1]['user_data'][user]), batch_size=10)) + for user in clients_list[2]: + if len(dataset[0]['user_data'][user]['x']) > 10000: + print(f"over 1000 : {user}") + continue + testloaders['sup'].append( + DataLoader(ShakespeareDataset(dataset[0]['user_data'][user]), batch_size=10, shuffle=True)) + testloaders['qry'].append( + DataLoader(ShakespeareDataset(dataset[1]['user_data'][user]), batch_size=10)) + + else: + transform = transforms.Compose([transforms.ToTensor()]) + + for user in clients_list[0]: + trainloaders['sup'].append(DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=10, shuffle=True)) + trainloaders['qry'].append(DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=10)) + for user in clients_list[1]: + valloaders['sup'].append(DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=10)) + valloaders['qry'].append(DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=10)) + for user in clients_list[2]: + testloaders['sup'].append(DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=10)) + testloaders['qry'].append(DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=10)) return trainloaders, valloaders, testloaders diff --git a/baselines/FedMeta/FedMeta/dataset_preparation.py b/baselines/FedMeta/FedMeta/dataset_preparation.py index 88ce4499d9d5..579b438efcab 100644 --- a/baselines/FedMeta/FedMeta/dataset_preparation.py +++ b/baselines/FedMeta/FedMeta/dataset_preparation.py @@ -11,8 +11,7 @@ from typing import List, Optional, Tuple, Dict, DefaultDict from collections import defaultdict import numpy as np -import torch -import random +from sklearn.model_selection import train_test_split # def _read_dataset() -> Dict[List, Dict, List]: @@ -28,6 +27,7 @@ def _read_dataset( """ users = [] data = defaultdict(lambda: None) + num_example = [] files = [f for f in os.listdir(path) if f.endswith('.json')] @@ -36,23 +36,19 @@ def _read_dataset( dataset = json.load(f) users.extend(dataset['users']) data.update(dataset['user_data']) + num_example.extend(dataset['num_samples']) users = list(sorted(data.keys())) - return users, data + return users, data, num_example def support_query_split( data: DefaultDict, label: List, - support_ratio: int, + support_ratio: float, ): - np.random.seed(42) - random_index = np.random.permutation(len(label)) - slice_index = int(len(label) * support_ratio) - train_index = random_index[:slice_index] - test_index = random_index[slice_index:] - return data[train_index].tolist(), data[test_index].tolist(), label[train_index].tolist(), label[ - test_index].tolist() + x_train, x_test, y_train, y_test = train_test_split(data, label, train_size=support_ratio, stratify=label, random_state=42) + return x_train, x_test, y_train, y_test def split_train_validation_test_clients( @@ -79,35 +75,49 @@ def _partition_data( support_ratio: Optional[float] = None, ) -> Tuple[Dict, Dict]: - train_path = f'{dir_path}/train' - test_path = f'{dir_path}/test' - - train_users, train_data = _read_dataset(train_path) - test_users, test_data = _read_dataset(test_path) - - # if support_ratio is None: - # train_dataset = {'users': [], 'user_data': {}, 'num_samples': []} - # test_dataset = {'users': [], 'user_data': {}, 'num_samples': []} - # - # for user in train_users: - # train_dataset['users'].append(user) - # train_dataset['user_data'][user] = {'x': train_data[user]['x'], 'y': train_data[user]['y']} - # train_dataset['num_samples'].append(len(train_data[user]['y'])) - # - # test_dataset['users'].append(user) - # test_dataset['user_data'][user] = {'x': test_data[user]['x'], 'y': test_data[user]['y']} - # test_dataset['num_samples'].append(len(test_data[user]['y'])) - # - # return train_dataset, test_dataset + data_type = 'shakespeare' + print("_partiton_data") + # train_path = f'{dir_path}/train' + train_path = f'{dir_path}/train_0.16' + # test_path = f'{dir_path}/test' + test_path = f'{dir_path}/test_0.16' + + train_users, train_data, train_num = _read_dataset(train_path) + test_users, test_data, test_num = _read_dataset(test_path) + all_dataset = {'users': [], 'user_data': {}, 'num_samples': []} support_dataset = {'users': [], 'user_data': {}, 'num_samples': []} query_dataset = {'users': [], 'user_data': {}, 'num_samples': []} for user in train_users: - print(f'now preprocessing user : {user}') all_x = np.asarray(train_data[user]['x'] + test_data[user]['x']) all_y = np.asarray(train_data[user]['y'] + test_data[user]['y']) - sup_x, qry_x, sup_y, qry_y = support_query_split(all_x, all_y, support_ratio) + + if data_type == 'femnist': + unique, counts = np.unique(all_y, return_counts=True) + class_counts = dict(zip(unique, counts)) + + # Find classes with only one sample + classes_to_remove = [cls for cls, count in class_counts.items() if count == 1] + + # Filter out the samples of those classes + mask = np.isin(all_y, classes_to_remove, invert=True) + + all_x = all_x[mask] + all_y = all_y[mask] + + try: + sup_x, qry_x, sup_y, qry_y = support_query_split(all_x, all_y, support_ratio) + except Exception as e: + print(f"Error occurred at iteration {user}: {e}") + continue + + else: + sup_x, qry_x, sup_y, qry_y = train_test_split(all_x, all_y, train_size=support_ratio, random_state=42) + + all_dataset['users'].append(user) + all_dataset['user_data'][user] = {'x': all_x.tolist(), 'y': all_y.tolist()} + all_dataset['num_samples'].append(len(all_y.tolist())) support_dataset['users'].append(user) support_dataset['user_data'][user] = {'x': sup_x, 'y': sup_y} diff --git a/baselines/FedMeta/FedMeta/main.py b/baselines/FedMeta/FedMeta/main.py index d1ceaf4ff058..d77996f5bb07 100644 --- a/baselines/FedMeta/FedMeta/main.py +++ b/baselines/FedMeta/FedMeta/main.py @@ -11,13 +11,10 @@ from strategy import weighted_average from dataset import load_datasets from Fedmeta_client_manager import Fedmeta_client_manager -import os import flwr as fl import client -os.environ['PYTHONHASHSEED'] = str(0) - @hydra.main(config_path="conf", config_name="config", version_base=None) def main(cfg: DictConfig) -> None: @@ -33,9 +30,6 @@ def main(cfg: DictConfig) -> None: # partition dataset and get dataloaders trainloaders, valloaders, testloaders= load_datasets(config=cfg.dataset) - # Check config Clients value - if cfg.num_clients > len(trainloaders['sup']): - raise ImportError(f"Total Clients num is {len(trainloaders['sup'])}") # prepare function that will be used to spawn each client client_fn = client.gen_client_fn( @@ -46,23 +40,22 @@ def main(cfg: DictConfig) -> None: model=cfg.model, ) + strategy = instantiate( cfg.strategy, - # evaluate_fn=evaluate_fn, evaluate_metrics_aggregation_fn=weighted_average, - # min_evaluate_clients=len(valloaders['sup']) ) # 5. Start Simulation history = fl.simulation.start_simulation( client_fn=client_fn, - num_clients=cfg.num_clients, + num_clients=len(trainloaders['sup']), config=fl.server.ServerConfig(num_rounds=cfg.num_rounds), client_resources={ "num_cpus": cfg.client_resources.num_cpus, "num_gpus": cfg.client_resources.num_gpus, }, - client_manager=Fedmeta_client_manager(valid_client=len(valloaders['sup'])), + client_manager=Fedmeta_client_manager(valid_client=len(valloaders['qry'])), strategy=strategy, ) diff --git a/baselines/FedMeta/FedMeta/models.py b/baselines/FedMeta/FedMeta/models.py index 616d0d666500..f1b7a398a6a6 100644 --- a/baselines/FedMeta/FedMeta/models.py +++ b/baselines/FedMeta/FedMeta/models.py @@ -11,9 +11,24 @@ import torch import torch.nn as nn from torch.utils.data import DataLoader -import torch.nn.functional as F +from copy import deepcopy +class StackedLSTM(nn.Module): + def __init__(self): + super(StackedLSTM, self).__init__() + + self.embedding = nn.Embedding(80, 8) + self.lstm = nn.LSTM(8, 256, num_layers=2, dropout=0.5, batch_first=True) + self.fc = nn.Linear(256, 80) + + def forward(self, text): + embedded = self.embedding(text) + self.lstm.flatten_parameters() + lstm_out, _ = self.lstm(embedded) + final_output = self.fc(lstm_out[:, -1, :]) + return final_output + class Femnist_network(nn.Module): """Convolutional Neural Network architecture. @@ -26,13 +41,14 @@ class Femnist_network(nn.Module): def __init__(self) -> None: super(Femnist_network, self).__init__() - self.conv1 = nn.Conv2d(in_channels=1, out_channels=32, kernel_size=5, padding=2) - self.pool1 = nn.MaxPool2d(kernel_size=2, stride=2) + self.maxpool1 = nn.MaxPool2d(kernel_size=(2, 2)) self.conv2 = nn.Conv2d(in_channels=32, out_channels=64, kernel_size=5, padding=2) - self.pool2 = nn.MaxPool2d(kernel_size=2, stride=2) - self.fc1 = nn.Linear(7 * 7 * 64, 2048) - self.fc2 = nn.Linear(2048, 62) + self.maxpool2 = nn.MaxPool2d(kernel_size=(2, 2)) + self.linear1 = nn.Linear(7 * 7 * 64, 2048) + self.linear2 = nn.Linear(2048, 62) + + def forward(self, x: torch.Tensor) -> torch.Tensor: """Forward pass of the CNN. @@ -47,13 +63,13 @@ def forward(self, x: torch.Tensor) -> torch.Tensor: torch.Tensor The resulting Tensor after it has passed through the network """ - x = F.relu(self.conv1(x)) - x = self.pool1(x) - x = F.relu(self.conv2(x)) - x = self.pool2(x) - x = x.view(-1, 7 * 7 * 64) # Flatten - x = F.relu(self.fc1(x)) - x = self.fc2(x) + x = torch.relu(self.conv1(x)) + x = self.maxpool1(x) + x = torch.relu(self.conv2(x)) + x = self.maxpool2(x) + x = torch.flatten(x, start_dim=1) + x = torch.relu((self.linear1(x))) + x = self.linear2(x) return x @@ -63,7 +79,7 @@ def train( # pylint: disable=too-many-arguments device: torch.device, epochs: int, learning_rate: float, -) -> None: +) -> Tuple[float]: """Train the network on the training set. Parameters @@ -80,13 +96,14 @@ def train( # pylint: disable=too-many-arguments The learning rate for the SGD optimizer. """ criterion = torch.nn.CrossEntropyLoss() - # optimizer = torch.optim.Adam(net.parameters(), lr=learning_rate, weight_decay=0.001) - optimizer = torch.optim.Adam(net.parameters(), lr=learning_rate) + optimizer = torch.optim.Adam(net.parameters(), lr=learning_rate, weight_decay=0.001) + # optimizer = torch.optim.SGD(net.parameters(), lr=learning_rate) net.train() for _ in range(epochs): - net = _train_one_epoch( + net, loss = _train_one_epoch( net, trainloader, device, criterion, optimizer ) + return loss def _train_one_epoch( # pylint: disable=too-many-arguments @@ -116,17 +133,26 @@ def _train_one_epoch( # pylint: disable=too-many-arguments nn.Module The model that has been trained for one epoch. """ + total_loss = 0.0 + for images, labels in trainloader: images, labels = images.to(device), labels.to(device) optimizer.zero_grad() - loss = criterion(net(images.to(torch.float32)), labels) + # loss = criterion(net(images.to(torch.float32)), labels) + loss = criterion(net(images), labels) + total_loss += loss.item() * labels.size(0) loss.backward() optimizer.step() - return net + total_loss = total_loss / len(trainloader.dataset) + return net, total_loss def test( - net: nn.Module, testloader: DataLoader, device: torch.device + net: nn.Module, + trainloader: DataLoader, + testloader: DataLoader, + device: torch.device, + learning_rate: float ) -> Tuple[float, float]: """Evaluate the network on the entire test set. @@ -144,19 +170,225 @@ def test( Tuple[float, float] The loss and the accuracy of the input model on the given data. """ + total_loss = 0.0 criterion = torch.nn.CrossEntropyLoss() + optimizer = torch.optim.Adam(net.parameters(), lr=learning_rate, weight_decay=0.001) + net.train() + for images, labels in trainloader: + images, labels = images.to(device), labels.to(device) + # loss = criterion(net(images.to(torch.float32)), labels) + loss = criterion(net(images), labels) + total_loss += loss * labels.size(0) + optimizer.zero_grad() + loss.backward() + optimizer.step() + # total_loss = total_loss / len(trainloader.dataset) + # optimizer.zero_grad() + # total_loss.backward() + # optimizer.step() + correct, total, loss = 0, 0, 0.0 net.eval() with torch.no_grad(): for images, labels in testloader: images, labels = images.to(device), labels.to(device) - outputs = net(images.to(torch.float32)) - loss += criterion(outputs, labels).item() + # outputs = net(images.to(torch.float32)) + outputs = net(images) + loss += criterion(outputs, labels).item() * labels.size(0) _, predicted = torch.max(outputs.data, 1) total += labels.size(0) correct += (predicted == labels).sum().item() if len(testloader.dataset) == 0: raise ValueError("Testloader can't be 0, exiting...") loss /= len(testloader.dataset) - accuracy = correct + accuracy = correct / total return loss, accuracy, total +# +# +def train_meta( # pylint: disable=too-many-arguments + net: nn.Module, + supportloader: DataLoader, + queryloader: DataLoader, + alpha, + device: torch.device, + learning_rate: float, +) -> Tuple[float]: + """Train the network on the training set. + + Parameters + ---------- + net : nn.Module + The neural network to train. + trainloader : DataLoader + The DataLoader containing the data to train the network on. + device : torch.device + The device on which the model should be trained, either 'cpu' or 'cuda'. + epochs : int + The number of epochs the model should be trained for. + learning_rate : float + The learning rate for the SGD optimizer. + """ + criterion = torch.nn.CrossEntropyLoss() + for _ in range(1): + loss, grads = _train_meta_one_epoch( + net, supportloader, queryloader, alpha, criterion, learning_rate, device + ) + return loss, grads + + +def _train_meta_one_epoch( # pylint: disable=too-many-arguments + net: nn.Module, + supportloader: DataLoader, + queryloader: DataLoader, + alpha, + criterion: torch.nn.CrossEntropyLoss, + learning_rate: float, + device: torch.device, +) -> nn.Module: + """Train for one epoch. + + Parameters + ---------- + net : nn.Module + The neural network to train. + trainloader : DataLoader + The DataLoader containing the data to train the network on. + device : torch.device + The device on which the model should be trained, either 'cpu' or 'cuda'. + criterion : torch.nn.CrossEntropyLoss + The loss function to use for training + optimizer : torch.optim.Adam + The optimizer to use for training + + Returns + ------- + nn.Module + The model that has been trained for one epoch. + """ + num_adaptation_steps = 1 + all_adaptation_losses = [] + train_net = deepcopy(net) + # alpha = [alpha.to(device) for alpha in alpha] + for step in range(num_adaptation_steps): + loss_sum = 0.0 + sup_num_sample = [] + sup_total_loss = [] + for images, labels in supportloader: + images, labels = images.to(device), labels.to(device) + # loss = criterion(train_net(images.to(torch.float32)), labels) + loss = criterion(train_net(images), labels) + loss_sum += loss * labels.size(0) + sup_num_sample.append(labels.size(0)) + sup_total_loss.append(loss * labels.size(0)) + grads = torch.autograd.grad(loss, list(train_net.parameters()), create_graph=True, retain_graph=True) + + for p, g in zip(train_net.parameters(), grads): + p.data.add_(g.data, alpha=-learning_rate) + + for p in train_net.parameters(): + if p.grad is not None: + p.grad.zero_() + + # for p, g, a in zip(train_net.parameters(), grads, alpha): + # p.data = p.data - a * g + # + # for p in train_net.parameters(): + # if p.grad is not None: + # p.grad.zero_() + + qry_total_loss = [] + qry_num_sample = [] + loss_sum = 0.0 + for images, labels in queryloader: + images, labels = images.to(device), labels.to(device) + # loss = criterion(train_net(images.to(torch.float32)), labels) + loss = criterion(train_net(images), labels) + loss_sum += loss * labels.size(0) + qry_num_sample.append(labels.size(0)) + qry_total_loss.append(loss.item()) + loss_sum = loss_sum / sum(qry_num_sample) + grads = torch.autograd.grad(loss_sum, list(train_net.parameters())) + + for p in train_net.parameters(): + if p.grad is not None: + p.grad.zero_() + + grads = [g.cpu().numpy() for g in grads] + average_adaptation_loss = sum(sup_total_loss) / sum(sup_num_sample) + return average_adaptation_loss, grads + + +def test_meta( + net: nn.Module, + supportloader: DataLoader, + queryloader: DataLoader, + alpha, + device: torch.device, + learning_rate: float, +) -> Tuple[float, float]: + """Evaluate the network on the entire test set. + + Parameters + ---------- + net : nn.Module + The neural network to test. + testloader : DataLoader + The DataLoader containing the data to test the network on. + device : torch.device + The device on which the model should be tested, either 'cpu' or 'cuda'. + + Returns + ------- + Tuple[float, float] + The loss and the accuracy of the input model on the given data. + """ + criterion = torch.nn.CrossEntropyLoss() + test_net = deepcopy(net) + num_adaptation_steps = 1 + alpha = [alpha_tensor.to(device) for alpha_tensor in alpha] + test_net.train() + for step in range(num_adaptation_steps): + loss_sum = 0.0 + sup_num_sample = [] + sup_total_loss = [] + for images, labels in supportloader: + images, labels = images.to(device), labels.to(device) + # loss = criterion(test_net(images.to(torch.float32)), labels) + loss = criterion(test_net(images), labels) + loss_sum += loss * labels.size(0) + sup_num_sample.append(labels.size(0)) + sup_total_loss.append(loss) + grads = torch.autograd.grad(loss, list(test_net.parameters()), create_graph=True, retain_graph=True) + + for p, g in zip(test_net.parameters(), grads): + p.data.add_(g.data, alpha=-learning_rate) + + for p in test_net.parameters(): + if p.grad is not None: + p.grad.zero_() + + # for p, g, a in zip(test_net.parameters(), grads, alpha): + # p.data -= a * g + # + # for p in test_net.parameters(): + # if p.grad is not None: + # p.grad.zero_() + + test_net.eval() + correct, total, loss = 0, 0, 0.0 + for images, labels in queryloader: + images, labels = images.to(device), labels.to(device) + # outputs = test_net(images.to(torch.float32)) + outputs = test_net(images) + loss += criterion(outputs, labels).item() * labels.size(0) + _, predicted = torch.max(outputs.data, 1) + total += labels.size(0) + correct += (predicted == labels).sum().item() + if len(queryloader.dataset) == 0: + raise ValueError("Testloader can't be 0, exiting...") + loss = loss / total + accuracy = correct / total + return loss, accuracy, total + + + diff --git a/baselines/FedMeta/FedMeta/strategy.py b/baselines/FedMeta/FedMeta/strategy.py index 075c8110e93d..62c6a7503d6a 100644 --- a/baselines/FedMeta/FedMeta/strategy.py +++ b/baselines/FedMeta/FedMeta/strategy.py @@ -5,12 +5,18 @@ """ from typing import Dict, List, Optional, Tuple, Union from logging import WARNING, INFO +from collections import OrderedDict from flwr.server.client_proxy import ClientProxy from flwr.server.strategy import FedAvg from flwr.server.strategy.aggregate import aggregate, weighted_loss_avg from flwr.server.client_manager import ClientManager from Fedmeta_client_manager import evaluate_client_Criterion +import numpy as np +import torch +from functools import reduce +from models import Femnist_network, StackedLSTM + from flwr.common.logger import log from flwr.common import ( @@ -23,6 +29,16 @@ Metrics, FitIns, EvaluateIns, + NDArrays, +) + +import wandb + +# start a new wandb run to track this script +wandb.init( + # set the wandb project where this run will be logged + project="SoR", + ) @@ -40,20 +56,52 @@ def weighted_average(metrics: List[Tuple[int, Metrics]]) -> Metrics: The weighted average metric. """ # Multiply accuracy of each client by number of examples used - # correct = [num_examples * m["correct"] for num_examples, m in metrics] - correct = [m["correct"] for _, m in metrics] + correct = [num_examples * m["correct"] for num_examples, m in metrics] + # correct = [m["correct"] for _, m in metrics] examples = [num_examples for num_examples, _ in metrics] # Aggregate and return custom metric (weighted average) return {"accuracy": sum(correct) / sum(examples)} +def aggregate_grad(results: List[Tuple[NDArrays, int]]) -> NDArrays: + """Compute gradients average.""" + # Calculate the total number of examples used during training + num_examples_total = sum([num_examples for _, num_examples in results]) + + # Create a list of weights, each multiplied by the related number of examples + weighted_gradients = [ + [layer * num_examples for layer in gradients] for gradients, num_examples in results + ] + + # weighted_gradients = [gradients for gradients, _ in results] + + # Compute average weights of each layer + grdients_prime: NDArrays = [ + reduce(np.add, layer_updates) / num_examples_total + for layer_updates in zip(*weighted_gradients) + ] + + # grdients_prime: NDArrays = [ + # reduce(np.add, layer_updates) / len(weighted_gradients) + # for layer_updates in zip(*weighted_gradients) + # ] + + return grdients_prime + + class FedMeta(FedAvg): + def __init__(self, **kwargs): + super().__init__(**kwargs) + # self.alpha = [torch.full_like(p, 0.001) for p in Femnist_network().parameters()] + self.alpha = torch.nn.ParameterList([torch.nn.Parameter(torch.full_like(p, 0.001)) for p in Femnist_network().parameters()]) + def configure_fit( - self, server_round: int, parameters: Parameters, client_manager: ClientManager + self, server_round: int, parameters: Parameters, client_manager: ClientManager ) -> List[Tuple[ClientProxy, FitIns]]: """Configure the next round of training.""" - config = {} + # alpha_list = [param.data for param in self.alpha] + config = {"alpha" : self.alpha} if self.on_fit_config_fn is not None: # Custom fit config function provided config = self.on_fit_config_fn(server_round) @@ -73,7 +121,7 @@ def configure_fit( return [(client, fit_ins) for client in clients] def configure_evaluate( - self, server_round: int, parameters: Parameters, client_manager: ClientManager + self, server_round: int, parameters: Parameters, client_manager: ClientManager ) -> List[Tuple[ClientProxy, EvaluateIns]]: """Configure the next round of evaluation.""" # Do not configure federated evaluation if fraction eval is 0. @@ -81,7 +129,7 @@ def configure_evaluate( return [] # Parameters and config - config = {} + config = {"alpha" : self.alpha} if self.on_evaluate_config_fn is not None: # Custom evaluation config function provided config = self.on_evaluate_config_fn(server_round) @@ -93,6 +141,7 @@ def configure_evaluate( ) clients = client_manager.sample( num_clients=sample_size, + server_round=server_round, min_num_clients=min_num_clients, criterion=evaluate_client_Criterion(self.min_evaluate_clients), ) @@ -119,7 +168,32 @@ def aggregate_fit( for _, fit_res in results ] - parameters_aggregated = ndarrays_to_parameters(aggregate(weights_results)) + # parameters_aggregated = ndarrays_to_parameters(aggregate(weights_results)) + + grads_results = [ + (fit_res.metrics['grads'], fit_res.num_examples) + for _, fit_res in results + ] + gradients_aggregated = aggregate_grad(grads_results) + + # net = Femnist_network() + net = StackedLSTM() + params_dict = zip(net.state_dict().keys(), weights_results[0][0]) + state_dict = OrderedDict({k: torch.tensor(v) for k, v in params_dict}) + net.load_state_dict(state_dict, strict=True) + # optimizer = torch.optim.Adam(list(net.parameters())+list(self.alpha), lr=0.0001, weight_decay=0.001) + optimizer = torch.optim.Adam(list(net.parameters()), lr=0.01) + for params, grad_ins, alphas in zip(net.parameters(), gradients_aggregated, self.alpha): + params.grad = torch.tensor(grad_ins).to(params.dtype) + alphas.grad = torch.tensor(grad_ins).to(params.dtype) + optimizer.step() + optimizer.zero_grad() + weights_prime = [val.cpu().numpy() for _, val in net.state_dict().items()] + + # weight_loss = sum([fit_res.metrics['loss'] * fit_res.num_examples for _, fit_res in results]) / sum( + # [fit_res.num_examples for _, fit_res in results]) + # wandb.log({"Training Loss": weight_loss}, step=server_round) + # log(INFO, f'Training Loss : {weight_loss}') # Aggregate custom metrics if aggregation fn was provided metrics_aggregated = {} @@ -129,13 +203,14 @@ def aggregate_fit( elif server_round == 1: # Only log this warning once log(WARNING, "No fit_metrics_aggregation_fn provided") - return parameters_aggregated, metrics_aggregated + return ndarrays_to_parameters(weights_prime), metrics_aggregated + # return parameters_aggregated, metrics_aggregated def aggregate_evaluate( - self, - server_round: int, - results: List[Tuple[ClientProxy, EvaluateRes]], - failures: List[Union[Tuple[ClientProxy, EvaluateRes], BaseException]], + self, + server_round: int, + results: List[Tuple[ClientProxy, EvaluateRes]], + failures: List[Union[Tuple[ClientProxy, EvaluateRes], BaseException]], ) -> Tuple[Optional[float], Dict[str, Scalar]]: """Aggregate evaluation losses using weighted average.""" if not results: @@ -152,12 +227,18 @@ def aggregate_evaluate( ] ) + weight_loss = sum([evaluate_res.metrics['loss'] * evaluate_res.num_examples for _, evaluate_res in results]) / sum( + [evaluate_res.num_examples for _, evaluate_res in results]) + wandb.log({"Training Loss": weight_loss}, step=server_round) + log(INFO, f'Training Loss : {weight_loss}') + # Aggregate custom metrics if aggregation fn was provided metrics_aggregated = {} if self.evaluate_metrics_aggregation_fn: eval_metrics = [(res.num_examples, res.metrics) for _, res in results] metrics_aggregated = self.evaluate_metrics_aggregation_fn(eval_metrics) - log(INFO, f'Test Accuracy : {metrics_aggregated["accuracy"]:.3%}') + wandb.log({"Test_Accuracy ": round(metrics_aggregated['accuracy'] * 100, 3)}, step=server_round) + log(INFO, f'Test Accuracy : {round(metrics_aggregated["accuracy"] * 100, 3)}') elif server_round == 1: # Only log this warning once log(WARNING, "No evaluate_metrics_aggregation_fn provided") diff --git a/baselines/FedMeta/FedMeta/utils.py b/baselines/FedMeta/FedMeta/utils.py index 9a831719d623..dcd302a14a33 100644 --- a/baselines/FedMeta/FedMeta/utils.py +++ b/baselines/FedMeta/FedMeta/utils.py @@ -4,3 +4,61 @@ example, you may define here things like: loading a model from a checkpoint, saving results, plotting. """ + +import numpy as np +import pickle + +ALL_LETTERS = "\n !\"&'(),-.0123456789:;>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]abcdefghijklmnopqrstuvwxyz}" +NUM_LETTERS = len(ALL_LETTERS) + + +def _one_hot(index, size): + '''returns one-hot vector with given size and value 1 at given index + ''' + vec = [0 for _ in range(size)] + vec[int(index)] = 1 + return vec + + +def letter_to_vec(letter): + '''returns one-hot representation of given letter + ''' + index = ALL_LETTERS.find(letter) + return index + + +def word_to_indices(word): + '''returns a list of character indices + Args: + word: string + + Return: + indices: int list with length len(word) + ''' + indices = [] + for c in word: + indices.append(ALL_LETTERS.find(c)) + return indices + +# def compute_ema(data, smoothingWeight): +# smoothedData = [] +# last = 0 if len(data) > 0 else float('nan') +# numAccum = 0 +# debiasWeight = 0 +# +# for d in data: +# nextVal = d +# last = last * smoothingWeight + (1 - smoothingWeight) * nextVal +# numAccum += 1 +# debiasWeight = 1.0 - pow(smoothingWeight, numAccum) +# smoothedData.append(last / debiasWeight) +# +# return smoothedData +# +# +# data = [1, 2, 3, 4, 5] +# smoothingWeight = 0.8 +# result = compute_ema(data, smoothingWeight) +# print(result) + + From b18acc55bf3713e1119dde1fbfaf972341d94545 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 27 Sep 2023 18:18:18 +0900 Subject: [PATCH 061/133] update README.md --- baselines/FedMeta/README.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index 0ddf72e01b90..3281aa2e028d 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -16,20 +16,23 @@ dataset: [Femnist, Shakespeare] # list of datasets you include in your baseline ## About this baseline -****What’s implemented:**** : I implement ~~ +****What’s implemented:**** : **We reimplemented the experiments from the paper 'FedMeta: Federated Meta-Learning with Fast Convergence and Efficient Communication' by Fei Chen (2018). which proposed the FedMeta(MAML & Meta-SGD) algorithm. Specifically, we replicate the results from Table 2 and Figure 2 of the paper.** -****Datasets:**** : Dataset~ +****Datasets:**** : **Femnist and Shakespeare from Leaf Federated Learning Dataset** -****Hardware Setup:**** : Hardware Setup ~ +****Hardware Setup:**** : **These experiments were run on a machine with 16 CPU threads and 1 GPU(GeForce RTX 2080 Ti). However, the FedMeta experiment using the Shakespeare dataset required more computing power (more than 4 GPUs).** -****Contributors:**** : Jinsoo Kim and Kangyoon Lee +****Contributors:**** : **Jinsoo Kim and Kangyoon Lee** ## Experimental Setup -****Task:**** :warning: *_what’s the primary task that is being federated? (e.g. image classification, next-word prediction). If you have experiments for several, please list them_* +****Task:**** : **A comparison task of four algorithms(FedAvg, FedAvg(Meta), FedMeta(MAML), FedMeta(Meta-SGD)) in the categories of Image Classification and next-word prediction.** -****Model:**** :warning: *_provide details about the model you used in your experiments (if more than use a list). If your model is small, describing it as a table would be :100:. Some FL methods do not use an off-the-shelve model (e.g. ResNet18) instead they create your own. If this is your case, please provide a summary here and give pointers to where in the paper (e.g. Appendix B.4) is detailed._* +****Model:**** :This directory implements two models: +* A two-layer CNN network as used in the FedMeta paper (see `models/Femnist_`). This is the model used by default. +* A StackedLSTM model used in the FedMeta paper for Shakespeare (see `models/StackedLSTM`). +**You can see more detail model at Apendix.A in paper** ****Dataset:**** :warning: *_Earlier you listed already the datasets that your baseline uses. Now you should include a breakdown of the details about each of them. Please include information about: how the dataset is partitioned (e.g. LDA with alpha 0.1 as default and all clients have the same number of training examples; or each client gets assigned a different number of samples following a power-law distribution with each client only instances of 2 classes)? if your dataset is naturally partitioned just state “naturally partitioned”; how many partitions there are (i.e. how many clients)? Please include this an all information relevant about the dataset and its partitioning into a table._* From e8e0e743d4a9c3ab9bad1d6520be609481aa58a4 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 27 Sep 2023 18:21:18 +0900 Subject: [PATCH 062/133] Test README --- baselines/FedMeta/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index 3281aa2e028d..aa3918433bc5 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -16,18 +16,18 @@ dataset: [Femnist, Shakespeare] # list of datasets you include in your baseline ## About this baseline -****What’s implemented:**** : **We reimplemented the experiments from the paper 'FedMeta: Federated Meta-Learning with Fast Convergence and Efficient Communication' by Fei Chen (2018). which proposed the FedMeta(MAML & Meta-SGD) algorithm. Specifically, we replicate the results from Table 2 and Figure 2 of the paper.** +****What’s implemented:**** : We reimplemented the experiments from the paper 'FedMeta: Federated Meta-Learning with Fast Convergence and Efficient Communication' by Fei Chen (2018). which proposed the FedMeta(MAML & Meta-SGD) algorithm. Specifically, we replicate the results from Table 2 and Figure 2 of the paper. -****Datasets:**** : **Femnist and Shakespeare from Leaf Federated Learning Dataset** +****Datasets:**** : Femnist and Shakespeare from Leaf Federated Learning Dataset -****Hardware Setup:**** : **These experiments were run on a machine with 16 CPU threads and 1 GPU(GeForce RTX 2080 Ti). However, the FedMeta experiment using the Shakespeare dataset required more computing power (more than 4 GPUs).** +****Hardware Setup:**** : These experiments were run on a machine with 16 CPU threads and 1 GPU(GeForce RTX 2080 Ti). However, the FedMeta experiment using the Shakespeare dataset required more computing power (more than 4 GPUs). -****Contributors:**** : **Jinsoo Kim and Kangyoon Lee** +****Contributors:**** : Jinsoo Kim and Kangyoon Lee ## Experimental Setup -****Task:**** : **A comparison task of four algorithms(FedAvg, FedAvg(Meta), FedMeta(MAML), FedMeta(Meta-SGD)) in the categories of Image Classification and next-word prediction.** +****Task:**** : A comparison task of four algorithms(FedAvg, FedAvg(Meta), FedMeta(MAML), FedMeta(Meta-SGD)) in the categories of Image Classification and next-word prediction. ****Model:**** :This directory implements two models: * A two-layer CNN network as used in the FedMeta paper (see `models/Femnist_`). This is the model used by default. From 9236c3da08fbe769573b3c75d150d20c9f32ed7b Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 27 Sep 2023 18:47:06 +0900 Subject: [PATCH 063/133] fix README --- baselines/FedMeta/README.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index aa3918433bc5..b279fbe4a5fd 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -2,7 +2,7 @@ title: Federated Meta-Learning with Fast Convergence and Efficient Communication url: https://arxiv.org/abs/1802.07876 labels: [meta learning, maml, meta-sgd, personalization] # please add between 4 and 10 single-word (maybe two-words) labels (e.g. "system heterogeneity", "image classification", "asynchronous", "weight sharing", "cross-silo") -dataset: [Femnist, Shakespeare] # list of datasets you include in your baseline +dataset: [FEMNIST, SHAKESPEARE] # list of datasets you include in your baseline --- # FedMeta: Federated Meta-Learning with Fast Convergence and Efficient Communication @@ -14,11 +14,11 @@ dataset: [Femnist, Shakespeare] # list of datasets you include in your baseline ****Abstract:**** :Statistical and systematic challenges in collaboratively training machine learning models across distributed networks of mobile devices have been the bottlenecks in the real-world application of federated learning. In this work, we show that meta-learning is a natural choice to handle these issues, and propose a federated meta-learning framework FedMeta, where a parameterized algorithm (or meta-learner) is shared, instead of a global model in previous approaches. We conduct an extensive empirical evaluation on LEAF datasets and a real-world production dataset, and demonstrate that FedMeta achieves a reduction in required communication cost by 2.82-4.33 times with faster convergence, and an increase in accuracy by 3.23%-14.84% as compared to Federated Averaging (FedAvg) which is a leading optimization algorithm in federated learning. Moreover, FedMeta preserves user privacy since only the parameterized algorithm is transmitted between mobile devices and central servers, and no raw data is collected onto the servers. -## About this baseline +## About this baseline ****What’s implemented:**** : We reimplemented the experiments from the paper 'FedMeta: Federated Meta-Learning with Fast Convergence and Efficient Communication' by Fei Chen (2018). which proposed the FedMeta(MAML & Meta-SGD) algorithm. Specifically, we replicate the results from Table 2 and Figure 2 of the paper. -****Datasets:**** : Femnist and Shakespeare from Leaf Federated Learning Dataset +****Datasets:**** : FEMNIST and SHAKESPEARE from Leaf Federated Learning Dataset ****Hardware Setup:**** : These experiments were run on a machine with 16 CPU threads and 1 GPU(GeForce RTX 2080 Ti). However, the FedMeta experiment using the Shakespeare dataset required more computing power (more than 4 GPUs). @@ -30,11 +30,17 @@ dataset: [Femnist, Shakespeare] # list of datasets you include in your baseline ****Task:**** : A comparison task of four algorithms(FedAvg, FedAvg(Meta), FedMeta(MAML), FedMeta(Meta-SGD)) in the categories of Image Classification and next-word prediction. ****Model:**** :This directory implements two models: -* A two-layer CNN network as used in the FedMeta paper (see `models/Femnist_`). This is the model used by default. +* A two-layer CNN network as used in the FedMeta paper (see `models/CNN_Network`). This is the model used by default. * A StackedLSTM model used in the FedMeta paper for Shakespeare (see `models/StackedLSTM`). + **You can see more detail model at Apendix.A in paper** -****Dataset:**** :warning: *_Earlier you listed already the datasets that your baseline uses. Now you should include a breakdown of the details about each of them. Please include information about: how the dataset is partitioned (e.g. LDA with alpha 0.1 as default and all clients have the same number of training examples; or each client gets assigned a different number of samples following a power-law distribution with each client only instances of 2 classes)? if your dataset is naturally partitioned just state “naturally partitioned”; how many partitions there are (i.e. how many clients)? Please include this an all information relevant about the dataset and its partitioning into a table._* +****Dataset:**** : This baseline includes the FEMNIST dataset and SHAKESPEARE. Now you should include a breakdown of the details about each of them. Please include information about: how the dataset is partitioned (e.g. LDA with alpha 0.1 as default and all clients have the same number of training examples; or each client gets assigned a different number of samples following a power-law distribution with each client only instances of 2 classes)? if your dataset is naturally partitioned just state “naturally partitioned”; how many partitions there are (i.e. how many clients)? Please include this an all information relevant about the dataset and its partitioning into a table. + +| Dataset | #Clients | #Samples | #Classes | partition settings | +|:-----------:|:--------:| :---: |:--------:|:---------------------------------------------:| +| FEMNIST | 1,068 | 235,683 | 62 | Support set : 0.2, Query set : 0.8 | +| SHAKESPEARE | 110 | 625,127 | 80 | Support set : 0.2, Query set : 0.8 | ****Training Hyperparameters:**** :warning: *_Include a table with all the main hyperparameters in your baseline. Please show them with their default value._* From d4de2846ec8bcccf7e19d8498b57b3467fa45601 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Thu, 28 Sep 2023 12:03:52 +0900 Subject: [PATCH 064/133] Update ReadME --- baselines/FedMeta/README.md | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index b279fbe4a5fd..ba0630c74e15 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -33,17 +33,30 @@ dataset: [FEMNIST, SHAKESPEARE] # list of datasets you include in your baseline * A two-layer CNN network as used in the FedMeta paper (see `models/CNN_Network`). This is the model used by default. * A StackedLSTM model used in the FedMeta paper for Shakespeare (see `models/StackedLSTM`). -**You can see more detail model at Apendix.A in paper** +**You can see more detail at Apendix.A in paper** -****Dataset:**** : This baseline includes the FEMNIST dataset and SHAKESPEARE. Now you should include a breakdown of the details about each of them. Please include information about: how the dataset is partitioned (e.g. LDA with alpha 0.1 as default and all clients have the same number of training examples; or each client gets assigned a different number of samples following a power-law distribution with each client only instances of 2 classes)? if your dataset is naturally partitioned just state “naturally partitioned”; how many partitions there are (i.e. how many clients)? Please include this an all information relevant about the dataset and its partitioning into a table. +****Dataset:**** : This baseline includes the FEMNIST dataset and SHAKESPEARE. For data partitioning and sampling per client, we use the Leaf GitHub([LEAF: A Benchmark for Federated Settings](https://github.com/TalwalkarLab/leaf)). The data and client specifications used in this experiment are listed in the table below (Table 1 in the paper). -| Dataset | #Clients | #Samples | #Classes | partition settings | -|:-----------:|:--------:| :---: |:--------:|:---------------------------------------------:| -| FEMNIST | 1,068 | 235,683 | 62 | Support set : 0.2, Query set : 0.8 | -| SHAKESPEARE | 110 | 625,127 | 80 | Support set : 0.2, Query set : 0.8 | +| Dataset | #Clients | #Samples | #Classes | #Partition Clients | #Partition Dataset | +|:-----------:|:--------:| :---: |:--------:|:------------------------------------------------------------:|-----------------------------------| +| FEMNIST | 1,068 | 235,683 | 62 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Support set : 0.8, Query set : 0.2 | +| SHAKESPEARE | 110 | 625,127 | 80 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Support set : 0.8, Query set : 0.2| + +**The original specifications of the Leaf dataset can be found in the Leaf paper(_"LEAF: A Benchmark for Federated Settings"_).** ****Training Hyperparameters:**** :warning: *_Include a table with all the main hyperparameters in your baseline. Please show them with their default value._* +| Algorithm | Dataset | clients per round | number of rounds | batch size | optimizer | Learning Rate(α, β) | client resources | +|:-----------------:|:--------------:|:-------------------:|:------------------:|:-----------:|:---------:|:-------------------:|--------------------------------------| +| FedAvg | FEMNST | 4(Defalut), 40, 50 | 2000 | 10 | Adam | 0.0001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | +| FedAVg | SHAKESPEARE | 4(Defalut), 40, 50 | 400 | 10 | Adam | 0.001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | +| FedAvg(Meta) | FEMNST | 4(Defalut), 40, 50 | 2000 | 10 | Adam | 0.0001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | +| FedAvg(Meta) | SHAKESPEARE | 4(Defalut), 40, 50 | 400 | 10 | Adam | 0.001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | +| FedMeta(MAML) | FEMNST | 4(Defalut), 40, 50 | 2000 | 10 | Adam | (0.001,0.0001) | {'num_cpus': 4.0, 'num_gpus': 0.25 } | +| FedMeta(MAML) | SHAKESPEARE | 4(Defalut), 40, 50 | 400 | 10 | Adam | (0.1,0.01) | {'num_cpus': 4.0, 'num_gpus': 1.0 } | +| FedMeta(Meta-SGD | FEMNST | 4(Defalut), 40, 50 | 2000 | 10 | Adam | (0.001,0.0001) | {'num_cpus': 4.0, 'num_gpus': 0.25 } | +| FedMeta(Meta-SGD | SHAKESPEARE | 4(Defalut), 40, 50 | 400 | 10 | Adam | (0.1,0.01) | {'num_cpus': 4.0, 'num_gpus': 1.0 } | + ## Environment Setup From 32a5170da4e98917729006aff1527d3728509785 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Thu, 28 Sep 2023 12:12:38 +0900 Subject: [PATCH 065/133] Test ReadME --- baselines/FedMeta/README.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index ba0630c74e15..41ea188764e4 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -37,25 +37,25 @@ dataset: [FEMNIST, SHAKESPEARE] # list of datasets you include in your baseline ****Dataset:**** : This baseline includes the FEMNIST dataset and SHAKESPEARE. For data partitioning and sampling per client, we use the Leaf GitHub([LEAF: A Benchmark for Federated Settings](https://github.com/TalwalkarLab/leaf)). The data and client specifications used in this experiment are listed in the table below (Table 1 in the paper). -| Dataset | #Clients | #Samples | #Classes | #Partition Clients | #Partition Dataset | -|:-----------:|:--------:| :---: |:--------:|:------------------------------------------------------------:|-----------------------------------| -| FEMNIST | 1,068 | 235,683 | 62 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Support set : 0.8, Query set : 0.2 | -| SHAKESPEARE | 110 | 625,127 | 80 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Support set : 0.8, Query set : 0.2| +| Dataset | #Clients | #Samples | #Classes | #Partition Clients | #Partition Dataset | +|:-----------:|:--------:| :---: |:--------:|:------------------------------------------------------------:|-----------------------------| +| FEMNIST | 1,068 | 235,683 | 62 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Support set(fraction) : 0.2 | +| SHAKESPEARE | 110 | 625,127 | 80 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Support set(fraction) : 0.2 | **The original specifications of the Leaf dataset can be found in the Leaf paper(_"LEAF: A Benchmark for Federated Settings"_).** ****Training Hyperparameters:**** :warning: *_Include a table with all the main hyperparameters in your baseline. Please show them with their default value._* -| Algorithm | Dataset | clients per round | number of rounds | batch size | optimizer | Learning Rate(α, β) | client resources | -|:-----------------:|:--------------:|:-------------------:|:------------------:|:-----------:|:---------:|:-------------------:|--------------------------------------| -| FedAvg | FEMNST | 4(Defalut), 40, 50 | 2000 | 10 | Adam | 0.0001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | -| FedAVg | SHAKESPEARE | 4(Defalut), 40, 50 | 400 | 10 | Adam | 0.001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | -| FedAvg(Meta) | FEMNST | 4(Defalut), 40, 50 | 2000 | 10 | Adam | 0.0001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | -| FedAvg(Meta) | SHAKESPEARE | 4(Defalut), 40, 50 | 400 | 10 | Adam | 0.001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | -| FedMeta(MAML) | FEMNST | 4(Defalut), 40, 50 | 2000 | 10 | Adam | (0.001,0.0001) | {'num_cpus': 4.0, 'num_gpus': 0.25 } | -| FedMeta(MAML) | SHAKESPEARE | 4(Defalut), 40, 50 | 400 | 10 | Adam | (0.1,0.01) | {'num_cpus': 4.0, 'num_gpus': 1.0 } | -| FedMeta(Meta-SGD | FEMNST | 4(Defalut), 40, 50 | 2000 | 10 | Adam | (0.001,0.0001) | {'num_cpus': 4.0, 'num_gpus': 0.25 } | -| FedMeta(Meta-SGD | SHAKESPEARE | 4(Defalut), 40, 50 | 400 | 10 | Adam | (0.1,0.01) | {'num_cpus': 4.0, 'num_gpus': 1.0 } | +| Algorithm | Dataset | Clients per Round | Number of Rounds | Batch Size | Optimizer | Learning Rate(α, β) | Client Resources | Gradient Step | +|:-----------------:|:--------------:|:-----------------:|:----------------:|:----------:|:---------:|:-------------------:|--------------------------------------|:-------------:| +| FedAvg | FEMNST | 4 | 2000 | 10 | Adam | 0.0001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | - | +| FedAVg | SHAKESPEARE | 4 | 400 | 10 | Adam | 0.001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | - | +| FedAvg(Meta) | FEMNST | 4 | 2000 | 10 | Adam | 0.0001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | - | +| FedAvg(Meta) | SHAKESPEARE | 4 | 400 | 10 | Adam | 0.001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | - | +| FedMeta(MAML) | FEMNST | 4 | 2000 | 10 | Adam | (0.001, 0.0001) | {'num_cpus': 4.0, 'num_gpus': 0.25 } | 5 | +| FedMeta(MAML) | SHAKESPEARE | 4 | 400 | 10 | Adam | (0.1, 0.01) | {'num_cpus': 4.0, 'num_gpus': 1.0 } | 1 | +| FedMeta(Meta-SGD | FEMNST | 4 | 2000 | 10 | Adam | (0.001, 0.0001) | {'num_cpus': 4.0, 'num_gpus': 0.25 } | 5 | +| FedMeta(Meta-SGD | SHAKESPEARE | 4 | 400 | 10 | Adam | (0.1, 0.01) | {'num_cpus': 4.0, 'num_gpus': 1.0 } | 1 | ## Environment Setup From c16e34c300791f11ce6366cba32a20230a6e6c39 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Fri, 29 Sep 2023 13:01:14 +0900 Subject: [PATCH 066/133] fixed ReadME --- baselines/FedMeta/README.md | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index 41ea188764e4..ebfada0326ac 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -20,9 +20,9 @@ dataset: [FEMNIST, SHAKESPEARE] # list of datasets you include in your baseline ****Datasets:**** : FEMNIST and SHAKESPEARE from Leaf Federated Learning Dataset -****Hardware Setup:**** : These experiments were run on a machine with 16 CPU threads and 1 GPU(GeForce RTX 2080 Ti). However, the FedMeta experiment using the Shakespeare dataset required more computing power (more than 4 GPUs). +****Hardware Setup:**** : These experiments were run on a machine with 16 CPU threads and 1 GPU(GeForce RTX 2080 Ti). **However, the FedMeta experiment using the Shakespeare dataset required more computing power (more than 4 GPUs).** Out of Memory errors may occur with some clients, but federated learning can continue to operate. -****Contributors:**** : Jinsoo Kim and Kangyoon Lee +****Contributors:**** : **Jinsoo Kim and Kangyoon Lee** ## Experimental Setup @@ -33,18 +33,20 @@ dataset: [FEMNIST, SHAKESPEARE] # list of datasets you include in your baseline * A two-layer CNN network as used in the FedMeta paper (see `models/CNN_Network`). This is the model used by default. * A StackedLSTM model used in the FedMeta paper for Shakespeare (see `models/StackedLSTM`). -**You can see more detail at Apendix.A in paper** +**You can see more detail in Apendix.A of the paper** -****Dataset:**** : This baseline includes the FEMNIST dataset and SHAKESPEARE. For data partitioning and sampling per client, we use the Leaf GitHub([LEAF: A Benchmark for Federated Settings](https://github.com/TalwalkarLab/leaf)). The data and client specifications used in this experiment are listed in the table below (Table 1 in the paper). +****Dataset:**** : This baseline includes the FEMNIST dataset and SHAKESPEARE. For data partitioning and sampling per client, we use the Leaf GitHub([LEAF: A Benchmark for Federated Settings](https://github.com/TalwalkarLab/leaf)). The data and client specifications used in this experiment are listed in the table below (Table 1 in the paper). -| Dataset | #Clients | #Samples | #Classes | #Partition Clients | #Partition Dataset | -|:-----------:|:--------:| :---: |:--------:|:------------------------------------------------------------:|-----------------------------| -| FEMNIST | 1,068 | 235,683 | 62 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Support set(fraction) : 0.2 | -| SHAKESPEARE | 110 | 625,127 | 80 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Support set(fraction) : 0.2 | +**Shakespeare Dataset Issue** : In the FedMeta paper experiment, the Shakespeare dataset had 1126 users. However, due to a current bug, the number of users has decreased to 660 users. Therefore, we have only maintained the total number of data. + +| Dataset | #Clients | #Samples | #Classes | #Partition Clients | #Partition Dataset | +|:-----------:|:-----------:| :---: |:--------:|:------------------------------------------------------------:|----------------------| +| FEMNIST | 1,068 | 235,683 | 62 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2, Qry : 0.8 | +| SHAKESPEARE | 550 --> 110 | 625,127 | 80 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2, Qry : 0.8 | **The original specifications of the Leaf dataset can be found in the Leaf paper(_"LEAF: A Benchmark for Federated Settings"_).** -****Training Hyperparameters:**** :warning: *_Include a table with all the main hyperparameters in your baseline. Please show them with their default value._* +****Training Hyperparameters:**** : The following table shows the main hyperparameters for this baseline with their default value (i.e. the value used if you run `python main.py` directly) | Algorithm | Dataset | Clients per Round | Number of Rounds | Batch Size | Optimizer | Learning Rate(α, β) | Client Resources | Gradient Step | |:-----------------:|:--------------:|:-----------------:|:----------------:|:----------:|:---------:|:-------------------:|--------------------------------------|:-------------:| @@ -52,9 +54,9 @@ dataset: [FEMNIST, SHAKESPEARE] # list of datasets you include in your baseline | FedAVg | SHAKESPEARE | 4 | 400 | 10 | Adam | 0.001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | - | | FedAvg(Meta) | FEMNST | 4 | 2000 | 10 | Adam | 0.0001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | - | | FedAvg(Meta) | SHAKESPEARE | 4 | 400 | 10 | Adam | 0.001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | - | -| FedMeta(MAML) | FEMNST | 4 | 2000 | 10 | Adam | (0.001, 0.0001) | {'num_cpus': 4.0, 'num_gpus': 0.25 } | 5 | +| FedMeta(MAML) | FEMNST | 4 | 2000 | 10 | Adam | (0.001, 0.0001) | {'num_cpus': 4.0, 'num_gpus': 1.0 } | 5 | | FedMeta(MAML) | SHAKESPEARE | 4 | 400 | 10 | Adam | (0.1, 0.01) | {'num_cpus': 4.0, 'num_gpus': 1.0 } | 1 | -| FedMeta(Meta-SGD | FEMNST | 4 | 2000 | 10 | Adam | (0.001, 0.0001) | {'num_cpus': 4.0, 'num_gpus': 0.25 } | 5 | +| FedMeta(Meta-SGD | FEMNST | 4 | 2000 | 10 | Adam | (0.001, 0.0001) | {'num_cpus': 4.0, 'num_gpus': 1.0 } | 5 | | FedMeta(Meta-SGD | SHAKESPEARE | 4 | 400 | 10 | Adam | (0.1, 0.01) | {'num_cpus': 4.0, 'num_gpus': 1.0 } | 1 | @@ -65,7 +67,15 @@ dataset: [FEMNIST, SHAKESPEARE] # list of datasets you include in your baseline ## Running the Experiments -:warning: _Provide instructions on the steps to follow to run all the experiments._ +****Download Dataset**** : . Go [LEAF: A Benchmark for Federated Settings](https://github.com/TalwalkarLab/leaf) and Use the command below!. You can download dataset (FEMNIST and SHAKESPEARE). +```bash +#FEMNIST dataset Download command for these experiments +./preprocess.sh -s niid --iu 1068 --sf 0.3 -k 0 -t sample + +#SHAKESEPEARE dataset Download command for these experiments +./preprocess.sh -s niid --iu 1068 --sf 0.3 -k 0 -t sample +```` + ```bash # The main experiment implemented in your baseline using default hyperparameters (that should be setup in the Hydra configs) should run (including dataset download and necessary partitioning) by executing the command: From df3d0fac302438c68ceea5ff7c20514328d8c3d3 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Fri, 29 Sep 2023 13:05:14 +0900 Subject: [PATCH 067/133] updata README --- baselines/FedMeta/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index ebfada0326ac..d4cfccb47ec6 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -39,14 +39,14 @@ dataset: [FEMNIST, SHAKESPEARE] # list of datasets you include in your baseline **Shakespeare Dataset Issue** : In the FedMeta paper experiment, the Shakespeare dataset had 1126 users. However, due to a current bug, the number of users has decreased to 660 users. Therefore, we have only maintained the total number of data. -| Dataset | #Clients | #Samples | #Classes | #Partition Clients | #Partition Dataset | -|:-----------:|:-----------:| :---: |:--------:|:------------------------------------------------------------:|----------------------| -| FEMNIST | 1,068 | 235,683 | 62 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2, Qry : 0.8 | -| SHAKESPEARE | 550 --> 110 | 625,127 | 80 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2, Qry : 0.8 | +| Dataset | #Clients | #Samples | #Classes | #Partition Clients | #Partition Dataset | +|:-----------:|:----------:| :---: |:--------:|:------------------------------------------------------------:|----------------------| +| FEMNIST | 1,068 | 235,683 | 62 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2, Qry : 0.8 | +| SHAKESPEARE | 550 -> 110 | 625,127 | 80 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2, Qry : 0.8 | **The original specifications of the Leaf dataset can be found in the Leaf paper(_"LEAF: A Benchmark for Federated Settings"_).** -****Training Hyperparameters:**** : The following table shows the main hyperparameters for this baseline with their default value (i.e. the value used if you run `python main.py` directly) +****Training Hyperparameters:**** : The following table shows the main hyperparameters for this baseline with their default value (i.e. the value used if you run `python main.py algo=? data=?` directly) | Algorithm | Dataset | Clients per Round | Number of Rounds | Batch Size | Optimizer | Learning Rate(α, β) | Client Resources | Gradient Step | |:-----------------:|:--------------:|:-----------------:|:----------------:|:----------:|:---------:|:-------------------:|--------------------------------------|:-------------:| @@ -67,7 +67,7 @@ dataset: [FEMNIST, SHAKESPEARE] # list of datasets you include in your baseline ## Running the Experiments -****Download Dataset**** : . Go [LEAF: A Benchmark for Federated Settings](https://github.com/TalwalkarLab/leaf) and Use the command below!. You can download dataset (FEMNIST and SHAKESPEARE). +****Download Dataset**** : Go [LEAF: A Benchmark for Federated Settings](https://github.com/TalwalkarLab/leaf) and Use the command below! You can download dataset (FEMNIST and SHAKESPEARE). ```bash #FEMNIST dataset Download command for these experiments ./preprocess.sh -s niid --iu 1068 --sf 0.3 -k 0 -t sample From 4ad8fa1b22a6a7fbbe77ff13b36120fd6047af57 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Fri, 29 Sep 2023 13:33:02 +0900 Subject: [PATCH 068/133] Finish Fedmeta experiments --- baselines/FedMeta/FedMeta/client.py | 109 ++++++++-------- .../FedMeta/FedMeta/conf/algo/fedavg.yaml | 14 +++ .../FedMeta/conf/algo/fedavg_meta.yaml | 13 ++ .../FedMeta/conf/algo/fedmeta_maml.yaml | 13 ++ .../FedMeta/conf/algo/fedmeta_meta_sgd.yaml | 13 ++ baselines/FedMeta/FedMeta/conf/config.yaml | 36 +----- baselines/FedMeta/FedMeta/dataset.py | 59 +++++---- .../FedMeta/FedMeta/dataset_preparation.py | 18 +-- baselines/FedMeta/FedMeta/main.py | 21 ++-- baselines/FedMeta/FedMeta/models.py | 99 +++++++-------- baselines/FedMeta/FedMeta/strategy.py | 116 ++++++++++-------- 11 files changed, 271 insertions(+), 240 deletions(-) create mode 100644 baselines/FedMeta/FedMeta/conf/algo/fedavg.yaml create mode 100644 baselines/FedMeta/FedMeta/conf/algo/fedavg_meta.yaml create mode 100644 baselines/FedMeta/FedMeta/conf/algo/fedmeta_maml.yaml create mode 100644 baselines/FedMeta/FedMeta/conf/algo/fedmeta_meta_sgd.yaml diff --git a/baselines/FedMeta/FedMeta/client.py b/baselines/FedMeta/FedMeta/client.py index 6f36c7c0e8c0..5cd045bb908b 100644 --- a/baselines/FedMeta/FedMeta/client.py +++ b/baselines/FedMeta/FedMeta/client.py @@ -26,7 +26,8 @@ def __init__( cid: str, device: torch.device, num_epochs: int, - learning_rate: float + learning_rate: float, + gradient_step: int ) -> object: self.net = net self.trainloaders = trainloaders @@ -35,10 +36,10 @@ def __init__( self.device = device self.num_epochs = num_epochs self.learning_rate = learning_rate + self.gradient_step = gradient_step def get_parameters(self, config: Dict[str, Scalar]) -> NDArrays: """Returns the parameters of the current net.""" - # return [val.cpu().numpy() for name, val in self.net.state_dict().items() if 'lr' not in name] return [val.cpu().numpy() for _, val in self.net.state_dict().items()] def set_parameters(self, parameters: NDArrays) -> None: @@ -47,72 +48,65 @@ def set_parameters(self, parameters: NDArrays) -> None: state_dict = OrderedDict({k: torch.Tensor(v) for k, v in params_dict}) self.net.load_state_dict(state_dict, strict=True) - # def fit( - # self, parameters: NDArrays, config: Dict[str, Scalar] - # ) -> Tuple[NDArrays, int, Dict]: - # """Implements distributed fit function for a given client.""" - # self.set_parameters(parameters) - # loss = train( - # self.net, self.trainloaders['sup'][self.cid], - # self.device, - # epochs=self.num_epochs, - # learning_rate=self.learning_rate - # ) - # total_len = len(self.trainloaders['qry'][self.cid].dataset) + len(self.trainloaders['sup'][self.cid].dataset) - # - # # return self.get_parameters({}), len(self.trainloaders['sup'][self.cid].dataset), {"loss" : loss} - # return self.get_parameters({}), total_len, {"loss" : loss} - # - # def evaluate( - # self, parameters: NDArrays, config: Dict[str, Scalar] - # ) -> Tuple[float, int, Dict]: - # """Implements distributed evaluation for a given client.""" - # self.set_parameters(parameters) - # loss, accuracy, total = test( - # self.net, - # self.valloaders['sup'][self.cid], - # self.valloaders['qry'][self.cid], - # self.device, - # learning_rate=self.learning_rate - # ) - # total_len = len(self.valloaders['qry'][self.cid].dataset) + len(self.valloaders['sup'][self.cid].dataset) - # - # return float(loss), total_len, {"correct": accuracy, "loss": loss} - def fit( self, parameters: NDArrays, config: Dict[str, Scalar] ) -> Tuple[NDArrays, int, Dict]: """Implements distributed fit function for a given client.""" self.set_parameters(parameters) - alpha = config["alpha"] - loss, grads = train_meta( - self.net, - self.trainloaders['sup'][self.cid], - self.trainloaders['qry'][self.cid], - alpha, - self.device, - learning_rate=self.learning_rate - ) + algo = config["algo"] total_len = len(self.trainloaders['qry'][self.cid].dataset) + len(self.trainloaders['sup'][self.cid].dataset) - return self.get_parameters({}), total_len, {"loss": loss, "grads": grads} - + if algo == 'fedavg' or algo == 'fedavg(meta)': + loss = train( + self.net, + self.trainloaders['sup'][self.cid], + self.trainloaders['qry'][self.cid], + self.device, + epochs=self.num_epochs, + learning_rate=self.learning_rate + ) + return self.get_parameters({}), total_len, {"loss" : loss} + + elif algo == 'fedmeta(maml)' or algo == 'fedmeta(meta-sgd)': + alpha = config["alpha"] + loss, grads = train_meta( + self.net, + self.trainloaders['sup'][self.cid], + self.trainloaders['qry'][self.cid], + alpha, + self.device, + self.gradient_step, + ) + return self.get_parameters({}), total_len, {"loss": loss, "grads": grads} def evaluate( self, parameters: NDArrays, config: Dict[str, Scalar] ) -> Tuple[float, int, Dict]: """Implements distributed evaluation for a given client.""" self.set_parameters(parameters) - alpha = config["alpha"] - loss, accuracy, total = test_meta( - self.net, - self.valloaders['sup'][self.cid], - self.valloaders['qry'][self.cid], - alpha, - self.device, - learning_rate = self.learning_rate - ) total_len = len(self.valloaders['qry'][self.cid].dataset) + len(self.valloaders['sup'][self.cid].dataset) - return float(loss), total_len, {"correct": float(accuracy), "loss": loss} + if config["algo"] == 'fedavg' or config["algo"] == 'fedavg(meta)': + loss, accuracy, total = test( + self.net, + self.valloaders['sup'][self.cid], + self.valloaders['qry'][self.cid], + self.device, + config["algo"], + config["data"], + learning_rate=self.learning_rate, + ) + return float(loss), total_len, {"correct": accuracy, "loss": loss} + + elif config["algo"] == 'fedmeta(maml)' or config["algo"] == 'fedmeta(meta-sgd)': + alpha = config["alpha"] + loss, accuracy, total = test_meta( + self.net, + self.valloaders['sup'][self.cid], + self.valloaders['qry'][self.cid], + alpha, + self.device, + self.gradient_step, + ) + return float(loss), total_len, {"correct": float(accuracy), "loss": loss} def gen_client_fn( @@ -121,6 +115,7 @@ def gen_client_fn( valloaders: List[DataLoader], learning_rate: float, model: DictConfig, + gradient_step: int, ) -> Callable[[str], FlowerClient]: # pylint: disable=too-many-arguments """Generates the client function that creates the Flower Clients. @@ -157,9 +152,6 @@ def client_fn(cid: str) -> FlowerClient: device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") net = instantiate(model).to(device) - # Note: each client gets a different trainloader/valloader, so each client - # will train and evaluate on their own unique data - return FlowerClient( net, trainloaders, @@ -168,6 +160,7 @@ def client_fn(cid: str) -> FlowerClient: device, num_epochs, learning_rate, + gradient_step ) return client_fn diff --git a/baselines/FedMeta/FedMeta/conf/algo/fedavg.yaml b/baselines/FedMeta/FedMeta/conf/algo/fedavg.yaml new file mode 100644 index 000000000000..df5a5b4b6b65 --- /dev/null +++ b/baselines/FedMeta/FedMeta/conf/algo/fedavg.yaml @@ -0,0 +1,14 @@ +--- +# this is the config that will be loaded as default by main.py +# Please follow the provided structure (this will ensuring all baseline follow +# a similar configuration structure and hence be easy to customise) + +algo: fedavg +femnist: + alpha: 0.0001 + beta: 0 + +shakespeare: + alpha: 0.001 + beta: 0 + diff --git a/baselines/FedMeta/FedMeta/conf/algo/fedavg_meta.yaml b/baselines/FedMeta/FedMeta/conf/algo/fedavg_meta.yaml new file mode 100644 index 000000000000..01bcb0d8f218 --- /dev/null +++ b/baselines/FedMeta/FedMeta/conf/algo/fedavg_meta.yaml @@ -0,0 +1,13 @@ +--- +# this is the config that will be loaded as default by main.py +# Please follow the provided structure (this will ensuring all baseline follow +# a similar configuration structure and hence be easy to customise) + +algo: fedavg(meta) +femnist: + alpha: 0.0001 + beta: None + +shakespeare: + alpha: 0.001 + beta: None diff --git a/baselines/FedMeta/FedMeta/conf/algo/fedmeta_maml.yaml b/baselines/FedMeta/FedMeta/conf/algo/fedmeta_maml.yaml new file mode 100644 index 000000000000..1f6d0586bdad --- /dev/null +++ b/baselines/FedMeta/FedMeta/conf/algo/fedmeta_maml.yaml @@ -0,0 +1,13 @@ +--- +# this is the config that will be loaded as default by main.py +# Please follow the provided structure (this will ensuring all baseline follow +# a similar configuration structure and hence be easy to customise) + +algo: fedmeta(maml) +femnist: + alpha: 0.001 + beta: 0.0001 + +shakespeare: + alpha: 0.1 + beta: 0.01 diff --git a/baselines/FedMeta/FedMeta/conf/algo/fedmeta_meta_sgd.yaml b/baselines/FedMeta/FedMeta/conf/algo/fedmeta_meta_sgd.yaml new file mode 100644 index 000000000000..ebb53dd602a2 --- /dev/null +++ b/baselines/FedMeta/FedMeta/conf/algo/fedmeta_meta_sgd.yaml @@ -0,0 +1,13 @@ +--- +# this is the config that will be loaded as default by main.py +# Please follow the provided structure (this will ensuring all baseline follow +# a similar configuration structure and hence be easy to customise) + +algo: fedmeta(meta-sgd) +femnist: + alpha: 0.001 + beta: 0.0001 + +shakespeare: + alpha: 0.1 + beta: 0.01 diff --git a/baselines/FedMeta/FedMeta/conf/config.yaml b/baselines/FedMeta/FedMeta/conf/config.yaml index a278bfc510c7..94b68c515e9a 100644 --- a/baselines/FedMeta/FedMeta/conf/config.yaml +++ b/baselines/FedMeta/FedMeta/conf/config.yaml @@ -3,43 +3,19 @@ # Please follow the provided structure (this will ensuring all baseline follow # a similar configuration structure and hence be easy to customise) -#num_clients: 293 # total number of clients -#num_clients: 869 # total number of clients -num_epochs: 1 # number of local epochs +path: ??? +num_epochs: 1 clients_per_round: 4 -num_rounds: 400 -learning_rate: 0.1 -client_resources: - num_cpus: 8 - num_gpus: 0.5 - -server_device: cpu - -dataset: - algo: fedavg #fedavg, fedavg(meta), fedmeta(maml), fedmeta(meta-sgd) -# algo: fedmeta(maml) #fedavg, fedavg(meta), fedmeta(maml), fedmeta(meta-sgd) -# path: /home/ccl/fedmeta/fedmeta_origin/leaf_data # Leaf Dataset path (Femnist or Shakespeare) -# path: /home/ccl/fedmeta/leaf/data/femnist/data - path: /home/ccl/fedmeta/leaf/data/shakespeare/data - # Leaf Dataset path (Femnist or Shakespeare) - support_ratio : 0.2 - batch_size : 10 - # dataset config - -model: -# _target_: models.Femnist_network # model config - _target_: models.StackedLSTM # model config +defaults: + - _self_ + - algo: ??? + - data: ??? strategy: _target_: strategy.FedMeta - # points to your strategy (either custom or exiting in Flower) fraction_fit: 0.00001 fraction_evaluate: 0.00001 min_fit_clients : ${clients_per_round} min_evaluate_clients : ${clients_per_round} min_available_clients : ${clients_per_round} - # rest of strategy config - -client: - # client config diff --git a/baselines/FedMeta/FedMeta/dataset.py b/baselines/FedMeta/FedMeta/dataset.py index 20c504016a44..434e70e1d0f7 100644 --- a/baselines/FedMeta/FedMeta/dataset.py +++ b/baselines/FedMeta/FedMeta/dataset.py @@ -21,8 +21,6 @@ class ShakespeareDataset(Dataset): def __init__(self, data): - # self.x = x - # self.y = y sentence, label = data['x'], data['y'] sentences_to_indices = [word_to_indices(word) for word in sentence] sentences_to_indices = np.array(sentences_to_indices) @@ -48,7 +46,7 @@ def __getitem__(self, index): if self.transform: input_data = self.transform(input_data) target_data = self.y[index] - return input_data, target_data + return input_data.to(torch.float32), target_data def __len__(self): return len(self.y) @@ -56,10 +54,12 @@ def __len__(self): def load_datasets( # pylint: disable=too-many-arguments config: DictConfig, + path: str, ) -> Tuple[DataLoader, DataLoader, DataLoader]: dataset = _partition_data( - dir_path=config.path, + data_type=config.data, + dir_path=path, support_ratio=config.support_ratio ) @@ -67,48 +67,45 @@ def load_datasets( # pylint: disable=too-many-arguments dataset[0]['users'] ) - trainloaders = {'sup': [], 'qry': []} valloaders = {'sup': [], 'qry': []} testloaders = {'sup': [], 'qry': []} - data_type = 'shakespeare' - if data_type == 'shakespeare': + data_type = config.data + if data_type == 'femnist': + transform = transforms.Compose([transforms.ToTensor()]) for user in clients_list[0]: - if len(dataset[0]['user_data'][user]['x']) > 10000: - print(f"over 1000 : {user}") - continue trainloaders['sup'].append( - DataLoader(ShakespeareDataset(dataset[0]['user_data'][user]), batch_size=10, shuffle=True)) + DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=config.batch_size, shuffle=True)) trainloaders['qry'].append( - DataLoader(ShakespeareDataset(dataset[1]['user_data'][user]), batch_size=10)) + DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=config.batch_size)) for user in clients_list[1]: - if len(dataset[0]['user_data'][user]['x']) > 10000: - print(f"over 1000 : {user}") - continue - valloaders['sup'].append(DataLoader(ShakespeareDataset(dataset[0]['user_data'][user]), batch_size=10, shuffle=True)) - valloaders['qry'].append(DataLoader(ShakespeareDataset(dataset[1]['user_data'][user]), batch_size=10)) + valloaders['sup'].append( + DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=config.batch_size)) + valloaders['qry'].append( + DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=config.batch_size)) for user in clients_list[2]: - if len(dataset[0]['user_data'][user]['x']) > 10000: - print(f"over 1000 : {user}") - continue testloaders['sup'].append( - DataLoader(ShakespeareDataset(dataset[0]['user_data'][user]), batch_size=10, shuffle=True)) + DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=config.batch_size)) testloaders['qry'].append( - DataLoader(ShakespeareDataset(dataset[1]['user_data'][user]), batch_size=10)) - - else: - transform = transforms.Compose([transforms.ToTensor()]) + DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=config.batch_size)) + elif data_type == 'shakespeare': for user in clients_list[0]: - trainloaders['sup'].append(DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=10, shuffle=True)) - trainloaders['qry'].append(DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=10)) + trainloaders['sup'].append( + DataLoader(ShakespeareDataset(dataset[0]['user_data'][user]), batch_size=config.batch_size, shuffle=True)) + trainloaders['qry'].append( + DataLoader(ShakespeareDataset(dataset[1]['user_data'][user]), batch_size=config.batch_size)) for user in clients_list[1]: - valloaders['sup'].append(DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=10)) - valloaders['qry'].append(DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=10)) + valloaders['sup'].append( + DataLoader(ShakespeareDataset(dataset[0]['user_data'][user]), batch_size=config.batch_size, shuffle=True)) + valloaders['qry'].append( + DataLoader(ShakespeareDataset(dataset[1]['user_data'][user]), batch_size=config.batch_size)) for user in clients_list[2]: - testloaders['sup'].append(DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=10)) - testloaders['qry'].append(DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=10)) + testloaders['sup'].append( + DataLoader(ShakespeareDataset(dataset[0]['user_data'][user]), batch_size=config.batch_size, shuffle=True)) + testloaders['qry'].append( + DataLoader(ShakespeareDataset(dataset[1]['user_data'][user]), batch_size=config.batch_size)) return trainloaders, valloaders, testloaders diff --git a/baselines/FedMeta/FedMeta/dataset_preparation.py b/baselines/FedMeta/FedMeta/dataset_preparation.py index 579b438efcab..3f932314740d 100644 --- a/baselines/FedMeta/FedMeta/dataset_preparation.py +++ b/baselines/FedMeta/FedMeta/dataset_preparation.py @@ -47,7 +47,9 @@ def support_query_split( label: List, support_ratio: float, ): + x_train, x_test, y_train, y_test = train_test_split(data, label, train_size=support_ratio, stratify=label, random_state=42) + return x_train, x_test, y_train, y_test @@ -56,6 +58,7 @@ def split_train_validation_test_clients( train_rate: Optional[float] = 0.8, val_rate: Optional[float] = 0.1, ) -> Tuple[List[str], List[str], List[str]]: + np.random.seed(42) train_rate = int(train_rate * len(clients)) val_rate = int(val_rate * len(clients)) @@ -71,16 +74,13 @@ def split_train_validation_test_clients( def _partition_data( + data_type: str, dir_path: str, - support_ratio: Optional[float] = None, + support_ratio: float, ) -> Tuple[Dict, Dict]: - data_type = 'shakespeare' - print("_partiton_data") - # train_path = f'{dir_path}/train' - train_path = f'{dir_path}/train_0.16' - # test_path = f'{dir_path}/test' - test_path = f'{dir_path}/test_0.16' + train_path = f'{dir_path}/train' + test_path = f'{dir_path}/test' train_users, train_data, train_num = _read_dataset(train_path) test_users, test_data, test_num = _read_dataset(test_path) @@ -109,10 +109,10 @@ def _partition_data( try: sup_x, qry_x, sup_y, qry_y = support_query_split(all_x, all_y, support_ratio) except Exception as e: - print(f"Error occurred at iteration {user}: {e}") + # print(f"Error occurred at iteration {user}: {e}") continue - else: + elif data_type == 'shakespeare': sup_x, qry_x, sup_y, qry_y = train_test_split(all_x, all_y, train_size=support_ratio, random_state=42) all_dataset['users'].append(user) diff --git a/baselines/FedMeta/FedMeta/main.py b/baselines/FedMeta/FedMeta/main.py index d77996f5bb07..e88086e7ac4e 100644 --- a/baselines/FedMeta/FedMeta/main.py +++ b/baselines/FedMeta/FedMeta/main.py @@ -29,31 +29,36 @@ def main(cfg: DictConfig) -> None: print(OmegaConf.to_yaml(cfg)) # partition dataset and get dataloaders - trainloaders, valloaders, testloaders= load_datasets(config=cfg.dataset) + trainloaders, valloaders, testloaders= load_datasets(config=cfg.data, path=cfg.path) # prepare function that will be used to spawn each client client_fn = client.gen_client_fn( num_epochs=cfg.num_epochs, trainloaders=trainloaders, valloaders=valloaders, - learning_rate=cfg.learning_rate, - model=cfg.model, + learning_rate=cfg.algo[cfg.data.data].alpha, + model=cfg.data.model, + gradient_step=cfg.data.gradient_step, ) - + # prepare strategy function strategy = instantiate( cfg.strategy, evaluate_metrics_aggregation_fn=weighted_average, + alpha=cfg.algo[cfg.data.data].alpha, + beta=cfg.algo[cfg.data.data].beta, + data=cfg.data.data, + algo=cfg.algo.algo, ) - # 5. Start Simulation + # Start Simulation history = fl.simulation.start_simulation( client_fn=client_fn, num_clients=len(trainloaders['sup']), - config=fl.server.ServerConfig(num_rounds=cfg.num_rounds), + config=fl.server.ServerConfig(num_rounds=cfg.data.num_rounds), client_resources={ - "num_cpus": cfg.client_resources.num_cpus, - "num_gpus": cfg.client_resources.num_gpus, + "num_cpus": cfg.data.client_resources.num_cpus, + "num_gpus": cfg.data.client_resources.num_gpus, }, client_manager=Fedmeta_client_manager(valid_client=len(valloaders['qry'])), strategy=strategy, diff --git a/baselines/FedMeta/FedMeta/models.py b/baselines/FedMeta/FedMeta/models.py index f1b7a398a6a6..5a6a473844fb 100644 --- a/baselines/FedMeta/FedMeta/models.py +++ b/baselines/FedMeta/FedMeta/models.py @@ -30,7 +30,7 @@ def forward(self, text): return final_output -class Femnist_network(nn.Module): +class CNN_network(nn.Module): """Convolutional Neural Network architecture. As described in McMahan 2017 paper : @@ -40,7 +40,7 @@ class Femnist_network(nn.Module): """ def __init__(self) -> None: - super(Femnist_network, self).__init__() + super(CNN_network, self).__init__() self.conv1 = nn.Conv2d(in_channels=1, out_channels=32, kernel_size=5, padding=2) self.maxpool1 = nn.MaxPool2d(kernel_size=(2, 2)) self.conv2 = nn.Conv2d(in_channels=32, out_channels=64, kernel_size=5, padding=2) @@ -76,6 +76,7 @@ def forward(self, x: torch.Tensor) -> torch.Tensor: def train( # pylint: disable=too-many-arguments net: nn.Module, trainloader: DataLoader, + testloader: DataLoader, device: torch.device, epochs: int, learning_rate: float, @@ -97,7 +98,6 @@ def train( # pylint: disable=too-many-arguments """ criterion = torch.nn.CrossEntropyLoss() optimizer = torch.optim.Adam(net.parameters(), lr=learning_rate, weight_decay=0.001) - # optimizer = torch.optim.SGD(net.parameters(), lr=learning_rate) net.train() for _ in range(epochs): net, loss = _train_one_epoch( @@ -138,7 +138,6 @@ def _train_one_epoch( # pylint: disable=too-many-arguments for images, labels in trainloader: images, labels = images.to(device), labels.to(device) optimizer.zero_grad() - # loss = criterion(net(images.to(torch.float32)), labels) loss = criterion(net(images), labels) total_loss += loss.item() * labels.size(0) loss.backward() @@ -152,7 +151,9 @@ def test( trainloader: DataLoader, testloader: DataLoader, device: torch.device, - learning_rate: float + algo: str, + data: str, + learning_rate: float, ) -> Tuple[float, float]: """Evaluate the network on the entire test set. @@ -170,29 +171,35 @@ def test( Tuple[float, float] The loss and the accuracy of the input model on the given data. """ - total_loss = 0.0 criterion = torch.nn.CrossEntropyLoss() - optimizer = torch.optim.Adam(net.parameters(), lr=learning_rate, weight_decay=0.001) - net.train() - for images, labels in trainloader: - images, labels = images.to(device), labels.to(device) - # loss = criterion(net(images.to(torch.float32)), labels) - loss = criterion(net(images), labels) - total_loss += loss * labels.size(0) - optimizer.zero_grad() - loss.backward() - optimizer.step() - # total_loss = total_loss / len(trainloader.dataset) - # optimizer.zero_grad() - # total_loss.backward() - # optimizer.step() + + if algo == 'fedavg(meta)': + total_loss = 0.0 + optimizer = torch.optim.Adam(net.parameters(), lr=learning_rate, weight_decay=0.001) + net.train() + if data == 'femnist': + for images, labels in trainloader: + images, labels = images.to(device), labels.to(device) + loss = criterion(net(images), labels) + total_loss += loss * labels.size(0) + total_loss = total_loss / len(trainloader.dataset) + optimizer.zero_grad() + total_loss.backward() + optimizer.step() + + elif data == 'shakespeare': + for images, labels in trainloader: + images, labels = images.to(device), labels.to(device) + loss = criterion(net(images), labels) + optimizer.zero_grad() + loss.backward() + optimizer.step() correct, total, loss = 0, 0, 0.0 net.eval() with torch.no_grad(): for images, labels in testloader: images, labels = images.to(device), labels.to(device) - # outputs = net(images.to(torch.float32)) outputs = net(images) loss += criterion(outputs, labels).item() * labels.size(0) _, predicted = torch.max(outputs.data, 1) @@ -211,7 +218,7 @@ def train_meta( # pylint: disable=too-many-arguments queryloader: DataLoader, alpha, device: torch.device, - learning_rate: float, + gradient_step: int ) -> Tuple[float]: """Train the network on the training set. @@ -231,7 +238,7 @@ def train_meta( # pylint: disable=too-many-arguments criterion = torch.nn.CrossEntropyLoss() for _ in range(1): loss, grads = _train_meta_one_epoch( - net, supportloader, queryloader, alpha, criterion, learning_rate, device + net, supportloader, queryloader, alpha, criterion, device, gradient_step ) return loss, grads @@ -242,8 +249,8 @@ def _train_meta_one_epoch( # pylint: disable=too-many-arguments queryloader: DataLoader, alpha, criterion: torch.nn.CrossEntropyLoss, - learning_rate: float, device: torch.device, + gradient_step: int, ) -> nn.Module: """Train for one epoch. @@ -265,43 +272,33 @@ def _train_meta_one_epoch( # pylint: disable=too-many-arguments nn.Module The model that has been trained for one epoch. """ - num_adaptation_steps = 1 - all_adaptation_losses = [] + num_adaptation_steps = gradient_step train_net = deepcopy(net) - # alpha = [alpha.to(device) for alpha in alpha] - for step in range(num_adaptation_steps): + alpha = [alpha.to(device) for alpha in alpha] + for _ in range(num_adaptation_steps): loss_sum = 0.0 sup_num_sample = [] sup_total_loss = [] for images, labels in supportloader: images, labels = images.to(device), labels.to(device) - # loss = criterion(train_net(images.to(torch.float32)), labels) loss = criterion(train_net(images), labels) loss_sum += loss * labels.size(0) sup_num_sample.append(labels.size(0)) sup_total_loss.append(loss * labels.size(0)) grads = torch.autograd.grad(loss, list(train_net.parameters()), create_graph=True, retain_graph=True) - for p, g in zip(train_net.parameters(), grads): - p.data.add_(g.data, alpha=-learning_rate) + for p, g, a in zip(train_net.parameters(), grads, alpha): + p.data = p.data - a * g for p in train_net.parameters(): if p.grad is not None: p.grad.zero_() - # for p, g, a in zip(train_net.parameters(), grads, alpha): - # p.data = p.data - a * g - # - # for p in train_net.parameters(): - # if p.grad is not None: - # p.grad.zero_() - qry_total_loss = [] qry_num_sample = [] loss_sum = 0.0 for images, labels in queryloader: images, labels = images.to(device), labels.to(device) - # loss = criterion(train_net(images.to(torch.float32)), labels) loss = criterion(train_net(images), labels) loss_sum += loss * labels.size(0) qry_num_sample.append(labels.size(0)) @@ -316,15 +313,15 @@ def _train_meta_one_epoch( # pylint: disable=too-many-arguments grads = [g.cpu().numpy() for g in grads] average_adaptation_loss = sum(sup_total_loss) / sum(sup_num_sample) return average_adaptation_loss, grads - - +# +# def test_meta( net: nn.Module, supportloader: DataLoader, queryloader: DataLoader, alpha, device: torch.device, - learning_rate: float, + gradient_step: int, ) -> Tuple[float, float]: """Evaluate the network on the entire test set. @@ -344,41 +341,32 @@ def test_meta( """ criterion = torch.nn.CrossEntropyLoss() test_net = deepcopy(net) - num_adaptation_steps = 1 + num_adaptation_steps = gradient_step alpha = [alpha_tensor.to(device) for alpha_tensor in alpha] test_net.train() - for step in range(num_adaptation_steps): + for _ in range(num_adaptation_steps): loss_sum = 0.0 sup_num_sample = [] sup_total_loss = [] for images, labels in supportloader: images, labels = images.to(device), labels.to(device) - # loss = criterion(test_net(images.to(torch.float32)), labels) loss = criterion(test_net(images), labels) loss_sum += loss * labels.size(0) sup_num_sample.append(labels.size(0)) sup_total_loss.append(loss) grads = torch.autograd.grad(loss, list(test_net.parameters()), create_graph=True, retain_graph=True) - for p, g in zip(test_net.parameters(), grads): - p.data.add_(g.data, alpha=-learning_rate) + for p, g, a in zip(test_net.parameters(), grads, alpha): + p.data -= a * g for p in test_net.parameters(): if p.grad is not None: p.grad.zero_() - # for p, g, a in zip(test_net.parameters(), grads, alpha): - # p.data -= a * g - # - # for p in test_net.parameters(): - # if p.grad is not None: - # p.grad.zero_() - test_net.eval() correct, total, loss = 0, 0, 0.0 for images, labels in queryloader: images, labels = images.to(device), labels.to(device) - # outputs = test_net(images.to(torch.float32)) outputs = test_net(images) loss += criterion(outputs, labels).item() * labels.size(0) _, predicted = torch.max(outputs.data, 1) @@ -391,4 +379,3 @@ def test_meta( return loss, accuracy, total - diff --git a/baselines/FedMeta/FedMeta/strategy.py b/baselines/FedMeta/FedMeta/strategy.py index 62c6a7503d6a..a0f68bf8a008 100644 --- a/baselines/FedMeta/FedMeta/strategy.py +++ b/baselines/FedMeta/FedMeta/strategy.py @@ -15,7 +15,7 @@ import numpy as np import torch from functools import reduce -from models import Femnist_network, StackedLSTM +from models import CNN_network, StackedLSTM from flwr.common.logger import log @@ -35,12 +35,40 @@ import wandb # start a new wandb run to track this script -wandb.init( - # set the wandb project where this run will be logged - project="SoR", - -) - +# wandb.init( +# # set the wandb project where this run will be logged +# project="SoR", +# +# ) + + +def fedmeta_update_meta_sgd(net, alpha, beta, weights_results, gradients_aggregated): + params_dict = zip(net.state_dict().keys(), weights_results) + state_dict = OrderedDict({k: torch.tensor(v) for k, v in params_dict}) + net.load_state_dict(state_dict, strict=True) + optimizer = torch.optim.Adam(list(net.parameters()) + list(alpha), lr=beta, weight_decay=0.0001) + for params, grad_ins, alphas in zip(net.parameters(), gradients_aggregated, alpha): + params.grad = torch.tensor(grad_ins).to(params.dtype) + alphas.grad = torch.tensor(grad_ins).to(params.dtype) + optimizer.step() + optimizer.zero_grad() + weights_prime = [val.cpu().numpy() for _, val in net.state_dict().items()] + + return weights_prime, alpha + + +def fedmeta_update_maml(net, beta, weights_results, gradients_aggregated): + params_dict = zip(net.state_dict().keys(), weights_results) + state_dict = OrderedDict({k: torch.tensor(v) for k, v in params_dict}) + net.load_state_dict(state_dict, strict=True) + optimizer = torch.optim.Adam(list(net.parameters()), lr=beta, weight_decay=0.0001) + for params, grad_ins in zip(net.parameters(), gradients_aggregated): + params.grad = torch.tensor(grad_ins).to(params.dtype) + optimizer.step() + optimizer.zero_grad() + weights_prime = [val.cpu().numpy() for _, val in net.state_dict().items()] + + return weights_prime def weighted_average(metrics: List[Tuple[int, Metrics]]) -> Metrics: """Aggregation function for weighted average during evaluation. @@ -74,34 +102,33 @@ def aggregate_grad(results: List[Tuple[NDArrays, int]]) -> NDArrays: [layer * num_examples for layer in gradients] for gradients, num_examples in results ] - # weighted_gradients = [gradients for gradients, _ in results] - # Compute average weights of each layer grdients_prime: NDArrays = [ reduce(np.add, layer_updates) / num_examples_total for layer_updates in zip(*weighted_gradients) ] - # grdients_prime: NDArrays = [ - # reduce(np.add, layer_updates) / len(weighted_gradients) - # for layer_updates in zip(*weighted_gradients) - # ] - return grdients_prime class FedMeta(FedAvg): - def __init__(self, **kwargs): + def __init__(self, alpha, beta, data, algo, **kwargs): super().__init__(**kwargs) - # self.alpha = [torch.full_like(p, 0.001) for p in Femnist_network().parameters()] - self.alpha = torch.nn.ParameterList([torch.nn.Parameter(torch.full_like(p, 0.001)) for p in Femnist_network().parameters()]) + self.algo = algo + self.data = data + if self.data == 'femnist': + self.net = CNN_network() + elif self.data == 'shakespeare': + self.net = StackedLSTM() + self.alpha = torch.nn.ParameterList([torch.nn.Parameter(torch.full_like(p, alpha)) for p in self.net.parameters()]) + self.beta = beta def configure_fit( self, server_round: int, parameters: Parameters, client_manager: ClientManager ) -> List[Tuple[ClientProxy, FitIns]]: """Configure the next round of training.""" # alpha_list = [param.data for param in self.alpha] - config = {"alpha" : self.alpha} + config = {"alpha" : self.alpha, "algo": self.algo, "data": self.data} if self.on_fit_config_fn is not None: # Custom fit config function provided config = self.on_fit_config_fn(server_round) @@ -129,7 +156,7 @@ def configure_evaluate( return [] # Parameters and config - config = {"alpha" : self.alpha} + config = {"alpha" : self.alpha, "algo": self.algo, "data":self.data} if self.on_evaluate_config_fn is not None: # Custom evaluation config function provided config = self.on_evaluate_config_fn(server_round) @@ -168,32 +195,26 @@ def aggregate_fit( for _, fit_res in results ] - # parameters_aggregated = ndarrays_to_parameters(aggregate(weights_results)) + parameters_aggregated = ndarrays_to_parameters(aggregate(weights_results)) - grads_results = [ - (fit_res.metrics['grads'], fit_res.num_examples) - for _, fit_res in results - ] - gradients_aggregated = aggregate_grad(grads_results) - - # net = Femnist_network() - net = StackedLSTM() - params_dict = zip(net.state_dict().keys(), weights_results[0][0]) - state_dict = OrderedDict({k: torch.tensor(v) for k, v in params_dict}) - net.load_state_dict(state_dict, strict=True) - # optimizer = torch.optim.Adam(list(net.parameters())+list(self.alpha), lr=0.0001, weight_decay=0.001) - optimizer = torch.optim.Adam(list(net.parameters()), lr=0.01) - for params, grad_ins, alphas in zip(net.parameters(), gradients_aggregated, self.alpha): - params.grad = torch.tensor(grad_ins).to(params.dtype) - alphas.grad = torch.tensor(grad_ins).to(params.dtype) - optimizer.step() - optimizer.zero_grad() - weights_prime = [val.cpu().numpy() for _, val in net.state_dict().items()] - - # weight_loss = sum([fit_res.metrics['loss'] * fit_res.num_examples for _, fit_res in results]) / sum( - # [fit_res.num_examples for _, fit_res in results]) - # wandb.log({"Training Loss": weight_loss}, step=server_round) - # log(INFO, f'Training Loss : {weight_loss}') + if self.algo == 'fedmeta(maml)': + grads_results = [ + (fit_res.metrics['grads'], fit_res.num_examples) + for _, fit_res in results + ] + gradients_aggregated = aggregate_grad(grads_results) + weights_prime = fedmeta_update_maml(self.net, self.beta, weights_results[0][0], gradients_aggregated) + parameters_aggregated = ndarrays_to_parameters(weights_prime) + + elif self.algo == 'fedmeta(meta-sgd)': + grads_results = [ + (fit_res.metrics['grads'], fit_res.num_examples) + for _, fit_res in results + ] + gradients_aggregated = aggregate_grad(grads_results) + weights_prime, update_alpha = fedmeta_update_meta_sgd(self.net, self.alpha, self.beta, weights_results[0][0], gradients_aggregated) + self.alpha = update_alpha + parameters_aggregated = ndarrays_to_parameters(weights_prime) # Aggregate custom metrics if aggregation fn was provided metrics_aggregated = {} @@ -203,8 +224,7 @@ def aggregate_fit( elif server_round == 1: # Only log this warning once log(WARNING, "No fit_metrics_aggregation_fn provided") - return ndarrays_to_parameters(weights_prime), metrics_aggregated - # return parameters_aggregated, metrics_aggregated + return parameters_aggregated, metrics_aggregated def aggregate_evaluate( self, @@ -229,7 +249,7 @@ def aggregate_evaluate( weight_loss = sum([evaluate_res.metrics['loss'] * evaluate_res.num_examples for _, evaluate_res in results]) / sum( [evaluate_res.num_examples for _, evaluate_res in results]) - wandb.log({"Training Loss": weight_loss}, step=server_round) + # wandb.log({"Training Loss": weight_loss}, step=server_round) log(INFO, f'Training Loss : {weight_loss}') # Aggregate custom metrics if aggregation fn was provided @@ -237,7 +257,7 @@ def aggregate_evaluate( if self.evaluate_metrics_aggregation_fn: eval_metrics = [(res.num_examples, res.metrics) for _, res in results] metrics_aggregated = self.evaluate_metrics_aggregation_fn(eval_metrics) - wandb.log({"Test_Accuracy ": round(metrics_aggregated['accuracy'] * 100, 3)}, step=server_round) + # wandb.log({"Test_Accuracy ": round(metrics_aggregated['accuracy'] * 100, 3)}, step=server_round) log(INFO, f'Test Accuracy : {round(metrics_aggregated["accuracy"] * 100, 3)}') elif server_round == 1: # Only log this warning once From 7a93f792904ae7c1e6782f9da856bf6c1b523c6f Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Fri, 29 Sep 2023 13:56:22 +0900 Subject: [PATCH 069/133] update ReadMe and remove wandb for experiments --- baselines/FedMeta/FedMeta/dataset.py | 2 +- .../FedMeta/FedMeta/dataset_preparation.py | 2 -- baselines/FedMeta/FedMeta/strategy.py | 17 ++-------- baselines/FedMeta/README.md | 34 ++++++++++++------- 4 files changed, 26 insertions(+), 29 deletions(-) diff --git a/baselines/FedMeta/FedMeta/dataset.py b/baselines/FedMeta/FedMeta/dataset.py index 434e70e1d0f7..a34c68689b28 100644 --- a/baselines/FedMeta/FedMeta/dataset.py +++ b/baselines/FedMeta/FedMeta/dataset.py @@ -11,7 +11,7 @@ from torch.utils.data import DataLoader, Dataset from omegaconf import DictConfig -from typing import Optional, Tuple +from typing import Tuple from dataset_preparation import _partition_data, split_train_validation_test_clients import numpy as np import torchvision.transforms as transforms diff --git a/baselines/FedMeta/FedMeta/dataset_preparation.py b/baselines/FedMeta/FedMeta/dataset_preparation.py index 3f932314740d..aac392c2d872 100644 --- a/baselines/FedMeta/FedMeta/dataset_preparation.py +++ b/baselines/FedMeta/FedMeta/dataset_preparation.py @@ -14,7 +14,6 @@ from sklearn.model_selection import train_test_split -# def _read_dataset() -> Dict[List, Dict, List]: def _read_dataset( path: str ) -> Tuple[List, DefaultDict]: @@ -109,7 +108,6 @@ def _partition_data( try: sup_x, qry_x, sup_y, qry_y = support_query_split(all_x, all_y, support_ratio) except Exception as e: - # print(f"Error occurred at iteration {user}: {e}") continue elif data_type == 'shakespeare': diff --git a/baselines/FedMeta/FedMeta/strategy.py b/baselines/FedMeta/FedMeta/strategy.py index a0f68bf8a008..4c33b8cb1f09 100644 --- a/baselines/FedMeta/FedMeta/strategy.py +++ b/baselines/FedMeta/FedMeta/strategy.py @@ -32,15 +32,6 @@ NDArrays, ) -import wandb - -# start a new wandb run to track this script -# wandb.init( -# # set the wandb project where this run will be logged -# project="SoR", -# -# ) - def fedmeta_update_meta_sgd(net, alpha, beta, weights_results, gradients_aggregated): params_dict = zip(net.state_dict().keys(), weights_results) @@ -70,6 +61,7 @@ def fedmeta_update_maml(net, beta, weights_results, gradients_aggregated): return weights_prime + def weighted_average(metrics: List[Tuple[int, Metrics]]) -> Metrics: """Aggregation function for weighted average during evaluation. @@ -127,7 +119,6 @@ def configure_fit( self, server_round: int, parameters: Parameters, client_manager: ClientManager ) -> List[Tuple[ClientProxy, FitIns]]: """Configure the next round of training.""" - # alpha_list = [param.data for param in self.alpha] config = {"alpha" : self.alpha, "algo": self.algo, "data": self.data} if self.on_fit_config_fn is not None: # Custom fit config function provided @@ -249,16 +240,14 @@ def aggregate_evaluate( weight_loss = sum([evaluate_res.metrics['loss'] * evaluate_res.num_examples for _, evaluate_res in results]) / sum( [evaluate_res.num_examples for _, evaluate_res in results]) - # wandb.log({"Training Loss": weight_loss}, step=server_round) - log(INFO, f'Training Loss : {weight_loss}') + log(INFO, f'Loss : {weight_loss}') # Aggregate custom metrics if aggregation fn was provided metrics_aggregated = {} if self.evaluate_metrics_aggregation_fn: eval_metrics = [(res.num_examples, res.metrics) for _, res in results] metrics_aggregated = self.evaluate_metrics_aggregation_fn(eval_metrics) - # wandb.log({"Test_Accuracy ": round(metrics_aggregated['accuracy'] * 100, 3)}, step=server_round) - log(INFO, f'Test Accuracy : {round(metrics_aggregated["accuracy"] * 100, 3)}') + log(INFO, f'Accuracy : {round(metrics_aggregated["accuracy"] * 100, 3)}') elif server_round == 1: # Only log this warning once log(WARNING, "No evaluate_metrics_aggregation_fn provided") diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index d4cfccb47ec6..1ac6441bde24 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -73,25 +73,35 @@ dataset: [FEMNIST, SHAKESPEARE] # list of datasets you include in your baseline ./preprocess.sh -s niid --iu 1068 --sf 0.3 -k 0 -t sample #SHAKESEPEARE dataset Download command for these experiments -./preprocess.sh -s niid --iu 1068 --sf 0.3 -k 0 -t sample +./preprocess.sh -s niid --sf 0.16 -k 0 -t sample ```` - +****Start experiments**** : ```bash -# The main experiment implemented in your baseline using default hyperparameters (that should be setup in the Hydra configs) should run (including dataset download and necessary partitioning) by executing the command: +# FedAvg + Femnist Dataset +python main.py algo=fedavg data=femnist path=(your leaf dataset path)/leaf/data/shakespeare/data + +# FedAvg(Meta) + Femnist Dataset +python main.py algo=fedavg_meta data=femnist path=(your leaf dataset path)/leaf/data/shakespeare/data + +# FedMeta(MAML) + Femnist Dataset +python main.py algo=fedmeta_maml data=femnist path=(your leaf dataset path)/leaf/data/shakespeare/data + +# FedMeta(Meta-SGD) + Femnist Dataset +python main.py algo=fedmeta_meta_sgd data=femnist path=(your leaf dataset path)/leaf/data/shakespeare/data + -poetry run -m .main # where is the name of this directory and that of the only sub-directory in this directory (i.e. where all your source code is) -# If you are using a dataset that requires a complicated download (i.e. not using one natively supported by TF/PyTorch) + preprocessing logic, you might want to tell people to run one script first that will do all that. Please ensure the download + preprocessing can be configured to suit (at least!) a different download directory (and use as default the current directory). The expected command to run to do this is: +#FedAvg + Shakespeare Dataset +python main.py algo=fedavg data=shakespeare path=(your leaf dataset path)/leaf/data/shakespeare/data -poetry run -m .dataset_preparation +#FedAvg(Meta) + Shakespeare Dataset +python main.py algo=fedavg_meta data=shakespeare path=(your leaf dataset path)/leaf/data/shakespeare/data -# It is expected that you baseline supports more than one dataset and different FL settings (e.g. different number of clients, dataset partitioning methods, etc). Please provide a list of commands showing how these experiments are run. Include also a short explanation of what each one does. Here it is expected you'll be using the Hydra syntax to override the default config. +#FedMeta(MAML) + Shakespeare Dataset +python main.py algo=fedmeta_maml data=shakespeare path=(your leaf dataset path)/leaf/data/shakespeare/data -poetry run -m .main -. -. -. -poetry run -m .main +#FedMeta(Meta-SGD) + Shakespeare Dataset +python main.py algo=fedmeta_meta_sgd data=shakespeare path=(your leaf dataset path)/leaf/data/shakespeare/data ``` From 5e63db7329707e24844d47b1fc20d2db396313a3 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Sun, 1 Oct 2023 09:07:07 +0900 Subject: [PATCH 070/133] Update Fedmeta --- .../FedMeta/FedMeta/Fedmeta_client_manager.py | 28 ++- baselines/FedMeta/FedMeta/client.py | 46 +++-- .../FedMeta/conf/algo/fedavg_meta.yaml | 2 +- .../FedMeta/conf/algo/fedmeta_maml.yaml | 2 +- .../FedMeta/conf/algo/fedmeta_meta_sgd.yaml | 2 +- baselines/FedMeta/FedMeta/dataset.py | 58 ++++-- .../FedMeta/FedMeta/dataset_preparation.py | 74 +++++++- baselines/FedMeta/FedMeta/main.py | 27 ++- baselines/FedMeta/FedMeta/models.py | 166 +++++++++++++----- .../shakespeare/graph_params/result_graph.png | Bin 0 -> 117804 bytes baselines/FedMeta/FedMeta/strategy.py | 142 +++++++++++---- baselines/FedMeta/FedMeta/utils.py | 160 +++++++++++++---- baselines/FedMeta/README.md | 15 +- 13 files changed, 563 insertions(+), 159 deletions(-) create mode 100644 baselines/FedMeta/FedMeta/shakespeare/graph_params/result_graph.png diff --git a/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py b/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py index ca27eac8ed16..2b472e13a9e7 100644 --- a/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py +++ b/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py @@ -12,11 +12,35 @@ def __init__(self, min_evaluate_clients): self.min_evaluate_clients = min_evaluate_clients """Criterion to select evaluate clients.""" - def select(self, valid_client: int) -> bool: + def select( + self, + valid_client: int + ) -> List: + """ + Clients to be used in evaluation should be sampled from the validation client list. + + Parameters + ---------- + valid_client : int + Length of validation client list + + Returns + ------- + Return client cid list + + """ return [str(result) for result in range(0, valid_client)] class Fedmeta_client_manager(SimpleClientManager): + + """ + In the fit phase, clients must be sampled from the training client list. + And in the evaluate stage, clients must be sampled from the validation client list. + So we modify 'Fedmeta_client_manager' to sample clients from [cid: List] for each list. + + """ + def __init__(self, valid_client, **kwargs): super().__init__(**kwargs) self.valid_client = valid_client @@ -29,10 +53,12 @@ def sample( criterion: Optional[Criterion] = None, ) -> List[ClientProxy]: """Sample a number of Flower ClientProxy instances.""" + # Block until at least num_clients are connected. if min_num_clients is None: min_num_clients = num_clients self.wait_for(min_num_clients) + # Sample clients which meet the criterion available_cids = list(self.clients) if criterion is not None: diff --git a/baselines/FedMeta/FedMeta/client.py b/baselines/FedMeta/FedMeta/client.py index 5cd045bb908b..72e6e672a306 100644 --- a/baselines/FedMeta/FedMeta/client.py +++ b/baselines/FedMeta/FedMeta/client.py @@ -15,6 +15,7 @@ from models import train, test, train_meta, test_meta + class FlowerClient( fl.client.NumPyClient ): @@ -54,8 +55,12 @@ def fit( """Implements distributed fit function for a given client.""" self.set_parameters(parameters) algo = config["algo"] + + # Total number of data for Weighted Avg and Grad total_len = len(self.trainloaders['qry'][self.cid].dataset) + len(self.trainloaders['sup'][self.cid].dataset) - if algo == 'fedavg' or algo == 'fedavg(meta)': + + # FedAvg & FedAvg(Meta) train basic Learning + if algo == 'fedavg' or algo == 'fedavg_meta': loss = train( self.net, self.trainloaders['sup'][self.cid], @@ -64,9 +69,10 @@ def fit( epochs=self.num_epochs, learning_rate=self.learning_rate ) - return self.get_parameters({}), total_len, {"loss" : loss} + return self.get_parameters({}), total_len, {"loss": loss} - elif algo == 'fedmeta(maml)' or algo == 'fedmeta(meta-sgd)': + # FedMeta(MAML) & FedMeta(Meta-SGD) train inner and outer loop + elif algo == 'fedmeta_maml' or algo == 'fedmeta_meta_sgd': alpha = config["alpha"] loss, grads = train_meta( self.net, @@ -83,22 +89,27 @@ def evaluate( ) -> Tuple[float, int, Dict]: """Implements distributed evaluation for a given client.""" self.set_parameters(parameters) + + # Total number of data for Weighted Avg and Grad total_len = len(self.valloaders['qry'][self.cid].dataset) + len(self.valloaders['sup'][self.cid].dataset) - if config["algo"] == 'fedavg' or config["algo"] == 'fedavg(meta)': - loss, accuracy, total = test( - self.net, - self.valloaders['sup'][self.cid], - self.valloaders['qry'][self.cid], - self.device, - config["algo"], - config["data"], - learning_rate=self.learning_rate, + + # FedAvg & FedAvg(Meta) train basic Learning + if config["algo"] == 'fedavg' or config["algo"] == 'fedavg_meta': + loss, accuracy = test( + self.net, + self.valloaders['sup'][self.cid], + self.valloaders['qry'][self.cid], + self.device, + config["algo"], + config["data"], + learning_rate=self.learning_rate, ) return float(loss), total_len, {"correct": accuracy, "loss": loss} - elif config["algo"] == 'fedmeta(maml)' or config["algo"] == 'fedmeta(meta-sgd)': + # FedMeta(MAML) & FedMeta(Meta-SGD) train inner and outer loop + elif config["algo"] == 'fedmeta_maml' or config["algo"] == 'fedmeta_meta_sgd': alpha = config["alpha"] - loss, accuracy, total = test_meta( + loss, accuracy = test_meta( self.net, self.valloaders['sup'][self.cid], self.valloaders['qry'][self.cid], @@ -116,7 +127,7 @@ def gen_client_fn( learning_rate: float, model: DictConfig, gradient_step: int, -) -> Callable[[str], FlowerClient]: # pylint: disable=too-many-arguments +) -> Callable[[str], FlowerClient]: """Generates the client function that creates the Flower Clients. @@ -131,8 +142,13 @@ def gen_client_fn( valloaders: List[DataLoader] A list of DataLoaders, each pointing to the dataset validation partition belonging to a particular client. + model: DictConfig + The global Model for Federated Learning. learning_rate : float The learning rate for the SGD optimizer of clients. + gradient_step : int + The gradient step for Meta Learning of clients. + FedAvg and FedAvg(Meta) is None Returns ------- diff --git a/baselines/FedMeta/FedMeta/conf/algo/fedavg_meta.yaml b/baselines/FedMeta/FedMeta/conf/algo/fedavg_meta.yaml index 01bcb0d8f218..928fd0a96cb9 100644 --- a/baselines/FedMeta/FedMeta/conf/algo/fedavg_meta.yaml +++ b/baselines/FedMeta/FedMeta/conf/algo/fedavg_meta.yaml @@ -3,7 +3,7 @@ # Please follow the provided structure (this will ensuring all baseline follow # a similar configuration structure and hence be easy to customise) -algo: fedavg(meta) +algo: fedavg_meta femnist: alpha: 0.0001 beta: None diff --git a/baselines/FedMeta/FedMeta/conf/algo/fedmeta_maml.yaml b/baselines/FedMeta/FedMeta/conf/algo/fedmeta_maml.yaml index 1f6d0586bdad..2c3c86df4edb 100644 --- a/baselines/FedMeta/FedMeta/conf/algo/fedmeta_maml.yaml +++ b/baselines/FedMeta/FedMeta/conf/algo/fedmeta_maml.yaml @@ -3,7 +3,7 @@ # Please follow the provided structure (this will ensuring all baseline follow # a similar configuration structure and hence be easy to customise) -algo: fedmeta(maml) +algo: fedmeta_maml femnist: alpha: 0.001 beta: 0.0001 diff --git a/baselines/FedMeta/FedMeta/conf/algo/fedmeta_meta_sgd.yaml b/baselines/FedMeta/FedMeta/conf/algo/fedmeta_meta_sgd.yaml index ebb53dd602a2..cb72f1fe6e2c 100644 --- a/baselines/FedMeta/FedMeta/conf/algo/fedmeta_meta_sgd.yaml +++ b/baselines/FedMeta/FedMeta/conf/algo/fedmeta_meta_sgd.yaml @@ -3,7 +3,7 @@ # Please follow the provided structure (this will ensuring all baseline follow # a similar configuration structure and hence be easy to customise) -algo: fedmeta(meta-sgd) +algo: fedmeta_meta_sgd femnist: alpha: 0.001 beta: 0.0001 diff --git a/baselines/FedMeta/FedMeta/dataset.py b/baselines/FedMeta/FedMeta/dataset.py index a34c68689b28..08b6de853742 100644 --- a/baselines/FedMeta/FedMeta/dataset.py +++ b/baselines/FedMeta/FedMeta/dataset.py @@ -21,6 +21,16 @@ class ShakespeareDataset(Dataset): def __init__(self, data): + """ + [LEAF: A Benchmark for Federated Settings](https://github.com/TalwalkarLab/leaf) + + We imported the preprocessing method for the Shakespeare dataset from GitHub. + + word_to_indices : returns a list of character indices + sentences_to_indices : returns one-hot vector with given size and value 1 at given index + letter_to_vec : returns one-hot representation of given letter + + """ sentence, label = data['x'], data['y'] sentences_to_indices = [word_to_indices(word) for word in sentence] sentences_to_indices = np.array(sentences_to_indices) @@ -37,6 +47,10 @@ def __getitem__(self, index): class FemnistDataset(Dataset): def __init__(self, dataset, transform): + """ + Using FemnistDataset for CNN_network() + + """ self.x = dataset['x'] self.y = dataset['y'] self.transform = transform @@ -52,10 +66,32 @@ def __len__(self): return len(self.y) -def load_datasets( # pylint: disable=too-many-arguments - config: DictConfig, - path: str, +def load_datasets( + config: DictConfig, + path: str, ) -> Tuple[DataLoader, DataLoader, DataLoader]: + """ + Creates the dataloaders to be fed into the model. + + Parameters + ---------- + config: DictConfig + Parameterises the dataset partitioning process + batch_size : int + The size of the batches to be fed into the model, + by default 10 + support_ratio : float + The ratio of Support set for each client.(between 0 and 1) + by default 0.2 + path : str + The path where the leaf dataset was downloaded + + Returns + ------- + Tuple[DataLoader, DataLoader, DataLoader] + The DataLoader for training, the DataLoader for validation, the DataLoader for testing. + + """ dataset = _partition_data( data_type=config.data, @@ -63,6 +99,7 @@ def load_datasets( # pylint: disable=too-many-arguments support_ratio=config.support_ratio ) + # Client list : 0.8, 0.1, 0.1 clients_list = split_train_validation_test_clients( dataset[0]['users'] ) @@ -76,7 +113,8 @@ def load_datasets( # pylint: disable=too-many-arguments transform = transforms.Compose([transforms.ToTensor()]) for user in clients_list[0]: trainloaders['sup'].append( - DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=config.batch_size, shuffle=True)) + DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=config.batch_size, + shuffle=True)) trainloaders['qry'].append( DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=config.batch_size)) for user in clients_list[1]: @@ -93,21 +131,21 @@ def load_datasets( # pylint: disable=too-many-arguments elif data_type == 'shakespeare': for user in clients_list[0]: trainloaders['sup'].append( - DataLoader(ShakespeareDataset(dataset[0]['user_data'][user]), batch_size=config.batch_size, shuffle=True)) + DataLoader(ShakespeareDataset(dataset[0]['user_data'][user]), batch_size=config.batch_size, + shuffle=True)) trainloaders['qry'].append( DataLoader(ShakespeareDataset(dataset[1]['user_data'][user]), batch_size=config.batch_size)) for user in clients_list[1]: valloaders['sup'].append( - DataLoader(ShakespeareDataset(dataset[0]['user_data'][user]), batch_size=config.batch_size, shuffle=True)) + DataLoader(ShakespeareDataset(dataset[0]['user_data'][user]), batch_size=config.batch_size, + shuffle=True)) valloaders['qry'].append( DataLoader(ShakespeareDataset(dataset[1]['user_data'][user]), batch_size=config.batch_size)) for user in clients_list[2]: testloaders['sup'].append( - DataLoader(ShakespeareDataset(dataset[0]['user_data'][user]), batch_size=config.batch_size, shuffle=True)) + DataLoader(ShakespeareDataset(dataset[0]['user_data'][user]), batch_size=config.batch_size, + shuffle=True)) testloaders['qry'].append( DataLoader(ShakespeareDataset(dataset[1]['user_data'][user]), batch_size=config.batch_size)) return trainloaders, valloaders, testloaders - - - diff --git a/baselines/FedMeta/FedMeta/dataset_preparation.py b/baselines/FedMeta/FedMeta/dataset_preparation.py index aac392c2d872..ac0c642a1dac 100644 --- a/baselines/FedMeta/FedMeta/dataset_preparation.py +++ b/baselines/FedMeta/FedMeta/dataset_preparation.py @@ -16,13 +16,20 @@ def _read_dataset( path: str -) -> Tuple[List, DefaultDict]: - """Read (if necessary) and returns the leaf dataset. +) -> Tuple[List, DefaultDict, List]: + """ + Read (if necessary) and returns the leaf dataset. + + Parameters + ---------- + path : str + The path where the leaf dataset was downloaded Returns ------- - Tuple[user, data[x,y]] - The dataset for training and the dataset for testing Femnist. + Tuple[user, data[x,y], num_total_data] + The dataset for training and the dataset for testing. + """ users = [] data = defaultdict(lambda: None) @@ -45,7 +52,26 @@ def support_query_split( data: DefaultDict, label: List, support_ratio: float, -): +) -> Tuple[List, List, List, List]: + """ + Separate support set and query set + + Parameters + ---------- + data: DefaultDict, + Raw all Datasets + label: List, + Raw all Labels + support_ratio : float + The ratio of Support set for each client.(between 0 and 1) + by default 0.2 + + Returns + ------- + Tuple[List, List, List, List] + Support set and query set classification of data and labels + + """ x_train, x_test, y_train, y_test = train_test_split(data, label, train_size=support_ratio, stratify=label, random_state=42) @@ -57,7 +83,26 @@ def split_train_validation_test_clients( train_rate: Optional[float] = 0.8, val_rate: Optional[float] = 0.1, ) -> Tuple[List[str], List[str], List[str]]: + """ + Classification of all clients into train clients, valid clients, and test clients + + Parameters + ---------- + clients: List, + Full list of clients for the sampled leaf dataset. + train_rate: float, optional + The ratio of training clients to total clients + by default 0.8 + val_rate: float, optional + The ratio of validation clients to total clients + by default 0.1 + + Returns + ------- + Tuple[List, List, List] + List of each train client, valid client, and test client + """ np.random.seed(42) train_rate = int(train_rate * len(clients)) val_rate = int(val_rate * len(clients)) @@ -77,7 +122,25 @@ def _partition_data( dir_path: str, support_ratio: float, ) -> Tuple[Dict, Dict]: + """ + Classification of support sets and query sets by client + + Parameters + ---------- + data_type: str, + The type of femnist for classification or shakespeare for regression + dir_path: str, + The path where the leaf dataset was downloaded + support_ratio: float, + The ratio of Support set for each client.(between 0 and 1) + by default 0.2 + Returns + ------- + Tuple[Dict, Dict] + Return support set and query set for total data + + """ train_path = f'{dir_path}/train' test_path = f'{dir_path}/test' @@ -105,6 +168,7 @@ def _partition_data( all_x = all_x[mask] all_y = all_y[mask] + # Client filtering for support set and query set classification try: sup_x, qry_x, sup_y, qry_y = support_query_split(all_x, all_y, support_ratio) except Exception as e: diff --git a/baselines/FedMeta/FedMeta/main.py b/baselines/FedMeta/FedMeta/main.py index e88086e7ac4e..58ba5d8a4185 100644 --- a/baselines/FedMeta/FedMeta/main.py +++ b/baselines/FedMeta/FedMeta/main.py @@ -3,17 +3,18 @@ It includes processioning the dataset, instantiate strategy, specify how the global model is going to be evaluated, etc. At the end, this script saves the results. """ -# these are the basic packages you'll need here -# feel free to remove some if aren't needed + import hydra +from hydra.core.hydra_config import HydraConfig from omegaconf import DictConfig, OmegaConf from hydra.utils import instantiate from strategy import weighted_average from dataset import load_datasets from Fedmeta_client_manager import Fedmeta_client_manager - +import os import flwr as fl import client +from utils import save_graph_params, plot_from_pkl @hydra.main(config_path="conf", config_name="config", version_base=None) @@ -24,6 +25,10 @@ def main(cfg: DictConfig) -> None: ---------- cfg : DictConfig An omegaconf object that stores the hydra config. + + algo : FedAvg, FedAvg(Meta), FedMeta(MAML), FedMeta(Meta-SGD) + data : Femnist, Shakespeare + """ # print config structured as YAML print(OmegaConf.to_yaml(cfg)) @@ -74,6 +79,22 @@ def main(cfg: DictConfig) -> None: # can retrieve the path to that directory with this: # save_path = HydraConfig.get().runtime.output_dir + print("................") + print(history) + output_path = HydraConfig.get().runtime.cwd + '/' + cfg.data.data + '/graph_params' + os.makedirs(output_path, exist_ok=True) + + data_params = { + "algo": cfg.algo.algo, + "data": cfg.data.data, + "loss": history.losses_distributed, + "accuracy": history.metrics_distributed, + "path": output_path + } + + save_graph_params(data_params) + plot_from_pkl(directory=f"./{cfg.data.data}/graph_params") + print("................") if __name__ == "__main__": main() diff --git a/baselines/FedMeta/FedMeta/models.py b/baselines/FedMeta/FedMeta/models.py index 5a6a473844fb..51f28e1f7e52 100644 --- a/baselines/FedMeta/FedMeta/models.py +++ b/baselines/FedMeta/FedMeta/models.py @@ -6,7 +6,7 @@ the python code at all """ -from typing import Tuple +from typing import Tuple, List import torch import torch.nn as nn @@ -15,6 +15,15 @@ class StackedLSTM(nn.Module): + """ + StackedLSTM architecture. + + As described in Fei Chen 2018 paper : + + [FedMeta: Federated Meta-Learning with Fast Convergence and Efficient Communication] + (https://arxiv.org/abs/1802.07876) + + """ def __init__(self): super(StackedLSTM, self).__init__() @@ -23,6 +32,20 @@ def __init__(self): self.fc = nn.Linear(256, 80) def forward(self, text): + """ + Forward pass of the StackedLSTM. + + Parameters + ---------- + text : torch.Tensor + Input Tensor that will pass through the network + + Returns + ------- + torch.Tensor + The resulting Tensor after it has passed through the network + + """ embedded = self.embedding(text) self.lstm.flatten_parameters() lstm_out, _ = self.lstm(embedded) @@ -31,12 +54,14 @@ def forward(self, text): class CNN_network(nn.Module): - """Convolutional Neural Network architecture. + """ + Convolutional Neural Network architecture. + + As described in Fei Chen 2018 paper : - As described in McMahan 2017 paper : + [FedMeta: Federated Meta-Learning with Fast Convergence and Efficient Communication] + (https://arxiv.org/abs/1802.07876) - [Communication-Efficient Learning of Deep Networks from - Decentralized Data] (https://arxiv.org/pdf/1602.05629.pdf) """ def __init__(self) -> None: @@ -48,20 +73,19 @@ def __init__(self) -> None: self.linear1 = nn.Linear(7 * 7 * 64, 2048) self.linear2 = nn.Linear(2048, 62) - - def forward(self, x: torch.Tensor) -> torch.Tensor: """Forward pass of the CNN. Parameters ---------- - input_tensor : torch.Tensor + x : torch.Tensor Input Tensor that will pass through the network Returns ------- torch.Tensor The resulting Tensor after it has passed through the network + """ x = torch.relu(self.conv1(x)) x = self.maxpool1(x) @@ -73,7 +97,7 @@ def forward(self, x: torch.Tensor) -> torch.Tensor: return x -def train( # pylint: disable=too-many-arguments +def train( net: nn.Module, trainloader: DataLoader, testloader: DataLoader, @@ -81,7 +105,8 @@ def train( # pylint: disable=too-many-arguments epochs: int, learning_rate: float, ) -> Tuple[float]: - """Train the network on the training set. + """ + Train the network on the training set. Parameters ---------- @@ -89,12 +114,21 @@ def train( # pylint: disable=too-many-arguments The neural network to train. trainloader : DataLoader The DataLoader containing the data to train the network on. + testloader : DataLoader + The DataLoader containing the data to test the network on. device : torch.device The device on which the model should be trained, either 'cpu' or 'cuda'. epochs : int The number of epochs the model should be trained for. learning_rate : float - The learning rate for the SGD optimizer. + The learning rate for the optimizer. + + Returns + ------- + nn.Module + The model that has been trained for one epoch. + loss + The Loss that bas been trained for one epoch """ criterion = torch.nn.CrossEntropyLoss() optimizer = torch.optim.Adam(net.parameters(), lr=learning_rate, weight_decay=0.001) @@ -106,7 +140,7 @@ def train( # pylint: disable=too-many-arguments return loss -def _train_one_epoch( # pylint: disable=too-many-arguments +def _train_one_epoch( net: nn.Module, trainloader: DataLoader, device: torch.device, @@ -132,6 +166,9 @@ def _train_one_epoch( # pylint: disable=too-many-arguments ------- nn.Module The model that has been trained for one epoch. + total_loss + The Loss that has been trained for one epoch. + """ total_loss = 0.0 @@ -153,27 +190,37 @@ def test( device: torch.device, algo: str, data: str, - learning_rate: float, + learning_rate: float, ) -> Tuple[float, float]: - """Evaluate the network on the entire test set. + """ + Evaluate the network on the entire test set. Parameters ---------- net : nn.Module The neural network to test. + trainloader: DataLoader, + The DataLoader containing the data to train the network on. testloader : DataLoader The DataLoader containing the data to test the network on. device : torch.device The device on which the model should be tested, either 'cpu' or 'cuda'. + algo: str + The Algorithm of Federated Learning + data: str + The training data type of Federated Learning + learning_rate: float + The learning rate for the optimizer. Returns ------- Tuple[float, float] The loss and the accuracy of the input model on the given data. + """ criterion = torch.nn.CrossEntropyLoss() - if algo == 'fedavg(meta)': + if algo == 'fedavg_meta': total_loss = 0.0 optimizer = torch.optim.Adam(net.parameters(), lr=learning_rate, weight_decay=0.001) net.train() @@ -209,31 +256,43 @@ def test( raise ValueError("Testloader can't be 0, exiting...") loss /= len(testloader.dataset) accuracy = correct / total - return loss, accuracy, total -# -# -def train_meta( # pylint: disable=too-many-arguments + return loss, accuracy + + +def train_meta( net: nn.Module, supportloader: DataLoader, queryloader: DataLoader, alpha, device: torch.device, - gradient_step: int -) -> Tuple[float]: + gradient_step: int, +) -> Tuple[float, List]: """Train the network on the training set. Parameters ---------- net : nn.Module The neural network to train. - trainloader : DataLoader - The DataLoader containing the data to train the network on. + supportloader : DataLoader + The DataLoader containing the data to inner loop train the network on. + queryloader : DataLoader + The DataLoader containing the data to outer loop train the network on. + alpha : int + The learning rate for the optimizer. device : torch.device The device on which the model should be trained, either 'cpu' or 'cuda'. - epochs : int - The number of epochs the model should be trained for. - learning_rate : float - The learning rate for the SGD optimizer. + gradient_step : int + The number of inner loop learning + + Returns + ------- + nn.Module + The model that has been trained for one meta epoch. + total_loss + The Loss that has been trained for one epoch. + grads + The gradients that has been trained for one epoch. + """ criterion = torch.nn.CrossEntropyLoss() for _ in range(1): @@ -243,34 +302,44 @@ def train_meta( # pylint: disable=too-many-arguments return loss, grads -def _train_meta_one_epoch( # pylint: disable=too-many-arguments +def _train_meta_one_epoch( net: nn.Module, supportloader: DataLoader, queryloader: DataLoader, - alpha, + alpha: torch.nn.ParameterList, criterion: torch.nn.CrossEntropyLoss, device: torch.device, gradient_step: int, ) -> nn.Module: - """Train for one epoch. + """ + Train for one epoch. Parameters ---------- net : nn.Module The neural network to train. - trainloader : DataLoader - The DataLoader containing the data to train the network on. - device : torch.device - The device on which the model should be trained, either 'cpu' or 'cuda'. + supportloader : DataLoader + The DataLoader containing the data to inner loop train the network on. + queryloader : DataLoader + The DataLoader containing the data to outer loop train the network on. + alpha : torch.nn.ParameterList + The learning rate for the optimizer. criterion : torch.nn.CrossEntropyLoss The loss function to use for training - optimizer : torch.optim.Adam - The optimizer to use for training + device : torch.device + The device on which the model should be trained, either 'cpu' or 'cuda'. + gradient_step : int + The number of inner loop learning Returns ------- nn.Module - The model that has been trained for one epoch. + The model that has been trained for one meta epoch. + total_loss + The Loss that has been trained for one epoch. + grads + The gradients that has been trained for one epoch. + """ num_adaptation_steps = gradient_step train_net = deepcopy(net) @@ -311,28 +380,35 @@ def _train_meta_one_epoch( # pylint: disable=too-many-arguments p.grad.zero_() grads = [g.cpu().numpy() for g in grads] - average_adaptation_loss = sum(sup_total_loss) / sum(sup_num_sample) - return average_adaptation_loss, grads -# -# + loss = sum(sup_total_loss) / sum(sup_num_sample) + return loss, grads + + def test_meta( net: nn.Module, supportloader: DataLoader, queryloader: DataLoader, - alpha, + alpha: torch.nn.ParameterList, device: torch.device, gradient_step: int, ) -> Tuple[float, float]: - """Evaluate the network on the entire test set. + """ + Evaluate the network on the entire test set. Parameters ---------- net : nn.Module The neural network to test. - testloader : DataLoader + supportloader : DataLoader + The DataLoader containing the data to test the network on. + queryloader : DataLoader The DataLoader containing the data to test the network on. + alpha : torch.nn.ParameterList + The learning rate for the optimizer. device : torch.device The device on which the model should be tested, either 'cpu' or 'cuda'. + gradient_step : int + The number of inner loop learning Returns ------- @@ -376,6 +452,6 @@ def test_meta( raise ValueError("Testloader can't be 0, exiting...") loss = loss / total accuracy = correct / total - return loss, accuracy, total + return loss, accuracy diff --git a/baselines/FedMeta/FedMeta/shakespeare/graph_params/result_graph.png b/baselines/FedMeta/FedMeta/shakespeare/graph_params/result_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..9c4661b71097b9347e050ee8e5dc5ebfcc07af31 GIT binary patch literal 117804 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

;Ql` zS+8mUl-$bZ$Tm!O2e8FRu}-%D?E>Vq9hF-u9J@;hXDHCZP6N3$dzk8OIlZ06!o9D~ zG9Znn9P!J)Z-A(k{0qDLmA%Y6dU_D^5>T&zR82Ka9FI@mnHtb#(Nv)q+b~p(vPSTLinXdM8;@^mV$qjlQ7u~98#nZJS47vE(E&sRQhO~--`}PBN z%Dr;HF97uF9-yYsZ?G3D9S5wwp>wHWKw?3oL10wA2&O6W%r2{UiKry0jD5S9UQ0$25ei?Dc^nhJ0Kf99^UY}?-G>>$trf4Hn_CUvQ%e3VQ>w9k2K&{} zj&RO6_1Ii;9xpROXbw#~9CDKeU38s{NP$3%*yX~Y`5=U*YQCZs%e8pGr1HHrkCawE z5UDQa*K#9_lE}T%`u@Iv-)XG7i4|C+%~i*T0X@cz-x!{rEK?rPMc(<3tz-3|->@-= z`!F1AnB6 z1+-Fu-*UO)A&`&$u?Qjt9N-n!^?~ojdKPEk{6}=o2Z~5n;6on@K6=zr2=D5ue%=Ft zDUXhqWTfE~zaoT)?*8r74C>Zvq1}Ru1RBTF2}BR+maw%I10>nnI{-c%@D7TJnh?HVuLm@%%bD0*O)^}k2RUCE~|7o+Mvocc( zmu+Hp-Byl-Sy*(LZUxfP%T3hn_X&H@HaDcHIjfuxQeSEy5>)w%1}5q?a81+VVm4+V zTp9-N@7F|jGf%vdrHB427=F(+HC*uX>^Y|zd?lClDuzus8L;PYC(O%&^b8c+dR4m) zg`fnM@ts5w7qkd5Kg92#@B41>tw8VW$ulwuOJ9o7WQEP2*#xbQH$)+8kr@I-H(Y?# z)duKf=-C%FSuX&+n(f^v(GV>d%~AidWkU=*+f20Ul^0OPXkY)Hq0tAP)St_T-=(-2 zA#KOhXzz-?9$L<+w2oESX}PK0Own(uFW{eTq?C(`sIX8uUvKj-k;j5m29Y zmtdijcu?leZIP1^aDUY7zek0U6J$sF+0<#Dm{(vPpK;Z@LY*qYb^`YZ_=n!IcdEiGL!pJzVD;`O&{?g;$M+}UeR@?FK zMx1P_RE-mdQc8y=-n4I0Fn>xc2AF&=%EAka5lio{EeR2!pz=|w1nS&i`fjhp%=B45$8B|NIzQ^TP6n!p~X<+uAxOqCYl$ z5Y+r3j;)}dEZ|g51w%w zD7%TMJQTovwm%0|M|RwS%+yQ`xO2Yk*f~EHD&hD73@Q`wxL>}fnLaaQPpyug82u4F zOkvWYTutGJRX(6rZ!#K&rj#W3f5R!06wMf1(O<#lAICbE5X4NftTVQ9UzL_qVe!>a ztUh4s)AqJ~cd_;$lf0ual~AANz+5kgsXoJ}=Kt+{d?EztiL_u-|E;+KRkYIQpP5`gkKqLw?cd{-4L*9$3n3&t z`0x=RA!Zq>GI(Li^2MN<4J9t+pT4~_W6Kc&5@M2?!Gk7#nee276Z4g**QxF(ZjAky z3qG*E5F=>?J`LzkAPV@`__{1v_w^B5I%j|TD#yjR|g;$`lybkp*~e{sxL|93Wx6| zus`0nzQurn9zY+`iVF_&VE9_e4?=K3`0fCZ|#HZPxF+}e{M@Xow*7VEA3NFyh*y5`IQMMk43(Tow#A>IwB|7WwuD|HHBVBeQ1_rG`v)7!2aa?UcJ#41({w-f% zJ0ecZO7S|vI{1dX^#;bU42g%ZX4o0BvVQm&R@TCg0FlI;*!i~sQY(vQeuLe5l{l(7 z?{BWY2HpH4M>+_aoL_8ulA^?0ij%>(+P~$<~4x! zf^bp}f%PU}8wZKKRRhLKOj8edXd6l2qyqH-ntlPUJTj3~i*G_;N32+0w;Z@f$Gt^g z>w8&%dSVJ<)x>1VF(U;+bWmU7HYx-GeSJEFuabLbQ>iqbi@QT@3ot-&naFIdUY=qiJpNNSLrl1oyEBR*ePuoM zDYVf0+DBv8pVw`bUnZWz+Z&|yX@s0ytVh$p5D3lZAbrSWDns1!=r_m|Pn=oe@G&Y& zW+IsMc4ZiM*HW7?y|9p3zQBgxJa#d;mIhvHU}5^Q0U9kHW2w~3dyo31tg#tf0SU25 z@R-?{{f2-yDQL442Ai~)1Ogqas$@Xr8bw1Ss!XijSG4IM14Fi;WtU`$N8q418CwE#4IK2VJe)uli^Csw|s&g%7~Q zd3m~4XqRw_G{w!vHP8$2dFZuV@s0hTJugR0db8u>&tU;+@;8C|*pxc3eV~~FpZdzz zH^j!id`m34{lv&Gum8MB?Eg&kQWwlh%ZB~4mUZIikEr@9Mag_{`zw9i+cPw23}O=* z6)P`SwhZWlS?5axZtelq3trm~DTt5#9|J&;Q5ROyn`o+hU)!bp9j;s;aJXM|JKE^x zY?!&!TGtRn7j)UH?B#XB27o%Iy^~F-PH|)76otrz-caUec1YSYB4sW6smgP@UqFH@ z*#Ug9g0C!|s6Th{0wTN|Wc!j+WP@eYyS9(-Uk}6s3rzICdQb>H`sHq%vi%@&( zx{;~2x~HFHZ|<{~ItC$h1MP%>tQakoAE*)x(eqiJur zyAxn=yK}yI$7YDdkI8^Z!DlG-kB3DMl#PlduMP8#zoqAhEtO4rs`X#= z-G*IPuptJ3Oaag_0yHj`wpRK&z7wKLEuaw?wNSDJqfmh8ShXkI!H8SgE3z`qlZBE3 zG2>I$^WXk)yRcYmXcds&LwFsf0dHh;@?2%snKpVAATk?T1#p#KBfj35*~Z6?`rtB9 zF7)CBUr1`s3B(;I^R0uT-^%pTwBY?W5rLGD&kHqEO9(+j3?7TiLt~tw9K8PQA82DD zV1Nd;#ELfnoMQXQ$HL+HJ_LA{hVd;!OW$Jv2^^ab*hQEZQvvOZ=|=Zg5jtl*ikHH7 zAMfT?SEo(jhUh4^cH~}$V{A13;7tqe8K@%5v6^nNm7V(jGr8*FZS_?Yzh2)PX?x!w zyAv`g&eZJs?{)FrmBl#l|NbL1T>}wklNPjyI3uxcpp_U9Doi)VH|qE7>Rpq~Pt5xH zxunA=r^u>(WHSE*bv04~B&YMkMZiDhiCSexq=gO^fje*m(djH>2`UFl;*flWqi*~U z??3cMGoUw)>|Qi!Q{wf~w7?2xlY3ak@XO}w=`s5PVd%q#;69b2f)bz}Gu5L&+oyb2 zh~0QvhKH7VY5onWLrL&Nb=_kBuH*s=det1}zz?6IaoT35vf%x#LqJdY)qbiJ5E=lT z7%03(ip+Vzz_B0L2G{*i1siuy=gGey@@8lo1MUMqr z3VNfSsoW~y#XuSIRH7UGBLVdgdvXO8(D?5h&A);-7^VGj!Ub0oZZTck#_o4O^FG%2 zo&$6ibl{7iF2^wa?aufPxD`w_Rlb!r@C5>9r;p5~v0>l<1QPU~R5}afy9@clifqJ+ zu8D^O2{=)stDf6jSil)D0@RPm%+1?+duMJ^#Z;^@zI`*D7Nion$738ZUGo)K#J|Np zS`GI-&b5#i*o)zPap`Y=1zeAxsFBFWyjOaKDSF=}WUGO6DucZ=?7Wg#cBcG>gQY#A z*2BCLO|41r2lk3g@gj44CDdy}v1JQ`ct5yLM_!0B1Z1zH{NjK-0QelpJLSxvJ#^Hx z13Cbm1M_EQGk?aABYHT4(PXk4_|b+-HP%%K$g(NW&kB7o_V%e^pc#=T#goTS`vzcs z0@VfPm1J~8t+!4=M=Nx_@aE%+o!{!CP(>x<`6i%dvXO860ES1Hd`>XYZ@Yi~0-EG7 zr`91it|KDdlBW#>M^v%WO49~sN%@;wxP>Njn|0qE`}S3vn@W(aqU_(!?Nv+`G-);!)$<2HMrdW^MCikW8l}6xVNG}^|Yh7%*fskJEUM?P3=d9tEU`?)=lfJL^wTxr>Up`Z2&=d)1o#urWO07r@?%qz`4-J{gZy@$TccvhibSBXI=Uzv zPHPGF3$p;ks*?diZyNYPF2LNJwF#mYYVN%x3wg6QF?bC&>xUVINP-IdId^g~ zUq{;|yuS4DlZamdVvCM)z}gx8Zr=b4&U5F#Y{(JKoY4wKKw55fo))Yc04p2c$riF( zSvKe!dnf_JUidYT#OD8CNZ7{hYHbZjy3n3KpWnY^%Py#2&IIoQO~#!oI-}o|9G!K& zK4YFf4me!Lk0D?Ligwv9p9PHTOU{8DVlN4g4U8;_mk<^{PmXJ(MMp<+D%H;g#Ajga zMO72{07I*zb!j|B5@X|UuX3u_b^V2_TUY|)GNjSfLD*-L`S_pnDKCe%pf|yyPACK} z#~Snqu%e?M3a~7C{mkVV{fDKMfZSZ?n!`=_fEM^{L^JGMtS`f*qy~>3-go0Uv_MxrJyO6+c2CWxo}K-U zhGM#K?F$i;mIxTLdzd#E%Ymy_70vtKZAc+eksm3OlaVg4VtMIanYUARv^RUOnGbzZ z=j#qRpQ|ITv=Iq(k?`b)H6x#ZB%1H?8O!(RaT;gk(vw<`U##)ENhQ=_@Ut zmQV-X(hX&Wt4S-gv$BKb6wwRv(XjFES%SPq5Z;pX%X545+bcqlSn1ur3LG2H#{^Xt6#`DMW*^-JWxH>w79sDm$Rfll06|PM^w_p64Y|P`(5w4@_ z!k`>tQ7Q&2_KBN6;7Z(FoSQ&a23Lqm6gz%-9&`{M_*%T)rw%rhPOQ1z`!%+Wfi4Ze zgy`hwNVxNMU`$4pL8TERJD}9{gAN|+Jd*N}`x^4bB$$Zk;j?!?8^RAy;e%)NQp%(v zzh%hA<}W`jJYp@>5@>K&8_wWCuesizdR5kfAOjpkt*HNe^SI?=jb`+RLT7g@jkE7H z2uip8`;!EnZT~8UVzsEO<(pxH8#+sXSPWQp?%iWnnjQ#8@55coB|LY}NbQmVzY6ou z%xB>v7cr*s3hJ5v-kgns>cQOZM6I~zmTA=#={2w;Wh_WZisBZZ7W_;n*dxh9fzx03 z^2CGcjHLc^|V;PVWclDxfO>kR8{C!4yc_IqF7m2Kw2L3K1gO8FVu4O z9RM*BKTTSL!W@Zcge^PY6M550Jb4n9o12Rx6aUd|)m(??i-LX_g3iX3Gen@j+qz2!9DZtWhAfw-JB&JTIK#N2c301 zlMezQ-hiD~YSO9-!k|(??jMMKY+S7X89I-SW9v3B(gbYQKn{g>Q#Z)xLO$7}nUz=G z9IfC)<%yEl3)zNS_2HmHXxvvKR5F%X^^beft1JGMyS0hHsT6QP!eH|tpO8`RlPR!S zjl(GesS|o2TVN}Xi8(edORvF>{9qb)_4^}d8_`47h#Zlthge@#N7|f7n|fD(yCL$< z)#B31i!KLph}A&uBQz8R`!4rY?RG9A{fqzngro>3;X*yrWviRw?>52AS;G$ zcVH=qo*aO1r8sMAJq;l%G@`)bsVSo1pEN50k42BP$^UHUu}Zoi2+$h)E+3CmSL?Ym znGj9JTIsf`czL=Fi@+!I0qU@Q(K)aX4h|1puO&Ii@2QnMwHT;;Mff4E*^}4Z$i?k_ zrOdPN(}RJ;h;^oyVIqKVzjyqL>;Z{vqystCtiy>BcxEa&2<5baYkEexRAXR%laK%< z??4{%`IL*H8utexY^3~BEyO*;H1eJ3MObiyknP1OY?y%k6O6(KGgRL-Hzt!tGf;~v zJojqM0-uG!UXgwcM}G>hTDc<#@~zvQx)MD&jVu-$IF>3OzO$`5|9L*X$#;++ArkY`AQ!ewB90T>GT>OtGj8^ymGJrma>M4`n&dBpYx75&e66Pn=rZ@5C#r<` zlro6;wIh4l{=GBr?oevOd#%dAlnP)mn3VaAx4+J|$mcm07oPhp6KOd5--t)NXOTQ> zKF{@auR@KfL0|iBYrjKKfM{ri*|*<8RW9&!y29c!4;`4=7HF_uYy!W>*96<}GKN?h z5f+e02Leb1e2*-(OZ2;zx?(UlW*P*hs%+3t8v`B0_qWt2qdgpNtlCxsz_uMASs5K4 zswf@H#Az@cd2I9eK+_2@fqV9{q&CC5wGNDB{|6f4ae>F}T33q+lDo3O1;ppE@g^vy z@%#oii8BMS8&3~Byl~1I8zn$=Q!hz6(|Dee%Tk11-3>wLRXaDgrE|i8s0hQs0KS<` z+ZvW}U68YLH4w_RnA}RW3Zf!As0rq)gIBa61%b^o+vi_qqT3U+Y86 zl0*H3({)jy*voYdjh&!EW!Wq-_-guGWA|#_=}EKSzl5NpAN4+mPtYl$;DI2K$Tx+W z>=eAl%Hg~yXBx++Gc^|uNjH$t~@E0=x~%;}#{#F!Xnn$82BDf0ZJ6_9>5)l2)O zA}`P9t@Rp(J$CITOoC@6BL~t{5a3RK4OyF5UmqemUVphh5VwWlj`e3!D=5{z?>7CAA zgOk>OmbR7|IOR&3=(3 zKF)=xi=R*CApcwFsg{rZCXZlejtIh%)&T*c67qH_znLp4^rspR;kN>Xno{NI4*Hn! zzE|&sF=Y6<<>|jmfkh$Pl6!BW7ThQrWyVsq4pU3@HG_kLv7iPz+^HHyN19%q?J9wY z>r{|j?Dm_7xD%>koyJLJ82EUevra}>jrFw-=8<>fb~%tDv#>qsIjo0W(*pwrLcS6j z3Ob_*pfxgq-&|&QNCr^VI%2c3zMH+wR&6NJEXY-&{AmDZLc7t+W?NnyJ+~`+_d%g+ zEvvm(#AR+W*=QZ>vAE<#_rKW!PNHGEf4%|2ZEc`;YrF{Jhp)h%Om5Pi!N4{`WavCL zkMYQn{ay8H_WL=vAzB^4$-?Tu5(PSHg72Jst;+#u9Vv#hWFx$a8VLbGy1Tm(6c8!tRvHBf>F!49=FllAU3bs%|K9h0xqcMb-^T3h#52#dw~Evv zBU5o^5y2)(H}kYESS!;|HoASH1d6$acv!K#0NpPw+|~@fVmhtAEw2n@%`c2lzLWW9(GwHXjbJZg~744LDmh zHFjw_8z{c=f$=tR@2glMpY|mFSZ&7z%me&{)pq6(r{@LhuTd9wGD+*&#;$J-ygf^CQ)|wm}ibLJEw_pwif#s zZLKs~p*q8>95@T_H>uFp4sO&hYL!M)W_yW1p>7Oe4J+g0k}t*oJp$(>vz7?9PPcOI zJ|4>Ivm~9~=pIMg5fNkZ5?B9b^Es>v7&;pSciICCZizu}WN11F;KvOyr>#1byp9nU z=dner=Q;r!WZ?ZKPmEd<t* zSdGPZr~mIPkzq@Y+-(8EQXb?`a^~+nLioZp%wdb1#C^ zW!Q!ElF(BVf_TX+2(+bYAvm7a7mV>`F7&=15JRSJlJ$nMpTL+Q0aX|X#U+EFwO8}S zi3f$nz#{-K`xbEheH)A465nMd$ho6jPvFe&>G0@`QT@Y8#8Ycy<*i5Zw(F~CSM0F~_f$oNa5fiymLG;fO9qRsv9 zdbJ?T{pL}X4cha_)IU@Kz6K)_upQi&{{02I4|*6acjP>Ig)ED_y6*2_aJ=+-d(;rA z6p_J0GIs3)9Liyz3;IiN4@6`cvf{_MJ%es7u+ z9h-;n+d716qPbv9O!x9J1dy%K0D7$O`oGH^`Me=RsAB~o(JEiUzd2Y0O2tEM^l+J4A2ZhwavQSXUra94ub%h&#h5;e{Xz3cJ2nQWEbysm#RWuvaA)Feoz5IblL(BWqqbo0vLNMC>I4m zV<4F=KJ}dm%=y;mE6>ML|KugLE>M8T7n5eTev_%M7;M(gD)OHpT3V5XhkwaMAGH14 zodS%UX;qRZ-PQY;kl<*b)WC1W4T1~t?oPPv&Fm;Y#c>PKy$L{iKyE57i9uKl;UagE z!SsCCUnOaKtcT7c@=>T#nqnL=wCTKc?z;4O2kb+~5Wp7~PQd5B2f695T)n}~?7LPR zMQ!42BlARe=25UthW(Z^5=j2P`$Q2^qNTJW&H#NY(6$e9He5zi$dES=?SlaK!G~mY z%sh4(zMgO7FTq@eTwBYQ1(mRsL}ea8RI9GDohBesG5)5>O&=Tb}e!utRD2PHBx?8p!#jlvQ z^oTXv^9b!6ep%_9K&ZyT0!xa!^8R9C?J-Y)EobY@0KSXpKh^jEw92Y`rB^v$T{q~^ zjdSY(_}@YGCqbY-kJ@xx_Qyz+x6d1Gm-*qMjJ*hfI@Z9%#xU&*)_~(oX8+S*(6|@&(reg?6qmE#U z7~EXW;kp3Q$m0l|fK3X^QCL?0scS|$a5@-Y?*)kx!fv?S7p^>$f}L88bij&E=hy0c zImiV;R}Ovnr5{vneC|^VGh=6c(qwTphsz1DehXMS6|LWN zp!=DQ0SonbY`*YChyfP7ycKfn-I z{`qqfN)nvA6NqEAAb0iUv@pE~Amq!n`aMwAlG--`zXwMeUu5?B^Nh)B1?aYs%!e>3 z?eQrwWY462=Hh|i9xZJcL1X)+(!jHE-sHU;Wu6AEpyeRLju${t36S|FCWh*&@!9C~ z9Npa=wxI#46dqg4YNb@uH{5G|NUXZ~y<_nHV5V{GRJCY&{J|RuTiDeI=dbzaS zeRb6M*CZ}39(<*Jfg9cFz4X32?%SV8hjT7Zwq7@1EA_m2l&%b1^aT7CHMux%3O~plW?}|zIXWJ_%ru1C zz|P9gC<1dE6YkOoMEp4elX!=nUntmU6ml*)s! zFB}^tu&!fDd<-x;dpn=>7Xb?txM4~39_2>E&6PkV&n)jmvvS%EMu9emJ45#M!2!Fw zHuFlsPdW{gRVD&1^mmQ!f1n2~Mk}2cc1wO}Vq$olp0E@1GK?UOz7_E-M+Ueq#a|W7 zuP}+Yz}SZm4q5$sI$)DtTPzGdf93%g9d7hGoT9^$L~>+vygfZl9rpm-t#6*&LXo|C ze_^?D#IPNiMCjpYE@#g~AwpSW9M^~>?1bYCW@>%+i)L-l=TgAjAA!!u5{Ehe@7$SH zSkSU(A0IMenA*e{-Y0W9-ifUBqcnI(?~ET^d!L6T=?CX2n?o?Hx=bed{=RC993uqnbwa!SOgx|Az{O zh-xmn?Hno*Q|@>r{9B*bHc%ZJA0V}cTZwLoo;T&}h z_f~yJ2WIm1eubuu_@?~bbYr{TG#PxUBJ^43#jWotA;0$TFXr25$oubYqvBbWVaHmK z0AyVv@)H{(wfc_Y!x3$AKs^D-k}NI~mv5^7@I&f1{W3$cl#O{7AQufICp_PX9*~n>HSCQ>#Q1lj!|{E zB?YNZ*zI2AKjZq=#{q%yxd4oB&uTmO;O$?{S?&Z9J-8JgM zbR2bn_pyVpH=}zUPt&kGDbSj<0EH~!WQC4K+%s>`9lbp&y5Zhol^W&&255+44p40D6dQVrRc;5Y_&bH{>YAi~K*n|v;SOc9pRT_;aK zaCCDw1N8Q}Cog4}zPSiEwG!iPqAwbu6WW~SS)PSJb(un+fMD)}SlOA9GAX75eDuMg z)YEX=-w;)iGndU7MgeYS{|2-7(k<=l-{m6I!DQB~z9JtG0(1e$wL>I25OJKGBC@2* z02&v$F(3uWB^B{dzJ3Nf2ao;pV{6=A)yte7m>~yx4uN=qVG#s!w&$#TBf+m+pe}dy42?!hR?;oBdO)-*GPc>fW?MmKFwa&1j ze1-2(kL36MMF?_6zpSaE=?dzz*Mlr74HB+A=_$BIo6vTy%7uuaY@|MXc!SQdw)Oq@ zy{oY1Mu5?(4KSfDCioyZ{$&LA$;^GreNYX5l|2rMa_1TE0JbSh8W#d={kSp6w0rmIRuFbURtAYuZg^*@urbn7UUIL{^n z!SJpE+KCe<%>S9q?ka*+8^2|tBt|EUT*de^7@bxHEeT|;2`oTg8c3u5zFR7>{qPYM zLgR@Unfu&owAI+gBL>iE$&d>{tc%hUo-RB#wVvUi5Ke3j&zQl8KyRO0xV}TPn#2at zsH}jn!IT_-zn6AzB=EhNypUkA5-+Ku;B!t_fR+SaD>8IQ-eDBPfiT0GJ}yuil%|21 zHE5!Rb)XG$5klXtwV}cFflBTsnFT_tkZ#H)S|Xi&Ol`zFySeOFPZ+iF`NC4{ath*U z9L%00!TojZgUi8Z`_xvuwEVl{LAiU5??}^ACL6hh{GS-?3?* zw{|cfe-Taou_XbnsyZrY-cBh>ZTCjN2@#c@`&t9;UBb5>n^mYD9R?>cjvQL)e(KqB zM+(n9*A4Z_8jJgG4*92H!*5RS!i=qIsWT&lY^sjlKRcBd6oCnNKTJ=D4nD1o0KHGa zzw?(Ei#;C~D!4Zf$swdfmNFU-k&$84^8rJtF|28qw!R7s#tv=+20)+x+lH$AQ(s7} zcP?WAQv9?U&08TxozZVpsO`!jW-Y65`}hm;fr-U(Y$(8WJOm*iYco5=iQ*W}C*ak~ zSIoDYvD0~!4oGyclKdHu;E}xelGmpi=IeS-UuS4%{6#3y;vaYtC`wRjpm+uMbyaHV z7(8V^l1LV*}R#cOY3ZR-(l|TA-o=(wCNF`8aoXcXCa8>bnI> z;s}5PhJSH?yQ|vn=$e$LR$(d>R4;pf^qPv)@QQ)ASMF8Mw$=F|*d_7u^&>kF$wMg7 zK0mNM0^M{8|3Xa*d(E|=E_Ejpl=y}!SImHmQHUy!(6_dbaN zC=b_h_k9d7U6^RTtyNag6-4y{kmv&aw>=)4j?q^RVwf_X20noY@E9@*7}i+H5nGE- zjpV2}0QSn0M+QKxV2VK0QEmq^l*+4cc#-DN4C`EIJ6{`1F6hi*K1f2ZlBu{*?}k9a zZ%+=g?q(p%s!{ZXY1F6u=EAvtcsn8#rF9_BzH5|1sxj{x#)y0 zAR8tJ$KyphtVBI{t(PH!Fd)}AeH}t^Z9vB-g&{635cHq0Q0w>{c6WAyE{PANq@{~M z$_)e*o-i>*fb^j7r)O%p=yf0$4$|X&UfT?lz=LZPIC;*(qR)2A^?p&LGkL>AyLo=k zVSGyrb?)JHD)9)S@^Bwz2~5|C_*rW>@iT8Sm2Zrv=Hi%FcBxdkBXGmPb|8CR0XTs7 zW~9LpJ9>B&$VO8RrVGX!cSSfYx1)eG=;7(9lB4g&U`icmfN9qQo+fHWM#i?0G3&); zFVG%OBFGhmWYJXs7Ccy!BV$lbKEwWL4fcVP^T%$C4!hP$5L~y>swBxLz)&U?$DRa) zjS#Ps)b*$T-95axr)|3ba>#x8N@-g&l??1HH(b}}2P%I(kx;Q)dwP0~;<+t`*U(SO ztCl|&)dPA;l$Lnb>as2n$YiyAwTAIQhP=~);{jZV9#h+C4dU>%4&+;0XYeK+c4PdeY$Uw&8j=d z1;XRn|BOCb6?S4`%Ox7rz%k~`b+xU$T%2TvXdRF-49ifM^@ItCO0DUiHnJZ38sN=H zg3dxtZf<5?dL7zOFqL#Mzf^D`7tee>JUkkknh0-1qJp0U&$u|@K_0hTbGh5L-$s!w z!FHR&yGmyS&y!fGngsUn$atUs&u4z6bY& zc9BbuK;Tshm;3m*c(G5ASn1dUx^I-vgPy-nvVB)D$Y=qklMQjFSb+DVRD!2xj+Qfs={qI zcNGwWQW4|a%?O;YYkhhef)0;_W*QF(BXex*&fDth30NWJsW{N5qGJR>priGs;jsAY znp^_N_$70i?AMBG7Hfb`Xdgkd;iso+Dj7Hy{1R1U*Y|q}t$yZH=S5=x;?)(n^}xCk7)=hWY&IRn2J9vug7OtP2d?T`Q9X&}hB@HJ3SrD-;Ld!m z*fO7(rI^?D4izAn!wQoNuc=r{l{$E-etcQ(uQvS%3#6^}f%oFc4&dGc$@GsWDfJLw zXP%2r&F3lnuuaincbjD4o=|S4hL3BnTC~gwVf(%Z;il*ESQT5;JKVU%`wV0i)r@C= zc`p8+Z@~})-rz#8;gp-ZNUC37(4wXYJTNxSR^&Vs#2TiI`Dw)U0{&DHl$p$p$Luh@ zD|j!OVYnmyaaJTVrZ?uAj1dNXP17mZ}uE_vY3iM01Ow`i+_mT?( zTkQ*9`T}H=$z&#@F9FMWqj3ZQgch=?3pFr`JF6{ve>2Uj!ny3i zCci45sM%dInVOM4=Lg6g=o;XUXw#(L3QVz7f?X*P>pytH$VmI4iTJ$znR>O)(x1nr zdO<1NLs!vM62I7f2uh!A#__8HW932Y{npz$e!r5_JU1K1bIc$Tk4d{0=YWulE2)_Z z^V<*n+U~X0!ZRlD{0jkN+co+usMt8OBrBDjMGAj;Xg_P37>XG*KwFtviBnsk^4~G- zx0;8fqm&{1a7l8zM-n;t2s%(_SZNb}hwagP95|e8z~0lEU-RLZIRZ32vT|ubO2(Ki z)WB6%=GhHhk{`y0ANM}U_zOcAaJ?4p`E`TML7{%e1f z*7GIle8qFY*6t|t6me4HQt4S|K(Tg=3O{9M;tA%|&i$Y9bs+cG*b;9uiELpZ;Df`4 zP>?TiSZ*2(tGHQnDggV|4Km@i-B@4L)PGo#0AsBMX?j(cXRX#U(Mu@BXAQQ$GL&E5 zB=`>XhpLg|3OENa_;>+*Xnt#q@k6$?+M`uorU4CZ2Lk^#8b%gO=-$W!8R2#A+4f(` zK|-TuL{}?7Et?K!o|B0cU@CR(g zNq7MPr3DZg&~|SIVljv|von!#5D-{{L_O8k-j#UhPsy^$>2+cFM2-;P{ z2X|E|IF@sB2W4eM2f%0Z2LFSxrg)qe2gHs zjBLl*pO_p>4N|kSKew1t%JdFDU|Knv=BXzYO^e-i)Q{CXNTKe)6Q>YzG26t&0x-){ z(+`TUInp`JiXQ~~q^hF#cX>ds%Liq!rgfu-}4ZuEoMcG+SXQ{-fnJt700iL^LHImxXetgww5uOCAbYOsQ{0 z7c7cH8>ihBIY%Nkh>QnL`U`B3EpoI?Z?IyTVy|wE*&CIC*`}KTu^xt@-E! zZm5C{mFX7jPoqU(%TZ^@<6@502h|V8CrEsNif1`z6}G919gt3{yo@ z`Ta5-``$KKGU?KyO%qp7s1aoT-GhAN&ES5V1MS&`LuEN8nZetSznm z6L}QPjoKr}h%W=en<+v>73NB7hM?HuvGgDpsCfQ+eq^%qo z3tL+n(aQ|t`B8d15%_g9O=M0=A@e*jPv&YPv`8XJ*ZTsQuFpnxzot+gPQ+=x#$EIt z5LsM9c+G=s>wOpmk1T!p3{{eJ7v5X4HCHduJy*^$J&<(e0brrYv9CLCVdHw4&L}eL z?~Io_9lzt&#k-O&E|Jmi>z@xb@}PnOiY8}S3cYcQDFu4=ifemTINFD51v&U4_X(cZU6UM$Me5%e3DOGng4_t);M$R{d}hJuijd5usD>m> zicP~c7NwE=VSe`0-5Z1-W(&_J=7~U|rrv33O^KJ**xG*o!c-Zat5n3))) zeqd+c^D>f__2u;-737ACHVzuoF!<_KvxujcWFbmH5VJ0&FRZ^fZ8SAF#t&v~p zyIZ#Bjj$(@3BG0(PB4?+^oarl$6?nG#yZCgeywDLjn*S@utIc^e^X`PHE-~Uh0)o3 zgJL=WbcsUrX0U$e;EBL=|36tb?FwUtn6f!i0+0#FiFqIX8=E$|{OWlzRL6`9l3@^* z6~Omr$i7JN@!?t6ZtG*LQriG+xJxX;1x^J4VC=swJjA6NL$=Argq0dU@S+tE796YI z#prE}jFHe<^e4-|cS)1ix3DNwZTm)rhR7#Y_3xb`0@4u(Xl`YoM~Dzt2YoRwRLy^u zR5LaSM_>dI^UC`Aa{yVioT+&F9+#qiRdBT@y2rfo>4jVZ(}Z-y#rE$ecjhg9T&6qB z)*b`oh31GF9oeF)PBiI9Nd*?XYSF6jolO%=JbPRmK9w zDs1mtA!M{PH;2|IvRv5kV5F&TmF2789PgHOQh<#>86I>BH2GJdrIU0iLlc#G3n98Nkh+svaz0!G@ zi|=id?%8C6`S&X=>Sl4`@AiR}j@Bi50JS;GqusKGaR?_veL zLaD81&Xb14lf5i~!PV=2c@XSEUrEMKB@?$Wok^of|6|(@cGK#p02J3_(d#|H%BchR z`uUAQeKDVxU9miXm|2 zChC2<)3w;-lfq@zPZ13R17`@|XEin8Mz8E33f#=qHqc;TP^Pc!BYV`SVft3p{`{qe z8HyPCs6hMKzUutKvweK@M=Zz+QhM&q;`Z+zsvt@ZUyEE1?)PSJ6Pli{?bZEZ)F{L! zV$y(S1>CjG%%p6O6}0?Kj(s9)Y-5vl0iqHryNBXdVl%$kgAQ`c$Ly^e1Jw`9TyUS1 zFm$4<<*lBjj6a+H@S*aE@S9w)7COy4{HzCZht0ANI3HZ-Pg1vI5E4cqqKsNX-#x;? zAZnC?{l-d^+wNo(@aZdUrr5YF{2S`9KSo781Fts-G_fyOKwE&$4wUFIc)uOjnaiL*e@3Oz{gbx%5yOR$$o+Jb_caY z?{Omgdyp;O(fm1#V)dIE%me)>tls@kKPW-buCjbEIXQ`pjEs+u4})8+i2a%UX#zGT zye!~yow(Y5q5r4Nlz`I;vfXUe^2Sh_D}X_XvMpEsE|qBL+&p!e>S>>*J^GnLW2=)+ zShB*6fF!h^HnfjLl&cg1zCk;JP!80dx+y1kYc-L`TD; zq*KWh*>=LnilX;QHMBRym56L)&78BhG?d87x}iQGSm7}tjn?g>T4fdR#BXmmyf7%Z z^jWAor>KTatkWlFtO~D1P!kMRU0n?XA)v~@YOcmWC5p-dzqtlWxil7eky|=xly*@* z!SH-PcdEJ?pB!5{kgt+j_x(5;3w$RLu9KIj{0GYm3KEE4JKwc=p(aqh3);UFBDyyW zsQ5UH;^NVfK@h&{CWND;?$F3hB;0*BQFl0KdE4Cn2rfV0$D74JV=kUUx77>ZXg=|E zAcpLWb18c{pZ5_?H}GH9Lk)krK7YdlJ7B2~Dr&1DQIGYE4zU0LiL#m!n~Mq4&e~9Q z8;xt@8cq77fT_;LkIc1vUhvK5QC@pOvg^!{e{%XBCa0jy>hD)!hUD@a1hS6>S~=E3 z{>)=|i+cJ9_Rjnq4Ney;&EHG zojTyZrDkF((hP|d3Z?T5g&)Lbf3}8I;&{2~KoQ5yY_QVr;?Kk3ij6>2?VUWiRsodiTiG6~jBPP%yApC1P$`nS4gCMMX-8eb-fwwxZ!rlB#=dmtp<&OdBO z6m8>(8zPI^K8||P{*f-=HjjZxYNAE2#rkDhwbQl}3jEI~GokSHy}Mx1EY3}AZe9I~PZ(F*_q#oo)#Q!IjhX1L zt_sJXPdb&<^r+p+A6^M3T;gCGPd5+6fHIVTi+>+d03Qm~k@eE*e~41qbOcjvutLPoS>6HeuUZnXc}_ zS5PQ405{!#WC|t}K<5DY`}FqZ))zy+G~*fPT;FW*`*+#Yj{HH!ffi&F#W|mG=QF68 z4L8zv{t3pri^9ib0Lr&>X$IY=|KOEsOH3$D=>Po~YkVi%=;YDEVmD;JO+*qOhn&}+ z-taurMeo0jDEC5!*i1>~NI97iBh)Vtw{&!qvT>Indh@^Q7dJVJCwnUEA60n{>ix6j2&3NPEuH*?U)RPkI?ttYifbtZ4%Y@5 zzH8gEnd_&2y=$GHi;kcOJVbNR;;2^N%}iHSh#V}6(ERU;OBquwUih0&-TB)SXDIii zU%4FiZG_-bAPwNIm3apssER3gkq=UMl2WuU7q)n*wjc}WZA`LKysd8?&WNEw0%Yke zx2V5=J8t2V3!gQ!slvvk4gbCC@!(nBR7bTEJ;al!>0?fiQ9o+E4>9c%O$Ahj*2=s$ z4*Qs#l80+m-ge8GvoZfk??nO=%8M6{yBPB*(-<^bt@K_4JnB!>`F<|SsG8!RZJdSg zMqz(UejC8I>pS&|&g8+Qf&NICxsuTp20-PRPO*93kRT#L4~;HX@jMS9*f>UWe1#g@ zxB8{9y%uv&YrDp!5XV)aObzN&k4XCT@>0Uz-+CLFBrVXw=2XZ?jo0t<8^9{??_>;Z zuqH}MHaAz}>$NNz9knu)lUVA~vh_>72fy*hvpsJ(^f_H>`-A=Pm5GQyw!S{74;BzC zT4R&YBj>R}1vH)Qp;rEyaFJ%G17cxmCsk5rtIN2n$+C|0l+N>Q&>&9R_^T#9H@W7l z|1{J))i<3ZI_2VsJkVM4Up;x2h4adFMTtL2HLftYcO8FL*jwxku&vJvfwfEtaF9hgq_!30y{qJ=TBZXHZ~s1Ul0R> zCDUt-Z`u#QiuQizDI|?&UWL?n+ue}$>g^WBHofRalYevK{at7y&7rj)(|J8Oo?)V%UMc$xAhl%1DSZW#m|&ilhx;>??@Qk{IA0tZ zRol(IP*lX8DA8hIVPTo^&k%B30VZR3^zW~-1!v<_RRc-O^N*!}b;W(ZFl*dvQWMi| zN46;qd>fQ|YCfWIm?{(;>(xI3R|Yhl1)bff)>E%XRJsGk{tRC|#M5GyWfl1&f>AEm zE*CEcdDr#sx9xLo^UUPFXyJg|*&Sb=19!^J$y>%X7onqRX02>jtF0x2(=8Mde&u4g z!ieQl%YZI4dU5}mt6^|hY=jjv3A${6TE3B^)t>l27Dh%vX=%DE9o^mZKMU@%pPtS4 zS0@OCD&*S#U?!g63VC(RhduK8upik5E+0~KNviSf)rdu`fdw!`Pk%GR z-tKX^6UxT6wl;`>fB>Ct3rN7Gr>FM9H{P_a{g1EgS&fh%AqU>*) z7=Hw&&e-JJ|0tQ7IQd4I?Xw|!W*a=EcXfaX-^f_SKeNz1Y`kFTHw5IYkY8laC`+Z6 zal_>nVl`hl=Z-x%t6m!DH)qzFa;D(R=X=-F88FQG>tf-+W_JHupi^2mkNu^_cYfRu zkpYB@Gu=X6;@96^cJaanU#U#W$Ix%mS1HqPVpPw^23acwy`^GJ=0_~rtw1J71RSYB z0;fO;fcPma)_P;7XJ_ff<`=|Ecg91>%A9w@Fi767yjpp>(OdV^##YDPa}(=- z2Hl0_yLaylZEUW8H;VgC_K;u8ZvVAn)Ik4;V@J&>^zT+5T@@xP_&LB}d1MG2TVEa9l zFU+ih`7!hM|2YjkJ!`YiZ6L*3Ka}4B*4+)IpRTCiDjAmO|8s|=8sD@9$MCavcD8Xs z@034a_-z*085D{}w*(B13#re{x-*};OrW(+wpKbA%(GG=) z1ncs-lE$-32CNy7l6yMOsBf(tcT+c9eX0MHI{Rcr-Wy6zG(VpCr6YY62UEk&IC_OG z-C}m`o#AYw{V>RlpYLve>C$eh(rI#l(24X*|Uz^-b9j(TIpcP|I zT7Pa7?mp zOgJwl4bQh16yTypGb(ekVeQ375F8}DyX1pz{=)o5|JGxc*jmM`tY41oxbX4hBbGpV zC6I)+oF_3h))!06FS>2MA+TS1-7`^)(sG0NXSOXA%etj6pjh(nRqm?yX*fMSD)5%V zq1{nAjz*S~*cGM-Dk{kWul~R_O0;yb&*6@1J#lH4s1F~|dz+w$waRKN%w=;JR8)t7 z8dO-t{jY3Ehk5U1lO1(Ft3EI9s=>&dRUBg~?|lE(odm-<`>os%t5=4G>AnqOk5<~- zE;^do;Tq6t+r&HI!hp(UkLss!7j&BQ0<-WB`e|w2oX?hkA30JrUhCp~CY8qx`oQb< zt`~i0DdJRj!t5Yudo3jBpCpxye+iX8q~v^G91U$JVH99_E5*sfVXAn_3Het0 zBRKwNgCT`#e1XbfUm{Maeki9&wk9(Nhw67S|C{ly zvicn=GhvVAf%P>Y22c#Vy8c9RG#K=hKJeAUdUb=Z6MGSo5>Abou50?S!`cfa($K^* z5&>1s^V!+vEFW5!*8i+f37%@_{f{&d9hZW(PMlO!55(~k7O)7Fe+J)(W~I5c7YzX= z2sZ~F&TW$tWM3V<5v2}j@mEYiw5bv8993H#e5~m@U(M?2N%z#_54kY{N5AvKKLIGc zx*o!uf8+_rnW##awCIZ6$v)yl(M+Xwx@em=h7Yrl3{pw;m9N=XlN4i1?ZzV<--I+D zLrVGFY3EO<5F>B#$o(*|H8fi={!qZK^wDx0vIA*@+YCY=tpQ2C|Bq~H^hk{nQ4w|V z%zrza#q8n1sQa4eRr>k6TJ(#WlYz7$%3WL=5t@}dVVn}L<_(f9YypxJ1`ij!FVJA@ zwR>;O$w^TEyfbtSMKE=b?kKgB4Zh!$333Q{QvKY`m}11K`6aKTFcPZwe%b*7g{@r! z(RI5I;m8C128=fbT8e0%qh}53dk2j~?85B7Btt<|?tH*JD@xz2UTSDRFjLS)L*e~9 z-G{_z%&%LUeEQ0kCs`-dXhlS<7A8u57$E^#8-M@NF<8*ZGl{M(EzH=M`fq8f_IGED zf^od9gR(@vzzo@)9zwXxueiXJ(VY#35MgZ%#!bF>OICi{sTaOGA!2pYSd6pKMy_Am z8RVw^K+E{FoZM}%tHpwn%bN#uCfRAybyg$`t{9Ty#@YBd0O7!EZ_^`6TJz{r8QSAT zu-scnj>se`(&)x4#(pQ1QGVFiTKXvsl&^%*7v znJFc4mUauE`syH)RwIRIn~#J=k!gPG2$KXQVcC$q`Jzc2QskM6qP~UZYvreTC+h&R zo}*0RHsG=rn98eJ63+kAn-`l3S0yud$PX595HpK|DoOW@gi54iB#Y!ZFWVMTanQ8w zq97iCgi72j0#N<*j&Ivla`L&`aoQX9U0lhx_I`q(u*_^DjXq;Bq<&A{{mG0>poMt&mfJm*3N zlCLxdP#hS98jtro-ZL3Bcyiucl`y#?BnxYeBpI|{o@8@>>=GCg{3!a#$ns%NBI~cB zv0Y{_B*g4LTCt!uRQwh>bLPqRjJnDBepT%lSZQa096_U% ze1zmE{#R_t{^C&}RsU`4u)FYO`Fu2sZB-12WhB4yK=pciY;0lPQ`6PlHL2)_`z$NZ zcjZD<{;y|=C$=l<4S2WsN9N9Y& zK9dz0iUg*%#6Pc|)i%J_t^(G+)%%RMJT+2_^mH3I7eX}uV=3f@-rcsfLiiklV$`e` zzH3^0ePRFBkM1!^|L6W<&Bu!R+AN1%XU6uasKQ@l!>oI;EBkGQs8C+dhescz>_bU3 z{PBkqhq22<()E<<^ab^4YNW84_&*$pt@ix^+=r`9HEx>&{ZHFmh`pOWiQj)*Qgwf* z!d$$wS$omGxkb<-6`LZ5Mw}*fG*7vA=gfaXHr&HDf^oQwQ#iNO)L^|1`i^T9X20QQ z(LPWsB(eGvJskT>pEXu$828WTf;_9!f6Y)WhznrF>08+RohxUoF0 z=f$aO*^WW{0jsC-cT*Fi4>(3*_)PwZ@ljnG2g3Zq@|9?^1tdpn)#s?&f=aG%dZMUn z)nh4tSqF=h%}^)atm@gXFaxH$_B{I}#;w7Q>1pNbW-SX^h2zJ9Wbj^Hj(%3EZl@yJf`` z-*+0;c&){n_>`p~dufi}g%eoqstqm7(E`hJIB$zrVFKD08>@~}`zh>G`=L=b^&r2-jGqgJ?pU}g7iPLWrZNKrzOUI@gj$BM`^_DGu)G4UWr6XVRba%HCj0Nwu`k@cz93*FB=?RdSY8INXwJY7`h!gunY1O@>H8$P6)R>(?e%N#tyDg$TK z@l9A6k*@wmT!6&njF;rE`S~Bsp zDU|G1nuLt8?NRPoS6H|y7!?`t_UxzZ-sjBYX&e{Jlz;4k^zNo7-Q``I*cvKQZi=vz zmjrCz*)~=@&{ELy{=C)Jri-TI>iz(4wG@G)x!ZH_qyEiM7kG+hmW;&h?yNdA7rgA} z(l_~9;tD)j5mD_7r`V$AYTV|VutG80E>D0xJ=!?owi{ei<1J>NepRvdO@~xEY^(Po zYg?I3PxU+1;Lrp~Vq!6G=f+U6Xy@!t>$#H7&emx0;3yo>8u7bsi3z2M>Kv75aDT!C zm3TD&MJ-@-5USQJA$B-Fe=ir`I{D~PdL!msz!N>45+%k2^h1DL<@yn+$*Mvpz&G-!2dM4weTv+b^ii@MhrNy~WXd(=n#nyN6w~ z%I$=L0~Hn>Z$_`K8{?fypVwZZJEi{b`8Chauu-KcQo_@O)v{bor<(1U!R&;t7T8vR48$G$T zB>v2)$>hB}s;o@ml!0$fvEAl~3aQQ2Ac>F%kH1;EICg~DS{Zv$L4O_YS5+0`gN*_o zk7R+PiK#|+Rvz2J=CwL=obi&RDpn!VFr1KAE!*KyUUyjaFH%%YjHzDk2e*-D-TRuk z$$!^Pde~FvvP0R`-L4{DH2FA%yF{ie#g+6SNYTa3p1&XcLKAhNui=1Su^FM5hHxRRF{3~F(f)1q{G3WED}FI)PxzxN!af7Dn-MR@$Wtk zuXSr->=D(^AG#C4+xu~L7Sc4TaJ2VAJ0A}iNA2)ol| z?3x7!XDcM-PK_0mM3*Hnm#o>hYY!x~c$0&7$VwL26KngtK7fFWLoN;BX&cN#1sA@7 z-!kTne*NDYz6{*(boO7$frO&nfOp8STIJ*}7APk$#mFJSZ=hTkYwVN?T8GRZ|0qJDP+ZD9fV#4K!JsstT6qT^{0=4i5P zfY*+m&XWRiqG-jP|IhuRt+SpON79f2OpB-ULrMv13t&X=hbY7$DM&rV5eV z`1-5r@lxX6%kB!{>_daCc|6Gp1dSmBf$}%C=1Q736p!+m^mVIL-<}QHO8;=+A=z+y5RrcbH` zSX(Q};s%-nxD=!5^ zoX}Y4kwnQkFNw^_ff0qvMq@MWg&QDD+1CSUi0NigHxmSMK}3H0Tz??E7csqbHdfHi z6!c$%ZL~35i-M!(zvgNtMiG9*>Knk7q*Nn!%RTOTf6>9_{api7kL`?_S*82F2F7B6 z7Bv_Cpx&tPnFu;}Iq^%+(g_)SJKYsfxBEl)qBmJ(#H`iB(QQxcI(dyf^gc+3G7)h>wd;bMGMv#Lan9QtObc zYC+uPyc7*wSh}My9DE`akO4VgD%t%Nq0-8$&J(t8QA;-VutReIWSZ~3`ff;*5a|z& z&sxMO1)qO&&$IsB(9XD0{n7NI@a1e3r^Oik#Q!1ct>dElzP4c+X`~ww0Ric51OZ7= zx>LHPyOBl->5%Sj>Fy5cPKlB3caPuS{k;C=hnYENpR@PswXTbWaQdA&%0pOR#7FBl zW!fLTeBRP{Mn>qL=*DA5g~174ieHW>+COW$@PSB-Op&oDVn$>G$7IL+QNpfCNY4xL z=|0;XIo~*{6Kv%>mwbi7x!_<1z7)Q*#b_vR_IPb^SgyO%#aycro!z&#S+TFtsjpn8 z+M|3<;M0kkb$WkSSuLO+_^2?Eql0m>g^2%@a-gfO9~?H(Gg?}Pvucle%{J>4&0CTH zg6tyKWzsyY#EqUJlhWkt`*3tUMQSaKLHD>^lc;2vh%;iTkXrJu$Ld7lX;h4wR$ai~ zCqP{Kz3PCaR8_z0eh+a=J*%ktEfawrab0w(7BMdZ=bKLBzG1xnZrjuCxAClR>e~li z5pVR(UYedPl|$L%C8UV6-|ybe`5RY^o=zsFy-5Y|;IEn)(F2?~ZXP{m+ITv?(^&jv zhYx>ozAgDz>1G`S5>3KKVWW*itMes>yM>I`J9}b7a3cfTafi9PRb17%CTChDtN5K4 zjNHa!Wjllj{Ru(|{MI(?2JgB5?#}HkYe@k{!lF0}cmwmoqPP^UyRl4spS<_IFUjUc zq=wqQZU)=KoYVgf0oF-TpoTty*{}Q0{#cU}zw^;2l|Eae6J4`O1PVbIx?Ntm2#f{~ zwLU=VRJObriCE#pc)phf%g-raJ2_v4Nbp9HiC#{3+?tIYCxIzIvvykO@V638@7b20 zMzu1_hRZjysEEKM4wVbXv2 z&$*>hn%bRcoD7o2enkJm}N@ryrCY8CT>ZkgdY*2u3@Nv(NUzghQsA@)D--zuBDC=$f0^kAdPcOj_ zO}Vd2z2p0I4aUE)qfx?%m8{VZXKOe9XqZiMM&a~exLqr%OuD=7C3zgu`L{T;7u+*= z3!IXM*is_te;SbnOO8xzAR@CGan;`Oc*Y$YHRI;COn<95E+v+B-MMed~!nb#cUod;m_Johu6iRBRVxo=)IZ)d*&wWGI zYTKBkq3exQ!k;qgD=g`|6dP{k&#jC%DNz(7K&aO`G7>D zEn%gLOmPkIbT3)DWalr7ac9f_Nh~DvdVH0#br2LtObcc3XY#Uy#(%!LCX+e&`i@_~ z?c|ln@%=aXA9b_#M?w zkfHKzg@tC5%jdjD0ORt$T9e)e#H;SyU}@bRdkYh{+ z*)yfQ0tAat9EJ{JlA>Poc~1YMn_sR)%gAjO75a=xOGb@OQ?E6KkmUoM^$s*x_2fAm zZ)+Hak!L2eWbhlDF;3@02GnZVIHPD@a>FUq`>C9<)sLUu5y3Y(tMuW$&NNJ8+nl+Y znO9f2L_#X^0$6Wr`ZK5-DYoBFip?1`QUE9sfA5nvoWUsB%my{IYyx0XmF8@ZPXnLb zQQOTRrzvEAmL=~B2>>M=pCy(Y^8@X(-Qrj71K-EXGh~WAURmZ?p!@NmkTxl!aZhw!U!_g6nr7X0%D z>9)kZeXjXINg*TmIrUl}W!CHQIih5QfNyT@QZ$pl(_#d+Qd4736YXFub_+%p5-i!q zTb2cPBuwzuyIXLFO9W!0^a{p&{jiLPcsUc>vMmg^yu$>%j@Jy6rjcJLQ1-3TJ(=|M z;G>swrWz)NwM;b1j4_O4ErzhNv%XZN3@^;0|7ibl;1W`C(JnGi2}7zxD)v*1b)0y- zR$VQRJS8}?5F`2}#YCl@l*w#L5>Yg0lc=&c+%Rl7KgEfSk~7>{`($^(s96^%5uOR? zc6k(Nq}uKjR1W^K;>HBXLumx%`hr^T-rD+S=>6^9ilG{l z<42yh#2ZMCH~F(#USvQijF9$#Q4`fe^r@H>m~Df;3v#QLrbu!TtUywh6UwYFe9;7n zgfQ8ui)<*b!wD?krOq(@gm3BpMqRkT?H3RboRNX)ahK!dbDxD%bbM_0H%G?o2SfZc z^QK1c?@QdN0;)vBj${ox$@n)ZDaCgeNA*Pu^S!~{IgZM4G8U}`?$`HjGkR{vOIwHX za+|!K{V|NV2+m;g4x(v<8_t zkCgJnX8&z$=$g9@Q!_mG-6#3!Y<56L(V7HCRZml1U;V}BCuZ5!-$|~Y>Nt$~B|#27 z7Q`>;80h=TIk;L2R&JYH%mty#Fdz>P^R7q2z`{%hbjyU^$(3`YF-tVTVB_G!`RYz_ z?DxMiJZBROb43s>zL#Frey{~qBj7IIm)-1x8Y5l?0-!n|0Xnb#4Y(Z6_hupF< zSlSOLXi5XiWPHkt7(PA)im=W{GWEQ_+~>Ie@)ikL zHxKKF(7Z*$#zy;qbi6+XY;uI}FZe0G*N`k%qDO2xw0t~DAK_EMo4lQ_?r{W={;>&q z#j>kCYfLPE#w~B12y-oTNxhnJ({GUxZ!f%==;_D~ir{oFY5gfuJYr^q8G&-AV(0#j z;}gHO5Nr9yx+*S#Q45EJe9$GgZPUKn=uHF@k($vGDP4`_n}Uu6KasAZPsRg3-KR;C zx^YNL^AM^k&}e?9FeZQG1!>kynOO!;wgfKBh-{15qBs1_UuV4(x|}aC z=49fPGgf{|sEB>5qRu>swot7>lfIJs;XFGKM!5V< z*R1i;FM_TxCKoPGGS8}oWR;nX73-ar*p8`p2d*VL8qZmfl15b>Nnh9+ti=O9rFsLg z;*(=yQpeFEq|de7m(l6PEIN#Mis%ME9=yPlF z5;P<&+Mm(#$@z3zW$%xd*{QYhV~sxNR@!Dn$)_kEh6}hT*E)8v!;)QDMeZ~z9T9C| z#xjei5`$6UG=2-iwm-jBhR4Fb`Z~mS^4WKj8BOt;JmO0=&$8@kMalfCx1sFVaN8kD zmV~UO(>ptpG+n2YBqLEvbq>a3U-O17@@(|6ea+qUl^wq4T1D%V&zvjP?F*nyGw8%Z zZ0AiqoI|&(U^D8+{!S}=t_zE?*zo|@(5!hjy+hPk5{6T0#cz6P(lY`84oDMN)CO!@ zbjfGSGb~~aPW?qzKSjK0&D3 zL_E`?`7Xy)!wD)J>8Fw1XMJTp?a)jH=b5{Hfb?E{V}VI`P7mx0#3ds5T3W~i`vAwv z!R|5g+V*x*}Qui*=d+z5&JG-3JwYsMA^;5qfvoRI1WiDMsEC^w4a;%Q`o8TRa`_PuGnOW?V zbWATO4H*8|ZoGyH@?m#Lpk#<}{m5{C1j%p9irYyG7zPiO9m#PFpq%HE7Xaj(drpEK%W|(O+!YQKw>l*j)E=%D@=u{L09KAQKrhRD1JsPmSGO=yQt(M=JZf zk4%9pyRH)9oKclS{n9(PieW7I6o&u`zEM z^>l0fv29rxWNJVDZh{~_)qUodTVLqgS8gO(AS=lk!SFA zxi;+$yfYVC+r`wT% z*soBItFa2mproLcP(fNYH;75{CaRzX&L4UV58qeTa~HOyehhF?VIkcGPnM3mka47T zzb$UHtEAfDA;taJh$b}TGora#tBuu!>6?~B9?~lO&L)2;bki(ZvbT~LL`CD8 z%E9nRbXa>_s2Ya|4I)?xbh@$Fyfpc{E}DAajf zSeQ+}7oT#BaU#_&zT6-!3lAuQZ+|4gY-F)38dG(+`9rg@ItxZW>@RcZTRe&fcWXhl zcPWZoG24W!l1+NR0KVL7ul$EB$y^7P#d)S@Eh}is4Q%|z2eyrtlOK;zme6^1eq>xo z+|6MKKLDT6uDbtSr9U@1nZ9T!js;Fr6uF8;o&q@l{+zFppm82c{g_|DP?I!1H6zO5 zSw`q+5g6Fs>ZMrm!g%z4Msd;9t{?%XN=nOCj#d_m^K#&@rap_|#6zg(O)pj+VdIZo9iZ z?*2lG$u%9}!!}Fg&uw_}jOit<*cXbU)CQrkI6+N0?P0CuF`%c-2--Bwa4|oOJBp)o zHknRc10*gr*^xa$>PY6BS}u==n*PN1r9EK;B;w-^A4W^lT6|Qe4lf3JlifV?dVk<6 z>%z--Z51LVt7Zr1)mjzKYH0QpS=02IXJ19nYPTNe_~j83^_o|k7Tce@gDy?^so~*` zK6-AAYNCxygXaahi+ARiX({H@e~Lajl$gv^wsK$WDVILYJ}zWwg>cGG)nqMtPxad= z!^>CK&(ZZN|7yq!3NqJR`2{(2D4Te!*KfG&D=J+mvux&Cx+=V2Hs!n(uoy|;nF0jm zy6#WMLM{36Nh-7u(>2Zo>0;jep9!Wi6s22wG_{SglytgMzpIk-rV4j^cb=0t@fU7Z zSx<^iAz^$nl9aU2%n(lA`BP#}L6LlUHg=HyE3|=Eo|H{&%F1fmO-_!p)K;(dF~f(` zx)VWOt5R&Lq=a*1Mr8^Pe#ZU^^tM)gK3H-&vC!-Z)7%jH;xtopw!6B4HRFLpnEz-6 zUQ3dsMNM(Z#qzY?VzY=08pccwJTfPf%cJ5*`^Gn<H^aX2!QR4~-j-*416fE@GF%P*n3y`f=|ogQI4 zbM>=<%@SGN2#NOSHKs*r0zR+_SgbW@Yc{I__fDP!B9{&ytzUvl*4iWu(en&UwxQ;v zen}^ykJdy}yMcCJ)bRNq9Fw1qv>D&k9=+?4{K#cFv%ACMjsppl6H%r${0sY4#SI%i z_SyNwj`R_(TtEe-VxX2tYR671T46BW++9_+uT zFW5g_m_|i}8ZHm`m@C%|Yh4VI^Wk`3!w!#h)F~;!k*QWx&PZD96eL--bz1+hvv`Z< z5cjKdTbxf<;J8p}ZR00HOMriSrZMW zM2RAoe}fyk+v1)+*LlJ_^CFg;y@gi?jpH@e_>%%8RKg6hqs-E(DvS2=QcPVZ#GJt~ zC7&+kwLR@VTDDXmC9agGdGe8 z=oH_4*klL`EeTDZMJ9tR2Kux}^o`co98t-XgTi28kYtcWE0$MnXb7DJ7@@Xx6l&qV zm@HWQn06OVOrobc9WnCrJ3|EHW6ndxLx^!-1Rtv;2bo1dq!90A>4~1PT#obgtbz4$ zVdKK&7g?^mkC#As9xxXbKd>=ta&XVq959ucq0gEFOW|yjls9+CRsSuWWOVoYhS*eU zDyQ|0gFLAqZz0arG`+llz1UPRmKuJ&drO|zU1`D}-f>Q&Sl*GJ_AXB87GAN|)zwNv zf44W=PD?!=T@`N%-2^Z#yHwxIIr6IbT3m>0{|0c1<_VM1GiCLk?#Juowxq5f| zik@F{s>$)A$gXYc1m_q|KIeE1W>343YVFpoI6gR);taM0*f7<(#*%0_lUOqeC~K*gveRP!G`gj=Q0`csDjOYn#gM_4igb6v#Jd&UAe; z805QgTk=eOLLPu)Uv+fA4LY4JXYuQRQKg#O(l#>#U7iiIn+s@kig!!h-94vA!M34c z;XkeY>Xa{w?iWyH<);c7D`=%oC_Wox2XSgHeEq7AhJJsLHCCAnJM$P4&h)TqcDHPZG*J@YO&j@8?o7cMu>I1 z!c`q<7sI3B;+*6*N`mkD$V8^`hm5nfs~j&uZ{gGBS=nK8L2UuSx5{tIe@nWT_=jGf zs$u%S3?Nc>*59bFTP(HcyQjA7ce0~w^*|dhBafiKa1Zy05M~V)%D%O8_+S!77-BiM zwk~dGr>Ig*r%({O84;oUVYx)2Y*ViWqmmeN<7g{#HT$qzZWYZXe0?X+{`i;V_|)sx zrH^T7o8G$vjW|R^qKla8OQGkV@BBMqYHqhF3HC{g(KNsi8mHIs?QltFXvC~|4Zcxd zXCfQP)p4Q4?g3Z!eAPtURK7tw%-$;HU_uZvhqCR)W?x2|o{b*a_6o$XyrrDSMzqrK zKzQ2f{Ob_DjKf7J<+k8pz02s5Fr2`pJsLlFB z_qE#b%>^ZUk}*>nXbA-kkz0?*nw&e{ZFlsy7CmUlr7$J@h?j^{FFrxLu)ls73%Pzg zmG=S(mdn8(YSn8sa0f)9p}%8lbwIARTZ)>OJu!dc!+_P9zedi=rvMrZ_08tsJh$Yk zlKm>qug7P(bLZU$Mr>@H1{1#}YIJ4@TJriPmYzSYJdV+PxJXXdM6;~iK9xs*;t$P@ zPmjT*(7*XAV)-xtW(%e5-;_R?kNm6-?>A0Ep+lonSQU})c@sbHnJ{E%N~AI9>R51jEF7`q?2=_)FGHRwzyY%N9n zv;8N6T=oC%a{YX%;;=lfDDRJyIc2WA-x$bH8!+#5^Gu6!7&a5k6uzQy;uz|%fDo2gnmI{Jkd5{7&8;H+J;hSyT9WnFDW_?Wmo&@_(sl&q zvYu4Ms9lEQ;pQF-XGB{g*P4mj{FC@3qJXwv-)|UrKqi1mzBbEraX0*T+hAR+HYGP# zvd`v2BHM33{yg&}YDyww{FR25mjB$nHpB1j-@C#&@g#P;Yt}7#?2e;e4U`EuyLx+5 z`EV}0QN`=VjJM$YtLE-zkstckMy9i6W29TU*k6_;KO0-6bR<^zi8dH4+(`@3lUoy=nF05Itr{2CjSy7P{XdmXf*!*uyhiXz`D1o8F zV~N5-#4pyXqvbh~R<4V&m?s`+GpppPmXEE>n@$!3q24*eZ$|mvyHw&mbXGQH>1Nd% zt*p6o$JOby495HW&OvqfG}ukc2)eNu!EUdVG&2r(R1Z-=qW>}|*9T?W| z+Q@H`ydLl7y^MHZ5_%H?e_tEvS@Xjlw)XTt!zA}l;ZdpjVzg(sbB$$k2g{WJDghja zqdD?^+@Ssn#x%wPedw^&%U}7ybQEkc`_90R^4I>nW5bm(es~(iVH2AhgxNQD@%_-BJgNNXbwEO13im0t|W?y%sR@5c8W11wsXw*l)jCJ zOfQq?q|gTBLNo1`hFSf5>BH5lkwBTA&5Idbw=MjdMLvMTbVIL!@!vdaJ z*X9YuRLi@oAIGta^gQx^IbjzC-X*X61fAU8MW;$dV@C#u9bopXa81MS;CGSIK=r4M zItz{BmW}?JDM)zKmeVMjZ+;pbn5=zYw>&b)RH@Td(b5Ioz8%S(`;QM;WsYtBz)rv- z-YV8!(C0mn4=VNPa9ZW$i_+*3EIlInf;lC-Dmz2j6s8)cd2Y6RWl$InT0*5sXDs$o zg=V072fM>Se$0O7ky!hU&g(7JuLTXSp+kF{y1`lT!G`9Bh2HxHU$Ep}Ryak7t(Kw2 zk$2gu_!zxwSy60*$9uqCP+J?S;>w&HTg#+H;H-2<-S&|dY_p8djp$6*i6(@}OcLzr ze?tB%f^4wtx9zF zWg?+AR{IYc74nUgXFi6Oud4aa z^|ya*J9v-)2^YB%w&zCTo4c3LX42BLdWDF?rTX1Hr6Mfi5)Rg!PHfhw4Vej~2ro_l z!7~OW0|mqb<}%q5;e-V~i_N*N=(~qwrH<;(FGg3dSKxgW^c**~o)oHbAULyi>M0Ga zH6G?s&isRvGfyzk!82kf(^o4`pz^OIAY~n_Ow zKz%67^A`Ni>`sSVKAu{Gx(3<{1{p3|K?j7eMbR&vpy#_~(cT(al~y&b zUwb1h&FFIAH>iJ2hAPn|CntcWZ3{=5WoQjlDGAlv6b1|hPWoOpj0oL;>?eB)hq$|25x>DEIo&n!rr>K=YrX{1cpFdxVg)(g4l z<{K6eiS;?TM-zR}zR;L;B#wPd>xKrVW<6PszsC_Ds)FoV5p!j`F0|H{nsYTH9rxj; z^4tI34H!I%QXPTgU3n*#|WF69ott>XDlT`%o-Y<8Cl^r}9Ko zrZI}l^-WMG*jU>*YxrXR&pi$kt^w}xrcsnmce5w)uND>Y9zCbE!nZdwF^%5tQncXh z!?S`seCy&PIlm*c#k1wnV_-if);7#5AT3G9J>HR&(T@=B^IMmk0tA*ZzY%-jq?|VhUL3F zwOdO#nxjX4BS9;P_*(BWkI6ENN(Ar@+P5@gGm0y0Dt{u%UXk~h_3{}~kLd9`Py7VH z_HnQAaq0W-PX~2dpm{ruq0!s@Ly9 zU6s8l|GxtW?b-asL04meh(^#}XEi>6g;^J5ao5o*>MjMk(O;%HF|EV{rTX#Z7nD|p zdwf0oM}`)0_d+@DBy~VbzHtaTfWh#NKi%^W*JZ;lEP}N4N;WboZGBY0x2}SZqkK!d zh`v-f7x$g-@{7IHM=^1(^tdB*ej;7-Yb`n#*n{n&ka%%Av9Kr6XKSB#d%(O*E(j|c zG#gt_6G7^>`rK36>@Z;F`*NT#mv5@&x0w!<`owKCw|r%?O?-gYjcehScbhCoorSh#Sxyio^B@hu)CTO9b$ek5VVzFzJR>gU5G%`h#WT9wu*1(R!In=5 z8bw9L{0Wh{1bzlIiXR|*72Kxi!zZ@gV-@|^D7pb3BfwMhHABNo7OA2ief`l++#LcP zH)sH!8P45(s~mngL)_VGWYO%UNVB9injQ{(I!^w$j=NT){gF^Ww70^ff_oZS#2%J~ zA5wKVq|>0@^lO5xMdloC?IcCy=k{Yrgfnv@I3`@~VrP>2c(9_{>xJNoeK)paMrpQs zlQ7$o<4vMNczvl9prX0aw)@6eqaCw?e{1 z#3u@Q@s=Tjp@+in02+!c7)5yhY|oKoUQagVu{kDgtyc2?EfXC89OlW-oC%|?A(Jl& z!TUA;v#8h`UUsz(xv~??p$|^7jXw;bc63o|$1*fNbjBlk2&CuQ4j$vxgS1Dp$-HE* zJ_Cov@%0icDzh(%7i2&q2y`OALhCKc_lO6cvS)CS87aSx#OY90>f^@KJ30X(nN+Tq zzZ%2;0i(Fy-_UtJaPjhr`XX8SqGeABFaXo>QsD|#(DU4%GO1b~BB3HzUf;*!w_Y*#q`!I_-sf;ex>e)MeV);8QL z1#=l6>u(?!#XL>O+zH|)btA51$090tW7&V(C;tb}A#4CW1SlxFWcPNpjy((0{GZ`3_Oce(l}n3EetVrOme$ux z$MXIMj)HxXRL^sNn(Z!3OhklyDAg4;m>DfSHx9iIWdA$DiPm@xU?t?$mDYLEVI0cY zZFcF3r8{VB(HZ=&zJV>4Q|MS~66lB_3w7Tzm;t_7P`jw>EuJHi zdqrEq-%E6uEUeh{Xkz#e{xe@Z?xqp{*ZcZjBrmVRnF-`2d%`-DFoNN-y?rwo%Z0R| z*V(X^_P=6!RbyIV=l)D`f*#N#GN4jOy=qyh!=MmR8B0r5BFyY_VhI}sQ)@$JF2WO>>p|f zcyK>Ed%w-T^=PV0cy44dNlQS#sZ%{Azz_9qJYND;K!9_5BKbQV{=FO43g|DKL~-TL zD269n{zUS>A>$2kBP(<-@8FC!)pAO>tag9%ed2iNB7~{H?w|pHHx!hWKbXIjxW_Nh zEcQkJB9znU?<7v1{{1RVT2_L`VK>2N>fKL`xDsTkLL0zi;OMj6bv;S^2aT z(dX%!&Y9=aN;*JIRjGA+<%U>}uWy*~*ZzM8gR%~%7PR*mw1-CSlSlqrIxJYa`1<-}Zt@`OnYBa$`hdCV9Z>axJ;=n^{(B{QVsS2$&b9)*6xAeC-zieMq z(OFtipqO;H&b#J#RtWf6B(<JcHgg|H6D;D#@qo}_91=^tIj8I%{zJ`Wo0noz0pdcDBedJ;b za1Z(b!atz*#&S7X$^DouStxYj5wF-mYVL;kUIOtX0NKJEwP6cR_Cr5W+sFzYy8I{H z|IJivi2oQsn|*`uWzFiDV`*&7(Iqz#q8w7NWY=w7rujbJzs^NrB*{W@{j;5s0bRfj zfJ{h87)2?f06Rb`h1?(tTeI-a@NmIB*YMHQ)_Qg zStB&S;ir8f&V{~PAg9@ir8M_$sI4RzXqaLb=8BCJC5ad) zu>yCn0RS5%er@Izc>oyqqUsKLGvaZIgp3To27*#F0q=WWHa0fpQcW)V3_zx_xxU^3 z2I3}f&rjsU5LxOTLA#KFg>iC~A6!{cZoGngfyp)sg{W*hI8*;_Eau7GN`@Gp_7;A@ zJ9}rBs9MX~QWf87c#ZZ{>%;i@KGA>AZ)~2tHgk9Zg#!gBkufZK!Z2`faI9=>9iyYn zzgx@7$^eYuFT2!&g4beVV&8=(wG92|c2o!NPT&w$RAnu3$M@U+CROG<{lk3%`VA`$ zGmj<6liyCP*3gv;f>X;>tBSq_nnhi}=?w<@epebvZSd>q>D@m((5nn$7g+aB35P>{n#LZz2b>WW@V9Y^Y)QCOm2Nz4n6!kW23Reydnw z4(jSSECRBu1O?*QSz;m?hyPUKGl&Ci9qTzI(PxC7kGcHZz2j`HcE*=h4K6G~)X=l? zj$hgd@nrW!mOr7^({!yV%(GBc*!2AaJ2vkEyyXe95!1r;L zNSs?iwG*2COKBl6V^!`xoxVD=kAU9#^NQr=s~&xi0U;Jb5EZ zJBmx)%l6;q2T+~q7h+x>C_519@4>vj#Y4sT(5C+Hp+ z>t90XmlkjwA_E_r-49b>jH^FL`17y|YgsV`0SpUB?1Dsjk5LgRy#v@{I>^-kJ z<+B0c5I{A{oZ9CFaL`)Ol^$0%j{M|r-@Y}cSltEX(@TJH_d>-8otQmPEC{v5@h+9` zOGS0H>DwjrhCH^tB9#|(Ka9$zF)jf;Zi%uo zEELn}WB`EC0+t?3z+kltVCc4nez1Tf1iiEzDpfZcKtPOVc>9JGc@Gz1$fFR8Z+(5A z+P_BS>`e53=zP&$SwOuQxxX5SReF4ouw5(30)4*c#!~6P-IF9sifqj zxGwOE_^VCD+q`2K(E{PEcl`3{;s(%?6ILdm<&l>dKxSx;S3^ujUT_oq3AaHU6WVf+ z`3$uN<>Gw&Il`jgTN~sStF1ynTlTH4Ql=?{2n#}?{P>CriN{tSm;o#wa1L(Asm6iGV`EdaM)|pWl zxCl`8J`W}IjE-Ugj}PeSE&vONTff?14-c+i^?B&ES{d2S&JG@?-Z{RvK$|zhKa)HpvBc*zEh>^Np!E z8ng&vc&SlQijLTqWpi&LI|4YeZf84e)(e~f$Na;|N{cz5 zKl8Z!1G@&CNluIDuT4&e4hPfp{LX*+ePQ9#Nd*K2Q$um-s*DG4xNTR40Wz^UI7XyA zHpXC&hBHJm0H`&cEQJdIofZ$ltOQ>hP304x%9Ahrn2n@XrVTjeCnG3DC`d_3!EgJ3 zBHNoQr-T6-8cIPlmH(mI{lWrZkO7*3qtyc`ZsUGzC|?tJU5!qM1c1NH=>8f4^)msc zSB2A|Dy@8ST!W9gI+54y`TBgN(VzKBc<_&e+v=-s`3LUfF_EX?%(nqh^kzv($r_89 zu#?uiC=^`U3fooT`}=z$LDy5Q9uf+QQDD&rf4QCU+O5F=k*zVC*a*4;VvJy*)iaNEjq*hlh6yn+Ys>3IHgbje~>Q=kXq}t3ia` zF}`E?J>TAOR^k3k`HS-5<2A~;``7ST3uu(HK~1|_>lx~N)INYxqD}G1KpX~%AHIsu zSavxxT6|`bN$CI@ib3qd&_X_|?teKp$UM^+XU)G?EgU^DD~R%g4a z04Stj`jfdBfs1B(d%mw+py*eql>ePci~AAG`@%SE5B7l2;O3})^?M{aE^cfCi)bvZ zJX8okoYFTq7$)fUSF!LDjq}lh1n}`8S68M0Y5n@{E|$$m5(dET^+DAQz*wV}jA);o zB>?i9qV-qrr}N%86~qm=|4@i_AidO_oOq1IJa>HPl)|aNO@=wWnA791TWjwgoC~~m zIa=ts0vwp4;Jn0=KY{;l{`oT;ghu%Ng6$X_1whFKDCU00CNODL8TCaO? zQh#L$mKq zumL}(*#o2)sG%@gD=Z=+BEXmys+N+ds;Y)Y13{yyqik@67#bR~y%l4>)&Mp(bU+72 zO-&8xuvi*x9UUE9E&5a;kA#K>UI)NM_h$*nqV(+Tngle^0^InU_V<4U z?}VmxG);iV+1XhekdE1>wY7-=Ja(hgwT=uY2SR0m$jhU}SRPwlRDw4^TYNday4t;l zY_bTMbOxeK7kmtOe7M^@IvS}k=(^qrXGsJH$0I`ft8&o-{NE(MV3}h$?KaGj6mfO+ zreIJk5c^tBhyRP^IWehp_4bG>D5<=-cyNLBH=JfSnpHc2Is{Xn&9WHGrw*6s@kojc zR{&yJ5NJtz2R3SPBM(oj55yMhN1*@m0 z=P3kYu-+NODqh(fLV%hF zu>By!15^+=dLe;P1ijqmJW~ai8M!V~(a(!RcvvJRkdM$e!Kg!?HS5XY2AWlh#XL$7~J60$5um z5bWR<>pu+v(nuUk&VqL z5cWcqVgewGR?AKJmX?QC1e+l;<#SM;%)vPNvq4ofSXkIl{5ceGW>KC!bKPg7mWndo z8_zN)D8@E_sfJJFj`TC5{kPs)3WOC0pdHYd$jeO+PZ6`X190t&6acyrj2Q&#F)M=o zua5SiXT(L`JNFhxC(JoZJS(Tw3#3_AAWE{-?R>Hay*N;L;;^)|1PhY_Rw_xrg;}j! zce^_jS1y?|6a>Zq>`ImpxCUZRj}H*=oD)AKY?s9^C4dx3AI_FS;Vhr-&#-_4u?u7# zYWIKvfmz$%mo_tdE#UlTZM`c5_!A&;;1?Q-0`%er0KqKLX-)vJn7RDvYQV$jo0#}U z%we*&y9)-x1u}{+KIB2E0%wUyNvB#oTpk~;^q`Uoj2FE|m2uT$GYs%StmZ3V zsi~k7it+nTx$gA7tMt)+x_4{_C&#RsmY0PWQ^)vSkinKp;4BJ();Uc z4j1O(R20BRbiQBV3Q38~HD|qJx$xXo=uaVhyjP;N`=@8vfDaG|^30%aJiZ^U08$<6 zvCDLy;jI@CE-z2#94{7BkqeKup_zc30Pr}FsShG-0DBo^XrM-!l-sI(Xb24k3kyrN zOnU%uZ_uk(yZ{#42yld&I{@@!)2T8Yf!oU?S@3?%#xr4or_}?7t7};RKY>n@V-`?s zKw`^H}Q8(jg9tT&y5eEhk6OYXN>)S83FOHSYZmtG$tKCA~Ts3Va$vXox+Na0OiJS zUOENeCvsNUs)HB2L`}{?6WOaD*T4x2gc&zq2zff3j)}pxvbKh9%MYIJYnH2}+=TG{)x|FEL^ zRjsKRCCVveyciqd9A?9JrKMx?)5YFMBBZAe^P0k&6r*P&TB|rkSDr9(P zsL_C>dQJi@$ZWmzta5}$>IqP08L95?n%dVp%U1NJYcmz z280R%vC=~OKTeD$@Fl1-2*gscLjSF5iFyY(zj}OZDcF?c;vD@m@G>I-x4uG(Wv}8G za=+IeEq3|ATjRqZ?VNCBF=J;^PxvL0fdZH5v&AJA&jM>xA8jq_i|eNb25q!%$Whj z)oZR;6cW2Sym&INJHBn^Pf`M2En zxR?@|dkALU=tUaLOqL-I&VB?CfC?VqdDFg3&TbO8KSjlSd}G9kaeMB!P;0O| zs;n0by>4L)!b!8kQ-Y=@>Dvwm{fJ~MrY}+F5&vslqMFnTCQ;1g#|!tdHb4(X!p4Tt zX%e0ISz-F&uMxLRp#A1_l??v%!_^f9l+Fc01&UM6f1wHBF(yKfc}qD(Wx#9-U!e5NQw)q!sz9gwh=n z2BD%zhteP+-3+3L0+NC>f`GK-&`*&=W%mB~C_hD*G%?Y*F_0mw-b*x5`p}S1 z2|n*#egLVo&S-t&k*!dLvw!i2MEWc-fE2E4-r3#LGi_k;481orG(5u={@0xqu~Y$z zA1P>|{->=i`$;y9sNLw@a_P_At}wV5h8B~;7mTgG?d~oH5Yx||9$GIiFVC$x`B6dI zB`5&93XNo;&U&4Z!Nqky8piaDVRC|w7jg^FQBWvn^?dG`zbIgO4sm8wZ`qZmt)~Zw zF^ufWKSxI9o$eL>(5l+3mHs>fUkD&DA8%+~y?HYnTBZIjFNXrO4Ivq9gr(Liw8pZa z%s(p-5lhR<@M%izCs-fS_56P@kct2L=jJQ{I8cVjaTBUxl^7mKxCCAv!bFGv^vZe6 z&CMaReG69IvI7!-AsxHGr+*Q!W`IY2Ly2ePW%%I1gFy02%B?ZHMWv-zVDcFx1=Am! zj*d1vAO`qDMOf2SM#3ROD}nk?fPUfNc3g(_Sd>R6@8uV|1odtKaqSPUXxNq*peAAv zqN3->A;hP!ZSKANs?T^o<_Ry`_>U-V{$%`_HR>Mb-nI7X4KZzAmM>f|t|`dEl1VCx z%)5|>XM8W=3hh-@b^wDQSqXp)`njcLGrV7&Z^lSSkRat{UV_m~BDOGpU`h4OdAbU~ zC_C?rtg@VKk zHuKAa6dBl*WH?N9>$aC*&mlkk_5J%R^S1b|JRLz*H8mX=b_E5L(2K!v0MOQtcPCIa z8!{hx^DOAm5rmL%owPu07ih4m*^Zhxf#@kXFv5gOZ}Pg+QLN3gG8|i zs78uk3<<#TIQ!tB?z?>cPZ0sOFDDe=*$l4jj#q zJK=C}J(qYX2V&(GM)PU2#gUQEkuuA73TiUk;fEw&Z*h0zi zZV`~FY~(N$s8K&xCnwXbh7-oJUcaPWX=w$ROAb{E%U&na55SuZYQS@b>5Zz0F$+ijObMZ)a_&va!GXM&7>?q2aIgfhmG#g5_r2t%h%6p zSU^ur??sx`qNCMtmt8!)=VRLuL!}=2G^lyC^cMfSF){y#Qezuecmwet0}in|iPj-upUJa`*NsU@Vf*{{ zZ-=It@|`=6VUQq#&#>n1I~uM?TYjJpolIb}K$%+pV*qGdxS6j$9lM&RVwvHvv!wIy z-@j%kWQt!xiSOX->}@vM6vk!&+2`4udf3d=fkh;MB4X!QerCxBwml&pVX<6B{bd(_W^Dw369to?&B>%QiXHyDJidsBhNds1k~0;6w? zM#sipIytF~)&r*1@&SJ5BszZq_va7K%duczSN@HOV<fH7;{5jH(O-zj}c9(@$>_k^NCf;Ol8buBJY9J>3D4sP%mocEM|l8Yu~_#Vkc zMVo%rTGE}0Pal&c*{6+0KTJnYwdLvx9c?p!fmi%szB1pKREn&Gu5|K#{h1u+ zEWWATXsXH3P8b-$m7R7 zSfxe*7-9?o{lPKoDF;>G`81V`=po9MADxECYgzYoFvk4gDF+Py*3S7i*U^ z{uiK?t5vb3UteA;q`_%f__q>#yQz6^ghwZGr{&Y5?HL!>z?HEmHowiQWQ+t^>fZ-n zQUOiT`4Bq8%e=%K6{XGpJdCQ;EG&rp)fyu|P_S^?2Q!1N*xO&{Qx9EFIaPtIBd9l= z&|bHq>^_&c@5CBXW>ah-%wZdzJe zjOn_J=hitmMX)|`?xBDI`{g=~09yeeC0^8C9T1JLQ0#}X$zBB%9>9j+GbVo_r%uOt zYp%<*$~av2MjKkPfE9d=miA&nqY>=$2ZpKOF#A zkN=7H)lXu$pSNyyGMiUnPI;RnP?_p)VEFMrFv%zAIrW~r96(-LOD@CEu+Ki%>hB+s z(>zvhv_0)}@I(_eQGt|^u^tVls_-)kUEeFZ&(5v7wzI||WJlKYA^XcJcH;JIyYVI2 zb=MS`n;ymYH>#?07w{9lC_tlJnqZ~9(+s6e-nt8B^?td|ymPnCkXX!13R``a;1v~> zmuDK)`);j_B>*_&xV@mMo+#Gv_!UOC%A{K!8_ytl^OmatB97CgF5=G&DBQgXk`3SZs2OK-r!U-Ib#>>kZRBg6EUUmi?+~JM^p+ zCnqQ_2;rOKlqV7`C*_CU!RAcixP0U(Yhn8FI9yUrMhvr44S zTO1Bx!#xrSt$Q z53lqX#`VHXvtN*c4FZLUMxz0%E(S{Lwt~X7r+F7yBweQfRw2Bb*I!m#{2X5J4DJ8^ zhIA9Si;WTcdTBRSIFhddqUtB+N3i@&A6U`>=RIRm0D}29Il1{=EJ4WXJ7}D&M#^~s z((JfolmaUh?O$|%gJ3k7P$?9jO8MeC!C^uGJ#p6qV-*tZSQfkd*A)&y&b1;cIIg8H0!UwAQk!vC$2&XF~Uuw9H(m{JhiC6$sQ>mO>U054@c=lsz1+6!KC z4u*#7l2a@Bbyjg%^#`gudshZM1Ky2oHYJG5cfD&F@F))q-RIc4&TL8YOq6{tWOznY zq0AMb?Mc71Q7gsg+9F82JJ zt`f^P&tfP5q@cT1o-pn8pN4;d13rTp;gI&!`FNc@5Anh_;|f!7GbeueCY(3JCu zEJD2g4W~(i6zXEUzf(2?x0{hfGVg_yg5(Ju=={r6zwVJ3K1#I4lCts1*0xX4CRJC& zk||FI1v8>XumOgrN4JWKtSjAbnYNt=OWoF(>=>$i-E6~pi;h>pq^5t)iQ4Co{5v|* zV9h#v!^x$V?z9%7^8UID`za{=$RoV>bukAy@rK^ z>WAbNUM3lRe}8|NWme;m0JSiTDO?p#i}gC%y9I&N_pgYPlM|F}TgjI_Wxpr|fMhG_ z5(VW>fC^FbFft?`zoOj9*jN{6YVVM1uNTQr?Nph!mz9Sg=<9M*U2PI zprzH9^K78ti*3GM<13ae`nqu1ChQCvd;9z6 z&*^~s|LWcc1fVD=DCSuJgYx#>Aoui5y7PEjr?W^*N@C-5XGMx9r}!AP=Qb!WLVbZs zY4o8}YiRGln11p1(zb6x$5t`saq&8FaTzhSIy<`MIUlntwN@^z#9yjRr+H6$pD(q! zeY9S7g)xvi{3WVub+&3IKF+B1|!yO2kg={TOJifTuCcW%?7bgNEs^M$*i=!=OO}i~8)QBQc z2mQoLr&Smsx2@%`kV0_SWbH7}&UnuEDOOF=V(5Xkz}gIZ>e1yGvvg%E`qh(T-7M^F zqP8DC`_tb8ss@;(F7B=Rl_@sj{B`R^Z&81e(qS9O_i8neS5*8Nj5O3sJkeUcp@|+H z<89?nB2bTeRWDAIph3Ry&M|+ zQ`Vd2sMsCLPEk8nhpij z3(=p`6$2@XL}4O7rw4X48w8y%i644Bc~l+FQ*x%0jU(a1Zj6(8& zSr$D3gBw!Ph=?AIxb)qBOd2UG+vuPQEm{Pfj-Rw)?s=g;?YK0`qZg7tOaZrx6_Pfv2A*2hRA zqso45rH2vJdZDxm>D_{Z?hB#aNuAa&7@tT!t}Pm`jwis*g2-KU@i#G@ODpWa%74`I zK-GcH2^G+Q`EN6COq5+ffCe3aeE04hw$=wb0y#0jjt2OHNM}Ap#V5BflF0=VVf=^@ zXk0a4r>pQor%weF+e}o#8r;^cRp;FYkOUH_WMP+)KdrbJR$Q?s&RdqfxFp6aoG0~# z4g1$znep}W;l9ZKG=EnGu9}3+ALnR#jFdlr(|>%t^%(z_4e{UsUiK9E{5eLzOz84O zgzpKXnAg)?VV^4VGjVxaycK(;<_#6x0R8+tjPk>It6?*wKuTIk`AkJL2i#T$=3HlZnG1&<-CHlchz{uMZzUs-u5$-6MZcVi@C>N>n4iGP%8@?P4o}8 zlKUe{Q~wGs8+mJc5h6{@4dR8!|k z7Zik87{L0lamFC*l>^m721;f_%OXJ5 zYb;7V)27x)b~&IWYCGO$Xrn!)wM;`}D>w*zuhx!+ZA4|_IL275tZ)jH^Rw$eNPr#q zXZPq`17dYMQHn4xsW7ayN;@Xj5fx6TFOhH~0DJBv6_%UsGk~xl`%eWR?C018PR=y1 z6!8jDM7xY!0v#@nOHP^7VOtDOPx!?9cX4Ra<%bqR4=Y8f>NNyCTZPbMl?0E`D5?Xd zZ_7&f<_oC{h$O0`BN1HIXLN9aP!|GNPbPf+LnJ^DMn)x99p=K(0*#GjWB~yI=w~d< zLM2(!qc#HBwaPcI5$VcEg+NQ!Zz*h@>BMWx*qHLw!Dn7l|62KlaS}dNW*ahks!8W- zj*6%E-6oJ7GNezk(;6PKvDKQhdMMUk_=X+ug=uZ>H>t&>8N?(Q_J(^4Ijamx%yFU< zbDOL619I5?;T!kuYmiH$Rvyd@#H#U6wwC|9rp`~4Hct567vbG#w^|p=KVU?NIKVc= zoW505nitkC`nPPWa_=&ioQ6guBK*sjFKLo1%l>Mm?CCQVqC~`=86Y6XrAky z9xxKxehMxW^U|X$2=EJ2{AeH^NDaFAd4-~?GP~mSbj;pFV7Ul3e44NSNq$FeFyj=-m=oX zbnJH7oS7bLN>k#5wc1%7)p77kl+Im7D(YhC8AVi0afk@KvB6Ha%9~xQ`|q1m{NCs3 zW)!}3DPuk?YEq=3bxG)uWysdkI_$RmQ=L*F<`de$E?^nn96-5HSyd4f&Bt5pR%nOy z!rtvj<{ZK59pu>?`7DpvFAAhTn)>nXDC{z)z{|9Z(84<1J@NQ_?PneaVXOz^Q*}=b z-Q`E7|30f79XDJ}+3d5)53}-cAd-IIr%i9k*62+K9H|fW{SuS2 zEp!Ho>-a7qsO@_W465H3*h0v9u74?2fGIRGF(_+)YmJl{fS(t8?>j=^i-05auB4BMb8;`pks`0VHO_4UuN zhG-z;0HX*2_-gn9K3}IK6Yvs^ot3d0VKN6_pX5BbCmioF!+GlQSq}5Hf8kaqsH^?R z&t*2eO|s5k@dMo4!KId;M>KD7`IXu83s^-4rKiiR4m_CZx|82w^*g%e@L=n)!9a1w z_C~2tM6MR8T|iKCZ+47HR+f!%Wh!Ft^u%I}o}1ft@^V-ZtjO`C)Mf}*xXnu8bgPo` zhf;6GhXsi;c0I}gi=+(J4ir?^$Rkqpm5$Vq6SK=oJKk4mpt&V6E2Uf-mmGJEhQ((S zDV_ePpR&|O{Kc;Kd6KnI&w4p2}bz_bdAiooz(1Nxv?SN8dj zpxXgy0A)r%r`wDa$hTslA!$nLe{P$bH*a$1it_NNLYtOlSr`a+M=s!#q`h3*i%A*y zf^u_n|HKL2QRG361LUj%%%v&tdr#$GqTPd8Q8kK+*odzGA{~`sLi=F!5>G^PlknXV zpSf)#uN#JbV_SX;4g1*aN0$wZ%5q$cmlv!S&-7w3>~^tyo+@f|`+Ft^hDB-Uz&81& z%Xfrq+#3kmZjRUJ2r3)sJ10!HZkA`6+%XV+nTGyQc zgoqd_;LJYNWwRNR7|VQeEn@Nbu)-$R9FY*vp2`1@)MX_R9U*(FZ+hguDC0iIK~DeP z56-%?BEG1JRl(SpoeYfvEZVfJ4!SpQ zUL<>p1&DX-gTjPP3hy_mf*#z)V58nDE#h2h-Jj6jLJo*u&j5@LjE=q_b+p##;O5p* zdA!y00NO&42xbZAbI+djyHv!B*jjH(NlIP5EO(v z+TV;wPNqP75_h_K7QhDMu2u(q_@E4&LEetn^5&~4yE8d0K$tIqsZBJ?&dvrM0TB=~ zf&6uQ1c8^bKcD5JqJkF@1Bm=FQiSV{+?wFQ-qFI5k;xw(cfV^EnBKkbVK&Jjt@@Ks z6m6PUhSH;4mq$q|st6K97q8frm?Lk=B7$FGn(sJoh|6&sUe{8$>EhE#!=4=bznpYF z9xU?AyTghMQO>_Kk_G1d33dZD;+<)4`U`A((4arJ*JJZgTs=LawH&^1?i}J(fIr=h zQu7zPE4oI5V+J-<37YviyS5_)4`i%#PTD1L4`h)KWXVm<7xraN#MTyab?e1$QCkkK z{o*!9m0m3>5p>uW_~!80Z2wp2aFe8)b?7LiZ11#v&1WAW-?KY`K~@ z^7p;BudlW8>qZSpwImKr_@Pes!we-cAhP5)s81=kA84sUlOcQ$)ws_wTS>sEJ(quV zIwhrnLaD-u)h<0vvPY@5Vh(bL6-KhPprolgxfT5QX^f%Pz;G2E4Bxhwbe${yqnaPO z{P*)QjD-3$>G3#gVRr5hBi^65w0z5^aNfegUBKaI=>%;FX3B4abyb;JEHx#m$YdMj zoSyc{xSO(mr}-)Th_42EtCug^=d*B)Ee8pJ=JUz8$1Dp-Ap8;Gz*OnxulD7}IxqCz z19aNSj)C-$QI79t{PeeHADTPwC<-|GsPs)dSHP5tp4SD9i!kPCVh znwSYO5cqxrbe?bb^5siT&Ti;$&XuU-GCfM3sF{_ATDMe;*0F1~erZ zT#=F*&FKIz*zDwJp9TUKIzZla`udxx0Q~cF#lq>e`o5&7neYb1Fi_7%v0IwD$DZJ$}3<_7qc|R zp}tHn@5yvCs?|z=WI8Gqfk8-jXyyt%u2d%HH3&Zhz}5hJI+tEE;AyGT zcAi*h@_2uimvJLZmhYc!PMLm(j;WcK4?ng}+x?KwsDIaFNMLc=re9ki)4)I}QSk=zOd+wp})Gqo= z2M3CZx)l*ft%1d_XL)-=mp8dz&u)gyu;+)bNQd@4z}KV!qtH;_|8wLWn+sZakTz2@ zFuVnA#B{Y9^dYT-yhV?9q}(>4ZxfiL%TiLz(rR(nmD8y~6(kR;DaUd+&+=Hiv9q=V zklB+#Ze`ht+fa!I0{pB^iN9v;c6%|)jOy##FGkAA>C^<5;FFM?{W!e7Q~$`&(BIh< zzh6!r(r-bfaR!wD7%j4#5ES(F$IEM^(RK*^VRD{=bJ11=y{zO*o^%z=`6G%C2u}8q z%{6(9i7T4^n|jU$=A7TS2%2jMuB`N#t$g&aVneQc#E={KM>}CiF}*@~yu7jhd~7iT z-&|V@iF*dIgB|E)>Asn;hkqn<4=N_&bdPdrtpS|tV% zyNjCT^hcK={rvEG^Ri3J!&Yd!=bTgw#J%}8W5nDH2tRT}_bHM74a7$UjNfyYu@QS4 z<;jMC_-U(~ph&a1x@HoFwCSI7g|$bVBk7tHld#U@NiDSLy(_4`*xSW3#bAg~4()ak z&2_VH>-2$vdK$^nm$b1I?mIf{l6ob{S_QpiZKK}aXPITG+GS-ZA?r{QF5O1|$?kvQ zN+{vO45wo>8sxSZa5EOjT`K&>GXp z_u2^RJoQW5Z751g7vC@lRg1XI%xrd`3=Ki+i0ew1dviXXS3i^NrY+MqvtV<5%8RKZ zr@QsIzm1+F-{fN%Lp^0Zg&x++fM+sJ&z^2{cX=xursF7iC`FPI(aj#V@MvNJI8chqT3E-TNWiYhA{{&CPeCdG+YwV7u>6#{wJu zCQV{%+2Uk!uW(-cbP|$+T`|Z@p|g)nA&{&AxNj<2+5l+BoNVQ<{{eqRAW&#BSkODS zy!RZyV_*_wQ$GO&%-?woRt|Z(W#>VAcjn}<)~&+-7x*NP4-h~6fq;dnS$=?mzwWDo zwoW?Pqcs#X6!=4Q_}54&`vaO`^M7CC(XXHq-e4T{S!*CZ>*3#7od|>fX&e|}Feqe9 z92prg0kQs9twPq}a@*jNnNxOvbH;)RBo=CK(eAkkek%w-yNz8(d_0`1`qS!}5|i3s zaOVO0k{7OB$0(|T;ieek!}x*IGOsk|qndxI6UK&-{fBd2zMk;KSiQnojE{l8aK3+1 zfWM&MLY*!T;c!0kwkOh6ohe9qQ>Js|+#WN^lNE8YOY_a~*0*}LZ+SA`4qc3U(&akz z@9Cn57izIs7YETBM1vbr--@cyZb6^0}bzc`gOcDZ5vjH=VI z5Pb`N+#}WMg87}^>)rR|ff?YfuM0ssHzkQa$Iw2N9`kRP4gY!lkV*fT&~W8m=J{urOzJ2W*f|N8#ynbh*Dn1sapl#~?brNKx2 zg+?hQZESu=9KbW5b@E$vrM)=<1nQ|7IiG$7JBV2Rt*r2Yg!iM{gpZb?`(L758gfp~ zp`jrfDk^rw6|gmUFe0;uM}gv$4$1~#cEiY6rL7Z=x^uP2%fz(b;>+XpVD_ed2XDr!1^l|!YOXd0b^ z)aIP02T_Y}=#&b6SnIqVYg80*W)QDeFilQT4|i$bvOoRXqMP%~=|M#4CTCm==ix8i z`#gEeUozNOg^z{mJcBZ%8oxf${bg)N-1^|O4O?$mZa4X^l2eep%C6&X#8>S0IuCb5 zrA%hi2TmuI#Yr>!MN{j(+*u<64nZYT7rn6^Ey=M7S=q(Sup~tSlp?T;tvg1(*~`LB zH=kz)^VoB4Oy1#CiMcR}RZed%Vk`5ri2u!OI(;C@yKNK^kn%onp1s(sBIbLAr^XfE z(B?Qg-SZ7c!*pt!J3Xp%hZf~8)49}(9L>ge^ar^dr)*jky*NG9x#@$B#*L;j7?eEg z*)_VhHg}6Nlmg{V@73y$WW9f}%3r*Es;EKhJTyPeNqR$jJgSZQz+L^?;-+wGJI($k za?IT0Q*)R7mM(3VBk2Q~YsIelX5CWu_9{adX)m5baraJvxUuP0PKCD%n-VUit8H8Y zcFM|u%{3k#+}?r@cC@NWcaplkX7Jqq*gb7K^8VBBSc8G#GESGp`1{5}^j6(JB-*3B zo=*bUa$QsLx>o-?qA-?{=mg8r!3`z`h9uRMJ}utXKW4m$2o!OtbHILOR@U7YrOnKg zkLN@84~CME5gWd`!~a4>ogL*%c=?08KP_&*yQOPqa#gW>r^PF|rG=9tv%{y*5N-!g z-TUuD7%w|=DWAstc^&gM+e2+WNXCbUOQR#P#Vc{bw`Y50MM5W$SL3k~ff_ABJuaPCsk&c|*Pv>G@K@CeIKZE3Xn z-VrT6k#$yd%b)g|x}oyW;iaaJ)QHm5!hFr4)TL{VjuA2<=D~Shy);w$+VWEqwlT-Y zj})fnx{grNaAE@OG7(>@xwLJCti!#o3jL=S&Jw`eG`9DoVI;$-dwT$FI^f(X6KupQ zQ2*jYeuTgtE$zFc8bR0QJoLFEuVXpMO|kA+#NJDtmpX1buW)Ghb92jtuy*o6Ve<>o z#|EPUnN7)@PH<+J?Yu(!Lar=I)CzJqT52?mr09GWPHr1nIlP(TW3D|==i*dCF?cCd zw~&D<+i0SAY_#$XcGuj@{Jp!!{L6A%+M${uM|~$X{6b&ZGNAO;$ zGwxR%V<+DKQ0+M}($_q68hGdNwlx)lC(}+!> zj`f~l9gpKd>0Rwl)84veG?mWd8yUEGiUZNBWFCjaRQs!bn|?-+HIZJ%Rb}pO*X$-= zvt<6y(K_jF!qb>Zh!;rzUx#WgoGJTjZ z8(|BRB{#}=zR%10FA25U@GBwjT-8f%DkKOQ+TZQ_5bIx2scV-u?w-2LWIHnS@r(i; z-qGFoUXqzyKjG)B7r=ryRI*`2$z{y?_qSr+cOYz^B0}pB*QJS{%t4I1-+GH2o!?@^ z$B(eASXi6I{VLGaMItD?zjjc5Am)@r4PC2}I({|3ZiZXF!EO@9$A4^mGW#hZoqH{1 z0)w9|wZG&|(d%A|Uq(qF40cduI~LhecQ z_=Ci++X1VD)VOiOMI3?d$dG>4UJG~GN?}S$f5q{(7H`8%tH>BS_g#ZAJ`Q=C-OLOt zkJp;HJZ3_5r>yStTs}3X@1`qSV{}*_#1R~A1k11rDz{!b+Rus+00KTXmcNjTDpRfJ zp!n9UnBjq)9b9+DK}}O5t|83D<73@$N+0pO@TVe@wYwro*e(qLPH|;0uWfo#{H%=$ zpOu80MT`@#`M&Nyq(f3LBd#XM@K5+;%`#p*r>IOIdxUr~f<8K7`NlyeCi57Zd;H-f z)aqHzV)w3G!Zh1_$MqHY%_NzwRP# zd?>>*in-sR3nnClue=bqCQx_kk?lMK>{nBxTJ{5xr*osouZIy_6*e;y$U#~9AfwON z5EV=mW#<-msy73E?#WoeZ8!Xqb&~1IKRz7x-L`LcJBoXDakBh|zhmZb#c3RAp5Gq< zah<*srgJV1MAo%&yUc=7$UBdZIKD+~S7F}zOCxCdQ4FqggihI6E&@Wc0!+riNl3*9 zXuddtvWAZNDf5|o8wmVA_1Z#dUG7It%}U4;XzwGmj#% zi&thcxDX?UNUb#g>zVip6>;`2S!M}&7mSrYmFN2Sk%#kvkVdv}F~yhZt0Bupi6`9L zmqaNbr)fRd-}FB|EGxJ1t|@ofc|q>EGEo>sAYw&ubXdrG`TBV=AKiem)>ysaX9c38 zMd=xQAeNS>939fc713f!3Vj)$-&9f#2;eR3P$#C5MGMTL{4y6~+1l&mrWssny|~!d z9wiN~&1qG6t5EtF+~sE%HpJRYkZ99nBlS1E=?IMPlikdC)jyQ4^SH3FiEZFsFXEVn zV>6QLVRbt zU2hmLF;i8qoR0pq*iZCEiMeE>Qb9VIWBZ^(A$PKpjL!eupx3ze7$}5nTmrbHZV%KdM{-j zx5B}sZ!bXC+>Utlk7op?fc@I)DimT*^hK`uU9{YZGT${^9K_;`GDEaGm^^(sY7rCW zxa7|mHx^v&^>4cd?AsxBSc^~7+XYBW{WZPa<_qjr^)dyX`T<~px!`1B(K_W-SVQ2w z@y>ibp4(K=>(s}9!jgS3u~M%nZ5+{tuBFDaqK(*_Q40fso@)y1kCP4Hk^f%fcP$La4!_yyTv3y{$4 zY@8e)u$r0^0K?;DZVv! zUX`!ME4YP}&`XQeDiVGRb&{c#l~oWNWSG$otmyk{aYe4*+cL6lV|#1pGqRj|EHZ#r z`0lW`2wrotoy9^&LFFb^UoUmOLvECr+#KzSBw#}>oo{v<>FkT78+?xZW>H~&G3Gq7 z;Fop3RjdM&)aWg_08Fy5u)ALQM{~~==5tqA5KO)#uPLgWW-Ie4*E)pA!w*GJCu4+S zo=D+9g2VA1TkHBP#_sk?YtxG*LSMZO+@vS)7Q$b>csE^VUJOg#Q$)S@8t*kOOe#qp z`1k}*C&_*ZH*SV&aq|zB%riP{mLW&Sk9b?AnG2;Dcq~7P4v-B0_@eet$<>D$VKLKp z>r)%_Qf}5Myehr6$DTw{@-f{s+8J7?Y$ zjE~b}a0Lq2QilqeYTODFcS-4Q5!kSmzhE0ws*e`GrKcj^%bY1cWaLNm?;j?R9J$Fq zPvJwb8)_Le33dA-;lya?9M}|XHCjzND zxDUy=H}x2%M*r-02R*0zo5DT)JX}fv?=4hy8s1VMPY+Z2JBUh6{VRK4>5NLXy2Mc6 z*JyD@vC!(}KV@oc$%1QT{B!|zv_;!lP?Q~dO|HyeuAfetvSXo2N|^P(&2Y3P`Od+c zx3Ht%qvS$4-dKbMTarZnxxvI!7x8Ieb{oTyNyA2t{1i3aT83ge(wdkA31VLEaF%Th zfqDk%@Fglq+QIl-eKgtd$$e^1pVMPL2mIxHt+6HUw!yJly%N{9vbg0XjFz{*6AA7z z;`b9`R%vH1KWT^Hi+Em&(<2lJhQe|+OTG-!Qd1iQAPv(Jnh+3I#-j6balf(-yrQSX9DVz0Tsu|CRw zO^p2($=dY{3+Kj?x*!fbq?%pQW>;G9u(C>m6y-r~8Ks%-*fmq7yeEfhY zqEX4lI@Xq`m+7-@Rq*HnbnRW$xv}o}03;pN|063_RCJ?!s}WD2W0rR`5&;&rX=YURgXKe-H_e>h4MY^N+_XxXc5iVp+11HTVP~=#)79l ze>8-sus+W-EROsLc%f|HtjprUt^2X)r+J;jRS#rHz9jdBJU5}Is#guD&bW@W)v~&} z^Tt*}KCuBQc2bmKAZb``Y6V`wp(nAs%sI7WS5DLA4JK|bE1bR!zFI*#M`*wLgz)48 zDtVE(*LSvmSH~?6-N$lY$8QDE)+s7x$@q3^QsNP_aopT;Cr4@-!j~8GG`KK@SO3*5 zoR^>@u{#PCT*&gj*GUnh9^JS7#k_i0oZijGE)4E&$W+7m-L8?`p*&0J9@@LyK%_-Y z3Gc7;`+3@1P!dWfyH(Z-K3um-np&O{mGgXsc4MhU#umrhdN1jbi@Bv_`OjB)$h}#? zfd*<>U+DB-#&#tCiynS4CZEr(%gg>|tr)gp#OETp zKHuFJ4h+Va-IYbLe?p z%uGep?c@Q(YKzCg=;sTaR>b&6n%wtCx@qr9oa3=iWvr)aeeD$+Mqo3%@Y;6eBXak; zZg*pSdVdp9X^kRONV%j4Gd+}AU7tiL!%4RW;r6d-w$WO>J)vH`N7=&qDi+LfWM586 zqkXB)EfGd(BZ&_!bph`rER0`$HFug>dT1Tg(7Tu4g`mslWCv((m;5wQGwAKxg9@cqk=|7V9^x}M}t*;&l6D~5KrkExe+*x`9t zX8jWT`b=UEauRttIRs$RPe;{2bOH;0c;U&Sm|JJ%38Arx=owxKGvWp)QrM@j;CT_E zd>PCQ!k}}kqN*y*u-5aFsC{zZVho?bdnhCt`}*i?hf5p4KPtc9sKNm$?YSif#^Zly zW&*+a&lue9#24$2ck~F+=Mf{UUcGvC6KpYa2a=>bXdcKO3&FR5aye!-3*Fw~coQ^Ank!O2MhaHq3QT~l*&`au~0$N_Ck2Z1p7 z1IaHBmlc5|fxsv#GV&ETiKT%g@cgVy0I_z<2oO@hn9_l^#j-dgq@%r?3JnkQoxqdGp^J##fXYj(^%&dkX8 z3`SuWZ#^eGGgk!@Pbug${Hl?09&AWnWhHx_FRVMb4t`K?!7CDZ)>j_{O{ON$REfYq z+x)-uFq!YLyKg{tW^!gBx$1Ws98NVN$kAV55DY@dGeb1+Hc$ppG;rU?4lpj8%5)c&Z0>5t|+u;jflkpmwmSm3B6hLW00u|^_@E&vk;g3G_Y;xaR z0#Os6RF?p1! z%9y(h63s4fkE^JzHUYN{*gcc**t3hm?%#x={gYBMS4@=KOKh6uU6SzV=qrdT*REw( zB;1DWQuu%5!`C@E0nlce;XTlE+z2i6>Hcz$hMAd%lM^bBe={>zfyXQw&a|JX>rTHz zNlgtNFkgCeG+V8Yp<9&@qhIBmjhh5F8l^xAmiSFD)X)d(ji}8dc=r*|2M%gvdg=&h zl4k@ri9Q)<=;i~lXUTjGoHnk8h6eFNT51w<@{b@No097I{X0@4<9x5cv^v4p#(TR@%fZ$47swUY0igZfu6{#B35ep4T82f#_MlMv=DMt# z&@t;z%-TG}hKRnQMNwv>=UZiFZ~uRFccxKIU0WQ#f&+-wiV!G5(NxMLf@lR)Kr2|4 zB@~OO43SY}hzh7o5??_nW1!li7BsC?p_W0231CDKAEq)$u}XrG89_?~1R)55?|*`Q zeQUk(^UDX9VI?>Bo?%aC@83>GY2K2hOJ`7n1TqRXESAI7$4+i;S~w~wjLAn?wbxMh zJtE)2!puubN^zp5)+a$HaIbrq!^qan0W0M!xOUPP!{_#Vhou3RGHTu+ zN&a7IVX?%je2g8-J+(cJ0cK0h8PkKj`#3=BnMAto!o9~{&a!#?CLH{XImjii>MOd% zPEAeCW_}nWU74r^CSDwhg?(|_cXoB)gL(@aT{gREk&ouQgkxvU1<%me*U!ODL}uQ; z3$d?XzgCaTMnDBJSOM&mjo9QJ$OivnN9WOJC}{3!;H1aTS#S}d#8Q6_nGQRb60=H7 zhRX>U0xmyw9;i zz!!h-#$c6-Rqau!IJCAm(welyz-~t2ZnFaS;Q8$AjPvK2yb$nwfF!!RZs5jgt`zLX zH9Fx)pxNJCqDK+Q3y?__SiSjtEJFp*FdBg!L~@wh$Va5MY+;M8bZ#3|QeuAuioP}1 zglK{<6o=GipkZeVA_nfB*~?18TZ$s(+6dwMfRl+l#=9Wnr_ygvdA6SjQZ2e-sJs5R{rkKntt9`sRgMKnW_` zym?b;!2%)X4tQCT2!T^kO>ngoC}dO<0cC&qFkvdEV>5w6F&~QVEYP`Fd1lDmMrOjV zL2bt;M>K*S=6#789(NOtxj!)U9*IytzM#C69e%D#L_jW+!x}flg#XHCy5neKj6E`A zdNj_Hb1OPMD^+J5EoXCD6-2!=ci(m*AMq#~5$d46NA(Da5<@JUfTZw-7SOafkp0M} zHCE=idjGE!0(W+xV|IX-3T4=1<%;PbN)9RG>t#>EU6H#@H^Z?B$>6}8ZU6)xntQ&6 z#+h|T`#~QD??BPWH9rvn&mVw3d4`Jh2M->EnMY5I^nC@X1A?>?i^UQHmHpxIH=!V( z&y1fvpQv9V_rZs(32MX93rRNJx9{?!A#jhvX>&!%``ROG#PzHssjnpoMoHa4f#w+MBy9eSt%mgp}Vs8x=fyxipw;a_6K| z(A3}rUqlWq(W;QFS5ecC{FEzYS(~RfTDN>UE~-|0nR!7Gjy=ms&&bS7z#!CdY<0o9 znnOXspx6b6?LUAzZvV&ygNr*|$0p$ix{)(bs>PTk1<_~r_UdJY$6gObd~aX63sU2A z1*84)=WX!fS#p2Hef^{vKjvE^Oh+uX8;fysw37 zYAF17?7*;9w`j{BbBTe0(&*@@yyl6FIE^HZ+eMre2nf6)p{}m3^T1r^q)t#T+E1-OdAAD;t8&3JHV$f$qcllR|!*4APj|C24sTVl+# z(ky}4fY$Xg(@d6@;rg4A5`So@dn<}2Xw9JxTBBcdh(F_d+cqam`Yj$k%@jM~je23; z#1=aOTqaiM{X)N;I>zi`lOk`)RZhqqR>}N{duycncr#aMBY&gE3~{HMN4}6s-&a#} z2@%R(z3R3b>Gj(bef+{PX8e`s$K5S*OhTCVQU0_vhq)gK&v_ zVaXSlYVwTMKB7MX)9R2)Jy7KIbMfErM}BkDcly&IX^voVo9@58^#abezb*^@hu_g4 zF3TUU|2S{|G^Z+N{xxbuPNJY*Nk!$(-s6)ypKLdB1;@l@-t72Cgf3;(_uGR9W{280 zAp3VVN~8!r6$a|ARFf521X=5wZk+(j2p%5*puYrFB(_(`S~tN_!8U5d`M$Pw^uwU6 z6b*=Wy26DE7Y0X1iM{!CcDBcffY4s`CMU@A`{A(wlidr-imBib?*roe&Ye4o*rN6T z%r4Z?Ve-;UI9$-UVVli@z$5s&gax{6Gg_s%p&P3fikfLM0BIaP^d-0Zfitm6VuZh z%Hbgy2DG5H0gC01dx1qy*oxrq$K!_7eS=f(f|BA~#IOd{M6Ydxb8JYNQ0*bu2sz1M z=M^=WY>A|tjEO-bXW=9R@A%Yfed0HO`K|HDP%WuyT$zH)<#!|&S*kE#D_WgEX(Qy= zV$j3LH<0mzIswH(M#XpB?cN-&R2o8t50o)+iN6ZT(}Ond!gLw4zqtNU$a8%PJpee5 zMqb_1=XB=_bjJ-LSpeRvgig8|-s^acDWSnyC1iez;jr)I$fC+%!%_@DJIv#a82^II z;ppoVp&?neY-T|y8O31conmIk^eFN>%0}Zr%gU2Tcs_n;J!s_1R3+?0k%bbVmTx{FtWOM5Ct@w*U!@r1cw>q9^H--(+Mg zq5Pl)={}O)5NHdZfB=24KkA!%U?0*zKiul%WcqlK0bTx8pc=b*B8KtcCo*5#BoxMZ zy4?gzj^S|9OmO|hg*j(7SK^bSo%3lZWa>?nUqFC+g){Ye zp@$VLuClXkJKt1QRhh+(ABNRSx3T$<*xm@nTs{7lm2DkEb98isbm2#D2ZtT>xaQ8l zLC?x#{jWV8dX8XL?VC&d3!2thT2=~$y*Gasz&!r}iwf4qMskMAnqZQQbo}LHMa5*S z$O$RrkPd6%zDvlTH+X9M+KB$_;WCI4i0n;hq{5nbVS!i;&A0X$ zV-UVs&-y~NQb46_iqXz1BwHPU4&%F->giu9&hbIrzblV2EQ%X9jF>Ng{6L-qg%51P z5L|KjX~)C*5d($2poKc5Rf;vNOeoTz;WXwY-kgP1BEQeBoQNKKDI<$ zN{U0M#aGYx9pcP>HFofDrPkawBXY0I^N%zl zA$vyIt?@vRxWN-HterV)*3;#sPs4i#1~>yF`xp_XhIyQ!MKsVPTt&Z4{_2F) zk>|!UBEU~XuX6BMq-R2;iD%CDteS?&NE3{Lin6jY!Deb}Ym<&*0FU{?Gevu~4Omi< z)-6vh`OpV^kudZ{y?`U+Q9?ey9nYvOdYsVpxT>Yr*L`+mQAc<82~fU#AeXIb5l=%< z%y*}tn{_5TJM~?SI($hOc-MaC!oo*gbBidJrmCs{oc7PGa^T0%M&!b8rhvcN`}oii z+xeDTk0t26S}T02y*2&M6cws+veAhi2M3UJT-Yr*Y64Z1-y|8b3Wf>-^EP0FlK^Ri z_7kgmbFK6|y(honpko4c_4}hxq`)b(hf0Mixp9_t}lWmYdwoX4tq;~7&Vw7dEhHpA1XYNTccySEPC*9K=}14%0H3G^Pw5XP+kjMWN9<^Gi;WRsBUh9&1rOB`~|&l?CkvDqjaLu2-Za=tcY!qk!4^6 zZ3zkrx^IJ}y=;Na*!LlAH$CCQEF*IHL+fZYkzvb1QD3g{uEJjsZ}EfIrMh^rF%rx& z(LiPkTx=9!n*`{}qHQbQ4Ar8@TMr>cRb5?9xWm@1_nI$XZP?@Lnu&38$MN?Pj1wsz zemOjR8nj885Enl=@*5oSZc=NEl}?_Pq!a@Tu^f=gx@IAk;=ziMOmy~Rz%TL#xooJ( z{b15>ao=0(j`-?7s(n$O)G$KL+ zN-_$iN%)9y^`SKp_eaJJ_4Mq?*udc=DjZ?42Ss~tt$+LchG@d@*3=AAqgva1H?yG` z`|uJpeCO}K8(}4wBj$Mzn9WXZdHCGETqwK1=8{WeV`GV^%7&k{69(T3WEZ$jl#3>Q z0%Mm1_OPo-?LPKy?FTbc2HngB4BMA(Mq*yP*MBqW1{fbmwCwB-9A}sj4`}+;5|}TK pnoS$nE}yO>VVifa|HpTew&Lqs^{;;w+ezWI)!xyr@Kdk2zX3k?W^(`l literal 0 HcmV?d00001 diff --git a/baselines/FedMeta/FedMeta/strategy.py b/baselines/FedMeta/FedMeta/strategy.py index 4c33b8cb1f09..208b822fde41 100644 --- a/baselines/FedMeta/FedMeta/strategy.py +++ b/baselines/FedMeta/FedMeta/strategy.py @@ -12,10 +12,9 @@ from flwr.server.strategy.aggregate import aggregate, weighted_loss_avg from flwr.server.client_manager import ClientManager from Fedmeta_client_manager import evaluate_client_Criterion -import numpy as np import torch -from functools import reduce from models import CNN_network, StackedLSTM +from utils import update_ema from flwr.common.logger import log @@ -31,13 +30,53 @@ EvaluateIns, NDArrays, ) +import wandb +wandb.init( + # set the wandb project where this run will be logged + project="SoR", -def fedmeta_update_meta_sgd(net, alpha, beta, weights_results, gradients_aggregated): +) + + +def fedmeta_update_meta_sgd( + net : torch.nn.Module, + alpha : torch.nn.ParameterList, + beta : float, + weights_results : List[Tuple[NDArrays, int]], + gradients_aggregated : List[Tuple[NDArrays, int]], + WD : float, +) -> Tuple[List[Tuple[NDArrays, int]], torch.nn.ParameterList]: + """ + Update model parameters for FedMeta(Meta-SGD). + + Parameters + ---------- + net : torch.nn.Module + The list of metrics to aggregate. + alpha : torch.nn.ParameterList + alpha is the learning rate. it is updated with parameters in FedMeta (Meta-SGD). + beta : float + beta is the learning rate for updating parameters and alpha on the server. + weights_results : List[Tuple[NDArrays, int]] + These are the global model parameters for the current round. + gradients_aggregated : List[Tuple[NDArrays, int]] + Weighted average of the gradient in the current round. + WD : float + The weight decay for Adam optimizer + + Returns + ------- + weights_prime : List[Tuple[NDArrays, int]] + These are updated parameters. + alpha : torch.nn.ParameterLis + These are updated alpha. + + """ params_dict = zip(net.state_dict().keys(), weights_results) state_dict = OrderedDict({k: torch.tensor(v) for k, v in params_dict}) net.load_state_dict(state_dict, strict=True) - optimizer = torch.optim.Adam(list(net.parameters()) + list(alpha), lr=beta, weight_decay=0.0001) + optimizer = torch.optim.Adam(list(net.parameters()) + list(alpha), lr=beta, weight_decay=WD) for params, grad_ins, alphas in zip(net.parameters(), gradients_aggregated, alpha): params.grad = torch.tensor(grad_ins).to(params.dtype) alphas.grad = torch.tensor(grad_ins).to(params.dtype) @@ -48,11 +87,39 @@ def fedmeta_update_meta_sgd(net, alpha, beta, weights_results, gradients_aggrega return weights_prime, alpha -def fedmeta_update_maml(net, beta, weights_results, gradients_aggregated): +def fedmeta_update_maml( + net : torch.nn.Module, + beta : float, + weights_results : List[Tuple[NDArrays, int]], + gradients_aggregated : List[Tuple[NDArrays, int]], + WD : float +) -> List[Tuple[NDArrays, int]]: + """ + Update model parameters for FedMeta(Meta-SGD). + + Parameters + ---------- + net : torch.nn.Module + The list of metrics to aggregate. + beta : float + beta is the learning rate for updating parameters on the server. + weights_results : List[Tuple[NDArrays, int]] + These are the global model parameters for the current round. + gradients_aggregated : List[Tuple[NDArrays, int]] + Weighted average of the gradient in the current round. + WD : float + The weight decay for Adam optimizer + + Returns + ------- + weights_prime : List[Tuple[NDArrays, int]] + These are updated parameters. + + """ params_dict = zip(net.state_dict().keys(), weights_results) state_dict = OrderedDict({k: torch.tensor(v) for k, v in params_dict}) net.load_state_dict(state_dict, strict=True) - optimizer = torch.optim.Adam(list(net.parameters()), lr=beta, weight_decay=0.0001) + optimizer = torch.optim.Adam(list(net.parameters()), lr=beta, weight_decay=WD) for params, grad_ins in zip(net.parameters(), gradients_aggregated): params.grad = torch.tensor(grad_ins).to(params.dtype) optimizer.step() @@ -77,43 +144,32 @@ def weighted_average(metrics: List[Tuple[int, Metrics]]) -> Metrics: """ # Multiply accuracy of each client by number of examples used correct = [num_examples * m["correct"] for num_examples, m in metrics] - # correct = [m["correct"] for _, m in metrics] examples = [num_examples for num_examples, _ in metrics] # Aggregate and return custom metric (weighted average) return {"accuracy": sum(correct) / sum(examples)} -def aggregate_grad(results: List[Tuple[NDArrays, int]]) -> NDArrays: - """Compute gradients average.""" - # Calculate the total number of examples used during training - num_examples_total = sum([num_examples for _, num_examples in results]) - - # Create a list of weights, each multiplied by the related number of examples - weighted_gradients = [ - [layer * num_examples for layer in gradients] for gradients, num_examples in results - ] - - # Compute average weights of each layer - grdients_prime: NDArrays = [ - reduce(np.add, layer_updates) / num_examples_total - for layer_updates in zip(*weighted_gradients) - ] - - return grdients_prime - - class FedMeta(FedAvg): + """ + FedMeta + The average of the gradient and the parameter update on the server through it. + """ + def __init__(self, alpha, beta, data, algo, **kwargs): super().__init__(**kwargs) self.algo = algo self.data = data + self.beta = beta + self.ema_loss = None + self.ema_acc = None + if self.data == 'femnist': self.net = CNN_network() elif self.data == 'shakespeare': self.net = StackedLSTM() + self.alpha = torch.nn.ParameterList([torch.nn.Parameter(torch.full_like(p, alpha)) for p in self.net.parameters()]) - self.beta = beta def configure_fit( self, server_round: int, parameters: Parameters, client_manager: ClientManager @@ -187,23 +243,29 @@ def aggregate_fit( ] parameters_aggregated = ndarrays_to_parameters(aggregate(weights_results)) + if self.data == 'femnist': + WD = 0.001 + else: + WD = 0.0001 - if self.algo == 'fedmeta(maml)': + # Gradient Average and Update Parameter for FedMeta(MAML) + if self.algo == 'fedmeta_maml': grads_results = [ (fit_res.metrics['grads'], fit_res.num_examples) for _, fit_res in results ] - gradients_aggregated = aggregate_grad(grads_results) - weights_prime = fedmeta_update_maml(self.net, self.beta, weights_results[0][0], gradients_aggregated) + gradients_aggregated = aggregate(grads_results) + weights_prime = fedmeta_update_maml(self.net, self.beta, weights_results[0][0], gradients_aggregated, WD) parameters_aggregated = ndarrays_to_parameters(weights_prime) - elif self.algo == 'fedmeta(meta-sgd)': + # Gradient Average and Update Parameter for FedMeta(Meta-SGD) + elif self.algo == 'fedmeta_meta_sgd': grads_results = [ (fit_res.metrics['grads'], fit_res.num_examples) for _, fit_res in results ] - gradients_aggregated = aggregate_grad(grads_results) - weights_prime, update_alpha = fedmeta_update_meta_sgd(self.net, self.alpha, self.beta, weights_results[0][0], gradients_aggregated) + gradients_aggregated = aggregate(grads_results) + weights_prime, update_alpha = fedmeta_update_meta_sgd(self.net, self.alpha, self.beta, weights_results[0][0], gradients_aggregated, WD) self.alpha = update_alpha parameters_aggregated = ndarrays_to_parameters(weights_prime) @@ -238,16 +300,22 @@ def aggregate_evaluate( ] ) - weight_loss = sum([evaluate_res.metrics['loss'] * evaluate_res.num_examples for _, evaluate_res in results]) / sum( - [evaluate_res.num_examples for _, evaluate_res in results]) - log(INFO, f'Loss : {weight_loss}') + if self.data == 'femnist': + smoothing_weight = 0.9 + else: + smoothing_weight = 0.7 + self.ema_loss = update_ema(self.ema_loss, loss_aggregated, smoothing_weight) + wandb.log({"Training Loss": self.ema_loss}, step=server_round) + loss_aggregated = self.ema_loss # Aggregate custom metrics if aggregation fn was provided metrics_aggregated = {} if self.evaluate_metrics_aggregation_fn: eval_metrics = [(res.num_examples, res.metrics) for _, res in results] metrics_aggregated = self.evaluate_metrics_aggregation_fn(eval_metrics) - log(INFO, f'Accuracy : {round(metrics_aggregated["accuracy"] * 100, 3)}') + self.ema_acc = update_ema(self.ema_acc, round(metrics_aggregated['accuracy'] * 100, 3), smoothing_weight) + wandb.log({"Test_Accuracy ": self.ema_acc}, step=server_round) + metrics_aggregated['accuracy'] = self.ema_acc elif server_round == 1: # Only log this warning once log(WARNING, "No evaluate_metrics_aggregation_fn provided") diff --git a/baselines/FedMeta/FedMeta/utils.py b/baselines/FedMeta/FedMeta/utils.py index dcd302a14a33..c27be4900e31 100644 --- a/baselines/FedMeta/FedMeta/utils.py +++ b/baselines/FedMeta/FedMeta/utils.py @@ -5,60 +5,158 @@ results, plotting. """ -import numpy as np +from typing import List, Dict import pickle +import os +import matplotlib.pyplot as plt +# Encoding list for the Shakespeare dataset ALL_LETTERS = "\n !\"&'(),-.0123456789:;>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]abcdefghijklmnopqrstuvwxyz}" -NUM_LETTERS = len(ALL_LETTERS) -def _one_hot(index, size): - '''returns one-hot vector with given size and value 1 at given index - ''' +def _one_hot( + index: int, + size: int, +) -> List: + """ + returns one-hot vector with given size and value 1 at given index + + """ + vec = [0 for _ in range(size)] vec[int(index)] = 1 return vec -def letter_to_vec(letter): - '''returns one-hot representation of given letter - ''' +def letter_to_vec( + letter: str, +) -> int: + """ + returns one-hot representation of given letter + + """ + index = ALL_LETTERS.find(letter) return index -def word_to_indices(word): - '''returns a list of character indices +def word_to_indices( + word: str, +) -> List: + """ + returns a list of character indices Args: word: string Return: indices: int list with length len(word) - ''' + + """ + indices = [] for c in word: indices.append(ALL_LETTERS.find(c)) return indices -# def compute_ema(data, smoothingWeight): -# smoothedData = [] -# last = 0 if len(data) > 0 else float('nan') -# numAccum = 0 -# debiasWeight = 0 -# -# for d in data: -# nextVal = d -# last = last * smoothingWeight + (1 - smoothingWeight) * nextVal -# numAccum += 1 -# debiasWeight = 1.0 - pow(smoothingWeight, numAccum) -# smoothedData.append(last / debiasWeight) -# -# return smoothedData -# -# -# data = [1, 2, 3, 4, 5] -# smoothingWeight = 0.8 -# result = compute_ema(data, smoothingWeight) -# print(result) +def update_ema( + prev_ema: float, + current_value: float, + smoothing_weight: float, +) -> float: + """ + We use EMA to visually enhance the learning trend for each round. + + Parameters + ---------- + prev_ema : float + The list of metrics to aggregate. + current_value : float + The list of metrics to aggregate. + smoothing_weight : float + The list of metrics to aggregate. + + + Returns + ------- + EMA_Loss or EMA_ACC + The weighted average metric. + + """ + if prev_ema is None: + return current_value + return (1 - smoothing_weight) * current_value + smoothing_weight * prev_ema + + +def save_graph_params(data_info: Dict): + """ + Save parameters to visualize experiment results (Loss, ACC) + + Parameters + ---------- + data_info : Dict + This is a parameter dictionary of data from which the experiment was completed. + """ + + if os.path.exists(f"{data_info['path']}/{data_info['algo']}.pkl"): + raise ValueError(f"'{data_info['path']}/{data_info['algo']}.pkl' is already exists!") + + with open(f"{data_info['path']}/{data_info['algo']}.pkl", 'wb') as f: + pickle.dump(data_info, f) + + +def plot_from_pkl(directory="."): + """ + Visualization of algorithms for each data (FedAvg, FedAvg_Meta, FedMeta_MAML, FedMeta_Meta-SGD) + + Parameters + ---------- + directory : str + Graph params directory path for Femnist or Shakespeare + + """ + + color_mapping = { + "fedavg.pkl": "green", + "fedavg_meta.pkl": "blue", + "fedmeta_maml.pkl": "orange", + "fedmeta_meta_sgd.pkl": "red", + # ... 여기에 추가 파일 이름과 색상을 매핑 ... + } + + pkl_files = [f for f in os.listdir(directory) if f.endswith('.pkl')] + + all_data = {} + + for file in pkl_files: + with open(os.path.join(directory, file), 'rb') as f: + data = pickle.load(f) + all_data[file] = data + + plt.figure(figsize=(14, 6)) + + # Acc graph + plt.subplot(1, 2, 1) + for file, data in all_data.items(): + accuracies = [acc for _, acc in data["accuracy"]['accuracy']] + plt.plot(accuracies, label=file, color=color_mapping.get(file, "black")) + plt.title("Accuracy") + plt.legend() + + # Loss graph + plt.subplot(1, 2, 2) + for file, data in all_data.items(): + loss = [loss for _, loss in data["loss"]] + plt.plot(loss, label=file, color=color_mapping.get(file, "black")) + plt.title("Loss") + plt.legend() + + plt.tight_layout() + + save_path = f"{directory}/result_graph.png" + plt.savefig(save_path) + + plt.show() +if __name__ == '__main__': + plot_from_pkl() diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index 1ac6441bde24..dca7ebd671bb 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -30,7 +30,7 @@ dataset: [FEMNIST, SHAKESPEARE] # list of datasets you include in your baseline ****Task:**** : A comparison task of four algorithms(FedAvg, FedAvg(Meta), FedMeta(MAML), FedMeta(Meta-SGD)) in the categories of Image Classification and next-word prediction. ****Model:**** :This directory implements two models: -* A two-layer CNN network as used in the FedMeta paper (see `models/CNN_Network`). This is the model used by default. +* A two-layer CNN network as used in the FedMeta paper for Femnist (see `models/CNN_Network`). * A StackedLSTM model used in the FedMeta paper for Shakespeare (see `models/StackedLSTM`). **You can see more detail in Apendix.A of the paper** @@ -102,20 +102,17 @@ python main.py algo=fedmeta_maml data=shakespeare path=(your leaf dataset path)/ #FedMeta(Meta-SGD) + Shakespeare Dataset python main.py algo=fedmeta_meta_sgd data=shakespeare path=(your leaf dataset path)/leaf/data/shakespeare/data + ``` ## Expected Results - -:warning: _Your baseline implementation should replicate several of the experiments in the original paper. Please include here the exact command(s) needed to run each of those experiments followed by a figure (e.g. a line plot) or table showing the results you obtained when you ran the code. Below is an example of how you can present this. Please add command followed by results for all your experiments._ - +If you proceed with all of the above experiments, You can get a graph of your experiment results as shown below along that `./femnist or shakespeare/graph_params/result_graph.png`. ```bash -# it is likely that for one experiment you need to sweep over different hyperparameters. You are encouraged to use Hydra's multirun functionality for this. This is an example of how you could achieve this for some typical FL hyperparameteres - -poetry run -m .main --multirun num_client_per_round=5,10,50 dataset=femnist,cifar10 -# the above command will run a total of 6 individual experiments (because 3client_configs x 2datasets = 6 -- you can think of it as a grid). - +#If you want to see the graph, use the command below. +python [Now show a figure/table displaying the results of the above command] # add more commands + plots for additional experiments. +![](shakespeare/graph_params/result_graph.png) ``` From 14667f98deb6acd7d13ac5a59d0fd52ab9347d2e Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Sun, 1 Oct 2023 09:11:39 +0900 Subject: [PATCH 071/133] fix readme --- .../FedMeta/FedMeta/docs/result_graph.png | Bin 0 -> 117804 bytes baselines/FedMeta/README.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 baselines/FedMeta/FedMeta/docs/result_graph.png diff --git a/baselines/FedMeta/FedMeta/docs/result_graph.png b/baselines/FedMeta/FedMeta/docs/result_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..9c4661b71097b9347e050ee8e5dc5ebfcc07af31 GIT binary patch literal 117804 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

;Ql` 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 literal 0 HcmV?d00001 diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index dca7ebd671bb..0ade7ef7158b 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -114,5 +114,5 @@ python [Now show a figure/table displaying the results of the above command] # add more commands + plots for additional experiments. -![](shakespeare/graph_params/result_graph.png) +![](docs/result_graph.png) ``` From 5077b52f87359ddf5c050366f0bf7fbab55b0aff Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Sun, 1 Oct 2023 09:14:08 +0900 Subject: [PATCH 072/133] fix readme --- .../FedMeta/{FedMeta => }/docs/result_graph.png | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename baselines/FedMeta/{FedMeta => }/docs/result_graph.png (100%) diff --git a/baselines/FedMeta/FedMeta/docs/result_graph.png b/baselines/FedMeta/docs/result_graph.png similarity index 100% rename from baselines/FedMeta/FedMeta/docs/result_graph.png rename to baselines/FedMeta/docs/result_graph.png From 2765987334ed1e7cd5d3818956d6337495d89e0f Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Sun, 1 Oct 2023 09:16:35 +0900 Subject: [PATCH 073/133] test graph --- baselines/FedMeta/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index 0ade7ef7158b..a2d665798ac0 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -114,5 +114,5 @@ python [Now show a figure/table displaying the results of the above command] # add more commands + plots for additional experiments. -![](docs/result_graph.png) ``` +![](docs/result_graph.png) From 80cfbafe1592924732c8edf0536273aec42e0a1f Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Sun, 1 Oct 2023 09:17:23 +0900 Subject: [PATCH 074/133] delete dir --- .../shakespeare/graph_params/result_graph.png | Bin 117804 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 baselines/FedMeta/FedMeta/shakespeare/graph_params/result_graph.png diff --git a/baselines/FedMeta/FedMeta/shakespeare/graph_params/result_graph.png b/baselines/FedMeta/FedMeta/shakespeare/graph_params/result_graph.png deleted file mode 100644 index 9c4661b71097b9347e050ee8e5dc5ebfcc07af31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117804 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

;Ql` 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 From 978f00033bf381a9c282da426c0c20a819fa596a Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Sun, 1 Oct 2023 09:44:37 +0900 Subject: [PATCH 075/133] fix code tree --- baselines/FedMeta/FedMeta/utils.py | 4 +-- baselines/FedMeta/README.md | 24 ++++++++++-------- baselines/FedMeta/docs/result_graph.png | Bin 117804 -> 0 bytes .../FedMeta/docs/shakespeare_result_graph.png | Bin 0 -> 108181 bytes 4 files changed, 15 insertions(+), 13 deletions(-) delete mode 100644 baselines/FedMeta/docs/result_graph.png create mode 100644 baselines/FedMeta/docs/shakespeare_result_graph.png diff --git a/baselines/FedMeta/FedMeta/utils.py b/baselines/FedMeta/FedMeta/utils.py index c27be4900e31..387b62063c2e 100644 --- a/baselines/FedMeta/FedMeta/utils.py +++ b/baselines/FedMeta/FedMeta/utils.py @@ -121,7 +121,6 @@ def plot_from_pkl(directory="."): "fedavg_meta.pkl": "blue", "fedmeta_maml.pkl": "orange", "fedmeta_meta_sgd.pkl": "red", - # ... 여기에 추가 파일 이름과 색상을 매핑 ... } pkl_files = [f for f in os.listdir(directory) if f.endswith('.pkl')] @@ -158,5 +157,6 @@ def plot_from_pkl(directory="."): plt.show() + if __name__ == '__main__': - plot_from_pkl() + plot_from_pkl('./femnist/graph_params') diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index a2d665798ac0..e849e2f41326 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -75,33 +75,34 @@ dataset: [FEMNIST, SHAKESPEARE] # list of datasets you include in your baseline #SHAKESEPEARE dataset Download command for these experiments ./preprocess.sh -s niid --sf 0.16 -k 0 -t sample ```` + ****Start experiments**** : ```bash # FedAvg + Femnist Dataset python main.py algo=fedavg data=femnist path=(your leaf dataset path)/leaf/data/shakespeare/data # FedAvg(Meta) + Femnist Dataset -python main.py algo=fedavg_meta data=femnist path=(your leaf dataset path)/leaf/data/shakespeare/data +python main.py algo=fedavg_meta data=femnist path=../leaf/data/shakespeare/data # FedMeta(MAML) + Femnist Dataset -python main.py algo=fedmeta_maml data=femnist path=(your leaf dataset path)/leaf/data/shakespeare/data +python main.py algo=fedmeta_maml data=femnist path=../leaf/data/shakespeare/data # FedMeta(Meta-SGD) + Femnist Dataset -python main.py algo=fedmeta_meta_sgd data=femnist path=(your leaf dataset path)/leaf/data/shakespeare/data +python main.py algo=fedmeta_meta_sgd data=femnist path=../leaf/data/shakespeare/data #FedAvg + Shakespeare Dataset -python main.py algo=fedavg data=shakespeare path=(your leaf dataset path)/leaf/data/shakespeare/data +python main.py algo=fedavg data=shakespeare path=../leaf/data/shakespeare/data #FedAvg(Meta) + Shakespeare Dataset -python main.py algo=fedavg_meta data=shakespeare path=(your leaf dataset path)/leaf/data/shakespeare/data +python main.py algo=fedavg_meta data=shakespeare path=../leaf/data/shakespeare/data #FedMeta(MAML) + Shakespeare Dataset -python main.py algo=fedmeta_maml data=shakespeare path=(your leaf dataset path)/leaf/data/shakespeare/data +python main.py algo=fedmeta_maml data=shakespeare path=../leaf/data/shakespeare/data #FedMeta(Meta-SGD) + Shakespeare Dataset -python main.py algo=fedmeta_meta_sgd data=shakespeare path=(your leaf dataset path)/leaf/data/shakespeare/data +python main.py algo=fedmeta_meta_sgd data=shakespeare path=../leaf/data/shakespeare/data ``` @@ -109,10 +110,11 @@ python main.py algo=fedmeta_meta_sgd data=shakespeare path=(your leaf dataset pa ## Expected Results If you proceed with all of the above experiments, You can get a graph of your experiment results as shown below along that `./femnist or shakespeare/graph_params/result_graph.png`. ```bash -#If you want to see the graph, use the command below. +#You can check the graph using the command below. python -[Now show a figure/table displaying the results of the above command] -# add more commands + plots for additional experiments. ``` -![](docs/result_graph.png) +**Femnist dataset experiment results** + +**Shakespeare dataset experiment results** +![](docs/shakespeare_result_graph.png) diff --git a/baselines/FedMeta/docs/result_graph.png b/baselines/FedMeta/docs/result_graph.png deleted file mode 100644 index 9c4661b71097b9347e050ee8e5dc5ebfcc07af31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117804 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

;Ql` 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 diff --git a/baselines/FedMeta/docs/shakespeare_result_graph.png b/baselines/FedMeta/docs/shakespeare_result_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..df04dd94ffefa56f4220a0eb93eaeb1ac362b81f GIT binary patch literal 108181 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

  • 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

    g`+txI79l*ya*v&;)CuPo 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 Ay8r+H literal 0 HcmV?d00001 From e8e8fefc35df54fe611aeb03b6a354159ce508d6 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Sun, 1 Oct 2023 09:47:03 +0900 Subject: [PATCH 076/133] fix code tree --- .../shakespeare/graph_params/result_graph.png | Bin 0 -> 117804 bytes datasets/README.md | 64 ------------------ datasets/flwr_datasets/__init__.py | 7 +- datasets/pyproject.toml | 2 - 4 files changed, 1 insertion(+), 72 deletions(-) create mode 100644 baselines/FedMeta/FedMeta/shakespeare/graph_params/result_graph.png diff --git a/baselines/FedMeta/FedMeta/shakespeare/graph_params/result_graph.png b/baselines/FedMeta/FedMeta/shakespeare/graph_params/result_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..9c4661b71097b9347e050ee8e5dc5ebfcc07af31 GIT binary patch literal 117804 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

    ;Ql` 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 literal 0 HcmV?d00001 diff --git a/datasets/README.md b/datasets/README.md index 29a201f3bd04..223b0c612178 100644 --- a/datasets/README.md +++ b/datasets/README.md @@ -1,65 +1 @@ # Flower Datasets - -[![GitHub license](https://img.shields.io/github/license/adap/flower)](https://github.com/adap/flower/blob/main/LICENSE) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/adap/flower/blob/main/CONTRIBUTING.md) -![Build](https://github.com/adap/flower/actions/workflows/framework.yml/badge.svg) -![Downloads](https://pepy.tech/badge/flwr) -[![Slack](https://img.shields.io/badge/Chat-Slack-red)](https://flower.dev/join-slack) - -Flower Datasets (`flwr-datasets`) is a library to quickly and easily create datasets for federated learning, federated evaluation, and federated analytics. It was created by the `Flower Labs` team that also created Flower: A Friendly Federated Learning Framework. -Flower Datasets library supports: -* **downloading datasets** - choose the dataset from Hugging Face's `datasets`, -* **partitioning datasets** - customize the partitioning scheme, -* **creating centralized datasets** - leave parts of the dataset unpartitioned (e.g. for centralized evaluation). - -Thanks to using Hugging Face's `datasets` used under the hood, Flower Datasets integrates with the following popular formats/frameworks: -* Hugging Face, -* PyTorch, -* TensorFlow, -* Numpy, -* Pandas, -* Jax, -* Arrow. - -Create **custom partitioning schemes** or choose from the **implemented partitioning schemes**: -* IID partitioning `IidPartitioner(num_partitions)` -* more to come in future releases. - -# Installation - -## With pip - -Flower Datasets can be installed from PyPi - -```bash -pip install flwr-datasets - -If you plan to change the type of the dataset to run the code with your ML framework, make sure to have it installed too. - -# Usage - -The Flower Datasets exposes `FederatedDataset(dataset, partitioners)` abstraction to represent the dataset needed for federated learning/analytics. It has two powerful methods that let you handle the dataset preprocessing. They are `load_partition(idx, split)` and `load_full(split)`. - -Here's a quick example of how to partition the MNIST dataset: - - -`FederatedDataset(dataset, partitioners)` allows you specification of: - -* `dataset:str` - the name of the dataset. - -* `partitioners: Dict[str: int]` - `{split_name: str` to `number-of-partitions: int}` - partitioner that will be used with an associated split of the dataset e.g. `{"train": 100}`. It assumes by default the i.i.d. partitioning. - -More customization of `partitioners` is coming in future releases. - -# Future release - -Here are a few of the things that we will work on in future releases: - -* Support for more datasets (especially the ones that have user id present). -* Creation of custom `Partitioner`s. -* More out-of-the-box `Partitioner`s. -* Passing `Partitioner`s via `FederatedDataset`'s `partitioner` argument. -* Customization of the dataset splitting before the partitioning. -* Simplification of the dataset transformation to the popular frameworks/types. -* Creation of the synthetic data, -* Support for Vertical FL. diff --git a/datasets/flwr_datasets/__init__.py b/datasets/flwr_datasets/__init__.py index 0149a53b7b0a..1a48df5e45f0 100644 --- a/datasets/flwr_datasets/__init__.py +++ b/datasets/flwr_datasets/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2023 Flower Labs GmbH. All Rights Reserved. +# Copyright 2023 Adap GmbH. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,8 +13,3 @@ # limitations under the License. # ============================================================================== """Flower Datasets main package.""" - - -from .federated_dataset import FederatedDataset - -__all__ = ["FederatedDataset"] diff --git a/datasets/pyproject.toml b/datasets/pyproject.toml index d0a1d80d80d4..e805b710018c 100644 --- a/datasets/pyproject.toml +++ b/datasets/pyproject.toml @@ -54,7 +54,6 @@ exclude = [ [tool.poetry.dependencies] python = "^3.8" numpy = "^1.21.0" -datasets = "^2.14.3" [tool.poetry.dev-dependencies] isort = "==5.11.5" @@ -63,7 +62,6 @@ docformatter = "==1.7.1" mypy = "==1.4.0" pylint = "==2.13.9" flake8 = "==3.9.2" -parameterized = "==0.9.0" pytest = "==7.1.2" pytest-watch = "==4.2.0" ruff = "==0.0.277" From d2118e01c039e86deda86587ec1dff07011761b2 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Sun, 1 Oct 2023 09:58:18 +0900 Subject: [PATCH 077/133] test pull --- datasets/README.md | 3 --- datasets/pyproject.toml | 3 --- src/py/flwr/simulation/ray_transport/ray_client_proxy.py | 7 ------- 3 files changed, 13 deletions(-) diff --git a/datasets/README.md b/datasets/README.md index b8381cacbaad..982da3760cc7 100644 --- a/datasets/README.md +++ b/datasets/README.md @@ -1,6 +1,4 @@ # Flower Datasets -<<<<<<< HEAD -======= [![GitHub license](https://img.shields.io/github/license/adap/flower)](https://github.com/adap/flower/blob/main/LICENSE) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/adap/flower/blob/main/CONTRIBUTING.md) @@ -90,4 +88,3 @@ Here are a few of the things that we will work on in future releases: * Simplification of the dataset transformation to the popular frameworks/types. * Creation of the synthetic data, * Support for Vertical FL. ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 diff --git a/datasets/pyproject.toml b/datasets/pyproject.toml index 574132f51528..aa35ddca4fce 100644 --- a/datasets/pyproject.toml +++ b/datasets/pyproject.toml @@ -54,13 +54,10 @@ exclude = [ [tool.poetry.dependencies] python = "^3.8" numpy = "^1.21.0" -<<<<<<< HEAD -======= datasets = "^2.14.3" pillow = { version = ">=6.2.1", optional = true } soundfile = {version = ">=0.12.1", optional = true} librosa = { version = ">=0.10.0.post2", optional = true } ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 [tool.poetry.dev-dependencies] isort = "==5.11.5" diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index 335ba78c932b..a309c9f37aea 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -17,11 +17,7 @@ import traceback from logging import ERROR -<<<<<<< HEAD from typing import Callable, Dict, Optional, Union, cast -======= -from typing import Dict, Optional, cast ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 import ray @@ -40,13 +36,10 @@ JobFn, VirtualClientEngineActorPool, ) -<<<<<<< HEAD ClientFn = Callable[[str], ClientLike] ClientRes = Union[ common.GetPropertiesRes, common.GetParametersRes, common.FitRes, common.EvaluateRes ] -======= ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 class RayClientProxy(ClientProxy): From 2e622225000b2d4579aab5ac732db4afbdfc0750 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Sun, 1 Oct 2023 10:26:08 +0900 Subject: [PATCH 078/133] fix codeline --- baselines/FedMeta/FedMeta/main.py | 1 + baselines/FedMeta/FedMeta/utils.py | 4 ---- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/baselines/FedMeta/FedMeta/main.py b/baselines/FedMeta/FedMeta/main.py index 58ba5d8a4185..b3bd6dfc2758 100644 --- a/baselines/FedMeta/FedMeta/main.py +++ b/baselines/FedMeta/FedMeta/main.py @@ -96,5 +96,6 @@ def main(cfg: DictConfig) -> None: plot_from_pkl(directory=f"./{cfg.data.data}/graph_params") print("................") + if __name__ == "__main__": main() diff --git a/baselines/FedMeta/FedMeta/utils.py b/baselines/FedMeta/FedMeta/utils.py index 387b62063c2e..9c6de78757e0 100644 --- a/baselines/FedMeta/FedMeta/utils.py +++ b/baselines/FedMeta/FedMeta/utils.py @@ -156,7 +156,3 @@ def plot_from_pkl(directory="."): plt.savefig(save_path) plt.show() - - -if __name__ == '__main__': - plot_from_pkl('./femnist/graph_params') From d2da352303b4a696c18fb0bb8cef295467e90524 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Sun, 1 Oct 2023 10:35:44 +0900 Subject: [PATCH 079/133] add branch --- baselines/FedMeta/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index e849e2f41326..53065a2b51fc 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -115,6 +115,7 @@ python ``` **Femnist dataset experiment results** +path **Shakespeare dataset experiment results** ![](docs/shakespeare_result_graph.png) From 930cf516c24fcb0e50dd240feaeee354247aac8a Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Sun, 1 Oct 2023 10:42:38 +0900 Subject: [PATCH 080/133] Update Fedmeta --- .../femnist/graph_params/result_graph.png | Bin 0 -> 151963 bytes baselines/FedMeta/FedMeta/utils.py | 7 +++++-- baselines/FedMeta/README.md | 11 ++++++----- .../FedMeta/docs/femnist_result_graph.png | Bin 0 -> 151963 bytes 4 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 baselines/FedMeta/FedMeta/femnist/graph_params/result_graph.png create mode 100644 baselines/FedMeta/docs/femnist_result_graph.png diff --git a/baselines/FedMeta/FedMeta/femnist/graph_params/result_graph.png b/baselines/FedMeta/FedMeta/femnist/graph_params/result_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..d03f43dcfa848246c4bedcf07a6a0deeb51aa990 GIT binary patch literal 151963 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 H|LVU0PlQNk literal 0 HcmV?d00001 diff --git a/baselines/FedMeta/FedMeta/utils.py b/baselines/FedMeta/FedMeta/utils.py index 9c6de78757e0..6e8759f3075d 100644 --- a/baselines/FedMeta/FedMeta/utils.py +++ b/baselines/FedMeta/FedMeta/utils.py @@ -121,6 +121,7 @@ def plot_from_pkl(directory="."): "fedavg_meta.pkl": "blue", "fedmeta_maml.pkl": "orange", "fedmeta_meta_sgd.pkl": "red", + # ... 여기에 추가 파일 이름과 색상을 매핑 ... } pkl_files = [f for f in os.listdir(directory) if f.endswith('.pkl')] @@ -138,7 +139,8 @@ def plot_from_pkl(directory="."): plt.subplot(1, 2, 1) for file, data in all_data.items(): accuracies = [acc for _, acc in data["accuracy"]['accuracy']] - plt.plot(accuracies, label=file, color=color_mapping.get(file, "black")) + legend_ = file[:-4] if file.endswith('.pkl') else file + plt.plot(accuracies, label=legend_, color=color_mapping.get(file, "black")) plt.title("Accuracy") plt.legend() @@ -146,7 +148,8 @@ def plot_from_pkl(directory="."): plt.subplot(1, 2, 2) for file, data in all_data.items(): loss = [loss for _, loss in data["loss"]] - plt.plot(loss, label=file, color=color_mapping.get(file, "black")) + legend_ = file[:-4] if file.endswith('.pkl') else file + plt.plot(loss, label=legend_, color=color_mapping.get(file, "black")) plt.title("Loss") plt.legend() diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index 53065a2b51fc..e357dc0a0a48 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -109,13 +109,14 @@ python main.py algo=fedmeta_meta_sgd data=shakespeare path=../leaf/data/shakespe ## Expected Results If you proceed with all of the above experiments, You can get a graph of your experiment results as shown below along that `./femnist or shakespeare/graph_params/result_graph.png`. -```bash -#You can check the graph using the command below. -python -``` **Femnist dataset experiment results** -path + + +![](docs/femnist_result_graph.png) + **Shakespeare dataset experiment results** + + ![](docs/shakespeare_result_graph.png) diff --git a/baselines/FedMeta/docs/femnist_result_graph.png b/baselines/FedMeta/docs/femnist_result_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..d03f43dcfa848246c4bedcf07a6a0deeb51aa990 GIT binary patch literal 151963 zcmc$GWn7ip*DYPrpeP_AC?MSp(g;$L(nxoAx6(*Sm(r5b4Fb{)(%sUrflb`C^}PRh zfA_=vcF#HJ5g(rY?6u~abBr;^+#eO?rLZuFG2r0fuwF}xzlDQCc7uaM&_F{0-}wa> z6%Bslb&}9Z2o=M=si@e&APFSR(j30R| zT?W0icVRO&OGgW!_^L#Ng+8+xV{lqd8Qor=lk(VQWi?X$dqF#VN&hT>*ZOjMV9C3x5Cx&DAcu`U zR^z_-fP+try}iB23;(%5rMQ1q=kjMfoieRz5g}y3m3*PWx$2?Y+S=L^4l`WvO4PKp zABt3q$MO}(l-iXDsn>W_J6Z|KEy4vzTkZL@=Bh;Bzm$M!-aHypis=@(DPfl8TfdR7(%c!lmP zkw9rVIp;k{hM?#6XfEnTUjh{m&*z^%r5C+U<>2nF_n1ksQL9XcUFK|eCknyxOqJ@S z9`4coT>loj5+{-4U=e;dPaNPeaG#&!Kew`tvC* zbR3+mNp-#FEG#i)E!Salwyo(K{YhI>)sI=uDi3&atE-Qo$49R&!J_4VF32HmF5zkX?0OqIOzD|?HJl)e1taJQp!S+vzjsw8qjmO%+)2e# zx|Yf{R_{=-Nw+HogO7e!4L5va4{HPmHBHDnMeUm=$gNjfnZ9t($4WIS0%$VaI;amc zp&-1-$HvE#c^yp-8Zv$Fl1oY$$lTXs9~{*FO`LYlpVHF@$$f9y5pe`!=noK7ic~&^ zlKXrHac+Ni;|}-i*|T5ujxsgM2x;1QUGJ&7|h^Rbv%W#aE-AS35bbh>K!)B#`Cb?(9zN1Zot`ubH9MjT9$ovKi$lmU!haZ zvpXH+b{yoK)-FnV_Rq0?p2p`K1`Yz)i-nrWGQG^SG*WDGABImgesqB^`iE>7JMLkk@Pqhok@_#3#Zb+WLpP+9W@vE$}|!SQNW zJ@TxBgTu)}nUME&x!08g?4Ub2aroZf*4DZH&9Fh?n>BMbRD66Xhb_>k5G;}t-+PEJ zEIHgmTkrd=Pse1LD{Pm9a&mHLb(?rPLviwbZm;X9#zD5Z>z77>WqUGM44rKBpKc`S zHCRKzub%}yxd>jo$&yd!`~9n;bFTsA^P?6b?Lm{Eo$D&xM-(nJQFaVPTM^6B|pNcE$w2(SdzYKYwmNXI;zs{s&ry$8O;~ zm-Ft#N`ksB?91T(?snd;6U*!7xaS6(H1%~(^Z*J%wIA&O11twmOsM!=Z4mLf{Fbh@ zS(x`h!F>Gc{rhK*TSFV|sN_a_Q{M(M1n2g7G~uhk5sm>Nf7(T)=VqmxD~WY;d;6~9 zeXu$7{thCX3Ee+DwB^g=5_b8mq1*@_8}>-Y3$9CeBqWw|?GbSSg`<09ghPkfP#;xzy33} zMNj%Kc3LUg07uJkr6bs8Pb%VZ`)XIXIjBoug-GGy;k`gU{F0x4x)MshSz|ep1rJIN zKd3&rAS|rr>texTvFW$L!Cman_2{@RNJNtfnt`jpKVUyo325YDk*8BJ4XU=H#^3tz z09ISwj#s~1&rP{BW@eJZa0vJwrJ!JX0=@bPC}!-Q7gjIiQpB%LHehw#Aw25}3a!#_ zM_BZ|_s)|~?*nj$Ryhw7R$V|csPB0SY7I!{Z$7j519;(aw%z`j)$oKNBoFWLEMVfK@;6ITcS??cE>t!;O#tRZ=pGuwFzcF=CfEXzZEQ@B8Xw^o6 ze8%dqF5Q>N*uOcL`k+DfKkzXHHVkLCqjpD=4_6Hf$%6Gx7I1eEah3Y_-H?b@|1SVK z@c#wIKhMhIUw#0Vk(A#hqP(1i6kF`inxmX z`;MhNV10~?j0pc+VOP(YQ7pRb%$H6o?2~qRc^PmJMxp%{)b9d~iubV$6#s$$i9{tO zQBZNnsA*{Ovl^eFB}McX9&0~DD0^{`$gGzU6N8J_8T2fAd02+Dw_AM+{0op=dcq&pyt!)EtA&fH0=DH!qtQ~0vsWy^*@UOVL zN3N`@f~Qq0(SV1D<1#TODX-C;Ae4ptU_(=@S*#3 zDKCqY4A1RBOz;CDHv3g^a5kj0wMnr^xEQvX+>HPs6Bic;o8l$fg8LsoTleWhx1&35 zWDhq2Mg!u#aZYY-p-Le>h{>1RrT;#m;Jp%kFcT0Jd4|1+kYl^lf=S8~0{|;vG%%7y zLlat1KnpU01OQ{87?^AhB~RiOdNYdufa1lA?(aID80@x-0sssF43(`_ zYxCvH7Z&p|Y5=-lgWYsn2_|x&S4IFCn%(V4zeuG}^dtUrv(X%6uo8$9;T4nVDwBR5QX7gB@$qgX}pdOb0vDM z86fj3Ho4i`G#yLcU2TzP4l(|FVMSLYILJobFf`Zd`JOh((>%6Gq?eIKyHtE=3lP#o zp>k+h>s<=i#pT081r-%S;k!#J7=p4{Xea@YT8hjaMv+JJP(Sy^LCbs7PhB?2cE@}W@Ji7Gil?0_1P(=}GX*5BPvn;7-G9+YVR_9$6u;$xiUmt*ywN^c?i+JRb z4iB|>t7*GR1`0BWaoY(D$ zg1O}~XLwrr-)ZYE?n5^fakQC$`x*lRH8nL4ys4;Yz+4T$d0Sw~(h3U;ulv4G=PP?7 zYhPu4q0ZEs&d>DOEm6u18Q*c@8y_1>1KDB-9EQ)c0$1yCLx5%TrpxC$ZjWRSp0KqYtB#6FJb|60 zlvL{VQmGC2!!c9pq}8Iq)p5rmtT4u`@9- zxh?>_lGY)CDBgLiMtY9iE+?9iZ}bTefloGX4RN>Q{p^ z{nk)A6%7rlAIL+*9A+`o{V2=Vdu80`^wiWrfC8sZebZ|tJKE=Se-E&H6VM7^@Bsjn z)aw-WOZTM~Z}Yht#@N`{?_f=Ul;Hp%B3!xap)TMFuw3Few*+*9yj$19#X(pQ0^;O2 zJ=5&^ue=ZFfVKGADD*k;aKg$ip_`Z}1zq9tkT*Pa{WZVuofk-7?`Izo62_MqBBP+B zBtFFs-RIliRFIMBSX#=IOXXSt$lt>BrlTAnWV-Yz3`}a*JN)SG9s~Qw#>U1} z(AskLkm)y&KqfvCb6Ok?axW=@vk4fS*{||!1#j!w?{uJS!g8Bw@2BU0JO%;)JjW>f zAD|~l7G&={<54%loa4{+e8{??h%)iC+q&!FAU1Ic3B|3f7{Glhtd(1Ryf=r^Ej1zF zc6w*^sUUy4xNyO8ClHCMt(8kOSe5m;3r2R>O^3jNC07K677hq~ZlkxyAaz86II^-C2RK7cS%qY7qf~bTQRUjt7v>>5O2vBme-+q7sK47)MGIfO}8b`mz*O{K~SFIC-ua_I(^vrsV`0TBhW zZFo2u)RqeK@fSdK`3dx~$LuB%!&{gS9;|^%zTQn@`vs^eKYsiu2khwP=H>_jF$J6e zK)%r?cSpd|>0oNA-#iU(c6Rm+pjK8(E$JYq9BroBvH_kX>uV3oMICZ#7!37@cTe7q z2;x~?E(hX(ooPB7lhvIY1j3|cS#u)DbK?a{xn8P?Oe{Wba4q!M z{Mf@M7ODkq^ODMj_2w%E&xk#F&@|((J3@n|TW>c?t6$~*WP%>JWMo4Cb+nsidYjDI z01i6uGG{F=Au(EECaNS)Cm&WsZy}&Sl=+LW!IpZ$JR`8S3#nZO3fg0Xigbe{-tsxnB(f1^|+t z0+B-3KLZAdCBg`E+dO~wrL+5NCGe`_ZGeKl)dD?OJ7_!{s@ew$d;xq-M}aTh(gPiQ zuIpkEXp$nyk$B0lU{&M~1)q*Pc5dQzn8l6O*jASzJH-gn}8e*s4xq`^)XEjv5A z3@Bu0JXFY=dK~uXKLbxa&#xxvDUSHkS@Mfg4m}XUl3H)J7~a20<%%3kWg>BvB|r4yrY zHh^9>fkb2kb}xx@jrrxvFaTP&DxWS9A-v?G-l9c9hC>gf%<=HQ_>tOI{|1oW|m3-g)E=V0wPziBnO zu`+7aoVjHHB?PcrIbrn_HcDgO;+;u!b=v!P|GfWae|2jLG=x_s&n_P#-cxulWSf_- z@N(Xl6IGllsE>Y=L!@-@^G-Diw`AwU9HqZZwB1`0}PSa5~wk!_)9@k;s;&{G*VF;9>~# zCbKZV9duRjYm*iDal1_Y^L40lalG{I7I8{uLP4!PU;7Hn;nu)0;{_bW%=4qf7Ib+A zwNrRXqDkxV3Zez1=N4_&js`Vb0vb`w{^fiZb0zg{T1zUzaHC5doxBH7ZDY_;8`xue z1sY2`i_Or4oss7`U}^BRZS^!|NZqHSAN?)sVHm5+jIRK52WbZ;!-39Njn&MjL&Luv zIT0_fo9Bm_uy`XRejBxYnv{E~?$RKX=_8ZrN{lpELJhfP8xom)ecC_@>ClGzQumB_ z^IPBylRM+7*B#VCYCuJrAKrATGbOaSb~5dUixv5baZfRSG{l02hvl=%^ta?hm#KeN z=p^zF$wjb*ue4hceIcLrv&sGRLwGp-nHUuIwApRatn1Tc>8?A`wh=E_!g_fnSEgf3 z_XhkE7FMQH4tgpH0;+Yo?yYnA=1V5@ z;Bfo3<@rP@_@BM6nU)t}DXe2M^naFTwANM+^nIiOZUjs`h12p=T$~u-r$FC&#>2x? zYZn>|cp$9J8W0#*zZS*+;p0bEYhlMtOn|y_05A#)3K{|Oq|fzE{`|h4?=2@#Az#q+ zq-9To4rYei>c{yFpfpB<_5s18N8QQ_f?c3=3}JE4+x3>g8dOK*?K>(@O2NMRm#rL; zYIx*3#F^x`XJ=9_^q1Qgqj_x8%$c}grQfiIRXY!31&8hs@Gz^%1z<&IOtSnWBUU zfK8oXVG|l*IQw0l9VGzdDEgoo+XPsD1est8sP9V69?n24^`%=R2B;~gGdt7Zywl>> z_2irDC%-NpQIpku@2SQ}=%x+$R@T|aWVgz!v7{&Qw8RH3aUO+Lct-DZz^xx6)RRQ- z*AwK%9$JypOMEC7DvijA2;@8^aC+Nml2#4nMohJob?dKkWOad(AGz~(jCm{Jx)G1oco--Ue@b9SrOOAS~C}k(1tViUGI6J zF-P(sgnSh`X&J|b+&mgg7#mZp!;6&SAfvP`m1%X8F~P`I%68{&!lcHM%Mq`@cdwxb z%ovENFj=tTy##1IKH;<=1ROdWR35kq(1iyC4F#Z4Ujhjn{zF8B5s*K? zTJb^ZREtz#{fYX1L{w~}(Hx04z)p~A)9?}C_)*ZGfgv_P(2?5)lG#CnhQW2-9u*EI za`e(E)y5C*2vmuz+My@7T$DXEg zq&UE-+o7jjQ0by!Fhf#pY?CV$CW|~q;Z452skplK>X28ZDDfhx^Gx2T{*js#+0&21 zzcjwZ-5THO?HV1T*=(>DelW*%h`6Ox5P+Y1-!y*rIGi4lRi6d3>hM9QJ&MTr0q)x_ z?gnx*fq&ERICl&Om zV>3$c>N0`kiz9f3>*KTQ@(buo+zU=|J9SgWAmBxNH`~i|`h#&CYu7}B#cgj!Wx5DU z_TyS_E64R$B9DgY4-UqEb5sv)`z-JgV#@`qE=*RAqocO?6ZD^P+4~llTaeyp%JP~C z#>Rb%a`j=hA_u9(PlCIBNXgD6H%tib`J?>w5kqt~eErUl0X>H}qExe57m zkq8v&U*Fj5qVEfJTi2dtSohefPcv|W(xA&wf%l{VJ&~N z(ZXa9?eJ*p%idwK&+4Whz}!IK=xm+ z*_kLLkk5|;6muM~7qwFDULcfth}?pgpye=n-br?TmU_9bSacjr-oMRq4!Pz3MT4Jv z9-xu0CiWIHXzI*fPb@<8?RWRNZX$|n63!(mWP||9UR?H=WrwK#ct^|TN2lE6 zRJ@WBNE5$}eSI3u5U4b3EJG+|r;`!2bVJv|n-48rOIM9`yoGV3bmW(Iap;uBG-(G2 z_A>pI=~spuv!p)ZOGhHbA2D>#R-9o&&tLmJvb3NXu}GWtC3oZ)ZIMeHypHQXzp|3` zDXM@=m$WmU=4F`P;ZdA%j*ws+sP9lii3qy04Qv%wY0{F=TL047S84&hsLfU*=izzB zNL03br6KCCTtrCyHT;j%Pbdh2J5uUrDy#v%kQ3I`$D*nsKDI z=nPnIGz-oP@ZFS~(VFD*!^n;v_+bY6nbVjgS`{oFt_LbMqyCVGG)M1qzm(!EkVb6O z7!R>6p3c$nr1Cusfaii5X(BBSmbGOloEaOgaE~A_dcP8E!$ZrSE^zK)kl*5Mb1Zcq zd}#eO-oWS9!)ylsr5kPyr#;b+cCDYRd~Ub5Ri|cuWcOgyzgb4|88HSrCCM zte^=2dLMvrvxB5@W(Z+zJ0o^17_<2qT z*oW;_f1uZ%o`akNqW%=L?l(|uEnyuJ(5X!XvQmZby$|r-2-aB7g>>5cBU=MNz{FWh zrZQ8pm!Z->V{T$<973d?!~7VT!_c0E3gnkuM}yn(7IN3ZL2_499kGkr=%6dCgaASF<}`ytvuDZ{yS8gGzedQ1?hJLeoQj_5FG`1n z#3gpTM^9YUOPKW(4ynNDWfHkMV&GhOfHUMRB$i?v=3j?B?asv$+YaWM5``y zhBd-9N_MuBpKpv?PM)zGvEh;;w=;3?^M>zvREJK#|6zs}6|Jt^`U>jVCH*l)h*X=F zHUh!c@2?Zm?j1NCbz=Yke|QYU2jD0HR;e(cV2lG*VskiC0T3Oy0^Mdl0C?U5Yy%@Z z=malVEGB5jS%FF>322x(5Kv(a{fG2w>;9-@cKp-nu8XgC#=gS(3P3?CH`fBaizj?e zw1KENdEn5H3b@69WA(Pl?YRG97WBnVx_Td4co;>!+^!yaR+%?PXMNR1d!&ghgO&TC z$+QG|aaLuwxEk}FL?+W+ccatBSN383^;gognF7<17q^ze>%u#FmwRNK_ggxNcbQy` zuGP~<0|YgX7^~hpu_C6;{a(xqk&71_h~5N?G|;~?-7y#!ui@6uK|796N@B7Us#i>J z!0XefnbCxIcSyvU=`-81tS-;>JItXuWNp*3v`d_@tf1^cDT2Xt+xg*3Za3(lqA$yL z4jyH7#9_D%o6+fq^jL@}9ieT6`b0ANoMU4NlUntNPQo~^Yl}7-oX@#Vheh4KxC^g| zAuA-LP74*~FmnmySGtSTe^7wqf1B;;y3r!X@u7>$7w6Y|w;fXMb?Bz*M41ud;ao66 z7wr+sHB=2x8-{6v9stm_BIBSc$wBx~*JI~7`1(3;3|e16HToIOJgc(h0u!@9@5M|r zUsV)|76>B1g4BCD@8jb`T7^Bw!Qypk7lJcQZ%}JJmk5k-FNW6uGSYUCFAb_nr943{ z7czFaY(J5=Gf8*%UcC$F&sSQGTzbFMjaM*i>w|vbg~aF^gu#?_U^`6<*}fgc)tvLb z$LFND!bJ+IfABp#rFh5L)@?XNaKoV=Y>#fHkERZZVMYDrzDWf;yU54Tokx`FohieX z&I!80Z_mqS1Ivq2TXYGQIBS|rbg{o7RznL4kV6qI&Q$hXTTGXt>#J3{SZG77*kblk z?|A#VNHqJ$hLNCakD>S~C~OyuA9Ti2Wa%MaNfB4zg?tJk+vfNmx73>jWKG<&1_i1e(ILJM*Tys>du|-(c&x^O&RlT?-E6E=%n;__OI=$ z&HUD6<3}tQ*PV;$UD`^s61#_#F3N^~F4`aLjjjH?eOP9k-)+muAI6Ta;!~uiSlTVN zX_!`%Hm&iicqf0v?lXRDv2(DRay$W1lj+(j&V%S*4`i*?XAW~dHo_fiE@{92qVq;f zH+UJ26khR8tQ|^ zDCGpFo{sBiUiX69j#yuaF@C^12_h#PP9{Z;5{YJ0QNXdK?Y2j@k{=+W{%NGwy~K;$ zYV`+Mj08|&zG?Ug~<{LW(nat?_}M%{R}rbf>qflvTRRLdMahHea?+L`687wA*}23kFjfSjD!wq z40fxHsJF{xbMxAhckNych6)m`jBS4>M=|P@&0Ps0p;&mvBr%V)KUMqzNx{rEaOxqy z>uJSOGX!yY0t4b~kK*cBBr?DyNg5Vs| zq93UBa7I&=m-!TT{##Fudbs#=I?aXK%%evrlSPGBpF5YgiWbwhuOqNfU&^Vm5>#8X ztLqh>_e2%8ApYh+YnqM@S~bp||90Jw#YQw`yAl?=!=kc3#PHc-9Y*yiwBL!ZUD;9~ zfJg>?eL&(?0O0}#geqX{ZE)Gw99h6eT50uj{#hSe9sSCo#NpB+Xp*y*ZvQ2Miw7e^ z%i#P}lrKtZe%6pd7p+bA8~=ytls2)qtmDHCru!M103`4Bf6IGm&sX;eawoEgP!{{4 zdvoK+Qn2x*Yg4h*I}S4AB@>e;34xwInM@_>`#C{^^nmglYU!)$d|s%*^5HN#zq`uE zr^vSr0;(94AFIB8_Bn6s9H|(5xp@}E2aY3ixn+oUH-puPFpYbC#pj;Ji5F#tEBL%G z-XA~vy0TSP+7qI~IZ4_G$GuqaplNTa-P1B_jKl2Mx3tC0UW5c$mC85NeNk#Jb8}hH z75iZR3r7D_o1Ceya37yfdWj>&+o=|1aO21~GF{%+4=s5#IM^Wusf-RQy+K;+kbe~u z7k{Q-9pe%EZsX625~BaJqA(`y_Osvn$`VVO&B$M~O12ZTt4RJ^(4?RsdA~+eQC&No z)pY2Dq1`3XhTG{2(LjgZyr+=GJP+=leQXf!0tTnco>QR|%M124`C6M3RzhY|UG)nS zRm=eb^isrx`qy&(wG|w8MFDyhXuh${T1R@mpQtG8~r#-fm@@tNkS|7p&}+QDAL~2L`yGbH5)6vBZoF@TUC`65Xzpyw<|(ad9?AcNsp|_v)gFN(&Dtt zBB}rQOkoF^@t?I*a|y<}HCQ`Uznd?#e~Ixb*GhKjf;~)sP$=|DtKFOyHz66$Q;5CM znR7@hs8KMps8CIRpCM~9=Y(@y-7-}@WVb*`CI)KX(o(8HhsLnuo>|U!bcn~9iSXOE zy;<(~M6uGpg;aNmG+(hY+mn@33NB4rweup$Hn>|!@t$+|7A>M&?{EvJ_6eJ}tZuP( zx~jISzrq%k#VX=*H}m<%>V~sH<(nr*Mgkly3V73vw#?JSCMto4Er^zzpOu#79D{Gk zgiG1XBCX~NhL>D3SG@3K2-A^`qJrbNAf&GzCMjAovZ1o9X#G4H*9%vJ!_ik#Pl$eC z63XhQ$1*^3|0Q4S6J@9>Jwg(>KT-TCBvC8N{q(_hklk}S8>geZ|C#Nvs|HCA9MLSE z>bG)+R@$LSsZS4gPO*jS9O+b=dLXy`H31F7VoP_p)_7A~H~|E{$?Di*IIYG1xhj)w;B-4P?#p>|GhhMTX>h(SVwbNoPU#c( zZd+EdX?^`rt#JjB)-hLe+MapBOT{?<5wqpchO>#tH$KG%4ySFndnh>)$us&AYJOEF z%Y1njV~nOdzMGpWhdi|%q;IBe`@WsckRr5@`MZo`uQ&8_{(QsR{XQZMZJvXiGG5%3 z}G0y16!S#C~#Rf~R9<=XGq&}uJyh^gFTF^ZEy={Bl^ui@W8{R%# zb&-kIe>xClD`DGKz?L7Wgq4Bh{GsqP?lnoyayDk2W#MA&SZ!OXZO0q2?3y5?f>CAT zoDdbYy)=0{lr}j6m5G2FrY5rQDVWdq=us`GnBVm*c_E5y2-^Dkmf*W?4F*b)`H$wV zWQVFm9Zc&Ld#&vFb{w`AqoF8@K^k2lUT^r{zFki7!PS0Z0hwg?Dpv8glAXKUm%*IG z7z>_ME~^*E+J*?d(ZhJ^>qij|_v9(out4s$Ej1&STB%Cca>>n6pb$A8e6d>ldhhPJ zCBmTrGxoue9cS~c%l7o!w^JE^pi%i7lc`k!&b-hDymx0EI+-r@mxzPWbmD(`jW zqa3soE%!4REx(Fm>HLtXnrXSfb0o99aq$-V6|;XmE$D%5hoH|g;2|E);#}wR^~LXr zS}c@jtz${wDvG)%0^CxqmQq`kcxxW?7i*wWb+78l(==V?^tpUf5_4^o&ny+M)zdy0 z)@htzxlV1a%ax7yJF-0AIH^sowLQkKK02Sa@ECeVdcL>iPOk9fOPictJ7OqhK}25* za$T<~u1)yYEcI?)jY+vd669N7EF8YKj8B?dJ#ia|m_z1l0(*42ex-2uw|Fni1qah@ z9ppwA8Osq?JKhEKwNK7oLOauVuRU|K(VOn&0}LNbG@WN;2rabGrj1r>6@IdS?AHP- z&gQLby+b^W{P)8xE!&v~O)mBA-KR;A6a81Tgz*5in;#?368&B6l`%@t;#zg$gE<93 zi@JNou3Q4T#Yz6ZT5b{_nlsyvpX2h2=@GR~LWNRM+a1(H3UoyBLD$XsYGv7o=jdU{ z4sy873DaZKCswtMQ}jwFUz6hNW?a4!TlgkXno!mUz4H@&iOiADm3!Rs%=6gzRSu6u5*~N z;}AzGN{mI2R=8skYx=5{O-+BzPwkS{o2d}n-#b!%e^{zxacf;$xWnDn%eQ8fwqHD7PMn;4Fp8oMd4r=Ec4;j_CIQ`}4iMIYfkb%j=Ic^AJYm?oB_Y4DUxCXXQk0 zoCd#sF8S_t%>apNn@*`ifw?l#=CqmlPooVPcoF|L0~xgIVqoSP;F<-~KEUy1AmUo6 zI1buxWNyp;0S6%zgiJuJKGnZ8{cv0Jn?u8k#Hs@A-4N+7NHA1L^0&C2g3;HuDejeD zqTV`TBIp8*qs;}$u_}RU_Pe6bH6uw-JukNR=;yI<__Ixk1yV7)kwX1Lq|t3nR;)WG zR7m=kR`0XkYN3_$5j?ffXiBH>oFjeSK(>SK>F4XuJ5xUOqMvX%f!157-vsKanzb@F z;z~L1Rdt}kiT`-J#RlrKJt;frx~;#McPrwy9pircPV9wvMSj*Kp@!P@yveCa0s+Yw z25~c%fA)3Fp3j+&_xPBKK)YzCx83#knRcDxM4`i8Jd7f=l#BFMw~7Xumuf*COttP_ zC_$2lQl(B!xtz@|=6|paYmC`3CFg#j6*Mt3+(tcnEjT6S8LPg6eflzN8R`b|=+8nJx7%N>?Q>d2i6@vT4jX zd-lB@-CAH#MV+6E9{|QZL#h`lR{qmMQOcLf5JF9gTPLh=P0oHppyF(VC+1>gH;Ez z-LeNw$wa&|e3~fD<{Fom#|BfL6Gf`wz;H(lMqu6; ziagbC4?vzMR*weXf{p%xnV~mx!)d%?Kv6Gv`xOH?bzwcDOrL8ySLn2!uN;`w?d@g7 zNdUu7>{~$V8F+Xyz>EjXa;EEh>ugiEf|98>2L=+`fNQJ(*xB&#@S30pjYh`C ztUw|Lj(s^Wm~jQ>_T->XL8lhx@WR6r0pjBhn4me>BLVZMaWCXn!RvLc*e%=fXw+Ce zfrCxu0sAu5U&|^xki*#61tUiv1w9L3?{WOnzH`pf9E7g|i8^qJ92zOwfi%mq)(y^zqo-Ob(m)Fc~OZ8HeqhG`tmQzxCc-Ugu zf})vMs*fgIVICH-D@hOU`Ym>1S7t3gu?V#vy{u&R+n5|f3uU3nP%$MEssy=Kn@zcN9)UrjS!+P%w+XFyjMn+E$p+ zFaZIr9_I8`5OGw+0G){I%rXj}lOn1wtYG|Z(Ho*ur1nh)%uSGRSpjQ*81PK78+0JK z9L)CuucF&}tds^Arp*!}1upHcVD#AvxRfAb=G0)S94I}kph@QP`{7#m#wAhOzs_?{|-ww55Rt4G)`y2VEYaT&ZXipj^WS$&c5*-P?O?4GZ6| z16u&h-Vd9A2YPlYa3{YlQlSF|LzwNmET{$x| zTHvUn0X}Qsh8xe7!T~m01@Lx&x8OUNJn{np4KuX>7Xhq&x8!w-1rC9E%QZb(FotPV zU&(Fm*T$cFP95Zo6f`;#&(VU2}D6V9Z9e(F@L-u z$=|)Xy4VuHx>>ZK9Q2O3tey!ihQ_5{I7Hy9^codorx^Fmh37uo9jmq>ICJdM^ z+qh2EABLwMqbNSx3wzi%SQwjN{3!4nLK){~`|cfb74A%VwgWbaukiYM+jsL#@9)30 zBlk)J4LY+_>6=-|+Dj@yf0Ev zD^lZRZoMF$_Z1enDfiU!1A2LjrAC*dUw7pBl^@)sLhkae!!460lHL=G!{o($w`DV` z)5rAc(^D|dqfODP67feD9^(D~rS5;MkTaM46*p1ryHij z8s0v8cDFo@LVcb~oY6Co!|g-)t*P4dA<|p+18ujsmZg?si-m|Wi>qlqi-v6e4akjyzC6GyyHiSho zaX~v!@} z-}F>7ZFMm+#!_yN=ZNI~p@^a%t4`(%qW0e5^qFa_%XeAK|#@1W-i>gQ`&*?#Za zj7wk;uHQ)10+WN!fcYDfglpi;Bl!MtXkO>FDP>P-%H%_8R^lO>p~m#5PmZsfoYAZU zy08lE=d@|v)1lXL%)6(BOiB8i?!QiowoXwKDuiphE3wPhp7O9s=_R?m%^c>*Kk?=4 zv8hG{+ofLaOv_+lV`JGfntQa7WZ^T%wL$H~qf+8uftFmMPedC^(-w=1_HBpHSH0jg z9?DxJXcpyY=S}k|t%M;_5+8qJ$&KBl&9-$0@{US~Og`hR={8a8?5c@0n%#7l_j|77 zhTy!Oqe+G^4j$g7weanikU2{;Y+Y;3#+v%uG~Ue(MAQkKS5L%jZ1uAojx7%6a-{~L z=I=V0TMF3BPdkVm;ra?6yp)G?LOuLQ5M$ko>k_i=9c9=v0WHa1kb*3jF6lbfCo7iBWY$v4bmeh)+A6taW5d_IS62Kh`W`A=?M16)8^7r>449~M;!ixPVIj-I zmo=T+%jaFrdzLzq6_&N8?8n|06xSzD2 zW&k4^@JX>+KREgNDmf8 z3;e^mBKJ`8c#HQ!k|qK8ZJoQHyMDKXa3#=pR!@Tuu()z~?qQ+P`kP+GF1<5mRHcOa z`=z8Y9C`A$DNd5TFl`pX`J3z_0V|2hd8+8W%2d2vK4&%L+OaqF?3qm zGjILyAKhQ|K##v87 z#MZvg%w);V&O=&0*NYaNPTEhJbno8EiRnn>@HzRBz#CQuR(*G7b}gBySXsHY7rsVA z!BKm5Fj2TmR^C5X-RXuE*|n^l#&0U0E&bYl5D5vK?CY?Ft?W2Uts2?i-}IKWS%zeM z!rUGQYk=jaVq`qz(tlJPEc#JtdC*=1aTwMB%eH$48=T8IULRDYJ0f1Y3d8un`C6)P z#O`aqKDz`XGyo8@M+@Yz(KtFd{HnDj2bce}Rt6)Ipn(JYiOR6g=m5opV-n*h?01+e z64vNRxz3=c>^gT2z=X>=luD?8}(k3=EM+s0vJ7SUGB4jX-n_ zBbx3io~cS`EB-%xy=7R`U)cRiNDBx^w~BO0w}7C6lyoadcMmaiNSbtuba!_uEnNdh zNzRZ%bN2k6=YO5^;+*rscU%t4d}r@F*7__d`nFZ<+3J^gE#FwXSu z*H~NYzlE$Z0UZ`|qU*<(yY>E1_=1q+HBlDCMT&CvT>18Uu5n!NxLyC=oDV-gCvSU+ zKOGUvS+LjpsgITEI!Qx;Q?u#z7qjcI_R9Rpo8)hJ^SMNBM`a94VT-&#?{`Yh|`0weEgS~no&kS%AF`zIN zupVPV;Sd0GBvr)8aJUyWZYAe0HrYq1W({FAZ+%6 zgVHx+6<8D;w|0Sb3k9_SUbjI)*fbUB3YYz_xIv5cpWP31aP|vzgc0TPGQ5G{ze9m) z#JvuNK*fVHfPx!rEsWA+fN;A^zxpX~hMI$-97U}e8hW!cU8)Rp&ER-J@lQZGo(2T8 zrgi@KVQE?+d^?nAKtz^X-+e$_ZZGqeX!m%IJ!8SEv{jgPx znfYB7Rm$%px0^#^8UdG}1A8B&oyEg?;?&eHtKHrQtut2_waZ@b-#1mHnA+ciYYl#c zhy>}nq4oF6uZ=(O$GqN~&odq!Nq>LmPoC(qmqcpwiC&_s62Mc!Fxfboo(UQMX*s?>|5R9m0tjRe^vUc>nSNa%(74 zCextI9_8Z`u$$%resX!B%R;e6auj2q(VK%g80r-8+@E*3+OJ2+dcimhz20pJpt8R6 z7^k4jhZVVxJpcdXKJs#M;NZZTD%Q;hXsk)V<^jy6uQfF_i}_M0n;kfM79ne~D0>_D z8BkpzQ4cQge|G>GdI!+FQ%U=sTkPhm5Bw6;x;OeUf-2F@wcl5_j`0_E?=QAR+n;@% z8KYW^)o+=~X* zK_B0XUN&;urg+k*-Z`}Op@Fe$rkC%5;T}K4pKV>JOQLthR>i$lM~w&;&$%=sI3e#G@Z>alIx<*_`bzb63JZx;ML;N~Xu=EGNe#W-P^pK#q>&)c)6>Q-+`}6QkF3 zs`>otmCmjJ_@tD;^%~f*Q)?waqYb26Z-EJM(8uj|2Ib&IiM@bZbfCG?`Pb(wiOe)3 zEM-USs1*%<@YYOEln+)V)j;YVryVvPXLzqVC$MsQzJ8fQ_9)Rb z>r(vYGRy??b=hBo8N!fshI_||OZ6?h^Zpe*V@y9hKQu@*zcCHo^1k-*CmEt;D2^|3 zo*>e5(YO5fm~k_OLG7QJyAv|W_1|W~ZM?)1OA9c+YJ-_-);F0%nb5o+L@~+jp5M8P zd;TVHPud~T87ndeZpFdBeq#v{Pn`qHV)4|-9 z7{RpqqBAnG&7zfNuDYLYw<4gO=g9xIQB1Qz!Qp&Q*!o;JR39I%Z!`A16}I50Nleh> zr3*(Yyv+`N)>xL!!hJy-PNW@nc>nqkr>6SfsAE7FId2(54W0Nsr#3v9+k%5i&1tSE zjE?h+c0_P<^fmt4KD@h2RrVCxPxQ}yOP0uACpCr(r}q*vVE&({9OK0;aohFBK21JI zb3N}FTpnzXQOpPgP}NtsZK(pAdN-iS45KhZdzJn8O?JU6>0I(hZTy_m-eJZ{eILWY z9+W(-$C~8;gDwMa4%^PIk9taYE}ma&NV{S{b+Pn{POFg-1}l)DkKLRn4jh%sUh>({ z;WqhoL#2~`_KQ`!&UR}=ed;r2ab)v~{vww1x%^G1`h?IEHVG<0hsgq!rDwy?Kxxm~K16c(oNebT zrA>@IBBdi*>a`n&3WnI_t#FM{fs1jdGIG52=lVlaE!ix zkHvFP;>Y2&NCQW72_9tx0F;0^E6PpsGdGunn)(-z#5P+24R%XZ`{4utS__lbGPm!|UiyQ;KW{+z04;7>_WRdRY9h4W#SQS3g@v z8V>9yl2!4p%!Fhr8#$cjTv7|+t2T5U#sWo2!ogKvldy?dnlI-AOj#8?h!uwds9q0=)#F#U}`zDTjt zYAZHQ3ooY%n9PB9NHrS?zMl?$ib&wd zZ6e^{nLja-^DVt#Pw~u65_kzMS-0Oob0=Y%9?9K3snN&nNs|4DTG7B)jA0ojWYc82#PIwID9T)}On z%e(B&`@nk4c^PW!4L5Y?xUWDW{8kb6%;lywmV%IO1ZSGELOjKD6|2^89vlOYE`eNsS*j(>O zG)<|WTiwck$+`%wC(T=^M=ru>`yM&ythQOIAkVf&Q?X$4wH}nU+Ka8BKYtczZYjLE z&t+7w>C{3((JbvhDnq>NXKoFdH4q|-FE^qp(9`HO$5lx9{NU9fm#SwR;PdnU}wM&@)+!Qd1xry!Ni9F{=p#g#UiK)h5a%6JgAIltb!pkJoD5xrIxI%z636txEZhv(T*9?qZ+35wm=5|?km;T zEDT67oTYM8FZ??1_!jMWWi$2EJ4b$Y0F#&veM-|ZkfOZ8qxdcF)v4QZ0;R0%X4>Ml z*+Y*~45#OTm-oRpgy-+mr$uHVG@vy}P|FBajOA%z^nTYG+Lz)(!_Lm3D!wF?)N$^0 zbhMGsr>}p2GcbC^i)*4Df=>4&H|*`R^_D9*=YL!2TQ^V+dN5G~)R&PIU26WQAr|bh z+j|eQJ>=2=TB8{1VVlBNnq;=}o9r?Bz* z-0z2NP9}H9A{PTt_FxQB(pVO%NDfYPDpthxV$#H42#>;7$k%7xF??~qgIWrT_ zQ<@iWjczwROKEZ(swO9hKc|} zX8WurL9jFXz%Q-8R+n=v3lx^ql7E+&o42tHyM1uxa`vj@Vp@jU3-nOH-fdXGC&kfai52uXeDk7C=N0`}IYT#PZ34?9lh- zBaZHZd-EG6Z-yvix~fFBb{>B!0CnKOLQ5~-3&qWLHOlDvonI-t68svYN{EftrdMgI z)??2VBxoz~TS9P}S)rh$+FkGaRKRU<1fhD2d+|i{NyNIl?meZW zc>#(*45Lg2zy$?^MUH^aiM8}KLLT5h5*Id6yb3Tcw*u4*6j+9oMQIEWTmHnzvt!A! zQF+FOlc%qidtxnpBVc96Hp^QNXb&Xyt{)#z4avNIH?G2WX8?ujaFp!e;Si3z1Eu_0 zhTA7J?KBlKNUgYoe)yXiw8YQNo~7P0!%NoW{u2|c`I#ph@toP4@?$GPLiSR;UjnY&4a;g7h;-7G+ztgwwwnYjnUC;tu+wT$t-`pPmKx72c3 zlztb)$dK zsIXvOMm(qAACB(xlBD1*M)B6a?u}~7fImgtnt4B9!6`vD8P){_^AkGr_^IWiQdE3+a}&oDVG0L9_Z`9WTm< zZkFFY|MGO7x@;yVSySLIGiNUs0-H8ioKf`0){JFC+GL9KhAzP)8rfXWl`Uck&wpX% zf+LNS?<8jaW(MpW_ucrBK!k7(9NM3E*RPgYj7g!Vd>ZvNEmcEDS8r?aUVwDpD&oM$ zvJd+4h{BsZq%!+QNB8sy@sD_(+pcZb&g3aDOPUw5QPP$4Jp=c6OMU0~5Te^`bd6JDdM^pd50gW0x5VTva*XJ$=0L`%oMKxm46x@1t9@&im2)PC3 zw|R`f%)~!OU9nE|N?NbtX7&ne2sdPwn$kbUKEx2N*-;Q-e^_N|AbndoT=j9RxT#Y{ zer2Hiz(K(1heeB>_u4Vv(q9Tkg!swtpbVP_Z?S?olk4qx*&pMG+XpQK=nfjlvP%@{ zB5!G8bYzQP*+(Rt(ozx4dml*ylwu;IOUccOS0AK;ul7n)_S~!{X0N>1Jb(MGZPSxhhQU$tW1G))x%9U?lHq7(xq660Id{QtvEcGWh+J}Pl z!3qN}^FyedGMKKnu)k&~`S(BXtK65rKd@k6;h&BIXQQAq0Cx?DbY054tuIhZV9|r$ z$|djEAH2<$3tM#1LBVwOt3Dj436+XpY6Gy?PvGbV(+nD5sY&2AJc7mm!}6-L=*O8w z>n^PSTLaYB`^AMw=X5{jG7bk<0U>mnE>=-Pqe16|1#t1t;>HXgbMy-rvTBq~L z{BNwQ^LD2%9zLf0rdRpCI}FbGP*qOeBS?h1HzET1-zRY%3Ro%8#d2%Ea45MEC=fh= zHS+-&ov;&Z=;!Ni=l^m(B>@@}79)z+2Jmm|x4>+FZq}^NhBD3r?CS?ui+4|N?>Is( zYTJkz?9gBJ^ja$6CuT~S$CI6n);SA)!Z6eK);?oL+nm*LdKkFGAII3f@{N?)B*-pCUIEma^J0i&BBhskhkc@~1Hv z@N(?Lro(v(ikh~kPyWHjw=zwqHRq+Q_-~^o&1i^BhR`Ch3AHk+6DrejB)q_hM~X9% zU%UX&bp*S8d2R3BUr9Ffce?HqrnBd>(Mq1EE4x6gem9%9@Nz@CtRv zuDkb3xJorab_c+07-#I&F$}z!M2`27I-%ELb#SckWnjThCM@&ICio~W)?Ej^C2?D9 z!nqbsCd$k|6j;!beEexP*3!t3|2Y}YVz7&HVrYLa9K!mv>m$jgM;{5%aLOD~L*5NR z6Q7mo|JJ;ZQ#ah_^t+kQ@vyC-D$$}>=GI!RL$Rrh`Tedd`0lZ+tn;wY+24OMcOBHa zSYFL^dc0gFC3&8woo^m}h$K}nN!r4s21B$0F>CbFvSJv0pACQwP0E;D{b>_LO^#RuN zM9p$A7D0h-IYVb>=b}qLJ%CCj)!C`NN1;VOd;lmcX7}CcSim+%&GNxD%?=pDyufuZ z7ta3^NB~gIT2P9r|9F81V1KA!1vH@-D*%PS%FK)&(H#WF2cgOzE`f5O;joVu4-j{N zm`?H<(VcdZ3n9B43jrkJ@t?2BPyi9YDg;>1C#abM7!b2cN~VE{U(&;nFl)ehM#Uj~ z{D=!SNAmq~^pVryA(;I9{6HTD*pMTDx}XG#VL*1W0@^XuDhWjz0>mnD_kSJirmnA| zN#pz)b{By)=CA6Il}rpq@dP>hXTq2fjM9X}d>Y3Qt^r}arKV#QKU*RbKr? zQ{O_3n6-;?x_Iux`1>IZ_E0-P3D_WSYDD(cRX0!r3@U02a@-5yLC}z=h7)GLCL>>L z^y2k9jTb9=w;)X3j6g2i&e0fWLvg4h9+Vp7j@H}bF*BbXk|1FO@Rpp-S~Dx*H<@LB zz4yag7i{aNBZ6UaFQo8V6g%fJP5le;9a^s(GgP7(PIrs##@bqGkTM@Wax8ADAlfm~ z#B*OLO|-s?{f0}}`ZH|B6Rx8OVBP}A?x@4Hd}vP#OZE%JV2=vTKMIqnlNs@W&-(4C z!nSovkILpOW1rn_(#8|-aqH@_8GPp@?q7@l)%C?fWby^7JPW=4Z<&KNtU%C$0y%@M z2CLia3-Dm@0m8NP#X4D2!!u%fA{^e<6H<69k^%70EdW8|1Q58u;>EO$>wdl_o)FgI z+FHPK09D-p*0@~on1YiPoZQ&p{!5bdeg^oa?|^Ovz~nxn_@*0!@!t@DU+2C*9}mFs zm4FcSpD0fxN`eP~de1>_Mlyil6HxMe02u%PAQT2Xcqn|F|M@CT+vN`D1m$2LI;LK; zCpTE>n1fx9I~3g9xshmU2^JOr0rn6O{+isk zzh0@!uI<+^TY}2f9@df^7>LH;fBxPCdaB(QM?Z*KOM$H?pq%QoT^jtWjQT8Q63n!8 z&m@1Y(}&%8vwKSWKS!B6H^kMOlf6DRuZrE+9VcX*?f*GO^> zzOYTyD0e;E;Z&41(^4CKhOg?dVZWW--)fDOShrra(9nOXdd=_DADhr6O8Is*xG4Rr zHJgEod+BKIHxDc@KIuEhHh&Y!A_5~So;Xwj>ma56hLT{zS08`B%aAc`ESI?kJ;U)q zc-srepEWnv@2^|6Iiu~G{Go2$%J#A80xwlWoTjhxZk7tBWHCKttVf%Lg1pY`p;yLU z+oP`q8K9GkOJo-XSJu7f_4ef^O%3+svHO2nV)U?J$pZ0WKI1rPdw*jn@wdD0np$tFgasNZ`0r3NoWrpv8m}-XPYaskYsp;NO0x^^+i%c_&WM>QK2o3$AFTziGt+=cp_jWlI)oCXQ1#&hK`L`fvBxkwtNIBJ-v#9uCO)8D?q&j zWWRO>4aMA5xe5RTBGi@(XbF>_If55L!ASqZoNZ4PQ=%wr>2^PO!}6j?6~mo>{T9m#K6&s6WT;D0gwVp4yPMQg@Ks1XRgaK6IqHq z7w8O=*&@2hiK*z!1&fRC5|gYRLIg%SJ72FbmW=qC)f=><4cx;%3!cqf9R0Rpn}|(C zIF(K;Yk-$ztL~PkrmJ6*RTZ3x)s}MK>WZy-WhDJ~g4bEe?sO?HM~5f9;POnUuZ;k_C%Qmd7S1? zi(C!Km1j39Jpa{X7$~vfs!Y-0dPuYpp4-@r#r@bh2C3pGWwwuT>#>%G7(WJ z7lz*`dc3%cRY(@fU?tf1XO}KY)n=TUAz|2mo+Gvt@C93cmsz(BSnI01OhqT=Vmkdnz*~e2fBt+4HO9m%X8#M6=`uFmFpUB3^S zk{ljFWJV699&7ntWYD#s0UF1aiWvUuvMWxaB%+7S42FOGbtf>(>S$Psx`Qw`>%iI9 z2E9D;Uimp_qMIGeUV-`v9Qv`SlejPXZY z>|ZKHk>+zho^;iGmErRn%4qH&`3+aUr9o_Wg_NMB&(K7o-1052E>T8+$uKeXk0y+r zQ|k1_gm!)Evn{@ZyKVm}w<>lGxn8XhU&7w&cMl;#K$c410=?c%L3A(1Ty}{tD4FMqBaByRO1I#&) zy0kQ6BUQE}UcAvhU``H^m(uI}Bk8wo9Mxr4*#Ewmg$7M#Rut_v9T({s#+R7lg1~A0 z6&c0R_3kclWvgjR_cX9N^?tu}QIARBTaoA8BBvk2joD;tm29eKA>D)(7SX;kLZuhW z@a&=3-`-dK!)N8}`%gYJJf!E|dN$~s8E#6jg>1N7^_lmfVmT^nM2B4%lnP**+q&=k z98F})u4gxeaUl$*TAo?#UD@_~%*>S|pCB$T3Nftvipo=5;~C>$y0KzX5!|n_MvtXQ z=2UOIX9udJx~Zbh5`B)Vi71UXgm^($aNVUTDgkW8Ps0EFHU>F4%O(oTys9nFk~YjP0mKwH%;wZB+F_#co=Q ze-;y`sOCGf{P%(;X!C`%Py)w*%O>JhN&BPo@T$?1b70cHs|`K+U4$WC7XPMqe=F z?sMNa;xg5snN`FuInyLm1dFV!EVv3crI{<=q8QZ%FEZNq)0{6r_x==Uzub=2Ups>0 zX+aoV$pToOm>{t#;{PD3hc_k{tZ77ix5WT|5Jb>yq&l_z+TZ0cm(9NuPe~P`B_~$@ zkpOKrmBjT;PFzXMGuA2XM!&kt->h#XTz}q*-em4cjPSA2JB=iT5RU@);qYIcjuyMq ziw`r9_xnP2!TXb92u<>E3X}z zI*PN6fAiLN=*{RIw_q&G%ef~yrHgZ5l7COJAl#~nGaZc%Cw$*ebS&Pyh)!ttrn}6z z!e6T8A`iYL*c4Mrw8Wx3DSDkz_UeIdb_o&|QV)B}-vtC70kh`)Cl{nFLxp5CFF(!q z+=|nU)fU5VyjEY^3*f)+jxaR|n&CH6Lu&Pv{M(q4n(*0-%vWgv}?VoG*5iF zQfh42OIl)5dVkFOa3hgpO1_&1)EI?jJ zFb=s*HFAFu;%o!>tmXj5hiVbP=TAaUKMa~uRKVOfBY8Ej^cV$NGU{g^aKVRd0m}2l zC#F9EkpBb_nt+fH0b&K55i7FO<))}eg=1s+BoK!78iWjhQfCA7DnMYM4#0?D2+`Nz zvUUzg=*bdZJda<9%O9c8&Rl|&zXXD= zE#K8;YB4s20w1@VKp6M#!RWdnEApDFV}g2r6yeJ}-!HZPtWZfI;*rPJj%!@e9bhM{ z#4m|zT zMLQv%90dR7nnFBj^Ko4=!OeK&7yD>Em!_@FDbsbEhQ7$W-^Z~WubGBZ=ihNkwzfQ3 z-`ZL{lP^DTwoVo*J)exrZ8T{8@+F&Kj7G?=iD1^VYy#GLdJ%e$R@QBb<9zvUC^LXI zCLm`s8w+z2slS`JIa2FiQe&|{cfTWsdQ&)JlyM||)RWv*P&<!eTURQ}Rnf-WC}x zweZkw;GdTy(x>h@rhNiKDiM1^bbamLMvaHVkJPf$w5I=dr4CM&imavas9>07B zDtgd67MQk6gK7iSkxmxn8YO}9!U}}>0ryP=*w~hJ>Z_{2a~E~esh4z7X&16=@l@|YI<^W7z(nU zP#q=sCul$W8ATE6)66codqmB1$_%Te6QCybEWBIyiVe>pU|K>f-@+4aG~)m`jRScW zeDwg{#^cg{C2m#6z@8nc^4V1m2`PH*8QF?0vk56p2%e zU3P@k^%HlA%YPii@Hu0=p)>G=i=Fs5_Lgb%{*9r+;wZIm&95A#QO$SEtX34X#{b(9 z!~tV!r^1w#)&6%B-rl~WY>Gv1 zOcQjn`FoQ>VijsIFym7_mzts_;OSmPO%OGi(sBWsKgVW$_iuD6B|mS?^0WNZDaLkK zXxdNVHSyQSD^rxO5!uSG4A3z%pW1)V_H%c0rM8WNFS;Pm=l!U3>Q*=L8ZN(S#y6^7 z%l*eCt;p#cp;h}4I-%A(f27?_XA!aM)QjyBzYXT* z+7F}RTiSkv7GrL#giS=+{#4{|e&hc?j|I&*hxvoR@M>1v9Kpw*DSFf0i zu8JoW3=C*MOu|plo;{p-_6Td0gV_{`9QUqRjNfXy$48OiB!#Kd*!QIVTt*N1@BtBY zMBa+&L529-4slQwcea5vCZ&1aj##6&M&o0;RGek>K}@ZU%zb#r8Of$+Zc10<@WIvc zc`ip!-IjS0@wIPtk)nmg4396mi`;|IIkwQ$z-s8~h5D>jL50UdzNQ5w^keDp>GJ1y zsadB!&;^{pJX)v4f|7*t7K}{4zy8t^z(b6l3va=^x#BF|xx3A;LW4nP>dmQ=#WWcc zZ>J55L{rLp3v4IVqts0va^`(+>I{+kbT@)&+9YV7*XFjO|ugI;OkxOU&V-<>Y ze&^XfeJ-F1@+fY*jn~a`wGhG@_vZe6qBlLY^2u}Rt8M2GQ0L$y$^>dd3t=Ic^ z|8n@et1hYTGag(W3WgI+#ja;%F_`23)2+?V>zjNTRsh>Ycf7xJg=;>s-w;TaRsiDPT9@vAKLM-nGcQ3DP5_`vze^mJdpmU9v zpzSeWa`G}ckMmG;k+GNY_inS*+N?a+Yn^IMXZ-?JSk7G=Wh&kNMk0{1pXkwZgL1J9S(mU!OxNvU#aFM95m^QPQE-2cau51jR$hs(h*O?#eJ>|uW`VoK<{Jl1E{nM})$WORR1hDY zSGcz+emxOYR_JfmjIk>_@`ba5T1q;nmhr2~_H#MH!+ID;e_V3;OxVMu;UTS2PA(5p z*YTLu-I?M?mXu`7mJdG*)!T&Oa~x9+A!Yq5U;?aa92#{FhF9h^?K*$|PU?niveo$u zmQeTWkX*m`Di$s0hA^n?(R%s|fPEvMOd@Yk^p6vdg7gKAcryj5)(PIgBfx(ag+n0Z(g{EG7=4}hi zv}~?-6VFbAib`(XPJSYxcUbPz+Z%NEr`>>yXu0=>6FyLfwG7kPyk9S{5W|zAVCGR} zH>a7#urc*RpGNo=cN7=CB_S~pU&V@$*H?9Fm%6)}pF1sUorW%joehW8FB(5qJe=ad zZ&sApFe#%nQFk=3gNns&4o^8>GDr>WCh|;eNs-5>93sZ~Hn)7tjy?!YxgQDH9l>69 z|D(dvwjX|FU*h`5V5t$vk*+McbhbF_7k`u`=Zo5Kldc>zYme9Z!l&vtkop?2G?(6< z2U-&YuWA|mC?QC=?#-C35Ttn;xeSM?ILGExHzRx(ajzkGmNK4?kyMe`O-lB;Ld zyR2#PRI8sKB6WWR_$l2(V^&=*Hv2EM46&^6e^L$Bz@!!|AGzyf;3fkP+&U#>Elw_^ z5*+-on~hrrnI$Ze+eT8o`^&6T=;yW(z5?e~72eP|%KQQywqXdqx#{oP@CqMwq`vjH zm#g(J_WEN&NJZ|DG8P&OwFG^iba&Sr@JEK_#9YxS^t8AnR#l6`-D%i-6WgTm3QSFh z86~Y5>TmiPE0*GyK~YQd*d#mnq9G`#i4V$t4;J02y25Qd4_#6?aX7a0%Kig@sRh|b z??zZ_#VLh?bjb$#Vl|0|6l1jrB{)-(yjB9+4hBes?wfXN-mhd05^2YRfrOOIj^akR zV3WthR_*&s3D1U?x=&bBjhizr+nuwc9#xRi7H9ZEx@kn9BZxU+=`}={X8s9M)=kgU zD?N$|E#7NS<%4O99#rz`M8oCYyuibKz3l9RD~E;6gH2(W$h6ff9oFh8p_^XHO^f1= ztFA6ew2J9J1Dpgi2B9ifbP$@7ckT!pcp`YROk-&bWQEOrofz#@#-#l8=SDnP9QV>=08Ej`6x4u z+N$C`lhrDXHb3vO#!Z@qOyHc^f}$}8{A||BMWR0%dgQd@(%qs=AI*QTyV1~w-x7JX z(Tz$IXlN+8LlLsI2MrsH26udXQR?zA zKBv)pFh4Se0HgYsG~8b-jMw%@v;Hy)ChmTD%rW*h=MA;>ta@Q|N|6mYM3(U`J)?}E zg_366nP02e(&ToRcWU|dw@FbyLNy&-M!sp%ifEPs6JyGCL6YAfgLZ0?r>WBbZJ5oI zCOt{V>u3J4Hz{Sk{o$gFL>%2=>GS09diPjt!pW24(fBc=va|zIRaN133bh;fn5@Dp z`$cOL_%9}>^&Y&dVC#4Ow@3Yqzv<_T6On5+7(Xb+)my~@w}O+vkkwbCworBNnFac!T@4u!R<9m5}WUg zV&)iee`vS|dy!@2O@&wTN7&$Da8^}@akYw!P`wKBeT&$0#TM_zy&EO_5zen71plsr zp$a9&{Yx|6k7T;rg-*@BS+qVT#+kOsax~uPo5IkH_5718ku}ViwcWL$73SJ@YoL!S zJBPQ=cPr<&$1lXK^F~E2ZLGh5GBgA^$QxgDHfyfr{l|>q@+1hDq&+jfOEL1{D~T+v zw@C?VIhk+uV6i;2NjwA^yO$MHkrIw+Hy5QNBTLQuqg$_;(jC4%`x|=>89f~L1T~CI zPQ{Ph;OlKA9`8#VWA|$O7SC|6HACy+f3;1D`=U?-!sQu0Y1*-oEoU~8yYlvxEBF$b zatWPuNx!RB;SV!hquv0isB(iRFB5uyI=TA=To!UfSt^iyla+CL5qj%V1CTd1NOOsU zR3FBB+rLYemK!pjd7(>R;+lAny9k1pLndz`ZVn_MJM2=PojV89V+RC$(XBc)d!}n! zoug_{Y*@f@>rDdp4s7buuxBT214ZLU1;e9ELtw@U0TX*XLc$FvUgkf51_@fo&08(R z&oaulzvDws< zRKyU$Dw>=ZjGz}SLU7rIt@}MrGl>G+*aQ#TV^w~{zs8qf>;^+47IVb>ns`wb;%!l$AwcKQ?* zJeE4?i+0A3&22D?{8jMpdik!fPzN$xU`^5UZG30y{l0-v++q=vlmpv=mG;C@kcK;l ziBV+eyak#Edx>}c^i6lS2fy2;yH`Y>Hk$x`lEEsE^JwDflSe+J5UGtD+o5zj6KSuJ zG8W~s-WBzcX%*Ke5pv6$Fzm$srQ zXVS}MWh>qVAb}}JsN4-iMTC?$f_W6$Slri&b7>}}MYL&l^o@CRI8#c@#E$LmB%!a1x%h<`v z`dmkRNuxWBQFcR6Xa~)_0-0x^t$PeMLO^)qW1sl_`wJl6EC9_zhU0SAtGTMr8M)Hy zy>!mPQ~eQ*sBfe*773^)=Nr-r|KTD?Npa##fpz;y#hC5gTP$^E4(fU;LRFi;Z% z`G`tygf=g2x%4s8C7O|gDJ=H=P-Nk!0Tq!#tB0N>m^wisTtmkm)nt&^$j7{`A7GZO z2VxY0+qpyirt$kB7Yfk=0pHQ4rww0uoKPCp`lcCE&9w)elGYW zp}yJKfe5dg>J4^jR6dC~L z104lwBMA~mZ^uo$HWRfwD}~*dCI7U@Hw~^PuLi!!ccef5Fd*hJ){PB}5FZkp<3nVw z34p^Sh+@mKN*Pa7knj7_wIwnMkbogzCMgxuv_Y})Rmfn!gyJ{C*;s+|%{4sW`rPFHjffBFwhsrg=j#uKpQ1z}a6K>{HdJ9z_3k{(!j zl@2U`pv!N~0H&mavKf}QT}FYi)jWgD|4I2em1%D|!f!cD8thCp`f^@z4kpT|ricm` z7ncdJfdFcT1cWV{zQ1OC_24Kdwa?t0*7#9WO9z4axVG@+Pa!_=6o~>N(atUGUsXNJ zL5TN^+?L+QWQ;i*=Nnw94Cc<<5}VvfsSojHy5)P&EIFo=b_H$griG1%DpJ_W@W3-# z2TwV2=fSEqI61F0y#pqS&dP?6A>`q&a)Bd@6f z^9Gh>MRFEVJzY9YO>K*(DlV0Zf_md6?!D0qoce$x(x@h~Y;RI04%r$$ZgG-5+N&;^ zeN(o3d1B+Xna@k5AeLi(25;B?+4)Vah|OGWvM?tP25f{@`L#(jY_e}T7jp?;0|18H zk2BA{zAgZ^%j_NU+S9`}Q{qV*a1==@D%208QXH7g#{5;R8R`qN zQncQ1sq=jix73d3r~H-O931UO_Pj}z2-ENoQ_@hqHv71|3KEu1g-y%EqS;MF-IF zZ2m|2g-;Ah46s>q0i*Cox&vAdTD}w?8ex~=2kBlR5&^$zXlN+-Adbn16ay3UG+$gl z;c&sur<+~3ch~N6o5)0ks@T+2h1)EamJ#~1k1LUfuz94b>|-0nhzsrXu08wK42$NB@Q{}G&7ZrNrcbx8?UIS>56-p zU~K6eHZ z^1AX|Y}jIGEuBgdwf%lUF(XatiNU+hjWA$0oNmp6#gjsW`s*r3iKXrl(iD7*C6)>8 z-XivuikqHMoA&Se+$;ZPK@LOy{6{zC{d3So1zm2$29t4wV6AmezkPxrsjqgD&}4|$ z@DVDEJXG#wrCD!*VSQPTAg(Uq)7Y(N&f2&wG~n_`JT=4XB7f}9O1F$J#HceUmSAd| z(m?RpMbQgk+x0c?>}QjIN$_vKnUi>3Ey2#6sRQ%=X2@Ju|4|a{u?a-Cv)+rH#Y<;=_j0234uSlvGrQZVYu*3L7P5K97oAFe%3} zr2F{R#pSXk-H?1GoOWoi)n~i*LNG{#H)y+?`2D%_8~x5`%7vG#FJ2TZaER$gj?90C z*d@R}GZ*R2G`RfE+JC*W)V|zOLXI!trr7R3zkheOu*1qrN7QiV51r!(7IA}yQ*s4b zWoXDbZU5o(skunm>fH^$3}I1X6S&x~PhGHP#M^ZNpeTy+&y;SP&v&OcJ?7iyCsR8N ztA0XDUYLCNP~h8OB<7`YdAY0ol&_=QH*WsGv}A&*?91&OH@z(cWsSY!16xeH~lTl&)^tH{NjWW zG6_#I^B3#M@1?Z2LX{Pr*g#Acb#>XF!*t#Mg^5g-%|2}bn}CKR@jxR{>i4KJnpdA# zbx6H|koLLKRr%6E(3a5&zD{T7Sy5oElA32YsTcaQHNxEq4;-h;x1S{+<}IX6;FX|d z+>5axW=`rqzTz;m{T;1MeN4VKHk+q1yjBQrosrA{kt#w$*lED$2nEm$D4LRKeROu{zMpMIo za3V4!y}yF3;saoS1p#1S(nzZZKu8Y8YW`;C=8*!DjiO!$bSRzxD%Kdpz-$211aQjs znQPQ_DOEC^)+>AtNO&Rmzf({bFa-_mdZ8+O4bwA~ZZ%N3iJGg&(OV+8brI_!)i7_C zWw#}kw&q1V1!95i!8SG?+KgIL5JuvKzz&tQRp9&Zxrtt)zvbUk#5_B@C;noMjS{3) z9S6=B@b5S|xxy_!#c5WZJzbGpO|t+X%QRjWf-f#@mb;C1fy!Fl!qJS3vlqfdE(ke5 z0+@r9?P`+QY2MN=RGUCno-Iggv55JYk8!-eurRuC*om`Ky4*D7CsxxG+#9v6(7reJ z%vNYsOwy>;L&xh7+{M*(!rzUfWA$oq^9&i@NlM(!EiUvfI9LzA*`NH?VpN`SCDi-? zoAB)@UCiN>VvQATW##6n*z{-~j%07RVw0_m!5X60&Wo9ZP%#FX>lw2g;I$0bpV5ui z?l|jf@<1TEn>zgeeQp}fQ_&ps1S$jH03q%Otin_l0akcHK~0HZ6b_q+(i^|~YPXk9 zip_Pmq_bYV5e&%l%l(kPv?o(70}sdko#^!myZy}IsxIa6A{FiXH&g6IB!noM2+$G# z%+E)O3lg~Wzj7X606=aGz_D)f1OOZx2xI?va^fDxC^Lcr8U5)o6dLb(UHQ&~nBsW! zkr1c05%4miK34@QVAjp%`{G!sV$q<*76B^U9e$`ZUNtERsTnUKSij^%aL=Oj{p~V* zZ{b7641Eha^Fcz>ZaH!cowD=a4&7|A3|PHIW$W84-*(Zr%$V5mHmPQmJS5H`v#aD( z*VC+cUe9TJ3@#cic8}{(nRY&9E+gj`@;V96?q^EvHV*T)Lp*v9h3?L2;wAMNF0nn+$9iS%!bYgFGIfvLdbp{zeAUjMue}Mzyib=u zo+kX_q@2=~zIf4#3vvByJ7Wc83O-KA=r7IiI#bi~jGIdWa!9P>W*gL_U*I1xK^%hz zuZh+AR;IR*m&u|#*_-4aFF&XyW5C;rokaW_a6^o6~xu(IUj$}oMe|uar zD2euX8Mdu$|6ep+g50Tkvy zB6@rCU4A6OvKwfWIjycUct78N^Ow(3}diT)=PpOY$D>1YM zpnlq0cvSk|_B!A_O9@D=_YQ2j_KH?X)FX%6_{$3a?fiSg5P!0zv-)8iP2GyApS-aP zQNig6-ZB~+_M`b$Ek@)*D9fe9b%6G=*A#Hp>3Zn}geM zbBz5#X)_&D8Qm2N$a*z4J#X)zXYLqT}ZF z2J}iXo;Q&FAo$`P0?t)-q?l805nXZnJ^$*~wRa)w>Kc<=o$Thf8;}^eWWGDpor=WY zy;+^n?!{O36shEW(UI4h{u}f7-V-i`UHxoM?^E*^qQ39kb{TlZyiHuiR(8PY{HaT6 zu$k>xugHA5qw0!1Fb-$M!DB>YE898yh&V8gDJA@)?BLs_oE}omcc#cea>8ms#Wq_9ns=_>x zkkowj4zob*y6lzq8%jq{l$G%lBXEBk!rFog39sBllU>=da|qJnX(~cFvYdXo)8JQO zGOx(Ccn>#r!Duubz)v0+h-Clqw4=o0efGJrFGSKRMObY+S{4>a^@IL;<@fBXL%2f& zKosaAIg~(0u-fJ~Wj0$4%pe=Q+fYC@8@xtq)-i{(8&5YIW1JKDNvg=}ZSzkR{O$_G zugH25qio91unZGWs3RQMNApCbMZMCWd zAgR|seTp?wm80#q>nta*7IEp4>RPQe_kW4+RHU$#ggQB3+1LbevhO}f(24rqtuZ)!#w(>616y4;;M*5x~O3H z`>MZbn+%_W755GC##@cnnaw}I3a5Uf#z%e!zlwD$cW`}`Rc>LY%l&T)(@Y`CtihX( zVhh-_c8MXmDRxdhk9d;;<&tO#BI-a*|BdGh*mv>NDME zYE-r74+_OmpjPPjy*yj4*=r`8qkZK4x=XBzGr|A%@zE=3->_^Bk&=~Fo-{`EuD^XP zvm4lP{`z_t8)(IC5}1q-)*jCX$zdxlyKd5O-24l|&iU$$^jg7pbAW!~&hT7C8G3up zCJO-Z{Hkru;CElu>85b`-jZVv`=ecI(-ZJ;C- zhjIp3j;xx5&O}5;i(+)&a-DPS@Z`wuy2~yyPl){-wI?szdb|_mV0t6t55{Vfkc{>E zkBWctSh)bIYY3rEO<{cpg-h9ya}Q=(Z7W4O3Bn7)zLaT2A-+P~8Q-Wc5o zCCv}Aw?=T(OLjvPn8xFgyv{4mR9nrS;gSQGR%U6U>DwL3Am++LT_j>ldzGTuIm-bh z+~z0u*>GY=;LaFluC+=&LNs|1K}9m_1em=!s?^Jz7=z@yL3^Erp+-}*ZUZrE;ACde zm!huouU;K|LBz&?4W8z%5X*qV|Ihqqr$Kjc)wEMdWT{rlV_PV;mY*>m#k0scUz2is z_JmXB>XLrUoL+e?;AOSkSmIT%uzy-Lce;?b-kB4<0jPt>{d~?JOI9g`n#Gmu035PL z;OBN}dB5fZC{XUx6DcSvpLqJdZSL*M&z31#h^aU22&qNG>P+3&Zn38ZWQ6^xAYU(k zQ`@aQOQoQe8_4ag+38-V&bM#Ix$;}>X;m1@5y6{hfzLVA@*0G{Si%oj&d+{q@v9KC zG1EnAtv752Oq7dgBq-3&poLm(htKXUHylW}9Y} zu2cUdSYO(Irgd!6jK|-Wp~pxU?h}5Qo1<#Nk5Nxf&b20|I;VTqvvL9kFOl$qc8v7h zwngW!VS3!1NQz#g%Kc)sW6sv&$A)cMqSu^V#ZH&*2D0WQz&N=2`@-Yz+CndZs#0Bg z`QFQeUk$7^H9(#3Q1nr0F1#v4_s^9k;5w~2SUk&RM*xYbLH9y!|4!^N8g*>zLLuqh z+A^2JQ0|OOZItrNI zvOz@;0gCvXoQJnAH;r*{3NC^wT*A+{2TZ_n1OB)8_%(O+>zkp~^cHmwKGgW(2d^9)KIkBrR1;^v!RkaR-&j_a zNvBCMo*JS>;=SEG>}Q{98Ah2baV}}xJS6e{{QSqdeoxEM5qkS2-m?9Sv~%^)kD-X6 zRoS+Udwh4tLju@VT=#eJV_pU*TYjE4XUcJ%zuyLt8qN)ovgprIWUt*3gf+wY!g(?G z9M+)6e?OuAj!*sOmN)nBazWS z??0g|^JNBUmg%IF<5_ZwvIpHX%r9iM@4rH!gFqBqw_G51d%W&!002-w6*aAmZwC8q z#A&j!z6CqH*B-b&Ua_5^n4du{(zKI%XRs2uUvIUd(8cT$jwXsv|JQ;OzWaP;>}+&N zJ3ccv%IzpE=xHx^@kZ=uO4gVLHu3Dhbvi6`38B?qn<@Xi;OvEtcDzJv+O+IMvkR(q zuG0uu5_#5HBBEFd6K95r@Ll+HC$6fDj+=8HQ_kz`Dn_BPa}|ye7eaz+q@+Ewn!pO#0~Vbj-fu5rBSfs8rvFS?9!*pO$epn222fge#MZ6<7>JDcGY z2T3JJ?A*q`-@^ygpntyyr7U(qDs5u@naA(rC4?7nOo_OjlIt<#&fL5_6cOR?r{>1w zML%eaobQykrhNBg-aFk->rHmv;YIIMx#z4 zE)$83zIWLhN&}o&kk@UV)1I~xV0=lQH$MvJ+q-@G5b1JOvDkFJuMVM)*HJhDE;(fI z0Hb5H+^|gZ{oJzt=v!WA7@CCfPj>t+iWkK6Mui{SKaB4Vb~YD)mN_Uzv_1({G1v?b z#Bh=p8aM^6rnjK4G)QQ(g0pzk+C1JVqKBcai>8Onr&Q{LVnk*7zMNxdrgvvCo;>>B zdpP-ww{mA(oFgWvxu`kq@4nLQTD2egtu8;{Cjum$BHc^Ck?mD!ZXxSGFzqfyR!DB_ zb0`|&LI>@}UWukFE0@YwewE(=x&f|tE$9}fxfP2qXR&e9)(}?T`X@RJiv8z?*5Kc( z6b9%D&->735H?&4;B$6;BWMAx(jSNfb;vK9lsot=Ml zp%O)1(E7G-ozLTUZ5EtRM?N54gN17Mab5LSCRDa(H^cixp<9&HW;=_?_LMS7SnVB) zHk`vztK~%J{dZl&p!jcz&e~N`|AP;L9kKB|QS*zp+r9^%4a|XPlqIEVToT}iK-(bx zKOcQMc`O4zfsEjpcofy(ZXXTd05ObA1?S~FoN^RUEbT{FB*GF$%2IOJl2?y5>t@dk zzSUgxq9$TAi#)T}nG|%1*MhfA9|f*9Pyru>{BQm%txzw1;>csCmuRRLg5cV zC^2p56v(EpZ|v3ySNl&gu_%T37jFI4l^|H>C+AFIaUQLCMw$cHWy>`H z=UxKcjd9cP*6c&ld*7#YUZG)m|DhBhaQ`{mh~J2)?FgzGSTSxdY2#(xB_m?Hm_K2K zMhFNs`*^SOF7-&DC)J|XevNC`AWV9jA1U2s<_}BzLT&1Uxu6_o5SA!1n*d0I6yX@@ zyX&Xc{o5pgn2Y+b9K60iCEbm7-Hf@-z7c|9)1FT5fs$j}7fw}%E+XNoIe-7I{%)kf zIcwNzw1XFU$r_M!J!TTUo|ehZC07w$e|jh!pN&A#5>n*f%XE+n8@@FQ2~Lw`<);o1 zzGH1PSj_hl=`>D@E5i1Fe~(Y*yWD-?=Isp@eWY>VahAH)pTou^{>aDj-VN-3|M6br z91B8K@i=4HrbFOXAbogdHU#!3iHyw-i6)((4__jIDH_r8p zmth6N$vt;6qll95(^%8SgXH=cBvHc!cl zrco4Uj?q)Qbu{El*~n|o50)C?j( zL1NwPx@{_f<71L#hs0YkF%HAm^AH_Y5sv^)uVSZGcFKU92Yi{W*v*H&b(_h(!`v?+ zeAxMCD}y>d{uSlfoRf$k#SGbH%~Gx)U#H6tizMvg(^ziNpcfbH%aqdMvnWi26n36w zPmqIyH~CZQmCXJh6^gi2Ai-ewQXT@iFby{YzXDNp&|Q%<6gh0;glJ6g2*=Sr^?%Mz7!$Lb3PnPH_GewEZ! z&-n3t!yHfgU35N{vb(CQ){dP}tVE9aCI*ULcxE%!bsH>vE^RCh_{*n9PF8M~qorqN z2@auI!-?{r2NgE`-}fwCo5_Dq_cnW zJS~b&Lc$?8Ci&0$y-(2j2;x7mmtn?;|O-3m;L}(kVz#QdQSjr(IzF*Qb^o6GKtI+9QfzkMk)s zDWm7%7zU<3o=Ug!8ZvxCv)9P!dUigc@JqcOIJ@22ztdONZBw)I-9-KDvnKTYW`?=6 z<>#ZIly>}{m-z|n<~wSWymG(Wt{2kz2!&Cl-c+Biq--N>Z0x%!>ESiP51)6AIEVH9 zH!1tvi6Q2~vMkjjbSPg;}`n{V|4tt&P{zcn2bHu@%;`>g|`p`|GEpA59IeQO3 z-Y&8V&1$`%d?ASu&kDEp#~S$*5HUxyKl|hyqKj^+DQ>e;_8-l!(JCqBoV0F7Z;G}j z0SWZRRSplO$=s<;*GxXnxtUR@;)opb=@-myZKImBV84gJ6!yZ-!I;8hy`b$+TfN%M z%-vgYZSID;y5*p(?~_dVU_#c>2WsDVVV0v8!*&#f?dYta zAhG4*#z96GoJ58W*d+p_=QAoOX7{Z`QCPO4z}*|rcRwHF9XaT+ZmJUFW@$(&ap~3V z(W4P8Z9k}cB#5b+cz<&CxXmJBA|korGwK%!Cr(g=Qj}H$oIa+`Btr$a=9k(bE$EK$tuDD|wOd9|r1y8Cyyl4z5CfvrFS;vJqZ1MmL@siy zHf-;CmM;VbKro<0?Vm@Ai>I7GzXRfgu8Kx^yiK$7`S8muVN=-`je!tNs<)jalxz12 z{=$=A*Uwu12sQd<{){&o)E=GG@v@*tdgjKt>MTJPGlC)p8Yw;IFUusUffrWcv0dQ6 z@Qb41!qYzSI76$`t%my7e98Y7KTKZn-SRkk+pj^$GVl*Fa*NG!^=O5tS}4l=8mFBQt147dD7B8I_5T(}5-d!y>* zkR8BH-d&31UbzztI|uH6F%bAM(xgS7M-mOYD$Cj2?e1dr6nrZLbMhn$PsSA*ZC{#w z2?cH6xh1)X2ML{bPbuR$J?-ex*{^;ZQbs_8O9o?}>bsyoyvbq4Yc}8oy3bWB5;_=^Ivl^@=tT}t9O*yRg1EQ zK~SshNph%Q?yJ7`rUh_r1uS|(df+N8q|G6rn~{uZX!>pLHHKi$(A^^|bqR*! z>`>0%KL|V>M$EL#vjqB9VnGk8()^}Y_!yTGYwW=Au)f0eH`+XHKTl}*(b3In>qyLO z=DU%o#0vc(|39O&whZ{c+M4QLmK}bpc@-w!g;N9jnn~9H7sfC`&i;oSxC){Gq>S@{ z`Djy|B$$MrN(%v~J5hObXg~Ww>t_%4VooH4 z(HGgCN-U@YwC9kU8YAEIGisAFU=p2J=hN_TLitnQ3AHIu+qX*n1wG{^b6MK^b6gJ{ zYe$x?Q`|~l@Fy0OlAHqe;NyVXJqH44(GA@|&H`L@?g7Yyq!<}^xEqH0QGKx&9SaG& zOG6798%Z6odD_DMZl}L{y_bs*qKFdx@=>sG1y2)+Q~T2dlZ@U-DAswf=N;U+Z3-zV zJGaFXNx4v)+J&dMs}|a%Hx>lMpXo^?sg0G~FaRJCSZmTdWUtTq}x_>O@rJXqRkwwg>Hi7CJyB#vq3loR@5dv zbega{uXXQ8I&=_iItk~5%JSeF-3I1ry)OGrgGyg%s@5qe`d;m87aKKpmY??IZgYb& zIUNR{)1FL2g93j8qGs8%r8V%-zw6GfGB2yot*CI2abzl8iI-?Pt!2idl@VxH_Z5pU7eBTRY8 z?B?Ci&nA2x`_Sdz4HV?2;jWpk#PrO9sOlacTj+Bv?l9kqh!m9PCPEEjBe9kH|8BH# z7f;iG#GLKhAE!!)+rGeaBfpI!rf7d9@~YOouv@Saz}Z=b{85$rb5%N|?JZXaGXuI% z1BK@=%qGpQx@T*-9c+E!qhi^6L)r1G_mK2ia1)6_;JUE8)7;Dq{3k!4<|&XGyhOEl zc2IPMPajMNYT_cAVg6~KmiVs{!T>5E6n4*``3%s4nht}*Z(L|DV^FA}SgcSNUY7(! zM^XOBRSG&0crmJlErR0vQ+4>GJQSb@g(Z^xDvWY^QBtO{#)^;e;eegnFS=4Ty>)n_ zC5=JwWw9=3EHy}3G4#kO7`&n1n6Bcb`)Ad^}{mCZS-PO1io- zuN+^{DT!Y^m>JJT0qu;D|1*RHR^?&iJmnGDR2DogXKT%H6ausX2U60t7Xi;L*EQ%$ zQ+Q3(<+fS+qfvfx2@Mck3$ryhKVpdCO=-C@^RezlIdD%ETG)a(jggW^dd%WRw#rZ3 z1?_*X|LGXasI$(WZP#j*KlFNarS_YCn`pbYZ#yWo2`~Pl)4RoQ2RaJet);^G0##K- zoSSbpVP{wj84y!GD9VV$6vXmF9OI zClqf`m8Ju@c)y-%#B8w>}VFho3I@SyIZ7vDn-65<6vGrm@K3nj>_T4>AQ zRF7$j?J?hPdt;+l?rhlpY1$3e8=>0T&{oMwR`Ft24SS2wIG%} z@97$;&Bk~>N&w^BDM~$hA03Goy@;XyeoPWhA1uH&}nZ8R+LCba-%wZiEBP z5%~1-K&%QfnceKo&l;SP!cfuW!I+!fYV9yd|jj4*O%I4B^;rGk1ffORGP}(i* z!>#8%&2SX(KEpfJvtRT|FOh9b8Hv7A?o%?6_q8o|2raxIZ`^SGk{3x~qV#P1#5X&7 z`w86jG_rCg2k6j~5Pw@?`YrcwURluu@`@Za;4A#Z3EybSa_e;F1KsyIzdG?{lgzk& zW880N5tlL)C|bWeYvod?rALfMv5WV(h zHpd;bC>{Gbg*8Y88LJu+SCIBF{Ay>m`TXt!_*6hyF!*7LX?Tz#Lev)BQ7e%Ge9)=B_wR( zPXeEEGWz2-J+PlJ9&M$**a$EXQy9|N^Kq_Ifbjd1!X_@!@KF&bK{OnR9XN<*>ga_R z4bcvy$-`)}s;FQfB=fs{gs)oJ1hsX2k3#IIjnB>oY8w${h-gIUsN_Pu-fR7hm?P9T zlfEG}4SEatqXmg`oXjw{Hq~qTeA}>IMK+~1QNKC^0>#jh<*9z43w;QK4@~1>TT!u^ zL29l143`&?)|J{Nr$F84opyZthvEh;_6%J1#=aLIsM$8XaS%WK{At(1^q{10xZd0p zz-NHG)I{Q!N02P~kowenKDicBgX}gnwJvnG9>V4^C|gh2=EMeK9+Y54!Y_oc61%=f zx%`OC!N10;L&z7+GrA>rp4{g9|HVcbkU5e>-Zj8;_#;zz6?yJ1zu-A~zlrbn+ZR3y zy4c#JM2t9pYIv}O(}9P2RGu`OD#)5$ISs*ueyP2>k|7v-<;APor~B}Cey7Hk6j&QQ zDwNF7Upp8GV3Q?&S;~!QP509 zovB3fU-2ZKpj**Zef02 zo=;ts#Q7i_$c`USK4*5@Ie%lCS+uB5QIP6)baD{GW#pHjp-WOO@%>U!jYzu9QQx_g zSxN+wg&4>?Ro-)!8dqQwQ^^u^^G^+Vlw9#tXZ>NcS4?H7yIj+~XZ=U==}zr8`txoQ*hiR>bY0coG$K+8Cf+XXuFLQ8`B% zxLpslQl1xzyKnX=f9lzGwNipqI1TK~M7@rF+#0|gSoRSI@B|a{uM&pCaU9aJio3W4 ziiHM*?k^$!n6Em&VuTPg{(i37dU-np`qq8qa7K)1{p_Ls(N*uQ$ig+8fTz3woXPQE zU{{mt%utesj0jU9OY9(ZN0heIzsaE)9<}|$0sTq+1@|PBT`ic7U;jjF=JookH#?u3 zwYna#V9^LEVA+kO8A>Ct7uqY+H-QEq%Jn>7+Cr+_Dpeqrs#c`tj^E3OM%tliPAKXeNu+yqV>a{#*$@djY1x_?7_wS8jI(r!# z$za{~Hs1F3&i9#KC4LGY9oHT-`AfKuD_bu96<)umc!6f!)d1bJu}X?{3@L5Jyw;)( zCy&OrD)f$38>#aaT&#xprKKGhQk>oEY1$%!JZl!CYPlsU*=Pm?P-q2|V}6m9zN3l? zAE-7$=LRA|eCCYPc%o_4-#=2fy!1!cfRQEvW<2_ocm8{to%8ejN*?XMKe7|6?^mo- z2l43fPid}wc22i&JYD<(7k+{QWkQ=z>%T6Lcg$Dc(*94s1HtK(CMcC@fS_+|ep2_x zF``%}=EB174gp)V`NPG!?kG+4}_R;qkIqf)1 z{OS`7JpR6$GWAi`;RzGcWbaWCdw$76vpX%{o6gWLzZ0cCwRqaQ7p>h&8u)YjXduS1 zeIUTZNpB<}!4T!I+8Tymi}z^?&RG7?CVckG;wS0iDv2kLZp&$~SQFVQ4j}=(%|+eq z=dX#Negl0tx*)#QjM%NSQF@ef8>0S>TZIFLbeeduGw%A3dMoLVy}1*h11eR-dGZtT z)o?+xlCnm5ZO#};TZa>QX71r-5m6qIE6Jv1K?C1Cx#wY>v$agMo^KwOLNf23_16uU zx?ZB{qE;_n7BIZACC!*xo!Sg%JQNBlROU!-xZsnI&Zi5VXL!jtJBRhIPd&3gq%-S! zTbCRPePHg5dy2uOZ0D{pp1P0@Lj(BrdnqSjg|{LATiT zh-BA4FV;a1kWZ!+tgwqk^uUX{Ahx0K2TfypJo|p@0Y5? zD-rzBv_fM%dd^u4KK<}ryT4kzzr&?V^J8a`qdz1hciF3TG3*@gwNFMlG?V8WI5X`{ z??wkPDwi&!kxv^p!K22eSpaTne=^2Y_vQ7lAUjiXB`s+R-4|1JC+Ngkf}gYVqCXX@ z4P2SAYJL+;Mud2ZcLuQiO&fpOM*~D>WyF(gD5goC4nKM|_hn)YRc^H5>=OTE)c}7h zn2`n0ERT2c(;TD4;s10}g+Ju;$<+dh1MKeJsm9Ot4x6*_2PK0~cecks^-*J_)1A&f zm!+%nb3a}0i5AdZs}9s^A1lMdbzhLCkKyZh>pYJ_2<8YHar8`W= z)GbCkKiv^u<-cO&MBZWL$MwAU^8z21+fWPo-ZqUoIR~Rye9{592Y=x-gTXxxGB^)B|#s=a-?zX5N)yjnP zg(Dh*_MtXQY=%O{gPavR7ROm4Co&n|o#p4L`WGw%>FPZnHg)e#({2<>)?lCN+*LjuNCy-Vw$-@2qHcdpv z64ksnpxe7Ev^Tx_!7W?Yd@p^Uk0$UtAdvk1DxzyIMo$+n6c@5FD{hfgp;z%TZ(%4^^wi4KKa^!t%_mu0 zA{wAZ#O)zBnN;gEM;&bCq|Hd=xvTrGIla)+9Zs~FI^wkt%Z;Ef!auxX^yGKKPR)x- zvp=1T?uWkkz+Nz_B*)mNUb5PSJI>@quM8RSJmr~#(1Q442xTy^QxVp-pV;Dsfu!>% zOM^|I<%4E%!oR`X?D0=9``%*L+faMFA z;8atLQEn7a18H?rAXFA^XDaO_XClB?kjInP6zu~bZWRTp0x9@<=5M&M zZlFWYupo&e2*5HmgW*`}Q;{ zK6Oq+l7|{hzRRfEvY*O#{lZ7LE2S)>t7r3MBSt(1spmP5GC71b>LjU0Uk=qYfX=VO z8EP^qxr}q|PbZW$a0vn(ThJ7+rR3;+jW2oSxf^H6^?Z7^iAnL_RAo&9%&B@lvcrnrJI&v<^Tyv~lS^7885=u@y|XL}ULcsDy4 zJUdpcxw}JV(gYtxJO&7NCpL!V%LaF|^5-H1-DGT0g{rL}rhUABx(T8b)Tv~LwuX58 zVcIhT?Jj8&>ANHovVx4l^J*c&ZZ8cQ2T1ZJDF7KIBcXdNN@*-tj{_f6hQNbc=PTwl z>y#YKGIBk&D#GZJe%K=;1>?pP3U<*7^q|JJnUL|zFb)~G01c( zCQ~B>YO>(PPhV2QiI=pj(F1p`8>?0zk0KRq)kOLi zoiA9|sDt07Lw@~KBgb%fZ!lLxc+?X$=-ZF9u0+~im^4flXf~_-NtQyQRyU}j*1V8} z64YHGeY+KX$>;DluZ2tbZNbzx5swqK|4E0?pxFJ>X^XUXXF5v+7%Y+A`3GUj-VzVD zmj*=Vbdx^_;h>8tt5+<@ED^ae!768K#a1%`4wg52)8D1e_R)qGe`n~ zYC_5+pifYEEylkK+)oD(FGQ;~irekPUZZa`FmF%L!wozkYw6JARqA!kUzB!1cdl0{ z;lw{(oOP0dXzI~xMj|82g_rVtv??(OiO?UYgl@n8vDk(_J^N@)aSBu34ld~Evi&I^ zp=EGC0lN^g$TrAz71fab4JT*Z<4WM}XZ+xS!C5PfC^b@R3(TMpy8%wIoA+3(jjnhO zrXSEBmpd+TmoRP4;Sa`Q9HUPwfbFhO_oR(8qs2+} z68~d90V&iTsfuc*O?hZ%o+C<01*9YF$otbZCwMV#0txhoO&uS^^=SvE{x%O0)Y7eA zrofKigB(?Zt~c)G8*6LCJdB1C3lWdj6j9#L3+@P+&X+*1$@VbwsG2rpU_#%tiyd5d zEWm(h{~E=d!;?KF2yQNo#!;<3IA_qzjNd5x;Q0M0Z`^2-T?P4<3}P9bD(G%1`=7gc zty7HbL7!N27iq2zk+fKAHrDaQ_VQqh#G@>4ccW~oLVBwu<}5(}C61!wUjXg~1v%MnIr(|dhFEu>TYIcw{H*)Gb4kMefR&?u3Cd)g&S zocoU2-#BhmLC*sRVJ$~^ap%kldD2k^I*a$t%h`Dw%V^{M^Br=te|BU$6_uD*!-xj{ zvwp=70|DT$X~dRmd>OgY1Km&lh`NJhClU}K?AnF60G(sOH8N6DnzYr|gwa9Sp&yuE zJOp>64;zMZ@&%A8|M8M|r|ha%&xF;rcJHQvK8^J{79)bdu#dD6L-(CSL%el9*GQiX zm1l-9_d&wP1))zopyID}UOt|H+d2AT^FYw=2EDm1wzUHo7A-i9g!nI`=4xA(FR9IB z1uo(mOOIxC@hPoAz}EXl;U-K)x=ibw0((!x#ZHJ&7<7Lw%4%Pyh0YyoIr7NCAl3XL zLxI5+XqrKv5IaE}`Qlp*@9vD;hsKMovT)xZJKzp%_R{pT!4{_~djlNqqF0Ve=2tTq zCo+CoZ}C*!UBJ5P2&PrOel&Hk5DAcGvDfkF(-upAV}-N9B;-{VG#C`UbvAT1BARP_ z64u~x&hlSKQ~occwK!}7@m)2x51HKF#jqK`2_sjfi0~qJAA#^dzAy057jSpg`L!kr z$bu)z)@oVH`og^@ugDeL7V%rxdk89NlPs4TyYuz}Yu+T%W&c@1$Wh%+7!3q_yyzZ` z5i<;bmz+^5sufx18RD`RI9*WqbRT=KzV45%Q8n2}M_Z3xdQf8$;{K2wA=tQlqLl6L z4a0(n57#Z9+*+S%FSztI?{B==J%~*Im-4^sa zVaeyC!`YrYY#_u+y#zD3Jp{V55f;MP>fR(fwZjq-mLH;xJ8k?X{a1~g%*5#`wenLC zeu0wlr;CJIckX;~x^VXkbB1E-IMKhq-QdNpejRSU?!*m)PDZ#h!#sXW%2TJ)B`=1}WzxiDnyICy90U$B&d&cN7^ zRLkAYbdSx$fA>3482?v3)e6kpcPdre&MDGV;ef09vct$h3RnXQRr@JwH=F3Cq|+@t zTn<$F%UGb~dKVU{;EsX3dlf4>6Elwsh`q9^TTXu`vp_6$B23}Iq_PFwS zzQ4O*?YbK1iBFcq;iW^1)Qz;K9uxGmi|vg_bXV#nCtnw9yE~~qy60FmLmZ<2ZunZU z`_mf}i6PW|NSz=En*L=f!fywjUcY`o60hHvy%XhH>qUt&QV@T5iG`X*No@PI2pOdqaRYEs7!HreVNjtaFx~X0TxyE>-k1}3K}+O z_~OEnQ$(|XCQ+Eyb0ke5RjpjD(;g#(GvV-Kt$W_5Yj8V&p==PAfW^}~#U(TqYa;lo z+?QwZ3an-;RXjy`8#W_;Ye?3R5@v&5c@#p2y*clHxMG;2Vsz(L>FrIZ6#YJE$XaA~ zj@JqmKxwkN^7_y(fcxk4*Fn%S&K%s^;>k45FBH4yxCFKsTutWZ%WJDiUZ(%*KhDo~l z*qlUQ+>7v$!fn*&vWQUnIAk8g;dafmJBalj)o#`^n?`JS>B+o z{L}TRKW7I6WQ*YDX#R0Qp{Wyr+nw!T^+ZmlITLZ@)O_+4+z80$yRXd?mN(~Esz8hJ z2dymZFK?^OvOdip9#2Ps~z5lj07k5-bpn-bo@u}q?16&2@dwF^oEW?4As_OzBMA{bq zDj2FmZO)|noH189-pQ5n?Oegzxi;VoC~zDhsg$p3F<&NrdnJktK`u|8Rh-(@uDAAjn_r?%m(9- ze<~!9yI`K(SYEHlP^qG~KR*xuDn@rbA**&}hW$|&lME+49VfL@UDD)$e2V*QT|nC2 z9;lcJ?Bb*kkJ0V#1$X;gm9__LNfVXC=W;rD%sQCj%y6&o`rpt)=Oy8vA9FmtF z>=NM^ECzRzXHrF-V%4UnADE*H(xk4`Ifc!2ANap zZ4x9y&VyRnBf{>F06MIi(Q@N>a0_lX zON{M=PdmmkaXvMUzrc_Sk8KIxpAT`y*nLZ!LaE z7NwaLmZ4DYxLp5PY$#T&NC}X8VcTrsmj!4S9Tle|O9qDDruxurf@ul~9yu6F0&)>O ziUM<%HPQY3A%Qdaa&%zYYWMhdP&`eicbc%H`?zk6ArsSpjA+D#4`Qok_ZU zKyRE#vB~n~{>kaAA<9a(rtojpqti1{fa)r0H_+;evfG>*Ox*~Fg6yktMflYh7Sx`4W? z8T$I)L1c>}zNlgB^95%a`OaK|zaO$|*(y=O>74L1^s2Czd-#fFO|rQ^;T z@(0uF4e7%eLEry27Z7MV+~^{{eawlPZE2SP*|0$2p(**CV;jeY>V(zAAVUxMYv1mw ze1hqC^v`}>fpKvz+*;q2DCY;^fQc|*zgP~<7@*b0dbl!sH*cEnX7kj!H57#YwYXis zDT^3Sos!1b#Qwduls;&oW#%reobAAiZAU}~4O~Q1{3RS7SOtuWi$-8j1m}1LpP+*s zcx6@&l35k_-=*vLSH_!{N0&nb6lTldJiUSFkkx7M5nF zxu7)`cyYEOTOhq8ttu6OUV#M@ z-47ut~J?+DA>Lds85%{N=Ux`~ha-NGPygL(%Sqio-c-x z(BFfi*^}VzGR*g;3_rgh5kH+Z$D_IKQqA&JLPkfYcnd|I@xExqIH@5-N=;f)8jr1334pUhG-f>3 z)MMX7$Epo63 zu5*wALn2eBwSebpWCG~>(e(tYik5x5PrpU~*X1>;wS2KtIi*@$;8W-YxJ7AecJHmj zYYJD2@RjKJM4NQz$UqI~0>GdzI@NIql|zNIJ*WBU2-SFlK|-G*YLp~tC7}K z|4}&bzFN`9aooK##@0@d<04}KFZ>|MOhxtNM_?#~n9IXs#U)-RVtrg@US2FvgRVAC zxZV6Mhy(ZBx5TmlcN;Op7|krGH%3$8=r5v&wN}bANyTlT&HRecG+mtRG8VCmd*h@I zW>QNd13nM`x?}nN_*i17CVgZaB?|NfKYu z%LOg&a}Ju5d{LX;%<`$O5PBwWRorRmTvU_>tDx#y2k~)8W=9>d00D~rz}BC-+NE(N zto!ouE$h0%Y$btZ@&lCxc6y!GSkIA?P)MK}0Z-2lX0dg42G=wYa5TOv2WIIud`)6o z*dgTQ{}q_wr6QqRU0nZ1(^UpUwQb=;mz0#!p@7oeAt)#figcHB!_Xk22m%HrEr@h? z4=o@d(%lX&7)*1%=rCtr1ikN66h=hWG;&Dsywl@2uOAQ)+PgF3*fypb>}k ze`E`h>v@q=%l~ubXt2dR0p_-7U~5M`Kfl3`fLWtaU@>jBc2|WV$@^m#w{S5%NbP@xwsx zy^jY+Zk!l&m8*wnqTr)6b+j_;ax_1Dho8>;Hu<~j#Bz@8Af4QkaW>r4H+YK z=Y}32cK~xLMdH`8_oXibCw!D5oTBU)Rm-`(_jE090{N27bsU$#(CV$Nsw&*bWNoqH zBp>|UUyis8f1&G0MjheweIF^kUnj}M<-WteeAyDhURqr*!&N?sT&XIjOF3D*J4Uls z@=+(@OI*fkvAdjx$LB#FU;l#JlB%O*F9>GDYxdNf+8*NNqDbdzmO3|0om*7(>D`Im zEPdGAG5*mPb)?;fyauttZE?Y&q#00KGjeovs+2WKcPk#rtT=D6nHGCj#bI4F1)zRF19uc%8 zIbHmS)4X!%fp^jUZB!-xg6EwQESykMcTNz4Y+zB7$3?u}rfnQ=cgz=?KQ#&2&8_Rl zfc6X@&iiwyM#Itm6>iI0QtPb%7D6rEWo#v2iLV~t5bgGCW3;a7uoFE{(#gV4lnc{cv+X|G9({oPq!?J+9`$bF{J$sXE%Sy#oKg`ke> z*U?sDCh=dtqJoS8aG|nDjxKZ`D$oCYyXo+1xFBinjONjtpVgjNb!<1U@rN*2O>17k zl4rn=jRZyq3g+}j(nKDvd*gIno|8@ML#qZ!+XRSdArG{V6kL1UK64u@Wx^tB_sI7R zjbUYP>8D!${-m|Z*4CNFXHT)D&f+t}q%C5Zp4i-4$|-l@}&`GUs>he5hTSzaz{thSb<8giF_q z<;17W*S0;2Tq#_OlBz$N_DWxv>1Hgg&oY%)Q^v!qB5z-;JgF8#f_-av6~+9M|9!EEn`!61Ar#;ago_RYGng2l~us2Z(_x41@5 z%5ndY#Zh@E#68gFbHbn5I&RGEU%`CK_a@b~F}Zi3!SYC^U-QoKhlRLNUadM_#&n=4 zS5VmYO^6)YKWU!?cO3%j`}VUFaT>H$PhfY}@M%OtsiGa-`%k82CnN>~IU( zMXA52Jk(ycdWQ>C!pWxFCNY6V{wN7TSOl&Njf$~PC+i{VZp{~5VQ?{fN^bXuJ#wt5 zU%zSy+8L)!NaTj3#6Q?Zq;jVC4l)~02`9ZD?c)G}@h7A}!e?p0e!Q7hRDo9I!nu8HFvHSkRCt_^P6_u6u@BS1+snrUxEmPS z&Tlnco|E(H`S^1{mA=Ucr+nUg-3X3ZGTS=R2KrDn9&4WJ6mJ@cXr7Ltaw~isYp|0! zNl_dN8iP4AMYfk2cN%Xon(I)2Zg``TL`yOMyohJ(y;r+vYV4QFYIH+@0`KPz;(=aD z1Ca4AQf2z{+}dW4O1d2Ko72A_=1ntk8h{Egrmr4kHokc^9x=o#+SEb&l}ufzzVO)R z+1>homDdw!_uhZ*iqQO1Ne0KF<7Rk)XZZ61J6|TQbo%a$CE%fg-ZJQia;8T>z}&I3 z@s?qYZCt-JYZ#o02>!;lz{bphzS^_bl9|7jaa+`N`^Wcc*e<6*;Od}zUEWJ~$&jKV z?F{9(=UIWW?*j2C0y`oq5KeI;1)0b_1W><^c`SFs5vh5dR2Gqj28!-QaJt(mB(n51{N(E001^R)E-I#8c^wgT;xJ8pLI<>A?ol&0sJAG`CrTp;@ zx0FzrcCGaEc5QB@TB;gwj5guvNuId>ZAH7{x6RS%?a;Fz-}c^+hsuHCo$?{J2#YPM zLW98+My6pZE4kF>vIy-GRUm-8SrTp%0BXSfFQ_W}r9n8~pzZY{yTmA!xsdK~=%J?R zTvGCjK9Xqg~XF56+I9 zl4Y=S*qr`?$VT`K3zb<<)wiqC%Thtx6gQTZ*0x<^FRZPTdkEAb-qS!&2)E}KN+`x; zNB*e4OZX}KXC$GH2s)4u3y4<%G5J7s1{B{@Z1YrexZ-+mEGYzq_Jp=pMB4&^75St> zsqD`0@ORtuvUCf{1Y6+I)-XjMm=W`s>DHd4dj7BLLPz8|A!1`GA48z>>kAVHyN!w9Of z^QlivD1?iQ%AN`Rl4zHw;r4jyjX=cqTot9x;;K;lp;6@3>+ok3?S9|`FA2R3MH8CKkZsM8E!^5Ko{_w!U-ta(7ctn-!{2)0a~E;8gE(h*!4!!E7svgR)e*wF;wY>@gR7q&{GkZt8C zM{{IT((w~=7UwD^%BgQUCzi+AgYx%Vy1ZC~4|jP06GCneVe|rXh%U`0kHWA>yPtTD zjDFIQZkV>0jh}1Z_ZOa$x~LJ^CKgVS%a>D4EUAAIN|Xj>7PI0+j9T5;;)_VURRK3w20%CQ|#Y`$>olM zJ@((avxELd5*|JXJB)Hg;c~cQ4m5(k%WVF1$0+-nlRF!*HRIg=W}3iv58r7C+iCav z5bfPATEGwzQDG_{4;;=rKoB6xKX_p}C*k01oO^G-Uf*AZ=M|Nn>vJ6M;}wuCoQNKL zMin-Y?`ig#Kg6i7J24oj$$bL!Ouv_j4~_hFW*nB}{1e5iL3V~ zrDmpoO!*O|lSuH+U{+;IHV23Ma_wnhrOwJsI!n)V0=yWSFL=&AMJM0ej5EjD3P|1! zS{}$#;fhyozlu#$cuF?z--F9ROic8Ruhxmx?7n_)0tZrnW9FEzSJ z3*A}%6$jU!_o02#{vwt3QSD|?JUbpIE+b3pcpxOI4l$j7_xFH$&le+_FVw05lmAs6 z%$usC&qmoa9X7vuS~x#WTpuRk+HYD(RDT-HJ460h+a*H9kDQer0MH)!xsuD^b7jAd=UnRgmGR0%*&o!~ zj*Hk6rh`d02Aq^03Kt;wZLip`8OTM20h)G;G}X*cH)SLVwFs~J&r3Fjc!9}`T+-(8 z-(>@%Fo#}G?E0@ta}nE7(p$9+JawIRFt4YAe-G7>7M%@s%LYo*_m@pb$MA~RHXimO zTE*~Zt*;2q8{%)P^)*owd=L*TDd@B@)H_h4@exwboe$5)@WGnp*@=$o2ai)vgID&X ziKa1D=FJC^H+4f`G>da3%@+_E($}MOdftGG5g6Y)S(5Pr@sgfx{J4YpAAL?;{HA*I zj%&D|6Tr31yo|0crH?k@03Y@>Gp2wn3~iob7o);)AUcr=JE)JX)$5yKhEYq`+&)&b zJuZapgdN0eyeOAuBy~_i!Fi`2x%xoFCg8N|q~hNFk}<6Nx(O%2gt?RKn~zGYXE%$&*|gGu2RQ?*zPN_b0Z}rujYsc`(-@X8=>!wnaHqj*s6=m{e?yc?lAZvpWRL9PBanx&wMl z^@T#XRv5pQda-QnCoh%-K5Ur~F0Eqjv7NJr=G&(zW3`&@p`UX#m(N7T%SD54ZomZx zHQo`1+iyPSA;$9fuqH;7=;(}tTi@21pwZ`RPz(tN;?$QwKdPM?HJ0X*#lMm<4YqLc zD^Cf24K$9Z)$}gGb8N&(lI*1xj-XO3!5A$96qU8n&x0heic+^(FRZ7kR^F#psU?Dj z-!(O|2+sawC{xihqCS0wLhJRW!d-6)A0k>HN%zq=eaR@}C)2JCm3@^sI%R)LKAii^ ztm)+K^8T7gdWC*|J-nw=fYprP!!=n5kgv=T70F#ZM32{Dc>6NW!VBVb7w&_52hR0p^q`pY# z&g=UwvxW7h6ijd4vKX_$S!}~$F7-d6*`Dz^T|5t7*1_o})P;&&G7n2YqFTOQ=bI`1 zXDo6t52d$eP7%L;4Uxmn4mGR1eE0_4iwrgN)QH!L&@oD;nx1FH6aB)=24dRZ;(y&* ztfP}(l7rDKu3|K=le)EE9PPYoHO}Av7fu1o<2@CVZ`BEf@H`@YpV5JE!1JyOjB z++-9u=$oN0WKZFCt z5c>PXU|IAL)35tyTJxE4+WXTzTvSnedtd6FRRBGL_W|n5{Et-)XNA52NZpIYva$-m zI?>#Znh&vJ!YX2Wk&iu;-CUV5_}T4OYVNZtorkiGg1KiJzNm{Fpt z<7vjL_e~1oO*iRVbmcA@70>tezE4|pP@T{9kQMjL><|s=xR4;IIjM6$NSMoE+8qGN{AG{5^7C+{cj3;yrWjC$*~~WvC}L_HL=D3s?RO~kE*KiPohy3 ztrjLqn0x_ooI#= zM!fR8D(azGnTFc^@se4(Q`$wLh)y(DIyfL0EEeqrbaiOm$_)i%|FAQQi_Bw;=5gEJ zsxSv*Nj5D!4#Yx_tx<<-Udr=|RBHFzd#UkJ103>bkendh`x*&^&EK~V!=HQt13Z7F zR22;x6+s(egTIsHF+t0f1XHMw+%ihwyG1&8lqthn&v8UE#MO2Ow~DmfM1kx zwy^oM>lyJRMv3Qih`Z@z{DD~;yD~%iH2@7u?;|M{iD|KV;Y6BZ&03RkI6KAV&_5<7 z>#i(Id*?NP^IlGYPTO#bJmm_|qq!|8@G}2~IB@L086EqeJ$|{=_hleWA59$eHLX9f zQVxPg#UuzHO|jADo)Q71D$#+sr7lF>`N`{Q+jxnf5xZr)bZF`&1^Mz_N$O(+-AgVA zGR|n)`EPtj1I@ROydgPJ8Trqi*s4i9NcCN?5E;<$Q}#b64H~txOqEITpIBXpCdwT(V686-Guq|pRgQ@U6&S0;r>Eb6W9zt^! zFN>xZ*%&r`WN3t%*orkXCbhktM;V6gR!xKLru-(Sal!G z@?F7RvMLH4%M%CP%Au`1eVxYH1~H#}Bf4tXr*YL;zpBR;+m@E7IXSz6;kF%5mmb~j zdG4yA{^P^t*e9lgGblT9+4TTeUsQtPb!|@pY~0$S4W4s5cRs$b^%zLDYwO)le0$-I zx>YlYn3B{24Vhg4&?YvLJVK~baPsJ-(@IpT=l_eyc{ugXMe);WEQ#=`CU?PagLFOmtFL(e`6 zP1FYs7A19nT}}OHoXphLvB*o`W3c)i&y;ODTPMIO0$J0H|2o*Pf&*@nKqI20-6>blgTWj9)+95}JiAHfvQh&N)^#ijZ^t&+R-w($=VOm|$7s~4 zrxZx{CIreCf3N41YM?$?w~YdkC59_Xc$vX*Q9_L{^@+ZpkY!)=;nBt?BQc2jgG9DZ z$^tMzBwwODOsoz^V9WsYtk#e7(RZ>rK3K>H13;KzjlEaxSJ9>k*f+l0b65+FKrcvY z`Nj2f$>HlqnPQP@vuZC0VrR$Z_Fx#V>kW>lT>!%^bDVaKBzJrhciw+~7AEf_?bQtqhNWc`5rT$dBPlN)KBk3*Kt8KL{knUC{^g5I z(QH}C8uMXH!Y{r}FF$?0==k6Q;1}?%CdD)RiEO;Ao%Z%<(s%InjbJkeNs_>f!Ss@a z4crnx&^bAz_N>%kFBG{bd2qUJGn+F*Q1?mPp!ntRNRjD_aP=`UQ!WT8V-@lZ;5C|w zDX-QE0`O0JPUwNn+HDmO+|F&$O$t2wu|W)U8&j0{>zM|hMG(!Au;{rp6JeF&g~=rM z0Ss>hWL?QpF(Byftob)dwA{l^{cX^!PjPc4r5-J&yHS|FxuDNd3`9 zxp^xqAg-eGdpkXMF(WT&h4kfUz)j40WW&@>Mea*(tIpwk+3`14h zd6NG=GHkP-&5Bc0{Jf8z{OK$0gk@`Xw5U~al6a}6xEZ=3X){P+c`q@@xkl)kEbxj0 zq(}m-HoksaqieK;eS6LtJ$u@#zcEu{*3l_hvV?OETatIanp5_A+zL!Rc}}l5TPCUE zg^HX;I~RwV*F&9z1J3GmxrP&RZTJ}VbVxrgeo0QfmflAa>z9sujRVXA&_CIDAK__X z%;-e*@@{Bx?l@?ckcqz7ocl8cZjvLClamweQga+$KE44EeB8_9bGY#+j?=*0e!9-H zlU8dpCH7^v=*t%oXz*E*=}KkSYTop3qmB*yoy7kxqINV9@NESD8Ms?@H`L8nTcHU~ zYu3Dx*Zyd_wwQ z@Op0(OsnfT{L_skjsz!1n>h}__fx-+DhinsQ44@JvygU-SJ*B*LLu@GxP;e8hG8;m+ZZ z7GnL)a8Om2Q01-Zg+B+Qct!8{-dkN0`8IqWF%?bV2=olK0prm=EO5S~WmJ-cgDUMO z8Ch7cP*6~`Yh3QHt)q{3wzo6LlrXX~GNL*=J0~onz-<7Y7Bh49Ju{Q6KV+7pzWVAL z8Kl2>Y9~m~j9KkZ0}H)~dO@xu=DdzhPHPZqoN6qtz5FP8M<5&Z--Y$48vpu9$_B}F ziJ#<@CnvVh4yyU0Iz9kKtZNlbKnFC15eRWrh>0}O8&yf``O1kiX2~-ygk#q?9r%G= z&d*F+o^&r)dLB0QGF2ihI>Y1QG0T$bre6V*G4?RW9v@zYaWX7N{kMl$TT4mias3V3 zD>7MTGv{Z@&U!>{&kJ&nS65Ua$Vk=b*r$eEV!?W(2}=mLy;A#}#P=-hzn;P41|BPR zz8)Ehi!tXXzfxamep=QSbG=0Z9+cqPP)=}$e3a>Iqu(6?8`2b?O_3x?zuK|Csp4L| zuY-fzi?Xw`O%u-wpOeEO$Q5!!Wz(JnOT`?L;x87H;RG}K0q~t7|FJcbmAZ1S7D>Xv zi&Uk5J9|=soBG?LeBz%bTktCq%ajK71wo+GXj|SDu6O!crea@Ig)B!bxMyr|>%+-; zsvbnq%Q0K=HS_67y_b%2S>9*5^@h;Z_nr(e7*PQ}aKw4?bGqFEy^GP;&ZJ70p1kD1 zfuQn%L2E>}fClZ`;}5XjlfL^YuB-Kdjj#eNBPDx4+l2I^tcU=8rPk6X-Z5Tp4{$*# zfl@*~R5etu6K4p&DBO>0BltpAtfQRrdA10s2nr7k4Gpt(%9s;`93#8Fuw*zdb{wCs z7YTIA$;mNF8eU4>mz1Ra)ZJ1@O~R}sZDW&r?7r9$VcKvhrlLk;eTEPDLFg!VR$tXE zu%?Jv--hVnMS;jk2`Eq0!S;A<-g8CfKO|5U&>A-JOGcN^-bYT=3TUF#Wvsny3@HnY zw$sqSMZh#Qs9m??jsK9sY)50mqfoc(y$CHNxq|QdSf*()EbO+l?1z5@1HN($Nm5K= zNF<)9>E*!5N>zTU9-`Li>~(do7)&)%^gTGZ!?4C`N;o4Hy`P+sij^CD2k%B{aRSaLxyA0H-G)~AP> zxhvHgO-15?Rwzm+L;)zQtbwzw1(}ydR~j^>mkXy0jWRcgbLbi6^)U#JlW|v)z|eL? zJ4q5=p=rr|7vuE#OVID%3-3=j9D=HVfdF97Mny#v_VAs|c0qy80a3CMl+teeJt!U+ z;TYVBIwOU&ir) z?6NhF>h(Ixd;IdV9}w)8G-+TY4?KcuTexLfyx}r!?PGUy%vPJ`fBX9?fT>MUl|P2N z@-3e^a6W3%!hTX#q>r+(Dc{`f)8QqUIT9*rc>2W5D0avw3 zsr3?_pI7vB*S=s9OowT*FR*k1*24kJH@1|pX_wP zJ227x{tJ4oJECr^*QKH_S!@v=gf>>~%v9@v#D%K;FGN9VRQnEcqN25^=`w7q>54Xj zN~i+_c9+-;KjgQ|ZX7sDP5-L$NnMh&(T4VSY35+gpMuqPSLJ^<5ju3D#|xIl=1^iQd6ee|xI#_bID zmcZiR#h<~TCTceB1728#ljd9lkisy>o1ZiQ)4%XZ8O)-&wF31YZwEzg^j1l&!0dpP zVEt19Q}S5{m5|zl?AuTmPQDw{#Snr;lN}v8*1bjQiVu{g&i=o=V1UEAHu9ikIvb(_ zAk)04)a7x8$<-lpQqvv{^AI1Jr6vV^x6+?v1NyKpX?1DkKp!aW|z6iFyh zIZlXSw2)li&v(fgOCj1%G4@rI?Eq@EGg@dAR_;jgw_(BpZdki9f?@?u2E1vwummhe zqz}Fh5A2IQh&uGnjb2Rpnur5!^On)cMW`WA9iwz5=By7N=L(Pk4=|54W>IjdL37Oy z3BwjRqcp1Vw{hXEnsgnL$eGxvJvY@kjCdz|!LI|X>BQs*I&YBu_MScj*Pk@&?Gw(a zXnd64WbiEM{b+@4?y@72=c20W`1XeeWu^_{|9$t@i>A7sAobk~JBUv}9(6vmb+|da zw5zLKDDE?-fi`-ZBA4~iUV1(~;B9xcndO!Q1$|!E3~w0l`SkHC{if7K`Jpf!-60wE zt!pd<0B&keXxV*SzHWL&10z2FEoA;=t{`-68ag#Y((A(e2EkG7isH^w!?G^*UL>mj z(c;ezRyw!?BXxw>!@q>KpMbY|m0*JfOrm=wgno-YUWvK>Ds8G@voKhz>tl!Pwwh+L zMd|gibk52ao2hVag&w02lR13zuIT{=5P3&$fbT(*w?^e)L^)M^K*YZTeDnZpb3CJ_ z`02eX>U$}q^Z%}BFm3NXseG;xCOB$uk0gS&+ejvmz^L*{{|swXqv*Z8J=?RG`n~#l z-$v{(L2t!#8_-RlJB^mrgX{PoZT#P(X4~A-x})@7V~(uP8tj7s!tqL~se#=y4guJ# zJf6o2yJV2`9&RrR!`wO|2Br+KE0`7R{^K8lgjg_WR$A$s|3v*@xuH%C|J@Tw*^ z0Ie-5s`K-usN(B?opLB6@G5ma`WgAWiVO-Jy=$a^ZaCwf7=y92GIXcs7dipm2v?hB z6{2?P`}l+x-lAfdjZWM zk#5)tv5vWuS){PIBy+m+#<2^G%f@{nkJ+(^DxszVcUJHxJ>Jp!xoEEwMCO6BPtX=K zT10QDf9tIz_X`i|)FX;T4Dd|FHD`lbs5cQU;8naK6j(IBd%U>jFA?Mk z42McDLIbgD6w7~+C5hwQqUvbOG&E#yI(#}s+XVh zgK3Yk9bwslMto`QI|^to^SrOh`iB+|H!Y&}5VrlTonp}(J-CU=>ZAA6oAJWI+F*NU zUwygRa)K9_2$CM<`D#89a;=mvpxy9x(J)6A=%SQaq6}u0A$aW*cHA{_bKg)}XqS{F zw|XoTSzT&G==hivTlACC&)h^t`hP_DA;O(DGyE_3! zr&L&uw509IQ1+b{#DSumbJM+Bj7~1}mYa#I{0R&#QmD{JP{s8c!Mf}ewLouOiqM&w z<*lwbd%BbU3joKx|M7|a&;$^K)A59Vvk@868YXmJx3pi1lG?hoRJuD@4VD5- zn~CTKAsL$|!~ESpnQ!Vkc8kPy&q_mq@*@A&4AKhir)NEN2xIT3Pe&^)Q?iO}5}pKi zq-c+K72S>M8C`|B2!)*j$)ri;h;}sA(Pv zeUjW%;5?na9o6j9zh4j4oNm}mJ1eSiHUq22wtU^PXP1b_58eX3>JS+J(o3y>GM5NX z02U&T$D%g03&Z5NHmD$%B+(wS`c&O;d~Digr683A!~j5n`?G@$!z2Yrtrv4JRZT|B z%G^3xo8+%c_)cp2NKfE>?I|(&ZkoAImN*yo*g?myqT)hM!!PflaTXsy#! zTIydQ9DIF^fkx+dMXh+$IB>bSJUFE?q=0-!_r%bFmqV!wMvL!s)IK(-g!>MI?H6&E z-p{5QW4)CHX0o@F09hNzTH51ZnoTv{+}+2jM1P1@Nbrv%(dj8*7Is%^m5RW7`sVW= zxQ1TKmMl;MsxSoIKUPgb=jiZOG}gtR%F}*#=CoEsdLUL5Qc}pVL9<*0J#H)KxyB>_ zuIXGKJj-415ZuYHHsFYE$2rzH=dL`^?lmK9r~P9`QM^3)JI96vx=uJTK_J^GlN5|8 z9D3vQzE(W`drdSCNV$^NbVFvmlhmlOjj_91i@_xrKn(GB0)E=sK!coT?_mXE_ym4) z-3m9~hJ-I!u+Dzi5ag^4&|dfTXW#<9`Jbftpyd$jnHQ>s5K5__iw@j>2d4(Z{T*FjyI!?7(n zJ!j3&ItkgcRmAje<(D3SW*UNQQ}pND1&YXxO^f-0s=(%W!J~k;;>Cq-p`q3*wZb4v zw>IPk=u0vczut6x_|#Wi0Hd#@#`9mh_)?vkkimftChzMfUZ~EF>Zqi2E5+|n=S@gR z^XMo=1f@Vrb1+uBf8BH>q2w`e35|PKRK!*5w)z^6f|Il}=ly4uAKqWZAZa37EPT}T z^dyzRCMmTnf{)1tzHydq$Vsri1diT{PljAv0zWZ*U98mM8~G8_)U$_31-&Z#V13sk z12Lazz@j7vc2Aad8cRbi6+d(;r0h7nTyTK86a{bCP`M1{!=kmzM5`p}oI?XlFVu`X#Vl3nTzwslKZgwiaW< z)2=1m20p8Xf$tjvU4tl~SS~HA6zla%|!CBD4bWze}3p581Twm7ODy3 zJEe>#g3%eMkVwat$=9=u{pJl7=V->9=NpnrT3RK;E*<0kcde0J$Ai--Dp#`J1s%uY+8ht=#M zw28_1Kus|lP(*86l06x{A_9vk9OrGccwq(%Q`X!rr(WwjPmaGU{57SdDUJpW5#$y4 ze0Z4NJV@c*y1sB8zXznyA;1+D$OT~b7q-XCZCux44m)39Pk_Bk@VVwwIAD;5Ur&hi z*e&?4X+m85Q1lx=9L*L*083oL)d{lrawc>Lq=noZcJS&6W&~_U(w>Bq-{Cffx?|Yh z{ZLL^ct__?bXKHa^SZiP*lqRC6FWQt0=e~(f)cB!Ll>*O;jr>@{&5QR?x#)Y?8EA2 zA#w5#5%&tz9`VR|$E)*aoxW3SP-&n zDAg=ez3U1nGD(V~B!Iv>NjLSXxVnIB6)xt>Xa6-9hABNM!JbB%9>JOaCS zAin3$>tvtuUMGKu-fct&L^SsrV?r%dIY}nNmgWvTdjGAg-ryaFl*t=G7pGzEW^}%4 zl1j%{w&k@?0ibui#m!p$*EnvFSap!^V1F{WMYm zr^Gz>Ot%(ttgQwt@sscR;(xaulv`&60Nc5^2WY_l5$QvD4EFQOJVfGs)b+tHZ~d_| zI$Yw_9Fhj!za3vtw1r;Ls5H1JjC6=umhBA%HP^Rl^*66?Ef@KyWZtoLOHQ#wI(`S& zh{B_oHouHtMpo!BjO>X<|9#u*r_q#pL1l5#ZMr~L6 zXyo)@*Q8L6|DF{~#zuK*wq%*Nv(bZ_1JM@nnh~!a0|VpLNd8^Pvkg9e`w3F6#$!gg zNb2`Bt_X7PJ^;bc3kYbQ*Mf(o&h@2w(7Y3^^AhVGjpot-_rK{xOoH$1rR(;22uwmRDO zbN0%+12#lXWnZ5Md8+d39mK`QVAo9>exUegC%ZG721?_}?y|a(`lDRK2JdTR1)~4M zFxAdBlF`}O3GAQi8ybj7N$;I8DhMO2P_iU3fIZ#qBQ#o-sc54B4o~FnWU^S#TT2(` zG94ZGLOUFd5Q^g@Yjt-82I!R&<+(C!wII3eFScQg#t-$pr^*-}8^1RPUACDm@0$Wt z@;aiSkLyEg>&CaQtza=N0K+xYjRcsxNA%mdQkpV{TZeL6F$Z1fhCn{mHAe*(bG%^p z&t4HW&p0TI920XTDgbl&rpbY2x&K0{QUXUZoKr#hN_}s zYop)UZvgD4r=+kx`0iX3)TD>TlSI@-C0+9r?QZ>8)2mPU;hxBw-9@ptT~WQpN*>v~ zGQIC(G_J!nV1SX(3(rbL^*jBEcv)(R4^js`Qk&#Tn-v2Z-eAa6q=6ktl2JS=2aA2f zwzu}_lE$w!9>pW!M{~**Khlv=8=eQCK{xG4xyu_Q)EfJ3bypzWH|^ev?fceEB0f$` zpj!<=B#3K$_qzG&t7U~ct8-r9l{sZ^aQ?Nx{+Qnd%s?y!ihpIO%TB z&4Z32gl2$J*k@kv}S1tY*CrWEZt`ei1QM@cirhlF& zO$(3#{Pi8M^2&E?ZO2zZEY6!T?IKSwnUbF~6r%$49E~eV#!~O!m3RKaM`uFPdkAJ% zNLTn>UtK_|;{3sP-RI8tHbch_fn5rZ@4+_XEd4*C<}sHEb>Au~hhAkHxEOd$TF{k} zgo(i|*{Wsa7Xmt>aI+czGkbGO%Y}9dqsIygxT0<=f%sH{@XpSx>?{@q+{(#QKOdAN zET>;3S8*!8z-m09w>uOwXd%?NC&nhE3tdNxky6Fky{lZmN_P~2K#0r3Ms}i5t}L`Y zZ0;J`T`~gc(K)++g5vEg&%{WlCa3cJF%3^iI@N=%uT}5PP#yh)?zPQ4{em!UsydL! z+FLb2ZKu2bTiXI6f22ZM)B+;j0%+;@Gu1l5L|@1=Y(~QEwS7!D-WJflojtvJNv-wo zOIKfeP#R1Df!!&{WmlmG8!D^5q~@QWm@F=U&<_05V|{&U7Z;aeuRY75LW4SC73FC3 zUDv=@2c@DAoRZsFYi_4=JdSDwr(X9?jb+7e5}1MWcHy#8#k5s@kagV>YQ;<9N>O+H z>TJ6Qe4g_qA)!Dt3|vTTw99sTxeJlPKo&gYB+6lx$EHXXGeF?W-un5AqFdD7;daMp zlt0qVABC{&U60vK4P(6zbIz-ij1wF!!U9>+A1W}dJ0$Lsg&BYZEcV2>o7;cE|A#h! zMI>2}N&cy&M7j+6ll5>hi?GXTuz>zZWW1^|il}^+kU2?=5ArfPgSbH6PomL0ve&Wa zbWh+j7NwBKe0r`UxlpRng*aue_4iem>7y1&3g$s_wTjqB57k9suDjnIyHCTtb*Q8# z-tgCtoC?Gh;zQ>gl!sO~Q>lWGB@#6^N)lJU29@8oLqIq9V+%Jn?t++A(#I?`*amAbyV#o2(0tg51B4WR2na2Z`*Q`qhN_3DMMB^{*Wn zXjBKEgoe1Uk1blIT8mk?_be7VwqaX~$*>E=X7j-1lfY}~$VVx*lJONU)%2&`fLLhd=>Gk# zBV}e}i{-$8bj-sEU?u4&n$?>kzPfwArBh2I7GwsP8ak*EeT-$MqauRPvCwjI*1SgY zQB40thY8EB-b(q?PM;?e^zIqWfEutN%j$f9G2`EJDkAY0+^5yP28yZrVX`IfeoN*y z^mP9FEea(`>H-)zJPjfn4bOpJSc&a1XS{Js=8|H905)twu7YDT@7_(pWsUh53?8T) z5OqQa>xyT-X@z(&;hd&+ymHHAEmyg>wa9ZXW+KGH{h`;WhcO@Fhqfbb{t+oN8Xp}K zG&S6+958Azh%Kct+bRIjb&Rm^R*qwP{Bn0t!f31McZ2k z0r*)+ zfS>(j`sL0h90Vfq{39&6RvAwSDFNO{B?uMhJ~Kl@g}9zPM!v?7P875gtCF5E;jkC+9Y`5=P&7$LT4r8!l!@KHS0#SZ$7Ee zGh#4Jr<=K(mvvb0F9+o$fGJur7TT&`92wGC^QPi$X$gEsYx-nh-}Fv2!3+|p>4$O0 zKr9B0SYQB+B{3ac4YZMyVX%wp2<({V1iJ8WzT%itajl%5p^+CF{v1^8LHu#uCdY78 zb!UIewyCeB&(qtjc)xgdYvp_TKl9cjibuW6XKZX}O$mXC>pE3$gO5B$?1%Z4857f- z&CSlw>Zb;L_%19<3^{L_h{x8~)Wnlvtv^i zqPut0W1Bn#@G)cn9t(mH+69eN5t~y$m?KK_9ON7PmExfz5mRpKOqS&Q<9<_dcIYzB z1k-lJt))O0cz*N%c!{5>c|GX2xemVIZ;4nvjF~jk9km7!i_`AH8^u%wOuavNEJrjqDh50Ei^iIo(zkkwP}v za^7+)(wP6f-D|*7Ypp0b6(RE{m%3&=p3ll&$?MeKOmII-&{2o6awqr3sOTTfRal%X z3?xLYsk9b}Q_ebwd*ILB-vm;$@36vuF<9xO*M3uOyc%N}#*!5%V}x_J0}~;+53EDw zO_vYtk2Z2RRXX-M>EQR>kpv!Im;{DFZ}Ec;k>iIuiyI|!_;Y7lnLJVAs8jVgb~Ef! zg0tqs$wwJ9bl+E*2KjjCfWrshQNNpiNeHm_`UXH`C=htx@w<9e0CE}0LoBTk zq-WOH_0|qhW*8(XOVmW{-pA5!|HwoctWzFMZkg?&1AM2^qB1|gZJc;gfd*ZhkDOqL zhTOR+C-j>n0P74>NnuJ43UIs-2qc8^C*fiFWT++En1NWdtQ+k)G+=~T;~~eJLmZ!% zxU>1>YhbKQ=};~rdsD(v>3-J=*ot}f2@3(c-3$dXdS_rrZ~E`U)xZLhvgO!!v8LCxZ zajmPkZu@Uo`s?&-S|d>K7z?Xhvwu`H#l8U}kE$p?zzMB&{ddjYDOE3V#Qd1ZT=zBL z?=3Zf>fFEcS&^sVlOBg7xWlq}*ItAW9C%B&dlvk|1~Q4RE6tZJBH@a)V6sPZWVreG z)Y*Nl0;b1KbK54y8`_nrUvZX}AW$HcW{2|x2zV#K1>?AT7>ieLxmnfTD(h`C;)@of zbxewCJW*&Jdd!H5xZVHF!Qh~(qjRux+pA&ll7`xA6ssUxkS2WhSqqV;XxT5pq2hX|Y5DJ2 zUtKFmpCAaphB|08D%|1h-1RWqZF2W~8;$607j-ohF8}Jc^xABtvfr=EYJ;aLpQKQ@ zxZv*w^+gI^%K6IGZ&uv+tpKYUDqv}Tr^&kBP6@EwLAr0m(uR47vf_rl;kTMiuT4y* zgi`ipRoY8*;Dyx&__kAn>o@3hdbF|gi)@Ks6(RDi(TN|lQi(zq6bG# z0uA399gDC%8a4CB)BsFQF})guiEPw2gt;<8Bhu_5MsuOj@KcolV)T{gbxh2Q;UDbi zyiO<5^|hCpx6WmAd8dKnne*8s?dL7@6?!Wa(0Bj4cQPD};A?mv{xr(c-M#(pml8hK)+a>Z-GSpB z`2!vaAJiTd4zx5sSsDn$ESaC>h)k#${X0Q_2(G_Y9+4@cUR@Ai{7Il&!%0Rz$y+oC zmn?~nE{$gKM}!C=AnfdK^;dWm+f9$q@D0>e9hv|Ny|WnblXd;zGH$G(5;mXtg0LXc zayijt7VpgI;2>{dSN6Yx@a$j>z_HuIS_#v@I?3Fkiw_1w6M+Y1x3UVT)uxN3B%jk} z40~D|#c}>?>C?->ns;8(%S#%is;zfp%-@^4_!Y6!e)dpYo~Bo?2o4V1v8lu!h|EEd zOB#?Xr&CpqVa%Ya0w<>$#nDzwNcgr7y1V6QGYE%JH|BzWOMGYCW926j3Bv`o7O1Qq zBxipE|Hsr<$3^vh(cYmuL;-13Kxw2w8UvM5O1cE;hM@ z0qKUJMQRY~dS~GKd++)2Pv+ixV(+uh-fOQ#Np=-yFt<(7)psvWSKRH@&gy3e))}0~ z$$X}zG*sxtMoVAnN(8B3bL2rqZFFUhxIb&bcX6~l z6d4#)4Qf~!t)krDSl^I;?1mn7<5#WlbRmb<{6~R%q(4}GfCUNOsd~elX4A!6*>w@L z-R#5;tfT3beA^@WLkc!7!tY(N#&@UL`>PX#L6bfdqhfJsuQ(w)9G6l!!tbU*++7K# zrCgz-L!1;Tl_QV`3_{+@M!f_oiPsLo$L=^mu6rFo`T}~8;G|fYgdV<9NEsb>H2^tp zVc&p!=D7hBqAf>nW0q!|atphh;;<#>g4t3a+pg9aTt>n(J0fch3RdQJL0eX?qWym^5d^@*0C>(!FZA-RFeKj(`{tx`AH6GD z3HrATOo%+009y@lLbPyxgP=Ec%4FvV__F z6<`dESla;0Na^`YA9T{w0{X)_KhCYU_J%+)D?UcRuICXo`T4t#tylV9$*|y};Rd%P z;INZ66Kd)|mHCg?%^S|qK?Vs`TK+3yo`s-Sy$|ka5u0XgEE;-#8$UN)v!Bs9h>GnX zNjG4+F9-MV5P__g6VGny1c|@Od;Q*_?Da%KO~Q-YRm8@|N4I59mY)u}q^%v}_1W}6 zdVG}En_Fs_^R#~2Z(F5Lp$p`3XF{}p*AtwH)V;@D?X2IWH8==b$sDz}vWQE`Dm5bxbNMV-*y`&VZGp&@(X8S_EJ{#CSo}HEd%*|Uz?xBMVxo*1wUfN$i-%Swr8=Cr1 z6G_uzfTzZv=0Vl_SLco{{D=y;SZ_D<$==H1D)&Jgn*W4o_upwhvF`jV?9Uq!M$RLfN@8)}h%Ba!zhicd=8*?mfJQSbc>4t!$& z(wfQAR$+OycgV;bs;kJ&`VN*E@B33+M988>3d`k3p3{$$ZeW%s5?VZ4iS8?f-}#G0 zDvO8d-t1YTF~uMMiF5qP`2^f)VUQa|kBiUAOQkCBgQZa!zp6vYg$XSOoRv!Vsqj#c zPwV!)Sn0FNRytF|q&B(x_^D{qg8;3|Rb}(IL;IitHx_VGxv_tZ{>mgfj_g` z1s!kLK%&(@Xv~F6Rsffl^jA^ZuAqs@LBnHA1-_JwYPv2PPW@Q*{MOG?Ad_@YeDS~A z8ZL+f53?s@H^b~9yr%LKKhtu$VtN!cB;Djn`G&ZuDakTMAmM21d(@n#A}!Cp&bLdL z*)RxaVPj5bTR+3QL%D=u+pSl{pYBOddjH#p-}$0R0UUvC31Kk8t!3*O=5A2C5%wDJ zq)eqoU2K9uGneo(d>}tyV(j~=Gkf}Mj-~Nao=tk^74Nx>G+xMNd(SPpq0ZmP$ln0Ceg5uhj5M}>s zE~DZ(5OQ!{XTS`oqqx!_t03tQ??@tHN9X~|9@8^beHdIT?;y3lQxXp?6zy3{4c3V%}Z@xIP zFaQmnmJ(k)=Wl2g{;Zq{WZkz~Hc$Vf2BAQgsP_EFYo)?|eB(HqwF;|(Ul!>YuuwBqc=W*CB!AHwJ1Tx%eM6T4kdn?=oa%jpZ8=|AQfDj)Sb;FD@Rt;^C2s2F@wZO#Q7LP`x4bV#C<0;2uBSv~O|4BE7%d~9c z9#WHw{uo5%vy^E7I-t?r$1TpVaPP=`kiORWIZP55Bj%JOKpkzSZySbSuY~sd9 z;S+QLXyk?f#Vtw17!FjtWZ=TLlPD1igpRRW=%I8rC-vb%woTQtRC4WnyNUyCgu&B^ z%bQt^2lwjaq_*EY+Li%n`>6&1vKniM3%3|@@)9tjo<1Q#0svTlCD%md;)FBcUK-^mLV_zM zpb9HAmbnO{Ujq$hMOL7T(+diD$u}!Roi>IC9|q}$YiR5i)gk)}yel45l#2f`;CE`u zW{wddwb27msJwamxo434SM{4X$Yi>A+kY{)*C==2Ka>gE4@M2F-CB+E7p66lI}|l` z*x}aKwO{||cVP=>#K+f1vvm2RllTp0uUwitc2+=7H5l1$3wB;_;cTD@N|gzEiL)Y; z#5cp)Aa{8eX4;xaO_ad!l4gr*(x3C=-Qh6obmpV*OfY!K&DSJ6Z@Ey z{A?UrJ{($pOSS1F>&$GJm>h3nhvV?(6ieZ+-a>Sc@m6! zG3zQ}Ovqr_gR${-e1>;JaePyW`YY(6DKFkJ-`ybVsl>D}uNM#s=z-=6(NdCrD2sXS zkRh8P;dPW;U8H^dR$w&aKIp8dUbo&-D)uVQpJ`e1agjRT32&mX?Gw+t;)uw|lxtiU zv7KtkAR&VJlooJE%o(GyyEvbf(xEQFev>HN#opTR9w2{*O9)yLVcO`h?TsoPGKTM~ zB@RyOHgOoa{K%N#S0SoT>;;0WeM+tvt0k*B*HU*HlZ2+OnehMOesT~V|9*<%X1IQj z|3Pz)q?fo80ib9--1V@t{hZDt;bYxPQ0s{==IHJYAN^J3XoAh4*!wyr87xzM@A*hN zH0EtPJ8oWyw*8^~Ea`SCyYfxEOo^VWNWnEw7ypmcXl}aLqJ!csiwuMB-bNb$GDIgO zML15?vI`3jV5-y8*;?D%-?@t#L9UI*lYh1>drY3vzcs$_5 z!)8KGf{-W8`1K^yL9Vcy6whJt-?zy2mYu=XQ9tjpd{yuH3$eA#8z4>CR4quS_mt*A zW9zQNH~C@<)nqS8gu1BUQ7(lS9beGiKby!PZLhDn?9%i5U*|{n*X{usJ3?rG7ghE3 z&_lb$g4c?48Ze;%1|_yiAd_LC7h^VeIx1$dwUcEs|BolfWo^-7RMd|Sq-|4-qoQ(d zg!}r!^WFrWCk-@jKTv&MqW1hptPoTD`}aZI+PQ4p+$8nBd+pzz=4`Ytp6r2@!?^hs zSwya~yr5>vpE8!bP38Y*S3xHZc`|wQxV5`#xog~dEhPxhK7OpgHe6Q~T_9uTjKM{^ zNkWk1do>=D>nLlb9OuqKFzCVgu-m;sT&RCDBL8HU@mKjbWOw6Z26Wo*N>H?#vUOJi ztr;)~h$KreJ8c!S{gS3qVx+t>;djU1QivR6XR#%)K^_B2(7D4#^1TO*59F7WFD?(7 zIJa)z1gzZ_eGUG;BKD&iUWO@B9)f|Ve)&KZGlEXwo`M2wyuvQ*_wN@|7Wq0n{r&xx zCU~PH#jZcKBmUvdmoV)Afm0xv+KuY7$umY1spCHg)cDK%=j}*9_#o+hRsOFF&`le( z;wE(e&A;wT@HNVf22gqNJepcs>@Dqu2YGErcfSCq+1Z^l%EMvNo|DB8ZR<~{Yn*^6 zb%259e2unxY6uC5Qj94dCJVAn)>>o(ApPrl=Q=}{c75Yq@~LLy_9 zx~!Tg(xgNw6MTh7CmkRH_BZM_-J=rzzecsWhU5N632)Z=;^uZUd@9yUnYU_GR2Wh` zQHj0D1XeMJS<%Hlt5%1qD^zvNJiYnZqXg%+^^g}tZ}M}pHWR4=bY3tN6AbTRGZ*jO zs29%p2$9ygE_*t_OkPspw$mf=x1So@B*T+x93+Z6^8MWy2z3Fa%#1B|vw?OKm&nr7 z{%x!_#Ov1gu=hOz`mcbRRYt(rA^nuA2!w815->kO?>zA1p^h5%E7!QlnriyJy(&xq z`dR4!x*-$*A8I`E+sqXPzNorv&E1_6`hR_9q1!`u_sC`6g%eQj8Fd>QkFP6=w49yh z^d)fBc!gcIhdGwN_t?uHqJgO5sX_O@=U;Iw2NSmEI2NcF7$%_Yt~~TK%=>+X<>xmprjA&crjV zn%Mf2S7g5UbBcwzcALQVn z>ZIsbdjUCYtb%TvFU$Iac=?qag+>pnAlbN#7kl_i-7%F%yZDDY11xk}^JI`kP!&M) zxYPk~{Hhx#=FnHA$5a7L4oF%jN?phHK7$2(p_vgfYj|!4v9kA~SR&gZ=;lXE0`Hod zvdzuSQPI(b*_%bmAu^Q0%$tLW=T2K+(`@a{1kQtQC<(uPK`hYIu+EcQ0Eua?hm(9} zJ!6oswUEw%;|=EXqJLgZQA@fm#be|{`T9;L620CT47W?w5}bSda@z93_&5N6#HN=c z4>zrK3gozHJ@FcPhf73?d*@EJ_)N`Cg!{vQ#jGg`00rBv7B-fH3DRQoe68zb2BG=A zBPy}V#Z_89(4$yb8C9M8Sq){I3@vg89*)w?-rDH;ua-dlDn{h#MPt&S937ZcN& zR991L2jB$FB4ZhVL&3GNu^FxR75_6LFn*ME6o-=EkoiJ-)mROKfm~go(~go*^?#*O zj!OnNUMVF^wnKWV1Q}3L^nfqup#q8Sb8904PM?~5PkKcC>%^tg=TUOfyLLn7QS%TU zF1*qCSvk}-?GKI+Ij;M@-cvL!y{4*zv`{-vk&2T8%K}azEj5gKPKps+{82dp`-`3S0fGR?>B6o!g`&3SFt@k*^^nmC>%Sm48440FuahB|=bB zMNdjXI)Hvd_cqS43>x|XBnEU6^s7_+84(L;e?Ut)Cy}+6{h!;rn{lkQe8+@3444&M&F}RF1U_i`Z}DZG zRswfhq3x0c^P|J2Rjm3sS%7Kr?0?K4%G5R^YCgRQeoq4@J6LgN{BtH8#LDzSQSu&X zjdDjgkf9sV_nHrSc4aW5TrY)>(cGB7rXMHr4|MMAc3DU`ZzCjnS}c!KW6!UK*i&co zM6I&vi3AVAYue0i3N+!kqSvc}rt3*Pa+Ab^@Iq3Ldq2wT3vX(_W#Mz`6C>Iahnd!OTWNN+j3V8;$Z^w#^ix%2NM2A&4l&A^uI zO^xoG4)dCx1=!fjN3nn*Lg1*1mLlFY80)F zBWE5fHvg6C`Mzhu8!bRKM4lf*`<{lurSWF8@k;AjSB*I{o?@t5mPkMFzOq0PER0mZ;zr(=GZLMzDhDe}6vr zjk-73?=8jy>40qUAq#`3kTJ{S+oB1NxdCJdR2gk5kKncDo97$kCEJEX!=$f_gOPSm zD0!{XkMPj;$g%mfz=sa39?5UlF5mj`2owwDD34Dcv1w@dZ3h1D~*r<5VTIDj_B; zvzG+zG7k^FMtvFg6T(rn_FL_nN9aWhhW=?)nyUXX$Y?5}XEqi)ejEkhV2ay?)MY+P zY6mo!+d4Wb99QT++cJTH;x*|v(!idW?yb8c0t;?F@Y$Kwvuo^6HDxZcYjZ4E>v;#{ z00|-Kn%#9kj>7A%AR3Rc{1{&GMvuth?iG009YMUJayUMzkHC4m9m`d!XW8EWUDC|2 zmBa+3T}6>f`Qzi~eo1CJXdqmMXj`X0(R)vcHGEHeAS+$0Xo`;<+faQL&o>ha`nEF{ zDfxDak}k}bUlBX*05RWk-%jCPdx%@N!6L_Dlp6+L(}qy*?4+@Iq5K&g)U*wq=)D;`ncC{%>Bh~j zIRt}1uru|jHqM89Dmfu)?jUkrIR)om9Bl+$tSMoO= z7a0el%;*~&FiGg2T@H*KrlnDCRG-VRJMEiaJU&{2`oQtmrwQl@9h4r^Cy~?384LB* zOhXV*4WIoy^PtXb^dgz$B91|h(8*6)kT9)|9xE;s5=$e}+2V7&cc1BaSG!sBH~vJd zA??Qk7ENmm_SOD}KvyQtdcv{$VgZOB)4}|{uUlK?hQ{8)Ws=GDucqpYPU3Ou{r-zS z`Nwq9q3?<`9LB~KRUdEc=12~L8=sMN2Z;-Qt2s4!is>Wfx|Yh-6+&KPGNM{Lk;zMN z(HVM1%wnp*b3nHBO?iG1M_V2J zyW73eVz>2%U!l<{C!_YUls73kB)uiS|L9f(iON1}8&;5A*Rr^%xNL|3^V^fizm$3k zKt8Arr~#j+n)WhYosm(#BB|`=TP^|0Pf}MTT$QH-=7xz6v=_Sg7(ssx&HshrpLr`P zCFpfEGXEUDI)N|m+fkWBfeUhI?s|J0?;;=9prmVuUbMcA(0q*?s~H2=VScfer7x>N z7xqZc76kmx0-Ou5_3j_xibHES(Ufe0R02pSI0UGfGpe_A>?|!mn#j|EZ8ngK*jf1@ zMQ7fWy|(V#=>`XOfS@6-R~J}{Y+4r?YDVq&Y!GWFiT1wvG9%iS`ddcN#VTZ!Wntat z@x`Hrr}+jrtVDWZq&ng?(vbuSgZ(`bpV5k2bv*)QN8LLPT<<0hVHgz1YL*{ z9uFC|JFlmu1BGg}-YfCcVVpCfO-gby3&WxpUv-%PTqHxI=9r7jJCmZdzqHkQ{5|np zM>P09^R>@6FV0!zCwOChaavVJ0iI?x=mE^sHRG4#U5HV<_D+3&)9Nyz-w_{;M~5wxhY0~q7?H=l2j)!*((d0MqT zQzSh4l({7xo52E9lNYWo@D=DMIHTC)^pg6I{s8{eB-(l86Oubv**gVQJps& z8pqVK6q6{-(!yqa{&>W9T$D$u&&MVZEVD5~NybXyckuZ!+Nh59d-ss6$gR%EZFn_H zpFI9KE)ksk*KLPzF3|+B23lU*tn~nN4*5l6WGHDv*=b70EBc@zfLrJiykK%d&qO`) zm82N?*bPS@SrJpCYFPK+B1Tihp3C8;x@h8?Ei49=mQK0XuWQ%TJ|$|)lhKFrG(9e8QZ$euq+G_EepXiA z0Sq1zbpLwUNC$vYyM=}n^K58Idpg}@a?g>oM9n~Pqn@?%v3AwLL0%%@9~izZCNEd3 zKogNopiBCV0Dz&m{@e*N-86MC>SK;KX?)u&6}Z$M{NIN1S30Q*qG&90Fac!bYxeOJ zpo3}Larm+C+bVHkO2(~b(zPw0M9)G;aA^jDlrIdv7380QJVktA%((?L8=b$tp9+5P z=MqJ1k72}J-&*9IUA=-t(q#%Or{H=Sq!1|dLGqtW=*`>POhI*m|FJw(>sguC%&h81 z2YS@z+D2SlWo-SP@omdajZk|nEmUOq4`()hLqGIA{44J>B2-D{3~Itr8$DX5hJS!SJ@(qF^6 zhTS}024K|G{SH?w#cTQW7g$J{2k{d1W?NT{jN|PaQ@y8hR&Rix6W!t^fp3b4J3kcOW(N-R)q5kJ<+84oeX8whbbTiV0Hl@=!o5yIwl@qK3;MI!cKD%bm@ z`8_OIDQjDyn;%O6Ld{{qhoz2jz2bKf3%%0v-8Q%js#QDGX6AC9(fg!LM(R6qH+k zY|eAT7x_OMara#ec$VI27eD&8&WfN$TYa)M-aTs=r`%A+U&M%&#ZX=H7uBGaun>gq zje^5UY5U2Ho5rHS?uU+V|Du!U%L6dp%&tu^zgObc*CaQGVrB1FfivZcx z3A0SWS8 z#0b-eLWvH*tj`+obsY8*JHX)R%x_Y`G6b(a=X1R1zhNe+QBNQ5wLs)6@+YMBYW=(V z8BYZU%&E&R<=x+pu*>n}5_U%ETY{e_wasgI3n?436x%1bC$(L}Ll&KGN6#_Q_Npsj z|5EY6>_N@Z&GP%N36a{lL|yt$Pwu+p-!uGTs%?z(v6l`%Z{H7(oXvbmru58M)S$ag1Fmnh9lOZ#IX}oR4~L ziM54=2Uffk`}k{E6tRx(dfMS=5h@^2Oyh<0;{+!$kz| zxQ7&T!^WAY@yb6Ex#^|iAndQRvo%q^IW9{j9j%@S&EIL5#xvLzZs_cUi)`_gfgCNy zxIXueQGl$52HLo<47a%@;BS-=0_ z9{$z_EAnF@-a0Zw)YJ8J!i>GYNMR z>D(I+7VPsTjj_usG4-5)U^d0>$t6rX<61o?LV!f6K*!4f-wR)WZhyFl()~|s9J5eHc^-I*cwAXQd zAas$Grm)QnrRKv|J88|=yFo9)z#M=6O-KAqw?Nsj5wXTlv#!u9t9P*GP*YD|Psv_& zg^mtW`i3x`^sC{s(Qe&&obOdq5IyYCmxaq28H#eH$9|fq)k5@%`WY_SlGCh{*u3(F z71=Wm5#BO-n_~}e6z@iA3ZKQ>tETXar+9^<|4LJmNpw{3TJSX>D+pe{@pv$ER;?wZ*h&oF z*|XBUsyb18zx{&W=5G`&bAYe;z8=91-@LJF&&Ci2%KvsH=Uo?`wVHI&Rvz_!{AOMB7N{WnJvp;2Wj^X1;M1|%UR&a!%~lkdQUX4Z^rz}q$)GKL${RVD=KE_sRc+W%XK z_v?=ab@> zYdN|YY$X`%6o)as)h^CEdweyfdGVsj0eUDpIscC3sUPU@>LYl{U%0@!q{~N}?)p64 zPPdOf!pVvI78<))MC=@yxyU&v-$==kzm9Kxt0QDxpk6CeeSOp9JFXh}u2k!+yJ^!b z{s#w|v((=MD+AjDq}~eHU)H2(pnU6+Ch)&DT;0zTM_+bSl@6%5NDHCb%9D}3?Jk#RE{Pp)cmlDZg6nbyV$V~zL&n#coG`i$7b-qZ zn}tU4Y~F~cnZo#IYBT!H*w%7wQ9P-i=*{9aB&$nDx-wWUY&Bb%e#-ySPt(SsJ9E=|a{G`N(7Ovdn@-y(Y;yaZ(i#M;UuG(m@W)oMAa3>uz*-_qg#a_|?y6 zFSNgX9O-&P_V(ZG9CpeS0gZ+!LACklrt-x05CJZHv;LC*VTMxB(;O)83jD8%*%1P^ zrYS^iK(QJWXV<$Ze&V*y$}3w-j~h>>h%88 zi*=yU6Rh~iDxMq_kL^O?l=q*m7K}QU6dU}!%y9Y+dWtCTM{yu;@jKI^mP}&`63Esh zdG<+9Sbh=+|C5r5BQtptO!r?L$o>p99`nsZ-+>!Yu6 zgV%n|G2sK-FghtjUu3e-&}yiA>_8!Rf{&I>P@}eB*Qf*L#;?e`anHO$9LGoc*9#80 z_NC&jAwnx$-yWcMI*TNDwk>o%MT!q&SfKdX(;5a0-Fnv#V7tpC!P4&0j#WlB#L)M$ zW%hx@*9wma4%{2k-ksn<-%CsFC~p(8-xj>&BG5K_xUhO$Eu*`K9+_{PTX%4}-dh;J zWn#1Mx4BG|bTt%LoFaD24SPT;=eFWb1JV=4oB^}B*4M|C$H#teS>;#&3k0CQZU#V% z=;&yTes$GW_dhe^k5nqOs?r`y2e0_fMB57=mWhXE(C$eu+~36gq6NLYbReV?ru`K? zR7PT~g0jp0UkpGUCT$eyT(m4h>G%BdQr6ASh$KZo6lLoa>QefJ6&LaHi}ZR**y_GYR9Jows*%JO(}g%g>M$A3GsWA6Ge-xcz1v0NB+ z6Wom|dA^&B-Ldbv`w(7drze1YnIBN6@{h^d^xwz_iHNRvfez5w4`@`$K^?#RMq1+c z6%sA+wAW8JgC-odjP~u%&axTF^KZu&p@*blk0>?@+yvxW^-V*jZWW*l&|Kv&($8H2 zxNX>8+l(u;t|O&+3E26Hjd71j5fAnNxC~CmOBENHsfM4CA63Hd!Lx zr%+@0%ygOX*tNP*(5zI`DOe$A?N+kQm8IVO<#9QQ_$SrNJS6dcI+EC>k4?Bl3NI@w z+xmVz%5)m({Z&JOX#e)@+gJdF-|m=o^>V83uP>^MyoS|OfOfg5!C&O6{K|U*c)rIO=O})MAU-f16D| zURypdD#WAiXoOK1+A60Zw=L@cW3n5ejazi9e%87}fp1SxEnfLxGns}|1mAW87m~|z zr>4;*DIz2hc(k(LnunyS7 zgQpzh?VU!8*>iP^-T|OXZfcip#Wi8!r+>pP$BCdF1lP$D)eb1>XjaozlH4B$2&?qD z={kB$@CZ9%k%pa`tE zdO1lDruVNxkbjW*O`HPdwC~1yfO2|jA)z;3x0&df@n}=3o^;3WFN)3-=2R#{m$rWL zxKxHi96yE5z1@qjk!R2iY%TU|Kc4ppug(t~0E9$k_48B4C><*+W!c!<;$p$hT>xci z?dZr$b!vZmm57{t@k}dEr{D(vc28!E8l&H>Z(?eOb|jF*dsia9<;vg@fjkaE#BKDB z@ZnayNAH*9yFq1;)Nc);^lNffpp6=yIYiUuM}6V0_t~;xXgd5s>rJn%wR!okH=jAg zwz4dD^He;l_9P#zXM8bZTx(QB7lOo}o{0a3Um3!j1_EcUfIytGz22p&F(xr&**f!D zO>K_W;Udc$>EP>I_a7dgM+sYnqp;1PJY6i|!SV5SFJ_x(GKre+X^z_6d-n*=mj4Xp zakx%P-)q0c#%bi+D8wpW>WCg$^bRk4PeDdCjef>$gaiGf=g`u1tAcM?kkS60imCRm zK2n0@0bU~{K=|SLxh~udO5%W_Rms^|Ff%h#5RNfTmUL@hbpdvHza^A>c6m9>syoqa zs@CJVb44qcl^1@IBRi&dpm~>b1K~9#g<8Qg}Cc*&zgEWq(-@#(MAVXyMyLX}8R!TlTwF}k3!FXD^S}Hrqv=R91 z?Cc-pvZ*NQSG^niNTA>Qz7mIlTbF+6RNu{8icp_B+6<~=ooaV_)T%RwbC;`)gNYq%FH6@mIhAYkQQWzy`JNP;w zFiA{u0Z6i<y_~M@WGJ=MGE=6Ui zB*2FJ4qdUfpL9^H5?a-=vWxN@kZn zQN-pYEuX$=U*_HL$jCOptRWh8Fc%@#w88 ze%R{Z=Y8CHdQ)jK@|{%JF0<3$bg`X#pImQ!q=#w%W0|YOck9Q0?%|?8)B#RJCKX5@1l=(Gt&M z@+RBRlX1e@Usef(!W>6@_eiIIUrRZt$_%`Vo#WuiAHaD-0822NXaR%+@;+(pPy22T zCEuY>Cl2n4omT29MnJnSDo9@QK%@4beO0Nr;TeFkFo{9lwSVf z*~vGG=CK>_$>BrG528-8XUA@2^nwsDJEf6ABh7D5IPwi^N_kTcdn{liFlo!{y!Bd`4&;O=#3h+b^PHFtB7bE>5-Na6rnOWi#+4aei)o zo|>7NZ*0ltuPK6)ivKD1$qVnMjf9?joxXf)XtF85W)5fCH+N@%$wKVYd(QQjp*vB9 z_tT{O_jhoT-kSt0Gn;N0vboIDx793|@k5sSLvnf`)|p)|aI$DVBz_@NRRM-~=V-YM zLSQp8+Bv%3%<5R9?$_mpZ35_;pxrQUz*KK9C6?#P)|MMfWa7H`u=}(w`%_`sJRKir z-r=X4y)tvR{|Xmxj>|&wAg+K+EeGBopRzgrC3$aJww!BRM-p5 zL!$&O%!kq~(3!r}*>$iJGQq0*_S>M3+^-|;sAb7`?%-BYMLW=MrYt&JnQ2>Cnm5A_o6HIHYn?61>2fy{&C=!}No{zY;@f z2g`=^RKCswANE*Rs>8QaZA2*^L3oM>4O$_EOw-y0lun(UQYXLmjA_Yy>5j; z$Fk_mHWbtJQjIHFxQLAsdvW(CiSG)zT+xCkKHAf&OD3QjGc@yioX-_5O4I(MaM;xi~ngK@dcvOAbS&XI+Gk zRkYyYfSQj5oT$xld|h zGXb$C*{m~G+S6Z?eG_e8CN;|Z>hFOh*cnt$u<3}lNJheco0K=W z%62v)D`AkDkrPq;qr>$Iy-}`z)5)rmq(FQ9vrHr3q>1F%_xts7bMbXUYdWKkxXwM| zH|$Y>1)(<{|0M-N2Y{|3YJVTTut>ZakA?OD=)l<={8GS;de-9>S*Mk(XX}vL)lWYm+RV(0_JopARg^=5~{BVgFJJX zhjC~RX(dSS5OiX{`Ih8m%ycso1$x3M2++e^hwe-}utR7?bLJt7g(__qtKH;pqwU&% zaQekFC%JaiD}62{-E(NJ6q@)|={j+(p5S7SE+#oOD1h*y)@$?Kr%&{!z5Smb9SD__ zl!Qk_%#TQW{0TM*IKT(z0keMj3y?WDBG1z;+LaJuyk#LJ<2=KTW|#i;k34;Kvl-~! zv?`-(mV+IhGhq%HL-vM@?A-C8$0;OVD+1M2pGOhY!varNGPIRs^UxkmpGVtNL;cv- zU#gG9n{}grW`aM1om=rVO-2AOddlTFp`ukNT4R!3?@O>fonaX-7asr116 zBTpiexX^o@i8pO4N!`BBZ|;`gQAJY9IMl(h0a%y5UKx! z-$3zLI=tL$F*uXG3AyJf~w4& zU~X%@!(s*VS@7y(w(}2Kh%+Oxi1N_h{iuLnRDGft)csSSQB0CZ?j+kkx!QU7De6eC zrSp^P-er}D(72EK;9{F$))pGlV7!&$2Sr=-_R$mXGoF|U>51$e-6q6Nl;WE(oN0r> z&ySkzk&t+2BI&7>PEfRU%(PAjY#ydLQK<7#zbRe(LFjiLPlL8{?j|12i%;R~G>;*g zzxC1oxki&g0fR=6hbH3sOz*ZS`Fj=;7dPQC$szq)gWojnQ;+&s^gkk%a)XSgyj?T7}uHMxmc&ZJQN*AKu4rrO+uj6hCKHg|_ywNrLD@9lVDj!7BIol)R8v3?mBTbhvhS!3WpO+hF7y2IhV%W7F)d88F-Mb8e@=L$?%UkrwyboLOW!e2Tx zF0(-U(AObc`l&~*6yBzJUjQax)ZarKLM_FHmZs{91nVi93hDnUvAw_ccIw-x`gsoc z$>G<$FE_3St6u=u*tAu<&E zczn`#miuq1DvfHM%*8veCl>p~pLn3xESn1a|PA{Q0(qNx2id zGn@(g<+yq8zqf+(34eXGiKW|$4ucY`w5OVu_`DqKa~x|-xNaNlbQp*mGabyARki<5 zMee`%6L^`7{ed`Niy6d>S=i?num8%p6u4V1VpcQ!(I#>Ja0eIk*3|OJ7|EbT>7khM zW2-Tt5863hD_i5{FU@bz2pW)Phg_THhQm;^u3tCQf2jW5pS;*!4>68rp3)G_Y8XeV zsl(6Doh)*sK_Ud)zO#9M|gZ`+SJpnj(3sBMQ4Uvq(p)xuJxeam>dbK^O)0|cwjrZasx*6l^ zw}}I0yl@+yzTFcqjjcZCvq@MG{&12o{CM`DyNQ0x{YE3p3kp26B>FQ3o72Aq+{v_g zex`VKO@Y--eG$FclkTU*lB28iVC#XoapWQJ`eygZz78MN9MbRb`ZenK0JU0F7F&*Y zjCr+u5_sB466U*WxjNteElQX^dsQFiWPS}0(xG%sVBU7trOXt#{bF*F??SgeY@KrM zR@g9&(SrsM<}h9!9uChMLwI1v5rpunt$+1zq`&X;J-X9Tc^Xo<@6g8QgYj0F5cVS; zvVchO)3IOQo4(u^eWtJW#M5`0BgFImXCX`$kS|%hL)F)}-9PbCeMmr3VYIeFIaOAI z{_FCr16&!8>Iz3bCCl1`_x9h|345{hz`$okCUl6CUb7#UO@UDF`-4QPTGuN`;97$9 z^(e#R+zjSWk+{DabCwOnMBdor)vHATUm0kx^Mt&ydIuNU6dnk>Ebk7GP2LEVe=E8O4-t} z2R|7lD4jh0V_20gyjAT@G+&q@Kb>t)?(5&K-;}t2fF>K$BhBG@6$bk= zk(D)6<@@v#LU(Q2H;9lGPZkJqHnI|tTF{hwA5O7<|Jm;hPH>>F%WQYQaB=S&{@|74 z(UIhf6VY80Wk4~MW|U^K#3=$HswGyc1vZXwvJBo5Ncj_-`I_Lfk%P-mvPtfU%DJI` z=WAi&FAhK(~pYH}og+|nCAucCikK~H_C;o%q5&|{H`O*x#D6eCVz zaB;46|K{5G=-+AJF?<((igYz}EObBl#lBk&7ZUX3U46JU7l9b~{DHm>+(;R`@deoa zt*Lg=FyONyU8qKci|kU*;TIv+$T2$k?9)flYID(vT$3!Gl8Xe0AIFCgUiIO^oz|H7 zK33{ZeG~SvCYGnhstVP}UiypE$%`9Q*Xx%NBn81catseTbO@ZY-1(K5Fls3zT16Y) zen1oc5|9mh+OEWewDN_ef1guCbew{Jji5G9yl-+yCI;hl3&8&u%_f z?v=~qJ$7A%zKQK?zpx8-OC%S~XU(F&6>TYVi|e(?J9RqM_j%U!a3$Wg)Y2DTTCAHC z@LQ7?6=mht8zgX51$n)v>E>KJC6Ny|Z@0pV;Ljo&?)V&nXfCPV&efEhw z-+954uC06wZ#Q&sCzb77H9vd(AD*r&yKa%TAO;|HUEpMMc;stYgP^x);Bk* zs_NnelD$LVqJrWzeq~;fCm*hdT!U2a!S?!|)u$^Vo<(7cA%8f<$L05IAyiNe`qNe+`JJU>F?WTr&n*QOjIMK;^nM7~nRPfF#SEm*U0lpoLb^Qnb zRTnqy>n$D1ZgU5w69>Am_$}zaPk+}miWvR6+%>*fHv4k&iQS!P>Wvc1+W6hAU>St) zI%SfBoe8bjpUe-GoNp&baKMwf$-JnVK7gXu`63CX3Y7^4m?oamrW?Xd_>Gw;PF$mYSM(oR}fjh_Ne;Be~)#8iO84P7UtT68v?b`PEm*YAn&zq*I}`fj~8m0RCjhM`Wcli1Zk(5nnPT_t-k zafV=Gk;Twe8Z*EApD0RSU1MKbiXpw+LF&gYf5f*5N_ykg1cBG_Ys6gq!%2fXtw&nfel#dxJF(R(y}5v&JNBWdkc`nw#_6(tjS2 z@vUG%CREK=?Z?gz6BL!_*!Rv=hJIqWWe-KcD-(NBHyf3mC}iBUIi825Ad){b?LW%o zp&s)U>ssY*TX3#2j{1Lb%DR0ncWZgZ#&r!+Y<_o3@g=K~5$l5lJG}7 z{KoS%OB(XuuIZHg;dyxY^6t-3b-tdRxk7ZwTQjDNwPx#`rYzfhF1!t@Y5W)!5am(t*COmiEmNycq=5`VsS5@LLS*WQa1wmEm23*{dx z6ed;68p4L8RaG@M2G+;$G@hi&RixU8f3;&|R6TSHXQ6MazmL@qTu!WLOZpF`VQW`% zK2~*w@%myneXh-3KLrz+1OZ)zHD?tRn3ODyNMC)5yi4Ja-Phs%+N6rjIcFflGftWx z3$XOzmu^XA9>$_CtqySiy}vsG2NXn{lm^@{+V0&a-+XxFZqRuv$#T>v{`c!4U~EiC zNEYQq1RoAlePOYM?tofVmUpDtFW6B+yhSdv6x+2>C(ZuIW>Gp3j%{m+1PR(pFfmY-;_4_n9+M7s9z6n|J+#CGk_TPe zp;zukl=0S_-XW#`VE*To;_i%q`H#R4iTMkXMAoiD5QgKc{yz-H>jxyahcUv&BUcT2RFx;@0_ycSfn z2F*JiqtWDlx!{0#KjQpY;a#8OyC&dtDT7aW+zQQ}2_O=7OpKXK75^b00eDBx>veoN zf*^Q%ScQM&+CpeGSE5y^Ear0uGp3l;a&7}adQ&aSsV)t{|DfG5(5@z*`HOSM+y49Y z*paczp5Fl9B^tPl-M4!J0%m)U1k_fr@GwYEuZ?%3CcMUcamGa6zwd7M|L99hEeraA zBHoasZ7%VZhwGOiA&=^QE!+$$)2)1fRL{ItY{rzGmL`YvAcR{E_07x{x$AdS%GwUl zqRv-F?S=QtPdZenjsv;WYopwVYABJdOLc*rvBlNJl8Kn(eaMA5-fmw(y*7=D>9QL+ zx?S{a!7gw9qsqP5zoudw{tmKoo$;{Pp%F)-a5MzY&ts{18jkhVR_zckQBRdjlSeKXD zs3{4Ft^Hcm5OUH=h&R-NRfkYVgU>UzZFAbiEpFokmKOB9L3BXKHR=f=7^w-wIh2m| zVu&i=o`9HngK~@}DoB4e7>8&~3b)2Xu5Bor^QALGL_DL+2>U1SMPfdH029%0+2-3E zY#mNUJ|Minrgz7KpBfr0J_q6PsE=SG)Ix{YGDtcn%eE0UShE%>!q ze-)(3WFgPlZig9n6?7y~fA>%jq>YFJ1Z>8kS*gC34hr3p4{m^D>v3$6T<@*VW0>ht z3&Al!Y+Y01Dq{Kf+>*kJ?t7gTTjIK!?Qw~{mv-kz(AqPc4=?oddCW$&>Ng#i>m9vMQbrB1Di62sxAdaOL z@P`X#w@f3;CCPvI(bjbJDQZY=oSNdwA-X+iWqInbl0t{ScYPk;0^9JPA6kmDg za+GDx-d%5xwuM+_q&gb@SCl>sDSTJhaO}(8->gjzeOnbhIDmLQ5t&|gCnac>v;u$F zPnuewOxT1V;!7iI;PM+~;NHJ{!WTI?7yj92uFY7?XdJ(nEDu`0eAJaWi4I|p+}ZQO zy|>Ifud%?B?QR!2dg%6eeODGVLR$i~^d9A7tC&vgB_SsDat66$=SfOHN!Jr3N+o5I zEW4|xl2t50W9?BQI4 z6q#ZH^U+K6fEq~#{l@F_(cSRWrs#7g>xXU|krm0_$q>XZosm7)$z^NNct!c1{O`fm z7Bv_?XT(7OxEl9XS>pm4tOnfZV`A|`T)5JutIaPe}-D5y!-_bdOVolx*hMm@I; z$9t{zgarV$D!;q@A1L%~Iu9Sqao2l}<)N-WWdZhxemd4N4>xn8E%ITtSAqURb6Z*te zgPfYK0;%RjX#{%qF>z6e@7u%g@&MAix%FU7yamO{v*QV9aSZX0Pgu_8k$6r<@Cz z{-^LQ=M9M0IYhULVDj=jYlyStS8AHv=&Tpz2X><%SZ*qo>!0pdNzaK4mR=n1A6%BL zD)%0CaYhq9tk@v0mRSf-Ixrn@aR!xS_fy_*k-7&{*c#HgaqXfr7TE&7^Cr=Y!mn6%|X(jMTSi zvqmLv!KUxYnzB_#&2PfVl2ez{WJivLYJLfo0|eAtaO`GCS=CGZ;_5FNe*l?!?u#$n zVq3X9#-)D|!@To@)8RrbZtKkN64d&-;X={gmo|MeM6srQNtoOE;iq6uAEio!FF zMINM8Iva=cbShv6wt79B@nHZ7?Z*tE;r*M1fqVoy$2N$ENqwWAzq44wvPakN8x|xg z;VnL6XZnC2RSUP}xNY+mpW~=FGX!(%2Bg3t8gk?HWD!^~Z~FpE;Spz~1o_Le%zp>T zBrGRAUfD^-*>X#L?@x@9MYPJmyB^qYMck7ej?0Q>YNYF|EQ_6X3Bg#+0Qrbg8UOF?u zWJf$(*6+NdrvYMO4C(45X7+Su`1N@|&jtQoddU|ZS$zccl7=;$h#rWaA7aa@v}dc9 zM$yM|WI!byQhn*(@k35HcH-$SgqphXyf1lc|I|K7mh5FMgd# zG*I8-yl~r5yzrX0%^T%0y`t@?)Ju~AU_l*c-dv>O33DDKiVU~^p_@tr;MM-xn*P2k zWFte2j0;9F*Bf*wGdM02*rA2yY&HYuUYa0A;+x+9iw-4j5c+lPSCxG8&qrb zWb}XN=@PO;cdxl9DX!Tg%oJbnY7k~04C0{<1L*5!8t3AAv6&y_uZv~lZulf z=9_%0uQ49G&C&N4OuaI8jev#fTQ=KF_02?^QWEGFT4zfNjnQ`7R;7)I1RLKPonuGT zeeO9q(M;@(*mHor=er#Y>}K;fKk8DA86^FZe&%FQd}j{(mujWMg6x!om7reU`a6p& zFAo)THLJq?_{#BU%o~3VU~>w$#-^tqg`5E3LmTsAD3{OZ3=1ED!0^ zlbB{(Q~PD)`oSs`5i>_6N*WbXU^!)iZw}a7;e~ok?wjgee^$|0+Pc%$ zEH(Vh#+= z6c#6Cg!AVfcG9)H8#}O00zF5K3_Z$!DOxH}>F!+30o&X+`Iw7BlsaeT-0)BeE?8!3 z!SdOfG&sO)Idk%<>Sh3D46%GS3JYOT zAE%#WRZwt#WC8jF>JyBZjtxxiRzckZku)HNbX0V}-I}`iH^2OS`xbj@Auyd9R`wvb zbJFiwbD?`!5hO7+K1LXf4s+2BfuzuaUEu_dtG0KtL&UDLHaVu66|ijQ!>2^2{)FZR zX)=}1g#h=v>#vbB!!NcjA&+um>3hYp`?=SggoeF@;)w?<6&FWU+2E>Lyw^2_qzX7D z^)6w0JH-7jt``|8JkhALF<) z+;s&HB6>vHS6+a$chE`H&0QE8Y&KCZJ(6hb!lxQCh-h=%37%d)Jj}wb21!Tu6Bb8H z&YVaBoc2oZs!U@w;_=!LmfolSpL{<+%gFHoygZB#o6zQteMG#WBXHa$2dG>$%wKx) zA6$<2FpBP}3!wV!$^eh83!~2d2zJC9N>dvGM-h-M?7#a#*1=i8_BqboAava$! zDJkI*60)5U-YFxFCr%$r;816PHgi&*1oGk>Nc-BzK(u$N3BX!-0a5`Eigf+N9Ml;% z%Wd@rLdgF3zUQa+fHq=W)XH;!D3g%F`XMWb1%c-rT7I~$q8L@-;iE-X$4-$H)_A{C_Y> zY8J5j%-6~R6wikdl6{$La`_OGodkz zTBAyQ7`7wnn-L=;qrL62S)-O zuaB5&i^42ZR=!QgtKWp~MzVp%6vm=RaiwFjRnRuJShefU@N{j4n=u)`?oZ(F=N>UD zJlG2Jt{FHti1y4A6$`Ap`Kl+@RfYRE@VyheutBiDI3feX-^Trp4t7wWYJdE8tCT&L z83%!Mtq!l_y2x>(J3zShf0q7m#*6dyGU1ooD@g@EBW-Vq+7&nl*{GsaV&b_$PwW%X zP~;IU$>j+n(1TG<^jNB|ZGuyLa{`bdT!(4$>P*a-xsR&;6+~5P5?AlRC%J#4wL8EW z^smJv5JEU@4B-<}u!{r#xII9Bw4{IRyrJ^;?b|({T)i5t_v)`Y1D@UbMm??i+kO0+ znt3N_ULUCMR{mgr=iL`7u8tK;TplD5Sz3h7(ymgDCg>7E@=c$c5r_ADSdLZ{^SKQe zRX??RY)?-XpcYVgKHol@FgpApn1hp+L z1>fBBKHH5J4b>JfV}dYph{-#4mvmbOdV7O3%TEGu2Jr;obi|#GT|JnFRrnE~bc7a< zz1gW4b5EIm4HetY(y#Wic{n++QxHl@O5XEnxBeZxMuED0cii}`sUbBaqymw%=A{aS z_@Gs*7j5s<(5LTQlE2Sd$x%wNTg`tLV7?RQ-RlIY2g>x<(_j@&+^g+9!{bH5w{^ie zMs&A9P)#<^|IlOT-(&dfxi?Pj%$4(JkM$MuTe;Hy<$mLF6#X0!NR^SRIZnqyLd!=% z*LPQdW?B&mDtY3iRiN?lmt7WH4!O>#Q`$54Y?1YE{qTl4j8@PuCMG7%i+bsu#Xhvp zoubc!pL8O^dT`zMPaOohbL;VS@zV2aI-+F94$l{IXexUWNt)ZRR{uZ)&$7PKYAZQ= zyd>cM*@1Vj?n}sMRdue=Z(DtXeItW|B}rlZ!a_fFxwiF@G>J)?DKOuN5%d{mvi;IK~$s z#R>Ra3WqU>g@HYaMqN=HRARMz62ujuR9J}jWQcZ!POrS1%j+0}3 z0DdQZwU#7W(vUB|lydA$7B)?n~7^*hQ0f9?ZhS+2SPQ>3J0o+ zrQPj+5>TdJQnUhgV5?h+Bw*b_AYWM&pMyW_olM$dL4ecbX+9;yijPLmef>VK<;ZoQ z+i2=fktr}AWIoy&Km4sDR)K8?wWadR`e&-93W#CfP(Kt5&-m7tX(@1qvT%R>Ch)Q? z`IUBCrHp2XpHenQtMQ=0AEC56xikX(4Y?Mpd1Yd2$d={}_c9dxDGKy^3=it|MhOKX zf6--E>Tq_rN6DYfHxO>?&qYrHH}Bf zA7VcAZfa7a+JfDHS|cH<=do=!ZP3As|nI3+1gG64Rn{h zx>tmST_!6aw#***{hl3^7L5x|Z_Ju^0YJ8U;vMw*4+b#d zfT}Gg%`J9X|1tVg`%gQM_mIYSc-&YTo;Qa+(Kghax*oOojU4QIA?-`Sjff+p75X*h z^GQi%f%(Y-rT+R+@K5pgP1x1Xf?#MA7TAEHo|~`MiYSb?H(*4iFu#dmBZ5N39T)K~ zxYuMblhZmhz*r!pnFfR@O278LHyheuUl9QC4!SEgdf5=H%yxS0&rgh*>(Ovp&6R}$ zat^?b0Ba~jK)8jq<<5- zz8F^HD0kV7u5D_x53D_~1I?6mBRYtfN6p3`m=jLJ5|~+&L)TSDT_lps_-4 zB4tpl+dQuII@RNDw-@Rzh-^g$Y1`i>ADy}^eiph9ls}pR}jG1eDjW=Z59<@ zg)!K+_zH(&B^b-V4Lh$y9F6J?tb&lz{hCSB2#f3Pp>)IURPzIsp4rJRHo|#zBzb*Q z-hQqXnur;4z32y=Lo(e;CNv4p@Aq3#994AfFWzr07< zz%lVi{#(<4pWr!#?!+C;;Vy^hL%8Aj=LKA~57!vWDn;>JFb5*YiY&##AYw@5$}U|k|x~G`}lmn3&25; z`m8v;7R5I2#&p#b;RH*->iSMrlo5LTuAv?q@(a2fF5@HBoo01VRqPr1#UhsS%Dw-u zNVP>0x-0K==7$oST@i!IN3+EpGrgv3~xnrl-+9@?#_u z4XTr^(IJpvqSy6lV6~bW_NMKT%$u8&w{Ad(@^(=Vjf^8ForKJvQp{C`Nw&8N{DqArD$dMUIhM zg1vtTzVhjfec;Jzd(kSOJHv8vIMfL!6)!q~RS>i6OBiRoLmf|6yNxFPv2tu+hO zcxD@GZ^NyA2JxtLj<~^$tr|9F&c{UL=v-3LB(GQQ?%>=0QCRTO#OJG6Zn>>hwjSMB zHTCHx7hl;AexfIj6zyMZv9OjB;Va=(6XOcs^pP`k#;tDsiCqmLH87f;Rp+lE2paSa z_;D>UY*T02(SR-5x@%<0w2%6<(;HHJ7(b2ov9Dm5#`qjy<>Gq?8b}|=-V0vzdF4et+S3)1t6@QWf+E-z= zX7HkCqzPHrw1>0p=UzaAEh7Vd6gMxue%!|b{|5ydgATsG9~Lwbwn3-cO1)f8#P~dnWM|@A691?UIP($i-RX9DMB}M+NcH`o)TvzAOzy1wCW&FdWT=PD*ck#48vy;{lnW z!L$%x!z2bzs=@i%@T)SusfXci?w{p$7X8K6?lV_n2;&nja;C@6_S(k9BBE9&rL2t> zMsA{Vx7m*N!65eOPt5Im<$NV$)*%_!Y5fiB;O&*tciwlM{|JHs-)uilju}4zihB#P z9Q(>N*#2DvC-9gu4#!8~z&>aZ#MGT!ct&$&*vUjm8F#Xmw)vQ*(?f9qTLOzrafm^(9 zk*P1S>d>Unhe;_2LN9Ig*{1vav4L}b;{4UkD`ncaFL8G?S7Eb^MMrV2S9!?07b$kH zW_fgvZx=6(1=zM$3^@i0MUgr<(tZ^41K{-bU~|YXGoV3`{nI)Pfdm9m_m?_oFGJ3r z;@y=m{O4WO&SBe5$~fE9tfG2l5^h`%oAHAg>a*C)-|QRLuafbt)(CiPL(Admfwe{$&k=L)Upp>M#rnbH-Qb3jUM zU>)wY?m1tKlWhL&k^G-dSRgJRkbwVGP~vf2!{Z3}SOfoT_}mJbx7heXlp`zd8TKjW39 zW%_lh)ngsFzu9UGaCCmu8yjsv(!aNwSBP>my2I-?`Dz?3^!)!-0#T;D#;IRt-b%*4 zd;c*iu?x%FjgHi`&~>_nUIe=xLg>^ol4lxza4kRo(PQ5lk5AKBW3$ueksj0wvV8+8 zJ8Prs8k8dRC<=}PcI%-E~k;ZIoHkxO(mFW2Jt$A@2dX*t+I8hL*`sj<3K7d^S zlXZ_#Tfdyt>~_D_p;iTARQ>r~k5@0h*eJ?EF=ZjT*=DKkGZ0o1SU)Qlt-Nu01EP^P z4QB7&lkLCnLSLZf4_2LlD1s=D5OF*w-!0pGxrrilp4M{M8Zb(C*Ed(BNNZhoFkA}$ ze7ZiSc)F8B^7#0M^;;PP1c1<%>LELOC$F< zNAMta8{d$|Lw=HHwziYISj@1w72^{}5;O@Q?L!xL8|f(ow|;0B_v)5 z+7(5<$%`=!>pE|FM~EHAZTU9NJ#yA+v(WR#V^db7+f9n!wO%9aC-6PStWwn!@;&#? zYGvi|Yj$7u$CbV>4#V^m%S33Vlxx~ic%SN`C{m;cBz?22mYKEWI^-H6okkWhnlpIz zvM~gqEIW|6Y^BWytdB`B(7V7Ce;mUClp^vZnJhKIho;%iE2sW2@8tJo(70{j| z0~n%Ct@wQBQ;X%+cdxWu9RP_~-#OoCB}Svig&F2Qo;K5P}g;!rEJu+m3PXpv%gEPdt|U_wT~@ zc`hCu*wt-e1#K;#J~`jsUlvAX^YVIaKRGu3!Fskb-;}NKoz3b*^)=~UGuZ~pWfy0n zbeOYogaAIA8$MWG;GpfR8=f5cJ~K?65MB|i9dXW@NN(^E~Ly?-~375cD3f&CEX;Vy+P`0!88nk*pJ)OPcjLY zoIJd)_2|V-l|&$>ts}YEJDcgfZ(Q-ZG~bGthW>OL+QA2^4A4UI?DX1?d02D3=VH)X zI|S%Jh~AUiT$jrgu7J4(n*kHxUHN>=#3~lGz(e@@C3M4of%D}k`sZ-lKR+VL&a#*p zLw+VMTVh%Y;s_m*Gub>lliZ!j(H>9nG%EXmH?rq^?qp69 z@a456$87-+5VUQfk*paEDQfAox2_GbO--Y!ck6I3(Uf5OawR%kOqhX%1n#EHxVlO>pZUY0e)DE6q@zO|bxXQ_Ugxo>c`xX;x+7U)Q7;xZM)`wKucBk> z4(!fp@a*EpHhYmnp^e_$aExZ!QR-BNkr_<)?Cx&ji1Ea+WVmHqIQWkf88~ZT%yB?8 zZnPDP`}t~ASM;L0rVK68QW}2Z8GvaE$ia~0lPA68&NVQD zqX+5T?<#cjI;3y>*`C><%rGw9Gz)v#+0DICI15Gxg8`_oV62r4V0-GlX-d2#62wlS zakKAklc=zar7N~|Ch3=bFXxi;1MlO=;ovi){x>ezPRcqg2CV>ZChb}CBqQHoHe^tGS*h3|$Vedw9)bGvL1G7+E zDQnIW*vv$Uh)(@^ul@FI?z4{*;@)_5f@AESWaUY}H-F}ixw~a8+yWsf{bsjl>KJv^ z*IB(ZNxGi2;mkki%_)8QwqMIxyrvW%yMmjJ;s-^-=1*@@eENu$MVLV;9CB~z&%Mj1 z_vq#(TUmv>_7G#0QpdoO;|}~(tD@WjpLVF&%j^@#@>}9!ma2;5uUrvYQzo2UHi% zM?P}XlO$m4<@BtF3tVz@{?{(cMKlP0e&T8*bzXo_*w6imatCyLVk5y2#FBy?=2 zN9QVz{pi@2h+dF-J6dwzz)Sz_6{3}YhMX0D{{DpLptVpY+#)>w5%$_3E_{W0-KAzt zz3V11oZs3gJb@KX^W!(RIwnriH72?=&Px~CNB8cJiL29UngPfiKK zK3{<}nC@P8htU9`*PZgt87`D(j+^x-O04NB!p*_o1q7=Xo{T)7t>t75x9RNM87B=W z8%^X&Ut7~y;17G!SF~w~zF!kx*Lmdqd{@6uxg#yYI66x7%1%X7XxsFt30S0HLGG}7MkZYsBMS4`&k&PK!RQmDetc<0CsM6ooMo#O;Aq&8?5K$H>1-4DzGqiha%j_hJ} z&^^0E3f}Kk_Mv*C0z!NNQi{w~?ThQys!ruKyDMBZ^Ayqd7@z~RHk)RGWO&w%QFkHL z^M>r|OG<1oJe|AKrU&yBXLga+*nu$>)enfQS~wX0#A5+v4nU&XdpIsCAlX`}Q}1{! z!t>OKPFHA>w9D>@#53!&!CSBg7FhLsG!v-rS4t>PT{7{ioO^;6*f70gHyjuzbgU{E zb**ujkq-vX<_@j{Bdni49mZ%l=S19YYSihSSQnn%ZM=7_^Bl&s<&`__NZ+gdIQzFz zoWR^Nt2xWmlZHh%Pjg2w(0cZk(Q+`NxyLX?!t>K9;vDOrV{31riQ$M?(djYUdgt7U z%D}^^nmwDmRaQb~|7dDRgI}qKPbFmy1(H=|l0aYgMGZpDQ9HTQRJEFf*)`8wDi7@C-=`(?WV1jT)tw@LC-tQK(Z!TVtZ-(ZY5&Bq+*0@Zqy83DqSt0S<&=(3( zVHtNiYntbI)S>J%E+$RlPT3PT7AL~|0fP%Lh1Zm_f;JohU87elZ;H>I*JCL&s4c{h z6EMUU zDFuHgQosF3=39sJe?{6$%>nvd<4hv#i*f5!yL6SYSU=xRv`C^q+mhudvDv_{*U@<5 zBEuK^GA6UrXjDxiTfd{NisBMk8u{-oDOvmUw<oYMn2L;d58 zY;uPWYwGnU+nQ{_lzOCEf*-Uc1qfe_9WK#(PU~0IamvsG0N^kG}Qk0cR3EueV1@1P5|K0?H z?s2-&L0L2HapG>AQgV!Gud+_!kMek_sFDbiSy8-WvI!};Wt>ED4j_frT_V|t+vsY? zqu*Eo(J$bTDi+Gm7{`4J0lrsYJ6YQ)SYTy4D++9LZh+OdUgt*=Vd>*rzhuAWyKHN* z>(|m^{!u6mKeyA`YZB8MFOwDU`BhKuj%C|>s1mu}bv0$2)6cN_Cn^Jz`bvwiBT?pb zK7)Y=*Pt5Mwk;>(Re8QUo2jV6>6$k^5Fyuh$eFt1D5ntFMZTQ||3H%xf*BrTgxi4r zzBet38OHMInFwo($^^Dc0#2tbV-U}D?xMl0& zMmEVX$vGZv-lK9v9NP0C638wyuRKkcJYt6OuceoKvTMMOYx@02i!t}0r_hZAJ{qqb z#LrhZ@7R(mAg<6}fet>utT-XTH29&Ed{GmQI$hQ8edTZ#<|9c`j$Lz}h)I>J(kcq) zj;Y-qUc9!~*V4|vIVv}+!md?}2dFs$p!KYD*$xf~x!#>9#(*&i+Nl5@6hNL&*q^R+ zcWbhYgigrm!Os1uHv@%0E3*-Z7(?V9EYrNg$;uN&I^_u-PdUOiZ(8Rg=3OGF{dldXD}fA zDR;~XD8n}vDxXcnyBA<%y!1}HoL?ikZ~%AcdCiSD zPMa^ZDSWa&It&_7$o#tKQhsZ^c5Sl7TXdpKMdMaE${Rh9KldhnkcqWqIWg=|m;tRgpNG`|c!PDnX{2Mg3ki0r# zS`pT*6C^I5EsnR{>PH>zz*XKA1{#4rWEusM8npU#r+&xXbfQ0U^ebRiu9S%iaX3@X zl-d;Pd!nf9BieV{ufp5pVd@4?_H&X52@qDHR=>?vl!x%Le4iPU$d*2}lGN1%lQ;6V zZ7&C|)-sy##a{eKZ-(774W6B0g}j#|Y^Un4L*{{~*Z$rm-t#>A9bAsfy zM>iYArwD+#FR*bAw*IyB&8&XYNr=aOK?-olsO97Mupz+Yv&o9@?yHM^Cd6OQ&n)EI zSRP|wBK+)3Y&cU@nNEGCr4<&hfMX$!~^UQ1uxjWZJ3c*WR!yi zPp8e!4>1NRe&SQ4{_*o-h}~Aqxl6%KJd7M@>22z}E(*00fIzToT|=lAC?pc|+U}tD zGL(nQKCvhqKA)lklKBKNu3~S}GEsUS$@K0VJvyqVYGW)3*EwJC@qgz!TxH6mLZx345(rWoA&Pj(8|* z^)i{LDr9XgcmlU$-m8<2@^#=u?r{LyS0`P8LSWs0}G?raC`Q1u6}0Tzf$*V)S9|s8TG{>IV)%<-thJ94}Q!-kXhqR;?(JH>_!Jq$Tt>WohJiz=tw-3&4O`d)vo~wG_oQv3g zZPQkT1WqFCC|+QFnA$T2SDIic0eiB7?JbtRCW{T8QwN}mo_?!{$V2_yiK%r27Q(o6 zvtdj_jm*?+9SCH@EPZqL^kXGd*F;RETjsBq6cAuh^%HA6NP6ac=6pgZTlNqR*w<1+YdOt8`||R3pEgsSex?`QnJy z*Vn)71DC^e6&Uy{z?}8+?s&IC`Y?f9%=?#QSacTK5< zm%6|>JtZ6w$u|DhqIP32==cO1NbnHxxCYWKvtBIMDjl9!JSf|q!q=(ByVfq`OUkJ=r)dO3oH;n=I?jgiXXvEn=s z!!G~MbSrp0>FX=f)sMn+MBplYtw>!;Wdy2px%KE%^k?7Co}aF9M$p%K!jsvUt%+$c zBZ*V1_4q$ebGPQA#ir277Q;?Xq=cZ>iVr4tUU(eT)etlS7886p7a&l~bJOBccmpUL zTD)MNu2EMi$C#)2<9A!%m42>@Mmh!SyOh(OuAYkp=hxgzm+zxAI2fpu@t=Npt(q&> z=SI#-X(Pr{`JjY6Xxcoe1${+{EZQG<9}R(AO&-_X^x_1JV0<6>`nIab96cM;7Gk(A zCuIUS_H3;Z0_{>O3BXCahng%l#{wI#dgAyGC;w+qdrMKwJ+9y*b6&BQF942?*VIrV ze2-QGPf20_mhwp2(77v(kp= zb0hV)t1ZQW=t+!IRbJ80kL_49KW}p*L>vxd6UDf;$jS^NlnLQPINO#P`uZrH+M_jW zV29+5pbOuw_w$vENW4=QCnk0sVapV$WZTSABQ`(UB4JU=5tn!`lu$7yS*5F9lYDXbdTTQH_Fk}$ z8f5Op#f=bjQVH8;3;sn z-0R}1V-yge+TY**5FRd*fKvO>*Y{fZZ0TzZSgl@aGaU@-rUh{8W!l2%`jfelnNz^Y zDseQMz21z%#xVWn;$j?jd_U?x)na?jGo3X<0-Q=T)Jcy(L-|5Ku&|&@hVXJrEhblY4FC`;+Y&B;tuBg6SDh zYiu5BDUKVJEPZ5iKr|k!+L0kkI27u;qfEM*8wfS1XQy8+Ali@qeHq$3rc zsCd`0#TsO0Vw262pK_s``BZ@h@$c8;(%-&n8fpxT-ItWkyl?b`_z6BXiM-HQBM_PlfN66DcU>S-B|Kn$JItR zIh8FokfiT~)&Htv z!Jr|1TXFANylXML0N{vr`6-rG)en?WX^DY_j5f>r(}>+uAC@6+J{&H(5IOVcTa%v_ z-jxwlXa>{mc^~%hx3{;8BX_26kdZZAX;wNt6k9p$6>CF4vAC_qxSh5q$Rq!crn8KS zGV0p!3^1gGQc8yc(nxnBC@BmrDInclgMdgQEgdS|A`L?~gDBnI-3$ZY!~4G9k6CMe z4Qp|p=bU}^zVGX1g?0=iu|*>Pt*6yw2ax(Y8RsQv2gCly%A zd=;vaoScp~l*OS%fGz{!nzYhcc=IhGy=0E5H2~B%Ft+?n8__OV!RaP4L8)7TC2^~c z$~c)_F#dRt#*T^iP`gr?@*mBk7EQM^6t)&=72T{%^-xNg0;jk=o6UjY`wrBK0=@?s$@Lr9k!7>8QY>2`*P64e*atT(_bHm0H8^NT}lPH5MJdO z#$YipxOq__uae9kc_=y88sTG6EA)>uMul8(ISIewD5*QPj^qY5$lNQM;D?#c<fN+SJ&63 z{|jkXRVC0aH!PYCy!4~i42szWSsoQ)d9)KL?>ATQ;MM33xItklYfTJ z`LQD}-y(jHZD2yY+ZL+h^qSRkg#3ejFUgWqxGquk9hd;fyOa`BP}mTn!HIw#xwQDY zx&~RYLSk(eWgHA9%Ym@_)kShrkZpb{SBL(Z%-okjk^H2LD0XK zMIXtAIqA3vy)NHtE1s{X*csNa?Ar_hVu{X@Ok)U$O0R4|E+*T0z$w(q7Jzpj&?SNGR; z7yEs~6VR*=shHqE+CY=<4ewt+{+RWaR7T5L=ziHD8l#Ow><+oA>uQOQ$@w+F>AB-@ z6);-pzX6zIGzi~C#AWUUd9Aa^HQ%EH!qIx1eW4embQeZ*l-YYIj6h=(+O=pqk@!RB zOnc&k0H+4Sk3t3XJ{$+3ffe^9KAbVykct^OhaW*DJ(IgEohA<$Vb#zKzm-=aR3@I=UB@6p(hoL-gN{XWXo^ z6Savh?x;$>ytH$lY_8F4kO}P#<&+$0xQ!>d&xs@m%NV2@fc?SPWVXB_QD9`9)pPwv zCMjF>lcDjFpxwzJ)6OY&vme9jW+<5B+$fD^7wi%tsW)C$r!*wyeWn565OD(ym6iWw z6Pqj&5KOwn;ROOqjB$Buh!A6pqU2TZiRlar0vZx7AD)lqfDK}zp&soZ7_us8Szc(hFyPcB8ON2<5)zWsRRF2!$@84GCSJ@5~OEbYMul6f=T=Z?#i}z z!4PLS8^OQBn>)@2S(>*|Q%~FGT!{CN=#nLTJ_rE2JqB>Vm1|v3#?7;?SD)E6{DJ`S zWvnNs5rG8zs-nLQXYxcig$1W~yF%)o;Cj7PQixG#`xc}|$E159>6na+R>y?7f-qZk z(^CGc(*Yaqag!6ArfoU~F4<56g8PVd*^))rit0PAc+V`A5S-k?*p(xgq3 zW8FHM5oa`UWDMr#N2Vy>b^F^BXmL3(CjdHnEr1qJzz*bdj+Q0>J&24jiCWBBx* z93C@na|!~9`zUsr)wD;wkxt6dyq1aByfvu$6uJx`9+ew>BX$}ZF7Vq>n73E?m8iCR z*o%Xx?Px(=d8f7jAR(eYM@5;6%5l0wW_9DwaINuoauMtbehJZq-K)FvAE@dEB11Oa zS~6XJW(m=+UNTiG96;|@MdKG92v#s50g<984e#7c55-%|Hava4696SAtnkyV4n$p_ zr$Nh=ggZW1c|*K!Cp#IM67qmmtZi)qe6cccTXLXdCWP!s7UV;eoX-rfF0}wnFF;h> zbw^L6bL3N!#W^wwz2hxDukpJ4)TD8KTI@#|V=zB_PwAOHF!bl6rG3AgavaN&$`pZ} z>ta?C!G&eM!~0ss|6Oak&^6$c2dd`oB6NkxH%|PqRG@#X(voQ0)1A)Yvmxu>Go_50 zoe+Wg6qU}5CTwdVk}Fv)8Oa<$I>wL%pAx6dC%#+s`=>fZ9W?d=+e6b9QG?%V`_PwG zFa~Vu-u11%o0%)AG zSK9Hh*m{uZx^U!H{(vj$k``b}+F}d5J*>y)!+O(Us0xw1IL-WqbGFyd`gJ{9=^?G8 zHYMi`RUyz!90*q6T*|Cgdgj(^)$99c2nfSd0+!*CQGiQBZ&uC9&H_bl=-#t;a(deP z0n>Bmw{CmP!#w(Bpq1*?D+}j!7f7IW>~TD{*E;kMQwt8@cLvPJG&2YF)w29_n7@3F zlA&e=whaWfYH%o|rOa>wnIUC*4t~4wnFi^AE^m1%sFB@tWHSm!L(4#wSBbQAwX;Jn@qp5 zw8=yf8!zGh`t_86J1fAB954qOilzb}D&duu7G643a>38)&9UvNV=6W2<4-|&+=qAG z^;awM0f6OBqE!35IbcKC-i|vj_IDpElX!Y&wP1Ee+ zcxhhZ+hOwJO~6W9S61@HW?Yx_^W#VScNpeY&0 zT>wnURlFVrJHmig>*{na`_@NEMPg%kre?rH&~Tmel7iuukuMfeU4+%OQal2jM}wCM zsGMG`LQUz9)nyaad6jF%wg<8}oJ;S4!*8)idVkY;LE1V!dQz}0ru{AE>0a{`r_QZ!(<@w%$>590HTN7ti!|vJ=JT z$}7GH61n9W)a-pe;VlCFw4c|%&5DhcIIwDBni-Eq)ZcrOAS3%`CoT^sfu^Eu^S?s;9|0gRSZE-))vk)3{E$evHOic5m#>Yw6%z?E+6H+g4I+75MzFi^`7fhg|^ zsJv3OuYNTGXz{)LPj?lE-*#6M4_*N*gp!H$B;MnG)_RX-tjzelp>;E1!2PqSpe_Hu=hU0Do8ANtTb%?4r!N7c9qcax9r6FS zmLo*tkgZcfr+e>hkKpV|!$2|0Qz?NsuHq+A9|21*7FxNM2~rAvNOiQNe!jU&UEG@a z_fjoKsBNK-*@9TqKdn~(OY}HRKGR#IhXaVcy?K}Oce8)fX4Mbnl8dnPE9KH(tX{I; zyGtV?jMQu~3p3BuWBR*YGmK__8d8z?Sr*adFa5`3k^+JvZG{3T|()mz8O`{yV_wdYl> z&BOWW=BjPNM%fbdqSDn__Jcjk^__qcrc!k8f5jjs=d&;8o0G`f>gMH+!L(d{Q-Rb! zLe)GBXdw~ro!wt;_D`tg0g-(myS!KPO(Gep$pKgS<0M?`FR6r`TEz+4~j8M6-y$U}P^?@Xq8kl>J5l)o`}c!WR0s9=0-#)LFIoWj&x3oQvmwR_Ugr)V-tw;oW7I}haFutKU>-MbH$Tl*?N>Ioa6QYp?3AGT zBjQ3SkY-it6{|9tnT*;i)6v)n=M^$Momb@`5TKEaa0ZQ*yNLFSkjM3WCj^g`bS}H( z07Jv$yO>K2b8Y-bMk1+gqyfN6$OmwEgi%Y#`M>g zui)#4_jAE1nn1D`t+oq7;|aJzTQsszDpzN4WGd6C{vRGrx432P4E|Zs-`?HRBtA|d z{@swnu1zr|mE%zhfZu3x6(HQqoul4IxX$4| z?6-af1t!}C63e7=#xA~O>PvSR-qf)AWD6&Y|J@fv-{=yX=)M}gf^J`U7^BbMVThm@ z?04hb$?7>9qh}6&?2Hqy&uO)uk{zLqZIotM48p>RlTOpu*1-tL!)w3xcA4-}zn;=p zOy&RV7maiUD3Z+IvH>6#dkSC)DWXg9Yp$4}#xa8RHLNusV}7vdBmy~G#L3;pwEW9? z*`55hei@T<6ljJ!-4%D-CNC||GJ-UQUoXS|+I=bn?hG;1;@O|^8b*F*tkfwyAgXxtI~3b*d$veM;+?LA#HboeCh3kv2yW6l3(&7_T|XhCs})$WEW@zGS*-M|Yl{R#m;G|uS^8>yFE*LpqBRO5 zH%*3icnYta!z!5j@WL7O5oppajV(=4wjDjIy&3+?-z5YWx_R>9If_2<~Y3( zKHD_TWrVmcA#GP=w7$DPH-7kJNU7Of_pd)7S;Sf{tjAHIMN8B*K9BBN?zj}nkH&&q zsq$cTi65Nq3F-_nex;-TGQ^JB2~`jLbN|u%;7E`hjsP*>@?3-eyBUXEy(uF#l!E5G zk^GJLArS^xs1ZH#feYNzJ_V|+w7W&}=&#GjE3}gwWIh3dt1sB}dc$n#tb!aXZ{~OM zgya7ixhP>Z`)ItQBk(G*@dT?|@V#M!H3;vqLf_F6RXQ@D0k_0+oX6cj5efU1ra0{?sUPCm zBRaqEbV-Yd&!K$rdkdM9A<05Ee|8+0IG2KJ!B<% zxYWPvXJiLPWQl6Uih)uWM(@$=INAaL{yaix-Y)_ESrdWO$9CEQGjON@K)qR&Qz!{nda9Y8$s!MU$1`HARt758g-9O#v!Q1-;=*3))7 z{Ku_}DQnmu<-=Xj@-x!B7ydlw{uI8%3=>KJaX;#`|E&H#%Hf0(`@aJ7KI-BDl$0X+ zxxcF37@2?U;bv{$#6HcZ55nFyR?u(QuQ?$9(wv7(eS~qn7#aSh2%i`= z$k*CE!*jd8c?%>Cdo_7p`uSx`4A`&OuA(jM&j!^kyd#X-9VaGL_9i01kb7NY;W#Z$ zeuRmM+bdwdbDf%fqeKZLe3jff|FwO=s!DG+%+}YLI&RMGeySB<00cK$d(TM50=NSD z!L-otRMtd|D?y~X$8g*|-z|o=Xry=LY*72T0v#(i?n6TARJ}P6*%PFMkeOGz48WZV z&55>sEgqQj2HkuFvFqfw@D`wGqylXMcFbiiw{;WiAbsF(jFMwhj@jB|T>zC*_iy^Q zVJ256%TIyVWnu1w3AB`LE0dmdzkfpuI)WCutl;!_NwfDJ{OUCOb%e43JoXJzCq5hQ zAEu|sw{n>XaW>D1A!s^$3LOf>1Woj)+y0IaJ(KHh_^8L&`xPZd_yf9I7LRxW2<%ygpYR%HG;(_DhQh|X(}DFU2Z=? zS}k^glK`HcS}4vbL6f?g#mKJS2Xa1R8EvYoTu_|(1U)~6p^!gzISg#XilEqpo`%yw zK>jF8k-q$QL+pa?@T5zHakDIXRx^ZjDwZ@9=Z%w2=T#;G{JI zkAkhk43%d`5zO#+ik8NS#`E*f75Hf(ppRNrk2_FMR=54UHUwm+#TUGeVHuc-#CyQD zPo`uVV#1&zgU-aB{m#-XIY#Y+ka;RjIO(j5b>y0G9(w+Zr1p5+1qRG!fiRUn4ncS< zy8s#I+a|(92Fr9zyd10g)*GNVpbhUKUpkc0_o`sBNTld@S6-oiS@8jM4cKXqyDoWD z-(n{c2#HEnQ#^ZGq_4qocX#i8z@@yv{R{}mCJ58qlHV&Ds525uA62=nWpg4kSzZpk z+HCywx@lP)oi)(Ib`h!uc6{02?{>esoWeQHc{d30RHOX<2}O9>L-{`&dR)2!pI&V7 zXb&tf%Fci>XCwipr^g>=ijv>N9NlFd9d5asb1nVl(v3Ue<-Vpkp;`Ba^tZ85PeVY< z4L`Lc=X;%!C2=QEeQ(&ns>{E;cD2OV&`>a-Ik~+^=lf2@hYk1`0Ts8i*Vq0g?=QZ~ z5hc##>~S%>lZ01S<~cfC)=TW1%`_5*K94TTlHXqB@=7~#6Rl?jN0cnRe<1Q1h#WK> zhFCa=!HXRy%g`-{K*?NKsu?E6Z_9s#TnUYQLwD93iGB+5&o02ZT46R+Y0+7^cJ<^}<|G-YWXfK*ioVU*@Z2B~b_uY{{vnHL zb^`Rsrv=uZ$IJ=i;f5eOx+>ldExR2-2h+LiC;U{Mi4c%xptlqsM*_2HGXQEd!Mf&f zwM)O9W#~&_@T2VZ#N>pxdP$3`EFMUiEeb%m*vY`z4)pvvPAS^g!$?V4*6xuqHY!8769Px3+%a_P+Uze9fRQR`gR z4*9;nvK0Tt)8{)_(-cxABumdgtG(#==5>bVTj~IX_-YwT`>KOqJ4t8GrdBtVN4AlZ zz^lQ+S*dvX(Jz}H0p%_vM-gmRZ;K(a8ef=O$iqgWDe;K&z(9nDl=35>HHAzrZa_LL zX8qNa=X`D0o}P?3lsTBCb4Rrj&~%d3pul)EW6SO}v8~JRCh0j*Z%s_{?%kAm3MZVc z0wg#WTG)0s5MWr(-E3d4PH_vkIG4h0UX&WVb9h3u_-J;)pAukH5rnC$3?5%vaWI4E zc>k_yD(Ulm|5=UD0xcz}R(zzQ6LOD$_O}A{gkO4yU}H1=w#Ke4;H(JofBKow!w=LX zJN-MfWMj@nk0L~}@)kVaj{sR0mS}DZ-$|`vJ>Oly+3M;_unpCf85Q|i>olAZRgL5A4>yZJJXJ{G zawq12;j@WHPZv`#&%SA|6C&;?kv#sJZb0vNJ+CgWk5JRD_=y%Vk8}rCC{v5ls~~Ff z@0(MuPCWYzKtO1`z@rtIPDvmSNDfl1=H`MIV!H_Nrx7Wf2kHK709H70&9b^p$aB*6 zbD8;XGfTub-D~)pEnrV+_zV7Ce{UgB$fxlijMxLdV&e&<*;4OlZId(bERyV^_WGTO zc{?!Oy%V(k z8PHs3ThV)vm%MfsSok6DBz!tAKL|IE@rj`08o&@2EFT_(P6wB7##^7Jww5yc<)R|tvfMF(PgXrWP> zB_ZNpy*?Qy>u4g`0hq(4|2Pf&ynm9XW>cB{X+20JQ}va#@v5T7P^&FceRELcBfri~ zP(}rq>vE=hk+B@BhU-*ba{yRJA7ny$m*dd@7l+fgNwt&8;QGour07R%Cgvq5COIVDrb%3{KNcP*G zFejRz52-zs?Ee_|UJOE&0h)?MO90Y1Ym(~t(AAk-R{kB&drqT9%z`{j-Y{?z?Qsrl zW?RkLqEAhejvk_C1y^HLk~LA+A4(**zHi#_Z;m}^BJ|pMX);mzMAYJIs`%V-#rT2l zkg<67iv1!1Fx2~1cOBH-zY(>pdG07PJgCc+V((P_&QcIiB(G8Gkpe7 z1vQq!{+SScvUHFU(FtG)czPSGh9G~&!pB)orms@X^->V0kK{L?EIxC0BJOscEFe2_ z@Nx^Tj3>>f0!70nO+O30T0wJ5$A8MJa3v;dNRQieG<={j?mCM#0=QhEb%B+u=;N^H z-ORyI7zj^c9omGIEsPypxE{6UU<2asu*q2}Lu03I)jFL4+bRqIm?x!ZGcW5--}bCyq8fqBg%uaaIcXx_%HlQ1|Ce)D?bbi7%T z8i@mP5?C+YaCcs=rzj5%^@?h){W7z=kqR~6|w&{i^ynA%eRfDb;2qw;iDK!?S6FX6cX*46>2SZXxshO&z)4Lw-4o%nu4Y* z#&}Mobl3p=>_5wM7lZvA45@5vG3=!^r5pt^A~docmmS!!(fZp@-aCnvd*?LXi`(b$ zW^Vw1wa}Z)l%V8mTw%0VrOmO=bK)3lsQk#5)I`gAo7Dlle0b=qI9tc%q@9LyJ@*(0 zf5pVYYqwXxbdpYvhL*Eq3>%K7XA%61Ej;{t8jft#90qcW(hr6%%=xxFVCqqE=nb1J>X zdgyQ!#mxG6vq^gE*05N3d({#xFEV;d>VZCzOk+E`9g88pN;|@VOwG|bW6`K{r+Gdf z;&SEYPd<;&ulyHSy%;59fa4)cZkWr4l_?1wmMBIay@_TNnBTVM`h(XB^jaS}eu{jC zx&kGf0@KE0yL78#Ew*J_t}HB85pMkxKQkM9jxK-i@!|kH+dIEY@1*?zfV#=u*!^+N z;L@mjH=g*CYs2X6>DESs^V}lG@#GBMF7N$AMC`f}^>_U8qE9Jw;ptSoECgS{2WqPq zVjVPuQCP_kbesd1+d~kat;R%(;{RU#H$ki~Q`-r-brWZSY~wLxs(38u8FNqqEx1Wb zCK>quz>7(bT*@c|kkLQ948)X8NFU{7vBWi82|L{>nP?D78P4_1e;a!7B+HNl%1Hjx z@i0rg)YM*hv*?rOv6;a2tmVFNme}XE1tGbHOl>$4dAQSiN5_^!Ei_uUsRc}(X!`W@ z;Om29DEA%gK|`X9WTvzGv(JQHTxVS|;lH9jb3meBKDFP$U#yBzVCJ>DTs+%=Gl8ZIeuxk*Pz7fPj_A7sD8GmI zDYo2?Bzqqu)qBUwMG$$dZR!3_lXbP$vgKuE>NjTm|+?29&NV&rb<6(By)Pr(b}5*D+P~?u&JSv zYXk12!PCzt?LBdWs32yUMG*e(FLojLab(VEVNo%Ux^B% zLtk3+T3CwhX~wsrM_wFx2#I>w<$6j`#NF2;`7hJd)%$*#;xvz2M-7h(LTv-vq29E@ z3?!9JhNbfI3YfP1aMi+$(J~Kv3pnL7qVSlc1C6MbfcH0(acm9-Vjp;(7^{ZlN_`9l zic9XmQNM1EqW}eK$A!-0oxnC_AL3Gi3$w0-bnrmyuZOxD1~_$p+fVNv8pK*~tY~9e zA*v^^!U%ABxhOfCeBt(T36JB?+k=Dp6ZC8y4>GV;3G(3L!s`Hi=;$<1a`gv3S5cOl za_y(dwF+!6t7eU7PL=8>GtYA&${~Rm01P!Liu$k1BT!Bt>TXLvpY3LHmkYGEAXq*Qz}`!A zvy?lY+}uT#zMK3Iw-7&C{qC(DMJ>*zu@E5;AZL?1ew8g~^G7N!aqTWqk8O#xWG0dS z{C@>~TslWR=cqkC(R7j5CJzMsxZ6&i9L>5&M*$OHlG}p1gvardoOGiJ;M|1E6+)?n z&x`4hy5=3F(!sEon!4G>G1}N1p6|43Qix?W${c_Az;2 zfU>_Bz!g1t0wj(g#{%zLCK*Cv@b> z6!9_1E}XlvAwxHPzJdRMlx~g?hj!;Itdb?P8WxQzCv7r3LCKphklo8Ubd2=*cH02R zx)SKN;f+2Ia7=1)D5$+nxJ#O=jr6w%T4}c`ck$-+12)HNR_3!&& zmfsnDOpZWV#_*2;^|PMNKGQ5>ACej4PvpFe=5)qV>GpDzJ&%Jx-1SQZg+~JnAhE3v z1_{`QtO7raDM-aGya~``5<;@95V-b|1hmP&)2{ADFNG5P6pm-a`hQ!TR%GrzF41mp z@+|9`bxe|iepW6KV<(^`tJ#VZhY&k%9+YXIW%=Q<#Bs_L>oVW2P8^Fm|)}Xf>lbX6T4uTXo<6WOD;tWc$8C zm-MnQ9D5QO&~ql-U2ALjASey&^+bxXa`9uG{pr3RDOji_F~+$im?JN)!@zhx1jBSX z1sDR0{wOlhCOgU~1RuRwFFTglp87g0chOD0gFHO}pa*6ZR^7OW&BlPt+NMHHta>N# z-JP97i`nvj?fDHhU{NGRTgdS;Ef_!L*a6|qH5`WjVbMCZv_j7gzy;D+3?$vY%#RR) z`ZNi>dL@}#?8RTQ$?`9$sHFsaKAtcDu8G*YHj;N0?v~^(fhgp$N?_9T>D;$Z4F*sY>_-mjRY7@@>^d)Q01^TiB#f6NiC}z<1~6%UMOb%}1I0+s+Iw|NflA|M8X zh((m)%T-}75>BrN%qkUUv>(~?{WIrU?#htsZ`7`>O|6wWb1Y3lbswLakMEzrE_a}S zq)qNrx4~M4y|*E81kLxr3Iimubqoe+tI(L>!m|nQaR8{N8HuDNut8j1-n88|YKL-@ zhiFD(eo9on;4=D{BVUh#=bp6X;=@~H2M;>_zq~JfswKk;xMJ(NWWaNQk_ICK@e7l) zPvGgG1FW~1|BAI|>#Q!bD|FkRG+r{j>}APHI5!IUL*S$rJA>-NA}ppo%n-dqC>{&O_u`c-D2r)0g_LlY)` zPLl404^oIWqaWpJtNgV6jW?+64vmZ>o<X~U8TNKlV3h53C8>mCs0LKB$5f33x+)^>4Vp)|QO&b~C) z2=!J@;T&_X4e6z9;_gqhtkE+z&;yOF4Qi^bb}SkB#%~&BS@N>cN%$taXB6ruLCtsE zN*4i07EVH>vlvQ$9>@l0$7(hHDYS%-YlbKxqZ?%N2XBYif{qqP^tZIih=JpvklZMC zk@Mi?pxP%W-C5E;(f3!|IZB%2b$w z)jV(Ofd!)SQTUiP2u;6vhN^UI@j(ArE_njP6vT?3Ih@u}b#i#V)LwcX zezk#i{K3YIhes+Dx8qWFj!|%wNf|o-nu7wHOEBBN`0>)_-HFIPXwpOB_GK#0SS;Fq6l#j!2KxJ@ zBgr_ptwyM_dyE_1a8St0*ReF>PHTOSl{17Ms{vcV9e`MV*ZK}%V5lr6mrr^<{U|tl z%5&ZW=DDo0;FLn{a+!2uE_<@_aK$XN#RM83nU6)MDCbMd zgJ1Lb7&3j=;%Zr$4X#!j2Om6mg zXg^oW^?jCz$gGBVXM4R125!7)z5Tg9<#{M!*Xr-;%)}1rsu$0*ZDly>F%H>yIo#qP zI_GvTcbA5VUwt9o$c*0?iNVK(b><|(jmlh^hL&{M>ZTH5zp(tOB|l8}o43YuAD7Ru zyeTJv;q1snxGcgqn36zYm(Q8^hpG&<*gqwfVMn7YOJ~||SIaJXfAt$Z$tx;EpUc`! zo88tImd`K2hzxzpzBE1LJ+^A11)uo3=2?|xbu+w#nNZQ=#pxT+RN18OysWbUS@0{$c29nQC}O`_}XL^$<%885?*50HeNjO znZ4*yipD<$Y^{FHME%2pkDf~!U)SVcQLe^FJ4sa<$E?@j;5HWo<@e%(LCdCDTnM!F zHJ#4ygi;uD|8WDwy~)``=esq(6nSb)cjgAD|AIQ-a0TDQioQr;%^`66s*7RxHq0(ROWXKhSq`waRt9;z% z(@k`)Hg=L6`N%Vmnqbds7k{5YvfRRfTcdG`j~*|w*^3)_T|R8v{p}1TkGL`wZ6434 zkyW4uEzkygKJhwi=oR7$Oj>SVPQ8?6NJf-su(P+ElQ}63o(7ds;}a~PBhjmt8X>8I zx1PPIlF)I#_=JdK>cvXFw?KwfuzMu)4>%`W!tMlN)6*!m6NHAQtvTs1;@sV@Gr(NrS8+AGb(dSlGY`TQ$c!f`kG zjd)%fe-M`Z4s3a~kj5M&bg|E?>--nj;8+ty;eG2I`%!G)_O0Z0mV}d`r1~pbA=c*u zakIV%#3h}J-*dxzSJF!`Ec}#t<@2Et*pZV{zRFe$BBg<*pmRvDv@iA@x1c}*Q+t^q+TJHQz zE5rKe@ishk7j|kTqO-koM(U(T@6>=9!UWExAy$4AB>-;}*nKlEJ=|rF0mwz=2h5uc zBt{F+KY_|d1K1BR;QP+8{2Cr!hb=(P+Qn{R>MB;o$`e0RZD&7I&QgzF>J{rh9{Y02 z7$&4%<1)5tlK6IWg*rT%q09N&bqh-Lz6T?KC03kbr%3E@5ssNCY>(AU&U@&t3tuS(WeV} z@c_i^Myml0M#RFb^5ijkjiqpf=GOI>kWgs~r#$jU|XC&lyGO z6uivF^y-~tFMuPE%-TpyIc&w3`n&csS;h^*V|}lq5w*+hIcT^i z$>i|m#b@Rfxu9~Azy|I61+NXY7NU94LAOgm(DP7c(xw612;-vVQ@+4fi~6UMM*kxG zPX4f9+)e(io?CZ$)@7*#EAlGvF=w(ZKxGnn%eKdWbYT0(Vzaq$Uy8m#VrH4bsE>VT ze!z?ah?9}xTiW=A{j+qdu!e~ESb`}>9buDD}nlc=z`0e5m&R~O0s_w;+w z=il@GTxozf>GCi~Jzm8H@Z{VDb3%+><|qaI+2%pcfV3+nHur73_EXE%$T!gB33xCM zFzEVLpET81@XSG>F&QizL3Pi|r^S6s$6K^Mq!tTrz4JdXsBO47BxKifaWOys%zBjd zv#`TsKLjkohz>NfzsQptZTX7xo=i@(wk%xi*Y!wjP?@+tVjYuj(29+#r5U3#@2hAg z+&Z%AzAy@(?`$7V3!j9Rxbb=$QaKHBH2PjnTkT)c(XMbfwMKFAl6L3>wD0Fr^St9EpNy zE>YdB9UWc5g$r`^NC$uj4672Ts#3j7%^abv*%hK!#%}f;YDULr;)g>HjbTvV&`{AC z>i33UhNDP=z&Y9(JTMV4q2{a9{^p(dE6Pr_e*!~lJ8XHs{$+ens+ehcbh_hz*871Q6m^G+dbX|FGZE zNOI0)7r&gHq)&4ALoFJ$kB}tvI}WYF%<58Ivj3;pe21){(WJKWd4-C9yOdPQjx=1v z$hXw?6M69h%wgcOxbaiv=1iRWpnZI}LV!IMFH%v7{xp%x1vOs>Ef^9f9qF)frXi`wl6UvdO2Dde>^g?VD1}v$t4-Aq0zIL zAUJpJ!-T*h4}=-a%%Q<|CgxocG_oGAOo;niOH_{6#we4`hB<6OAb>SLUI*k3N?Hnv8fyKgeHvF2pO{Fp$0IJ%VuhfQd;OYmNE+LvY5q%0 zjKD3?yJeiScP(#loBuFD$|9zDR@>8c1@gg1vrr46q|6x z&Z>~+???PoilI72MYVog3_z#gBMSPZCh>AcD`=8EB-_H!o%Co}uo0WZdP12hhB@mf z&;WUfcMOfDmhkzfr;8D?D!@hfITZw|U%{pStzBgHzL)(-yM&4A7p%`csUTc$>HM5| zySOCeqpe3{TIi{;YnSc%fK&q0QAC@Pd>YdVts$qB!aVSb)^GBfg%ExF;i^k2+k(^l z_3Mgm|0SxM+zc5j>9Dt%7@ybJ2+oI>M8p>Fj&q7mEO~Ko2O#>6$yr_A<;oU6qHF!> zall7$2)0sN?%oz$Ey*<|MKqb9vP6=(4qjnkVXR(6&GO{VV#tL)Z42gqu}fbEztZX| z6v$^s<1#sv`rTRECVlLt8yDa=R7I`ySc!!N6X*5fre-nOpi92EY-aXV(_GFRsfHOZMpeI(g9UuQo1$|aZ&y3fDbSA)Qd&6O71hQ22um!+wsB^Vqa1zLeb*4_cyky*mVD zQ}n+RKAJM0kl?kVxFiJaPDXBy_Quq1oEDRiCEsrU1*4yBKjZBxVLhS|`EI~H_>7)@ zq_KtCbyJ_Z>2)mHVYB%nEl9f@14v&ywLo5yzx!0zVN?9_=J%|egB?fg=R)g7xE+}n z@e^3qMEzg04;~I5zH^S8@7ubw4k`v4wS?5~;TPzJ;8V(d|1>o8z7g2!pNi`@7av&Y z#XaJVXbe}7wc<$^2=`_F`qhU={F}o`A7f7}aI)ZkSw!W>M$}_85Y{TDQ_wCE{A&}n z>84!81LfNa6pn5kB@x~fUjJE;bFMQWd1d=ofh5HDRORvJ(pgnY^8|JGw_cE4K6kZC z4G0^{QC*6tCqocZuudS2A5`XV|5QFM%lFkFldN^Gp1I6b3YcQY1=R0<+aZbtA&Y_C?(Z&YupGiO0A7WAu z3-7Cy;kUfZY0|_DYs8i^iMYCWgopka-#m!_;b@L~wE+YG>9+a_C;JxnJ5E|1o|1ur3qe5^l z=(C5j(S#OBlqSn7waT!xFWrvC6*j=mK#^jyDhO;v?MXx z%-JN}o1l`udhw^>#^*Z@d z52d{H??Eol1Hvz^rM{kYwgu-fi)akU>ShnL3Vpc>ZI1bU4q=ZWR-Poj zd%OjtgX$86-LQq4HRndkjJPOu*SzPLK?{y`|H011@s7m5csrUWkN1!T2;%lR`}puB z)(azkzR8n3vIV4`uYmuMxK?91ECYOw=3EiWKr)*`g;9%Lof@_<&L`4!d7C67s?XR* zx1QP9Ig+sWo+hSW5PfBgMz4rM`Im_GCcGerH^$d$fgqSD_z@&W&YIzo47dM*@O$vP zhI8%rcJ||MLc)y#Te8M|U!hez!b|c-vlLt)lzh6$21P?F3yokm^vX5*;IOHB+`8cV zpq(?BV88EW-Y>bc#MOCV%|0#kUrtQl?Yh`!SjbhS=5gHQ)855=lY!gw4d)RFXMYF= z-9oV*8qqP59q6G5y5dEeXh3#UE7Gb+RYO0MkOXHz84-* zlvunF|M7E&hth)({n0Z9BWTd+i0HX>O#+nRP}+T$DdxO-^6=ML{|G7CVf&Bw5vPH} zdUc?qffb!fQ7b`J670}v>JR=q%O9wKj$FQstnIhrFp(0p!_tzj%eaa#>hC#ac|Af@ zqD(Q%{F5Mn*ErK`L6cpEaeW~3rlZ*#^b161O3nI$9BgwDcANZPSicnnfE0#qyfARt z`B(INmtAwvmRROZid2FW5t>Q8y_$4Z;YCasz1%|liVGP3EaLKupu9vE>t7GDm;8D3 zk0!X)l0*+ip>?0wO?vp~w4VKvL~{&iRrmKfBSIX%CGG8>xtcV-abtkpOJJ~eqkjYF z(3^nJ^`^$VrV?^@7nTMp%< z3_D{xmF@#R9=v7_eeAENxnZULFFXizrRqIV4S^tR&(kCw{mAO^qtufWPX6DBY)9id z?&n=zGt=Q;Cf{3S2uAk8>I;q!+iv`1KJgst&X=$m~O_ zE-{&YOPGK87KlwHtRfU#@O9&gSqrBW&Xt~E9)|`^E~evvV1~}|Me;iiw!V}`#wQ{^ zlLyg2iX=Kw_gJ&(rJh#4#2refzGhI=?I@WcU675GW%t%ZtjbfWLi>OD8T4I}H)$Jx z#X1y~8ISdyo??IYbQbjI9$i(tzaS^V(4x*mcw&tb!8uZd%5u#o1kl8H-*E6UVX}yU z*&D%EuO46J@~G!vSTvR$2;v>KFlR|0>?1YYd-N=M%_IUrIXvB;D?pJFB>oV4rk*?2*wPbOmJpPA^s389HM@i)+3+%94WDb`xs`HVus}G~h zieeLwL8DEAm1dApwaEZ#ydF}r9fqc;1`o42q1ER10*-T8L7%Vph^M72PglIXIq&?| z5%taCJV?{G6J$d(>~p_7AhSTh=y#7b3h~ElQ25bWi2YH$2z)VDgSBXMQ)X(opbpvZ zka-Nf+b-})XCKjC$b}n3JY}_>xCT4CD8WET{U1+X85Y&n{yjr?2vX8r5-ME-f+&r2 zBM8#nFfgN_qzI^VcY|~fARyAx3^9Oo4BheW^MB8IzVLM}_Fj9fd;O9$@L&FzY=voi zb&C21qc)Y`S>OY43m$sW`GI@mg%DgxD2eViYQ9em)^B#j46CSdZlM#B!o>}kY9m(& z)d$1K7QgLk1Yu9AjWFfz;*~GZ9U3ym(laZ|Kl|_ zOTzQapq$ryh-#ep5$t$)e8VEx=)|b@*A-Elslmt4-$F)(Dke6a5frR626d`Xb zETC%^79y4P_ByLilI3?QKTLma@{BpQ6{f6;O!sjI`2b^|P=IPiuyJPl2BTvL#J5@{ zjWHZhpT2ungCzFa&Kp5Oo%G9uhEtbv<#POkTDAY`v(?=`^pm@%_dC^l^WNZcgDJ~F zP0w`h;x)esr)=7vxYCta#7@*$Zj66#-)C?X^`mPwXtm@b(}iq2TPU{ljv|$tVaGLd z51O$q0Chz*{b&jr(sSK2?jZjxg7?5@GmH8r;pXs@ySeQvHbH{eOu>xs3$$EZz!d@$ z@>=o1drT!R*Pe~HEYg#mQr;!uw1>(Qrw>Jf>wy!EQuyx%SEZsK?5J_+&1MMwzsB%T z@o^oVD-MQF_P4OVgo=6cxwtU5o-4mjxhdybD8*(A-Al=l=0R$KN2x}^^>sthvr7C6 zeS4rF8p0rxh2~*+2keGzrSMMxB*l+QgA${HR_{>4>!pFXhm1B6*BJ(~1C*m)64CTB zv0>9~i{Sf6o>VcnM^H%-a`>dExvYe}fh99+ctq~fbkTb!G;Cb;r$z)&QmZ{XkkDsN zcM+-brRcLUZ7x3#F|O-$g#s#J2ETQ^mMA2w`%O3OUB=jkj!w+LURwSh^3jGt`Hv+Z zjnBcqlXNt5a-ywkJ;MN>h>TTN|KEz&#qq47UEJ$edM76g}{Dg1rK<}@^QXM6LWa;Y%3;h#^wpmPnpm%e)4WN6i6tz)qUQ_6e5Gq&tN+R=N*;BFEElHWf_GGy=yAI7LcB}J zi5=Xlv>X*n)~vnnZ#j^6)D|GIB_h*+;_5b6i(H69Lr9AbJy}kkw9UuVCyfALXzdf} zSx*tn0YF4F1gl z{9!wEV(;(D&4uf?!C)=7HAg~9l}->z0He5qP2l3vaf!SzEed|U|C>DXe#h7pmy$MQ zd3pJaWM`*>Lf{;@C!vr2sD@Pq_B;&WJO=pGv09$d)+TK-1N4p`h2Pr7i`(BPVoY>o z?>+qAW4Q9Lq6z3#uffX#Sqmzfkqy$nHCROcwW2CShyJA7_~1p3y!Qitj!q#bXKJ#OSK)QbIF1Z%oJtXd6>yw**|751tfbT%AOEUegR@}y7x`@_dTYFV zB<0#_LxcQkwzk+MT~}$tz?{6kPbWwgxppKVgu%L|@Ni2(Avz8>UMIp1bfP>74#cfg zF*WTc)F7tAYCTKQ8^nf*I-hJQGgb>&GzUD0>p%5wvpK)IfTcO-W zeOYA1p5)O{)UMz8_7+157k#vrQ(1tY?eUB3dWnl!cIv_9SQUlSByQ(qt5pM14!1JE z;>Fqhk?QK5ULMdO`D?PnbMme_yZTov7lnZsMdUerRRKQ+@3WBXEXhWWg8(%^vp|%| z<)Xh*vYdrnWCzo?-@I;h0o15ut_vla1GmYm>L9aGeTLS>*KSwmxXoT;8*9_g{o((- z9nBQFYGieGKr%_#zY@0JVz%;Pqc4(G+Cg}wP94EX>LNTLuOvw~&tu)dsl~xfbwg{_ zVXs)qRjJ91jd&*Krm2fTk^%4KLax=ZG(R&Eo9@q6n!UQv*DG_5rvb^`fV@t04uSC6T$usF07G=SBgGOKdbLnNpDy4S=BeeU`VO{3$O`6Yv6gL^z^*x*hcdX z?0o6m>_Sau?Jtx>3O>C@B|>6Q{-mI$aRDfW>}~J3;|-oJu{MbT+5b^&ox@K&I*Gv3 zr!>-0{BSi%@qp(2%&1|v==zOVA1hGCajqTjO(if1^dip&SWD99?yTuR zadl;TuSDgOb3e+oamiEg!gySBeWyM7MPHCJFjarGWRv(gx?e zgnTai{rd4pLP0+$&r-LpMElY)r;LeUneO|@*VL$@SsrVcR&E~R8tM81Zs1ay*uZQ_ zVN#EWz2}^|biUww-4K%*{KM6t$GIPlsjv)85BI_;c4G?RDgFIjG-b`0ayMGxp(TEN zxj1*%BaI9u@ES)0?a49&K~#!k=;%Id+s)gfMMcE~P!r)ULJg#C1>?E^{yo5CX9{8F zi*Ha)n@D(p!i1U=__}sH{@Gqy;jws+fJ52>7W+0mzzJMCK+UU=eY{YBRCaU8ClYJ` zxKUqXdofe#d4JnHllG0nstCN$xx?-RnBShcI63W%b<@m(!ikp3_;XR^w(_aiZ={Gw z7U^@pA?XX>kbMB3l#Y*lnTk)sYrShmLsJep4oXOcUuH}552m1-}VyE7NsJFgpes_@%q1lSAH{c$$Xf zStIVt?UDw)_Lr?wOff4}CQT}L8>PEyD5;Nsz~lsRKl-ifJ+GQ?FTm%sR*4L`Uov+O(`o}{cfI0x zQAdq|2t;2lQZbjMt0vCLZJxg*hmFuxjVZSzX|ST zk~CSfMk9_A#Ln4I4c|Qn(`kV#M10`Q@~6+wb(G93NEU-atd%tWk?S3#XQ!=yz>OLo z*tLRQ+8hR~eFKz-kz3Q|6qOMXz0PR_adEv?Ue7;@pMSg6TOU4M3>jn9W-jw_mf^I# z4~`ROHLG;^`jH}46wDODFKh0Dg|&&n0n*iHbgS}wA4|t!?o6RnQ}W1mO@>Zlk$v(N12$cEUe6Vym@Efw7t)^8g+TMRc|Ndz zZBTH6*pwsfc@}+Mo?|_51bKu?@)Ne5?(z)ozj@Q8otEH8>9>@ThtASw+gR~!Kj1j{ zU5R0_QF2pqd8q6jTuj>w6V8wiBUvPf9OU8Qoyd9^p=o#=!kgV+z=;S^>5Kom{cno% zmq?9oV1+6oJn)=U3kBHl*k|u3K$Bq2Vja?hW7H)0WgZ((6}!Zged4=9EX;@ra%XCJ zJ~B0wevbWx_p!5ztwXr7dVJXOO84GlZ%sL8=L7}aAU@_>D`B%@Os(l`keOjh#^W0R z=RCqjELxndO($QKlDskDD}H|!ecdXH$WBH~7RZv5v;L5`8Kh~mOk)5Fc&vNF*T7%}r^RYaJAi*T*`IkIilBqUU9_sgsYj2qr^~>`^Z^PMZu}&` z7AW;n7|M}|WwG;H$Lw)EC*cqE4F1K9L%}M z2&M^B0^3bAKH7HC+kY#R0TiMBpL9`0r zgGEBkS<(jn$W<;plqhS1HEWw0>K~-a@>`!FrzHU}7}wRsVs4T2tm@LqAHr!vbR6WN@#YBKbT_~+`D`QO~`bVgLXPRlt;IZ7CPN#eGlj+3;NyUHVafa&FU?Ju~Rf zb^6PHcPW-(tP8go3`k1x6CHc}R&IFL*NL9?wr#SkX$9u$@@g4on$1&cx5ak>sa^++ zhFD(SzsNp^79Ag{JVb#(N9CVr30WlwT4DP%XVl3whx;u7CLO`OvIZ89b^FJ1;Zl^T z`3?nV`AKhWXg2^+!eYo$hj7ZYUb6TY5U2RboQ;_Na(4B%d81bNpX>7|0(I3yy6fa) zcQ6q3*tjpLDle{w(i7RtVs__7)_ox3vsZyLE_P{gjlMa)efqJ%#W^hz8FH%E=3|9k zEchns^6aCCl#m_SKNw9_Ht-K4Lg3Ov$CG2ZpDx0IhT*|`v!IWwD`^cB4=~u3{C0mK zV|;OTHMB!sX`BhD4RrsoiSiSnPL0xPm&{+C8N9jd+H&gK9Agau81~yo=vfTx#e}!h z!wPClGGt)zO1+|82HuE8ATx3H(g@`{W34a#?2-l`kk-K~MR{Gk=)+SQ!hi9aFA0US z36RujICm^Z)l^-6&BFH)!tB}}&-Uy3jJHdSe>t@Nl%-+u@h0kY<`0u8jjs68AiH0y zBY%+lVJf60CKpR8j)=BnDHO%{<6SgiYUzT4jv}fOhL{L?KVY|v=x-aCJ7|EKx5_}4AI%85e9$sZ}%6GVU$r7hMK zNLV)bDQv1=^ZF_IT>ZnHf|O8?N#g(%jN4;l;MS4rcky;PYi|i% zM>(S9%?B5bG&u`JqastEbd~h2O%Sq=hQU!pOo2F(zE2M9P+=fI787tpV z`SnGEKax&w=$)4bWcE$_uy5q(D#Op&jZRWCX8-JK-%_*+jD!gp^;c?UK9%PEZ{$H> zg<-l6sfe|XuWfV;mGIT?y+y^hK@we6MZZfci4&dgiV-0wPGQ>_XS^iBxVE^JlKT^j zkZ*U8#=;W4wwBgdHgP()zMYD{FYz|2-kMvWG&!gxXdox5h@3bCxsunnU)cahRxR^~ z-74g^PT+M)Vsb=`w`{#m;r95zcW}pj#YikIrq_<`!l%Ky7-9U=z_U%-mg{q5pWw?p zheF9Xj*<(9-vi%zdYgS4W(y>irU#|a;x5w)KJ`_xK#o9~_;MS%>8HI<=kIX4;>*w`;l&na`o27g7bwL?!uPh~$TQqg#}^t2_t$H;Oqv(Eg+ z*KPy10(E?>4*RnRYUJ*?39uxg9DbhZsePWer+0yGba zPfpC;&w02GpO!Nq3Rx*P~eY$>6#lnxlwYZ}s2)GB-qACMuOUuScbk z+J23G>Kao>R<<7Tyko!n;A=blh#>u&yX*1+0)i8JowTm2)0|+lp%hW%eDh?%SoeHW zFR$V3>@aj_0D6k8ICb#I^=p~cRE1f4*!t6$^bgbr=1G-UK^NI%ESV=0v@P4bt1{S9 zpNcPYwfGMzjInPn3)@luJnNuC?1Pi>7jfgM2);z%`?rAF?AE-+AFV4Dm&rpoa@l4Q zm2~R|KYOmQTjReoQC;VF=!YEo;x zqPY6x_(D&3td?JTetYvI>P5^?wEoAu-y7TMTIV~l2xNO3+3z*2|9{LT{k&TG_vuFc-8GB3F zTrfd-Wh4A9ntLKdc(U*+V(9M9DT+L~4sbjqCV z+u$!fPdQ0D;~;D85Sv&>aTRUXXR%~-Ie4uS<^(mwKZ^Mu8WGyv)ykqVs*cDlXJvA< z9)a=-O{PnY^%~9e-cXUL#BBfkdf8U;+NMC02~{`!)t%&tfa@rPa_O~MlLJmArG_4O zGHt`8=?B?oKy|x$w@}+ZqxsNJb>JH<`5XEgGk39v-W_*%tq)o(jilbfTlSEu^|yZ@ z<7uT65;1GfVgUp5yK-b2*6Uq0k=U&k^gng5r`5%^j_)Q9Y<`FH8sp*;vLFXDWC9qv z{{Z(yEOI?&(kC1f($>caSfnv*D3vTo00N&TOySJA#u>Qsh zv`cNT#pt#sE=ci(mL80A{z%O%wiwBeNeUUFATLJ ztvU`2Jlz>(3Cteeo679bcMg)5Kcjl}6s-pOEK3|@f}1pn|LYjfomu+)49GNT=EVPQME!D$GZ=9bVcas9mQ(SvzZ3had zX$z%t1;k<}pYPMa`fBGrW6RU+gt>CI?LMU*`X;x2j>U%YIzB*ggQ&I77cQxJM9^wJ zQ;m7C$%fi%I91yx6vQ&twZH+*v`JutPbE=%t_f9*<976s4}57Tx?1Pu+5cUU9xf{c zAPiNO&>!n~8#ZuqNP`7zF{D&Vw(hp)8AyQw?&1lPY`|cUCEt^e>-~iX!aJ(D2~rWO zu86KEvV9;D(uUV~X1o*diNvT|7M#7SmW)9}i*a+B=x)Rzcl4P}7F4f}`Pm8U?3Sfq zPpiku-l8@t9^grq0RQ19#s}kk26SxX0E%Fns^E3J9^t$YR5RV6J@}QUc~57K^8Vtv zg}D|8ptrOSbg|8gQ4-k%F@a|wi{Pz5wGtr{GWvloE;kYwbvA|p;kVV?E0lLr+1M;o zNSS7-J3(QW_jH7TXJq7Mu3ch(DL|OV$`TMU7)!27re-5{uurALL>^vj4KtC`Xu%RI znlVAB#czDW@dyZg<}HPXOlH%Ckfh)L<|p>$Ef|$k2fywF96o>@>Ob-M>wbRC(q=Ox z)c_vu1!ZE1g!B9m6=EmcteZKn&%2&ZWp<(-6SDr;b^vJF6(DlgM0Shx+`OQv4x+Lv zrZ3xl_oy((=wqW&fQ`o{P}e3ap)f8n^EpA2PE-o^=CWe1#L7MhL**Uo)v6D8VT#F{%YjSH25tt)w*|Y0m<*JA+h# zrc@8d*RO)@WL<0i8?%B-wfJ^(x|w29F?!n9OCj)(yRp74*ZKqdEcHjIR9D3zIUZY# zQO~c)+A-t}xgUo~ecGSKiRKS5D7cI%1q$0|SxSAVlZt%77p@GhQ5v2L8!^ zn`tb$C@bkFzm2W%%N*oIM6 z$*Y{YgA$!SR;{#p6W_*_ln_PQD`T7UrniT7A+zlZ*GE9KvR>(lzo#PH>*vRhk>Rlb z{oYkicNXxGRtSQZj6+>AnC!A>>U#XJBd2{MUNLBf**cvAm<*j#pDK5d)_9lt=_y%Y z`unq91If?L-p6~4pUA%B690JNRLVqgtX!1y96k-l#QiBjL+wsh?syj#P`p!h88hd% z{zDi9Yl|vDT_7GEY|bkm4y;?ap^|>NM36>(+Id?O`+tzcKYu{sB@RoB72Nb=-mrCw z=p0vjii&8qm%>j)8vEuNmJJN)eao_}KRg?Pamqv@ z2DVySE0F^OKZej4CUV$!P}-!0hreX-yqrkpp$*!KA_-sLrU~+5iMA0cCa0CY<_3V? zk{U{($ja9sso?pUjl(`~;Tj?8nGUU8Ae@W&w`UqDJ*fSDF$v7S&}j>wjxGR;E#gHp zI(wt8D4GC}VmO0XErmVu5rCHUItV~Eh>cJrRk4CX4au>krWN`kI((kr-jGy2evNWo zFjfo(T}k}?T3H%7v3^_@n#9n$-d)V9+0-h1=@6BMks^g8r0d z9BZMxEwj1U?#3Sp^jX9<^fbSFMDv|%(T%C%ZrvgJ+L=BeXcW`)K9vx5+4A37RRN34 zWzFSZdA)t?xHKNY%NRI7T@j2uiZW*rKi63y)75Sq`v6h+m@$xg`Sbt}_6~G%HFhmN zpBb?`FZbz^v4$4~hKV^JUAUl%RzP>W_(|pr+^^?rE|p<{m7^Pggit1qFa?Ld6(=c! zguj{USI0uF>&WnsUM^7NWFBlJE+C?=TN%H5gg0e-SPc!#a<>+4yLf@xI73Kkz7gXI z-CuGg^27GZ_FIx|VY8e^r@CSYwt@yzY)lKNzIb*CGjd2i_mZ@^|{| zLnLpu?DVl0vzQlzgX;-ezwu#;%`+F&)byb10=(T2nLoK${vva1?aO}7B_ax$=(##lwYSbdThklZ%Bm^Z#M&>`nz?ML0k9ck< zH-MKWF;YUXTE(aULsilj@L&7k|yx3PvvTe9K}gy@X#x22vZlsLp1gQi57OeZ%YDYeq(Av@JeLQ(aD<+XT6) zBeym5`c4J}SI(UlzZ;?IJP$CgYVL!7VuQ%g(9ZWdpCJc;jN*4=to``Uk$Pvu@ko@h zmhS=wMo?5_G)5(zf%}76yEkbeXqk<6+qg+r>xu-5SxteapDED_+y|2J-*HSs@BD7wouQ#X`G&uw-rZ=(@noxZ@oY!T zpU4g%Ms@`6&wOk8<0N*ZP@i}Z_=4YM5^-L7x~oMWR^RD@_N2S)zJVb-2IV_UH^@1k z6FHWBjY^!f8NRtW_Hc(?J*tRHVxYa#>4{Y-&$v!OxPfczu%;}#tIuFwX zyXUPjpMS*5p9vcNs>6K{U|k+hJn>f;^@CNnWt#^CE3g-je+M1THC7W*ee|E0=ryY@ zuIpQM=6W778e6ZQ8Ti`^_@RY_aZ_rgiSTG1MAmJ?1Dg;_v=SoQ5gJ?L2rC+#sN*A}E^LtV&yZzUqALpI8$DCcT8nz|t~R-Q2cBFW z?cC?H{k}wumv6kXjnjNB_qguH&9dX>huexu-@Z*Ec;GuN;ZX67Fj3K-|A^z1VWMhc z$$0Le+zoT6s$P{@i+-!mc3#8YESqU9mj<4;(}Lux&%|jy#A(Ct)Btt6`*iiD-dRDB zQEqY0AadeP(l0l+r?kOoc|ef5>k!aS00h?j$QIXp*tx&IqnE6DRg-+cTDmf66(ZAe>u z@8A=f55lY`0G_iOyVedJ!mP{q+2luzG2-3C9#IOCvGYtEji8;@n1d3?(dE^Ro)Y5b z5;7Wq%5;Z_X$BU>Co+4+IL2aaFM-)DP_4HdxiHi5)%(7BOlA5|(Qm!KYlGI!nrR=2 zx4M14JML5@ri`i4~3si8b*(cmKDqWsV=A35ccc^CP`w(qdsnU(zvj#~!JcMIP9qD}KnREK9%<-N>CPdNGT z_5ELp!+@6f(pKkG=+YkuV+YFeaNM|wXXR^VT7orYF>nyRh>^7E{9&z}WiGRH`_Z4Z znz+z=p&5}Sk5Fcst<;^vaFvIXId$C4b=<|uaOMc;4q_7zuu%G?|B}I(h^u$sF>9L) zG{6K&=J_I`+AMwosS(0?%Vf31^Xo(;@&DcaC0=D6*#*8VBMa(|AF$<*oGqT%Jp2R& z!h$e8Ka#T4E=WNdBp{(jlzY{Oh_rpgb|2gkY&uT#5`Q{zx_z-R#xkL_rdt_uTAFt5 z@ARl@sbF;4MhP)$4dIA2X~YB>JyMIT{nLqTtoC;f{PDwU>=i-l><(-R7wj2ee2qK% zcc-8*Y8n$a`Ve2EC~T3PmKO3lK54PVAT|(GrdKxsr59%o7HFSoR_DS+cYa{~qd)*# z4|ec@CG+Z?l)XuQUS{9?VLHw8W+U?q+22pTuX745dGBtXaqG@Y{P!^7+c4lGQjoKJ ztjjs}td!9I4?F6+iN*+xy7Xb_McfN-%-77oZ`0MhlOh}i0$*F-&mmn2JI~@(Z+2W0 zb%N?2BBk(wJ-7PK7kX7P`@IMGqsJ`OL3ol3MS!U796y--GD3zrF(mkJhgcEJj!b%F zmtbwY=q@!;DN##wG4n#phbugs;8mk?>+W6YV*Rb^s-&+4!P@}Fa`a94*h6BP<1ld6 z)f&VuzPfx{DC_*SFw{~QxWeuXWewb;~Rf zW?JW;owhg+F}*w5tx-tA_JUKB#j!2o5!b~g0}f^F@cp~%TS0c;2ce%ZfnaMPHJ-eB zdp0b;)7A!0B%>tzkAj_PK_lUoeAQF?mX#3OUEbOSR|4^b47ADG~QhT$=2J^zzTM#p~WW5NpZyaa=~E#bV&00C26J8?yAPbdA`TuJHRjuKY^<(`DJ}m z&THvn9~>z92pOq=@+34$RK8!(#UX$RmjncLT8eu|WC8k6^V4hW4MZfMuz=u=(a~1n z%IU`-%TB!N8`4inL=lwwYc%&)|EN(`10AL{6bb+S1%=!@n}+P0Za6P_#>zSyKz94N zPJg{;3c=#N{FU)Jdg8hD&}=+2Z|0+6oZ8*cLgp6s*>3m;Nc?@#Q46=4vx9Zt+2oXepcp2cH`L z|KAe`+yyj}VTkdBkidE}b6UH5S+Z$*J5fde((|YxO3p~X zZ%zE)m>W9tdX+b8Ll@?lKBbWsrGOz*rK7wi1{#1Za^|(Fu#_8I}05p1KlQkIy z3Fl&DdC^}GQ&CB{E2941D)hN&E;9GW{;e5aiS2tes~SpyYmi+tmY;%=?S`UWob`8W z|4r6I$u)K69lA zsv<<_37}e?t&HZz3mVZcOCU9#gU{*rSm4KD>x3bt)g#$4RKk>3` z)rI$BKNu*TF$qB^MI5Kp1Tl(osK!iMXF8mbP1fCAFq?BQp(LmzZgJPp;82XBp-M|I z4>x@E>ab5i`tHo+`taAe0~biO5GpbFHy>f5KtfM3bvc@)_4AWNXxIM*2>i1R=e@=H z2uhToH1Oynl&`rngBV7-8x_U&ogXvI*VbFRVHUTA?KEVwg6e~@?Ka7wB}A0ubUwe* zEXzTDjQZK*rqU|waM6=NDW@q&%^~7Tck>1P{_MLGU&tHqs1=1!DVxv`@!R0Cjhm7! zipyEVkHAn=**XYQ;bN|l-0#}na>^fakq*He`OyqoVF{JgLk#zW9l)Cb^e-*&bwykr znA96CDc3n5u1?#RTn%a5W^JxoqlL7XE^)oYYRB(DSqE5ECgEU|{F972$2^O5+5rp2_$$Vn(FOb3mnjN}sDm%)Y zbCpeyy42-OFViWu596_zaHlk|JVZew7JExR`ekG*mnU1j^Y5P8YRf(y-xQT~y4poA zk+z=1C%H@w&L%tg%q3!SAAJ8(MqvbkHI9m-8UBM3$zDG(6+o@1F++viGLGRk-{$TthUhk)2#b?YLlVUHtv_ zWKZdX!$=ouaaXx&nbFPQT*SPVdvC@J=1s1m*^PGsqZ#Up=$l`;*r6u%w(6GVzLxhv zW1@pKYTpzlw$kV!lM4*niw~(&F=2a1rS^)*!7-6obn9{1>Nj!{P}Mmp>Ogte%C6Hr zONja+pRj5TYB_eQ51-!MEHgujGtt;FWL9pz2R;GT{HCIGUgMIm&Xm-tkqnGq#-S8k z+j|0ub=*t7OZduXMcRvfwVs7~RnVQsj&dSMpAKcO;X$l`bDZ|e-e6>3tO@cNM*xde z`7!#};9#->z1TgYuI{-2^N&EiF<+$U>XG~E$rj4e`s7n&x)${Nb9h52y|lo7+0QU- z)c-e50Xwovdez&k@eRlobJpA%BvHhu4%_Jbek_aGeDC0_xm`wGJn*AmryT8` zJZD#Uf!4`F6}f#@>HUoT*%|XQcb93~M~E?9mP1bU@00xnm_uI0uG>vT+mv{RZH#;H zp0PFkb0OH!Ifn8>xNdWn;OR}q(*=U=T z+qBtLP;k4*cBg^1pl5r<+io1F@erciX^%kj0j5ify6aQIRv@Ch@VLAIqukh^Nk`+e z-e_Hvo!08pw=9jHm~eux@Eb3zO7WVVQ}(q#)NFjdD*Ia5K zPIVx5l%Que-@BF&%Y)PqiP>v}WEbopdgk!fYseu*#M5`26UeQDF-Yw;SW|^^{4pxA zR}jJu{m_^iGXrpd3NQ7KVM7>|DU*($U4#-6tOr3jyEP7azIBv-dVRZp`>##_OOHpl z8VF|1NxoE2kny;L;ym3~ao;_Ps#o?7uR4kfU%t&=2NflF;*M*88e0h}pm?4VtY zyCP!KH#Li=AO&^jl$e3n@qct$*WVc>V&g_SS#V(&AreU4MPU25FuhpJK3}724sel+ zhoBruTt6WV_9D!bnO(6_DDV^`_!4jCGTm)d_NghlkRS@cai&MLSZE3{8;xddbz%ef zR_TBUb9fz0FY>}s)^=|WOloR#U9VlsfJaKUvRP~2Yx9S}Y1pa_ExUR%Bo=iumm#x9 zSTT!V2+ME{yr>c|47m{|Ly?<5lFKO6E=Y6Z3~HhA512!L1=NKotAa3%%GJUfP@)a=#!+1!3}xnHI?0>6 zBR+F1Lr%f=a|^H_4E*Nx6($BI284lQM^_gEAsDpU9MClWpL`gIhG#3TAqyB6kUqYy zu=m)ylf^TLg+x>_oZ7D6%!?8yBs0~l? zsydGi+f4eoWo}}H>*ZI9W!`Z&`*bC!n>1AXdhML^mcqB3OHt-q1O*)7WI3&t#mxjX z_o5~%dSzXgaD%SP$wD|v)#svT^Ml61Am7!?!rrc-SE}!`pQ|IQYoxlb#P7#)SG@O( z580CCnEdu70QsGDNOC7XL+ul!s5CvEzy$Ucj_=M6{f$Xx@Xq5b&v)dx%dsD(1vLJS z$dzLVGN)App5cw@4vFEMbUAIy>M0+#pp6@FL2O^Q^aZ1)-$3EUbth-*LvT$O9DPm9 z3_GybDc+(3PE`tR*$bhUKt=lVdO^?yz4?Y5)8=oRGm~{jE*JQYoz`(eo4@oEMLS4M+f0rY~S@>cHa|Z`yA^oesp zZoCN(l%x;(ESZm~tJQ4DJ~2GpM>ToEH;ln7j9gBZ+*;S1S%=+_@jkc;gVHs=5`USV zYU2wVmc|%Ya7_!Qpq~{jr~033nVYIpnv+eiZZRvC)zh)DE+xq~@AomxYhU^vaI%B2 zGpzjNwE;&i(fIVzC4*3n$iYTFqM!ke83p^&p95SyDA_)!i(v$uQRW=4#_l-3MleWH z(nuSs$z7L`scj64P_ZRA%~(c1)_Urp=k7Je%2GdkrSIx^$WOLH?nlaxRl?)(Hc9>D zB|&r?wS(ygUQ5+PSHmRF!H<#}4{M@kP17{)Tz=zI`rYPL6_E*qONk#>WEj+c_z%ZX z_%$0P)=*nS7t>>Wm;BV>R&t$`MW z)AbszC3sm7kL!BcimhquJVju+aC`=}>8y#Hj+!D=>q8ijr3hsCl zuN2$|SN)x)yMS{z|tiS9-&f+3ZDS@t@XX*@unAeWWb1b5rx2~#*pPGhoJ5Znt(SuuPMll97K zO~txnv8|_+GI;VAF3-Wo!YBhh6frj_Llsjth*9{%N=mJh)dCP5(AV;Wd zNrrbD@2wI)jCSizq$RGK7jt2q2B|N@X`ax6@lEhZW@*Uve`OiTI$R0#TB|)~| zvIt}q*8+!;<1Ie72mo$23uu>3r;dw;`PjTxJN)D}2O8ycnn{?v&}* zFp5^)rO-df`zqV%8g~R71K$XI`OYg7lRzKu`W-Ar$byfEtPBAXC=DJN#E~%o!zZ!fZ8&OvmEy!v5`0V@yJ1 zpq5rxT@ub2l)$6R`H8Z)c|RwyI=Febipo1dSCZ82n`P@zkgvR<&GOyXF%po_3En|+ zd^J5i{xf>MP@}r6^t?0m-pdavLEW7kD}{>;RUGInb1xF1^|M~krZA1&%;9A>1B|m>Oe#T~!7YMUW~W|yG;%#RJLcg2wE!1dwnseOP1_xVb>N-<+`|E{s1 zq9I8WQ*Y$H*UI6WKZJNe$umLW3hqADSapA?;Tc{^W}j66YtTU5m~j7kH+$EO1N-;ky*EHCYO0lF2Ej z!(@rV`e-nYbXY?19{^D*s0Y}8K`cS&I&@^B1yzm*Gt6N&Ah2=|lIQ@Eo<+ogzV^__ z(9t}_;U1*ecLrTZbT{7;f=y52yN5?KXvR>ufwB8NpSz_{?+M!+&jogt|2GEwHDxY~ zlx3j7!1{voLm6+R0HeMtK9hBj&*-hr^2{&tXN)Q_4rkHbT>r%46|VIbz**vLeZsC)mKz7Ulk|Q4>vV%PYy1 zOFOu?DD;j3Nj^U6o0$~??@-1dtiTb_J9;+`B61*TUE>-29x{`J$-in5%Ooc0w}20U zt@K1Y@7gSBLzdkwksATX6fT%QR0-Z#rpK!4x5jq1Gr;QSm;u^vrFf~kt!`sW*C%pF zMbo&!$Z~{%h!P|)cnoTEo=0x0$7H$fc!2CqAB;MZk2+>EvRN72@y^%WLC?WYZ9zPs z`2q}wY?ITiDess8Mt?=h&rpe6y?0>*k=*0&U z_X#R)qe9^M^=ZPk6VtC`b*Ek2qM@1kf?)Mta9sr^-DjTJvq$rfBU_aGBE7MdBQQKa zoMBKqW0eqL1qgr~K9l+X^qFX5C@KvP7f}WQqre}3E7@1%_%_mtLykWkyQ^1320QoW z`Z-rc#9vd#r5AaB;HE2#pXn6uIATF{kis6LG5MIVDxz`Y!D?7;{VJ$~XV=aKQrViS z46SFxfb22)wrd>jkQkK|eU*E97FyqY9k|34(89~Q;q?E?`_7=Kwr1@i2uKi6$shs> zf(jxaSr8FL1(hTj6p@?-$w4v_MUWgM#}Ua%qM*(phk*ek3kX9Fl5Y>b=NxZ+_0|1* ztFBd2)XZk~n(kgtKi#`mH-2;|k($&A=IsX}DF%|f(>p@JyT`X#2FfWNmv8WUET=pg zv(Tc9xpL!DvN+xBum+uvA+HscCqlWOUq5&)yZ3kie_+2V@3kMwC_7ownkIkHNtAl% zt=EX028?JG-WbNi7ez;<@#QMzp!_;->%*}PZwg|cdM&O`iVR_Y7r>CP&5#!&cIUdA z3)I;XnQK6tk^Wx6(g__`H#3>&4cnClA3}LshR_Z!a}ICbUgFfgR0(6XUEMm7^>_QEp`e zPvGqhlN_hV)x&X>^R{>_Quxk%c$z#BCnJP5K3%P9{Ht4hW9}CEHNLG?CZ5|azVe~b z!Y;aPLe;(?^CHS_E5O*BD+!TndF;nJ;TsN$cxe|z<;8-@hh)Ew`Qq)X1qP7I&p!^P zW?Yr?lITU&5(Tr6xgLm8Jq_wIo^T2=vm8Ono*A7+MQs&#RMt)Tu)4Lg1LH5P9o{g=Dh;VBod=1R}3 zYm6$9$kP#PVFmkL*JIurdYN2ILR#Z~mV@ypXYZdmjC4XlMzR<2 zmsejtAnw}mER;e>{zy*3CX@5N13Qg3xqmoQip<^wG=>hN4UcI(*D^A|b6e|(S6TgHv0)e$&>gzwoY zJGy^YMplT;Czp^AkFJo;vh$Z(eHT{xJKk6;ZT|+76nSsuF_8)t60GRFmyUoZ5rS00 zP09JKtF~$Wtu`~Sek4Bk$Y*|aSMN1v@w%R@Qy3CqY-YKqf%v*ZwX?lhQpu<;iD%|F z*QdlO-*teAd){RUVW>Hv8mY%@`nHY?lhyCqE+nBzJ|EYedCn#)>`d}S`~rrZt+zwy zLEt1W90I30nb$!~h)1z>s&#zyar06!^9^Doo!XL4$XKhl&80(nd>yasGjQs`U-oY* zO(pX!ZnjEh_?TzFi*d$6@oxiMZXc}u{4x+xyQFkEJf`K#1NRK#-#2H^H5RW|HWzTk%ojH5SsdgZ8 zJYUYO#PNj4Ay>**1JCL=#!T0#ez~zjLMr8g-jddAc+{oWC!+<3`Ht!G)zsWUMym@H za=s$)Mp+B~i@sC&8PjWxSSum4i=f}>$LGYT6&tXB_{-+AmHZ(mjo;BeK!e!{fS8qvw z_%d&Cc!tVcS^NG|+A9y_#*TSbJeMx!3VuXzgBs3`i9nTqg|TF(OQ4MogE)0Gd9&bE z-aLlFu;P`Qa*vmtlJN-21L=tnvuXJ=4^l-utX;UP=#nVNS#oFa@?MqQec|RNhUT=q zA*sj{i1k58aUSwoZzbwr$SDO?6-b#0)YHB3*_P0i7zw3A?T|9dh z0o@5(UmYW3MvL1{k>sl8`K_sY)Im)@Hu$I}^RG^1Pw1|+I@Zy}5o$|RmdArt% z>r$Uca(CK#i(~W+D3=~?)Shz5omUMj(EU5jlhJ;#zxzmC-PmS~lZ%T(K%mDV(Rt(N zlW%XiW3Ic2UEf>2d76eM^``%cfg%I{N%xj8*07kEn2F@|btQN5qhvi)>`@|2+-@aV zn09ChF`JyX|fYh&;u`TM70)ocKCMvrc73K`oT8(a{}4d`MSnsv+5AtL^-? zGW=JFmv64Ks_yo-&b%Hoo^-`B)odYM*{I^kp*e!7p2tp$JuTH#^}WwP1tZuZNXSVp zO?DlDet0)0KR>mXm)AhCQCO;5N0Q_n`4zr*mqkSAFKd?6w}ddU>{g6eR*VGi;^wg4 zVd$CSPuYp;-_w>)VVV^?^{YiWy-ho&ty|CLOVz1+h5@>P*(aFShA$xPYprfu-XXuD zAK$m_azcg}NuV?q;&6L+R{jWyzj3g!u^IQ}(m=CYonbW<6`#Rkqcr%=?iOhuK2YVU z708&H<}S4#iOewYA|jyhB5AlNbrR7!v|?DF4CGK9vrohe^l`24zKYVn?|qU8yA)^+rGGgs4YhqY)~)%tEh>q;|p z;paBt(O`IO0uBpq{1|WYH-O&RpZ8lsnEaDH4jAHvty;P>?%7O7J$?$vP;szhw_7BI zQ;o{mr||*7I(jPA+BKXd;c>8wBg}^9gJ?2I5yx0l;RDMIr(?`*@Z5;hIbNWr}kpJy7PK2?svBuwP zM4z`OXlOfH!0a0ml1@o#{}U{Y&@eUv+PPO$h?JQ2k*>{j+-~xtK>fUYq}aC<8%wA8 zk4N!|3GCiuB`k5F3@~$lzWF%R+9WPBF_6XZ*|QXd_-l?EeUI@1T1UHkdTfR)%Ew^< z%2w4P2!Q(3Der{^bJ^QHkB&;WmAbe)(Eig-3%_l6U9@k$N#JBx_`7%hb%zH`u=mj~ znW;P%N2(2A8bS0yWo0EanEx>D|1YU7S2+<(tFiX3$e@*7TpW;j*FlPB>+gam9QfTiHW_?c(`~{W0)oKs$7Cv{5ut2l4abd9d^-xey&=r?W z^AfAkgZt!vcXv3l(sog}mJT5ob|xeb@=FC;<#M2bm5JAU6SG}u6+hz4+Iy*vuKdrB zsf3B(<1i12qUn>{F4QuGofQx`1^c}9uULW0zUV(M_4(DxaLN%+A7+5i3z_!D4xj&X zl?lZO5#;~WeIE%ugYw@(aNG;rSr7kxBo3b(ZcF;V@dCoA4aDA!9zjGsm=((LcNT8S zTw0gz+kEpXA=2WgSR&wCj_y!2nU^pZ7cn9{DM`157b(Yt zJ@3}9!V+=^4U5{jS3`B%d}iYUfqvcdgKOiV~fF6iYL7}{8%><0gzt8stCbcW;b zLKwPiy0L+YiprBmHTUh{L0Vdx)5Nal|L+C@ZVBJw?H(&dqst`T?ZX1#lUpIIKYDK>UW)(@=P<$V{I>>fXyu}6IJttO%WWo$=%cnwF4Cs z#n=P|PtVQGIsS+>QryzIs9M94wYTRQ%pgFd5GQy;R+g~4yZegkFY5(NDe417^_o?q z&vC!&GpjcEp41$2>Y+E5zSmN?wQsD!uPimE03|3d zYnAy7Vdb!xQhxiNy*>MzJQ6i!)1?J`ju!Jwx@b(3nbzT0X@SQwreC50c78TW~ zo(Q^F(wFzxEE(E^(9+UoDkMp4->+>`ZW*%q_U&7D)yt(qaD4D=-!idGzX87he5xkU z4f3IEwSu^7mct@V+Zpcf66agxdjzpR^N{_{TZ!RomF1^+}lGmzVF7@NY zU8&7$(UYn0*^Q^Ma;jtWu>03gnbX?y%MudWOp?wen;lYz#z-gwrlqIPZc7kd3;r}3 z1d!)sF;5Blqd=Nr$A7C+>PW*wJDKddXr-~zR9F=TtXNY*PhCAbBO}9PvNepa=}{C5 zsH6{JTz9ZzW}^ktsj z>^t}5<-0f)6V!*JqoOh@M=Y_C53Y9!D)byc`&kOlO|+f|&DQoxE342uR0bB>H1!B7 zxL`}sCBRFX_!$MB2dhDN)w36>Na;Yw`<#|fHy^LF%yL9?Sgk-)2kczE%CVnz7ke0mOrH&)KRjtFf!Rli zi{&a$K!()1L$EuB-Zaf?UIfWf>JIG?BQ4x;8z!3sT^ekBCE{PI!eMi<;)KoT*GNHbl`rd;XlUJrRul*|TT#?TG^e>Lr#VRTU3lfz;q@ZoQ_Z z*_s=!6p)dT3EEwU`_H41a177Cy|Y@h_?eMW)3hzywQK#I*Pk>Jo;!CACVJ5VxV#^a zhzqh!_|X>cpPqiMH}5f}@TjZ631*RpHNi8H5t1&O`Ypi>6^m8#mrx+$X9v4_njS;6 zm(=wK{1%iSA&V6OVoDp$w2Z(srD_UsGED+FviC!m9e`YK+^Q&~5Sw(7Kn>P;NRg6} zQPfEz?kFm@RN2peGgdLY4X$~yW=-+M!T@y$lQ6Gk-QFtd5$GJi_{sFQD0+eCpUT=Wb)4r|l^m=!+8CCWl8SJ#@<2LM!;hQd)36BCN4 zU#Or{T#EY8KEGn&BZ`WJMQ7N37h9fYh>8aNx9)AP;nWUE04CVF5}rXe39$V`?(tR< z0!ORQRES@$C!kD$L2l|F^zrZs2%N6R!l0}zDjFJJxTv{Px2yep^^vW%<#YhyvDy1& zMW#ov=3r;u&kzC~-Xu#*2{#y&HAE&)0a}4u7&&JfHfFrj)jYbP zpateMd?>W9U+V&Jq=U$=9 zzK@q$d>t#b_*_|NDC-^A+$>8-M5M_x1Kx<3o15EEF!$pV;Jm*e)Zl-)sI8Kt^x13_ zw2r_PVb2!ORr}o0y%SziXLca{Jsb*tA9N`_9Ru%Jr3QyrTR2dA;6^6NZ->b}*OH98+>UCnpCN zCcpCbrkLr1xUmR4!^B$ldzQ49qi%Ha^76B2WHQ>FW?wt^Q5q41J>)a(V0T5vUF=Pj zkx@~;5S~?6bR>w{JycOq*$b21-Ndd8S=F&gN!3+!CDu9wVUJU%Bb}ovkILYL3z^txv9%kg_6 z_k(P4ibk4btif3BA8neBjuj37ex{H?>El$0OFu?LWD25|NLwmr2V?^uOn|i5_ePhh z0Y>cXh7wyAM@XoYK&H?XazUElIZJ)X=%P2m+vySJ9^c)zbQF37aTyQI znfAoeU%wpNunuOWX6XLK+AZD7;^IRe5)Th{AI$e;h2ePKc}`AK*b?Q@$;o;|OS9`& z%m=Pq77|j$F=HO+SwX>c?LL@|!OAL7DYNon+t;*k02cSqMiNZfkN(_zr?ok>JQ zgyxGEB@S&uXk(DF-}Q@X`JL_JOA@%1gZle9@5fkYet()Xh83|G{P=mL+VqGFn_xyg z4htY9V+^*gX>6R`pK^l$o0FAvReR3_Q|Xov3f(<676z5`RC3Tcvg`b7U@4ETTZf&)tGtO2KW>UcH;{FA?>C|f9_ H|LVU0PlQNk literal 0 HcmV?d00001 From 1011dd4a90197343cf6d613be76c601c3d4f4f7c Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Sun, 1 Oct 2023 10:52:02 +0900 Subject: [PATCH 081/133] remove wandb for test --- baselines/FedMeta/EXTENDED_README.md | 123 -------------------------- baselines/FedMeta/FedMeta/strategy.py | 9 -- 2 files changed, 132 deletions(-) delete mode 100644 baselines/FedMeta/EXTENDED_README.md diff --git a/baselines/FedMeta/EXTENDED_README.md b/baselines/FedMeta/EXTENDED_README.md deleted file mode 100644 index 9c8f5bc72fa9..000000000000 --- a/baselines/FedMeta/EXTENDED_README.md +++ /dev/null @@ -1,123 +0,0 @@ - -# Extended Readme - -> The baselines are expected to run in a machine running Ubuntu 22.04 - -While `README.md` should include information about the baseline you implement and how to run it, this _extended_ readme provides info on what's the expected directory structure for a new baseline and more generally the instructions to follow before your baseline can be merged into the Flower repository. Please follow closely these instructions. It is likely that you have already completed steps 1-2. - -1. Fork the Flower repository and clone it. -2. Navigate to the `baselines/` directory and from there run: - ```bash - # This will create a new directory with the same structure as this `baseline_template` directory. - ./dev/create-baseline.sh - ``` -3. All your code and configs should go into a sub-directory with the same name as the name of your baseline. - * The sub-directory contains a series of Python scripts that you can edit. Please stick to these files and consult with us if you need additional ones. - * There is also a basic config structure in `/conf` ready be parsed by [Hydra](https://hydra.cc/) when executing your `main.py`. -4. Therefore, the directory structure in your baseline should look like: - ```bash - baselines/ - ├── README.md # describes your baseline and everything needed to use it - ├── EXTENDED_README.md # to remove before creating your PR - ├── pyproject.toml # details your Python environment - └── - ├── *.py # several .py files including main.py and __init__.py - └── conf - └── *.yaml # one or more Hydra config files - - ``` -> :warning: Make sure the variable `name` in `pyproject.toml` is set to the name of the sub-directory containing all your code. - -5. Add your dependencies to the `pyproject.toml` (see below a few examples on how to do it). Read more about Poetry below in this `EXTENDED_README.md`. -6. Regularly check that your coding style and the documentation you add follow good coding practices. To test whether your code meets the requirements, please run the following: - ```bash - # After activating your environment and from your baseline's directory - cd .. # to go to the top-level directory of all baselines - ./dev/test-baseline.sh - ./dev/test-baseline-structure.sh - ``` - Both `test-baseline.sh` and `test-baseline-structure.sh` will also be automatically run when you create a PR, and both tests need to pass for the baseline to be merged. - To automatically solve some formatting issues and apply easy fixes, please run the formatting script: - ```bash - # After activating your environment and from your baseline's directory - cd .. # to go to the top-level directory of all baselines - ./dev/format-baseline.sh - ``` -7. Ensure that the Python environment for your baseline can be created without errors by simply running `poetry install` and that this is properly described later when you complete the `Environment Setup` section in `README.md`. This is specially important if your environment requires additional steps after doing `poetry install`. -8. Ensure that your baseline runs with default arguments by running `poetry run python -m .main`. Then, describe this and other forms of running your code in the `Running the Experiments` section in `README.md`. -9. Once your code is ready and you have checked: - * that following the instructions in your `README.md` the Python environment can be created correctly - - * that running the code following your instructions can reproduce the experiments in the paper - - , then you just need to create a Pull Request (PR) to kickstart the process of merging your baseline into the Flower repository. - -> Once you are happy to merge your baseline contribution, please delete this `EXTENDED_README.md` file. - - -## About Poetry - -We use Poetry to manage the Python environment for each individual baseline. You can follow the instructions [here](https://python-poetry.org/docs/) to install Poetry in your machine. - - -### Specifying a Python Version (optional) -By default, Poetry will use the Python version in your system. In some settings, you might want to specify a particular version of Python to use inside your Poetry environment. You can do so with [`pyenv`](https://github.com/pyenv/pyenv). Check the documentation for the different ways of installing `pyenv`, but one easy way is using the [automatic installer](https://github.com/pyenv/pyenv-installer): -```bash -curl https://pyenv.run | bash # then, don't forget links to your .bashrc/.zshrc -``` - -You can then install any Python version with `pyenv install ` (e.g. `pyenv install 3.9.17`). Then, in order to use that version for your baseline, you'd do the following: - -```bash -# cd to your baseline directory (i.e. where the `pyproject.toml` is) -pyenv local - -# set that version for poetry -poetry env use - -# then you can install your Poetry environment (see the next setp) -``` - -### Installing Your Environment -With the Poetry tool already installed, you can create an environment for this baseline with commands: -```bash -# run this from the same directory as the `pyproject.toml` file is -poetry install -``` - -This will create a basic Python environment with just Flower and additional packages, including those needed for simulation. Next, you should add the dependencies for your code. It is **critical** that you fix the version of the packages you use using a `=` not a `=^`. You can do so via [`poetry add`](https://python-poetry.org/docs/cli/#add). Below are some examples: - -```bash -# For instance, if you want to install tqdm -poetry add tqdm==4.65.0 - -# If you already have a requirements.txt, you can add all those packages (but ensure you have fixed the version) in one go as follows: -poetry add $( cat requirements.txt ) -``` -With each `poetry add` command, the `pyproject.toml` gets automatically updated so you don't need to keep that `requirements.txt` as part of this baseline. - - -More critically however, is adding your ML framework of choice to the list of dependencies. For some frameworks you might be able to do so with the `poetry add` command. Check [the Poetry documentation](https://python-poetry.org/docs/cli/#add) for how to add packages in various ways. For instance, let's say you want to use PyTorch: - -```bash -# with plain `pip` you'd run a command such as: -pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117 - -# to add the same 3 dependencies to your Poetry environment you'd need to add the URL to the wheel that the above pip command auto-resolves for you. -# You can find those wheels in `https://download.pytorch.org/whl/cu117`. Copy the link and paste it after the `poetry add` command. -# For instance to add `torch==1.13.1+cu117` and a x86 Linux system with Python3.8 you'd: -poetry add https://download.pytorch.org/whl/cu117/torch-1.13.1%2Bcu117-cp38-cp38-linux_x86_64.whl -# you'll need to repeat this for both `torchvision` and `torchaudio` -``` -The above is just an example of how you can add these dependencies. Please refer to the Poetry documentation to extra reference. - -If all attempts fail, you can still install packages via standard `pip`. You'd first need to source/activate your Poetry environment. -```bash -# first ensure you have created your environment -# and installed the base packages provided in the template -poetry install - -# then activate it -poetry shell -``` -Now you are inside your environment (pretty much as when you use `virtualenv` or `conda`) so you can install further packages with `pip`. Please note that, unlike with `poetry add`, these extra requirements won't be captured by `pyproject.toml`. Therefore, please ensure that you provide all instructions needed to: (1) create the base environment with Poetry and (2) install any additional dependencies via `pip` when you complete your `README.md`. \ No newline at end of file diff --git a/baselines/FedMeta/FedMeta/strategy.py b/baselines/FedMeta/FedMeta/strategy.py index 208b822fde41..6042cb0246a8 100644 --- a/baselines/FedMeta/FedMeta/strategy.py +++ b/baselines/FedMeta/FedMeta/strategy.py @@ -30,13 +30,6 @@ EvaluateIns, NDArrays, ) -import wandb - -wandb.init( - # set the wandb project where this run will be logged - project="SoR", - -) def fedmeta_update_meta_sgd( @@ -305,7 +298,6 @@ def aggregate_evaluate( else: smoothing_weight = 0.7 self.ema_loss = update_ema(self.ema_loss, loss_aggregated, smoothing_weight) - wandb.log({"Training Loss": self.ema_loss}, step=server_round) loss_aggregated = self.ema_loss # Aggregate custom metrics if aggregation fn was provided @@ -314,7 +306,6 @@ def aggregate_evaluate( eval_metrics = [(res.num_examples, res.metrics) for _, res in results] metrics_aggregated = self.evaluate_metrics_aggregation_fn(eval_metrics) self.ema_acc = update_ema(self.ema_acc, round(metrics_aggregated['accuracy'] * 100, 3), smoothing_weight) - wandb.log({"Test_Accuracy ": self.ema_acc}, step=server_round) metrics_aggregated['accuracy'] = self.ema_acc elif server_round == 1: # Only log this warning once From 8d4e380db854183a745c96c76f9cf5e79a7d9070 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Sun, 1 Oct 2023 11:06:04 +0900 Subject: [PATCH 082/133] Pull request Fedmeta version 1.0 --- baselines/FedMeta/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index e357dc0a0a48..68fbfcecc306 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -62,8 +62,6 @@ dataset: [FEMNIST, SHAKESPEARE] # list of datasets you include in your baseline ## Environment Setup -:warning: _The Python environment for all baselines should follow these guidelines in the `EXTENDED_README`. Specify the steps to create and activate your environment. If there are any external system-wide requirements, please include instructions for them too. These instructions should be comprehensive enough so anyone can run them (if non standard, describe them step-by-step)._ - ## Running the Experiments From eee5d5435381874751b9d5c070f764f5d3360c4a Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Sun, 1 Oct 2023 11:15:42 +0900 Subject: [PATCH 083/133] fix README.md --- baselines/FedMeta/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index 68fbfcecc306..5079f9e93603 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -61,7 +61,7 @@ dataset: [FEMNIST, SHAKESPEARE] # list of datasets you include in your baseline ## Environment Setup - +We will update after testing. ## Running the Experiments From 787a10d60a70e4786b4dd349f599e67b5f1792ee Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Sun, 1 Oct 2023 11:40:12 +0900 Subject: [PATCH 084/133] Update README.md - add Environment Setup --- baselines/FedMeta/README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/baselines/FedMeta/README.md b/baselines/FedMeta/README.md index 5079f9e93603..321827839f31 100644 --- a/baselines/FedMeta/README.md +++ b/baselines/FedMeta/README.md @@ -61,7 +61,14 @@ dataset: [FEMNIST, SHAKESPEARE] # list of datasets you include in your baseline ## Environment Setup -We will update after testing. +```bash +#Environment Setup +Poetry install +Poetry shell +Pip install torch torch vision +Pip install matplotlib +pip install scikit-learn +``` ## Running the Experiments @@ -72,7 +79,7 @@ We will update after testing. #SHAKESEPEARE dataset Download command for these experiments ./preprocess.sh -s niid --sf 0.16 -k 0 -t sample -```` +``` ****Start experiments**** : ```bash From fe23e6a9be39c64639f394ad01aa6c98c6424b8b Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Mon, 2 Oct 2023 03:18:45 +0900 Subject: [PATCH 085/133] Update data.yaml --- .../FedMeta/FedMeta/conf/data/femnist.yaml | 17 +++++++++++++++++ .../FedMeta/FedMeta/conf/data/shakespeare.yaml | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 baselines/FedMeta/FedMeta/conf/data/femnist.yaml create mode 100644 baselines/FedMeta/FedMeta/conf/data/shakespeare.yaml diff --git a/baselines/FedMeta/FedMeta/conf/data/femnist.yaml b/baselines/FedMeta/FedMeta/conf/data/femnist.yaml new file mode 100644 index 000000000000..6ad6b64498fa --- /dev/null +++ b/baselines/FedMeta/FedMeta/conf/data/femnist.yaml @@ -0,0 +1,17 @@ +--- +# this is the config that will be loaded as default by main.py +# Please follow the provided structure (this will ensuring all baseline follow +# a similar configuration structure and hence be easy to customise) + +model: + _target_: models.CNN_network # model config + +client_resources: + num_cpus: 4 + num_gpus: 0.25 + +num_rounds: 2000 +data: femnist +support_ratio: 0.2 +batch_size: 10 +gradient_step: 5 diff --git a/baselines/FedMeta/FedMeta/conf/data/shakespeare.yaml b/baselines/FedMeta/FedMeta/conf/data/shakespeare.yaml new file mode 100644 index 000000000000..36c4744669b4 --- /dev/null +++ b/baselines/FedMeta/FedMeta/conf/data/shakespeare.yaml @@ -0,0 +1,17 @@ +--- +# this is the config that will be loaded as default by main.py +# Please follow the provided structure (this will ensuring all baseline follow +# a similar configuration structure and hence be easy to customise) + +model: + _target_: models.StackedLSTM + +client_resources: + num_cpus: 4 + num_gpus: 1.0 + +num_rounds: 400 +data: shakespeare +support_ratio: 0.2 +batch_size: 10 +gradient_step: 1 From 1241e96f20a1b56466743d3a484bac60cd60c091 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Mon, 2 Oct 2023 03:29:06 +0900 Subject: [PATCH 086/133] change name lowercase --- .../FedMeta/Fedmeta_client_manager.py | 0 baselines/{FedMeta => fedmeta}/FedMeta/__init__.py | 0 baselines/{FedMeta => fedmeta}/FedMeta/client.py | 0 .../FedMeta/conf/algo/fedavg.yaml | 0 .../FedMeta/conf/algo/fedavg_meta.yaml | 0 .../FedMeta/conf/algo/fedmeta_maml.yaml | 0 .../FedMeta/conf/algo/fedmeta_meta_sgd.yaml | 0 .../{FedMeta => fedmeta}/FedMeta/conf/config.yaml | 0 .../FedMeta/conf/data/femnist.yaml | 0 .../FedMeta/conf/data/shakespeare.yaml | 0 baselines/{FedMeta => fedmeta}/FedMeta/dataset.py | 0 .../FedMeta/dataset_preparation.py | 0 .../FedMeta/femnist/graph_params/result_graph.png | Bin baselines/{FedMeta => fedmeta}/FedMeta/main.py | 0 baselines/{FedMeta => fedmeta}/FedMeta/models.py | 0 baselines/{FedMeta => fedmeta}/FedMeta/server.py | 0 .../shakespeare/graph_params/result_graph.png | Bin baselines/{FedMeta => fedmeta}/FedMeta/strategy.py | 0 baselines/{FedMeta => fedmeta}/FedMeta/utils.py | 0 baselines/{FedMeta => fedmeta}/LICENSE | 0 baselines/{FedMeta => fedmeta}/README.md | 0 .../docs/femnist_result_graph.png | Bin .../docs/shakespeare_result_graph.png | Bin baselines/{FedMeta => fedmeta}/pyproject.toml | 0 24 files changed, 0 insertions(+), 0 deletions(-) rename baselines/{FedMeta => fedmeta}/FedMeta/Fedmeta_client_manager.py (100%) rename baselines/{FedMeta => fedmeta}/FedMeta/__init__.py (100%) rename baselines/{FedMeta => fedmeta}/FedMeta/client.py (100%) rename baselines/{FedMeta => fedmeta}/FedMeta/conf/algo/fedavg.yaml (100%) rename baselines/{FedMeta => fedmeta}/FedMeta/conf/algo/fedavg_meta.yaml (100%) rename baselines/{FedMeta => fedmeta}/FedMeta/conf/algo/fedmeta_maml.yaml (100%) rename baselines/{FedMeta => fedmeta}/FedMeta/conf/algo/fedmeta_meta_sgd.yaml (100%) rename baselines/{FedMeta => fedmeta}/FedMeta/conf/config.yaml (100%) rename baselines/{FedMeta => fedmeta}/FedMeta/conf/data/femnist.yaml (100%) rename baselines/{FedMeta => fedmeta}/FedMeta/conf/data/shakespeare.yaml (100%) rename baselines/{FedMeta => fedmeta}/FedMeta/dataset.py (100%) rename baselines/{FedMeta => fedmeta}/FedMeta/dataset_preparation.py (100%) rename baselines/{FedMeta => fedmeta}/FedMeta/femnist/graph_params/result_graph.png (100%) rename baselines/{FedMeta => fedmeta}/FedMeta/main.py (100%) rename baselines/{FedMeta => fedmeta}/FedMeta/models.py (100%) rename baselines/{FedMeta => fedmeta}/FedMeta/server.py (100%) rename baselines/{FedMeta => fedmeta}/FedMeta/shakespeare/graph_params/result_graph.png (100%) rename baselines/{FedMeta => fedmeta}/FedMeta/strategy.py (100%) rename baselines/{FedMeta => fedmeta}/FedMeta/utils.py (100%) rename baselines/{FedMeta => fedmeta}/LICENSE (100%) rename baselines/{FedMeta => fedmeta}/README.md (100%) rename baselines/{FedMeta => fedmeta}/docs/femnist_result_graph.png (100%) rename baselines/{FedMeta => fedmeta}/docs/shakespeare_result_graph.png (100%) rename baselines/{FedMeta => fedmeta}/pyproject.toml (100%) diff --git a/baselines/FedMeta/FedMeta/Fedmeta_client_manager.py b/baselines/fedmeta/FedMeta/Fedmeta_client_manager.py similarity index 100% rename from baselines/FedMeta/FedMeta/Fedmeta_client_manager.py rename to baselines/fedmeta/FedMeta/Fedmeta_client_manager.py diff --git a/baselines/FedMeta/FedMeta/__init__.py b/baselines/fedmeta/FedMeta/__init__.py similarity index 100% rename from baselines/FedMeta/FedMeta/__init__.py rename to baselines/fedmeta/FedMeta/__init__.py diff --git a/baselines/FedMeta/FedMeta/client.py b/baselines/fedmeta/FedMeta/client.py similarity index 100% rename from baselines/FedMeta/FedMeta/client.py rename to baselines/fedmeta/FedMeta/client.py diff --git a/baselines/FedMeta/FedMeta/conf/algo/fedavg.yaml b/baselines/fedmeta/FedMeta/conf/algo/fedavg.yaml similarity index 100% rename from baselines/FedMeta/FedMeta/conf/algo/fedavg.yaml rename to baselines/fedmeta/FedMeta/conf/algo/fedavg.yaml diff --git a/baselines/FedMeta/FedMeta/conf/algo/fedavg_meta.yaml b/baselines/fedmeta/FedMeta/conf/algo/fedavg_meta.yaml similarity index 100% rename from baselines/FedMeta/FedMeta/conf/algo/fedavg_meta.yaml rename to baselines/fedmeta/FedMeta/conf/algo/fedavg_meta.yaml diff --git a/baselines/FedMeta/FedMeta/conf/algo/fedmeta_maml.yaml b/baselines/fedmeta/FedMeta/conf/algo/fedmeta_maml.yaml similarity index 100% rename from baselines/FedMeta/FedMeta/conf/algo/fedmeta_maml.yaml rename to baselines/fedmeta/FedMeta/conf/algo/fedmeta_maml.yaml diff --git a/baselines/FedMeta/FedMeta/conf/algo/fedmeta_meta_sgd.yaml b/baselines/fedmeta/FedMeta/conf/algo/fedmeta_meta_sgd.yaml similarity index 100% rename from baselines/FedMeta/FedMeta/conf/algo/fedmeta_meta_sgd.yaml rename to baselines/fedmeta/FedMeta/conf/algo/fedmeta_meta_sgd.yaml diff --git a/baselines/FedMeta/FedMeta/conf/config.yaml b/baselines/fedmeta/FedMeta/conf/config.yaml similarity index 100% rename from baselines/FedMeta/FedMeta/conf/config.yaml rename to baselines/fedmeta/FedMeta/conf/config.yaml diff --git a/baselines/FedMeta/FedMeta/conf/data/femnist.yaml b/baselines/fedmeta/FedMeta/conf/data/femnist.yaml similarity index 100% rename from baselines/FedMeta/FedMeta/conf/data/femnist.yaml rename to baselines/fedmeta/FedMeta/conf/data/femnist.yaml diff --git a/baselines/FedMeta/FedMeta/conf/data/shakespeare.yaml b/baselines/fedmeta/FedMeta/conf/data/shakespeare.yaml similarity index 100% rename from baselines/FedMeta/FedMeta/conf/data/shakespeare.yaml rename to baselines/fedmeta/FedMeta/conf/data/shakespeare.yaml diff --git a/baselines/FedMeta/FedMeta/dataset.py b/baselines/fedmeta/FedMeta/dataset.py similarity index 100% rename from baselines/FedMeta/FedMeta/dataset.py rename to baselines/fedmeta/FedMeta/dataset.py diff --git a/baselines/FedMeta/FedMeta/dataset_preparation.py b/baselines/fedmeta/FedMeta/dataset_preparation.py similarity index 100% rename from baselines/FedMeta/FedMeta/dataset_preparation.py rename to baselines/fedmeta/FedMeta/dataset_preparation.py diff --git a/baselines/FedMeta/FedMeta/femnist/graph_params/result_graph.png b/baselines/fedmeta/FedMeta/femnist/graph_params/result_graph.png similarity index 100% rename from baselines/FedMeta/FedMeta/femnist/graph_params/result_graph.png rename to baselines/fedmeta/FedMeta/femnist/graph_params/result_graph.png diff --git a/baselines/FedMeta/FedMeta/main.py b/baselines/fedmeta/FedMeta/main.py similarity index 100% rename from baselines/FedMeta/FedMeta/main.py rename to baselines/fedmeta/FedMeta/main.py diff --git a/baselines/FedMeta/FedMeta/models.py b/baselines/fedmeta/FedMeta/models.py similarity index 100% rename from baselines/FedMeta/FedMeta/models.py rename to baselines/fedmeta/FedMeta/models.py diff --git a/baselines/FedMeta/FedMeta/server.py b/baselines/fedmeta/FedMeta/server.py similarity index 100% rename from baselines/FedMeta/FedMeta/server.py rename to baselines/fedmeta/FedMeta/server.py diff --git a/baselines/FedMeta/FedMeta/shakespeare/graph_params/result_graph.png b/baselines/fedmeta/FedMeta/shakespeare/graph_params/result_graph.png similarity index 100% rename from baselines/FedMeta/FedMeta/shakespeare/graph_params/result_graph.png rename to baselines/fedmeta/FedMeta/shakespeare/graph_params/result_graph.png diff --git a/baselines/FedMeta/FedMeta/strategy.py b/baselines/fedmeta/FedMeta/strategy.py similarity index 100% rename from baselines/FedMeta/FedMeta/strategy.py rename to baselines/fedmeta/FedMeta/strategy.py diff --git a/baselines/FedMeta/FedMeta/utils.py b/baselines/fedmeta/FedMeta/utils.py similarity index 100% rename from baselines/FedMeta/FedMeta/utils.py rename to baselines/fedmeta/FedMeta/utils.py diff --git a/baselines/FedMeta/LICENSE b/baselines/fedmeta/LICENSE similarity index 100% rename from baselines/FedMeta/LICENSE rename to baselines/fedmeta/LICENSE diff --git a/baselines/FedMeta/README.md b/baselines/fedmeta/README.md similarity index 100% rename from baselines/FedMeta/README.md rename to baselines/fedmeta/README.md diff --git a/baselines/FedMeta/docs/femnist_result_graph.png b/baselines/fedmeta/docs/femnist_result_graph.png similarity index 100% rename from baselines/FedMeta/docs/femnist_result_graph.png rename to baselines/fedmeta/docs/femnist_result_graph.png diff --git a/baselines/FedMeta/docs/shakespeare_result_graph.png b/baselines/fedmeta/docs/shakespeare_result_graph.png similarity index 100% rename from baselines/FedMeta/docs/shakespeare_result_graph.png rename to baselines/fedmeta/docs/shakespeare_result_graph.png diff --git a/baselines/FedMeta/pyproject.toml b/baselines/fedmeta/pyproject.toml similarity index 100% rename from baselines/FedMeta/pyproject.toml rename to baselines/fedmeta/pyproject.toml From 08811532437772a86b5c5a580af63294ec1d7965 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Mon, 2 Oct 2023 03:30:33 +0900 Subject: [PATCH 087/133] change dir name lowercase --- .../{FedMeta => fedmeta}/Fedmeta_client_manager.py | 0 baselines/fedmeta/{FedMeta => fedmeta}/__init__.py | 0 baselines/fedmeta/{FedMeta => fedmeta}/client.py | 0 .../{FedMeta => fedmeta}/conf/algo/fedavg.yaml | 0 .../{FedMeta => fedmeta}/conf/algo/fedavg_meta.yaml | 0 .../conf/algo/fedmeta_maml.yaml | 0 .../conf/algo/fedmeta_meta_sgd.yaml | 0 .../fedmeta/{FedMeta => fedmeta}/conf/config.yaml | 0 .../{FedMeta => fedmeta}/conf/data/femnist.yaml | 0 .../{FedMeta => fedmeta}/conf/data/shakespeare.yaml | 0 baselines/fedmeta/{FedMeta => fedmeta}/dataset.py | 0 .../{FedMeta => fedmeta}/dataset_preparation.py | 0 .../femnist/graph_params/result_graph.png | Bin baselines/fedmeta/{FedMeta => fedmeta}/main.py | 0 baselines/fedmeta/{FedMeta => fedmeta}/models.py | 0 baselines/fedmeta/{FedMeta => fedmeta}/server.py | 0 .../shakespeare/graph_params/result_graph.png | Bin baselines/fedmeta/{FedMeta => fedmeta}/strategy.py | 0 baselines/fedmeta/{FedMeta => fedmeta}/utils.py | 0 19 files changed, 0 insertions(+), 0 deletions(-) rename baselines/fedmeta/{FedMeta => fedmeta}/Fedmeta_client_manager.py (100%) rename baselines/fedmeta/{FedMeta => fedmeta}/__init__.py (100%) rename baselines/fedmeta/{FedMeta => fedmeta}/client.py (100%) rename baselines/fedmeta/{FedMeta => fedmeta}/conf/algo/fedavg.yaml (100%) rename baselines/fedmeta/{FedMeta => fedmeta}/conf/algo/fedavg_meta.yaml (100%) rename baselines/fedmeta/{FedMeta => fedmeta}/conf/algo/fedmeta_maml.yaml (100%) rename baselines/fedmeta/{FedMeta => fedmeta}/conf/algo/fedmeta_meta_sgd.yaml (100%) rename baselines/fedmeta/{FedMeta => fedmeta}/conf/config.yaml (100%) rename baselines/fedmeta/{FedMeta => fedmeta}/conf/data/femnist.yaml (100%) rename baselines/fedmeta/{FedMeta => fedmeta}/conf/data/shakespeare.yaml (100%) rename baselines/fedmeta/{FedMeta => fedmeta}/dataset.py (100%) rename baselines/fedmeta/{FedMeta => fedmeta}/dataset_preparation.py (100%) rename baselines/fedmeta/{FedMeta => fedmeta}/femnist/graph_params/result_graph.png (100%) rename baselines/fedmeta/{FedMeta => fedmeta}/main.py (100%) rename baselines/fedmeta/{FedMeta => fedmeta}/models.py (100%) rename baselines/fedmeta/{FedMeta => fedmeta}/server.py (100%) rename baselines/fedmeta/{FedMeta => fedmeta}/shakespeare/graph_params/result_graph.png (100%) rename baselines/fedmeta/{FedMeta => fedmeta}/strategy.py (100%) rename baselines/fedmeta/{FedMeta => fedmeta}/utils.py (100%) diff --git a/baselines/fedmeta/FedMeta/Fedmeta_client_manager.py b/baselines/fedmeta/fedmeta/Fedmeta_client_manager.py similarity index 100% rename from baselines/fedmeta/FedMeta/Fedmeta_client_manager.py rename to baselines/fedmeta/fedmeta/Fedmeta_client_manager.py diff --git a/baselines/fedmeta/FedMeta/__init__.py b/baselines/fedmeta/fedmeta/__init__.py similarity index 100% rename from baselines/fedmeta/FedMeta/__init__.py rename to baselines/fedmeta/fedmeta/__init__.py diff --git a/baselines/fedmeta/FedMeta/client.py b/baselines/fedmeta/fedmeta/client.py similarity index 100% rename from baselines/fedmeta/FedMeta/client.py rename to baselines/fedmeta/fedmeta/client.py diff --git a/baselines/fedmeta/FedMeta/conf/algo/fedavg.yaml b/baselines/fedmeta/fedmeta/conf/algo/fedavg.yaml similarity index 100% rename from baselines/fedmeta/FedMeta/conf/algo/fedavg.yaml rename to baselines/fedmeta/fedmeta/conf/algo/fedavg.yaml diff --git a/baselines/fedmeta/FedMeta/conf/algo/fedavg_meta.yaml b/baselines/fedmeta/fedmeta/conf/algo/fedavg_meta.yaml similarity index 100% rename from baselines/fedmeta/FedMeta/conf/algo/fedavg_meta.yaml rename to baselines/fedmeta/fedmeta/conf/algo/fedavg_meta.yaml diff --git a/baselines/fedmeta/FedMeta/conf/algo/fedmeta_maml.yaml b/baselines/fedmeta/fedmeta/conf/algo/fedmeta_maml.yaml similarity index 100% rename from baselines/fedmeta/FedMeta/conf/algo/fedmeta_maml.yaml rename to baselines/fedmeta/fedmeta/conf/algo/fedmeta_maml.yaml diff --git a/baselines/fedmeta/FedMeta/conf/algo/fedmeta_meta_sgd.yaml b/baselines/fedmeta/fedmeta/conf/algo/fedmeta_meta_sgd.yaml similarity index 100% rename from baselines/fedmeta/FedMeta/conf/algo/fedmeta_meta_sgd.yaml rename to baselines/fedmeta/fedmeta/conf/algo/fedmeta_meta_sgd.yaml diff --git a/baselines/fedmeta/FedMeta/conf/config.yaml b/baselines/fedmeta/fedmeta/conf/config.yaml similarity index 100% rename from baselines/fedmeta/FedMeta/conf/config.yaml rename to baselines/fedmeta/fedmeta/conf/config.yaml diff --git a/baselines/fedmeta/FedMeta/conf/data/femnist.yaml b/baselines/fedmeta/fedmeta/conf/data/femnist.yaml similarity index 100% rename from baselines/fedmeta/FedMeta/conf/data/femnist.yaml rename to baselines/fedmeta/fedmeta/conf/data/femnist.yaml diff --git a/baselines/fedmeta/FedMeta/conf/data/shakespeare.yaml b/baselines/fedmeta/fedmeta/conf/data/shakespeare.yaml similarity index 100% rename from baselines/fedmeta/FedMeta/conf/data/shakespeare.yaml rename to baselines/fedmeta/fedmeta/conf/data/shakespeare.yaml diff --git a/baselines/fedmeta/FedMeta/dataset.py b/baselines/fedmeta/fedmeta/dataset.py similarity index 100% rename from baselines/fedmeta/FedMeta/dataset.py rename to baselines/fedmeta/fedmeta/dataset.py diff --git a/baselines/fedmeta/FedMeta/dataset_preparation.py b/baselines/fedmeta/fedmeta/dataset_preparation.py similarity index 100% rename from baselines/fedmeta/FedMeta/dataset_preparation.py rename to baselines/fedmeta/fedmeta/dataset_preparation.py diff --git a/baselines/fedmeta/FedMeta/femnist/graph_params/result_graph.png b/baselines/fedmeta/fedmeta/femnist/graph_params/result_graph.png similarity index 100% rename from baselines/fedmeta/FedMeta/femnist/graph_params/result_graph.png rename to baselines/fedmeta/fedmeta/femnist/graph_params/result_graph.png diff --git a/baselines/fedmeta/FedMeta/main.py b/baselines/fedmeta/fedmeta/main.py similarity index 100% rename from baselines/fedmeta/FedMeta/main.py rename to baselines/fedmeta/fedmeta/main.py diff --git a/baselines/fedmeta/FedMeta/models.py b/baselines/fedmeta/fedmeta/models.py similarity index 100% rename from baselines/fedmeta/FedMeta/models.py rename to baselines/fedmeta/fedmeta/models.py diff --git a/baselines/fedmeta/FedMeta/server.py b/baselines/fedmeta/fedmeta/server.py similarity index 100% rename from baselines/fedmeta/FedMeta/server.py rename to baselines/fedmeta/fedmeta/server.py diff --git a/baselines/fedmeta/FedMeta/shakespeare/graph_params/result_graph.png b/baselines/fedmeta/fedmeta/shakespeare/graph_params/result_graph.png similarity index 100% rename from baselines/fedmeta/FedMeta/shakespeare/graph_params/result_graph.png rename to baselines/fedmeta/fedmeta/shakespeare/graph_params/result_graph.png diff --git a/baselines/fedmeta/FedMeta/strategy.py b/baselines/fedmeta/fedmeta/strategy.py similarity index 100% rename from baselines/fedmeta/FedMeta/strategy.py rename to baselines/fedmeta/fedmeta/strategy.py diff --git a/baselines/fedmeta/FedMeta/utils.py b/baselines/fedmeta/fedmeta/utils.py similarity index 100% rename from baselines/fedmeta/FedMeta/utils.py rename to baselines/fedmeta/fedmeta/utils.py From 2fb5ef80aa29151d409cbcbc59f466419d3ccd9f Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Mon, 2 Oct 2023 03:33:37 +0900 Subject: [PATCH 088/133] delete annotation --- baselines/fedmeta/fedmeta/utils.py | 1 - 1 file changed, 1 deletion(-) diff --git a/baselines/fedmeta/fedmeta/utils.py b/baselines/fedmeta/fedmeta/utils.py index 6e8759f3075d..f8ab08ba66c6 100644 --- a/baselines/fedmeta/fedmeta/utils.py +++ b/baselines/fedmeta/fedmeta/utils.py @@ -121,7 +121,6 @@ def plot_from_pkl(directory="."): "fedavg_meta.pkl": "blue", "fedmeta_maml.pkl": "orange", "fedmeta_meta_sgd.pkl": "red", - # ... 여기에 추가 파일 이름과 색상을 매핑 ... } pkl_files = [f for f in os.listdir(directory) if f.endswith('.pkl')] From dec7c7a09e413ee9b21dc8866aedb0e8ff441a5b Mon Sep 17 00:00:00 2001 From: "JS.KIM" Date: Wed, 4 Oct 2023 09:20:44 +0900 Subject: [PATCH 089/133] Update baselines/fedmeta/README.md remove annotation Co-authored-by: Javier --- baselines/fedmeta/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index 321827839f31..7903db192f9f 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -1,8 +1,8 @@ --- title: Federated Meta-Learning with Fast Convergence and Efficient Communication url: https://arxiv.org/abs/1802.07876 -labels: [meta learning, maml, meta-sgd, personalization] # please add between 4 and 10 single-word (maybe two-words) labels (e.g. "system heterogeneity", "image classification", "asynchronous", "weight sharing", "cross-silo") -dataset: [FEMNIST, SHAKESPEARE] # list of datasets you include in your baseline +labels: [meta learning, maml, meta-sgd, personalization] +dataset: [FEMNIST, SHAKESPEARE] --- # FedMeta: Federated Meta-Learning with Fast Convergence and Efficient Communication From 274a14503d092fd6ec636c2becd316a377ae5a09 Mon Sep 17 00:00:00 2001 From: "JS.KIM" Date: Wed, 4 Oct 2023 09:21:44 +0900 Subject: [PATCH 090/133] Update baselines/fedmeta/README.md Co-authored-by: Javier --- baselines/fedmeta/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index 7903db192f9f..1830cb30df66 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -7,7 +7,7 @@ dataset: [FEMNIST, SHAKESPEARE] # FedMeta: Federated Meta-Learning with Fast Convergence and Efficient Communication -****Paper:**** : https://arxiv.org/abs/1802.07876 +****Paper:**** : [arxiv.org/abs/1802.07876](https://arxiv.org/abs/1802.07876) ****Authors:**** :Fei Chen, Mi Luo, Zhenhua Dong, Zhenguo Li, Xiuqiang He From cb7e9a7df6abe0c5fc5d4c2e78876f6f8f35a33c Mon Sep 17 00:00:00 2001 From: "JS.KIM" Date: Wed, 4 Oct 2023 09:22:14 +0900 Subject: [PATCH 091/133] Update baselines/fedmeta/pyproject.toml Co-authored-by: Javier --- baselines/fedmeta/pyproject.toml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/baselines/fedmeta/pyproject.toml b/baselines/fedmeta/pyproject.toml index 013db24e8871..d40378cf9519 100644 --- a/baselines/fedmeta/pyproject.toml +++ b/baselines/fedmeta/pyproject.toml @@ -37,10 +37,13 @@ classifiers = [ ] [tool.poetry.dependencies] -python = ">=3.8.15, <3.12.0" # don't change this -flwr = "1.3.0" # don't change this -ray = "1.11.1" # don't change this +python = ">=3.10.0, <3.11.0" +flwr = { extras = ["simulation"], version = "1.5.0" } hydra-core = "1.3.2" # don't change this +matplotlib = "3.7.1" +torch = { url = "https://download.pytorch.org/whl/cu116/torch-1.13.1%2Bcu116-cp310-cp310-linux_x86_64.whl"} +torchvision = { url = "https://download.pytorch.org/whl/cu116/torchvision-0.14.1%2Bcu116-cp310-cp310-linux_x86_64.whl"} +scikit-learn = "^1.3.1" [tool.poetry.dev-dependencies] isort = "==5.11.5" From 62ed0010e2f0cbb7de47ccb8fd3434d873766b9d Mon Sep 17 00:00:00 2001 From: "JS.KIM" Date: Wed, 4 Oct 2023 09:22:31 +0900 Subject: [PATCH 092/133] Update baselines/fedmeta/README.md Co-authored-by: Javier --- baselines/fedmeta/README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index 1830cb30df66..7f19869b29d1 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -65,9 +65,6 @@ dataset: [FEMNIST, SHAKESPEARE] #Environment Setup Poetry install Poetry shell -Pip install torch torch vision -Pip install matplotlib -pip install scikit-learn ``` ## Running the Experiments From f89b38938ab9ca45a52debdf49b42e3fea3cd5b3 Mon Sep 17 00:00:00 2001 From: "JS.KIM" Date: Wed, 4 Oct 2023 09:22:43 +0900 Subject: [PATCH 093/133] Update baselines/fedmeta/README.md Co-authored-by: Javier --- baselines/fedmeta/README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index 7f19869b29d1..62a6807a48fe 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -63,7 +63,15 @@ dataset: [FEMNIST, SHAKESPEARE] ## Environment Setup ```bash #Environment Setup -Poetry install +# Set python version +pyenv install 3.10.6 +pyenv local 3.10.6 + +# Tell poetry to use python 3.10 +poetry env use 3.10.6 + +# install the base Poetry environment +poetry install Poetry shell ``` From 55f2bd88f579f42e6414cb558e407881a4a3da0d Mon Sep 17 00:00:00 2001 From: "JS.KIM" Date: Wed, 4 Oct 2023 09:30:06 +0900 Subject: [PATCH 094/133] Update baselines/fedmeta/README.md Co-authored-by: Javier --- baselines/fedmeta/README.md | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index 62a6807a48fe..c7b45c030610 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -50,14 +50,10 @@ dataset: [FEMNIST, SHAKESPEARE] | Algorithm | Dataset | Clients per Round | Number of Rounds | Batch Size | Optimizer | Learning Rate(α, β) | Client Resources | Gradient Step | |:-----------------:|:--------------:|:-----------------:|:----------------:|:----------:|:---------:|:-------------------:|--------------------------------------|:-------------:| -| FedAvg | FEMNST | 4 | 2000 | 10 | Adam | 0.0001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | - | -| FedAVg | SHAKESPEARE | 4 | 400 | 10 | Adam | 0.001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | - | -| FedAvg(Meta) | FEMNST | 4 | 2000 | 10 | Adam | 0.0001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | - | -| FedAvg(Meta) | SHAKESPEARE | 4 | 400 | 10 | Adam | 0.001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | - | -| FedMeta(MAML) | FEMNST | 4 | 2000 | 10 | Adam | (0.001, 0.0001) | {'num_cpus': 4.0, 'num_gpus': 1.0 } | 5 | -| FedMeta(MAML) | SHAKESPEARE | 4 | 400 | 10 | Adam | (0.1, 0.01) | {'num_cpus': 4.0, 'num_gpus': 1.0 } | 1 | -| FedMeta(Meta-SGD | FEMNST | 4 | 2000 | 10 | Adam | (0.001, 0.0001) | {'num_cpus': 4.0, 'num_gpus': 1.0 } | 5 | -| FedMeta(Meta-SGD | SHAKESPEARE | 4 | 400 | 10 | Adam | (0.1, 0.01) | {'num_cpus': 4.0, 'num_gpus': 1.0 } | 1 | +| FedAvg | FEMNIST
    SHAKESPEARE | 4 | 2000
    400 | 10 | Adam | 0.0001
    0.001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | - | +| FedAvg(Meta) | FEMNIST
    SHAKESPEARE | 4 | 2000
    400 | 10 | Adam | 0.0001
    0.001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | - | +| FedMeta(MAML) | FEMNIST
    SHAKESPEARE | 4 | 2000
    400 | 10 | Adam | (0.001, 0.0001)
    (0.1, 0.01) | {'num_cpus': 4.0, 'num_gpus': 1.0 } | 5
    1 | +| FedMeta(Meta-SGD) | FEMNIST
    SHAKESPEARE | 4 | 2000
    400 | 10 | Adam | (0.001, 0.0001)
    (0.1, 0.01) | {'num_cpus': 4.0, 'num_gpus': 1.0 } | 5
    1 | ## Environment Setup From 336cf3faea6c133fd0cceb364dec8d15be19d15f Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 4 Oct 2023 09:59:56 +0900 Subject: [PATCH 095/133] rename file name --- ...{Fedmeta_client_manager.py => fedmeta_client_manager.py} | 4 ++-- baselines/fedmeta/fedmeta/main.py | 6 +++--- baselines/fedmeta/fedmeta/strategy.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) rename baselines/fedmeta/fedmeta/{Fedmeta_client_manager.py => fedmeta_client_manager.py} (95%) diff --git a/baselines/fedmeta/fedmeta/Fedmeta_client_manager.py b/baselines/fedmeta/fedmeta/fedmeta_client_manager.py similarity index 95% rename from baselines/fedmeta/fedmeta/Fedmeta_client_manager.py rename to baselines/fedmeta/fedmeta/fedmeta_client_manager.py index 2b472e13a9e7..f0e08aa2750b 100644 --- a/baselines/fedmeta/fedmeta/Fedmeta_client_manager.py +++ b/baselines/fedmeta/fedmeta/fedmeta_client_manager.py @@ -32,12 +32,12 @@ def select( return [str(result) for result in range(0, valid_client)] -class Fedmeta_client_manager(SimpleClientManager): +class fedmeta_client_manager(SimpleClientManager): """ In the fit phase, clients must be sampled from the training client list. And in the evaluate stage, clients must be sampled from the validation client list. - So we modify 'Fedmeta_client_manager' to sample clients from [cid: List] for each list. + So we modify 'fedmeta_client_manager' to sample clients from [cid: List] for each list. """ diff --git a/baselines/fedmeta/fedmeta/main.py b/baselines/fedmeta/fedmeta/main.py index b3bd6dfc2758..250cde1f655f 100644 --- a/baselines/fedmeta/fedmeta/main.py +++ b/baselines/fedmeta/fedmeta/main.py @@ -8,9 +8,9 @@ from hydra.core.hydra_config import HydraConfig from omegaconf import DictConfig, OmegaConf from hydra.utils import instantiate -from strategy import weighted_average +from fedmeta.strategy import weighted_average from dataset import load_datasets -from Fedmeta_client_manager import Fedmeta_client_manager +from fedmeta.fedmeta_client_manager import fedmeta_client_manager import os import flwr as fl import client @@ -65,7 +65,7 @@ def main(cfg: DictConfig) -> None: "num_cpus": cfg.data.client_resources.num_cpus, "num_gpus": cfg.data.client_resources.num_gpus, }, - client_manager=Fedmeta_client_manager(valid_client=len(valloaders['qry'])), + client_manager=fedmeta_client_manager(valid_client=len(valloaders['qry'])), strategy=strategy, ) diff --git a/baselines/fedmeta/fedmeta/strategy.py b/baselines/fedmeta/fedmeta/strategy.py index 6042cb0246a8..7d77b81186a9 100644 --- a/baselines/fedmeta/fedmeta/strategy.py +++ b/baselines/fedmeta/fedmeta/strategy.py @@ -11,7 +11,7 @@ from flwr.server.strategy import FedAvg from flwr.server.strategy.aggregate import aggregate, weighted_loss_avg from flwr.server.client_manager import ClientManager -from Fedmeta_client_manager import evaluate_client_Criterion +from fedmeta_client_manager import evaluate_client_Criterion import torch from models import CNN_network, StackedLSTM from utils import update_ema From 3ad860895bf6617f9228b8e9b3553572be8b495f Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 4 Oct 2023 10:54:54 +0900 Subject: [PATCH 096/133] python main.py algo=fedavg data=femnist path=(your leaf dataset path)/leaf/data/shakespeare/data --> python -m fedmeta.main algo=fedavg data=femnist path=(your leaf dataset path)/leaf/data/shakespeare/data --- baselines/fedmeta/fedmeta/client.py | 2 +- baselines/fedmeta/fedmeta/conf/config.yaml | 2 +- baselines/fedmeta/fedmeta/conf/data/femnist.yaml | 5 +++-- .../fedmeta/fedmeta/conf/data/shakespeare.yaml | 2 +- baselines/fedmeta/fedmeta/dataset.py | 10 ++++++---- baselines/fedmeta/fedmeta/main.py | 16 +++++++++------- baselines/fedmeta/fedmeta/models.py | 1 + baselines/fedmeta/fedmeta/strategy.py | 12 +++++++----- 8 files changed, 29 insertions(+), 21 deletions(-) diff --git a/baselines/fedmeta/fedmeta/client.py b/baselines/fedmeta/fedmeta/client.py index 72e6e672a306..806583665d42 100644 --- a/baselines/fedmeta/fedmeta/client.py +++ b/baselines/fedmeta/fedmeta/client.py @@ -13,7 +13,7 @@ import torch.nn from torch.utils.data import DataLoader -from models import train, test, train_meta, test_meta +from fedmeta.models import train, test, train_meta, test_meta class FlowerClient( diff --git a/baselines/fedmeta/fedmeta/conf/config.yaml b/baselines/fedmeta/fedmeta/conf/config.yaml index 94b68c515e9a..db1bfb11f169 100644 --- a/baselines/fedmeta/fedmeta/conf/config.yaml +++ b/baselines/fedmeta/fedmeta/conf/config.yaml @@ -13,7 +13,7 @@ defaults: - data: ??? strategy: - _target_: strategy.FedMeta + _target_: fedmeta.strategy.FedMeta fraction_fit: 0.00001 fraction_evaluate: 0.00001 min_fit_clients : ${clients_per_round} diff --git a/baselines/fedmeta/fedmeta/conf/data/femnist.yaml b/baselines/fedmeta/fedmeta/conf/data/femnist.yaml index 6ad6b64498fa..463e3de613bf 100644 --- a/baselines/fedmeta/fedmeta/conf/data/femnist.yaml +++ b/baselines/fedmeta/fedmeta/conf/data/femnist.yaml @@ -4,13 +4,14 @@ # a similar configuration structure and hence be easy to customise) model: - _target_: models.CNN_network # model config + _target_: fedmeta.models.CNN_network # model config client_resources: num_cpus: 4 num_gpus: 0.25 -num_rounds: 2000 +#num_rounds: 2000 +num_rounds: 3 data: femnist support_ratio: 0.2 batch_size: 10 diff --git a/baselines/fedmeta/fedmeta/conf/data/shakespeare.yaml b/baselines/fedmeta/fedmeta/conf/data/shakespeare.yaml index 36c4744669b4..300e11da77f6 100644 --- a/baselines/fedmeta/fedmeta/conf/data/shakespeare.yaml +++ b/baselines/fedmeta/fedmeta/conf/data/shakespeare.yaml @@ -4,7 +4,7 @@ # a similar configuration structure and hence be easy to customise) model: - _target_: models.StackedLSTM + _target_: fedmeta.models.StackedLSTM client_resources: num_cpus: 4 diff --git a/baselines/fedmeta/fedmeta/dataset.py b/baselines/fedmeta/fedmeta/dataset.py index 08b6de853742..db11e2324f09 100644 --- a/baselines/fedmeta/fedmeta/dataset.py +++ b/baselines/fedmeta/fedmeta/dataset.py @@ -9,14 +9,16 @@ defined here of course. """ -from torch.utils.data import DataLoader, Dataset from omegaconf import DictConfig from typing import Tuple -from dataset_preparation import _partition_data, split_train_validation_test_clients + import numpy as np -import torchvision.transforms as transforms -from utils import word_to_indices, letter_to_vec import torch +import torchvision.transforms as transforms +from torch.utils.data import DataLoader, Dataset + +from fedmeta.dataset_preparation import _partition_data, split_train_validation_test_clients +from fedmeta.utils import word_to_indices, letter_to_vec class ShakespeareDataset(Dataset): diff --git a/baselines/fedmeta/fedmeta/main.py b/baselines/fedmeta/fedmeta/main.py index 250cde1f655f..49f454b43bc9 100644 --- a/baselines/fedmeta/fedmeta/main.py +++ b/baselines/fedmeta/fedmeta/main.py @@ -8,13 +8,15 @@ from hydra.core.hydra_config import HydraConfig from omegaconf import DictConfig, OmegaConf from hydra.utils import instantiate -from fedmeta.strategy import weighted_average -from dataset import load_datasets -from fedmeta.fedmeta_client_manager import fedmeta_client_manager import os + import flwr as fl -import client -from utils import save_graph_params, plot_from_pkl + +import fedmeta.client as client +from fedmeta.fedmeta_client_manager import fedmeta_client_manager +from fedmeta.dataset import load_datasets +from fedmeta.strategy import weighted_average +from fedmeta.utils import save_graph_params, plot_from_pkl @hydra.main(config_path="conf", config_name="config", version_base=None) @@ -81,7 +83,7 @@ def main(cfg: DictConfig) -> None: print("................") print(history) - output_path = HydraConfig.get().runtime.cwd + '/' + cfg.data.data + '/graph_params' + output_path = HydraConfig.get().runtime.cwd + '/fedmeta/' + cfg.data.data + '/graph_params' os.makedirs(output_path, exist_ok=True) data_params = { @@ -93,7 +95,7 @@ def main(cfg: DictConfig) -> None: } save_graph_params(data_params) - plot_from_pkl(directory=f"./{cfg.data.data}/graph_params") + plot_from_pkl(directory=output_path) print("................") diff --git a/baselines/fedmeta/fedmeta/models.py b/baselines/fedmeta/fedmeta/models.py index 51f28e1f7e52..13183d891202 100644 --- a/baselines/fedmeta/fedmeta/models.py +++ b/baselines/fedmeta/fedmeta/models.py @@ -11,6 +11,7 @@ import torch import torch.nn as nn from torch.utils.data import DataLoader + from copy import deepcopy diff --git a/baselines/fedmeta/fedmeta/strategy.py b/baselines/fedmeta/fedmeta/strategy.py index 7d77b81186a9..22dc4df84dd6 100644 --- a/baselines/fedmeta/fedmeta/strategy.py +++ b/baselines/fedmeta/fedmeta/strategy.py @@ -4,17 +4,19 @@ extend or modify the functionality of an existing strategy. """ from typing import Dict, List, Optional, Tuple, Union -from logging import WARNING, INFO +from logging import WARNING from collections import OrderedDict +import torch + from flwr.server.client_proxy import ClientProxy from flwr.server.strategy import FedAvg from flwr.server.strategy.aggregate import aggregate, weighted_loss_avg from flwr.server.client_manager import ClientManager -from fedmeta_client_manager import evaluate_client_Criterion -import torch -from models import CNN_network, StackedLSTM -from utils import update_ema + +from fedmeta.models import CNN_network, StackedLSTM +from fedmeta.fedmeta_client_manager import evaluate_client_Criterion +from fedmeta.utils import update_ema from flwr.common.logger import log From f743f17d72318b3dc9b9b12ba127ca6b6699716d Mon Sep 17 00:00:00 2001 From: "JS.KIM" Date: Wed, 4 Oct 2023 10:55:14 +0900 Subject: [PATCH 097/133] Update baselines/fedmeta/README.md Co-authored-by: Javier --- baselines/fedmeta/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index c7b45c030610..34855738c87f 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -85,7 +85,7 @@ Poetry shell ****Start experiments**** : ```bash # FedAvg + Femnist Dataset -python main.py algo=fedavg data=femnist path=(your leaf dataset path)/leaf/data/shakespeare/data +python -m fedmeta.main algo=fedavg data=femnist path=(your leaf dataset path)/leaf/data/shakespeare/data # FedAvg(Meta) + Femnist Dataset python main.py algo=fedavg_meta data=femnist path=../leaf/data/shakespeare/data From 1bcd4d421703b2a20911ddd2dc101d47b222fc14 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 4 Oct 2023 10:57:22 +0900 Subject: [PATCH 098/133] Update README.md --- baselines/fedmeta/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index 34855738c87f..faebf0ebab88 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -88,27 +88,27 @@ Poetry shell python -m fedmeta.main algo=fedavg data=femnist path=(your leaf dataset path)/leaf/data/shakespeare/data # FedAvg(Meta) + Femnist Dataset -python main.py algo=fedavg_meta data=femnist path=../leaf/data/shakespeare/data +python -m fedmeta.main algo=fedavg_meta data=femnist path=../leaf/data/shakespeare/data # FedMeta(MAML) + Femnist Dataset -python main.py algo=fedmeta_maml data=femnist path=../leaf/data/shakespeare/data +python -m fedmeta.main algo=fedmeta_maml data=femnist path=../leaf/data/shakespeare/data # FedMeta(Meta-SGD) + Femnist Dataset -python main.py algo=fedmeta_meta_sgd data=femnist path=../leaf/data/shakespeare/data +python -m fedmeta.main algo=fedmeta_meta_sgd data=femnist path=../leaf/data/shakespeare/data #FedAvg + Shakespeare Dataset -python main.py algo=fedavg data=shakespeare path=../leaf/data/shakespeare/data +python -m fedmeta.main algo=fedavg data=shakespeare path=../leaf/data/shakespeare/data #FedAvg(Meta) + Shakespeare Dataset -python main.py algo=fedavg_meta data=shakespeare path=../leaf/data/shakespeare/data +python -m fedmeta.main algo=fedavg_meta data=shakespeare path=../leaf/data/shakespeare/data #FedMeta(MAML) + Shakespeare Dataset -python main.py algo=fedmeta_maml data=shakespeare path=../leaf/data/shakespeare/data +python -m fedmeta.main algo=fedmeta_maml data=shakespeare path=../leaf/data/shakespeare/data #FedMeta(Meta-SGD) + Shakespeare Dataset -python main.py algo=fedmeta_meta_sgd data=shakespeare path=../leaf/data/shakespeare/data +python -m fedmeta.main algo=fedmeta_meta_sgd data=shakespeare path=../leaf/data/shakespeare/data ``` From e02d6bd4b96b52a3c2423d95346988de22713748 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 4 Oct 2023 11:06:14 +0900 Subject: [PATCH 099/133] rename docs --> _static --- baselines/fedmeta/README.md | 4 ++-- .../{docs => _static}/femnist_result_graph.png | Bin .../{docs => _static}/shakespeare_result_graph.png | Bin baselines/fedmeta/fedmeta/conf/data/femnist.yaml | 3 +-- 4 files changed, 3 insertions(+), 4 deletions(-) rename baselines/fedmeta/{docs => _static}/femnist_result_graph.png (100%) rename baselines/fedmeta/{docs => _static}/shakespeare_result_graph.png (100%) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index faebf0ebab88..73ba98f18767 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -119,10 +119,10 @@ If you proceed with all of the above experiments, You can get a graph of your ex **Femnist dataset experiment results** -![](docs/femnist_result_graph.png) +![](_static/femnist_result_graph.png) **Shakespeare dataset experiment results** -![](docs/shakespeare_result_graph.png) +![](_static/shakespeare_result_graph.png) diff --git a/baselines/fedmeta/docs/femnist_result_graph.png b/baselines/fedmeta/_static/femnist_result_graph.png similarity index 100% rename from baselines/fedmeta/docs/femnist_result_graph.png rename to baselines/fedmeta/_static/femnist_result_graph.png diff --git a/baselines/fedmeta/docs/shakespeare_result_graph.png b/baselines/fedmeta/_static/shakespeare_result_graph.png similarity index 100% rename from baselines/fedmeta/docs/shakespeare_result_graph.png rename to baselines/fedmeta/_static/shakespeare_result_graph.png diff --git a/baselines/fedmeta/fedmeta/conf/data/femnist.yaml b/baselines/fedmeta/fedmeta/conf/data/femnist.yaml index 463e3de613bf..d43f8dabb43f 100644 --- a/baselines/fedmeta/fedmeta/conf/data/femnist.yaml +++ b/baselines/fedmeta/fedmeta/conf/data/femnist.yaml @@ -10,8 +10,7 @@ client_resources: num_cpus: 4 num_gpus: 0.25 -#num_rounds: 2000 -num_rounds: 3 +num_rounds: 2000 data: femnist support_ratio: 0.2 batch_size: 10 From ff1b58cd926d0e02fb6561567ee188ae25e7a660 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 4 Oct 2023 11:34:40 +0900 Subject: [PATCH 100/133] Add grid line plot --- baselines/fedmeta/README.md | 13 ++------ .../fedmeta/_static/femnist_result_graph.png | Bin 151963 -> 157388 bytes .../_static/shakespeare_result_graph.png | Bin 108181 -> 112802 bytes .../femnist/graph_params/result_graph.png | Bin 151963 -> 157388 bytes .../shakespeare/graph_params/result_graph.png | Bin 117804 -> 112802 bytes baselines/fedmeta/fedmeta/utils.py | 28 ++++++++++++++++-- 6 files changed, 28 insertions(+), 13 deletions(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index 73ba98f18767..c30bb09a5fc9 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -116,13 +116,6 @@ python -m fedmeta.main algo=fedmeta_meta_sgd data=shakespeare path=../leaf/data/ ## Expected Results If you proceed with all of the above experiments, You can get a graph of your experiment results as shown below along that `./femnist or shakespeare/graph_params/result_graph.png`. -**Femnist dataset experiment results** - - -![](_static/femnist_result_graph.png) - - -**Shakespeare dataset experiment results** - - -![](_static/shakespeare_result_graph.png) +| FEMNIST | SHAKESPEARE | +|:-------------------------------------------:|:----------------------------------------------------:| +| ![](_static/femnist_result_graph.png) | ![](_static/shakespeare_result_graph.png) | diff --git a/baselines/fedmeta/_static/femnist_result_graph.png b/baselines/fedmeta/_static/femnist_result_graph.png index d03f43dcfa848246c4bedcf07a6a0deeb51aa990..c66618ebfc40350c220c3f205d4970ddd4d3766c 100644 GIT binary patch literal 157388 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

    RZ$D;O1` z$x*vL`;qphyfU3RLGd085d|vJw9+Tvr?w|P_mMqTu7|&}x zzFh<~>kU5LCN^RuWLLtZ-~3W~Y(J&*0kGnA=51=n{DTDB_3lY`oqj+OE2<4L6sD z7~|=73jW4Bj;gmc^Md~8M4(o(k1`dgzZrpKr<9g9n)dS{bY2b#xbO6)Oyoj)VM0HSnYNx%-g-ZEr%gik%n>e-GA#<5 zU9LLz#$K9VWUc>YOpFar4B^z2;f=DyH1ck_hT%8LmScw7x5!~%r}N74jN?#SROf%a zXwd7exNQhf(Z<}D`?c)rn04a$+PY%Eg)WyO)Pir1?MQ5(3ynwMd~|?^UD^XZKbE}D z@zuS3J{egoD)!MzNs$u@1dB08(O?JfChYZm#kIb2V-7p9>O!eW{o9vC*_y6rnNgLd zlWv`9Clw;mQ}>$18r7dV+i1TcxibI8mXujVlNeD`Zb7g%+##pvP4w*0U;{p}OpwT` z5lh|mvLB1vll#1qLFgjlt--gp{?_@}UfY%jsG{P%r^s_Z{Ht#o16MIjGX{Cg+>_F) zt$YyUTju$0OwJ~=^1Ga>?w94WRtH;UYY>=m&a4RkH};NLnKCEPwU$mwBIB zHnZqm4mRw?Ix#vNk}T32VFsJ$I~Dilcv5t16YjWT>@JSwgPv7;V;9ey&Vt=n)VuG| z(^T3+)=vMHkgHhLpmj@xQ@Xld{Ryvp7cx!*c9C)-jYG0zo3$GMo3AH3@`aA?wYHa` z6W7_UB(HysxHOR%%EFBAX<+MerEbFd_IqHLC1NO%?aE2Y?q`a+`#s=`Yn!DT?^k@^ zMYavBfofw6eGItDs4Z2J{)HS~7hasKvKhx!#v0<35VZ5>CpYhEQ6jNU0<5b205NA| zgG+@<#gJCYXWj0*_2t!!^SiTL)+I*8suv2%7usoB7Ca_?h!lSOtP0R-?QuVpp5Sh& zYFU)?Godgg$k~}1I2G%z_~m$c*ug`Ev|}f}FuOjIHk87&FE@p8W34DXerNWj*g!#P z=qOB7JGRP$Pimsjt%Y&Dl4wf;$niyoP5-b7*j>F~Z52~jpLd-XJnTX~{Nn>0m`4Y0 znpy>e@@~i{%dxt&tM0hqB?WsA(`UpPSzz10*zIlXhjr*>Uus2+fv+6!>Hd>xFR8Idh;Glt zDzPT;U>RR`q?IYp%%y5}AD8G?xG6gzTd~PEI9ma~j3RT8-8mR??RLE`?A7CQt9(uP zD&WRv1a~n+)%d!T1t9`QPtLyXPn-9VmObBxl@*e2ZWzygP$$u$e`CU>zprA#vN4L??v^e%JnaMB&mRtMLk>?vaF3;lIEs(%h`;$ucPuluY zTQGNJ^A9(MF*A0nuQqoZsBYhQrh4$=nwr`pdi0S0T~zf&&F&^Z=SO+%f~#nmE3THb z+(2Fv6N!4+`BCM}h|CvPl>2QSUe&MAMP4AOwY>Tx{w})p^Z)|0QhsSLHiNTc$M*zmXado_Kf&1!7Op zTS0)K_Vx((2pT9i&t@!JhBe8!`rRO@HlA!P*jrfBaVwXLEc=Pf#)cy8)#$%SfW)Hq zwH$(MYeMll|+`ioIzxnOpwvXw>fTjB#KHxn+r0lk!LLEGU zrs?+0p8WdH%svrhI#!ajA{0Kp1W8fwd2T?hY|Th{St0Z~%EiYDRhBTu|8y~0z5gES zkKf5Dp^aL7$HhJp+hZ=P6Px8&hUK@0du30z>!ePi&;bdbbqgomvQkTbYp?y}Y}|y* zge3IRm-h~>AM9z6zm>I_n@%p*38jb&!P~oj!+JkXPrXGG{%anG6%TFJ=C#`AJd53crgdy)wEU$3mo;!@ zo9wIZ`)k!hL-ph%UA3?^_oitkMu4Je8ofB@!0QvZY;K!LWK~OG6e*FB5_%gm6x0!J;h*4%lxX!!cOZIZk(Ro~bys!clc|kAphS zcI;ooN*Hfz7~f1tqPb4&8B6Fo)JyP8$jDUI0LqPX41BYD$M>meu8jma2cl@5XDIm- zNxKi-*r0vT!D>1wG72mz5zL;dci3#HxD1x5bA_qewzcKn@=rf;q?*}5Q%S;~G}*-n zgWs@V<)u=h&m4MDwrqZ0q2TV6A8)n}Fa2N#%7%XiQZ>I(*D9Zyp0!s0kJOmXYuSZ? z?{2ltQ+-m5;DNfRwB_BplyzcdN|7q=7F36~Oe4M|i@D)|joFdLG@(JA%S)_9cbl?a zKF}{xtrdH%(k+tr#TLCd?@4o~2d9;)&;gE-?Tl87(npR#{y`J64~N=i3Y5a{=}&cA zD+>j!M|m5*`qBsA!FD;3BXuf4p3fSf1Iz`9nu;1Kbz4iV1QwX%&$@b^TO?UEHW+jM zZhLdSRbS_<=D9^UA-AJk8;D4sa55wC;RmUhBtb96TztqIOrZ0Wab5+Q?y#pD3{z*H zCyAxE!#I@#2SncK5^H~Jef2(F4l_r>VdO$}eSP)Y9hq}cfLmE!?(oJj;E=QRt zNy4vKH9n45WBvl*3qQu(G%mg!4Yl^%x*9xoZ}ZQoqO#ZjxZk~Np`kY8>fLI>H1r${ zDtzTbp*}Cl{!!f?6Yh@@k~8dkpIK>$TEnvo1>#$|%#kuGgh*soJwHV+)axMNoR$^WCdvC3!~= zbPR5X)kg(Ao|vHw4>?hiK@YN7CmVOv^wBQAg_$n!hlv$wnIP_#e3&jT=e_dfV4Cvo zQYz}J>Uyv246G^RY?ue1>-mHnPM;-;)HPne$R<5;LSCicxK+3RH7@AAT^oCLoLjCm z_r>1OqQUIeHOwH%jvQ7IRLowB8 zpykl@+`3ley7D`Va-)P*jvBJIcGW0jQv(uY>V3ZIP8!=yv@v%<>TG^Qx{*0TDt!j3 zNZp_bQPwJ~ujMXQYOU8#e?9}U#H%Yp zz7tQnrKKZQD;*TqikXTkfC>1+WE%NkIzzc|2K{F_!n=N(>?f9~+fMMG`V?KH<-l3c ztd!@Fsad|jr(dV=Ww$4hP8nL9O;Eb#K~3T>)&py@Mo2d5zU)EmIcCo$T@+nSf1i|a zJ_*XhwF3x|igs7t3?XjHcg3ms@2wQ$GD-|5c@R0iWs3~=4QdQOjL?kh(pV^x3BRJ& zFrZ^zoMkEF008*9v; zb1KTKW~WZH83nt)mniiooo)vAOG1A%<*qa~E`e{iaI$kbL7({sH%!A@lAr+H7w`X> zxv$^qZpAb;I{xaH-pjQJ&&zQy?#&~KNH;AS`J6KbkV5kMcHRNsei`)LOIwyNjWz~8 z_iXfHcy;;=8`Ox;HaHZp$r-S>cnYuH=~H6=yJJNLX#ayf_{z=VY#l6YF*0tEt2DEX zIuw1B(-hd;x|G>R+iZx44sQ{jSnV#NnnK^wAE+Yv?FsgaIH}pUf5%J0fZ{x4E03y6 zN7K@DXQ_a?X%c7RN(kHj@o~6lKeJ5x!hOiStub}CVWDr@5DB~3mK+QMgA?@`s#xS2 z)cYMKmKwo^yFu6c{bM@}BW&BDf6yJ2c6ZFtU}2BIwpo0Q)~jvMT`#%Fi>I*dm9G1Q z8+8-DXwt?;UECztldBGPQKa4R*!rJg$)4zsf(5hC6k$3uxS^@!LMdXpVzB5C(BO%D z2*exfFcKi)MP*>y``>5IU5w@h9&&An=OBt`L zCDB~_unNmg7&Gyqwdwh<(pvyO8KVS#xD^_m9E`Qv5G1zpBzi*#uuCoIXS1qarxGxg zP;bP!D2<^hlR#?NVXpSI4uo}+{bg6<-hEt5pz$+*x0wcPEB=S0jdm9@Tt+$wEoUCY zoc9g-J^wYpiE4qG%?jjODAO-4bpV_GZ7m15%zN4s@J_@^Q2>DfB~>WdGmb2C*?)b$5- zfzlFg?B`WJ{fC6FN4-XFYYd$7{6Nme4`lz_p>y7Uk=U!k4p*JIdF$MvM9O;Q_(zqg zg5c%`)z;QiLGOW2DQz&OR{OH7jk$e(j$m&bmdI|C{T_5)HSUza(;eT~t+H*)+KYew zqr1%{;`FY|Xn>1hgaYjsaM+Q9?B!)ZiIsWll`6GFQg1v+fX@^A9 zLI60Uk4e|1A0MAY@|8rK$%q`yb=T;5KhtNDrIxyrh`y4;^X6U*YvPMu{Pj!FevC$X zNI(+m)<{}cAK}QEZv#MRVeT^tGEJJX>bF!SD>@?N?i^Ei)?IOn{`i|O>tB6YcZk@Ew3z{kn)%ru`tQR&MX912 zT|~9=eBA+(KWtx`ql$0yUjb@__WF~1JLioI3_M3kE|i^G6?_}N8Q(sdbLj`of%<=M z?rQDH`WctC*yIX za8(IVJqD}t{5Cmf6S62Y&I{6ud@wSUr4ozb!D{_e5 z{Hxa`E!MWJ#@rm#6@~&zONoo9+9{3{pl2*Bav-P0;alN-3M%Mera8)uP2&y8S6Om2 z;RvhjTsxwrm%z68>a}9MEg`RD%IsnjK?-GU2Z1|eO86EiwnjQ*zj*?vQIwg>k5G3A zp+t3{9BZj1%!Al*x^ZZ38+LX+_ zK>7r&*>JOimNEO@gz9>Kj>B%u;VRFWxuU)7>r!l9oT$;<7g+dsRNUwiL@8{1)0ggZx)9d+n8v;m;l=IM?Slvp9#*5}f*Ztj!D9#$>( z4J*!jGZkmDP!QiC5ME#ue_p`o3|igU(c$N>>mJ+{&u?ev-u(W$ciMz1K<&@6dH(=N z8_Y1Qi{|kac4I5fnx@5#g$p54dc5acSzXdUysU+7&V4ZZ&ift)HDo>})F4Es)V2B8udiI+AXK5U)JS=8kV!%!AbU zv{F-3LXjSER%k4Lc8pbOOSpv?#^90I{09FKEKxqMGpKfV^1l!6`X5to9Z==-#Em|O zLrH@m9fE|U(j8wB6-1EELn+h?ucS~Mgh~C2U*U9lu z?H_u5i*X6-i!_oXq+2m|0{WnJ2SSZw+CWK>%l*!76fMr-4)LpagjOY=RHcSc^tffE zU4{8oErxF5Q8-215|G5M?Ydf=0J@uYUwbJ5PNV0m-8%W*swS<&kCgTXONj4J%_`fd zD(QbPsvrs_RDgF!F8}217ar)yAI-%=K5JrIKz$3cq?sf~ZY+ltTErF!g;{2ZdRPQ& zD^HnOdFFOK>X#rR9VJ2A2zejuVmWb_;u%@!k}@)R$> z1LX@^W!D|vY_`S=UdOy$G6tPJK6Ioi!u!MVdzz9r(tUuvIRJE9YW{a`2Kbzi+=QX;r8`xsl43SDd* z8v2}V9kh-=tNbotL>uY{d(k)n@}E5tQN__l9miX;8I(wj6?4uGQyk2tOG!ftTCDeiBzY@L^!F{|(;^+OENkAB}xQuUiD3vhk?-S2oGI^Kx6r_6^n zs!{f6eW7}f-T6i+Oaiv!fzzxWL#;00HmZ?Sz0p!PXK;HWdA9TW;jzr5sL&C)@O;B$ zR$@Jf-Qp-SCmL^;)=|w_*G^A2@zPkG*%dsp#i?OXlGnKX0L41r;Q7o8!CU+)r0uW@ zbMf%CRE99juituDPI-xI77#8v#tMpi2OYOgmo$`*g(3Azht z3a}{LkuZ|EqM)t8RyFtoO-F;z`l-)5i=D)BTyFqW4=o_6JzWS|PwOW-#?KGBh_E zEdmx&NnR*c6v`&>y?hLWuvlw3mfN!&~4I}Ri@}Q(eI|{5d75I z9gm})1Fj|i^Jm<|TAGB0r@!?P_0KczSX!sOB=m&Cw*q?kPIlW{g~lgZc;_qHjZ0;S zgvRoSqZIw0{eI)>rJu{I;b#6@yhdw%$(B+e%x%4W;}N2Z(c?03L(ee8sOu_Uyr7WH zV8^(`f}*CnfdU$AHt}&unp%`#W-gDuvH9c>y9^m>PL23i(ov>s_3q}6W)yL2kCE%f zW58nq%|Ep0H0U59zcjlKmH^6O*dDAK6>y<^$vJP>`;qz4M^pE)SXo_Z^ZUke!m$t% zvP0HI6|oFAA0>1qtk4hAeOzU@alKIaGVFsFTuJo?EGQhku&6S6iYpaKXN*~8O{Uq11()#?yRU3>g5Yp^oW`-b?3$U3xt+4Ej&jQgO89I&?cR2r$DYU3{CcwH z53YftD#~4ZsRoKZ|e>q+`IO^seLrJZYj z#`ya{H7&0wzURpPaIZuVtkq*a?*#uAsYr9}g*~c5Ds^FKo>BAn3>LCMV!r5n0`Ol6 zwo_UXY~pZ^kgQvI_V{9LW&}d^W;}P%M;am5d-DxOerDG;wQv2M%@u*1d5e zY2D={u3`qwN_Mq`n%Z89l}cd5apren#+LX!ycTD{wn@!~^`a_Pr}M!#3DH|w zx<74><_->|^8J3B%flYF#^TfojP*Wn0F_t~ZvyzP@gKcwvllBJ5d&bEt;IXkR95O{ zW8O}ar%_8z&g;)ymH+1Fx?HTRh`>S{vbLJjxV;Tb3LmV39n3+*DKX$G33Nf^__NTs zhYAZb^8ot5m+gp6S7U@$)PWAXQ64XH1ApI%sZ%5|C<$j0xr$y}N#o&sfVV>!FyQ>~ zJon6Th#58Q5cnf98K<%0CUNV~t4eRxY{Yugqnk(b+I{zYz61_!8@RLA_wHcKDjh3n zJr!si{$BC%K1<)Y)_fh!?S|(aGAGxWp6`8gDh8qD3(lN-I9HS>PinAcH~S@JCbh+S z3KdfH_?dLio&`7DCzO}ha1-(g(9Cb>zcQVU!)G!qa(Qo4Q0x0VB^ZP=7Jm?_Yjjsj z@4eM|bdnkUdq=c9SjQTN@&Ph+_>{aR@H0+n34!-xH}3tk)8H|YFVXNy zSSVqb5YDpZGb<+MjP3;jKCjd!CN9cWhFJH2i#9c7W@69O00z%Lq^QBWuTzKBP>~|Y zvx7kOoZmYv#2f+Vw{~3?jPe?XVNCv&4n-zC0^!Cd2LUoqS{|)8 z`cO)Np|?9Z(YxE1o4C2CW;<5fM>NqYfg-iRjTd?-qP>wLt{j2jzE_IzGgfO?b|B)S0#tf^sPxTiU#&H)eMQ0?7nP+Xzj@R_Q>xi$nI=THI^TUmL|(B00U&CZ z!%{#{`uEo4?$A(Qq(I{zKWo^I0c4aQJtb{Diim*Ek+L9#?YJWb|G-Mx&Qge>4o=*X z7NYlbw=T~M_NO)iTB7>f3jJhW-&Cb<57Z02wChUp8X4{*E| zPN>=v|FCoa+mswInKIuAG423 zhBdAE?48S$a7}$?p=&YUcQ&&Q?}_MZNU@WtnYC}>J!nW<*dTN&LuD`@$z=$$Oi86T zw6D6Gufiorvn#$a|Mal=Ed1F~)4-CB?da<(>42jh?Y=JSz{VzPQfN@7PR3oPmez-1 zW@(HHtoj_i>ifSS{~f|Y+E+eB1dDh@xf~CR7OJ>Wm1}wjD|57F6pcr5S2k+lMUp7L zOQ+YV_tlZnGVWJrfA9;xMIW-NSrzv?C2KM!A=2u_2LXHEH;B(;L8m+QH&cIbm7-oT zz@SU_Ly=Ltz)?;z?iN3>>Y0X4bBl66;vE-JHpp{hs%8*qZ{_Wxjv;~)DLz8qU;NeW zJ$+qjh*F9A4v(^D7EH{{^T2H}S7Czrp^lJ4QN20<1I3U0`Sc;GD((a7U0a<>%BNDF znk#>2>uDG~4ym&pa8qIT`SbdBjMjd9iN3CVCYScNgr1Gjny&~sq_ee0#IviIfA;Y@ z8E`JD4Y9_=O=C9#)Kg?TZKlW4oN!&?zOKGdQHK6PnRGO)lyO1$j_l~^fV86hiJLlaVaOiPt%>|>LyjNR`{Ojzx;_d`l;h8SK$PWxJ>EP9E8 z2A|7X9YilerYe$6uiDjDCeXjGbdnN^~ z=%3gXF}j}RjGplNDzYaLjfHT81ueg?z&Y(fS(D^sH!tq=P3ifD$yQi1=Y<$pSEM!% zY^Tm;)v=4-gNcm|TTV{y??f4k`(`Po#2Y5#u|i$YS4>t_l?0oZ;eFQC+p? zqxC|l9b(rl>**)eYaM@nwMv~pnNNHyJSllY@jJDO$>C#4@yL_8+o|)G(M>%k?QV6b{eoJ{cyOau z-odhB7RdzZ7>bv}2r1X-f5D^S?S!86fQY_?525NjHJ&uk?PX zos19uSmBP4TmG^nzuM*btViqaLiH6KgKmCcj-Z4Kwp0IkUBB*^h1;@_RYimy=w~t> zLGU>LJ|U2k$;xNH%{{ee%kY8{3BQMzaiIgijgq^s8$cWFs@bEA^66te2bt&c@@^4b z8@tUQ>3y;t*+*1u z$H~L<7=cJxBpxNx-+{l#-%NDGY;_(fYq~%D7IVCs<^Z{9iYnBk;~@5orYpMcJybrL+ISSh+Ko{OvjorVHBW}^z0ySk>4tpaB<_Jp z9&Rp;X3srlh>4f?#a?Y~t>}S}5a@KP zATR&+OhrxYQ%=Z>(dFOq>svi{w~MhM<)r+Ry+uA@dI^kY&p-+FxN2tIuOhZz&X=5d zM%x@0-h9a)tjIZ7{fseJ$bGaCW$tYIke)(8{M!$2h8LZuDRmi8 z=9Cr%*@B|X^Y@r}1^eYxy1f32&#k3o|5OyFRzS98F4;E@kWF)W{{f@k)4!wD~ z^C*a#@yJs!uNz7Ko(Es~zlO+YCi=IrF?GUc{Lk}dLvF4_Ku1`skmm$De|HqjKq8F0$7Q{S>$9p^gx?g}Mf>jc zyISD9&mYfH#8cN+e*7^VSLMhDkKzYjS$NP(-A*~4tTs|F5=5+PU|sua#tyrmlUa9U zY;(vx4a#r;n%7yrAR&F(x41_=$5qlumY0_oUd{3(ifOV^%C^G1kA#six~g2htFcki zcDA0v@BDD@(D5fFUX*^6hl)1B=k{W+y)aUM#KuRr;lh5;X0>1T>s3MvUo%O|wo9{I zy#Aj@`I`hK3M|<|6G^q$9j)~N0T<)#?dda@>7uks#5``bO)nYQlj9ex#j~X zm|X!BbTRl4_+1=#0!rRY+cywSSKGC}!NM;ExgpRZbKDa~KXSgNLo&T8>vy2H-om6s z>SI$=X8ZazHWlI!UpZP_jfpUFb(kb!8p$HT&WF3zen44*T+;`dd!;$`cgB27gS9h8 zLGQTsfJTfir5e-a+E}!w%8S;>2SI&`m-r;lq1~1*%~dO^r`~nq`u&w?oEt$`dDMO3 zOb&kXg*7)7iN<)LvqBfmnx&#%A{+4J3GkFeZB16N$MNU~CkR+9zN19Q0>S!^6kl18FQw?CdyK=SS`Nngt|OI(0OO8bP>ku8dCzI%Kt{_|mocP)^f! z4y0tJ&)!tkR~firHE#FsZpYgVAAOHlc3e)?w9H+SrG}y?x1h>aHzOmQ1u+=w@_G<; z0zcWv#fvBN-vRDsNe(?Dkkr9-98Q;EP+Kd&-ZHyHam~s5ETh*Rw zF>eZKZ6}uC6XsGk*Tign+1lX1_~GNiei6k?@IGw3t8XmqzFEk*-<|Jsq3L zUz;E28RX;=?B324yyWv0U3_$CGdy5Is8>ZlfH^TqApgTVSUaWqfyahHLv#a3y3rBx zk8Sr+iuevWnNX2}weGzLRL_^;7oKR*GI85pVFp;ZZk?X^f)gcWiUO7|V^5ex#{Jj$ zg!ZWs+MKda@dx;q;xc}!z6EY}F~8?sQBfr!Zn{OH0S?nXo(@S{L=^hlvv1x$hy^{+ zHQaj)y^0K=aNU)bk?ZP<+Sg`rceCWe+kJY19M5d|NJ&5D0P}ZX--Dz!MnAcMde{GT z72DdS*OC9Qz2zI|?Yl5HCo@yJ_`}$Nb%uD*LXH&`t9F|#(L#L3mftaLX+xRui~UG; zT>Hj4k;zzKK|vw>wa+xQw!%}{(Am|y%*^}uup9sAE_1Tt_l~E{h)?u=-MX*7Y4llJ z@qzzW61JB>7?wvC-*V~%7dIKBz^JRpl5Yw6&Uw>G~*kc z*p~F0>YGTnw99Uzl8M7G;z;eU#13LJ%NHfhE<#Z+#H?@Y+$JUUA_HEcLN#`-&P1UK zI-gR`uC0vid)SHmGNt><~ zV+_0)Q4$?yRY;MBd-_hiMu*Gqr`}W(7hlL`<$U7GBMC|(*7_<@aA_=6+>N~iXenK(I_5d>%da?r)^cT1*1!pDMO1vaMz!$@ zivb8nG+H<~1(d^5N?oMx-x76y{`HfxBf_v%v%(@mf(&$$xH_*MgOxOl@7SdlJv;h{|=1!VnTv$EK@S=VO%^ycYmJ`Yax<>miy5qSQpc%PlNqd$@wP*@!D79yk#512vSV;$S9-!MpBh#jAxf6!Xp zqJhQCKU}pM=TOC^>*dNCWf8_TkFoiDiii%^z$>e~Z<5FoqO*T!TLb`xGb76k1XlKw zll`%i(;!0%hMc9Jfzk}y-6up%SjOh6#uip60dt$b0|DwW4ri`_T@s+aj2@9pCn#t? zPkbeYD1}Z>%`W`-5E>5JN>(5K6p+V@n$tA6*vB(b;|vi!$gTXh@e{x^oW4EzGBHpp@H$YG z{|pz{utYV??jbqbz+BTXJpCLl`Gf?Dv@$|$7>+_0&kA`%!^v8jFL={N>P{y7uR2Q9 zkUsnOcBgFC-Mru!w(RLaZ({7!tly+E?shS@*1Ii!Ay6pD)1%I0YUaJZMy7v9g1fsn zg(vElc))l9@CxoN*~!$OFeQ9JQPn6WKD+ify5YR~iWZ6vYQ#QWI>z7^t@u2wMqc}% z0)_L5fDYVohtUf5-L;(7u-m2-Z@>TdkS#txJ+CO~_GP!KR`&Z`H}TiMi~}TYtiSQU zvi_#bf+;84Kshkqg30@_)+oG*L`K1#Y8ae~= zP50?CH(C6ukTst$+desPWzoK;f(cqNkM&fouH|&jObx2;NebMi66$uo8fKmDGT;!8 ztcZ^l>OS;--D*=}D({_sRW$Qr`6~uQ9#6TXGxqQsWp>i^y%xp``W*+Cug638``c1F z5W6h}HzBe&vgoTz5|kDwY_cg*=>mNJg9lt|s~YO9`dZjj$_Zp@t+Zs!{WA>Wn68x- zJ94g-S$s@dhN9-6_)KCdjHl#+f>vwR#9sVE741C396rh(T4bZN_E)_6wQVPJbK>%R zLqPeZuAG^WveagQiEwnpt#CPWCpO4<>22g+y79?hBC1X1gkRoKYxg7P=3S=$13Fey z1iglz@HxDJSuKR}T^%iPt%9mQ$N6PMo`z~*{a*a+3)N* z-OKD0r`7DDYj0J2ro(f3wV6FI$eu^MZ@#jycC9jPz|PFfJpKTcm4Bb7>Ry#1tOVAo z?*KCj;E8*bo6*qu93v(k-oUr1Fz`;Q3^)^^W6BS(xCEX1A>*tH0l06Fr=Ge=S_BF; zDYM~!JU;E6wWMZ(j4hD((yDs5IQ#RRtg0xh$dTxj>bfFwk{%0Bhl^|B11JB4t$xbk z7nX%CfHn;w5V+pw=SRN9G`{rQYy2*#q)Wuaj6o%F=ZhqD?Xe!JPh@NEM}pf1cUOB0 zO%(mAhw)F!I3DMn7RJy>P3i1_fS&&ZECd?&3GW#bAR*YTTjj#)c~xOD${h(a0<}J8 zvtJH3?j4?eBhJ1Q#zN;U91_ca4rTkBFrmIj2O>%n0PJQOd}447&=BrU!U}#8cw-os zoJKz)fuwT-q}j4xHPzpbgq!CIl6*a+EqB`0xJ5W{Pp>?Trv#%Vv-DWsV&NlQR*?n8 z<&{$Rr{DHYuGsH48f#$6l3;dp{G3wkY}7q_Q-RfR2ZC01$ZM1(;@PoFhHVR{%n3k% zU2|4r@zPw?Z?jzr!k`cO%qz=L&q+_%qkx5QXc*w! z)VEZVGM(>j)W1sx>;r5#!g=;&9v&@?r}0Jc!QW_|Vna%-rxo$t3EDNtK<0cXwTXT4>kq8UwiPwJlJFPUGmD3 zg2`er^(1R|ByaBt>fek{&@)P5p&mi(9-*tOkJqot7u;L*5ygcy8{sYemsz6m1G~+q zCnJ9ko-sByEE~pX#-ux$U7Uo4!Ojg|PfcbV@j)F13pT|tY{^{#5>zc>o27uk$pOWt z_Bt3OiH~jo01vPo34rZLV}><2=DOLUbjg{EWBqhIwBf(nbPE+GezKoE>eW3pdxo{D zUdkIezC>pPe3zX}MWt0j6D=3Ko&xWXp(&Rry;?Sw>svya~G_^sGT`y-h-Y-bvg& z?~cPjN6P8yT)@}kcq%LwB80f*iFc5(gbx)^aUb}KgOXQtsiP9Z#-(&OZewZ-vYA5@G1u$UlwZVd*KWOY0R6aKd|nxUQ%*+I6@Kbj zNz-&*EtjD0Z|>t@o6o z$YLR1C129lmf89vII&KYi%abIH)=%D9b~GeAa?}_dK5~P-9hT8Jy-VrtwJTP zA=!N6k1Cm6lf8+DatBrrKU+{!BE}ix`II+?{NA_fe|TtC3PsqmA*Ng8j~?zAoizXd zr_}d5s%GEG)6hOr`T)6{HBG^ug`Yv9J&N&*tX#No*A+6EGtHL;FiL7Ni6P9y* zu1XMGO_FJvw{4$Us_-=InbY|tjf8%EF>6YFVVa-)0l7vWd~-9b+J5Mzreh-fdlqhA%J6j%3@<>hYk2sF0w> z&70>nCnIjwdu)h7M_&zXuKllna`dWJzFYfFzAASux6;RUuMO5_ z9~}ai+!zERdNgfX?mjnNhxC0;>5(o6VDyzNd;0VCsM1bU<=oc9sG@%-vwaHRAr4?nojbkn@fgJH^V?3< z6K$`Y-knxSGS=?XqIRd_Y{L2immjw(hjh9G4B#~8<+bK(Y9$9t~kG{^S zFYc^HJDb(@T!jH$A^beQv(0-W)I7_?kaLwRMC)>o@yzUdUt>#AH z`7H0hYEk7}Xt-G$G5!N~7kCm33G%zeQJPr;@3b->BU5XK9tWYYf2Mqlyt3nS9>O*130{PHWsObRVWe6F&q?LFfj<4E&6!*zmt(A+9R!a|o2e#8!aFNBO`_b#? zTT&G8BtrRy;4KK6z1@)MV|t=E8}aYtQzO*6^)1ATIdByD^!sI?G-Ax}OWbyW-JcA% z>yPz%_5=n*|5DWqSh2qCD3w1bo0~6J3a&tE`y1Uy#mXpfS{xfk;bph<9DNP@)y-*n{Cs_-J$e!S<9F#o>J$EWNZ8SUu~TzZkGqvDwz*@ zf+@v|`h7RKQL#B(xl$oqM?PSub60?`<4%0^banE><=tlDGy>U(JF<=sc6pJV&|x3f zm21w6`vdT;&a81|4Cqz-D~ZNb-(YQqU2%QKJG5jr(#0g4w#BsXu|uN4&SoS6G^FmU zuVn#6gNIdaHnJr+)i52x)_2~u*6$V4bOm1P8>ek$leD!#-hQZIDT@1qdP<5x6?VR6 zprAr}4<^(~`)KY#jf~5v063uSOMaZGKY+(Vz8NS_?r@h)BQ7k*9v)N7{2{14IIPW~ z1QF|ZjsT!BG2u;l*jM|8TigVkG({k)ab&7?Uh z`coJf1}zo`97^7gGaZ$rODYT}!SJNiRAJ4}{OpSB$}?$!fQ{OMTR7w1z;%@x^sqd! zfrc<`RO>uXW9jJ)+22ZWK`RVyL%fbo7?+j~@BI9hf5^#Z!o+QWxFJqrvsa6uaZyNV z2hRz4H)8a<+{ku=wft%xLL`{R*IBzGp$@;29I$x}pmX9=kokf6 zuk-rU{xmY^BTaO@%Jluv#54Ee5rkae3DG`J0qoL{IKA+OG=gH1ss~5k>Fs;LWRdz6 z4WQh5wO#9AIx~5_%XFa@@AdO zsiOMgHElLM2urLusVP2s@r+1%_Ub-_vYpfQXub_5XBObqW5EY&C5F8TiXH#nK2%fU zIq~h*gGRDWLI7hfujrI9Pj0SUiw7B&NJ_Yl_nKo?+yvx+qXK! zH8wbwRVyRO5?m*OURn~A9)FWzuGhWU^PpasG1?g*&(Kbdz|e|>_Q&9R*)E10C_W#X zd+c2Gly~YqeB_}1a$C5X;eVE3wRx%-4n&({9q2=J6+7;DmS ze@j;;-awxGzJDYUTb~kF@YG62%s#7cxvqVM*(X?nR1nQR9x%nJK2~Eop>4emPNSUM zdJR9-j3>gc_)PTy)-3Jz98#_idtva~BQ!ph8O}0Wd-vaWajXS9ya>!nExWQZ;n_m? zT&wKSbREU6LJBq{IkRN)t>YU6VGGhDVahnQPXDB;OSD}-HCcxE9vcMH+S1#=oe)Ni zZgkTBUg?F66<1ZpC%I!*Pkrr+lcpS`M4gX~F9ne@f@fH*lrNea+7D1g1HzZsjW|6G zC}%-rh(?1RPUFLet>v#q> zh!Mv4;tCsF|MzugXSdy3T0xSH14Wp_`|cO5O7R%?@5|~QvP!zG@jBe4K4B-!O8A6IjLdSJh=Zpl#yOXS3hkD7 zd1TtEpBmepp%ZD`!iX&AU-puN?T#CD3!icC1}n6alIIt`T(R)3iPh4Xk`UZP?K^_o zIFvI8=HRCl=O8u~=`k}(w@U+qx}tRV-C41)%0K@c`MY~ATj}87Q__-;T~-CbAn2LA zoW{VVowUCbDxx?VtqgL>sCLIJUYFy#Z89I2JjQZdd|O^nH=~oLBXP2+J3W0L*xhi& zm&ifYY5%;0JP65j!}NBeo$H|^n%CnG0j~+NagPjGWNma?JWpnUJsI|J=0~J&g6z~;FRwaQ6Mws?#RjW@bMXfcyYWcZD}7DY!Cu^p>~x)L z?=&l(+b}{&IilyVTQWEh9(d}xr$fD~g#zBvP2TfgGp=kW1S$GAbl2i6Y&Snbe)udl z03a5#bLi_|>lJt-oC1+lyLcFbjdjcAzT=e{pPZpV04KXOKzwMXP#6=UOvOoa1YLY*UVpk{}^QzlN*3|yiaOmYkOQ8(( zfv+fVq?>`tA2#oBg&!eP(Au(g!^zO|Pq#J(3N#)iyu|YaX0Di6cTYI7rXyz9Sg(?8 zXagYlV;ge(YJGU^uNS<@sbd;|r~;P?vx9M~en|ob!tMc-R;ub%WpJk^E+%~WCqV9i ztA_4@P3)0JJR_p`e3QTvZEn+k8CEr-=0cukE|#^3wioEQVuN(Juu4ni_>#YwBf58r z5(>n1`Y@(5PsSy7(5g)1F@fhs!6(X~)!URuW z6!N!a70WyNe}0~Si!##GsiwHL^&vw)SJEI+4RqGHG;-kHM;K&e zulx+2TN$^aRs3A*W1FL2tHf|+EjU&|;CIH}J{j8vEI5vy8r7dlJ*6mKh{@}=V_x!^ z2IsRoq%eb8V{3w5cPr8V!xbRN>@Xv}D88_UNlv6qm5BUP=B*i?fB8Y0@ELU zl9-}eA}EBohk@K{Dr@2YvS0C$-y$CurTYRsB7OmQ+?L5QUPAPICeS2@?2J-jF0>E8R@LnfL8kFOkTr!e4woe`Siw8}PguLT-$A8b7-gw1_TC7SV;NP__nLnvPO zf4RKB`3YnKB;7mBK#+jC=LdH|hsb|`BY&i|ta6FFBQyi5e*KDWJ-*#!JGIrnTdjAC zP>=+}f3Q06BGNtd$ z)yYJy6H9-pO!Ui41w z9Eyti2Fn-t{(UVj> zndsxkkKxAvr)JRTIkYXMq@?sx&-&KP{{H^vF)NoAY-iPC2kH;+(haV#ylI2(y-RiU zjb?Hh8~3ijP1dqV8B*?{5J?Xu3Kupa9(`xJy<4YAEd}O#8SCjAEW*P>sGjqpQ`^Yz zU2Cgs^sLA6<|JVEgPUiHiu)5y8-i`P9hYV|_0{C;E-x0_i38I};Ddh6%ZV*Iv+1)! z;IIjGCr=*gNp*8}Y)v3e53nHFp1*MnG?M5kMgjJ7w$6o}pPzrQNMGdi;-Y zzGJ4&WnpJ08juwe8+(_X{mEV}z9Zsc5>*h?h)=m+In(|7w_q@sPJ=s-LNo&*^i)~76QG0!b5s}`PC(k|;Kor3 zgZ-?>e(2(%qh9#Fw?8vv9Pq<`b6|pR{s~5cNx)*CE=G2-xS4%JPLI@t^H_PUYRPD( ziQ^*!&iYsOHdHf%LH|3cqX39Rh>!m$govKp?(W^Yp+ls_-(uWbUAXSvcx~eNYI!KO*1(k-+Wj4?vXBpA_~S>{ z-i356WKxvJf;F9(T^deDigd;ol(+9-hv@^hbMbIE<&J9BxLP zcn1sR^xNa&2p7{xF_ay^PEHA0X4V#uuMe@5g=7@TIR+^b#Gox6Z%@ZVjO%VyH5|KwoVJWDSwm{xj5a zeBeTR=YfTTKPjYYa3{3qtlA1Y>%a7MKLBF18DUHP6^m2pU8KWlKhmN6mt-1NLg4#O zlLpNpg}rC7*!c`x+Tlhu_7p9`4jlHBzQP3$2`I!L&zrQztl>GM%PXdCU;l1&p-Jl< zjU;$4$QV!C1B1d$!X{2i%dh#-M?|@mdQP1CsWt)R=>ZZsZ9pvz0N}%dFwePakVHhd zKm2C5)hmA$JOm{}GXW^1Be(-yte!YJ5v<~81-Q^n0)f}iKJ4z`ik`xT*vismkU5w2 zngZ72Ne!b?#MkPrW;@ZVzgC!7m|o65(d0990rK&Ghrt}25;RrMJu&WN^$DgTrWf^q z)!MfT+`+;y`-t2-;Vwm~W9H^x(B!fK;~R$?LGahLdP@#wsu6)W+sKUQO2|%a;2DIRi}Z#=AYVMg2;?Y+DEvF3 zhK0kbPu%S4@ul=bggyivgy$lTkqi$srQ@(L$Ll}mnr@L{IzD}m9A&fpHM9VFVQ z&%Xtq(<`pkY4ST#f7IK>vV#b7dz_jp(>&u0e`19XDw1ni`~GjIV}kXz194ul-@Zs7 zHv3-Q+eJZoOc@Uf5>7Ua3A~(1=3!-fhyNQ*;us*Y$L}m_^PZIe!~z-bBt${TC2Hl5 zpUGe5`P_(aYx_DKP)-~SrsNZT0w4Sg0XAm*DRm%{xs?PjIe;26HvM&fbK7$vUH6oR$59t5g0ME5?st)?0!|N;vsm5{Oil$Jly6p+pibkXl^jRDLyJ$F}L{NUB51#E%@7U$H8ZQyJ~Bir;FIYi*`Sy z8-Dl>ccUB=GA2io!JbAv{ZV~Ut$Ct~=A<=1>j~-9mC=n{e_2rjYoWdSoDmxe9SOIK z=jw99%P9UV<|3xa3i!1wea%SHhmwCza~4s#&XvgLpc7em9|@D^X(S3+G`%nwmbW|Q=B z)QB53d7Q^^==;&aUvpft>8gchDv)0W(n-FHHwsOZ!53QDlXwWbN;=;Pi=@BwWMQhn zQYGiAwoxLzO=q^o4jh#5j7E|FZz^|7qYveGbHt8cZ?-qT_iJTei*vW5W2Dnt-V{Fb8EV zhQDexj6eKY7=Xd{;1%xRuq${5q8SauS&$Mw*JkH~F(8FAZ0K_q?-4%! z2&n3u@*d6`; zAW_;fJm_3!WIMca~*rHZB$AgJ-1$<8(8}=KMT}4z=@(4 zA+j7Jc>3(4&>f1&Ia!XvA4C5LWB>$m0PK!8NT54EEVJg|#tb)+=s_!J`R7)-dEErr z)QAAe?ughG-8ZxTGLT6TvLK+Kx$WQA%)p(K9>sWvMJF=NZLV&zC2pz1ME3L0s37M* z@Y*#slq=ov zH@zSKv}h7~wEgfITu+s3jKJ)rv|4LwV)R&c=&?9C_;p^Kw-~o91>E4zxHNd$Vxk!J zik85b%=y4OGA4`FnT;GTA)q?_dKFb+0l%BQgeR4@V1y2OeH2o7Dx{hYV&sY2jV`5q zFz`FlUqEXI;)Qc{z;DQWrPggO=&vrhor;AUr@9^kMrzQa*Mk?)4L~wY$TIq_shx?! z1lBA$TCFSiKS6$no|RqY6b@ZpzK@ciA&5hYq`y8Q3P;OX9FQ}(-MJJtq?$sxQETQ@ z#+r4PBikG2-`Gm%vH!~eO(_?6h{U(4USiIei;q1P+f+o)Y=r(R?<%9B3Bmp*4(#4)b>99a>T=pS@vL<6UDWNxIPZDwkli1MDdU(1p1(OxIPI z>q6C(l)RW@#T3yIueWAiqoGj$=g(I=uzO0_`u`wa+;#lMxcs`JB-P8?ZC-t(rY=ghI6yu*lON;tPigY~}P9Cew3sr_ooX*~>_z30n^m~0mUfL^iO7?|zC2Xr# zbm=^ZZ!h%2YXk`~fVm0n9@B%OV6!R+SOj}=>~tbI9aF692>)XDh1bb2-L zu>R2G>X$D=JsZjkh`V2>v;9hv&}sqB_t$zYD3r%7x3#axNBj-)3i9N43Jf8i#1fedQ+%&9_H!diA8n+!VF)(=ID(sv~75=U$U9 z9|YU07#en7R^t-)^R~^q*WB6YzQ#cJrzsiRBz5l5*>LUiAF6&fZ`8{>@%60Ip`WYh zlNXiA3)TxUI=cPXJ1b1_+$g~nt+zkXL9}_jJBO6gfpiDDC1W8k`LbZwMJmeO)4Li+ zv~0BJ^}f)LW{3PHHQ~KUxc$+q(rE+PG!&&XM|~G=d;Ae{ueVh zk(9=iw#{2t(QjXSeUtVaL3jRx56o9Mp0ADxj8Sk|w`B|C%a<=-4?K;$^WZ^J|A~J~ zHJQrn)V4|)5bT$Ha8)6(ZS$t(+-Kx8hP!=_Eq%<^deQ*uHA~3GBSqN8ljb~W&do?? z;PNw5WXl$*DW@MV%SJ223p(aT3d%|Y*IZtlce=&9GfB?xgy~tc2clAYV@jKHUkyf& ze_A&7w5!qG@Gqb^{oQEouG5+3_rJT2eJ}A33@rH+y}P!+!=t;m_j`z@;yY}=3G|{~ zzKp`TRnI5Ovc&{c5=qUIOi%6n^m2lS5=?R1CRYNLrC}QbeNSPjk=N6wS?@ay`AIeB z*iY=@P0ci@J3oaM>(NcoyB&(oNSqn%c-O0F*_@$_uSs*7IEPa(GBViX<3k^0I*qSg zW1ct>rvCm~Azvl0M8%ayag5W&zj$3&VGsH?>KcijrBv^9J-;$fpql(_|Kr!=AH`}P zsV=7!VrM3f)Me)3N$g*P9jDkHl+StNfV) zvkgQPt!4Qy%<5_XR9*56AxR1y(NY&#e~+{W39E-{4JiKWcEamw{cEjrspO~lYVvX% z7b|xZR^Qa8qQtRXxfgxYY$o@!nZssc1_`W5JL8SVyFZ+IX+pa=KcOjQ)!Nv~j}33> z>5|>u-6H3l>gwuP1O!sAY*I>XP)%*n>9a|$FZd%`ZRFl`rPZ=fwx@*kzV0x)_64$- zlWv(ubaK#8g>2F+O+Q))?2DJI!gpEo_f|#ftW{08e8^YjfC~*%w&=4+ zW^kFkkyoRVDGzCDX4VSES?&xX$z_6-iLs7&lhc6s{pWrouFY_I3#?QLwJxYc$f0CdfiW}Xq7&k8<#@1!PN>=oq}Ix*Uu8A)iNrxd;Tc%Q82yDj+XjYlGTGf$`9r!D$QWv$xdx0Xyyw<2Ax zp^11$eL2??bgR4kA7KKCZr&3E2FINop{1PKyN|L*ENe5MXj1!Ui|P<(w$~~-G;mY7 zwytrSqfN_&j!Oa$JCy}{&QqE~HE7SjPfezZTE@)P_e~kaLza4Fa<}Iq2juwmrE+zD zG&OLGS-4$#c+6t8XVa_X%jBnfCzn$jikE-bzP5k7=B=^1tqaJLPz^Qehg;c$1Y8*$ z2REk%E)DQD)77b5X6l<6ykt+=ERaK`(2IJHm4!!Sd|gvdsHNYUct?nTOuQ?M$((U9%1A1gOHzjv1fyRpP&mFY;Z_|HQzNQ8Grlf0+HBG26 z1r4$SSOu%uIZ`QiDwoP`F^;kUx%TApXN6#a$zkLr&}ut^fY>v}ypyd`Z7i%GNL>(-2SdpSMh+CpzXIFNdK ziRn;0Q#eHHC;77VrEJGm>7RQqa~2l82)*r&lbs}Rhd5_XOqmvU2F0_yM)0LjU)*#i zO(73XV=XmYyOdnI6-Ix}eOM%zUs?M|$V4?|OGh64ndP3`6lF_S2|03$w}H3?_bL=( zMw#;(?@UHc@2vjPX<65>i`U8CfK1dR)d}9D2tkU<8}5ETni*=}i%KQi$Kpzpb~v0O z6ErSEms|h*dF2&8PCkm6)k`TeU3;tIdvy5II!)6a#IYE6lOW!VzofjRI`(36ON^x$WkrJTQ< zpN;88n@{Ycq0|=|YjldqBa(Ij$yP~QO0L~tt#VZNb&tvk%E5z**uaVPx=_T^W_~Y} zt}@0_?&4d1Iqt1oQWjqd3+Wlb~?2`u^UlsHc~Czg|&Fc{?q z*RsDc^)vG?FIXFLgp2az*_`=bb77!vGhauqWc+Agua3X{%cjtqRFqFKlO<{7iGyqL z+b0?92Lcp*jbdM~R>{73A>r=N?NPKH#Y}F0QR%FYy<_shV=Oj<-_B)mZKIZ{dK^ z6p5h%C+?QMH9suv=;Svbh820_?l_j|I-&+`Ni^ox$w>Ooe(uL7Qqtfp69h*{?2Gwt|f zX|$lEV+#MHyh4#@VGqS~EJNm^d+!xVo4G*GSQamZISQ}FQ*01mnOXK&Vi&fJM#&h< zR+m#u4rzy1FIVH;!qqarEU%Wy{V)6C>UTGM&F9aahIyWxTi=VCdcIzLL`3G|a9!N_ z<v|;E{XjvtpO)q12pzz1`9aNMsj~jH@#O?oQ zQmxfihnf<%?)$&~!kad<%PNn0^wKNw%V&oQI#XXzDDUYzl}6e;)vi4kTA)yBm2304 zMai^8;1S1;v8350p46YKm>znA+S9YCU0%JBNIR)1<)WXKQLyLG$v%pV#*_D=t8j3u z`n>c00&$6ypA906tKV(SbC)u*mh9Kq(wNE2l;X&o?eKc-x9=r4Y{Ia zscC3eOn>jp(Mq+zHB9-nG?X;#eBl;-Z@%hpp6QC|-^ROZb-6;cWu5!*aY>1<^rklJ z_ss=ef8S*EREm%zW84md*JJ#WCKmTmSGyo3ere3NIzz zy|8g*4Nd6-@#s&oFJ|ww1-iIgv|0KHza6m`fULo^PyfA+ydFcI2LBh>ALE z|LmWCkW5utmGLGjG>ndNAmD&E_Ojn=JCQ3(JnXu3H2O^uEvE!XDJiQ)s>k=lPfzxz zQanRzx8^AjRph!W=qZ)*_NP51mD*QUI&5|;Yc|VQ^Njw`nyQ>Ga>2Umc%zg%2TCrg z8Pi>jYNw)vD_oF!)(;{LH!5HJL+Hek(Ob8abH*V+Mh9LJP}=2P?yzH^Qn$P=D` zgyO&s8BrewO5vz>v70^Eu*8I!A2cw^Izi*DDG6F94blqLLa6P%O;c>w-%B=9@#MlAyjpZzKx%cltaEK1$t0}M1 ztVEH26`sZ-TjZI|y85&n&9z!j$fh$a8b37@FAddlxO>tSjDnK~D%*)7CkbcOX?wGe zX5F$H_~%(W@T|^L(o3q#CE8b*uS%Z5lZr4kOWY=F_>xI#xnPBzz?M46n^?J9 zj(7h3E*x9*O;FRgpS8WjfqLn^!?wd+q^!)LP&RMh?1-b`{`t~3-c+eK87deq_m2xv z3I!Y%z0gcDh@|MC0e~yw=F?p%o^-q$d^gSf^KuZQZ2KryMNRP;D1KOb!S(MPU%^3% zTs>g{J90Z`ZT_*L)_0x_`_NEL_u`TPC(XF>j(&>V#dIW6df%Bdf~19xWlPq~6`9os zWpn>ZiIPsca*n#=e0EY7j&T{5{n4Dc63JsJ3b+sebS4YQvJ3DAy(Lu9qem5p2<$|WB=6+Y#+(FZGpQ3KGwi-;tW@JcNGm^@PzqxEIO)dlvM8~m| z*Qq^bv1mxy7pv%|CGfam2(|K*>7^CjeM|F-Bh?v{^Iy*m=hQyl&-81se&tB+#A@{P z*nau@UZYjSM*If_V`+0uOK-i4R}Yi0___rW3YODv?cSl)$0g2mGK4HAeX9pYwK;}} z#E_+)DKmZb60dkS`)?SHlY{=ATvvbbuR|uO)Dkgn&%0#j>yql0ir*~9qW?;V{RgG~ zvPoK`MFoc7e{qWk1*yxA>Y{c*ftqb|% zs4k0cZXja{M8Cm ze7~IYQm-Fh|IZKpzQupt>t*xw?3dU$kWLr@)k~MQke)M7o<0?wHE^4(#|Z-gdzch{-HEG)wnM_?Jw46x zMPwf3M~Llv15Pjv#flzPi?9o8`5UluCH42 zwEskGyDCNNkJ0A~QjQCg4OMP~<1Xd*V@G0UXEKe8>FkESl8M=>pY{HG$<5@smRG`e zPN;`&VX>2oMkjz+hUKgIn1>7gxC=>29>-TtP1YoRgX8htcaw9)9J=R&QCe@{@XcNY z^py`(ShlfL)O1UoX>2-+XeVOHLY^ESzXGmfby3H=Yra^*E5&qD*mjn)2g|XtLBP3R2@>NMkG9}s*i^|LOqNLw~<$hg#WoO}1x=QGY|l*P=&wF!bU!^Q%S zg3+p7?erjmim;&aCM~sZJZ=zyEQwp*F%8?3+ZnDi32;hVw{3x=QSWcd%lXd#;lqa_ z^yGQyX#L^ONK#em-B(jJ-yGVvGOm$6JeGI{z_U-e%6CN&78Kcm0{qcAp#t5Txxl7Hq#gmHKC-KCyX1B_Z_r+-8%R4dCy;)3q z=8wV`a2--tPquw+IM!-gy#i51J1;aOWIYWH4LwFI@6Aul^)iYvbUxmKUltn5n!hBT z@CE%zulD#DGflq7a}VYus3Il|R$FMwywW6BCYKV`h653l@Gy zA~yQi_I+C6El4kbhStm+9Py5U=PJX6o;-P?HQ~_hWd1H76Y*~a#i#C>W@JlnNQiHC zyL-#9>EK5TGx3hKvR9sbD;rfXv*<3rTU6*p&0#s&qp*QKYfrnv~&v^3x=Tb=j6h|dWZ4ug9tju z#$phUkZj~}j6}c>z_}E+o(CyRc*3tQ^sC%vr$(5fHO>$3ug_pz3MW zbKA&cfn%!8CABJZcAP(bab`F%)(F8}yH$0t>nHce_T*~qm8bs(_ke=K6a@I<&f@EC zQljk=yn&9tYWH78kGVLEZ}0ERU8O>@vOG6#+-QW~!c=;F`J#n2$WE~t`@XNfLG!J4 z%jEF4HK3o>@Fv>~UVHvo81Z;Ln3SC6@yDG+UAgE_z1MM!cGQeZ>QHJ>D_rK?kdSLD z*fxf@49?A!J@}=N=vF;Gb@GN2PK$H4OappaT3VU6+PMxLIwWCQ z%6Mz-ZcY%iy}wC6zi)5tRqgDg7H9ed;Aq&mwi%#PMIP-#s{%EQO>x4p$2HG&cku0T z=OeGQ-F4dLQd=&M-iy!?A+cDu-#kS{MH1#;ME1G3IWZ+JxK4ek7I$$&G(KuzaO>g2 zhlA6hmw*Jqjy#Yep0Es~8h^o~!)tkE+1lM#_o}EYqg%!6(^VGq7{0QN|7pW20mW9= z*2EK=eqli1BBqCPMsj~My~&#H4$+jrt$eRmL*U(YCyy$Ai_8GxOTC>~=r?sF!iUYt{~;_6ZHC`@2d5 z*Z%$q-)Z*-izRFz1;h$Yy$F#NmqN4cr3Czqr%gQ3c3XPR8qIReW+ zW@vaDQd6n~fz-QCoF;nleqP_(Ioeg@5MG6L?yMj9b42NzD^t_llBxcl^|^lC#s0WI zRVv%R$Aqpjk|WIjtuhc9WcB4o)2rnaL}3a}o_WSZl%LbpCucjqprNHXPqsJ*J9`Hl zFzKW^HT;c*nfamPAFQ|U@CCh7nr=>Rr0UbycnZqjBIAPD#l?$XpYvcCux|f$>pM9X zgIRrtm{R42mAm|L?S)0(N04t$ql2cg1b3yIcB*0Ey?gicCblQ9Kc43DtN$2q0p0fP z+cgBxXObV{%!oZ7u?X(A0=?Xgh)A4vIN9E=8jO~7G>Dt~;a;MDzfd0$I=|%bl5y_< zmjiCO{Hjj&Hw?CBntfnZPHk9;#m2dsUtWZ?fK)Lvdt!3Z;uDDA)Y(xy%c1-KZF!%?pfF%W!+}b-(FBK!+*Rf*djGgyYbcepfvM((MQI` zewlBd-)rp(+OzFaW16yz)A*B7q!ugTP&r9J$4t|E3x?WX{QTqwDaaU?-CnB#knW@C zHXANr)L+w3`J3yeW40L3=8|J^c1Zlu$z<(-;Nu87D)1jRebEjK1e1hr(Om~b*AQ^! zpm)dgPEj#2wx!SyXH|q6B>SIT2gQp2z%6tld~*^611DfGJzgR1i_u{KnhBecHJ`BP z?w|ZnUCs4WGj&-^;rea8JP<~doBF}k}HS1E-_aPxCT1x$% zo19x&F)hF?>wk^38~NY9%?Y?%lYUmc^Twu_qhF43&?w8;58flrLP$j909h!b(_KL; z>8`z7-hQ_)kY|S)?3WqfttR2vdgIFQ?L{w5%PJdg-n{Ai2VKHdAdV-9qSbYx3c!Pl zeJY`X;QgYJfvaV6U(4R%ZZ#TIw>l~;NBY$z~ z&&I_339Jy`wmcVNjw)x)JgmvG)bB(O;A1qd-bY=G*6&Z%Ja+7^&CkpR26!{}Wy_ZN zba$I|F3yc)M?6Wa9ufKgAm$4w4RLr`@0k69Lidlp96`t7zJ}S!A>VDM-_pxPYalIn z^IbM~AM)U%M?%V$5(>pKz9kLEza}O`#qxiXnEgMry0PK{uYW2sAQBz_(7M&1$)=YhK5OAIx^o8g90VN^Xm~cl(6{3#)L8T~> zOPu}4E@j!w&cnk4KfeWK;cUnlM9yzqD z-F1g{iop$Fi$@3q6i;mE5EK@sJ)Lv41eJU$3Q}}sgr}D#B@Fd_@V3fYTI_}%3-*U& z74v5Eg`n>7BnKPp+`Dfd?c#J7Q>$Iw5p;N`kZ-nXm6=C@x4fbPtg)Kfci=}E=U)kf zdEVaM59L+z6iRj5gWH1D$15h_-(}qA zWfT{Fov`b#p%Uoc%8wspf%apZ>uH4Ab(Rx}kd*A;3rkHA+Dr0>oG}KQcTCQ`ZFIGoB1t7$6 zeynV)Ou*yJpTz|cF|p!E>wMjB?F>W^iaKC|UyXU@>)*{5W5}a6AG#j@>{-`PY5`=4 z3(Wldt10D`m0I%BQc~WFY z`lOT6Ke6LRo`gO3h1t$Me`c8G7Z$dAEV|wc4gH?kV7Oxnn00MR{;av(NE=R`uLa&% z?mpeQ{BVpsI(c-LvoP{X(Pw|Vx(2Mzat{v=BzBAg0|T#7NYDH2hJm2jqOP{Ld*5+g zNte%`Kidp^7A9EF1I>PKsjVk;T9}bL58CK%pK<{LA44SWD!;oP`ycjQxgt57JE0+u z*@Ij_>D;-Egj{=mI)@W1$>`M7eqeawT)V#NTThl|AKI&B`k%y)Y%cL9{|7YAe=c?N zpQUUdt@^5C_n$h&4XJzT^(DTFG|lSn>s!BlJBz#faCO7iX3r_Ow*ZA6LQ^GJVN;JP z4E~$D!HZRn#YIIF|Mu4z*<=e1OTB`VlM|WrvL#9=^C;k0H-SIl60aE73v$`N zVV~-oi64xc1xpl%0%Sw6;J80l`-RMA^PD}z>%{3j1p$Z#-#)b$eoY?rm)|HU$vQSR zR-ayg!Y%nbUfbZc4VB&t&VvUJ-WM&>)Cxg!x45`hpIm)+KMgG{6$LwgnAfZs8v8}Js0W@<>n5N)g@Vup&bnLov$zd{TG!MPwXU`D z2$|~r zMVBd>CCW|fC%S$6LK9jgI6iMxA}xkZzT`Xb>iSKrKCeR>DEx6iQrN9I{gh z<02Z$_gl_n+4Jz+0Ow`ku`mgD^;+F@E1U*U;$1LV*b=s3(3SKi4LmEpEAepH(? zk`MT!cjlcpZDYRM?hL)H=O7sqFPLW~{r^b|={);#70KipYmzB`2Z+2`Cq%L|RAg$Z8r@eP1{^3Ik=@#wB$m31Mko4+@5uSDrO!7Ud z-qYL5K=A=JXT$`xM!7`*;2|J9LrF=AiK?=fpuchI)E{>C*Yd-#8T|tq8k|6-NU?oj zxSg>ci^qPw!H4()S~7sjff$S(?)lkkMP%Sqo_C_7w;~DHqL*=iBFMMwBnU+!nxfscQK%K5c@)bIj06q%P9lwWxe(TG0vaZnD zIow5B1F|^P<1>%Kq=Z!cM4Br;ekAsc?q#ai$;vF5L}t_2DkdYtjVLG)i#o_77)7tH zZsL(c3V0m>QBl#FxAqn#ZXnuN*x0&kT1j1nm*fJS8Hw991Y?|OHWY}N=q_PtizB#ciIq~K#GTb5}qu*?GRJ<6&WUfAWQqyDSr%rNq^0wX(-%k z(u`H3WNqp2lzqCoy78q$A5VFG%+uJ_YC{bQ@1;$r3aAZ$C&C$R3(Q3Rgj{L^K}jV4 zCE*6K!NI{4%I>Q_62=|*F8A06Uu_Ku+O=Z` z8+3uEUfVpHahV6iX>}e3n7+lcgN_u0wr00_BheKS6I;1?^X3DHzs}Bb-@kvSP+GFB zb>!jEvZlY^6hC_WxJgXUn zaWF72q+R`~XE)r+10QqY^OF_egFp%^$p5NQ1y#Mr5b+?XfP3}paXH~ln^Ygyo+06G z`0WshP6-JjUG-)>gUoN=Lc z8T`#Iau^G6N>{}B7^*W(n=M=aH06wpiX^3ab+uPLbzlvyNoF26O{0}2D7em_LwPUN zzIT2P<5Ev6?{g0bj9bUaOhXfYN{Q-z+^>zFX;heeer0_a&iAMcjj(Lm5UKX5&uRPz z&U)G55b|)7Lv@r(wSxSg`H5Tn3J}Tz==R3tOi30m$lspvFPs)d59#oNTEKR z&{QA?5}*i4q`ZXu^+dsR$GJ*w4B0l!xg*N1H*VfE9d3OCf98)HjbnB~)tPm^OeI=< zdz%Znt^C}NR~t5LSV}ME=TD`bp@NY<22CbE(;ad+TCRS`1rBW#Zm8~!?fJKM10*E} zh0g)V-aqL~UQSz^6N!!SmxN>Ft0`Gct+1F-aidRQE3n3>35X`l$Vh=~$-^CyRp*Qh zNm0V=^OJ+}$Z|+jv6_Sb@#ivh^a7_-3tp3KeJ53~)RB<8cS)KA*i4YlneKhlojm2v zYd$sjm1%}8Ech_1&~t&-L@p!}xMtT^dG-x^_cf&%Q|p|z=Rj!xDz9|PAjUmgea+O2 zou2~+s`9~3^$D6dG3?ehE59Rji%&KfNh@InFyQZzC%Vb<2_!$tosQS~Awh00BwB+^ zN*9?Rg0v~{f&6sGH89w7GeNHtx)IB{y>OOT} zvE#cc*zSJSOrsokwemy$*ETfYwqJNxdsmqD1Uu_8!f$lq00}#% z%D2ZOHx*xJIzK(yna{5sF@CTx2d7~mmJMr#7DWRqHXqVGCA?vS&F>$&*?m}1A+fR6 zE!E}aB28!16V$5IqC|b@s0v@cU>#+^lZrMfD#lDtPY3Y(>6n<9AgfR8H@=sA{Fzjg z%w=!na#2W=?_V6BhxPjh1f;v^T6EkGYrJ#nHkaPjPd_#{xU9roRQ!X*>$V5cv_1TvL!A%P6?~HbZeA^jIwIN=_0E0TWL*ci!Vcd%!EV+&yp17qPE! z^d*Lo33CAnX?LZZo8SKi&ojdPi z3Df{Jnw&Pp`;yHFAdgwsu06f6i#_bANMf=!r&?} z)NJNB#;aD9wcej5x8%&{&1W0z+igl9w7KzNQ*6iLBIL#V;QYT%Ts!r=c&H6dD$WW+Bml*1{0<_W(k6 zBhvMNsHD5s=L`Hzio-vnF!jp9J5+f}5T;3)1HN43*~l#s@!-!L z@w__)#l-n29(jrWZ5Xk=GZK+i-R#|3<$0>qDzyW4`+naH2tcB@EYDE$gF}cO8sWlF$%djA1e#Cs~?8aRpW1DEyvs! zXU^v@{MJu-{hh)5O9CO}!uNP65?~G~wD?mTibLjs;yU_nIq{U!76ea83s z7AK{JU{&0<-wenn=Xwe%{-h4&Re00k5UTr+f!g*@`<1eg|jhi-IhwHUy zUPVWZ5+;R^Ja#{uPujL#_7Z(uTMnN%gBT=hKgdpZ%?n5zvu)|-w|ebI_~9Aw94iWO(e~PY6H9sRjph+A8b{Q%3|U8=H_J6E7O&aRzLTul_s?HF zLtga+(eQz3iS9}J!7qtm2gx=Hx7e1MqrxCT)^O;tb{7tBCtzI*0~bgq~}2 zn>yW|%W~}Of&N}$oVw7)B*CjBaO&kXRu%eVKYi(Zf_EmGD7rJPqTl*9WF?5F4I(1` zfVS{A1L>N`7pFU~3rJa_c=`2*bz_3^wLo^1r zTL}U)@z`U!KXdJWWE_U0Hg?bozvu*)Ou<8TMU}wX0!JoN3(2*QKX$BGku1xcK!Xs-;y#?+;jOoOJhaN!T zfhhp{S)h!=;SyfA*Y3W8iWR(!vW-nzo&DbWctDZf0RFuP!7iYdzYjPW1)H8L)y;vQ zn|3Fzc*(-`s7&obRNTVYFaD^@3y$e)Y*ZI=^asm<|@|GqSL# zrH^loH%iC8S>l}s0gX|l`5w5dO;B7s2&p|X{GwI6T94MMvMFw$vfl3Fr*bu>=bdNN zmw>gmNW3_-b;AaqofcoUeo5@*3Az3?KuGHF`Pj~?5KkT4kvUHEj%PM^k*a-`UT$~1 z&W|(XqlA2PHgs(DOFO!!#oVI%yw-pF*HMW)H@}8Ex-YM>kSm!D@8SmQiYK#p3|}dq z`zJ^(Tj6+9NV2t^bCi?!tlz&pXGuwxW(w zxar<{W9djI_z#reQBit{RNBOdM4)~XU-0%#PZ@~o~Fl_;#o6HgC60`27E<5L4u#CmuxYYm1N z#l|S8nNlEgf`L7ijR_7Wm4pQS>}{Z1;9mW#^Jhx0x`Jo|f3ZB|!xLHSjzTX|+RR#j zBaKFV87`Z9r#XAI;@p;>E!k7Ed8>G({6BMO!YboUXMx^7Lq@?bFcOmTm zQS1SzKb5=#`;Pr;j{aDwIsHLA3^*&`ytJwYt%5cyFN56a+69C_4IoN_IpAzS2JOHi z&0n0gAhrzBaC%{?ok#i-H}oaHel&%^b4WOjo+-V(wgUUY$`MPP1{0r2HB?npJVyFX za1|hY`jwtT!+BGNB>r&d7`$8S&`RR|M{qE2P!*+mjWZ1QEc{}F^)EXEkDfbLy2cgE z7<|h$U?vIhOT4?ReoRhvg57y+nCCnXt`HQX7p68HlA)A0y}YEl%DK&;T$M>-FDe^} zI;s5NqmbQRho2`kgpQGsYNXB@@HV6%1!j~495{l;Wjz>W3g#qyx5G9>17pNSlE}e( z#<UXqTi zLb+*Y(AwSFwt@T#&fzVY7Jc<|Z%6XyD&g!iPFLd+SWFchSEgk_T3QVsC+E3EIPyw7 zbiQ84D1!WTW5|cEo502Kv9g*#f)Z=luvW(A%-yM2Is2qHm`uaK%yirNZ`xv(t($h_ zmOPB|`x$6~2VGd)bw8lG+Nc>*i5aW_ zOoQkMsRSD@ulW#>388gW73SzLPK1SWs|z}l(rV2QgYq^V6hbohzSS|fOiKh=4I|G` zLeCnaLIO)zs+N4i)J@XTp{Tb~KuDE9_JcA+jlm{(P@GcenA?D=u@kzs$zJKE2i3#Q z$;ryYGcb87SqxrGIl6dg#9A~i8{X>JZxvOcWbZ@8$=^Skd`M?>L{9$Yg}#pM77>y1 zp&{hO_Xp~pO#sr>qH!ANYe%pm65Kzkn?UqXUNsT1+Q8@dl^*kB%Q5m+ALxeFKuMi5 zdRF)5(yLxpi0En|r2*vYvwMMFVcAnn85h|Qt{_b^B%%vc0Gp0W_?%}Q<-F$X*I>jH z&hSn%-xuCb^tQ%wV`C15fbSQZ(uE=H+aN4l`|7-Am>a_9JLuvbUTn#AdUehNq#ByX z-2oXybw)CRki-BA8IvnkuRaHXR%PU_AY^(W;o%36)moNe(&0B(;-9iJEt}Hgzl_v| zz@?=ljzcB#?b9bZIyw_6^F2q}(D4q2)D5G^&Ro04J@;^#bK)J*Rq(auv7NLJC33#g ztw(IpItKcYMBYuYuE8Lky)gr6ZgW=^r#q4+_A#t?NWfgwZ;S&v)`9){HI zNM0Gb?X=#xuH1VE5T4(?J0rsQ zFb70CsJe7Wx{M&I5Pt`<$MfB_<#loUR;u0RJBagYElVBXAwg7r22BI*rx6rLcI%au zu3^(WSF61cE)Y!&OwO%=&c49bX+6 zd}LBaOvgXCZouxjUS`0qHpgqI(F67BVnhicOMyPls(JxF{0)vPuCPdmV+VkFT61)* z?o6oB;*Wd(0fs%0Si5ejn2ZoD11UlK0wTX2lKm_<(JzKXr>*$jn99iv5GTh?Sc+q#S`* zOw3s%jyIU6%_QLFweDMvlw}JWI>;9VNJ3lAk3J1CfiywNcOQfT)uHD1z!sW-nB9YzK!Ntf+Y{3Z%> zQuSY8nee;voP_q#fM`W_ySM9djv#?VRa6oh2oU`c6P+i_0ko}TA;7(j0iW$aqK9SL zkF#8HqBH5E0QF}mDob}z1seyoEqi)5a$*$Z2vc+iJRsiZ4U+U5w{M>V@|?$CTCcWP z5?GWo{C1@$(CHWe2RXeKIcza<)Pa_4anzO{fq)bOl~*C24^uv(=$zdTaBCtgbBM3WgQBf@;JV|6`BDWkfYh(hH$YN z0)S!ABsc==?fcY<-Z0{zvMKSxOOkODbvmO7B!uXf@=Z(Unhd+0=bXOI(X>@m6#IAS zAp%0mhe}~A94lZbFVrV=O2{;cQZWKWN5Zn<=BRMr10zHQWqCPB567Vw*-{PLL`2di zX^8@32DKkV7Cv|si06q^Ff`Mm;Y!142W&HX50I?^DhddY>I`b6^I*GN0feCJh(IL* z*%@BpbL)`Ta{e^ST^B$5kconJ>(2fAXIBQ?9G@LZt%D|r0`L3*zFY=?14`SMfgT|5 zvOK4tj;)K@1K~4FU>c8-a;gCaCCxG^gc4`uk@SHe_oQtq7P9lsQuVt}q}WfGZHPLY zxZhn_P}x20+(=Xae=u>d@qCJ|;m9wc7CGYR`1_s1Z?FDLlC9?DOZN5i zYxX|vi4&W3&UW2^iY54(( zh{^e|)^JXHrqQpOOrLXp_6P8X!n+S15=g4d(EgIAE-0qXGlH0&sGptEdkR^}%M=bM zSDP9J?6$QW-Wc+;%{eay6{|-L7JD8|N~uRiM`LZd5dkca;reacZi7vM*x(w%bFJe| zUa>-K7r4-vCPcdDV(Q+RN!9`vK68;XY&aP?`?fxixX?uQ3msbK3VL4@l(x>S22Y)E zKrUM6BJKTyh}qzguyN&swEAEIG)ME$oj%BdZws4kBg*;z9yH#{V@nQ?*Gp0dI94(3(*|F$z{r+NPipaWzoTAxz>xd%+$|%Q`Gs7}9;9 zVHRHALx3hIqIM(LoPoF!ved8!Lzfr7+8LP$zlV)RVECWnT0qJ%Agj;;1@V)?#rlWc z-I@8%r7OJVOcqP%U?DYxlhyzK3s>W)QB0f352MWYl2j!uThxH*oW?(FijcE6C*%9? zD4nnJ*RCATPKlUHb-dOv;^)GD-2-zY=|AlSX`1lNJi&=`!|HI_)w6Xf% z`f@jhjaJDgHbUiuF>TNR!Xc=Bx|cTS5cxev56tH*T*|hf`woNgHrj(cZD`#~WTYrs z-nez^2@1^fU^K1fs-t%|WJzaECMWd>?%SuVmNH(kW?=b;ruytVudwum1W{e7*p^e- zqvPu8x{oQfS!|Ng8ho`Q2qq%$23tvhH-Ke2wjlwt^^8YhlSa$zmowsb3{HM|zTz3< zp*#FfuBHCbRT-N8x-Uu?-#4wn;nr(FpZ#&%;q4cy5v(YwIqTdpI*`$4u`kJWrp}S-yjt5iE(;=mnqAXt8svXe@;3Q;z{h>i0JRX@Ju+??cFA-5mIdY`eF?x6q4Rob_2)tvMvpz zTLXaD_EtWE6M6FN8RRe{HF+)$P;BnUIJLH|M-Ty-+~TgL<|poFxNfUnBO0rnU>n<_Dfb!Mn4pxb+#8g5c-Sj<~nW%E43MF4~I3s zlAy+~0XBzz<@@Cu`4I6%=omVcB<8K-j47|a{@%GvMmlf1tlyajPxspPChq8wqa)9X z{9uNjO5pE&Mu~hiXh%-`X~($3+Il&ierret9l>rq=?@qaFKi?sg^m`*lyi=FrjZbp zc;UwZ{eA%lT3(!wOTS=-GLoLc>k7<&BBBK}h+>70Z^m{h#%qL(C7XSVs1hG29CrFD4>Ua_J;q?|fK&OrI^KZR_qtM6`r3qRx8@m5R87UM9wj$t zE;^V<-G)@1l(GR`k%h!zmI#s~J4`$=u2pPLpmZSY3;fdY$7-wO><8Z?4axgB_2RHf zoJwaDx$CcayMHQXqK_m$bZ%wB`6VJR?x}8mZ%SGy}bZ2o?k+OoFb&jU5l$E719*2#w1 zYuGv#4X!ZbmE=h`J3z~*K|WvQ6nI~TBdfS530yH6p+XgBW2w1T-|M^cckHQGII0V! zS-DZxEgRoSWo>SiWZ81~{ub}0m%RJ|TrRr`D=WpH{^R;=39iQ<=nLDQEq?t~Ayz3i z^^$mK6?$Kq+<0a^F@DeThnFOZE!*4Zl=KWAJT-DQbarAo^7kE(+%k059_sA!?>H<% z-#JI!9ug6I@Tt&=y6Wu|&ZV#E*}tsqIQ`8Vbb{+Pu#Mk)kW2e?ndJBmsfEuI|3Uc1 zk=wlWm!bS}->C8@hvn$F{f>zpokxwr|0tM!T_?Ny&ARKG$txXufsf|xe93*}W446J zPkm3;(WgD}?{Wn?JGPG2x$qrP(DS;sR5VOz!(a#c(@WZ}r}#4-`^-JgFfl#xKK8fb zrkpGC3y%A4{T)R?D(eBC>s?{zmkB1daZ-XmhcrIOXldJ&$HHYRuKm7$X*6kAM?*CN zdH0rza_|_wcHc(1eth-2h}#dWxNN&0kvb5lPr%TNG&GIUL;GW?JIqQCmM6sz{9YK| z*(0}QX*7+o-+ObsTjH1R3K4NzcDRa8uy^k_-`%rc)Qe| z_zo(3m+biFe$Hiv>F>K@l=Q&R&?#MVWN^*#soJzFhtcs*-l#S0KOch&4$U?;d!BXb zyhbg!hi`m+Mszx>Ow7jk4@=)63Qjxzq^gtBRwO z`Nf1I!}lr!ou#} zBk@9ozCFaVf$Qxas}{!9m68GQ^erYGi*rbdlsOJ0h-CCtB58Kthy$yAj{V4ffh)QTnzUg-R^@HZy zLV`nz2LEVJ{Ce>0%}iuuh2`|pWQRc%;P(Dhg8XYv)^PRquSo{2w|4kk*Uwtjnbq5( z*H&73ca7y7&id%)?3MJWcGcI{P}Yd}=kaoQ{C@9BUr)*6x$&LqKbOzju3*|F*5YTA z5||&WW9YS#>!Gq1b=K{+j|HZG;z!Q9QB9jPaAlp)e3GN#wzS-s+a^-`sSHHt4?9z& z^M0>)9iz2N<4d5LwOil8Bz8XSs_=8#t0R8G>JLvuYfy5XiX*q|d2L`@^(FVqxC`~) zPY{XdoaFF0JGNr6jlz=j+b?ZKJo?1cNdC2pb%MhCnyh&mf~V6QkHlV5y~?vnduiZi z@#Z?qwjLYyaC!7JNr7(L+lYi{2`cliTHbB1&PP|=Kg)HXP;ANe^kA%qEqjE=cy?7t?CHhc%0)KAIczn3}VvVi>C`?Zb0M|5W1+X)ZG~T9Mv8N~im~isfj6 zmQ_dV*8QZ0RCS(e-;S$(^udk&`IVr_%UXOz9g1Zk<(dq6zun z-v6f0z-Zn2s#s&o>&Mo=rW4$}YH7Uku`*Ks2V-v;7UdW9jSel1Nk~|PfS`0Ef&~I1 z-5}i}9YctK(kda1@TY|#hZE6+e+fC|AB|?RMz?8<_r=|ftN&5WJnzwEt>t@>-6_He2HlU!{!QY0bV}Dz z7)@#%(>}@*i7m|?x-HrWaX|s^UZb9gg#Ufz+w?6jc2t)oK5<7%k{i_Z&##slE9)e} z?}%y#$(_AwKKJ<~;qSZ8&92hxn$2J3ht-C*p5lE=G^pGeK7E@ol$njwJev<}9}_9f z8y%@L3`k=mZxi}Z?G!n;aTxp!O-A~WO*0nYR_jzYuoptBQrleg{6($zZkCuY)5R$=I$@na=w~- z(^=jTsr*{x@1~U@ypL(Kvh{4>_&~6+xwHLxQJg_4c(hbI_lDrW1-ABcTPa3oyd0+d z>)>9rF|}^NVk5+VCQXcebC+$*-h`4!a{#AH1yv4Q|L1#QARhy03P96ufg^%lA4Yp#L?dbmx+@NDk+bGF75V?JG(ygmJ7^FDbwR;BUKXm zf(o&_HZo5n34&bKdAczPFiYczd5qhvLdvlufCd1{3M7@c06CT@7zR3U3HLT)Gb*z8sW@qzyke!`@F_td((ZxA8&I!SYo*#&xZFo$b$NW{OO< z;2i|e+k&dsBQrBjP`(0+^+Z6#Y+MHw9Yer{6?37crp}PZG`wj8)mmSGDFxn}+Fs74 zebnnsisND;UC13?ny%L>e(XI94UxzvK}VaK4+<8r@>IVEE>dsa<-FVGIGY|SmzO?; zNZz~m0dRdkW@YsQ?}Y|{XBo5xHKTIsZUH#?8z>&S5P(u{7-l|eHzut8Xe7)|J%lRc z2a@!f%w!N?kF3m?ig!3=Gn};6o>C#BF=n?sUhvF?zQ{Xc3$$NVcud<5nh`|gZaG7Mq9-cb^8#HAlTW1;98J=|F<$r%um2cUW0AY^m(tNL z#liw|0mGZ8+D_cA-j<5*)Ns@Ti^jgm4c_?HR3Co7BKzc@T$7#92fFsrUifxU?F){ViI zcB4l@lsn!7H(_^SbX5Pg++C1`Xq6k2wQb>#L-@|cjC#JO>xQ7K2NI#3BO?)aI38hP z{wa%m|9F^k)V>0$Wth1ovV?td&um5+4wKObL*LnOacmT}qAKJMrA(Iw{!{F=syQ1} zUAAPQNDV)yJ3phQV+JFuh=4;EUkQ;BNzZSu1?fMHycSL zMnd ziJXd|?VF+P-#zZH{=IQDc!&=+OINfdzJ!MFH|*bz<)qhYQ$-5=&%t36j5lkzG3g8w zI#$y6#LouI&43j8tJh?t*l-{KOy9VLE{nNwA#p4MNhQ29!EI=mzQ$-sWvbNA2{NCWinS^WF+f}6z6 z=D#7Ou+$!JEA;9XWMy|#Q##Fi7}INxZ?mz!YI14+3}CD$2hVL7K2qaW80d^b5M0Nm zImit3Z!_pUU48m>COXEsePmDX44;*TmSx36!CiOWHZ4&AX(Ck zNMP#K2qH%fIFJ1t_rHjRHh^S14$Ft%*OWL!I0;Ah@0iTNlKcM zyQ6S#b?m8$=pLI<;P9KNH&Y*DO^F{Z_YIiUmj$CkxI*-GT)c*U3DYcmNpB$&B!Nvx zqs3FzHC#&dm8}yls9>MY%;Vv1F223+X3SLi|LgZA0Rn>L{W3M_G@qsaN?6A7)`ccZEx%=ZgXU~5dOvB5FZJKA<46{N$C~n@) zhx6N-Qq@?Il;b_O_)3>k&;7z1k#`T`yC34uc#uUg#8-a#5?$GuV`f!nDn^1W)_Aqf z7N5d?`lQCC$sx8NWIG{k!r6Nwc=iD5{A3cnoA56*&{F%Bek|gvi!9Ixw`Xh5YC?Z1 zyXyn}kb)Un;DOLQqqvpNd;VBYEK_kc=9jf6>ptgG`4`)j|7ssh%k5>k+fgxZE0K@; zBjIk5pD#wD14G7AXzzU|!A)Xe_q^tHKw)k?$X3>_s-NlV9|Sr)TjNB5cuZFrxq1GX z?gdT;2c(#bM^3N;ggN^BI_U~+E{RmC`^OGuM%1JS?d$H_uQX^zzX*)({(E3hg)F_G z*cw|A9JXpKM$qKP%Lb(3>l+EJ(VkFPBA63hQH89`;T#BWEPMdngW zh?2uL58AZ0r=bsqR7V;o^tL62X>1r$5};Y98-BJf>ED+=r8l#|i5t1f!w>8;B}=Jx ziDO+)y3$F2O=!mIR-$2bj=AFJdt{tJ242?`r)*9EeVo(mph7#qw&is;sa0s%#n&P{h0k4h+XW@x_C=Tg@Kook~?+KA+Q!>ABq(d*dZS1fLt<#B8G9Z#Xp zQPMm~mlz)jOs4kwoq^-#|9$5Y0CXY=e^*4soL3st8$YIMP|g2PN|)$4VRW0>+|Kyb z`xpi1H5GsVF6SH)v~@SOVDvSWpE}F*v{J#8(mgl`RXW&O^$@Ob&BVBV5c=&|otgdE zLk%``@w`2??;TOZ+BN;mnSYCj6)b_I%SJCMs)b*)wqO8vwBIF~xzt<4$q(@`v=}MT zA?r3E2MBsRXmJ+$@2r()1J>{f+IXl-+;Aa|^3^Uv}h-l<%QZ$@KD<6f{br~%4S z0~+>M$$G(V9KXkd9a+F#`TRdwc2YVyLO1pHbH6?{FI0ZTpclcV4tTlK)!|&TeWc}2 z#Eyk9%fr~p@_2WtZ8yU zUVGE=B3n*hu)TSyeC3x)v3HL5XL}DxRYL+KFkj2!|0z9+*8gL0(=DhbM?}!onNIcL zjJRxjb&_!OTa4}jnb)99kb@tALJKApwV-tXF^THYum!hN?2U2$LP#0~KZr0M&FFfO zxhB=&B+|Y$-{YOodI854L#bhx1>ddIbEr@72o?4Yx^B~Rw!~M#_ee^0QsSv znd?0X#4-C)yv_EC@>%#_ENorE9-?pZ#d+2z8>8K!TS^0rFg`!S?RM^>RrHMmdK#}o zrh;V24{rm%OG||b3jBi>%1;+?C#ipVA)@epzKy1{1R7Ti(p@6ISS>{eNK=3iegN>o z0C*hI>9N$G2>_^}Knmlrrpq(5&q5yDw|g_C{Va`KIkJ6iq#{V3UG7}7e}jU!;LjEp z3BdZm&0M9%P1xRD&Cu-9{}{9rd+-w_IxxEKI7jW(6ZUVR5!F;cJVhkx0tO;c*aq0K zQ@-=D*36X|`XGU~>(8i!a@6re(_q6Nw?FLl?tkk4Hw4xivD9~6iX~0lBiJzz0VND+ zCK;NfuakSr)hG`s5`-8;d7y1tSfO;cF0Q7EdfLQ{V z#~o<)>*X~IhqOwQmvviI&R@82ZKBFFVYRaKW-})x{TrL!b;bfi=tMBJ%RI_yQsO7; zxw_cpmzxjO3Aw>nD!0+9>L?IRz>XXBGWPM=;{UoY7bz)kT1RkHLMq+no>o>b2%YshO~ab?d?t z$zTsaqU;NHijpS+fe+qQ{TT`wvlb!Rr3?aU2gt8B;O76}MWQHg8SsgJ0KNf$7d5gx zPqp^{kEU$|B*rPqu(Y)?s<6e!zIcO5O`jBr%uiw3NZR{GR{hplx3?QV{ywW0^n5EM z!2-eG1hAt61q0kT41mEzgdfx*h5*U4g|I0LC?lW6osv-=Ap2JF_ix<504jJ3yZ^|- zvK{Pux{>F#wJuX+dOFbmmdAbWmRuqm%nM>H%!@bOVu9FIty|qoRYz29UJjBu`lKCv z_G;Vc>JXo)dUs%<_69(MFFmj#};z@Vz@{AWrB{T zC}KbndtlPBq$M^Z!T1vocVgq0My=IE3j092dokt(vxuPYoY}+~_f|Mj1}&c67jsoI z4mf0Pqug45)w|EXH1Dt%s{)k_z(WHXI32|at)5a#w@S@jv5qFs;%KsPe12qIpvarN zUTo-4ri+War8{Kd^3ufQt?aYS=5iUpr@?3)0JcpkP$mJwX@-12G5`yKrIiy#6!=Vm zF|tMl1Gyv6ZJF-_`4!Qf0Wf3dLD_=XRi~z-I7sA9lF+m7rN1Fe7ydNLk4*2l9V8b{ z#gzQvbf9-hue@HVTGt+EjA~^*xr47i3k8A2;Ko344fKVD`YI!>%Iefy zjx;N*tGyaSxoPU}R@r&$?D9?uunvKqiFc7nV-VzLY~#REpK9OCbdxxsgF|HnXeVnu z6vP$Hbzwe3xL>;#l}9c(>~UG@Zg!Cb}W6&qPJIYRu~$7l=pl?0I_r}G!d3N?TO za!*TX34Pr(CG$urb+*gEh}Yqy_Xz0T*3THMxMwJ0`KiO8aaQ+$>ffRU6$jnrdWBa@ ziueuj+4gVmC+DY|oV+{Q6L$rW(&*hCZJx-E4&B)B>oxCNe#6tTcO9<&$JqX-Q)vHAJ;U`f)pOc0{k1!+?^l=s604#m)6-(SRy8l&Bc z48Mh(oiutnc+F{xyhrCr?=&iB%4E>1Ra}h?FW4Bo$vMY;toNu#_~WrzsE?!j`soLrVUux|44?tI&J0Nn%lx z!W)o3CZI89v@^>FVvV~aGjT=o(O$rr(OmJ9y25a)(SEk3yO`Lcu((H~LgUu*qJz_J z371jzQzvUw;9MGW2E*P-iDag&&vr?~8SzBL;VClUwgIKw!rVT2PLnb!04wcPYOLRM z+Rcl10k3Kv>_A|ltFV6G5iVrHaNqtuA7HjFCiGipUcW8h-H~(l5`my{qxSGh!ra`x z0kaFkQ1$ies+_Lr5(&wa>gkj5hIYOl9+|@T{Hi*<7#SdmA!DCDvGU4uo;^Q~0!UK1 zIkU{k&?1q?>&}IMhQN2bMN4ba8$;(7q5M2Eg$h+CYjUeu;khR=UB5_9s&0MO=E(c6 zWIXij?y9Qb?roE`Jx=$}ADfY+mEujw5t{~fzT(l(Ap&~ibpiMqGf7Tla-QsRvh*;W zmymw4{^!o(7;R!YTYkFj-@Qsq%T-bnLiSz^mNGlf&>h|gXjdz7;UY&kGAh_NyOKfx zRu0+3zEbSI_|bu7y>~1{RUQjKy|H|*eU?7WECTsVXFWp4f7Kr`#A0KRYO?t1g zc2OYOa)0&cF5BE{A=qEMZoTETKU}`NG*?)CN^|17^7zN8T-MQp$VJrILQ`#P&851= zj~qdAT@pakdl=M~K?9^#0X$O{ldAPT?$|R3AY{)nOT^6g9@ZC}R^)ex5yGx8kY3}t z6>-|Mbc*2ohota|bOhXSDfP z8Xn#B2|9mfCrU}uA2C~pzkmIjJdUBOKlZjEtd%C|2Ow!#+Mk#zJgv?#e&9=b^|9;U z!>oa?em^iR#3|3T`2>u$k)5CXB+cLJ{hjHMtt~V2e)otm3&3~0Ce1qfRcjI?b4Qm= zOhkV#)<)ED{@I1*>!cF5FjW9ot95_U11u2#REy zm+tQPk2e0z+Z4$6r5WXxRX^o|eTO2=W_{L6DqqwRb$v|vH%PGg3mbJ{dDdeU7I%T& z&dM*QF|xJUr9W>2ZHmQ&r9kW1qPfOw+vKq=*W`L}e!dYa4$_WugH$+`FE!$qlY$6kLxf&ZZkL@|IDliEqd_{OA^(G)S{EGtqVmp1LQTpBRn`K z4)&A03d$ZQVMO_FbXl7C1`3oA^P@eotvb0vxzbCdx4%F^W97lnN6nE0Maww$`XQ|6{O8^6kE?PemV2Mo_Bq^eCwC-}IXy z{-R{a+%Fcg{Tk}O+R0Vt7FlnA?pqsBG%aK_2JP4i#EyLTADh#i&HE9MZ;WU?|GK@# zh(?9fDUlK2ZRiF!#}W_YgjP%x-DZglaU>sH0!7NTF2zfp$%mFHP48sXluVO+ouap`6+PUZOH5N3b5SnshZhU&EYD0Y~EP zX`=MZ$U^sK^|u*a8z@}s+p?mctAhHN2^Aue5w(YTD}iqOG3IbczD7pUB`j#F8aClv zF#k1f_}JX^_s(xMuRFx2(YXVrlfIJbfiP*vyK_LAZP3CVbbMKZVEchelU4^3cp`1$ z5ep3-Sm}VvAoNB-mqJm5gP#N7=)7sOw*cpi{KhkAwd4wz6QxgjY0ihc%wto=+CM?OtZqNj1{mQA=PN@ zNLdSrGd@8bcZk6eu&+*!RrS8_j-klR`23S4TkmGeUYTzDT2`GAS3CfahvGl&Ti$T7t(j}?!}=+*oP7u)Vxd3EYQ{|aKnkSV=f5}p-CnGK z$^s_j;r?6d8FS38{yGU3q;8x9Th=OPRNN|KT-)|sw5s1byHUCMV~evP9^_r8g)@oGuySb>vFc)TqR8A*zz>|IL&I)Hu5HE zH1kj5c`}*^b*aA|iS}Y# z9sWR?OEVaVuVJD}oZWxhEZ~VeJ5+y>*K(K>KISI!Ypd-|zob`E%8GB@j#BOr9*RON zr8Koz|5^NJ^X;$k%Mi~_XJ#NXF_B|lF$tW(Q1J~t(K zr?0TC+>}^kKoX~)jOZb%?rQ0zDFp&_Ge13=uQnblCYuGZWI@8WqPe-irl6r>aK={Rt&$}~ zTzO+?uz{kXCiPdu)z+3@8}e1OiT5W=PlQ5PMNrmg3jF=(~fT98pRo0nvV zF~d|p&UU0dW56lBnK48jOmpKg#PpIGM#lcOD^L@y}oK@agAn9o)@jAwDRM9t0zC z$;HO6+-?4~Ay=rb4Oe9^N;8i#KX{M`)@N7%HoV+42|DdyV>ow_mDhJ?K(e`U)Ty=g z2URfCB7KgYQRl{iS*-uo@$~GFT!A!%2oz0AGlx)@^6sx>UMd?}*O)pzK1S5emA!5v z?y6cGVBuvp7`mpgC65sp?ysn_*iQ@yraMyZ%{a}D8jpsaqYoEueVbyghwoc9h79gu zTE3TL62>*-x6n~kB=6{=hS_QH`mZII)-$Y}sz*2PFfLamt(_NODCesSAi^9YAHcq5 zIDNuoG|(`8IB1lUui%m*wOAWNI+H58fjT*vw3-|J8})!&O8%2q1b{wNZ%C*R60*e6 zy0pJh+2h7|tOzk{O%>MoA`lr#0#?eqHIQbm30}M4Dov^XGh#*Jd2sG;&Xqx7DKo!2 zd5ICvb&uFqUSY2}9U0m)s+`sx1iQi(3q4K+%F5?ynJzH>8RmWN#)T}Sbz8(toA0#E zasd~*^qzzD9alit1K00)3a;O;$(Rxwk?yU0+^=d3sW7fZyvoV9Za=7^#cwtmT_|0BKWGm%89G;kQ>6z`tdv2Xfry7U?&I)0c z7|Lw3v+W+R#b}x!YA5$g$?FB%W;nNnS3<&RuaDKWWsRhmx0joiK*ny2U-(4%r{HZ` z*jPYga86%(V#EsCzGdcE9P8}gIeO*%r7wnv_Ot+u0La4^(&cCO|E3WqQU$2^$pY;@ zu4C9+QV3+RF&>(eL3k2 zC}4o9vEyVrY5V8ujuVS?hS}w*nVo5Qh1LQv(XL<0XYd8Y^#NkF3*jdU6rlw*H;pBFZ9W&jh4wUIB4@RQ`+t8U|!DiI*04^WrT=_{R|q z&mzI<-`VzbEiEFMnpo4g!4SLDPGKOX81vmnaMb&5$9$d7VpT8tCu@GUF31Q!+Zk81 z_gIMG76vpY@c_;K40mS(yx^o2`LjJYFi8e|462qaKp6+@baG9BmKWF^fdUU8IxXQd zfc|?3SZwlWWIO>*E<~ebqLcv`F}2QFTQ33Q`QFBYu5_#5 z4{8>fli6tdYIM}Z8&hpJ7tSnrJWY-`37ULyKCYLgwE|DU^EK;!X}s}e>7Y&wSgt8M z6U%^>e+gqk3_pn(10KGh)i4QgI&nwY0e^-mG|uzI{}72#9>B=FyQ^z3keX{ptRtXo zF%*6jxY)}NTj35;Q|7>Ftl^_NTWm+@Ug@dcvLq=cf{$KYz_6K6wR+L zB!eQnPc%UeUwc$W5pvypV6{*Kb(N+D>$38kWqO%kYFu+DOaJp@B6t1HP{LCzPqPbQ z?YEuUp0G{Z3`GpV-Q+x$yk%xb9Ad2Lw#$G2jJEE!FNOx{X+bb!Y=CEA3qlYA6oNqK zJdOAI^Nl)tHgD3S_FTB`TkZ<4jJe%}(hXXF`F+D6H4jlaVJS;>VM+t|PfMHH2OG|t z#o7s;w=SIo>J4Rm$Zl(g($lIt!@O?9IUJC5|Tp!=Vk7OgbA#i>Qs=82dSR-6BE(J7_>)|v zO=+_Y_h*eHlLc(|@cNbR8UJ-0jy@(>o&>s_E?AH6BOm!ouJ&1RWP3xkg7eF9^QK%r zGQ-zONFdAA15Ttf5469y7@PjG#H^MHh0QQj%M3y_eAII?+;nocz;;E_rR)p_P=ys( zssVzZ0nu_~X&_q@gf76US_C|*g_0|LEDC{A;FDHuC<4VKQJ+bqTM^ZGM7a$R(Tcd5 z{PIi4WjAToN!@UfVKW-nXIFmQpjfli-P>$NX)(lOKk@ruzrka$EJ!k_VUM}0f7lCp zzIi)ja!^7!lVK!U$2NS=e0%^eii&0*NXj!En>IZwMhRf*4Ax*?N0Y zJluEhZkktwB>$5JEPzxUWUKECNodShF$(3KG;Kd82HZJ;lZQTAKb`RvY$4wPcQ9je zvwofd{E7QLW0okM$u-`XHkMdL#8Z$~aBT3%lIn3k>@o4{t{Pec=PW%#_10wtmM)dnw9{#W1_ud9PJ zX6Z`Of6$k<*|e}wuV|~y)W1uA_(HNhYkROc$VWo1g5uD&)a4z$$BgAD;j)EA)w!=IFR

    B{CGrER2Kmi;NW|HfdPHibC5Cy? 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

    I=?l;3gfClvD?0nT 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
  • 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

    g`+txI79l*ya*v&;)CuPo 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 Ay8r+H diff --git a/baselines/fedmeta/fedmeta/femnist/graph_params/result_graph.png b/baselines/fedmeta/fedmeta/femnist/graph_params/result_graph.png index d03f43dcfa848246c4bedcf07a6a0deeb51aa990..c66618ebfc40350c220c3f205d4970ddd4d3766c 100644 GIT binary patch literal 157388 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

    RZ$D;O1` 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

    B{CGrER2Kmi;NW|HfdPHibC5Cy? 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

    I=?l;3gfClvD?0nT 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

    ;Ql` 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 diff --git a/baselines/fedmeta/fedmeta/utils.py b/baselines/fedmeta/fedmeta/utils.py index f8ab08ba66c6..592f1aae3742 100644 --- a/baselines/fedmeta/fedmeta/utils.py +++ b/baselines/fedmeta/fedmeta/utils.py @@ -132,10 +132,32 @@ def plot_from_pkl(directory="."): data = pickle.load(f) all_data[file] = data - plt.figure(figsize=(14, 6)) + # plt.figure(figsize=(14, 6)) + # + # # Acc graph + # plt.subplot(1, 2, 1) + # for file, data in all_data.items(): + # accuracies = [acc for _, acc in data["accuracy"]['accuracy']] + # legend_ = file[:-4] if file.endswith('.pkl') else file + # plt.plot(accuracies, label=legend_, color=color_mapping.get(file, "black")) + # plt.title("Accuracy") + # plt.legend() + # + # # Loss graph + # plt.subplot(1, 2, 2) + # for file, data in all_data.items(): + # loss = [loss for _, loss in data["loss"]] + # legend_ = file[:-4] if file.endswith('.pkl') else file + # plt.plot(loss, label=legend_, color=color_mapping.get(file, "black")) + # plt.title("Loss") + # plt.legend() + # + # plt.tight_layout() + + plt.figure(figsize=(7, 12)) # figsize 변경 # Acc graph - plt.subplot(1, 2, 1) + plt.subplot(2, 1, 1) # 변경: 첫 번째 인자를 2로, 두 번째 인자를 1로 설정 for file, data in all_data.items(): accuracies = [acc for _, acc in data["accuracy"]['accuracy']] legend_ = file[:-4] if file.endswith('.pkl') else file @@ -144,7 +166,7 @@ def plot_from_pkl(directory="."): plt.legend() # Loss graph - plt.subplot(1, 2, 2) + plt.subplot(2, 1, 2) # 변경: 첫 번째 인자를 2로, 두 번째 인자를 1로 설정 for file, data in all_data.items(): loss = [loss for _, loss in data["loss"]] legend_ = file[:-4] if file.endswith('.pkl') else file From c841b296d8e36fd691865990305b910c00fabb04 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 4 Oct 2023 12:46:02 +0900 Subject: [PATCH 101/133] Update README.md --- baselines/fedmeta/README.md | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index c30bb09a5fc9..1d09bafbd51d 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -39,10 +39,10 @@ dataset: [FEMNIST, SHAKESPEARE] **Shakespeare Dataset Issue** : In the FedMeta paper experiment, the Shakespeare dataset had 1126 users. However, due to a current bug, the number of users has decreased to 660 users. Therefore, we have only maintained the total number of data. -| Dataset | #Clients | #Samples | #Classes | #Partition Clients | #Partition Dataset | -|:-----------:|:----------:| :---: |:--------:|:------------------------------------------------------------:|----------------------| -| FEMNIST | 1,068 | 235,683 | 62 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2, Qry : 0.8 | -| SHAKESPEARE | 550 -> 110 | 625,127 | 80 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2, Qry : 0.8 | +| Dataset | #Clients | #Samples | #Classes | #Partition Clients | #Partition Dataset | +|:-----------:|:-------------------:|:----------------:|:--------:|:------------------------------------------------------------:|----------------------| +| FEMNIST | About
    1050 | About
    240,000 | 62 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2, Qry : 0.8 | +| SHAKESPEARE | About
    550 -> 110 | About
    620,000 | 80 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2, Qry : 0.8 | **The original specifications of the Leaf dataset can be found in the Leaf paper(_"LEAF: A Benchmark for Federated Settings"_).** @@ -75,13 +75,31 @@ Poetry shell ****Download Dataset**** : Go [LEAF: A Benchmark for Federated Settings](https://github.com/TalwalkarLab/leaf) and Use the command below! You can download dataset (FEMNIST and SHAKESPEARE). ```bash +# clone LEAF repo +git clone https://github.com/TalwalkarLab/leaf.git +# prepare the Leaf GitHub libraries. +pip3 install numpy +pip3 install pillow + +# navigate to data directory and then the dataset +cd leaf/data/femnist #FEMNIST dataset Download command for these experiments -./preprocess.sh -s niid --iu 1068 --sf 0.3 -k 0 -t sample +./preprocess.sh -s niid --sf 0.3 -k 0 -t sample +# navigate to data directory and then the dataset +cd leaf/data/shakespeare #SHAKESEPEARE dataset Download command for these experiments ./preprocess.sh -s niid --sf 0.16 -k 0 -t sample ``` +*Run `./preprocess.sh` with a choice of the following tags* +* `-s` := 'iid' to sample in an i.i.d. manner, or 'niid' to sample in a non-i.i.d. manner; more information on i.i.d. versus non-i.i.d. is included in the 'Notes' section +* `--sf` := fraction of data to sample, written as a decimal; default is 0.1 +* `-k` := minimum number of samples per user +* `-t` := 'user' to partition users into train-test groups, or 'sample' to partition each user's samples into train-test groups + +More detailed tag information can be found on Leaf GitHub. + ****Start experiments**** : ```bash # FedAvg + Femnist Dataset From 268e1b821cdd14276784e67834f6c405a5ee9c7b Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 4 Oct 2023 12:48:05 +0900 Subject: [PATCH 102/133] fix grid line in README.md --- baselines/fedmeta/README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index 1d09bafbd51d..b0726b24292b 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -39,21 +39,21 @@ dataset: [FEMNIST, SHAKESPEARE] **Shakespeare Dataset Issue** : In the FedMeta paper experiment, the Shakespeare dataset had 1126 users. However, due to a current bug, the number of users has decreased to 660 users. Therefore, we have only maintained the total number of data. -| Dataset | #Clients | #Samples | #Classes | #Partition Clients | #Partition Dataset | -|:-----------:|:-------------------:|:----------------:|:--------:|:------------------------------------------------------------:|----------------------| -| FEMNIST | About
    1050 | About
    240,000 | 62 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2, Qry : 0.8 | -| SHAKESPEARE | About
    550 -> 110 | About
    620,000 | 80 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2, Qry : 0.8 | +| Dataset | #Clients | #Samples | #Classes | #Partition Clients | #Partition Dataset | +|:-----------:|:-------------------:|:----------------:|:--------:|:------------------------------------------------------------:|:----------------------:| +| FEMNIST | About
    1050 | About
    240,000 | 62 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2
    Qry : 0.8 | +| SHAKESPEARE | About
    550 -> 110 | About
    620,000 | 80 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2
    Qry : 0.8 | **The original specifications of the Leaf dataset can be found in the Leaf paper(_"LEAF: A Benchmark for Federated Settings"_).** ****Training Hyperparameters:**** : The following table shows the main hyperparameters for this baseline with their default value (i.e. the value used if you run `python main.py algo=? data=?` directly) -| Algorithm | Dataset | Clients per Round | Number of Rounds | Batch Size | Optimizer | Learning Rate(α, β) | Client Resources | Gradient Step | -|:-----------------:|:--------------:|:-----------------:|:----------------:|:----------:|:---------:|:-------------------:|--------------------------------------|:-------------:| -| FedAvg | FEMNIST
    SHAKESPEARE | 4 | 2000
    400 | 10 | Adam | 0.0001
    0.001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | - | -| FedAvg(Meta) | FEMNIST
    SHAKESPEARE | 4 | 2000
    400 | 10 | Adam | 0.0001
    0.001 | {'num_cpus': 4.0, 'num_gpus': 0.25 } | - | -| FedMeta(MAML) | FEMNIST
    SHAKESPEARE | 4 | 2000
    400 | 10 | Adam | (0.001, 0.0001)
    (0.1, 0.01) | {'num_cpus': 4.0, 'num_gpus': 1.0 } | 5
    1 | -| FedMeta(Meta-SGD) | FEMNIST
    SHAKESPEARE | 4 | 2000
    400 | 10 | Adam | (0.001, 0.0001)
    (0.1, 0.01) | {'num_cpus': 4.0, 'num_gpus': 1.0 } | 5
    1 | +| Algorithm | Dataset | Clients per Round | Number of Rounds | Batch Size | Optimizer | Learning Rate(α, β) | Client Resources | Gradient Step | +|:-----------------:|:--------------:|:-----------------:|:----------------:|:----------:|:---------:|:-------------------:|:---------------------------------------:|:-------------:| +| FedAvg | FEMNIST
    SHAKESPEARE | 4 | 2000
    400 | 10 | Adam | 0.0001
    0.001 | {'num_cpus': 4.0,
    'num_gpus': 0.25 } | - | +| FedAvg(Meta) | FEMNIST
    SHAKESPEARE | 4 | 2000
    400 | 10 | Adam | 0.0001
    0.001 | {'num_cpus': 4.0,
    'num_gpus': 0.25 } | - | +| FedMeta(MAML) | FEMNIST
    SHAKESPEARE | 4 | 2000
    400 | 10 | Adam | (0.001, 0.0001)
    (0.1, 0.01) | {'num_cpus': 4.0,
    'num_gpus': 1.0 } | 5
    1 | +| FedMeta(Meta-SGD) | FEMNIST
    SHAKESPEARE | 4 | 2000
    400 | 10 | Adam | (0.001, 0.0001)
    (0.1, 0.01) | {'num_cpus': 4.0,
    'num_gpus': 1.0 } | 5
    1 | ## Environment Setup From c6697e87567e2a44bf4b99c9a07c7a05899b0303 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 4 Oct 2023 12:51:23 +0900 Subject: [PATCH 103/133] test README.md grid line --- baselines/fedmeta/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index b0726b24292b..b4756c99713e 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -39,10 +39,10 @@ dataset: [FEMNIST, SHAKESPEARE] **Shakespeare Dataset Issue** : In the FedMeta paper experiment, the Shakespeare dataset had 1126 users. However, due to a current bug, the number of users has decreased to 660 users. Therefore, we have only maintained the total number of data. -| Dataset | #Clients | #Samples | #Classes | #Partition Clients | #Partition Dataset | -|:-----------:|:-------------------:|:----------------:|:--------:|:------------------------------------------------------------:|:----------------------:| -| FEMNIST | About
    1050 | About
    240,000 | 62 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2
    Qry : 0.8 | -| SHAKESPEARE | About
    550 -> 110 | About
    620,000 | 80 | Train Clients : 0.8, Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2
    Qry : 0.8 | +| Dataset | #Clients | #Samples | #Classes | #Partition Clients | #Partition Dataset | +|:-----------:|:-------------------:|:----------------:|:--------:|:----------------------------------------------------------------:|:----------------------:| +| FEMNIST | About
    1050 | About
    240,000 | 62 | Train Clients : 0.8,
    Valid Clients : 0.1,
    Test Clients : 0.1 | Sup : 0.2
    Qry : 0.8 | +| SHAKESPEARE | About
    550 -> 110 | About
    620,000 | 80 | Train Clients : 0.8,
    Valid Clients : 0.1,
    Test Clients : 0.1 | Sup : 0.2
    Qry : 0.8 | **The original specifications of the Leaf dataset can be found in the Leaf paper(_"LEAF: A Benchmark for Federated Settings"_).** From 7860b5015d683bebad89a9e84bf69e5c2b226bd0 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Wed, 4 Oct 2023 12:54:30 +0900 Subject: [PATCH 104/133] fixed feedback --- baselines/fedmeta/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index b4756c99713e..348a724cfead 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -39,10 +39,10 @@ dataset: [FEMNIST, SHAKESPEARE] **Shakespeare Dataset Issue** : In the FedMeta paper experiment, the Shakespeare dataset had 1126 users. However, due to a current bug, the number of users has decreased to 660 users. Therefore, we have only maintained the total number of data. -| Dataset | #Clients | #Samples | #Classes | #Partition Clients | #Partition Dataset | -|:-----------:|:-------------------:|:----------------:|:--------:|:----------------------------------------------------------------:|:----------------------:| -| FEMNIST | About
    1050 | About
    240,000 | 62 | Train Clients : 0.8,
    Valid Clients : 0.1,
    Test Clients : 0.1 | Sup : 0.2
    Qry : 0.8 | -| SHAKESPEARE | About
    550 -> 110 | About
    620,000 | 80 | Train Clients : 0.8,
    Valid Clients : 0.1,
    Test Clients : 0.1 | Sup : 0.2
    Qry : 0.8 | +| Dataset | #Clients | #Samples | #Classes | #Partition Clients | #Partition Dataset | +|:-----------:|:-------------------:|:----------------:|:--------:|:---------------------------------------------------------------:|:----------------------:| +| FEMNIST | About
    1050 | About
    240,000 | 62 | Train Clients : 0.8
    Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2
    Qry : 0.8 | +| SHAKESPEARE | About
    550 -> 110 | About
    620,000 | 80 | Train Clients : 0.8
    Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2
    Qry : 0.8 | **The original specifications of the Leaf dataset can be found in the Leaf paper(_"LEAF: A Benchmark for Federated Settings"_).** From d831cb92202665cfaaa97b95001b2786a0ae614b Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Thu, 5 Oct 2023 13:37:37 +0900 Subject: [PATCH 105/133] fix annotation --- baselines/fedmeta/README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index 348a724cfead..fe64c053146a 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -68,7 +68,10 @@ poetry env use 3.10.6 # install the base Poetry environment poetry install -Poetry shell +#if you have issue "Failed to unlock the collection!" +export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring +#poetry start +poetry shell ``` ## Running the Experiments From a082665ecc1918385a49b4d876487b8e36052d99 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Thu, 5 Oct 2023 13:42:37 +0900 Subject: [PATCH 106/133] fix annotation --- baselines/fedmeta/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index fe64c053146a..cf9ce59dfb6c 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -106,16 +106,16 @@ More detailed tag information can be found on Leaf GitHub. ****Start experiments**** : ```bash # FedAvg + Femnist Dataset -python -m fedmeta.main algo=fedavg data=femnist path=(your leaf dataset path)/leaf/data/shakespeare/data +python -m fedmeta.main algo=fedavg data=femnist path=(your leaf dataset path)/leaf/data/femnist/data # FedAvg(Meta) + Femnist Dataset -python -m fedmeta.main algo=fedavg_meta data=femnist path=../leaf/data/shakespeare/data +python -m fedmeta.main algo=fedavg_meta data=femnist path=../leaf/data/femnist/data # FedMeta(MAML) + Femnist Dataset -python -m fedmeta.main algo=fedmeta_maml data=femnist path=../leaf/data/shakespeare/data +python -m fedmeta.main algo=fedmeta_maml data=femnist path=../leaf/data/femnist/data # FedMeta(Meta-SGD) + Femnist Dataset -python -m fedmeta.main algo=fedmeta_meta_sgd data=femnist path=../leaf/data/shakespeare/data +python -m fedmeta.main algo=fedmeta_meta_sgd data=femnist path=../leaf/data/femnist/data From 89baf06196a69e5dc29942ccea411c10208ec131 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Thu, 5 Oct 2023 14:45:25 +0900 Subject: [PATCH 107/133] update ReadME.md - remove torch - remove torchvision - add poetry add torch torchvision --- baselines/fedmeta/README.md | 19 ++++++++----------- baselines/fedmeta/pyproject.toml | 2 -- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index cf9ce59dfb6c..7c930bba3ce9 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -67,10 +67,7 @@ pyenv local 3.10.6 poetry env use 3.10.6 # install the base Poetry environment -poetry install -#if you have issue "Failed to unlock the collection!" -export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring -#poetry start +poetry add torch torchvision poetry shell ``` @@ -109,27 +106,27 @@ More detailed tag information can be found on Leaf GitHub. python -m fedmeta.main algo=fedavg data=femnist path=(your leaf dataset path)/leaf/data/femnist/data # FedAvg(Meta) + Femnist Dataset -python -m fedmeta.main algo=fedavg_meta data=femnist path=../leaf/data/femnist/data +python -m fedmeta.main algo=fedavg_meta data=femnist path=./leaf/data/femnist/data # FedMeta(MAML) + Femnist Dataset -python -m fedmeta.main algo=fedmeta_maml data=femnist path=../leaf/data/femnist/data +python -m fedmeta.main algo=fedmeta_maml data=femnist path=./leaf/data/femnist/data # FedMeta(Meta-SGD) + Femnist Dataset -python -m fedmeta.main algo=fedmeta_meta_sgd data=femnist path=../leaf/data/femnist/data +python -m fedmeta.main algo=fedmeta_meta_sgd data=femnist path=./leaf/data/femnist/data #FedAvg + Shakespeare Dataset -python -m fedmeta.main algo=fedavg data=shakespeare path=../leaf/data/shakespeare/data +python -m fedmeta.main algo=fedavg data=shakespeare path=./leaf/data/shakespeare/data #FedAvg(Meta) + Shakespeare Dataset -python -m fedmeta.main algo=fedavg_meta data=shakespeare path=../leaf/data/shakespeare/data +python -m fedmeta.main algo=fedavg_meta data=shakespeare path=./leaf/data/shakespeare/data #FedMeta(MAML) + Shakespeare Dataset -python -m fedmeta.main algo=fedmeta_maml data=shakespeare path=../leaf/data/shakespeare/data +python -m fedmeta.main algo=fedmeta_maml data=shakespeare path=./leaf/data/shakespeare/data #FedMeta(Meta-SGD) + Shakespeare Dataset -python -m fedmeta.main algo=fedmeta_meta_sgd data=shakespeare path=../leaf/data/shakespeare/data +python -m fedmeta.main algo=fedmeta_meta_sgd data=shakespeare path=./leaf/data/shakespeare/data ``` diff --git a/baselines/fedmeta/pyproject.toml b/baselines/fedmeta/pyproject.toml index d40378cf9519..686a6577d0fd 100644 --- a/baselines/fedmeta/pyproject.toml +++ b/baselines/fedmeta/pyproject.toml @@ -41,8 +41,6 @@ python = ">=3.10.0, <3.11.0" flwr = { extras = ["simulation"], version = "1.5.0" } hydra-core = "1.3.2" # don't change this matplotlib = "3.7.1" -torch = { url = "https://download.pytorch.org/whl/cu116/torch-1.13.1%2Bcu116-cp310-cp310-linux_x86_64.whl"} -torchvision = { url = "https://download.pytorch.org/whl/cu116/torchvision-0.14.1%2Bcu116-cp310-cp310-linux_x86_64.whl"} scikit-learn = "^1.3.1" [tool.poetry.dev-dependencies] From d4e31124cbae12b90bd3498cbf2382931fc48d53 Mon Sep 17 00:00:00 2001 From: "JS.KIM" Date: Sat, 7 Oct 2023 13:27:40 +0900 Subject: [PATCH 108/133] Update baselines/fedmeta/pyproject.toml Co-authored-by: Javier --- baselines/fedmeta/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/baselines/fedmeta/pyproject.toml b/baselines/fedmeta/pyproject.toml index 686a6577d0fd..60ddbebb40ab 100644 --- a/baselines/fedmeta/pyproject.toml +++ b/baselines/fedmeta/pyproject.toml @@ -41,7 +41,7 @@ python = ">=3.10.0, <3.11.0" flwr = { extras = ["simulation"], version = "1.5.0" } hydra-core = "1.3.2" # don't change this matplotlib = "3.7.1" -scikit-learn = "^1.3.1" +scikit-learn = "1.3.1" [tool.poetry.dev-dependencies] isort = "==5.11.5" From bf7460ddda4ddebc717be940a2abf8089988da44 Mon Sep 17 00:00:00 2001 From: "JS.KIM" Date: Sat, 7 Oct 2023 13:27:53 +0900 Subject: [PATCH 109/133] Update baselines/fedmeta/pyproject.toml Co-authored-by: Javier --- baselines/fedmeta/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/baselines/fedmeta/pyproject.toml b/baselines/fedmeta/pyproject.toml index 60ddbebb40ab..12faec181ece 100644 --- a/baselines/fedmeta/pyproject.toml +++ b/baselines/fedmeta/pyproject.toml @@ -47,7 +47,7 @@ scikit-learn = "1.3.1" isort = "==5.11.5" black = "==23.1.0" docformatter = "==1.5.1" -mypy = "==0.961" +mypy = "==1.4.1" pylint = "==2.8.2" flake8 = "==3.9.2" pytest = "==6.2.4" From 0fcea37eb5d0a6dbd52e1cb53c748c199dae1752 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Sat, 7 Oct 2023 13:46:37 +0900 Subject: [PATCH 110/133] Update pyproject.toml Update README.md --- baselines/fedmeta/README.md | 8 ++++---- baselines/fedmeta/pyproject.toml | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index 7c930bba3ce9..e2076ec149b7 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -39,10 +39,10 @@ dataset: [FEMNIST, SHAKESPEARE] **Shakespeare Dataset Issue** : In the FedMeta paper experiment, the Shakespeare dataset had 1126 users. However, due to a current bug, the number of users has decreased to 660 users. Therefore, we have only maintained the total number of data. -| Dataset | #Clients | #Samples | #Classes | #Partition Clients | #Partition Dataset | -|:-----------:|:-------------------:|:----------------:|:--------:|:---------------------------------------------------------------:|:----------------------:| -| FEMNIST | About
    1050 | About
    240,000 | 62 | Train Clients : 0.8
    Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2
    Qry : 0.8 | -| SHAKESPEARE | About
    550 -> 110 | About
    620,000 | 80 | Train Clients : 0.8
    Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2
    Qry : 0.8 | +| Dataset | #Clients | #Samples | #Classes | #Partition Clients | #Partition Dataset | +|:-----------:|:--------:|:--------:|:--------:|:---------------------------------------------------------------:|:----------------------:| +| FEMNIST | 1109 | 245,337 | 62 | Train Clients : 0.8
    Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2
    Qry : 0.8 | +| SHAKESPEARE | 138 | 646,697 | 80 | Train Clients : 0.8
    Valid Clients : 0.1, Test Clients : 0.1 | Sup : 0.2
    Qry : 0.8 | **The original specifications of the Leaf dataset can be found in the Leaf paper(_"LEAF: A Benchmark for Federated Settings"_).** diff --git a/baselines/fedmeta/pyproject.toml b/baselines/fedmeta/pyproject.toml index 12faec181ece..6a9f74a8a298 100644 --- a/baselines/fedmeta/pyproject.toml +++ b/baselines/fedmeta/pyproject.toml @@ -3,11 +3,11 @@ requires = ["poetry-core>=1.4.0"] build-backend = "poetry.masonry.api" [tool.poetry] -name = "FedMeta" # <----- Ensure it matches the name of your baseline directory containing all the source code +name = "fedmeta" version = "1.0.0" -description = "Flower Baselines" +description = "Implementation of FedMeta (Fei Chen et al. 2018)" license = "Apache-2.0" -authors = ["The Flower Authors "] +authors = ["Jinsoo Kim ", "Kangyoon Lee "] readme = "README.md" homepage = "https://flower.dev" repository = "https://github.com/adap/flower" From 06733dd0103b959fd1c734ec0c87b287340b9067 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Sat, 7 Oct 2023 13:54:41 +0900 Subject: [PATCH 111/133] Add grid line in graph --- .../femnist/graph_params/result_graph.png | Bin 157388 -> 151054 bytes .../shakespeare/graph_params/result_graph.png | Bin 112802 -> 123180 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/baselines/fedmeta/fedmeta/femnist/graph_params/result_graph.png b/baselines/fedmeta/fedmeta/femnist/graph_params/result_graph.png index c66618ebfc40350c220c3f205d4970ddd4d3766c..935643b46f900da9f451635e9a5b4fce5d13c8eb 100644 GIT binary patch literal 151054 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
    7Siw)-? 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%0DE=hvB=#yA-vvRb_u5BfODtHS*=5^vj@w=c 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 Dwd5)`pI8LHZRf|HQ<0O{{Q>H?f*dR_peJF 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 literal 157388 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

    RZ$D;O1` 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

    B{CGrER2Kmi;NW|HfdPHibC5Cy? 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

    I=?l;3gfClvD?0nT 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 literal 157388 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

    RZ$D;O1` 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

    B{CGrER2Kmi;NW|HfdPHibC5Cy? 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

    I=?l;3gfClvD?0nT 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 diff --git a/baselines/fedmeta/fedmeta/models.py b/baselines/fedmeta/fedmeta/models.py index d84a9e0ce98c..3c1b543deb40 100644 --- a/baselines/fedmeta/fedmeta/models.py +++ b/baselines/fedmeta/fedmeta/models.py @@ -210,24 +210,20 @@ def test( The loss and the accuracy of the input model on the given data. """ criterion = torch.nn.CrossEntropyLoss() - + total_loss = 0.0 if algo == "fedavg_meta": optimizer = torch.optim.Adam( net.parameters(), lr=learning_rate, weight_decay=0.001 ) net.train() + optimizer.zero_grad() if data == "femnist": for images, labels in trainloader: images, labels = images.to(device), labels.to(device) loss = criterion(net(images), labels) - optimizer.zero_grad() loss.backward() - optimizer.step() - # total_loss += loss * labels.size(0) - # total_loss = total_loss / len(trainloader.dataset) - # optimizer.zero_grad() - # total_loss.backward() - # optimizer.step() + total_loss += loss * labels.size(0) + optimizer.step() elif data == "shakespeare": for images, labels in trainloader: @@ -332,6 +328,7 @@ def _train_meta_one_epoch( num_adaptation_steps = gradient_step train_net = deepcopy(net) alpha = [alpha.to(device) for alpha in alpha] + train_net.train() for _ in range(num_adaptation_steps): loss_sum = 0.0 sup_num_sample = [] diff --git a/baselines/fedmeta/fedmeta/shakespeare/graph_params/result_graph.png b/baselines/fedmeta/fedmeta/shakespeare/graph_params/result_graph.png deleted file mode 100644 index f23f529adf321eb44095fa155c3d6b3cf1678014..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123180 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 Tuple[NDArrays, torch.nn.ParameterList]: """Update model parameters for FedMeta(Meta-SGD). @@ -80,11 +80,11 @@ def fedmeta_update_meta_sgd( def fedmeta_update_maml( - net: torch.nn.Module, - beta: float, - weights_results: NDArrays, - gradients_aggregated: NDArrays, - weight_decay: float, + net: torch.nn.Module, + beta: float, + weights_results: NDArrays, + gradients_aggregated: NDArrays, + weight_decay: float, ) -> NDArrays: """Update model parameters for FedMeta(Meta-SGD). @@ -109,7 +109,9 @@ def fedmeta_update_maml( params_dict = zip(net.state_dict().keys(), weights_results) state_dict = OrderedDict({k: torch.tensor(v) for k, v in params_dict}) net.load_state_dict(state_dict, strict=True) - optimizer = torch.optim.Adam(list(net.parameters()), lr=beta, weight_decay=weight_decay) + optimizer = torch.optim.Adam( + list(net.parameters()), lr=beta, weight_decay=weight_decay + ) for params, grad_ins in zip(net.parameters(), gradients_aggregated): params.grad = torch.tensor(grad_ins).to(params.dtype) optimizer.step() @@ -164,7 +166,7 @@ def __init__(self, alpha, beta, data, algo, **kwargs): ) def configure_fit( - self, server_round: int, parameters: Parameters, client_manager: ClientManager + self, server_round: int, parameters: Parameters, client_manager: ClientManager ) -> List[Tuple[ClientProxy, FitIns]]: """Configure the next round of training.""" config = {"alpha": self.alpha, "algo": self.algo, "data": self.data} @@ -181,14 +183,14 @@ def configure_fit( num_clients=sample_size, min_num_clients=min_num_clients, server_round=server_round, - step='evaluate' + step="fit", ) # Return client/config pairs return [(client, fit_ins) for client in clients] def configure_evaluate( - self, server_round: int, parameters: Parameters, client_manager: ClientManager + self, server_round: int, parameters: Parameters, client_manager: ClientManager ) -> List[Tuple[ClientProxy, EvaluateIns]]: """Configure the next round of evaluation.""" # Do not configure federated evaluation if fraction eval is 0. @@ -210,17 +212,17 @@ def configure_evaluate( num_clients=sample_size, min_num_clients=min_num_clients, server_round=server_round, - step='evaluate' + step="evaluate", ) # Return client/config pairs return [(client, evaluate_ins) for client in clients] def aggregate_fit( - self, - server_round: int, - results: List[Tuple[ClientProxy, FitRes]], - failures: List[Union[Tuple[ClientProxy, FitRes], BaseException]], + self, + server_round: int, + results: List[Tuple[ClientProxy, FitRes]], + failures: List[Union[Tuple[ClientProxy, FitRes], BaseException]], ) -> Tuple[Optional[Parameters], Dict[str, Scalar]]: """Aggregate fit results using weighted average.""" if not results: @@ -237,9 +239,9 @@ def aggregate_fit( parameters_aggregated = aggregate(weights_results) if self.data == "femnist": - weight_decay = 0.001 + weight_decay_ = 0.001 else: - weight_decay = 0.0001 + weight_decay_ = 0.0001 # Gradient Average and Update Parameter for FedMeta(MAML) if self.algo == "fedmeta_maml": @@ -249,14 +251,18 @@ def aggregate_fit( ] gradients_aggregated = aggregate(grads_results) weights_prime = fedmeta_update_maml( - self.net, self.beta, weights_results[0][0], gradients_aggregated, weight_decay + self.net, + self.beta, + weights_results[0][0], + gradients_aggregated, + weight_decay_, ) parameters_aggregated = weights_prime # Gradient Average and Update Parameter for FedMeta(Meta-SGD) elif self.algo == "fedmeta_meta_sgd": - grads_results = [ - (fit_res.metrics["grads"], fit_res.num_examples) # type: ignore + grads_results: List[Tuple[NDArrays, int]] = [ # type: ignore + (fit_res.metrics["grads"], fit_res.num_examples) for _, fit_res in results ] gradients_aggregated = aggregate(grads_results) @@ -266,7 +272,7 @@ def aggregate_fit( self.beta, weights_results[0][0], gradients_aggregated, - weight_decay, + weight_decay_, ) self.alpha = update_alpha parameters_aggregated = weights_prime @@ -282,10 +288,10 @@ def aggregate_fit( return ndarrays_to_parameters(parameters_aggregated), metrics_aggregated def aggregate_evaluate( - self, - server_round: int, - results: List[Tuple[ClientProxy, EvaluateRes]], - failures: List[Union[Tuple[ClientProxy, EvaluateRes], BaseException]], + self, + server_round: int, + results: List[Tuple[ClientProxy, EvaluateRes]], + failures: List[Union[Tuple[ClientProxy, EvaluateRes], BaseException]], ) -> Tuple[Optional[float], Dict[str, Scalar]]: """Aggregate evaluation losses using weighted average.""" if not results: From 0a4327d41c4393b2845bc42300967f89ff8207bd Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Thu, 12 Oct 2023 15:30:07 +0900 Subject: [PATCH 119/133] for pull origin/fedmeta --- baselines/fedmeta/fedmeta/client.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/baselines/fedmeta/fedmeta/client.py b/baselines/fedmeta/fedmeta/client.py index 6f7fea5d8a1b..c0750cb6f2ee 100644 --- a/baselines/fedmeta/fedmeta/client.py +++ b/baselines/fedmeta/fedmeta/client.py @@ -20,15 +20,15 @@ class FlowerClient(fl.client.NumPyClient): # pylint: disable=too-many-arguments def __init__( - self, - net: torch.nn.Module, - trainloaders: DataLoader, - valloaders: DataLoader, - cid: str, - device: torch.device, - num_epochs: int, - learning_rate: float, - gradient_step: int, + self, + net: torch.nn.Module, + trainloaders: DataLoader, + valloaders: DataLoader, + cid: str, + device: torch.device, + num_epochs: int, + learning_rate: float, + gradient_step: int, ): self.net = net self.trainloaders = trainloaders From a99da4e5cb950a0ec326c6b77d1d5fb9533ee2fc Mon Sep 17 00:00:00 2001 From: "JS.KIM" Date: Thu, 12 Oct 2023 15:37:49 +0900 Subject: [PATCH 120/133] Update baselines/fedmeta/pyproject.toml Co-authored-by: Javier --- baselines/fedmeta/pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/baselines/fedmeta/pyproject.toml b/baselines/fedmeta/pyproject.toml index 5defe4b5f98d..2f7802d07234 100644 --- a/baselines/fedmeta/pyproject.toml +++ b/baselines/fedmeta/pyproject.toml @@ -42,6 +42,9 @@ flwr = { extras = ["simulation"], version = "1.5.0" } hydra-core = "1.3.2" # don't change this matplotlib = "3.7.1" scikit-learn = "1.3.1" +torch = { url = "https://download.pytorch.org/whl/cu117/torch-2.0.1%2Bcu117-cp310-cp310-linux_x86_64.whl"} +torchvision = { url = "https://download.pytorch.org/whl/cu117/torchvision-0.15.2%2Bcu117-cp310-cp310-linux_x86_64.whl"} + [tool.poetry.dev-dependencies] isort = "==5.11.5" From 9077f3fc02912219eae6af42c74674be0ad5a648 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Thu, 12 Oct 2023 15:39:04 +0900 Subject: [PATCH 121/133] Update README.md --- baselines/fedmeta/README.md | 1 + baselines/fedmeta/fedmeta/models.py | 1 + 2 files changed, 2 insertions(+) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index 6f12e48385f0..84cb08487737 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -67,6 +67,7 @@ pyenv local 3.10.6 poetry env use 3.10.6 # install the base Poetry environment +poetry install poetry shell ``` diff --git a/baselines/fedmeta/fedmeta/models.py b/baselines/fedmeta/fedmeta/models.py index 3c1b543deb40..15cea691de45 100644 --- a/baselines/fedmeta/fedmeta/models.py +++ b/baselines/fedmeta/fedmeta/models.py @@ -223,6 +223,7 @@ def test( loss = criterion(net(images), labels) loss.backward() total_loss += loss * labels.size(0) + total_loss = total_loss / len(trainloader.dataset) optimizer.step() elif data == "shakespeare": From 5d24c330e5d82996194dff0a818eae33ff6329f4 Mon Sep 17 00:00:00 2001 From: "JS.KIM" Date: Thu, 12 Oct 2023 16:03:32 +0900 Subject: [PATCH 122/133] Update baselines/fedmeta/fedmeta/main.py Co-authored-by: Javier --- baselines/fedmeta/fedmeta/main.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/baselines/fedmeta/fedmeta/main.py b/baselines/fedmeta/fedmeta/main.py index bce21fca1fa6..ea00ed1099f1 100644 --- a/baselines/fedmeta/fedmeta/main.py +++ b/baselines/fedmeta/fedmeta/main.py @@ -84,10 +84,7 @@ def main(cfg: DictConfig) -> None: print("................") print(history) - output_path = ( - HydraConfig.get().runtime.cwd + "/fedmeta/" + cfg.data.data + "/graph_params" - ) - os.makedirs(output_path, exist_ok=True) + output_path = HydraConfig.get().runtime.output_dir data_params = { "algo": cfg.algo.algo, From d584ba38fd326219504a52d6863412c64e090077 Mon Sep 17 00:00:00 2001 From: jafermarq Date: Thu, 12 Oct 2023 13:34:46 +0000 Subject: [PATCH 123/133] align with main --- datasets/flwr_datasets/__init__.py | 7 +- datasets/pyproject.toml | 1 + examples/flower-in-30-minutes/tutorial.ipynb | 751 ------------------ .../simulation/ray_transport/ray_actor.py | 2 +- .../ray_transport/ray_client_proxy.py | 6 +- 5 files changed, 9 insertions(+), 758 deletions(-) diff --git a/datasets/flwr_datasets/__init__.py b/datasets/flwr_datasets/__init__.py index 1a48df5e45f0..0149a53b7b0a 100644 --- a/datasets/flwr_datasets/__init__.py +++ b/datasets/flwr_datasets/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2023 Adap GmbH. All Rights Reserved. +# Copyright 2023 Flower Labs GmbH. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,3 +13,8 @@ # limitations under the License. # ============================================================================== """Flower Datasets main package.""" + + +from .federated_dataset import FederatedDataset + +__all__ = ["FederatedDataset"] diff --git a/datasets/pyproject.toml b/datasets/pyproject.toml index aa35ddca4fce..954441e5d2e4 100644 --- a/datasets/pyproject.toml +++ b/datasets/pyproject.toml @@ -66,6 +66,7 @@ docformatter = "==1.7.1" mypy = "==1.4.0" pylint = "==2.13.9" flake8 = "==3.9.2" +parameterized = "==0.9.0" pytest = "==7.1.2" pytest-watch = "==4.2.0" ruff = "==0.0.277" diff --git a/examples/flower-in-30-minutes/tutorial.ipynb b/examples/flower-in-30-minutes/tutorial.ipynb index 4951298e93ce..336ec4c19644 100644 --- a/examples/flower-in-30-minutes/tutorial.ipynb +++ b/examples/flower-in-30-minutes/tutorial.ipynb @@ -3,13 +3,7 @@ { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "P-iD0bgbXDdC" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "Welcome to the 30 minutes Flower federated learning tutorial!\n", "\n", @@ -29,11 +23,7 @@ "## Complementary Content\n", "\n", "But before do so, let me point you to a few video tutorials in the [Flower Youtube channel](https://www.youtube.com/@flowerlabs) that you might want to check out after this tutorial. We post new videos fairly regularly with new content:\n", -<<<<<<< HEAD - "* **[VIDEO]** quickstart-tensorflow: [15-min video on how to start with Flower + Tensorflow/Keras](https://www.youtube.com/watch?v=jOmmuzMIQ4c)\n", -======= "* **[VIDEO]** quickstart-tensorflow: [15-min video on how to start with Flower + Tensorflow/Keras](https://www.youtube.com/watch?v=FGTc2TQq7VM)\n", ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "* **[VIDEO]** quickstart-pytorch: [20-min video on how to start with Flower + PyTorch](https://www.youtube.com/watch?v=jOmmuzMIQ4c)\n", "* **[VIDEO]** Flower simulation mini-series: [9 line-by-line video tutorials](https://www.youtube.com/watch?v=cRebUIGB5RU&list=PLNG4feLHqCWlnj8a_E1A_n5zr2-8pafTB)" ] @@ -41,13 +31,7 @@ { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "jfy1EuX7Xzfg" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "# Environment Setup\n", "\n", @@ -62,39 +46,9 @@ }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 1, - "metadata": { - "id": "Gc_GOyNXXB35" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Collecting git+https://github.com/adap/flower.git@main\n", - " Cloning https://github.com/adap/flower.git (to revision main) to /private/var/folders/yr/0jrp7k711jzcxcdxgh6y1jh80000gn/T/pip-req-build-9uwmcdwe\n", - " Running command git clone --filter=blob:none --quiet https://github.com/adap/flower.git /private/var/folders/yr/0jrp7k711jzcxcdxgh6y1jh80000gn/T/pip-req-build-9uwmcdwe\n", - " Resolved https://github.com/adap/flower.git to commit 351dae247c2d69680acdca6d449a4d62dfb5baf8\n", - " Installing build dependencies ... \u001B[?25ldone\n", - "\u001B[?25h Getting requirements to build wheel ... \u001B[?25ldone\n", - "\u001B[?25h Preparing metadata (pyproject.toml) ... \u001B[?25ldone\n", - "\u001B[?25hRequirement already satisfied: cryptography<42.0.0,>=41.0.2 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from flwr==1.5.0) (41.0.3)\n", - "Requirement already satisfied: grpcio!=1.52.0,<2.0.0,>=1.48.2 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from flwr==1.5.0) (1.57.0)\n", - "Requirement already satisfied: iterators<0.0.3,>=0.0.2 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from flwr==1.5.0) (0.0.2)\n", - "Requirement already satisfied: numpy<2.0.0,>=1.21.0 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from flwr==1.5.0) (1.24.3)\n", - "Requirement already satisfied: protobuf<4.0.0,>=3.19.0 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from flwr==1.5.0) (3.20.3)\n", - "Requirement already satisfied: pycryptodome<4.0.0,>=3.18.0 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from flwr==1.5.0) (3.18.0)\n", - "Requirement already satisfied: cffi>=1.12 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from cryptography<42.0.0,>=41.0.2->flwr==1.5.0) (1.15.1)\n", - "Requirement already satisfied: pycparser in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from cffi>=1.12->cryptography<42.0.0,>=41.0.2->flwr==1.5.0) (2.21)\n" - ] - } - ], -======= "execution_count": null, "metadata": {}, "outputs": [], ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "# depending on your shell, you might need to add `\\` before `[` and `]`.\n", "!pip install -q flwr[simulation]" @@ -103,13 +57,7 @@ { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "y58HdudsYWQP" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "We will be using the _simulation_ model in Flower, which allows you to run a large number of clients without the overheads of manually managing devices. This is achieved via the `Virtual Client Engine`, the core component that runs [FL Simulations](https://flower.dev/docs/framework/how-to-run-simulations.html) with Flower. With simulation, you can dynamically scale your experiments whether you run the code on your laptop, a machine with a single GPU, a server with multiple GPUs os even on a cluster with multiple servers. The `Virtual Client Engine` handles everything transparently and it allows you to specify how many resources (e.g. CPU cores, GPU VRAM) should be assigned to each virtual client." ] @@ -117,13 +65,7 @@ { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "2rkzo1M9a0io" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "## Install your ML framework\n", "\n", @@ -139,10 +81,6 @@ "colab": { "base_uri": "https://localhost:8080/" }, -<<<<<<< HEAD - "id": "lqrJYPbZZ8aM", -======= ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "outputId": "7192138a-8c87-4d9a-f726-af1038ad264c" }, "outputs": [], @@ -155,77 +93,21 @@ { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "4UTuRurVeLDF" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "We are going to install some other dependencies you are likely familiar with. We'll use these to make plots." ] }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 2, -======= "execution_count": null, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, -<<<<<<< HEAD - "id": "ybSlTUVXeT3u", - "outputId": "58b7af77-609f-4118-bd5b-5629a4b5a296" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Collecting matplotlib\n", - " Obtaining dependency information for matplotlib from https://files.pythonhosted.org/packages/8d/22/719f4fff33b13b0708711fb52ca3fc44617a26728e0e023358288d5197ae/matplotlib-3.7.2-cp310-cp310-macosx_11_0_arm64.whl.metadata\n", - " Downloading matplotlib-3.7.2-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.6 kB)\n", - "Collecting contourpy>=1.0.1 (from matplotlib)\n", - " Obtaining dependency information for contourpy>=1.0.1 from https://files.pythonhosted.org/packages/15/c4/aae3954fce0e22362cc55430d1a395bf0be5a22b40fce63edda9eb6ea339/contourpy-1.1.0-cp310-cp310-macosx_11_0_arm64.whl.metadata\n", - " Downloading contourpy-1.1.0-cp310-cp310-macosx_11_0_arm64.whl.metadata (5.7 kB)\n", - "Collecting cycler>=0.10 (from matplotlib)\n", - " Using cached cycler-0.11.0-py3-none-any.whl (6.4 kB)\n", - "Collecting fonttools>=4.22.0 (from matplotlib)\n", - " Obtaining dependency information for fonttools>=4.22.0 from https://files.pythonhosted.org/packages/21/66/bddd878452ae1e2d5f5891daa6bcce594d6b19396d33b8798e722837b222/fonttools-4.42.1-cp310-cp310-macosx_10_9_universal2.whl.metadata\n", - " Downloading fonttools-4.42.1-cp310-cp310-macosx_10_9_universal2.whl.metadata (150 kB)\n", - "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m151.0/151.0 kB\u001B[0m \u001B[31m6.2 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m\n", - "\u001B[?25hCollecting kiwisolver>=1.0.1 (from matplotlib)\n", - " Obtaining dependency information for kiwisolver>=1.0.1 from https://files.pythonhosted.org/packages/23/11/6fb190bae4b279d712a834e7b1da89f6dcff6791132f7399aa28a57c3565/kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl.metadata\n", - " Downloading kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl.metadata (6.4 kB)\n", - "Requirement already satisfied: numpy>=1.20 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from matplotlib) (1.24.3)\n", - "Requirement already satisfied: packaging>=20.0 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from matplotlib) (23.1)\n", - "Requirement already satisfied: pillow>=6.2.0 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from matplotlib) (10.0.0)\n", - "Collecting pyparsing<3.1,>=2.3.1 (from matplotlib)\n", - " Using cached pyparsing-3.0.9-py3-none-any.whl (98 kB)\n", - "Requirement already satisfied: python-dateutil>=2.7 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from matplotlib) (2.8.2)\n", - "Requirement already satisfied: six>=1.5 in /Users/javier/miniconda3/envs/agustin_test/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n", - "Downloading matplotlib-3.7.2-cp310-cp310-macosx_11_0_arm64.whl (7.3 MB)\n", - "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m7.3/7.3 MB\u001B[0m \u001B[31m30.3 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0ma \u001B[36m0:00:01\u001B[0m\n", - "\u001B[?25hDownloading contourpy-1.1.0-cp310-cp310-macosx_11_0_arm64.whl (229 kB)\n", - "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m229.4/229.4 kB\u001B[0m \u001B[31m30.6 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m\n", - "\u001B[?25hDownloading fonttools-4.42.1-cp310-cp310-macosx_10_9_universal2.whl (2.7 MB)\n", - "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m2.7/2.7 MB\u001B[0m \u001B[31m47.1 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0ma \u001B[36m0:00:01\u001B[0m\n", - "\u001B[?25hDownloading kiwisolver-1.4.5-cp310-cp310-macosx_11_0_arm64.whl (66 kB)\n", - "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m66.2/66.2 kB\u001B[0m \u001B[31m10.5 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m\n", - "\u001B[?25hInstalling collected packages: pyparsing, kiwisolver, fonttools, cycler, contourpy, matplotlib\n", - "Successfully installed contourpy-1.1.0 cycler-0.11.0 fonttools-4.42.1 kiwisolver-1.4.5 matplotlib-3.7.2 pyparsing-3.0.9\n" - ] - } - ], -======= "outputId": "58b7af77-609f-4118-bd5b-5629a4b5a296" }, "outputs": [], ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "!pip install matplotlib" ] @@ -233,13 +115,7 @@ { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "mpmcL_STdjIo" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "# Centralised training: the old way of doing ML" ] @@ -247,13 +123,7 @@ { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "gvw2TZjSec6C" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "Let's begin by creating a simple (but complete) training loop as it is commonly done in centralised setups. Starting our tutorial in this way will allow us to very clearly identify which parts of a typical ML pipeline are common to both centralised and federated training and which ones are poles a part.\n", "\n", @@ -267,15 +137,8 @@ }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 3, - "metadata": { - "id": "p9aFBjd1cpHs" - }, -======= "execution_count": null, "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "outputs": [], "source": [ "# we naturally first need to import torch and torchvision\n", @@ -285,17 +148,10 @@ "from torchvision.datasets import MNIST\n", "\n", "\n", -<<<<<<< HEAD - "def get_mnist(data_path: str = './data'):\n", - " '''This function downloads the MNIST dataset into the `data_path`\n", - " directory if it is not there already. WE construct the train/test\n", - " split by converting the images into tensors and normalising them'''\n", -======= "def get_mnist(data_path: str = \"./data\"):\n", " \"\"\"This function downloads the MNIST dataset into the `data_path`\n", " directory if it is not there already. WE construct the train/test\n", " split by converting the images into tensors and normalising them\"\"\"\n", ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "\n", " # transformation to convert images to tensors and apply normalisation\n", " tr = Compose([ToTensor(), Normalize((0.1307,), (0.3081,))])\n", @@ -310,28 +166,15 @@ { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "vKoQfqgYgwg0" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "Let's run the code above and do some visualisations to understand better the data we are working with !" ] }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 4, - "metadata": { - "id": "pS8sL2hDgvZN" - }, -======= "execution_count": null, "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "outputs": [], "source": [ "trainset, testset = get_mnist()" @@ -340,57 +183,21 @@ { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "iNA-6AcYhYVM" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "We can have a quick overview of our datasets by just typing the object on the command line. For instance, below you can see that the `trainset` has 60k training examples and will use the transformation rule we defined above in `get_mnist()`." ] }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 5, -======= "execution_count": null, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, -<<<<<<< HEAD - "id": "pWsIHsq-g4nX", - "outputId": "f10b649f-3cee-4e86-c7ff-94bd1fd3e082" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "Dataset MNIST\n", - " Number of datapoints: 60000\n", - " Root location: ./data\n", - " Split: Train\n", - " StandardTransform\n", - "Transform: Compose(\n", - " ToTensor()\n", - " Normalize(mean=(0.1307,), std=(0.3081,))\n", - " )" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], -======= "outputId": "f10b649f-3cee-4e86-c7ff-94bd1fd3e082" }, "outputs": [], ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "trainset" ] @@ -398,138 +205,58 @@ { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "NY9bWlaMhweq" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "Let's create a more insightful visualisation. First let's see the distribution over the labels by constructing a histogram. Then, let's visualise some training examples !" ] }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 6, -======= "execution_count": null, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 490 }, -<<<<<<< HEAD - "id": "DCTjwpizikwy", - "outputId": "c8d0f4c0-60cd-4c58-bc91-3b061dae8046" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Class labels distribution for MNIST')" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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1ofMFixYgJ49e2Lfvn1o0qRJkWv8ly5dqrPiiIiIiMpCqQJRbGys+NUdL59UTURERFTeaB2IlixZgu+++w7Dhw/XQzlEREREZU/rc4jkcjl8fX31UQsRERGRQWgdiCZMmIAVK1booxYiIiIig9D6kNnJkydx4MAB7NmzB40aNSpyUvUvv/yis+KIiIiIyoLWgcjBwQF9+vTRRy1EREREBqF1INq4caM+6iAiIiIyGN5umoiIiCRP6z1EHh4er73f0M2bN9+qICIiIqKypnUgmjhxosZjlUqFs2fPYt++fZg0aZKu6iIiIiIqM1oHogkTJhS7PCoqCqdPn37rgoiIiIjKms7OIerevTt+/vlnXU1HREREVGZ0Foh27NgBR0dHXU1HREREVGa0PmTWokULjZOqBUFAWloa/v33X6xatUqnxRERERGVBa0D0QcffKDx2MzMDFWrVkXnzp3RsGFDXdVFREREVGa0DkSzZ8/WRx1EREREBsMbMxIREZHklXgPkZmZ2WtvyAgAMpkMz549e+uiiIiIiMpSiQPRzp07X7kuMTERy5cvR2FhoU6KIiIiIipLJQ5EvXv3LrLsypUrmDp1Knbv3o0hQ4Zgzpw5Oi2OiIiIqCyU6hyiO3fu4JNPPkGTJk3w7NkzJCcnY9OmTXB3d9d1fURERER6p1UgysrKwpQpU1C3bl2kpKQgPj4eu3fvRuPGjfVVHxEREZHelfiQ2eLFi7Fo0SK4uLjgp59+KvYQGhEREVF5VOJANHXqVFhbW6Nu3brYtGkTNm3aVOy4X375RWfFEREREZWFEgeiYcOGvfGyeyIiIqLyqMSBKDo6Wo9lEBERERkO71RNREREksdARERERJLHQERERESSx0BEREREksdARERERJLHQERERESSx0BEREREksdARERERJLHQERERESSx0BEREREksdARERERJJn0EC0YMECvPPOO6hYsSKcnJzwwQcf4MqVKxpjnj59ipCQEFSuXBl2dnbo27cv0tPTNcbcvn0bgYGBsLGxgZOTEyZNmoRnz55pjDl06BBatmwJuVyOunXr8rvZiIiISGTQQHT48GGEhITg+PHjUCqVUKlU8Pf3R05OjjgmNDQUu3fvxvbt23H48GHcuXMHffr0EdcXFBQgMDAQ+fn5OHbsGDZt2oTo6GjMmjVLHJOamorAwEC8++67SE5OxsSJEzFq1CjExsaWab9ERERknEr8bff6sG/fPo3H0dHRcHJyQlJSEjp27IisrCxs2LABMTEx6NKlCwBg48aN8PT0xPHjx+Ht7Y24uDhcvHgR+/fvh7OzM5o3b465c+diypQpCA8Ph6WlJVavXg0PDw8sWbIEAODp6YmEhARERkYiICCgzPsmIiIi42LQQPSyrKwsAICjoyMAICkpCSqVCn5+fuKYhg0bws3NDYmJifD29kZiYiKaNGkCZ2dncUxAQADGjBmDlJQUtGjRAomJiRpzqMdMnDix2Dry8vKQl5cnPs7OzgYAqFQqqFQqnfSqpp5PbibodN6ypq6ffRgH9mFcTKUPwHR6YR/GRV2/vn7HloTRBKLCwkJMnDgRvr6+aNy4MQAgLS0NlpaWcHBw0Bjr7OyMtLQ0ccyLYUi9Xr3udWOys7Px5MkTWFtba6xbsGABIiIiitQYFxcHGxub0jf5GnNbF+pl3rLGPowL+zAuptIHYDq9sA/jolQqdTpfbm5uiccaTSAKCQnBhQsXkJCQYOhSMG3aNISFhYmPs7OzUbNmTfj7+0OhUOj0uVQqFZRKJWaeNkNeoUync5cluZmAua0L2YeRYB/GxVT6AEynF/ZhXNR9dOvWDRYWFjqbV32EpySMIhCNGzcOe/bswZEjR1CjRg1xuYuLC/Lz85GZmamxlyg9PR0uLi7imJMnT2rMp74K7cUxL1+Zlp6eDoVCUWTvEADI5XLI5fIiyy0sLHT6Rr0or1CGvILy+2FWYx/GhX0YF1PpAzCdXtiHcdH171lt5jLoVWaCIGDcuHHYuXMnDhw4AA8PD431rVq1goWFBeLj48VlV65cwe3bt+Hj4wMA8PHxwfnz55GRkSGOUSqVUCgU8PLyEse8OId6jHoOIiIikjaD7iEKCQlBTEwM/vvf/6JixYriOT/29vawtraGvb09goODERYWBkdHRygUCnz++efw8fGBt7c3AMDf3x9eXl4YOnQoFi9ejLS0NMyYMQMhISHiXp7Ro0dj5cqVmDx5MkaOHIkDBw5g27Zt2Lt3r8F6JyIiIuNh0D1E3377LbKystC5c2dUq1ZN/Nm6das4JjIyEj179kTfvn3RsWNHuLi44JdffhHXm5ubY8+ePTA3N4ePjw8+/vhjDBs2DHPmzBHHeHh4YO/evVAqlWjWrBmWLFmC9evX85J7IiIiAmDgPUSC8ObLBK2srBAVFYWoqKhXjnF3d8evv/762nk6d+6Ms2fPal0jERERmT5+lxkRERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSR4DEREREUkeAxERERFJHgMRERERSZ5BA9GRI0fQq1cvuLq6QiaTYdeuXRrrBUHArFmzUK1aNVhbW8PPzw/Xrl3TGPPgwQMMGTIECoUCDg4OCA4OxuPHjzXG/PHHH+jQoQOsrKxQs2ZNLF68WN+tERERUTli0ECUk5ODZs2aISoqqtj1ixcvxvLly7F69WqcOHECtra2CAgIwNOnT8UxQ4YMQUpKCpRKJfbs2YMjR47g008/FddnZ2fD398f7u7uSEpKwldffYXw8HCsXbtW7/0RERFR+VDBkE/evXt3dO/evdh1giDgm2++wYwZM9C7d28AwPfffw9nZ2fs2rULAwcOxKVLl7Bv3z6cOnUKrVu3BgCsWLECPXr0wNdffw1XV1ds3rwZ+fn5+O6772BpaYlGjRohOTkZS5cu1QhOREREJF1Gew5Ramoq0tLS4OfnJy6zt7dH27ZtkZiYCABITEyEg4ODGIYAwM/PD2ZmZjhx4oQ4pmPHjrC0tBTHBAQE4MqVK3j48GEZdUNERETGzKB7iF4nLS0NAODs7Kyx3NnZWVyXlpYGJycnjfUVKlSAo6OjxhgPD48ic6jXVapUqchz5+XlIS8vT3ycnZ0NAFCpVFCpVG/TVhHq+eRmgk7nLWvq+tmHcWAfxsVU+gBMpxf2YVzU9evrd2xJGG0gMqQFCxYgIiKiyPK4uDjY2Njo5Tnnti7Uy7xljX0YF/ZhXEylD8B0emEfxkWpVOp0vtzc3BKPNdpA5OLiAgBIT09HtWrVxOXp6elo3ry5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", - "text/plain": [ - "

    " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], -======= "outputId": "c8d0f4c0-60cd-4c58-bc91-3b061dae8046" }, "outputs": [], ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "import matplotlib.pyplot as plt\n", "\n", "\n", "# construct histogram\n", "all_labels = trainset.targets\n", -<<<<<<< HEAD - "num_possible_labels = len(set(all_labels.numpy().tolist())) # this counts unique labels (so it should be = 10)\n", -======= "num_possible_labels = len(\n", " set(all_labels.numpy().tolist())\n", ") # this counts unique labels (so it should be = 10)\n", ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "plt.hist(all_labels, bins=num_possible_labels)\n", "\n", "# plot formatting\n", "plt.xticks(range(num_possible_labels))\n", "plt.grid()\n", -<<<<<<< HEAD - "plt.xlabel('Label')\n", - "plt.ylabel('Number of images')\n", - "plt.title('Class labels distribution for MNIST')" -======= "plt.xlabel(\"Label\")\n", "plt.ylabel(\"Number of images\")\n", "plt.title(\"Class labels distribution for MNIST\")" ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 ] }, { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "K7-K0bKamho7" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "Let's visualise 32 images from the dataset\n" ] }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 7, - "metadata": { - "id": "ExGypiVsjMUv" - }, -======= "execution_count": null, "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "outputs": [], "source": [ "import random\n", "import numpy as np\n", "\n", -<<<<<<< HEAD - "def visualise_n_random_examples(trainset_, n: int, verbose: bool = True):\n", - " # take n examples at random\n", - " idx =list(range(len(trainset_.data)))\n", - " random.shuffle(idx)\n", - " idx = idx[:n]\n", - " if verbose:\n", - " print(f\"will display images with idx: {idx}\")\n", - "\n", - "\n", - " # construct canvas\n", - " num_cols = 8\n", - " num_rows = int(np.ceil(len(idx)/num_cols))\n", - " fig, axs = plt.subplots(figsize=(16, num_rows*2), nrows=num_rows, ncols=num_cols)\n", - "\n", - " # display images on canvas\n", - " for c_i, i in enumerate(idx):\n", - " axs.flat[c_i].imshow(trainset_.data[i], cmap='gray')" -======= "\n", "def visualise_n_random_examples(trainset_, n: int, verbose: bool = True):\n", " # take n examples at random\n", @@ -547,49 +274,19 @@ " # display images on canvas\n", " for c_i, i in enumerate(idx):\n", " axs.flat[c_i].imshow(trainset_.data[i], cmap=\"gray\")" ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 ] }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 8, -======= "execution_count": null, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 715 }, -<<<<<<< HEAD - "id": "xA2s8vqkmkga", - "outputId": "4e0988a8-388d-4acf-882b-089e4ea887bf" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "will display images with idx: [59717, 34422, 26054, 1199, 3182, 18665, 27924, 45921, 19494, 40038, 31891, 22197, 14705, 4590, 46747, 15779, 2575, 32582, 47065, 19149, 41838, 24098, 28738, 39203, 35935, 55347, 16343, 40626, 31743, 34183, 18890, 47438]\n" - ] - }, - { - "data": { - "image/png": "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FrQWLVqk1Jzf5+k29tf9u2nevLlSc2a0Z8+eyhwOKXGP88CF7OxsZc5f/vIXpdayZUvbWHeIiO77/f379ys1Z6ZmzpypzNEdELZlyxalBgRL9x6lyzXgpksuuUSpdenSJajn+uabb5SaF77v45ODAAAAAAAAgEexOAgAAAAAAAB4FIuDAAAAAAAAgEex52AYNG7cWKktXrzYNm7QoIFrr/fvf//btedCdDv//POV2lNPPWUbp6amKnPmzZun1PzdY9Bp9uzZSu3OO++0jR9//HG/ejhw4EBQPcA33XvQueeea6ATeIlub9GuXbvaxn/+85+VObq92oKl2xf1yJEjtnG7du2UOZmZmUpt586drvWF4DnvV9WrV3ftubdv367UbrjhBqX2008/+XyugoICn3PatGmj1ObMmaPUdN9rZmVl2ca6/ZLYhzA4Z511llJzfm+vm6PLxYcffmgbL1iwQJnz8ccfK7Vjx44pteLiYqUGALGoc+fOtrHufbJ27dpKraKiwrUeVqxYYRvr1mHef/99pbZhwwbbWPd+bgKfHAQAAAAAAAA8isVBAAAAAAAAwKNYHAQAAAAAAAA8KuDFwRUrVkivXr0kIyND4uLilH0xLMuSxx57TBo1aiQ1a9aU7Oxs+f77793qFx61atUqcgcjBgwYQO4QduQOJnCvhQnkDqZwr4UJvOchUgV8IElZWZm0atVKBg8eLP369VP+fNKkSfLCCy/I66+/LllZWTJmzBjp0aOHbN68WWrUqOFK05EsOTlZqb333ns+5+k2f27evHlQPZSWlgb1uEh28OBBcueD7mCR1157Tam1bdvWNl62bJkyZ9SoUW61pWzsLyLywgsv2MavvvqqMichIcG1HqqiZcuWMnTo0JjPne7wkfr16/t8nG7zX1RdLOYuKSlJqTk3kxYRadSokW38448/hqwnEZH169crNefhR/Xq1VPmXHrppUot2g8kiZV77dixY115Ht3hI9dcc41S27Jliyuvp7Nq1Sql1qdPH6WmO8TCeUiJ84ASEf1hY8EeQBasaMzd/fffr9ScB5DovgcbPXq0Utu3b597jSEgsXivjQSXXHJJUI/zyqGa0fieF041a9ZUat26dVNqzvdY3ePefvttpaY7nMsfugPCbrrpJtv48ssvV+aMHDlSqU2ePNk2fuyxx5Q5Jg4pCXhxsGfPntqT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LUFjz549Sq1v375h7eHvf/+7z9ppp6m3rRtvvFGpzZ49W6lVq1bNNr7mmmuUOR988IFS69Onj21cVlamzEFwioqKlNrcuXNPOT6Zs88+W6mlpqYG05Zi1qxZSk13+Mhf//pXpebcZB+RYcqUKUqtR48etnGzZs38eq577rnH55wXX3xRqe3YsUOpRerBJU4tWrQw3YJR0XTYiFssy1Jq27ZtU2qXXnqpbTx9+nRlzu23367U3nrrLdt4wIAByhzdQWIAQkt3SNXnn39uGzdv3lyZozvs0GnFihVKrUGDBkrtvPPOU2p16tSxjRs3bqzMiYuLU2o///yzbaz7+eP1119Xavv27VNqbh6wEgn45CAAAAAAAADgUSwOAgAAAAAAAB7F4iAAAAAAAADgUSwOAgAAAAAAAB7FgSQRLDk5Wak5N9XUbbIJb4rUAzwqKiqUmvOQko8//liZc/DgwZD1hOh1/PhxpabbSHj16tVKbenSpbaxbuPirl27KjXngRIjRozw2SfCT7cxvlu+//57paY7kKR169ZKrXr16qFoCVWky8vVV19tG3/yySfKnKysLL+e33lIie7Qks8++0ypbdiwwTaeOXOmX6/nD90hU5dddplrzw+IqAfk3XXXXcqc008/XanddNNNtvHEiROVORxIAoTfunXrlNobb7xhG996663KnAsvvNDnc//ud79TarrDj3Sch4bofhZ+9tlnldqxY8dsY+cBJV7GJwcBAAAAAAAAj2JxEAAAAAAAAPAoFgcBAAAAAAAAj2JxEAAAAAAAAPAoDiSJYLrNOJ215cuXh6sdGOTPQTRt27ZVas4DGExo3ry5UnP2Om3atHC1A5edffbZSm3UqFFKzXn4x9dff63Meeihh1zr67///a9Su+qqq2zjzz//XJnTtGlTpdaxY0fbOD5e/e9quoN3EDt0WenTp49S69Spk1I799xzbeM1a9a41hfc9d1339nGPXv2VOa8//77Ss35dywictppvr/F7t69u8+am++LgAm6g8SeeOIJpeY8kER3wBOA8CstLVVqgwcPPuUY0YlPDgIAAAAAAAAexeIgAAAAAAAA4FEBLQ7m5uZK27ZtJSkpSRo2bCh9+vSRrVu32uYcPnxYcnJypF69elK7dm3p37+/FBYWuto0vKdLly7kDkaQPZhA7mACuYMJU6ZM4ecLGMF7Hkwg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9GjIekLkatSokVJ76aWXbONevXopc5599lmldt1119nGtWrVUub861//UmpffvmlUnv11Vdt43379ilzysvLlRrCq1u3brbxE088oczRZWzgwIFKbeXKla705NxEWETkzTffVGq698a+ffvaxgsWLHClJ7irXbt2tvGQIUP8etz69euV2pQpU2zjHTt2+PVccXFxtvH+/fuVOdu2bVNqZ599tlIbP368baw7SKxu3bp+9QUEon79+rbxiy++6HOOiMiFF15oG3MgSXB0h3osXbrUtefXHQaiOzTEH7pDnvyZM27cuKBeD9GhRYsWSu31119Xauecc45t7LzviYhMnDhRqTVs2NA2fuSRR5Q5kydP9tmnju7fn+6As0OHDtnG11xzTVCvB/OaNm2q1JyH3oiE9qBW3c9AzgN7RETmzZtnG+u+D9St6egOEXMTnxwEAAAAAAAAPIrFQQAAAAAAAMCjWBwEAAAAAAAAPIrFQQAAAAAAAMCjOJAkgt1+++1K7a677rKNZ8yYocxxHjgBb3BmQ0QkNzdXqaWkpPh8rvvuuy+oHv7whz/4VXvooYds41WrVilzrr766qB6gHsmTJhgG7dt29avx3322WdKbfXq1bbxM888o8w5ePCgUmvZsqVtrNuYukaNGkrNsiyl1r9/f9uYA0kik/P9R3fozccff6zUBgwYoNScG42Hmi53F198cVh7QGxJSEhQarpD5mrXrq3UnBue79y5U5nzwQcfKDXdezh8cx6A4O/hI86DRXSHioT64A9/DiRBbOvUqZNS0x1i9MUXXyi1rl272sYlJSXKHN171IMPPmgbO9+zRETeeOMNtVmNK6+80jZ+7bXXlDm6Ayt0B6wg8uj+7mbOnGkbn3feecqcxo0b+3zutWvXKjVdzj/55BOldsUVV9jGukNvHn74YaW2ZMkS23ju3LnKHN33lBxIAgAAAAAAACAkWBwEAAAAAAAAPIrFQQAAAAAAAMCj2HMwQjRv3lyp6fYXmT17tm2s+x12xL7zzz9fqT355JNKzZ/9BXX27NkT1OMaNGig1E47TX2bce470qFDh6BeD5FJtwegcy8Y5zgczjnnnLC/JkJjypQpSi3c+ws2a9ZMqS1atEip+ZO7jz76yI2WEMEyMjKUWt++fZVax44dbWPd/nNvvvmmUps1a5ZSq1evnm3cq1cvZc6OHTvUZhEU556DOuPHj1dqod5P0K3Xc+6NiOjm3GNQd/967rnnlNqkSZOUmm7PaKezzz5bqc2fP982XrFihc/nOdlzvfrqq7ZxXFycMufee+9VauyxGnl69uyp1Jz7C4qInHHGGT6fS7f/pfNch8WLFytzysrKfD63iJrZFi1aKHN0++879zk888wzlTkjR45Uat98841ffQWLTw4CAAAAAAAAHsXiIAAAAAAAAOBRLA4CAAAAAAAAHhXw4uCKFSukV69ekpGRIXFxcbJgwQLbn1uWJY899pg0atRIatasKdnZ2fL999+71S88atWqVeQORgwYMIDcIezIHUzgXgsTyB1M4V4LE3jPQ6QK+ECSsrIyadWqlQwePFj69eun/PmkSZPkhRdekNdff12ysrJkzJgx0qNHD9m8ebN2k3qvSkxMtI3feecdZU716tWV2vPPP28bFxcXu9tYhDp48KCnc5ecnGwb6zbUrVOnjlKrqKhQalOnTrWN33vvPWXOmjVrAm1RRPSbsC5ZskSpNWrUKKjnN6Fly5YydOhQT+Yu2INpdJYuXWobn3feeX497sCBA7bx9u3blTm6jf4vuOACpbZp0ya/XjMSeDl3zk3EdZuK6w5pCKXrr79eqc2dOzeo59Jt8P6Pf/wjqOdym9fvtcGKj1f/W/sdd9xhGz/11FPKnF27dim1YcOG2ca6rPfv39+vWrdu3WzjSD18JFZy58+BHeE+fETniiuuCOpx4X7fDQcv32vvu+8+21j39/vEE08otfLy8qBe76uvvgrqcboD7JyHj4ioh4Rdc801ypxPPvkkqB7cFivveW5o2rSpUtMdOufP4SOffvqpUvvTn/6k1AoKCvzszjfnv4d9+/Ypc3R/Z84DSCZMmKDM+etf/1rF7gIX8OJgz549tSfIiPy6yv3cc8/Jo48+Kr179xYRkTfeeEPS0tJkwYIFcuONN1atW3hWt27dtN/4ipA7hNaYMWOUxVkRcofQIncwgXstTCB3MIV7LUzgPQ+RytU9B7dv3y4FBQWSnZ1dWUtJSZH27dvL6tWrtY85cuSIlJSU2C4gEMHkToTsoWrIHUwgdzCF7MEEcgcTyB1MYT0FJrm6OHjiI5ppaWm2elpa2kk/vpmbmyspKSmVV5MmTdxsCR4QTO5EyB6qhtzBBHIHU8geTCB3MIHcwRTWU2CS8dOKR48eLcXFxZVXfn6+6ZbgEWQPJpA7mEDuYArZgwnkDiaQO5hA7uCWgPccPJX09HQRESksLLQdOFBYWCitW7fWPiYxMVE5nMMLZs6caRu3atVKmdO1a1elFuxmrrEsmNyJRFf2fve739nGf/7zn5U5ug2C+/Tpo9QWLVrkWl9OW7ZsUWpffvmlUjuxh0Y080LunIcwrFy5UpnTtm1bpTZ79mylNnToUNs4JSXFrx5++ukn21i38f/69ev9eq5169b5NS+SeSF3lmWdciwisnPnTqWmuz+++eabtrHuV3J+/PFHpXbDDTfYxk8++aTPPkV+3WTc6eOPP7aNnZvARwsvZM8fus3xx44dq9SaN29uGz/wwAPKnDlz5ig1Z4ZOP/10Zc7999+v1ObNm6fUnAdBRaNoyp3zQBJ/DigJNV0GunTpEv5Gokw05c4fugMenDnQHRQX7OEjwTr77LOV2iuvvKLUatasqdSc32dG6/uf19ZTBg8erNR0B1zqOL83e/zxx5U5x44dC64xjYSEBKX28MMP28a6n9F1/ve//9nGL7/8sjLn+PHjAXTnDlc/OZiVlSXp6emSl5dXWSspKZG1a9dKhw4d3HwpoBK5gwnkDiaQO5hC9mACuYMJ5A6mkD2YFPAnBw8cOCDbtm2rHG/fvl2++uorqVu3rmRmZsrw4cNlwoQJcs4551QevZ2RkaH9BBPgrwMHDthW2MkdwuXrr7+W2rVriwi5Q/iQO5jAvRYmkDuYwr0WJvCeh0gV8OLgunXrbL9SMXLkSBERGTRokMyePVtGjRolZWVlMnToUCkqKpJOnTrJ4sWLpUaNGu51Dc/ZuHGjXHvttZVjcodwufzyyyv/N7lDuJA7mMC9FiaQO5jCvRYm8J6HSBXw4mCXLl20++ycEBcXJ48//rj2d76BYF1++eXkDkYUFxdLcnKy9s/IHUKF3MEE7rUwgdzBFO61MIH3PEQqVw8kgZ7u8IU//vGPtvFzzz2nzInWjVRhhm4z/lAePqLj3AxYRKRXr14+H1dcXByKdlBFzk18S0pK/HqcbhN256a6zoNG/OXc5F9Ef6DTrl27lNrbb78d1GsivH744Qefc8444wyllpGRodR+//vf28bff/+9Mufnn39WapdeeqltfKpv4n9LdzDF1KlT/XoswisuLk6pOfdzGj16tM85IurBNyLqoTZ79+4NtEUREXniiSeUmj9ZFxGpqKgI6jURvZw/O7h5+MgVV1yh1HTPHwkHscBOd5DSt99+axvv378/XO1UOnH4xgmTJ09W5jRu3Fip3XrrrUrtnXfeca8xhM1vP717KmVlZUotNzfXNg728JF69eoptbvvvlupPfTQQ0pNdziOk+5nEufBs7o5Jrh6IAkAAAAAAACA6MHiIAAAAAAAAOBRLA4CAAAAAAAAHsWegy6rU6eOUpszZ45SO3r0qG38wgsvhKwneINu37WePXsqteXLl/t8rjPPPFOpOfeEuP7665U5nTt3Vmrx8b7/GwT7hESm1NRU2/h3v/udmUZ+o127dn7Nc+6lI+L/nokwa/z48baxc08iEZGbb745qOc+55xzgnqcznfffafU5s2b59rzwz3NmjVTarq9/Jz7QX/22WfKnIsuukip5efnB9+cwyWXXGIbDxs2TJlz3XXXKbVffvnFtR4QecaNG6fU/N0D0C2659bVdPt5wizdvuS33XabbazbO/W+++5Tart37w6qh759+yq1mTNn2sa6w2Gc+8qJ8HODF82ePVupHTx40OfjEhMTlZrzvVOX/QYNGvjf3G8UFBQotWnTpim1HTt2BPX8ocYnBwEAAAAAAACPYnEQAAAAAAAA8CgWBwEAAAAAAACPYnEQAAAAAAAA8CgOJHHZtddeq9Rq1Kih1G688UbbuLCwUJlz+umnKzXnQSbHjx8PtEXEqNNOU/85/+Mf/1Bqzs1bq1WrpszRbd7qpvXr19vGY8eODenrITjOTcX9OVwm1DIyMvyax4bo0cv5HjVo0CBlTrAHkrjpp59+Umo//vijgU68TXcgwoABA2zjwYMHK3OWLFmi1JyblK9cubJqzfmgu2+PGjXKNtbdxxcuXBiynhB+S5cutY1DeaiIiMiyZcuUmvOwOr4viy1/+ctflJrzUK0HH3xQmaM79Ob7779Xau+9955t/O9//1uZ88wzz/js03kolIjI+++/7/NxiH3XXHONUnvggQdsY93PCCNGjFBqzoO+LMtS5mzYsEGpTZ48Wak5v2f9v//7P2XODz/8oNQilfmf9AAAAAAAAAAYweIgAAAAAAAA4FEsDgIAAAAAAAAexeIgAAAAAAAA4FEcSOKy/v37+zUvPT3dNi4oKFDmJCUlKTXnBq8LFixQ5rz00ktK7ZdffvGrL0Qm59/7K6+8osy54447/Hou3UE3oVRcXKzUevbsaRs7N3NFZHC+b5x55pnKHN2G+qH8+9Rtjq3DBtax7aqrrlJqH330kVKrXbt2UM/vPHynoqJCmXPZZZcptRdeeEGp3XvvvUH1AP/MmzdPqdWrV8823r59uzJn3bp1Sq1Hjx62cZMmTZQ5CQkJSu3ss8/22aeO7j31uuuus43nzJmjzHniiSeUWt26dZVao0aNbGPd/w/NmzdXas5/N7rH6Q55QXDcPIDEedjI+PHjfc7R0d1r/e1z3Lhxpxwj/EpLS5XaU089ZRt//vnnypw33nhDqenufZdffnlQfTkPYOJ7N+/Ztm2bUtO91zRr1kyp5ebm2sY33HCDMsd5HxQRWbt2rW387LPPKnMWLVqk1Lzw8yqfHAQAAAAAAAA8isVBAAAAAAAAwKNYHAQAAAAAAAA8Ks6yLMt0E79VUlIiKSkpptvwyxlnnKHUNmzYoNT+9a9/KbVbbrnFNtbtYaPTqVMn23jq1KnKnJUrVyq1QYMG+fX8kaq4uFiSk5ND+hrRlL2MjAylNnnyZKXWq1cvpabbyzKU2rZtq9R0ez1FqlBnL5pyZ4Jzj5FvvvlGmVOzZk2lpsvd+vXrXesr1Mjdqen2SdPd+3T7sDl99dVXSq1379628cyZM5U5zv3pRETKy8uVWk5Ojm2s2zM2UkTjvTY1NVWpXXnllbZxixYtlDm6/Yv8yUuwdD1ccMEFSu2DDz6wjTdv3qzMOXTokFI7fPiwUvvhhx9sY91+ST/99JPPx+n2Dj527JhSC1Y05s5NS5cutY11+235u3egP/sJBivYHxnj4uJc7sQ93GtPrUaNGkrNuVehSPB763733Xe28dVXX63Mcb4fxQJy9//o9oZ27rUvInLuuef6fC7dfXDGjBlKzfl+qtuTMxb5kzs+OQgAAAAAAAB4FIuDAAAAAAAAgEexOAgAAAAAAAB4FIuDAAAAAAAAgEedZrqBaNagQQO/arpNLg8cOBDUa3700Ue2cWFhoTJn1apVSu3vf/+7Uvv888+D6gHm7d69W6kNHDhQqaWlpSm17t2728a6TcV1j3vuued89jVq1CilpjukB/DXtddeaxvrDh/Jy8tTahs3bgxZTzBv8eLFSs2fwyScm5+L6A9z2rVrl2186623KnOWLFmi1HQHTIwePdo2juQDSaJRUVGRUps/f374G3Fwbga/YsUKZc706dOV2l/+8hfbuKKiwt3GEHGcB+jEmnHjxvlVQ+S54447lJru8JEPP/zQNn766aeVObqfU5wHdr333nvKnMsuu0ypHT16VG0WUen1119XameddVZQz/Xkk0/6VcPJ8clBAAAAAAAAwKNYHAQAAAAAAAA8isVBAAAAAAAAwKNYHAQAAAAAAAA8igNJwuCdd94J2XM7N7wW0W9erTsUBbFPd2DNm2++aRtXq1ZNmbNnzx6fz607aOTll19WamymjlArKSlRauQutjVt2lSpWZal1I4cOWIb33fffcqcTz75xOfr/fTTT0ptxowZSk13wISuV8S+KVOm2Ma6DfQffPBBpcZ7FyLV+PHjldrYsWMNdIJQ0B388eyzzyq1HTt2KDXne5nu8C/d4/r162cbX3zxxcqc4cOHK7VJkyYpNUSe+Hj1c2j333+/bdynTx9lTlxcXFCvpztkE4Hhk4MAAAAAAACAR7E4CAAAAAAAAHgUi4MAAAAAAACAR7E4CAAAAAAAAHgUB5KEwe9//3ul5twA3d8NqM8++2zb+NFHH1XmrFixQqmtWbPGr+eH9/Tt21epNWjQQKn98ssvtvGQIUOUObqDIYCquOKKK3zO0R1EgdjRu3fvoB/rPDjJn8NH/PWf//zHtedCdNN9L3bJJZfYxrrN/g8ePBiyngDgVJo0aWIbv/XWW8qc/fv3K7Vu3boptW3btvl8Pd1hh86DDMeNG6fMue6665QaB5JEh9atWyu1p556yufjlixZotScayAiIpmZmbax7oCkxMREpfbEE0/47MGr+OQgAAAAAAAA4FEsDgIAAAAAAAAeFdDiYG5urrRt21aSkpKkYcOG0qdPH9m6dattzuHDhyUnJ0fq1asntWvXlv79+0thYaGrTcN7unTpQu5gBNmDCeQOJpA7mDBlyhR+voARvOfBBHKHSBXQnoPLly+XnJwcadu2rRw/flwefvhh6d69u2zevFlq1aolIiIjRoyQjz/+WObNmycpKSkybNgw6devn6xatSokX4BJ3377rVKbPXu2UrvrrruU2r59+2zj6tWrK3N0eyykp6fbxrq9Cu+//36lFu2GDBkinTt3JncuOO00+z/7Z5991q/HTZs2zTZ27uUVq8he+Oj2uuzSpYvPx73zzjsh6MYscvf/dO7cWanFx6v/bVN3P3zggQdc6aF58+ZK7e2331ZqcXFxrryeKeTON+c+XSL6PXgHDhxoG7O/4MmtWrWKny9ghJff8/6/9u4tNqpqj+P4jyIdUOgUMLQ2OJwaEyEh8EAEK1GjVHhQIkp88YoxQbTVcPHFCxeDsQYSiZgqmhDAKHIxVJBECEIpwVAMhQQRrD6oEGkhRjott7ah6zwQes7u3shMOzNrX76fpA97dbf8B77OlOWw95gxYxzHo0aNcp1TW1vrWkvl+oKpSuX38fz58xn79fwijN0NHjzYtbZp06Ybft27777rWluxYoVrzevvCLt27XIce70+L1iwwLV26NAhx3Emr0cddGltDu7YscNxvHbtWo0YMUINDQ26//77lUwmtXr1aq1fv14PPfSQJGnNmjUaM2aM6uvrdc8992RuckTK008/rYKCAkl0h9yiPdhAd7CB7mDDli1buruTaA+5w3MebKA7+FWfrjmYTCYlScOGDZMkNTQ0qLOzU+Xl5d3njB49WolEQgcOHPD8Hu3t7WptbXV8AP8mE91JtIf08ZwHG+gONvBaC1t4zoMNdAcb6A5+0uvNwa6uLs2dO1eTJ0/W2LFjJUnNzc3Kz89XYWGh49yioiI1Nzd7fp+qqirF4/HuD6+3gwLXZKo7ifaQHp7zYAPdwQZea2ELz3mwge5gA93Bb3q9OVhRUaFjx45pw4YNfRrgjTfeUDKZ7P44depUn74fwi1T3Um0h/TwnAcb6A428FoLW3jOgw10BxvoDn6T1jUHr6msrNT27du1b98+jRw5snu9uLhYHR0damlpcex2nzlzxnUjjWtisZhisVhvxrCuvb3dtfbaa6+51rwuUP7mm286jnveJEKSdu7c6Vrr+XbiZcuWuc45fvy4e9gQyGR3UrDb64ueN6zx+r9L//zzj2vtww8/zNpMfsdzXm688MILrrXhw4c7jjs7O13nbNmyJWsz2UR3VxljXGteNx/xOs9rLRVPPvmk4/i9995znZNIJFL69ZYuXdqrGWzhtfZ/+vfv71pbtWqVa23btm2utf3792dlpjCL6nNezxtvpXIjLklasmRJxmf5Nw888EBOf71ciWp3qby7rKamJqszTJ482XHs9Xfm+vr6rM5gS9i6u/POO11rd9xxxw2/zuumN+fOnUtp7eGHH3Ycf//9965z/v/39povv/zScXzfffe5zvn555/dw0ZAWu8cNMaosrJSNTU12rNnj0pLSx2fnzBhggYMGKDdu3d3rzU2NurkyZMqKyvLzMSIpNdff53uYAXtwQa6gw10Bxv4+wVs4TkPNtAd/Cqtdw5WVFRo/fr12rp1q4YMGdL9797j8bgGDRqkeDyuF198UfPnz9ewYcNUUFCgV199VWVlZdxZB32yadMmuoMVtAcb6A420B1sWLBggb7++mvaQ87xnAcb6A5+ldbm4CeffCLJ/Xb3NWvWaNasWZKkFStWKC8vTzNnzlR7e7umTZumjz/+OCPDIrqSySTdwQragw10BxvoDjasXr1aEn+/QO7xnAcb6A5+ldbmYCrX7hk4cKCqq6tVXV3d66GAnpLJpAoKCq77ebpDttAebKA72EB3sOFG3Um0h+zgOQ820B38qlc3JMH1nT9/3rXmdZF9rzUg07wu7Dt9+vQbft3atWtda143KQEyyevi/z15NR2Px11r9BoeJ0+e7PXX9rz5119//eU6Z/z48a61nv90J9Ubm7z99tuutXXr1qX0tfAfrxvfzJgxw7V25cqVHEyDsOr5DqLFixen9HVe5+3du9dxXFdX16uZvG4+kuqNUnrqORP8IS/vxrceSOWcVA0dOtS19sgjjziO29raXOd89tlnGZsB2eN1w8Bs+/XXXx3HU6dOdZ2zY8cO11rPG8pVVVW5znnmmWdca62tremOGDiZ+y8eAAAAAAAAQKCwOQgAAAAAAABEFJuDAAAAAAAAQERxzUEgxMaNG+dau/feex3H586dc52zYMGCrM0E9MVNN7lftqZMmeJa27x5cy7GQQ6sXLnStbZixYqUvrbn9Yx66+LFi661w4cPu9a++OIL11pTU1NGZkDueV1r0sZ1lRBuS5YscRx7XaPP6/qCXtcA7LnW2+sE9kXP+bnmoD+VlJTc8Jw5c+a41nbu3Olaa2xsdBx7Xa/trbfecq3dddddjmOvVv74448bTAk/8MPPOr/88otr7amnnnKt7d+/33H86KOPus555513XGvz5s3rw3TBwDsHAQAAAAAAgIhicxAAAAAAAACIKDYHAQAAAAAAgIhicxAAAAAAAACIqH7G62rLFrW2tioej9seAz6TTCZVUFCQ1V8jjO19+umnrrXZs2c7jpcuXeo6Z9GiRVmbKWiy3V4Yu+utdevWudaeffZZx3FbW5vrnFGjRrnWWlpaMjaXDXT37+bOneta87oB03PPPder779v3z7H8fLly13nfPfdd7363n7Gay1soLve8brZSG1tbU5n8LqBxIMPPpjTGfqC11rYEMbu8vLc7zl76aWXXGvV1dWO459++sl1zsKFC11r27Zt69Vc/fv3v+H39/p7b0dHh2stkUi41s6ePduruWxIpTveOQgAAAAAAABEFJuDAAAAAAAAQESxOQgAAAAAAABEFJuDAAAAAAAAQERxQxIEAher7p0TJ0641kpLS//1WJKampqyNlPQhPGiwX519OhR19rYsWMdx59//rnrnFmzZmVrJGvoDjbwWgsb6A628FoLG+gONnBDEgAAAAAAAADXxeYgAAAAAAAAEFFsDgIAAAAAAAARxeYgAAAAAAAAEFE32R4AQPYMHz7ctfbDDz84jrn5CPysvb3dcbxx40ZLkwAAAABAOPHOQQAAAAAAACCi2BwEAAAAAAAAIorNQQAAAAAAACCiuOYgEGIjRoywPQKQsnHjxtkeAQAAAAAih3cOAgAAAAAAABHF5iAAAAAAAAAQUWwOAgAAAAAAABHlu81BY4ztEeBDueiC9uAl213QHbzQHWzgtRY20B1s4bUWNtAdbEilC99tDra1tdkeAT6Uiy5oD16y3QXdwQvdwQZea2ED3cEWXmthA93BhlS66Gd8trXc1dWl06dPa8iQIWpra9Ptt9+uU6dOqaCgwPZoaWltbWX2DDDGqK2tTSUlJcrLy+5e9rX2jDFKJBK+ePzp8tOfXbr8Nnuu2qM7+/w0f66747XWHj/Nzmttevz0Z5cuP81Od+nx059duvw2Oz/jpcdvf37p8NPs/IyXHj/92aXLT7On091NOZopZXl5eRo5cqQkqV+/fpKkgoIC67+pvcXsfRePx3Py61xrr7W1VZJ/Hn9vMHtm5KI9uvMPv8yfy+4kXmtt88vsvNamj9n7ju7Sx+yZwc946Qvy/H6ZnZ/x0sfsfZdqd777Z8UAAAAAAAAAcoPNQQAAAAAAACCifL05GIvFtHjxYsViMdujpI3ZgyvIj5/ZgyvIjz/Is0vBn7+vgvz4mT24gvz4mT24gvz4mT24gv74gzx/kGfPhCA/fmbPPd/dkAQAAAAAAABAbvj6nYMAAAAAAAAAsofNQQAAAAAAACCi2BwEAAAAAAAAIorNQQAAAAAAACCi2BwEAAAAAAAAIsq3m4PV1dX6z3/+o4EDB2rSpEn68ccfbY/kad++fZo+fbpKSkrUr18/ffPNN47PG2O0aNEi3XbbbRo0aJDKy8v122+/2Rn2/1RVVenuu+/WkCFDNGLECM2YMUONjY2Ocy5fvqyKigoNHz5cgwcP1syZM3XmzBlLE+dOENqju/Chu+yiPW90l1105y0I3UnBbY/uri8I7QW1O4n2rofusovuvAWhOym47YWxO19uDm7cuFHz58/X4sWLdfjwYY0fP17Tpk3T2bNnbY/mcuHCBY0fP17V1dWen1+2bJlWrlypVatW6eDBg7rllls0bdo0Xb58OceTOtXV1amiokL19fXatWuXOjs7NXXqVF24cKH7nHnz5unbb7/V5s2bVVdXp9OnT+uJJ56wOHX2BaU9ugsXuss+2nOju+yjO7egdCcFtz268xaU9oLanUR7Xugu++jOLSjdScFtL5TdGR+aOHGiqaio6D6+cuWKKSkpMVVVVRanujFJpqampvu4q6vLFBcXm+XLl3evtbS0mFgsZr766isLE17f2bNnjSRTV1dnjLk654ABA8zmzZu7zzlx4oSRZA4cOGBrzKwLYnt0F3x0l3u0R3c20F0wuzMm2O3R3VVBbC/I3RlDe8bQnQ10F8zujAl2e2HoznfvHOzo6FBDQ4PKy8u71/Ly8lReXq4DBw5YnCx9v//+u5qbmx2PJR6Pa9KkSb57LMlkUpI0bNgwSVJDQ4M6Ozsds48ePVqJRMJ3s2dKWNqju2ChOzui3h7d2UF34ehOClZ7Ue9OCk97QepOoj26s4PuwtGdFKz2wtCd7zYH//77b125ckVFRUWO9aKiIjU3N1uaqneuzev3x9LV1aW5c+dq8uTJGjt2rKSrs+fn56uwsNBxrt9mz6SwtEd3wUJ3uUd7dGcD3YWnOyk47dHdVWFpLyjdSbQn0Z0NdBee7qTgtBeW7m6yPQDsq6io0LFjx7R//37boyBC6A620B5soDvYQHewhfZgA93BhrB057t3Dt56663q37+/6y4uZ86cUXFxsaWpeufavH5+LJWVldq+fbtqa2s1cuTI7vXi4mJ1dHSopaXFcb6fZs+0sLRHd8FCd7lFe1fRXW7R3VVh6U4KRnt09z9haS8I3Um0dw3d5RbdXRWW7qRgtBem7ny3OZifn68JEyZo9+7d3WtdXV3avXu3ysrKLE6WvtLSUhUXFzseS2trqw4ePGj9sRhjVFlZqZqaGu3Zs0elpaWOz0+YMEEDBgxwzN7Y2KiTJ09anz1bwtIe3QUL3eUG7TnRXW7QnVNYupP83R7duYWlPT93J9FeT3SXG3TnFJbuJH+3F8ru7N0L5fo2bNhgYrGYWbt2rTl+/LiZPXu2KSwsNM3NzbZHc2lrazNHjhwxR44cMZLMBx98YI4cOWL+/PNPY4wx77//viksLDRbt241R48eNY899pgpLS01ly5dsjr3yy+/bOLxuNm7d69pamrq/rh48WL3OXPmzDGJRMLs2bPHHDp0yJSVlZmysjKLU2dfUNqju3Chu+yjPTe6yz66cwtKd8YEtz268xaU9oLanTG054Xuso/u3ILSnTHBbS+M3flyc9AYYz766COTSCRMfn6+mThxoqmvr7c9kqfa2lojyfXx/PPPG2Ou3n574cKFpqioyMRiMTNlyhTT2Nhod2hjPGeWZNasWdN9zqVLl8wrr7xihg4dam6++Wbz+OOPm6amJntD50gQ2qO78KG77KI9b3SXXXTnLQjdGRPc9uju+oLQXlC7M4b2rofusovuvAWhO2OC214Yu+tnjDE3fn8hAAAAAAAAgLDx3TUHAQAAAAAAAOQGm4MAAAAAAABARLE5CAAAAAAAAEQUm4MAAAAAAABARLE5CAAAAAAAAEQUm4MAAAAAAABARLE5CAAAAAAAAEQUm4MAAAAAAABARLE5CAAAAAAAAEQUm4MAAAAAAABARLE5CAAAAAAAAETUfwHjmJ+AiTyGKAAAAABJRU5ErkJggg==", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], -======= "outputId": "4e0988a8-388d-4acf-882b-089e4ea887bf" }, "outputs": [], ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "# it is likely that the plot this function will generate looks familiar to other plots you might have generated before\n", "# or you might have encountered in other tutorials. So far, we aren't doing anything new, Federated Learning will start soon!\n", @@ -599,13 +296,7 @@ { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "PmGyjFEFhVwd" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "# A CNN architecture\n", "\n", @@ -615,24 +306,14 @@ }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 9, - "metadata": { - "id": "Nr4jR6tspOh4" - }, -======= "execution_count": null, "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "outputs": [], "source": [ "import torch.nn as nn\n", "import torch.nn.functional as F\n", "\n", -<<<<<<< HEAD -======= "\n", ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "class Net(nn.Module):\n", " def __init__(self, num_classes: int) -> None:\n", " super(Net, self).__init__()\n", @@ -656,46 +337,21 @@ { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "5TJrrCBlpZOp" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "Similarly to what we did with the dataset you could inspect the model in various ways. We can, for instance, count the number of model parameters." ] }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 10, -======= "execution_count": null, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, -<<<<<<< HEAD - "id": "zdVK9c4hpYaC", - "outputId": "67d01ab4-cdd9-4661-8f01-eaa9aabf786d" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "num_parameters = 44426\n" - ] - } - ], -======= "outputId": "67d01ab4-cdd9-4661-8f01-eaa9aabf786d" }, "outputs": [], ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "model = Net(num_classes=10)\n", "num_parameters = sum(value.numel() for value in model.state_dict().values())\n", @@ -705,13 +361,7 @@ { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "XAXzw1dlp_oO" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "## The Training Loop\n", "\n", @@ -725,15 +375,8 @@ }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 12, - "metadata": { - "id": "DRhz5bcfpw06" - }, -======= "execution_count": null, "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "outputs": [], "source": [ "def train(net, trainloader, optimizer, epochs):\n", @@ -748,10 +391,7 @@ " optimizer.step()\n", " return net\n", "\n", -<<<<<<< HEAD -======= "\n", ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "def test(net, testloader):\n", " \"\"\"Validate the network on the entire test set.\"\"\"\n", " criterion = torch.nn.CrossEntropyLoss()\n", @@ -767,11 +407,7 @@ " return loss, accuracy\n", "\n", "\n", -<<<<<<< HEAD - "def run_centralised(epochs: int, lr: float, momentum: float=0.9):\n", -======= "def run_centralised(epochs: int, lr: float, momentum: float = 0.9):\n", ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 " \"\"\"A minimal (but complete) training loop\"\"\"\n", "\n", " # instantiate the model\n", @@ -797,47 +433,21 @@ { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "76Q0UnqiukYT" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "Let's run this for 5 epochs (you'll see it reaching close to 99% accuracy -- as expected from a centralised setup with the MNIST dataset)" ] }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 13, -======= "execution_count": null, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, -<<<<<<< HEAD - "id": "xgJ6mdNSqzpI", - "outputId": "e8d9b429-178d-4924-e82f-4d4e52863788" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loss = 2.4290689574118005\n", - "accuracy = 0.9894\n" - ] - } - ], -======= "outputId": "e8d9b429-178d-4924-e82f-4d4e52863788" }, "outputs": [], ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "run_centralised(epochs=5, lr=0.01)" ] @@ -845,13 +455,7 @@ { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "pyz2gQaluw-5" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "The above centralised formulation has worked just fine for some applications and to showcase the potential of AI in a variety of scenarios. However, as was discussed earlier in the session, centralised training is unsuitable for a larger range of settings were information cannot be collected in order to build a unified (centralised) dataset.\n", "\n", @@ -869,13 +473,7 @@ { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "-Jv-H2HBzbPA" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "## One Client, One Data Partition\n", "\n", @@ -884,38 +482,20 @@ }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 14, - "metadata": { - "id": "Lgc5C6yltJCv" - }, -======= "execution_count": null, "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "outputs": [], "source": [ "from torch.utils.data import random_split\n", "\n", -<<<<<<< HEAD - "def prepare_dataset(num_partitions: int,\n", - " batch_size: int,\n", - " val_ratio: float = 0.1):\n", - "\n", -======= "\n", "def prepare_dataset(num_partitions: int, batch_size: int, val_ratio: float = 0.1):\n", ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 " \"\"\"This function partitions the training set into N disjoint\n", " subsets, each will become the local dataset of a client. This\n", " function also subsequently partitions each traininset partition\n", " into train and validation. The test set is left intact and will\n", " be used by the central server to asses the performance of the\n", -<<<<<<< HEAD - " global model. \"\"\"\n", -======= " global model.\"\"\"\n", ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "\n", " # get the MNIST dataset\n", " trainset, testset = get_mnist()\n", @@ -925,13 +505,9 @@ "\n", " partition_len = [num_images] * num_partitions\n", "\n", -<<<<<<< HEAD - " trainsets = random_split(trainset, partition_len, torch.Generator().manual_seed(2023))\n", -======= " trainsets = random_split(\n", " trainset, partition_len, torch.Generator().manual_seed(2023)\n", " )\n", ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "\n", " # create dataloaders with train+val support\n", " trainloaders = []\n", @@ -941,12 +517,6 @@ " num_val = int(val_ratio * num_total)\n", " num_train = num_total - num_val\n", "\n", -<<<<<<< HEAD - " for_train, for_val = random_split(trainset_, [num_train, num_val], torch.Generator().manual_seed(2023))\n", - "\n", - " trainloaders.append(DataLoader(for_train, batch_size=batch_size, shuffle=True, num_workers=2))\n", - " valloaders.append(DataLoader(for_val, batch_size=batch_size, shuffle=False, num_workers=2))\n", -======= " for_train, for_val = random_split(\n", " trainset_, [num_train, num_val], torch.Generator().manual_seed(2023)\n", " )\n", @@ -957,7 +527,6 @@ " valloaders.append(\n", " DataLoader(for_val, batch_size=batch_size, shuffle=False, num_workers=2)\n", " )\n", ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "\n", " # create dataloader for the test set\n", " testloader = DataLoader(testset, batch_size=128)\n", @@ -968,66 +537,19 @@ { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "9sXWjalq-G39" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "Let's create 100 partitions and extract some statistics from one partition\n" ] }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 15, -======= "execution_count": null, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 508 }, -<<<<<<< HEAD - "id": "I0LbJhrC0evC", - "outputId": "0f53ca81-cb55-46ef-c8e0-4e19a4f060b2" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "number of images: 540\n" - ] - }, - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Class labels distribution for MNIST')" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjIAAAHHCAYAAACle7JuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABH5ElEQVR4nO3deVyU9R73//eAMKAIijsquO9baihqmftxy47m3smt5ZwwF0rTu1TUXLvTcsnUPNpGppaeo5001NLjrpjmlrtZqZgloJA4wvX7ox9zO7HI4MDM5Xk9Hw8eOd+5ru/1+VwM8eaa67rGYhiGIQAAABPycncBAAAAeUWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQgalVqlRJgwcPdncZDlasWCGLxaILFy44ve5jjz2mevXqubSe/N5HWfX72GOP6bHHHsu3bd7NYrEoOjra/jg6OloWi0XXrl0rkO278zW4f/9+tWjRQkWKFJHFYtGhQ4fcUgfgTgQZeKSzZ8/q+eefV5UqVeTn56fAwEC1bNlSb7/9tn7//Xd3l4d8sGvXLkVHRyshIcHdpWTiibXZbDb17t1bv/32m+bOnasPP/xQYWFh+ba9b775RhaLRRaLRR999FGWy7Rs2VIWiyVTGK9UqZIsFotefPHFbOdds2aNfSwjHB84cMBh2R07dqhz584qX768/Pz8FBoaqu7duysmJkaSNHjwYHuNOX152h8/uD+F3F0A8GdffPGFevfuLavVqqefflr16tXT7du3tWPHDo0ZM0bHjh3TkiVL3F0mcvDVV185vc6uXbs0efJkDR48WMWKFcv1er///rsKFcrf/5XlVNvJkyfl5VXwfxOePXtWP/zwg5YuXapnnnmmwLbr5+enmJgYPfXUUw7jFy5c0K5du+Tn55ftukuXLtX48eMVEhLi9HZXr16tvn37qlGjRho5cqSKFy+u8+fPa/v27Vq6dKkGDBig559/Xu3bt7evc/78eU2cOFHPPfecHnnkEft41apVnd4+PBdBBh7l/Pnz6tevn8LCwrR161aVK1fO/lxkZKTOnDmjL774wo0VIjd8fX3zdf709HTdvn1bfn5+Of7iLAhWq9Ut27169aokORX67iU5OVlFihTJcZkuXbro3//+t65du6aSJUvax2NiYlSmTBlVr15d169fz7Re3bp1dfLkSc2cOVPz5s1zurbo6GjVqVNHe/bsyfT6ytgXERERioiIsI8fOHBAEydOVERERKbghQcHby3Bo8yePVs3b97UsmXLHEJMhmrVqmnkyJHZrv/bb7/p5ZdfVv369RUQEKDAwEB17txZhw8fzrTs/PnzVbduXRUuXFjFixdX06ZN7YeoJenGjRsaNWqUKlWqJKvVqtKlS6tDhw46ePCg033961//UteuXRUSEiKr1aqqVatq6tSpSktLy3L5uLg4tWjRQv7+/qpcubLefffdTMukpqZq0qRJqlatmqxWqypWrKixY8cqNTU1x1psNpsmT56s6tWry8/PTyVKlFCrVq0UGxt7zz6OHTumtm3byt/fXxUqVNDrr7+u9PT0TMtldY5MTvs7OjpaY8aMkSRVrlzZ/hZAxnk3FotFw4cP18cff6y6devKarVq48aN9ufuPkcmw7Vr19SnTx8FBgaqRIkSGjlypG7dumV//sKFC7JYLFqxYkWmde+e8161ZXWOzLlz59S7d28FBwercOHCat68eaYAnvGWyqpVqzRt2jRVqFBBfn5+ateunc6cOZOpprsNHjxYrVu3liT17t1bFovFYX9v3bpVjzzyiIoUKaJixYqpR48eOnHihMMcGecSHT9+XAMGDFDx4sXVqlWrHLcrST169JDVatXq1asdxmNiYtSnTx95e3tnuV6lSpX09NNPa+nSpbp06dI9t/NnZ8+e1cMPP5xlSC5durTT8+HBwREZeJT169erSpUqatGiRZ7WP3funNatW6fevXurcuXKio+P1+LFi9W6dWsdP37cfkh76dKlGjFihJ588kn7L7jvvvtOe/fu1YABAyRJf//737VmzRoNHz5cderU0a+//qodO3boxIkTaty4sVN1rVixQgEBAYqKilJAQIC2bt2qiRMnKikpSW+88YbDstevX1eXLl3Up08f9e/fX6tWrdI//vEP+fr6aujQoZL+OCLx+OOPa8eOHXruuedUu3ZtHTlyRHPnztWpU6e0bt26bGuJjo7WjBkz9Mwzzyg8PFxJSUk6cOCADh48qA4dOmS73pUrV9SmTRvduXNH48aNU5EiRbRkyRL5+/vfs/977e+ePXvq1KlT+uSTTzR37lz7X/qlSpWyz7F161atWrVKw4cPV8mSJVWpUqUct9mnTx9VqlRJM2bM0J49ezRv3jxdv35dH3zwwT3rvVtuartbfHy8WrRooZSUFI0YMUIlSpTQ+++/r8cff1xr1qzRX//6V4flZ86cKS8vL7388stKTEzU7NmzNXDgQO3duzfbmp5//nmVL19e06dP14gRI/Twww+rTJkykqTNmzerc+fOqlKliqKjo/X7779r/vz5atmypQ4ePJhpv/Xu3VvVq1fX9OnTZRjGPfdH4cKF1aNHD33yySf6xz/+IUk6fPiwjh07pvfee0/fffddtuu++uqr+uCDD/J0VCYsLExbtmzRTz/9pAoVKji1Lh5wBuAhEhMTDUlGjx49cr1OWFiYMWjQIPvjW7duGWlpaQ7LnD9/3rBarcaUKVPsYz169DDq1q2b49xBQUFGZGRkrmvJsHz5ckOScf78eftYSkpKpuWef/55o3DhwsatW7fsY61btzYkGW+++aZ9LDU11WjUqJFRunRp4/bt24ZhGMaHH35oeHl5Gf/9738d5nz33XcNScbOnTvtY3/eRw0bNjS6du3qdF+jRo0yJBl79+61j129etUICgrK1G/r1q2N1q1b2x/nZn+/8cYbmebJIMnw8vIyjh07luVzkyZNsj+eNGmSIcl4/PHHHZZ74YUXDEnG4cOHDcP443UhyVi+fPk958yptj/v34z9dPf35saNG0blypWNSpUq2V+fX3/9tSHJqF27tpGammpf9u233zYkGUeOHMm0rbtlrL969WqH8YzXyq+//mofO3z4sOHl5WU8/fTT9rGM/dS/f/8ct5PV9jZs2GBYLBbj4sWLhmEYxpgxY4wqVaoYhvHH9/7P3+uwsDD7a27IkCGGn5+fcenSpWz7yPgZ2r9/v31s2bJlhiTD19fXaNOmjTFhwgTjv//9b6af97vt378/2+8xHhy8tQSPkZSUJEkqWrRonuewWq32Ey/T0tL066+/KiAgQDVr1nR4S6hYsWL66aeftH///mznKlasmPbu3Zunw+B/dvdRixs3bujatWt65JFHlJKSou+//95h2UKFCun555+3P/b19dXzzz+vq1evKi4uTtIfJz7Wrl1btWrV0rVr1+xfbdu2lSR9/fXXOfZ17NgxnT592qke/vOf/6h58+YKDw+3j5UqVUoDBw6857q52d/30rp1a9WpUyfXy0dGRjo8zrhi5j//+U+ea8iN//znPwoPD3d4myYgIEDP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flq4cKEWLlzoku0BAIAHi9NBZvny5flRBwAAgNPu//a8AAAAbuL0EZnKlSvneL8YZz9vCQAAIK+cDjKjRo1yeGyz2fTtt99q48aNGjNmjKvqAgAAuKc8XX6dlYULF+rAgQP3XRAAAEBuuewcmc6dO+uzzz5z1XQAAAD35LIgs2bNGgUHB7tqOgAAgHty+q2lhx56yOFkX8MwdOXKFf3yyy/crA4AABQop4PME0884fDYy8tLpUqV0mOPPaZatWq5qi4AAIB7cjrITJo0KT/qAAAAcBo3xAMAAKaV6yMyXl5eOd4IT5IsFovu3Llz30UBAADkRq6DzNq1a7N9bvfu3Zo3b57S09NdUhQAAEBu5DrI9OjRI9PYyZMnNW7cOK1fv14DBw7UlClTXFocAABATvJ0jsylS5f07LPPqn79+rpz544OHTqk999/X2FhYa6uDwAAIFtOBZnExES98sorqlatmo4dO6YtW7Zo/fr1qlevXn7VBwAAkK1cv7U0e/ZszZo1S2XLltUnn3yS5VtNAAAABSnXQWbcuHHy9/dXtWrV9P777+v999/PcrnPP//cZcUBAADkJNdB5umnn77n5dcAAAAFKddBZsWKFflYBgAAgPO4sy8AADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAtggwAADAttwaZGTNm6OGHH1bRokVVunRpPfHEEzp58qTDMrdu3VJkZKRKlCihgIAA9erVS/Hx8W6qGAAAeBK3Bplt27YpMjJSe/bsUWxsrGw2mzp27Kjk5GT7MqNHj9b69eu1evVqbdu2TZcuXVLPnj3dWDUAAPAUhdy58Y0bNzo8XrFihUqXLq24uDg9+uijSkxM1LJlyxQTE6O2bdtKkpYvX67atWtrz549at68uTvKBgAAHsKtQebPEhMTJUnBwcGSpLi4ONlsNrVv396+TK1atRQaGqrdu3dnGWRSU1OVmppqf5yUlCRJstlsstlsLqs1Yy6rl+GyOd0lowez90IfnoU+PAt9eJYHrQ9X/n7NkNs5LYZheMReTE9P1+OPP66EhATt2LFDkhQTE6MhQ4Y4BBNJCg8PV5s2bTRr1qxM80RHR2vy5MmZ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", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "trainloaders, valloaders, testloader = prepare_dataset(num_partitions=100,\n", - " batch_size=32)\n", -======= "outputId": "0f53ca81-cb55-46ef-c8e0-4e19a4f060b2" }, "outputs": [], @@ -1035,7 +557,6 @@ "trainloaders, valloaders, testloader = prepare_dataset(\n", " num_partitions=100, batch_size=32\n", ")\n", ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "\n", "# first partition\n", "train_partition = trainloaders[0].dataset\n", @@ -1048,27 +569,15 @@ "plt.hist(train_partition.dataset.dataset.targets[partition_indices], bins=10)\n", "plt.grid()\n", "plt.xticks(range(10))\n", -<<<<<<< HEAD - "plt.xlabel('Label')\n", - "plt.ylabel('Number of images')\n", - "plt.title('Class labels distribution for MNIST')" -======= "plt.xlabel(\"Label\")\n", "plt.ylabel(\"Number of images\")\n", "plt.title(\"Class labels distribution for MNIST\")" ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 ] }, { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "me-cNRBO_-fa" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "As you can see, the histogram of this partition is a bit different from the one we obtained at the beginning where we took the entire dataset into consideration. Because our data partitions are artificially constructed by sampling the MNIST dataset in an IID fashion, our Federated Learning example will not face sever _data heterogeneity_ issues (which is a fairly [active research topic](https://arxiv.org/abs/1912.04977)).\n", "\n", @@ -1093,25 +602,9 @@ }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 16, - "metadata": { - "id": "GckcVE2hH5UV" - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2023-08-28 20:57:17,516\tINFO util.py:159 -- Missing packages: ['ipywidgets']. Run `pip install -U ipywidgets`, then restart the notebook server for rich notebook output.\n" - ] - } - ], -======= "execution_count": null, "metadata": {}, "outputs": [], ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "import flwr as fl" ] @@ -1119,28 +612,15 @@ { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "w3zwIYgVH5wU" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "Now let's define our Flower Client class:" ] }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 17, - "metadata": { - "id": "uXdiNmCE_90y" - }, -======= "execution_count": null, "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "outputs": [], "source": [ "from collections import OrderedDict\n", @@ -1149,16 +629,9 @@ "import torch\n", "from flwr.common import NDArrays, Scalar\n", "\n", -<<<<<<< HEAD - "class FlowerClient(fl.client.NumPyClient):\n", - " def __init__(self,\n", - " trainloader,\n", - " vallodaer) -> None:\n", -======= "\n", "class FlowerClient(fl.client.NumPyClient):\n", " def __init__(self, trainloader, vallodaer) -> None:\n", ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 " super().__init__()\n", "\n", " self.trainloader = trainloader\n", @@ -1201,29 +674,17 @@ " local validation set. Then return performance metrics.\"\"\"\n", "\n", " self.set_parameters(parameters)\n", -<<<<<<< HEAD - " loss, accuracy = test(self.model, self.valloader) # <-------------------------- calls the `test` function, just what we did in the centralised setting (but this time using the client's local validation set)\n", - " # send statistics back to the server\n", - " return float(loss), len(self.valloader), {'accuracy': accuracy}" -======= " loss, accuracy = test(\n", " self.model, self.valloader\n", " ) # <-------------------------- calls the `test` function, just what we did in the centralised setting (but this time using the client's local validation set)\n", " # send statistics back to the server\n", " return float(loss), len(self.valloader), {\"accuracy\": accuracy}" ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 ] }, { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "d5Ku-Z_1Jkvz" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "Spend a few minutes to inspect the `FlowerClient` class above. Please ask questions if there is something unclear !\n", "\n", @@ -1249,15 +710,8 @@ }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 18, - "metadata": { - "id": "gUmUpH5t-Urn" - }, -======= "execution_count": null, "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "outputs": [], "source": [ "def get_evalulate_fn(testloader):\n", @@ -1265,10 +719,7 @@ " function (i.e. `evaluate_fn`) will be executed by the strategy\n", " at the end of each round to evaluate the stat of the global\n", " model.\"\"\"\n", -<<<<<<< HEAD -======= "\n", ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 " def evaluate_fn(server_round: int, parameters, config):\n", " \"\"\"This function is executed by the strategy it will instantiate\n", " a model and replace its parameters with those from the global model.\n", @@ -1283,44 +734,27 @@ " model.load_state_dict(state_dict, strict=True)\n", "\n", " # call test\n", -<<<<<<< HEAD - " loss, accuracy = test(model, testloader) # <-------------------------- calls the `test` function, just what we did in the centralised setting\n", -======= " loss, accuracy = test(\n", " model, testloader\n", " ) # <-------------------------- calls the `test` function, just what we did in the centralised setting\n", ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 " return loss, {\"accuracy\": accuracy}\n", "\n", " return evaluate_fn\n", "\n", "\n", "# now we can define the strategy\n", -<<<<<<< HEAD - "strategy = fl.server.strategy.FedAvg(fraction_fit=0.1, # let's sample 10% of the client each round to do local training\n", - " fraction_evaluate=0.1, # after each round, let's sample 20% of the clients to asses how well the global model is doing\n", - " min_available_clients=100, # total number of clients available in the experiment\n", - " evaluate_fn=get_evalulate_fn(testloader)) # a callback to a function that the strategy can execute to evaluate the state of the global model on a centralised dataset\n" -======= "strategy = fl.server.strategy.FedAvg(\n", " fraction_fit=0.1, # let's sample 10% of the client each round to do local training\n", " fraction_evaluate=0.1, # after each round, let's sample 20% of the clients to asses how well the global model is doing\n", " min_available_clients=100, # total number of clients available in the experiment\n", " evaluate_fn=get_evalulate_fn(testloader),\n", ") # a callback to a function that the strategy can execute to evaluate the state of the global model on a centralised dataset" ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 ] }, { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "4UV_kBVGRbQT" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "So far we have:\n", "* created the dataset partitions (one for each client)\n", @@ -1332,27 +766,14 @@ }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 19, - "metadata": { - "id": "frPHAxUg-3Ev" - }, -======= "execution_count": null, "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "outputs": [], "source": [ "def generate_client_fn(trainloaders, valloaders):\n", " def client_fn(cid: str):\n", " \"\"\"Returns a FlowerClient containing the cid-th data partition\"\"\"\n", "\n", -<<<<<<< HEAD - " return FlowerClient(trainloader=trainloaders[int(cid)],\n", - " vallodaer=valloaders[int(cid)])\n", - " return client_fn\n", - "\n", -======= " return FlowerClient(\n", " trainloader=trainloaders[int(cid)], vallodaer=valloaders[int(cid)]\n", " )\n", @@ -1360,124 +781,24 @@ " return client_fn\n", "\n", "\n", ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "client_fn_callback = generate_client_fn(trainloaders, valloaders)" ] }, { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "uJ0swdTqSyuA" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "Now we are ready to launch the FL experiment using Flower simulation:" ] }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 21, -======= "execution_count": null, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, -<<<<<<< HEAD - "id": "VpXEG9cxR9vu", - "outputId": "9ad8dcea-8004-4c6e-a025-e168da636c88" - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO flwr 2023-08-28 20:59:31,625 | app.py:175 | Starting Flower simulation, config: ServerConfig(num_rounds=10, round_timeout=None)\n", - "2023-08-28 20:59:34,903\tINFO worker.py:1621 -- Started a local Ray instance.\n", - "INFO flwr 2023-08-28 20:59:35,673 | app.py:210 | Flower VCE: Ray initialized with resources: {'object_store_memory': 2147483648.0, 'CPU': 10.0, 'node:__internal_head__': 1.0, 'node:127.0.0.1': 1.0, 'memory': 19064990925.0}\n", - "INFO flwr 2023-08-28 20:59:35,673 | app.py:218 | No `client_resources` specified. Using minimal resources for clients.\n", - "INFO flwr 2023-08-28 20:59:35,674 | app.py:224 | Flower VCE: Resources for each Virtual Client: {'num_cpus': 1, 'num_gpus': 0.0}\n", - "INFO flwr 2023-08-28 20:59:35,682 | app.py:270 | Flower VCE: Creating VirtualClientEngineActorPool with 10 actors\n", - "INFO flwr 2023-08-28 20:59:35,682 | server.py:89 | Initializing global parameters\n", - "INFO flwr 2023-08-28 20:59:35,683 | server.py:276 | Requesting initial parameters from one random client\n", - "INFO flwr 2023-08-28 20:59:40,091 | server.py:280 | Received initial parameters from one random client\n", - "INFO flwr 2023-08-28 20:59:40,092 | server.py:91 | Evaluating initial parameters\n", - "INFO flwr 2023-08-28 20:59:40,780 | server.py:94 | initial parameters (loss, other metrics): 182.0281903743744, {'accuracy': 0.1114}\n", - "INFO flwr 2023-08-28 20:59:40,780 | server.py:104 | FL starting\n", - "DEBUG flwr 2023-08-28 20:59:40,781 | server.py:222 | fit_round 1: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 20:59:47,133 | server.py:236 | fit_round 1 received 10 results and 0 failures\n", - "WARNING flwr 2023-08-28 20:59:47,141 | fedavg.py:242 | No fit_metrics_aggregation_fn provided\n", - "INFO flwr 2023-08-28 20:59:47,821 | server.py:125 | fit progress: (1, 181.06436610221863, {'accuracy': 0.1341}, 7.040863708942197)\n", - "DEBUG flwr 2023-08-28 20:59:47,822 | server.py:173 | evaluate_round 1: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 20:59:52,362 | server.py:187 | evaluate_round 1 received 10 results and 0 failures\n", - "WARNING flwr 2023-08-28 20:59:52,363 | fedavg.py:273 | No evaluate_metrics_aggregation_fn provided\n", - "DEBUG flwr 2023-08-28 20:59:52,363 | server.py:222 | fit_round 2: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 20:59:56,935 | server.py:236 | fit_round 2 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 20:59:57,627 | server.py:125 | fit progress: (2, 179.6406238079071, {'accuracy': 0.2844}, 16.846019334043376)\n", - "DEBUG flwr 2023-08-28 20:59:57,627 | server.py:173 | evaluate_round 2: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:02,146 | server.py:187 | evaluate_round 2 received 10 results and 0 failures\n", - "DEBUG flwr 2023-08-28 21:00:02,146 | server.py:222 | fit_round 3: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:06,692 | server.py:236 | fit_round 3 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 21:00:07,369 | server.py:125 | fit progress: (3, 176.3769176006317, {'accuracy': 0.5013}, 26.587926791980863)\n", - "DEBUG flwr 2023-08-28 21:00:07,369 | server.py:173 | evaluate_round 3: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:11,854 | server.py:187 | evaluate_round 3 received 10 results and 0 failures\n", - "DEBUG flwr 2023-08-28 21:00:11,855 | server.py:222 | fit_round 4: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:16,728 | server.py:236 | fit_round 4 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 21:00:17,414 | server.py:125 | fit progress: (4, 165.48094844818115, {'accuracy': 0.4989}, 36.63336270896252)\n", - "DEBUG flwr 2023-08-28 21:00:17,415 | server.py:173 | evaluate_round 4: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:22,117 | server.py:187 | evaluate_round 4 received 10 results and 0 failures\n", - "DEBUG flwr 2023-08-28 21:00:22,118 | server.py:222 | fit_round 5: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:26,776 | server.py:236 | fit_round 5 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 21:00:27,456 | server.py:125 | fit progress: (5, 115.77451705932617, {'accuracy': 0.6265}, 46.67501679202542)\n", - "DEBUG flwr 2023-08-28 21:00:27,457 | server.py:173 | evaluate_round 5: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:31,981 | server.py:187 | evaluate_round 5 received 10 results and 0 failures\n", - "DEBUG flwr 2023-08-28 21:00:31,982 | server.py:222 | fit_round 6: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:36,573 | server.py:236 | fit_round 6 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 21:00:37,266 | server.py:125 | fit progress: (6, 51.16007122397423, {'accuracy': 0.8018}, 56.484427334042266)\n", - "DEBUG flwr 2023-08-28 21:00:37,266 | server.py:173 | evaluate_round 6: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:41,796 | server.py:187 | evaluate_round 6 received 10 results and 0 failures\n", - "DEBUG flwr 2023-08-28 21:00:41,797 | server.py:222 | fit_round 7: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:46,326 | server.py:236 | fit_round 7 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 21:00:47,010 | server.py:125 | fit progress: (7, 46.40866267681122, {'accuracy': 0.8081}, 66.22883979196195)\n", - "DEBUG flwr 2023-08-28 21:00:47,011 | server.py:173 | evaluate_round 7: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:51,524 | server.py:187 | evaluate_round 7 received 10 results and 0 failures\n", - "DEBUG flwr 2023-08-28 21:00:51,525 | server.py:222 | fit_round 8: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:00:56,240 | server.py:236 | fit_round 8 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 21:00:56,982 | server.py:125 | fit progress: (8, 33.36455833911896, {'accuracy': 0.8698}, 76.20065708400216)\n", - "DEBUG flwr 2023-08-28 21:00:56,983 | server.py:173 | evaluate_round 8: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:01:01,527 | server.py:187 | evaluate_round 8 received 10 results and 0 failures\n", - "DEBUG flwr 2023-08-28 21:01:01,527 | server.py:222 | fit_round 9: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:01:06,174 | server.py:236 | fit_round 9 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 21:01:06,874 | server.py:125 | fit progress: (9, 28.229523852467537, {'accuracy': 0.9001}, 86.09250316699035)\n", - "DEBUG flwr 2023-08-28 21:01:06,874 | server.py:173 | evaluate_round 9: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:01:11,251 | server.py:187 | evaluate_round 9 received 10 results and 0 failures\n", - "DEBUG flwr 2023-08-28 21:01:11,251 | server.py:222 | fit_round 10: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:01:15,794 | server.py:236 | fit_round 10 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 21:01:16,470 | server.py:125 | fit progress: (10, 22.725839115679264, {'accuracy': 0.9168}, 95.68810208397917)\n", - "DEBUG flwr 2023-08-28 21:01:16,470 | server.py:173 | evaluate_round 10: strategy sampled 10 clients (out of 100)\n", - "DEBUG flwr 2023-08-28 21:01:20,808 | server.py:187 | evaluate_round 10 received 10 results and 0 failures\n", - "INFO flwr 2023-08-28 21:01:20,809 | server.py:153 | FL finished in 100.02693225000985\n", - "INFO flwr 2023-08-28 21:01:20,809 | app.py:225 | app_fit: losses_distributed [(1, 4.5842246294021605), (2, 4.546195244789123), (3, 4.46350576877594), (4, 4.165321779251099), (5, 2.8972655892372132), (6, 1.3353233098983766), (7, 1.2181178748607635), (8, 0.9146452054381371), (9, 0.8028807744383812), (10, 0.4898006349802017)]\n", - "INFO flwr 2023-08-28 21:01:20,809 | app.py:226 | app_fit: metrics_distributed_fit {}\n", - "INFO flwr 2023-08-28 21:01:20,810 | app.py:227 | app_fit: metrics_distributed {}\n", - "INFO flwr 2023-08-28 21:01:20,810 | app.py:228 | app_fit: losses_centralized [(0, 182.0281903743744), (1, 181.06436610221863), (2, 179.6406238079071), (3, 176.3769176006317), (4, 165.48094844818115), (5, 115.77451705932617), (6, 51.16007122397423), (7, 46.40866267681122), (8, 33.36455833911896), (9, 28.229523852467537), (10, 22.725839115679264)]\n", - "INFO flwr 2023-08-28 21:01:20,810 | app.py:229 | app_fit: metrics_centralized {'accuracy': [(0, 0.1114), (1, 0.1341), (2, 0.2844), (3, 0.5013), (4, 0.4989), (5, 0.6265), (6, 0.8018), (7, 0.8081), (8, 0.8698), (9, 0.9001), (10, 0.9168)]}\n" - ] - } - ], - "source": [ - "history = fl.simulation.start_simulation(\n", - " client_fn=client_fn_callback, # a callback to construct a client\n", - " num_clients=100, # total number of clients in the experiment\n", - " config=fl.server.ServerConfig(num_rounds=10), # let's run for 10 rounds\n", - " strategy=strategy, # the strategy that will orchestrate the whole FL pipeline\n", -======= "outputId": "9ad8dcea-8004-4c6e-a025-e168da636c88" }, "outputs": [], @@ -1487,20 +808,13 @@ " num_clients=100, # total number of clients in the experiment\n", " config=fl.server.ServerConfig(num_rounds=10), # let's run for 10 rounds\n", " strategy=strategy, # the strategy that will orchestrate the whole FL pipeline\n", ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 ")" ] }, { "attachments": {}, "cell_type": "markdown", -<<<<<<< HEAD - "metadata": { - "id": "2hLLbDCEUat7" - }, -======= "metadata": {}, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "source": [ "Doing 10 rounds should take less than 2 minutes on a CPU-only Colab instance <-- Flower Simulation is fast! 🚀\n", "\n", @@ -1509,61 +823,12 @@ }, { "cell_type": "code", -<<<<<<< HEAD - "execution_count": 22, -======= "execution_count": null, ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 508 }, -<<<<<<< HEAD - "id": "EQ8GnlFVTJkF", - "outputId": "d8eab106-cee9-4266-9082-0944882cdba8" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "history.metrics_centralized = {'accuracy': [(0, 0.1114), (1, 0.1341), (2, 0.2844), (3, 0.5013), (4, 0.4989), (5, 0.6265), (6, 0.8018), (7, 0.8081), (8, 0.8698), (9, 0.9001), (10, 0.9168)]}\n" - ] - }, - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'MNIST - IID - 100 clients with 10 clients per round')" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "print(f\"{history.metrics_centralized = }\")\n", - "\n", - "global_accuracy_centralised = history.metrics_centralized['accuracy']\n", - "round = [data[0] for data in global_accuracy_centralised]\n", - "acc = [100.0*data[1] for data in global_accuracy_centralised]\n", - "plt.plot(round, acc)\n", - "plt.grid()\n", - "plt.ylabel('Accuracy (%)')\n", - "plt.xlabel('Round')\n", - "plt.title('MNIST - IID - 100 clients with 10 clients per round')" -======= "outputId": "d8eab106-cee9-4266-9082-0944882cdba8" }, "outputs": [], @@ -1578,7 +843,6 @@ "plt.ylabel(\"Accuracy (%)\")\n", "plt.xlabel(\"Round\")\n", "plt.title(\"MNIST - IID - 100 clients with 10 clients per round\")" ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 ] }, { @@ -1620,21 +884,6 @@ "kernelspec": { "display_name": "Python 3", "name": "python3" -<<<<<<< HEAD - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.12" -======= ->>>>>>> ab7f77584b7caf37e98752016249b0cbfc6abd79 } }, "nbformat": 4, diff --git a/src/py/flwr/simulation/ray_transport/ray_actor.py b/src/py/flwr/simulation/ray_transport/ray_actor.py index 4be1b6f229af..63323f51368a 100644 --- a/src/py/flwr/simulation/ray_transport/ray_actor.py +++ b/src/py/flwr/simulation/ray_transport/ray_actor.py @@ -1,4 +1,4 @@ -# Copyright 2023 Flower Labs. All Rights Reserved. +# Copyright 2023 Flower Labs GmbH. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py index 7b222ef3b901..0365cce073b4 100644 --- a/src/py/flwr/simulation/ray_transport/ray_client_proxy.py +++ b/src/py/flwr/simulation/ray_transport/ray_client_proxy.py @@ -17,7 +17,7 @@ import traceback from logging import ERROR -from typing import Callable, Dict, Optional, Union, cast +from typing import Dict, Optional, cast import ray @@ -36,10 +36,6 @@ JobFn, VirtualClientEngineActorPool, ) -ClientFn = Callable[[str], ClientLike] -ClientRes = Union[ - common.GetPropertiesRes, common.GetParametersRes, common.FitRes, common.EvaluateRes -] class RayClientProxy(ClientProxy): From 4532326c0deda6163f002c9fb370bf4f6aeae0cf Mon Sep 17 00:00:00 2001 From: "JS.KIM" Date: Thu, 12 Oct 2023 23:24:48 +0900 Subject: [PATCH 124/133] Update baselines/fedmeta/README.md Co-authored-by: Javier --- baselines/fedmeta/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index 84cb08487737..fc91de5875e6 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -7,7 +7,7 @@ dataset: [FEMNIST, SHAKESPEARE] # FedMeta: Federated Meta-Learning with Fast Convergence and Efficient Communication -****Paper:**** : [arxiv.org/abs/1802.07876](https://arxiv.org/abs/1802.07876) +**Paper:** [arxiv.org/abs/1802.07876](https://arxiv.org/abs/1802.07876) ****Authors:**** :Fei Chen, Mi Luo, Zhenhua Dong, Zhenguo Li, Xiuqiang He From bd865c330e0d4e04809bcb8d1934cc2e4438eccf Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Thu, 12 Oct 2023 23:30:45 +0900 Subject: [PATCH 125/133] fixed README.md --- baselines/fedmeta/README.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index fc91de5875e6..a0abaecdd9f7 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -9,35 +9,35 @@ dataset: [FEMNIST, SHAKESPEARE] **Paper:** [arxiv.org/abs/1802.07876](https://arxiv.org/abs/1802.07876) -****Authors:**** :Fei Chen, Mi Luo, Zhenhua Dong, Zhenguo Li, Xiuqiang He +**Authors:** Fei Chen, Mi Luo, Zhenhua Dong, Zhenguo Li, Xiuqiang He -****Abstract:**** :Statistical and systematic challenges in collaboratively training machine learning models across distributed networks of mobile devices have been the bottlenecks in the real-world application of federated learning. In this work, we show that meta-learning is a natural choice to handle these issues, and propose a federated meta-learning framework FedMeta, where a parameterized algorithm (or meta-learner) is shared, instead of a global model in previous approaches. We conduct an extensive empirical evaluation on LEAF datasets and a real-world production dataset, and demonstrate that FedMeta achieves a reduction in required communication cost by 2.82-4.33 times with faster convergence, and an increase in accuracy by 3.23%-14.84% as compared to Federated Averaging (FedAvg) which is a leading optimization algorithm in federated learning. Moreover, FedMeta preserves user privacy since only the parameterized algorithm is transmitted between mobile devices and central servers, and no raw data is collected onto the servers. +**Abstract:** Statistical and systematic challenges in collaboratively training machine learning models across distributed networks of mobile devices have been the bottlenecks in the real-world application of federated learning. In this work, we show that meta-learning is a natural choice to handle these issues, and propose a federated meta-learning framework FedMeta, where a parameterized algorithm (or meta-learner) is shared, instead of a global model in previous approaches. We conduct an extensive empirical evaluation on LEAF datasets and a real-world production dataset, and demonstrate that FedMeta achieves a reduction in required communication cost by 2.82-4.33 times with faster convergence, and an increase in accuracy by 3.23%-14.84% as compared to Federated Averaging (FedAvg) which is a leading optimization algorithm in federated learning. Moreover, FedMeta preserves user privacy since only the parameterized algorithm is transmitted between mobile devices and central servers, and no raw data is collected onto the servers. ## About this baseline -****What’s implemented:**** : We reimplemented the experiments from the paper 'FedMeta: Federated Meta-Learning with Fast Convergence and Efficient Communication' by Fei Chen (2018). which proposed the FedMeta(MAML & Meta-SGD) algorithm. Specifically, we replicate the results from Table 2 and Figure 2 of the paper. +**What’s implemented:** We reimplemented the experiments from the paper 'FedMeta: Federated Meta-Learning with Fast Convergence and Efficient Communication' by Fei Chen (2018). which proposed the FedMeta(MAML & Meta-SGD) algorithm. Specifically, we replicate the results from Table 2 and Figure 2 of the paper. -****Datasets:**** : FEMNIST and SHAKESPEARE from Leaf Federated Learning Dataset +**Datasets:** FEMNIST and SHAKESPEARE from Leaf Federated Learning Dataset -****Hardware Setup:**** : These experiments were run on a machine with 16 CPU threads and 1 GPU(GeForce RTX 2080 Ti). **However, the FedMeta experiment using the Shakespeare dataset required more computing power (more than 4 GPUs).** Out of Memory errors may occur with some clients, but federated learning can continue to operate. +**Hardware Setup:** These experiments were run on a machine with 16 CPU threads and 1 GPU(GeForce RTX 2080 Ti). **However, the FedMeta experiment using the Shakespeare dataset required more computing power (more than 4 GPUs).** Out of Memory errors may occur with some clients, but federated learning can continue to operate. -****Contributors:**** : **Jinsoo Kim and Kangyoon Lee** +**Contributors:** Jinsoo Kim and Kangyoon Lee ## Experimental Setup -****Task:**** : A comparison task of four algorithms(FedAvg, FedAvg(Meta), FedMeta(MAML), FedMeta(Meta-SGD)) in the categories of Image Classification and next-word prediction. +**Task:** A comparison task of four algorithms(FedAvg, FedAvg(Meta), FedMeta(MAML), FedMeta(Meta-SGD)) in the categories of Image Classification and next-word prediction. -****Model:**** :This directory implements two models: +**Model:** This directory implements two models: * A two-layer CNN network as used in the FedMeta paper for Femnist (see `models/CNN_Network`). * A StackedLSTM model used in the FedMeta paper for Shakespeare (see `models/StackedLSTM`). **You can see more detail in Apendix.A of the paper** -****Dataset:**** : This baseline includes the FEMNIST dataset and SHAKESPEARE. For data partitioning and sampling per client, we use the Leaf GitHub([LEAF: A Benchmark for Federated Settings](https://github.com/TalwalkarLab/leaf)). The data and client specifications used in this experiment are listed in the table below (Table 1 in the paper). +**Dataset:** This baseline includes the FEMNIST dataset and SHAKESPEARE. For data partitioning and sampling per client, we use the Leaf GitHub([LEAF: A Benchmark for Federated Settings](https://github.com/TalwalkarLab/leaf)). The data and client specifications used in this experiment are listed in the table below (Table 1 in the paper). -**Shakespeare Dataset Issue** : In the FedMeta paper experiment, the Shakespeare dataset had 1126 users. However, due to a current bug, the number of users has decreased to 660 users. Therefore, we have only maintained the total number of data. +**Shakespeare Dataset Issue:** In the FedMeta paper experiment, the Shakespeare dataset had 1126 users. However, due to a current bug, the number of users has decreased to 660 users. Therefore, we have only maintained the total number of data. | Dataset | #Clients | #Samples | #Classes | #Partition Clients | #Partition Dataset | |:-----------:|:--------:|:--------:|:--------:|:---------------------------------------------------------------:|:----------------------:| @@ -46,7 +46,7 @@ dataset: [FEMNIST, SHAKESPEARE] **The original specifications of the Leaf dataset can be found in the Leaf paper(_"LEAF: A Benchmark for Federated Settings"_).** -****Training Hyperparameters:**** : The following table shows the main hyperparameters for this baseline with their default value (i.e. the value used if you run `python main.py algo=? data=?` directly) +**Training Hyperparameters:** The following table shows the main hyperparameters for this baseline with their default value (i.e. the value used if you run `python main.py algo=? data=?` directly) | Algorithm | Dataset | Clients per Round | Number of Rounds | Batch Size | Optimizer | Learning Rate(α, β) | Client Resources | Gradient Step | |:-----------------:|:--------------:|:-----------------:|:----------------:|:----------:|:---------:|:-------------------:|:---------------------------------------:|:-------------:| @@ -73,7 +73,7 @@ poetry shell ## Running the Experiments -****Download Dataset**** : Go [LEAF: A Benchmark for Federated Settings](https://github.com/TalwalkarLab/leaf) and Use the command below! You can download dataset (FEMNIST and SHAKESPEARE). +**Download Dataset** Go [LEAF: A Benchmark for Federated Settings](https://github.com/TalwalkarLab/leaf) and Use the command below! You can download dataset (FEMNIST and SHAKESPEARE). ```bash # clone LEAF repo git clone https://github.com/TalwalkarLab/leaf.git @@ -100,7 +100,7 @@ cd leaf/data/shakespeare More detailed tag information can be found on Leaf GitHub. -****Start experiments**** : +****Start experiments**** ```bash # FedAvg + Femnist Dataset python -m fedmeta.main algo=fedavg data=femnist path=(your leaf dataset path)/leaf/data/femnist/data From e144deae23f906f55f02f4566df2cbf6cdeedfbe Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Thu, 12 Oct 2023 23:33:12 +0900 Subject: [PATCH 126/133] fixed README.md --- baselines/fedmeta/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index a0abaecdd9f7..d8b3e6792d3b 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -73,7 +73,7 @@ poetry shell ## Running the Experiments -**Download Dataset** Go [LEAF: A Benchmark for Federated Settings](https://github.com/TalwalkarLab/leaf) and Use the command below! You can download dataset (FEMNIST and SHAKESPEARE). +**Download Dataset:** Go [LEAF: A Benchmark for Federated Settings](https://github.com/TalwalkarLab/leaf) and Use the command below! You can download dataset (FEMNIST and SHAKESPEARE). ```bash # clone LEAF repo git clone https://github.com/TalwalkarLab/leaf.git From df5fc0d62ebafd3989aedd4b493552b643c05816 Mon Sep 17 00:00:00 2001 From: jafermarq Date: Thu, 12 Oct 2023 15:42:43 +0000 Subject: [PATCH 127/133] formatted --- baselines/fedmeta/fedmeta/client.py | 21 +++--- .../fedmeta/fedmeta/dataset_preparation.py | 2 +- .../fedmeta/fedmeta/fedmeta_client_manager.py | 14 ++-- baselines/fedmeta/fedmeta/main.py | 5 +- baselines/fedmeta/fedmeta/models.py | 73 ++++++++++--------- baselines/fedmeta/fedmeta/strategy.py | 2 +- 6 files changed, 57 insertions(+), 60 deletions(-) diff --git a/baselines/fedmeta/fedmeta/client.py b/baselines/fedmeta/fedmeta/client.py index 01a878ec2a2e..fb09773eebed 100644 --- a/baselines/fedmeta/fedmeta/client.py +++ b/baselines/fedmeta/fedmeta/client.py @@ -50,7 +50,7 @@ def set_parameters(self, parameters: NDArrays) -> None: self.net.load_state_dict(state_dict, strict=True) def fit( # type: ignore - self, parameters: NDArrays, config: Dict[str, Scalar] + self, parameters: NDArrays, config: Dict[str, Scalar] ) -> Tuple[NDArrays, int, Dict]: """Implement distributed fit function for a given client.""" self.set_parameters(parameters) @@ -62,7 +62,7 @@ def fit( # type: ignore ) # FedAvg & FedAvg(Meta) train basic Learning - if algo in ('fedavg', 'fedavg_meta'): + if algo in ("fedavg", "fedavg_meta"): loss = train( self.net, self.trainloaders["sup"][self.cid], @@ -73,7 +73,7 @@ def fit( # type: ignore return self.get_parameters({}), total_len, {"loss": loss} # FedMeta(MAML) & FedMeta(Meta-SGD) train inner and outer loop - if algo in ('fedmeta_maml', 'fedmeta_meta_sgd'): + if algo in ("fedmeta_maml", "fedmeta_meta_sgd"): alpha = config["alpha"] loss, grads = train_meta( # type: ignore self.net, @@ -87,7 +87,7 @@ def fit( # type: ignore raise ValueError("Unsupported algorithm") def evaluate( # type: ignore - self, parameters: NDArrays, config: Dict[str, Scalar] + self, parameters: NDArrays, config: Dict[str, Scalar] ) -> Tuple[float, int, Dict]: """Implement distributed evaluation for a given client.""" self.set_parameters(parameters) @@ -128,12 +128,12 @@ def evaluate( # type: ignore # pylint: disable=too-many-arguments def gen_client_fn( - num_epochs: int, - trainloaders: List[DataLoader], - valloaders: List[DataLoader], - learning_rate: float, - model: DictConfig, - gradient_step: int, + num_epochs: int, + trainloaders: List[DataLoader], + valloaders: List[DataLoader], + learning_rate: float, + model: DictConfig, + gradient_step: int, ) -> Callable[[str], FlowerClient]: """Generate the client function that creates the Flower Clients. @@ -165,7 +165,6 @@ def gen_client_fn( def client_fn(cid: str) -> FlowerClient: """Create a Flower client representing a single organization.""" - # Load model torch.manual_seed(42) torch.cuda.manual_seed_all(42) diff --git a/baselines/fedmeta/fedmeta/dataset_preparation.py b/baselines/fedmeta/fedmeta/dataset_preparation.py index 9c99cddddc5a..c139cdf86d69 100644 --- a/baselines/fedmeta/fedmeta/dataset_preparation.py +++ b/baselines/fedmeta/fedmeta/dataset_preparation.py @@ -167,7 +167,7 @@ def _partition_data( sup_x, qry_x, sup_y, qry_y = support_query_split( all_x, all_y, support_ratio ) - except Exception: # pylint: disable=broad-except + except Exception: # pylint: disable=broad-except continue elif data_type == "shakespeare": diff --git a/baselines/fedmeta/fedmeta/fedmeta_client_manager.py b/baselines/fedmeta/fedmeta/fedmeta_client_manager.py index 1b3a38c5b2d5..098922b92215 100644 --- a/baselines/fedmeta/fedmeta/fedmeta_client_manager.py +++ b/baselines/fedmeta/fedmeta/fedmeta_client_manager.py @@ -28,12 +28,12 @@ def __init__(self, valid_client, **kwargs): # pylint: disable=too-many-arguments def sample( # pylint: disable=arguments-differ - self, - num_clients: int, - min_num_clients: Optional[int] = None, - criterion: Optional[Criterion] = None, - server_round: Optional[int] = None, - step: Optional[str] = None + self, + num_clients: int, + min_num_clients: Optional[int] = None, + criterion: Optional[Criterion] = None, + server_round: Optional[int] = None, + step: Optional[str] = None, ) -> List[ClientProxy]: """Sample a number of Flower ClientProxy instances.""" # Block until at least num_clients are connected. @@ -42,7 +42,7 @@ def sample( # pylint: disable=arguments-differ self.wait_for(min_num_clients) # Sample clients which meet the criterion - if step == 'evaluate': + if step == "evaluate": available_cids = [str(result) for result in range(0, self.valid_client)] else: available_cids = list(self.clients) diff --git a/baselines/fedmeta/fedmeta/main.py b/baselines/fedmeta/fedmeta/main.py index ea00ed1099f1..e43ad94a3089 100644 --- a/baselines/fedmeta/fedmeta/main.py +++ b/baselines/fedmeta/fedmeta/main.py @@ -4,7 +4,6 @@ model is going to be evaluated, etc. At the end, this script saves the results. """ -import os import flwr as fl import hydra @@ -35,9 +34,7 @@ def main(cfg: DictConfig) -> None: print(OmegaConf.to_yaml(cfg)) # partition dataset and get dataloaders - trainloaders, valloaders, _ = load_datasets( - config=cfg.data, path=cfg.path - ) + trainloaders, valloaders, _ = load_datasets(config=cfg.data, path=cfg.path) # prepare function that will be used to spawn each client client_fn = client.gen_client_fn( diff --git a/baselines/fedmeta/fedmeta/models.py b/baselines/fedmeta/fedmeta/models.py index 15cea691de45..f065ae6c372b 100644 --- a/baselines/fedmeta/fedmeta/models.py +++ b/baselines/fedmeta/fedmeta/models.py @@ -95,11 +95,11 @@ def forward(self, x: torch.Tensor) -> torch.Tensor: # pylint: disable=too-many-arguments def train( - net: nn.Module, - trainloader: DataLoader, - device: torch.device, - epochs: int, - learning_rate: float, + net: nn.Module, + trainloader: DataLoader, + device: torch.device, + epochs: int, + learning_rate: float, ) -> Tuple[float]: """Train the network on the training set. @@ -134,11 +134,11 @@ def train( def _train_one_epoch( - net: nn.Module, - trainloader: DataLoader, - device: torch.device, - criterion: torch.nn.CrossEntropyLoss, - optimizer: torch.optim.Adam, + net: nn.Module, + trainloader: DataLoader, + device: torch.device, + criterion: torch.nn.CrossEntropyLoss, + optimizer: torch.optim.Adam, ) -> nn.Module: """Train for one epoch. @@ -177,13 +177,13 @@ def _train_one_epoch( # pylint: disable=too-many-locals def test( - net: nn.Module, - trainloader: DataLoader, - testloader: DataLoader, - device: torch.device, - algo: str, - data: str, - learning_rate: float, + net: nn.Module, + trainloader: DataLoader, + testloader: DataLoader, + device: torch.device, + algo: str, + data: str, + learning_rate: float, ) -> Tuple[float, float]: """Evaluate the network on the entire test set. @@ -252,12 +252,12 @@ def test( def train_meta( - net: nn.Module, - supportloader: DataLoader, - queryloader: DataLoader, - alpha: torch.nn.ParameterList, - device: torch.device, - gradient_step: int, + net: nn.Module, + supportloader: DataLoader, + queryloader: DataLoader, + alpha: torch.nn.ParameterList, + device: torch.device, + gradient_step: int, ) -> Tuple[float, List]: """Train the network on the training set. @@ -290,15 +290,16 @@ def train_meta( ) return loss, grads + # pylint: disable=too-many-locals def _train_meta_one_epoch( - net: nn.Module, - supportloader: DataLoader, - queryloader: DataLoader, - alpha: torch.nn.ParameterList, - criterion: torch.nn.CrossEntropyLoss, - device: torch.device, - gradient_step: int, + net: nn.Module, + supportloader: DataLoader, + queryloader: DataLoader, + alpha: torch.nn.ParameterList, + criterion: torch.nn.CrossEntropyLoss, + device: torch.device, + gradient_step: int, ) -> Tuple[float, List]: """Train for one epoch. @@ -373,12 +374,12 @@ def _train_meta_one_epoch( def test_meta( - net: nn.Module, - supportloader: DataLoader, - queryloader: DataLoader, - alpha: torch.nn.ParameterList, - device: torch.device, - gradient_step: int, + net: nn.Module, + supportloader: DataLoader, + queryloader: DataLoader, + alpha: torch.nn.ParameterList, + device: torch.device, + gradient_step: int, ) -> Tuple[float, float]: """Evaluate the network on the entire test set. diff --git a/baselines/fedmeta/fedmeta/strategy.py b/baselines/fedmeta/fedmeta/strategy.py index d974ede0e119..7947938116e9 100644 --- a/baselines/fedmeta/fedmeta/strategy.py +++ b/baselines/fedmeta/fedmeta/strategy.py @@ -261,7 +261,7 @@ def aggregate_fit( # Gradient Average and Update Parameter for FedMeta(Meta-SGD) elif self.algo == "fedmeta_meta_sgd": - grads_results: List[Tuple[NDArrays, int]] = [ # type: ignore + grads_results: List[Tuple[NDArrays, int]] = [ # type: ignore (fit_res.metrics["grads"], fit_res.num_examples) for _, fit_res in results ] From f52dd48d51a16ab8d667119a56babd08573d9110 Mon Sep 17 00:00:00 2001 From: jafermarq Date: Thu, 12 Oct 2023 15:58:03 +0000 Subject: [PATCH 128/133] attempt at fix --- .../tutorial-series-get-started-with-flower-pytorch.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/tutorial-series-get-started-with-flower-pytorch.ipynb b/doc/source/tutorial-series-get-started-with-flower-pytorch.ipynb index 41c9254e9d69..a43afe33d648 100644 --- a/doc/source/tutorial-series-get-started-with-flower-pytorch.ipynb +++ b/doc/source/tutorial-series-get-started-with-flower-pytorch.ipynb @@ -40,7 +40,7 @@ "metadata": {}, "outputs": [], "source": [ - "!pip install -q flwr[simulation] torch torchvision matplotlib" + "!pip install -q flwr[simulation] torch torchvision matplotlib " ] }, { From e19180854405e4dba65782ac0ac66c1bb4b5be1e Mon Sep 17 00:00:00 2001 From: jafermarq Date: Thu, 12 Oct 2023 15:58:37 +0000 Subject: [PATCH 129/133] fix? --- .../tutorial-series-get-started-with-flower-pytorch.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/tutorial-series-get-started-with-flower-pytorch.ipynb b/doc/source/tutorial-series-get-started-with-flower-pytorch.ipynb index a43afe33d648..41c9254e9d69 100644 --- a/doc/source/tutorial-series-get-started-with-flower-pytorch.ipynb +++ b/doc/source/tutorial-series-get-started-with-flower-pytorch.ipynb @@ -40,7 +40,7 @@ "metadata": {}, "outputs": [], "source": [ - "!pip install -q flwr[simulation] torch torchvision matplotlib " + "!pip install -q flwr[simulation] torch torchvision matplotlib" ] }, { From e3ed392653192c3ccc206cadb6cdfcb935e09b54 Mon Sep 17 00:00:00 2001 From: jafermarq Date: Thu, 12 Oct 2023 16:04:57 +0000 Subject: [PATCH 130/133] changed permissions, does it fix? --- doc/source/tutorial-series-get-started-with-flower-pytorch.ipynb | 0 doc/source/tutorial-series-what-is-federated-learning.ipynb | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 doc/source/tutorial-series-get-started-with-flower-pytorch.ipynb mode change 100644 => 100755 doc/source/tutorial-series-what-is-federated-learning.ipynb diff --git a/doc/source/tutorial-series-get-started-with-flower-pytorch.ipynb b/doc/source/tutorial-series-get-started-with-flower-pytorch.ipynb old mode 100644 new mode 100755 diff --git a/doc/source/tutorial-series-what-is-federated-learning.ipynb b/doc/source/tutorial-series-what-is-federated-learning.ipynb old mode 100644 new mode 100755 From 48d7cb95870421066a65fb99d754dfdc402cf4e3 Mon Sep 17 00:00:00 2001 From: jafermarq Date: Thu, 12 Oct 2023 16:51:20 +0000 Subject: [PATCH 131/133] now fixing pillow to 9.5, minior edit to readme --- baselines/fedmeta/README.md | 3 --- baselines/fedmeta/pyproject.toml | 1 + 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index d8b3e6792d3b..03133e4cbef4 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -77,9 +77,6 @@ poetry shell ```bash # clone LEAF repo git clone https://github.com/TalwalkarLab/leaf.git -# prepare the Leaf GitHub libraries. -pip3 install numpy -pip3 install pillow # navigate to data directory and then the dataset cd leaf/data/femnist diff --git a/baselines/fedmeta/pyproject.toml b/baselines/fedmeta/pyproject.toml index 2f7802d07234..cbaa9bb5d110 100644 --- a/baselines/fedmeta/pyproject.toml +++ b/baselines/fedmeta/pyproject.toml @@ -44,6 +44,7 @@ matplotlib = "3.7.1" scikit-learn = "1.3.1" torch = { url = "https://download.pytorch.org/whl/cu117/torch-2.0.1%2Bcu117-cp310-cp310-linux_x86_64.whl"} torchvision = { url = "https://download.pytorch.org/whl/cu117/torchvision-0.15.2%2Bcu117-cp310-cp310-linux_x86_64.whl"} +pillow = "9.5.0" # needed <10.0.0 for LEAF repo scripts [tool.poetry.dev-dependencies] From 79b4ce3f0bf50fc0b735a78153b3cebfe79737ff Mon Sep 17 00:00:00 2001 From: jafermarq Date: Thu, 12 Oct 2023 23:42:50 +0000 Subject: [PATCH 132/133] in changelog --- doc/source/ref-changelog.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/source/ref-changelog.md b/doc/source/ref-changelog.md index 05ad1a64f1a2..d567d9366c6b 100644 --- a/doc/source/ref-changelog.md +++ b/doc/source/ref-changelog.md @@ -20,6 +20,8 @@ - FedProx ([#2210](https://github.com/adap/flower/pull/2210), [#2286](https://github.com/adap/flower/pull/2286)) + - FedMeta [#2438](https://github.com/adap/flower/pull/2438) + - Baselines Docs ([#2290](https://github.com/adap/flower/pull/2290)) - **Update Flower Examples** ([#2384](https://github.com/adap/flower/pull/2384)), ([#2425](https://github.com/adap/flower/pull/2425)) From e206895d482b9b553b42edf79dfe65c8583ecbec Mon Sep 17 00:00:00 2001 From: jafermarq Date: Mon, 16 Oct 2023 08:31:36 +0000 Subject: [PATCH 133/133] updated readme based on slack discussion --- baselines/fedmeta/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index 03133e4cbef4..a1ed982f8bf2 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -20,7 +20,7 @@ dataset: [FEMNIST, SHAKESPEARE] **Datasets:** FEMNIST and SHAKESPEARE from Leaf Federated Learning Dataset -**Hardware Setup:** These experiments were run on a machine with 16 CPU threads and 1 GPU(GeForce RTX 2080 Ti). **However, the FedMeta experiment using the Shakespeare dataset required more computing power (more than 4 GPUs).** Out of Memory errors may occur with some clients, but federated learning can continue to operate. +**Hardware Setup:** These experiments were run on a machine with 16 CPU threads and 1 GPU(GeForce RTX 2080 Ti). **FedMeta experiment using the Shakespeare dataset required more computing power.** Out of Memory errors may occur with some clients, but federated learning can continue to operate. On a GPU with more VRAM (A6000 with 48GB) no clients failed. **Contributors:** Jinsoo Kim and Kangyoon Lee

    9{&Q#~r6(AWgm1BPaX_%Qq1$^k=Vs3ts zy0ymZfh@nwU2aqD1Qf(gyHWoIF6|Dg)qhzD8Q`-{+Cklt&R=zXc4bn)ojms`r21SO zs45bZyeOp-OIyla%ODtUXQy|uQ|1{!f3i=vTwLO1pv;?}>vyDm>oO729Z(dMdT+v< zsq3$iCV)I-80y7ojC-;2cjUMgB8oqBzrQTKK0mzw(>7u8BTq%edtYNN#(tLIm*k8x zb?%CXS2m)7-1^9#SphvwlNt5;w+Iu{m4LT{O|B=a^2e1L&df}gM0+Yblj4B_wR*joDTG_qQdU;iTMZa!LQcJA3gHA+)7RXPNvE1IK~!bKXa~NsCQ} z)`o$cW`)K~(`e_)e_ko&bs$7USMKkMk;XD3%DOF|}ah#(g zqM!7H0OV}cay>k*gMMG;gC&isD2oMrg9!43{i=8aavgrPd2%y1U^Q{qTE%xUv#y_w z^tV=c%>0rJjoEEIqz($&2R_tq_=Zir?p!iT6rltP4TY1>a*$^-+L&P)Xr7>=;3-Qv zX)bOw^ZnoR5I>>Ovaat;j0>;LTq8hY^$0Z`>WT`6yhzmVjo;0KY`z51eF@|myEPXI z{re-@-j-pP{)_l~+GZJk*_B?4$h|&gXJ_}4VKU=#QT*vm4w8YS8vwi|_x10bCzNdt ziLQZFeVtln(NAenXcm6~h0Aqox4NSn=TBrDT^^@D=wgq?-g1yO8*NWmsl$4mpPqgj zJU-NdvnBjH&uEzqarY~o6q{KZQ=FZv}8OW5Y4GxBg-;J-)9C zyxp~HTPcGUVVcy>JcsnyKe4liY>8qJmMyVd8x~|JF_mE0t^ZNV0{uimYIr=fZXy9^oPkWXa66wASkr4t`Dl>a6V`0WNm?e=th#y*viL!$M`*kD)}X%h+iR>M3u zw{3!`CVw=YW=gx_*f5iA5~b)7Baa`mACh60=bPkGl*O6MoF}+;%=4LynVK>W7|eh} zEkB+9_UbxwZVF|+nlkG;6i*Xvjlgg^POqR@#w?L?O(92|pdAxSQl`}KEF}WzxzH(* z|2)KFNjjKmTOj)1imQ^1SZ>r2gQVYuCDIokD4ECW*zU{u=pwpGPXN9x3T~Ffx>3oB zR&=BEjn}B?mm2b4me9H|H}YpRQbaNu0&ar=`IXTRUg9PyjekkOSsQi6A8tln9mXR* zmx*~bl|_W6U?Vzp{8;s;uM@X!e%V^`+!-7rk9rzZU$H?GS!zGx!w;@Te<{@-=RLj; z#SunBsIR((mbyD{RD=C`YlR|?_)K=0NBqBzXIuA+t5Wf!>CuUntW-aXk$#5GIPbkY z8jLvu@o)d3fWW~{pWJt01+T;Es#Rqk(exw=@@avBf(H*}j$I1WG=ct)r}K5-tpyI` zg;l%x?E&>GT3WvXC306Nnl5JFpRXQL|2q<2!~`5SRv=3KXkTDdl7^Cmgb_%n%316N zH#~#bem-Hp<(e^XuMKcVb2i0|THG|i3b^=#R%%uWc)vg=$%Xrkgn2kSX=o#3fR~UX z`wiU|LDj(77l-rjHsfeNPN0x zMo9oyczA^U4KXyM&!DhDePJgzdbmqhdvBV?jnsHKymD~(1AoR{h|U%h#gO?m@tNUs zeH7~peQM{j$Wc}QH&aDn=Zf}o#nCIFdtkjW+CaB7NqPk%-t1LQ2h%|>NI~*jVMrIx zZk~2KY^I>iTUaLEr-B}!N#B1qjyiK zbi+;h%g+V+>&Mna?w-##Ddn5A9OMK=_jcC(sW>icccp1$gCE~)ly{DxyekNI!xXAv z0Lzg$9e~KFggxUnEmzp~&J=T!@NFWIlElK4=bJqpivkrCJvQ33sDV$Sm0JNcP+buG~5%D(T}z%aF}i#WO8>Lepvkm8D0w90xr7g(D|Ta;Q@hZInNkH(8aP;FYxn z`3T9Au@e9Z6#5nNmHHRIVC|G9;-*jhEUB6GYBT%)-p$<*Ak}V`PRnVMMhdJ`Z_%ds z*ryMPEQg(vW^JH!+{wNx`;tUTw%2Jhm??copR*jR{2lgkrs#s-2q$b^PoH;i-~`%l zj#@Thqb_9d`sJY%hv;y#oBT${Xi5}jXMqZOks?{x_^2PW34#Bpglm01gJV0sc42Tyky2eFy z1R7v+$0e-z!sBUe1ul4MBzzgavEyo!{>Vf;&y&2NY)Z~2*@mGYU*<&O0T(|t`u0I- zkeE|tOy(hY-?B`a<~F^8KLj6+=QLY(9$!iFbvWrfWMv8_UF#oe>sw^yIi`{iLTrd8 zlw=Ft&^IxmStNm(M(I?ZvP0ce*?i`e2D|YCU*eUQmBdlGM+ogGd@MwWY9YK8TL48Ra@VSTi^ne>vb4&x`z~^i$h@#J`9ZUKcrN60p zGj}3+^=sbIYdV`!0>-2ptH2ms|J5Y_?Jz9!&6NA#daHj-7c8 z<{(SNz!32U-%Q0yex{_7Bbsw24Nohs(88V4A46>Ax7(22Amn!Voswfh;r&0Zd>}m| zE#+vn%}MembZ`#;xQ*C~CX&(%0ftkOzgams@wPEJln8C-{gES~DaF^-{BZ#KeVykh zMJgzM6Cv&metra|*Vt~pC&B@q;|=`}#KX-*@~{ zmGSJg5y0X=63L_S7Y{-f=4l7lzLb7Spt$n0U@T+Ob8^64EP$CV3~kjDrU+!12Vfg-A^Zldyqm^j$+&}Mtxp}{oNEfi>w;y~} zUY`mKzVMs>nEc`sx2)9u;faY4=acx@P zr5j}(klQ*;onu@3I|BZ2VOc%HBn(TW!eHNCxRSOU-wnoo?FV3iAX_-cbY% zXL#xEjh%h=J09fuztP1Q4g{N9c@ET%_RKos18xPv(CKli=oR$6eeUsFV&SyAW72Xk zt1jrICYpTOwpM|KHoo4$^7{;0`6x;ipZz3_DEu@Qiya>vids-m*gd}PL3+F=_V3yq z^W1mKkI8j2nnrF8M~XIfo3v$NjPxr9Yq3BA`fbzGA0V$3{0kCY$qa3)vX~PuqnGGk*J^N zWcv39Ja!%cLq$o*K9s=_A8-o#9xuZl6gZ2+d%r#VZMkV6d$U$YMAWfcY}m&f&mjm8 z-#BgVY`IfEWfk!My8G&&D!b_21BXURx{(qQ1QqF&QV@X;q#L9|x(=xlQX(Op3aE59 zhb}4UZVqthL+9Q2ee;_;b7$`V_cFuGI|ttPynC&+*M8R8Yd=dJCE!JD=ytCVT>*N} zEt3-dos6%z&O@CfYib$dQ3x3$!u+WzKseirLv+8{vc1-I1fL(!#fSMHsfeb3?cr*4 zaX%|R&lop16=*(=jLY;IoR3}WlmN(l?s$L*I6ZiEMc?xUPE zRvd{xWOJ9W3%xNq6 zYQGI;v^*?{c-_BUnU&oacwzuylyYxM5YvtF8bcfGnVu2+CWBi8FYS4{sz$f89Ff)o zcKv1In`M|qBGX~$u=5{{df{DDwg;KEL;|bQMFu0hZL@MjFh|4CyK>PF*QDGH&|ntO zV;I*7FP00*ro9f{ds$@xha8NV0BC`(oWqn%6llW>M8-dOeGT8ogim3IM`)eycrrV$ zfsU0+jv}sjfJolyLn8M*B0p%`1>Ms~dZ_vD>isb*Oqtv8DYJUCc=FJkj4cV0dL2`Q zAVp(6M59r9CaRqsb2e18`r=s z6+o^x!PS3ef4~U`F&+9bjSyzF)#)C0PUmQ~Zm4+I*g7B4PKZ$p9u+Ul2oaNXbEqdjoGg>%^;d;(-e9WVokMPEJ2xJ)L=6tsJQWptDd@WS zZ2%vK*NggTbW7xNJa-3wT|NBOH0D;)9U1&3+aqgd>-JtA+H}od<}ly&&nO@47qGG= zPX9K6`NaTAdtAun7J&%=9cUI;n^z5_zVe}-N ztkCLHTpvw_h)s&{Dy&JS+55cQ{^NZ`)IuHZ^$FwTtFF(UTJvpxV=%HR;l+x8HmlfN zU8_9t`9ykMQFqk}PX)X`c!P8qodOp9b*v2Gkv+i5nk`AJjBXsY=48 zwTzqE?s+pLE);;=&f~9o_aNCs``xmVbL0#8VhWABPvM;mxZxiXUwLB)X;o8uY(8MJ zeY)344{xW3JiU)oHc`bQ4{1yf8XX^rK|Q;^be>Ix-~7Z2=7{8c#si$hSysLIvD z+7gIAzun3kb-t!SN)oG)Rxc9XJ-o z8@{!@Pc!?E2hFLqLym+M2_91!NR2(fc~bwLqe?5DlVtcV4yQxfz#f?sk0GtBejOl* z&97~!``{_gYRr{tNkjlGKwnM4GPaCfZc8sy4r8}Xu8GgfKUu(X!_ zU854l5fRXq>Wy2ejVb40y1?DTpy5jo`N#CyRkC1eEkX4I-5OSgVjHBT6nsOmT;Lwl4W&V-DJYxJ`f4(aI-gXFsf& z7iHKPl;b`qg6-WLCG!j3p|X?4i|~Qe?uYJ#^idYW*@D z)j{dY))m?;@&Rw*G&Z>IIC;CHkaCt&RcgH2QS!uSA>nf_6(zPuz(43zyQ8@rKd2Vp zw)-%1{YN^u-fq-;Y9dlH)QZmo0lS6s4^e8%sKT{3Tqn`{ z*B9!S{Fa}=c~8@Rs>gv0H`mh>IM9rl_1yFvml)OTaByq2F65Rl{9{%%36=5#Ow8sE zT!SI&Ew56095I8_C?{*pSw+>7Y-j(E1pd86=zTfXKbU0&a-IIn$nwrY=%luPm5eRh7?ZO8OQEPwV0Q}aKE$&C)^jY%(k_HGak3uWRr>_J-3d0l z#{m9O3I2T)Zj|uSUlrah41X+I|J#ZJMp^St3*R7Z5pul&&5tj4=@%yWrkH}OH7w|B zSTxbDo6OI8xr6K~xXBpGy2IrCGl8m>WbcU0_*mlJm#cou(&3+mhUrxrA(x>wt-Hb- z;cm*53w}4*eE5whdP7*dau~W3QiH}x`8B_;@msS5HEgPUG#paR#YK1=shKxo5#MDs za-ZD$^^YcrhNdDO*Y{m?Nn zC0Cay$qvS%=gS)g^SENlm_UGD& zw$vz<&>KnGPmNQyWbN^?rL?in#FZ&OEuD(m57;hz|H@H%dWkx}yuLcJ0<~xZ4y(re z7H4PWe$CBt0a)uKOT)Pjo_7Zgu&@Ns)pen8bCbWH8XUq<&MtIz{0m*iMzewozn_D~ z4g-jYHMu8kDW;N-RH7I_MflfG2mPr}@j=(`2%&P=Q__;+C{I>YB6q-t=ZHIAfs zCbioAa?#qjkCmCUul*gfr(W7yGZt$F5~HdYNNmZwd(JO67(i)})%m3y^60ryc%k`L zc5DR5K-PQ@SWPLIsBv8}?REZ0nxbo%Eni}^_vfBheKBT&CdKJX6U_bdVb(7+BT$1P z!mXQEhUO@A>n5y`O3MAWsbgP37NmHD?;y0V598Pmm+vlT_fL&D5yi_rD0yV)?3xD_ z5xZ28R<4zMpJfWeg9XkNx>8U^o3gKPH(PjI#%ca>!W=!Mr& z=D!Ceuu+n8b(B;>U-Bo{`k&#?6*WGQ^YE6JU$lgW?weS-)3?9ztFhwdV9(?w= zhuy4`caW8gJC{JEpk#E2%vG)%PSUY`?sQ%bYe**h>#CkRE<5H@2R(emI-K1^TK53U zA$V+$2p1mHfJ z{s%;8s!E4f#U{vK@Tma*d9sDDf$q9E67Ftn!xD7RK-ZG71JF4M*N9yUezsIr)UMN@ ztp5)6e^vLwtWWhcu(#rU!1fKaGI9tZcFqVdXW^OhXr`r*`{))%p^C4c_L=y~c~3*H z&Mgts;Uk`0b8-^rNtb>#F~=Lcki|%4M1kDHW^=tB$voE1iOGfsA_kN^o7*8*u!!x# z-q@iq8vV(R$7vqV(iha}RM;_ktknl_>`~fM0tICOhAu z9d_Kj^>AU9MZwXX2qW%NiUa66nUJ5)u2M(ipENBP`et_OKzhQV2ZEZRT`$Dim&*ngC_v?{ zlE%MlAc!f+$QiJHM#S=jA@3aaVJkRE_cxRGAty!si3JWwF0%sK2K)sd`DDnbnUak^ zh0oMypT7{ZlWLO~n}I_i!i56j^QWw0LF#A;~zAQ0m{JjhhpoTX)JcwJ|l3*33e8$^&yux@~=o$sR5y!Bt z#`j>{AxAqntMH$L7@s+nK6^+2k8zIfD$6a#&}79ImQ4Ev(&ozdBy{GQGi|j2FJGP& z)ZrJ!Js9E%0vn#t+KX?}m`9W`){jlJ8Eq&bVf{9>QnBf!>6ri0*%&9Z+Tn+2)NBh0 z5k$5JP0Y!g5)x&*0JrpFz+&38$Vd`fx*F46v%5phJkMX|taiHt%|Z6*`9CMzAgWww z)XPw&P&r1+xCW5YK|P!djvKZW|Sobs?q7w_f-cN~>u)ap?LmVy(rpQ`ext=Y%Z_5lWb>&%YI=n3Z1wv{z!IB`LI@b zgVu={7EO+*f7^8VCt(w?fp%_V#%AftDc}jc!a&d4TB@I}QH$C;KT{Q10g-_IF7?TL zYqBuo!OAz``N})&E<}tuoqtj+(k1-mAs$6&48mM~J{QOETt?{heTY0_6XncwWPf`2NBMKHnKu-g)^W(bk%EQ!|#$oUxXd_~U^s`1gOI ziz_$pjW>}EuIQGEp!UAuyz7oEcPOA75{C6!$XOn>Ov5qbu(Na%5Mdj1Y$E6+dW;55 zRPbKIC~&@o#0AdbL7kiqCG<5-+YN7{S!usLrzB4S5k;%tgxWG-f{lpTg=>3!^-2-i ztr;td`U->L+;&=m=x}Lx=ovg-(;sjib!qnNp7J_7lv@iGH&TXPm6%2#OK^6LAk8so z-B(}V(~E=$x~GeM1lyqx>2`heKcl|}-Ew2@cN3lN8Q-mL)+3p=QG%E&EIzO@z1(Y! zm2WsPU1%CoKRuaO1YZ$wH5}mlaHFj8idFW)f#g4*Q~>26Za{xo9k-K%xEV`_xlW%f zV-)4eq6kagIuDpiPF@@#j^;6Sc)t0VE>$m*Eu^Vugp0k>Erm{6$v%r~lGoGBNc$+j z4T;?(EWe^%Z>>?{OTs&qjs9$Y+DY9`hGJa9KlE_=h((+xzQz|3<{dC{6OQuG6{3dj zq6_muK{-sN0dw{gnn7Ja>aNNn_51HLX(ARB_4h7oh*vJJl&{dfIc|Fo6r%Y?vJ$;j zg7z2OufhfL_K8BzrBD-=-_y>n(9)q1Vk#cly=UBUlCKhwzX-Bx`2@x5Zjkl%0DsqV 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 WhEm{XMk)ySc`5r^rtrB@;Qs;?dG&n& diff --git a/baselines/fedmeta/_static/shakespeare_result_graph.png b/baselines/fedmeta/_static/shakespeare_result_graph.png index b77a4cb1dc4a1bfee1543bbfe7bf202d6a74816d..f23f529adf321eb44095fa155c3d6b3cf1678014 100644 GIT binary patch literal 123180 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 Date: Sat, 7 Oct 2023 14:23:15 +0900 Subject: [PATCH 113/133] update utill.py - add grid line --- baselines/fedmeta/fedmeta/utils.py | 49 +++++++++--------------------- 1 file changed, 15 insertions(+), 34 deletions(-) diff --git a/baselines/fedmeta/fedmeta/utils.py b/baselines/fedmeta/fedmeta/utils.py index 592f1aae3742..0da04e826d95 100644 --- a/baselines/fedmeta/fedmeta/utils.py +++ b/baselines/fedmeta/fedmeta/utils.py @@ -117,10 +117,10 @@ def plot_from_pkl(directory="."): """ color_mapping = { - "fedavg.pkl": "green", - "fedavg_meta.pkl": "blue", - "fedmeta_maml.pkl": "orange", - "fedmeta_meta_sgd.pkl": "red", + "fedavg.pkl": "#66CC00", + "fedavg_meta.pkl": "#3333CC", + "fedmeta_maml.pkl": "#FFCC00", + "fedmeta_meta_sgd.pkl": "#CC0000", } pkl_files = [f for f in os.listdir(directory) if f.endswith('.pkl')] @@ -132,47 +132,28 @@ def plot_from_pkl(directory="."): data = pickle.load(f) all_data[file] = data - # plt.figure(figsize=(14, 6)) - # - # # Acc graph - # plt.subplot(1, 2, 1) - # for file, data in all_data.items(): - # accuracies = [acc for _, acc in data["accuracy"]['accuracy']] - # legend_ = file[:-4] if file.endswith('.pkl') else file - # plt.plot(accuracies, label=legend_, color=color_mapping.get(file, "black")) - # plt.title("Accuracy") - # plt.legend() - # - # # Loss graph - # plt.subplot(1, 2, 2) - # for file, data in all_data.items(): - # loss = [loss for _, loss in data["loss"]] - # legend_ = file[:-4] if file.endswith('.pkl') else file - # plt.plot(loss, label=legend_, color=color_mapping.get(file, "black")) - # plt.title("Loss") - # plt.legend() - # - # plt.tight_layout() - - plt.figure(figsize=(7, 12)) # figsize 변경 + plt.figure(figsize=(7, 12)) # Acc graph - plt.subplot(2, 1, 1) # 변경: 첫 번째 인자를 2로, 두 번째 인자를 1로 설정 - for file, data in all_data.items(): + plt.subplot(2, 1, 1) + for file in sorted(all_data.keys()): + data = all_data[file] accuracies = [acc for _, acc in data["accuracy"]['accuracy']] legend_ = file[:-4] if file.endswith('.pkl') else file - plt.plot(accuracies, label=legend_, color=color_mapping.get(file, "black")) + plt.plot(accuracies, label=legend_, color=color_mapping.get(file, "black"), linewidth=3) plt.title("Accuracy") + plt.grid(True) plt.legend() - # Loss graph - plt.subplot(2, 1, 2) # 변경: 첫 번째 인자를 2로, 두 번째 인자를 1로 설정 - for file, data in all_data.items(): + plt.subplot(2, 1, 2) + for file in sorted(all_data.keys()): + data = all_data[file] loss = [loss for _, loss in data["loss"]] legend_ = file[:-4] if file.endswith('.pkl') else file - plt.plot(loss, label=legend_, color=color_mapping.get(file, "black")) + plt.plot(loss, label=legend_, color=color_mapping.get(file, "black"), linewidth=3) plt.title("Loss") plt.legend() + plt.grid(True) plt.tight_layout() From 3ccb9260780b843efa4e0bc9ff89aef6c6b7fdf2 Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Mon, 9 Oct 2023 23:05:08 +0900 Subject: [PATCH 114/133] Fixed code for "./dev/format-baseline.sh fedmeta" and "./dev/test-baseline.sh fedmeta" --- baselines/fedmeta/fedmeta/client.py | 119 +++++---- .../fedmeta/fedmeta/conf/data/femnist.yaml | 2 +- baselines/fedmeta/fedmeta/dataset.py | 251 ++++++++++++------ .../fedmeta/fedmeta/dataset_preparation.py | 130 +++++---- .../fedmeta/fedmeta/fedmeta_client_manager.py | 74 +++--- baselines/fedmeta/fedmeta/main.py | 27 +- baselines/fedmeta/fedmeta/models.py | 202 +++++++------- baselines/fedmeta/fedmeta/server.py | 1 + baselines/fedmeta/fedmeta/strategy.py | 167 ++++++------ baselines/fedmeta/fedmeta/utils.py | 97 ++++--- 10 files changed, 571 insertions(+), 499 deletions(-) diff --git a/baselines/fedmeta/fedmeta/client.py b/baselines/fedmeta/fedmeta/client.py index 806583665d42..bd77e04b6a72 100644 --- a/baselines/fedmeta/fedmeta/client.py +++ b/baselines/fedmeta/fedmeta/client.py @@ -1,35 +1,35 @@ -"""Define your client class and a function to construct such clients. -""" +"""Define your client class and a function to construct such clients.""" from collections import OrderedDict from typing import Callable, Dict, List, Tuple -from omegaconf import DictConfig -from hydra.utils import instantiate import flwr as fl -from flwr.common.typing import NDArrays, Scalar - import torch import torch.nn +from flwr.common.typing import NDArrays, Scalar +from hydra.utils import instantiate +from omegaconf import DictConfig from torch.utils.data import DataLoader -from fedmeta.models import train, test, train_meta, test_meta +from fedmeta.models import test, test_meta, train, train_meta + +# pylint: disable=too-many-instance-attributes +class FlowerClient(fl.client.NumPyClient): + """Standard Flower client for Local training.""" -class FlowerClient( - fl.client.NumPyClient -): + # pylint: disable=too-many-arguments def __init__( - self, - net: torch.nn.Module, - trainloaders: DataLoader, - valloaders: DataLoader, - cid: str, - device: torch.device, - num_epochs: int, - learning_rate: float, - gradient_step: int - ) -> object: + self, + net: torch.nn.Module, + trainloaders: DataLoader, + valloaders: DataLoader, + cid: str, + device: torch.device, + num_epochs: int, + learning_rate: float, + gradient_step: int, + ): self.net = net self.trainloaders = trainloaders self.valloaders = valloaders @@ -40,96 +40,102 @@ def __init__( self.gradient_step = gradient_step def get_parameters(self, config: Dict[str, Scalar]) -> NDArrays: - """Returns the parameters of the current net.""" + """Return the parameters of the current net.""" return [val.cpu().numpy() for _, val in self.net.state_dict().items()] def set_parameters(self, parameters: NDArrays) -> None: - """Changes the parameters of the model using the given ones.""" + """Change the parameters of the model using the given ones.""" params_dict = zip(self.net.state_dict().keys(), parameters) state_dict = OrderedDict({k: torch.Tensor(v) for k, v in params_dict}) self.net.load_state_dict(state_dict, strict=True) - def fit( - self, parameters: NDArrays, config: Dict[str, Scalar] + def fit( # type: ignore + self, parameters: NDArrays, config: Dict[str, Scalar] ) -> Tuple[NDArrays, int, Dict]: - """Implements distributed fit function for a given client.""" + """Implement distributed fit function for a given client.""" self.set_parameters(parameters) algo = config["algo"] # Total number of data for Weighted Avg and Grad - total_len = len(self.trainloaders['qry'][self.cid].dataset) + len(self.trainloaders['sup'][self.cid].dataset) + total_len = len(self.trainloaders["qry"][self.cid].dataset) + len( + self.trainloaders["sup"][self.cid].dataset + ) # FedAvg & FedAvg(Meta) train basic Learning - if algo == 'fedavg' or algo == 'fedavg_meta': + if algo in ('fedavg', 'fedavg_meta'): loss = train( self.net, - self.trainloaders['sup'][self.cid], - self.trainloaders['qry'][self.cid], + self.trainloaders["sup"][self.cid], self.device, epochs=self.num_epochs, - learning_rate=self.learning_rate + learning_rate=self.learning_rate, ) return self.get_parameters({}), total_len, {"loss": loss} # FedMeta(MAML) & FedMeta(Meta-SGD) train inner and outer loop - elif algo == 'fedmeta_maml' or algo == 'fedmeta_meta_sgd': + if algo in ('fedmeta_maml', 'fedmeta_meta_sgd'): alpha = config["alpha"] - loss, grads = train_meta( + loss, grads = train_meta( # type: ignore self.net, - self.trainloaders['sup'][self.cid], - self.trainloaders['qry'][self.cid], + self.trainloaders["sup"][self.cid], + self.trainloaders["qry"][self.cid], alpha, self.device, self.gradient_step, ) return self.get_parameters({}), total_len, {"loss": loss, "grads": grads} + raise ValueError("Unsupported algorithm") - def evaluate( - self, parameters: NDArrays, config: Dict[str, Scalar] + def evaluate( # type: ignore + self, parameters: NDArrays, config: Dict[str, Scalar] ) -> Tuple[float, int, Dict]: - """Implements distributed evaluation for a given client.""" + """Implement distributed evaluation for a given client.""" self.set_parameters(parameters) + algo = config["algo"] # Total number of data for Weighted Avg and Grad - total_len = len(self.valloaders['qry'][self.cid].dataset) + len(self.valloaders['sup'][self.cid].dataset) + total_len = len(self.valloaders["qry"][self.cid].dataset) + len( + self.valloaders["sup"][self.cid].dataset + ) # FedAvg & FedAvg(Meta) train basic Learning - if config["algo"] == 'fedavg' or config["algo"] == 'fedavg_meta': + if algo in ("fedavg", "fedavg_meta"): loss, accuracy = test( self.net, - self.valloaders['sup'][self.cid], - self.valloaders['qry'][self.cid], + self.valloaders["sup"][self.cid], + self.valloaders["qry"][self.cid], self.device, - config["algo"], - config["data"], + algo=str(config["algo"]), + data=str(config["data"]), learning_rate=self.learning_rate, ) return float(loss), total_len, {"correct": accuracy, "loss": loss} # FedMeta(MAML) & FedMeta(Meta-SGD) train inner and outer loop - elif config["algo"] == 'fedmeta_maml' or config["algo"] == 'fedmeta_meta_sgd': + if algo in ("fedmeta_maml", "fedmeta_meta_sgd"): alpha = config["alpha"] loss, accuracy = test_meta( self.net, - self.valloaders['sup'][self.cid], - self.valloaders['qry'][self.cid], + self.valloaders["sup"][self.cid], + self.valloaders["qry"][self.cid], alpha, self.device, self.gradient_step, ) return float(loss), total_len, {"correct": float(accuracy), "loss": loss} + raise ValueError("Unsupported algorithm") +# pylint: disable=too-many-arguments def gen_client_fn( - num_epochs: int, - trainloaders: List[DataLoader], - valloaders: List[DataLoader], - learning_rate: float, - model: DictConfig, - gradient_step: int, + num_epochs: int, + trainloaders: List[DataLoader], + valloaders: List[DataLoader], + learning_rate: float, + model: DictConfig, + gradient_step: int, ) -> Callable[[str], FlowerClient]: - - """Generates the client function that creates the Flower Clients. + """Generate the client function that creates the Flower Clients. Parameters ---------- @@ -159,8 +165,7 @@ def gen_client_fn( def client_fn(cid: str) -> FlowerClient: """Create a Flower client representing a single organization.""" - - print(f'cid : {cid}') + print(f"cid : {cid}") # Load model torch.manual_seed(42) @@ -176,7 +181,7 @@ def client_fn(cid: str) -> FlowerClient: device, num_epochs, learning_rate, - gradient_step + gradient_step, ) return client_fn diff --git a/baselines/fedmeta/fedmeta/conf/data/femnist.yaml b/baselines/fedmeta/fedmeta/conf/data/femnist.yaml index d43f8dabb43f..7f24eed1a951 100644 --- a/baselines/fedmeta/fedmeta/conf/data/femnist.yaml +++ b/baselines/fedmeta/fedmeta/conf/data/femnist.yaml @@ -4,7 +4,7 @@ # a similar configuration structure and hence be easy to customise) model: - _target_: fedmeta.models.CNN_network # model config + _target_: fedmeta.models.FemnistNetwork # model config client_resources: num_cpus: 4 diff --git a/baselines/fedmeta/fedmeta/dataset.py b/baselines/fedmeta/fedmeta/dataset.py index db11e2324f09..25ff5201bfdb 100644 --- a/baselines/fedmeta/fedmeta/dataset.py +++ b/baselines/fedmeta/fedmeta/dataset.py @@ -9,145 +9,226 @@ defined here of course. """ -from omegaconf import DictConfig -from typing import Tuple +from typing import Dict, List, Tuple import numpy as np import torch import torchvision.transforms as transforms +from omegaconf import DictConfig from torch.utils.data import DataLoader, Dataset -from fedmeta.dataset_preparation import _partition_data, split_train_validation_test_clients -from fedmeta.utils import word_to_indices, letter_to_vec +from fedmeta.dataset_preparation import ( + _partition_data, + split_train_validation_test_clients, +) +from fedmeta.utils import letter_to_vec, word_to_indices class ShakespeareDataset(Dataset): - def __init__(self, data): - """ - [LEAF: A Benchmark for Federated Settings](https://github.com/TalwalkarLab/leaf) + """ + [LEAF: A Benchmark for Federated Settings](https://github.com/TalwalkarLab/leaf). - We imported the preprocessing method for the Shakespeare dataset from GitHub. + We imported the preprocessing method for the Shakespeare dataset from GitHub. - word_to_indices : returns a list of character indices - sentences_to_indices : returns one-hot vector with given size and value 1 at given index - letter_to_vec : returns one-hot representation of given letter + word_to_indices : returns a list of character indices + sentences_to_indices: converts an index to a one-hot vector of a given size. + letter_to_vec : returns one-hot representation of given letter - """ - sentence, label = data['x'], data['y'] + """ + + def __init__(self, data): + sentence, label = data["x"], data["y"] sentences_to_indices = [word_to_indices(word) for word in sentence] sentences_to_indices = np.array(sentences_to_indices) self.sentences_to_indices = np.array(sentences_to_indices, dtype=np.int64) - self.labels = np.array([letter_to_vec(letter) for letter in label], dtype=np.int64) + self.labels = np.array( + [letter_to_vec(letter) for letter in label], dtype=np.int64 + ) def __len__(self): + """Return the number of labels present in the dataset. + + Returns + ------- + int: The total number of labels. + """ return len(self.labels) def __getitem__(self, index): + """Retrieve the data and its corresponding label at a given index. + + Args: + index (int): The index of the data item to fetch. + + Returns + ------- + tuple: (data tensor, label tensor) + """ data, target = self.sentences_to_indices[index], self.labels[index] return torch.tensor(data), torch.tensor(target) class FemnistDataset(Dataset): - def __init__(self, dataset, transform): - """ - Using FemnistDataset for CNN_network() + """ + [LEAF: A Benchmark for Federated Settings](https://github.com/TalwalkarLab/leaf). - """ - self.x = dataset['x'] - self.y = dataset['y'] + We imported the preprocessing method for the Femnist dataset from GitHub. + """ + + def __init__(self, dataset, transform): + self.x = dataset["x"] + self.y = dataset["y"] self.transform = transform def __getitem__(self, index): - input_data = np.array(self.x[index]).reshape(28, 28, 1) + """Retrieve the input data and its corresponding label at a given index. + + Args: + index (int): The index of the data item to fetch. + + Returns + ------- + tuple: + - input_data (torch.Tensor): Reshaped and optionally transformed data. + - target_data (int or torch.Tensor): Label for the input data. + """ + input_data = np.array(self.x[index]).reshape(28, 28) if self.transform: input_data = self.transform(input_data) target_data = self.y[index] return input_data.to(torch.float32), target_data def __len__(self): + """Return the number of labels present in the dataset. + + Returns + ------- + int: The total number of labels. + """ return len(self.y) def load_datasets( - config: DictConfig, - path: str, + config: DictConfig, + path: str, ) -> Tuple[DataLoader, DataLoader, DataLoader]: + """Create the dataloaders to be fed into the model. + + Parameters + ---------- + config: DictConfig + data: float + Used data type + batch_size : int + The size of the batches to be fed into the model, + by default 10 + support_ratio : float + The ratio of Support set for each client.(between 0 and 1) + by default 0.2 + path : str + The path where the leaf dataset was downloaded + + Returns + ------- + Tuple[DataLoader, DataLoader, DataLoader] """ - Creates the dataloaders to be fed into the model. - - Parameters - ---------- - config: DictConfig - Parameterises the dataset partitioning process - batch_size : int - The size of the batches to be fed into the model, - by default 10 - support_ratio : float - The ratio of Support set for each client.(between 0 and 1) - by default 0.2 - path : str - The path where the leaf dataset was downloaded - - Returns - ------- - Tuple[DataLoader, DataLoader, DataLoader] - The DataLoader for training, the DataLoader for validation, the DataLoader for testing. - - """ - dataset = _partition_data( - data_type=config.data, - dir_path=path, - support_ratio=config.support_ratio + data_type=config.data, dir_path=path, support_ratio=config.support_ratio ) # Client list : 0.8, 0.1, 0.1 - clients_list = split_train_validation_test_clients( - dataset[0]['users'] - ) + clients_list = split_train_validation_test_clients(dataset[0]["users"]) - trainloaders = {'sup': [], 'qry': []} - valloaders = {'sup': [], 'qry': []} - testloaders = {'sup': [], 'qry': []} + trainloaders: Dict[str, List[DataLoader]] = {"sup": [], "qry": []} + valloaders: Dict[str, List[DataLoader]] = {"sup": [], "qry": []} + testloaders: Dict[str, List[DataLoader]] = {"sup": [], "qry": []} data_type = config.data - if data_type == 'femnist': + if data_type == "femnist": transform = transforms.Compose([transforms.ToTensor()]) for user in clients_list[0]: - trainloaders['sup'].append( - DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=config.batch_size, - shuffle=True)) - trainloaders['qry'].append( - DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=config.batch_size)) + trainloaders["sup"].append( + DataLoader( + FemnistDataset(dataset[0]["user_data"][user], transform), + batch_size=config.batch_size, + shuffle=True, + ) + ) + trainloaders["qry"].append( + DataLoader( + FemnistDataset(dataset[1]["user_data"][user], transform), + batch_size=config.batch_size, + ) + ) for user in clients_list[1]: - valloaders['sup'].append( - DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=config.batch_size)) - valloaders['qry'].append( - DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=config.batch_size)) + valloaders["sup"].append( + DataLoader( + FemnistDataset(dataset[0]["user_data"][user], transform), + batch_size=config.batch_size, + ) + ) + valloaders["qry"].append( + DataLoader( + FemnistDataset(dataset[1]["user_data"][user], transform), + batch_size=config.batch_size, + ) + ) for user in clients_list[2]: - testloaders['sup'].append( - DataLoader(FemnistDataset(dataset[0]['user_data'][user], transform), batch_size=config.batch_size)) - testloaders['qry'].append( - DataLoader(FemnistDataset(dataset[1]['user_data'][user], transform), batch_size=config.batch_size)) - - elif data_type == 'shakespeare': + testloaders["sup"].append( + DataLoader( + FemnistDataset(dataset[0]["user_data"][user], transform), + batch_size=config.batch_size, + ) + ) + testloaders["qry"].append( + DataLoader( + FemnistDataset(dataset[1]["user_data"][user], transform), + batch_size=config.batch_size, + ) + ) + + elif data_type == "shakespeare": for user in clients_list[0]: - trainloaders['sup'].append( - DataLoader(ShakespeareDataset(dataset[0]['user_data'][user]), batch_size=config.batch_size, - shuffle=True)) - trainloaders['qry'].append( - DataLoader(ShakespeareDataset(dataset[1]['user_data'][user]), batch_size=config.batch_size)) + trainloaders["sup"].append( + DataLoader( + ShakespeareDataset(dataset[0]["user_data"][user]), + batch_size=config.batch_size, + shuffle=True, + ) + ) + trainloaders["qry"].append( + DataLoader( + ShakespeareDataset(dataset[1]["user_data"][user]), + batch_size=config.batch_size, + ) + ) for user in clients_list[1]: - valloaders['sup'].append( - DataLoader(ShakespeareDataset(dataset[0]['user_data'][user]), batch_size=config.batch_size, - shuffle=True)) - valloaders['qry'].append( - DataLoader(ShakespeareDataset(dataset[1]['user_data'][user]), batch_size=config.batch_size)) + valloaders["sup"].append( + DataLoader( + ShakespeareDataset(dataset[0]["user_data"][user]), + batch_size=config.batch_size, + shuffle=True, + ) + ) + valloaders["qry"].append( + DataLoader( + ShakespeareDataset(dataset[1]["user_data"][user]), + batch_size=config.batch_size, + ) + ) for user in clients_list[2]: - testloaders['sup'].append( - DataLoader(ShakespeareDataset(dataset[0]['user_data'][user]), batch_size=config.batch_size, - shuffle=True)) - testloaders['qry'].append( - DataLoader(ShakespeareDataset(dataset[1]['user_data'][user]), batch_size=config.batch_size)) + testloaders["sup"].append( + DataLoader( + ShakespeareDataset(dataset[0]["user_data"][user]), + batch_size=config.batch_size, + shuffle=True, + ) + ) + testloaders["qry"].append( + DataLoader( + ShakespeareDataset(dataset[1]["user_data"][user]), + batch_size=config.batch_size, + ) + ) return trainloaders, valloaders, testloaders diff --git a/baselines/fedmeta/fedmeta/dataset_preparation.py b/baselines/fedmeta/fedmeta/dataset_preparation.py index ac0c642a1dac..9c99cddddc5a 100644 --- a/baselines/fedmeta/fedmeta/dataset_preparation.py +++ b/baselines/fedmeta/fedmeta/dataset_preparation.py @@ -8,20 +8,18 @@ """ import json import os -from typing import List, Optional, Tuple, Dict, DefaultDict from collections import defaultdict +from typing import Any, DefaultDict, Dict, List, Tuple + import numpy as np from sklearn.model_selection import train_test_split -def _read_dataset( - path: str -) -> Tuple[List, DefaultDict, List]: - """ - Read (if necessary) and returns the leaf dataset. +def _read_dataset(path: str) -> Tuple[List, DefaultDict, List]: + """Read (if necessary) and returns the leaf dataset. Parameters - ---------- + ---------- path : str The path where the leaf dataset was downloaded @@ -29,35 +27,33 @@ def _read_dataset( ------- Tuple[user, data[x,y], num_total_data] The dataset for training and the dataset for testing. - """ users = [] - data = defaultdict(lambda: None) + data: DefaultDict[str, Any] = defaultdict(lambda: None) num_example = [] - files = [f for f in os.listdir(path) if f.endswith('.json')] + files = [f for f in os.listdir(path) if f.endswith(".json")] for file_name in files: - with open(f'{path}/{file_name}') as f: - dataset = json.load(f) - users.extend(dataset['users']) - data.update(dataset['user_data']) - num_example.extend(dataset['num_samples']) + with open(f"{path}/{file_name}") as file: + dataset = json.load(file) + users.extend(dataset["users"]) + data.update(dataset["user_data"]) + num_example.extend(dataset["num_samples"]) - users = list(sorted(data.keys())) + users = sorted(data.keys()) return users, data, num_example def support_query_split( - data: DefaultDict, - label: List, - support_ratio: float, + data, + label, + support_ratio: float, ) -> Tuple[List, List, List, List]: - """ - Separate support set and query set + """Separate support set and query set. Parameters - ---------- + ---------- data: DefaultDict, Raw all Datasets label: List, @@ -70,24 +66,23 @@ def support_query_split( ------- Tuple[List, List, List, List] Support set and query set classification of data and labels - """ - - x_train, x_test, y_train, y_test = train_test_split(data, label, train_size=support_ratio, stratify=label, random_state=42) + x_train, x_test, y_train, y_test = train_test_split( + data, label, train_size=support_ratio, stratify=label, random_state=42 + ) return x_train, x_test, y_train, y_test def split_train_validation_test_clients( - clients: List, - train_rate: Optional[float] = 0.8, - val_rate: Optional[float] = 0.1, + clients: List, + train_rate: float = 0.8, + val_rate: float = 0.1, ) -> Tuple[List[str], List[str], List[str]]: - """ - Classification of all clients into train clients, valid clients, and test clients + """Classification of all clients into train, valid, and test. Parameters - ---------- + ---------- clients: List, Full list of clients for the sampled leaf dataset. train_rate: float, optional @@ -101,32 +96,30 @@ def split_train_validation_test_clients( ------- Tuple[List, List, List] List of each train client, valid client, and test client - """ np.random.seed(42) train_rate = int(train_rate * len(clients)) val_rate = int(val_rate * len(clients)) - test_rate = len(clients) - train_rate - val_rate index = np.random.permutation(len(clients)) trans_numpy = np.asarray(clients) train_clients = trans_numpy[index[:train_rate]].tolist() - val_clients = trans_numpy[index[train_rate:train_rate + val_rate]].tolist() - test_clients = trans_numpy[index[train_rate + val_rate:]].tolist() + val_clients = trans_numpy[index[train_rate : train_rate + val_rate]].tolist() + test_clients = trans_numpy[index[train_rate + val_rate :]].tolist() return train_clients, val_clients, test_clients +# pylint: disable=too-many-locals def _partition_data( - data_type: str, - dir_path: str, - support_ratio: float, + data_type: str, + dir_path: str, + support_ratio: float, ) -> Tuple[Dict, Dict]: - """ - Classification of support sets and query sets by client + """Classification of support sets and query sets by client. Parameters - ---------- + ---------- data_type: str, The type of femnist for classification or shakespeare for regression dir_path: str, @@ -139,28 +132,29 @@ def _partition_data( ------- Tuple[Dict, Dict] Return support set and query set for total data - """ - train_path = f'{dir_path}/train' - test_path = f'{dir_path}/test' + train_path = f"{dir_path}/train" + test_path = f"{dir_path}/test" - train_users, train_data, train_num = _read_dataset(train_path) - test_users, test_data, test_num = _read_dataset(test_path) + train_users, train_data, _ = _read_dataset(train_path) + _, test_data, _ = _read_dataset(test_path) - all_dataset = {'users': [], 'user_data': {}, 'num_samples': []} - support_dataset = {'users': [], 'user_data': {}, 'num_samples': []} - query_dataset = {'users': [], 'user_data': {}, 'num_samples': []} + all_dataset: Dict[str, Any] = {"users": [], "user_data": {}, "num_samples": []} + support_dataset: Dict[str, Any] = {"users": [], "user_data": {}, "num_samples": []} + query_dataset: Dict[str, Any] = {"users": [], "user_data": {}, "num_samples": []} for user in train_users: - all_x = np.asarray(train_data[user]['x'] + test_data[user]['x']) - all_y = np.asarray(train_data[user]['y'] + test_data[user]['y']) + all_x = np.asarray(train_data[user]["x"] + test_data[user]["x"]) + all_y = np.asarray(train_data[user]["y"] + test_data[user]["y"]) - if data_type == 'femnist': + if data_type == "femnist": unique, counts = np.unique(all_y, return_counts=True) class_counts = dict(zip(unique, counts)) # Find classes with only one sample - classes_to_remove = [cls for cls, count in class_counts.items() if count == 1] + classes_to_remove = [ + cls for cls, count in class_counts.items() if count == 1 + ] # Filter out the samples of those classes mask = np.isin(all_y, classes_to_remove, invert=True) @@ -170,23 +164,27 @@ def _partition_data( # Client filtering for support set and query set classification try: - sup_x, qry_x, sup_y, qry_y = support_query_split(all_x, all_y, support_ratio) - except Exception as e: + sup_x, qry_x, sup_y, qry_y = support_query_split( + all_x, all_y, support_ratio + ) + except Exception: # pylint: disable=broad-except continue - elif data_type == 'shakespeare': - sup_x, qry_x, sup_y, qry_y = train_test_split(all_x, all_y, train_size=support_ratio, random_state=42) + elif data_type == "shakespeare": + sup_x, qry_x, sup_y, qry_y = train_test_split( + all_x, all_y, train_size=support_ratio, random_state=42 + ) - all_dataset['users'].append(user) - all_dataset['user_data'][user] = {'x': all_x.tolist(), 'y': all_y.tolist()} - all_dataset['num_samples'].append(len(all_y.tolist())) + all_dataset["users"].append(user) + all_dataset["user_data"][user] = {"x": all_x.tolist(), "y": all_y.tolist()} + all_dataset["num_samples"].append(len(all_y.tolist())) - support_dataset['users'].append(user) - support_dataset['user_data'][user] = {'x': sup_x, 'y': sup_y} - support_dataset['num_samples'].append(len(sup_y)) + support_dataset["users"].append(user) + support_dataset["user_data"][user] = {"x": sup_x, "y": sup_y} + support_dataset["num_samples"].append(len(sup_y)) - query_dataset['users'].append(user) - query_dataset['user_data'][user] = {'x': qry_x, 'y': qry_y} - query_dataset['num_samples'].append(len(qry_y)) + query_dataset["users"].append(user) + query_dataset["user_data"][user] = {"x": qry_x, "y": qry_y} + query_dataset["num_samples"].append(len(qry_y)) return support_dataset, query_dataset diff --git a/baselines/fedmeta/fedmeta/fedmeta_client_manager.py b/baselines/fedmeta/fedmeta/fedmeta_client_manager.py index f0e08aa2750b..1b3a38c5b2d5 100644 --- a/baselines/fedmeta/fedmeta/fedmeta_client_manager.py +++ b/baselines/fedmeta/fedmeta/fedmeta_client_manager.py @@ -1,68 +1,56 @@ -from flwr.server.client_manager import SimpleClientManager -from typing import List, Optional -from logging import INFO -from flwr.common.logger import log -from flwr.server.criterion import Criterion -from flwr.server.client_proxy import ClientProxy -import random - - -class evaluate_client_Criterion(Criterion): - def __init__(self, min_evaluate_clients): - self.min_evaluate_clients = min_evaluate_clients +"""Handles clients that are sampled every round. - """Criterion to select evaluate clients.""" - def select( - self, - valid_client: int - ) -> List: - """ - Clients to be used in evaluation should be sampled from the validation client list. - - Parameters - ---------- - valid_client : int - Length of validation client list +In a FedMeta experiment, there is a train and a test client. So we modified the manager +to sample from each list each round. +""" - Returns - ------- - Return client cid list +import random +from logging import INFO +from typing import List, Optional - """ - return [str(result) for result in range(0, valid_client)] +from flwr.common.logger import log +from flwr.server.client_manager import SimpleClientManager +from flwr.server.client_proxy import ClientProxy +from flwr.server.criterion import Criterion -class fedmeta_client_manager(SimpleClientManager): +class FedmetaClientManager(SimpleClientManager): + """In the fit phase, clients must be sampled from the training client list. - """ - In the fit phase, clients must be sampled from the training client list. And in the evaluate stage, clients must be sampled from the validation client list. - So we modify 'fedmeta_client_manager' to sample clients from [cid: List] for each list. - + So we modify 'fedmeta_client_manager' to sample clients from [cid: List] for each + list. """ def __init__(self, valid_client, **kwargs): super().__init__(**kwargs) self.valid_client = valid_client - def sample( - self, - num_clients: int, - server_round: Optional[int] = None, - min_num_clients: Optional[int] = None, - criterion: Optional[Criterion] = None, + # pylint: disable=too-many-arguments + def sample( # pylint: disable=arguments-differ + self, + num_clients: int, + min_num_clients: Optional[int] = None, + criterion: Optional[Criterion] = None, + server_round: Optional[int] = None, + step: Optional[str] = None ) -> List[ClientProxy]: """Sample a number of Flower ClientProxy instances.""" - # Block until at least num_clients are connected. if min_num_clients is None: min_num_clients = num_clients self.wait_for(min_num_clients) # Sample clients which meet the criterion - available_cids = list(self.clients) + if step == 'evaluate': + available_cids = [str(result) for result in range(0, self.valid_client)] + else: + available_cids = list(self.clients) + if criterion is not None: - available_cids = criterion.select(self.valid_client) + available_cids = [ + cid for cid in available_cids if criterion.select(self.clients[cid]) + ] if num_clients > len(available_cids): log( diff --git a/baselines/fedmeta/fedmeta/main.py b/baselines/fedmeta/fedmeta/main.py index 49f454b43bc9..bce21fca1fa6 100644 --- a/baselines/fedmeta/fedmeta/main.py +++ b/baselines/fedmeta/fedmeta/main.py @@ -4,19 +4,19 @@ model is going to be evaluated, etc. At the end, this script saves the results. """ -import hydra -from hydra.core.hydra_config import HydraConfig -from omegaconf import DictConfig, OmegaConf -from hydra.utils import instantiate import os import flwr as fl +import hydra +from hydra.core.hydra_config import HydraConfig +from hydra.utils import instantiate +from omegaconf import DictConfig, OmegaConf import fedmeta.client as client -from fedmeta.fedmeta_client_manager import fedmeta_client_manager from fedmeta.dataset import load_datasets +from fedmeta.fedmeta_client_manager import FedmetaClientManager from fedmeta.strategy import weighted_average -from fedmeta.utils import save_graph_params, plot_from_pkl +from fedmeta.utils import plot_from_pkl, save_graph_params @hydra.main(config_path="conf", config_name="config", version_base=None) @@ -30,13 +30,14 @@ def main(cfg: DictConfig) -> None: algo : FedAvg, FedAvg(Meta), FedMeta(MAML), FedMeta(Meta-SGD) data : Femnist, Shakespeare - """ # print config structured as YAML print(OmegaConf.to_yaml(cfg)) # partition dataset and get dataloaders - trainloaders, valloaders, testloaders= load_datasets(config=cfg.data, path=cfg.path) + trainloaders, valloaders, _ = load_datasets( + config=cfg.data, path=cfg.path + ) # prepare function that will be used to spawn each client client_fn = client.gen_client_fn( @@ -61,13 +62,13 @@ def main(cfg: DictConfig) -> None: # Start Simulation history = fl.simulation.start_simulation( client_fn=client_fn, - num_clients=len(trainloaders['sup']), + num_clients=len(trainloaders["sup"]), config=fl.server.ServerConfig(num_rounds=cfg.data.num_rounds), client_resources={ "num_cpus": cfg.data.client_resources.num_cpus, "num_gpus": cfg.data.client_resources.num_gpus, }, - client_manager=fedmeta_client_manager(valid_client=len(valloaders['qry'])), + client_manager=FedmetaClientManager(valid_client=len(valloaders["qry"])), strategy=strategy, ) @@ -83,7 +84,9 @@ def main(cfg: DictConfig) -> None: print("................") print(history) - output_path = HydraConfig.get().runtime.cwd + '/fedmeta/' + cfg.data.data + '/graph_params' + output_path = ( + HydraConfig.get().runtime.cwd + "/fedmeta/" + cfg.data.data + "/graph_params" + ) os.makedirs(output_path, exist_ok=True) data_params = { @@ -91,7 +94,7 @@ def main(cfg: DictConfig) -> None: "data": cfg.data.data, "loss": history.losses_distributed, "accuracy": history.metrics_distributed, - "path": output_path + "path": output_path, } save_graph_params(data_params) diff --git a/baselines/fedmeta/fedmeta/models.py b/baselines/fedmeta/fedmeta/models.py index 13183d891202..d84a9e0ce98c 100644 --- a/baselines/fedmeta/fedmeta/models.py +++ b/baselines/fedmeta/fedmeta/models.py @@ -6,35 +6,32 @@ the python code at all """ -from typing import Tuple, List +from copy import deepcopy +from typing import List, Tuple import torch import torch.nn as nn from torch.utils.data import DataLoader -from copy import deepcopy - class StackedLSTM(nn.Module): - """ - StackedLSTM architecture. + """StackedLSTM architecture. - As described in Fei Chen 2018 paper : + As described in Fei Chen 2018 paper : - [FedMeta: Federated Meta-Learning with Fast Convergence and Efficient Communication] - (https://arxiv.org/abs/1802.07876) + [FedMeta: Federated Meta-Learning with Fast Convergence and Efficient Communication] + (https://arxiv.org/abs/1802.07876) + """ - """ def __init__(self): - super(StackedLSTM, self).__init__() + super().__init__() self.embedding = nn.Embedding(80, 8) self.lstm = nn.LSTM(8, 256, num_layers=2, dropout=0.5, batch_first=True) - self.fc = nn.Linear(256, 80) + self.fully_ = nn.Linear(256, 80) def forward(self, text): - """ - Forward pass of the StackedLSTM. + """Forward pass of the StackedLSTM. Parameters ---------- @@ -45,31 +42,30 @@ def forward(self, text): ------- torch.Tensor The resulting Tensor after it has passed through the network - """ embedded = self.embedding(text) self.lstm.flatten_parameters() lstm_out, _ = self.lstm(embedded) - final_output = self.fc(lstm_out[:, -1, :]) + final_output = self.fully_(lstm_out[:, -1, :]) return final_output -class CNN_network(nn.Module): - """ - Convolutional Neural Network architecture. +class FemnistNetwork(nn.Module): + """Convolutional Neural Network architecture. As described in Fei Chen 2018 paper : [FedMeta: Federated Meta-Learning with Fast Convergence and Efficient Communication] (https://arxiv.org/abs/1802.07876) - """ def __init__(self) -> None: - super(CNN_network, self).__init__() + super().__init__() self.conv1 = nn.Conv2d(in_channels=1, out_channels=32, kernel_size=5, padding=2) self.maxpool1 = nn.MaxPool2d(kernel_size=(2, 2)) - self.conv2 = nn.Conv2d(in_channels=32, out_channels=64, kernel_size=5, padding=2) + self.conv2 = nn.Conv2d( + in_channels=32, out_channels=64, kernel_size=5, padding=2 + ) self.maxpool2 = nn.MaxPool2d(kernel_size=(2, 2)) self.linear1 = nn.Linear(7 * 7 * 64, 2048) self.linear2 = nn.Linear(2048, 62) @@ -86,7 +82,6 @@ def forward(self, x: torch.Tensor) -> torch.Tensor: ------- torch.Tensor The resulting Tensor after it has passed through the network - """ x = torch.relu(self.conv1(x)) x = self.maxpool1(x) @@ -98,16 +93,15 @@ def forward(self, x: torch.Tensor) -> torch.Tensor: return x +# pylint: disable=too-many-arguments def train( net: nn.Module, trainloader: DataLoader, - testloader: DataLoader, device: torch.device, epochs: int, learning_rate: float, ) -> Tuple[float]: - """ - Train the network on the training set. + """Train the network on the training set. Parameters ---------- @@ -135,9 +129,7 @@ def train( optimizer = torch.optim.Adam(net.parameters(), lr=learning_rate, weight_decay=0.001) net.train() for _ in range(epochs): - net, loss = _train_one_epoch( - net, trainloader, device, criterion, optimizer - ) + net, loss = _train_one_epoch(net, trainloader, device, criterion, optimizer) return loss @@ -169,7 +161,6 @@ def _train_one_epoch( The model that has been trained for one epoch. total_loss The Loss that has been trained for one epoch. - """ total_loss = 0.0 @@ -184,6 +175,7 @@ def _train_one_epoch( return net, total_loss +# pylint: disable=too-many-locals def test( net: nn.Module, trainloader: DataLoader, @@ -193,8 +185,7 @@ def test( data: str, learning_rate: float, ) -> Tuple[float, float]: - """ - Evaluate the network on the entire test set. + """Evaluate the network on the entire test set. Parameters ---------- @@ -217,25 +208,28 @@ def test( ------- Tuple[float, float] The loss and the accuracy of the input model on the given data. - """ criterion = torch.nn.CrossEntropyLoss() - if algo == 'fedavg_meta': - total_loss = 0.0 - optimizer = torch.optim.Adam(net.parameters(), lr=learning_rate, weight_decay=0.001) + if algo == "fedavg_meta": + optimizer = torch.optim.Adam( + net.parameters(), lr=learning_rate, weight_decay=0.001 + ) net.train() - if data == 'femnist': + if data == "femnist": for images, labels in trainloader: images, labels = images.to(device), labels.to(device) loss = criterion(net(images), labels) - total_loss += loss * labels.size(0) - total_loss = total_loss / len(trainloader.dataset) - optimizer.zero_grad() - total_loss.backward() - optimizer.step() + optimizer.zero_grad() + loss.backward() + optimizer.step() + # total_loss += loss * labels.size(0) + # total_loss = total_loss / len(trainloader.dataset) + # optimizer.zero_grad() + # total_loss.backward() + # optimizer.step() - elif data == 'shakespeare': + elif data == "shakespeare": for images, labels in trainloader: images, labels = images.to(device), labels.to(device) loss = criterion(net(images), labels) @@ -264,7 +258,7 @@ def train_meta( net: nn.Module, supportloader: DataLoader, queryloader: DataLoader, - alpha, + alpha: torch.nn.ParameterList, device: torch.device, gradient_step: int, ) -> Tuple[float, List]: @@ -272,28 +266,25 @@ def train_meta( Parameters ---------- - net : nn.Module - The neural network to train. - supportloader : DataLoader - The DataLoader containing the data to inner loop train the network on. - queryloader : DataLoader - The DataLoader containing the data to outer loop train the network on. - alpha : int - The learning rate for the optimizer. - device : torch.device - The device on which the model should be trained, either 'cpu' or 'cuda'. - gradient_step : int - The number of inner loop learning + net : nn.Module + The neural network to train. + supportloader : DataLoader + The DataLoader containing the data to inner loop train the network on. + queryloader : DataLoader + The DataLoader containing the data to outer loop train the network on. + alpha : torch.nn.ParameterList + The learning rate for the optimizer. + device : torch.device + The device on which the model should be trained, either 'cpu' or 'cuda'. + gradient_step : int + The number of inner loop learning Returns ------- - nn.Module - The model that has been trained for one meta epoch. - total_loss - The Loss that has been trained for one epoch. - grads - The gradients that has been trained for one epoch. - + total_loss + The Loss that has been trained for one epoch. + grads + The gradients that has been trained for one epoch. """ criterion = torch.nn.CrossEntropyLoss() for _ in range(1): @@ -302,7 +293,7 @@ def train_meta( ) return loss, grads - +# pylint: disable=too-many-locals def _train_meta_one_epoch( net: nn.Module, supportloader: DataLoader, @@ -311,36 +302,32 @@ def _train_meta_one_epoch( criterion: torch.nn.CrossEntropyLoss, device: torch.device, gradient_step: int, -) -> nn.Module: - """ - Train for one epoch. +) -> Tuple[float, List]: + """Train for one epoch. Parameters ---------- - net : nn.Module - The neural network to train. - supportloader : DataLoader - The DataLoader containing the data to inner loop train the network on. - queryloader : DataLoader - The DataLoader containing the data to outer loop train the network on. - alpha : torch.nn.ParameterList - The learning rate for the optimizer. - criterion : torch.nn.CrossEntropyLoss - The loss function to use for training - device : torch.device - The device on which the model should be trained, either 'cpu' or 'cuda'. - gradient_step : int - The number of inner loop learning + net : nn.Module + The neural network to train. + supportloader : DataLoader + The DataLoader containing the data to inner loop train the network on. + queryloader : DataLoader + The DataLoader containing the data to outer loop train the network on. + alpha : torch.nn.ParameterList + The learning rate for the optimizer. + criterion : torch.nn.CrossEntropyLoss + The loss function to use for training + device : torch.device + The device on which the model should be trained, either 'cpu' or 'cuda'. + gradient_step : int + The number of inner loop learning Returns ------- - nn.Module - The model that has been trained for one meta epoch. - total_loss - The Loss that has been trained for one epoch. - grads - The gradients that has been trained for one epoch. - + total_loss + The Loss that has been trained for one epoch. + grads + The gradients that has been trained for one epoch. """ num_adaptation_steps = gradient_step train_net = deepcopy(net) @@ -355,14 +342,16 @@ def _train_meta_one_epoch( loss_sum += loss * labels.size(0) sup_num_sample.append(labels.size(0)) sup_total_loss.append(loss * labels.size(0)) - grads = torch.autograd.grad(loss, list(train_net.parameters()), create_graph=True, retain_graph=True) + grads = torch.autograd.grad( + loss, list(train_net.parameters()), create_graph=True, retain_graph=True + ) - for p, g, a in zip(train_net.parameters(), grads, alpha): - p.data = p.data - a * g + for param, grad_, alphas in zip(train_net.parameters(), grads, alpha): + param.data = param.data - alphas * grad_ - for p in train_net.parameters(): - if p.grad is not None: - p.grad.zero_() + for param in train_net.parameters(): + if param.grad is not None: + param.grad.zero_() qry_total_loss = [] qry_num_sample = [] @@ -376,11 +365,11 @@ def _train_meta_one_epoch( loss_sum = loss_sum / sum(qry_num_sample) grads = torch.autograd.grad(loss_sum, list(train_net.parameters())) - for p in train_net.parameters(): - if p.grad is not None: - p.grad.zero_() + for param in train_net.parameters(): + if param.grad is not None: + param.grad.zero_() - grads = [g.cpu().numpy() for g in grads] + grads = [grad_.cpu().numpy() for grad_ in grads] loss = sum(sup_total_loss) / sum(sup_num_sample) return loss, grads @@ -393,8 +382,7 @@ def test_meta( device: torch.device, gradient_step: int, ) -> Tuple[float, float]: - """ - Evaluate the network on the entire test set. + """Evaluate the network on the entire test set. Parameters ---------- @@ -431,14 +419,16 @@ def test_meta( loss_sum += loss * labels.size(0) sup_num_sample.append(labels.size(0)) sup_total_loss.append(loss) - grads = torch.autograd.grad(loss, list(test_net.parameters()), create_graph=True, retain_graph=True) + grads = torch.autograd.grad( + loss, list(test_net.parameters()), create_graph=True, retain_graph=True + ) - for p, g, a in zip(test_net.parameters(), grads, alpha): - p.data -= a * g + for param, grad_, alphas in zip(test_net.parameters(), grads, alpha): + param.data -= alphas * grad_ - for p in test_net.parameters(): - if p.grad is not None: - p.grad.zero_() + for param in test_net.parameters(): + if param.grad is not None: + param.grad.zero_() test_net.eval() correct, total, loss = 0, 0, 0.0 @@ -454,5 +444,3 @@ def test_meta( loss = loss / total accuracy = correct / total return loss, accuracy - - diff --git a/baselines/fedmeta/fedmeta/server.py b/baselines/fedmeta/fedmeta/server.py index e69de29bb2d1..b24928de48b3 100644 --- a/baselines/fedmeta/fedmeta/server.py +++ b/baselines/fedmeta/fedmeta/server.py @@ -0,0 +1 @@ +"""Flower Server.""" diff --git a/baselines/fedmeta/fedmeta/strategy.py b/baselines/fedmeta/fedmeta/strategy.py index 22dc4df84dd6..a7bac9a15c67 100644 --- a/baselines/fedmeta/fedmeta/strategy.py +++ b/baselines/fedmeta/fedmeta/strategy.py @@ -3,47 +3,43 @@ Needed only when the strategy is not yet implemented in Flower or because you want to extend or modify the functionality of an existing strategy. """ -from typing import Dict, List, Optional, Tuple, Union -from logging import WARNING from collections import OrderedDict -import torch - - -from flwr.server.client_proxy import ClientProxy -from flwr.server.strategy import FedAvg -from flwr.server.strategy.aggregate import aggregate, weighted_loss_avg -from flwr.server.client_manager import ClientManager - -from fedmeta.models import CNN_network, StackedLSTM -from fedmeta.fedmeta_client_manager import evaluate_client_Criterion -from fedmeta.utils import update_ema - +from logging import WARNING +from typing import Dict, List, Optional, Tuple, Union -from flwr.common.logger import log +import torch from flwr.common import ( + EvaluateIns, + EvaluateRes, + FitIns, FitRes, + Metrics, + NDArrays, Parameters, Scalar, ndarrays_to_parameters, parameters_to_ndarrays, - EvaluateRes, - Metrics, - FitIns, - EvaluateIns, - NDArrays, ) +from flwr.common.logger import log +from flwr.server.client_manager import ClientManager +from flwr.server.client_proxy import ClientProxy +from flwr.server.strategy import FedAvg +from flwr.server.strategy.aggregate import aggregate, weighted_loss_avg + +from fedmeta.models import FemnistNetwork, StackedLSTM +from fedmeta.utils import update_ema +# pylint: disable=too-many-arguments def fedmeta_update_meta_sgd( - net : torch.nn.Module, - alpha : torch.nn.ParameterList, - beta : float, - weights_results : List[Tuple[NDArrays, int]], - gradients_aggregated : List[Tuple[NDArrays, int]], - WD : float, -) -> Tuple[List[Tuple[NDArrays, int]], torch.nn.ParameterList]: - """ - Update model parameters for FedMeta(Meta-SGD). + net: torch.nn.Module, + alpha: torch.nn.ParameterList, + beta: float, + weights_results: NDArrays, + gradients_aggregated: NDArrays, + weight_decay: float, +) -> Tuple[NDArrays, torch.nn.ParameterList]: + """Update model parameters for FedMeta(Meta-SGD). Parameters ---------- @@ -66,12 +62,13 @@ def fedmeta_update_meta_sgd( These are updated parameters. alpha : torch.nn.ParameterLis These are updated alpha. - """ params_dict = zip(net.state_dict().keys(), weights_results) state_dict = OrderedDict({k: torch.tensor(v) for k, v in params_dict}) net.load_state_dict(state_dict, strict=True) - optimizer = torch.optim.Adam(list(net.parameters()) + list(alpha), lr=beta, weight_decay=WD) + optimizer = torch.optim.Adam( + list(net.parameters()) + list(alpha), lr=beta, weight_decay=weight_decay + ) for params, grad_ins, alphas in zip(net.parameters(), gradients_aggregated, alpha): params.grad = torch.tensor(grad_ins).to(params.dtype) alphas.grad = torch.tensor(grad_ins).to(params.dtype) @@ -83,14 +80,13 @@ def fedmeta_update_meta_sgd( def fedmeta_update_maml( - net : torch.nn.Module, - beta : float, - weights_results : List[Tuple[NDArrays, int]], - gradients_aggregated : List[Tuple[NDArrays, int]], - WD : float -) -> List[Tuple[NDArrays, int]]: - """ - Update model parameters for FedMeta(Meta-SGD). + net: torch.nn.Module, + beta: float, + weights_results: NDArrays, + gradients_aggregated: NDArrays, + weight_decay: float, +) -> NDArrays: + """Update model parameters for FedMeta(Meta-SGD). Parameters ---------- @@ -109,12 +105,11 @@ def fedmeta_update_maml( ------- weights_prime : List[Tuple[NDArrays, int]] These are updated parameters. - """ params_dict = zip(net.state_dict().keys(), weights_results) state_dict = OrderedDict({k: torch.tensor(v) for k, v in params_dict}) net.load_state_dict(state_dict, strict=True) - optimizer = torch.optim.Adam(list(net.parameters()), lr=beta, weight_decay=WD) + optimizer = torch.optim.Adam(list(net.parameters()), lr=beta, weight_decay=weight_decay) for params, grad_ins in zip(net.parameters(), gradients_aggregated): params.grad = torch.tensor(grad_ins).to(params.dtype) optimizer.step() @@ -125,7 +120,7 @@ def fedmeta_update_maml( def weighted_average(metrics: List[Tuple[int, Metrics]]) -> Metrics: - """Aggregation function for weighted average during evaluation. + """Aggregate using a weighted average during evaluation. Parameters ---------- @@ -138,18 +133,15 @@ def weighted_average(metrics: List[Tuple[int, Metrics]]) -> Metrics: The weighted average metric. """ # Multiply accuracy of each client by number of examples used - correct = [num_examples * m["correct"] for num_examples, m in metrics] + correct = [num_examples * float(m["correct"]) for num_examples, m in metrics] examples = [num_examples for num_examples, _ in metrics] # Aggregate and return custom metric (weighted average) - return {"accuracy": sum(correct) / sum(examples)} + return {"accuracy": float(sum(correct)) / float(sum(examples))} class FedMeta(FedAvg): - """ - FedMeta - The average of the gradient and the parameter update on the server through it. - """ + """FedMeta averages the gradient and server parameter update through it.""" def __init__(self, alpha, beta, data, algo, **kwargs): super().__init__(**kwargs) @@ -159,18 +151,23 @@ def __init__(self, alpha, beta, data, algo, **kwargs): self.ema_loss = None self.ema_acc = None - if self.data == 'femnist': - self.net = CNN_network() - elif self.data == 'shakespeare': + if self.data == "femnist": + self.net = FemnistNetwork() + elif self.data == "shakespeare": self.net = StackedLSTM() - self.alpha = torch.nn.ParameterList([torch.nn.Parameter(torch.full_like(p, alpha)) for p in self.net.parameters()]) + self.alpha = torch.nn.ParameterList( + [ + torch.nn.Parameter(torch.full_like(p, alpha)) + for p in self.net.parameters() + ] + ) def configure_fit( self, server_round: int, parameters: Parameters, client_manager: ClientManager ) -> List[Tuple[ClientProxy, FitIns]]: """Configure the next round of training.""" - config = {"alpha" : self.alpha, "algo": self.algo, "data": self.data} + config = {"alpha": self.alpha, "algo": self.algo, "data": self.data} if self.on_fit_config_fn is not None: # Custom fit config function provided config = self.on_fit_config_fn(server_round) @@ -180,10 +177,11 @@ def configure_fit( sample_size, min_num_clients = self.num_fit_clients( client_manager.num_available() ) - clients = client_manager.sample( + clients = client_manager.sample( # type: ignore num_clients=sample_size, min_num_clients=min_num_clients, - server_round=server_round + server_round=server_round, + step='evaluate' ) # Return client/config pairs @@ -198,7 +196,7 @@ def configure_evaluate( return [] # Parameters and config - config = {"alpha" : self.alpha, "algo": self.algo, "data":self.data} + config = {"alpha": self.alpha, "algo": self.algo, "data": self.data} if self.on_evaluate_config_fn is not None: # Custom evaluation config function provided config = self.on_evaluate_config_fn(server_round) @@ -208,11 +206,11 @@ def configure_evaluate( sample_size, min_num_clients = self.num_evaluation_clients( client_manager.num_available() ) - clients = client_manager.sample( + clients = client_manager.sample( # type: ignore num_clients=sample_size, - server_round=server_round, min_num_clients=min_num_clients, - criterion=evaluate_client_Criterion(self.min_evaluate_clients), + server_round=server_round, + step='evaluate' ) # Return client/config pairs @@ -232,37 +230,46 @@ def aggregate_fit( return None, {} # Convert results - weights_results = [ + weights_results: List[Tuple[NDArrays, int]] = [ (parameters_to_ndarrays(fit_res.parameters), fit_res.num_examples) for _, fit_res in results ] - parameters_aggregated = ndarrays_to_parameters(aggregate(weights_results)) - if self.data == 'femnist': - WD = 0.001 + parameters_aggregated = aggregate(weights_results) + if self.data == "femnist": + weight_decay = 0.001 else: - WD = 0.0001 + weight_decay = 0.0001 # Gradient Average and Update Parameter for FedMeta(MAML) - if self.algo == 'fedmeta_maml': - grads_results = [ - (fit_res.metrics['grads'], fit_res.num_examples) + if self.algo == "fedmeta_maml": + grads_results: List[Tuple[NDArrays, int]] = [ + (fit_res.metrics["grads"], fit_res.num_examples) # type: ignore for _, fit_res in results ] gradients_aggregated = aggregate(grads_results) - weights_prime = fedmeta_update_maml(self.net, self.beta, weights_results[0][0], gradients_aggregated, WD) - parameters_aggregated = ndarrays_to_parameters(weights_prime) + weights_prime = fedmeta_update_maml( + self.net, self.beta, weights_results[0][0], gradients_aggregated, weight_decay + ) + parameters_aggregated = weights_prime # Gradient Average and Update Parameter for FedMeta(Meta-SGD) - elif self.algo == 'fedmeta_meta_sgd': + elif self.algo == "fedmeta_meta_sgd": grads_results = [ - (fit_res.metrics['grads'], fit_res.num_examples) + (fit_res.metrics["grads"], fit_res.num_examples) # type: ignore for _, fit_res in results ] gradients_aggregated = aggregate(grads_results) - weights_prime, update_alpha = fedmeta_update_meta_sgd(self.net, self.alpha, self.beta, weights_results[0][0], gradients_aggregated, WD) + weights_prime, update_alpha = fedmeta_update_meta_sgd( + self.net, + self.alpha, + self.beta, + weights_results[0][0], + gradients_aggregated, + weight_decay, + ) self.alpha = update_alpha - parameters_aggregated = ndarrays_to_parameters(weights_prime) + parameters_aggregated = weights_prime # Aggregate custom metrics if aggregation fn was provided metrics_aggregated = {} @@ -272,7 +279,7 @@ def aggregate_fit( elif server_round == 1: # Only log this warning once log(WARNING, "No fit_metrics_aggregation_fn provided") - return parameters_aggregated, metrics_aggregated + return ndarrays_to_parameters(parameters_aggregated), metrics_aggregated def aggregate_evaluate( self, @@ -295,8 +302,8 @@ def aggregate_evaluate( ] ) - if self.data == 'femnist': - smoothing_weight = 0.9 + if self.data == "femnist": + smoothing_weight = 0.95 else: smoothing_weight = 0.7 self.ema_loss = update_ema(self.ema_loss, loss_aggregated, smoothing_weight) @@ -307,8 +314,12 @@ def aggregate_evaluate( if self.evaluate_metrics_aggregation_fn: eval_metrics = [(res.num_examples, res.metrics) for _, res in results] metrics_aggregated = self.evaluate_metrics_aggregation_fn(eval_metrics) - self.ema_acc = update_ema(self.ema_acc, round(metrics_aggregated['accuracy'] * 100, 3), smoothing_weight) - metrics_aggregated['accuracy'] = self.ema_acc + self.ema_acc = update_ema( + self.ema_acc, + round(float(metrics_aggregated["accuracy"] * 100), 3), + smoothing_weight, + ) + metrics_aggregated["accuracy"] = self.ema_acc elif server_round == 1: # Only log this warning once log(WARNING, "No evaluate_metrics_aggregation_fn provided") diff --git a/baselines/fedmeta/fedmeta/utils.py b/baselines/fedmeta/fedmeta/utils.py index 0da04e826d95..b8e1dd95acab 100644 --- a/baselines/fedmeta/fedmeta/utils.py +++ b/baselines/fedmeta/fedmeta/utils.py @@ -5,67 +5,61 @@ results, plotting. """ -from typing import List, Dict -import pickle import os +import pickle +from typing import Dict, List + import matplotlib.pyplot as plt # Encoding list for the Shakespeare dataset -ALL_LETTERS = "\n !\"&'(),-.0123456789:;>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]abcdefghijklmnopqrstuvwxyz}" +ALL_LETTERS = ( + "\n !\"&'(),-.0123456789:;>?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]abcdefghijklmnopqrstuvwxyz}" +) def _one_hot( - index: int, - size: int, + index: int, + size: int, ) -> List: - """ - returns one-hot vector with given size and value 1 at given index - - """ - + """Return one-hot vector with given size and value 1 at given index.""" vec = [0 for _ in range(size)] vec[int(index)] = 1 return vec def letter_to_vec( - letter: str, + letter: str, ) -> int: - """ - returns one-hot representation of given letter - - """ - + """Return one-hot representation of given letter.""" index = ALL_LETTERS.find(letter) return index def word_to_indices( - word: str, + word: str, ) -> List: - """ - returns a list of character indices - Args: - word: string + """Return a list of character indices. - Return: - indices: int list with length len(word) + Parameters + ---------- + word: string. + Returns + ------- + indices: int list with length len(word) """ - indices = [] - for c in word: - indices.append(ALL_LETTERS.find(c)) + for count in word: + indices.append(ALL_LETTERS.find(count)) return indices def update_ema( - prev_ema: float, - current_value: float, - smoothing_weight: float, + prev_ema: float, + current_value: float, + smoothing_weight: float, ) -> float: - """ - We use EMA to visually enhance the learning trend for each round. + """We use EMA to visually enhance the learning trend for each round. Parameters ---------- @@ -81,7 +75,6 @@ def update_ema( ------- EMA_Loss or EMA_ACC The weighted average metric. - """ if prev_ema is None: return current_value @@ -89,33 +82,30 @@ def update_ema( def save_graph_params(data_info: Dict): - """ - Save parameters to visualize experiment results (Loss, ACC) + """Save parameters to visualize experiment results (Loss, ACC). Parameters ---------- data_info : Dict This is a parameter dictionary of data from which the experiment was completed. """ - if os.path.exists(f"{data_info['path']}/{data_info['algo']}.pkl"): - raise ValueError(f"'{data_info['path']}/{data_info['algo']}.pkl' is already exists!") + raise ValueError( + f"'{data_info['path']}/{data_info['algo']}.pkl' is already exists!" + ) - with open(f"{data_info['path']}/{data_info['algo']}.pkl", 'wb') as f: - pickle.dump(data_info, f) + with open(f"{data_info['path']}/{data_info['algo']}.pkl", "wb") as file: + pickle.dump(data_info, file) def plot_from_pkl(directory="."): - """ - Visualization of algorithms for each data (FedAvg, FedAvg_Meta, FedMeta_MAML, FedMeta_Meta-SGD) + """Visualization of algorithms like 4 Algorithm for data. Parameters ---------- directory : str Graph params directory path for Femnist or Shakespeare - """ - color_mapping = { "fedavg.pkl": "#66CC00", "fedavg_meta.pkl": "#3333CC", @@ -123,13 +113,13 @@ def plot_from_pkl(directory="."): "fedmeta_meta_sgd.pkl": "#CC0000", } - pkl_files = [f for f in os.listdir(directory) if f.endswith('.pkl')] + pkl_files = [f for f in os.listdir(directory) if f.endswith(".pkl")] all_data = {} for file in pkl_files: - with open(os.path.join(directory, file), 'rb') as f: - data = pickle.load(f) + with open(os.path.join(directory, file), "rb") as file_: + data = pickle.load(file_) all_data[file] = data plt.figure(figsize=(7, 12)) @@ -138,9 +128,14 @@ def plot_from_pkl(directory="."): plt.subplot(2, 1, 1) for file in sorted(all_data.keys()): data = all_data[file] - accuracies = [acc for _, acc in data["accuracy"]['accuracy']] - legend_ = file[:-4] if file.endswith('.pkl') else file - plt.plot(accuracies, label=legend_, color=color_mapping.get(file, "black"), linewidth=3) + accuracies = [acc for _, acc in data["accuracy"]["accuracy"]] + legend_ = file[:-4] if file.endswith(".pkl") else file + plt.plot( + accuracies, + label=legend_, + color=color_mapping.get(file, "black"), + linewidth=3, + ) plt.title("Accuracy") plt.grid(True) plt.legend() @@ -149,8 +144,10 @@ def plot_from_pkl(directory="."): for file in sorted(all_data.keys()): data = all_data[file] loss = [loss for _, loss in data["loss"]] - legend_ = file[:-4] if file.endswith('.pkl') else file - plt.plot(loss, label=legend_, color=color_mapping.get(file, "black"), linewidth=3) + legend_ = file[:-4] if file.endswith(".pkl") else file + plt.plot( + loss, label=legend_, color=color_mapping.get(file, "black"), linewidth=3 + ) plt.title("Loss") plt.legend() plt.grid(True) From 0da42a9069d69e8faacb031e9cbc5718e38e9230 Mon Sep 17 00:00:00 2001 From: "JS.KIM" Date: Tue, 10 Oct 2023 07:38:04 +0900 Subject: [PATCH 115/133] Update baselines/fedmeta/fedmeta/client.py Co-authored-by: Javier --- baselines/fedmeta/fedmeta/client.py | 1 - 1 file changed, 1 deletion(-) diff --git a/baselines/fedmeta/fedmeta/client.py b/baselines/fedmeta/fedmeta/client.py index bd77e04b6a72..e1485ae61719 100644 --- a/baselines/fedmeta/fedmeta/client.py +++ b/baselines/fedmeta/fedmeta/client.py @@ -165,7 +165,6 @@ def gen_client_fn( def client_fn(cid: str) -> FlowerClient: """Create a Flower client representing a single organization.""" - print(f"cid : {cid}") # Load model torch.manual_seed(42) From 2523ef1aa1921c04dfd46dc51569efe773f00851 Mon Sep 17 00:00:00 2001 From: "JS.KIM" Date: Thu, 12 Oct 2023 11:57:55 +0900 Subject: [PATCH 116/133] Update baselines/fedmeta/pyproject.toml Co-authored-by: Javier --- baselines/fedmeta/pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/baselines/fedmeta/pyproject.toml b/baselines/fedmeta/pyproject.toml index 6a9f74a8a298..5defe4b5f98d 100644 --- a/baselines/fedmeta/pyproject.toml +++ b/baselines/fedmeta/pyproject.toml @@ -84,6 +84,9 @@ disable = "bad-continuation,duplicate-code,too-few-public-methods,useless-import good-names = "i,j,k,_,x,y,X,Y" signature-mutators="hydra.main.main" +[tool.pylint.typecheck] +generated-members="numpy.*, torch.*, tensorflow.*" + [[tool.mypy.overrides]] module = [ "importlib.metadata.*", From aa0030d567eb083e1dafcc2fb3cdbeaa66b89986 Mon Sep 17 00:00:00 2001 From: "JS.KIM" Date: Thu, 12 Oct 2023 12:07:04 +0900 Subject: [PATCH 117/133] Update baselines/fedmeta/README.md Co-authored-by: Javier --- baselines/fedmeta/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/baselines/fedmeta/README.md b/baselines/fedmeta/README.md index e2076ec149b7..6f12e48385f0 100644 --- a/baselines/fedmeta/README.md +++ b/baselines/fedmeta/README.md @@ -67,7 +67,6 @@ pyenv local 3.10.6 poetry env use 3.10.6 # install the base Poetry environment -poetry add torch torchvision poetry shell ``` From 21887ba068c5966c26ceb9b2462eb034f23e0f1a Mon Sep 17 00:00:00 2001 From: Jinsoo Date: Thu, 12 Oct 2023 15:16:09 +0900 Subject: [PATCH 118/133] Update code --- baselines/fedmeta/fedmeta/client.py | 36 +++++----- .../femnist/graph_params/result_graph.png | Bin 151054 -> 0 bytes baselines/fedmeta/fedmeta/models.py | 13 ++-- .../shakespeare/graph_params/result_graph.png | Bin 123180 -> 0 bytes baselines/fedmeta/fedmeta/strategy.py | 66 ++++++++++-------- 5 files changed, 59 insertions(+), 56 deletions(-) delete mode 100644 baselines/fedmeta/fedmeta/femnist/graph_params/result_graph.png delete mode 100644 baselines/fedmeta/fedmeta/shakespeare/graph_params/result_graph.png diff --git a/baselines/fedmeta/fedmeta/client.py b/baselines/fedmeta/fedmeta/client.py index bd77e04b6a72..6f7fea5d8a1b 100644 --- a/baselines/fedmeta/fedmeta/client.py +++ b/baselines/fedmeta/fedmeta/client.py @@ -20,15 +20,15 @@ class FlowerClient(fl.client.NumPyClient): # pylint: disable=too-many-arguments def __init__( - self, - net: torch.nn.Module, - trainloaders: DataLoader, - valloaders: DataLoader, - cid: str, - device: torch.device, - num_epochs: int, - learning_rate: float, - gradient_step: int, + self, + net: torch.nn.Module, + trainloaders: DataLoader, + valloaders: DataLoader, + cid: str, + device: torch.device, + num_epochs: int, + learning_rate: float, + gradient_step: int, ): self.net = net self.trainloaders = trainloaders @@ -50,7 +50,7 @@ def set_parameters(self, parameters: NDArrays) -> None: self.net.load_state_dict(state_dict, strict=True) def fit( # type: ignore - self, parameters: NDArrays, config: Dict[str, Scalar] + self, parameters: NDArrays, config: Dict[str, Scalar] ) -> Tuple[NDArrays, int, Dict]: """Implement distributed fit function for a given client.""" self.set_parameters(parameters) @@ -75,7 +75,7 @@ def fit( # type: ignore # FedMeta(MAML) & FedMeta(Meta-SGD) train inner and outer loop if algo in ('fedmeta_maml', 'fedmeta_meta_sgd'): alpha = config["alpha"] - loss, grads = train_meta( # type: ignore + loss, grads = train_meta( # type: ignore self.net, self.trainloaders["sup"][self.cid], self.trainloaders["qry"][self.cid], @@ -87,7 +87,7 @@ def fit( # type: ignore raise ValueError("Unsupported algorithm") def evaluate( # type: ignore - self, parameters: NDArrays, config: Dict[str, Scalar] + self, parameters: NDArrays, config: Dict[str, Scalar] ) -> Tuple[float, int, Dict]: """Implement distributed evaluation for a given client.""" self.set_parameters(parameters) @@ -128,12 +128,12 @@ def evaluate( # type: ignore # pylint: disable=too-many-arguments def gen_client_fn( - num_epochs: int, - trainloaders: List[DataLoader], - valloaders: List[DataLoader], - learning_rate: float, - model: DictConfig, - gradient_step: int, + num_epochs: int, + trainloaders: List[DataLoader], + valloaders: List[DataLoader], + learning_rate: float, + model: DictConfig, + gradient_step: int, ) -> Callable[[str], FlowerClient]: """Generate the client function that creates the Flower Clients. diff --git a/baselines/fedmeta/fedmeta/femnist/graph_params/result_graph.png b/baselines/fedmeta/fedmeta/femnist/graph_params/result_graph.png deleted file mode 100644 index 935643b46f900da9f451635e9a5b4fce5d13c8eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151054 zcmc$`WmJ`I`#uOrDBU0+jUe6Kij;(;(jg$--K`+q-5}j1jnWO0o9^z;x%TtCzjx-t zf7Y6rHM8c!UTk;V`@Zk%jN?3xv4mK9n4i=^cJe9UN@z`B_*j z|N8-EYdaGbuFBeCaF7=^QlIT%U@-Kd57?g~1*R~tFfh{Z#8g~T_tRWcHLS9LcqW}0NN<~U3H=EKlFI(zkwuA=bEWJ#~H_9>NzG1z=M7HkzJGX?h zyS2d<`vm*?q{>I(k)GebTedugw>%D$nwp32&K{c=>7}Eo;o*Em$uXb9`!V2Nbdmb} z^BlZnBaG#z4t*W^T!IR|{6B9jhrEBT^Y1s{I`G0UoB#WDA_^CT|NKLpQ~VhDKL;-R z8nBG_&tb?hwZ@)zF#LN=@`mjHmw$lZ=6WsSW1)(}-qe8sh6ME7tumvjrGL%%LoaW@ zm)NSox7uVRIyt%jI}UBbZc#DwWhC@0m*FTop{Ke$*oQ zTczBRl6?aVF>pX;zJITU;8UvyUshJuyz5pPDyiV7kH`4<`0VMXuTL|}vw^B9k2ic!KhV* zoMKBR;PivyZ4l~|(r>v=!eDamaTP<&Uw7YWy zE7KA9XUzZux}?lV@hrN-nPUFOr>CnONM!3V3c~u+W!erq;|Mb6YPCX1xuT`tZTQ zU5h_0yw&q=JVz44cqBb6BZCZP$?J}3V`D?`|Zd8l>E~fM3&b+o9=$Ks4zY896NnhKJ(?1qE}b zb=-$G1;MG=6jCS=frx8=0YZzGo<3x;#r;{PQenf>6v$8 zVFzKB;4Tx2cr`C@JFa}EO|O{U+}ksE(^6A=Z)L^2(Bv!`P5pRxBm!e+XE)R8DUkC% zj8a&5@zCY{4?;0jRlH*La&F7J+r9F!9S2l0;pX8re2@t!f&XOfGE9rkNRevs_CgcS zn>TM#1zn?KXcfjwHF>J4s;)1lbz#As&)05pLcfy%PgIN5TwFM{xRZi|kwAQNLng+@ z3Hj`(_4W1P;o(8>Ntf%iz|hgt!!7?URECl7S@`8>{>x#$n01VUV^VL4H!kRiOj zwRP5s!ZHdDdjIgy*W0VN-Wx@Tidf&nW$@>Dy6fgk5JGRkHG4lj@Q`_3XF(o7(dpD}f~3ey~y^&(08P6I5d%QEb1`PAP2 zIEKQXKielJV(yOGmNwX4Ku_RZE+@45y`rb5zXl1sz0@Y+kAzWo!(%niDrZzY}@9HcaR#9sA07%PIW0 z?2o}XC-MHh-C7vW=|+NXbbNe1FDVrk7S_Di-2tO!-H(ldgo$!p5fDLIq%k1XwLZKH zfL8SV3abTv@XHN%hfR1_PeOhLdR8_IpS;5i5Eq1Q=ulV9H)u7NO=>#)C3|{u64l?|zhC!~&n|a; zXXnkv=BA9RtLu1!?ON{4%%{GA0ojny&=_b6zv1DT{@dEztmU>5r=A-S0N)3eIV3zh z9ub3-k%pEwWo~_aT?#BkIS4h{z@Q+R2$9DIhwV`c2~BoyZ|^SKSA2HweqBsy=K1)* zyrHBNClYe2squdDN)ZN$kN%3E8jXZk5&6Z7C=U;hT(wdSY32M6l{?i%MKZ`}XmNi2 z{&}EW6O?B|*TO?3`U{se4Y(9IUpP=C6B7v!f9)~1Uay9R3XwpI*vqKj|Fp`4Pfbot ze0+TPC@bKz%XXsg{%Nzzk=~Ct!OxJ;Sv_wZz#7jqIUjYAMuTHF1b+Lc`Lj_rRbUgRF^i$)25ra#ZDXN&57=g<1?ad7qE-tk&4Dz?VH4@t}5~_a>65jAW9BaA< zdXP;6os3`kl_3)5&?|+;48#8^LScrG=%}+2qN=E?^L+BwD8vc~ z17}t^!gYFn{w`-MwIB+lHMqnLyDsF#-CZ*!B_;4pw5bAW>35QnG3n{d&E9yJ;2bVm z-cwLefY(Cz{>41RT2X%L(bVi59AjTO!41omN9>XTB}_(E_Qmt(Un_*mssCKq%4?TL zQA@`rB*dhpp^2__hmA~Q{)4L;RvRc0%H<1knwwKWxZL006P4&1h6F@JL|{5V??dXX z7L~59E=*N*H7IpaQr7=0M!Q6rl&ZmC*!k({uU;yw=S28xXsK$&EzsxCfI3|X!EJv3 zEm}j(yO}ymV*0p{&dyFm zvW$Q3FI>k)FJ9x<13M#d(u_LIiI$MMv1V6$5S;(PSzr~I-2;|e0-%k>cCFjtXz}4c zNDZ7w$V!NUDXSEsObs8}Ww}bm-X$AipX*6z6qO{q*S*X5__$)B3a9xLs((lOU=oM4 zlvMllbb@(VW6)%=x+Y1z{%=Gm$N~_k#r^6v7uTeLw~h`ehVV6cWo6~{&COV=r@LC2 zmg!uZ&5Ae(UkhXhR6 zaHnSefZ@3Bdjdz)YJo2}+b?%2hLFfSL=6lmQ3#m70MPW6lgM~DwXe!(;8TSjER#l! z9;n=)@uv3nO1WL^O1Qc4`y-;Q78ayK%iaEBOUhQd`*8LWz=-_Lhl40A&7z<>?oF3( zWd)N`f|6OL-DC&Q3LCioI;(|#ruum}Q7yT}=F;Kbh)F{7K~ImIC@g4u`)g5A5m-({%{q$}01l8cUC%c6 zXDa;_L>^*wTHH?hXfvQ~F_q6A=Idk;9ufxWm#LD^`Cf*GhDn^J(K|QSCu_4crZ`I; zXJ`N)&~S3bLaf`;@EFt*;g5DFi@$&Smg#)72s4-=k|9av87oQZ3hz^>Tma2{MGXx% zv9hp#BSy@#VO5!kSzSI|P}U^j*S8pBB)+RC{e8)IBIhoJx zyx>R>O&eccJKbN7xuU_gY1^q9Q({$)kZsgip@S zC=2h=eIA750)4J-~o*p5qH^XTHFIn|qeg|V9txwzBU)zGu zo13kzt^EdI96DdnDx~Lv1$Ef{+gH;Dp6t)nhJucmSa&d2J8&>f{hw0H*073Du94^T zOK(sWoI-SWis%S=J-oH{b5ztX??w^`nDkVgqVSBMVd4IE&5fBt~y6Aos6&Ghj;UXq)4h1j47-Zbv z4XM_8B23P=$F#sb0%@EECW~ayj7C92KXXHa7D)1j{X)SPH@d!8s+iokD#@Wj*-r^t zCw^CU#<%A?@7}*>x8M9ApT;jCCG{Ni|5bot5Xpsw(*gcv1(Vd~NQMH)s3bPSpun`5 z;_}vh5J20IdKND)uOBZtg4_=qgR`?KL+uwl&V~X41EXSN|BPn6Wx7No=Ki5vAkStx zP7O-Gp?Eyg5XjX$YF%aY6Gtcfdl z$c?DdWtX*QfLWbXVF`$jpD-6&+o zHAC1FI#i}!{!{Kdo-{+e%kY|DTtg|W&|LzwYbYMPB>);#21CSWP#!$*E+ultD(p67 zpePCeN|wvfe{Y;ap>S!l-19}0@Cq6nUI|cgL2ZK$8qgvEa=jOfnGFDl{O?~FOIMyT z_U5i#ltPrsfI%`KcO~CG9a(B*<^Y&)85eW~@EdlO!4%M->DZ7^tvcYg+`JLcUD4=G z*Swpl7y9!-z6a0lzb`E((a{mhy4_r(cXwe6Ofm9xj9ErQC_o>wRl%^?nL^ z8#eX+cbwM?&w}Hc42NtZQ|t-RJ>pUKIkn~b?{Y#8z!7Bd>LBRc)l0(OeCvb3{f3ce zSnJx2=-B@y2?+Zhup@qdoW~MCRedzr;Lh{zcvR#)BS~$*W7n;=%o&15t%KO(bFY6j zXPd#=p5w?I`nZ^I88CT9E2djAf5|TSKb*wV)2Ojnw`?Roa{pBy1QpN5n3BE_J4`0@ zwSAS~fwkOtSo{b_0i>=_*l_EQ+s!;$nDEGBYgJoZy(}^%pS!RMi6iUd0M7qV8CuC- zh5~;dto(g;nG@?M#@>FiXme=kO7wI+l*tkp;-6X0G?+V1FqcoGQUJ>zC|o*DR5Wpr z(Pm?*EvX~>NH66Hf2uAzD-!9E@lcmk-n4i$tG*(o$(sn{D!V5%D2uQ%{-0Vho?}6f znnW&ACJ0Z8h54la`&`==lRjcfc$z@8PfgSaqGtU$DfX|V1q6n$Uu;eHPKyC$ao0Yw zR!c_!UkJOI2v(JLm&2`B8@|B2sA!YPX|dJA`jvck4At}s)vnEcUhud7i+!BnhgPxH zbZP`qnRQp!7n3-G*quQogb?qTfoBZ*bd?@Daeig+;bDIJagk?esf6k{&$(l#UAJLU zJ-Z$Zsf#^UtF(tB3i%70$&c9IJztdl1~`u@mlFf8+Z|efeN3mz7P?5sX@+{Es2V~0 zW4>gCM!g=!TfB8I*v1V1*1;A-hKO0KVwuvXM2A4GF)fCgt#zq#uI~AnA8%|{@$VjX zWjCIRC$hc@t$VyXS;`zLvs7{|dhMy6pgBD@{bRCq!oL+Yn;0!=X{VP^jQ{ytjvB*K*-xy&?BjFEB~bhF)KSVC(Sc8~HMFzT#<;Ax z>005~0$#uVb4EG*UtveGBbrV;vK1~uYGmXZfQBj*j{q9-Kil#7{|XJU5;9uvA)*qt z|NNNqVFYw`IU+8zcK|U&2wf7gv|dvJ5~Ebs`bC zaVJWR#Vodnh)6Pz^)M);qh__tVX7b{MhV__>2FNlz)g?g{SDEMMA%s2wz+@JJBOe| z8l91mRz#w~8B2fuIXKY#rdZG0aAxUwv>Sb>b|it+VB?}5CG5k#K zg_jq*-vw6IVdx&aT$eUg@@5v|T8gG%#EblLB{TcK)@2Hzm>OoeJc}LJK`m6<#NIig zcQ9ibW{B`*Cbm%=UBzAxi8#i`+u5GjYL|HRdvoa3bF>SGnN5ETVRC@e0#OL6%%_<- ziO@JqhQG{K88LpU@WE%&sPMdV3c?_h2V`Q4+XbbNP@0%O;>llS1vcYBLZ_p}A^Q;_ zlQC-}Bbqb;=gmL@9dbIlZx?&hXQOX1q7oCOKnH9DWCfsr1OY9z5wE#km<;A}Zmap; zAT(kaC`_8C+^S$W^=!gk=X*j8n zjIC{@G+l6DAS@;!VK3k+zkmO}vfSbSgH$LP0O!{V>HDW(Htl#)rVsCJEt>mqd;r5# z?;9+hTUka(FQ)sPG)&Zy)KLDH_-NX*jH!^O6r}raJslL8FMU$>24+sGA<$=Wv<|o%EfYMH+rJsCHa@% zm^KQiAq4-e~; z*v{uKUg(3&oOgm)UfUdtLPOKRZB|}jaU^Zxg9AHC}!xD5Vv~16% zh~b-jVP)y{r3;qt7am`}Sddf~1@D+bx(50$H0){LIY_NxwMaBo7ODQ|KEv~C&YvKDTt0y0=R%mDPFmnK!A9iPgqz7sgc=fLR!nJp0%jR^^bWlf3TN*^7(VL(KCsh#-FuHeSPD(d1>oo z)LNPKNgfSWh5p5PVJZ<}kGyUhdR1 zG-I{q>Y-kx83Jp&#pT==NSJtd5_gxi&H-RrJ3h9ls@|9{dAPf>KV6rGd-hDOT!@kJ z2N)SA_Ud~;!VaPF%!@iWaKggEHs9_R3*t}0MfyRyzjhD^6S z>vQBu5u=k>dN;Gi(VT6bx7aN&pJdJMm(pwaM!n8Qx|tlmR0Sh8J2%dJWZjzqa_g4> zDBpFG+angOUi?&56Rwh;W>80YCedNy%Pf1SYrZMqerY7NdoZ`h(X%Z~F0JS((S{@52@o&5x>EL9Bf>Y^c4+yK~B{_7Siw)-? zxZ0+re698kd9WfgF^E78cksKnwzzVAKh?5?@(rMuY{HxZFdNfyb59v$)Ype%!7eX2 zFKvJltamuySYy3J3TV1?&&$t6#pcDu^N!QnfVKc+BA6yophXQZzFxnZBZ&lsn3VZd z=;Kzo4Vi6CP2YghYkYIM!R;yWe(uQzB!w<2SSy}I7k?mKV3Uwo$aDbMtWNjYetpLs z#*=jSzN>u*ZK7UgGi% zF=s`=Ij_v?3&P?U0zYpx<_oLbUGFpee0y-+Yuthnrduyp`_qo(3rsA7(;GY!o1n3z zEQjC+ZVe>AX+^ZHMcb$5sfE9})(i;CBXswI#-0eaBcH5_dEbQUnD66%E|yQAnvPyP zwMO)zCj0pU{(z5KD7WQVm-ky6=Wnkth>$*$1|i?wm5jytNM?41hdhxF+10&Oy34WS zYFUTQu#3xj7~Ix}qvW110UISF^8yvM;+xtpc0^}WNF5UxlXLU(#){Qhxt?$C^*|Vk^UYyv9^n z$2D&%=NKf^mSYK^h~SiN6Po+A#`_o^pIQ4^$RcF-rAhj~(4pyyxy4*(L5jnmW(-tB z!YhNJk6GU4>c8uM6vGcPJ8oN4x{tr72sKCv)QBcIP_@Hljd+|BQ#GKivY-q68#QY2 zvDCk_>r;ctPaknt-@07?5ZvPs_=w2l2N^&01eCzN^*9Zg(1m&OE2PgK;QlBCeS?j^ zJL7JcifH-q!$3gQOAc#(U9A7E_T{oY-uAGq71nxL6wj6iLkis=;U#><=WnP8+A7{x z#q31YnA36W4>xalVR+{wL(lATb-=o0}cUJ%?~N+jSz=Si_$|YlfNo zm|x+RiyAR)nCd{np!Zl8Ys0H!psL!zPk$A1H)al4KsRFn!@l?B^td$Qz;Z)hm>8^f zl=yIY7B0Pl2ES&a{r&6hNHn9TnQw>9XqbGPMEfrmvqdQSPYcqN1QHn5YIoi>y0p=m zQpTE1Xh(k|S(Hr#>K}(uKQ7?=qye+DJzY))Y7qAJjt0oDWIt8_i+LpgD*ZDNKWUOh8S8QL(hBt@Q>mvaR1q zb2q1U65(9JuFUGTx~drVFY*@?m3{vfqQ+$PvHUqsG#d8w;LbA#j*Oe2`?fDOp8IIh zlP^Y%6>Hw&H<3>}@Yd%Vw>gdlHg7oMH{BxtCUQS;DR zGC@Exv!QgKFs>)F9vB_YOD?HWToRwReY&hT5{Hb`8@nH0EkykSxnAs0W480di^6QU z&LH}un(jOL={aqhnwdSQ$Epb4Q&b#v zjX2iX1*Ibx5T32KMNSvxP#*t?i(mKXKo+4?Z2%zXhP7}33%h0ncJ+I%BAGaZh$TnG z21IrfKXpdV2d!Zoq1E|EDW#iAX3xO8>7VyLcDrIdc8YiX5hJaLNfQnx7`-DS?xfuX>^T}=?jGt2W<*KJ8Rpwxx9-QL5Mqtw*?=?>JrVj{pLy*G z>6B}HB?%gRXVGe&Oa~Sc@A)e2VhOvGAfai#!}8y+k5Q4Z)%>zztIOMDHzj-UAl>2q z+fi!7YsLd8<5k82f)QdUPufQn-zg8K`ge%7@cArd)=c={a3bSKQbpOdmhS&yn$&@#e<}I3{Qr@m9LQ9{t!}pm`eA0IH=1^x}bu@nyRjo?J zfxxKbiw_gInu(aXl+x_EW);29olR+S_Rnr3_lzfDv^q627r%9c%W$$=@!M}ik5I+d zpv~}g+ACEe;*?=1A;~%ON}gC-f=Ns5j&6g^e%<23ef6rH9sTEkGn4hSqW<~Tq;lQf z^G4Zyma++kyq9~(X(8G_?=tfEAzYOxkvAPWF!a$`I}GSVI`8?KDN$){Lcp*Ixbk_I zwJ@lv2}Y$TsKmZkTJ^DUjGGb6TfiOQ=jZnU0xT90p@MEuiCWQC>hnI)8x0nPnz?!jw2@CJUk~O} z=o-;g@_bd&^c%<0YC?Y!kgu52hXy77DJwjhAKreJKSz?y;G+T=;@)N;KcdA@3PPv7 zd$?lbJuaG#qq8WHvGc+fH7`(1>6iCPmNQHAoKh_K^Xp^11{*`@+$@a&|qlp48nm<3rH>odV0)o1Tz>xigZQk6?ikjm+*ZKpmS zt2N{oEc~Xr7j$s*!t_&Dv@ZK4Bd?X9VutuH_k$yJ{Uhn zlUB9G6UYWGqGr`os!J-LCpo@)n@0lsm!NOrkJy5kVR0$$n_7*YT$Wl#_y)b}nj+7A zNVmSSdz}_i%BT3zNxXJnuhCuE=dAWvwOg->hY%tRpZo(<6|d7!{JC?wIn)v?_f)b5 zhPo8>-IbbJ8`Y@8;FLQs2J5 zc2h9bciIjZP)3_Hr*$WgipTvU<>>5qtvd0ZWmjoF-sHNhx$dZ`I)0EZs(IfRMsX%5 zijQEj=^Y`6O=CB>#uDDtPY`M24G-BB(!K8^<>iIBT-ua9q~!aqnqpLJ;OOf5m1CFn zNEd@$n6-HP^`sl=mWMKx6D&1fT-SE8`tHv1kYRfAXP8TveIflej1 zOo8My(Jk>u>xj3=v&p;X0=}tU0@0~Qu}5f(tg2o=JC@XriRd@lkbLBiypVgPtIdqUDVu#r zk`huSRU$-~3oy1%8Km4#r5z9uwsGOhv$Fk~X=HKTeu}gn95jV~@t~7@2>W_QZrD0G z({FC?tQ~gj#$~y?NPd7NjHr^Hsign)SNuGeol)bs!UQje@sHJ^-+AApOreSc!;3zc z$wE7;wC=gtMf8{D8p0xX^qfvLoK3K7%!I{A2r1-OO>;eumK0{6hK8G2+6!pjDa2z$s;s&Kw$pi8rcbeCN6LCOlM= z?%eg>HfKYh+`IVS3 z;wK%i%jn_bnnEX6irFK#VI1K8*F)@?Q5LUViik7Ef96hRkN3Wqy!C)oK;3jLBeoR( zstXO+tSY^HKD4*(S?_pfNMxM(`SMAIhk^_cM)LM=>L9~Nm-r!#V!M0sBO}e$lbNE- z$_&LXHk1x7E9##5@A|69H7h4+;vFKJ(ejwQ!T6FQ5h4L5M2wyRh!l z^RH*fQR@AXA7qM8d0bS z0-6w}fg%?F!I72y0=pfxJhOK0*dxF3w)Nin7=6v0x}u}(FSM$b+&S*IOuRyJb?5>o zxo4cdf@|X0??=SfT|zxyo@Mb*Y+}NkKPqHJd>Zbc7@8#@>ifR3WShyNqS7L}8~m1c z{6Gx-LP+W|UO!dSp2d{Is6Kd2p_i{z=4*9axk-mwPdRMb7ek0@YtOK>);o1LL;=3$ zaJvl0)(MMoNoE8hp_|+ZZoIzuBO3E@ksrRBOPP}k>*IXCC4Z1FcN1%qWO-7TPMv>B zFi(0adx63s;mzU*72hJMzq1*3W8&in$>g!mdN%&9vxES_9~U2=`}+E^jSb-7F7`pV z4w{}Q^NmiVsaUJxN~8)U)5#s1(Y{@?LM8lh$E?RqKc=pP&-6q`&rfQRKO{Ehe^~GqDC@VQ@IwLZ~o*I-Qlt*)jyUF!e=T`rqi+|;Z zydkdnS_VUWN~ZUA74!BuX|xZd_&&%TesB^g>yy>l-~j01dU@sK(!n+Z8)vNbHM zj!Efo5rtdq5_6qTimvC3JLN~24iN5wtgK_!X&>drw^@%ZEX;Bk0;0XmF<3<4 zBo1@ejrq!EGGmENsci7PxKO?TzQmk?SS7#J9>wc-E$wIk!)V3 z55#`_9?O{uUoZ)*?(NAQEw)I@$<@wS|M>HGKA})!Hi--r8eo(A0A>f-c*d;H)y7a~ z0C+Elr|GPusK@~L4E}U?uO1yK)LSjgsBwf<0dq5{>pE6QNC-$`UY`ueloMijw|mbKPTK=WdsC%ks3O{}+B)CD}{v zqw-Y|URrk_>1dJ_RZ7=(nDaTkuQ$X&n|G-ZNTO@k=IXi>kdVBg033zBPJ&pf<{UUseh4*R$NUZ; z^&B48Hh>`5nJgxNigZMr-wM**LO|KAaKEwwPNce4V4mbV+Z=*2IkB;^tY1gT5z$Gc zfJFl^6Hs3-)SNnR^BZj**lb~b5c7lsb47*OBt7s`T>~fb4xmART`1T6>TobkAOR>7 z(JC=9xQZOLITJfz0^|7#mUMP@_CqRf6i_m&^!+>OZ3LQuQsQyF5)4dQY+rgYgHT`k z0pkpVT1jS2O)T(vLk;3OE-MHy!0VaFYfJfx-vRm#I6Aw{vM6u_nS4AssGZg^1T-+9 zUpUPE(gmTvk^$l+xF^0lT2Or?MuBAO<^}u~o@Zg|nMNy;V0LEL>*E-82-VIpFGu&> z%YH|P#>2pUJABc<@I97AxTn~~2cIZ*1})&(&C#sWT>J5@=cTq=uCiI2*!~nJNE8*M z&CcIn#80W2TEAUyxkLzV#pOJC#y3~)g;J@Nx10Ow!rNET-Tm!4&N5zTnFBFvea8rv z&01KjmGcPY@V5(1UT4dPo;7-`2q9y){a(#!5=Sk;iTu3mY1tp7uMF$c8V7;|v^16c z=6aCgI!h`NQ2cl-wiTOKSLvRPL>#t;8y&5HPr(Yxzky5rzvt{a4fzg|(H7X6fvRIP zR=ZdZpxzy#a~{OQtw-y6%808}s*4wW}Atz7aS zAf11%`HID1JV?&VOBg2u6^nKR5&eBveg~(>pzv5PrUGZ#Se`5ausF(P&%Cs5y?MvLV%N-UAzb2_&fDd0Mbgk|FR2IZ3pWXU53DWai=@_W- z2L|fMf!g_i-@mx45uZh8f1D7(@9h1f-RFI{?W!;C6~O$DSSx=VOS^P0Zv`n51p z2^cR~2K?&AsxjxMgP2aC!~wysdkJ@w}c|7+pfOSQhezDp_1mO691` zPE`(65hoIEK2}r{Pns?@c{~ohjH|Ctl_g>KiT;h&W*~<{GN`&Y^|95OtY_iVwb38` zJh7DG`9qK8g_5M5O5I@eOXB1c$ARgYDtWbPB=lJQ5rMq2^4}ksD_@ht$bF@|g&V-j zlxw?&)0Rhn)NaC_(R_q)>g{b;)aY;3n||w_Jn+Y#;87%(Q!5|p%RfD}1D>h3qM|-K zOXGR6auXN-N6m>3SfXB6qCiz6z&tX-e^pV5eRHu4l-cbIH(-f0wLJv(rv*w?(eJ=> zWP7#Xj6+7I079n4tuH;n)Rg%{*wkppzAQC8J+#or%+!)Hw1XWoF2@~6ra-?0C784L zM!ZV6z_AVHVCZnP^bSueND8s>-Tv4f`9o4@jL-8^7Q4f($ofHc*uQw=rIbakx_^b4 zm$ch#RZT<-_we<(57AB1gXa}CLM&+S22lPwSmnd!p~jtgnXCD4lsJu(_5w*vh#s%c zd12$!6j}DwyE3MpN ze(gQ?T!s}#M9ZEGfA!VR|Hb}fD7X6+zsO8TzjFK=)~#Y}rwdi}6@C1_FPb;-|F*W~ zZ>6*KkIktGIAxaIc$TK~rZ7nWUzQS|=v1_fyvG*s+OU_jo@LiK! zv@Wgxdi3G9_KN7C;X9;9|6hM<9g0$iJbRy3xVk(GGCT@9y7A`QL?lEW)-P?xSXy$o z`)!0Hi;APDU%X8!#VXS+kbfuq$V=h8Gz2T)r|?}(z&ZQ!wCbSTP}0C;n0k%os_Y~x zE0Pth^R}_(!~3X)*=jxx)98hV+el38coy2N1?Mq%1T2n)anC>1wuW76aKOzPPD4Y8 zimlx=hwK)yqOja(i8IGx!dR!CR%yB$`}#;z{d1+no5>EX-s#|hyndp4Z_H-W6+3jx zXL_uJbZ?j_Sjk5zdH&|HHAn+V8*G|-4cwx*G`0EQ-j-X0Uyc`YiQRjGG(gxckt3px=_5I0`d-?j^)&zH!Uqyv8e-4m#bwoaZ>O zA4K;BjubDimbeighrhY(SE9UjfjyUykcz9zQq~UZX);;smPg2mir1{C57EYvC;84v zL9t!hvVj(P@}1E|+jd5|^XYca^tOv2)k}qMRRcI9TVDx8Umw&v^%#Zq?>naRW(oez zwH!}&l9tXDdf)^(JiM%;Q7SeW5S%k&?-8^2kwbIm`BHIt{%%7aMNRk8lDzpQSg}&PPNC&t&N5CE$7(xLjMq2sQ zWdQPMf%XBM!<QWTi6@T06mhvoKK1(x>f_ne`oz zQJ9s;;s^RR85>v)6|sH!kwi3ZDe11!=}8iEer*S9-ey4cand0Nr9H9nrsZn0^P|Zo zT15NS;2ezKD|cD@6`H}^&*{_9ImIwd_Dsy%>$ZcqC*-B85&zV`Me=~ubX?7uF9;~+ zbQFK)xW`kP8YZ}H7VLUn-e^;6Qf?Ghj-%jef>I3UcCI*Y^+D2^$GrC&Sh)a^Q;^E8 z-Nw2ziEJwMUssM@@{kQThtal%-;7wOsSqmO-C*fGT-CU}BE`Z&57oSOJY-~Hb?|fi zu5Z#s=P~~ih~d9#2P|2*)mxWaek2Kd@`LRs`oQ4}OjUIY-S)s;Z6d&}P|jjjn+)8_l_n#kbG7C@0WWY|uC#kLPyL<> zzHrXh)Vw`MzEB)OD9`oZ$JjVgAqk+GZZCA-ptBNNXpTG2vy+Cbslgs*i^M{Ri{AwOWE1FTD5m1L;^!;YtblS518E6(oc zMFp1dAJkp2ir$d3Ou-#HP|%x%OTL4ruT92pySEb#%KOGmi`3$`%oWj%ILQd-6x1!9 zZqmEp%&?h6bked()O3fcF z=B-}*n)%Uj2r?h_!8VtF^K!|KNyZzEpc}^nnTZiCjsvuoBVmIjFXA?4?dP7yVg)^2 zEob4f4{8pF7AI~jjw;a(Y`Z`IW~{CnfZaiF=;HB_FRYk|f;zH-MLVvazA>irm z>gsw;0Ow1yddpkTI=$`DQqO`{qrn7);svnqOofDoaLbRiE_K>SOu)J~`~C z=klBgql6E2pC2T-UDGOSeOlMjxj{OnE7X*;hJ~bJuvXBiC zCGx{Br@SGNCtizZinmuw)U)69XiGkc^^azS+!2YOCuQ&-=tRjQ`kM*`a}BqKa$60W z^vB}j@7FOtu1+@d9hl=gKb^`7v$Ule*jq%9b_}Mu<8`$?bbr^3C6IxGpLf71t+V11 zn%>yTIX$*<*Z-`|>vc91o0tYk&U8Pd*a;Wd7O?xW&|19bL$$Dl3}x8;oEtsGa-YW>M>P0gJ4w5Bw2_)xkYXsI6=XmE0aYUl%;eCF|csr zESMXLF1?f@|84>RZm#8pial#Lh209l7lG;?9&}trITIkTSWAl2E@(3s{3$GU1bc- zw`L&*{E9xaXnt(b=0oAHPKlM){yYxMSq)M#?)!byhH=!(T)q6`xVN1dHezyiPw=uh|HIN-XTzKoxasdPL27~Cg$h?=& zNk~zH4+Bqe`VSmj%Sw0Eiegm{sI|GQ)7Bn_E9xyeZksQ=S3*9wa$S05qO|D_%u3WY zCeE72s!wHLaO%ekcX!WAW6&zkP9?gx!PQ(}sEZ%A5FEubeRthsqU`xmct+Tg%$XI| zxoV&-A8v_Wt`Sxc*K4chLGe?8ETJdcAqR)gOVEsr?0$a8y^hkQ9mb=qOuOUdLy-`V z)>g@9H*xZc_PBjU%bk* zV`1pn1AAw)KPTNpi^Rs%PI`F}_P?4&ytJ4nl+z>E2OLRTHg`?=z);?t8BJTccvfJf z@3S$%tJJC#pA;;WT0eVHsjw?M?FE=s0>*X*=I~6f2iDjG<>QNKmv`^6J+2lUcQKX+ zSj><9dWCzz`^(6EkYL9s^FX)e7`aOmI3SSe8!Vw5mkvh5F8=C}BYZpvoCjvVR4G46Kj)F=0(cnBUg=rES2|$ z%-_eypUuruuY~9G!^UK%e!a7Z@9YHbyTTX9*+c0m-jaX z54c4~Z6h1s$HKiao>@1Gs)ZoC1O$y6AL&#rdXvd1Vve!sJO+XtC*Z$DP)CgGd9#4j z#})J3Rm86!1&-h6HKw3nC2rIE(>CAZUqS46iv1KYQtq9#YiXYt8>yU_elht0kBV)? zUXMzC!_Hdq>HG1$LV0zm)h?xDwY0dL>CJ2Bqi~r#al0JFu${m1_`|UeHwDTH%IeQs z@2omWJusijv`@H;VNB&FMnoj@l(3AAULY)&>N(>%^t{5gu3(B@!Fnm38FShs6Nn&M z<~P~PxK+0dv3_&Af)vVq318mw7<+6r7n@k94EvmzKeqFz^>@9eyWdgsglWbmT?@Kl ztNnFv)R)!^{J-mBO@2*&keAWaCwE7eId#$0QBfaIVnS3XWz+k@h~z zG^YbjQ~v(`25hfG``)_(Zq8{)b|+cZeOstd^e+l&o01ec2Tn(Nl3z&Zi)dXyBQlw* zWKa~0K$m$6C{n(J5cadG^wZeePxl4GgnK$^|LJBQl1gG+Ar>S1#vI5vhTm0TD?trX5vRr z(B_Uj-KnD>^$QlAM*NZ9)%}DeQtyn$W?IU$LZIlIn23 z;HDuAMkc(uC%BN1PsZy{s6B^?{$=m7Ev}?f9=dz2dfR=i(zvZIEfPY=ai@Rp4vvM~ zc9*y5qzJ67=uca=ry38$M*)uoCy>48_U8hZxTZ1LT`Eky=l5r8ZnntoNnA#garnP{ z+i=0lu9QI_{}G6-_5C>AdPJ3G8vbl=@$0=yfzF>O1!3tN+qL7Px!R7Nf-h{w;c5(k z{^di55V8@HFzB=)9%ti!8ejHv2AdY4hHEIbNFwAG3ux;TfLvLZ7#Sa-f2|h<@fkn0 zLpS|{U4MWY$y3VuktIsbJAzx{8}f`xfm%vA@v`l&EroXGxro3=yb<2OFf~GY@>!XH zJVCkycHuDsEJJ6M+ip)#LpR)r@OM25$MYMu2kNrd}Bw}&WLAv!NYJx#9@edAfF~~v?*k%)r&XN z#DkS12}!f!*&3`K;kPuzcpLX{?4~!8Uh{Zoy}CIV)m4mQ0O)V5@iq}ax~+YT@t(im zD>uF9A*-2fTPj>g;2IkdvBug^O&-SBUm!kGEB!D+HAw%1Z@?Gvo8X8Qzpv-*r)HLB z&AOUGYU7cx-@P|g2X>ncFm?gcs_10QIYs??_BjTB;;!u9R(iTqRGSo>-5muI?57g= zBaW;*fZc=8U5w6CA56g3+#hia>ZeC-c5iT{qZ0+3nW3JyXNagUdVrG$TSh9K4m3y= zd!4bL!*6{Ld3)N)WRHqIs5^qxr3uV|+bAC;N8ooqp0vNXT}{@~v8N`mgJXz^t>4l} z@-ZID7pKr;RE0&WU@lu%WN07$q$R3*=sSF7+g=-@tvXjA+S1F;^7$3~P-_7BXI@#v zXP=K+W&4iWaO|!Mt`lF-yQe0x!nO^kS=RBC^*uxQdOK_KF8o#K+%&-wkwBq59$x-K zG&O~)YS!uHdvHTXTLfHny>`a;*jGV=G4iG_NmUlL!;U-wVYm3dk@l8RRlQNWH_{~t zQj(Gq0@4jCCGe-arMq*}2nf=RbV+yD2Bb^6yWAk%UGL3%#xtJt{e19)dpOv#*1hJM zab3TuD4w8Y(-2h}BCuAQCQOs=6?`AxAe z@YgPig}4)b?qGJoV}@l$CnrWm^d+vz$!39Y_TAKiUS{QdmY0y=s;bhvzMUCn+|Tq4P3BdUo7AXdOx3nUTR&(>ogK=(R?6!@ zvIB!I%|?4lFaRk4a-aRx_DnJX*JC}|Ls@BQbm0EnoYA)9B75!`gGtRbFoEo&uK>?N z@t?!WurSzk6fnP+&9HmrOk0B9PC$oW$C$ldYHuy3(dx?x8mVwHfy8GKyMn@R;1_M2 zkv-}FE^mh+=7#8`B*}iH%WHwv*=_0H<6P3Rvb1b$qS7M|6l%asN#>aVBbtyazBf9djq6YsJn1}6Pd{zzS03cK9hms<`L*VKPgpMYhR zl*bMm(W0rIL>1QV5Pd@#9GCg1s{8LW30Nah)j7HP$)T4Yu3fWttsl_Mh!`2^Zx48q z7LzCj#IBa;RFGtTmoR+KdJ%shE7>9(l_d}gis_guSd#Hn=^D%9joD`%Of7eAJ1nm0 zu5kBSOOum^tK#Glo>e+2T+hq+>{%J-9bCVKpI4em&{aP;c-xi;r63E(if*yuIIA-* zlGgiEqz9cTq@%rZ>Qnxv)1>7pWW-me-LK>AR>I{fBvmIzvR*mx^ldL#jW<<&EiDg> zd?WhrC)=0UKjaZCW3T6mBe{Wu4Rb?TA34 zEo1wmR)3qfc&(M$-cN(bi;JdLQ&&1KS={x3!~L19u-wc=9Dxi>3)*(AJ(UKhjQ^at z!jN-HEq_Rgizi<)uz~*9ihCFLn?qnQ=@=cI-~kw^0HCM@9sQ#6E=zs0__TL+(BV{` z8sh<6pZgQZ=QfSId!y7`i!>x++fYhs0K$CKV%UTJjK-166t<~3^3u(0t~Tn!dL~{d zDJ!G7Zg{$9D>O^waj8Z;<2)XhOG-)rN#)r+@9N`4;~^;|8eMQtn?LXro;k{rzwpX% zaza_PldP%_f3)V4LEZID$8WzzQ37pSt9#xS*R(b3puL##7c9oKemZWQJTDw);fX_t z;4E2%w7I=S>nKCI{pxBlG%-J_E@)ei`UEqI5=B6-99zSzJmP`!XW`Vr1YPBO--+Et z>b1G!4n7;2$|Y0O!~Ljru~F*lbgpJS{e|XxuhS)Z3vKX1D}C}td`tM>@#;BRcBU7+ zAGdHu>DB7H`IU=L!rC5Y9Iazw?)Pa#UaxIuiq5ravnT+=@*4!?eyM>K z$;h?C>XQ9fTy$_FiGt2DAp2}odY&&`T)1w3f4tqy#k#-*N96Equ#98 zn3%x0Zv9H3Duq^sb@`;L6W;cs&jKo;syfncTyK5za$l#1PL>^res}HMQ7`3^`!q7nVCjUIrv4;5z`0bwSqk zN2l$P@kR%u+eXFYUgF$qZ18DC4=I4EfJrjJHt*_eLAg$$)dqTGx#CCJ1WI7~XxS_+ zE$s$02ogJ};!SJWaOYVejO^}!je5Mk0xm&SOe6J$WI`XLkIb#{^4o4$HYV1*Z5zv} zva^l;i@HsE1i#{aJ9~1k7g_u$a&m#Vd|ja%BJ0Ih>ockRe)8Iak@Eg2$yOp!I=8iV z7@|v(g`tccmn(8OJ*ajr2W`K`6&&C>abP;_<+PAYYl9>8wMonzNye-B-J=K2n+*%B zxvJ^YmPe1lC&!Gn5=W;k@x1AYi*pOAjA*A{*h@}P7MW&R#Iv-t4kL`x+UgsCqa`P| z;$~vvkuNV|?cuZLCt}yW95kkYJ=od#g}cNNhFZ{P^!JwEEd89WTh_&wQ6#V&t@_TPYx`3FDw0WHtKyv|xg7 zj#(cjb6fdQ?&)?ae1j-eKyA3h%g;AZlp*}!*K?LG5b%?04_WyBnBK(1@q_VXzJhI2 z9<`9?!qaliADy5jX$|>+xkwK(Et^Kp)$NarKMn+Opg(>D>78 zL@K|qtXo)b2Y8PYAXJD;O#Cj9n+=J84FgsLV3T#Pu4YD(37i54ktS(_!={8*gKY#z z0~?kcF)S>q=hzPQo1GbehszoWBY^Ma)vH&(qbWrTOH2QPbDjg{n$PqyaMY=!Vt06f znjDzJ0MZ4`-``)y_u;~NwT-M!YZ%O?A?M?gptbiocRUM>u?hHVqPgS8q7f+hKr;;z380sL0|tW4t_OpU4|mLu zu9uHRDvT{hp7M34X^mzVdO`J<1@DA}rY=Xvqo1Y*G5l4&;|i8MITc|?dGQ%C@SRj3 z@p2TX?Ze|eP65$W@GIgI@b`8T8LGn;?DlK- z$)AHms?gIx3y|n;M~Q?c3-FwEdZ`g#XP$5oKS2Zr-dvz!wV4|+(?`=Y#`f*OwhJ29 zaNb&XhamHWy{wCM6hV%psBpa#a?W09aLMbSh5|AkxAG2gL~ne> z&*Hqv{Q>kIhrj(e&w`%+{=zR3lE{I zB`55YlM|4zivWSk+`TUNvK@dm0qhwAAYKPPlH>6C&>emwyADkgTtw%FB|1KhK%+vq z2pioyqEj<=6fWTqW(HRI@aDkP2)7<9xE`SV7{GpE@sWWMSsb zJJIiAr}t;F3MhzK>h{COAd6qwE-hvUMe&<+4>t|CsxXL=-7t{Aw ztG-Zh-@=Kx(4(ofpW!;sG7vzSc}q#@&!C+D3gikxrjsU5s{kQK_u<2<2nkVe?p0M) z0V64ZS-aleTXw!5@KI_&$|(GBt_(;@J?}ET0K zkPHx_1d0#%|1%Ulb z!Kr)Z8nEaVRHhVV17oA+`@b#V_h%lt114--Fg63iC-Z_ebqhHyEn;vPvVfKY2;>0j z&vKywa%LJE7dKyTle%*Y1&9}dB1WKt`u+98aSx&X8h`^$tLqPgiRiBHq}eF1s?wLs z*+Ko0@6vqmI|glyP5fkDB)`w0f8D-7P|t&2-EnhzOjts(NGVT~L?>B49U!R|DOA6N ze?$>3!%tP`Eks%m8B{rD!&}70G4l=oHC+Fy1@6sRJiv^75|Ej8yiy{=ko!!cnl{0cf*xI$j%5bA?Pruv~2qj&d9AKf+3Rw78wm~&M1y%WTP zvFdZ`o3*HzN>Zj&SOqzWE#pIF=FVn>$fo@5%<{%t+)#B}wB%3-@#in?K73(eepSo_ z`h>eB4Au)Oe$q%4Z42=)5cco3)YOPUMj8bbWOiG^k<&@rM6!?|mQR;nn5%j#g}CHS z-JC|s7)3@6pj!MblDyPhb+O4D^2$m%fKb$XeyDpVJlERNP2>6koV#FwL)5-!i9s>s z<+^Taf~u^h=E2LakS2dJfn7Ic4hKWh7cYpnhFd}lGV3og%gedfV5(1OSA_a1kGS`1 z0hkR)6&-My-iZU@Z!SyF^lUjB*V09Ng~70O9dNT~1O!q6oQ>S~-XT9_nGArfl0lSu zCYc%-PzrgRe+6u`mnn9hP0wcTXPW3K1k^e^8fV$U9_RF6gk3Y|+xl77<^R{=AVK`U z{*R&u52)tgNCn+rwd%=(IXUxfQE@TV(hr_B;8Ff5TjM!k}o1@?E^UQNy zv@E`TcBTK4dL5SPU#{jV4uAou4dQM)TZO z+)Y-%@bMqannVO^96Nyj4#B)R>u_@{Bj6t2zW05#_m(Cq2|T%}$kfQ7k1AO(v?p4X zx?W}F)zc5_f-NU}v8lFv&TYM?&@^pK%C69Zu%q*WLg5nVkOG<|#i9-OL9Ie#ne8S* zp&*1&6rl9ac}Y?@*Dz|(&Zw^+Hy5-}tR}5ekT<_< z7IiF1L31q1zm1SSwF=d|RMzL!&DLo25o%9JNvf7C%M4x5e^#ht-+a?xfUfy-B zT3b~qwq#`d$zBCgt;Oajb3-6t!v5qt$J>JWEtEQjABKl^I8us|u z*a_O)<`T0QZr89R`2GLh>n4K3`x0QnfNt`S>hUN?4)|J-p#m|k)xSx7HX`-?if34w z#t>K0irl_YY1N1)+m@e}9S3?FKm!BXiRa~hRaKiKULG?O(u%1J?dmCPN0gf*JV=~2nFHjukrcstt+MGl1_OBl=n?nkCHP7_3C8xiu(q&Me#`w z;I&Gszs3?=N`ABR4DqD+X6qkLIG*%*i?I4Kg7}5-iD_RNDcrOvm1Oa^$z03KJ;zV4 zC3=2%i9czp0}Iwa$E@RbEjG?UgNr5XCbK9`@q2skPww=Mn!T(bHIs}IWL+=drsL5&C>!Hr7q&vcp@T+)TRuK=Iz z`nYRB&?KT)jWa%RcQkD6;kXMEqsr=6u{0G!QChvt0}#&`5_6sYk|p80Et@6=blC-~ zq-4$E?=NozkNvEQy!9N)H8bK9b{Lo@U%%PeiH+v>ZjO~C=QBnB-TvsoaeIZ$^FwzN zoa7?EjsR+_5rb4qWt~!LATq5s9j%|={&Jilq#e`&$Hu0Im3z|DQ*T8QNmi1&_OMfM zDJJR3wx{7HmoN|}otrs__N1j&^PbUB{@Ah(xuKh-|0wTdQ@6H;E%%q0S@Vmgr6zX0 zAOykAt{sKfO{J_rBRUa_3lER5Tzy|G(-RN89vh&l1205?$x*Tf2ap8FPR*(g0JFjM zPG{y>8x8`Wt1GvV=cS4@&}ap%SneMGuSRPU?+HMk_k_qL8y(Z3(7&v>XD3_#E7tOe z01y`Yy(J)JeAci${{h_YpFkE9lbI4?DHGF>aeD*6_=FjOTwxec96`0mDGnjo zurmu+BJN@7=gSLf7ySu=(@YI2*Wg>_^rYoX-tEuoN6Twp4ApgF#OnN^O?hiVe-}5! zlVx85Ejh;iS4pnYYnN~N4uWo0@QvTkd2v zq`O%N!Q7H?+w*?eMZ7&GepEb`OC2lZs9WGO9njloyKK5 z?>a{}B4PBqpGp-+YA+o1u(1QJNnx{#(Gihi)un1(d|(?ZW2-j)Bd9Rpwnpjufi|# zM=O+nQl^)(L*BE_IvuqplE12G&ya5Sspp%AKcF-G`XtH4;MW z-?^(-jDYsEl^MOy(}PyaxC78b)Ydk`sKg~bWAxK)aa-WFi?KKNFig2resVJ>z=m{3 zMbwCMITGIwYz(|JVz!;5A;b+SkQW&iIHKXVapSXp4A)}CQL*I8h>3Z5DgPR0{gSPi z|9Tx6aMA&shVH+gzk$FE07gxLjo}$UNh|ZWr3*+O95=erGJGE)v9Ynwu;Va7*77SZ ztNChLU=B9w4#5F~a<}K~{~1UQnw~Qi`q=&W=b$>c0YH#};o&@hUA?|`heDy?!Nlfs z*~J5yo)M7cUXVvogO@8PZ=QV!0Q3_R7bgmYYT4P@phZvvV51-l7ytq(Qv=WKaF7W` zfhmdO{v6vgP#V@k3%P zB5CF{!lfRLK?sTGH=YBsMH^{IbI_vTm^woXQ0!u(lyh%!Ix5J`DpRHqu6(SQgVVDW z3*Yup`%goG7Q`{B_$-LCh>CbVp6mQ zpb)eFa;)}dK0n@#I=J-C>dUJxwb^AJIBdV6ql_iOG)A1pN2i8l2~C;xZbZ+N}A@w zlG>O)KQ^qQ?>U#t#5|*$MxKeHpagj~#4OZWh_?GYXtetXp`o3UT6%d20!+05XpHDM z4Rby7yxzQwx34iDrvh;G4#4e_1Yx5Q0PN=KtO!p|PQ9E!$K(yrHG+Ca1aPjQXCng7 zS~);zssi99K=&L1kksW5R3m63<;vF9@9m%`$j@LkMMXtmq`(5*A^>Bbt1-g{Uuo1C zhz13GZk9}r4pcy3NmgY``s0D47QCeZZKI0S8UD*?GOHk9_l)`u{=P z2>~Ad8i2j{+>hUa(a&G-X_cn61|g;iQkrsMdGV>3+#}OGdXUKH8}cwi)X=narBs1E zEaGiiwg{s5nTaOuI2*_yaxq;oYtZ?;y>sAx;aAd3p$=^yqTR~nLSbV<#{fDs%U`D5c~QP%O`(cD%G_8 zVP9FMrmASb6oQWK{C9h{6@6->XPZdqmN$-$77$4tXr$N^JY9lI-^19RV~>U76BT}y4&Q$x`;kMr{x+bP1S=G(2* zp($J(HrS0P5>w~|PO7T75J;j0dS0GK&%dgh8?x~lvkw6%lAy$WNX=jGf(h(=E-PDO zR&Eq=zcE=P!S|eN;U1|Z753SNW+uII_4Z1F6SfSO9y<;f>~mF^R5yF9NeTPQBB`N!W|`@*NqG*k$dj@L+<%Ka;Xhu> zFVy8NHdZ0v;ADg^=YHx`5<7zE@J-vzmdmj$+XFJCrtsaL6QYF1qqZ-4?%A#}fft_3 z*pQ zeMhUcwbGCGH6hr-yj`olLz~ew0|(C7M$%yrmI^LS&C~OE`7i>S_qx)PK^XWwEcDwi z0@8?2ej`W%4+%9M-c-g=0%}D=!+jGPW^KCy8&zkVl5Tm#oQs%4mEa7sHhSY;dBBqQ z)h9hq=AcZU!5WQUTZ2Ri*O!Z=)z!t2gE~AQjlNKAlNWSI15LyFWWJ^)KoYR;c-D~v z?pf$lZzP##Rj^qHKm+ebUI1jCn}?T_6q>xy1s>QwUfVAo4d+3Fyxep z{|wxSHJO&SdZ?RWNkFW?K zZTNVKn4oZu4l9}?6#LDqvJs*s`s%gGdS?GtW(@adbLQ09sDR)|yOSBbr4Hs&2Q_=_ zPo9;^x%|`P-z^r(Q(WTu&pymV=G^5XUBF2XJ5Gs9vwj*romSVRV{5U~XW%f)=lb$k(LxlI z!1T`7rVb{b80x`(Oi z+5p}&san|}oxq~QVtl;x)^LfefW7#C#JTBgY>|XPrm741*1S{#Eh&T22$KZ`v7pG9 zubD2@&m7&WC}4N7w5eSjmrdYP*SAUCU^5@1oT(T!+m@RhItROP07)u;5`+OvWZ*uM z=5xsT_6`1}xHv!N%d~Qrw#E%zV#FjYknkJDrdv!j|0ka&5ANjq~>X*&8&+EO?8j0u{3w1yJ04Z$tRR= zKP^qZ;v$tMMZ~E|{Jg0+g3-pXV_z4AZK<#CrB&zXRaq5fcwDR8+{Q?D?xIcYxDu`7 zj!g`De>4Exlnfp-My`ZHwAar?`fTKd{n5KlYR1r#D6+1uAog}Jaykk`WMq2j_2gZw zz3tH3=<`!chjOCPI_8F_(?20B+5j=@7e@;-v&oxxUdmdJma$e1wncdu<{pW^$pn1GgU#PTj5@=8&e94b!fa2_+$6Vap_CVy#;H ziucFeKO6*40ykBHwW_qkgu)tRUd8~p(OtO$a) zD5R-s!Wf@~yPrVw0{_SbA39Q5Z#~psXt>_l9H#qQrIS}^`DO!oAU91Ni>{jG=uOW< z!zv4k%)YpLt|Yzo*TjT3h2{0W!;X%{^H9Fk^sj|)@LxmXJMz{~;7dG|v$Sjrvj=V>ZE$T)r``JoPahgq5u95B#&Cq+LrBWoS=^q&A zn4GNX5Hxs+i~#m9fPpu9rY6$=wHjqB4y?s{wajCFy6`#oBr(Dn;_BosyIlbnL7|fA zL|Ug(Od!$YGqi0X{|QEUbF$NyO_!qRgJ`}skT58E3K?|mXkw*&6z4-B`Utb()61;4 zNl%=rBY-x0eSs8x3f_MuU!voh32bhs_BK1J75TC!A>k^5YO{WqrXxUu!ufQmU28U) zgN9XKC`Z8W{=q`+knzrqQ0YV;jZA=Bfj0WgPw3OL-r0_3aOfg15WrK+M)|RRsi;Z; zDk(^E%HE8R>s{ZK%vb0Ah6PDPhWt2j^zc#tK$s&vg4a7}eNp70uJWq}GW_^xNk!eN z(NtX~TV&wIz%uh1htfBgUmBru3v@@WuZ>`%3NCejm43|?9!;Tto1Ii%X`;Sz@)`8% zGHu5R_*Ec|p&w>xW@3UYC`7`-NRG3<H9#91~Q>{LzuI=r4&M%GYe0je5t>uar7N4D0afhkCBxTu?aq7Y)^!+~K zAA{vM;odVXU>Q8D{lZXgbyjHQmNzTEV@-k>Y+!B&_|ZN5&^UJ=J?4o?S#6B6yBK0 zC}B&Fj7sY_O|FB1JRUH7ojV3gB9KezRaJ2>3UziV-rQ2DPUWLoza;6-zj@VDngO7Q7f5|qh>)x{Li8`%-#gbwB+r^OD!n@TBK5=8F#zW zgc=g=nZ9~WIg0~v__p&&n$%Kr8s8w0fsH~7Ws2UYD3eF8+0%xHhiUE+q^*h$sC^*l zXG3=;XaRV^`m8AYu`M!W_e}Kw@?d@U!KcEm-)qP~q}^n+Z}o{h%mze{xUa6kAXyp& zEe%UD(A#mDMRGjOvf}2D=pez}Xy!aWYY{wkTSv!-!s+Sh0eC~sr%7Vq_yYXLZNTq_ zeoYW(dG~xv(ko)JiAQs1vpfEiO|EFV$N8e#gq2PRSFJwqt)Uaiv!CNA;8$Jo znCm6i7Y+E>2V(=trpgiXb16mXx_KN! z&8DKJRPXeT5&;EwEEna5NsXSIgxisZv|Qi0H2cf_rFP^?qQKy`6z5ffeT*iwWq)>% z6mcgcFJ=2a*@G;wq^6^ddSA8IQA|82BNV-LpkkJ6m&sK~NHv@YN7f5^pV4${DMC`h zaMh>M@^N_O0&G(2V<1v4;D$Y1jq--WYh!%LWhVXIg)R9UGQuf*zk!ZYdq(94`N6^W z1?hi~D(cj$slB|XbzBlEa@K^LdLfUtn=O`Sv#P|4v$h|It^ouCGF^mqH&DcHv1zNI zS8n#;aaFdvu>n;qdapb~?h9pu3qTgHG>@@bRqbt$65x6DyeKA1t%Rhuwo)SZQ^Dl= z<|Z{_Iy|u7^&MFKVuep&H9vzx5kYU(Vbq~dQ+Dl#Wy4q7*^WK^9wn+A(no(GwDt$F zrLR#d^D~;fz)k68|II(@RGXP`ZCYUEwN39MuDEs|e0pe*>+@)^{-J)hMX(4unh_aZ zxEWs6uBo53z7H;H>)E^gKwVh_F1ug@k+|C{G`SnMj|GXX`=BHm7%bkpJ91*6A7iuC zd4I6br1zehb1HyPKiuqaiNoEqB%OfRJ^`eByDI;(p-W#kvpp&Qjdf(=Q0G|8lwP`7 z?@pO6`T9Pb`bSVLC6CnxCnbe~!RU4vD?1sw-d=m^#YR4W0=L~)b0HyVOB;_d0CP7m{lT47XQuDE5G7Y!jRU2nz2z65 z_V$|EpBs;Pfq)g0T9PN9sqh^u0zS*Z$nLYK(0`Em$PZC0OybiCjXLiK*3b!|@Es;$ zG@lkU`gH*<{;hP=*I+&^LIi|&8LoEplEI==qOZ)H*Q7``E4{r#IUA|e(l6IP6hGl~9YD^B(s%=XUv!6o@ zJh1E&QfyG!3V1b!7bz>tj!H%f_WqKR1&45G$;4AlS5J@e5XzAT+7T#g^JenZM!}o? z)+K6fG_-u&!Fssghd$cH12>r~@GTi`%!?p`p%>NFDshW0?>-EHIm!q;I=`|8$00frE{W9}`o5 zUfy_e!c3S2P28eCD(@eBa-{#!^U}=r~{6>z!wb5Vb0-)mTGz zVP!bj%15-RH46!EZ;Dr-#wFe?}Y ztnTKeB&FK@+$d`&4ztnvI(>kq#Y?q`AcicUW|0e}d1CWe{?*`ok;bpevsioT*t)S% z{+;H7LRa`3G$2@JQY*78p?8hw?)9j#H(&z8)FGiOF?yB-kGq4da1ygr&zB0C42qgX z#c`vDg^J^tZ*Vm^O#9e47EvpV22R!j27`X2@LW~l%=XTf&dS(|A3WSoxgu4#tTakc zpUmo$fe~5>c%mwy*-VB2tyrx!tS)H3$ zffa4^c1Y`|&4O_%U8V7lgKrJ~2Nv^5sq4b@f=WLHSd$6awsOVCQ0LCqA86Ivw9L@4YwGN;yNXp=&3?@AVxKwZiwJYt z{~nupB-m*sXZ*`CWwxy0`+~KAx7K6lV(a3MSx(he)}P2O4pt&wug1E=;zJ~h072l zF^?;`uIqQ9s%`X!6=G=(4Vzk*+jGr#D{|#n`~;xYM&)_2<*R+|noG4T3K;jDUS(IhNvyt5q|ojhJw6ce9s8x;pTJg=WZ zjQzm!q2XeEk%i`)Qmq2c!iNW4T+@_edy-i=TAktHGS9$<$Ca{jbiD*E+1!GIcN{z! z>^+CV!1{MU5LQW7DNmuYvU2UZ|7A&_J`z_Nw2hPt@{b3OE(>Z86je>u>SmRs=H`mVv12MSztVD7zuVp%AOZWs4ONlLTQb% zBdtR5sN$)A4{q7VTF9A8u%*Av;=lNZL$IX;98VqEhu>hy8@$9^ZY%w0E8yXA)Rv_6 zpw4vfJQS`l9X__4`IF~F^Ilt`U{HGDaCz_aTMc+V!7@It$ZNN{<(*#|1FOD-+NHfC zLz9|fsvUK^nuo@Tjjz|a^vB!Hj*7C$Dp% zeg7xU^YF*of|c%QfV_;;!{K>`CzbVnaatay#^!&=^_DOz#W(K-mjVcwmt>CM8uwUW z=1&I=!RtE=QJ?aZ#%l^THEGN2=t@R~CF{a4XfUx5?e>0aTh~Jn@tUV9s09ObM;mx@ zYBe|udp^~h`2J_B%J`O*&I=6Bxb51$V+)&q`VxZj;zfNX8xAmFKDH}D-$?r;P>>9+ z{c%#LB)&xY-S%}Z7ryL{JY%Gg9|N+Ny&HaD$X3@bLY`gUWH)nNZxuX<6vnCUd^eAz zaFCJ&eMug3D9KrNa#Z{l_h5})dT+jw&A(x#xKaK!UZ7d71OcsE!uxJGFac$W>gx}G zQ|*7xw~FW!MPyu6u|ufOE2vh~y$hPu`zyMJw=qt6$KPn0^s+k0Iwus@Pm^*Dt`DlCsnX5(+c1)izYWeX6TgG!b3Z?0<#`UAC1|NWl6uX&hu{ho#@ZQaH+2kuYKUU(vMy?bIEaM ztAwqVFVb^PJ*%Klrt?*N=g6B6c8spg?w>{3|1fn5ff?|+WWwq>MzhgLWJdc3%;o+I zpmX}TE;E(}wh&k%rVtk}+xY89%rX%V%KxqkHdaQd6S>wPAnl@lk0~F7t_iNX-O+?$ z)g%XHZN!*fL+k!_oYX z1~3=K%&Gwd}t`20Mzc2k<<&49z<~!P_usYl1x9 zD8o7L;{68lIA?}VCW@p#eH0DOa}u#M4Tu#@OnxQG*;=BsmI)}tst2R0eZo7OD}{6% zy0V5j*a#>RKLcX~=47bH%s(FeWv}zS!-9T>rE1VdO|lsggLgVuu*oJtKCGE~f_sNP z3t!3WLZg}R&YaLoKpkmm&9Pm=wuv^L!nZW_gMM=@S4T&^BjtxNp^iOiyu0<_T*z^U z1QBK;1`f<|dZfb4zVbV`r^1hoNTA*9<;~?v$XN_@mRx6)T&jGM+Pa%<_J#k<3bv6n zQf>>Ey=M_uhns5>i4Zk*md{}@h{9A*ooF-#zW`taR^$@Oon6p|FQqRv=|1bzq7xaZ zw*nyLqa+NKk(LN{cH+r&YHb$d|IEf5VXkg(-_JUA9i@}i+0|Em9l_ELBj_aep33J9 zkZ*C7yHnsxK5h6{p~^%oTd6}^c6!O3$6@|0p+Mke-l+<7VJK|uQ$Pq2AMR-X7qB3y zJ4Y9oaap2z$dMCJNQgxw_Q(W6yw7BVW3D?tlX+gwjhZdBG{pNpF*|4;11IT^$#2;F z>3>y-QjBbij|QEuQ#j(@TxGJdl80;>?_f>Vv!Xvro?{3RU7Roil>W>0^$goE*1~i{ zo`$Z|D|HUb_)YU1JDpfCjeacGx%kf!?2V5``o&M*Z$XKyj?P8IcUJ{F+kId7 zUjoIVlS2p*7chH8-1Npa@Hha8^4(u!z>FF58Yb2PYsqnjoFAY#IEdaQeJ2KR4x^3ExvgXPB-(v8Y@9)q%1340xyu z%O&+-zo}5lW96_>_Ef9U=Sa1zv$j!7Lak6d7JhJk5275Hxx~EJngZQ^vi2xL6fKE% zDlLi{_s9Jj2Q2X*rCMj*%QL|?$(|#=OnOp-0dPcOXzq>@KtMe;*|m4w^6rovaC4}3 zM)C0(Y0rg6;KC#$2C5adB^Px>dEqxQ!B~Sl-3hn2q0Wae)(2JoD0OVz9;;yOIK}mh zi<}8A<<5jzi^yE|<~G^CNN9Yj1xve=X_O95JH*`2`WK^Nb$jpYE*1(BeAvKP_8>-7 zSF>$()yJW7=j1ZE@cQCv^E|2&*;YSicHwi zsZQ`TVogwyU&#=X(V0k-;wU7e$JkB%HdlTuP~Y4qo3 zFDA)Mzpb&u^)Y=FM`#k2!w5mb z8$QkEfFx|X9Kd|phMCoUbqe5DbWJ(wKq+K0Iy5La;;-l&mVdNG|Ya*zIVUe}pY zkA(ZW-lyh0yas{diF`EFHI*;#WsMcMl>uV!pv1%lj5>0|g({UZ;( zt=@>ip4a>9rN$*KZP{BmE7j~nMv}sZLy`;+KYjjcf$P^}H-BawDPpQaWGUg#o&N69 zdJI~j;N=|pswJ(`^$gVOm+-sa_3IG-i!^d_yA{kGv~KmMw)Jvo+|=N2ypd_i5=grw+qXz1&Q*l0 z6%{{}hqYcIwDjHG6rrJx9Z##d2$ zUI=VfA#a_bOF4w)fyKdyzzy|!ee}GSse5LJvhH60vH#|eX-gW$N@N7dB4A?*?e^;< zKBHBL5od*^n{oTE#pLA2@EIGVQs+NVpBCakN79JHF=h-`J;JV|MCfkwlFWhT%AaSY za86I3@u{S~8l$}Sb^mz@P9(X30jG9zeDtRPyhT2y!B@_UHUu+z&-{tbiM;;<1sj(` z^w70`x7-!dbdiWdyD9?)s=9X_U*sF~ufIOt^Dh`S{;o2LRF7#PSzm6d`RTSQD_W6c zO$BYogAT@Q=<_O9Wm1f^?K);=(#&p2OJ3=Io(#^Pe0sDb_k5oU#x5S`sB~1HHGeOJ znVWhtVxar^S3DFpKD2}nK)v^U^S7lxTQ1ZhdU;K`QbFr>s68>%;q08fj`KOD_hFZ>^^6zmtsqy+ zVm-5_Vgm_l_9qgPo9Ny+Pk&iCgjgqGH6>ZxnNtZ>7AtcuNAuIFl z=$qQ5?>dL75;mqk4e~H+6|_R6059&w$evzc_%8Ja5x+@2z1& zZ?@Ug{7~rSw58c|z?d+2u;<0__Bl?!(qLv`%NY(@s#9pz_wm_<@LnMSSHQd8X-@uE z2+4Mzx14{^$TyS|Q9~~Y^fhxQ%tO33&wXqLYd4dpDPr zIr}KL$9Cy;kaTYL#j5XX0NFUfAY{B89|N~{Y6J48)dn1(P_7s~R zJuzmEO=b>4547vgX^Rh}TDIkxpJwqaA|fxVU-@=)5Np-P+wFe-Y+c~rN^Pagt~B&i z=ZQrvBQFvIkQQ8WMn1b~_0747@*;h+;Ja*BgEZVrTk=0hHC$U3FC`v__5I7sX+KoFeSU;? zWn5B*^E(fsg;B81119Z0PvqLWW<2a5AiOHq} zs!!$zt^n2KW}kqN#6VqEaq;Dn1QRQm);Be)$wfX;lzcCC#=|!uL2_{&0FKGjsDA~S zrm+boO>fI71*IZ1)SGLrUBN=iX{y>WaV zKS=@(qG2`6a%nELUVXN0HDKW}NPm(#^r5NivC~Cv@o({CSKsJ^r6>Na;R^pkGGCva z(vltC&SlOHdNAqS>DnFhry zp)P3L!!?g@kXIY-BAeK9^OEfo9JyugTHVt!@zL!3x(_um#a)fyYm`rQ1Z~bMUA(ODtug18y1IJnt!$8ioP;yyT0-&os=UfJS|cD$BzqjaN6SCr}j8C zMsL3>A2AAP*euv9T1(oKh8URvW~xk*=`*aQOzY<4Z1jeXr2J&l2y(q{4uWUMe9h#z zxypYTq!rf)7Gim7udfbUx?Atchl~_LkJZ$N+}MEeP|xcG&-Y$2u%coC7F#<%f4Phs zzl5ce2Xd+v$h(*jRCyo(Xxd|0OgNKC$^i0d^V9=?IcB#?v~ra#&pNSb^!kW~fP8+R zc0urNsKLo)?BKuT+wh36Af;b*gI`zKhk#x{#d@FVKEw3Uk$BYa13}4W2h2J%{Fqj?*~K{gubK-)NeesY9`U7kWcUT(>hf(fM$Ip0s#HfH zKH1jV9`vnu)l(JiR3@84nW^JEF|6CQ!)NtlX%aK)UEGVJ9e+e!sX4!DIve@WQ}_=g zur`52b#z&>SBeUR(xCw`F3RB%efx~AH-^gsj5)_ z+OL|rdQ26!<+5LE{NrZrXW0Ko(p3gT^*-Gtqy>}?0TGbyZUjWSJEc3NV+rX}q`SMj zJ0zCw?r!OY<-Nc6|8YO<-e;e=GjrygGiT8w;xM+R&mKa=T)m^=Qk4P)UKLi)PbV~y zEH(fa)3%YQ^jO5M%S7rOxnFWm0D>8yJBkTDIDLL30tOlXf$2vx>HtbU49pegm(a$@ zWIQY8=C1i*4|!oCuwMj%>S~04C)^>Fi~_oRy=~U&FQxalr$ll;>Iulm0BlpEksy_a zMcip>wOH9zx5XYy>Nm4H+c&TArEk}FI??U#gq&GBPBQg@u~3jK;r%dEm{#_kF6!lwEE@f)yE0Pxm0mc zVknxHiIVek-Io}pjUTFEkj{OR&+h;?(iN9NL8H2g5sEIX(*jpqOOCJ@4dz33zjo)_ z{*K@>ye4v{_1r_*v#iZUb_n6t?aWWwb8zE;d9JUHz-eEYg;CC$Z!|HTRBeOG+Byq$ zD{1F9qQROtLq1g}e@QwlKB4^$pP{MqQPlsoxqE-p`9^}?$~b8@8cSVfDJst&RH>w( z`&a*DosOPZgCqIZSbtuJ-YU(%{S=8Bp<@+dg5CJw=EK|P=rL2J@K;=;j*rJG; zia&mI`#zGO?dbOb{M)o?B}f3PY(OLL?ROf5s86)tfw0|yEap7pvRuwh{bkeC zBG~w+0IXENvZGgUon&G^N7vhXiXtX2{JLLdG}GcfT=i%_FRL@quHnz38p42PU=g5g zg6WXH(GUS$L8MEfZVFY5ayED%gK#P&E#Y&O$o?eQOb|!SPq?T!8xmu#=99^6Px=Hf z!4U6?1wW$ee`+Q5Oykpe3>C46uE6h9W5xf$T67kG;Pzq)aiUh#xJp-;#+fxR0Em&_ zz0Ma}>T=JL+tT^>9?kxBF8`#~(XS5!1`>g|QI)mvT>Y;zu<()d=LlXN zwaBw6bQ18RmxS6el?@V_{v8WIgkRGig3-ghUxD$=U7GBp{jH=`K!hh7qWhHf+bB{` z!0t2FWy3f0@#X%@z-sTcGr}v(X2b6qy zfPC(>WuNX`&pHaPZFxUO7-u+3V41Ga7bHB+bDle-fMLgF*X2L!;zO*(`2aJ(S*zc> z!IXEc2%I)F8>HL-1N#_hRIt2(h-HP;q?$R%Ueaw2Ralzr?*$+EKdWOQs+&~+W{Bq1 zGt-^z#%tUk(_F1gpuf7&Q~)bmF%CTp{&w@Jy3`qywgz*oo9n;|okaLPqmh2=q=84 zhRBLzii=sRzl)P)`FSPQS(Hi3-%O5<$`xSH>$okX@Lu7t;}eC7 zElOa7zQn11PnmI#K{Ko$bHVv+Pe-}Rcpz}GDojSoi{&F~{zAn+sL3$RpOmGHwbMdB zk%=7>zzsU(&-XvRE_Y+lukO0YAVMByvOhGQb(y$J2*@uJ_9Ab{L!2Iao8!wIt@jbW z3y?G7HDC7jJv^PjwCamR7)!2+pu|nJPny|8>xGHd4(lslAG?A;LJP+{TXaV^7$! z4i5l16R@!%VGv?RTV$ODFVzL5eTcy=8jAVcL>5WxP6WCD7IEJ`z7aAR9DYjKj-0YM z->VLn)?z(nMHK5^X1~qFu};Ke>gMB%g^r9Mr4rp)I6hk)lJlS%lKN2Wx^V7a&Wd9D zKX`oN)&y598oq97nP@8`R9DD=iT+08Z6KxNVa}0Vxq$wd+U@60E+o8~wUV$H>}R0D zTwS!gVV#U`bFZ;ngRmbCK99%8q#*)Neg?M6)4J@N z=(oTYjHpP<)$w1I(4SW*$1hc&>X%_W-o5*5BMl8brP}DvLfBe=5OK*;=q^>uI!pG) zF1h_2=+L%jL@G#|K%4kcys!r@U{x(E~;%o;Yl^ zFgjsgtbQ-9gyZ~WA8%Kuq=vR04-!s3oa|-3TK-+YnBO0{@aeJdV8QYdnXaIiTY1IfV(%=v|S#{;3b@hn+ z4mhv%xxFTAq}GN_m2wPhVQ1vFCq*;N1?LJ2NJeX*jtwsGcqJVb7g5i2#ZwO+z7Sn$ z`sA)pgc@S-FMh~$R8V@kE&iuQzdUAqiASf4fM8&qWz7SJe10RWrt#9&X)GC5tiuDy?@s*S`Lwj^!V35KO6XW?rwDLd%Dk-vAUbTi<%XX z#0s|(Fem*q*zk*7J;)Sax2eiGDXT)_>81$W@$!oJ_H*X>(OW&MabDbRUXvwAjEJtaKC~L_sg}(v!81xNlwu%2QSn8VY+?^LI>b+z+*oKmSA3a~Qvh zwYqT5lGav5yLxdP5k=4JuVa}LD=?GGJk59Yqah#?=a|o&t3gKi4G8O|b?z^hKW8`L z?U`aefz2Gso|JF>K%y!CK<8Rnkt#!QWBOT43~=RAfph}9w(tSXJMlJO)9@Qm=AWD$ zmg|>kz!)Xr{BbdIOibFW9FH|p@CIUPNW+1X&s>`=#M)H#KWl9V8NZ6#j*}RnTa)Ke zS(jE1M=2daAp(X2JlAL96L52*HBdhXzRip#gtm(X;dVYEVs1lB+|IYQ?G%oN8@KR+ z*s3;{l~YViuHWy^`2iaIZ?~7*Z!M>_+2-y6lknMznOkf1bT?+GUM^du%IF>p3<+>m zT~TO;K5VqRCr}ekuc5+Q?9^ohpWDg~Ziajt1J{H*r(D|2tD%G}nS4^5W_~SRZHcp3 z!!BkIi75?NQ!CY-xTYQtr-P-3tI4jbot%T`JCbxqVvIoNaA}2Eqs1sx5QXmj66vj2 zN+!LId-((^|0HrdmP1JbA53au6W#(~(g*)D=Pv(rB4p0PI1G_ZxOeUG0gY(;&7F{= zUPb{?&08TtG22h5%6X3(G6`mxi{yBd6iy{T|F9vcAtIt^_ZGN$hJtR{_UN07ppEdeP{`7q>EkH#cQRj79@P{=K~P%&QLAVx9-y~+*oMW7@~Fu)L!Y z29B#L@Egq^yJH-xtfpbFvD|Yqy*ktJEk7szdhr(9oVaGY1)0lyZrW9oA97u+!ErsO zH>6uGBqOR8? zVdv;-%roZ)^hk|B##UYQ)&4tGEN+HcrIWS`j|nE8riPd4+##^3<5Tf9L8TkUS@cEMMrpJhyZDu7BR)G@)Nl$dR6I~>FYEj1;zM=C8NdrB`?v2p zApMzoyK%*t%`Cz_BWE7NA)5kxy6C~ENBFRD6)O_5Gny60dV1Y-)wQj;b#1wUQ>Oly zn3q^||4_g5t?uV5*NrFaB^3^GTUJlbUFxD~IE6hM)b=Q?7pS)f(O^Q69UD zVC`jG_Oa@?QPE{Mi6bQx7Q{Ch?C+yKH2gZrnR((!J-42>m@VWJpQ!Yt@+fw)=vBLd`J?})cYNvqew)y z=7uW_=|XlmYe8cDv%Csqe$ZQz9Bx28A9-=jN-hwz(Xb>81FHCu z@EH%ThNkukl72mQBd}5-k8{usHf9+H`aiKFG99Gn$&KQaiUsxFJ7v#LCjd~~?^Jq2 z848r{{_ybD@iO%}dV!TF;B7N7GL5BlX76F`r~i0B>#|!$X2OY<%$E0&4RBBS+?~$+ zS`1csssQ=_uwl`g+}q&g(G=>kE?!^ZVK_9wCvO&a$zA5OT2%V&jEzZn#CU zy_rJtZHXcIht&SGkjBl$xFz=^mhYap5QF*;ALeUf>@Ey*K!{C6vA*xr)*Yc8&n-Kn;rH~JSBq>FQ;ASnG z!bQr#?ff4vkJ(I8wM@n8zh;C(WQoHlk0-%D-2fbt7cYKp#U!#6J0Nc{ug`rXZz1F!Erfn*-Lzt1CLe+RuZx7k_3YU2yx zGDMQxd=X}9_qS%pkR83VHdv{?>r5`JyuZgBc~Q$p?>CndEmUtKZAP}2d{Y^6q5RlJ zF`pcT3Y&UIuo$U_z)_J1>fmxrhXZhZNm^(O|i(Fr(mDw9Qs|TdW zKlJ9so(B&hq`T>`pLcbY6U21hB)cbzF0O%Xb8{9LQyw$OL*>ZmD;S8{Gj@KnK=Sy+S=__6DZsBuUfxtO83~ z3wy`bN!qDS|3+sdeHkkOEzo}|ufv9&T3W>v4W%(x(}rJY6l$fCp_`J%snvt{G&M+- z9=G%>;;O$s?NZmNZ+Y5MoW1fC#tdt)tKH{2jtafhmHtJC7F(P(rN9Y&{jk6Z(S5lm zv{On<^K%;$^`t3wL-Eo-Il^kQXHf~Zv{RdY!%OePA91>}^;^%wXVhbkboiE|{i;xI?%!=h zN;a*q@fNW`?&Y7=?jB8lc>)`jPbkI4CAAO}sh+g%#-;9aWPeDKM^(dXNq5nTXPcMz z_TvEpXj@T0z9UHCmfFj%FXZF>@aGPzfoH+pdJn*Op#lLp_4n6Y)L}f2@Sh&0A@@f` z_fWF=r{{mhr|T8zVkKB^aGMuhHq~ITV?yWZ`Tjv!c?qguAM~Uu2mHLE=F={gi0r=m zm$&`JO$1Pi5coVDiH;@zuGFcKA3bY2KsseX`7+tVys3}yJTCC!v*P50q~~eYN0Pfd zv~4X`OAC|=vpl)fQA&4d}<<$(rHP90N z`hFHvUJQ4L$061Lei^ghS)GZdPE9z0t*Gj-107+TG7SCKYhY(*+-TeQ0`@{a?a$>I zGnEgRf@{^)Oj+lA{xwJHZKbU*FAo?pw8 z;aSf#&LuIxi58`3fI=#KDxnr1c6b;< zAMLydQ?T19azHePe*;cH#ex@tA$fzpCbivC0617!0fY@%H;kY9BxO9A zDbz`{kv)M^q|vIf7V}~GWbp>^hgS6)Np zXh*~!dQ`*?xEXQ_-X%A+F82gIsRTXlRH29qf$w>=ylOcRN375(YOS3(~=LIuVkw=!kS$AOG(HHHdu4!Wre1z zZ$EagsHd~7UBDdqMeeni#tdiPSHesDm&L_0INo!Z8Lr^Fq@$-~PM z4Ovx#7Y6zBs`4v9TFK!N!&o|HIsjwqM_gGdjAz8 zGB7Oi-|na?d&LW<$Xkq?Us>}ul1vWO0~5Ah|6fQUO9ygv6T_agm&7l;Ev(?OtrPCI z*f%6{k1-q`gwHiUCCmK<#G!_l^h7sc3G=Y~Ec{Y7u&4TlM;{n3cdm?q&HWscQLkBK za|lYOX+Y%2cn=ZzS)rQ%XKYu2jEBce>U~N)mQsgskkO<(HFS1x{rKp%>UDz2XlM`s z2zP%H7>*6evXodLqI~_H^O~OI)`l$dO4>>N*6SyOhyz9FS=;4gVNS85r{O1oQgB}u z^~I5Jrvi1xa8|+f4uihrL$-1v9(Y#x3mGAp-Tves!}zFn7!+EjDX2O+M@%O#+lVO} z&m!1WIkcTEQaO%B>8nN?1&2lh>VDME3>m;aD?2UpWxgQ4(OJSj=F(rD_P}4E()ne5 zREbilFx-xe9+J3Sl0(hQRF>0Tu-tWl6`I*|z0HGrHsg||k4pwH=>B3=1iMC(oK z^zlL*fJu|&!=3J)ty(n^=Jmf0@C`318DJDFHkQ^zVza>Au5ovYdSPQah~ZoJ+gg&S zcleX%Wq+ax-r2V(lC#BzY%|5_y)s+WJ1eA>g|`>7MpJ-Q?e5n4m*0?I>90e0C|(j7%rWlc#btigvH) z9YrT{q-XpiBqP@g`;0{J-Lm&6b*NYQjAUJS$Gy`eO^FI0%rq1b!_a?!wl&(e-v$vlG0QBN57*MdYwrfMJ(Yim|@VRTve zc@iv1E4xs6_|k{gz6`(OtOL!uruZIxL^AMNHU!(@>5qF9Ev#$3$0`- zpCYV){{zI*{wsDum|<{E(*bb#UC-u8m;C~|g~zZy?`SI9@2s!iPojc7bf3|>(#t~U zJ#Q>NpwJ*&?=)0;A((ZP=UziRL{D*}q=A%a+|5mJ<>)g{#w+U$d|y)M3g}2voe?r zIcQ7rFV)h_EDE@C9cLc*0gC=Bw9HTUt*tQeqBm1@jfm1iev_9Z2{mHP^GBtU#X>!1 zX&3H=ohuO>0wHHA=Pb1>vESto@9X9x3}9gzSM$R*#N)W+r8L0e{(M9`FCG^M_Bdg$ z)hH*VuV`NQ{5?LG@^iWZmLIHTY+>IG;q@{0-o&rN)9ZGczq*DJkjC^31c?Ih}5ioSO6*>3DXy#Uy+HFidv$q1KXbGx!?y9aLMcGurM zxY$QQLm!p&|yJz3~*tDNBbug?J zWpTETdpcv}^~kH5`p>#?w8f!cgbzClQEeBP$E}!Bj$Iz5rK_oubbik@jKwZoG}@^I zm)!F3fc^8MBY%S-NWP9!E+uZ)TQw$@XB&W7>0+e6DRnAmd7pnJ<)wHKxrEO!nEU1M-?F7A0ueongt*a%KvVF>b~+)oSV+YdZ(e? zh$gM8^lrVk6!iB&(!iCFgS4aH-xx-xcupXzM~O~61{LsZa`B)UOZNCL33c`Vda(Mh zpsqZmQS8Dw-0=V}k@XfB&a_{OrT+4=n;a@;va)rtrmEE>@+mlV`P%g zS2WNUk1f7WjCkT|&%;$m)bI+OyaLq(FU00PYD!aB1EsqB^WxIfzKSe*(IL(k>~oe+ zf!EJD$nDC+W}#`;{5EMeB!MU1ei3D@EMFoD%4`jTWx-r^-%tyC4OD@Smag-&Q0v!N zw8hWs@d3z4w*6ddBE7yZ3wb~|Buk*j$lE=vy*oIJVJvh0l2c(!W?&8QHT~Cm2K-WI zYng&MHX)wdsEbI*eTNLix*|7rA@`05ev-IL7FNF8}+>@4h_L zz+}(~aKJLNi`m`xoy7#DanF?&a?Rv*!fOeMVLM(AO9M?|i1qg&@~p746`LB9&{zM8 z^08oK^3~`Gk))~*=Tm*ems%j+^X8w~7NaMt2_7CZ-*A_ky3N0JM|ULV+T19&#x%5* zU1`HQI?a%PX%uLv021e$?)$e>oO`CU(5l6dsb?Rn!urSB4;#ZS>aZ801Wp{F)Tn8= zmcj_jI`tN{kh`Y-)^O9`a}1$<=wp;k*;RSms>-?@iy{6AMdmaG)4Et%z$U#NRG5UY zZRErYWK(3dFT7?QWmxyR=?8Ph^Yp*4$NS&p-{@Y=XO?XSpaYmKa7QAlGrKZ1oPrAj zhhv;{_Jbatv+ockWp|}fZ!@30n>ltxQWYk=P)Ha$uj~vb_dMtP*amSi6yw3ho_^;u zheRCs>M`%*VZW!1mrQ#DINE3L6569F5>cND;?UF@nA8%rn zO0vSgX*V;wZh#L!;}(3mf%&VC%_f?cGhZ9}(oLr#wfi^ya4^Wck2YIv_J{&j5BE#> z)+Nga>4R8PB)STGPS#u$$r4$}X+|5d2`oh28r^B+?f3vtKd1EUw@J4Xa{fnMgm4)PU4FbKSdIpye zhpx8cr)jy|H#07;dpxRvncAC$G14u#SeT1H+n^P_%xMfV`u0u9Zo==hCc8>s_vF=J&1p!X{aS{6!!6tY9>RlO^Ie?F zz^f$IoIFUztF{$idcG23tUS(ZYM~2koJUa7J-ITov~11)NC@cifqhjjPS01Ui(MNr zw}1lrM+v)7>KuKq={2)tvIv+(kPH<7q=1hG-tLgBhtt10^TtDDjC2no&p*ByRBztL z@i=KWb)Sp@ulB zo}c!T<7L@s9^bDv(_p&AUSpBNeh>ZN)`Dj0E6Lxp5p;U5xzkXUlgcZGefrQ7s@Nw1_bK{7zBVUZc ze~vP2B%8th+O$7rp-G{-M)X8(p}YiGN!b~jeG|W{-%yGMOt^Es-EX^g-~3@`b>yy- zuy#p-90!#5Q2d?#%_T37A9XY{W5kLAtcQUEU5;@;)uAbnb#Eb8Yj(hEERe!uNco~H z=o(aIRb3W3V=^?eLStexr&tOlU)hEj^8c6I$Gi=cF+@ih1SW<=knJ_&i4ye%{^mbM zizqmx?vjHBi|7}AhK}B>27CBKJ|9>sJ(q}O?4+K*&SAv89N~BiKJ}B4-#GoIKndLc zbDM)tRcwJRhy8tWY&GYz>QDR*@(kpW_Q_f0@R_TmubKC!sXKxEnzYX^?~J(mje+_3 zx2Bt~IcsS=yld0Q1bcL4qsm5l)1r2|5NlEoW}hNeC?fY{9Fh%q?@x(NV8)g@4v&?} zx1pn9s>z2QZXtk0AP6mg{emlxr|lecOl}Vp8?&5Dze%FfNgvbVm$_6`>{_Zxx0+emh$vlpA z)^I3jQ9vTMLnap;xW3F#IP=5-bF^z?iA1eh#M{s!pDhKAd0(j4BMbDQgHo^rH=#OF z;bJ3r0g<-FsP*|hD@EV;sVARSy#i#8X%rkh-ghozhl>39g1*=%X$K%8`-tt)L; zi-a_!0g%!bV{dzO(B*Rs2b;r=(P<@2b>S8mCBv%jC1F9S(A1}+NpuhJMszEbV4ki_ znXB-w#)HD)yaoQE)HK{OoaZX?+F-CNL}R<;BQ>v(fSh7)qqy}+QD}b_S>mh-EJFDw zyTJP5Fp;~F!o|hQ9V++C&-v?w!AI{;!yBzfPqiHYw2L&56*yMx$HZP36Y<}p`(-}7 zmE56z8;7U{d!zPTd1@giE502?^sVdByg$PcK6fbQ_AD}s`|UonzS>L#(RLtsW*h*Q zes~^Ho31(`KUL`9O*1;_XCMR1usj+sYeyS51CZVF^7~7?LwJ6*CmDQMPUq9gJJ3AzM(yBr6O2bxDd`%(>;4$2cFTy{<+cb#N1$kEkqBDkHpN z1ngU~*MIqMc<|~caCcVLx7_d~5@X+f*F-0-M>>5V62s%CQvvnK;lE#118U`;K!@Cq zB@$n9H`SK^eYN@WjaEX!i2wcO1I`sVt<=eS|Am+71nyZM_SQ|k?Af(I{I@U3b?zK_ zwlu3*&R9vt*RmRbnu6$i)^x8Io#w@0<3_M@zj?bx@Wxk|$*ZibA>PF~v%9R#{HbvQ z;#-O*g=6puho#$ry6UOXBx*~RCBgnI+IYx*&X-&KAA$ks8>`Jk=kYMxO0tH(Eq-1O z3!MJH{*-AW4yx=y{ldj0^RqelPltm4<*8KJ6ls*fdd?+wf1_`h+0UA1Mg*Xrv}P1k zVU+JDgb1WL%pb^RWjZgvWGf$SBx93t+F&;6_FnJpJ?#GJdpH*`3ju)xQQhFooI<@M zB{5IebO{<|Oq28z_uT;*_JQ%`CZS=AK38-SXFNaV=1HK`rNuDxS8Du8osML>cct4? ziBYl~ecg-ly7%)y5As%Gx|S;b6GrO%bYK>yP?f;q+qq2QTQhji_6M$v?SwW@)4=L6iN!8zfw6&9{(S_y7#C-BwnD(C*l>z5sq28Z9YWH$lN0(ycAY#*QCL}c>2=8>)M?r3 z#A#j|yweG-7t!cCZ)Ma!vBr5H1#GLr=<+?b$eEsj0HdYzQs3i+h2^z556c-PMq$U# z21~BOoyHa%trus_+#Y9fAga***P-S*;;Vt0EE9s|mr zxHO~N6W!i zD$?O9`*K~71dn3ZQBIaC`HCU7e7Z!aqZb92#{Kb$)_1PDw`b?~<-G12Cby2Jb(O?T zpU1r*NAgFi*QSm71!o!>;;X|vAy&uiSAQC2=H}49$1Y3U>g2eu2G@y%?T=ZZ#6_NYUtWBesTR4DH_d>N+B&%&&MyR<&g}JM^N3g-+7zOnG}11o zXQuk&%>+7mE;Mo73pG3WI|yCtdRO+3TfZpADL|S(JAOtq)c%$Fc{w52M72`62*@CU)e~(TaLqk-9SVuTZ zl4mDz8QvF60lz-)yy^d8Zx8nGoF?XZ@B+5a@1bNE&R?h94}c0DJJFqf(19WE4G#rA z>gGM72&Xyw-i0@@n`wbkuD2H}Jk8qi=*-{leP3LAKK+V8tW8lhlP!8Y z(9Skwn8{Y?|o8wq3y z{Y>lKE=Gqq((8s?r$3*eLXt@Yh8Rz^fqW0wsZ3`Oo&=6cd9(Cqul~v^o&ut55qT}! za`zDT%S~&!tjukOH+l~Ha<3=eCy*6hlt`@AlBdn6&wodJacKT7pjw!Z7y{CiG~A(Y z^wReknf#CxDxujx-B7i>X%621hWEPA=bytwP2#u`=?N7b%=Z9FURyihm7eUz!5Cus zoVUOOc)w=+CK)tcnJt~IwcC{py`QP_P{o%>D0R$XgyS{cco*}LD{`5<5B?!ss+n!G zpm9_`T4(Qb3;R;6P)M=Z^6+$p@5=;zso}!wn3WB%{5M9|ektaUqCx0DB!cE>?VhdF zImTY=oKiG-7x7AyHv`+7Khxz-snyW)(V0^MyuC9EPI#WR_~2M!;xIt38y3kdGgQ&E z4@7?ai5)O6?<_A^nfwBwSM+a6KQp8z-%M;MX?C?E25KXCQ1dbUE!Pj8)n985EfT9g z{`g>6FF2Rw<2y;a{dX9|NxKyXD18_X>2&&y8F+K#ST~w1+~41sTn?Vg1_^fE$Hq&z zG@37M3a%*gGRvm`D(}zAtl5UPeSI1=gPa&)0(@f&*lcYFNwtku+OI!p5wmpLdQ0?( z%{i!k@^f1EB_~ELGk@Tdu?s@Zdu?^4_4_A(3J`XdgxUCsLk>5|e>#z=`T4Bk3qD_x zJzs^&ETf6Y)%37nu@VAh$FdHVfgc}vtne~|LJ`d0z1u$o98{wEM_FmJTb70Hq6Sjv zQ#UeP^Wa;38o|JRb&!?d$WNUNfj6dknjlp=qVH|UG3&TX=@cGm@;d`}XZX8G5rDl4;20?(w~wXx;I@SWnDP z%oPjzDE*i%ab7nO;-;^e{O2_!fJ#~nxea6#hF1B0-XD(p`9S0aFhUKzngG++i7@JF zAW<|Et;ffQ#GU|^v8G|h8|iD|n|UqTgozN0@E%=<+rE*61b{e%gw6mC?aIMhYI+RR z?>blgvc^q34fbzs*QPfC>j=vy zsTHNbzEuGP+m-6yljW+9#p?EGdp+b_${`+0I8Yr)WG$M8op2tr?di(jx+?05*oZ$O z$=1qUiVONq@P&vgHT=j?7A8J&ZN?#4*X18~ldmjr&@foU9$UDZ(8!@2x7uChG?bQ3 zCTb&+T&_EXHq}mqe}1Zx*!#iFa$zqQ#opYo^abiVTW5h=sHiA@pGng^Yc0j2Qgkh) zR?|nah#u%a$~@XXM2^+}DfWldmq0InufLrLSkFSBi8Ee^yR8W|y&bYOk7Z}T-V$Zf z+RpJgx%GJ@H&sccCk7WQ!S`;iwb#hi;_rX!@A~%iH$qyJQ?wgGQ$QCgsJZjbGKK9D z&;9j$c9bS4s&T>O79J&bjtOvaIF|86Q>vb#ZD5?Q2>`*X#4C~0g{IUGrhVUHEB*y) z$ruN3W~zkU4p*}7&m+99%ZHS zORci^c|ov_E@85ov~hq~3)V3?GEV_4@9l3Xs;?&)pv)CN;?lK&RA>^uaEYb2`-SVb zI@&Ut4&GjY55AC*zwJFw=!H96DgwdR<{~tYDp86p#6re{MjqQsrM}L&v*60|kVM&6 ziCML(WYpw1CjyQ5_UO~%p5$~VZyPLB(UnozwResoNjiqZ(C$`7BYk4WO?$(-qAxAu z99!jeYKl4BeGGih|7X*%RP3RD8?}(dj1n@ZqT{ZvgpRBACH(Kf*f6S>8o^X4Tz~SICW2ZFmej z4Dt)5iAr(DO+QvKP*{-_fVCfeAHFiBNp!FcCmnZ=%XcIKcdaT`@vI=ddqyEPeVG6*Z#qNpu0b${S}Mcl-`DP+1)3FRNaJd1FKc~B9glRY{|4s!4UfM)QI^+BMSqLg*`VLz_Q`sArq z?4%r1$b5QDIS%oZ;Tlj=ec7ftCNtS+#$l!E%(2$CpPdY2KBBN@DLfE9gDwL&qV$oA zjuYnx9Ds+a51^f=JKwRC&V9ektCo~gnvrnJ-Esy_g(aJikR7v8(NLaKIasG3P6d!# zAHudm3D2)6_G(9OVuikFloxjkT;TTX#VP5Z^`uz9qJ_MltK{wI&wk#+fpS|g2MJ$O zh!up?eeKMu6DDT!$zB6&y#Xj0q$5jA`Fc`3t(|YVqH)VXCA}f;As?jCL7GWC>$y93 zI2H}R4h(SKO?#4z)?;>O_`Y^)FU4-(33uffu1X{$mYMgUgZaXvbBX>VclG9&LC7>! zHQm4j7UmN}B`Nnih3gv);kR)T6?Ssh1I;B1?#Y=@&hwKlv40;G(LVh5+@Y`vTY78sW*OGQoc}A?Lqzg7l_kRzhzH+T z-eL^`B9&BMOv>EEZXyF~oK-IWGGXR2?Kj_;n;CZT9QzL^XX^7IsnoJOG+(7Y-99yH zuMHca_!hRjz8nk(0;sK4d@wdKjwBq}a5Rv50IX(WVIBC5I-UFvtibINtaC3nHmov$ zy=I3~H8gZsH)_7TPdo`{rJo<7Nv&fmx@Q;U<|QvOUC(R56&o$iM^{@(Lz=%WG<#89 z@NAGt7Zxaw;ZT;CwP)Qd(9nGPP;Jj%eTPW#D(PY2d)Br^pD-axq{{xKGsK9~Sj&vM zmfRboq|Q9&A_9-KzX9^|J_oVA!&_=A1epQ5pw>qW1N(A(gA;9`g54Ol|NB24MmZf6 zSM=ZfEKRgQ?(%s6y2E+rd+4zS<<4$M|INx+wS=>Ap)F+GqRb~bh*cHiJZCQKIc@%i#9^)=JPu$+YJ zwr*-cQKd9us$KWl=#D^(ENkrMRUJ}9%oUEpb&ZWiaYqZ>EOClQx( zm7eL0WFTKXBwjt-Zsumk*o@(lH_K#FfNFd-D8FA;c{oFP1>0WK+MA(rT|?!}P(rB9 z0z7Cn4kv4Gqe!4HP-Gxx4Gvn)04-lyC@E?f%dXi9KjteU@wRmoR*<Rq{l zBX7IGY;as(|46y_L>6*u_ytMKP(fZq$i0*seY4$!1TFm_&^4)R1e@Pfs5Ya01eb$p z>XvdDPh=9=9U9b~vr^AunXa1NG8CKi?1VH1# zU#X)A>bG{hn@qHhM(27LPfO}$rAFN7&Hu*Re~p{5AH8l4>{unQ{g62hsIZ*M+-fLf zP|co;Jn4ep-}T{*n3J8f4wwIt!$-6(16fWO1Ny6^p&X#U+8c-Og34wQSx+oVy_h^_`E>%!Ac`+R( z3g=Y49rZMlbQdW^SH3_^d0b9-sdDmbwY#yTv<+?J4rci7vT=*6ePCcjlu=Ei3`Q;+ znm2_}H5iA~ll?(7g66d@ukgWG&)W{j>_mUoF-yU!WMaZJK*ZkPt^2nvxZkT=+c1*$ z6w5jrxkumChVZ)wTSF&*a=f#^fPI(wQ_S*aWr;7ghc;RLURyH3bWlPf|364HW;)hC zq6)k03bmvR-jPSYZzTl5pn-yGHnc>K`DIA|hjO1>&U_q_*sMa+rb9?mjs4n90S3p{ zq>pE~3CEsdj_B7SWEu%D0ueGV{Ll|=YEbgVvL@t{-w>&tU;5OLH~#W?8+6O~m`r{D z5iEAZF##QbwwV5CIWXjGcssE6qOtY7YQaW%CAid?(!zr5Do>d^9%bWEvgb+K{hL!N z_p80H`oJWpd13=S7qfM0tZL_+c)jpX<<3yBqN>HkjpQ#mBrM=2orKi zym#BcEQrl!o*N>Zq!$;%l@Pf}bW12<@{f#i<-$@2YY;#k z+&nbB@LkkyAibg%XXQQTTsxqkJU#{f+|ja!!TW;we_t^Z6iZfCFdQU<1@iry@~IrL zpZ3#yr>e3bNio)j5MrM)jY1-rg$I+>GFHW$uFod39^3LOd+;dBM1MMDYuM=&|K!r< zib3m#s3CQ`ow`WqUMr}&{Xs;_;F%oM-5k&0q`W>_{Et@kAVuOas!3XD+&_}l$UKPv z0E&tj?v66H>=;L|W6RpQu!?5Fsbv!p^~0mXiaBdIHUNvdPCM>F0oBtIYJ zZSkWVjhRm1njKeT!u4xlHu#_(l0zp<5VIGE(@}p&H%8BAXD9M@nD>dY1 zpjMDHiKK;6P9Gi@4 z7aEUAKDtrSA(k3ok0K@|-AaIbyVneRvg>RB*1c_YLhpD1c7GpXLm3p2X|L&C`V(W==5VL5-0be!V|-7(ma5CcVvriuD3uzFLK zjv|-xJt9@Ur*1{!d1L%}%O;y#C;T5_z zQ%zNng*%|l6*F8ZxT@AMS*vP6zyrqyK&*Q_hZMf%_;NJjRZY42p}s%OwAS-+Lei+J z{NmT?GynAZe{8)4RF+%RF8a}3(%mg3(nv^4cXvu7DJ>w4NF$&qASo$)beDjLNJ^(j zr*z!)vj2O}x#!+7wqxwUx84_cPpYF--6L$2dbT`=fM3* z^^)n+B(-1Tz_Hj59o2xzUcsmET`eUHU&l!#Sm?25Zf{=DSKF&E6t8$ezfr*jVXL$d zy5I4&lX^0p)&S{R(!mGvgmcg&pu$}@GO817#r^GTwLF>PzCF_+Vu~^velC3%UNUuN zkRwUjPTWp2UgtP(`*)NPlQviw2B>oA(7wx0eA8X-%WU!OT&ta&z0h{Jn=$;f&cM5Z zEI+XPY%PA)rleKnDG^u?p>o(JX8K&y#B^PBWZ5U$s4b?>-7w%}V8+uN+&-N`WX;5o z_syz9nQKTJ3*xPLyGPZnqfNp(Hcx09Znw>^JkG0*ENd@`YyjFm7f|W%Uk;pb2H`yI zbJ=JA-anbL(q8wi3Md`N#VV70wtxgPc*p=akPXX`RNn&+gsxMkNY9-AzN)7zA95XJ zGe~my(b;2>G6YyKaa`camw2YWm(xz&`uLUqeVU1m;bHaN$dDy80XHft9Y~jT2ccL4kzl9S{O8@n^Rttp znu!Ww-SnN#By>t0JngAy;)P8{BK!s+IeJybZd>CvD(`3Tzom(uqP3V6)=A<{x?oSM zC$f9nS{@n&;akPmrbskUYAwNvGMEWj;R2RZAPfa9{)d#4Sxe_i;u=`w)!{h{rdy2w1> zqis`Um__a2AXF&)YCmo8z^qUruV0y57#_+NE9>6~KAXjkX&Onh7b`Wie*T>;Yn1iW z549P*r0{_br^&rublDWm$2VP9Mgp=+5vYq-<7Jq)k%!!FhUnEcns8&_J*h=Q!xMd* zyWauLXO@6&rbG~D8HF=@2gtbRkTL(I z2$pw(DqhC;Tgxsk6z(^gmCrFN%&J#MCj>bP_;Rwp!hrU5G}~{5e$8w2L=&HnUM}FK zI*a~rENn|%R<@jn0b&0Y5}Nz+Yf=Ug5ps|-lI*bqK8WW-UtKChyBYND`*&F#9U>OB zoM@NX+M#qUu_*^5{a+O?wlf^+R({*#bu1rz7}`Yz3C1L;^2cgD?aOzhzjjBxZ#Wv{ zij5kXtaMv&K7MEK`g6|yap^|AE~nSWLi_IxAN%>)Zv+br{n=-n=5dAu=aTOPh7t^Q zj^?xEvY(A~yisnYVHsViSFe(zRvWo(|9F|3F2GZKD=RyG*+p}Zo}O;CGhNO5PUU>7 ztg^~uRbKpJEk#kq`8@Lwq^#@)*-{fo&HNBRj(aJP29-tqLwr+H$AxSOb?F5XY{>(0 zVy2qms9!%MDJhOwldVAyJ!{pqJl}u9>Zydg*}D^6C*k8H$?**?0d*e|sCr zcx3JLyw<|elNQeCP@#!mGNUBVo||?wJHs^a@+f~$oA8$FQax1$*r>)$Omy+T*H4y$ z0GA;tJ3DR)ke~A96Q0()&hvt7vL}C+gT_*rFtA9ud!C%lg@f)=hoj;3WxKV-TwezU z9u2TA)8N*@w7OPL5ju^I%3SUqR@uGfyfumTJ1KbuvR+Zoy^}fc94?sSb7$8kNxH-2$mIHkR zn9uIaYmjbDB}aJFR|OD9G44iamK zY*mhFO*y%Z?jb>2G}gJBeQ0t=vKV3>3Ea%kqGUjxQV+la z6HiT_L82wI3|rC*Of)VHM)#Y0_b#yuR7xk;$z-65#aO)gKmbv#h%iNKzaui1xhAOY z$FoI)Evn0O9av~Tb0^ZpnMFiRZN>20X#TMeQr~Aj3qSv+1Qt$a<_pST?qC{>LT43~ z)?VKmdOrKrxi8)4ym#`wFXy<0=Aysvv}p3yUyewI;Gy&dtkLePTeK+L*7e;y->Ue2hlIWoA;WqLT)cuZx0hgI-CVpla;xprC*(G0#eOO@8XjauSE%go|A^oG(M0K>lZm;E)#hP3Q8f?0q_n`WYlOyaX z+^Z5i#9-evYuk?owLpSweA>kp*hUQNqh)tLZP%M?PZTr%=j6E5j}U&|^@K2eF>8IG ztBccFiY(;Q{}AE9HLd=U!h>|hh0uwd56DGIi~buq^JCREvkw&C64eLnE^=yWuHTTB z3Q{3I`WJ+^5F*wXju92gQuYA5?yxPlyid~lP?-2Z=;!mc0mGwlvj?S9SWE&hg>mIj z&f~D9?pC&+iiR*9oM}MPIlM&%qB2)r$jzd-A>?uda`G3aq4FNr^gCaULV$s!m*79j zgDxzdB_Je>ix!ZDmKBI_b+)3oSjyFvn*{`JYiLL>QQr3wt@hf~%JE9}J&jq*QDZ&2 z%X}5jwvQA$+PCjTn+;gnWP!`C4SX-wV}tnmX%kDdi&k>)Op2z@w#qhnvr)uPG-&z~ z@ov0-p3Dgd-25!dK#{VcjmNS9JS#E*4iZ>Z;|ubIIbU)PlUwa%Ri$RMB5aA-`c`Xu zbLSGw>mZZGU91yY@qzkQw<#UxVrTR{LFSfNPlXZb*haLY?a5Wv_apDr-izvv{t-Wy z+z~q||H36!LaIjbLQ6x^np4nQuG-VLV;kjBfgmZC4^^V5y3C)%lFc(K$II4ft$#?9 z=^?Qd@O<7EKUL7fE}OQ}yB1|$9nxI%UlEe+Cxw)IgltLv#?zffTKN85RvDzK+h?m3l7#TV`vhj=u(xwT z2KYwb=GN0JJG!Ksk&w&QMck-}q7Q@p7_1RrudC2AI8QnXl}WKq_grq1(aR>TjKJAM zyLQKDQH2F_?c{DY_n$m0H1@aFSRsmj+Wm_lPV>TIx`hjguIq1ERbkXjyJ<~bTprg< z>e6=Enf*@A9P8oAkI1DqK;@#parP0w>2Hrr1KyXk2AbD`FPvp~0h$QjKd)j^czHdv zmQreYZ)q^&&%Q}6RG+tP>i&^uT2=VUx%W1++8W8M{-e~LjE=wJ zgC+Nf+n+PDZfD(u>TF*Lk)4(olKfn+9z(!FlIddV7H|u*ofWhWTfEhNwAVM+);<(w zDs|OaV-aS`1r7>1<5YTyzsCS&LIVDDD6mXqPQXzqGF;svd4jp&`;uZ+tHR;mI}-*5 z%-pJxgN4B3Vc|cS)(0T5_bSNS+)W#D{VK!EAA_g$DeOx5r2r>LK0`aE9S zlQ@7M!c$XI;~tq?t1})f5_hwoD7j9wI0c~4d~mkXi%^BqeeAc-MF{2be5zbJazTli zJsj$>8iu!&^=O)-s^Z$yJd5v1({$tz90?^EK(zX*!^DnTyidmM-sfXuNardL$(qdH zAQ4TtD8%zITeyQaz)yZ>u{wPfF@#mZVTd2XQ0dJ`#b)iAlLRAA02)DRdCbF z8yb@LB~V6Hw%=0dl^qSZI4Xz_s=(^RLKDVxF9nkq99-aa`aCDbUs2a{L*9Vg;sgOZ z)i79*cF4h|kFr5)6XxL|>d6-I3{nD3B69PSTJi<%6v@s#M~s(n0($DjOum_ByXU&U zLy%61>8v_`KIr{!^HJ&-Kq6*kxNt`^<(ON^VFozWv2YDLzwOV40g-_Z2?)FcE%E#i zmd3T!drOKwls1~@C#^cw0$G2I(h^w8|66mVa9vrr zU&M2s%7h^_UrRld5rEV?>o(FGfq~)P$h5XrJd#{GOe18kBr|tDb-3PHmpO6#_3axs zmD;}n9RE(f+;sy`yBIZDPxJR=rZnRc4&3Tp*71wG&oi#X6LzV_g0q;QXEX#DekGm{ zh9psz%8OZkBgkND9Hre^e`yWa7WLKCT)GZOX0lxEqc8_sE%6B)5Bdjl??ic?$t_Nu}`rz9Vnf2TPF246Z*^uS0E4@n&!!!%?MrdQdJRf1KxWhCJLb4^qN0CvqcK8v$9rIl1YToU^7ezkb zV;4#ke$+m7j0=BRS=n2F`c)B_$gxeBJ9P!b{~$Me0+gcH@+elhv9Xb zhZQ&u&~-)g*K9EMk^K-K1g+sTL}qmLd!v8YTEZphCOf#j4M0&79}Qu*P|w%J^xW9% z0WR@QrxRHh{}gxyh_cyycKQUSY*u+foE)#};pby(Bco|x%tB0vj*jMUArcHz4k{d{RZjdvYF}I*93()(J-1(< zIJ=8urTi=>IDB41;KOq3{=USwtV`Otp!%B9%yi$yUA#D5Tg_@zj91|=fTw1w^_#Id zQkA_$4RSgDa8sbL38S_UN$k~pY${rCmoY#xd$Ki_ot7@xZj_nT2i#Tz_1sDQ-ydXD zSnoHo;<2-{^t^k7*?`r8PPY<|H1cNtQt7WjQ-q) zh)(+pP2ux6lwl^U%L=LqzNe41Ue6+jKYAN%cclY+6~4f(olK|n0Im~UdF8LhejvIk zQQgl7IQq|~=zAqX5ZuoGT6-ntR|C8OV^f%cAy07`o9DIaaJrG{O`gIVY)8AZ*Q7@> z)X7hSO8JWTYx5qwLRQTD$j&o@7$?`0`#CPG)vALAwKIC#Kd?0Glyl%q>l_Gb0Xew+ z6o}nyR9{VQnL0fA$F16EpezY<^0RA*WOhGsrXc3-;`Lkgm7J zN1?jn`Q2J4^K|pEXLMO<@Gz?Yg(V9he13|q4ck2sH(kFxi zZRImK4-O85m)L%ej*!hoVd6#=d@FXJG-T(E(Bl$v&U*7){oi0{f1vTXFmN_#b1C|S zy$(V$AtSi$H&W2jHkeM;X@8&R<=;mEk(D~J8x0?Q3F75=UYKVZ8mipfHfps>2d;Az zBr{CBfmcnfubNS=Mty@8=K3D-4}(Z_##4vD4~J&_-^t)Nhs+WmWi`NrK^8Ck)}}hD zXHK*N?5f_TQ*@c`!5Q}6ZyvRP_X6qjbhEbIWsHrbtUX#wsp~a8ay$ZpBr}tHxh-*E z-94W`G%M5X=_R$dxIXvG0j#n1{-PqZ`iQ5AAjXL;P}yfXhR9)V?wkVbCLI~+z_vm;y)8GoN3LF60JlregK)2(U9YA>RVXQG( zu5HKV=hcsYq9l%5#3V_6a6Yc1-67#`qZ&Xn89)D49CeKfi>f&20r3w+8^9iYZ@ehu z4sla}W6@XVNgd^^&#ZR;t`PxSS~~Gb4p2Q&W&HNo2?#WmEjyIyXG5-b*#fUU$h5V7 z-jpjaJUEcJYpMAwo8-iZOT7^Na9awtdQC%H5vtGoJ4v`J`?G~I4zJrP9ZU)YR{`#K zKszv}$w5nT7@Z3NoGf0ZTQ37_K3?=|4`ygifQz!?7Ti^Cd3E6nVnuh9$I?O(5rW&w z%Z&l}s=DNpzuPP^ogf5I(dA3v7dJL|&JACsiky&a=K%qM00_Q@sdQL2G6XNX)2jG9e7PYx3OJ|)0?uSBg=%tp?YG3I z9ws3{g1>%^+k3dRiJ%D@`~4DWaI~sBQyTmzZbG3i&j_}|Pu?YF(>Y?|Y2V}F>6e`- z#kbo$4S1F4e(@H9jE6a%KSL%sPA-p>4UWQwZb}slC$s&|%aO>Q7?HoVvp2S=j@anr z@bx};P2cqjfd>fo_|Q}9m+ijy)Tgz1Uj*2?d2mb*;dMpxpBehK`vtXf)0-Tp1X;>tja}~Nr{3h?O+X+3oPU%uE`beDoS2yHwt#nuuTuwD z&R*oV%n|>ZhAo9IQ_9WaF(3+IV&5+oXY^y{GCuCohz}PwuxT@^_&dn3ywc7{1 zFhFfcX0c?QdHb)b_uDvo2Ush+V^}MCv3MTa*t$0}ODYVITPqX0QeK2rc8$(s1Tc z*49fEkHOHXR1IWUmG?jM1RR+ENFyq7wtRPbJpqPH2=?@1E_vgK!1j5cRXn?;7%7+< zdq5&ZJWAcgyQRxV2qQa3ikLC7{a1aNT<3^T$=CGspEzHu9zBb^tZv#_;9+?1E0N`@ zMQe(<-LDUTp%-VwQ9$dYi+BpV@^mAD2D6nHl_jRC(5v5Nuf%L`n8^gEL{V$Ln>!ec!a<-%148CCw`WtBUiVm ze-zMosenme>H|KanbX~E(`5oVVU%0DE=hvB=#yA-vvRb_u5BfODtHS*=5^vj@w=c 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 Dwd5)`pI8LHZRf|HQ<0O{{Q>H?f*dR_peJF zc8z%jE8NQU!5k)!+6da-RJ_I_i8&p_eJv*4I4y)gR!UBe;;8obv)oy3$E7lK)QbFc z>Umg*NVr)T)MX`UDB{LWi?JL2o1gA}CZ)zI zjI6q!q5>^S^?;VZ#E>k)^G3C&AZS@0t0`q9p;Uj>0RIYq7%p>QiK%a?{E&^yHvO|a z9tA}dCnhE)h>jj@LLtIv)q~Etr#Co0CX1b194eJjQ=@>n@2>Ol$$0%*Z~m^ixyjzv z>a`m;0`>Cb0nZ>8>@@SacSRd&K&x=AL_y(Kxd1!oJ;Yy>OiYm$$qxy+d?<|AZ{QAg1xIFl7NS=#&e^e~mp@cAQfbvT$Ms8~D&>F78iaAQm<4-DpSHaEY_fup*#+-m3 zP_DG^&^q<&Z1l^QHcq_k>;&nYtYTt}n3c6oUWha)7Kh6fWd`VXMgWAHf-Q*PAwXS!D06BbDzzP^Rh8Jkj3CG<5oaR# zSCr6aF?WggQAn1`9qc7Ju3jn0{_duNo0|}Zg_l>gPw?D1 zQf&iA0#ZUejO3fIQU(2;b0u(LhKLruV3^JCWp`y|OTU8~Xa+!R(}5%!-@a)=2T^8t zMIl^VTqvPtZUiIR4=G%8K`=|+n1*w3`8LwM&+fD-%0ywO5hpg zgUJ{vC@6e4=KIe8oCQ`vHNq=NR@Mcloc#=Iw$$lD zff{O_dNP%|EiY5xrs;UYm zCh4tDnX%9rp8e-F+>zUax;`7vzQP!u<%m|6+JBAxf(F?b( zI!2iOFt80*b#&y{E3v%u>G0|;d+M=JGg2@Y0?${10s~pDUVV9pS@^#7zJ>pOH zYnwo1jMFLRej)kKy+60ys>0)WQ33Wp4AXxwLA}G+L5O(98Op~H!Bl?f*$pBhB45J- zV36JhwarPum3sNb!FF8F?BVSy4n{+yE@pa}!ST<6ZbF^R zV@PRhy9V)=cIVSeNN

    9{&Q#~r6(AWgm1BPaX_%Qq1$^k=Vs3ts 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%0DsqV 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 WhEm{XMk)ySc`5r^rtrB@;Qs;?dG&n& diff --git a/baselines/fedmeta/fedmeta/shakespeare/graph_params/result_graph.png b/baselines/fedmeta/fedmeta/shakespeare/graph_params/result_graph.png index b77a4cb1dc4a1bfee1543bbfe7bf202d6a74816d..f23f529adf321eb44095fa155c3d6b3cf1678014 100644 GIT binary patch literal 123180 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 Date: Sat, 7 Oct 2023 13:55:28 +0900 Subject: [PATCH 112/133] Add grid line in graph --- .../fedmeta/_static/femnist_result_graph.png | Bin 157388 -> 151054 bytes .../_static/shakespeare_result_graph.png | Bin 112802 -> 123180 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/baselines/fedmeta/_static/femnist_result_graph.png b/baselines/fedmeta/_static/femnist_result_graph.png index c66618ebfc40350c220c3f205d4970ddd4d3766c..935643b46f900da9f451635e9a5b4fce5d13c8eb 100644 GIT binary patch literal 151054 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%0DE=hvB=#yA-vvRb_u5BfODtHS*=5^vj@w=c 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 Dwd5)`pI8LHZRf|HQ<0O{{Q>H?f*dR_peJF zc8z%jE8NQU!5k)!+6da-RJ_I_i8&p_eJv*4I4y)gR!UBe;;8obv)oy3$E7lK)QbFc z>Umg*NVr)T)MX`UDB{LWi?JL2o1gA}CZ)zI zjI6q!q5>^S^?;VZ#E>k)^G3C&AZS@0t0`q9p;Uj>0RIYq7%p>QiK%a?{E&^yHvO|a z9tA}dCnhE)h>jj@LLtIv)q~Etr#Co0CX1b194eJjQ=@>n@2>Ol$$0%*Z~m^ixyjzv z>a`m;0`>Cb0nZ>8>@@SacSRd&K&x=AL_y(Kxd1!oJ;Yy>OiYm$$qxy+d?<|AZ{QAg1xIFl7NS=#&e^e~mp@cAQfbvT$Ms8~D&>F78iaAQm<4-DpSHaEY_fup*#+-m3 zP_DG^&^q<&Z1l^QHcq_k>;&nYtYTt}n3c6oUWha)7Kh6fWd`VXMgWAHf-Q*PAwXS!D06BbDzzP^Rh8Jkj3CG<5oaR# zSCr6aF?WggQAn1`9qc7Ju3jn0{_duNo0|}Zg_l>gPw?D1 zQf&iA0#ZUejO3fIQU(2;b0u(LhKLruV3^JCWp`y|OTU8~Xa+!R(}5%!-@a)=2T^8t zMIl^VTqvPtZUiIR4=G%8K`=|+n1*w3`8LwM&+fD-%0ywO5hpg zgUJ{vC@6e4=KIe8oCQ`vHNq=NR@Mcloc#=Iw$$lD zff{O_dNP%|EiY5xrs;UYm zCh4tDnX%9rp8e-F+>zUax;`7vzQP!u<%m|6+JBAxf(F?b( zI!2iOFt80*b#&y{E3v%u>G0|;d+M=JGg2@Y0?${10s~pDUVV9pS@^#7zJ>pOH zYnwo1jMFLRej)kKy+60ys>0)WQ33Wp4AXxwLA}G+L5O(98Op~H!Bl?f*$pBhB45J- zV36JhwarPum3sNb!FF8F?BVSy4n{+yE@pa}!ST<6ZbF^R zV@PRhy9V)=cIVSeNN

    9{&Q#~r6(AWgm1BPaX_%Qq1$^k=Vs3ts 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%0DsqV z;lhXHm9A5FJSGMnhMr+T6a?~gzhXG}K=@xzeAThrXBHXGjTxQA+!2|(W-s1;CPt49 zVW{r)Y`bQc{+okPnGxPwir8h>Tr|!=JjmD#`86%hWBv@kH}^?{OVg}%_6ia($*V)+ z`AFAGQ<!}GGAVG+; z@TvIuuStaNx3?pSMrq@y51tHBxs1d+ZOh~kw?^49OT}r`s#>PHOAm5*6~s&7pad<0 z>uXtWSRDl_92r---afqm^{RIwtp4p2+3ptL=|S<%l6_B}#VBG{Euo627qJDetbbKg zGCz?$ZDONu$jDg@&5LfY_go1?gZN!G7u+v_n0k)-4@rH<9l9^6rL;*#MXZcsUj2p6 z6zy}$d!``rzGw(Jrj#zekQKtG_$PFSUG9IxGQ>l4@1M2ZAhv{uqScR=w$#I1>jV04 zR9!04zD;yer-^sqa7p%IWhF!3?n1rj?w26x&9Y9tFga%5&pR0W29;Aw zd`|B|Dk!_pUSc?$v`V@>MZtU}%wl(NV{1AEm0ijf)Ue~-v2xa++mK?W?K$O@>Bv>) ziB|~~*Q6ZW>U$qYF@)_imdC@&2=NQ=cuZw~MvV2$oAyDxM9-gYcUI1MMeFmAcW;lF zWZ2>ihV}-mVWZj3jf@EhP)?L!;)r0#OlS%^2Qgfsja;_W6Tv=ANyOXxqYIJDcqTvg z6YF~PNt<2X=}EyAMdRuVnVJ_lVYHdacm9J$$c5gI zJ)HCb%~eX~OI0nB8DkG?d5^z*vnkHY3|EkT zDd?`iUKK9vFi7nE{sc54WVaCzPi3wBj`G3q57sLRECx9VIA!gwt%v?uEeXN;sb}y8 zs>KGGjjj>+)dB#e9tk*)*bffwH}8rCuW1){f5CeVjfIs#o8bgKM3~5=%@%(M_=keC^Pf-cos6{O_!#iOc{Y*fc*toIQfc2-Ko()c zO-JL=@9?gnU+HhVJ&>Jqz2yg)B6691!`H`Y#+OX+K|Nb)s zd;*2|+6CPU?RM{p0@j)YqgLkjAJ!i(CKK=Guiy3@-!f(*rA!Pr#h|Lb= zfMzfBi7WFvcxw93x}AK?ZwkPh5!SEH{MDyCMn6D-=AMefBzjS&z~h~(YPKn zAaN3~!+g(e)aIJ>`(CWAe4h^0Bw}UPGv?pDE>O5A(iklnWx67-M>b(QB2@UQC~J~I z(gf_vI(OE0JbmHfHUo*>L6c$cG2A7Wk@bm==*kQv#}Y^LKdK_GL)JifJQPnbHeYAp zRQ*cMF{@(=x0P9<=Urn)pb~OERie z%5wlhY(v=_a7;##jE#H!M{MKt$<317sQ>N`x;ZZ5tB11*YEVt4lm~L=S^cKE`^Nb; zc+6BG6Pe-~&9#X{n<_$E@}?PoF!`D>aG*-p2s8G%g(k0TD|G3Fe;6U<&H`seHoAYKPk{CD2)4LI-8o7! zOvuH#1!H&Re!!ta-*ohMol`j#0l|3=rW2FqlPfG$vq1Nr*asZCm0XvXm!A_7LR^t! z+Jz#f9d|&Nlh*X~`Db}=BOS7X z@sXr{t3ifVNL+_bBaAuCmkk7iNR&X-#0fD2}Bbl?8mH_?#Jc$w7gVtpOlJT;P75e$ZwYa-Wg_ollZRkZaQsxMyLOu zF{FCz={EoMUCRob^-|R4$v*qiPfQ0lH-3KmnUG35*DwMiBBFA;X$qUM{1TYHoE+BO zyLX8h8KZV)>r5|>x8sqwNEbL`g6`#dpDV@MopTLh7z@YuEF=S5L?(TAfV?J@WEBtE z9i#PuU^`d?+H*91^7LD235$`37*js+YtkoQ%>NKb{Sk0tG?bIVbgRJ*s3w%O9Q`%j zlpOwxqW-~y2VK3rPh~AlO-$Zxjy%|~`KkURaAP>vbgterLCBf?0EHU*_L7uN#O?Qi zPoZ8-ARymsO$QSL#3v@NYOc>+25bg<_<7Ox!k+Xm>(hJC@&x6!B{ly)Eycp<>5WqaefA6xX( z#d4^k1IE7!Sl{XXG6@aM=4n`z`yX`Gzedwupj>k;8D;(oPtqdmw43mc%Y|Ev<7l7&CnsK7TAHBGdAad57$ynr z!~Myah3)N#Te==_kTV|ist}{Gva*V7%9f8Z81;SluLinHJR#rf(5}Zz`a5}&@_%!R zTVFN8lJ!e$l5o-~R41}T+@oE`VmxtB<)`Ev62$AZ7x7$j&R>6Bn~95yTMlNR#d8f^ zJVhW7rrlrIUMMIy9Vn#M*NfWD){?U+D(rmQ0tCj)tgLN&xwjJo*x?G_dF*xm9xmpl za+b?SnU@yN7yv1HB}U_z%glmT>SqPXWvf^Ry>Lg9r8V&ZQPdp<*q#)h?F4ZI&9fFj zI^?+VhfVa7SKIqmw%--vT7W3gAj=&Q(%@IM#6%Q`&{#4Yw%-_y@gw%)PMDA zqd1zoF+dJuC~k5!D(c$X!#pS&bdiA~kaKdk)T_g}MEz-EVUJBa766q|9$@XF;MQ5; zFcWcF!4VZbG&=Z*PkB4#QiNUc78e(92d`0N5V1M>i?V&^@8Cdb2Axb5hUitmKeKv> zVG7JXUqB8A_L3d9=aCdGIaWz-+3s1q-*R&S8z33b24{oRzq;>JoFj*~BF=@F^n{e> z;O$+Gi`K4&(K5FQ_P=jW(eDF3xxU{B+Bb50VjA97UXFEn`UGeelf#jmk;L;ng4gwkH`_LpQo z1O-u?y7Ctk|8s^Flb#+07^;{A1*!Oxw`=Pyyu5^$mX{q5*Hu4!_@MXoq&`liv-8;| zm5@9=<9MFw3XN-cN_J$F&B$Y?{s=*F(7J1>JuDNt~kKU~Gl2k9?%( zL|9p6uAqWa|K3RF3e(GujJ~}wQdqoDwX;iT{Nj|1y|h40lY z`1m-bX=mieqN3f1xwz!J|31WdWZyADSnlsbHczYN=vfdmpE?oo+&X|^>)-olq-6ic zQrd4@+yD32|J(Jf+5fTn&aUg%J_=`)U~r#t#14G_o`jx0fhm}n)l^DvvL5{zxvH(LO~r3Z z#mvG&LPqw%puubLaAP>gjtsG^R%xp}yk9bDd;53)Y1E~5i3w({D>A6MS`aM%zf(oV zi}i;2!l|EPu_?xXXljxGT)1Hk-X}C;LVnkx=SRrk&!34ueEeuUm?72G)y11%_O_RT z&tZ0taciexS!fPw-wxg85 z+g#jV;1#ZyDorGI_<5tueQRQM2C z_B$~fZP52@m9q5!mz3QyGc$8)rpCGA=K4ap4p~@N?zGxtm6(_q=_>5Dl{flBP5$C! z-mfC=p{6zYLyeL1<87o?T6}y?ds~|&5Y8|dVNPGtGey+N$#~A|RIdi{wKqT)-*a-T z?WQY7eF37f8!yzKN_u8fE*C*#ML@&HYs+%)o)oQseahm@l3$%Y$fR%5dF?f0SAc3l z8u5!W6oLRb(~tO^V-;lT3?SF7oRj*@hmUvXceQc_)1`Ox=EIiGT>;M^HxrYj_gbPw zIlYLRC8O_Y=Gw-_4{n|E^;%y8Hjmj1)oi&b&{c+R0CjLs4lKg%@^oL|U6K7Ai~f`$ zh^61nRh6j$Shg!jSmd-C&4JvLf`fzI0G8;iR~A2$!N)B=E2Fz4Gc5#;1HV0@|0jU7k8B4fAb- zr;oL?wi0x%1FIef$i^u`LUo9R^dU16RGC36gNYd3ek;CsF$jpl#d^odzM7h`dDOY@ z+Mm(55+-iUHPpEwKu5;4*+)Q>iAB4zu2(eAtYbB@=)8zss8){oiIp9NP^DheJ{APva(dl%$06|##bIg zH!fX3U=6&$$Ako`&U!+6VJ0y#`spf%CUFtph{-y49?n}p9BMh?%a=9ukwh#aBD7B}`rF_EP|(4P4&`uy3Pvn6zXug8v5P6V1O&1s zCRyMDA72_+JU#Ljcrq|BXw|tDn5Kdi9NyX4S@JrVkiOXa#9puZ-J-Bh5>j4A2Xv35 zZE0z_gS!7J!N05P#mFyBqTPB_q;XzFHDmT_?^hOKVVXBT)td)1r5$%>ggT$N5>nq% z#I6mbM@hZMN{qjipN9|6Pvkfd$en2;q@Dx8s;mC|HU%pi8>XkHXAlo5#Kgp;*k-(t zwp>#n=<*UK3eJXEPL)5f9?RcI09JMaOdieA(Q%^mEqM5P@qusKZNZiZzA+1WexC&MoG7ZXL?AN`}I z1`0-qgw|$v5K%Z6uSy4gr#~GU8VXu9Ffa%S3E|CGE7TJj=AS6t+uO4#y%7k^&*u`o zxkRl`SMh*oh7OeuJ9s%#WXK3~tJUE3OfHHcBIdrb$)9g8A)ihjZ%&l3>@;53$3D~~ zyg1qI4C84G0k2{Vru*LEp*rF-T+`6!*nbb?Pn0wYfRy z-F~A3VwMO)*O;nSY|mPl8iD?_GmCs&@E? z+Wk(K?Wu}r5G#K8fbly`?4tIHWuEg@GCu)mqwri$FU53j+xMEIFft{D?r>+87A)8? z%Hof?Zao3raD~lyP*fBVgU_KVSmdtbtwVLFcItM;J3&28g-V^9oqC=M+O2a>=C`}G z@03^R;`G3my-!b1H@@C>BGlHO4b;X1?3mGzQs#bJym%f%-Vl zFIS-CLK~GAxCWG`r>7afn6*mHLQM^PeZ}Lsv;)6=`$k)BF^;V?%nLhxcL~U0v}#>` zSgp(brFP9Q>;3}q2f+=%_@jHvJ&#_G{?cq>zwlw{?&^YHUtOq{n!V(+9E8lx%>|(> z0Co^`S_uJjSwC{%tD$e``nn~MPWy&e)y3JZ9kz9J(DWw)!^qdK8++Feg0W#NxE6c6Q)iN4eE7018k5>^oO$+c)T(TyH0?CZH8IrnOB)7G@UO zgwAmHfF-Ty?EKvNDcFK`+nUG}JLqE3(b7uDju$EZh?NChHiy*oW_rT*xr9vx3>OCK}wo^v^#GI&h#c9U!Ba`prN5v zebE1sBP1a=IXO9{?>_rI?vcI@AobrF7HPsRQ@qbaav^ zh>0_N4!ZB>j8mRCca0wD4}V%aZ@2B1i=_K;yNo73dHbo9tuFCwua&6c$=e=F5Pa%n z%SDvmdQiFDKdxy0hr7KzO(T3t!;y4CSrwK;&%;7O1_5Do1%PPQEb@_jr+L;%IrPFV zFOVZYV%Bzdi*DsTAbyb_9~0vY6;~Y^&Q)eC0LGmZ6&0oNQ~g1Ka=Q4fdg*$fK7CpN z2#fXbiHOG0(b3D(#JsKVE2r_n)kc00&aBp_J9BR zu3$yV{;Jx5asQ{ITR1Q-%d_dW%TxjTnLIXjc58spl7MFdj`P`epTImHj<`~t>tDg2 z9lR|7dyTi|#^>PRzUJuOmuJ=a0{Hpr zmu^+z+VXOC9FO7L9>X|(GO+Mxcntq$3qZsrKo{2v=m-9W9UNo-B|bq2^Z(}cC8MCW WhEm{XMk)ySc`5r^rtrB@;Qs;?dG&n& literal 151963 zcmc$GWn7ip*DYPrpeP_AC?MSp(g;$L(nxoAx6(*Sm(r5b4Fb{)(%sUrflb`C^}PRh zfA_=vcF#HJ5g(rY?6u~abBr;^+#eO?rLZuFG2r0fuwF}xzlDQCc7uaM&_F{0-}wa> z6%Bslb&}9Z2o=M=si@e&APFSR(j30R| zT?W0icVRO&OGgW!_^L#Ng+8+xV{lqd8Qor=lk(VQWi?X$dqF#VN&hT>*ZOjMV9C3x5Cx&DAcu`U zR^z_-fP+try}iB23;(%5rMQ1q=kjMfoieRz5g}y3m3*PWx$2?Y+S=L^4l`WvO4PKp zABt3q$MO}(l-iXDsn>W_J6Z|KEy4vzTkZL@=Bh;Bzm$M!-aHypis=@(DPfl8TfdR7(%c!lmP zkw9rVIp;k{hM?#6XfEnTUjh{m&*z^%r5C+U<>2nF_n1ksQL9XcUFK|eCknyxOqJ@S z9`4coT>loj5+{-4U=e;dPaNPeaG#&!Kew`tvC* zbR3+mNp-#FEG#i)E!Salwyo(K{YhI>)sI=uDi3&atE-Qo$49R&!J_4VF32HmF5zkX?0OqIOzD|?HJl)e1taJQp!S+vzjsw8qjmO%+)2e# zx|Yf{R_{=-Nw+HogO7e!4L5va4{HPmHBHDnMeUm=$gNjfnZ9t($4WIS0%$VaI;amc zp&-1-$HvE#c^yp-8Zv$Fl1oY$$lTXs9~{*FO`LYlpVHF@$$f9y5pe`!=noK7ic~&^ zlKXrHac+Ni;|}-i*|T5ujxsgM2x;1QUGJ&7|h^Rbv%W#aE-AS35bbh>K!)B#`Cb?(9zN1Zot`ubH9MjT9$ovKi$lmU!haZ zvpXH+b{yoK)-FnV_Rq0?p2p`K1`Yz)i-nrWGQG^SG*WDGABImgesqB^`iE>7JMLkk@Pqhok@_#3#Zb+WLpP+9W@vE$}|!SQNW zJ@TxBgTu)}nUME&x!08g?4Ub2aroZf*4DZH&9Fh?n>BMbRD66Xhb_>k5G;}t-+PEJ zEIHgmTkrd=Pse1LD{Pm9a&mHLb(?rPLviwbZm;X9#zD5Z>z77>WqUGM44rKBpKc`S zHCRKzub%}yxd>jo$&yd!`~9n;bFTsA^P?6b?Lm{Eo$D&xM-(nJQFaVPTM^6B|pNcE$w2(SdzYKYwmNXI;zs{s&ry$8O;~ zm-Ft#N`ksB?91T(?snd;6U*!7xaS6(H1%~(^Z*J%wIA&O11twmOsM!=Z4mLf{Fbh@ zS(x`h!F>Gc{rhK*TSFV|sN_a_Q{M(M1n2g7G~uhk5sm>Nf7(T)=VqmxD~WY;d;6~9 zeXu$7{thCX3Ee+DwB^g=5_b8mq1*@_8}>-Y3$9CeBqWw|?GbSSg`<09ghPkfP#;xzy33} zMNj%Kc3LUg07uJkr6bs8Pb%VZ`)XIXIjBoug-GGy;k`gU{F0x4x)MshSz|ep1rJIN zKd3&rAS|rr>texTvFW$L!Cman_2{@RNJNtfnt`jpKVUyo325YDk*8BJ4XU=H#^3tz z09ISwj#s~1&rP{BW@eJZa0vJwrJ!JX0=@bPC}!-Q7gjIiQpB%LHehw#Aw25}3a!#_ zM_BZ|_s)|~?*nj$Ryhw7R$V|csPB0SY7I!{Z$7j519;(aw%z`j)$oKNBoFWLEMVfK@;6ITcS??cE>t!;O#tRZ=pGuwFzcF=CfEXzZEQ@B8Xw^o6 ze8%dqF5Q>N*uOcL`k+DfKkzXHHVkLCqjpD=4_6Hf$%6Gx7I1eEah3Y_-H?b@|1SVK z@c#wIKhMhIUw#0Vk(A#hqP(1i6kF`inxmX z`;MhNV10~?j0pc+VOP(YQ7pRb%$H6o?2~qRc^PmJMxp%{)b9d~iubV$6#s$$i9{tO zQBZNnsA*{Ovl^eFB}McX9&0~DD0^{`$gGzU6N8J_8T2fAd02+Dw_AM+{0op=dcq&pyt!)EtA&fH0=DH!qtQ~0vsWy^*@UOVL zN3N`@f~Qq0(SV1D<1#TODX-C;Ae4ptU_(=@S*#3 zDKCqY4A1RBOz;CDHv3g^a5kj0wMnr^xEQvX+>HPs6Bic;o8l$fg8LsoTleWhx1&35 zWDhq2Mg!u#aZYY-p-Le>h{>1RrT;#m;Jp%kFcT0Jd4|1+kYl^lf=S8~0{|;vG%%7y zLlat1KnpU01OQ{87?^AhB~RiOdNYdufa1lA?(aID80@x-0sssF43(`_ zYxCvH7Z&p|Y5=-lgWYsn2_|x&S4IFCn%(V4zeuG}^dtUrv(X%6uo8$9;T4nVDwBR5QX7gB@$qgX}pdOb0vDM z86fj3Ho4i`G#yLcU2TzP4l(|FVMSLYILJobFf`Zd`JOh((>%6Gq?eIKyHtE=3lP#o zp>k+h>s<=i#pT081r-%S;k!#J7=p4{Xea@YT8hjaMv+JJP(Sy^LCbs7PhB?2cE@}W@Ji7Gil?0_1P(=}GX*5BPvn;7-G9+YVR_9$6u;$xiUmt*ywN^c?i+JRb z4iB|>t7*GR1`0BWaoY(D$ zg1O}~XLwrr-)ZYE?n5^fakQC$`x*lRH8nL4ys4;Yz+4T$d0Sw~(h3U;ulv4G=PP?7 zYhPu4q0ZEs&d>DOEm6u18Q*c@8y_1>1KDB-9EQ)c0$1yCLx5%TrpxC$ZjWRSp0KqYtB#6FJb|60 zlvL{VQmGC2!!c9pq}8Iq)p5rmtT4u`@9- zxh?>_lGY)CDBgLiMtY9iE+?9iZ}bTefloGX4RN>Q{p^ z{nk)A6%7rlAIL+*9A+`o{V2=Vdu80`^wiWrfC8sZebZ|tJKE=Se-E&H6VM7^@Bsjn z)aw-WOZTM~Z}Yht#@N`{?_f=Ul;Hp%B3!xap)TMFuw3Few*+*9yj$19#X(pQ0^;O2 zJ=5&^ue=ZFfVKGADD*k;aKg$ip_`Z}1zq9tkT*Pa{WZVuofk-7?`Izo62_MqBBP+B zBtFFs-RIliRFIMBSX#=IOXXSt$lt>BrlTAnWV-Yz3`}a*JN)SG9s~Qw#>U1} z(AskLkm)y&KqfvCb6Ok?axW=@vk4fS*{||!1#j!w?{uJS!g8Bw@2BU0JO%;)JjW>f zAD|~l7G&={<54%loa4{+e8{??h%)iC+q&!FAU1Ic3B|3f7{Glhtd(1Ryf=r^Ej1zF zc6w*^sUUy4xNyO8ClHCMt(8kOSe5m;3r2R>O^3jNC07K677hq~ZlkxyAaz86II^-C2RK7cS%qY7qf~bTQRUjt7v>>5O2vBme-+q7sK47)MGIfO}8b`mz*O{K~SFIC-ua_I(^vrsV`0TBhW zZFo2u)RqeK@fSdK`3dx~$LuB%!&{gS9;|^%zTQn@`vs^eKYsiu2khwP=H>_jF$J6e zK)%r?cSpd|>0oNA-#iU(c6Rm+pjK8(E$JYq9BroBvH_kX>uV3oMICZ#7!37@cTe7q z2;x~?E(hX(ooPB7lhvIY1j3|cS#u)DbK?a{xn8P?Oe{Wba4q!M z{Mf@M7ODkq^ODMj_2w%E&xk#F&@|((J3@n|TW>c?t6$~*WP%>JWMo4Cb+nsidYjDI z01i6uGG{F=Au(EECaNS)Cm&WsZy}&Sl=+LW!IpZ$JR`8S3#nZO3fg0Xigbe{-tsxnB(f1^|+t z0+B-3KLZAdCBg`E+dO~wrL+5NCGe`_ZGeKl)dD?OJ7_!{s@ew$d;xq-M}aTh(gPiQ zuIpkEXp$nyk$B0lU{&M~1)q*Pc5dQzn8l6O*jASzJH-gn}8e*s4xq`^)XEjv5A z3@Bu0JXFY=dK~uXKLbxa&#xxvDUSHkS@Mfg4m}XUl3H)J7~a20<%%3kWg>BvB|r4yrY zHh^9>fkb2kb}xx@jrrxvFaTP&DxWS9A-v?G-l9c9hC>gf%<=HQ_>tOI{|1oW|m3-g)E=V0wPziBnO zu`+7aoVjHHB?PcrIbrn_HcDgO;+;u!b=v!P|GfWae|2jLG=x_s&n_P#-cxulWSf_- z@N(Xl6IGllsE>Y=L!@-@^G-Diw`AwU9HqZZwB1`0}PSa5~wk!_)9@k;s;&{G*VF;9>~# zCbKZV9duRjYm*iDal1_Y^L40lalG{I7I8{uLP4!PU;7Hn;nu)0;{_bW%=4qf7Ib+A zwNrRXqDkxV3Zez1=N4_&js`Vb0vb`w{^fiZb0zg{T1zUzaHC5doxBH7ZDY_;8`xue z1sY2`i_Or4oss7`U}^BRZS^!|NZqHSAN?)sVHm5+jIRK52WbZ;!-39Njn&MjL&Luv zIT0_fo9Bm_uy`XRejBxYnv{E~?$RKX=_8ZrN{lpELJhfP8xom)ecC_@>ClGzQumB_ z^IPBylRM+7*B#VCYCuJrAKrATGbOaSb~5dUixv5baZfRSG{l02hvl=%^ta?hm#KeN z=p^zF$wjb*ue4hceIcLrv&sGRLwGp-nHUuIwApRatn1Tc>8?A`wh=E_!g_fnSEgf3 z_XhkE7FMQH4tgpH0;+Yo?yYnA=1V5@ z;Bfo3<@rP@_@BM6nU)t}DXe2M^naFTwANM+^nIiOZUjs`h12p=T$~u-r$FC&#>2x? zYZn>|cp$9J8W0#*zZS*+;p0bEYhlMtOn|y_05A#)3K{|Oq|fzE{`|h4?=2@#Az#q+ zq-9To4rYei>c{yFpfpB<_5s18N8QQ_f?c3=3}JE4+x3>g8dOK*?K>(@O2NMRm#rL; zYIx*3#F^x`XJ=9_^q1Qgqj_x8%$c}grQfiIRXY!31&8hs@Gz^%1z<&IOtSnWBUU zfK8oXVG|l*IQw0l9VGzdDEgoo+XPsD1est8sP9V69?n24^`%=R2B;~gGdt7Zywl>> z_2irDC%-NpQIpku@2SQ}=%x+$R@T|aWVgz!v7{&Qw8RH3aUO+Lct-DZz^xx6)RRQ- z*AwK%9$JypOMEC7DvijA2;@8^aC+Nml2#4nMohJob?dKkWOad(AGz~(jCm{Jx)G1oco--Ue@b9SrOOAS~C}k(1tViUGI6J zF-P(sgnSh`X&J|b+&mgg7#mZp!;6&SAfvP`m1%X8F~P`I%68{&!lcHM%Mq`@cdwxb z%ovENFj=tTy##1IKH;<=1ROdWR35kq(1iyC4F#Z4Ujhjn{zF8B5s*K? zTJb^ZREtz#{fYX1L{w~}(Hx04z)p~A)9?}C_)*ZGfgv_P(2?5)lG#CnhQW2-9u*EI za`e(E)y5C*2vmuz+My@7T$DXEg zq&UE-+o7jjQ0by!Fhf#pY?CV$CW|~q;Z452skplK>X28ZDDfhx^Gx2T{*js#+0&21 zzcjwZ-5THO?HV1T*=(>DelW*%h`6Ox5P+Y1-!y*rIGi4lRi6d3>hM9QJ&MTr0q)x_ z?gnx*fq&ERICl&Om zV>3$c>N0`kiz9f3>*KTQ@(buo+zU=|J9SgWAmBxNH`~i|`h#&CYu7}B#cgj!Wx5DU z_TyS_E64R$B9DgY4-UqEb5sv)`z-JgV#@`qE=*RAqocO?6ZD^P+4~llTaeyp%JP~C z#>Rb%a`j=hA_u9(PlCIBNXgD6H%tib`J?>w5kqt~eErUl0X>H}qExe57m zkq8v&U*Fj5qVEfJTi2dtSohefPcv|W(xA&wf%l{VJ&~N z(ZXa9?eJ*p%idwK&+4Whz}!IK=xm+ z*_kLLkk5|;6muM~7qwFDULcfth}?pgpye=n-br?TmU_9bSacjr-oMRq4!Pz3MT4Jv z9-xu0CiWIHXzI*fPb@<8?RWRNZX$|n63!(mWP||9UR?H=WrwK#ct^|TN2lE6 zRJ@WBNE5$}eSI3u5U4b3EJG+|r;`!2bVJv|n-48rOIM9`yoGV3bmW(Iap;uBG-(G2 z_A>pI=~spuv!p)ZOGhHbA2D>#R-9o&&tLmJvb3NXu}GWtC3oZ)ZIMeHypHQXzp|3` zDXM@=m$WmU=4F`P;ZdA%j*ws+sP9lii3qy04Qv%wY0{F=TL047S84&hsLfU*=izzB zNL03br6KCCTtrCyHT;j%Pbdh2J5uUrDy#v%kQ3I`$D*nsKDI z=nPnIGz-oP@ZFS~(VFD*!^n;v_+bY6nbVjgS`{oFt_LbMqyCVGG)M1qzm(!EkVb6O z7!R>6p3c$nr1Cusfaii5X(BBSmbGOloEaOgaE~A_dcP8E!$ZrSE^zK)kl*5Mb1Zcq zd}#eO-oWS9!)ylsr5kPyr#;b+cCDYRd~Ub5Ri|cuWcOgyzgb4|88HSrCCM zte^=2dLMvrvxB5@W(Z+zJ0o^17_<2qT z*oW;_f1uZ%o`akNqW%=L?l(|uEnyuJ(5X!XvQmZby$|r-2-aB7g>>5cBU=MNz{FWh zrZQ8pm!Z->V{T$<973d?!~7VT!_c0E3gnkuM}yn(7IN3ZL2_499kGkr=%6dCgaASF<}`ytvuDZ{yS8gGzedQ1?hJLeoQj_5FG`1n z#3gpTM^9YUOPKW(4ynNDWfHkMV&GhOfHUMRB$i?v=3j?B?asv$+YaWM5``y zhBd-9N_MuBpKpv?PM)zGvEh;;w=;3?^M>zvREJK#|6zs}6|Jt^`U>jVCH*l)h*X=F zHUh!c@2?Zm?j1NCbz=Yke|QYU2jD0HR;e(cV2lG*VskiC0T3Oy0^Mdl0C?U5Yy%@Z z=malVEGB5jS%FF>322x(5Kv(a{fG2w>;9-@cKp-nu8XgC#=gS(3P3?CH`fBaizj?e zw1KENdEn5H3b@69WA(Pl?YRG97WBnVx_Td4co;>!+^!yaR+%?PXMNR1d!&ghgO&TC z$+QG|aaLuwxEk}FL?+W+ccatBSN383^;gognF7<17q^ze>%u#FmwRNK_ggxNcbQy` zuGP~<0|YgX7^~hpu_C6;{a(xqk&71_h~5N?G|;~?-7y#!ui@6uK|796N@B7Us#i>J z!0XefnbCxIcSyvU=`-81tS-;>JItXuWNp*3v`d_@tf1^cDT2Xt+xg*3Za3(lqA$yL z4jyH7#9_D%o6+fq^jL@}9ieT6`b0ANoMU4NlUntNPQo~^Yl}7-oX@#Vheh4KxC^g| zAuA-LP74*~FmnmySGtSTe^7wqf1B;;y3r!X@u7>$7w6Y|w;fXMb?Bz*M41ud;ao66 z7wr+sHB=2x8-{6v9stm_BIBSc$wBx~*JI~7`1(3;3|e16HToIOJgc(h0u!@9@5M|r zUsV)|76>B1g4BCD@8jb`T7^Bw!Qypk7lJcQZ%}JJmk5k-FNW6uGSYUCFAb_nr943{ z7czFaY(J5=Gf8*%UcC$F&sSQGTzbFMjaM*i>w|vbg~aF^gu#?_U^`6<*}fgc)tvLb z$LFND!bJ+IfABp#rFh5L)@?XNaKoV=Y>#fHkERZZVMYDrzDWf;yU54Tokx`FohieX z&I!80Z_mqS1Ivq2TXYGQIBS|rbg{o7RznL4kV6qI&Q$hXTTGXt>#J3{SZG77*kblk z?|A#VNHqJ$hLNCakD>S~C~OyuA9Ti2Wa%MaNfB4zg?tJk+vfNmx73>jWKG<&1_i1e(ILJM*Tys>du|-(c&x^O&RlT?-E6E=%n;__OI=$ z&HUD6<3}tQ*PV;$UD`^s61#_#F3N^~F4`aLjjjH?eOP9k-)+muAI6Ta;!~uiSlTVN zX_!`%Hm&iicqf0v?lXRDv2(DRay$W1lj+(j&V%S*4`i*?XAW~dHo_fiE@{92qVq;f zH+UJ26khR8tQ|^ zDCGpFo{sBiUiX69j#yuaF@C^12_h#PP9{Z;5{YJ0QNXdK?Y2j@k{=+W{%NGwy~K;$ zYV`+Mj08|&zG?Ug~<{LW(nat?_}M%{R}rbf>qflvTRRLdMahHea?+L`687wA*}23kFjfSjD!wq z40fxHsJF{xbMxAhckNych6)m`jBS4>M=|P@&0Ps0p;&mvBr%V)KUMqzNx{rEaOxqy z>uJSOGX!yY0t4b~kK*cBBr?DyNg5Vs| zq93UBa7I&=m-!TT{##Fudbs#=I?aXK%%evrlSPGBpF5YgiWbwhuOqNfU&^Vm5>#8X ztLqh>_e2%8ApYh+YnqM@S~bp||90Jw#YQw`yAl?=!=kc3#PHc-9Y*yiwBL!ZUD;9~ zfJg>?eL&(?0O0}#geqX{ZE)Gw99h6eT50uj{#hSe9sSCo#NpB+Xp*y*ZvQ2Miw7e^ z%i#P}lrKtZe%6pd7p+bA8~=ytls2)qtmDHCru!M103`4Bf6IGm&sX;eawoEgP!{{4 zdvoK+Qn2x*Yg4h*I}S4AB@>e;34xwInM@_>`#C{^^nmglYU!)$d|s%*^5HN#zq`uE zr^vSr0;(94AFIB8_Bn6s9H|(5xp@}E2aY3ixn+oUH-puPFpYbC#pj;Ji5F#tEBL%G z-XA~vy0TSP+7qI~IZ4_G$GuqaplNTa-P1B_jKl2Mx3tC0UW5c$mC85NeNk#Jb8}hH z75iZR3r7D_o1Ceya37yfdWj>&+o=|1aO21~GF{%+4=s5#IM^Wusf-RQy+K;+kbe~u z7k{Q-9pe%EZsX625~BaJqA(`y_Osvn$`VVO&B$M~O12ZTt4RJ^(4?RsdA~+eQC&No z)pY2Dq1`3XhTG{2(LjgZyr+=GJP+=leQXf!0tTnco>QR|%M124`C6M3RzhY|UG)nS zRm=eb^isrx`qy&(wG|w8MFDyhXuh${T1R@mpQtG8~r#-fm@@tNkS|7p&}+QDAL~2L`yGbH5)6vBZoF@TUC`65Xzpyw<|(ad9?AcNsp|_v)gFN(&Dtt zBB}rQOkoF^@t?I*a|y<}HCQ`Uznd?#e~Ixb*GhKjf;~)sP$=|DtKFOyHz66$Q;5CM znR7@hs8KMps8CIRpCM~9=Y(@y-7-}@WVb*`CI)KX(o(8HhsLnuo>|U!bcn~9iSXOE zy;<(~M6uGpg;aNmG+(hY+mn@33NB4rweup$Hn>|!@t$+|7A>M&?{EvJ_6eJ}tZuP( zx~jISzrq%k#VX=*H}m<%>V~sH<(nr*Mgkly3V73vw#?JSCMto4Er^zzpOu#79D{Gk zgiG1XBCX~NhL>D3SG@3K2-A^`qJrbNAf&GzCMjAovZ1o9X#G4H*9%vJ!_ik#Pl$eC z63XhQ$1*^3|0Q4S6J@9>Jwg(>KT-TCBvC8N{q(_hklk}S8>geZ|C#Nvs|HCA9MLSE z>bG)+R@$LSsZS4gPO*jS9O+b=dLXy`H31F7VoP_p)_7A~H~|E{$?Di*IIYG1xhj)w;B-4P?#p>|GhhMTX>h(SVwbNoPU#c( zZd+EdX?^`rt#JjB)-hLe+MapBOT{?<5wqpchO>#tH$KG%4ySFndnh>)$us&AYJOEF z%Y1njV~nOdzMGpWhdi|%q;IBe`@WsckRr5@`MZo`uQ&8_{(QsR{XQZMZJvXiGG5%3 z}G0y16!S#C~#Rf~R9<=XGq&}uJyh^gFTF^ZEy={Bl^ui@W8{R%# zb&-kIe>xClD`DGKz?L7Wgq4Bh{GsqP?lnoyayDk2W#MA&SZ!OXZO0q2?3y5?f>CAT zoDdbYy)=0{lr}j6m5G2FrY5rQDVWdq=us`GnBVm*c_E5y2-^Dkmf*W?4F*b)`H$wV zWQVFm9Zc&Ld#&vFb{w`AqoF8@K^k2lUT^r{zFki7!PS0Z0hwg?Dpv8glAXKUm%*IG z7z>_ME~^*E+J*?d(ZhJ^>qij|_v9(out4s$Ej1&STB%Cca>>n6pb$A8e6d>ldhhPJ zCBmTrGxoue9cS~c%l7o!w^JE^pi%i7lc`k!&b-hDymx0EI+-r@mxzPWbmD(`jW zqa3soE%!4REx(Fm>HLtXnrXSfb0o99aq$-V6|;XmE$D%5hoH|g;2|E);#}wR^~LXr zS}c@jtz${wDvG)%0^CxqmQq`kcxxW?7i*wWb+78l(==V?^tpUf5_4^o&ny+M)zdy0 z)@htzxlV1a%ax7yJF-0AIH^sowLQkKK02Sa@ECeVdcL>iPOk9fOPictJ7OqhK}25* za$T<~u1)yYEcI?)jY+vd669N7EF8YKj8B?dJ#ia|m_z1l0(*42ex-2uw|Fni1qah@ z9ppwA8Osq?JKhEKwNK7oLOauVuRU|K(VOn&0}LNbG@WN;2rabGrj1r>6@IdS?AHP- z&gQLby+b^W{P)8xE!&v~O)mBA-KR;A6a81Tgz*5in;#?368&B6l`%@t;#zg$gE<93 zi@JNou3Q4T#Yz6ZT5b{_nlsyvpX2h2=@GR~LWNRM+a1(H3UoyBLD$XsYGv7o=jdU{ z4sy873DaZKCswtMQ}jwFUz6hNW?a4!TlgkXno!mUz4H@&iOiADm3!Rs%=6gzRSu6u5*~N z;}AzGN{mI2R=8skYx=5{O-+BzPwkS{o2d}n-#b!%e^{zxacf;$xWnDn%eQ8fwqHD7PMn;4Fp8oMd4r=Ec4;j_CIQ`}4iMIYfkb%j=Ic^AJYm?oB_Y4DUxCXXQk0 zoCd#sF8S_t%>apNn@*`ifw?l#=CqmlPooVPcoF|L0~xgIVqoSP;F<-~KEUy1AmUo6 zI1buxWNyp;0S6%zgiJuJKGnZ8{cv0Jn?u8k#Hs@A-4N+7NHA1L^0&C2g3;HuDejeD zqTV`TBIp8*qs;}$u_}RU_Pe6bH6uw-JukNR=;yI<__Ixk1yV7)kwX1Lq|t3nR;)WG zR7m=kR`0XkYN3_$5j?ffXiBH>oFjeSK(>SK>F4XuJ5xUOqMvX%f!157-vsKanzb@F z;z~L1Rdt}kiT`-J#RlrKJt;frx~;#McPrwy9pircPV9wvMSj*Kp@!P@yveCa0s+Yw z25~c%fA)3Fp3j+&_xPBKK)YzCx83#knRcDxM4`i8Jd7f=l#BFMw~7Xumuf*COttP_ zC_$2lQl(B!xtz@|=6|paYmC`3CFg#j6*Mt3+(tcnEjT6S8LPg6eflzN8R`b|=+8nJx7%N>?Q>d2i6@vT4jX zd-lB@-CAH#MV+6E9{|QZL#h`lR{qmMQOcLf5JF9gTPLh=P0oHppyF(VC+1>gH;Ez z-LeNw$wa&|e3~fD<{Fom#|BfL6Gf`wz;H(lMqu6; ziagbC4?vzMR*weXf{p%xnV~mx!)d%?Kv6Gv`xOH?bzwcDOrL8ySLn2!uN;`w?d@g7 zNdUu7>{~$V8F+Xyz>EjXa;EEh>ugiEf|98>2L=+`fNQJ(*xB&#@S30pjYh`C ztUw|Lj(s^Wm~jQ>_T->XL8lhx@WR6r0pjBhn4me>BLVZMaWCXn!RvLc*e%=fXw+Ce zfrCxu0sAu5U&|^xki*#61tUiv1w9L3?{WOnzH`pf9E7g|i8^qJ92zOwfi%mq)(y^zqo-Ob(m)Fc~OZ8HeqhG`tmQzxCc-Ugu zf})vMs*fgIVICH-D@hOU`Ym>1S7t3gu?V#vy{u&R+n5|f3uU3nP%$MEssy=Kn@zcN9)UrjS!+P%w+XFyjMn+E$p+ zFaZIr9_I8`5OGw+0G){I%rXj}lOn1wtYG|Z(Ho*ur1nh)%uSGRSpjQ*81PK78+0JK z9L)CuucF&}tds^Arp*!}1upHcVD#AvxRfAb=G0)S94I}kph@QP`{7#m#wAhOzs_?{|-ww55Rt4G)`y2VEYaT&ZXipj^WS$&c5*-P?O?4GZ6| z16u&h-Vd9A2YPlYa3{YlQlSF|LzwNmET{$x| zTHvUn0X}Qsh8xe7!T~m01@Lx&x8OUNJn{np4KuX>7Xhq&x8!w-1rC9E%QZb(FotPV zU&(Fm*T$cFP95Zo6f`;#&(VU2}D6V9Z9e(F@L-u z$=|)Xy4VuHx>>ZK9Q2O3tey!ihQ_5{I7Hy9^codorx^Fmh37uo9jmq>ICJdM^ z+qh2EABLwMqbNSx3wzi%SQwjN{3!4nLK){~`|cfb74A%VwgWbaukiYM+jsL#@9)30 zBlk)J4LY+_>6=-|+Dj@yf0Ev zD^lZRZoMF$_Z1enDfiU!1A2LjrAC*dUw7pBl^@)sLhkae!!460lHL=G!{o($w`DV` z)5rAc(^D|dqfODP67feD9^(D~rS5;MkTaM46*p1ryHij z8s0v8cDFo@LVcb~oY6Co!|g-)t*P4dA<|p+18ujsmZg?si-m|Wi>qlqi-v6e4akjyzC6GyyHiSho zaX~v!@} z-}F>7ZFMm+#!_yN=ZNI~p@^a%t4`(%qW0e5^qFa_%XeAK|#@1W-i>gQ`&*?#Za zj7wk;uHQ)10+WN!fcYDfglpi;Bl!MtXkO>FDP>P-%H%_8R^lO>p~m#5PmZsfoYAZU zy08lE=d@|v)1lXL%)6(BOiB8i?!QiowoXwKDuiphE3wPhp7O9s=_R?m%^c>*Kk?=4 zv8hG{+ofLaOv_+lV`JGfntQa7WZ^T%wL$H~qf+8uftFmMPedC^(-w=1_HBpHSH0jg z9?DxJXcpyY=S}k|t%M;_5+8qJ$&KBl&9-$0@{US~Og`hR={8a8?5c@0n%#7l_j|77 zhTy!Oqe+G^4j$g7weanikU2{;Y+Y;3#+v%uG~Ue(MAQkKS5L%jZ1uAojx7%6a-{~L z=I=V0TMF3BPdkVm;ra?6yp)G?LOuLQ5M$ko>k_i=9c9=v0WHa1kb*3jF6lbfCo7iBWY$v4bmeh)+A6taW5d_IS62Kh`W`A=?M16)8^7r>449~M;!ixPVIj-I zmo=T+%jaFrdzLzq6_&N8?8n|06xSzD2 zW&k4^@JX>+KREgNDmf8 z3;e^mBKJ`8c#HQ!k|qK8ZJoQHyMDKXa3#=pR!@Tuu()z~?qQ+P`kP+GF1<5mRHcOa z`=z8Y9C`A$DNd5TFl`pX`J3z_0V|2hd8+8W%2d2vK4&%L+OaqF?3qm zGjILyAKhQ|K##v87 z#MZvg%w);V&O=&0*NYaNPTEhJbno8EiRnn>@HzRBz#CQuR(*G7b}gBySXsHY7rsVA z!BKm5Fj2TmR^C5X-RXuE*|n^l#&0U0E&bYl5D5vK?CY?Ft?W2Uts2?i-}IKWS%zeM z!rUGQYk=jaVq`qz(tlJPEc#JtdC*=1aTwMB%eH$48=T8IULRDYJ0f1Y3d8un`C6)P z#O`aqKDz`XGyo8@M+@Yz(KtFd{HnDj2bce}Rt6)Ipn(JYiOR6g=m5opV-n*h?01+e z64vNRxz3=c>^gT2z=X>=luD?8}(k3=EM+s0vJ7SUGB4jX-n_ zBbx3io~cS`EB-%xy=7R`U)cRiNDBx^w~BO0w}7C6lyoadcMmaiNSbtuba!_uEnNdh zNzRZ%bN2k6=YO5^;+*rscU%t4d}r@F*7__d`nFZ<+3J^gE#FwXSu z*H~NYzlE$Z0UZ`|qU*<(yY>E1_=1q+HBlDCMT&CvT>18Uu5n!NxLyC=oDV-gCvSU+ zKOGUvS+LjpsgITEI!Qx;Q?u#z7qjcI_R9Rpo8)hJ^SMNBM`a94VT-&#?{`Yh|`0weEgS~no&kS%AF`zIN zupVPV;Sd0GBvr)8aJUyWZYAe0HrYq1W({FAZ+%6 zgVHx+6<8D;w|0Sb3k9_SUbjI)*fbUB3YYz_xIv5cpWP31aP|vzgc0TPGQ5G{ze9m) z#JvuNK*fVHfPx!rEsWA+fN;A^zxpX~hMI$-97U}e8hW!cU8)Rp&ER-J@lQZGo(2T8 zrgi@KVQE?+d^?nAKtz^X-+e$_ZZGqeX!m%IJ!8SEv{jgPx znfYB7Rm$%px0^#^8UdG}1A8B&oyEg?;?&eHtKHrQtut2_waZ@b-#1mHnA+ciYYl#c zhy>}nq4oF6uZ=(O$GqN~&odq!Nq>LmPoC(qmqcpwiC&_s62Mc!Fxfboo(UQMX*s?>|5R9m0tjRe^vUc>nSNa%(74 zCextI9_8Z`u$$%resX!B%R;e6auj2q(VK%g80r-8+@E*3+OJ2+dcimhz20pJpt8R6 z7^k4jhZVVxJpcdXKJs#M;NZZTD%Q;hXsk)V<^jy6uQfF_i}_M0n;kfM79ne~D0>_D z8BkpzQ4cQge|G>GdI!+FQ%U=sTkPhm5Bw6;x;OeUf-2F@wcl5_j`0_E?=QAR+n;@% z8KYW^)o+=~X* zK_B0XUN&;urg+k*-Z`}Op@Fe$rkC%5;T}K4pKV>JOQLthR>i$lM~w&;&$%=sI3e#G@Z>alIx<*_`bzb63JZx;ML;N~Xu=EGNe#W-P^pK#q>&)c)6>Q-+`}6QkF3 zs`>otmCmjJ_@tD;^%~f*Q)?waqYb26Z-EJM(8uj|2Ib&IiM@bZbfCG?`Pb(wiOe)3 zEM-USs1*%<@YYOEln+)V)j;YVryVvPXLzqVC$MsQzJ8fQ_9)Rb z>r(vYGRy??b=hBo8N!fshI_||OZ6?h^Zpe*V@y9hKQu@*zcCHo^1k-*CmEt;D2^|3 zo*>e5(YO5fm~k_OLG7QJyAv|W_1|W~ZM?)1OA9c+YJ-_-);F0%nb5o+L@~+jp5M8P zd;TVHPud~T87ndeZpFdBeq#v{Pn`qHV)4|-9 z7{RpqqBAnG&7zfNuDYLYw<4gO=g9xIQB1Qz!Qp&Q*!o;JR39I%Z!`A16}I50Nleh> zr3*(Yyv+`N)>xL!!hJy-PNW@nc>nqkr>6SfsAE7FId2(54W0Nsr#3v9+k%5i&1tSE zjE?h+c0_P<^fmt4KD@h2RrVCxPxQ}yOP0uACpCr(r}q*vVE&({9OK0;aohFBK21JI zb3N}FTpnzXQOpPgP}NtsZK(pAdN-iS45KhZdzJn8O?JU6>0I(hZTy_m-eJZ{eILWY z9+W(-$C~8;gDwMa4%^PIk9taYE}ma&NV{S{b+Pn{POFg-1}l)DkKLRn4jh%sUh>({ z;WqhoL#2~`_KQ`!&UR}=ed;r2ab)v~{vww1x%^G1`h?IEHVG<0hsgq!rDwy?Kxxm~K16c(oNebT zrA>@IBBdi*>a`n&3WnI_t#FM{fs1jdGIG52=lVlaE!ix zkHvFP;>Y2&NCQW72_9tx0F;0^E6PpsGdGunn)(-z#5P+24R%XZ`{4utS__lbGPm!|UiyQ;KW{+z04;7>_WRdRY9h4W#SQS3g@v z8V>9yl2!4p%!Fhr8#$cjTv7|+t2T5U#sWo2!ogKvldy?dnlI-AOj#8?h!uwds9q0=)#F#U}`zDTjt zYAZHQ3ooY%n9PB9NHrS?zMl?$ib&wd zZ6e^{nLja-^DVt#Pw~u65_kzMS-0Oob0=Y%9?9K3snN&nNs|4DTG7B)jA0ojWYc82#PIwID9T)}On z%e(B&`@nk4c^PW!4L5Y?xUWDW{8kb6%;lywmV%IO1ZSGELOjKD6|2^89vlOYE`eNsS*j(>O zG)<|WTiwck$+`%wC(T=^M=ru>`yM&ythQOIAkVf&Q?X$4wH}nU+Ka8BKYtczZYjLE z&t+7w>C{3((JbvhDnq>NXKoFdH4q|-FE^qp(9`HO$5lx9{NU9fm#SwR;PdnU}wM&@)+!Qd1xry!Ni9F{=p#g#UiK)h5a%6JgAIltb!pkJoD5xrIxI%z636txEZhv(T*9?qZ+35wm=5|?km;T zEDT67oTYM8FZ??1_!jMWWi$2EJ4b$Y0F#&veM-|ZkfOZ8qxdcF)v4QZ0;R0%X4>Ml z*+Y*~45#OTm-oRpgy-+mr$uHVG@vy}P|FBajOA%z^nTYG+Lz)(!_Lm3D!wF?)N$^0 zbhMGsr>}p2GcbC^i)*4Df=>4&H|*`R^_D9*=YL!2TQ^V+dN5G~)R&PIU26WQAr|bh z+j|eQJ>=2=TB8{1VVlBNnq;=}o9r?Bz* z-0z2NP9}H9A{PTt_FxQB(pVO%NDfYPDpthxV$#H42#>;7$k%7xF??~qgIWrT_ zQ<@iWjczwROKEZ(swO9hKc|} zX8WurL9jFXz%Q-8R+n=v3lx^ql7E+&o42tHyM1uxa`vj@Vp@jU3-nOH-fdXGC&kfai52uXeDk7C=N0`}IYT#PZ34?9lh- zBaZHZd-EG6Z-yvix~fFBb{>B!0CnKOLQ5~-3&qWLHOlDvonI-t68svYN{EftrdMgI z)??2VBxoz~TS9P}S)rh$+FkGaRKRU<1fhD2d+|i{NyNIl?meZW zc>#(*45Lg2zy$?^MUH^aiM8}KLLT5h5*Id6yb3Tcw*u4*6j+9oMQIEWTmHnzvt!A! zQF+FOlc%qidtxnpBVc96Hp^QNXb&Xyt{)#z4avNIH?G2WX8?ujaFp!e;Si3z1Eu_0 zhTA7J?KBlKNUgYoe)yXiw8YQNo~7P0!%NoW{u2|c`I#ph@toP4@?$GPLiSR;UjnY&4a;g7h;-7G+ztgwwwnYjnUC;tu+wT$t-`pPmKx72c3 zlztb)$dK zsIXvOMm(qAACB(xlBD1*M)B6a?u}~7fImgtnt4B9!6`vD8P){_^AkGr_^IWiQdE3+a}&oDVG0L9_Z`9WTm< zZkFFY|MGO7x@;yVSySLIGiNUs0-H8ioKf`0){JFC+GL9KhAzP)8rfXWl`Uck&wpX% zf+LNS?<8jaW(MpW_ucrBK!k7(9NM3E*RPgYj7g!Vd>ZvNEmcEDS8r?aUVwDpD&oM$ zvJd+4h{BsZq%!+QNB8sy@sD_(+pcZb&g3aDOPUw5QPP$4Jp=c6OMU0~5Te^`bd6JDdM^pd50gW0x5VTva*XJ$=0L`%oMKxm46x@1t9@&im2)PC3 zw|R`f%)~!OU9nE|N?NbtX7&ne2sdPwn$kbUKEx2N*-;Q-e^_N|AbndoT=j9RxT#Y{ zer2Hiz(K(1heeB>_u4Vv(q9Tkg!swtpbVP_Z?S?olk4qx*&pMG+XpQK=nfjlvP%@{ zB5!G8bYzQP*+(Rt(ozx4dml*ylwu;IOUccOS0AK;ul7n)_S~!{X0N>1Jb(MGZPSxhhQU$tW1G))x%9U?lHq7(xq660Id{QtvEcGWh+J}Pl z!3qN}^FyedGMKKnu)k&~`S(BXtK65rKd@k6;h&BIXQQAq0Cx?DbY054tuIhZV9|r$ z$|djEAH2<$3tM#1LBVwOt3Dj436+XpY6Gy?PvGbV(+nD5sY&2AJc7mm!}6-L=*O8w z>n^PSTLaYB`^AMw=X5{jG7bk<0U>mnE>=-Pqe16|1#t1t;>HXgbMy-rvTBq~L z{BNwQ^LD2%9zLf0rdRpCI}FbGP*qOeBS?h1HzET1-zRY%3Ro%8#d2%Ea45MEC=fh= zHS+-&ov;&Z=;!Ni=l^m(B>@@}79)z+2Jmm|x4>+FZq}^NhBD3r?CS?ui+4|N?>Is( zYTJkz?9gBJ^ja$6CuT~S$CI6n);SA)!Z6eK);?oL+nm*LdKkFGAII3f@{N?)B*-pCUIEma^J0i&BBhskhkc@~1Hv z@N(?Lro(v(ikh~kPyWHjw=zwqHRq+Q_-~^o&1i^BhR`Ch3AHk+6DrejB)q_hM~X9% zU%UX&bp*S8d2R3BUr9Ffce?HqrnBd>(Mq1EE4x6gem9%9@Nz@CtRv zuDkb3xJorab_c+07-#I&F$}z!M2`27I-%ELb#SckWnjThCM@&ICio~W)?Ej^C2?D9 z!nqbsCd$k|6j;!beEexP*3!t3|2Y}YVz7&HVrYLa9K!mv>m$jgM;{5%aLOD~L*5NR z6Q7mo|JJ;ZQ#ah_^t+kQ@vyC-D$$}>=GI!RL$Rrh`Tedd`0lZ+tn;wY+24OMcOBHa zSYFL^dc0gFC3&8woo^m}h$K}nN!r4s21B$0F>CbFvSJv0pACQwP0E;D{b>_LO^#RuN zM9p$A7D0h-IYVb>=b}qLJ%CCj)!C`NN1;VOd;lmcX7}CcSim+%&GNxD%?=pDyufuZ z7ta3^NB~gIT2P9r|9F81V1KA!1vH@-D*%PS%FK)&(H#WF2cgOzE`f5O;joVu4-j{N zm`?H<(VcdZ3n9B43jrkJ@t?2BPyi9YDg;>1C#abM7!b2cN~VE{U(&;nFl)ehM#Uj~ z{D=!SNAmq~^pVryA(;I9{6HTD*pMTDx}XG#VL*1W0@^XuDhWjz0>mnD_kSJirmnA| zN#pz)b{By)=CA6Il}rpq@dP>hXTq2fjM9X}d>Y3Qt^r}arKV#QKU*RbKr? zQ{O_3n6-;?x_Iux`1>IZ_E0-P3D_WSYDD(cRX0!r3@U02a@-5yLC}z=h7)GLCL>>L z^y2k9jTb9=w;)X3j6g2i&e0fWLvg4h9+Vp7j@H}bF*BbXk|1FO@Rpp-S~Dx*H<@LB zz4yag7i{aNBZ6UaFQo8V6g%fJP5le;9a^s(GgP7(PIrs##@bqGkTM@Wax8ADAlfm~ z#B*OLO|-s?{f0}}`ZH|B6Rx8OVBP}A?x@4Hd}vP#OZE%JV2=vTKMIqnlNs@W&-(4C z!nSovkILpOW1rn_(#8|-aqH@_8GPp@?q7@l)%C?fWby^7JPW=4Z<&KNtU%C$0y%@M z2CLia3-Dm@0m8NP#X4D2!!u%fA{^e<6H<69k^%70EdW8|1Q58u;>EO$>wdl_o)FgI z+FHPK09D-p*0@~on1YiPoZQ&p{!5bdeg^oa?|^Ovz~nxn_@*0!@!t@DU+2C*9}mFs zm4FcSpD0fxN`eP~de1>_Mlyil6HxMe02u%PAQT2Xcqn|F|M@CT+vN`D1m$2LI;LK; zCpTE>n1fx9I~3g9xshmU2^JOr0rn6O{+isk zzh0@!uI<+^TY}2f9@df^7>LH;fBxPCdaB(QM?Z*KOM$H?pq%QoT^jtWjQT8Q63n!8 z&m@1Y(}&%8vwKSWKS!B6H^kMOlf6DRuZrE+9VcX*?f*GO^> zzOYTyD0e;E;Z&41(^4CKhOg?dVZWW--)fDOShrra(9nOXdd=_DADhr6O8Is*xG4Rr zHJgEod+BKIHxDc@KIuEhHh&Y!A_5~So;Xwj>ma56hLT{zS08`B%aAc`ESI?kJ;U)q zc-srepEWnv@2^|6Iiu~G{Go2$%J#A80xwlWoTjhxZk7tBWHCKttVf%Lg1pY`p;yLU z+oP`q8K9GkOJo-XSJu7f_4ef^O%3+svHO2nV)U?J$pZ0WKI1rPdw*jn@wdD0np$tFgasNZ`0r3NoWrpv8m}-XPYaskYsp;NO0x^^+i%c_&WM>QK2o3$AFTziGt+=cp_jWlI)oCXQ1#&hK`L`fvBxkwtNIBJ-v#9uCO)8D?q&j zWWRO>4aMA5xe5RTBGi@(XbF>_If55L!ASqZoNZ4PQ=%wr>2^PO!}6j?6~mo>{T9m#K6&s6WT;D0gwVp4yPMQg@Ks1XRgaK6IqHq z7w8O=*&@2hiK*z!1&fRC5|gYRLIg%SJ72FbmW=qC)f=><4cx;%3!cqf9R0Rpn}|(C zIF(K;Yk-$ztL~PkrmJ6*RTZ3x)s}MK>WZy-WhDJ~g4bEe?sO?HM~5f9;POnUuZ;k_C%Qmd7S1? zi(C!Km1j39Jpa{X7$~vfs!Y-0dPuYpp4-@r#r@bh2C3pGWwwuT>#>%G7(WJ z7lz*`dc3%cRY(@fU?tf1XO}KY)n=TUAz|2mo+Gvt@C93cmsz(BSnI01OhqT=Vmkdnz*~e2fBt+4HO9m%X8#M6=`uFmFpUB3^S zk{ljFWJV699&7ntWYD#s0UF1aiWvUuvMWxaB%+7S42FOGbtf>(>S$Psx`Qw`>%iI9 z2E9D;Uimp_qMIGeUV-`v9Qv`SlejPXZY z>|ZKHk>+zho^;iGmErRn%4qH&`3+aUr9o_Wg_NMB&(K7o-1052E>T8+$uKeXk0y+r zQ|k1_gm!)Evn{@ZyKVm}w<>lGxn8XhU&7w&cMl;#K$c410=?c%L3A(1Ty}{tD4FMqBaByRO1I#&) zy0kQ6BUQE}UcAvhU``H^m(uI}Bk8wo9Mxr4*#Ewmg$7M#Rut_v9T({s#+R7lg1~A0 z6&c0R_3kclWvgjR_cX9N^?tu}QIARBTaoA8BBvk2joD;tm29eKA>D)(7SX;kLZuhW z@a&=3-`-dK!)N8}`%gYJJf!E|dN$~s8E#6jg>1N7^_lmfVmT^nM2B4%lnP**+q&=k z98F})u4gxeaUl$*TAo?#UD@_~%*>S|pCB$T3Nftvipo=5;~C>$y0KzX5!|n_MvtXQ z=2UOIX9udJx~Zbh5`B)Vi71UXgm^($aNVUTDgkW8Ps0EFHU>F4%O(oTys9nFk~YjP0mKwH%;wZB+F_#co=Q ze-;y`sOCGf{P%(;X!C`%Py)w*%O>JhN&BPo@T$?1b70cHs|`K+U4$WC7XPMqe=F z?sMNa;xg5snN`FuInyLm1dFV!EVv3crI{<=q8QZ%FEZNq)0{6r_x==Uzub=2Ups>0 zX+aoV$pToOm>{t#;{PD3hc_k{tZ77ix5WT|5Jb>yq&l_z+TZ0cm(9NuPe~P`B_~$@ zkpOKrmBjT;PFzXMGuA2XM!&kt->h#XTz}q*-em4cjPSA2JB=iT5RU@);qYIcjuyMq ziw`r9_xnP2!TXb92u<>E3X}z zI*PN6fAiLN=*{RIw_q&G%ef~yrHgZ5l7COJAl#~nGaZc%Cw$*ebS&Pyh)!ttrn}6z z!e6T8A`iYL*c4Mrw8Wx3DSDkz_UeIdb_o&|QV)B}-vtC70kh`)Cl{nFLxp5CFF(!q z+=|nU)fU5VyjEY^3*f)+jxaR|n&CH6Lu&Pv{M(q4n(*0-%vWgv}?VoG*5iF zQfh42OIl)5dVkFOa3hgpO1_&1)EI?jJ zFb=s*HFAFu;%o!>tmXj5hiVbP=TAaUKMa~uRKVOfBY8Ej^cV$NGU{g^aKVRd0m}2l zC#F9EkpBb_nt+fH0b&K55i7FO<))}eg=1s+BoK!78iWjhQfCA7DnMYM4#0?D2+`Nz zvUUzg=*bdZJda<9%O9c8&Rl|&zXXD= zE#K8;YB4s20w1@VKp6M#!RWdnEApDFV}g2r6yeJ}-!HZPtWZfI;*rPJj%!@e9bhM{ z#4m|zT zMLQv%90dR7nnFBj^Ko4=!OeK&7yD>Em!_@FDbsbEhQ7$W-^Z~WubGBZ=ihNkwzfQ3 z-`ZL{lP^DTwoVo*J)exrZ8T{8@+F&Kj7G?=iD1^VYy#GLdJ%e$R@QBb<9zvUC^LXI zCLm`s8w+z2slS`JIa2FiQe&|{cfTWsdQ&)JlyM||)RWv*P&<!eTURQ}Rnf-WC}x zweZkw;GdTy(x>h@rhNiKDiM1^bbamLMvaHVkJPf$w5I=dr4CM&imavas9>07B zDtgd67MQk6gK7iSkxmxn8YO}9!U}}>0ryP=*w~hJ>Z_{2a~E~esh4z7X&16=@l@|YI<^W7z(nU zP#q=sCul$W8ATE6)66codqmB1$_%Te6QCybEWBIyiVe>pU|K>f-@+4aG~)m`jRScW zeDwg{#^cg{C2m#6z@8nc^4V1m2`PH*8QF?0vk56p2%e zU3P@k^%HlA%YPii@Hu0=p)>G=i=Fs5_Lgb%{*9r+;wZIm&95A#QO$SEtX34X#{b(9 z!~tV!r^1w#)&6%B-rl~WY>Gv1 zOcQjn`FoQ>VijsIFym7_mzts_;OSmPO%OGi(sBWsKgVW$_iuD6B|mS?^0WNZDaLkK zXxdNVHSyQSD^rxO5!uSG4A3z%pW1)V_H%c0rM8WNFS;Pm=l!U3>Q*=L8ZN(S#y6^7 z%l*eCt;p#cp;h}4I-%A(f27?_XA!aM)QjyBzYXT* z+7F}RTiSkv7GrL#giS=+{#4{|e&hc?j|I&*hxvoR@M>1v9Kpw*DSFf0i zu8JoW3=C*MOu|plo;{p-_6Td0gV_{`9QUqRjNfXy$48OiB!#Kd*!QIVTt*N1@BtBY zMBa+&L529-4slQwcea5vCZ&1aj##6&M&o0;RGek>K}@ZU%zb#r8Of$+Zc10<@WIvc zc`ip!-IjS0@wIPtk)nmg4396mi`;|IIkwQ$z-s8~h5D>jL50UdzNQ5w^keDp>GJ1y zsadB!&;^{pJX)v4f|7*t7K}{4zy8t^z(b6l3va=^x#BF|xx3A;LW4nP>dmQ=#WWcc zZ>J55L{rLp3v4IVqts0va^`(+>I{+kbT@)&+9YV7*XFjO|ugI;OkxOU&V-<>Y ze&^XfeJ-F1@+fY*jn~a`wGhG@_vZe6qBlLY^2u}Rt8M2GQ0L$y$^>dd3t=Ic^ z|8n@et1hYTGag(W3WgI+#ja;%F_`23)2+?V>zjNTRsh>Ycf7xJg=;>s-w;TaRsiDPT9@vAKLM-nGcQ3DP5_`vze^mJdpmU9v zpzSeWa`G}ckMmG;k+GNY_inS*+N?a+Yn^IMXZ-?JSk7G=Wh&kNMk0{1pXkwZgL1J9S(mU!OxNvU#aFM95m^QPQE-2cau51jR$hs(h*O?#eJ>|uW`VoK<{Jl1E{nM})$WORR1hDY zSGcz+emxOYR_JfmjIk>_@`ba5T1q;nmhr2~_H#MH!+ID;e_V3;OxVMu;UTS2PA(5p z*YTLu-I?M?mXu`7mJdG*)!T&Oa~x9+A!Yq5U;?aa92#{FhF9h^?K*$|PU?niveo$u zmQeTWkX*m`Di$s0hA^n?(R%s|fPEvMOd@Yk^p6vdg7gKAcryj5)(PIgBfx(ag+n0Z(g{EG7=4}hi zv}~?-6VFbAib`(XPJSYxcUbPz+Z%NEr`>>yXu0=>6FyLfwG7kPyk9S{5W|zAVCGR} zH>a7#urc*RpGNo=cN7=CB_S~pU&V@$*H?9Fm%6)}pF1sUorW%joehW8FB(5qJe=ad zZ&sApFe#%nQFk=3gNns&4o^8>GDr>WCh|;eNs-5>93sZ~Hn)7tjy?!YxgQDH9l>69 z|D(dvwjX|FU*h`5V5t$vk*+McbhbF_7k`u`=Zo5Kldc>zYme9Z!l&vtkop?2G?(6< z2U-&YuWA|mC?QC=?#-C35Ttn;xeSM?ILGExHzRx(ajzkGmNK4?kyMe`O-lB;Ld zyR2#PRI8sKB6WWR_$l2(V^&=*Hv2EM46&^6e^L$Bz@!!|AGzyf;3fkP+&U#>Elw_^ z5*+-on~hrrnI$Ze+eT8o`^&6T=;yW(z5?e~72eP|%KQQywqXdqx#{oP@CqMwq`vjH zm#g(J_WEN&NJZ|DG8P&OwFG^iba&Sr@JEK_#9YxS^t8AnR#l6`-D%i-6WgTm3QSFh z86~Y5>TmiPE0*GyK~YQd*d#mnq9G`#i4V$t4;J02y25Qd4_#6?aX7a0%Kig@sRh|b z??zZ_#VLh?bjb$#Vl|0|6l1jrB{)-(yjB9+4hBes?wfXN-mhd05^2YRfrOOIj^akR zV3WthR_*&s3D1U?x=&bBjhizr+nuwc9#xRi7H9ZEx@kn9BZxU+=`}={X8s9M)=kgU zD?N$|E#7NS<%4O99#rz`M8oCYyuibKz3l9RD~E;6gH2(W$h6ff9oFh8p_^XHO^f1= ztFA6ew2J9J1Dpgi2B9ifbP$@7ckT!pcp`YROk-&bWQEOrofz#@#-#l8=SDnP9QV>=08Ej`6x4u z+N$C`lhrDXHb3vO#!Z@qOyHc^f}$}8{A||BMWR0%dgQd@(%qs=AI*QTyV1~w-x7JX z(Tz$IXlN+8LlLsI2MrsH26udXQR?zA zKBv)pFh4Se0HgYsG~8b-jMw%@v;Hy)ChmTD%rW*h=MA;>ta@Q|N|6mYM3(U`J)?}E zg_366nP02e(&ToRcWU|dw@FbyLNy&-M!sp%ifEPs6JyGCL6YAfgLZ0?r>WBbZJ5oI zCOt{V>u3J4Hz{Sk{o$gFL>%2=>GS09diPjt!pW24(fBc=va|zIRaN133bh;fn5@Dp z`$cOL_%9}>^&Y&dVC#4Ow@3Yqzv<_T6On5+7(Xb+)my~@w}O+vkkwbCworBNnFac!T@4u!R<9m5}WUg zV&)iee`vS|dy!@2O@&wTN7&$Da8^}@akYw!P`wKBeT&$0#TM_zy&EO_5zen71plsr zp$a9&{Yx|6k7T;rg-*@BS+qVT#+kOsax~uPo5IkH_5718ku}ViwcWL$73SJ@YoL!S zJBPQ=cPr<&$1lXK^F~E2ZLGh5GBgA^$QxgDHfyfr{l|>q@+1hDq&+jfOEL1{D~T+v zw@C?VIhk+uV6i;2NjwA^yO$MHkrIw+Hy5QNBTLQuqg$_;(jC4%`x|=>89f~L1T~CI zPQ{Ph;OlKA9`8#VWA|$O7SC|6HACy+f3;1D`=U?-!sQu0Y1*-oEoU~8yYlvxEBF$b zatWPuNx!RB;SV!hquv0isB(iRFB5uyI=TA=To!UfSt^iyla+CL5qj%V1CTd1NOOsU zR3FBB+rLYemK!pjd7(>R;+lAny9k1pLndz`ZVn_MJM2=PojV89V+RC$(XBc)d!}n! zoug_{Y*@f@>rDdp4s7buuxBT214ZLU1;e9ELtw@U0TX*XLc$FvUgkf51_@fo&08(R z&oaulzvDws< zRKyU$Dw>=ZjGz}SLU7rIt@}MrGl>G+*aQ#TV^w~{zs8qf>;^+47IVb>ns`wb;%!l$AwcKQ?* zJeE4?i+0A3&22D?{8jMpdik!fPzN$xU`^5UZG30y{l0-v++q=vlmpv=mG;C@kcK;l ziBV+eyak#Edx>}c^i6lS2fy2;yH`Y>Hk$x`lEEsE^JwDflSe+J5UGtD+o5zj6KSuJ zG8W~s-WBzcX%*Ke5pv6$Fzm$srQ zXVS}MWh>qVAb}}JsN4-iMTC?$f_W6$Slri&b7>}}MYL&l^o@CRI8#c@#E$LmB%!a1x%h<`v z`dmkRNuxWBQFcR6Xa~)_0-0x^t$PeMLO^)qW1sl_`wJl6EC9_zhU0SAtGTMr8M)Hy zy>!mPQ~eQ*sBfe*773^)=Nr-r|KTD?Npa##fpz;y#hC5gTP$^E4(fU;LRFi;Z% z`G`tygf=g2x%4s8C7O|gDJ=H=P-Nk!0Tq!#tB0N>m^wisTtmkm)nt&^$j7{`A7GZO z2VxY0+qpyirt$kB7Yfk=0pHQ4rww0uoKPCp`lcCE&9w)elGYW zp}yJKfe5dg>J4^jR6dC~L z104lwBMA~mZ^uo$HWRfwD}~*dCI7U@Hw~^PuLi!!ccef5Fd*hJ){PB}5FZkp<3nVw z34p^Sh+@mKN*Pa7knj7_wIwnMkbogzCMgxuv_Y})Rmfn!gyJ{C*;s+|%{4sW`rPFHjffBFwhsrg=j#uKpQ1z}a6K>{HdJ9z_3k{(!j zl@2U`pv!N~0H&mavKf}QT}FYi)jWgD|4I2em1%D|!f!cD8thCp`f^@z4kpT|ricm` z7ncdJfdFcT1cWV{zQ1OC_24Kdwa?t0*7#9WO9z4axVG@+Pa!_=6o~>N(atUGUsXNJ zL5TN^+?L+QWQ;i*=Nnw94Cc<<5}VvfsSojHy5)P&EIFo=b_H$griG1%DpJ_W@W3-# z2TwV2=fSEqI61F0y#pqS&dP?6A>`q&a)Bd@6f z^9Gh>MRFEVJzY9YO>K*(DlV0Zf_md6?!D0qoce$x(x@h~Y;RI04%r$$ZgG-5+N&;^ zeN(o3d1B+Xna@k5AeLi(25;B?+4)Vah|OGWvM?tP25f{@`L#(jY_e}T7jp?;0|18H zk2BA{zAgZ^%j_NU+S9`}Q{qV*a1==@D%208QXH7g#{5;R8R`qN zQncQ1sq=jix73d3r~H-O931UO_Pj}z2-ENoQ_@hqHv71|3KEu1g-y%EqS;MF-IF zZ2m|2g-;Ah46s>q0i*Cox&vAdTD}w?8ex~=2kBlR5&^$zXlN+-Adbn16ay3UG+$gl z;c&sur<+~3ch~N6o5)0ks@T+2h1)EamJ#~1k1LUfuz94b>|-0nhzsrXu08wK42$NB@Q{}G&7ZrNrcbx8?UIS>56-p zU~K6eHZ z^1AX|Y}jIGEuBgdwf%lUF(XatiNU+hjWA$0oNmp6#gjsW`s*r3iKXrl(iD7*C6)>8 z-XivuikqHMoA&Se+$;ZPK@LOy{6{zC{d3So1zm2$29t4wV6AmezkPxrsjqgD&}4|$ z@DVDEJXG#wrCD!*VSQPTAg(Uq)7Y(N&f2&wG~n_`JT=4XB7f}9O1F$J#HceUmSAd| z(m?RpMbQgk+x0c?>}QjIN$_vKnUi>3Ey2#6sRQ%=X2@Ju|4|a{u?a-Cv)+rH#Y<;=_j0234uSlvGrQZVYu*3L7P5K97oAFe%3} zr2F{R#pSXk-H?1GoOWoi)n~i*LNG{#H)y+?`2D%_8~x5`%7vG#FJ2TZaER$gj?90C z*d@R}GZ*R2G`RfE+JC*W)V|zOLXI!trr7R3zkheOu*1qrN7QiV51r!(7IA}yQ*s4b zWoXDbZU5o(skunm>fH^$3}I1X6S&x~PhGHP#M^ZNpeTy+&y;SP&v&OcJ?7iyCsR8N ztA0XDUYLCNP~h8OB<7`YdAY0ol&_=QH*WsGv}A&*?91&OH@z(cWsSY!16xeH~lTl&)^tH{NjWW zG6_#I^B3#M@1?Z2LX{Pr*g#Acb#>XF!*t#Mg^5g-%|2}bn}CKR@jxR{>i4KJnpdA# zbx6H|koLLKRr%6E(3a5&zD{T7Sy5oElA32YsTcaQHNxEq4;-h;x1S{+<}IX6;FX|d z+>5axW=`rqzTz;m{T;1MeN4VKHk+q1yjBQrosrA{kt#w$*lED$2nEm$D4LRKeROu{zMpMIo za3V4!y}yF3;saoS1p#1S(nzZZKu8Y8YW`;C=8*!DjiO!$bSRzxD%Kdpz-$211aQjs znQPQ_DOEC^)+>AtNO&Rmzf({bFa-_mdZ8+O4bwA~ZZ%N3iJGg&(OV+8brI_!)i7_C zWw#}kw&q1V1!95i!8SG?+KgIL5JuvKzz&tQRp9&Zxrtt)zvbUk#5_B@C;noMjS{3) z9S6=B@b5S|xxy_!#c5WZJzbGpO|t+X%QRjWf-f#@mb;C1fy!Fl!qJS3vlqfdE(ke5 z0+@r9?P`+QY2MN=RGUCno-Iggv55JYk8!-eurRuC*om`Ky4*D7CsxxG+#9v6(7reJ z%vNYsOwy>;L&xh7+{M*(!rzUfWA$oq^9&i@NlM(!EiUvfI9LzA*`NH?VpN`SCDi-? zoAB)@UCiN>VvQATW##6n*z{-~j%07RVw0_m!5X60&Wo9ZP%#FX>lw2g;I$0bpV5ui z?l|jf@<1TEn>zgeeQp}fQ_&ps1S$jH03q%Otin_l0akcHK~0HZ6b_q+(i^|~YPXk9 zip_Pmq_bYV5e&%l%l(kPv?o(70}sdko#^!myZy}IsxIa6A{FiXH&g6IB!noM2+$G# z%+E)O3lg~Wzj7X606=aGz_D)f1OOZx2xI?va^fDxC^Lcr8U5)o6dLb(UHQ&~nBsW! zkr1c05%4miK34@QVAjp%`{G!sV$q<*76B^U9e$`ZUNtERsTnUKSij^%aL=Oj{p~V* zZ{b7641Eha^Fcz>ZaH!cowD=a4&7|A3|PHIW$W84-*(Zr%$V5mHmPQmJS5H`v#aD( z*VC+cUe9TJ3@#cic8}{(nRY&9E+gj`@;V96?q^EvHV*T)Lp*v9h3?L2;wAMNF0nn+$9iS%!bYgFGIfvLdbp{zeAUjMue}Mzyib=u zo+kX_q@2=~zIf4#3vvByJ7Wc83O-KA=r7IiI#bi~jGIdWa!9P>W*gL_U*I1xK^%hz zuZh+AR;IR*m&u|#*_-4aFF&XyW5C;rokaW_a6^o6~xu(IUj$}oMe|uar zD2euX8Mdu$|6ep+g50Tkvy zB6@rCU4A6OvKwfWIjycUct78N^Ow(3}diT)=PpOY$D>1YM zpnlq0cvSk|_B!A_O9@D=_YQ2j_KH?X)FX%6_{$3a?fiSg5P!0zv-)8iP2GyApS-aP zQNig6-ZB~+_M`b$Ek@)*D9fe9b%6G=*A#Hp>3Zn}geM zbBz5#X)_&D8Qm2N$a*z4J#X)zXYLqT}ZF z2J}iXo;Q&FAo$`P0?t)-q?l805nXZnJ^$*~wRa)w>Kc<=o$Thf8;}^eWWGDpor=WY zy;+^n?!{O36shEW(UI4h{u}f7-V-i`UHxoM?^E*^qQ39kb{TlZyiHuiR(8PY{HaT6 zu$k>xugHA5qw0!1Fb-$M!DB>YE898yh&V8gDJA@)?BLs_oE}omcc#cea>8ms#Wq_9ns=_>x zkkowj4zob*y6lzq8%jq{l$G%lBXEBk!rFog39sBllU>=da|qJnX(~cFvYdXo)8JQO zGOx(Ccn>#r!Duubz)v0+h-Clqw4=o0efGJrFGSKRMObY+S{4>a^@IL;<@fBXL%2f& zKosaAIg~(0u-fJ~Wj0$4%pe=Q+fYC@8@xtq)-i{(8&5YIW1JKDNvg=}ZSzkR{O$_G zugH25qio91unZGWs3RQMNApCbMZMCWd zAgR|seTp?wm80#q>nta*7IEp4>RPQe_kW4+RHU$#ggQB3+1LbevhO}f(24rqtuZ)!#w(>616y4;;M*5x~O3H z`>MZbn+%_W755GC##@cnnaw}I3a5Uf#z%e!zlwD$cW`}`Rc>LY%l&T)(@Y`CtihX( zVhh-_c8MXmDRxdhk9d;;<&tO#BI-a*|BdGh*mv>NDME zYE-r74+_OmpjPPjy*yj4*=r`8qkZK4x=XBzGr|A%@zE=3->_^Bk&=~Fo-{`EuD^XP zvm4lP{`z_t8)(IC5}1q-)*jCX$zdxlyKd5O-24l|&iU$$^jg7pbAW!~&hT7C8G3up zCJO-Z{Hkru;CElu>85b`-jZVv`=ecI(-ZJ;C- zhjIp3j;xx5&O}5;i(+)&a-DPS@Z`wuy2~yyPl){-wI?szdb|_mV0t6t55{Vfkc{>E zkBWctSh)bIYY3rEO<{cpg-h9ya}Q=(Z7W4O3Bn7)zLaT2A-+P~8Q-Wc5o zCCv}Aw?=T(OLjvPn8xFgyv{4mR9nrS;gSQGR%U6U>DwL3Am++LT_j>ldzGTuIm-bh z+~z0u*>GY=;LaFluC+=&LNs|1K}9m_1em=!s?^Jz7=z@yL3^Erp+-}*ZUZrE;ACde zm!huouU;K|LBz&?4W8z%5X*qV|Ihqqr$Kjc)wEMdWT{rlV_PV;mY*>m#k0scUz2is z_JmXB>XLrUoL+e?;AOSkSmIT%uzy-Lce;?b-kB4<0jPt>{d~?JOI9g`n#Gmu035PL z;OBN}dB5fZC{XUx6DcSvpLqJdZSL*M&z31#h^aU22&qNG>P+3&Zn38ZWQ6^xAYU(k zQ`@aQOQoQe8_4ag+38-V&bM#Ix$;}>X;m1@5y6{hfzLVA@*0G{Si%oj&d+{q@v9KC zG1EnAtv752Oq7dgBq-3&poLm(htKXUHylW}9Y} zu2cUdSYO(Irgd!6jK|-Wp~pxU?h}5Qo1<#Nk5Nxf&b20|I;VTqvvL9kFOl$qc8v7h zwngW!VS3!1NQz#g%Kc)sW6sv&$A)cMqSu^V#ZH&*2D0WQz&N=2`@-Yz+CndZs#0Bg z`QFQeUk$7^H9(#3Q1nr0F1#v4_s^9k;5w~2SUk&RM*xYbLH9y!|4!^N8g*>zLLuqh z+A^2JQ0|OOZItrNI zvOz@;0gCvXoQJnAH;r*{3NC^wT*A+{2TZ_n1OB)8_%(O+>zkp~^cHmwKGgW(2d^9)KIkBrR1;^v!RkaR-&j_a zNvBCMo*JS>;=SEG>}Q{98Ah2baV}}xJS6e{{QSqdeoxEM5qkS2-m?9Sv~%^)kD-X6 zRoS+Udwh4tLju@VT=#eJV_pU*TYjE4XUcJ%zuyLt8qN)ovgprIWUt*3gf+wY!g(?G z9M+)6e?OuAj!*sOmN)nBazWS z??0g|^JNBUmg%IF<5_ZwvIpHX%r9iM@4rH!gFqBqw_G51d%W&!002-w6*aAmZwC8q z#A&j!z6CqH*B-b&Ua_5^n4du{(zKI%XRs2uUvIUd(8cT$jwXsv|JQ;OzWaP;>}+&N zJ3ccv%IzpE=xHx^@kZ=uO4gVLHu3Dhbvi6`38B?qn<@Xi;OvEtcDzJv+O+IMvkR(q zuG0uu5_#5HBBEFd6K95r@Ll+HC$6fDj+=8HQ_kz`Dn_BPa}|ye7eaz+q@+Ewn!pO#0~Vbj-fu5rBSfs8rvFS?9!*pO$epn222fge#MZ6<7>JDcGY z2T3JJ?A*q`-@^ygpntyyr7U(qDs5u@naA(rC4?7nOo_OjlIt<#&fL5_6cOR?r{>1w zML%eaobQykrhNBg-aFk->rHmv;YIIMx#z4 zE)$83zIWLhN&}o&kk@UV)1I~xV0=lQH$MvJ+q-@G5b1JOvDkFJuMVM)*HJhDE;(fI z0Hb5H+^|gZ{oJzt=v!WA7@CCfPj>t+iWkK6Mui{SKaB4Vb~YD)mN_Uzv_1({G1v?b z#Bh=p8aM^6rnjK4G)QQ(g0pzk+C1JVqKBcai>8Onr&Q{LVnk*7zMNxdrgvvCo;>>B zdpP-ww{mA(oFgWvxu`kq@4nLQTD2egtu8;{Cjum$BHc^Ck?mD!ZXxSGFzqfyR!DB_ zb0`|&LI>@}UWukFE0@YwewE(=x&f|tE$9}fxfP2qXR&e9)(}?T`X@RJiv8z?*5Kc( z6b9%D&->735H?&4;B$6;BWMAx(jSNfb;vK9lsot=Ml zp%O)1(E7G-ozLTUZ5EtRM?N54gN17Mab5LSCRDa(H^cixp<9&HW;=_?_LMS7SnVB) zHk`vztK~%J{dZl&p!jcz&e~N`|AP;L9kKB|QS*zp+r9^%4a|XPlqIEVToT}iK-(bx zKOcQMc`O4zfsEjpcofy(ZXXTd05ObA1?S~FoN^RUEbT{FB*GF$%2IOJl2?y5>t@dk zzSUgxq9$TAi#)T}nG|%1*MhfA9|f*9Pyru>{BQm%txzw1;>csCmuRRLg5cV zC^2p56v(EpZ|v3ySNl&gu_%T37jFI4l^|H>C+AFIaUQLCMw$cHWy>`H z=UxKcjd9cP*6c&ld*7#YUZG)m|DhBhaQ`{mh~J2)?FgzGSTSxdY2#(xB_m?Hm_K2K zMhFNs`*^SOF7-&DC)J|XevNC`AWV9jA1U2s<_}BzLT&1Uxu6_o5SA!1n*d0I6yX@@ zyX&Xc{o5pgn2Y+b9K60iCEbm7-Hf@-z7c|9)1FT5fs$j}7fw}%E+XNoIe-7I{%)kf zIcwNzw1XFU$r_M!J!TTUo|ehZC07w$e|jh!pN&A#5>n*f%XE+n8@@FQ2~Lw`<);o1 zzGH1PSj_hl=`>D@E5i1Fe~(Y*yWD-?=Isp@eWY>VahAH)pTou^{>aDj-VN-3|M6br z91B8K@i=4HrbFOXAbogdHU#!3iHyw-i6)((4__jIDH_r8p zmth6N$vt;6qll95(^%8SgXH=cBvHc!cl zrco4Uj?q)Qbu{El*~n|o50)C?j( zL1NwPx@{_f<71L#hs0YkF%HAm^AH_Y5sv^)uVSZGcFKU92Yi{W*v*H&b(_h(!`v?+ zeAxMCD}y>d{uSlfoRf$k#SGbH%~Gx)U#H6tizMvg(^ziNpcfbH%aqdMvnWi26n36w zPmqIyH~CZQmCXJh6^gi2Ai-ewQXT@iFby{YzXDNp&|Q%<6gh0;glJ6g2*=Sr^?%Mz7!$Lb3PnPH_GewEZ! z&-n3t!yHfgU35N{vb(CQ){dP}tVE9aCI*ULcxE%!bsH>vE^RCh_{*n9PF8M~qorqN z2@auI!-?{r2NgE`-}fwCo5_Dq_cnW zJS~b&Lc$?8Ci&0$y-(2j2;x7mmtn?;|O-3m;L}(kVz#QdQSjr(IzF*Qb^o6GKtI+9QfzkMk)s zDWm7%7zU<3o=Ug!8ZvxCv)9P!dUigc@JqcOIJ@22ztdONZBw)I-9-KDvnKTYW`?=6 z<>#ZIly>}{m-z|n<~wSWymG(Wt{2kz2!&Cl-c+Biq--N>Z0x%!>ESiP51)6AIEVH9 zH!1tvi6Q2~vMkjjbSPg;}`n{V|4tt&P{zcn2bHu@%;`>g|`p`|GEpA59IeQO3 z-Y&8V&1$`%d?ASu&kDEp#~S$*5HUxyKl|hyqKj^+DQ>e;_8-l!(JCqBoV0F7Z;G}j z0SWZRRSplO$=s<;*GxXnxtUR@;)opb=@-myZKImBV84gJ6!yZ-!I;8hy`b$+TfN%M z%-vgYZSID;y5*p(?~_dVU_#c>2WsDVVV0v8!*&#f?dYta zAhG4*#z96GoJ58W*d+p_=QAoOX7{Z`QCPO4z}*|rcRwHF9XaT+ZmJUFW@$(&ap~3V z(W4P8Z9k}cB#5b+cz<&CxXmJBA|korGwK%!Cr(g=Qj}H$oIa+`Btr$a=9k(bE$EK$tuDD|wOd9|r1y8Cyyl4z5CfvrFS;vJqZ1MmL@siy zHf-;CmM;VbKro<0?Vm@Ai>I7GzXRfgu8Kx^yiK$7`S8muVN=-`je!tNs<)jalxz12 z{=$=A*Uwu12sQd<{){&o)E=GG@v@*tdgjKt>MTJPGlC)p8Yw;IFUusUffrWcv0dQ6 z@Qb41!qYzSI76$`t%my7e98Y7KTKZn-SRkk+pj^$GVl*Fa*NG!^=O5tS}4l=8mFBQt147dD7B8I_5T(}5-d!y>* zkR8BH-d&31UbzztI|uH6F%bAM(xgS7M-mOYD$Cj2?e1dr6nrZLbMhn$PsSA*ZC{#w z2?cH6xh1)X2ML{bPbuR$J?-ex*{^;ZQbs_8O9o?}>bsyoyvbq4Yc}8oy3bWB5;_=^Ivl^@=tT}t9O*yRg1EQ zK~SshNph%Q?yJ7`rUh_r1uS|(df+N8q|G6rn~{uZX!>pLHHKi$(A^^|bqR*! z>`>0%KL|V>M$EL#vjqB9VnGk8()^}Y_!yTGYwW=Au)f0eH`+XHKTl}*(b3In>qyLO z=DU%o#0vc(|39O&whZ{c+M4QLmK}bpc@-w!g;N9jnn~9H7sfC`&i;oSxC){Gq>S@{ z`Djy|B$$MrN(%v~J5hObXg~Ww>t_%4VooH4 z(HGgCN-U@YwC9kU8YAEIGisAFU=p2J=hN_TLitnQ3AHIu+qX*n1wG{^b6MK^b6gJ{ zYe$x?Q`|~l@Fy0OlAHqe;NyVXJqH44(GA@|&H`L@?g7Yyq!<}^xEqH0QGKx&9SaG& zOG6798%Z6odD_DMZl}L{y_bs*qKFdx@=>sG1y2)+Q~T2dlZ@U-DAswf=N;U+Z3-zV zJGaFXNx4v)+J&dMs}|a%Hx>lMpXo^?sg0G~FaRJCSZmTdWUtTq}x_>O@rJXqRkwwg>Hi7CJyB#vq3loR@5dv zbega{uXXQ8I&=_iItk~5%JSeF-3I1ry)OGrgGyg%s@5qe`d;m87aKKpmY??IZgYb& zIUNR{)1FL2g93j8qGs8%r8V%-zw6GfGB2yot*CI2abzl8iI-?Pt!2idl@VxH_Z5pU7eBTRY8 z?B?Ci&nA2x`_Sdz4HV?2;jWpk#PrO9sOlacTj+Bv?l9kqh!m9PCPEEjBe9kH|8BH# z7f;iG#GLKhAE!!)+rGeaBfpI!rf7d9@~YOouv@Saz}Z=b{85$rb5%N|?JZXaGXuI% z1BK@=%qGpQx@T*-9c+E!qhi^6L)r1G_mK2ia1)6_;JUE8)7;Dq{3k!4<|&XGyhOEl zc2IPMPajMNYT_cAVg6~KmiVs{!T>5E6n4*``3%s4nht}*Z(L|DV^FA}SgcSNUY7(! zM^XOBRSG&0crmJlErR0vQ+4>GJQSb@g(Z^xDvWY^QBtO{#)^;e;eegnFS=4Ty>)n_ zC5=JwWw9=3EHy}3G4#kO7`&n1n6Bcb`)Ad^}{mCZS-PO1io- zuN+^{DT!Y^m>JJT0qu;D|1*RHR^?&iJmnGDR2DogXKT%H6ausX2U60t7Xi;L*EQ%$ zQ+Q3(<+fS+qfvfx2@Mck3$ryhKVpdCO=-C@^RezlIdD%ETG)a(jggW^dd%WRw#rZ3 z1?_*X|LGXasI$(WZP#j*KlFNarS_YCn`pbYZ#yWo2`~Pl)4RoQ2RaJet);^G0##K- zoSSbpVP{wj84y!GD9VV$6vXmF9OI zClqf`m8Ju@c)y-%#B8w>}VFho3I@SyIZ7vDn-65<6vGrm@K3nj>_T4>AQ zRF7$j?J?hPdt;+l?rhlpY1$3e8=>0T&{oMwR`Ft24SS2wIG%} z@97$;&Bk~>N&w^BDM~$hA03Goy@;XyeoPWhA1uH&}nZ8R+LCba-%wZiEBP z5%~1-K&%QfnceKo&l;SP!cfuW!I+!fYV9yd|jj4*O%I4B^;rGk1ffORGP}(i* z!>#8%&2SX(KEpfJvtRT|FOh9b8Hv7A?o%?6_q8o|2raxIZ`^SGk{3x~qV#P1#5X&7 z`w86jG_rCg2k6j~5Pw@?`YrcwURluu@`@Za;4A#Z3EybSa_e;F1KsyIzdG?{lgzk& zW880N5tlL)C|bWeYvod?rALfMv5WV(h zHpd;bC>{Gbg*8Y88LJu+SCIBF{Ay>m`TXt!_*6hyF!*7LX?Tz#Lev)BQ7e%Ge9)=B_wR( zPXeEEGWz2-J+PlJ9&M$**a$EXQy9|N^Kq_Ifbjd1!X_@!@KF&bK{OnR9XN<*>ga_R z4bcvy$-`)}s;FQfB=fs{gs)oJ1hsX2k3#IIjnB>oY8w${h-gIUsN_Pu-fR7hm?P9T zlfEG}4SEatqXmg`oXjw{Hq~qTeA}>IMK+~1QNKC^0>#jh<*9z43w;QK4@~1>TT!u^ zL29l143`&?)|J{Nr$F84opyZthvEh;_6%J1#=aLIsM$8XaS%WK{At(1^q{10xZd0p zz-NHG)I{Q!N02P~kowenKDicBgX}gnwJvnG9>V4^C|gh2=EMeK9+Y54!Y_oc61%=f zx%`OC!N10;L&z7+GrA>rp4{g9|HVcbkU5e>-Zj8;_#;zz6?yJ1zu-A~zlrbn+ZR3y zy4c#JM2t9pYIv}O(}9P2RGu`OD#)5$ISs*ueyP2>k|7v-<;APor~B}Cey7Hk6j&QQ zDwNF7Upp8GV3Q?&S;~!QP509 zovB3fU-2ZKpj**Zef02 zo=;ts#Q7i_$c`USK4*5@Ie%lCS+uB5QIP6)baD{GW#pHjp-WOO@%>U!jYzu9QQx_g zSxN+wg&4>?Ro-)!8dqQwQ^^u^^G^+Vlw9#tXZ>NcS4?H7yIj+~XZ=U==}zr8`txoQ*hiR>bY0coG$K+8Cf+XXuFLQ8`B% zxLpslQl1xzyKnX=f9lzGwNipqI1TK~M7@rF+#0|gSoRSI@B|a{uM&pCaU9aJio3W4 ziiHM*?k^$!n6Em&VuTPg{(i37dU-np`qq8qa7K)1{p_Ls(N*uQ$ig+8fTz3woXPQE zU{{mt%utesj0jU9OY9(ZN0heIzsaE)9<}|$0sTq+1@|PBT`ic7U;jjF=JookH#?u3 zwYna#V9^LEVA+kO8A>Ct7uqY+H-QEq%Jn>7+Cr+_Dpeqrs#c`tj^E3OM%tliPAKXeNu+yqV>a{#*$@djY1x_?7_wS8jI(r!# z$za{~Hs1F3&i9#KC4LGY9oHT-`AfKuD_bu96<)umc!6f!)d1bJu}X?{3@L5Jyw;)( zCy&OrD)f$38>#aaT&#xprKKGhQk>oEY1$%!JZl!CYPlsU*=Pm?P-q2|V}6m9zN3l? zAE-7$=LRA|eCCYPc%o_4-#=2fy!1!cfRQEvW<2_ocm8{to%8ejN*?XMKe7|6?^mo- z2l43fPid}wc22i&JYD<(7k+{QWkQ=z>%T6Lcg$Dc(*94s1HtK(CMcC@fS_+|ep2_x zF``%}=EB174gp)V`NPG!?kG+4}_R;qkIqf)1 z{OS`7JpR6$GWAi`;RzGcWbaWCdw$76vpX%{o6gWLzZ0cCwRqaQ7p>h&8u)YjXduS1 zeIUTZNpB<}!4T!I+8Tymi}z^?&RG7?CVckG;wS0iDv2kLZp&$~SQFVQ4j}=(%|+eq z=dX#Negl0tx*)#QjM%NSQF@ef8>0S>TZIFLbeeduGw%A3dMoLVy}1*h11eR-dGZtT z)o?+xlCnm5ZO#};TZa>QX71r-5m6qIE6Jv1K?C1Cx#wY>v$agMo^KwOLNf23_16uU zx?ZB{qE;_n7BIZACC!*xo!Sg%JQNBlROU!-xZsnI&Zi5VXL!jtJBRhIPd&3gq%-S! zTbCRPePHg5dy2uOZ0D{pp1P0@Lj(BrdnqSjg|{LATiT zh-BA4FV;a1kWZ!+tgwqk^uUX{Ahx0K2TfypJo|p@0Y5? zD-rzBv_fM%dd^u4KK<}ryT4kzzr&?V^J8a`qdz1hciF3TG3*@gwNFMlG?V8WI5X`{ z??wkPDwi&!kxv^p!K22eSpaTne=^2Y_vQ7lAUjiXB`s+R-4|1JC+Ngkf}gYVqCXX@ z4P2SAYJL+;Mud2ZcLuQiO&fpOM*~D>WyF(gD5goC4nKM|_hn)YRc^H5>=OTE)c}7h zn2`n0ERT2c(;TD4;s10}g+Ju;$<+dh1MKeJsm9Ot4x6*_2PK0~cecks^-*J_)1A&f zm!+%nb3a}0i5AdZs}9s^A1lMdbzhLCkKyZh>pYJ_2<8YHar8`W= z)GbCkKiv^u<-cO&MBZWL$MwAU^8z21+fWPo-ZqUoIR~Rye9{592Y=x-gTXxxGB^)B|#s=a-?zX5N)yjnP zg(Dh*_MtXQY=%O{gPavR7ROm4Co&n|o#p4L`WGw%>FPZnHg)e#({2<>)?lCN+*LjuNCy-Vw$-@2qHcdpv z64ksnpxe7Ev^Tx_!7W?Yd@p^Uk0$UtAdvk1DxzyIMo$+n6c@5FD{hfgp;z%TZ(%4^^wi4KKa^!t%_mu0 zA{wAZ#O)zBnN;gEM;&bCq|Hd=xvTrGIla)+9Zs~FI^wkt%Z;Ef!auxX^yGKKPR)x- zvp=1T?uWkkz+Nz_B*)mNUb5PSJI>@quM8RSJmr~#(1Q442xTy^QxVp-pV;Dsfu!>% zOM^|I<%4E%!oR`X?D0=9``%*L+faMFA z;8atLQEn7a18H?rAXFA^XDaO_XClB?kjInP6zu~bZWRTp0x9@<=5M&M zZlFWYupo&e2*5HmgW*`}Q;{ zK6Oq+l7|{hzRRfEvY*O#{lZ7LE2S)>t7r3MBSt(1spmP5GC71b>LjU0Uk=qYfX=VO z8EP^qxr}q|PbZW$a0vn(ThJ7+rR3;+jW2oSxf^H6^?Z7^iAnL_RAo&9%&B@lvcrnrJI&v<^Tyv~lS^7885=u@y|XL}ULcsDy4 zJUdpcxw}JV(gYtxJO&7NCpL!V%LaF|^5-H1-DGT0g{rL}rhUABx(T8b)Tv~LwuX58 zVcIhT?Jj8&>ANHovVx4l^J*c&ZZ8cQ2T1ZJDF7KIBcXdNN@*-tj{_f6hQNbc=PTwl z>y#YKGIBk&D#GZJe%K=;1>?pP3U<*7^q|JJnUL|zFb)~G01c( zCQ~B>YO>(PPhV2QiI=pj(F1p`8>?0zk0KRq)kOLi zoiA9|sDt07Lw@~KBgb%fZ!lLxc+?X$=-ZF9u0+~im^4flXf~_-NtQyQRyU}j*1V8} z64YHGeY+KX$>;DluZ2tbZNbzx5swqK|4E0?pxFJ>X^XUXXF5v+7%Y+A`3GUj-VzVD zmj*=Vbdx^_;h>8tt5+<@ED^ae!768K#a1%`4wg52)8D1e_R)qGe`n~ zYC_5+pifYEEylkK+)oD(FGQ;~irekPUZZa`FmF%L!wozkYw6JARqA!kUzB!1cdl0{ z;lw{(oOP0dXzI~xMj|82g_rVtv??(OiO?UYgl@n8vDk(_J^N@)aSBu34ld~Evi&I^ zp=EGC0lN^g$TrAz71fab4JT*Z<4WM}XZ+xS!C5PfC^b@R3(TMpy8%wIoA+3(jjnhO zrXSEBmpd+TmoRP4;Sa`Q9HUPwfbFhO_oR(8qs2+} z68~d90V&iTsfuc*O?hZ%o+C<01*9YF$otbZCwMV#0txhoO&uS^^=SvE{x%O0)Y7eA zrofKigB(?Zt~c)G8*6LCJdB1C3lWdj6j9#L3+@P+&X+*1$@VbwsG2rpU_#%tiyd5d zEWm(h{~E=d!;?KF2yQNo#!;<3IA_qzjNd5x;Q0M0Z`^2-T?P4<3}P9bD(G%1`=7gc zty7HbL7!N27iq2zk+fKAHrDaQ_VQqh#G@>4ccW~oLVBwu<}5(}C61!wUjXg~1v%MnIr(|dhFEu>TYIcw{H*)Gb4kMefR&?u3Cd)g&S zocoU2-#BhmLC*sRVJ$~^ap%kldD2k^I*a$t%h`Dw%V^{M^Br=te|BU$6_uD*!-xj{ zvwp=70|DT$X~dRmd>OgY1Km&lh`NJhClU}K?AnF60G(sOH8N6DnzYr|gwa9Sp&yuE zJOp>64;zMZ@&%A8|M8M|r|ha%&xF;rcJHQvK8^J{79)bdu#dD6L-(CSL%el9*GQiX zm1l-9_d&wP1))zopyID}UOt|H+d2AT^FYw=2EDm1wzUHo7A-i9g!nI`=4xA(FR9IB z1uo(mOOIxC@hPoAz}EXl;U-K)x=ibw0((!x#ZHJ&7<7Lw%4%Pyh0YyoIr7NCAl3XL zLxI5+XqrKv5IaE}`Qlp*@9vD;hsKMovT)xZJKzp%_R{pT!4{_~djlNqqF0Ve=2tTq zCo+CoZ}C*!UBJ5P2&PrOel&Hk5DAcGvDfkF(-upAV}-N9B;-{VG#C`UbvAT1BARP_ z64u~x&hlSKQ~occwK!}7@m)2x51HKF#jqK`2_sjfi0~qJAA#^dzAy057jSpg`L!kr z$bu)z)@oVH`og^@ugDeL7V%rxdk89NlPs4TyYuz}Yu+T%W&c@1$Wh%+7!3q_yyzZ` z5i<;bmz+^5sufx18RD`RI9*WqbRT=KzV45%Q8n2}M_Z3xdQf8$;{K2wA=tQlqLl6L z4a0(n57#Z9+*+S%FSztI?{B==J%~*Im-4^sa zVaeyC!`YrYY#_u+y#zD3Jp{V55f;MP>fR(fwZjq-mLH;xJ8k?X{a1~g%*5#`wenLC zeu0wlr;CJIckX;~x^VXkbB1E-IMKhq-QdNpejRSU?!*m)PDZ#h!#sXW%2TJ)B`=1}WzxiDnyICy90U$B&d&cN7^ zRLkAYbdSx$fA>3482?v3)e6kpcPdre&MDGV;ef09vct$h3RnXQRr@JwH=F3Cq|+@t zTn<$F%UGb~dKVU{;EsX3dlf4>6Elwsh`q9^TTXu`vp_6$B23}Iq_PFwS zzQ4O*?YbK1iBFcq;iW^1)Qz;K9uxGmi|vg_bXV#nCtnw9yE~~qy60FmLmZ<2ZunZU z`_mf}i6PW|NSz=En*L=f!fywjUcY`o60hHvy%XhH>qUt&QV@T5iG`X*No@PI2pOdqaRYEs7!HreVNjtaFx~X0TxyE>-k1}3K}+O z_~OEnQ$(|XCQ+Eyb0ke5RjpjD(;g#(GvV-Kt$W_5Yj8V&p==PAfW^}~#U(TqYa;lo z+?QwZ3an-;RXjy`8#W_;Ye?3R5@v&5c@#p2y*clHxMG;2Vsz(L>FrIZ6#YJE$XaA~ zj@JqmKxwkN^7_y(fcxk4*Fn%S&K%s^;>k45FBH4yxCFKsTutWZ%WJDiUZ(%*KhDo~l z*qlUQ+>7v$!fn*&vWQUnIAk8g;dafmJBalj)o#`^n?`JS>B+o z{L}TRKW7I6WQ*YDX#R0Qp{Wyr+nw!T^+ZmlITLZ@)O_+4+z80$yRXd?mN(~Esz8hJ z2dymZFK?^OvOdip9#2Ps~z5lj07k5-bpn-bo@u}q?16&2@dwF^oEW?4As_OzBMA{bq zDj2FmZO)|noH189-pQ5n?Oegzxi;VoC~zDhsg$p3F<&NrdnJktK`u|8Rh-(@uDAAjn_r?%m(9- ze<~!9yI`K(SYEHlP^qG~KR*xuDn@rbA**&}hW$|&lME+49VfL@UDD)$e2V*QT|nC2 z9;lcJ?Bb*kkJ0V#1$X;gm9__LNfVXC=W;rD%sQCj%y6&o`rpt)=Oy8vA9FmtF z>=NM^ECzRzXHrF-V%4UnADE*H(xk4`Ifc!2ANap zZ4x9y&VyRnBf{>F06MIi(Q@N>a0_lX zON{M=PdmmkaXvMUzrc_Sk8KIxpAT`y*nLZ!LaE z7NwaLmZ4DYxLp5PY$#T&NC}X8VcTrsmj!4S9Tle|O9qDDruxurf@ul~9yu6F0&)>O ziUM<%HPQY3A%Qdaa&%zYYWMhdP&`eicbc%H`?zk6ArsSpjA+D#4`Qok_ZU zKyRE#vB~n~{>kaAA<9a(rtojpqti1{fa)r0H_+;evfG>*Ox*~Fg6yktMflYh7Sx`4W? z8T$I)L1c>}zNlgB^95%a`OaK|zaO$|*(y=O>74L1^s2Czd-#fFO|rQ^;T z@(0uF4e7%eLEry27Z7MV+~^{{eawlPZE2SP*|0$2p(**CV;jeY>V(zAAVUxMYv1mw ze1hqC^v`}>fpKvz+*;q2DCY;^fQc|*zgP~<7@*b0dbl!sH*cEnX7kj!H57#YwYXis zDT^3Sos!1b#Qwduls;&oW#%reobAAiZAU}~4O~Q1{3RS7SOtuWi$-8j1m}1LpP+*s zcx6@&l35k_-=*vLSH_!{N0&nb6lTldJiUSFkkx7M5nF zxu7)`cyYEOTOhq8ttu6OUV#M@ z-47ut~J?+DA>Lds85%{N=Ux`~ha-NGPygL(%Sqio-c-x z(BFfi*^}VzGR*g;3_rgh5kH+Z$D_IKQqA&JLPkfYcnd|I@xExqIH@5-N=;f)8jr1334pUhG-f>3 z)MMX7$Epo63 zu5*wALn2eBwSebpWCG~>(e(tYik5x5PrpU~*X1>;wS2KtIi*@$;8W-YxJ7AecJHmj zYYJD2@RjKJM4NQz$UqI~0>GdzI@NIql|zNIJ*WBU2-SFlK|-G*YLp~tC7}K z|4}&bzFN`9aooK##@0@d<04}KFZ>|MOhxtNM_?#~n9IXs#U)-RVtrg@US2FvgRVAC zxZV6Mhy(ZBx5TmlcN;Op7|krGH%3$8=r5v&wN}bANyTlT&HRecG+mtRG8VCmd*h@I zW>QNd13nM`x?}nN_*i17CVgZaB?|NfKYu z%LOg&a}Ju5d{LX;%<`$O5PBwWRorRmTvU_>tDx#y2k~)8W=9>d00D~rz}BC-+NE(N zto!ouE$h0%Y$btZ@&lCxc6y!GSkIA?P)MK}0Z-2lX0dg42G=wYa5TOv2WIIud`)6o z*dgTQ{}q_wr6QqRU0nZ1(^UpUwQb=;mz0#!p@7oeAt)#figcHB!_Xk22m%HrEr@h? z4=o@d(%lX&7)*1%=rCtr1ikN66h=hWG;&Dsywl@2uOAQ)+PgF3*fypb>}k ze`E`h>v@q=%l~ubXt2dR0p_-7U~5M`Kfl3`fLWtaU@>jBc2|WV$@^m#w{S5%NbP@xwsx zy^jY+Zk!l&m8*wnqTr)6b+j_;ax_1Dho8>;Hu<~j#Bz@8Af4QkaW>r4H+YK z=Y}32cK~xLMdH`8_oXibCw!D5oTBU)Rm-`(_jE090{N27bsU$#(CV$Nsw&*bWNoqH zBp>|UUyis8f1&G0MjheweIF^kUnj}M<-WteeAyDhURqr*!&N?sT&XIjOF3D*J4Uls z@=+(@OI*fkvAdjx$LB#FU;l#JlB%O*F9>GDYxdNf+8*NNqDbdzmO3|0om*7(>D`Im zEPdGAG5*mPb)?;fyauttZE?Y&q#00KGjeovs+2WKcPk#rtT=D6nHGCj#bI4F1)zRF19uc%8 zIbHmS)4X!%fp^jUZB!-xg6EwQESykMcTNz4Y+zB7$3?u}rfnQ=cgz=?KQ#&2&8_Rl zfc6X@&iiwyM#Itm6>iI0QtPb%7D6rEWo#v2iLV~t5bgGCW3;a7uoFE{(#gV4lnc{cv+X|G9({oPq!?J+9`$bF{J$sXE%Sy#oKg`ke> z*U?sDCh=dtqJoS8aG|nDjxKZ`D$oCYyXo+1xFBinjONjtpVgjNb!<1U@rN*2O>17k zl4rn=jRZyq3g+}j(nKDvd*gIno|8@ML#qZ!+XRSdArG{V6kL1UK64u@Wx^tB_sI7R zjbUYP>8D!${-m|Z*4CNFXHT)D&f+t}q%C5Zp4i-4$|-l@}&`GUs>he5hTSzaz{thSb<8giF_q z<;17W*S0;2Tq#_OlBz$N_DWxv>1Hgg&oY%)Q^v!qB5z-;JgF8#f_-av6~+9M|9!EEn`!61Ar#;ago_RYGng2l~us2Z(_x41@5 z%5ndY#Zh@E#68gFbHbn5I&RGEU%`CK_a@b~F}Zi3!SYC^U-QoKhlRLNUadM_#&n=4 zS5VmYO^6)YKWU!?cO3%j`}VUFaT>H$PhfY}@M%OtsiGa-`%k82CnN>~IU( zMXA52Jk(ycdWQ>C!pWxFCNY6V{wN7TSOl&Njf$~PC+i{VZp{~5VQ?{fN^bXuJ#wt5 zU%zSy+8L)!NaTj3#6Q?Zq;jVC4l)~02`9ZD?c)G}@h7A}!e?p0e!Q7hRDo9I!nu8HFvHSkRCt_^P6_u6u@BS1+snrUxEmPS z&Tlnco|E(H`S^1{mA=Ucr+nUg-3X3ZGTS=R2KrDn9&4WJ6mJ@cXr7Ltaw~isYp|0! zNl_dN8iP4AMYfk2cN%Xon(I)2Zg``TL`yOMyohJ(y;r+vYV4QFYIH+@0`KPz;(=aD z1Ca4AQf2z{+}dW4O1d2Ko72A_=1ntk8h{Egrmr4kHokc^9x=o#+SEb&l}ufzzVO)R z+1>homDdw!_uhZ*iqQO1Ne0KF<7Rk)XZZ61J6|TQbo%a$CE%fg-ZJQia;8T>z}&I3 z@s?qYZCt-JYZ#o02>!;lz{bphzS^_bl9|7jaa+`N`^Wcc*e<6*;Od}zUEWJ~$&jKV z?F{9(=UIWW?*j2C0y`oq5KeI;1)0b_1W><^c`SFs5vh5dR2Gqj28!-QaJt(mB(n51{N(E001^R)E-I#8c^wgT;xJ8pLI<>A?ol&0sJAG`CrTp;@ zx0FzrcCGaEc5QB@TB;gwj5guvNuId>ZAH7{x6RS%?a;Fz-}c^+hsuHCo$?{J2#YPM zLW98+My6pZE4kF>vIy-GRUm-8SrTp%0BXSfFQ_W}r9n8~pzZY{yTmA!xsdK~=%J?R zTvGCjK9Xqg~XF56+I9 zl4Y=S*qr`?$VT`K3zb<<)wiqC%Thtx6gQTZ*0x<^FRZPTdkEAb-qS!&2)E}KN+`x; zNB*e4OZX}KXC$GH2s)4u3y4<%G5J7s1{B{@Z1YrexZ-+mEGYzq_Jp=pMB4&^75St> zsqD`0@ORtuvUCf{1Y6+I)-XjMm=W`s>DHd4dj7BLLPz8|A!1`GA48z>>kAVHyN!w9Of z^QlivD1?iQ%AN`Rl4zHw;r4jyjX=cqTot9x;;K;lp;6@3>+ok3?S9|`FA2R3MH8CKkZsM8E!^5Ko{_w!U-ta(7ctn-!{2)0a~E;8gE(h*!4!!E7svgR)e*wF;wY>@gR7q&{GkZt8C zM{{IT((w~=7UwD^%BgQUCzi+AgYx%Vy1ZC~4|jP06GCneVe|rXh%U`0kHWA>yPtTD zjDFIQZkV>0jh}1Z_ZOa$x~LJ^CKgVS%a>D4EUAAIN|Xj>7PI0+j9T5;;)_VURRK3w20%CQ|#Y`$>olM zJ@((avxELd5*|JXJB)Hg;c~cQ4m5(k%WVF1$0+-nlRF!*HRIg=W}3iv58r7C+iCav z5bfPATEGwzQDG_{4;;=rKoB6xKX_p}C*k01oO^G-Uf*AZ=M|Nn>vJ6M;}wuCoQNKL zMin-Y?`ig#Kg6i7J24oj$$bL!Ouv_j4~_hFW*nB}{1e5iL3V~ zrDmpoO!*O|lSuH+U{+;IHV23Ma_wnhrOwJsI!n)V0=yWSFL=&AMJM0ej5EjD3P|1! zS{}$#;fhyozlu#$cuF?z--F9ROic8Ruhxmx?7n_)0tZrnW9FEzSJ z3*A}%6$jU!_o02#{vwt3QSD|?JUbpIE+b3pcpxOI4l$j7_xFH$&le+_FVw05lmAs6 z%$usC&qmoa9X7vuS~x#WTpuRk+HYD(RDT-HJ460h+a*H9kDQer0MH)!xsuD^b7jAd=UnRgmGR0%*&o!~ zj*Hk6rh`d02Aq^03Kt;wZLip`8OTM20h)G;G}X*cH)SLVwFs~J&r3Fjc!9}`T+-(8 z-(>@%Fo#}G?E0@ta}nE7(p$9+JawIRFt4YAe-G7>7M%@s%LYo*_m@pb$MA~RHXimO zTE*~Zt*;2q8{%)P^)*owd=L*TDd@B@)H_h4@exwboe$5)@WGnp*@=$o2ai)vgID&X ziKa1D=FJC^H+4f`G>da3%@+_E($}MOdftGG5g6Y)S(5Pr@sgfx{J4YpAAL?;{HA*I zj%&D|6Tr31yo|0crH?k@03Y@>Gp2wn3~iob7o);)AUcr=JE)JX)$5yKhEYq`+&)&b zJuZapgdN0eyeOAuBy~_i!Fi`2x%xoFCg8N|q~hNFk}<6Nx(O%2gt?RKn~zGYXE%$&*|gGu2RQ?*zPN_b0Z}rujYsc`(-@X8=>!wnaHqj*s6=m{e?yc?lAZvpWRL9PBanx&wMl z^@T#XRv5pQda-QnCoh%-K5Ur~F0Eqjv7NJr=G&(zW3`&@p`UX#m(N7T%SD54ZomZx zHQo`1+iyPSA;$9fuqH;7=;(}tTi@21pwZ`RPz(tN;?$QwKdPM?HJ0X*#lMm<4YqLc zD^Cf24K$9Z)$}gGb8N&(lI*1xj-XO3!5A$96qU8n&x0heic+^(FRZ7kR^F#psU?Dj z-!(O|2+sawC{xihqCS0wLhJRW!d-6)A0k>HN%zq=eaR@}C)2JCm3@^sI%R)LKAii^ ztm)+K^8T7gdWC*|J-nw=fYprP!!=n5kgv=T70F#ZM32{Dc>6NW!VBVb7w&_52hR0p^q`pY# z&g=UwvxW7h6ijd4vKX_$S!}~$F7-d6*`Dz^T|5t7*1_o})P;&&G7n2YqFTOQ=bI`1 zXDo6t52d$eP7%L;4Uxmn4mGR1eE0_4iwrgN)QH!L&@oD;nx1FH6aB)=24dRZ;(y&* ztfP}(l7rDKu3|K=le)EE9PPYoHO}Av7fu1o<2@CVZ`BEf@H`@YpV5JE!1JyOjB z++-9u=$oN0WKZFCt z5c>PXU|IAL)35tyTJxE4+WXTzTvSnedtd6FRRBGL_W|n5{Et-)XNA52NZpIYva$-m zI?>#Znh&vJ!YX2Wk&iu;-CUV5_}T4OYVNZtorkiGg1KiJzNm{Fpt z<7vjL_e~1oO*iRVbmcA@70>tezE4|pP@T{9kQMjL><|s=xR4;IIjM6$NSMoE+8qGN{AG{5^7C+{cj3;yrWjC$*~~WvC}L_HL=D3s?RO~kE*KiPohy3 ztrjLqn0x_ooI#= zM!fR8D(azGnTFc^@se4(Q`$wLh)y(DIyfL0EEeqrbaiOm$_)i%|FAQQi_Bw;=5gEJ zsxSv*Nj5D!4#Yx_tx<<-Udr=|RBHFzd#UkJ103>bkendh`x*&^&EK~V!=HQt13Z7F zR22;x6+s(egTIsHF+t0f1XHMw+%ihwyG1&8lqthn&v8UE#MO2Ow~DmfM1kx zwy^oM>lyJRMv3Qih`Z@z{DD~;yD~%iH2@7u?;|M{iD|KV;Y6BZ&03RkI6KAV&_5<7 z>#i(Id*?NP^IlGYPTO#bJmm_|qq!|8@G}2~IB@L086EqeJ$|{=_hleWA59$eHLX9f zQVxPg#UuzHO|jADo)Q71D$#+sr7lF>`N`{Q+jxnf5xZr)bZF`&1^Mz_N$O(+-AgVA zGR|n)`EPtj1I@ROydgPJ8Trqi*s4i9NcCN?5E;<$Q}#b64H~txOqEITpIBXpCdwT(V686-Guq|pRgQ@U6&S0;r>Eb6W9zt^! zFN>xZ*%&r`WN3t%*orkXCbhktM;V6gR!xKLru-(Sal!G z@?F7RvMLH4%M%CP%Au`1eVxYH1~H#}Bf4tXr*YL;zpBR;+m@E7IXSz6;kF%5mmb~j zdG4yA{^P^t*e9lgGblT9+4TTeUsQtPb!|@pY~0$S4W4s5cRs$b^%zLDYwO)le0$-I zx>YlYn3B{24Vhg4&?YvLJVK~baPsJ-(@IpT=l_eyc{ugXMe);WEQ#=`CU?PagLFOmtFL(e`6 zP1FYs7A19nT}}OHoXphLvB*o`W3c)i&y;ODTPMIO0$J0H|2o*Pf&*@nKqI20-6>blgTWj9)+95}JiAHfvQh&N)^#ijZ^t&+R-w($=VOm|$7s~4 zrxZx{CIreCf3N41YM?$?w~YdkC59_Xc$vX*Q9_L{^@+ZpkY!)=;nBt?BQc2jgG9DZ z$^tMzBwwODOsoz^V9WsYtk#e7(RZ>rK3K>H13;KzjlEaxSJ9>k*f+l0b65+FKrcvY z`Nj2f$>HlqnPQP@vuZC0VrR$Z_Fx#V>kW>lT>!%^bDVaKBzJrhciw+~7AEf_?bQtqhNWc`5rT$dBPlN)KBk3*Kt8KL{knUC{^g5I z(QH}C8uMXH!Y{r}FF$?0==k6Q;1}?%CdD)RiEO;Ao%Z%<(s%InjbJkeNs_>f!Ss@a z4crnx&^bAz_N>%kFBG{bd2qUJGn+F*Q1?mPp!ntRNRjD_aP=`UQ!WT8V-@lZ;5C|w zDX-QE0`O0JPUwNn+HDmO+|F&$O$t2wu|W)U8&j0{>zM|hMG(!Au;{rp6JeF&g~=rM z0Ss>hWL?QpF(Byftob)dwA{l^{cX^!PjPc4r5-J&yHS|FxuDNd3`9 zxp^xqAg-eGdpkXMF(WT&h4kfUz)j40WW&@>Mea*(tIpwk+3`14h zd6NG=GHkP-&5Bc0{Jf8z{OK$0gk@`Xw5U~al6a}6xEZ=3X){P+c`q@@xkl)kEbxj0 zq(}m-HoksaqieK;eS6LtJ$u@#zcEu{*3l_hvV?OETatIanp5_A+zL!Rc}}l5TPCUE zg^HX;I~RwV*F&9z1J3GmxrP&RZTJ}VbVxrgeo0QfmflAa>z9sujRVXA&_CIDAK__X z%;-e*@@{Bx?l@?ckcqz7ocl8cZjvLClamweQga+$KE44EeB8_9bGY#+j?=*0e!9-H zlU8dpCH7^v=*t%oXz*E*=}KkSYTop3qmB*yoy7kxqINV9@NESD8Ms?@H`L8nTcHU~ zYu3Dx*Zyd_wwQ z@Op0(OsnfT{L_skjsz!1n>h}__fx-+DhinsQ44@JvygU-SJ*B*LLu@GxP;e8hG8;m+ZZ z7GnL)a8Om2Q01-Zg+B+Qct!8{-dkN0`8IqWF%?bV2=olK0prm=EO5S~WmJ-cgDUMO z8Ch7cP*6~`Yh3QHt)q{3wzo6LlrXX~GNL*=J0~onz-<7Y7Bh49Ju{Q6KV+7pzWVAL z8Kl2>Y9~m~j9KkZ0}H)~dO@xu=DdzhPHPZqoN6qtz5FP8M<5&Z--Y$48vpu9$_B}F ziJ#<@CnvVh4yyU0Iz9kKtZNlbKnFC15eRWrh>0}O8&yf``O1kiX2~-ygk#q?9r%G= z&d*F+o^&r)dLB0QGF2ihI>Y1QG0T$bre6V*G4?RW9v@zYaWX7N{kMl$TT4mias3V3 zD>7MTGv{Z@&U!>{&kJ&nS65Ua$Vk=b*r$eEV!?W(2}=mLy;A#}#P=-hzn;P41|BPR zz8)Ehi!tXXzfxamep=QSbG=0Z9+cqPP)=}$e3a>Iqu(6?8`2b?O_3x?zuK|Csp4L| zuY-fzi?Xw`O%u-wpOeEO$Q5!!Wz(JnOT`?L;x87H;RG}K0q~t7|FJcbmAZ1S7D>Xv zi&Uk5J9|=soBG?LeBz%bTktCq%ajK71wo+GXj|SDu6O!crea@Ig)B!bxMyr|>%+-; zsvbnq%Q0K=HS_67y_b%2S>9*5^@h;Z_nr(e7*PQ}aKw4?bGqFEy^GP;&ZJ70p1kD1 zfuQn%L2E>}fClZ`;}5XjlfL^YuB-Kdjj#eNBPDx4+l2I^tcU=8rPk6X-Z5Tp4{$*# zfl@*~R5etu6K4p&DBO>0BltpAtfQRrdA10s2nr7k4Gpt(%9s;`93#8Fuw*zdb{wCs z7YTIA$;mNF8eU4>mz1Ra)ZJ1@O~R}sZDW&r?7r9$VcKvhrlLk;eTEPDLFg!VR$tXE zu%?Jv--hVnMS;jk2`Eq0!S;A<-g8CfKO|5U&>A-JOGcN^-bYT=3TUF#Wvsny3@HnY zw$sqSMZh#Qs9m??jsK9sY)50mqfoc(y$CHNxq|QdSf*()EbO+l?1z5@1HN($Nm5K= zNF<)9>E*!5N>zTU9-`Li>~(do7)&)%^gTGZ!?4C`N;o4Hy`P+sij^CD2k%B{aRSaLxyA0H-G)~AP> zxhvHgO-15?Rwzm+L;)zQtbwzw1(}ydR~j^>mkXy0jWRcgbLbi6^)U#JlW|v)z|eL? zJ4q5=p=rr|7vuE#OVID%3-3=j9D=HVfdF97Mny#v_VAs|c0qy80a3CMl+teeJt!U+ z;TYVBIwOU&ir) z?6NhF>h(Ixd;IdV9}w)8G-+TY4?KcuTexLfyx}r!?PGUy%vPJ`fBX9?fT>MUl|P2N z@-3e^a6W3%!hTX#q>r+(Dc{`f)8QqUIT9*rc>2W5D0avw3 zsr3?_pI7vB*S=s9OowT*FR*k1*24kJH@1|pX_wP zJ227x{tJ4oJECr^*QKH_S!@v=gf>>~%v9@v#D%K;FGN9VRQnEcqN25^=`w7q>54Xj zN~i+_c9+-;KjgQ|ZX7sDP5-L$NnMh&(T4VSY35+gpMuqPSLJ^<5ju3D#|xIl=1^iQd6ee|xI#_bID zmcZiR#h<~TCTceB1728#ljd9lkisy>o1ZiQ)4%XZ8O)-&wF31YZwEzg^j1l&!0dpP zVEt19Q}S5{m5|zl?AuTmPQDw{#Snr;lN}v8*1bjQiVu{g&i=o=V1UEAHu9ikIvb(_ zAk)04)a7x8$<-lpQqvv{^AI1Jr6vV^x6+?v1NyKpX?1DkKp!aW|z6iFyh zIZlXSw2)li&v(fgOCj1%G4@rI?Eq@EGg@dAR_;jgw_(BpZdki9f?@?u2E1vwummhe zqz}Fh5A2IQh&uGnjb2Rpnur5!^On)cMW`WA9iwz5=By7N=L(Pk4=|54W>IjdL37Oy z3BwjRqcp1Vw{hXEnsgnL$eGxvJvY@kjCdz|!LI|X>BQs*I&YBu_MScj*Pk@&?Gw(a zXnd64WbiEM{b+@4?y@72=c20W`1XeeWu^_{|9$t@i>A7sAobk~JBUv}9(6vmb+|da zw5zLKDDE?-fi`-ZBA4~iUV1(~;B9xcndO!Q1$|!E3~w0l`SkHC{if7K`Jpf!-60wE zt!pd<0B&keXxV*SzHWL&10z2FEoA;=t{`-68ag#Y((A(e2EkG7isH^w!?G^*UL>mj z(c;ezRyw!?BXxw>!@q>KpMbY|m0*JfOrm=wgno-YUWvK>Ds8G@voKhz>tl!Pwwh+L zMd|gibk52ao2hVag&w02lR13zuIT{=5P3&$fbT(*w?^e)L^)M^K*YZTeDnZpb3CJ_ z`02eX>U$}q^Z%}BFm3NXseG;xCOB$uk0gS&+ejvmz^L*{{|swXqv*Z8J=?RG`n~#l z-$v{(L2t!#8_-RlJB^mrgX{PoZT#P(X4~A-x})@7V~(uP8tj7s!tqL~se#=y4guJ# zJf6o2yJV2`9&RrR!`wO|2Br+KE0`7R{^K8lgjg_WR$A$s|3v*@xuH%C|J@Tw*^ z0Ie-5s`K-usN(B?opLB6@G5ma`WgAWiVO-Jy=$a^ZaCwf7=y92GIXcs7dipm2v?hB z6{2?P`}l+x-lAfdjZWM zk#5)tv5vWuS){PIBy+m+#<2^G%f@{nkJ+(^DxszVcUJHxJ>Jp!xoEEwMCO6BPtX=K zT10QDf9tIz_X`i|)FX;T4Dd|FHD`lbs5cQU;8naK6j(IBd%U>jFA?Mk z42McDLIbgD6w7~+C5hwQqUvbOG&E#yI(#}s+XVh zgK3Yk9bwslMto`QI|^to^SrOh`iB+|H!Y&}5VrlTonp}(J-CU=>ZAA6oAJWI+F*NU zUwygRa)K9_2$CM<`D#89a;=mvpxy9x(J)6A=%SQaq6}u0A$aW*cHA{_bKg)}XqS{F zw|XoTSzT&G==hivTlACC&)h^t`hP_DA;O(DGyE_3! zr&L&uw509IQ1+b{#DSumbJM+Bj7~1}mYa#I{0R&#QmD{JP{s8c!Mf}ewLouOiqM&w z<*lwbd%BbU3joKx|M7|a&;$^K)A59Vvk@868YXmJx3pi1lG?hoRJuD@4VD5- zn~CTKAsL$|!~ESpnQ!Vkc8kPy&q_mq@*@A&4AKhir)NEN2xIT3Pe&^)Q?iO}5}pKi zq-c+K72S>M8C`|B2!)*j$)ri;h;}sA(Pv zeUjW%;5?na9o6j9zh4j4oNm}mJ1eSiHUq22wtU^PXP1b_58eX3>JS+J(o3y>GM5NX z02U&T$D%g03&Z5NHmD$%B+(wS`c&O;d~Digr683A!~j5n`?G@$!z2Yrtrv4JRZT|B z%G^3xo8+%c_)cp2NKfE>?I|(&ZkoAImN*yo*g?myqT)hM!!PflaTXsy#! zTIydQ9DIF^fkx+dMXh+$IB>bSJUFE?q=0-!_r%bFmqV!wMvL!s)IK(-g!>MI?H6&E z-p{5QW4)CHX0o@F09hNzTH51ZnoTv{+}+2jM1P1@Nbrv%(dj8*7Is%^m5RW7`sVW= zxQ1TKmMl;MsxSoIKUPgb=jiZOG}gtR%F}*#=CoEsdLUL5Qc}pVL9<*0J#H)KxyB>_ zuIXGKJj-415ZuYHHsFYE$2rzH=dL`^?lmK9r~P9`QM^3)JI96vx=uJTK_J^GlN5|8 z9D3vQzE(W`drdSCNV$^NbVFvmlhmlOjj_91i@_xrKn(GB0)E=sK!coT?_mXE_ym4) z-3m9~hJ-I!u+Dzi5ag^4&|dfTXW#<9`Jbftpyd$jnHQ>s5K5__iw@j>2d4(Z{T*FjyI!?7(n zJ!j3&ItkgcRmAje<(D3SW*UNQQ}pND1&YXxO^f-0s=(%W!J~k;;>Cq-p`q3*wZb4v zw>IPk=u0vczut6x_|#Wi0Hd#@#`9mh_)?vkkimftChzMfUZ~EF>Zqi2E5+|n=S@gR z^XMo=1f@Vrb1+uBf8BH>q2w`e35|PKRK!*5w)z^6f|Il}=ly4uAKqWZAZa37EPT}T z^dyzRCMmTnf{)1tzHydq$Vsri1diT{PljAv0zWZ*U98mM8~G8_)U$_31-&Z#V13sk z12Lazz@j7vc2Aad8cRbi6+d(;r0h7nTyTK86a{bCP`M1{!=kmzM5`p}oI?XlFVu`X#Vl3nTzwslKZgwiaW< z)2=1m20p8Xf$tjvU4tl~SS~HA6zla%|!CBD4bWze}3p581Twm7ODy3 zJEe>#g3%eMkVwat$=9=u{pJl7=V->9=NpnrT3RK;E*<0kcde0J$Ai--Dp#`J1s%uY+8ht=#M zw28_1Kus|lP(*86l06x{A_9vk9OrGccwq(%Q`X!rr(WwjPmaGU{57SdDUJpW5#$y4 ze0Z4NJV@c*y1sB8zXznyA;1+D$OT~b7q-XCZCux44m)39Pk_Bk@VVwwIAD;5Ur&hi z*e&?4X+m85Q1lx=9L*L*083oL)d{lrawc>Lq=noZcJS&6W&~_U(w>Bq-{Cffx?|Yh z{ZLL^ct__?bXKHa^SZiP*lqRC6FWQt0=e~(f)cB!Ll>*O;jr>@{&5QR?x#)Y?8EA2 zA#w5#5%&tz9`VR|$E)*aoxW3SP-&n zDAg=ez3U1nGD(V~B!Iv>NjLSXxVnIB6)xt>Xa6-9hABNM!JbB%9>JOaCS zAin3$>tvtuUMGKu-fct&L^SsrV?r%dIY}nNmgWvTdjGAg-ryaFl*t=G7pGzEW^}%4 zl1j%{w&k@?0ibui#m!p$*EnvFSap!^V1F{WMYm zr^Gz>Ot%(ttgQwt@sscR;(xaulv`&60Nc5^2WY_l5$QvD4EFQOJVfGs)b+tHZ~d_| zI$Yw_9Fhj!za3vtw1r;Ls5H1JjC6=umhBA%HP^Rl^*66?Ef@KyWZtoLOHQ#wI(`S& zh{B_oHouHtMpo!BjO>X<|9#u*r_q#pL1l5#ZMr~L6 zXyo)@*Q8L6|DF{~#zuK*wq%*Nv(bZ_1JM@nnh~!a0|VpLNd8^Pvkg9e`w3F6#$!gg zNb2`Bt_X7PJ^;bc3kYbQ*Mf(o&h@2w(7Y3^^AhVGjpot-_rK{xOoH$1rR(;22uwmRDO zbN0%+12#lXWnZ5Md8+d39mK`QVAo9>exUegC%ZG721?_}?y|a(`lDRK2JdTR1)~4M zFxAdBlF`}O3GAQi8ybj7N$;I8DhMO2P_iU3fIZ#qBQ#o-sc54B4o~FnWU^S#TT2(` zG94ZGLOUFd5Q^g@Yjt-82I!R&<+(C!wII3eFScQg#t-$pr^*-}8^1RPUACDm@0$Wt z@;aiSkLyEg>&CaQtza=N0K+xYjRcsxNA%mdQkpV{TZeL6F$Z1fhCn{mHAe*(bG%^p z&t4HW&p0TI920XTDgbl&rpbY2x&K0{QUXUZoKr#hN_}s zYop)UZvgD4r=+kx`0iX3)TD>TlSI@-C0+9r?QZ>8)2mPU;hxBw-9@ptT~WQpN*>v~ zGQIC(G_J!nV1SX(3(rbL^*jBEcv)(R4^js`Qk&#Tn-v2Z-eAa6q=6ktl2JS=2aA2f zwzu}_lE$w!9>pW!M{~**Khlv=8=eQCK{xG4xyu_Q)EfJ3bypzWH|^ev?fceEB0f$` zpj!<=B#3K$_qzG&t7U~ct8-r9l{sZ^aQ?Nx{+Qnd%s?y!ihpIO%TB z&4Z32gl2$J*k@kv}S1tY*CrWEZt`ei1QM@cirhlF& zO$(3#{Pi8M^2&E?ZO2zZEY6!T?IKSwnUbF~6r%$49E~eV#!~O!m3RKaM`uFPdkAJ% zNLTn>UtK_|;{3sP-RI8tHbch_fn5rZ@4+_XEd4*C<}sHEb>Au~hhAkHxEOd$TF{k} zgo(i|*{Wsa7Xmt>aI+czGkbGO%Y}9dqsIygxT0<=f%sH{@XpSx>?{@q+{(#QKOdAN zET>;3S8*!8z-m09w>uOwXd%?NC&nhE3tdNxky6Fky{lZmN_P~2K#0r3Ms}i5t}L`Y zZ0;J`T`~gc(K)++g5vEg&%{WlCa3cJF%3^iI@N=%uT}5PP#yh)?zPQ4{em!UsydL! z+FLb2ZKu2bTiXI6f22ZM)B+;j0%+;@Gu1l5L|@1=Y(~QEwS7!D-WJflojtvJNv-wo zOIKfeP#R1Df!!&{WmlmG8!D^5q~@QWm@F=U&<_05V|{&U7Z;aeuRY75LW4SC73FC3 zUDv=@2c@DAoRZsFYi_4=JdSDwr(X9?jb+7e5}1MWcHy#8#k5s@kagV>YQ;<9N>O+H z>TJ6Qe4g_qA)!Dt3|vTTw99sTxeJlPKo&gYB+6lx$EHXXGeF?W-un5AqFdD7;daMp zlt0qVABC{&U60vK4P(6zbIz-ij1wF!!U9>+A1W}dJ0$Lsg&BYZEcV2>o7;cE|A#h! zMI>2}N&cy&M7j+6ll5>hi?GXTuz>zZWW1^|il}^+kU2?=5ArfPgSbH6PomL0ve&Wa zbWh+j7NwBKe0r`UxlpRng*aue_4iem>7y1&3g$s_wTjqB57k9suDjnIyHCTtb*Q8# z-tgCtoC?Gh;zQ>gl!sO~Q>lWGB@#6^N)lJU29@8oLqIq9V+%Jn?t++A(#I?`*amAbyV#o2(0tg51B4WR2na2Z`*Q`qhN_3DMMB^{*Wn zXjBKEgoe1Uk1blIT8mk?_be7VwqaX~$*>E=X7j-1lfY}~$VVx*lJONU)%2&`fLLhd=>Gk# zBV}e}i{-$8bj-sEU?u4&n$?>kzPfwArBh2I7GwsP8ak*EeT-$MqauRPvCwjI*1SgY zQB40thY8EB-b(q?PM;?e^zIqWfEutN%j$f9G2`EJDkAY0+^5yP28yZrVX`IfeoN*y z^mP9FEea(`>H-)zJPjfn4bOpJSc&a1XS{Js=8|H905)twu7YDT@7_(pWsUh53?8T) z5OqQa>xyT-X@z(&;hd&+ymHHAEmyg>wa9ZXW+KGH{h`;WhcO@Fhqfbb{t+oN8Xp}K zG&S6+958Azh%Kct+bRIjb&Rm^R*qwP{Bn0t!f31McZ2k z0r*)+ zfS>(j`sL0h90Vfq{39&6RvAwSDFNO{B?uMhJ~Kl@g}9zPM!v?7P875gtCF5E;jkC+9Y`5=P&7$LT4r8!l!@KHS0#SZ$7Ee zGh#4Jr<=K(mvvb0F9+o$fGJur7TT&`92wGC^QPi$X$gEsYx-nh-}Fv2!3+|p>4$O0 zKr9B0SYQB+B{3ac4YZMyVX%wp2<({V1iJ8WzT%itajl%5p^+CF{v1^8LHu#uCdY78 zb!UIewyCeB&(qtjc)xgdYvp_TKl9cjibuW6XKZX}O$mXC>pE3$gO5B$?1%Z4857f- z&CSlw>Zb;L_%19<3^{L_h{x8~)Wnlvtv^i zqPut0W1Bn#@G)cn9t(mH+69eN5t~y$m?KK_9ON7PmExfz5mRpKOqS&Q<9<_dcIYzB z1k-lJt))O0cz*N%c!{5>c|GX2xemVIZ;4nvjF~jk9km7!i_`AH8^u%wOuavNEJrjqDh50Ei^iIo(zkkwP}v za^7+)(wP6f-D|*7Ypp0b6(RE{m%3&=p3ll&$?MeKOmII-&{2o6awqr3sOTTfRal%X z3?xLYsk9b}Q_ebwd*ILB-vm;$@36vuF<9xO*M3uOyc%N}#*!5%V}x_J0}~;+53EDw zO_vYtk2Z2RRXX-M>EQR>kpv!Im;{DFZ}Ec;k>iIuiyI|!_;Y7lnLJVAs8jVgb~Ef! zg0tqs$wwJ9bl+E*2KjjCfWrshQNNpiNeHm_`UXH`C=htx@w<9e0CE}0LoBTk zq-WOH_0|qhW*8(XOVmW{-pA5!|HwoctWzFMZkg?&1AM2^qB1|gZJc;gfd*ZhkDOqL zhTOR+C-j>n0P74>NnuJ43UIs-2qc8^C*fiFWT++En1NWdtQ+k)G+=~T;~~eJLmZ!% zxU>1>YhbKQ=};~rdsD(v>3-J=*ot}f2@3(c-3$dXdS_rrZ~E`U)xZLhvgO!!v8LCxZ zajmPkZu@Uo`s?&-S|d>K7z?Xhvwu`H#l8U}kE$p?zzMB&{ddjYDOE3V#Qd1ZT=zBL z?=3Zf>fFEcS&^sVlOBg7xWlq}*ItAW9C%B&dlvk|1~Q4RE6tZJBH@a)V6sPZWVreG z)Y*Nl0;b1KbK54y8`_nrUvZX}AW$HcW{2|x2zV#K1>?AT7>ieLxmnfTD(h`C;)@of zbxewCJW*&Jdd!H5xZVHF!Qh~(qjRux+pA&ll7`xA6ssUxkS2WhSqqV;XxT5pq2hX|Y5DJ2 zUtKFmpCAaphB|08D%|1h-1RWqZF2W~8;$607j-ohF8}Jc^xABtvfr=EYJ;aLpQKQ@ zxZv*w^+gI^%K6IGZ&uv+tpKYUDqv}Tr^&kBP6@EwLAr0m(uR47vf_rl;kTMiuT4y* zgi`ipRoY8*;Dyx&__kAn>o@3hdbF|gi)@Ks6(RDi(TN|lQi(zq6bG# z0uA399gDC%8a4CB)BsFQF})guiEPw2gt;<8Bhu_5MsuOj@KcolV)T{gbxh2Q;UDbi zyiO<5^|hCpx6WmAd8dKnne*8s?dL7@6?!Wa(0Bj4cQPD};A?mv{xr(c-M#(pml8hK)+a>Z-GSpB z`2!vaAJiTd4zx5sSsDn$ESaC>h)k#${X0Q_2(G_Y9+4@cUR@Ai{7Il&!%0Rz$y+oC zmn?~nE{$gKM}!C=AnfdK^;dWm+f9$q@D0>e9hv|Ny|WnblXd;zGH$G(5;mXtg0LXc zayijt7VpgI;2>{dSN6Yx@a$j>z_HuIS_#v@I?3Fkiw_1w6M+Y1x3UVT)uxN3B%jk} z40~D|#c}>?>C?->ns;8(%S#%is;zfp%-@^4_!Y6!e)dpYo~Bo?2o4V1v8lu!h|EEd zOB#?Xr&CpqVa%Ya0w<>$#nDzwNcgr7y1V6QGYE%JH|BzWOMGYCW926j3Bv`o7O1Qq zBxipE|Hsr<$3^vh(cYmuL;-13Kxw2w8UvM5O1cE;hM@ z0qKUJMQRY~dS~GKd++)2Pv+ixV(+uh-fOQ#Np=-yFt<(7)psvWSKRH@&gy3e))}0~ z$$X}zG*sxtMoVAnN(8B3bL2rqZFFUhxIb&bcX6~l z6d4#)4Qf~!t)krDSl^I;?1mn7<5#WlbRmb<{6~R%q(4}GfCUNOsd~elX4A!6*>w@L z-R#5;tfT3beA^@WLkc!7!tY(N#&@UL`>PX#L6bfdqhfJsuQ(w)9G6l!!tbU*++7K# zrCgz-L!1;Tl_QV`3_{+@M!f_oiPsLo$L=^mu6rFo`T}~8;G|fYgdV<9NEsb>H2^tp zVc&p!=D7hBqAf>nW0q!|atphh;;<#>g4t3a+pg9aTt>n(J0fch3RdQJL0eX?qWym^5d^@*0C>(!FZA-RFeKj(`{tx`AH6GD z3HrATOo%+009y@lLbPyxgP=Ec%4FvV__F z6<`dESla;0Na^`YA9T{w0{X)_KhCYU_J%+)D?UcRuICXo`T4t#tylV9$*|y};Rd%P z;INZ66Kd)|mHCg?%^S|qK?Vs`TK+3yo`s-Sy$|ka5u0XgEE;-#8$UN)v!Bs9h>GnX zNjG4+F9-MV5P__g6VGny1c|@Od;Q*_?Da%KO~Q-YRm8@|N4I59mY)u}q^%v}_1W}6 zdVG}En_Fs_^R#~2Z(F5Lp$p`3XF{}p*AtwH)V;@D?X2IWH8==b$sDz}vWQE`Dm5bxbNMV-*y`&VZGp&@(X8S_EJ{#CSo}HEd%*|Uz?xBMVxo*1wUfN$i-%Swr8=Cr1 z6G_uzfTzZv=0Vl_SLco{{D=y;SZ_D<$==H1D)&Jgn*W4o_upwhvF`jV?9Uq!M$RLfN@8)}h%Ba!zhicd=8*?mfJQSbc>4t!$& z(wfQAR$+OycgV;bs;kJ&`VN*E@B33+M988>3d`k3p3{$$ZeW%s5?VZ4iS8?f-}#G0 zDvO8d-t1YTF~uMMiF5qP`2^f)VUQa|kBiUAOQkCBgQZa!zp6vYg$XSOoRv!Vsqj#c zPwV!)Sn0FNRytF|q&B(x_^D{qg8;3|Rb}(IL;IitHx_VGxv_tZ{>mgfj_g` z1s!kLK%&(@Xv~F6Rsffl^jA^ZuAqs@LBnHA1-_JwYPv2PPW@Q*{MOG?Ad_@YeDS~A z8ZL+f53?s@H^b~9yr%LKKhtu$VtN!cB;Djn`G&ZuDakTMAmM21d(@n#A}!Cp&bLdL z*)RxaVPj5bTR+3QL%D=u+pSl{pYBOddjH#p-}$0R0UUvC31Kk8t!3*O=5A2C5%wDJ zq)eqoU2K9uGneo(d>}tyV(j~=Gkf}Mj-~Nao=tk^74Nx>G+xMNd(SPpq0ZmP$ln0Ceg5uhj5M}>s zE~DZ(5OQ!{XTS`oqqx!_t03tQ??@tHN9X~|9@8^beHdIT?;y3lQxXp?6zy3{4c3V%}Z@xIP zFaQmnmJ(k)=Wl2g{;Zq{WZkz~Hc$Vf2BAQgsP_EFYo)?|eB(HqwF;|(Ul!>YuuwBqc=W*CB!AHwJ1Tx%eM6T4kdn?=oa%jpZ8=|AQfDj)Sb;FD@Rt;^C2s2F@wZO#Q7LP`x4bV#C<0;2uBSv~O|4BE7%d~9c z9#WHw{uo5%vy^E7I-t?r$1TpVaPP=`kiORWIZP55Bj%JOKpkzSZySbSuY~sd9 z;S+QLXyk?f#Vtw17!FjtWZ=TLlPD1igpRRW=%I8rC-vb%woTQtRC4WnyNUyCgu&B^ z%bQt^2lwjaq_*EY+Li%n`>6&1vKniM3%3|@@)9tjo<1Q#0svTlCD%md;)FBcUK-^mLV_zM zpb9HAmbnO{Ujq$hMOL7T(+diD$u}!Roi>IC9|q}$YiR5i)gk)}yel45l#2f`;CE`u zW{wddwb27msJwamxo434SM{4X$Yi>A+kY{)*C==2Ka>gE4@M2F-CB+E7p66lI}|l` z*x}aKwO{||cVP=>#K+f1vvm2RllTp0uUwitc2+=7H5l1$3wB;_;cTD@N|gzEiL)Y; z#5cp)Aa{8eX4;xaO_ad!l4gr*(x3C=-Qh6obmpV*OfY!K&DSJ6Z@Ey z{A?UrJ{($pOSS1F>&$GJm>h3nhvV?(6ieZ+-a>Sc@m6! zG3zQ}Ovqr_gR${-e1>;JaePyW`YY(6DKFkJ-`ybVsl>D}uNM#s=z-=6(NdCrD2sXS zkRh8P;dPW;U8H^dR$w&aKIp8dUbo&-D)uVQpJ`e1agjRT32&mX?Gw+t;)uw|lxtiU zv7KtkAR&VJlooJE%o(GyyEvbf(xEQFev>HN#opTR9w2{*O9)yLVcO`h?TsoPGKTM~ zB@RyOHgOoa{K%N#S0SoT>;;0WeM+tvt0k*B*HU*HlZ2+OnehMOesT~V|9*<%X1IQj z|3Pz)q?fo80ib9--1V@t{hZDt;bYxPQ0s{==IHJYAN^J3XoAh4*!wyr87xzM@A*hN zH0EtPJ8oWyw*8^~Ea`SCyYfxEOo^VWNWnEw7ypmcXl}aLqJ!csiwuMB-bNb$GDIgO zML15?vI`3jV5-y8*;?D%-?@t#L9UI*lYh1>drY3vzcs$_5 z!)8KGf{-W8`1K^yL9Vcy6whJt-?zy2mYu=XQ9tjpd{yuH3$eA#8z4>CR4quS_mt*A zW9zQNH~C@<)nqS8gu1BUQ7(lS9beGiKby!PZLhDn?9%i5U*|{n*X{usJ3?rG7ghE3 z&_lb$g4c?48Ze;%1|_yiAd_LC7h^VeIx1$dwUcEs|BolfWo^-7RMd|Sq-|4-qoQ(d zg!}r!^WFrWCk-@jKTv&MqW1hptPoTD`}aZI+PQ4p+$8nBd+pzz=4`Ytp6r2@!?^hs zSwya~yr5>vpE8!bP38Y*S3xHZc`|wQxV5`#xog~dEhPxhK7OpgHe6Q~T_9uTjKM{^ zNkWk1do>=D>nLlb9OuqKFzCVgu-m;sT&RCDBL8HU@mKjbWOw6Z26Wo*N>H?#vUOJi ztr;)~h$KreJ8c!S{gS3qVx+t>;djU1QivR6XR#%)K^_B2(7D4#^1TO*59F7WFD?(7 zIJa)z1gzZ_eGUG;BKD&iUWO@B9)f|Ve)&KZGlEXwo`M2wyuvQ*_wN@|7Wq0n{r&xx zCU~PH#jZcKBmUvdmoV)Afm0xv+KuY7$umY1spCHg)cDK%=j}*9_#o+hRsOFF&`le( z;wE(e&A;wT@HNVf22gqNJepcs>@Dqu2YGErcfSCq+1Z^l%EMvNo|DB8ZR<~{Yn*^6 zb%259e2unxY6uC5Qj94dCJVAn)>>o(ApPrl=Q=}{c75Yq@~LLy_9 zx~!Tg(xgNw6MTh7CmkRH_BZM_-J=rzzecsWhU5N632)Z=;^uZUd@9yUnYU_GR2Wh` zQHj0D1XeMJS<%Hlt5%1qD^zvNJiYnZqXg%+^^g}tZ}M}pHWR4=bY3tN6AbTRGZ*jO zs29%p2$9ygE_*t_OkPspw$mf=x1So@B*T+x93+Z6^8MWy2z3Fa%#1B|vw?OKm&nr7 z{%x!_#Ov1gu=hOz`mcbRRYt(rA^nuA2!w815->kO?>zA1p^h5%E7!QlnriyJy(&xq z`dR4!x*-$*A8I`E+sqXPzNorv&E1_6`hR_9q1!`u_sC`6g%eQj8Fd>QkFP6=w49yh z^d)fBc!gcIhdGwN_t?uHqJgO5sX_O@=U;Iw2NSmEI2NcF7$%_Yt~~TK%=>+X<>xmprjA&crjV zn%Mf2S7g5UbBcwzcALQVn z>ZIsbdjUCYtb%TvFU$Iac=?qag+>pnAlbN#7kl_i-7%F%yZDDY11xk}^JI`kP!&M) zxYPk~{Hhx#=FnHA$5a7L4oF%jN?phHK7$2(p_vgfYj|!4v9kA~SR&gZ=;lXE0`Hod zvdzuSQPI(b*_%bmAu^Q0%$tLW=T2K+(`@a{1kQtQC<(uPK`hYIu+EcQ0Eua?hm(9} zJ!6oswUEw%;|=EXqJLgZQA@fm#be|{`T9;L620CT47W?w5}bSda@z93_&5N6#HN=c z4>zrK3gozHJ@FcPhf73?d*@EJ_)N`Cg!{vQ#jGg`00rBv7B-fH3DRQoe68zb2BG=A zBPy}V#Z_89(4$yb8C9M8Sq){I3@vg89*)w?-rDH;ua-dlDn{h#MPt&S937ZcN& zR991L2jB$FB4ZhVL&3GNu^FxR75_6LFn*ME6o-=EkoiJ-)mROKfm~go(~go*^?#*O zj!OnNUMVF^wnKWV1Q}3L^nfqup#q8Sb8904PM?~5PkKcC>%^tg=TUOfyLLn7QS%TU zF1*qCSvk}-?GKI+Ij;M@-cvL!y{4*zv`{-vk&2T8%K}azEj5gKPKps+{82dp`-`3S0fGR?>B6o!g`&3SFt@k*^^nmC>%Sm48440FuahB|=bB zMNdjXI)Hvd_cqS43>x|XBnEU6^s7_+84(L;e?Ut)Cy}+6{h!;rn{lkQe8+@3444&M&F}RF1U_i`Z}DZG zRswfhq3x0c^P|J2Rjm3sS%7Kr?0?K4%G5R^YCgRQeoq4@J6LgN{BtH8#LDzSQSu&X zjdDjgkf9sV_nHrSc4aW5TrY)>(cGB7rXMHr4|MMAc3DU`ZzCjnS}c!KW6!UK*i&co zM6I&vi3AVAYue0i3N+!kqSvc}rt3*Pa+Ab^@Iq3Ldq2wT3vX(_W#Mz`6C>Iahnd!OTWNN+j3V8;$Z^w#^ix%2NM2A&4l&A^uI zO^xoG4)dCx1=!fjN3nn*Lg1*1mLlFY80)F zBWE5fHvg6C`Mzhu8!bRKM4lf*`<{lurSWF8@k;AjSB*I{o?@t5mPkMFzOq0PER0mZ;zr(=GZLMzDhDe}6vr zjk-73?=8jy>40qUAq#`3kTJ{S+oB1NxdCJdR2gk5kKncDo97$kCEJEX!=$f_gOPSm zD0!{XkMPj;$g%mfz=sa39?5UlF5mj`2owwDD34Dcv1w@dZ3h1D~*r<5VTIDj_B; zvzG+zG7k^FMtvFg6T(rn_FL_nN9aWhhW=?)nyUXX$Y?5}XEqi)ejEkhV2ay?)MY+P zY6mo!+d4Wb99QT++cJTH;x*|v(!idW?yb8c0t;?F@Y$Kwvuo^6HDxZcYjZ4E>v;#{ z00|-Kn%#9kj>7A%AR3Rc{1{&GMvuth?iG009YMUJayUMzkHC4m9m`d!XW8EWUDC|2 zmBa+3T}6>f`Qzi~eo1CJXdqmMXj`X0(R)vcHGEHeAS+$0Xo`;<+faQL&o>ha`nEF{ zDfxDak}k}bUlBX*05RWk-%jCPdx%@N!6L_Dlp6+L(}qy*?4+@Iq5K&g)U*wq=)D;`ncC{%>Bh~j zIRt}1uru|jHqM89Dmfu)?jUkrIR)om9Bl+$tSMoO= z7a0el%;*~&FiGg2T@H*KrlnDCRG-VRJMEiaJU&{2`oQtmrwQl@9h4r^Cy~?384LB* zOhXV*4WIoy^PtXb^dgz$B91|h(8*6)kT9)|9xE;s5=$e}+2V7&cc1BaSG!sBH~vJd zA??Qk7ENmm_SOD}KvyQtdcv{$VgZOB)4}|{uUlK?hQ{8)Ws=GDucqpYPU3Ou{r-zS z`Nwq9q3?<`9LB~KRUdEc=12~L8=sMN2Z;-Qt2s4!is>Wfx|Yh-6+&KPGNM{Lk;zMN z(HVM1%wnp*b3nHBO?iG1M_V2J zyW73eVz>2%U!l<{C!_YUls73kB)uiS|L9f(iON1}8&;5A*Rr^%xNL|3^V^fizm$3k zKt8Arr~#j+n)WhYosm(#BB|`=TP^|0Pf}MTT$QH-=7xz6v=_Sg7(ssx&HshrpLr`P zCFpfEGXEUDI)N|m+fkWBfeUhI?s|J0?;;=9prmVuUbMcA(0q*?s~H2=VScfer7x>N z7xqZc76kmx0-Ou5_3j_xibHES(Ufe0R02pSI0UGfGpe_A>?|!mn#j|EZ8ngK*jf1@ zMQ7fWy|(V#=>`XOfS@6-R~J}{Y+4r?YDVq&Y!GWFiT1wvG9%iS`ddcN#VTZ!Wntat z@x`Hrr}+jrtVDWZq&ng?(vbuSgZ(`bpV5k2bv*)QN8LLPT<<0hVHgz1YL*{ z9uFC|JFlmu1BGg}-YfCcVVpCfO-gby3&WxpUv-%PTqHxI=9r7jJCmZdzqHkQ{5|np zM>P09^R>@6FV0!zCwOChaavVJ0iI?x=mE^sHRG4#U5HV<_D+3&)9Nyz-w_{;M~5wxhY0~q7?H=l2j)!*((d0MqT zQzSh4l({7xo52E9lNYWo@D=DMIHTC)^pg6I{s8{eB-(l86Oubv**gVQJps& z8pqVK6q6{-(!yqa{&>W9T$D$u&&MVZEVD5~NybXyckuZ!+Nh59d-ss6$gR%EZFn_H zpFI9KE)ksk*KLPzF3|+B23lU*tn~nN4*5l6WGHDv*=b70EBc@zfLrJiykK%d&qO`) zm82N?*bPS@SrJpCYFPK+B1Tihp3C8;x@h8?Ei49=mQK0XuWQ%TJ|$|)lhKFrG(9e8QZ$euq+G_EepXiA z0Sq1zbpLwUNC$vYyM=}n^K58Idpg}@a?g>oM9n~Pqn@?%v3AwLL0%%@9~izZCNEd3 zKogNopiBCV0Dz&m{@e*N-86MC>SK;KX?)u&6}Z$M{NIN1S30Q*qG&90Fac!bYxeOJ zpo3}Larm+C+bVHkO2(~b(zPw0M9)G;aA^jDlrIdv7380QJVktA%((?L8=b$tp9+5P z=MqJ1k72}J-&*9IUA=-t(q#%Or{H=Sq!1|dLGqtW=*`>POhI*m|FJw(>sguC%&h81 z2YS@z+D2SlWo-SP@omdajZk|nEmUOq4`()hLqGIA{44J>B2-D{3~Itr8$DX5hJS!SJ@(qF^6 zhTS}024K|G{SH?w#cTQW7g$J{2k{d1W?NT{jN|PaQ@y8hR&Rix6W!t^fp3b4J3kcOW(N-R)q5kJ<+84oeX8whbbTiV0Hl@=!o5yIwl@qK3;MI!cKD%bm@ z`8_OIDQjDyn;%O6Ld{{qhoz2jz2bKf3%%0v-8Q%js#QDGX6AC9(fg!LM(R6qH+k zY|eAT7x_OMara#ec$VI27eD&8&WfN$TYa)M-aTs=r`%A+U&M%&#ZX=H7uBGaun>gq zje^5UY5U2Ho5rHS?uU+V|Du!U%L6dp%&tu^zgObc*CaQGVrB1FfivZcx z3A0SWS8 z#0b-eLWvH*tj`+obsY8*JHX)R%x_Y`G6b(a=X1R1zhNe+QBNQ5wLs)6@+YMBYW=(V z8BYZU%&E&R<=x+pu*>n}5_U%ETY{e_wasgI3n?436x%1bC$(L}Ll&KGN6#_Q_Npsj z|5EY6>_N@Z&GP%N36a{lL|yt$Pwu+p-!uGTs%?z(v6l`%Z{H7(oXvbmru58M)S$ag1Fmnh9lOZ#IX}oR4~L ziM54=2Uffk`}k{E6tRx(dfMS=5h@^2Oyh<0;{+!$kz| zxQ7&T!^WAY@yb6Ex#^|iAndQRvo%q^IW9{j9j%@S&EIL5#xvLzZs_cUi)`_gfgCNy zxIXueQGl$52HLo<47a%@;BS-=0_ z9{$z_EAnF@-a0Zw)YJ8J!i>GYNMR z>D(I+7VPsTjj_usG4-5)U^d0>$t6rX<61o?LV!f6K*!4f-wR)WZhyFl()~|s9J5eHc^-I*cwAXQd zAas$Grm)QnrRKv|J88|=yFo9)z#M=6O-KAqw?Nsj5wXTlv#!u9t9P*GP*YD|Psv_& zg^mtW`i3x`^sC{s(Qe&&obOdq5IyYCmxaq28H#eH$9|fq)k5@%`WY_SlGCh{*u3(F z71=Wm5#BO-n_~}e6z@iA3ZKQ>tETXar+9^<|4LJmNpw{3TJSX>D+pe{@pv$ER;?wZ*h&oF z*|XBUsyb18zx{&W=5G`&bAYe;z8=91-@LJF&&Ci2%KvsH=Uo?`wVHI&Rvz_!{AOMB7N{WnJvp;2Wj^X1;M1|%UR&a!%~lkdQUX4Z^rz}q$)GKL${RVD=KE_sRc+W%XK z_v?=ab@> zYdN|YY$X`%6o)as)h^CEdweyfdGVsj0eUDpIscC3sUPU@>LYl{U%0@!q{~N}?)p64 zPPdOf!pVvI78<))MC=@yxyU&v-$==kzm9Kxt0QDxpk6CeeSOp9JFXh}u2k!+yJ^!b z{s#w|v((=MD+AjDq}~eHU)H2(pnU6+Ch)&DT;0zTM_+bSl@6%5NDHCb%9D}3?Jk#RE{Pp)cmlDZg6nbyV$V~zL&n#coG`i$7b-qZ zn}tU4Y~F~cnZo#IYBT!H*w%7wQ9P-i=*{9aB&$nDx-wWUY&Bb%e#-ySPt(SsJ9E=|a{G`N(7Ovdn@-y(Y;yaZ(i#M;UuG(m@W)oMAa3>uz*-_qg#a_|?y6 zFSNgX9O-&P_V(ZG9CpeS0gZ+!LACklrt-x05CJZHv;LC*VTMxB(;O)83jD8%*%1P^ zrYS^iK(QJWXV<$Ze&V*y$}3w-j~h>>h%88 zi*=yU6Rh~iDxMq_kL^O?l=q*m7K}QU6dU}!%y9Y+dWtCTM{yu;@jKI^mP}&`63Esh zdG<+9Sbh=+|C5r5BQtptO!r?L$o>p99`nsZ-+>!Yu6 zgV%n|G2sK-FghtjUu3e-&}yiA>_8!Rf{&I>P@}eB*Qf*L#;?e`anHO$9LGoc*9#80 z_NC&jAwnx$-yWcMI*TNDwk>o%MT!q&SfKdX(;5a0-Fnv#V7tpC!P4&0j#WlB#L)M$ zW%hx@*9wma4%{2k-ksn<-%CsFC~p(8-xj>&BG5K_xUhO$Eu*`K9+_{PTX%4}-dh;J zWn#1Mx4BG|bTt%LoFaD24SPT;=eFWb1JV=4oB^}B*4M|C$H#teS>;#&3k0CQZU#V% z=;&yTes$GW_dhe^k5nqOs?r`y2e0_fMB57=mWhXE(C$eu+~36gq6NLYbReV?ru`K? zR7PT~g0jp0UkpGUCT$eyT(m4h>G%BdQr6ASh$KZo6lLoa>QefJ6&LaHi}ZR**y_GYR9Jows*%JO(}g%g>M$A3GsWA6Ge-xcz1v0NB+ z6Wom|dA^&B-Ldbv`w(7drze1YnIBN6@{h^d^xwz_iHNRvfez5w4`@`$K^?#RMq1+c z6%sA+wAW8JgC-odjP~u%&axTF^KZu&p@*blk0>?@+yvxW^-V*jZWW*l&|Kv&($8H2 zxNX>8+l(u;t|O&+3E26Hjd71j5fAnNxC~CmOBENHsfM4CA63Hd!Lx zr%+@0%ygOX*tNP*(5zI`DOe$A?N+kQm8IVO<#9QQ_$SrNJS6dcI+EC>k4?Bl3NI@w z+xmVz%5)m({Z&JOX#e)@+gJdF-|m=o^>V83uP>^MyoS|OfOfg5!C&O6{K|U*c)rIO=O})MAU-f16D| zURypdD#WAiXoOK1+A60Zw=L@cW3n5ejazi9e%87}fp1SxEnfLxGns}|1mAW87m~|z zr>4;*DIz2hc(k(LnunyS7 zgQpzh?VU!8*>iP^-T|OXZfcip#Wi8!r+>pP$BCdF1lP$D)eb1>XjaozlH4B$2&?qD z={kB$@CZ9%k%pa`tE zdO1lDruVNxkbjW*O`HPdwC~1yfO2|jA)z;3x0&df@n}=3o^;3WFN)3-=2R#{m$rWL zxKxHi96yE5z1@qjk!R2iY%TU|Kc4ppug(t~0E9$k_48B4C><*+W!c!<;$p$hT>xci z?dZr$b!vZmm57{t@k}dEr{D(vc28!E8l&H>Z(?eOb|jF*dsia9<;vg@fjkaE#BKDB z@ZnayNAH*9yFq1;)Nc);^lNffpp6=yIYiUuM}6V0_t~;xXgd5s>rJn%wR!okH=jAg zwz4dD^He;l_9P#zXM8bZTx(QB7lOo}o{0a3Um3!j1_EcUfIytGz22p&F(xr&**f!D zO>K_W;Udc$>EP>I_a7dgM+sYnqp;1PJY6i|!SV5SFJ_x(GKre+X^z_6d-n*=mj4Xp zakx%P-)q0c#%bi+D8wpW>WCg$^bRk4PeDdCjef>$gaiGf=g`u1tAcM?kkS60imCRm zK2n0@0bU~{K=|SLxh~udO5%W_Rms^|Ff%h#5RNfTmUL@hbpdvHza^A>c6m9>syoqa zs@CJVb44qcl^1@IBRi&dpm~>b1K~9#g<8Qg}Cc*&zgEWq(-@#(MAVXyMyLX}8R!TlTwF}k3!FXD^S}Hrqv=R91 z?Cc-pvZ*NQSG^niNTA>Qz7mIlTbF+6RNu{8icp_B+6<~=ooaV_)T%RwbC;`)gNYq%FH6@mIhAYkQQWzy`JNP;w zFiA{u0Z6i<y_~M@WGJ=MGE=6Ui zB*2FJ4qdUfpL9^H5?a-=vWxN@kZn zQN-pYEuX$=U*_HL$jCOptRWh8Fc%@#w88 ze%R{Z=Y8CHdQ)jK@|{%JF0<3$bg`X#pImQ!q=#w%W0|YOck9Q0?%|?8)B#RJCKX5@1l=(Gt&M z@+RBRlX1e@Usef(!W>6@_eiIIUrRZt$_%`Vo#WuiAHaD-0822NXaR%+@;+(pPy22T zCEuY>Cl2n4omT29MnJnSDo9@QK%@4beO0Nr;TeFkFo{9lwSVf z*~vGG=CK>_$>BrG528-8XUA@2^nwsDJEf6ABh7D5IPwi^N_kTcdn{liFlo!{y!Bd`4&;O=#3h+b^PHFtB7bE>5-Na6rnOWi#+4aei)o zo|>7NZ*0ltuPK6)ivKD1$qVnMjf9?joxXf)XtF85W)5fCH+N@%$wKVYd(QQjp*vB9 z_tT{O_jhoT-kSt0Gn;N0vboIDx793|@k5sSLvnf`)|p)|aI$DVBz_@NRRM-~=V-YM zLSQp8+Bv%3%<5R9?$_mpZ35_;pxrQUz*KK9C6?#P)|MMfWa7H`u=}(w`%_`sJRKir z-r=X4y)tvR{|Xmxj>|&wAg+K+EeGBopRzgrC3$aJww!BRM-p5 zL!$&O%!kq~(3!r}*>$iJGQq0*_S>M3+^-|;sAb7`?%-BYMLW=MrYt&JnQ2>Cnm5A_o6HIHYn?61>2fy{&C=!}No{zY;@f z2g`=^RKCswANE*Rs>8QaZA2*^L3oM>4O$_EOw-y0lun(UQYXLmjA_Yy>5j; z$Fk_mHWbtJQjIHFxQLAsdvW(CiSG)zT+xCkKHAf&OD3QjGc@yioX-_5O4I(MaM;xi~ngK@dcvOAbS&XI+Gk zRkYyYfSQj5oT$xld|h zGXb$C*{m~G+S6Z?eG_e8CN;|Z>hFOh*cnt$u<3}lNJheco0K=W z%62v)D`AkDkrPq;qr>$Iy-}`z)5)rmq(FQ9vrHr3q>1F%_xts7bMbXUYdWKkxXwM| zH|$Y>1)(<{|0M-N2Y{|3YJVTTut>ZakA?OD=)l<={8GS;de-9>S*Mk(XX}vL)lWYm+RV(0_JopARg^=5~{BVgFJJX zhjC~RX(dSS5OiX{`Ih8m%ycso1$x3M2++e^hwe-}utR7?bLJt7g(__qtKH;pqwU&% zaQekFC%JaiD}62{-E(NJ6q@)|={j+(p5S7SE+#oOD1h*y)@$?Kr%&{!z5Smb9SD__ zl!Qk_%#TQW{0TM*IKT(z0keMj3y?WDBG1z;+LaJuyk#LJ<2=KTW|#i;k34;Kvl-~! zv?`-(mV+IhGhq%HL-vM@?A-C8$0;OVD+1M2pGOhY!varNGPIRs^UxkmpGVtNL;cv- zU#gG9n{}grW`aM1om=rVO-2AOddlTFp`ukNT4R!3?@O>fonaX-7asr116 zBTpiexX^o@i8pO4N!`BBZ|;`gQAJY9IMl(h0a%y5UKx! z-$3zLI=tL$F*uXG3AyJf~w4& zU~X%@!(s*VS@7y(w(}2Kh%+Oxi1N_h{iuLnRDGft)csSSQB0CZ?j+kkx!QU7De6eC zrSp^P-er}D(72EK;9{F$))pGlV7!&$2Sr=-_R$mXGoF|U>51$e-6q6Nl;WE(oN0r> z&ySkzk&t+2BI&7>PEfRU%(PAjY#ydLQK<7#zbRe(LFjiLPlL8{?j|12i%;R~G>;*g zzxC1oxki&g0fR=6hbH3sOz*ZS`Fj=;7dPQC$szq)gWojnQ;+&s^gkk%a)XSgyj?T7}uHMxmc&ZJQN*AKu4rrO+uj6hCKHg|_ywNrLD@9lVDj!7BIol)R8v3?mBTbhvhS!3WpO+hF7y2IhV%W7F)d88F-Mb8e@=L$?%UkrwyboLOW!e2Tx zF0(-U(AObc`l&~*6yBzJUjQax)ZarKLM_FHmZs{91nVi93hDnUvAw_ccIw-x`gsoc z$>G<$FE_3St6u=u*tAu<&E zczn`#miuq1DvfHM%*8veCl>p~pLn3xESn1a|PA{Q0(qNx2id zGn@(g<+yq8zqf+(34eXGiKW|$4ucY`w5OVu_`DqKa~x|-xNaNlbQp*mGabyARki<5 zMee`%6L^`7{ed`Niy6d>S=i?num8%p6u4V1VpcQ!(I#>Ja0eIk*3|OJ7|EbT>7khM zW2-Tt5863hD_i5{FU@bz2pW)Phg_THhQm;^u3tCQf2jW5pS;*!4>68rp3)G_Y8XeV zsl(6Doh)*sK_Ud)zO#9M|gZ`+SJpnj(3sBMQ4Uvq(p)xuJxeam>dbK^O)0|cwjrZasx*6l^ zw}}I0yl@+yzTFcqjjcZCvq@MG{&12o{CM`DyNQ0x{YE3p3kp26B>FQ3o72Aq+{v_g zex`VKO@Y--eG$FclkTU*lB28iVC#XoapWQJ`eygZz78MN9MbRb`ZenK0JU0F7F&*Y zjCr+u5_sB466U*WxjNteElQX^dsQFiWPS}0(xG%sVBU7trOXt#{bF*F??SgeY@KrM zR@g9&(SrsM<}h9!9uChMLwI1v5rpunt$+1zq`&X;J-X9Tc^Xo<@6g8QgYj0F5cVS; zvVchO)3IOQo4(u^eWtJW#M5`0BgFImXCX`$kS|%hL)F)}-9PbCeMmr3VYIeFIaOAI z{_FCr16&!8>Iz3bCCl1`_x9h|345{hz`$okCUl6CUb7#UO@UDF`-4QPTGuN`;97$9 z^(e#R+zjSWk+{DabCwOnMBdor)vHATUm0kx^Mt&ydIuNU6dnk>Ebk7GP2LEVe=E8O4-t} z2R|7lD4jh0V_20gyjAT@G+&q@Kb>t)?(5&K-;}t2fF>K$BhBG@6$bk= zk(D)6<@@v#LU(Q2H;9lGPZkJqHnI|tTF{hwA5O7<|Jm;hPH>>F%WQYQaB=S&{@|74 z(UIhf6VY80Wk4~MW|U^K#3=$HswGyc1vZXwvJBo5Ncj_-`I_Lfk%P-mvPtfU%DJI` z=WAi&FAhK(~pYH}og+|nCAucCikK~H_C;o%q5&|{H`O*x#D6eCVz zaB;46|K{5G=-+AJF?<((igYz}EObBl#lBk&7ZUX3U46JU7l9b~{DHm>+(;R`@deoa zt*Lg=FyONyU8qKci|kU*;TIv+$T2$k?9)flYID(vT$3!Gl8Xe0AIFCgUiIO^oz|H7 zK33{ZeG~SvCYGnhstVP}UiypE$%`9Q*Xx%NBn81catseTbO@ZY-1(K5Fls3zT16Y) zen1oc5|9mh+OEWewDN_ef1guCbew{Jji5G9yl-+yCI;hl3&8&u%_f z?v=~qJ$7A%zKQK?zpx8-OC%S~XU(F&6>TYVi|e(?J9RqM_j%U!a3$Wg)Y2DTTCAHC z@LQ7?6=mht8zgX51$n)v>E>KJC6Ny|Z@0pV;Ljo&?)V&nXfCPV&efEhw z-+954uC06wZ#Q&sCzb77H9vd(AD*r&yKa%TAO;|HUEpMMc;stYgP^x);Bk* zs_NnelD$LVqJrWzeq~;fCm*hdT!U2a!S?!|)u$^Vo<(7cA%8f<$L05IAyiNe`qNe+`JJU>F?WTr&n*QOjIMK;^nM7~nRPfF#SEm*U0lpoLb^Qnb zRTnqy>n$D1ZgU5w69>Am_$}zaPk+}miWvR6+%>*fHv4k&iQS!P>Wvc1+W6hAU>St) zI%SfBoe8bjpUe-GoNp&baKMwf$-JnVK7gXu`63CX3Y7^4m?oamrW?Xd_>Gw;PF$mYSM(oR}fjh_Ne;Be~)#8iO84P7UtT68v?b`PEm*YAn&zq*I}`fj~8m0RCjhM`Wcli1Zk(5nnPT_t-k zafV=Gk;Twe8Z*EApD0RSU1MKbiXpw+LF&gYf5f*5N_ykg1cBG_Ys6gq!%2fXtw&nfel#dxJF(R(y}5v&JNBWdkc`nw#_6(tjS2 z@vUG%CREK=?Z?gz6BL!_*!Rv=hJIqWWe-KcD-(NBHyf3mC}iBUIi825Ad){b?LW%o zp&s)U>ssY*TX3#2j{1Lb%DR0ncWZgZ#&r!+Y<_o3@g=K~5$l5lJG}7 z{KoS%OB(XuuIZHg;dyxY^6t-3b-tdRxk7ZwTQjDNwPx#`rYzfhF1!t@Y5W)!5am(t*COmiEmNycq=5`VsS5@LLS*WQa1wmEm23*{dx z6ed;68p4L8RaG@M2G+;$G@hi&RixU8f3;&|R6TSHXQ6MazmL@qTu!WLOZpF`VQW`% zK2~*w@%myneXh-3KLrz+1OZ)zHD?tRn3ODyNMC)5yi4Ja-Phs%+N6rjIcFflGftWx z3$XOzmu^XA9>$_CtqySiy}vsG2NXn{lm^@{+V0&a-+XxFZqRuv$#T>v{`c!4U~EiC zNEYQq1RoAlePOYM?tofVmUpDtFW6B+yhSdv6x+2>C(ZuIW>Gp3j%{m+1PR(pFfmY-;_4_n9+M7s9z6n|J+#CGk_TPe zp;zukl=0S_-XW#`VE*To;_i%q`H#R4iTMkXMAoiD5QgKc{yz-H>jxyahcUv&BUcT2RFx;@0_ycSfn z2F*JiqtWDlx!{0#KjQpY;a#8OyC&dtDT7aW+zQQ}2_O=7OpKXK75^b00eDBx>veoN zf*^Q%ScQM&+CpeGSE5y^Ear0uGp3l;a&7}adQ&aSsV)t{|DfG5(5@z*`HOSM+y49Y z*paczp5Fl9B^tPl-M4!J0%m)U1k_fr@GwYEuZ?%3CcMUcamGa6zwd7M|L99hEeraA zBHoasZ7%VZhwGOiA&=^QE!+$$)2)1fRL{ItY{rzGmL`YvAcR{E_07x{x$AdS%GwUl zqRv-F?S=QtPdZenjsv;WYopwVYABJdOLc*rvBlNJl8Kn(eaMA5-fmw(y*7=D>9QL+ zx?S{a!7gw9qsqP5zoudw{tmKoo$;{Pp%F)-a5MzY&ts{18jkhVR_zckQBRdjlSeKXD zs3{4Ft^Hcm5OUH=h&R-NRfkYVgU>UzZFAbiEpFokmKOB9L3BXKHR=f=7^w-wIh2m| zVu&i=o`9HngK~@}DoB4e7>8&~3b)2Xu5Bor^QALGL_DL+2>U1SMPfdH029%0+2-3E zY#mNUJ|Minrgz7KpBfr0J_q6PsE=SG)Ix{YGDtcn%eE0UShE%>!q ze-)(3WFgPlZig9n6?7y~fA>%jq>YFJ1Z>8kS*gC34hr3p4{m^D>v3$6T<@*VW0>ht z3&Al!Y+Y01Dq{Kf+>*kJ?t7gTTjIK!?Qw~{mv-kz(AqPc4=?oddCW$&>Ng#i>m9vMQbrB1Di62sxAdaOL z@P`X#w@f3;CCPvI(bjbJDQZY=oSNdwA-X+iWqInbl0t{ScYPk;0^9JPA6kmDg za+GDx-d%5xwuM+_q&gb@SCl>sDSTJhaO}(8->gjzeOnbhIDmLQ5t&|gCnac>v;u$F zPnuewOxT1V;!7iI;PM+~;NHJ{!WTI?7yj92uFY7?XdJ(nEDu`0eAJaWi4I|p+}ZQO zy|>Ifud%?B?QR!2dg%6eeODGVLR$i~^d9A7tC&vgB_SsDat66$=SfOHN!Jr3N+o5I zEW4|xl2t50W9?BQI4 z6q#ZH^U+K6fEq~#{l@F_(cSRWrs#7g>xXU|krm0_$q>XZosm7)$z^NNct!c1{O`fm z7Bv_?XT(7OxEl9XS>pm4tOnfZV`A|`T)5JutIaPe}-D5y!-_bdOVolx*hMm@I; z$9t{zgarV$D!;q@A1L%~Iu9Sqao2l}<)N-WWdZhxemd4N4>xn8E%ITtSAqURb6Z*te zgPfYK0;%RjX#{%qF>z6e@7u%g@&MAix%FU7yamO{v*QV9aSZX0Pgu_8k$6r<@Cz z{-^LQ=M9M0IYhULVDj=jYlyStS8AHv=&Tpz2X><%SZ*qo>!0pdNzaK4mR=n1A6%BL zD)%0CaYhq9tk@v0mRSf-Ixrn@aR!xS_fy_*k-7&{*c#HgaqXfr7TE&7^Cr=Y!mn6%|X(jMTSi zvqmLv!KUxYnzB_#&2PfVl2ez{WJivLYJLfo0|eAtaO`GCS=CGZ;_5FNe*l?!?u#$n zVq3X9#-)D|!@To@)8RrbZtKkN64d&-;X={gmo|MeM6srQNtoOE;iq6uAEio!FF zMINM8Iva=cbShv6wt79B@nHZ7?Z*tE;r*M1fqVoy$2N$ENqwWAzq44wvPakN8x|xg z;VnL6XZnC2RSUP}xNY+mpW~=FGX!(%2Bg3t8gk?HWD!^~Z~FpE;Spz~1o_Le%zp>T zBrGRAUfD^-*>X#L?@x@9MYPJmyB^qYMck7ej?0Q>YNYF|EQ_6X3Bg#+0Qrbg8UOF?u zWJf$(*6+NdrvYMO4C(45X7+Su`1N@|&jtQoddU|ZS$zccl7=;$h#rWaA7aa@v}dc9 zM$yM|WI!byQhn*(@k35HcH-$SgqphXyf1lc|I|K7mh5FMgd# zG*I8-yl~r5yzrX0%^T%0y`t@?)Ju~AU_l*c-dv>O33DDKiVU~^p_@tr;MM-xn*P2k zWFte2j0;9F*Bf*wGdM02*rA2yY&HYuUYa0A;+x+9iw-4j5c+lPSCxG8&qrb zWb}XN=@PO;cdxl9DX!Tg%oJbnY7k~04C0{<1L*5!8t3AAv6&y_uZv~lZulf z=9_%0uQ49G&C&N4OuaI8jev#fTQ=KF_02?^QWEGFT4zfNjnQ`7R;7)I1RLKPonuGT zeeO9q(M;@(*mHor=er#Y>}K;fKk8DA86^FZe&%FQd}j{(mujWMg6x!om7reU`a6p& zFAo)THLJq?_{#BU%o~3VU~>w$#-^tqg`5E3LmTsAD3{OZ3=1ED!0^ zlbB{(Q~PD)`oSs`5i>_6N*WbXU^!)iZw}a7;e~ok?wjgee^$|0+Pc%$ zEH(Vh#+= z6c#6Cg!AVfcG9)H8#}O00zF5K3_Z$!DOxH}>F!+30o&X+`Iw7BlsaeT-0)BeE?8!3 z!SdOfG&sO)Idk%<>Sh3D46%GS3JYOT zAE%#WRZwt#WC8jF>JyBZjtxxiRzckZku)HNbX0V}-I}`iH^2OS`xbj@Auyd9R`wvb zbJFiwbD?`!5hO7+K1LXf4s+2BfuzuaUEu_dtG0KtL&UDLHaVu66|ijQ!>2^2{)FZR zX)=}1g#h=v>#vbB!!NcjA&+um>3hYp`?=SggoeF@;)w?<6&FWU+2E>Lyw^2_qzX7D z^)6w0JH-7jt``|8JkhALF<) z+;s&HB6>vHS6+a$chE`H&0QE8Y&KCZJ(6hb!lxQCh-h=%37%d)Jj}wb21!Tu6Bb8H z&YVaBoc2oZs!U@w;_=!LmfolSpL{<+%gFHoygZB#o6zQteMG#WBXHa$2dG>$%wKx) zA6$<2FpBP}3!wV!$^eh83!~2d2zJC9N>dvGM-h-M?7#a#*1=i8_BqboAava$! zDJkI*60)5U-YFxFCr%$r;816PHgi&*1oGk>Nc-BzK(u$N3BX!-0a5`Eigf+N9Ml;% z%Wd@rLdgF3zUQa+fHq=W)XH;!D3g%F`XMWb1%c-rT7I~$q8L@-;iE-X$4-$H)_A{C_Y> zY8J5j%-6~R6wikdl6{$La`_OGodkz zTBAyQ7`7wnn-L=;qrL62S)-O zuaB5&i^42ZR=!QgtKWp~MzVp%6vm=RaiwFjRnRuJShefU@N{j4n=u)`?oZ(F=N>UD zJlG2Jt{FHti1y4A6$`Ap`Kl+@RfYRE@VyheutBiDI3feX-^Trp4t7wWYJdE8tCT&L z83%!Mtq!l_y2x>(J3zShf0q7m#*6dyGU1ooD@g@EBW-Vq+7&nl*{GsaV&b_$PwW%X zP~;IU$>j+n(1TG<^jNB|ZGuyLa{`bdT!(4$>P*a-xsR&;6+~5P5?AlRC%J#4wL8EW z^smJv5JEU@4B-<}u!{r#xII9Bw4{IRyrJ^;?b|({T)i5t_v)`Y1D@UbMm??i+kO0+ znt3N_ULUCMR{mgr=iL`7u8tK;TplD5Sz3h7(ymgDCg>7E@=c$c5r_ADSdLZ{^SKQe zRX??RY)?-XpcYVgKHol@FgpApn1hp+L z1>fBBKHH5J4b>JfV}dYph{-#4mvmbOdV7O3%TEGu2Jr;obi|#GT|JnFRrnE~bc7a< zz1gW4b5EIm4HetY(y#Wic{n++QxHl@O5XEnxBeZxMuED0cii}`sUbBaqymw%=A{aS z_@Gs*7j5s<(5LTQlE2Sd$x%wNTg`tLV7?RQ-RlIY2g>x<(_j@&+^g+9!{bH5w{^ie zMs&A9P)#<^|IlOT-(&dfxi?Pj%$4(JkM$MuTe;Hy<$mLF6#X0!NR^SRIZnqyLd!=% z*LPQdW?B&mDtY3iRiN?lmt7WH4!O>#Q`$54Y?1YE{qTl4j8@PuCMG7%i+bsu#Xhvp zoubc!pL8O^dT`zMPaOohbL;VS@zV2aI-+F94$l{IXexUWNt)ZRR{uZ)&$7PKYAZQ= zyd>cM*@1Vj?n}sMRdue=Z(DtXeItW|B}rlZ!a_fFxwiF@G>J)?DKOuN5%d{mvi;IK~$s z#R>Ra3WqU>g@HYaMqN=HRARMz62ujuR9J}jWQcZ!POrS1%j+0}3 z0DdQZwU#7W(vUB|lydA$7B)?n~7^*hQ0f9?ZhS+2SPQ>3J0o+ zrQPj+5>TdJQnUhgV5?h+Bw*b_AYWM&pMyW_olM$dL4ecbX+9;yijPLmef>VK<;ZoQ z+i2=fktr}AWIoy&Km4sDR)K8?wWadR`e&-93W#CfP(Kt5&-m7tX(@1qvT%R>Ch)Q? z`IUBCrHp2XpHenQtMQ=0AEC56xikX(4Y?Mpd1Yd2$d={}_c9dxDGKy^3=it|MhOKX zf6--E>Tq_rN6DYfHxO>?&qYrHH}Bf zA7VcAZfa7a+JfDHS|cH<=do=!ZP3As|nI3+1gG64Rn{h zx>tmST_!6aw#***{hl3^7L5x|Z_Ju^0YJ8U;vMw*4+b#d zfT}Gg%`J9X|1tVg`%gQM_mIYSc-&YTo;Qa+(Kghax*oOojU4QIA?-`Sjff+p75X*h z^GQi%f%(Y-rT+R+@K5pgP1x1Xf?#MA7TAEHo|~`MiYSb?H(*4iFu#dmBZ5N39T)K~ zxYuMblhZmhz*r!pnFfR@O278LHyheuUl9QC4!SEgdf5=H%yxS0&rgh*>(Ovp&6R}$ zat^?b0Ba~jK)8jq<<5- zz8F^HD0kV7u5D_x53D_~1I?6mBRYtfN6p3`m=jLJ5|~+&L)TSDT_lps_-4 zB4tpl+dQuII@RNDw-@Rzh-^g$Y1`i>ADy}^eiph9ls}pR}jG1eDjW=Z59<@ zg)!K+_zH(&B^b-V4Lh$y9F6J?tb&lz{hCSB2#f3Pp>)IURPzIsp4rJRHo|#zBzb*Q z-hQqXnur;4z32y=Lo(e;CNv4p@Aq3#994AfFWzr07< zz%lVi{#(<4pWr!#?!+C;;Vy^hL%8Aj=LKA~57!vWDn;>JFb5*YiY&##AYw@5$}U|k|x~G`}lmn3&25; z`m8v;7R5I2#&p#b;RH*->iSMrlo5LTuAv?q@(a2fF5@HBoo01VRqPr1#UhsS%Dw-u zNVP>0x-0K==7$oST@i!IN3+EpGrgv3~xnrl-+9@?#_u z4XTr^(IJpvqSy6lV6~bW_NMKT%$u8&w{Ad(@^(=Vjf^8ForKJvQp{C`Nw&8N{DqArD$dMUIhM zg1vtTzVhjfec;Jzd(kSOJHv8vIMfL!6)!q~RS>i6OBiRoLmf|6yNxFPv2tu+hO zcxD@GZ^NyA2JxtLj<~^$tr|9F&c{UL=v-3LB(GQQ?%>=0QCRTO#OJG6Zn>>hwjSMB zHTCHx7hl;AexfIj6zyMZv9OjB;Va=(6XOcs^pP`k#;tDsiCqmLH87f;Rp+lE2paSa z_;D>UY*T02(SR-5x@%<0w2%6<(;HHJ7(b2ov9Dm5#`qjy<>Gq?8b}|=-V0vzdF4et+S3)1t6@QWf+E-z= zX7HkCqzPHrw1>0p=UzaAEh7Vd6gMxue%!|b{|5ydgATsG9~Lwbwn3-cO1)f8#P~dnWM|@A691?UIP($i-RX9DMB}M+NcH`o)TvzAOzy1wCW&FdWT=PD*ck#48vy;{lnW z!L$%x!z2bzs=@i%@T)SusfXci?w{p$7X8K6?lV_n2;&nja;C@6_S(k9BBE9&rL2t> zMsA{Vx7m*N!65eOPt5Im<$NV$)*%_!Y5fiB;O&*tciwlM{|JHs-)uilju}4zihB#P z9Q(>N*#2DvC-9gu4#!8~z&>aZ#MGT!ct&$&*vUjm8F#Xmw)vQ*(?f9qTLOzrafm^(9 zk*P1S>d>Unhe;_2LN9Ig*{1vav4L}b;{4UkD`ncaFL8G?S7Eb^MMrV2S9!?07b$kH zW_fgvZx=6(1=zM$3^@i0MUgr<(tZ^41K{-bU~|YXGoV3`{nI)Pfdm9m_m?_oFGJ3r z;@y=m{O4WO&SBe5$~fE9tfG2l5^h`%oAHAg>a*C)-|QRLuafbt)(CiPL(Admfwe{$&k=L)Upp>M#rnbH-Qb3jUM zU>)wY?m1tKlWhL&k^G-dSRgJRkbwVGP~vf2!{Z3}SOfoT_}mJbx7heXlp`zd8TKjW39 zW%_lh)ngsFzu9UGaCCmu8yjsv(!aNwSBP>my2I-?`Dz?3^!)!-0#T;D#;IRt-b%*4 zd;c*iu?x%FjgHi`&~>_nUIe=xLg>^ol4lxza4kRo(PQ5lk5AKBW3$ueksj0wvV8+8 zJ8Prs8k8dRC<=}PcI%-E~k;ZIoHkxO(mFW2Jt$A@2dX*t+I8hL*`sj<3K7d^S zlXZ_#Tfdyt>~_D_p;iTARQ>r~k5@0h*eJ?EF=ZjT*=DKkGZ0o1SU)Qlt-Nu01EP^P z4QB7&lkLCnLSLZf4_2LlD1s=D5OF*w-!0pGxrrilp4M{M8Zb(C*Ed(BNNZhoFkA}$ ze7ZiSc)F8B^7#0M^;;PP1c1<%>LELOC$F< zNAMta8{d$|Lw=HHwziYISj@1w72^{}5;O@Q?L!xL8|f(ow|;0B_v)5 z+7(5<$%`=!>pE|FM~EHAZTU9NJ#yA+v(WR#V^db7+f9n!wO%9aC-6PStWwn!@;&#? zYGvi|Yj$7u$CbV>4#V^m%S33Vlxx~ic%SN`C{m;cBz?22mYKEWI^-H6okkWhnlpIz zvM~gqEIW|6Y^BWytdB`B(7V7Ce;mUClp^vZnJhKIho;%iE2sW2@8tJo(70{j| z0~n%Ct@wQBQ;X%+cdxWu9RP_~-#OoCB}Svig&F2Qo;K5P}g;!rEJu+m3PXpv%gEPdt|U_wT~@ zc`hCu*wt-e1#K;#J~`jsUlvAX^YVIaKRGu3!Fskb-;}NKoz3b*^)=~UGuZ~pWfy0n zbeOYogaAIA8$MWG;GpfR8=f5cJ~K?65MB|i9dXW@NN(^E~Ly?-~375cD3f&CEX;Vy+P`0!88nk*pJ)OPcjLY zoIJd)_2|V-l|&$>ts}YEJDcgfZ(Q-ZG~bGthW>OL+QA2^4A4UI?DX1?d02D3=VH)X zI|S%Jh~AUiT$jrgu7J4(n*kHxUHN>=#3~lGz(e@@C3M4of%D}k`sZ-lKR+VL&a#*p zLw+VMTVh%Y;s_m*Gub>lliZ!j(H>9nG%EXmH?rq^?qp69 z@a456$87-+5VUQfk*paEDQfAox2_GbO--Y!ck6I3(Uf5OawR%kOqhX%1n#EHxVlO>pZUY0e)DE6q@zO|bxXQ_Ugxo>c`xX;x+7U)Q7;xZM)`wKucBk> z4(!fp@a*EpHhYmnp^e_$aExZ!QR-BNkr_<)?Cx&ji1Ea+WVmHqIQWkf88~ZT%yB?8 zZnPDP`}t~ASM;L0rVK68QW}2Z8GvaE$ia~0lPA68&NVQD zqX+5T?<#cjI;3y>*`C><%rGw9Gz)v#+0DICI15Gxg8`_oV62r4V0-GlX-d2#62wlS zakKAklc=zar7N~|Ch3=bFXxi;1MlO=;ovi){x>ezPRcqg2CV>ZChb}CBqQHoHe^tGS*h3|$Vedw9)bGvL1G7+E zDQnIW*vv$Uh)(@^ul@FI?z4{*;@)_5f@AESWaUY}H-F}ixw~a8+yWsf{bsjl>KJv^ z*IB(ZNxGi2;mkki%_)8QwqMIxyrvW%yMmjJ;s-^-=1*@@eENu$MVLV;9CB~z&%Mj1 z_vq#(TUmv>_7G#0QpdoO;|}~(tD@WjpLVF&%j^@#@>}9!ma2;5uUrvYQzo2UHi% zM?P}XlO$m4<@BtF3tVz@{?{(cMKlP0e&T8*bzXo_*w6imatCyLVk5y2#FBy?=2 zN9QVz{pi@2h+dF-J6dwzz)Sz_6{3}YhMX0D{{DpLptVpY+#)>w5%$_3E_{W0-KAzt zz3V11oZs3gJb@KX^W!(RIwnriH72?=&Px~CNB8cJiL29UngPfiKK zK3{<}nC@P8htU9`*PZgt87`D(j+^x-O04NB!p*_o1q7=Xo{T)7t>t75x9RNM87B=W z8%^X&Ut7~y;17G!SF~w~zF!kx*Lmdqd{@6uxg#yYI66x7%1%X7XxsFt30S0HLGG}7MkZYsBMS4`&k&PK!RQmDetc<0CsM6ooMo#O;Aq&8?5K$H>1-4DzGqiha%j_hJ} z&^^0E3f}Kk_Mv*C0z!NNQi{w~?ThQys!ruKyDMBZ^Ayqd7@z~RHk)RGWO&w%QFkHL z^M>r|OG<1oJe|AKrU&yBXLga+*nu$>)enfQS~wX0#A5+v4nU&XdpIsCAlX`}Q}1{! z!t>OKPFHA>w9D>@#53!&!CSBg7FhLsG!v-rS4t>PT{7{ioO^;6*f70gHyjuzbgU{E zb**ujkq-vX<_@j{Bdni49mZ%l=S19YYSihSSQnn%ZM=7_^Bl&s<&`__NZ+gdIQzFz zoWR^Nt2xWmlZHh%Pjg2w(0cZk(Q+`NxyLX?!t>K9;vDOrV{31riQ$M?(djYUdgt7U z%D}^^nmwDmRaQb~|7dDRgI}qKPbFmy1(H=|l0aYgMGZpDQ9HTQRJEFf*)`8wDi7@C-=`(?WV1jT)tw@LC-tQK(Z!TVtZ-(ZY5&Bq+*0@Zqy83DqSt0S<&=(3( zVHtNiYntbI)S>J%E+$RlPT3PT7AL~|0fP%Lh1Zm_f;JohU87elZ;H>I*JCL&s4c{h z6EMUU zDFuHgQosF3=39sJe?{6$%>nvd<4hv#i*f5!yL6SYSU=xRv`C^q+mhudvDv_{*U@<5 zBEuK^GA6UrXjDxiTfd{NisBMk8u{-oDOvmUw<oYMn2L;d58 zY;uPWYwGnU+nQ{_lzOCEf*-Uc1qfe_9WK#(PU~0IamvsG0N^kG}Qk0cR3EueV1@1P5|K0?H z?s2-&L0L2HapG>AQgV!Gud+_!kMek_sFDbiSy8-WvI!};Wt>ED4j_frT_V|t+vsY? zqu*Eo(J$bTDi+Gm7{`4J0lrsYJ6YQ)SYTy4D++9LZh+OdUgt*=Vd>*rzhuAWyKHN* z>(|m^{!u6mKeyA`YZB8MFOwDU`BhKuj%C|>s1mu}bv0$2)6cN_Cn^Jz`bvwiBT?pb zK7)Y=*Pt5Mwk;>(Re8QUo2jV6>6$k^5Fyuh$eFt1D5ntFMZTQ||3H%xf*BrTgxi4r zzBet38OHMInFwo($^^Dc0#2tbV-U}D?xMl0& zMmEVX$vGZv-lK9v9NP0C638wyuRKkcJYt6OuceoKvTMMOYx@02i!t}0r_hZAJ{qqb z#LrhZ@7R(mAg<6}fet>utT-XTH29&Ed{GmQI$hQ8edTZ#<|9c`j$Lz}h)I>J(kcq) zj;Y-qUc9!~*V4|vIVv}+!md?}2dFs$p!KYD*$xf~x!#>9#(*&i+Nl5@6hNL&*q^R+ zcWbhYgigrm!Os1uHv@%0E3*-Z7(?V9EYrNg$;uN&I^_u-PdUOiZ(8Rg=3OGF{dldXD}fA zDR;~XD8n}vDxXcnyBA<%y!1}HoL?ikZ~%AcdCiSD zPMa^ZDSWa&It&_7$o#tKQhsZ^c5Sl7TXdpKMdMaE${Rh9KldhnkcqWqIWg=|m;tRgpNG`|c!PDnX{2Mg3ki0r# zS`pT*6C^I5EsnR{>PH>zz*XKA1{#4rWEusM8npU#r+&xXbfQ0U^ebRiu9S%iaX3@X zl-d;Pd!nf9BieV{ufp5pVd@4?_H&X52@qDHR=>?vl!x%Le4iPU$d*2}lGN1%lQ;6V zZ7&C|)-sy##a{eKZ-(774W6B0g}j#|Y^Un4L*{{~*Z$rm-t#>A9bAsfy zM>iYArwD+#FR*bAw*IyB&8&XYNr=aOK?-olsO97Mupz+Yv&o9@?yHM^Cd6OQ&n)EI zSRP|wBK+)3Y&cU@nNEGCr4<&hfMX$!~^UQ1uxjWZJ3c*WR!yi zPp8e!4>1NRe&SQ4{_*o-h}~Aqxl6%KJd7M@>22z}E(*00fIzToT|=lAC?pc|+U}tD zGL(nQKCvhqKA)lklKBKNu3~S}GEsUS$@K0VJvyqVYGW)3*EwJC@qgz!TxH6mLZx345(rWoA&Pj(8|* z^)i{LDr9XgcmlU$-m8<2@^#=u?r{LyS0`P8LSWs0}G?raC`Q1u6}0Tzf$*V)S9|s8TG{>IV)%<-thJ94}Q!-kXhqR;?(JH>_!Jq$Tt>WohJiz=tw-3&4O`d)vo~wG_oQv3g zZPQkT1WqFCC|+QFnA$T2SDIic0eiB7?JbtRCW{T8QwN}mo_?!{$V2_yiK%r27Q(o6 zvtdj_jm*?+9SCH@EPZqL^kXGd*F;RETjsBq6cAuh^%HA6NP6ac=6pgZTlNqR*w<1+YdOt8`||R3pEgsSex?`QnJy z*Vn)71DC^e6&Uy{z?}8+?s&IC`Y?f9%=?#QSacTK5< zm%6|>JtZ6w$u|DhqIP32==cO1NbnHxxCYWKvtBIMDjl9!JSf|q!q=(ByVfq`OUkJ=r)dO3oH;n=I?jgiXXvEn=s z!!G~MbSrp0>FX=f)sMn+MBplYtw>!;Wdy2px%KE%^k?7Co}aF9M$p%K!jsvUt%+$c zBZ*V1_4q$ebGPQA#ir277Q;?Xq=cZ>iVr4tUU(eT)etlS7886p7a&l~bJOBccmpUL zTD)MNu2EMi$C#)2<9A!%m42>@Mmh!SyOh(OuAYkp=hxgzm+zxAI2fpu@t=Npt(q&> z=SI#-X(Pr{`JjY6Xxcoe1${+{EZQG<9}R(AO&-_X^x_1JV0<6>`nIab96cM;7Gk(A zCuIUS_H3;Z0_{>O3BXCahng%l#{wI#dgAyGC;w+qdrMKwJ+9y*b6&BQF942?*VIrV ze2-QGPf20_mhwp2(77v(kp= zb0hV)t1ZQW=t+!IRbJ80kL_49KW}p*L>vxd6UDf;$jS^NlnLQPINO#P`uZrH+M_jW zV29+5pbOuw_w$vENW4=QCnk0sVapV$WZTSABQ`(UB4JU=5tn!`lu$7yS*5F9lYDXbdTTQH_Fk}$ z8f5Op#f=bjQVH8;3;sn z-0R}1V-yge+TY**5FRd*fKvO>*Y{fZZ0TzZSgl@aGaU@-rUh{8W!l2%`jfelnNz^Y zDseQMz21z%#xVWn;$j?jd_U?x)na?jGo3X<0-Q=T)Jcy(L-|5Ku&|&@hVXJrEhblY4FC`;+Y&B;tuBg6SDh zYiu5BDUKVJEPZ5iKr|k!+L0kkI27u;qfEM*8wfS1XQy8+Ali@qeHq$3rc zsCd`0#TsO0Vw262pK_s``BZ@h@$c8;(%-&n8fpxT-ItWkyl?b`_z6BXiM-HQBM_PlfN66DcU>S-B|Kn$JItR zIh8FokfiT~)&Htv z!Jr|1TXFANylXML0N{vr`6-rG)en?WX^DY_j5f>r(}>+uAC@6+J{&H(5IOVcTa%v_ z-jxwlXa>{mc^~%hx3{;8BX_26kdZZAX;wNt6k9p$6>CF4vAC_qxSh5q$Rq!crn8KS zGV0p!3^1gGQc8yc(nxnBC@BmrDInclgMdgQEgdS|A`L?~gDBnI-3$ZY!~4G9k6CMe z4Qp|p=bU}^zVGX1g?0=iu|*>Pt*6yw2ax(Y8RsQv2gCly%A zd=;vaoScp~l*OS%fGz{!nzYhcc=IhGy=0E5H2~B%Ft+?n8__OV!RaP4L8)7TC2^~c z$~c)_F#dRt#*T^iP`gr?@*mBk7EQM^6t)&=72T{%^-xNg0;jk=o6UjY`wrBK0=@?s$@Lr9k!7>8QY>2`*P64e*atT(_bHm0H8^NT}lPH5MJdO z#$YipxOq__uae9kc_=y88sTG6EA)>uMul8(ISIewD5*QPj^qY5$lNQM;D?#c<fN+SJ&63 z{|jkXRVC0aH!PYCy!4~i42szWSsoQ)d9)KL?>ATQ;MM33xItklYfTJ z`LQD}-y(jHZD2yY+ZL+h^qSRkg#3ejFUgWqxGquk9hd;fyOa`BP}mTn!HIw#xwQDY zx&~RYLSk(eWgHA9%Ym@_)kShrkZpb{SBL(Z%-okjk^H2LD0XK zMIXtAIqA3vy)NHtE1s{X*csNa?Ar_hVu{X@Ok)U$O0R4|E+*T0z$w(q7Jzpj&?SNGR; z7yEs~6VR*=shHqE+CY=<4ewt+{+RWaR7T5L=ziHD8l#Ow><+oA>uQOQ$@w+F>AB-@ z6);-pzX6zIGzi~C#AWUUd9Aa^HQ%EH!qIx1eW4embQeZ*l-YYIj6h=(+O=pqk@!RB zOnc&k0H+4Sk3t3XJ{$+3ffe^9KAbVykct^OhaW*DJ(IgEohA<$Vb#zKzm-=aR3@I=UB@6p(hoL-gN{XWXo^ z6Savh?x;$>ytH$lY_8F4kO}P#<&+$0xQ!>d&xs@m%NV2@fc?SPWVXB_QD9`9)pPwv zCMjF>lcDjFpxwzJ)6OY&vme9jW+<5B+$fD^7wi%tsW)C$r!*wyeWn565OD(ym6iWw z6Pqj&5KOwn;ROOqjB$Buh!A6pqU2TZiRlar0vZx7AD)lqfDK}zp&soZ7_us8Szc(hFyPcB8ON2<5)zWsRRF2!$@84GCSJ@5~OEbYMul6f=T=Z?#i}z z!4PLS8^OQBn>)@2S(>*|Q%~FGT!{CN=#nLTJ_rE2JqB>Vm1|v3#?7;?SD)E6{DJ`S zWvnNs5rG8zs-nLQXYxcig$1W~yF%)o;Cj7PQixG#`xc}|$E159>6na+R>y?7f-qZk z(^CGc(*Yaqag!6ArfoU~F4<56g8PVd*^))rit0PAc+V`A5S-k?*p(xgq3 zW8FHM5oa`UWDMr#N2Vy>b^F^BXmL3(CjdHnEr1qJzz*bdj+Q0>J&24jiCWBBx* z93C@na|!~9`zUsr)wD;wkxt6dyq1aByfvu$6uJx`9+ew>BX$}ZF7Vq>n73E?m8iCR z*o%Xx?Px(=d8f7jAR(eYM@5;6%5l0wW_9DwaINuoauMtbehJZq-K)FvAE@dEB11Oa zS~6XJW(m=+UNTiG96;|@MdKG92v#s50g<984e#7c55-%|Hava4696SAtnkyV4n$p_ zr$Nh=ggZW1c|*K!Cp#IM67qmmtZi)qe6cccTXLXdCWP!s7UV;eoX-rfF0}wnFF;h> zbw^L6bL3N!#W^wwz2hxDukpJ4)TD8KTI@#|V=zB_PwAOHF!bl6rG3AgavaN&$`pZ} z>ta?C!G&eM!~0ss|6Oak&^6$c2dd`oB6NkxH%|PqRG@#X(voQ0)1A)Yvmxu>Go_50 zoe+Wg6qU}5CTwdVk}Fv)8Oa<$I>wL%pAx6dC%#+s`=>fZ9W?d=+e6b9QG?%V`_PwG zFa~Vu-u11%o0%)AG zSK9Hh*m{uZx^U!H{(vj$k``b}+F}d5J*>y)!+O(Us0xw1IL-WqbGFyd`gJ{9=^?G8 zHYMi`RUyz!90*q6T*|Cgdgj(^)$99c2nfSd0+!*CQGiQBZ&uC9&H_bl=-#t;a(deP z0n>Bmw{CmP!#w(Bpq1*?D+}j!7f7IW>~TD{*E;kMQwt8@cLvPJG&2YF)w29_n7@3F zlA&e=whaWfYH%o|rOa>wnIUC*4t~4wnFi^AE^m1%sFB@tWHSm!L(4#wSBbQAwX;Jn@qp5 zw8=yf8!zGh`t_86J1fAB954qOilzb}D&duu7G643a>38)&9UvNV=6W2<4-|&+=qAG z^;awM0f6OBqE!35IbcKC-i|vj_IDpElX!Y&wP1Ee+ zcxhhZ+hOwJO~6W9S61@HW?Yx_^W#VScNpeY&0 zT>wnURlFVrJHmig>*{na`_@NEMPg%kre?rH&~Tmel7iuukuMfeU4+%OQal2jM}wCM zsGMG`LQUz9)nyaad6jF%wg<8}oJ;S4!*8)idVkY;LE1V!dQz}0ru{AE>0a{`r_QZ!(<@w%$>590HTN7ti!|vJ=JT z$}7GH61n9W)a-pe;VlCFw4c|%&5DhcIIwDBni-Eq)ZcrOAS3%`CoT^sfu^Eu^S?s;9|0gRSZE-))vk)3{E$evHOic5m#>Yw6%z?E+6H+g4I+75MzFi^`7fhg|^ zsJv3OuYNTGXz{)LPj?lE-*#6M4_*N*gp!H$B;MnG)_RX-tjzelp>;E1!2PqSpe_Hu=hU0Do8ANtTb%?4r!N7c9qcax9r6FS zmLo*tkgZcfr+e>hkKpV|!$2|0Qz?NsuHq+A9|21*7FxNM2~rAvNOiQNe!jU&UEG@a z_fjoKsBNK-*@9TqKdn~(OY}HRKGR#IhXaVcy?K}Oce8)fX4Mbnl8dnPE9KH(tX{I; zyGtV?jMQu~3p3BuWBR*YGmK__8d8z?Sr*adFa5`3k^+JvZG{3T|()mz8O`{yV_wdYl> z&BOWW=BjPNM%fbdqSDn__Jcjk^__qcrc!k8f5jjs=d&;8o0G`f>gMH+!L(d{Q-Rb! zLe)GBXdw~ro!wt;_D`tg0g-(myS!KPO(Gep$pKgS<0M?`FR6r`TEz+4~j8M6-y$U}P^?@Xq8kl>J5l)o`}c!WR0s9=0-#)LFIoWj&x3oQvmwR_Ugr)V-tw;oW7I}haFutKU>-MbH$Tl*?N>Ioa6QYp?3AGT zBjQ3SkY-it6{|9tnT*;i)6v)n=M^$Momb@`5TKEaa0ZQ*yNLFSkjM3WCj^g`bS}H( z07Jv$yO>K2b8Y-bMk1+gqyfN6$OmwEgi%Y#`M>g zui)#4_jAE1nn1D`t+oq7;|aJzTQsszDpzN4WGd6C{vRGrx432P4E|Zs-`?HRBtA|d z{@swnu1zr|mE%zhfZu3x6(HQqoul4IxX$4| z?6-af1t!}C63e7=#xA~O>PvSR-qf)AWD6&Y|J@fv-{=yX=)M}gf^J`U7^BbMVThm@ z?04hb$?7>9qh}6&?2Hqy&uO)uk{zLqZIotM48p>RlTOpu*1-tL!)w3xcA4-}zn;=p zOy&RV7maiUD3Z+IvH>6#dkSC)DWXg9Yp$4}#xa8RHLNusV}7vdBmy~G#L3;pwEW9? z*`55hei@T<6ljJ!-4%D-CNC||GJ-UQUoXS|+I=bn?hG;1;@O|^8b*F*tkfwyAgXxtI~3b*d$veM;+?LA#HboeCh3kv2yW6l3(&7_T|XhCs})$WEW@zGS*-M|Yl{R#m;G|uS^8>yFE*LpqBRO5 zH%*3icnYta!z!5j@WL7O5oppajV(=4wjDjIy&3+?-z5YWx_R>9If_2<~Y3( zKHD_TWrVmcA#GP=w7$DPH-7kJNU7Of_pd)7S;Sf{tjAHIMN8B*K9BBN?zj}nkH&&q zsq$cTi65Nq3F-_nex;-TGQ^JB2~`jLbN|u%;7E`hjsP*>@?3-eyBUXEy(uF#l!E5G zk^GJLArS^xs1ZH#feYNzJ_V|+w7W&}=&#GjE3}gwWIh3dt1sB}dc$n#tb!aXZ{~OM zgya7ixhP>Z`)ItQBk(G*@dT?|@V#M!H3;vqLf_F6RXQ@D0k_0+oX6cj5efU1ra0{?sUPCm zBRaqEbV-Yd&!K$rdkdM9A<05Ee|8+0IG2KJ!B<% zxYWPvXJiLPWQl6Uih)uWM(@$=INAaL{yaix-Y)_ESrdWO$9CEQGjON@K)qR&Qz!{nda9Y8$s!MU$1`HARt758g-9O#v!Q1-;=*3))7 z{Ku_}DQnmu<-=Xj@-x!B7ydlw{uI8%3=>KJaX;#`|E&H#%Hf0(`@aJ7KI-BDl$0X+ zxxcF37@2?U;bv{$#6HcZ55nFyR?u(QuQ?$9(wv7(eS~qn7#aSh2%i`= z$k*CE!*jd8c?%>Cdo_7p`uSx`4A`&OuA(jM&j!^kyd#X-9VaGL_9i01kb7NY;W#Z$ zeuRmM+bdwdbDf%fqeKZLe3jff|FwO=s!DG+%+}YLI&RMGeySB<00cK$d(TM50=NSD z!L-otRMtd|D?y~X$8g*|-z|o=Xry=LY*72T0v#(i?n6TARJ}P6*%PFMkeOGz48WZV z&55>sEgqQj2HkuFvFqfw@D`wGqylXMcFbiiw{;WiAbsF(jFMwhj@jB|T>zC*_iy^Q zVJ256%TIyVWnu1w3AB`LE0dmdzkfpuI)WCutl;!_NwfDJ{OUCOb%e43JoXJzCq5hQ zAEu|sw{n>XaW>D1A!s^$3LOf>1Woj)+y0IaJ(KHh_^8L&`xPZd_yf9I7LRxW2<%ygpYR%HG;(_DhQh|X(}DFU2Z=? zS}k^glK`HcS}4vbL6f?g#mKJS2Xa1R8EvYoTu_|(1U)~6p^!gzISg#XilEqpo`%yw zK>jF8k-q$QL+pa?@T5zHakDIXRx^ZjDwZ@9=Z%w2=T#;G{JI zkAkhk43%d`5zO#+ik8NS#`E*f75Hf(ppRNrk2_FMR=54UHUwm+#TUGeVHuc-#CyQD zPo`uVV#1&zgU-aB{m#-XIY#Y+ka;RjIO(j5b>y0G9(w+Zr1p5+1qRG!fiRUn4ncS< zy8s#I+a|(92Fr9zyd10g)*GNVpbhUKUpkc0_o`sBNTld@S6-oiS@8jM4cKXqyDoWD z-(n{c2#HEnQ#^ZGq_4qocX#i8z@@yv{R{}mCJ58qlHV&Ds525uA62=nWpg4kSzZpk z+HCywx@lP)oi)(Ib`h!uc6{02?{>esoWeQHc{d30RHOX<2}O9>L-{`&dR)2!pI&V7 zXb&tf%Fci>XCwipr^g>=ijv>N9NlFd9d5asb1nVl(v3Ue<-Vpkp;`Ba^tZ85PeVY< z4L`Lc=X;%!C2=QEeQ(&ns>{E;cD2OV&`>a-Ik~+^=lf2@hYk1`0Ts8i*Vq0g?=QZ~ z5hc##>~S%>lZ01S<~cfC)=TW1%`_5*K94TTlHXqB@=7~#6Rl?jN0cnRe<1Q1h#WK> zhFCa=!HXRy%g`-{K*?NKsu?E6Z_9s#TnUYQLwD93iGB+5&o02ZT46R+Y0+7^cJ<^}<|G-YWXfK*ioVU*@Z2B~b_uY{{vnHL zb^`Rsrv=uZ$IJ=i;f5eOx+>ldExR2-2h+LiC;U{Mi4c%xptlqsM*_2HGXQEd!Mf&f zwM)O9W#~&_@T2VZ#N>pxdP$3`EFMUiEeb%m*vY`z4)pvvPAS^g!$?V4*6xuqHY!8769Px3+%a_P+Uze9fRQR`gR z4*9;nvK0Tt)8{)_(-cxABumdgtG(#==5>bVTj~IX_-YwT`>KOqJ4t8GrdBtVN4AlZ zz^lQ+S*dvX(Jz}H0p%_vM-gmRZ;K(a8ef=O$iqgWDe;K&z(9nDl=35>HHAzrZa_LL zX8qNa=X`D0o}P?3lsTBCb4Rrj&~%d3pul)EW6SO}v8~JRCh0j*Z%s_{?%kAm3MZVc z0wg#WTG)0s5MWr(-E3d4PH_vkIG4h0UX&WVb9h3u_-J;)pAukH5rnC$3?5%vaWI4E zc>k_yD(Ulm|5=UD0xcz}R(zzQ6LOD$_O}A{gkO4yU}H1=w#Ke4;H(JofBKow!w=LX zJN-MfWMj@nk0L~}@)kVaj{sR0mS}DZ-$|`vJ>Oly+3M;_unpCf85Q|i>olAZRgL5A4>yZJJXJ{G zawq12;j@WHPZv`#&%SA|6C&;?kv#sJZb0vNJ+CgWk5JRD_=y%Vk8}rCC{v5ls~~Ff z@0(MuPCWYzKtO1`z@rtIPDvmSNDfl1=H`MIV!H_Nrx7Wf2kHK709H70&9b^p$aB*6 zbD8;XGfTub-D~)pEnrV+_zV7Ce{UgB$fxlijMxLdV&e&<*;4OlZId(bERyV^_WGTO zc{?!Oy%V(k z8PHs3ThV)vm%MfsSok6DBz!tAKL|IE@rj`08o&@2EFT_(P6wB7##^7Jww5yc<)R|tvfMF(PgXrWP> zB_ZNpy*?Qy>u4g`0hq(4|2Pf&ynm9XW>cB{X+20JQ}va#@v5T7P^&FceRELcBfri~ zP(}rq>vE=hk+B@BhU-*ba{yRJA7ny$m*dd@7l+fgNwt&8;QGour07R%Cgvq5COIVDrb%3{KNcP*G zFejRz52-zs?Ee_|UJOE&0h)?MO90Y1Ym(~t(AAk-R{kB&drqT9%z`{j-Y{?z?Qsrl zW?RkLqEAhejvk_C1y^HLk~LA+A4(**zHi#_Z;m}^BJ|pMX);mzMAYJIs`%V-#rT2l zkg<67iv1!1Fx2~1cOBH-zY(>pdG07PJgCc+V((P_&QcIiB(G8Gkpe7 z1vQq!{+SScvUHFU(FtG)czPSGh9G~&!pB)orms@X^->V0kK{L?EIxC0BJOscEFe2_ z@Nx^Tj3>>f0!70nO+O30T0wJ5$A8MJa3v;dNRQieG<={j?mCM#0=QhEb%B+u=;N^H z-ORyI7zj^c9omGIEsPypxE{6UU<2asu*q2}Lu03I)jFL4+bRqIm?x!ZGcW5--}bCyq8fqBg%uaaIcXx_%HlQ1|Ce)D?bbi7%T z8i@mP5?C+YaCcs=rzj5%^@?h){W7z=kqR~6|w&{i^ynA%eRfDb;2qw;iDK!?S6FX6cX*46>2SZXxshO&z)4Lw-4o%nu4Y* z#&}Mobl3p=>_5wM7lZvA45@5vG3=!^r5pt^A~docmmS!!(fZp@-aCnvd*?LXi`(b$ zW^Vw1wa}Z)l%V8mTw%0VrOmO=bK)3lsQk#5)I`gAo7Dlle0b=qI9tc%q@9LyJ@*(0 zf5pVYYqwXxbdpYvhL*Eq3>%K7XA%61Ej;{t8jft#90qcW(hr6%%=xxFVCqqE=nb1J>X zdgyQ!#mxG6vq^gE*05N3d({#xFEV;d>VZCzOk+E`9g88pN;|@VOwG|bW6`K{r+Gdf z;&SEYPd<;&ulyHSy%;59fa4)cZkWr4l_?1wmMBIay@_TNnBTVM`h(XB^jaS}eu{jC zx&kGf0@KE0yL78#Ew*J_t}HB85pMkxKQkM9jxK-i@!|kH+dIEY@1*?zfV#=u*!^+N z;L@mjH=g*CYs2X6>DESs^V}lG@#GBMF7N$AMC`f}^>_U8qE9Jw;ptSoECgS{2WqPq zVjVPuQCP_kbesd1+d~kat;R%(;{RU#H$ki~Q`-r-brWZSY~wLxs(38u8FNqqEx1Wb zCK>quz>7(bT*@c|kkLQ948)X8NFU{7vBWi82|L{>nP?D78P4_1e;a!7B+HNl%1Hjx z@i0rg)YM*hv*?rOv6;a2tmVFNme}XE1tGbHOl>$4dAQSiN5_^!Ei_uUsRc}(X!`W@ z;Om29DEA%gK|`X9WTvzGv(JQHTxVS|;lH9jb3meBKDFP$U#yBzVCJ>DTs+%=Gl8ZIeuxk*Pz7fPj_A7sD8GmI zDYo2?Bzqqu)qBUwMG$$dZR!3_lXbP$vgKuE>NjTm|+?29&NV&rb<6(By)Pr(b}5*D+P~?u&JSv zYXk12!PCzt?LBdWs32yUMG*e(FLojLab(VEVNo%Ux^B% zLtk3+T3CwhX~wsrM_wFx2#I>w<$6j`#NF2;`7hJd)%$*#;xvz2M-7h(LTv-vq29E@ z3?!9JhNbfI3YfP1aMi+$(J~Kv3pnL7qVSlc1C6MbfcH0(acm9-Vjp;(7^{ZlN_`9l zic9XmQNM1EqW}eK$A!-0oxnC_AL3Gi3$w0-bnrmyuZOxD1~_$p+fVNv8pK*~tY~9e zA*v^^!U%ABxhOfCeBt(T36JB?+k=Dp6ZC8y4>GV;3G(3L!s`Hi=;$<1a`gv3S5cOl za_y(dwF+!6t7eU7PL=8>GtYA&${~Rm01P!Liu$k1BT!Bt>TXLvpY3LHmkYGEAXq*Qz}`!A zvy?lY+}uT#zMK3Iw-7&C{qC(DMJ>*zu@E5;AZL?1ew8g~^G7N!aqTWqk8O#xWG0dS z{C@>~TslWR=cqkC(R7j5CJzMsxZ6&i9L>5&M*$OHlG}p1gvardoOGiJ;M|1E6+)?n z&x`4hy5=3F(!sEon!4G>G1}N1p6|43Qix?W${c_Az;2 zfU>_Bz!g1t0wj(g#{%zLCK*Cv@b> z6!9_1E}XlvAwxHPzJdRMlx~g?hj!;Itdb?P8WxQzCv7r3LCKphklo8Ubd2=*cH02R zx)SKN;f+2Ia7=1)D5$+nxJ#O=jr6w%T4}c`ck$-+12)HNR_3!&& zmfsnDOpZWV#_*2;^|PMNKGQ5>ACej4PvpFe=5)qV>GpDzJ&%Jx-1SQZg+~JnAhE3v z1_{`QtO7raDM-aGya~``5<;@95V-b|1hmP&)2{ADFNG5P6pm-a`hQ!TR%GrzF41mp z@+|9`bxe|iepW6KV<(^`tJ#VZhY&k%9+YXIW%=Q<#Bs_L>oVW2P8^Fm|)}Xf>lbX6T4uTXo<6WOD;tWc$8C zm-MnQ9D5QO&~ql-U2ALjASey&^+bxXa`9uG{pr3RDOji_F~+$im?JN)!@zhx1jBSX z1sDR0{wOlhCOgU~1RuRwFFTglp87g0chOD0gFHO}pa*6ZR^7OW&BlPt+NMHHta>N# z-JP97i`nvj?fDHhU{NGRTgdS;Ef_!L*a6|qH5`WjVbMCZv_j7gzy;D+3?$vY%#RR) z`ZNi>dL@}#?8RTQ$?`9$sHFsaKAtcDu8G*YHj;N0?v~^(fhgp$N?_9T>D;$Z4F*sY>_-mjRY7@@>^d)Q01^TiB#f6NiC}z<1~6%UMOb%}1I0+s+Iw|NflA|M8X zh((m)%T-}75>BrN%qkUUv>(~?{WIrU?#htsZ`7`>O|6wWb1Y3lbswLakMEzrE_a}S zq)qNrx4~M4y|*E81kLxr3Iimubqoe+tI(L>!m|nQaR8{N8HuDNut8j1-n88|YKL-@ zhiFD(eo9on;4=D{BVUh#=bp6X;=@~H2M;>_zq~JfswKk;xMJ(NWWaNQk_ICK@e7l) zPvGgG1FW~1|BAI|>#Q!bD|FkRG+r{j>}APHI5!IUL*S$rJA>-NA}ppo%n-dqC>{&O_u`c-D2r)0g_LlY)` zPLl404^oIWqaWpJtNgV6jW?+64vmZ>o<X~U8TNKlV3h53C8>mCs0LKB$5f33x+)^>4Vp)|QO&b~C) z2=!J@;T&_X4e6z9;_gqhtkE+z&;yOF4Qi^bb}SkB#%~&BS@N>cN%$taXB6ruLCtsE zN*4i07EVH>vlvQ$9>@l0$7(hHDYS%-YlbKxqZ?%N2XBYif{qqP^tZIih=JpvklZMC zk@Mi?pxP%W-C5E;(f3!|IZB%2b$w z)jV(Ofd!)SQTUiP2u;6vhN^UI@j(ArE_njP6vT?3Ih@u}b#i#V)LwcX zezk#i{K3YIhes+Dx8qWFj!|%wNf|o-nu7wHOEBBN`0>)_-HFIPXwpOB_GK#0SS;Fq6l#j!2KxJ@ zBgr_ptwyM_dyE_1a8St0*ReF>PHTOSl{17Ms{vcV9e`MV*ZK}%V5lr6mrr^<{U|tl z%5&ZW=DDo0;FLn{a+!2uE_<@_aK$XN#RM83nU6)MDCbMd zgJ1Lb7&3j=;%Zr$4X#!j2Om6mg zXg^oW^?jCz$gGBVXM4R125!7)z5Tg9<#{M!*Xr-;%)}1rsu$0*ZDly>F%H>yIo#qP zI_GvTcbA5VUwt9o$c*0?iNVK(b><|(jmlh^hL&{M>ZTH5zp(tOB|l8}o43YuAD7Ru zyeTJv;q1snxGcgqn36zYm(Q8^hpG&<*gqwfVMn7YOJ~||SIaJXfAt$Z$tx;EpUc`! zo88tImd`K2hzxzpzBE1LJ+^A11)uo3=2?|xbu+w#nNZQ=#pxT+RN18OysWbUS@0{$c29nQC}O`_}XL^$<%885?*50HeNjO znZ4*yipD<$Y^{FHME%2pkDf~!U)SVcQLe^FJ4sa<$E?@j;5HWo<@e%(LCdCDTnM!F zHJ#4ygi;uD|8WDwy~)``=esq(6nSb)cjgAD|AIQ-a0TDQioQr;%^`66s*7RxHq0(ROWXKhSq`waRt9;z% z(@k`)Hg=L6`N%Vmnqbds7k{5YvfRRfTcdG`j~*|w*^3)_T|R8v{p}1TkGL`wZ6434 zkyW4uEzkygKJhwi=oR7$Oj>SVPQ8?6NJf-su(P+ElQ}63o(7ds;}a~PBhjmt8X>8I zx1PPIlF)I#_=JdK>cvXFw?KwfuzMu)4>%`W!tMlN)6*!m6NHAQtvTs1;@sV@Gr(NrS8+AGb(dSlGY`TQ$c!f`kG zjd)%fe-M`Z4s3a~kj5M&bg|E?>--nj;8+ty;eG2I`%!G)_O0Z0mV}d`r1~pbA=c*u zakIV%#3h}J-*dxzSJF!`Ec}#t<@2Et*pZV{zRFe$BBg<*pmRvDv@iA@x1c}*Q+t^q+TJHQz zE5rKe@ishk7j|kTqO-koM(U(T@6>=9!UWExAy$4AB>-;}*nKlEJ=|rF0mwz=2h5uc zBt{F+KY_|d1K1BR;QP+8{2Cr!hb=(P+Qn{R>MB;o$`e0RZD&7I&QgzF>J{rh9{Y02 z7$&4%<1)5tlK6IWg*rT%q09N&bqh-Lz6T?KC03kbr%3E@5ssNCY>(AU&U@&t3tuS(WeV} z@c_i^Myml0M#RFb^5ijkjiqpf=GOI>kWgs~r#$jU|XC&lyGO z6uivF^y-~tFMuPE%-TpyIc&w3`n&csS;h^*V|}lq5w*+hIcT^i z$>i|m#b@Rfxu9~Azy|I61+NXY7NU94LAOgm(DP7c(xw612;-vVQ@+4fi~6UMM*kxG zPX4f9+)e(io?CZ$)@7*#EAlGvF=w(ZKxGnn%eKdWbYT0(Vzaq$Uy8m#VrH4bsE>VT ze!z?ah?9}xTiW=A{j+qdu!e~ESb`}>9buDD}nlc=z`0e5m&R~O0s_w;+w z=il@GTxozf>GCi~Jzm8H@Z{VDb3%+><|qaI+2%pcfV3+nHur73_EXE%$T!gB33xCM zFzEVLpET81@XSG>F&QizL3Pi|r^S6s$6K^Mq!tTrz4JdXsBO47BxKifaWOys%zBjd zv#`TsKLjkohz>NfzsQptZTX7xo=i@(wk%xi*Y!wjP?@+tVjYuj(29+#r5U3#@2hAg z+&Z%AzAy@(?`$7V3!j9Rxbb=$QaKHBH2PjnTkT)c(XMbfwMKFAl6L3>wD0Fr^St9EpNy zE>YdB9UWc5g$r`^NC$uj4672Ts#3j7%^abv*%hK!#%}f;YDULr;)g>HjbTvV&`{AC z>i33UhNDP=z&Y9(JTMV4q2{a9{^p(dE6Pr_e*!~lJ8XHs{$+ens+ehcbh_hz*871Q6m^G+dbX|FGZE zNOI0)7r&gHq)&4ALoFJ$kB}tvI}WYF%<58Ivj3;pe21){(WJKWd4-C9yOdPQjx=1v z$hXw?6M69h%wgcOxbaiv=1iRWpnZI}LV!IMFH%v7{xp%x1vOs>Ef^9f9qF)frXi`wl6UvdO2Dde>^g?VD1}v$t4-Aq0zIL zAUJpJ!-T*h4}=-a%%Q<|CgxocG_oGAOo;niOH_{6#we4`hB<6OAb>SLUI*k3N?Hnv8fyKgeHvF2pO{Fp$0IJ%VuhfQd;OYmNE+LvY5q%0 zjKD3?yJeiScP(#loBuFD$|9zDR@>8c1@gg1vrr46q|6x z&Z>~+???PoilI72MYVog3_z#gBMSPZCh>AcD`=8EB-_H!o%Co}uo0WZdP12hhB@mf z&;WUfcMOfDmhkzfr;8D?D!@hfITZw|U%{pStzBgHzL)(-yM&4A7p%`csUTc$>HM5| zySOCeqpe3{TIi{;YnSc%fK&q0QAC@Pd>YdVts$qB!aVSb)^GBfg%ExF;i^k2+k(^l z_3Mgm|0SxM+zc5j>9Dt%7@ybJ2+oI>M8p>Fj&q7mEO~Ko2O#>6$yr_A<;oU6qHF!> zall7$2)0sN?%oz$Ey*<|MKqb9vP6=(4qjnkVXR(6&GO{VV#tL)Z42gqu}fbEztZX| z6v$^s<1#sv`rTRECVlLt8yDa=R7I`ySc!!N6X*5fre-nOpi92EY-aXV(_GFRsfHOZMpeI(g9UuQo1$|aZ&y3fDbSA)Qd&6O71hQ22um!+wsB^Vqa1zLeb*4_cyky*mVD zQ}n+RKAJM0kl?kVxFiJaPDXBy_Quq1oEDRiCEsrU1*4yBKjZBxVLhS|`EI~H_>7)@ zq_KtCbyJ_Z>2)mHVYB%nEl9f@14v&ywLo5yzx!0zVN?9_=J%|egB?fg=R)g7xE+}n z@e^3qMEzg04;~I5zH^S8@7ubw4k`v4wS?5~;TPzJ;8V(d|1>o8z7g2!pNi`@7av&Y z#XaJVXbe}7wc<$^2=`_F`qhU={F}o`A7f7}aI)ZkSw!W>M$}_85Y{TDQ_wCE{A&}n z>84!81LfNa6pn5kB@x~fUjJE;bFMQWd1d=ofh5HDRORvJ(pgnY^8|JGw_cE4K6kZC z4G0^{QC*6tCqocZuudS2A5`XV|5QFM%lFkFldN^Gp1I6b3YcQY1=R0<+aZbtA&Y_C?(Z&YupGiO0A7WAu z3-7Cy;kUfZY0|_DYs8i^iMYCWgopka-#m!_;b@L~wE+YG>9+a_C;JxnJ5E|1o|1ur3qe5^l z=(C5j(S#OBlqSn7waT!xFWrvC6*j=mK#^jyDhO;v?MXx z%-JN}o1l`udhw^>#^*Z@d z52d{H??Eol1Hvz^rM{kYwgu-fi)akU>ShnL3Vpc>ZI1bU4q=ZWR-Poj zd%OjtgX$86-LQq4HRndkjJPOu*SzPLK?{y`|H011@s7m5csrUWkN1!T2;%lR`}puB z)(azkzR8n3vIV4`uYmuMxK?91ECYOw=3EiWKr)*`g;9%Lof@_<&L`4!d7C67s?XR* zx1QP9Ig+sWo+hSW5PfBgMz4rM`Im_GCcGerH^$d$fgqSD_z@&W&YIzo47dM*@O$vP zhI8%rcJ||MLc)y#Te8M|U!hez!b|c-vlLt)lzh6$21P?F3yokm^vX5*;IOHB+`8cV zpq(?BV88EW-Y>bc#MOCV%|0#kUrtQl?Yh`!SjbhS=5gHQ)855=lY!gw4d)RFXMYF= z-9oV*8qqP59q6G5y5dEeXh3#UE7Gb+RYO0MkOXHz84-* zlvunF|M7E&hth)({n0Z9BWTd+i0HX>O#+nRP}+T$DdxO-^6=ML{|G7CVf&Bw5vPH} zdUc?qffb!fQ7b`J670}v>JR=q%O9wKj$FQstnIhrFp(0p!_tzj%eaa#>hC#ac|Af@ zqD(Q%{F5Mn*ErK`L6cpEaeW~3rlZ*#^b161O3nI$9BgwDcANZPSicnnfE0#qyfARt z`B(INmtAwvmRROZid2FW5t>Q8y_$4Z;YCasz1%|liVGP3EaLKupu9vE>t7GDm;8D3 zk0!X)l0*+ip>?0wO?vp~w4VKvL~{&iRrmKfBSIX%CGG8>xtcV-abtkpOJJ~eqkjYF z(3^nJ^`^$VrV?^@7nTMp%< z3_D{xmF@#R9=v7_eeAENxnZULFFXizrRqIV4S^tR&(kCw{mAO^qtufWPX6DBY)9id z?&n=zGt=Q;Cf{3S2uAk8>I;q!+iv`1KJgst&X=$m~O_ zE-{&YOPGK87KlwHtRfU#@O9&gSqrBW&Xt~E9)|`^E~evvV1~}|Me;iiw!V}`#wQ{^ zlLyg2iX=Kw_gJ&(rJh#4#2refzGhI=?I@WcU675GW%t%ZtjbfWLi>OD8T4I}H)$Jx z#X1y~8ISdyo??IYbQbjI9$i(tzaS^V(4x*mcw&tb!8uZd%5u#o1kl8H-*E6UVX}yU z*&D%EuO46J@~G!vSTvR$2;v>KFlR|0>?1YYd-N=M%_IUrIXvB;D?pJFB>oV4rk*?2*wPbOmJpPA^s389HM@i)+3+%94WDb`xs`HVus}G~h zieeLwL8DEAm1dApwaEZ#ydF}r9fqc;1`o42q1ER10*-T8L7%Vph^M72PglIXIq&?| z5%taCJV?{G6J$d(>~p_7AhSTh=y#7b3h~ElQ25bWi2YH$2z)VDgSBXMQ)X(opbpvZ zka-Nf+b-})XCKjC$b}n3JY}_>xCT4CD8WET{U1+X85Y&n{yjr?2vX8r5-ME-f+&r2 zBM8#nFfgN_qzI^VcY|~fARyAx3^9Oo4BheW^MB8IzVLM}_Fj9fd;O9$@L&FzY=voi zb&C21qc)Y`S>OY43m$sW`GI@mg%DgxD2eViYQ9em)^B#j46CSdZlM#B!o>}kY9m(& z)d$1K7QgLk1Yu9AjWFfz;*~GZ9U3ym(laZ|Kl|_ zOTzQapq$ryh-#ep5$t$)e8VEx=)|b@*A-Elslmt4-$F)(Dke6a5frR626d`Xb zETC%^79y4P_ByLilI3?QKTLma@{BpQ6{f6;O!sjI`2b^|P=IPiuyJPl2BTvL#J5@{ zjWHZhpT2ungCzFa&Kp5Oo%G9uhEtbv<#POkTDAY`v(?=`^pm@%_dC^l^WNZcgDJ~F zP0w`h;x)esr)=7vxYCta#7@*$Zj66#-)C?X^`mPwXtm@b(}iq2TPU{ljv|$tVaGLd z51O$q0Chz*{b&jr(sSK2?jZjxg7?5@GmH8r;pXs@ySeQvHbH{eOu>xs3$$EZz!d@$ z@>=o1drT!R*Pe~HEYg#mQr;!uw1>(Qrw>Jf>wy!EQuyx%SEZsK?5J_+&1MMwzsB%T z@o^oVD-MQF_P4OVgo=6cxwtU5o-4mjxhdybD8*(A-Al=l=0R$KN2x}^^>sthvr7C6 zeS4rF8p0rxh2~*+2keGzrSMMxB*l+QgA${HR_{>4>!pFXhm1B6*BJ(~1C*m)64CTB zv0>9~i{Sf6o>VcnM^H%-a`>dExvYe}fh99+ctq~fbkTb!G;Cb;r$z)&QmZ{XkkDsN zcM+-brRcLUZ7x3#F|O-$g#s#J2ETQ^mMA2w`%O3OUB=jkj!w+LURwSh^3jGt`Hv+Z zjnBcqlXNt5a-ywkJ;MN>h>TTN|KEz&#qq47UEJ$edM76g}{Dg1rK<}@^QXM6LWa;Y%3;h#^wpmPnpm%e)4WN6i6tz)qUQ_6e5Gq&tN+R=N*;BFEElHWf_GGy=yAI7LcB}J zi5=Xlv>X*n)~vnnZ#j^6)D|GIB_h*+;_5b6i(H69Lr9AbJy}kkw9UuVCyfALXzdf} zSx*tn0YF4F1gl z{9!wEV(;(D&4uf?!C)=7HAg~9l}->z0He5qP2l3vaf!SzEed|U|C>DXe#h7pmy$MQ zd3pJaWM`*>Lf{;@C!vr2sD@Pq_B;&WJO=pGv09$d)+TK-1N4p`h2Pr7i`(BPVoY>o z?>+qAW4Q9Lq6z3#uffX#Sqmzfkqy$nHCROcwW2CShyJA7_~1p3y!Qitj!q#bXKJ#OSK)QbIF1Z%oJtXd6>yw**|751tfbT%AOEUegR@}y7x`@_dTYFV zB<0#_LxcQkwzk+MT~}$tz?{6kPbWwgxppKVgu%L|@Ni2(Avz8>UMIp1bfP>74#cfg zF*WTc)F7tAYCTKQ8^nf*I-hJQGgb>&GzUD0>p%5wvpK)IfTcO-W zeOYA1p5)O{)UMz8_7+157k#vrQ(1tY?eUB3dWnl!cIv_9SQUlSByQ(qt5pM14!1JE z;>Fqhk?QK5ULMdO`D?PnbMme_yZTov7lnZsMdUerRRKQ+@3WBXEXhWWg8(%^vp|%| z<)Xh*vYdrnWCzo?-@I;h0o15ut_vla1GmYm>L9aGeTLS>*KSwmxXoT;8*9_g{o((- z9nBQFYGieGKr%_#zY@0JVz%;Pqc4(G+Cg}wP94EX>LNTLuOvw~&tu)dsl~xfbwg{_ zVXs)qRjJ91jd&*Krm2fTk^%4KLax=ZG(R&Eo9@q6n!UQv*DG_5rvb^`fV@t04uSC6T$usF07G=SBgGOKdbLnNpDy4S=BeeU`VO{3$O`6Yv6gL^z^*x*hcdX z?0o6m>_Sau?Jtx>3O>C@B|>6Q{-mI$aRDfW>}~J3;|-oJu{MbT+5b^&ox@K&I*Gv3 zr!>-0{BSi%@qp(2%&1|v==zOVA1hGCajqTjO(if1^dip&SWD99?yTuR zadl;TuSDgOb3e+oamiEg!gySBeWyM7MPHCJFjarGWRv(gx?e zgnTai{rd4pLP0+$&r-LpMElY)r;LeUneO|@*VL$@SsrVcR&E~R8tM81Zs1ay*uZQ_ zVN#EWz2}^|biUww-4K%*{KM6t$GIPlsjv)85BI_;c4G?RDgFIjG-b`0ayMGxp(TEN zxj1*%BaI9u@ES)0?a49&K~#!k=;%Id+s)gfMMcE~P!r)ULJg#C1>?E^{yo5CX9{8F zi*Ha)n@D(p!i1U=__}sH{@Gqy;jws+fJ52>7W+0mzzJMCK+UU=eY{YBRCaU8ClYJ` zxKUqXdofe#d4JnHllG0nstCN$xx?-RnBShcI63W%b<@m(!ikp3_;XR^w(_aiZ={Gw z7U^@pA?XX>kbMB3l#Y*lnTk)sYrShmLsJep4oXOcUuH}552m1-}VyE7NsJFgpes_@%q1lSAH{c$$Xf zStIVt?UDw)_Lr?wOff4}CQT}L8>PEyD5;Nsz~lsRKl-ifJ+GQ?FTm%sR*4L`Uov+O(`o}{cfI0x zQAdq|2t;2lQZbjMt0vCLZJxg*hmFuxjVZSzX|ST zk~CSfMk9_A#Ln4I4c|Qn(`kV#M10`Q@~6+wb(G93NEU-atd%tWk?S3#XQ!=yz>OLo z*tLRQ+8hR~eFKz-kz3Q|6qOMXz0PR_adEv?Ue7;@pMSg6TOU4M3>jn9W-jw_mf^I# z4~`ROHLG;^`jH}46wDODFKh0Dg|&&n0n*iHbgS}wA4|t!?o6RnQ}W1mO@>Zlk$v(N12$cEUe6Vym@Efw7t)^8g+TMRc|Ndz zZBTH6*pwsfc@}+Mo?|_51bKu?@)Ne5?(z)ozj@Q8otEH8>9>@ThtASw+gR~!Kj1j{ zU5R0_QF2pqd8q6jTuj>w6V8wiBUvPf9OU8Qoyd9^p=o#=!kgV+z=;S^>5Kom{cno% zmq?9oV1+6oJn)=U3kBHl*k|u3K$Bq2Vja?hW7H)0WgZ((6}!Zged4=9EX;@ra%XCJ zJ~B0wevbWx_p!5ztwXr7dVJXOO84GlZ%sL8=L7}aAU@_>D`B%@Os(l`keOjh#^W0R z=RCqjELxndO($QKlDskDD}H|!ecdXH$WBH~7RZv5v;L5`8Kh~mOk)5Fc&vNF*T7%}r^RYaJAi*T*`IkIilBqUU9_sgsYj2qr^~>`^Z^PMZu}&` z7AW;n7|M}|WwG;H$Lw)EC*cqE4F1K9L%}M z2&M^B0^3bAKH7HC+kY#R0TiMBpL9`0r zgGEBkS<(jn$W<;plqhS1HEWw0>K~-a@>`!FrzHU}7}wRsVs4T2tm@LqAHr!vbR6WN@#YBKbT_~+`D`QO~`bVgLXPRlt;IZ7CPN#eGlj+3;NyUHVafa&FU?Ju~Rf zb^6PHcPW-(tP8go3`k1x6CHc}R&IFL*NL9?wr#SkX$9u$@@g4on$1&cx5ak>sa^++ zhFD(SzsNp^79Ag{JVb#(N9CVr30WlwT4DP%XVl3whx;u7CLO`OvIZ89b^FJ1;Zl^T z`3?nV`AKhWXg2^+!eYo$hj7ZYUb6TY5U2RboQ;_Na(4B%d81bNpX>7|0(I3yy6fa) zcQ6q3*tjpLDle{w(i7RtVs__7)_ox3vsZyLE_P{gjlMa)efqJ%#W^hz8FH%E=3|9k zEchns^6aCCl#m_SKNw9_Ht-K4Lg3Ov$CG2ZpDx0IhT*|`v!IWwD`^cB4=~u3{C0mK zV|;OTHMB!sX`BhD4RrsoiSiSnPL0xPm&{+C8N9jd+H&gK9Agau81~yo=vfTx#e}!h z!wPClGGt)zO1+|82HuE8ATx3H(g@`{W34a#?2-l`kk-K~MR{Gk=)+SQ!hi9aFA0US z36RujICm^Z)l^-6&BFH)!tB}}&-Uy3jJHdSe>t@Nl%-+u@h0kY<`0u8jjs68AiH0y zBY%+lVJf60CKpR8j)=BnDHO%{<6SgiYUzT4jv}fOhL{L?KVY|v=x-aCJ7|EKx5_}4AI%85e9$sZ}%6GVU$r7hMK zNLV)bDQv1=^ZF_IT>ZnHf|O8?N#g(%jN4;l;MS4rcky;PYi|i% zM>(S9%?B5bG&u`JqastEbd~h2O%Sq=hQU!pOo2F(zE2M9P+=fI787tpV z`SnGEKax&w=$)4bWcE$_uy5q(D#Op&jZRWCX8-JK-%_*+jD!gp^;c?UK9%PEZ{$H> zg<-l6sfe|XuWfV;mGIT?y+y^hK@we6MZZfci4&dgiV-0wPGQ>_XS^iBxVE^JlKT^j zkZ*U8#=;W4wwBgdHgP()zMYD{FYz|2-kMvWG&!gxXdox5h@3bCxsunnU)cahRxR^~ z-74g^PT+M)Vsb=`w`{#m;r95zcW}pj#YikIrq_<`!l%Ky7-9U=z_U%-mg{q5pWw?p zheF9Xj*<(9-vi%zdYgS4W(y>irU#|a;x5w)KJ`_xK#o9~_;MS%>8HI<=kIX4;>*w`;l&na`o27g7bwL?!uPh~$TQqg#}^t2_t$H;Oqv(Eg+ z*KPy10(E?>4*RnRYUJ*?39uxg9DbhZsePWer+0yGba zPfpC;&w02GpO!Nq3Rx*P~eY$>6#lnxlwYZ}s2)GB-qACMuOUuScbk z+J23G>Kao>R<<7Tyko!n;A=blh#>u&yX*1+0)i8JowTm2)0|+lp%hW%eDh?%SoeHW zFR$V3>@aj_0D6k8ICb#I^=p~cRE1f4*!t6$^bgbr=1G-UK^NI%ESV=0v@P4bt1{S9 zpNcPYwfGMzjInPn3)@luJnNuC?1Pi>7jfgM2);z%`?rAF?AE-+AFV4Dm&rpoa@l4Q zm2~R|KYOmQTjReoQC;VF=!YEo;x zqPY6x_(D&3td?JTetYvI>P5^?wEoAu-y7TMTIV~l2xNO3+3z*2|9{LT{k&TG_vuFc-8GB3F zTrfd-Wh4A9ntLKdc(U*+V(9M9DT+L~4sbjqCV z+u$!fPdQ0D;~;D85Sv&>aTRUXXR%~-Ie4uS<^(mwKZ^Mu8WGyv)ykqVs*cDlXJvA< z9)a=-O{PnY^%~9e-cXUL#BBfkdf8U;+NMC02~{`!)t%&tfa@rPa_O~MlLJmArG_4O zGHt`8=?B?oKy|x$w@}+ZqxsNJb>JH<`5XEgGk39v-W_*%tq)o(jilbfTlSEu^|yZ@ z<7uT65;1GfVgUp5yK-b2*6Uq0k=U&k^gng5r`5%^j_)Q9Y<`FH8sp*;vLFXDWC9qv z{{Z(yEOI?&(kC1f($>caSfnv*D3vTo00N&TOySJA#u>Qsh zv`cNT#pt#sE=ci(mL80A{z%O%wiwBeNeUUFATLJ ztvU`2Jlz>(3Cteeo679bcMg)5Kcjl}6s-pOEK3|@f}1pn|LYjfomu+)49GNT=EVPQME!D$GZ=9bVcas9mQ(SvzZ3had zX$z%t1;k<}pYPMa`fBGrW6RU+gt>CI?LMU*`X;x2j>U%YIzB*ggQ&I77cQxJM9^wJ zQ;m7C$%fi%I91yx6vQ&twZH+*v`JutPbE=%t_f9*<976s4}57Tx?1Pu+5cUU9xf{c zAPiNO&>!n~8#ZuqNP`7zF{D&Vw(hp)8AyQw?&1lPY`|cUCEt^e>-~iX!aJ(D2~rWO zu86KEvV9;D(uUV~X1o*diNvT|7M#7SmW)9}i*a+B=x)Rzcl4P}7F4f}`Pm8U?3Sfq zPpiku-l8@t9^grq0RQ19#s}kk26SxX0E%Fns^E3J9^t$YR5RV6J@}QUc~57K^8Vtv zg}D|8ptrOSbg|8gQ4-k%F@a|wi{Pz5wGtr{GWvloE;kYwbvA|p;kVV?E0lLr+1M;o zNSS7-J3(QW_jH7TXJq7Mu3ch(DL|OV$`TMU7)!27re-5{uurALL>^vj4KtC`Xu%RI znlVAB#czDW@dyZg<}HPXOlH%Ckfh)L<|p>$Ef|$k2fywF96o>@>Ob-M>wbRC(q=Ox z)c_vu1!ZE1g!B9m6=EmcteZKn&%2&ZWp<(-6SDr;b^vJF6(DlgM0Shx+`OQv4x+Lv zrZ3xl_oy((=wqW&fQ`o{P}e3ap)f8n^EpA2PE-o^=CWe1#L7MhL**Uo)v6D8VT#F{%YjSH25tt)w*|Y0m<*JA+h# zrc@8d*RO)@WL<0i8?%B-wfJ^(x|w29F?!n9OCj)(yRp74*ZKqdEcHjIR9D3zIUZY# zQO~c)+A-t}xgUo~ecGSKiRKS5D7cI%1q$0|SxSAVlZt%77p@GhQ5v2L8!^ zn`tb$C@bkFzm2W%%N*oIM6 z$*Y{YgA$!SR;{#p6W_*_ln_PQD`T7UrniT7A+zlZ*GE9KvR>(lzo#PH>*vRhk>Rlb z{oYkicNXxGRtSQZj6+>AnC!A>>U#XJBd2{MUNLBf**cvAm<*j#pDK5d)_9lt=_y%Y z`unq91If?L-p6~4pUA%B690JNRLVqgtX!1y96k-l#QiBjL+wsh?syj#P`p!h88hd% z{zDi9Yl|vDT_7GEY|bkm4y;?ap^|>NM36>(+Id?O`+tzcKYu{sB@RoB72Nb=-mrCw z=p0vjii&8qm%>j)8vEuNmJJN)eao_}KRg?Pamqv@ z2DVySE0F^OKZej4CUV$!P}-!0hreX-yqrkpp$*!KA_-sLrU~+5iMA0cCa0CY<_3V? zk{U{($ja9sso?pUjl(`~;Tj?8nGUU8Ae@W&w`UqDJ*fSDF$v7S&}j>wjxGR;E#gHp zI(wt8D4GC}VmO0XErmVu5rCHUItV~Eh>cJrRk4CX4au>krWN`kI((kr-jGy2evNWo zFjfo(T}k}?T3H%7v3^_@n#9n$-d)V9+0-h1=@6BMks^g8r0d z9BZMxEwj1U?#3Sp^jX9<^fbSFMDv|%(T%C%ZrvgJ+L=BeXcW`)K9vx5+4A37RRN34 zWzFSZdA)t?xHKNY%NRI7T@j2uiZW*rKi63y)75Sq`v6h+m@$xg`Sbt}_6~G%HFhmN zpBb?`FZbz^v4$4~hKV^JUAUl%RzP>W_(|pr+^^?rE|p<{m7^Pggit1qFa?Ld6(=c! zguj{USI0uF>&WnsUM^7NWFBlJE+C?=TN%H5gg0e-SPc!#a<>+4yLf@xI73Kkz7gXI z-CuGg^27GZ_FIx|VY8e^r@CSYwt@yzY)lKNzIb*CGjd2i_mZ@^|{| zLnLpu?DVl0vzQlzgX;-ezwu#;%`+F&)byb10=(T2nLoK${vva1?aO}7B_ax$=(##lwYSbdThklZ%Bm^Z#M&>`nz?ML0k9ck< zH-MKWF;YUXTE(aULsilj@L&7k|yx3PvvTe9K}gy@X#x22vZlsLp1gQi57OeZ%YDYeq(Av@JeLQ(aD<+XT6) zBeym5`c4J}SI(UlzZ;?IJP$CgYVL!7VuQ%g(9ZWdpCJc;jN*4=to``Uk$Pvu@ko@h zmhS=wMo?5_G)5(zf%}76yEkbeXqk<6+qg+r>xu-5SxteapDED_+y|2J-*HSs@BD7wouQ#X`G&uw-rZ=(@noxZ@oY!T zpU4g%Ms@`6&wOk8<0N*ZP@i}Z_=4YM5^-L7x~oMWR^RD@_N2S)zJVb-2IV_UH^@1k z6FHWBjY^!f8NRtW_Hc(?J*tRHVxYa#>4{Y-&$v!OxPfczu%;}#tIuFwX zyXUPjpMS*5p9vcNs>6K{U|k+hJn>f;^@CNnWt#^CE3g-je+M1THC7W*ee|E0=ryY@ zuIpQM=6W778e6ZQ8Ti`^_@RY_aZ_rgiSTG1MAmJ?1Dg;_v=SoQ5gJ?L2rC+#sN*A}E^LtV&yZzUqALpI8$DCcT8nz|t~R-Q2cBFW z?cC?H{k}wumv6kXjnjNB_qguH&9dX>huexu-@Z*Ec;GuN;ZX67Fj3K-|A^z1VWMhc z$$0Le+zoT6s$P{@i+-!mc3#8YESqU9mj<4;(}Lux&%|jy#A(Ct)Btt6`*iiD-dRDB zQEqY0AadeP(l0l+r?kOoc|ef5>k!aS00h?j$QIXp*tx&IqnE6DRg-+cTDmf66(ZAe>u z@8A=f55lY`0G_iOyVedJ!mP{q+2luzG2-3C9#IOCvGYtEji8;@n1d3?(dE^Ro)Y5b z5;7Wq%5;Z_X$BU>Co+4+IL2aaFM-)DP_4HdxiHi5)%(7BOlA5|(Qm!KYlGI!nrR=2 zx4M14JML5@ri`i4~3si8b*(cmKDqWsV=A35ccc^CP`w(qdsnU(zvj#~!JcMIP9qD}KnREK9%<-N>CPdNGT z_5ELp!+@6f(pKkG=+YkuV+YFeaNM|wXXR^VT7orYF>nyRh>^7E{9&z}WiGRH`_Z4Z znz+z=p&5}Sk5Fcst<;^vaFvIXId$C4b=<|uaOMc;4q_7zuu%G?|B}I(h^u$sF>9L) zG{6K&=J_I`+AMwosS(0?%Vf31^Xo(;@&DcaC0=D6*#*8VBMa(|AF$<*oGqT%Jp2R& z!h$e8Ka#T4E=WNdBp{(jlzY{Oh_rpgb|2gkY&uT#5`Q{zx_z-R#xkL_rdt_uTAFt5 z@ARl@sbF;4MhP)$4dIA2X~YB>JyMIT{nLqTtoC;f{PDwU>=i-l><(-R7wj2ee2qK% zcc-8*Y8n$a`Ve2EC~T3PmKO3lK54PVAT|(GrdKxsr59%o7HFSoR_DS+cYa{~qd)*# z4|ec@CG+Z?l)XuQUS{9?VLHw8W+U?q+22pTuX745dGBtXaqG@Y{P!^7+c4lGQjoKJ ztjjs}td!9I4?F6+iN*+xy7Xb_McfN-%-77oZ`0MhlOh}i0$*F-&mmn2JI~@(Z+2W0 zb%N?2BBk(wJ-7PK7kX7P`@IMGqsJ`OL3ol3MS!U796y--GD3zrF(mkJhgcEJj!b%F zmtbwY=q@!;DN##wG4n#phbugs;8mk?>+W6YV*Rb^s-&+4!P@}Fa`a94*h6BP<1ld6 z)f&VuzPfx{DC_*SFw{~QxWeuXWewb;~Rf zW?JW;owhg+F}*w5tx-tA_JUKB#j!2o5!b~g0}f^F@cp~%TS0c;2ce%ZfnaMPHJ-eB zdp0b;)7A!0B%>tzkAj_PK_lUoeAQF?mX#3OUEbOSR|4^b47ADG~QhT$=2J^zzTM#p~WW5NpZyaa=~E#bV&00C26J8?yAPbdA`TuJHRjuKY^<(`DJ}m z&THvn9~>z92pOq=@+34$RK8!(#UX$RmjncLT8eu|WC8k6^V4hW4MZfMuz=u=(a~1n z%IU`-%TB!N8`4inL=lwwYc%&)|EN(`10AL{6bb+S1%=!@n}+P0Za6P_#>zSyKz94N zPJg{;3c=#N{FU)Jdg8hD&}=+2Z|0+6oZ8*cLgp6s*>3m;Nc?@#Q46=4vx9Zt+2oXepcp2cH`L z|KAe`+yyj}VTkdBkidE}b6UH5S+Z$*J5fde((|YxO3p~X zZ%zE)m>W9tdX+b8Ll@?lKBbWsrGOz*rK7wi1{#1Za^|(Fu#_8I}05p1KlQkIy z3Fl&DdC^}GQ&CB{E2941D)hN&E;9GW{;e5aiS2tes~SpyYmi+tmY;%=?S`UWob`8W z|4r6I$u)K69lA zsv<<_37}e?t&HZz3mVZcOCU9#gU{*rSm4KD>x3bt)g#$4RKk>3` z)rI$BKNu*TF$qB^MI5Kp1Tl(osK!iMXF8mbP1fCAFq?BQp(LmzZgJPp;82XBp-M|I z4>x@E>ab5i`tHo+`taAe0~biO5GpbFHy>f5KtfM3bvc@)_4AWNXxIM*2>i1R=e@=H z2uhToH1Oynl&`rngBV7-8x_U&ogXvI*VbFRVHUTA?KEVwg6e~@?Ka7wB}A0ubUwe* zEXzTDjQZK*rqU|waM6=NDW@q&%^~7Tck>1P{_MLGU&tHqs1=1!DVxv`@!R0Cjhm7! zipyEVkHAn=**XYQ;bN|l-0#}na>^fakq*He`OyqoVF{JgLk#zW9l)Cb^e-*&bwykr znA96CDc3n5u1?#RTn%a5W^JxoqlL7XE^)oYYRB(DSqE5ECgEU|{F972$2^O5+5rp2_$$Vn(FOb3mnjN}sDm%)Y zbCpeyy42-OFViWu596_zaHlk|JVZew7JExR`ekG*mnU1j^Y5P8YRf(y-xQT~y4poA zk+z=1C%H@w&L%tg%q3!SAAJ8(MqvbkHI9m-8UBM3$zDG(6+o@1F++viGLGRk-{$TthUhk)2#b?YLlVUHtv_ zWKZdX!$=ouaaXx&nbFPQT*SPVdvC@J=1s1m*^PGsqZ#Up=$l`;*r6u%w(6GVzLxhv zW1@pKYTpzlw$kV!lM4*niw~(&F=2a1rS^)*!7-6obn9{1>Nj!{P}Mmp>Ogte%C6Hr zONja+pRj5TYB_eQ51-!MEHgujGtt;FWL9pz2R;GT{HCIGUgMIm&Xm-tkqnGq#-S8k z+j|0ub=*t7OZduXMcRvfwVs7~RnVQsj&dSMpAKcO;X$l`bDZ|e-e6>3tO@cNM*xde z`7!#};9#->z1TgYuI{-2^N&EiF<+$U>XG~E$rj4e`s7n&x)${Nb9h52y|lo7+0QU- z)c-e50Xwovdez&k@eRlobJpA%BvHhu4%_Jbek_aGeDC0_xm`wGJn*AmryT8` zJZD#Uf!4`F6}f#@>HUoT*%|XQcb93~M~E?9mP1bU@00xnm_uI0uG>vT+mv{RZH#;H zp0PFkb0OH!Ifn8>xNdWn;OR}q(*=U=T z+qBtLP;k4*cBg^1pl5r<+io1F@erciX^%kj0j5ify6aQIRv@Ch@VLAIqukh^Nk`+e z-e_Hvo!08pw=9jHm~eux@Eb3zO7WVVQ}(q#)NFjdD*Ia5K zPIVx5l%Que-@BF&%Y)PqiP>v}WEbopdgk!fYseu*#M5`26UeQDF-Yw;SW|^^{4pxA zR}jJu{m_^iGXrpd3NQ7KVM7>|DU*($U4#-6tOr3jyEP7azIBv-dVRZp`>##_OOHpl z8VF|1NxoE2kny;L;ym3~ao;_Ps#o?7uR4kfU%t&=2NflF;*M*88e0h}pm?4VtY zyCP!KH#Li=AO&^jl$e3n@qct$*WVc>V&g_SS#V(&AreU4MPU25FuhpJK3}724sel+ zhoBruTt6WV_9D!bnO(6_DDV^`_!4jCGTm)d_NghlkRS@cai&MLSZE3{8;xddbz%ef zR_TBUb9fz0FY>}s)^=|WOloR#U9VlsfJaKUvRP~2Yx9S}Y1pa_ExUR%Bo=iumm#x9 zSTT!V2+ME{yr>c|47m{|Ly?<5lFKO6E=Y6Z3~HhA512!L1=NKotAa3%%GJUfP@)a=#!+1!3}xnHI?0>6 zBR+F1Lr%f=a|^H_4E*Nx6($BI284lQM^_gEAsDpU9MClWpL`gIhG#3TAqyB6kUqYy zu=m)ylf^TLg+x>_oZ7D6%!?8yBs0~l? zsydGi+f4eoWo}}H>*ZI9W!`Z&`*bC!n>1AXdhML^mcqB3OHt-q1O*)7WI3&t#mxjX z_o5~%dSzXgaD%SP$wD|v)#svT^Ml61Am7!?!rrc-SE}!`pQ|IQYoxlb#P7#)SG@O( z580CCnEdu70QsGDNOC7XL+ul!s5CvEzy$Ucj_=M6{f$Xx@Xq5b&v)dx%dsD(1vLJS z$dzLVGN)App5cw@4vFEMbUAIy>M0+#pp6@FL2O^Q^aZ1)-$3EUbth-*LvT$O9DPm9 z3_GybDc+(3PE`tR*$bhUKt=lVdO^?yz4?Y5)8=oRGm~{jE*JQYoz`(eo4@oEMLS4M+f0rY~S@>cHa|Z`yA^oesp zZoCN(l%x;(ESZm~tJQ4DJ~2GpM>ToEH;ln7j9gBZ+*;S1S%=+_@jkc;gVHs=5`USV zYU2wVmc|%Ya7_!Qpq~{jr~033nVYIpnv+eiZZRvC)zh)DE+xq~@AomxYhU^vaI%B2 zGpzjNwE;&i(fIVzC4*3n$iYTFqM!ke83p^&p95SyDA_)!i(v$uQRW=4#_l-3MleWH z(nuSs$z7L`scj64P_ZRA%~(c1)_Urp=k7Je%2GdkrSIx^$WOLH?nlaxRl?)(Hc9>D zB|&r?wS(ygUQ5+PSHmRF!H<#}4{M@kP17{)Tz=zI`rYPL6_E*qONk#>WEj+c_z%ZX z_%$0P)=*nS7t>>Wm;BV>R&t$`MW z)AbszC3sm7kL!BcimhquJVju+aC`=}>8y#Hj+!D=>q8ijr3hsCl zuN2$|SN)x)yMS{z|tiS9-&f+3ZDS@t@XX*@unAeWWb1b5rx2~#*pPGhoJ5Znt(SuuPMll97K zO~txnv8|_+GI;VAF3-Wo!YBhh6frj_Llsjth*9{%N=mJh)dCP5(AV;Wd zNrrbD@2wI)jCSizq$RGK7jt2q2B|N@X`ax6@lEhZW@*Uve`OiTI$R0#TB|)~| zvIt}q*8+!;<1Ie72mo$23uu>3r;dw;`PjTxJN)D}2O8ycnn{?v&}* zFp5^)rO-df`zqV%8g~R71K$XI`OYg7lRzKu`W-Ar$byfEtPBAXC=DJN#E~%o!zZ!fZ8&OvmEy!v5`0V@yJ1 zpq5rxT@ub2l)$6R`H8Z)c|RwyI=Febipo1dSCZ82n`P@zkgvR<&GOyXF%po_3En|+ zd^J5i{xf>MP@}r6^t?0m-pdavLEW7kD}{>;RUGInb1xF1^|M~krZA1&%;9A>1B|m>Oe#T~!7YMUW~W|yG;%#RJLcg2wE!1dwnseOP1_xVb>N-<+`|E{s1 zq9I8WQ*Y$H*UI6WKZJNe$umLW3hqADSapA?;Tc{^W}j66YtTU5m~j7kH+$EO1N-;ky*EHCYO0lF2Ej z!(@rV`e-nYbXY?19{^D*s0Y}8K`cS&I&@^B1yzm*Gt6N&Ah2=|lIQ@Eo<+ogzV^__ z(9t}_;U1*ecLrTZbT{7;f=y52yN5?KXvR>ufwB8NpSz_{?+M!+&jogt|2GEwHDxY~ zlx3j7!1{voLm6+R0HeMtK9hBj&*-hr^2{&tXN)Q_4rkHbT>r%46|VIbz**vLeZsC)mKz7Ulk|Q4>vV%PYy1 zOFOu?DD;j3Nj^U6o0$~??@-1dtiTb_J9;+`B61*TUE>-29x{`J$-in5%Ooc0w}20U zt@K1Y@7gSBLzdkwksATX6fT%QR0-Z#rpK!4x5jq1Gr;QSm;u^vrFf~kt!`sW*C%pF zMbo&!$Z~{%h!P|)cnoTEo=0x0$7H$fc!2CqAB;MZk2+>EvRN72@y^%WLC?WYZ9zPs z`2q}wY?ITiDess8Mt?=h&rpe6y?0>*k=*0&U z_X#R)qe9^M^=ZPk6VtC`b*Ek2qM@1kf?)Mta9sr^-DjTJvq$rfBU_aGBE7MdBQQKa zoMBKqW0eqL1qgr~K9l+X^qFX5C@KvP7f}WQqre}3E7@1%_%_mtLykWkyQ^1320QoW z`Z-rc#9vd#r5AaB;HE2#pXn6uIATF{kis6LG5MIVDxz`Y!D?7;{VJ$~XV=aKQrViS z46SFxfb22)wrd>jkQkK|eU*E97FyqY9k|34(89~Q;q?E?`_7=Kwr1@i2uKi6$shs> zf(jxaSr8FL1(hTj6p@?-$w4v_MUWgM#}Ua%qM*(phk*ek3kX9Fl5Y>b=NxZ+_0|1* ztFBd2)XZk~n(kgtKi#`mH-2;|k($&A=IsX}DF%|f(>p@JyT`X#2FfWNmv8WUET=pg zv(Tc9xpL!DvN+xBum+uvA+HscCqlWOUq5&)yZ3kie_+2V@3kMwC_7ownkIkHNtAl% zt=EX028?JG-WbNi7ez;<@#QMzp!_;->%*}PZwg|cdM&O`iVR_Y7r>CP&5#!&cIUdA z3)I;XnQK6tk^Wx6(g__`H#3>&4cnClA3}LshR_Z!a}ICbUgFfgR0(6XUEMm7^>_QEp`e zPvGqhlN_hV)x&X>^R{>_Quxk%c$z#BCnJP5K3%P9{Ht4hW9}CEHNLG?CZ5|azVe~b z!Y;aPLe;(?^CHS_E5O*BD+!TndF;nJ;TsN$cxe|z<;8-@hh)Ew`Qq)X1qP7I&p!^P zW?Yr?lITU&5(Tr6xgLm8Jq_wIo^T2=vm8Ono*A7+MQs&#RMt)Tu)4Lg1LH5P9o{g=Dh;VBod=1R}3 zYm6$9$kP#PVFmkL*JIurdYN2ILR#Z~mV@ypXYZdmjC4XlMzR<2 zmsejtAnw}mER;e>{zy*3CX@5N13Qg3xqmoQip<^wG=>hN4UcI(*D^A|b6e|(S6TgHv0)e$&>gzwoY zJGy^YMplT;Czp^AkFJo;vh$Z(eHT{xJKk6;ZT|+76nSsuF_8)t60GRFmyUoZ5rS00 zP09JKtF~$Wtu`~Sek4Bk$Y*|aSMN1v@w%R@Qy3CqY-YKqf%v*ZwX?lhQpu<;iD%|F z*QdlO-*teAd){RUVW>Hv8mY%@`nHY?lhyCqE+nBzJ|EYedCn#)>`d}S`~rrZt+zwy zLEt1W90I30nb$!~h)1z>s&#zyar06!^9^Doo!XL4$XKhl&80(nd>yasGjQs`U-oY* zO(pX!ZnjEh_?TzFi*d$6@oxiMZXc}u{4x+xyQFkEJf`K#1NRK#-#2H^H5RW|HWzTk%ojH5SsdgZ8 zJYUYO#PNj4Ay>**1JCL=#!T0#ez~zjLMr8g-jddAc+{oWC!+<3`Ht!G)zsWUMym@H za=s$)Mp+B~i@sC&8PjWxSSum4i=f}>$LGYT6&tXB_{-+AmHZ(mjo;BeK!e!{fS8qvw z_%d&Cc!tVcS^NG|+A9y_#*TSbJeMx!3VuXzgBs3`i9nTqg|TF(OQ4MogE)0Gd9&bE z-aLlFu;P`Qa*vmtlJN-21L=tnvuXJ=4^l-utX;UP=#nVNS#oFa@?MqQec|RNhUT=q zA*sj{i1k58aUSwoZzbwr$SDO?6-b#0)YHB3*_P0i7zw3A?T|9dh z0o@5(UmYW3MvL1{k>sl8`K_sY)Im)@Hu$I}^RG^1Pw1|+I@Zy}5o$|RmdArt% z>r$Uca(CK#i(~W+D3=~?)Shz5omUMj(EU5jlhJ;#zxzmC-PmS~lZ%T(K%mDV(Rt(N zlW%XiW3Ic2UEf>2d76eM^``%cfg%I{N%xj8*07kEn2F@|btQN5qhvi)>`@|2+-@aV zn09ChF`JyX|fYh&;u`TM70)ocKCMvrc73K`oT8(a{}4d`MSnsv+5AtL^-? zGW=JFmv64Ks_yo-&b%Hoo^-`B)odYM*{I^kp*e!7p2tp$JuTH#^}WwP1tZuZNXSVp zO?DlDet0)0KR>mXm)AhCQCO;5N0Q_n`4zr*mqkSAFKd?6w}ddU>{g6eR*VGi;^wg4 zVd$CSPuYp;-_w>)VVV^?^{YiWy-ho&ty|CLOVz1+h5@>P*(aFShA$xPYprfu-XXuD zAK$m_azcg}NuV?q;&6L+R{jWyzj3g!u^IQ}(m=CYonbW<6`#Rkqcr%=?iOhuK2YVU z708&H<}S4#iOewYA|jyhB5AlNbrR7!v|?DF4CGK9vrohe^l`24zKYVn?|qU8yA)^+rGGgs4YhqY)~)%tEh>q;|p z;paBt(O`IO0uBpq{1|WYH-O&RpZ8lsnEaDH4jAHvty;P>?%7O7J$?$vP;szhw_7BI zQ;o{mr||*7I(jPA+BKXd;c>8wBg}^9gJ?2I5yx0l;RDMIr(?`*@Z5;hIbNWr}kpJy7PK2?svBuwP zM4z`OXlOfH!0a0ml1@o#{}U{Y&@eUv+PPO$h?JQ2k*>{j+-~xtK>fUYq}aC<8%wA8 zk4N!|3GCiuB`k5F3@~$lzWF%R+9WPBF_6XZ*|QXd_-l?EeUI@1T1UHkdTfR)%Ew^< z%2w4P2!Q(3Der{^bJ^QHkB&;WmAbe)(Eig-3%_l6U9@k$N#JBx_`7%hb%zH`u=mj~ znW;P%N2(2A8bS0yWo0EanEx>D|1YU7S2+<(tFiX3$e@*7TpW;j*FlPB>+gam9QfTiHW_?c(`~{W0)oKs$7Cv{5ut2l4abd9d^-xey&=r?W z^AfAkgZt!vcXv3l(sog}mJT5ob|xeb@=FC;<#M2bm5JAU6SG}u6+hz4+Iy*vuKdrB zsf3B(<1i12qUn>{F4QuGofQx`1^c}9uULW0zUV(M_4(DxaLN%+A7+5i3z_!D4xj&X zl?lZO5#;~WeIE%ugYw@(aNG;rSr7kxBo3b(ZcF;V@dCoA4aDA!9zjGsm=((LcNT8S zTw0gz+kEpXA=2WgSR&wCj_y!2nU^pZ7cn9{DM`157b(Yt zJ@3}9!V+=^4U5{jS3`B%d}iYUfqvcdgKOiV~fF6iYL7}{8%><0gzt8stCbcW;b zLKwPiy0L+YiprBmHTUh{L0Vdx)5Nal|L+C@ZVBJw?H(&dqst`T?ZX1#lUpIIKYDK>UW)(@=P<$V{I>>fXyu}6IJttO%WWo$=%cnwF4Cs z#n=P|PtVQGIsS+>QryzIs9M94wYTRQ%pgFd5GQy;R+g~4yZegkFY5(NDe417^_o?q z&vC!&GpjcEp41$2>Y+E5zSmN?wQsD!uPimE03|3d zYnAy7Vdb!xQhxiNy*>MzJQ6i!)1?J`ju!Jwx@b(3nbzT0X@SQwreC50c78TW~ zo(Q^F(wFzxEE(E^(9+UoDkMp4->+>`ZW*%q_U&7D)yt(qaD4D=-!idGzX87he5xkU z4f3IEwSu^7mct@V+Zpcf66agxdjzpR^N{_{TZ!RomF1^+}lGmzVF7@NY zU8&7$(UYn0*^Q^Ma;jtWu>03gnbX?y%MudWOp?wen;lYz#z-gwrlqIPZc7kd3;r}3 z1d!)sF;5Blqd=Nr$A7C+>PW*wJDKddXr-~zR9F=TtXNY*PhCAbBO}9PvNepa=}{C5 zsH6{JTz9ZzW}^ktsj z>^t}5<-0f)6V!*JqoOh@M=Y_C53Y9!D)byc`&kOlO|+f|&DQoxE342uR0bB>H1!B7 zxL`}sCBRFX_!$MB2dhDN)w36>Na;Yw`<#|fHy^LF%yL9?Sgk-)2kczE%CVnz7ke0mOrH&)KRjtFf!Rli zi{&a$K!()1L$EuB-Zaf?UIfWf>JIG?BQ4x;8z!3sT^ekBCE{PI!eMi<;)KoT*GNHbl`rd;XlUJrRul*|TT#?TG^e>Lr#VRTU3lfz;q@ZoQ_Z z*_s=!6p)dT3EEwU`_H41a177Cy|Y@h_?eMW)3hzywQK#I*Pk>Jo;!CACVJ5VxV#^a zhzqh!_|X>cpPqiMH}5f}@TjZ631*RpHNi8H5t1&O`Ypi>6^m8#mrx+$X9v4_njS;6 zm(=wK{1%iSA&V6OVoDp$w2Z(srD_UsGED+FviC!m9e`YK+^Q&~5Sw(7Kn>P;NRg6} zQPfEz?kFm@RN2peGgdLY4X$~yW=-+M!T@y$lQ6Gk-QFtd5$GJi_{sFQD0+eCpUT=Wb)4r|l^m=!+8CCWl8SJ#@<2LM!;hQd)36BCN4 zU#Or{T#EY8KEGn&BZ`WJMQ7N37h9fYh>8aNx9)AP;nWUE04CVF5}rXe39$V`?(tR< z0!ORQRES@$C!kD$L2l|F^zrZs2%N6R!l0}zDjFJJxTv{Px2yep^^vW%<#YhyvDy1& zMW#ov=3r;u&kzC~-Xu#*2{#y&HAE&)0a}4u7&&JfHfFrj)jYbP zpateMd?>W9U+V&Jq=U$=9 zzK@q$d>t#b_*_|NDC-^A+$>8-M5M_x1Kx<3o15EEF!$pV;Jm*e)Zl-)sI8Kt^x13_ zw2r_PVb2!ORr}o0y%SziXLca{Jsb*tA9N`_9Ru%Jr3QyrTR2dA;6^6NZ->b}*OH98+>UCnpCN zCcpCbrkLr1xUmR4!^B$ldzQ49qi%Ha^76B2WHQ>FW?wt^Q5q41J>)a(V0T5vUF=Pj zkx@~;5S~?6bR>w{JycOq*$b21-Ndd8S=F&gN!3+!CDu9wVUJU%Bb}ovkILYL3z^txv9%kg_6 z_k(P4ibk4btif3BA8neBjuj37ex{H?>El$0OFu?LWD25|NLwmr2V?^uOn|i5_ePhh z0Y>cXh7wyAM@XoYK&H?XazUElIZJ)X=%P2m+vySJ9^c)zbQF37aTyQI znfAoeU%wpNunuOWX6XLK+AZD7;^IRe5)Th{AI$e;h2ePKc}`AK*b?Q@$;o;|OS9`& z%m=Pq77|j$F=HO+SwX>c?LL@|!OAL7DYNon+t;*k02cSqMiNZfkN(_zr?ok>JQ zgyxGEB@S&uXk(DF-}Q@X`JL_JOA@%1gZle9@5fkYet()Xh83|G{P=mL+VqGFn_xyg z4htY9V+^*gX>6R`pK^l$o0FAvReR3_Q|Xov3f(<676z5`RC3Tcvg`b7U@4ETTZf&)tGtO2KW>UcH;{FA?>C|f9_ H|LVU0PlQNk diff --git a/baselines/fedmeta/fedmeta/shakespeare/graph_params/result_graph.png b/baselines/fedmeta/fedmeta/shakespeare/graph_params/result_graph.png index 9c4661b71097b9347e050ee8e5dc5ebfcc07af31..b77a4cb1dc4a1bfee1543bbfe7bf202d6a74816d 100644 GIT binary patch literal 112802 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

  • 9{&Q#~r6(AWgm1BPaX_%Qq1$^k=Vs3ts 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%0DsqV z;lhXHm9A5FJSGMnhMr+T6a?~gzhXG}K=@xzeAThrXBHXGjTxQA+!2|(W-s1;CPt49 zVW{r)Y`bQc{+okPnGxPwir8h>Tr|!=JjmD#`86%hWBv@kH}^?{OVg}%_6ia($*V)+ z`AFAGQ<!}GGAVG+; z@TvIuuStaNx3?pSMrq@y51tHBxs1d+ZOh~kw?^49OT}r`s#>PHOAm5*6~s&7pad<0 z>uXtWSRDl_92r---afqm^{RIwtp4p2+3ptL=|S<%l6_B}#VBG{Euo627qJDetbbKg zGCz?$ZDONu$jDg@&5LfY_go1?gZN!G7u+v_n0k)-4@rH<9l9^6rL;*#MXZcsUj2p6 z6zy}$d!``rzGw(Jrj#zekQKtG_$PFSUG9IxGQ>l4@1M2ZAhv{uqScR=w$#I1>jV04 zR9!04zD;yer-^sqa7p%IWhF!3?n1rj?w26x&9Y9tFga%5&pR0W29;Aw zd`|B|Dk!_pUSc?$v`V@>MZtU}%wl(NV{1AEm0ijf)Ue~-v2xa++mK?W?K$O@>Bv>) ziB|~~*Q6ZW>U$qYF@)_imdC@&2=NQ=cuZw~MvV2$oAyDxM9-gYcUI1MMeFmAcW;lF zWZ2>ihV}-mVWZj3jf@EhP)?L!;)r0#OlS%^2Qgfsja;_W6Tv=ANyOXxqYIJDcqTvg z6YF~PNt<2X=}EyAMdRuVnVJ_lVYHdacm9J$$c5gI zJ)HCb%~eX~OI0nB8DkG?d5^z*vnkHY3|EkT zDd?`iUKK9vFi7nE{sc54WVaCzPi3wBj`G3q57sLRECx9VIA!gwt%v?uEeXN;sb}y8 zs>KGGjjj>+)dB#e9tk*)*bffwH}8rCuW1){f5CeVjfIs#o8bgKM3~5=%@%(M_=keC^Pf-cos6{O_!#iOc{Y*fc*toIQfc2-Ko()c zO-JL=@9?gnU+HhVJ&>Jqz2yg)B6691!`H`Y#+OX+K|Nb)s zd;*2|+6CPU?RM{p0@j)YqgLkjAJ!i(CKK=Guiy3@-!f(*rA!Pr#h|Lb= zfMzfBi7WFvcxw93x}AK?ZwkPh5!SEH{MDyCMn6D-=AMefBzjS&z~h~(YPKn zAaN3~!+g(e)aIJ>`(CWAe4h^0Bw}UPGv?pDE>O5A(iklnWx67-M>b(QB2@UQC~J~I z(gf_vI(OE0JbmHfHUo*>L6c$cG2A7Wk@bm==*kQv#}Y^LKdK_GL)JifJQPnbHeYAp zRQ*cMF{@(=x0P9<=Urn)pb~OERie z%5wlhY(v=_a7;##jE#H!M{MKt$<317sQ>N`x;ZZ5tB11*YEVt4lm~L=S^cKE`^Nb; zc+6BG6Pe-~&9#X{n<_$E@}?PoF!`D>aG*-p2s8G%g(k0TD|G3Fe;6U<&H`seHoAYKPk{CD2)4LI-8o7! zOvuH#1!H&Re!!ta-*ohMol`j#0l|3=rW2FqlPfG$vq1Nr*asZCm0XvXm!A_7LR^t! z+Jz#f9d|&Nlh*X~`Db}=BOS7X z@sXr{t3ifVNL+_bBaAuCmkk7iNR&X-#0fD2}Bbl?8mH_?#Jc$w7gVtpOlJT;P75e$ZwYa-Wg_ollZRkZaQsxMyLOu zF{FCz={EoMUCRob^-|R4$v*qiPfQ0lH-3KmnUG35*DwMiBBFA;X$qUM{1TYHoE+BO zyLX8h8KZV)>r5|>x8sqwNEbL`g6`#dpDV@MopTLh7z@YuEF=S5L?(TAfV?J@WEBtE z9i#PuU^`d?+H*91^7LD235$`37*js+YtkoQ%>NKb{Sk0tG?bIVbgRJ*s3w%O9Q`%j zlpOwxqW-~y2VK3rPh~AlO-$Zxjy%|~`KkURaAP>vbgterLCBf?0EHU*_L7uN#O?Qi zPoZ8-ARymsO$QSL#3v@NYOc>+25bg<_<7Ox!k+Xm>(hJC@&x6!B{ly)Eycp<>5WqaefA6xX( z#d4^k1IE7!Sl{XXG6@aM=4n`z`yX`Gzedwupj>k;8D;(oPtqdmw43mc%Y|Ev<7l7&CnsK7TAHBGdAad57$ynr z!~Myah3)N#Te==_kTV|ist}{Gva*V7%9f8Z81;SluLinHJR#rf(5}Zz`a5}&@_%!R zTVFN8lJ!e$l5o-~R41}T+@oE`VmxtB<)`Ev62$AZ7x7$j&R>6Bn~95yTMlNR#d8f^ zJVhW7rrlrIUMMIy9Vn#M*NfWD){?U+D(rmQ0tCj)tgLN&xwjJo*x?G_dF*xm9xmpl za+b?SnU@yN7yv1HB}U_z%glmT>SqPXWvf^Ry>Lg9r8V&ZQPdp<*q#)h?F4ZI&9fFj zI^?+VhfVa7SKIqmw%--vT7W3gAj=&Q(%@IM#6%Q`&{#4Yw%-_y@gw%)PMDA zqd1zoF+dJuC~k5!D(c$X!#pS&bdiA~kaKdk)T_g}MEz-EVUJBa766q|9$@XF;MQ5; zFcWcF!4VZbG&=Z*PkB4#QiNUc78e(92d`0N5V1M>i?V&^@8Cdb2Axb5hUitmKeKv> zVG7JXUqB8A_L3d9=aCdGIaWz-+3s1q-*R&S8z33b24{oRzq;>JoFj*~BF=@F^n{e> z;O$+Gi`K4&(K5FQ_P=jW(eDF3xxU{B+Bb50VjA97UXFEn`UGeelf#jmk;L;ng4gwkH`_LpQo z1O-u?y7Ctk|8s^Flb#+07^;{A1*!Oxw`=Pyyu5^$mX{q5*Hu4!_@MXoq&`liv-8;| zm5@9=<9MFw3XN-cN_J$F&B$Y?{s=*F(7J1>JuDNt~kKU~Gl2k9?%( zL|9p6uAqWa|K3RF3e(GujJ~}wQdqoDwX;iT{Nj|1y|h40lY z`1m-bX=mieqN3f1xwz!J|31WdWZyADSnlsbHczYN=vfdmpE?oo+&X|^>)-olq-6ic zQrd4@+yD32|J(Jf+5fTn&aUg%J_=`)U~r#t#14G_o`jx0fhm}n)l^DvvL5{zxvH(LO~r3Z z#mvG&LPqw%puubLaAP>gjtsG^R%xp}yk9bDd;53)Y1E~5i3w({D>A6MS`aM%zf(oV zi}i;2!l|EPu_?xXXljxGT)1Hk-X}C;LVnkx=SRrk&!34ueEeuUm?72G)y11%_O_RT z&tZ0taciexS!fPw-wxg85 z+g#jV;1#ZyDorGI_<5tueQRQM2C z_B$~fZP52@m9q5!mz3QyGc$8)rpCGA=K4ap4p~@N?zGxtm6(_q=_>5Dl{flBP5$C! z-mfC=p{6zYLyeL1<87o?T6}y?ds~|&5Y8|dVNPGtGey+N$#~A|RIdi{wKqT)-*a-T z?WQY7eF37f8!yzKN_u8fE*C*#ML@&HYs+%)o)oQseahm@l3$%Y$fR%5dF?f0SAc3l z8u5!W6oLRb(~tO^V-;lT3?SF7oRj*@hmUvXceQc_)1`Ox=EIiGT>;M^HxrYj_gbPw zIlYLRC8O_Y=Gw-_4{n|E^;%y8Hjmj1)oi&b&{c+R0CjLs4lKg%@^oL|U6K7Ai~f`$ zh^61nRh6j$Shg!jSmd-C&4JvLf`fzI0G8;iR~A2$!N)B=E2Fz4Gc5#;1HV0@|0jU7k8B4fAb- zr;oL?wi0x%1FIef$i^u`LUo9R^dU16RGC36gNYd3ek;CsF$jpl#d^odzM7h`dDOY@ z+Mm(55+-iUHPpEwKu5;4*+)Q>iAB4zu2(eAtYbB@=)8zss8){oiIp9NP^DheJ{APva(dl%$06|##bIg zH!fX3U=6&$$Ako`&U!+6VJ0y#`spf%CUFtph{-y49?n}p9BMh?%a=9ukwh#aBD7B}`rF_EP|(4P4&`uy3Pvn6zXug8v5P6V1O&1s zCRyMDA72_+JU#Ljcrq|BXw|tDn5Kdi9NyX4S@JrVkiOXa#9puZ-J-Bh5>j4A2Xv35 zZE0z_gS!7J!N05P#mFyBqTPB_q;XzFHDmT_?^hOKVVXBT)td)1r5$%>ggT$N5>nq% z#I6mbM@hZMN{qjipN9|6Pvkfd$en2;q@Dx8s;mC|HU%pi8>XkHXAlo5#Kgp;*k-(t zwp>#n=<*UK3eJXEPL)5f9?RcI09JMaOdieA(Q%^mEqM5P@qusKZNZiZzA+1WexC&MoG7ZXL?AN`}I z1`0-qgw|$v5K%Z6uSy4gr#~GU8VXu9Ffa%S3E|CGE7TJj=AS6t+uO4#y%7k^&*u`o zxkRl`SMh*oh7OeuJ9s%#WXK3~tJUE3OfHHcBIdrb$)9g8A)ihjZ%&l3>@;53$3D~~ zyg1qI4C84G0k2{Vru*LEp*rF-T+`6!*nbb?Pn0wYfRy z-F~A3VwMO)*O;nSY|mPl8iD?_GmCs&@E? z+Wk(K?Wu}r5G#K8fbly`?4tIHWuEg@GCu)mqwri$FU53j+xMEIFft{D?r>+87A)8? z%Hof?Zao3raD~lyP*fBVgU_KVSmdtbtwVLFcItM;J3&28g-V^9oqC=M+O2a>=C`}G z@03^R;`G3my-!b1H@@C>BGlHO4b;X1?3mGzQs#bJym%f%-Vl zFIS-CLK~GAxCWG`r>7afn6*mHLQM^PeZ}Lsv;)6=`$k)BF^;V?%nLhxcL~U0v}#>` zSgp(brFP9Q>;3}q2f+=%_@jHvJ&#_G{?cq>zwlw{?&^YHUtOq{n!V(+9E8lx%>|(> z0Co^`S_uJjSwC{%tD$e``nn~MPWy&e)y3JZ9kz9J(DWw)!^qdK8++Feg0W#NxE6c6Q)iN4eE7018k5>^oO$+c)T(TyH0?CZH8IrnOB)7G@UO zgwAmHfF-Ty?EKvNDcFK`+nUG}JLqE3(b7uDju$EZh?NChHiy*oW_rT*xr9vx3>OCK}wo^v^#GI&h#c9U!Ba`prN5v zebE1sBP1a=IXO9{?>_rI?vcI@AobrF7HPsRQ@qbaav^ zh>0_N4!ZB>j8mRCca0wD4}V%aZ@2B1i=_K;yNo73dHbo9tuFCwua&6c$=e=F5Pa%n z%SDvmdQiFDKdxy0hr7KzO(T3t!;y4CSrwK;&%;7O1_5Do1%PPQEb@_jr+L;%IrPFV zFOVZYV%Bzdi*DsTAbyb_9~0vY6;~Y^&Q)eC0LGmZ6&0oNQ~g1Ka=Q4fdg*$fK7CpN z2#fXbiHOG0(b3D(#JsKVE2r_n)kc00&aBp_J9BR zu3$yV{;Jx5asQ{ITR1Q-%d_dW%TxjTnLIXjc58spl7MFdj`P`epTImHj<`~t>tDg2 z9lR|7dyTi|#^>PRzUJuOmuJ=a0{Hpr zmu^+z+VXOC9FO7L9>X|(GO+Mxcntq$3qZsrKo{2v=m-9W9UNo-B|bq2^Z(}cC8MCW WhEm{XMk)ySc`5r^rtrB@;Qs;?dG&n& literal 151963 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 H|LVU0PlQNk diff --git a/baselines/fedmeta/_static/shakespeare_result_graph.png b/baselines/fedmeta/_static/shakespeare_result_graph.png index df04dd94ffefa56f4220a0eb93eaeb1ac362b81f..b77a4cb1dc4a1bfee1543bbfe7bf202d6a74816d 100644 GIT binary patch literal 112802 zcmb?@Wmr~Sw=N-43L+pP4Fb~LrP4@)ba!_*NT+mzfCAE;4ZVb1wX+rOho|y z@i>X9IVstiIJxRO7{kfvJK0&;I$4<;kh&NRRI4Wz4!AVf zqm2KMV9LGn$Hjps2uDE)4@D9Q&ke{$$i<-ym5MJrBX7BUg^=^)qYTRS?CHIIb+dZh zd%ySZw!E{vO*Tg|`Aki?W}#U;mxK|aDB-#9U>^?IaSX-J<#9w6z(>M-7@E#MU*T-D ziXoN%dx&mcfGX_QIHHZ^3hl-J{9W$Cbm8*n|NPm3rScK&f6jNwLFTLK#4EBr z{-b*CEw~v<#KI8p0F;Pp+n*=B8{lfC{@+#>GRH|iK{TA5ZQ4Va_OvED~p^cSk^96kQ0gf>MsCA(>X*Q)?7QdUjJJ##h zeSYwWaB8hyJmB=|)h0i9ZFc_rRHJ`2RjTRQd8wp;vmv{hHu)6n(*pVvB&6Tqh87kV z-B*I}UbC4zOXsxC6^nWUCn74U(B|WPu|F?9U8en0rS#3#NT%UP22TdJeZWGaV|+q_ z2sl=)$%$rE=#gK*^J4vEV~}14lCs$Bs#K)>lc0`{g(dbCgNA&$jzH_p4jrVW1^#Nc zye%|3dUKcy`W7s#)j~t;?>uqG)h^VBn_Z^cV?Nh|?>_f84ULV*H@oFZ5I1|U5UG5w zjKaasRw{dm^CV))!95?hJ>D}-3ebEm!g1dD(-_1Dtj+=X1=!4uG^-_uI-EMhtui!J ztyG0ZtD)j-Z+2p7D_%|z>%GZHM(U1R@gyxdIX0E_i}zr!)17YVbz8OI)LXq8Cmz0j zeF1N@+7)(Dm#pif4tKr$1yeB!kBBI<$ahnP*i+5kuQ^{kS7ML-R|m0AA>|tx>Tc<+i~;Rr({MXQf}^)a9lba$CBk` zJp@EVd*@+@8LO(QDjFVRMv(wJdjbd)@oc8DUf$mQ@zj{l2{@mSl9MC&QHV#wX-ywE zYz%;NKQCz50A6A-T~?Y(3*rLx*lQ3t5-cmMW?4HrI#M{T-+;ULR4erEUFha;y6N2Y z`03dkf4}P5%F2g2t69Z!>!}iaJVvc=x@|rQbgCF6BqXv~{F1-~D>X{FtW*nRGyl$3 zQ&Y=kkTNnxpYKke-d{qYN8Dh+)%{`7B*F3p4vxqY#Ql0DghX*aoyU=?+GN;ZZ>BPV z_H#HeQC-Ip#UE0Y`khZ-zI z;_d3{Vs_k=o~tqMgvE)S^NV>~$Lka0&7oA`+l&3#N<;Cq?dG?Qt#aTy9@hh{v@8Y9 zY=iFbmDSabqR+({7mrtKG5B@!-QC^h((^agK~-t>t`#ymTgS z;`T%VEUb*xTB;JeuVXQ4HT=rpaeU3^LJ#aQ2L#JI;DwOegJzhc-kk3`ZVcci(W`f8 z+O~+!*IA>Ype(1FX6c{({SD%aR3dFR#QhWn6LYj;abqAcPx+_f+5UWTJhj~F;o)c` zK3jv^u|ZKQ)cca?d}lIGqt*ffyguQbLO`B)46E;hSDh{N;7>icEdTx41l%)Xe(p6c zMG%>b`v-8aV7|mA$A28?=HW4rNT)i!KLH-o-qA50_(lKq>DI=6Jv8ZK5L#Gsb2AR3 zmYR;wwJ})Lj22%frM%1E}-P*o>|)3o2?#i_4YizxJV-8 zap)tkg^)G79?G&Yq{hU^rMc`cHmjy_TGO_+w#M;EqM)GQ$g??a@ zun?hHZ!>HW5B|;u<@}$&n>HFsVS#{nwmzJmtm}KvQ9KMw$@+gf|2rka^4$NCs28e( zs7qAnfJ=3ZjxsIIor0AH9|J8hp?1Jp(O%I@)LC&Il((279sX1*0Le!}B|YcgG*1>y zA|$)g5oCMS;Hh$SbA1iJ*>Qh=Up@2YpEQrN;ev&aFBwZNx_5IZ)@X`U&JfuSh3ftb z9tIG94F^~5eCPQ0;Qs+tG@2T^u?0+8PznkP77xoONVg9UKgYvMF5wi0JmR{HiH zerKvQeKP;wZR08oxn#@%jsslx%h;GaKp))^c)b?2tX4D3z)$>>lkq?Z(7!p`mhELw ztMIEb9$ekn5X}>d;`TTzobXAfb^*Z^nEdMg{xFDcGEPqHz|mn4XuU7?i|dkmZ`L9L zEI7A%-zpZ$lX-c06@D&$MW<2%7uj0_o=!wWM6XhVEsLyTG&Sdf0)|U9g z-SzfZ&KCjKz4HopgU9PFk|LGTaBxFW1YBURGJ??Y6kEOA@9yuxVTiwf|Gro&bIy(? z7LWpW2iF%%fee5T$Wn+sc{%`kRGE&-mT5JbP2@jsZ*Rx1;t&+f0+BQw?D+Ebwq&J2 z_iIk86z|7}``e$Y<-}Q8S;~d-{*<4Rz}=+?c-FOy_Cyi<)TpI}{ia+e6C_{bzYDPK z$Xy_f>-PeY1cAE+q{{tULj!~L()y)15JSUbVq$76r)6cc1-(1B!a_q|yeB6oSKN;X z3yTHNO-foi(!4@LG&i?u)40~;uLq-c)7xzCi&R+P0vYlxKfjjXxu0uy6RMkyva^4*PNoW0NrIXd5 z3k7!eFUXiuT3Q*AZ#bmDYE#nFOM_d3!8~&ElR>7oz5pcjx7^%n09aB37#0iQi1Ap8iys-e7$WlfX$zV(>Rd60vsF`+P5*741>wzIl{=W z;60Sdrz(|1PvZwJz_56le`EDetU&x#>!d5zzz}em6GB{to>Ni5%mWF4v`PNAFwd4B7Wya$9>2vQS-wG8POq|C5Qx$w98c z1|f^b{p9<^j7%DPEHKmg-sdPN4F??7b2XB11&%*LWR4istGbprf$zeD4VmeG04E5Q z=sAeD)|wZPjHxyqMI!}xrm3tHAj_}7o+CJ-NZ8Tw7;ylyLq$igu4mAJ%t#(Z6L84_ z1h?^4t2Yw=-?DCeSq16PI&8(+*_qP!;qK=g1v&ZEMzU@SuQM(1$ftV1E)$q^vj7NF z0@s+=9}(yW4-^(1oex%BcK`VJSh-XK*U$U*LZMiNq2L~viX=x;eLdF?sl+PVt-<7& z)$WM3-QC?kCg=h)wU&62l9CAwnp5T(AdiB(ah7SWx0>zv<&Ovu6EZOHE{j?OfPJKb z&~VFKXW^8~v}XGmZEbDAUT*)XvtJV(^RY8G)PXJ1=IMgiD;t7AnFaVs%CVTn(BDk<{ zp3OyU#2Z_La-I)B9I)@}HKU!KYr#DZj*gCVb!znHb+b=&m6dTA85zN;C_i7%C6HfR zfRObu;uQlpKN3K7>;3T|z~uqZ|KR0yCo`LlrMa?sFo7+{{{a@jgnak`o&f8j2)=tZ zt5K@K@$utFwFWz~Pf7GEz~z6KPvrkJDEX)M?)PBTKAI}}905`WC>JHv)Lwsi`aBnu zU3*I{=@SKVYX=8ew3(kh z0K)Ef$GtQ<5N-tp1$yl!P=6FH@9)d}&K0$Hbu|SE*lBkv3REO)Zb!?SZTQoq6qi2% z2mpv0lt$tpVjiEIkc&qXt`8(eWc%ENfy4!@e*l@p>+8y?&*?B1&O3QOaK$(VO-@)9 zeX=zw2Oy+5sGxv{tpZow1i=~>w!O}Ni~HrV+l62dy=K;fD{r}Y17gt@Kp0-z1N^IGFp76pjbUe_DRF!Kl2dOWS`tB~^% z30RMhxX8l!fl|)Lpx5kXFG#$O;IB_M)<6Y7rCDbsoz58r%tXG@K-A;%U^oI4P6+)hEXPfpm~Zx*asFI z6prp!pei+owhHJ`U4bh0AlT52f`S56O|XjD*Vnhe8)OJjhs)=RpcY7e2#@;=Gqyj) zsxh4*n0zv%5QVeqQULpgHaaU-?HjyaXnE%>;@h<}y0c;8kW>9RC0^5LVxlnekPwEp zdhf^kgF>|%Fc0Ao5g^kXA;81KLrw6A1>Zm%`?Ly4O43JWAGo1i_xB)r|<=L}!7&8Tko)XtF}Gao}9wb|$=>cc&PNhaC<6j^%96rLoEi2!PU6 z`to2AfFZ(6KG%FePu+oqb^YZ4;<9H(EmOw=tKCkvXY;YO>$&L3pR?~S8_gLI$KYWRYD>Tm(YDcSIB!ZF}&fUmn*3u0B{j{|CiiE81G zZ~vqs?CLzhlQYA^AZTts-X7Z%>ic{jt@|;Ury9WpGk8bn{rkpw&$5X@J$39Onx`>d z$mvZVq*ENTgB^3^)8{RF8SJKm*xyNcfCBEa>}BmVIS8j<-`GIOgCp9{Z4lJbNv3Mu z2jwmOewxM?7#YyU27AiPfz3&CGM=J{8rL`=S}E zdCHBO8Er?lf2g>hza*?;g(H;rnP>3FMP1v&Yep-U!3>UXNAX|FSqR@C7T~2{Ohk|w z4QMmC*(T0s{rK=t{^R?#O<7?GXZ1I2GU@fpT)pW6JBMhjReUn5SalCdA<_9cWQ>QD zCf#-T>N6S}{^ss1wt2p%z;a&POfM45+3jIcxWLN}1%IE>Bw)J1Atbi_h&SHB=tjcw ziA%Teh?xBWujs9*D=$y4+svWTe;DI|`(NGGChi-ryMj$i8T25voX3s6Z?#Zc9$57I z?VBgtLdF;2{D&9yd&OV8d_ujMc3;BPNCW@Auc(7!KJzCq@6%X9>6d5qw0uoc{5N zGmu)iDeg6I8Oc>#?pl-*R1>}vQV}Bf2)cD!1P-4-seYt_i)SqMO~qO4xzn2~wWv#b zm>+%#M^~Z?=qEJ`g@oQu*PlBu6JCw1pSLV(EnvjnwompNeS+%^Y)&V;pwCb@nKG2^ zIC)i3%T(fyap7(4b2kI&=PCXnxMbiT5|V!FV?|5vgELZ~M0vj8p*Dxpp$dhxs0aRs zHg6B@=Et-vwSm@`QCl--GR>aHZQnl5`pSf?d)#Xy91~)fq8$Rw!eyz_r&MNakducdc zulr<*|GB0|N0~pDJGPCV68aFUFI&j6fM926fBH(7mE&WTs{blez}xnRa>T)dIK1=u=Cb1@*4ZNK`+npvdqm|E`J7*i+6ffh5Xq&}%~DCBLoQoPCA0?x^P>r~RvAOhL;Gv-td{!eO$@vDiEJ z<{}R3@Z9&d7W3U`zp0nkwbq=G*nV4o=1Uq7XO9v!x<{2mg8;^VHJAvvoc zLi7U$S^Tg|<<`*pFIr(zIq$+TOb8nH%~qM?{xKT+7tUMKLqn6*rOqEZT@ zx0`RRcH`|e4-u4)mPA8Q06gI3aop@OsH^~pn1I-@I~-SyK1q2a9mew9ru2D>vClSW z9O=yIvl76S?87xbHI*Lg)^2c-03K+Pien84;|%a+8HB{7ieG*XPU$zETL0=#5g*wi z*gbsl8#>fgs#QD0qH5T067B2s#%gXf$R`#z~ZL;i1aEWcbA9%dd2}qPs*(wW!HD~L9@CU?d-J6@y&h4@g=uz zlA9N4rL6jBa!-Wwd}U~>iYUs2@>SsrGYG{TtkO{Vu!_U5T5Bfm{0jMSD^f16Y)~@$ zN&hG2LJ>ybAXyzZ^Ax2SpV@DPS<)CXmL6B^Vymg)8psw9)6q;BaWzyt-$d%TJE1~+ zuMt>oR}%7oG~w9Z!?iM|Hu35zTKxtmh-xrO4Q+3OJO4t&jGF|3HcdW|He0uO&-x;K z%-~Do$em1kvEGe$yBkA$tj}Pu8WE=yd4rqqm$u@dRIlAx>@uo7UB?5zaItS+ zB&RR_9_rb%ke~KFS!2*WC8RII+|`lIWW$qg;vxvjMtH3HdE4NT>iJ>@5yF-tBq-;7 z#9&-BZS67WB^y1;zI1a_{p|`}{uujojY9klOS>yg8sJ>W0ly9aoII!{OE_UHO=EIH z3SoMBLDq4d7%}tG^eU0`?JS3hx;d#EUa&WXbhdW($6A z=u(isX4rIre_Y zCj51~KQ+RcZ>f|is*Y{uRDKwe-kZPTb$i9EkEplQT;aRC!jv;p-Jf;xwxMQz&({lD zid)9*`HG+am&#DP0m}**pHT4E^}AnXKJu3Q>yj7|h5SdGqsgNGj||kq>DK6J2Rf5H z;FdsV32*~1+a4d9y&pl1AkrRy1o{NBy|vc!NoCqZjf6sgOF7vbj>yg?fdM=iUc?l- zv&)Af!+5%WoV0W zOXEls3SKn36Y!3Iv3Bb|zT)4kIacY(Q0{z{j_RK7`Af)I`XVqP<9_t+ec$F&W2lsX%C(PtRfPMffoxilne!J?PfG0Q zst02=<<2|iP&7^KE47uG%Gt%J?QeC^HU3&^-PZ z#DEp$CFA`xvcJC>MTzK}0*E*USlIwzqygyBz`!v;_4(4N9iZ_A!-}BQunPK0Z()51 ztC_EBy)hG@gV^MHI0Bf=5m2&hPxSJH@^f+~i4(gAf~s-_kpFkrr|#Q7lHY-b9f#%A zI%pc?h{wRFq6{jTG`RedgIv)FwTfRuZ=a)~8T5T6y91367#f8kd00X9l2Xd(;kgos z6|6n6y86OZ?-AA#=`JAs(iMl64K;&ZIdfDV#;1N-9MVw8xwO~r@peURvZ3@L`Iu3v zdQYZY*4f(^u2V)Y)h1sNztMyEhN%v*xbNU&ZDlPg3k<4HcHO_Sa^5;XdflEhb!q*u zDQ0D}ix|@T!GF`vsc2U9Y__JC_VnrAZHEy(x8Q`<^ki2?aH3pC(E2l6&tTp|Ar2^n zT5mkd+HbsnM!jHCQiWitE*kUQdln7{|ET-Y{(J$XvX%=}fm+2t7Q z+DtEla^VZ_TVAS{Fy`0y;W`AkMm(TB;wZ#1Ku4zg&rhZO09U}it&e1;1EdYl>~UtM z6CZlz>9cbHhe zvPVG+7|GP{Lb>oexmcU@^2wYk}|B)CYA59o4& zsAc^QL!8@tIhaIi4Ib(HDa=Y1*Xvs17eR!H!{Zh~T_SdJ`nqB>wS$!phiw?`o+PYn+Ax9mEB!S-+Ry=1N1s#1z?OoiMZjEAwxJXAthySwA`*-q#Onc=GEQZ zL9oQaW`z{q(tyoN1EffoD1I1%U?lhl$a4Cm$k3Ir-o9g#3$x#)AnM9UqVAJ_K93{Ff|tre_ltkTg=8I z9e(?;y#G9Xg64JX%VOLn*N|54Or%4hN28%=&jjR-&fWb@8Rf^4V=<3rcjzB`&ckgG zG-#Cj+)aLjgotZ|eD4Q!{1s@S;&WKwB+`EF=LUo zqQc|cLM)olUCD(m`~)rz2U#tnMfVbcK-cyAXjOyX;Zq7HF6WRGY|0jp#ZmiM^|F&vDl3_9+T{1oeM)?V9L4u+HzjZFE;f*P1mWYX84(bo14fo zsswWGedYPTgwKC(Hd$Y`9Vvay3sEdX5tP*V2(w7&P)l45wgza#+-jg4-+;USIU z$pJv*{FKiLXo)E(px&RWr2zeTKt*5!max_$TA9M%-`{GkChVVnIHz?}Q4yd*E;$W2 zIz|MRd!i%Sj7(~7li0I*tjc;QT=a`6m2l#Q(UXOA%lCL?Ha}`&!EL@{U%f;b*>@8T2XQE0v~^ zS7y~h`))&#Utc4x6h{hhy$r!`9XEP$)VC3eg{0Q_vdPIG4Oee8E4_N#LyexQduD&N z4-1r?NsKbOM_EFc)bZ7?`EN^(4;VF`3?}p4Wbm0nx-k zLe~RuX$0!FkFCS+I<`jBeEn2H6Ew{{qw0Z z?Lp8|b6bnz;x@dc`1Ao5Qvlfp##z1@if`$*0fryeRMrQlCggPr1u-TAkR~Q(tXW{M zQ1}D`@f(MXQVCWTJWkE-@1C+@z1xiZnP0n!&wUr4myJU2{cJNqO1p1aqk4I?Ea;0+ z8l-}T=Y)>FUQQ2mi!pmW43f$5yeQw?o;7YV{gX(;O5DyU$yH zM1^7?O^`&2vw9_}GkOmx&owy^ zGLmqTyKTh(Y%^mz2sD<_cXYjKMxnPf5jhJgr4pU!wif%Av}?FZCE!3HXT88fq3G&k zRfSvP(<4oYz}8s2+MA!NTDg@oPECdT`Ab{QAImWZI_3M0p|7^wm~WVZ3uHT#a*nz_ zTtV@b8h0v2U#P5n*pgP~ALg@4;4=WbAZHU_;` z3Jc%KR0uU@>M8-5ximAMLzi^$C-h=mk8{>tnu&11v#((x7svk2yUXX(E6sS? zrJ3%W4%3pyrG)wN6=$=p$vQh{7#>bf3sUVA_7xQn-9HZ5Bzd;>&G5)Eaos--(8S>! zLdx|%#IFCsO65K_DSPMG=p@azcmMybcD z?Ie6w$SCyGjl&`|gLi{_$pW`O8@e}`{n%qQ{G{y1Eo*>>TjK6ZA|fy$=+&7e;5pOg zD+Ib8G_Xb%Xl0C8OyF!hP#!=~pEp#@cIB0sSsQ$I#SH#Rlj_N+$pQ~&nbFT@ArpuQ z?S!B)7sCB)+4#BYCgqc0T8-{(;0 zTzt129cWXqhz`0NmY!rLP>ucp^}P-0N%!_@O6@y4vU7Xu9&q#!yUF6N(Ix)t0yDCA zUPUkWNGZDC0%VEjJWR!Dh=wu^D*@6E&jU)O#ER5MC($I5LI^JSv`1z8| zNGP*)TL0A1oMp66XGppovfmudN3@YVI~DHuSOcXIXU3Ba6ms63{4b)-Va6bum|by(F?>bf0DSCxS%L%_8$cf zVm`4A=;SMwkz8ySccqz@hL=X8CFSZP3`|u;+7_7GlRACh-D07OuR=4*-y*k61QFn=ccM=;FosC%G z1&z)EeFP3m@B9rO6Jy-h<=3`z>=Ri6&DUPq4Wz4^F4pCy9&f3_rL!4dzS%L0z`&lp zO6nW>NKU<};~S}a8~TJ)v9_r1u#Io8OkL?M=hSc8M;|O(+iKerqls594Gs`PjRvWz zY%))0LNHRjb#yj)%eAmTsa+#*U(@H0I3j0qamaNGX%UT!%YH#g8Ad3Oc7dI-*i5AJ z7n@pIbHEZV774w~7n3zs^ZW>K+zFm2_f|sh@1}o;re`9G*7=%E;iM2wjz<{LUB}7It05y)bsLJ(s;hPNlDpvACupWUaNtdv;IvUTep&9#i5~ zhm7K3L=5vK*M@-BG>3B=JYt5Zp+CaU+r9a%yVv}r@7EU^(;Me@v56U1R}DrSkG}QU zw($_hN4#z~t>zHNFeT$K`??K=KchKqZ7HTiBPHf5h2PQ+TxTRRhW#m}JDD|&29vy; zz0*JAZ`j^o>3>99T@{hd=0xCP`F-ZO%Mj8sjkewRYE;O!=juq9&1SJl>^q52R#Q1c z#y1n0>NXM7Ezj|y#5`LsNZ&wWev6a2`0aZCNN)lib(LA{ESGnad9jYb+Qs~n%TO$n zW>dMXV^Hk{+xC}!3s6NWKY`21-bW5?`}D@%aYuJel>egOcs;lrH&uIxOu~8zdJkP% za3{y)GkBRN7bZf4t-df8TC(OSogHWva(TJ;w6~J%L;gNge1hch?v;4tE|hZO(DgdB zFN-P4^g>7P)FgI)o@hS#f@d|VR3#RjPnz&Jql%nQ&>12}bC?}fm`DEMRkhHn-)XCN zUfiKJ&D#DWTXSEcQ9HYHkwmMP*xjFUTamtGUEU{>QY`5S>n~C`EVx&>tXZn?nBFk0 zCem@akd&yz$_e47GPhf0bL&4@Uv4+K6DMZb&&k2C-C$}9h1{0Sj-;!uPwQp|{h6!X zOz9G#ICI$IoOWZ&;3ivLTf1Tb!_H#N;h~VTIP=GK>=3S-csY^Qhq+ne^s!c~m)N2X zn@)mD799KL_M4HN1lomP)stu`tDJr|nv$L@d5Tp8NDL;K%vR(WMvlp!c9LpxV!68Z z#-vp+pHd)*@Vbs%aYW)9M!R3>S8G@2&z5OS($Cko9p5^jgPuZrG5`C&rnm59y!5l_ zrYyv*#g!US65#^W4$GdsMrnnHTrOFm_dR)U0{e0`MsCZpUes>7PuN<9i;r`T9tPV? z3yvP-px zDcn_hjE`IFt>8Fhi+qz!zOF=AS%V%#FqT+@?xCA1DRx3_#DG-{<7 z{vOrO2sXV&B;zB0U7ktr>$^BRFAT;}5|JTrf;q9DY6?a+4ids%5Ud}_Wj8rh7Ks!P z@{Mz?2s|CT8HJJ*cP3F09WR!1@9GvEw|4hPI@KXM@(wS?_uqw)Pw|mr%UcJoy!l*5 z7BJK0>oQN1bqO!GFmnIfvIECb`(t|PwA;!jX{#DOoUEOgmO+I!Be6as_l6JknMS9p zw!68OcUNxrg`1 z(yudjswrZU%)D!<%UM1wFpL>_#(j}YVZuiArkB`arD)~#oj7m?3^Pz`?ax~lwfizUqeBYH0a!diE zkC-JYr&Y#`X7ikeTP;{|ang|OdE0cyCr`ugj)ZSqzHB!;76=d7E|~F8|M|`wl!`|}rH8fP*d6Ac*4*eAlkJrp^pVh!)Y1e~2l;0ICiajE_!}&58$2Oj` z9|>8*85p@Yu1B(6t#l!7hHHxmv~Hh|Xfa>h%(lkN-q!Z%@(_}n!DB;Y&RbPzch6btsKU{r{7j-@HI(wcplnUy_Kct0w#CITE3Y|-I!l6xB$aq& zW%IaVKcZDv=#+c*6`p!sN#D11&nC+Xif+xjjmX)!*J~0Auj;zoF06CtZd)Z6ABVY= zBG@%cepsKVq_T=hQ&I9LCJoE5%nn@qZM8Ry4MLY`+Z>kBoG#l`@VasqB&d6+1FigM z$NR*Qw~!jQ9U8}>277#=O|h^@CpSlH;{Al53$52ZT_deW0m6mzdjpx8-#;bSbXQt; z;J;q6iCA=Y9=^gvCeW$M(2#jnHJomhe#EKg z*EcGZ?&%RC-(DP`>h3o-df_eA1utIrC82z|AD^T%3yZA$c;=}-alCl`5svoURw!=f z<=4J(lg(pKF`mZ0SejoKY0%jfBtA!~HN(Z{I1Cn6^=cx~gpDpxVgYGrIBwLIT$h_< zG80!;8;z34l58vWgd^X9uT;J)E z)+zV=E6gU>a>ugigjskIk=*h(^PKnt7bnLoS!(HHjdK{9UM2g-*MX>1CQkivmeA2+ z)aM*A0}~PU!}NlW3-;Cr2UKr6Cniu9Yd%twQxHv?c(y#YHrjA;o%;0j60D@sB|Em& zFEt5F>)qxck^A1+@3(5!anCzdV;_xVw_O{ug=ykKQq{(^Ko3c>yKGb%%*-hL8WuYD z!J1jJS13*Ycd?bwbXEIUmXyEC!?dleCf8p9S`MTxHxo8 zC?w)Qqy5afo0WAmV`$Ri?wFFiAjH`C%pr%G$S{N7oHkm$^eZ){*5?i)EH#TD^7mQ} zHU^LH3t3)iwPf59^BV14o^!Z_1f{-g?v9`)*}{}bOLhZhoxN4$)elcub$UvfBTHjbdt&tRi2(XpmY`&_7Zu`!yxSt^}OF8a-K znt*T9Klp2;^{+XN;x4!2B;zIk8&=nvD(ee#S5ZLvB1uD(vnyv4I~ z-nO&KnCkHG`jpvjdA~83*ICcl0re;VseG|sgJWwy@{UO|B7?{FprJWT`qi>)T}D4G$QOH#fy^}>0I(_o%bndm*87^xm8f8sH{RLD z>(H*d_O2Z!EX{mDjuJ03Q#ifiXTY4F)LO7Mc%RIP$5TBXOQi2(Y+An87*+404UkpX zHTlY87~~?Y)AP^Us2UAd>`_5WRvbWIQIX6-nmG@*e&_v+LB()Uezcf9nOk#Z*lFlx zLl5iHcG~;2tv-}KEq$a>)wRM={h5$1SmLvY%dmvd26cUnHTU*xnL2Xd3 z9a8)|kq(<&2XoVJT@M!2t;e-xfLf;!DC5BN>4=3A4kd>{P-zR%{H^%M)Ou1Q*1gxu zW|*l)Nw_!ux-{aq3yt|ViXu}8EzCZ*u}afn7_ze`Df;OAdO2$Q+^#pvncFfQ44QS1s_fWV_ z+m46uuTJHvA9jkPJ!hLZKue5(^H;pwn;7lR;G-qaeBMcHxs)AUfB$^esoHm^@4oJF zj2x4BUEtQ3BXU@FF!d*H@e2$KRD8xL*2DuPaO?e)RrY0&p+W@}A#J|WGv`B{YOlXJ zXV%*bv&tPOr)=3o>02BWS63-JW^ng6_?TNelVf=y*IEIwnssOaW=}tpG4oUXl3D% zx*=ph;mTUS=B3d{Hmz{X#Dj5>zm9tSCV`c5sD(%Vr^l+v$l8tL{H+grY>p#m64yUe za^npJeA(VXdqbCNu1-Fop!f}^mwUI+NJ`ixR19ZB`OAC(e##PR!;0lJFdU{h=Yj?r zPQPpOs6dUfuz<2Nt-?I~JAo@{G-lI`Ws> z3ONDz&B7s|1})Q$c2aq~-%5F6;yGEo>eC`Ptt{XgrUj zbPye0@}J47n{&s5X6y9RMjhY9ShT?jw)+=P<~^OMKQ&(*SdXaZ1f*U~)fUhC9C!1X zemQxcr~ZbO)U8wnJ1zmYJW|#I;h24Eo+(F`+~yok9vI`LAGFIIOMh@j0pvm?_;}YH8ksw(0s@Z{Wdy z2aGVQQQr$5x1(=BzNWUYu(0mt(BFM^`wS#pG@h3SiC{ckLQn5oS9f3GbsvTQ9CqQK`zQLx<9nd7qD0kD4q@9X*N!Q0v@g z|K1qHSlQS}JXRL2LsLKBP2ZnUqYx>ObA5ZB%{975ATX!@I8zzT0?OpMT5R*VKguo| zHGRsM)nQ)DxCM;b4x#f@GUKwC=iPWz!XNU)Ht%S*KFs)VM-nrPH`T7C2!|-@PD6du z$02%(o{K}6n_VJ~x&-XZ-8f<~vV4f`j-xzQ>a7b9xjGVz>WQn2u3o-y_!%_p1yn{Y zyY&p~#ku2$G9B+ND|uowXa8Nm#DrER_Syh@Xc^B)ruE}IM-dbP2G z^U}}7Nlu4Li{_C)8GaW0q&qbr7iVuwubbgbYylbf>L; z;$>u%g+L(d*}e~zG4q^=k^|zAugPL&1~ixc*_noh3HO&XxoOd1rk-t5o-flvkN+MJ zd)(`GcwX{Sp;1!hUr04I8rz^%6e}snq$O0Y0jboP?^foY+a=G@z0-4!$r@f~hsf+I z(vCRF=|^#1>RCQ8j6HX2o!E_lNc2Os9c6o2kK(O0O&+He^JSSd{+g(qEvudpm_&Cz z7bzv^wrFwrQQG1eqQF1)t{3 zYV^&&D6y|#;CWiT&^!`91~&kK$2@QI;m>67saK@5vu9z+)>~yI@#yOsi6*h7s<}T# z?&^ikozJXlTKnd82J=vf{Sa4tDV=RIW&N{J@#MF7&q3ik?6qrvc)Z1Q}>`SJL zO%;VXY^)5ds*S%~><@P_&AV%95#IaWVLjZSbK0<9ZvKMD{*plvGAm@6)EE-=CY4>m z#>Qk-a|uF);WGHDmqRxyJ6kf|_|v&_HRw)0a0m<}hj`yEw>=V0n|xB|G>r~BXHf2w zevi0ywa7=541mhBH%3$0zDv>{|IEm55U=>B;BM?&KWv#yHrfUk8hrs-Ob$%IXI!{z zWr`oaiG0lxVB2<|1O(U$KNTr~`Tm_O#yh5ICCvuvDUm?1hDt!2tx~Qt3{-NqBS%hl z&9rSf-3F4?!$4BAc|!s;z(A(17?ns3NQTjBn?+t;m%YAkAHKk3C}8^J-*FsX?6Qvv zaXhK?OH$6xMs#4z@4*veqzr!4OKfI|p0i!Eu}Zzp3YE>|my%p+2|TFCpRDZ7iY+@I zVnBVfD=W7~LtK~q%iB2D{0(#G(rwdHFOe}`>uWdFV0ldzrDo*PIMy-hJOk|bT}ey< z3)TpfB#ALdHgo8EMJP&dYl4u5b--mW$?!EccGOX|+H#`mkO*UXAsULGM(vPDIRG9$ zuCCRGja$q0Q0d?xT_2YCHbAh?l3U@>to8|~tBg#RtXe2&m%d40Ku5+*^J>te+CM+E zr3!B^l@V#i6};|RUz?==I3Uo2Nan`yD&BZQCl@G-!OIf?ll#NC2d`ig(p#XJ_BR=nZ&ffjuy85JG+?k*hlc`4Q|j z3rf_zk%uxgru@*SK)%sK;(PZ2K!)Q>ISO^5<%0uRMa4L!c_7xNQ7L(i_>_BGkf=Ep ze+B4rIpFJB(M_j6-fu5!k~{W1OO4wrJq<$FghR*i==j~+OvV0^+)HS*MG;6faH5_jhN3QoJ6b1Xxw13-1bTF{$ZoFCPmSb z*Tna1UauKQ5b+gGbQ`efEXfHu z*T|&kg;U*~#>|%K3Rzkq;x-QmgaHiq0}ML-28ao!-vB5Jq;(UZgoz{;NCR&jKpX>F z0hqqa^RNXrI|GxV#aroq><5WD80c85!CO4Qiz|A8n7cid%~Ub79B6Z3(;+}KKXzP% z_Wu9gBR6P_im3tyFLAKYXbvQS#j530Z{G%jS9BbW@EzKLmsG%o<1vi@X(^B@!U3>I zK}O~e+VU_pPL25l0PUO2hpmQFCF=FVvKx#Pf(R=0Azz@K-K7=#EkpROP}PbYx{^Z# z%Pbaa_niP!oh_ePEigN|tb4IJYFyjVgFbu`^ox0(nTQ8-}eS@l%WGs&R3Y2m_Pv5DxJdIZazK-V$ctOkHJ(Fo%`u# zB8cY_;9V&R7FDXi+JTViJsj9-S>t)rY;P*?0+m4VRfwYe+md310W896#c18-3nx>I1eJ)dCg8& zoy2OOaz>PyHBu7s;AywX*c&y>mLMivn%2MiUGDxEU)U#y94Z*Y&YoIdKVY0djY%4P z3oGw0(uhL`2~~`&eBtuL+KZ_^Fi*~!d^WVF3ik5srdj0MjRN^oI~~m@)!*0j|9Df7 zl*tZzF{oXvHA}PkqBjj`7%DOQBXOGK`5@J<7E`G%K-au=S!GB}OavtY9zK5J-$YM) zdp25HTEI*|8vDp-q2(9}TG0{#&>#Q?sV@=O4wjZ&+1BQ4(oMs0g0$4W3LsW!^S0l6+abwg2ZvS<7doh zdUsc!$uOP&;Ur;&W!2xRC1WI8l-kHBzEn@8K}I(8RUeR+g&0%%^}ivu7Fe)qni!1RQD z3d9l2AEDm@4wRaOzr=1<+m<8yQo4JdY=@xZ{7DnGQ2F0qdXsf#Jv};hhx#f~Xf5y&ILm?U<`% zWI&nBW%$87$Pai(`lK;Eoxmwg#$%2K>|VgP2=_Guwb2!m4`389lwnnZ#qA zk#Ds;P9kv+_rCNVtu4b_MHl-c3{_r==@la1MX3DsD;obCNE^qcr-7V}1vr+0`m z`y(Mf{thbW_!0~a=VPuP2G+o-Wo>x-wYr3srX%{Dy;0A$@!TX~=RKk#-?j7Ew|+T) zbDokT`xyiO&y!D&`yE0nhcqvpW{u}A&>Os-RPJjcEQFJD+skyL&Gu3ACV%dYkI*&> z8-M*n2cN@8;CW?}2mhUnOui0x_5FlAm)CJ^xz#jFver;vpK?Rf#BW{AVseD>X+BPf@@g9+9%5z(0C&_`#??eF;MJ&LtG(H6hR zQE{izzZ4QH0V#Cc!-e)#z#}?m6>d;p4a^qBG0Pp()>qnPn@lVv;z{2vf&iYOA*UNXwlW^yS z8Qf{*>V!vwh*>Nx%}_Is3QI0VB=O~_wGw<5md98A@%5nr;gH^E;j2`S8o*~klh5EA zNEvJ;4-8Cp^0;y)+&P9W7EF>!EjKZSL%VRP2yaHiUk7y?6DZAqd$`Uh$B-Er zs31rn0D+a5XSoeE79=lczhfD9wRz%nOr|v|S{jS28IiJA_)G<@u$d=E&#N1x!vbF4 zq5hCuHrGI4J|lVbmTSK+KD%LIPA7TM{n8Qi#tAsJdB14%6K;8E(*>dry^d3Ax*<;{ z8J|oru*Oo!i36|+@UELqep3WL9|9sbVCNi`2s}3c-Tt!WhOKXPSOv#&^BLbF8b4^S z{k35E(&*Lswf%!9En2QI~F7{2E&NyYF39N8`cq)R-l#{b6{r4>cr&lCaJ&VE!8tY>SZh z1(xz5kUW%`J8CQ5nH=g@uT*ZT7yzVCwCm+(&=Zahx1<6yLuhz7z=JUZpSMFeb%z#oR38yi@Z$i*f*~?1^ZgB-Y!NB-B1+W-^ zc?0QVe^(RfbMY78WIRBwBnL_rklNNANdn6>Agh4(hGc+(+5|KhxQ`kXI`CQs{Cl7V zO#akl9R*EW$VXYO8jsY19Q;Rot}j2&c=fgMEa&^R@5fg<8l0YN$9|@gSPJD#dA_-H zv>C4w9y)6jA>yvwFLQY~JGNHg@>TI@d)LZ!0ges46mX3vz{jTz0_}O<7Dx#R>EZHO zMh4lGacwk%ti{NX?a26re$#tJ3D^NIoc9J7(7>wicYnRB4tNZ@HP(rs$#$qaim<1v zOGc|i2fQvoEr7#Rj@n>laP=tOz1r0eQ3eL_IC3^L$pv{*aVAux7#R0jm5dq}74uGB!3;%Vc zbPjfaSxbTcIzX*h0O&~)P)(jl_%+-$0D{*LAZu*_Q+<`gqJZ~C6w^1rHA_lKVW6V} znIh8M(KhI0{O$o+IPIs8?+5*;JMYUto6CHkKQPwAbMYrtcdChhtNqIpQ=alPHz?rI zEuv-!6l-q%!ljdc=)V#wZ=pk?1GIq?Gw2bii>F{8Hl-J&?GBb5FeZ_Gasu})F80Ei zDPCNUoTO8(Lq?*trQe2^+W-=fI=~a*<448D5`%^?-DZzcjXZ5bZ#hG+brgJj(EHjB zU^^W)f$afz>ga}2K!mbCI_sryimb1%H~1DESz|pR4F{v(;|qHnWWW_#Ff(#`9Vfp< z0SLjWgrk(yFZXf)w@^V6%3&3^5AhsGdIqfn(+~YAp#7*q>wzY`>;lFlYtX?$?JHTz zkV~NO*Iix%135|ph>9XPtXy2hin(hOpmEYzqYu`b3JzQK&0007vd!}`@=Sk%|pc(|9F$ARYa3mkV0H9%Ge+NQ& zcVFLXO6zPj@f!Rw!RFyd(0BzBWmACO0RQ#V%~0I&ox^kR1i;;@5?%R??3fj~)bmBZ zc|!xSzCZ04CTIkIsc+bZMdQEK@4|{C?hEql0xlWj&u4S+PVr10LG2LFemrJ_g>R^O zEpy#}K!L*YC752c3$z})cKll`#y-Fm9_NbzTUN(NKxbJ41VU@;AIqBaY%pMQuHPbDDj@>+YEq zXFgqp!}3Q|)FH(Zk{_uZ(&*(yW|}?1G>d;hyY?ra$wyaYk64;kX1LG<%z1g$JMb2b zgyZlNE`X-xJMhVOdbQy>oQR{ZLKna`0fgB3-|3+h=$u*nyw&BRAz1vHmkX9O{-3oJ zMwO;*w{&*Bv^Xl!$s!FVfXxK^5NH&Fj^==Z36vC?Ai(S)Bqr{e{Qe3s_9#KQM#TP( z$kWpk?qf)#m(Sp}!ujCjMqC6o$Ke`pz|9^LnBBvGBj$Cv?CG>GoVxFPV-(qrW{C3H z()Dq;jG6L_C_+ar=N$azRF=#^YlNx7>^ho&pv$DGkHJxVb3! zA)6;rZ)sI)%eW}h>SKA3E1vIck~}y(hWoC*t@d9~Y7Spy@e*`c=mz_DpG=t?TA&Md zU~QN;f^XJ9__lM+flbQ~z*(>W0tW1_OjTLD+5wVk6u~nD=65yByq3ep0HgvihGCUv zeLTOl9$%1Tf}KzxG<;FZlK_?6>2D3SN}DOhXhunB>HiJ3WK`S8KlM5En>;|rz$utu zlIH^&&H3SSHegyU&A745cI*tW->{_|U)3t&(B-JieINR$1L8=OPsP&Qls(*h8*C2UzYD~WIODEI9sz3`5*A# zXyO5YNYV3zcIw|nC|09E#LVj5UJjU~9v@E@?2gaI;vgnnpN(8ORx)|l_sglgJ;lY8 z2UhtQtyXwIJ(Kk8_@FvL&}k>W9FAGzo1OH3vR>!y1;~t}U`t08#QUiw8W2r@QU_uM zoT%l=!jM4X;^G4CUZfS^G8pJ^I|~HYmfq=H5Oo_VE%#-iy`t#2RRZ3jH?$Qcjraqs zi@$E8D;nDHo74S2Lt`vEb?2TizZnc=DKUhwc_8Knu2kM%%pP~3zI?04Hs01+^i9CG zE>l*(tQUgcjIcfU1h+cc0Pfk3Tja3;EG`?cSf>J{)c3}Az=DUYybhCKDvd5dm*4DUQ?8oQhMi-xS1 zvC6eIonf){m$qyq){8SOAWRT#Gxnb+gaf~>MyroI38$fb{Bo-y8fbeNvYz~g4xEi1 zgQVF>AZ~ALY#b~C)rsi2x-9T3(E^0i)Wt9ipi#8N?Pi}%NiNbc`p>PqFeWQP270F` z(%E#XwFOKC4=Hu@rIL7A&C4I9dj$L9ShrFv`K=$1IlEBk{Y73ha6Vf9tE%#c3_E^>-n&aA4Ni7>g$< z5Dhio_}04|qtbg+O63^kD~J-t_}Va)SUaQ%Fbr&^szwW#l75~$TQe9hNmm<g3kSqa}7~1=8nGWQN?hm6i9*q*z6O?-X{vxXcp?7#(*%&3!xO?JdI7M2EE^idIHJC zL+q<~C-@a-8gti`^Ed}KvXIm5mUf&Ch|xs6$O>X~su;)S4|`<9G9s3dXb zt6s#C|CjrGF{i6%$324Vyz3aEleV^I22BoNXEnio{;;7;J4IRU|G+grfeL5U?Cb@zKpkuf(BtFs9}@&&yP9cnE3cyPPs)sb#|mgtdApbv;D`!txo?I zYyneHte`SVbx@FAD-aBbe`)V+$4}l>!hUQ09xpa*=JKZA)ntV2ar`7iM!u# zWnq6=`^bn{rTgM~-LmQB7j}i6f1xe=T{~V9!zUE(Q%?hGfIdDXh#PZ_G~fc$V5ylA z3f+v4onu#jRA(Oy8aM7eAe14qeW+<{jcp0oSi|qn;7qt@)#LN}(XNuFDj`$@$)iZV zSz!Imy;eS4qLne;QkW8O{3LUL^!q1D7)IuWVe9XI!+hxs&P_jL0x+PiV#apIEs5l? z{K==xEBG_+AsBZio#n?9@&yk;h~qy~&&cMhI<8KR$0SEHN&f{SYB|7wT~edWM9U8p zsvBy@wW|XO>G6!=6x3a~`u1FdOo$8O@~&2iJrsV2+yDK0&Pb_aFSwZ=%?s_+BV-{M zj~K;bFenC-QVcC1V7yQ*E$iP5^uz#kdDnL50DAoe3)h30T;t9sk8$`+N!P|CRpJb| zh^KFFs|MBoji|4G0Drd8NQi5Yt-eWS440ONpba)!8MwfgAv{&me!W8_s0PNun<@+- z9|0s$RQviIUj2^1mGUa75nrSGzuQH80m#d)5 zx^u@(HrcohDFXW)9R;$--BHKqQw8kuI9E6OY~25#y#HOj^`$zc{a@6GwlG=Dt#WLa zb!WUcL@mYl?Zulz%Oq118+x4y z0#(ir8B@;3sMSYS#`3Q1x*X0#UfaZdl>(LjUMjB8-*wFt(O`c3xUtY%m0$F;7ceIM z@IRZ*P)QAbY~v&6WW8B(%!nY&RFhH~aUf6 z1Rb=$oM8mPc)p{Nx~l|he>ax`-F<~x$@E(&9RP!h^cU9WRoHk%erAf+cMPEHkql8a z!-)fOjoJXWW?qXgC}VEU05+w8F0giVlsCP@JXrfg8{sxdyw=X(^QNiL1!Z?mn7!lc zKoTOKrGxl6+_NFkxY)-~#CQfLPK2FnnK_%}uzxS&(9Kcv(gq6*NJrH}F4I{I21NH{ z$DT8BR&GF!atvPdIj7{xI z3iz9SrpT)Gu^DvNZheH>2fA;7@a%^9QivQN zn(Je_W&fNA5M86XBFp85^FW^3*C{@KTrr9n8GQ5W{>|&pPr5^cduW>cP+`#EX3-KI zlhePBi;ur6y%@>Teg6hr2%wAex#4$`!G*}!hUA2#ST@cv;Z7*n}649gEAC`OcM-+BQ< z5(SbM%rmlnv=tDgy_O_6tQdN8VRB)cAtsFZ5nhF)z)-PmUZ*T}Y!4+^ac?0k#Yi`L zQo(*=A-40p{_<6kUci<}>@DI_FvvOw1n88jTd~vD`+Qj($unG{$dplpO#R|SXfU81EjQQZy37+ib#kJdXOYvJ1 z=JBnYzLu*my1hNw+xz9KBvb#w%nMm~m|-KW>-cUk>hN%fifkt(MX8TKew$HQxloT9 zZ_ep_chkH7Z-6Tm0MpJJ$M9D$6BFzVZA^k>x4(vsNJo;m@l2VJ=&sN2az4hUi#HGS zB8(SnTk8EcEBF9ffBU7PQi##J56{r6dVb~iJVm-Q3Q1QDLQN<}m>9=ssq#}IiR)US{s zPQcO|M11VubHM3JoyB=%H+&SR+bdy=$<@Qk|9-wK7NF6Ud=BPJ(p0j4jow?f4(qLH zbWilPW4(plj4uA8S}TRW!7cytt*>mWsw2MpR}W;31c6v`P#w-l2RG&d-VM0K3ie^p zgQO)a9}$4bUa7$8Q-EOtk4rW#*F2%2Qm=mbkoZNvFpe*&Q-VKwO12ajLEm~-TGvo( zR5)<;Etng;EQ=KXy~HI-_~WvBKtlco6-q%_ULRbS)G7S;XYhgdt*6Z3HH&wvv0cTV zy#M~9_)mSqm$^t$T&A56e*8KIH?$Rf{_5Xs{~pv4djy06gp>5O)h6fbr(4!2+1g$E z12EUwL8YPpovWC4A4!!F_+yYHACL^1G9cd$@dzKc z^;8dv{CgB0bg)|Da&)u@F?2{gg~^N;C7b2NM8GR1@HNzct3xb9HZSCZ*~pFhTJ_kk zo@f8_HK1S;dLKuMV8qzUEZGQQ%BF=C<_?;E{qOk=z^I`XySGQL>|5vKdi3WE(R@l0 z<=;h(CY-#tJ50B6*Srx3f;ofzi1W?*{^v6;Mq1jurlw3vGS)C+Mx$iKrWNhzl4))J z_g?bc7Tfng1r!GkkI^nSgw}!XLO?WvbHjm}_Z_HsfaJ2{k^M#N4;vXaiWx1nmxF|t zcM;gk10w`AXz|9O9moK1_732^<}3h(dIV(L*MPpG)9CsPp!L6iE}(i4l7dU=M^0UZ z`;7$b9N^=GXgkhj@sSh2|AGcM^V_QvpqX~90PbuDXZvj@@IcFK_QrZ|CCX<2;Q@f8 zE$(hE>W3(|U+f-BFq7HN?E59u*8PhSuJVlzA@$&w#qO^*`5YF07x@Djj)8$es5YHd zI}QMrs(|dfXc2e%nRn0P81akPdSZIj!hf9p!>9EYlc0p1nrm`r1$w?x?GYfeHZ(UU zgH3=!DA*uy0Z5?teINf93fKn9a>-p;Sz(NoqI%Cp5=h8KUjJW2B*?rU2?TInALxN1 z=miAe^h|+6Ku9B3Y7+8S5qJf|Wj5ay~b3M&%$1vox}()%6$4th~V4nb=y!2C-tyMSYG)MRBt@7%#V z92PKWT+KLPYVkoiMSf#=eBgR<2wyY?krfIe`1oulL&4V&u65s=41qddh%QW%*WVFP{4 zG4$YB_3!^;RaH1BF9AmwaQP>SMgXG*RG0IMMgX9+;(ux2x-$&dXhHwcX8=(F1aZ;o zkvE6hfC9yo$G1P?CN&_8hcbMPoK+g~skXx`Z$7V(-n=|xMd80!vui$ZwhYv@$pRG$ zP}QjcZgYR0q$ID^=rD#xif`gK2A~7awUT?3hW`;BfCR}I4=~R)Jz-(Ugbrq<{!4Wn zQxjrnTZGQ!prJ)}LVUVwZWj@8S@Nf2jlYQ140_M(G50{X0&y~q7r&&09$ zd!>TYUR#j84Oluyj|@AA81^}-)3y8wU%-~wKdx|P;imZoX_i3i{)AfpRVx{za9eFS zJULN3IS{JuY7;kwL@t`{LZng3U7b!Y&3`1c81BDfp28+)4-ImC-G-xIm!alP%c>JB z;$)Fu34fTR3)vp|iTykv$gGmu3srWkw6U2#v6G%XKC8=%Qu)}rLnbvRus$mxb4}e%f<#N^B^-(9-1qnmgE_Dffh|j*BRAM zsG2)1Is%sw#;LuSjMGvp%*g z^5kXRiOc!OczB0fKf1Mh3E6G0v4V;Io}vSykV2eJ)>rwe@6$qE?#f>s+(o6i zZ7#Y^x_R;)Ya>^4^y{`k`Myl5Yqz63gl@*(NlRM_oE%AW+^`>Se!MJL^kW*|+aGN0 z7)-^>`GnNd&gixMs@dp+pz$>)o(9pWmO^tpe05vI$2ZJ_iCBFdQ!jqa{w~!f^`}}A zf0QRln@nO5o!{%D4{Q~uP!nR-Y}HJzAh8v1AqxLA@=ZJEt4%<5MUZ~?zK#CMdgXE! ze{QspccRy8m1R))Rh8FevHNZAXv%?Db#nbqyWHG%g|euVQfGN6VIEOD3g*$YKWg%Q0OI z<}bdnhX`0Y0zn>ub;zF+jA#)EN~2WGW|(z8%#V%qjxEQ7+e5S_sEagox|yopWzY8O z1F6T-UF5I9#@8I)&HWE$%d5>?4cE&a)nKKge*dzJVjv|){2^!h5h^L@@#Dr36<98aj32Y$mgORRbmY&nQB&J2-Z4Tv-VQWMN=R{* z5%^~Q(0IotT-DuXAYx^suO1~S{md^huWPS5!~-%W!U`d*F_8Oo}(OrXd&!+qVSX3{-hMe4-+qsXzZB3%V~fS z-{g1r8wN!J$N43+HnL&)AqhGjj-)`GhpwMy#SN66nO65c;Tq{`h+OWoZ%5_x#>TIV zO0Gi=jLdhl-B-sQ3Pw{{*rh-C+oa&4)b-O@6Eq|~$s`h*Ro&zBeau-9G$i!pcH{EC!uP@fQ z_XDIU4TQfr(1H^8R0i*`$-@Ow2Vg?SY+I*EI){?%0Iccwe@du?J@~m>L_LM9FM7CTWha`;_J7dMOEgW z|6Ill8q*3$GnvRqlG(-Ow&`O)Xwp1-8AbW*7>uAJ&fHd^{8nl2!W~g8$1OC`0Z2}E zRpTIm|1*kMipDkm2T!~okd@TkSFJtmoOiD{j`X4T0n`Bp3n&xMKW&@!WuaDFVu19! zIr|6m950S5vQ{ATg{_tzi0ZD|JiZV1H|%?TXS})XrMmbWeFi%d=pSLOAW`Be|cTzdD`&SVk4*FtSSF~LO6;yiFbX5E8(+^|99I? z@e4n97kBBZ(=BygzQp-meYyDkd+@@3b>~T(jq_stkVK#nr1{nT)2G1;51;gfM4lhp zUQH-2H9r!xS~G85ayYNAP{MIcFgq#q+atpqyS6|veX)ilXOva4z;;K?LdX;;F-`Eb_fvthc6eI`6~K+sKr`Sa5!JuN1x- z;odj<#^2AKqsQ=z{-J9P^K_?8I~to24h0FRiFu6ElbJJ@t3bhj!zgiZgs+G2}GX|(H z)Y)ndmb(2_B?4WlZ~chilZwTx`1QsjK@E;=&W_ooZ#(IYpn{$5$< zE!i`-6!U!wJ#V3huJ^@`>T>s05K`Gk#X1ne?*X=Fgj6iY?_wK#%=)2(ni z%xLEpwkx~>6Y_07+8!z}s@khnNjWQyf(6IbFrNsu9kwy(5b8KvBbFA{sXh~%&C%%t zuXzhPI&!dUwYV6;N8OpO(*DT!ym#UX>mvWpk1tyfERt?opB@#98n(H3`F0g)RJgOY z-0}cZ?Cw}swc0iJ_jv+WuN~vNsEeA1YVq_<4nkrY_vQVEjdsq+k1^jI6Pwt)ZO}R9 z^$%dGdEtH3A9`cgGp#j;??c zPT(C1ld4phFY}WmkTD%@@8;1uC!ZWPk%ZbFS=53PxXgo`X8dI?@_vd&_5HYFCRcM* zo-)d=+8rcA?2`#jhib$7mg zmnJK4$}A^dV(hP3@zgMWc0$Up{)?B-F3M-~z97mW{&`)54AzMQoYj#6jcg&GJ?07Y z39kmP*Uycfg)E>{LSh}DeSZTFualqct99lJKr8Dxe=30(^(jUoo#l4j_6y;c9L5HA zv6cjh2WTbcN<_6}Zv+kb(f1xx+CptraG(|#AzQ8Tt6vqQ@E>CZks3J{p6q$c2H*{> z)I-%-*u>pOMG( z(PRQ%#OpE*)OWQZetYJqt$Oe^-9Wz$>!=NLs<3P0Xq{V%?Rbt4-Z8NcG8P2?dq`JW z1v_8HToCduPQ~Gs$PU$~zU`|av`*aYfPPy-#LZgdtF;MSo%>VQ)9WoW?JEwEu|q#S z+2>?O)=REfn?T4;wnw_tY0i)TOiXLnB0Z zzQZ(lx|mHYb++cN<-&@o*_6Qa4@g%X3hHRVcma_n(OTtOMWBhLxRu!ASHZZQwd)VY zwOo72y;u~F+4VZXVHHOEk`Ec%CAu$((#JGbaxuNS7w}cNTj3dRaoC;NV{p6^XpAUs zc{hS@dMQ`C2bRvEd%-w$=<0{#yMQ@s^`PmJRM~8EgTSZ4i9PkJorQT>7jiM5J=Pb7 z{X7_{ISO1eHA_l_nnJ*EQk;S!@8UX3?1+IO`j++eh|MbODEs&WrLgfB^=2Z9{K}HB z+b`R&qoiH3w!69$&RR!owe0$Yo|sr?lHgd1d{ep2{Ly68zcVVZfR&4WaV1b0BY-Bl zL~sCHX4o{#=`b(dQ`5@GmN?Mu#VTT1YXRn60)t%=7anYgXPgd8R_P;)iPIVN20Q5& z&Trlaq;_oy+q6SY%{l0b=o{CKgT&WAyfktJxlv}JjX7|4mFR&C5ticy(9qa#d$ zF)(9Kn7^0pf(DQ6GILaPOw)EHI3lWw3(tn?_d>wxm~2jCJ~u%U!MD9~m7JA!qq=)= zJerI)w!1A&tz$}LWOsL@-+5yH)&N~`T$!s+{FBI!S5C4&&mKXr2yV7W^-WP^XUd3e zR+et}16%u0n(t^yWf(ZPRkcD(oU80QI#5mrs?I?3DV} zKeZa2XuG4?($GI&Jt`0yCJfbMi@O7rmpVu~JEgYzVkHNgHutyAQuDIi1pQZSmar*? zxf2uVp1sPd6LIe@!i^j@^m?QE$=Tj>&$R7u^pi_Xj)X(62#voXNX*i~ctS_U9~%>Y zM*Ez0TAZ@oq6Iv*P-T8(%B$5@ayL-o`5MLU)zt&oI%@TM zH@8oEvgQ+X5h~QwbOz1Qd=9pC`!mGAQ5G(to;g_hSAw`@aJlPpHHJvqoPo}X?$oVn zO}tv9m|Y{~?E&_x9jQ`%O#hsMVin_jeMA{K%kr-0*n8Tv%ukU*>kJ>u0=6j<)yN`0 z>I?ErR|X#3%aBD9-8OyJDVsNJ<%m?EXsZmfhlE~?`9=)yG6ol!pN^2?9x=e=#_v2CoHqcVQ*blAR znK(!M1|%$#2UHIBWwfvpf&4&c+U*!af-}+Jkgbpxcryo^xhi^@Wy%h|A4YAi{UcL@ zGl_@0`X@~CIEj4$K1=sszxJx}tNVu=Uc-pJ?I+Eoqn;trsfn5N#(s=Vk&7Tv%%?*~ zqLT@a1bybc4of-=v|-N!@Auf03YA?BV2*d5o$`+A$NM23>!ZGnJsY-a zz44^rDA3<@v-g8(Pt!TG?QZ|jC#D+`M8$c0Dz?>}Is#Oyqc=(XihdC{V2m$Yc@#E9 z)X@lmlq$ijPu9&GI z{lPK7OH>TcI%Z|^nG#5Upn4(BpT5ZTy||8YZFhx6KgWLu+g%XkE53ONU)_Y;`a6cI zN7#-qxk;~_=Ob<__9FIs1q-(H&xOx2E^%DWC*S-Uj--KI>7;qQQ<~SeKtvlRR(SBa zLzKUtPElUwCk_JD!aS4MGDltB3XW9jt>&k}ru*{ShpV>fO9a1~Tl&XkWc~f_^iIOJ zYhGI}(A?#in4YlI9PO&AGo>c6C6pi|&-*Nv;?5rzU#*|~PExHFHE>%RSY$f;O9{}i zUvFq8D!gPwGzI!@Yqkrq7RCLK-nU&HVInZr5wU6LDPjQ8)_bFax_Jt|XFy zp7Ut~D+dQ~?J*io_w{vu(<-y4z8uTkjC|wn#yjLaus(*4USU3`r_&}fR7ABMsTx^e zUsgpVD)vb6{PRm}ovQ9oRIpW0-fBsA{7abt`S>`fN=5mgRKDZx>L$yMQfzLk>_UnA zvPsU>6lKxBCUGPwHsVYY>sQ@W5!2I!4Nn?&_4xV~9`slQRmQQC!?}sjDE$!-!@ZWT zwuFP7+V)yj`%rz;!n63PAb>qrrL;6<{`0o&12_~xVskZ6PK43-ec^S61?a_<9JU=I z>WQ1SO$BN8lWLof%ZoL~pAN2; zE4*)UDK>~|r-M)B@~~DgmG#bm%lG57t^27h4_;=V^F8}KxBu9Clc%T0a}f}SiIa&9 z!QUXD+_vp|UW3{y$y_C=YZo_WcGnPu5{rZwjVpP3>5^e_E^V;xnxBVHc))V+_H~;J zZ~V@^Psk2vv1A2u=Q7Gv^3$catBLalhFf`iKnUW(+k>eY6-p%6tECxY`VORN=p8s{ zmyzMpWyo(OGYX4^W0v1!xbK-tW7IhkN5$~Q_d6JNJ;s(L&=4!R+M$>-Ecn=;tdXmF zA()ns^0cw7-(o>@*7H;gJcN zKYH?UIg-y%FhzVraH)x|k7W`WRX#=lOSl||5s5d1pKyiSY*DiFYuERawfOSuMxC~$ zkJ-G1CmDs``a-C|I&=ADMHS)(9jgo!NGoZvznq)-v0icai=SG8N)nupwA@?>L5YhK zSXugGop`!E(z@7qmX+=z-=Mj?n>8Jx_XZ(D2+@|QeD;pGQ@bNd`1Q>N8~>|DPdxmM zhCf(#8qWK&^21=e9;{JZUx)x}o+hkFYcQhU*1HGWe^c@!%Po#9ap4bL? zu8MJ)ltA8svaJ3i%`@$1dF5v{d&!AR^8|G$L8{dvm92{&7&pYjM6eRm9u_TFC6DJEP{{XDd4AVlr*Nrn^$zlJq3E6kQ4 z84s?|LEGp$KOws@lfO>+iSo0+Zm2+mvED8=g#W<7(9uxLVBLn%F|Qw!*AQW?wdttx zuv^5GzzjhliQyjmK7E%(B0{qSUa*|ujua|JG1^PiKH-`t0A*C;vPRAnE0dbGSJr2P z7w@x{qdc}362brB)C!ome*zZDiNi4uC^rImy7h2HLD#2)!?)iFbAAf>W(M9)0F;)_ z`0x^^Hjc+(s8d@ot<112HD_b1e_A3rd`ir93hklG^%~gxoPscLkrfAq=K) z&-(C7&L@lVS!pJaZl9&7Ek8%O`1=A-U-hJ4Cp4l8*e6e@`*?wrYduxCK%;!2HRCQl zGYUG)JKkKMiJ()SJ8+gw9fsL;G|POjv%P)1Q)Yyl&hdoe$Q`tY4ERXPm_U@11BN#q zqrB^+|N0q%&rV-ro}s4g7k$KKG?S+jsMq@d`?YE>)|faR`5LzA{7ZsDyjoE=jeko$ zQoK4C#A^h#+xth;0Y6_Zqr1a(Jf5#ZTtLz&~h4@((N?=2s4TA0C9&&^^))4>79ZVm#14QGz>-N(> zN*e^5la!n9LJe@}fjk&QBY0=csc<}T8vo})jgtu+VkcTBkjzBEos#j#niGt&?>T9w ziw^ZUrgKuf!8pF& z1)J^Xd&q}}6_(f~0+}6GmqrKcSOCmPyT5DIi3%tM_^QTTtE=2lTzc0tnVuZ`Pa3K8 z@}I5L2zka^JD)bq{!tD4Q$Gy5N%Y2Q_bh*2m5{cEaz@r}CJ%5*=1PC2hvtkbJ`cz> zTg9Ub|M`txpvwP*{^#4^nBC>8eNNuq&o6e!d6n)=FMyT>%ktMZ$d9=G!|VEOGXU}J zh*N-+1LmUT*e~w)7q3TO=6zRRQNk*b43)g+@)z|81&GkSt{ro+jlHHT*eZ=F=`Xta zn>@~#$d4Zxo<0SY0~$C|xO#zd+cGMeM^f<&5;`i?);n%)qowzKiQXQ25uStpQLn}P z-p;B5^p<7nz1|D~GoA}EI_cJ^i%+hmTElvY;_JS6p~*+N!+c|)n#>-1O|y}-@yGCM zvj%y2Bj@mTPS_Ei>j2siLOep1ujQ^zH}|h@7aTwPr$D{%au~I{ZGl)Vq&tlPC7M#m z$(4?uc_yg-XS-a?Bzym1CKZ><0Bc;?XN$eGEAK0VsWxJH?Qv^YdW6Akj=qUk@6JwkjGq-InN_k=s zUh#uV!s#4r9%A($`!9NW&}jB)_Lx>4%g!_DfZY&MGtP~)k!LxX0)coOfF!UrGn zF?Ro`9MR4IzeGAN$4>*?wlcEJyiHggq#trdHJ>{@OJay>wYpqblyE%e&f~vfOEu7{ zOxld0lNe%9-t~5~mSbumm((L5 z;<|=oikz!+4|WvWcl!Ie!YPIs$g$u$$*s&8dMw&^c*P3-GPU>Z23QN)9In~N-g-Tz z@uayG|J44fRBMwe$L{C-1_T=zD3wes2FVilvZQH1|LCF7^=a>vup^~%rs;<4t8{_R zBA3nI!bas1R*;1Xn`HbxkbrMIW>S-u4SixYLcSUNF_u5It?hvt;Kb0{*!4c5UT?_J z&p3v$YAX+xwfcfXVyws4W_n-6ze*pr;$#_IIx^`R#*G4bl3&F2LX7kI&*_+`MJ6yY zJHEulR8ZT#*q>q4oGa28J?gpZXWwsA#wcyrw8lE}mo7JCT>FEJOIY3PYYjBlC1fC2 za+DU-RP|leUX_OVx6bvO+Ke98zbmZ*fkxN=ptmaEedcnHgxxBHSMW)*O-Txwru5E1 zo>|@tiGU%mLbDCR&29DJ@7Zl_Ko&tm#xEah-BKTZhE7HT$|%>sOuZ7VV*Thw262+} zgj`JD!A90y29TLiCl5+(O}85n<0nq8rq=c4^*-wzsF?1etR6+BlWTi!8voTFNQGg+ z3b~wT3bXSD+r{AA(zdn-v`4)d5bqN1K$g85dHIL)rEvO%_eg@svTr&;aSvbP3yydr2 zJxNsT;{CL`KQAil}<@M8B8BumOD# znl`PLF@Q1MFZH@Ki+*O-mjC4EbC{rwtJ!Wd1;FD)-1S5Y^C-1&U&iuDPN7FBPFCda zJwO+AZLV` zbBGVS|G48F8y8;}WAK>HY1DVhrk!2TW`4pVXOdI=a@NiCiFM-rtDC~iwCC()-A0ME z`F78^pHE11>?OLyM@II;9@;puWEbux4ztW|o9?t>=4mQSg6PPJ_8+PgW$i=nFwg(= ze4X6QlYpkk56PsxGPnPx5umeJJe{HiGAnwkFQfg%f$c2rfkmuTmhTe=%~&vz6U(Zb zMegRVK;939xr=RhHF+@VCNqqsdml)?CX2*+$E~1MPU7NDTx4WqemvL#b#b`11t~5R&*C->fg z#%sTdE97-EQkRS7r%xx_+l2#_R=m1Cc`gaL%rkFFTPnYcB6+Q*V z$-iy9&{5|mPaqr-;PYm(1>T=)*u_#igl>0+(P4@b#)FalrL1> znL|RM+;AEu+jR+4NOUhX5S^O&5~kpF6`ObDXuPYM2#`YVw->Vy^UX)cKYn({Zmue- zDHJ|Cr=&z_KKaJMDiNVKf_sQE0^Vk*1!mA37a*NI=>)|KRLCJ&AMf>vrq& zY7OkTbA0&f#PeM-_%Y0gu)cRby8e3Hvi=Rq$I9Nj_cc)enmu~6kKE0K9?h+@?!4u0 z6uTGpaZ-NM@9hpI1deLCXNMblx$t>6vhjP#SiRaSq1bNwIf^?@fz<)pVtI!&?t;qQ ze1XM{CSUkT{yyAWiQ9;KSM7`S2^DXW#(F-^XVl2b;0%OKidEk}*=0tQX(QVxS)4Eb zpokjF-7D6-q1z>^Jp1t8y)M+~4==?gx%}^w8QWTvI1ByDgYIaWAeiC;G;FV9Z; z!|lPM)t&1a^VIBY#@ z4nmd}F{Z;VMn$#!4_gHv+|FFje{k2Y{JrN@P~k7oV%KJMJ6y}jvK?-6mn*jO-ni1$ z_bGzi!|uI%uifHGav|XT-1n4JX{>3kl{S<$u~>;^257Ar1k@JVF%Sot9p5`WRNSix zxm?Ryp^;xKGk3{e(pFYgRV)8)|B6M(o%e9lSoGlI58mgInol;eA}Ys~Vfn*(lL_69 zlhG~vs@rYuCGX`(>zHnY)=`Zs4mQ6{YH{&s{+5hoXA=6(G=F(kKpvF0ZR|Qrw7v0c zNlG|BYmfVVwOie{_Ip>9>?gdVM!UFz0e`ecMPu6e*VoIWHmx198yyO&bK{OPeXqV+ z1ai2|tm2#I8A5B^nwNijjJgFz!v-MYdMy((2djaO%lCIqW&r(09{qP8V$>Y)#=9i^ z$%9Ul-qTy{(a2D{jhT!HQt<<<to6n~s7EvRtdW!dA+Cfou8f+bL+jXa zHKS|IVrjzTnFPJnK&RoKnp&^EesxsIY6zdIT8zEE&^Eglaqhhy8Y_WRf8_3MX@sg+ zwU)IxrJnip$_HCiXX>azQWS~v}zHUeSr6}xl~@1pw`x7L`BOT`_ZDKHA?SBB^J4Ioe?2@)i^-Y!(W=e z7@y|a$cnA3){S{&@aK=$aoJ=3=*)JP!3x>o#)<93Fo3zTzh`9ykkq&3zCTySR;xLD zCYCtGr&1PE!hgAK<;%M>a?8O3IXqE~GYdu!6l3(Eqi_4E?E-HgMv@ra0;c@W?z?0! zY*=!Yi&=hH_s3wbvXyUj=d^NLCH$0<(fWC(fqx+-w|^afcu+j3Al997E#2Yh=N01S zsLneDf4?kn9BcdcQ~sz}(fX;)r{LuAyNX>4P{*^5bIB8pGQ&F#cAC~^#aR5PlOSpG zvBXQ3gFFftZNUe%GFvy7!w*FsaM)p2x0;-7x1iOTvr+pi%2v5rGIKAdF53|tj*kiO zqUzQaPJ4byThO`NxP(UIc=>7*zR`cB5F4wReyx>T?tu6&^xfxo?P5yZ?Hyg$GGof_yS+xApYrm$8E*yOUw~BdxwZ z+*BvP?hCFvoX^0Sl6p~b3;-@^~OU&ox*s@_%xb= zfRC>|q!apKl+rXHq;RFLuAhX;9?2vOQ7VC%;lCq7o!uUnql- zR*fER=3kx0Fp`VZg=wn!eM#kbY^TI7iEWbxswZR2VY~uKb5MrTX@{YEooZCTKb=2t;sv4 zy49raqUQyhyQLi@?^%w5V_5CC<&K?TpAP!ZHTzNVbM_S9DFUmKDrSh}Jl6*QFJB8Ygu99_^VU0@5FfZSk7m_~PE;Nm|f+H9D z@XY}`3atzQ3S-s-wXdxRM~>r52eF%XxeSS}0j=E)YOi?fhkq|8etx~#_9c?3wp^<5 zaOy}+M5Cr?qN3gYu^Mq4kT$qG870YZnJ@V}jC;+s04N)Goz5goFBWTGk*Yj+W7W&I zZs5({fIe5l;FHRoRg~blLcPudL+vk93%p)wC+Bzz)o6GeAx0u!!+Sij@w@6gPyB7L z<(-X#huA$8ywymBOd2#RQ51Cee9knHg)J{@KUkLf|tBq}ZBlpnd_htACek;h&r=Gy( zT|4HacD(J1ddwWn|C*+Zf@*)A)yTg}>wI{Nierdx4K)y*JP1 zpWgV~7NS5$>cr?P%&%gJ9y^uvSUa7hc%oj?K*2Jex^h%nV~f8KOgpxq;kre~ zrNLDZ+x|<06k+wQWB)H-T2mgh%Mx`~TvxCSWA0G?V*7zYy;5DMDoTn(K*XR zy$Cayt8F^lpKs~Dzqir8IVh)$Rci3B-{uiub>Ak~kuLK`Rv#ZV`ynp-XnZgdc@|FI z!Mkn;KV*V}T0N~gdcz9QwfSLru;-#SHnnuLR*{My-7?U~it4;ZoAYyhlIgrwk=0(9 z&WpGZNcncjwub^(MKhD_7ij^l9&XY%hy(ui#Lc6H>xpnQX1xrD;gV$0mKUA2&O$tlmsk?tI#wrnE|B z`tBX3?;sj86fJ<{ywR4P+R_p=T#x{$kPza12~rD1Xb;~-BVSD#fg60Z+TsCXr8}WV*b~;*qF2zONiQqHGevk z&(o2za?{MQb?-?U!qD4Om>q2e)2hhYm9j1(aRPa6iFv zzWH~(A()oOb^cKkLG|@l2?ynb>U6=0ngNE&ay#Q~mo1@GS%BU9)|DzhOATq1inUKB z&h9<+btx-gZ0XIRDe!r0W6kZlT+uq}nN{!$^AA7R*0#9gyj+1nw1ny%6Yy!usA9)k zDQb=#q0AWRvqJtaw+E!YgX`9P!sS@>X7>3`!Ayr3e<7UfFgz$xrQcW`}u+#L|h*zV@{1PchX><(+Ac z6>sK_$^$CwF=v;eyXT!VCnLbBzLL#(XL;VX6~oij&^%yPXd9ibW)_Dvei)btYftf=U(&%5L0t&iP*%%_r!O3Edcz+-GO{MRO}!mRA9%ey(IvNt z4Wh#2)5cy*RrYF1511pB2P{|I9xpkwGjUww@8vne){U9<)k%9sD0-%H;+VeAdS&-L zox^iCV0D4_`6(fXL-d_GcFTJK(2;B#qjJt0wyQOh1$-Th66RNf)r72ReXpZ`rj;D6 zB&DP|(gBeb^;<7Q9fEYlfT&AOC_DdL%ho| zCfHtDPcAIRG+@w!@4Q44?}KyK`WfI{fT&Ha@EHJ0{q z@A>yuivgJSzV#%6Z~Odl0EzjmOrpQ%Q>I~j7`a~cNa+@gX3&~{AVfyaa+b71LHVTVU9++2c*g~!DSYS{L2c6k3QiwhZ}Xr&q%F&MKTXzgOvvbX{si=_d+GC8;)u!R)_77%isnR+i9{-?Qs0X zP*6PkRrNh^oVU%2@eWb`tM#sgnA+{lsrTLW<`Q~UyHFa~rAuKV8l$TNz_!Hu?ie;e zBPh$UNHtVj^lZQiYGO_`)e%uCe-J#K7$#>|$Z2vl*Uu*w?_huae9kTM4fkRQ)&05T zrqxkwUyZWz-_LK&HyU*!W+z}rj=+RFw6p`Emo{A?13SvSO2#r9WL>&q_(Fb9d1+*p zx4nPeMe7;vWolG3Li@`BnhIZx2O*H7j?|C1q}J`tZe$Tn^eOs-ZMnHFWn`(nu9a8YLz#=hs(^D2O#asHm9WvWoQeS4O~Qh=MtWCgvZ=a}{7VbcFt&7gIyPW8 zeB+#Cr~Tu>bi&>2D<^7@NxIHLiQ{hLsg1__1dBy2Q&OQ&`7FeS0S}YteNJ=AnQFPL0|z`9eL5a!PVIs`TJBI zK?5Jqz}^nzB4zrwo=<5KHrOU4KHeq-8kTmv{OV=ZXrRmo=!#OC%uW9lnWwOUvZKNk zZtckyUl$MHPIN<8c~7C6WP)zrxzm(8WKx1w)tXD|w^%WeaGPVPi3TqUF^aW_>U-kh z(bwlZi$49~M|KRF+PMciQ{y-!3LhO#y~pg}nu=h+8mZxm-d*_D@>#mUIZ8trQJ9v* z#a4Zq#*Ah>BGb&&DtCr@oaCx%n*4BiZ(;hPn@fKA>Jki^8jzAZV{HXU^}G!hezO%w zKd$Ki%iGWtp%Vf3{#!SwKYIOm(oxM-7d1Y<&y& zU{#r#n%*F-RiRHkEU~#L{JwugGSQ)xTb(8@F76J%Y%l0U%btvc40wbhKw;U}k%iCY?GhzBSJWubeh7pQ_ zn}R3N6jl4SFNb@TCfXVAMZc|fMOw9lHg$YivB}Lw^T7>fP2Jc=U(;PNruFw<>(d38 zc$WkAOqLLPJH`c4?u0qNE?9As$OrWC5gjOHEi^2$A{{j4rKcSmg=J}Ex`LV$kLB`V zT#sz(d3jL-mB&whmO6i_zQ|qj+SJEr2IMa^~F2@qJ=e{O!$@pR2?)gJweiUAt8=H~qn~nVS0=J%BHCBS@Zq63?!%yB~Ku_0Fi{5Mgy~ z%59tUG2afSg-TpR`-@q3#~F7=snpayetsEZ8u%c#kQ4g>T6r6%yb55Vnihq443~@_ zeW#=>w7E||>h|>C-?g2}m9`evmN5@?XXify;ALinu4LVlgQ5oBnvUSPo84b}oImHm zo?U?+ZHtIB3jHY{na?JDhHa=G7e5UsUF}!%R#=KcW@v{h%9hE!JkWc(BeqO;?zciX zO$(Rv^q_*v%oZDj(vMOx)}0mtg+njyeEF?DCe%F9Hi0ZmRi1R!O~t1WIITNj$>sG!Npy1m zd3U*-rI<%RfI?oc&a9Wt!+Q)MTJAd4ajM3zKdK>pC+FCXM0OS*t;)mNu7Kf*iQkBz zwPe2EsWrREqwfj^$Qz>Y;-F`tqspHa(qPum(eV2ES*cVUCqhona`9Q!%o&L#Og=@H zhOwW=ATk(zQ-6pCrhN6Zpl{E}O8)~({X2KWue-nc*z1miSPO=nL(fqOORAV=sgT%@ z&kj%(oP8=X_XaO;UkTk?uSs#k``}Xdm4ML8!Fg4wuNfb;OUoU?hNyR9& z&Ox;-UK3g!Cn&UgPDXOQ4i8+17~M+WH)BKZSfXih%jpxgM=Sf;*4b<6+Q*rFVX55L z{7%!wA{!veXAzWZEAgw8R|9r^@ui1_QReO4bpEZ~*bhER6D`}wVh=&SKATAFJR>Q2 zr(15xX~a6j)ZDyaVmX3?hOySdRL&`7J1`0C?A=_nL=J5F-XIlhHd|TU7IASC(J3M+ z!5p}&(C}ewNb&U?HN4PgI%Ttb$xx+k-tv3nlhnKfC=FW9FKseSXV>DY$??GUvw$3> zthwl^MD<1-ez~oxXnOCkru!8)=A#`^t=-RbCCiSKHWZb5Ox!;1^7@byAZ0`Rx9mhT zGuxDfv|w5C^eT)@o~)i38FbQhbG|n16Di$e=QsFw_>i;;7@j#^fJOYyOWx#)*CPGh zhO83U+~%=UwbdTu^-F4{$u+|6hF5(lEGaBU<#q+thBr-i?;?SeplMbZM6fG)%F4AOhm=VsOP_^(SMUH2!3qShu2Wbp0D1F_uTn^Eptui zL}lDPg;}q0*U?Q8pVGx)_$8&FQqm_`O8e2|lWcjMtu4MWhWQe1nvGP01vVHtFtl z5pc+n8kH{U1irn+(BhI|2lDQineQqEsRbQQxF2gw-19rN!F>L=0)2^~j`0sWHgI)h z8CsV!MmK*zL=>i5XpA7SO`VMr9&HWr?lB+^#F1OOmfQ`K(r7 zbekXJt8pv6XSO%ZS~bTT9#v7P;B;m0a~Y^bpN+bh_6R3wu9Nl_R$Os!yb;_y815sg zJu3a>z!JS2vk)+OZ{N}2C_05+l`_QuILYH8GVRXvS}Txj=PTRX0$Iu%?V08&gLNLW zK5mgKzjM+}9_FgXo~plyBh0qD7Nk+(2#o=q%t-j9Cw|fVL4)Qf+e@|6M>k#&v}`vg zJGUJB6FG=_B}Zs)e6^4nNw{T%Nn~;2ampX1mLz5WshrZW{e3&wosfG`=Y%O%YP;p5 zSB8tKY4wn0t^XYR>F2sp7e4~tfN%NN*5AfSoBLYkARV!VK_+}JLQEU!>Fd|%>F?S^ zPC^?G>8zO4jhScbnO95KarXe+>)xag^pR?b5}b6%>7%<$gPY2KZ|I8W9XHv%7#71S zQ?+kFE6+!bZlpU*CUT8;&kV$-&g$0qKKaz*WW>9*NaM3(fIap?QUn~z3=EHe$gpid zufN*CtO!}I^xBGB+uFnA4DDVTW{EyfmYO7{jI#qqR_!34Zq=(kl>;w)HaoAnU2+(A zsMwP-i`+a+Q$@1z*ki6d82~3noSDY#a@wBf-k~eE8b9x~KzKvxPP)pg9J#hj*7Dwg z$eFZHT3VXckC)Ed(+g$BROY-BS zP@_;8C#<{v6&Q5q7xoucsogMSxgdlalbEo1miPE>5uQ+NY^k6$QX^W6XiAXOW{|>YV{PyfRVVeh>8FM%>GWJjX=`h$DmG~tHv3SbpVA~9Xm9{$XIvG?3BR|4{?Uroi)0by-E>tno)BXPf}o~MW7C6q@>Nx_2i*PAiM zs+D%a{cat)b7-+ZU`l{we`at@i7kZ>n*=;p^|)- zTz+3i_u~1Iz)gJGY@5(zyYytN?m78^n!Df)5QmU%<^Ok?b7tbU+q#pm%a2~d? zA@TskEAgx|@JRqfD!x2YA#&|n96+l8fF)f3aWbWixU>Ae)7I4|N>KHHQuJZ9>l~Bs z&X@R}PzuvZ^k~A>A5?YTmxqq%K2W*4bg{ypzJS*w8V7289wXn=Z%cnEx&mTJ-Ut6Q zeo5f5aAXk!fXiD{>8@txrGC$Ot1nk?XnQBru-szg8lkCj26%pZ)6VMuXhX>iCFOCR zjPQEzZO?_A#FyiBimlvgq^+l+Ogzm17Por-Jj{L=z*mr|R}_m+F))ZP*x!HUy<_M( zoV1hhNs-tajgDzYr%fsqzwVOFo(UB(Mg<5!#t81xrLuNiZ{M9oZd(0l+s^x3m#4;m}tLOQfy^Av$;+UJ&ZVX9?kQ-)^zoqVLxW?!dQm5e;4 zzj-`(7nk_uRJY3X$kAY9VFHFtq$@xhalOzS?tXV~K@4^+)SYlnb&S_(>7T}CfH@pK zKQZBFp00+`1bg*R@0;3>gw)hd09K;tcW`aYRo+lLT`d*B!1n+k4?rt;)85{`!6qj! zFE%c2X6Fnmzc)-#{4g?yKHfetF$g(J_<*X7CS$T?uH>X9lK0tL5y z*lV={L5!DI40Vs$bI%e6xD1)D1T%dRE?>`m~ z^1xO)0$B9v)z$9#e_4Pgi3K3o(&7?~ohAWDyd6M82b4WQ-D<>0V|cy%ge;&0(*g+Q zo6iBZb#H#njNQmJ*#3tAbSVeM`x%rz{}d_Ut!D16O`-`N>wB&Wl+o|Z%1dt!>=dt+ zd96QN%>%05reW}kv2AC_zsAPxk3+*$Yovn$LQ|PoT1hA^0a)o@4|f||K&mgnYmTXI zKes}Vm%(uacy{R3Mq~95@S=OwH3AI(k3{@yPdQoHaDYZ5Bl8IWrLX_f5Gr+PA0D_<%0BEzB@Fgux$J@KcRr&JecL0hN#y?&bm*$jH7s)hqcy_6pS61id zae9VrkxpLiL>Tj~5kXiImz4U;8+*lvlX=47chgMp;Y7u88+7DYWCF%19SSQd{SK(W zsouUtuTNt%!aty*S$VB#Ucli6>jzWsCwqjeK!9TcyNscF1?m(`6|6$#6IRkxaapf* z$l_r7x@}T2{@9cVV7&_s1QZ2A3%a-5b|AXQp6(wh3dHpG+}l1L*v|o?LzZ_ ziZkZR_ir3YODxf1LKf|!O8F3jGgmi#a(9DWCApH;(5#IP*P{0{Y~r$|RST$}Rspy|GzI#{&7@6NE+oxP}K z0U(>Nz3d5`nX$I*_}mo1Az|?2C0l7}X~$=oV2R?on8ksDa(9BBpzqo(z#XOyIHMlc zh(GDQ?nG^#u`LX%B?J^c5bc^1Iz{pLBckf2dJM@IXNO*_S!@2zwKoqhqIj(!IQo0k z)V0*o%DU|nUZT0P&=3O%CQVy{2a1@j+BoN3AS=~$2RkA9<`qUkt95sMJA^=*XnQ&#YQ(&N%r_Grh{0#~AsK zyR0k&rcVee*GYYt?M>c-*((Md?D4V#{0!D9njml{tDd>r0fpV(zp(3;>>B!23BLlWgQE8u0BKz^53@tz<4yuTNRNjd*qcq3(;JLdzxP ziVuz&D00AQF~lfD6|*UGaXUE<&I2gbL42>6M-CUvS~#1j-t#p?UMU!~bl;2}472f& z@}EJh&K|Y8^E9Qo5~x=gH`t{m>MUnj8mNC&|7r-XVBnWe{m1*=khH?%&BnB^Zj;5 z7PX@y_dG$s5jJ1?NhDKOXt4D6?`B_mAg|y4_UGJ^a%f{&>vUEv(JR+)NCeilr{w@6 zByv@4TylxCH5uOg?P*UAV;u?cDFRqVY>yd>XRJ1DUj}U#JbuYUjp^Er0V%?mF)_qh z9&WELXRG}O_XCH^Gi@~Y_N-tNKi~11gZR%R8(sU;xHHeKGGnwzSs*tE{gf;2kZ zz2Pu3ws$DQ#C>%n) z$=6 zLfi=qW({2}0cnS^oN&}RtaYs^rtF@kzW_=Fqu>l}5-x)_C80f2vSP>a*a=o;wR^}$byT-L}x zzUL>q{N>QI?ZcM61+%`b0-~-f>7As^KVJ9AHOsa2(tAp<@zKR{P{A6n_Ge7HXM;m;2{mk0HlDVAI}#Fi*k_Om$C6h%|IkBsIwFE?1o2im|~Z+%w+8LnjCHk;@=Ru%_&%^fn~E7f+VmTP-mU%o3zgt*2lZdf6$Y zpRnZbGCLVuImML;6n|i?@~CzO+#>C+wM~<@LQ_+)-tkz#F?Qs*M;(W!1J7GKGZ3@! zImfTbVqpIi7w;-*WG#7&IQ7|&JKdhY+-GyR<}zq0#lB%+Z!qWhh3|)Tyd-!d0{a+d zKY$|?3t#%}?yzJ4yZvsoB^KDP;c=WaW{QK&A(%1^f%{<-eX`Z_6_@H9$02p{dy*?l z&Ui0rs8?^&MQ&WyhYamx*Y3yUd*)NwSGBsS)}`SVWBC_`V?*!d)Lbd{%%9LghA$>J zL>;)a{qm?XjZIoKYXuG>ailWDvgL2~2zep#IcNzde*@JhB3(MuSR<-#r-RHoF zU9MNGMf4@@$y@t0O}I92jJuD~{V{FeZ#ZD^^|S1~0G^8_DTH}%gFO1;c!{4f-~!8K z0D9-shI){GO2Tm|B=Bg!1#ySfMOp1tOhp}DkUIc#x=!EJrhW+lqm>6@^=adFkUnH6 zwIq4B()Z_G|I=*Lo^-d7niLX0{SQm!KfV3XU2UnL5Mm0xy$omfET|G_L#*{KCK?E! zlH!)0IXz?u41LAlG5=5iPWV$X*y5Ov$2lhw+}n||hle=xY^N5Ky zD)?dSwUta$5)yNFfOmaTOt@}`^X=Qf&beDHL;2U?T$9UmCq?q6!*r0te^F(`cq*B5~D~Ugyc2Y;eiW8;%__p0w z0<3U+Td>g&8sCfO)+hqL6GcmpBBWG2K%K#*PA2q}rWm9L_1OIT zzF}XUjrGmW=;qg~?h+WN-i ztb`dYu7d}#8z1da*$=!?4?_Tk z#xJEKO!)8M3kMfW7Pr~KO0QFcmB57!2|=pr)@M})cNM`q-Rhh%?ZbFN3aq$ux*2-x zMl;@%kYl0=K4!wxxR@+VTv^dAa{jn`1;D{m`-+$ZcVR-}? z%6Y-8FpPK=uxc=^#WWcKu}6?X!)c|JWoCsj>RY$GOnjZox0!!$&>bh`m>ZHCX9bPp z^p=coRsPBKvUcUwxJGLMiYABDSq-h${P!lkq|~-+E3Q4ZW9}mB?I&LOn(8#Wq^?y8 z?jAQttHJa#2nhM?yiMY=uj=ernB^PFc9S66{8P8=Cy{8KG{rxW6Sfd%^@2v%2|tj& z#a0@&b$_v*a`10M+C(98^dFoILt-7R?7sL6uzPC&<_y3_=e9bY3i#k|e8|hmk+JRI z{;prFOx6z!s?+VUYoX3HS_1m{xJy2wSo4vL5d#m zW82L4WETD*WyhQJ2(=yKN<}}EzL;Qu+`HxzNh~fs!0CL3F!Qo!xO;${+DB`7Y@(4V zS>ERUQm_?H3%xIh6tfE5r^WZEv8Xz~On8ygct z&&WuQ+w}DG^nUlQc2%0bCIDUfUG&xz(tqk(i|eNVmtBFQA27OPg<$<#Bgx^`V(}~&-|@@D&Wc-$|qntPY79}k-S&{gbQaTmM6wxKKch z_pjc^qqnygkRJm6E5#p9V@Z<6l{h?J1CR@1_d&aJfOL!Nikzxy>eiMU9`WSKlUL8` zO*H@9pUmnMqF5VtPk(JV-3|fJ5K8{THX)amej;FoNUu|vN8~9SUXDleoju!r^xWb*I*c?KmajZ3c?D2+^`v-FaQ4i8`uBssS~me z2$Zn6_~IKI9T4FQ1GPWZsi0B=AWLgz9n4~CNCZe#_P8i0qsY>zjdovQ5*DVpa%q>Q)K04@fEnl-pKQ!e6$Z`Iby}L%p6)N&f$1JC>G~qwa&IDqB73WM(SB zwGQaK<^iW+=DnBs5s@-ooZ}q=!GVS`1HyL}GVZ2ACf>K*YK5T`mO ztp-SYs(@$i9ut0v;6GIMM9mZ9#)-wQ(-nTQr9O4x5oH&@T#A#20X~vUkJBIRD^^Av zM9uVpZuqp3t#z>Wa2*LP5iF~JuxEJz5-Y|vB`hCS+*p~AIO}Hh$b%Mq_l**$;c$22 zVAH?K?7U|p*VvENKiuZDKpC?ZQ2h8?mM~D8@Za4Mp&4fY??z&^!>->l(S_7_(7{)4 zbC!9_^D9yR6SkPJTrTj@{-gJdES3DgWP(%*4nG88oCZ4Nw|)@LvZg>Ns~lBT_-oKz z9X>tI`Gzmi;qHkXfJ=@6Ept?~>kkvJNK<7rMAHeOM=JF4Ce#$Cxdutb|C4ocs~8~z z)_3j?H1nepx!fcj2C;u)k+bi0o4;{jYADHD^o$KWazq39vsj&l{D7PP{>KAqfA%~J z`c`KtKE_iDcV>Fyd%qQucT@4{)b!fJKT2M67iw94wM2wKO#Ix184cj>VHu8mL%Tw- z`h7o(zEvf%7MH)Y9p?%a+T-!}rPPtn_4o7K`gfZXM_)(cyFCTR3D9fbi*u7dnUN&T zxXVgjm3ztSYY=$DsivloD`+-P>`Y|6@iFZhqx84M69>eHp>B3`Lz_6M%!)w*C!+IXXcSvk@`(F_qT;)9K!?Gva`l^!yWwOKS;M z!0`?yB|>`2H7xOGXc5b03Cp1NCQ8tvJpR%0i5Sv?X^6L{{US&}14Wi0RWmW?*~@%T z6@|(6k^`w^zx4Y#@QM9S^zhHse5%&un(d{2r19I^{E~G+L~v8Bi0VO426h_^>|ysq zeD(A0rfw?;cTXcd^r962qNAtncnveRZi^|%CQp?n^9$zhm%=OaJ_K*XQX}&bcSNVH z=gg<`TeYfg^Z+OlaUFfrS#FJ4a{T}V@x$Xhz!G*4(}iA)CDsRxLrgqUqx6swk3Ir# zkuL>HzFtFl}JxO^a*P7%8XilV!aC*37z#vOvBPkt{$> zq~R(qv1-fE>GC$fPQ{Co_b2G`T7n3+(t!1|d-a7ZPZ}O8nsFmVY?F3`e%i@0<)V#s ztgX@SZWLgfGRz+TlDHznCM%a|+l6qRo{AUyUmIr|o!ZgX#M|fxv>rA2o*@Ftwvt&c z{@@uf`HK+H%h^qRAqZORzylaD;%1i7Xk!Vx&`SINeBe(00D9yA!c%#}G7gpJwM0{} zrB*n`x7Nm3`$@7lEUp!VN*P*D-bNc?5j#^{fMB)YxJZ|N?=EMf7J2I#9)hjEN*jIj zN;MxbEGl|h$CYjz*ZOFb)9U1ZgWvNH)k}vg#oaHlk(=qY{UzPwcwg4tj+_bnP8MiS zi;-groUw9(Z3Tg|5j`qd=WRiDO~2ouF=I_e!2}ug1Sm3ecVBcB%{e0y$!d)}tihIC zk`gluf)bb1;4bCsa!Wv&R^A0uATRz!mV8LXFM*$9y{#qq%P8S_I-<{jRzICoF8HX! z5PPys@%ksWX@Qxo;#WuVHF%3t$D$lOJW$IYMg$Slp>IY&7`> zzQ^CpynNZB9nzSx9GJwVLiWA0!L!`$3=maqYU;Xq3SoBx(J@d%5TI5Q{q*%@AX1>C z5ipQL_sbB|+Jr}$)l|hba$ujsFRgj^&Q+zJ9%KwWBE5h7=r*N^uS_I21t`Hp6N*=u z$YW4TE4umICem{Az~VPc1|pT|#f!s@#(Ce?4`CqXW7e7UErjeLT;Qr$^ZuQ7*602a z=?sLHd8^r0;>9hW-R7-@qGeG{c2Dw9Tpr`L1B2-Rz+Eg3l?=(! zKsivrRhm(CW2l_2t`6{l4f>y)J2o*e`=K&Ps=zsQTi0%A#J^<=kiHo%r*d0Z8WBq9 z6E-mACGQ6~o+Ar=ADu5z2TJ&mWmPk=`JBbp#Wf#le)Z(LGlvEP&17r)E7}+Xm~!ky z=P!*VDM)zVYBi9ot9Pj^k48r+5(btqPfk3hJ3**I#|fvx_$1}3e9Yau(jdQbUx_}- zb(xX!Jft{f_tA+YvC)i|RZb4F!*VdIKc9WL?0qX%Or4OjUGg5?K4DaxSl+F`UPpRw z)<8a%qM2yp*6WU{R5v?A+tzk3zc^=F%c+NagHVJv0aVgDR8K@x-k`gH3YE@-F zikED$rdzjdyDJmM-W1xbpq1@2DwqnNZf%@M2IyVZ?eGRaR*3dy;(Mz1W<6=DdV?Vu z>}wk#M)gflv9+|rUq-Y8%B!vng_@*fti@GEy(V`8`eeQimyUO9jBGW9rM zSnkWwqmY(mn|!)-x?zLV*Py1`_QXfTOn*aDyK0HXf&<3c;F#7wFvyw(gpp z({Klxky`}AQI~b*UlL1eLO41c%>ZxB4&99ROYJdo^~ar*hw^LDU_~eViBSUu`nAhK zfMeXX9yl!^Roe#$O5E8o1)f8kjjHILO$Rj<8Y{p-)E z@BG9#i_vjVWDfj?k3^A2pu8a5Hb&5Z9MAfb(@(iNRBH7_*+Z&85Bb%so{_EuaL7=U z*mb9E(wYGSA7D6X)};X!@pKKDKaVZS<+jt5*LF6fye;!|)h%@NqkHD?g1f~wG-e>0 z2&Cagyr+C1t5&9>x{Zgx zh3>*2jlBSc>%v&A0;rUcAh$mfg>iO}=M|#dU_Ity=StkAXJ(mnoZQnr{rdI#xCU6= z>@%1D4a$ey0wZ({PdTw?qkc&9B34{0pLNWf2So)QP?{SRE{^bY5 z*J19Hk1sJ?@L+_S1)=(qdk)R$i+vk!fSHH0KYvGOX4OISVGtyK0f%?O7B<0{Zs!?Y z#`G^y=Yr|!CYd^?`+`A(%8>ITT*rRoZ5IFZL?{d;-rn)HkB%48Q|uEp#pP)s{dTSp zFBqdm{-R4W2*r-Xx=@ypnxx;gOF2C`q&({qdO=PN$7go9LH^`Bgl7E756@*b$RT0r z;t(`{kLKbpL(Ozvi*k-em6I#?CTPU*aKQT!fN!$;CEdY&A9b(pT#3$l`$=5$JiDjn zzanTM-9S?1eQAG70MYa)v_fzsV{evh43o|FocXnJdWg~w$snGoscB&qJ5__TnkUna zql91n^EX1FmxVH79J8E`Z=%!$B@E|9*(5E*~aFU`>xEk}#?NANP zTr?G(Nsz+*|J*!e6DIC(z1AJZrvQB_OCvbGnq>1|U3bzq%OMZ#&D!f~qE9oddQbVH z8@>O;k;6GpXn>l3)1h@=jh*IZvCb#ar!T(`h;f^DmYt-=xWSBZyQVxJm+AcfY`vPO z+M`KRq#FN&@qRQmm3U&rg^(MVg$hxi3oufPAqh8cs=ED_zhHQu^nX8aPmYCz=LgUm zKX8NIaE5$!!31ksXq~tO;^3ZRcbKq*yc{}o`@`5Djx3V6&yP~D*vw)O9M>M3{YgVmnC0rL=g0O zZ;qR6!Su3uCU1%Re%UH1eZ%1?O?h}0-7fUqX8{bZl>NI>e{?`0H z!?rqstMSqCG)A^inR=jlt(rXA7%?#EGV2Fj4`W5Iy?glvmFNLj6dwcyy1`Tn-(D;M zRxjJPH{hrQ%9MD%?z$KIOSCU_@;4iOry*;R@qf?aCD2BR9V>9W)%?FaIu=X18+Q|@ z>N~{YNoCLV-_rY&yO`hH6}|%0!79D1`Avj$`@9ydgl>TaV9wT zO7I+&EE4STU^$1%+lT9H%}nhYlXTEy4i=$6T#EaD zbTa!F@H1z`tMF0vthIZ4p8M>LJ+ZGbx@|+~V(9 zummSwu10IdRM6)e-u{mU(PpUoHREX!^&1*=hBs4Kna}qLayw)Ge<$Vg8fUD?TH575 z!hg=3HC2xZ!ASdiok-AUO1O+-%{A)~QV__r+?$MwFrR;Swg^=BJ^$~DU!@s;;o|;k zNWG;bbkB>(fy_`3!}VW=k$%22>0^NPo+69c6e#tkwHj^1IhxgntH+35xT(eDHgCba z@4S&+5He`aiX{S8IIU=^AdA@J@mnxh;C$rWien17I+i7`z(+&r!TBVqy(FCr?l=9?r`>m$G*_a6| zj@bb68zzF^lNBCn9C*!Q=3c&G%Lwh-Q^u1B*6aKb6gP0tUkPJ_UQmxetu3^HJQ6Y} zAKH!uzy$z>~4H`s)WG}wn^<{Yk9PoBM%?E0~n!Xi{*M2`(JbM|^x@#gTpGG1Y@ z*)mrAdzEWV5_#}#C$Jxm=e2X+77yt3Il=XmKBv#mG?ODPxNno8yF?gw*N44tkNli0BjdrtD)dg+T7$asr`V~#v zerGqU8+v|Q_G3%T5nSp6%^VfYuYQ98>*Xyik*!J>$X)Sd!l&pg)SrmmHTR(z`m?E8 zSeofpdG9JN&FFhc#G^5Lf~E82Rd|O3-|pPGb3R%{FfMaK9Vc@4*q&2Y=hV-8_}X#2 z7xGB!`SBWSVAL@`wL=or@oOG^g>F6a&F4Ix&WG0w89hymY`lK#HYH>BU8VJZK)NAg zkl&2XPd1N@*XSfds<@V0ssI&gfYNV^D&D&Pm`9q(6E>xSw&=qQRhzPicTV)BYVtl0 ziX+15G*hm>uAcxjC7>K9^u4hgYTCiWGuphk@Qje{(;d%fh5<$>WP7YeJ|WvHmHF2{ z-k^Q7&8z9f*w_^@BgfoP1$Tv$BkK0^!Z8NMTBaO+(HgfYl#lF3fAyA4 zlD508yUGlpW&IVcTAq5CpZ~$bhxDMuJ8T!AL%#Rm;G*m*s0z32+gCCDz|QuKpc6J> z)1Ostm+4O%CLh!NoW%X&;z_Y3pz&0x)xC!OD?!9i%R(0!X4#f!o{v1vo%nbmEG3)4 z`c!LPOG``SBIYwXW@cyCadP%fjIy4pE~9OtW8FT?v-5~-ndA6L;s!Hs=hSBx*bs_~ z`ON)E%G-(Gs{PJxTLah`n)J`WhwS^P-Nc*h zX@rD?;<6VU5#DedxV~j5b5i@X>f2xK+)ra1b#0E$d)5999)6beiN@tmwc~Nm-~{~# z7mkr9wcIt5WBRagGT6q56%hdWcVE1v{O&;Pf;wB z($HKDv7WN-{=FZr`1>b%i0=+TZrw}!eCrX@7lU0{hcm8K6jR1Q{OzHU;|6VqdX7uU zZ-2mSe{t=l;(oWwHAF@YB~6ZoY`*s~$Ah|w#|pl*+FX^DHW3{7vQtrL!pj8_ZecRrQi9c1IS z7PbygPDGrOeffsXP~lU+LY0@65V>w)5Uz`6CobUG@`_a+Y8Xpi6QnU+pRP@=`&4{I z(^0F(KbTZXm^rC#mZ=rP4*72_6b%9iKOrdM#sZ`kb3;!QJ8wzaB~+|uz;*l!u{!{+17*BW-y%vNn58Jh?@ zqP8z>8&{pa;Kge#o7IH<$%y+{PuZtYum4^wbWD*&)3*NPVB_8s z9USwk$ra^%)$Qqa;b`hl?c^i&a6cby9U3K^D?FSH;1m7yk+$NnxRG&kU@ z2GxVZM~_t=SxtR5>81i%j6QFG5MG^PJ6x1qvrwO^)t?jO_>DH>^N)Wfy18u4n(KYBPhK)8bkd(tiM1_M zQ6yJwfV))uI5W6MjcPt|>+<14`U7;a8r#NkR0^|C2Jq`!51p^qV;=9|keJ=}V4s5r z=~}A66-3;4H3c>KTs_zG5K=gM@Dv1Q$|o%FIl9DCyd`ECA0>KB&i#Ve&SlYQ1$wc zd`PS><;h>=Xl$tbxphm|>7;_07Pe*k+N3miaXBCUqgtFrxrM$hXr2Ei*tPV}#%d`6i0+>v7~&-HT;SB5RUy9pq2@!+K1_p0mNb_YJ!{5D#3^Qe@% zAi41Slh7^S)i>2^W8Z75Cb~Im)V<4{Ugtxdl$Ipr#s~+(4I;k$u8;XZ_oF(erzBW^ zSxEFV%HzJ>!|>g*o$&y3U)E5qiEJHBmYD9jvVqJUUC-C>|D@z?AfTvtdCzl5=+>gx zZMzUEr*mF|J@%$ASl2`k4A#{Ca;0F|80^8Sxri+VYmdkj?U-tJHg)ZFF`b@eK0te= zGcAud<{>5Jzl}EIg#X_Bq$VoaxhD0));a2fXO?GE4ZrU@sBr8lB~2u;qUlX-B8v&n zkqyJDw}W5i$9RN!OfJ7(rF?$ua*a(Evw`Xc*Zc>!#N}^rPkE>c|xpG({O{Wa^cnqNeMc(k|%vF4I7Tz{sUt7u z+sK!{&`rpJ#8!Y{iESo-1Yi_})R zCI&<;s}|nzO=24dZ?anPI++_cI8-S_$SC>38X#hoGSM$p?_X}TS7>dbu*wjL#`sinWPXuNJmzDU~u1WPH5@W6pKIPP*mTrx^K>lS^WMWJnVI+PmS2WzyWMU%xiE zL{=TM1Y^?h2BqSS4awUBFBQMqqDm(uvyF-Mnsg+^By%Ilcb;a@lO{Ed@0W>zU}i?k z*|@u-_L};XuzRSz^2bB(p8UJ`y87Wto zHY!r%IHnypUP4vl$km%oL0OOe@=7$cJA)lO@Un!IQX~KSK*MQ`RwfM zvy;kl)hC{P^_kq-!7ggt_B)h=s{QOfu2nZwmY|f7+|FU3&F5ckuhJRj0&Dl?%^SJ4 zfipE7lfmib+6)KGWAm5Q7}Jwnn$KvizO%h*jM|Y{^`v|E@Bcv(eCO7!UoI;1E!$eX zZQ}vAG*N7}dw$!wIReanygEX^>7XAtymcEl7H2Pv3$0}2E&7o+y^mdpH1heK(5 zp|8V4ol)`o2OjHKspC6;|MN29Mc+SMkq;Do4WhQcF0m`4it0og_}j5I!=~3b zK#Yu;Rk#xM5C$Q&KcP6do>BTQ6IF7vizF#E>#L5vInxsne9-0r%6#_f=1_&WE=-Ts z-wFzC(Bk~Z-e}?p>XR*W9`5Us&N8leQ)#bJUf7r$y+B#|9dfDm#<97Q>69GKJ->}$ zXpSt=TSdrLKYg`lm9%L2tGZ;WxM4>9#hW>#RbbU{0Db2V| zF^Z3}#%13w1qJ_?e8D?H;Ji{EJJr*tPo*>|0Uw|I1-}G*vt5xzrf_!oosG zoLp-7tS^2$*TdbRFxj1Z!xfJ~xmdLEWJK*rqEEp_VrF8JNj7hsn(hjf*4pX)0%y$=!&H@EaHebI(i@x}iRTUf{i(2S(# zd-^orSA`2{qv@x%pL}?rOAF73gqS6fKpXS=u5Q56-HOD=wj7oRx&O16Mb`Bc~`Z(GR-;pVWYixHJLU%l%% zRb#rH(U)5*%G#9YC6`Y(hrM6ebg=%6Q0ARd!#2dO*9W5`n<0^*Mh8hD2Si!+oiB{0 zI-cnmH)l!HtXkWSgjYyhV7}&!iW8Jnm3pRQ(pc?n#zO^@&93E8(3KYX3*daVEyq09 zj_Y1KQ`7S^;wpZN^Xkn*@+n8ZJN5}Sxh^_a$LlC0nN-1sY`J>%YMJ$2#?56D1NE0O z?Dvs4wd%d{Lr$^xF^7&u6%TPQqvsSY7?2$Q&Zd*HDZXUV_`l7fh4?mSNB8%e#ijM~ z3kwTR^+beDVHRHOzs3pK-zVNfiuVNyq^a2@titOjyZu$QExDunCnL2p9W(w`o-zCV z>HedQ;#Ob~M6MJteYR*`+fBx4d*tut*A4s4YN6@52~EX7!-Q(>kdMzzn}Od|Nay9H zzI^%eTJNtYeIA97{x9kdWg_KL`Z$(8wCf{GABT>P4&gc^C+8PthgR-2t%(y1<8)lB z+gb9Wt>JV101rQZ5s?g*IU__B#@g=m63W_}$DXL4zn11X!^Zsw$}fG;b^lmr)|ul@ zW1upbU^O8vocA2@aU(s4aC=6LQj*h+zugyTo+F*YsZTpGWU??fomX63%ysBytwR}7 zZSuy(k*5_Dgz6d3uPn8OI{?McI(+qZAO4VJ|6`+C&_lMW6J^gYfz8p_evb{`3gB?)P=B>*M5J}%e}KE{N1~Q-pX&C{Qj*3 zIo+VvX)-DQ;j?_x3GUa=3=9QGJA6T{Oe7fzm1$4+@ ztSU-Ov+2tN&qII#xGRc>bnJOMH&JhaA!k2)_%OD2V_cM0`hL9Y#90sNf{_~`f(4>Dtk@3rnc>w@}4Eb;4QA0Ny$ zZ$np!Pe4hMHTBTt!XT2%>o||EM_!RT=7o}yc;gLUN|yDLY0YEgoyjy|#=5=)`e*Lb z&l|?lOda=Pv+GJfl{$MP`C5HIcegRVa0)MoH6hq%;&>cWil^ARRJUw7JCIDsKn2xk zO^Ie{6I7=AFRuNbpHJ3kB68)_)YMX1FIf=UOh;lyn{aZQl)F7nRRD&QQi>kkDJ2!W zK~NnTS#EstFNtTDQWaW+-tNQxR({k!b@S%U;gJzNn5>NPY7HE;fK@a=J1ec& zQtFAzV82`@icx3V^p|hXJWCs&jw*tD_THmMI}aWV1VQ(wudmNG8-(m>O-)Vz3>_FK zVlM_@7^w|js z*jb{7vT#xJhS~x9BMVwK&sYA7YhQy9+}u2C+EBqcoW<_7lV5PKS)TW13z#9( ziNQwG0CW^QXxnd0z6RNIuz^yi(+v=Vfe^|jVxe1i|Jd3kASPDjaL#2hE+HWSt(mWt zxGke8!RVLddeF&Zag^R!vrcNnM^4ja(il6pGqo#3WTUvbD0ZS4#0s%jE5q+28K0c^ zu*k)m+jY*8to}scZc?;8Hr3|6F{soKI{a1o53`QtX-;wXNctrwo{EcHa?y@>QF$2D zhoPaNJ-?HpFX2?_i0JlxU+*%AR8&;tm6w-8#aKhXaeoPdgM5cM3`A$v?4Sr>I?t|M z1)6q^Hl46s6!?;LGj&;+LnB1jdF-af2@xTVMZe;->ZfLBgAjwffL%`W#{r(YWX#ra zahYMAly0(X(0l6ZD?NNwF5hGDf{Dp{NLk#XE+xJj86Ove(-Pf&>akQ8TT#(X@6j}I zx9N6Yh2SpM_U5WA=h>2$FSmhVcL8hPD?92+Na%ifBW@cib7*MXKI(8$~ zI^J_vM%xP;KyTj|`0XDazGJ_6LxE8C+|k8_`DH2S)>D_|EZLU#DC|PmNiJzeKiqyD z8`~-DdZ{VC6UU1JFcnf-Yrtt;{{87{gJu3Ev)T{tWiKT|t>@DE;`9Mk<^YUDuU0O1 z18`(sw+{c@q?T&6lZs8}=03cD{$N9@LsmI}EGDg`N>#^TZffN1B&uooscfz?G4t^z zBqmP(@!Xs;@!RyJ9@`d}P7U)^4+w(LM`XDSum#@JXmYU8Az(c_`#soQ0hO2*MAin1 zu88#I5E+CAAF%CbkBW-=_U&7+b&PVf3anmhTiY`G!PKq;HodHZ>YtF_{7e?3Sz}t2 zLl$BYjDj%ThTX4h2Y&w@Yz$J>cJKi5c~;j&B5o31@V|mSpHKp*{vcLjsyocPyY}Pu z&CY*)#)4OI+q-F{+wOB1y#n`U-y0QST=jl^khsN!ZYc&1UG^dGzL01rf9uw*S~w?( zd;&i*GBTiF%Cgo$bWUbi=jOz)_L8W-{;^{MI ztR*9`R*@t;P!8UfUv&42d-qn|oEypCt(h_$JWrO%Nb7g9{$>Z$88>gtlli3BE!bija>#T*eN2D~hb*?rlSIo0ZQbF$HnTojMa zx!?D-s_*H!{r7~GD6(HwgymsbM9aV(nva+jnov-INEdAXyocx7s7iXgdff(A2_L~~n zVS3k79_+o_8(aOVW2S_R_K+4M!I~-h*A3WW{-v}Sd{}@aypogcqWt3t->3NH z%9Sf0;BU~T7M4fxG63uS2M_rDr`J>BVtyuldThho`uZT4ShlN7EdD29Jn*N45!;Jf=IDM$zYc* z8y*`Q1K%JQ(8iWhQc}Vqq(Q>+aBBWXE|0f`CPohKH{! zsD{b>JtOm_`!(UI_-xQ8h3EsrPBAK|o_N27qW_SM;sg%~L$)1}OHk=a7_blZ0|ej^ zT92Jw7VV^7h?xe|+l+OUN1X85uzcl8t2%>cA1#^>CAU2eAUl)=#tZ68@rLU(FeQZW z5;ge+qqTZry4>~P<_Q{E1qCA*FZkwX2x}^0HN;h7)Rw6Uz9Tys{b8|e%=T}@W?J3? z!yX1~g&oJVe*JgBgwJ&};T) z3?7|C=q8J5`BEVFa60WSlTv%jH=Q)&>A6~?98Jkwa>);v95GKkDX{nz#wZgwfag@-354B<^~E=+f2EH2E7S~LaY!7ck@lNDj- zX8!gZLvt9|e*+jKPyi1AcSnc6GKOBX#mckD9N&Nx_znq)7q5?bS~c3#FmrR4%}tL@ zqft{TJW)?wA};1NNmNxDZ1s*p^&L5`y9@l?Y~Xq-y$%K(a8>JZ*RAD*~7=jr|CRi^>?T_ z6i*urjAVt-h;547pZ4Mr#KW99P(e7R@xvY%5ZG&&|CqeENcCesR{fY-jfr?aKkAxU zyun_A&hprO0|E@;SW3W*wA+?x*)A&$H1|+1|-12p^^RH$r?Xg66zNsfhEZUEblQ z>^TFOWu&3j%Dw3SV>uWk<&dxpF>j2<{HnEF#t->wovr-(Qh2+p`)l{nJcqaK(5L~5 ze^D%yjeups`mvzehaALE&#^)zCIz)KYN<#?B2LR7&gNpKqfL$7FLn`F2%6`mLE@p4 z&gIkQU5X725fo~e@1oO0|5li)h56a^f%1X^D4^C-5%58Hhyi=Jka9kOUAyifqCJ?5 z09+n6AUHPRvGe1&RS2WEOG*YI#!T@i<$k~=LTW>>FZ(Q8kGsr|tD;n~C-}Dns5xkD zyCy#_Gp>nysga2x1|xF6J}cC9fn!&#^TANiaARPl5)r*U-h6marDl$soeP_Des+?V zhvzP4-EzE2RRk0{6^Z*$jtIkS71Eq!s+!#Ax;Sq~ie+VF+^lu952q)DQ>?kqiWNuX z9&|OOuU53`m9%J*>aC9Lvn^?E&OUE2Ju{Pbt={aj)T9Kpj+`7VVrNiYJ;8MuR-WyN zFAq5fy3?!@26OUGAryxIiQV_|(r?Lehksy=%32X6z&db93vJ^>&1#=4&UGCIo3tvu z@f^?$ty0b7O_B+4A{%zAmU8bWKf9r%Jc4tiG*|D3%0xXcV>C z4F+LD`XM&OC$sI(Ersly*Rim`@bWIgz6OU{Vp2RDhrq7F)a0SmGv&|SjYtJCA?DwL zp~c>M%q4+J;iP4?AM|e5C&53p!p?3N6fCVP(qK894*eUvxsULA7M9$pkv1Zk#(^LN z)gZHi%G6^(;3TDi=)N!y#BX_~A_n@j1 z>$C&c?*iw!73LG0ndN$^pDnz_@V9jed#&1K(S0umE)@+Z7q$2&BVUQ`zI3E+;7Kt3 z>C+)`$l=O*OwNs!kNvu+K=3LktnVTXCC z0e!9qCs-1Ccr#=^8JU^Wok130++SllNI)Ys@@*YeS#?88i*DB9g45?~^<=*6TkrGQ zg9JXa(8+p>1TX5hx5>%LktSwX1VCVC78w@jEpYtDRQ}Urqwa8;SxyvJ+Le{H|>XAdP=GSL>WaDKGG6(iQ_~lJMv1xx|4~E>nvip zx72knPj zZpJH|JBK!K`#!;~zZ*-F;@M7?mNLq*h?V@I541vQ-nZ}hF?cBzCc=KUU4{_F8YMrwtx-(`mPDb$c)y66R_ z-aq=h(^f?2s6%#4<1~Oy_f<*x@ahj8A0jA#beqSkLm4a9`;7%Xv3qCKx0QfY59FoK zS6Ow|Oq7nANs~*3pJ%nFd#^5U+GFvG$=Z;TgEWHTK*{*rslPI!q6jchO-X*Xj9KE0 z==2@@>sIhsVkWG(H;@vXsA9M9rFHp|R8%Q6r;i^|0+@0~G6N=Rr}p8f23)^L+^8g3 z2IW}Y)$3K_{u=w^#{3UF=-9|Q>nwX&3?yOv^WCF}=pD)sMI4#Fqjttsw=nv8&C2Jq zey5_*cuVmDYAINd$?@ivzW3lkZvLt5VRCgBS_F4BGu6zjca_=uh(6q?$ZAO9=TzjJ)BGT>%FoUiarLB zULhM}PZp~CvKd#lv#fR>I+?c~Hjx6;2!ef#!p1p+wIE&=r>dEjBO z0T#Xhj?m{oerd(bafq2jxItWgBwQS zG2KIJJbZfe<)wV6?{xIfItza4=_pjc52=vh!>wW>RojO)wQodns(3O3)EnxsfF419 zK0sv0BOmw;4u^1`R7isB!SJJFe3_s=#OVo%4TuzlUFPh& zCQvs|nk5p@1)Gd&)mz}YMNlk*NM}_}%%w!aFhA3><)FfA?gvxGM$kDGfRgCpxnUYU zPM;`6O#eeOoh|F$cl@55l_D|A2I=Lf2H^gXcBssDbxoe< z;NZB?{bQM1v+LqZlnAE4qy zoM&#Br}gmQyw<~3L*VxjW|zk{#A&4`nAIg5b=||4jphDzkTE>1IcdA8wDLyyG1|fk z$AkZl268$`rs?bpVGr@fbEBF#EwqvN?Ql*;hKitl0DqWCPdEq=uiaAI=mr4~ zo-**cK6n=H;(U1d&JL&=^=hfh8`*BsKXj-5s|Rfw-_`v=v9gV{QhZ2~jNB9_8L-USpe&z`r1#Vmz4&O@d&x6!V-6aeq}{%e665a(IzB6Kpgvjh>&LHHF-RKj0IGk7@b@OxGB_ZA%$wiDwI{;i7dUCZ2IRY* ze{XOsuZJRclU*_K|J7UWNEQycIeHocP=GXFPkpiw@(-F$14&&OHAupuR(c2O58F{b zXDPY==G1lKumMqeKqrAzHu!drdHM485ml|I4>)tgckyb6f}$b|us6a2gd*zuEoLkk zR~Pgo1~J%o^>0pLd@sH`=pgKZe?UM$9%!no4JjXwUg9HY0XM!0%?Wbs{#LJtY%Q%r z(?nVCD#S(TmQNj#xofjZAykRrq$oFVLk_SVL^=ytc@rCb_oW0JSiQCj!c1f4322nk65~69b@pfTS|h7!d9ebyW%R+P z|LVRat|AiAE&|Z|5oi#4mN9nyN!>f9jRMPst<6K1WX?qC!S3!8XA`=*pv=K!DcMia zd^~Ikj2n0BjmrrNXn!#SpK?z&3lA2i&QRlcUj9SZ4fitHiL;b4vmH9PKeKvq5;qG2 z5AX0hCqp@kDy=XSYwu1wZHAuBm#IsAP$v?P)`2n;y{XQ?y09YxTX=^JO-v{aoIocg z@3mUh{d~C9&u{BI{tQ@n zG?naFeUDnBOsf2n(Vm+x@v!TYVM?)J^U&j!c4+Vsct69 z9dlgn;YRVtfRi8~kdetXPZj~tBUwo(7_bk>J~6K;4Lux+7>J3Ty};m^Rvr*z!(-kZ zJFcS|@FGAOiFS~T1t;k-HU-Qliv$-~6!RJe4&ghJ=nI`7cQ((dzz#yh# zEzr%?5p0MpbsX?~4I^V0GA7#v1iVghJKRB0Dsfsst*y3NAP8WVwj-m2;S@%qzN;$; zI*m}589pRd1osCq1eKDpqO$M*m=6)riX%sk04d!;TH^s2C+eys{)==LmItWgPfrpc z5?&;{Qc?P^XWpwVAL>RATNL^6iC+8dhfLKI#H=j?14M!~jonNZIuha%2wYmLH7wp5 zmIe}kgP;Ohw4&$xD98jko_08FTLE!F!AHp7jUa{wt6G%dFh-mu+J?&`UnAhUINQu2 zZq8NwOeg{}eyZRDmbVBfab37cg)poPjAjA4uAGAVKst>lK68Q-ID5~qv)X4f4nm1T zB0=n1`e2$D-uyoHFNr6!=0?weujVFQb|JPYC@HyuNRD&_f;DFbDXWbxZ%BuIgH`4@ z>>`!DxFCr(lx45DIIfmXa3bgdg%)`+VlARwefS=bPw2((y&)w_8LDEiTMWARhqUVb z$v81X99o(Fx~msy1mz+yEhUHr!8aI@QxC)0^}jbIxV{Z%&1gbDnY&kOKfDG(00qrD zR@N&nGd;Y?)`Mw%d#tf+HtIiou~+Zb)yA}>`VmkmB~+al@Gj?2C|ru9=7ztP4WM7s z^QFb}W!2{AAR3>;Yl5jjmKbjPp`}0=$}ZkH&rYnE(L{8XPHvYdrT-94U>}0XC~HXp zfnud-l~Q7$2wO1QFS2gkI()a|?NkT;ypT7=~{!CjPIr3Kg-xh7kq z$uC(lQ!6`SuGoL##I{;r7$WT?D=+`nb#cLb7A?5ZG>V3b3@4t+S`yP?mpt%);M%p} zVg}ohsIwLz1O)P+F*%`KZ@l(c1yJ+{$e^?}OiWC?L#_vG6|0+$>%2eW1tu1jRuxjQ z17?%$W;_7TQ{XtS+FCValM6u5ii-ZdRdWw!+}k24cs&KLJbbl9cI3z0sZ=Y2*Wv9- z_VD{8XE^XYJKNR0*Z~~G3v}X!ec=HU^A@mQYB-1H%9WIb?3@1)C>XCl%!mY1^0lDS zfUZNQbXpPRVidn&la%vCW4B;Vq0$hB?;^3>%C%gw=%b!UcUKd|YnD@l zdk{4aNb!Qi1i%#rVw&i$I|iWv3Se$i!M~?t4}t19rzKVVi6JX1#|~Q%f~jo|L9Q%(AZ_rXKz)? zi%?>FV9uI4-fqI9oah9_2_vc?JF5-VCJ3`h*w04=TK;3&iZq(Z6E@R$JtI8@{B1r{e@2YZDB zQPZ+z%id1Z-M)284Qe_PC16K=GO2n%EFA2Hk=GE?RM^n3!8a4SK+LpyI5~U%5j0s( zKI-RNVP}v1R5&~Wg2G>2T3}t!zC8OhmJ>ezb@Wl+Mmk4EGRhPI>KCCsY=OfY)hy!1N{(+NX`dufq3M(w9|f~2c$wM z-<4?#J)S0%Lk7yqd}vkFx|%jQAWKdE`m@Wc>`11<0g4+Ss`iZhWV1S}CVeBuC?0}@ zEtQI|{u!rEsLT=n5mtq7`aG>d3w;IEBXVvhukL!>B3m=l;~Ns~N$^fE`N47z^>qqV z!H51-yr*EGCaB`S=C7)>t`?{F5L_HJwgJvM-mZxPRDb`mSL(gywfpK4ZE$JS#-Kbz zwe!+;5q5?PL{+I6LO%GMJZr1+-l!MxfFgQ3{a0N6nQrZ*%^_r1QOahCSdS%MM_J_Z zw|i0%dT}whYai;OT3V8+Bu2dasYcfW!rG4 ziA%|QML4L#q%NXkrH>W={{2KxKH7K1s%uhaK|AP6%kqBQ6 z6DuMwY=?}MEMoA;NZ3?DJq}CMVcUqb!Bv0*j4#QN^w%es52S?c1mT*B3@{V;eg^Rd z97n-Va0TEH-ujm7!dU1PBO}T9Gyge@)5tTJ(zX^35>h?T6FldFSLdL4-AN=GU?|XO z?g7b4gYw$Y&3zzEf4BOlduulxBv1+#s0<1i$o!Upl7zALBj5a`q&isuR8SeMDg+)c zN;~r)!bCBc__8)ohj_mcq;M>8#0a4UpY74AO)_PJVIwISBsN6shjpx+Kb`oa+03^`xA=hq#T>rvslH&LdDLK7s;Aayqj?GPqc1% z#^fWumWzVTKT)W-dd-?INS%U!MG7259Sag3uMwtE5hM!sb__t~2PBy9(5)XX!2t<+ zDu@a7fV(n~)H63QGBi9`zJl=AQ|O0sz^Z*U>;-APSiC3wVMp;Z5wqI8t*xz7kkw$R zhXH9)J=}aa1gizbjiGz5R_?%4;LNb&CsOS$kimJ`C%+JynZDNd{Y=||g^+7%wQtkY zH}WleyZ(aG`3uK!Xx#aI`&=#ye6D@8?aiBQ+g7i9S=pHSYft^Y=H|^tc1Eg>w=cDf zIfgh4zT9Y(C6ZobR2Jf7{)jUJnhWw=wY9Y+=Wp&NBncR3DqSEcqI3o?0A0wVl9@$l zno4q5uOvI zQRvRpIxBMDk)*yKnY*l?}18Zww5X~7QiY7p4#xBJp)q)j=@GdNQsfSVX<_O9uBx2-Y5K?E-7 zKz02}A``6ZFTbzHuCi3*LEA%D^EmL~mN0a;x$)UpV=>p9>I&T9dV7d3}aO zeQ4$$N$f#JsE9C`2&@`Xt)mp*(o!L`?gEC7Wq=8uo(YT)@P6?k+pFL{NHj=nNG>0e?&gl1@$awB zh#uFZW_vhh2RCLFD2FDiz`;uK+Al$?x<1?f)ada<`pf!;2<|4Siv@yDFVAV*B^cpK zSWb{Cb!EJg`~|}HNc<%9G%KHC`v-5Jzq;m*mm{KQj%gP@58NqMmTiMy6r7%fL9!y# zVXNcL?&xs$BF68?iN?xk!v0vj0sNCzz<~{zRwK5SAfmEn2(@7lLOtL+o+~J73c>JC9cEvIz_$fTh?d>_* zQJjdjut*=Z4_O@_J^S(U_g$)SnpvM>@!q*-(hS_#DxYrM`z?DMZ+2Ax93wKXrfRo? z_hY|~y)_cQjR)mZEJ_Y>WTHMZ6OXR%5(6uiFYi8Qx-I`Sjq9jf#pNd>CnUwHL;cBk z%A(@S;jJvQ>{%TJiS8Oo9lrAn>6toCDa)j84JcuMSz?KSR`@Lum= zh5*lyF**YM@bd$ft<2uUqK?>0)p19Be>H0+z0?tL+lmu$Mpq-1qF8WZ)oz4ac_qY0 zq;$XWQcJnM6^w>dzXYy~&B;HOn%`D@I zp%BBdKZ%do?WMUDvgCL7i=TKfHOSAEo*(~~ywW{|kjH=I&z#Xm^6A_6?-ih? z+;|53M3iQ#FdI%HhRCY8Sa@#xj^$4)50|CvTC65F+V*0!J#QUxi{RkFQ7VSZGDC%{ zfXv`pC$OtF)6jh&hqwmh6(I{hSu}^Blko-YneAC8L2bf-zbMzge0lWE-wgi^)H{ym z9&%NsT)Ag7+!LbpGy<@YQ~OsIBS1*UrB)w`_I#u(jjLlg5Nmg)4`qd6*JZ#5opOGJ zUI;84951FLHB+s${X&v6df1wG4o+HZBG-M&r$9{vT5u_E@Fc|00H_L^{EBQlD1P9; zbC^C@kKbY3;)rnHgoTN0hQ7Vft8z?jYx0j1l*HJIlUXHS`^Fs;84e!^L_7eg@log@ zyd5=-jg32h8F6^uiuj-retb5Wo&fJczrKAL2=cn%z{BMH`MIR*pODZVLcD$O@MwX^ zc^u1|1JpDX60JK(oQ_l;*MaM9Y})qj@Q0RY+tKxzb&-zVu2{73Dk<~|e^p@9(uj?L zk-iL(2w1er@YCxE^9BLLvRe4QWy`W2w?mF#jn35{P;~TwP3RnE5%FstvyheK+vRN5 zXDBi)AL_6AhMhy(thOP$4wepYO;@#ZaW*)_xHC`rT7qvqB+Sr7k6>w7%2 zI-`(V;Z0&pAK#Pi;zH~B1_Im*ubbEglLTO}EtbDxMS^+HKG{cO7NpHOX*AdwTOj-- zAS*7akOV2TXr!K@^k(@L`eu1Px8y_QlotsazTwWdm%nd0BJ=Tpqvz18>?BW?PLT#|2IR8$ zU_)zeZEp}Be?`n3{v+cqKIF09?u9z{T#rM0qVUD%vD(Kn;_W@o12+b#Mh z6LwIhi`f+~X=+e>^z4jdu6cFvnVky#f2`=QSuHC9dq1^S7Rkw|{hLbG*q35<2?RLMS++W@)I9OwHP*StgjdYEGTv zP4E-%dvfMI_s9SDFCM5`7PlPV`_Duh9azyccmCZwjg_3?-?--0$Y>R+(q>G*)?80) z=I^#8n^|^)d}em3xv^SQjAV)L>0t6bg$=go@A%p@zVsIDXCrcgHXl8YDvcF9Ro*Z%cT z?{b24-YdD!_w-2yOeaw~Pl%xJl*<|hj})fltZPxOrsTCHZsUz2eyvV^s6NnqkgUZr zUA#2k2S1HGv%jVsWa5m_i%|C5O{vueaJ0$g}51@cqVhsjEqb=`)kh65#hOdind6)(fm$w$nY6DU+Ecd1_*(8O_+O zQ_Yh2?eS5sr`3h$KRwXkvABCX+POZn@X4qA!(wEXg155TE8Jxf`>CqfuyS|{FWWDW2W3G1W%5AA=WioU(e|>cdZoSwl@^w#6Z)UW& z)nC28J#7I#KIRfm`|os{Q(V}zy!+$>?ueEg-MDMEg5z>kG`fvhHoVm`=b1EJBv=JjW;&)`lYH8+ z)XocX_fgZO##o0Fs=Sx}k42N82v`~T0rlWUP zveJ@4&$`eeeMIa*4V7-=f=#Wfk@f*?n_ijgd(9L!SH4;TQ#ZqMoNm2mi(V^pR*`;| zWuha-r$skXl~MSd>c3sX;}+e8*OBRh!)f!WT-8sQ?R_U?)GrTuQC!wBSTUJS4^!TQ zVwY4NaUS7%vY|VK*R0%m$#Sn=(X{SH3zgDpGwSvV57UYsch#?y&cCBrL~CT_Jw9L4 z%iUCdqxMyXlfI+;5I9@(z?`=b(cLak7lEFlW~&C z2VQ3_ird+tLuT&bAK>*AgW-jhGJCpO=Pej5&J8sz-6-6v`ti?Ab~66_OdD3-UUh6V zgujKMpz+t0s`t}*!|(ErRBEplSmD$uW3RkRX}^#hxI1QvFtRHBg&2={=Ds?@#7W!a z$8<05X*yladsR=?Ej;u2OxbJJ?!MjpJEwVmEZiJF@ez56v7@C&6?A22e^gNVR)(tg zsU7FyHS)~w%zHIB{!Iu@Cd*^n3s!sUSLa^-^=~*QukwzbmEUhZH)%@VT-srCc*o_H z)VjO4x-t4=IDKv9)*dj zGA%}nlP&VA?|eEwS@4RIIDcwNn<3Gjem!<=@nrk9;p+D*R>n+lr3oF;r_=+W>w&nZ za0E~N#b>z1hv23SDULSDngNd8hsG%-MeTvq7HbVAh6kgI7rxE+KdARlyi2?OmYlz? za=^7!Kc6k-v{T`qj&Vq5yj~SZ)xMCM#Nf6fz034xvZ*?yLzE`)!|R9KO`jqIbyI@_ zV+`eGX;}DEy99nF^CFPhDNbq089ahPj#Lp`O?&It)HbGze0Is~amvMlUE+7Mi@xmG zqAzQ4d99}$F}ws&>FeqJ_@FoAJ0Mucn%NVXzgf97(0qD`drE49qTBPo&Yby_&5zQR zR1i5cMUORCHsKjO=(g^!jvZ2Hj#xs4RwvxW*@S6^CIWC|l~+!EBs0v*nl)M1R#iS* zimeL$HCHte!8WiiiKGDVKqcveJv=3C1id(Vqj@7DM#{T{pzM0#xoxJ57D}3|BYYzg zrn`15pZQyuH6SzdkFip<+GH=F{Qeu#1;t>KUqA~9!Qmey>n@{u(o@<6-2&*@_qri_ zNz_mzDFQL#C6G7fXC!(8Mcs2`Zl@$LUGyof2(oUfefw;ty4ZiI+@x@O>e>wFnZJLK zc8)+y0m{mg)bk?vzJs#KO%qcH{wqKWgAzFjfv^Lq9Riz;TSu8!exE75&97U3D-m|;wnW*#?0zL zz!f9y<2}QPU=6h_28WP?lPId-Rq*BM5lH7u?8%vH5ZiCU+TeOvDS9R2U8+K+WWi?? z{}o*K-$ild-(TjhCE002E{2ErRpWvq2D+5m@^Hn#_Bc&lG_?J!NVo#GAgO^!n#29%pa*^VQQD zl+lH^a_dP?#AiA#g`}Vb?8Ok|8aqC-W?!w?{VlfNB)3(|YwTSG z2-cGC(Jv@&&WgWAI)j|ud|^@{X#c>IYX~AEkRnfY?xEg3mYdZ0=+Y-^=9lkni=4x% z-hVmV)A!HL{CJb&tJAv?dHL!)D615zv(HPYM+Z=BTy&U9S~GTjr~_t5N*zT1CP^k(sT6dd3PLO-_=vCU)_}@4J+&; zf(Fdo64AnC{5b3aE;HH73cLXIG5+%NoRgXRPR#(>a{7e{z5Vr1dc1Px5I>gQm@8KI-P* z!Z%`G2n`SZJV0Ts*1?(O3ww(7o0ZKCI9$(9vg+8fzaiG5G)yvu^7|wBy;?P0&4&Jx z+uYi2ZlmT=`zS#>?^#TN!OA8r`RCc!E;Na%r=)4TGb;|7z{?#k+k(M~Q4!pwS-T}^ zuST`!M_w0&!Ht3!ngwYX2}Y|Y7)|0frs!jijPdVZc7J~7ZlbepHttyYgv#Enmf>Hc zg!qCnK|AHMRe4c^xLWMND<#+8EqRf1n4&|&E1C>rn$izWGN{DTrvI$5`9pfq6s)<> zQo8Drk%^i=n|m?^(K`kFYjKgE8P_sV(=f2eeY|A6HOw4ZB1+c1#w~Mm zU!BVorTQGpCx2A#=-@_%_uT;_X~u+=X+Msq_BE8JZj@7!t{%{NHoMa6*Nrnn=ELvW z|5?9xaEq%ywm6$4M6Qhaoyb4Q5D?8+=$21s8D!l|S_>C&AleEQHGY!CQnkgx&?Hi& z(e6*+J08lYm?M1LVcMegf=xO@%yi}*kJnPGYzg#WoDMgXUrj%HRE~K=d=u_$TBW!I zh}V*b0!G#@*3$fZ*@5b6)29Y8wYRj#-!7)S3Fu59SkgxXhcFy6sourz*8WoLQo7Ky z%!DIHTKKxE^=~ALkuS7iIe2sKFX{HVmIIq%-K<-oZvG;Hp(JQ_XYJJYum%40=CBf*5fsKs zo}~HE?H!nE@j*qfHXw^Taoayj7Qk<;E=M4j>fWW=mzg6@)-?o$NjpnBIt>0MeGVm# z;U50Z7wQ-XDhm5mU*x0{pIP< zQ!eh>7EoC6VZ=H)YizP%J?SQI#ffVd28!DxikWF>9PE1ZD|%I8Wli!!8Vi22>9v(C zji0*>QUwSz-u}OcdhbB0zdwH5jEv-6$WD@#J#Kapkt8W2n<#tlEu)N7HX)g1yY|I3 zLRq)0Yusy(xVYxMxLm)Z&-eHJ{?ECu*E#3)9FOPY`FKiy1#ji;pidXpI4Gm_P^ZtB z*LkYl<2ujf|9rc)RDxS!B!9F$&CYwmf3B&9<8NZT3?v$Ain)Y+DiFrJX=WGh<%tWQ zM$|1MIxAFy2sTJH2h)o6e;aQG^30bhLjKfrDkRK5M&%Sd$2E5r+|~-)tmqZ^$uBSk zs2Q;~h`jLJKld+T;Qdy2?tXLF8e)VKq2yBi#%gb_iE|0`Xd44Z2y>(j30fhnZ zw;-U!uq0#_k%%8@kB&PF3(l&d$KE%FxK(Z(IbkMYlF-X-}QsvJaL)=0;uGGEW4|G%%%fTktnNukGe6T_5SWuu~+ zv^M(;XDelSGp#(7*P!hQDI{-S&!tL~?iLuFpNl@2?2}7DrIs{KAU$+`5j4cMHiMR_ z^${sEU8|2W^zM&zo^(~XeSRzeBRa^BYfdAx-22qGp*`WdKz~()CR+h^U{F4{UTSqD zyG;=Rq5RKx+3KGzcJVDrbCu?j7}^#m=Pq60TOgB;;fnbFoJaJM@)^gF169r^7mJgX z7QypTYD-s(+A$9fFlt60{WLGG!c;u`uEc^pp=Y;TdGvaA#yReiPd}Jc1fH1@EK5Tj z)>CdxlD?xW8giA3q1KreGP{xEstdQR{vSR9Hmy8xm73)1xPg@~Y6~SZ4*KjWbhsJH z{-ya~jZn;JMU~0qOe`F7mJRE17>|5fXqkpo`d^y=maGz9=akV_(;%9ZHaKWz!{|1ZXXNj4E*ydCj2Mlk75Z?vd@1<8^H>9Uf& zSi#D65i{7x8^srae%2SyK*)P!ecj9PapNXO;IK4FBt2YCQc-pPJa{Y+93ugZ(H4_a zsVb1u6j+bYv#>AMXRD%tgL3@m#;*b;MUq;3^1P_0*NbRWbbc-0nfY?P#FSN1-UmO} z?;ZT_w*dY}c3qJpz=DIS{nNX0t;gC!W^X`PHMM`BB;|?x2fztF270lLtErkK!>Q(d zxuwj@71a)7mO97BImVW$uz&XVu@&eTxlh1x#Xg&$5u9%!OwQQkx=DkTZe16-{0ZOD zA=4`l_-^-?Y5~jouAk!XornaIM`wjjTWqBU^uu9F>L^coN03te!#qhP{VXX+^t7|K zPb1)dUhDZkZuRE)shub7FA`1uN%a3@1v9fq)~54FNtapPK;HJ}aCD7?Dh=A&i1G4? zEdOBZqi&%cakZ|7q&3|B2k(PHU(DCLZw9>mI5qQvF4ex*q?n4|jkqHw5kwT9%%LIRnhdV3b#pZ>j;|9vRo zWUi#1_S3R%y6S!C*_6(C^9j_)=Wrjsu`IASkONB9T4QP7v`8-Y{ugfw0kU;EE@gUe z@%iErCfxUEcErVGDk9uzA~d3bdJ8ov0x49Pg^ME`{#lz8z?QljypGE=c=y88?cQ-B z|975#pK?X;Fl5-WY?p8ULcdpFBm!BP20b;MPUNWS3DghyE*n)-2z#|7>DzCO6C>MO z@&5--P=eXQq|BE|Y)fIVib0FyAZvaqD!`tq;;g!>`7Zn~lfT8kL3E_x619(g%cW?~ zWU}H9@mL+&dhZB(2wTW6iL9Ku4VPe7-;&?#En4D%;!XrUSK4!EMDPpP$j0G9o|gM` zm)jL)&jJ_d0l_uZGwtpwci#Bm)=`-wkJSV7lz&TG0&ht+1ZyAsExy>>e4k$IO#ro(f3jJ z5?!RWs5=Isw3^EE@yYjcli6?fedk}(eo=d1Y~$kilM9#jBPcr#b&ocXwodX@?~Jon z#jOq^^K%u08np*iPDtWdV9v_{jmz(6cN^Tm?=q_B&nc->PA7!*b}lLG%0n&vsYfx38r=?W(|mX$raN~T}(#F4=S-o~BS>-qOxmTU(lOZ#x) zmjArC-z<45$*M@if{w20!TC+$7j0cHq70jWK&jmd#oF*y+xjbvcjB^DkNj=a^FKq_b% z-Xbr*{*xbIowIGC`(y)J++_dLtSy$HoY8;QQxc`CEbt?i>Gz@!LU4dT(CHD^KhGi;3~tW?85v5({!Qhjm@j^poXXo#O}*|5wrL$N+G&3{M;tmInSKK< z{B0;qfq z-aC07wh(kz=KgA+-Lm6915E@G3|rIkLh2KDS$n~IinxVwuvC*&nXbjGii(Bfd0f83 zLOCwmVc9?6p%iZ%LV=*826U{LGu#3735jPYx6GXeR zayJx@FJ>!r`JjwuMvd+?9>4rIt;gdjcuPB>tHSCBTS+8-%g?cY7(^|&9LB;E))2sP zAg93N-#@t*j+gf8qBp13wA-tpq2r_>;5e7(9%oys9Uq(jZ@W&x9z<7c{U(=JWN25w z-o?f-a2?H!mqX(h|K$xIM-s`f_9aj6^U0eMgz464NCgLup#ppFlWk4vJRo04CKTAM z$2sQjf_MC=uU|oaPTvI_e;J@&Q3(3a_BW@~0I!(y;4>h)Tubat+GJ#APMv;wGp_oy zcXvu8IPZ@k$q9C{po@E=gpq?fJSwcP<5REhi+?7NUkxk>xO`1OQw?ZxFav_;Eg;Ci zr4(?Pg~fMt59}If5q_{@1GsffBI-2)7PX2E4Nci>Eb&xxF*`hE77W$ZfT)~GuBQ4$ z>&mq(V$jI7J5~EH)Baayi13(hKX0JkJUSQd0W|n@l~85CHB$jG1GRR@6r<3DE$&r7#U z?-aSa*f}}r@4oww?|r~|e-7A)La^w$uqI&q0~^cF#|Jv2k~VpI$MfwN{%(_zN7O&}1nr`P1M+;aQ0cC5+aRfGePa+ z*2n+tw!G&>YOQwM=we42w(!*{&&@}(8#rvnMW1-NpmR{|F(a20w8g;*khLFuzVi_f zy|MsLffMf!Asd=ES7~;iylaf>_MEfBbj?h+=>#0FZ#6-kZfx^IW|3 zuvmxq3e{_=SO>$Fo<0-9|2(h1^$9++MXL;wmQ1dbj-!-l7_@!|vfh{7_WU;}P!zAO zp|NrYziiBaJ#V%L#KRwe1n;g2^q>A88H1M#OrCfM9<)A&Be#^zg3>!Qf}njD5!l!= zzZ`iX>S^<{>yAW+AzKLS+t2aA!1vxJ!+}Hp=QF>2K&idbL9U)Or9#j7m0Q!w`L zI;R1k8ni|^gFTm9{p=}V(H69_2-E_G6wk%<0PxMbcLXFcngH1pC`%~=Hk&dKLjjB) z06R+CNyF(JRpK4Gzwc-kKiCEw#SQEWsBlVv@=)1T7N@Qe1HIB+u4W(ITfm9WtG9Tu zpRiCZK7H)7cJ2_GJ{7Z+XFqD25E-rCqx- zO0VyajdD;_zQKeIEn064x+?@hkr>j64-Y@~*g1b;_Aa9ItIXJMF@AZNbk9QboXjdjRt1C$lusD$cj~ zyD!K#ERvf_z5E2*IL)qzHeL){&3PlJk80DaEH2_+a$!7OFOimYmVf7cZWlPh$tqtW zYxpQ)+IK;Pzu`35*%vF{>c6xl`Fod>q@uCYZ<*=ZUP{&x&-T~6C&4r`wRg<}v>N!& zA;rt`^IqWKIx4SKw>EcR1%c}6;YlHH~A@54`x|CtjIfIEtlH= z;^RBsSPd5>8NtDi{{%j-FK??kz#GG{Eg6Ibx#uJSQ;z(GWuSoCfDd3~Ny&i<<3@{`SJHN~pxs=zi|6i*DD zy+mYBio>VT1{G2UCf>Z>%dt!%_g5XV*G#ZC8oxtqE8EhP$st#+z6?530{U=T!7S$o z5k^+Y@fhagA}2F00tu!(Yf{nDw4_$CIFee9OXimmi2nIov#ohwSd~oeuW>1Vhx(|$I1J=!BtuR2s2F^M(kUS#UkuC5N$y8#xT)t0la%PSTu@&}L=WkbxM5qtcmWsx z4$3WCAQV0%PkVu0bq^1c0?nL}@~Gu)msX~k09y01i_6G+gX~`h|1K&k4Q6S8dUH1| z(`sBO+;VOLLml*r$v*Hq`Q@t=%l%;N{Ujpr(5mssPQZjY;?3SJ{kdWM_OO9D_2ds6 zZW7YkfByc0)xE(1mUpj%b*R2rya`E;eS5RKzcqs(#?}%Wn#S*eM}q=`X~4H>BK+*$ za-Z8)Q?q*Yxxb;OG?#06&uIq1pp2*msJ>NK?KN=7FtJ_j`>>++h3F^bb)1svY#?6o z%+n>^Pe!cuUKEaJK<{UVz zFUAbkiG{D0ob&1Ax?j^(F6BZI(chn2S&?0)xi~%F4wrLrd0m>9fzkE#&*YK`{9PEp zl1gXR>0ItgK9^!#`C(nh_IVV4oEz>ttIVL}jdsnt;OE(sB0rJtIv4 zMBR4b2Mqx-qvf<{MYrsGYtTG`g`A7%SXOKXBZuGL&o(AD^^*3RH;+d*)$$wI7@4?J zoI^i;(X`gj=lL$mv>Kvu7(QNRPLEI|@A6FTIN$B7UwG(0!PiIKeWQ$$iLI{@bec1{ ziz^Xi5trC~NQKm&S!>4eBwrNk(lsRh7+F;wOocUUTgFh4nodv(w8qxKKBXR6c!T9RcX zX*sfY(dt>H-auQ3Y(62r$UADBq=0FXj%meu#cJT1-;R2T9(n3*IiD=OwS2zeVbqR! zW!7=oL#Au;SC4T@(xakgG;c1j;%6`}s*sm&VZtclskp<{pxt*XRKTnXzLkzPe6KrQ ze_4v1i&Ry+i%+3rF&C>XHt6?`aBKF#7yb{mlaLNE*Z;UK?d*sam~1=^2@P@+GO zRPZH_D-lSSzWAa(@@Nmr-SC=mV}g{Py%`2SXcNz{xE0AUY;Kf}t#GSz?5cz}&z<`Z ze>IkJ5W;hawNfyksPf-jzs)oidU5Q+VPSG|?bQ{R-2Ti~$3~wM%TDEN-Gv^z3<5cs z<>reLbF}YJqDnLE^pG;U^6_5*rD|u3s9+gzd!%1m-nQ7vd#!g(oJ1q>f};HsYx<4y z82*jxr1u01x>K*$_|b%iSGnqnw+43Usw^*3fzCLOXuY}Tb4qfu&Jhk{b2sKBzi86` zZ6zaP*xXSxzI2o8%RX(P7W#SIwr=Xvrl;2dLxf;!8Z6U-=lapzB+-CSObULhnvrQT z32(Y#u1jODCUf{+aY??cc?|oqXK-nh!Z~q-l9ng zhx(A8nnTC4XOU+^!Gk$gZl$GucmiL1b2)@WJ+{&6l6j>n#%*+z!_5-%{#+B?z}SxCLMJ#I2-}o8L6mm0 z>V*%@i*y-&{{~gtkBVRHe=RLFZAfa85k)aMVj7n>3PtrGBxsRGWF0*4gT}FyDN)^m4$K(bzTgo{ustMowajBl_jJ#X+%HN9v zPS`(>6Nj;7m!2%^l9ctk(fEdbl*PCFbj16tVEWsZR#GA4;#I%yvZdHl+=Y4!8hMS} zc$j-8n{3)WUQX(@<+Sk_(XHUq?v3og&k`JTA4NiDBZVv6IRAo1nRZV^#{sgd4%tb- zc6GctI%WiR4XQK8Q8%aLZY$Jt}-`; zlw)}YW5iv$@BH`lKO;%6i|&H%6qFQyN*?jz_%?W@#gn%`xLvx%Suo+*y`7onlQJb? z^E3X+_tlh)N;d@Up4G|fv+tk!W4r)8-ZFMo;kGkxsD_ zN%CKtRQ1~U3!sXnXN5fU9v<}UE2*vtQU7tGkL&kMvI~2`?|aeJ)=!0B!4 zz+Ded*JtHmeUl{dX0ps-3Zbn@C5HlRY4!sqt+NZWS!c_$d1p^yFP$?}98=|P=H1Wx zFES>Q{E2j}fU{6N>D+r+-_LGJzO_wnn9U%n6Cw33m%du4m`;@AsPdduD1e*L+}fs2 zHrMcYO7iXD#)|2=pwAxlU^^wRNx)FqDXyKA--2e4>{wwZ3I zg>E5n@icEq=)ZhkzvIc1Ggc5kTzv*YQ)@*ozZ3TcV$iWjG=3m*;-Kn?9j~}9HoLPD z_1Biayd_-c!f;KHwsn$?aib>>fW#GNH~n82It8n4jtZE+(O$QR=uLv=kpyE7qI|^E z)(WLvpe&+IpHvTsUmcb$A$6>Gp$zth#ataC@QAM_c~ji?WskB53MgH$AI!@p+sFQu zYFWtbXGiQ|zdL``HZM{}s3sj^#PDdFNlAuC>`gB>*N_mL(1nJ^R4VyPHj|69PnH+{ zkhC0oTt=v1qpd(T^Z7gt_+b`Q4XfNTw{#S@6nCU9;ImU1y0VnYZ)KzwZEe+kzGFpn znVnQDA?@R^1`k(4pzajrRmoMocjNThUF8Xrq5e{@cbQm5o5CI_DAAy~!$?`~CKCL< zbdi5HYfwg+QC{#a)NP%ipt|s?-qUtbc+H?x*yq>tWam99t zmjIcRxU`sN75&0z#-b&jq-Y1PHzaRJ`W5-#fMCUlVD-dF3O0lxlOcXFZnFEmWlOex z`l!ptWM^g~`DgPPmru)1dyygIoxfy_e_sfV&OWmIQti$gbRw~j#Rj}h^g}jvO~7*p zzKuUFO1}nDLL=y{Gjp4rp>9RRWvhix2O@XxFL?nC7&-k$@qG+c5*Qg0G~Hi_7cU~Q z8HXL5(h>u4tn^=JTHdv^t8~iyqPkx; zx%a^b@O&S44bzi?AXR*2SYlMrgdWSpQdMIpBT$_K!f&1GD(jffCbwGX7_vRNrOzTa z(+v4GiPU`zt?x-8F2$ORNVSt*?n%VEMBl|X!UkRhshfQFFyl`ux$diTo~?fPrXHQN9%1!BhS%zFAiuF= zA$s(wv<()^Zi4y=3!Yj2wx+u?QQJ#W^871voU8ex`MJ&qL9NyOJ(59vZsS;sL@NqE zGU`Kn>2IDf;xFI2|Kj87>_VgS3HX>MPqaT^vYM=^y;nIy4YJT}_ppQcijx*LLmWVn zl$vh;fQx~X27Y248QH$j%_a0){&=;wPE5VD>#$f74q(FtE?0^;KPAL1B8vWOFcPK&sOwhmnimxtQCF?g@`1_nDmN zk7vC0rukYrC1qg3KDVJ;l?k)ZX9r7z#wsLk({r`nDJ9e2G!D7|tt0eu+eOhBuMoeg zxBARSwXItE;7_R%Ut}R2eO&N|POC2i_ghBDv|Yr-fx=Zj9C7FedZ$qS-LV;)Gugps zjqY~c4-2?<>c~n5Bz3=~;JQ@$6A4hIRM)nhy0blm%QW%SF8H|7`Qt}Bszf5=ySJaK zJ+cS@{qfyun?7|kYdM@x>I&v!@iS~$z&_MfP$@gR|iIq@=k25WtFW|P)G z+-0)hd0EsfazX$)(Y`VH%IpiJ6xkK}VY-3wN?&IYBTHtkoEeQldyOW_$x!;KHYZDF zJ<0J;Netz-T^FER=)v#Le)%O(E^MG16_zw)2dLDoB#aWK6gIyMqDAD3=)bcQJ#z%I(C<} zjx;WOxTdnZo|F)ymXJrE5O%Yne3Ggs|DMLj%?oy7Epq`DQeY^CK?N!_&;wiJAT}ns zC1$m3aoZK#5L&+*?aD^m;ma9dmVE_9O_@`ref`! z&FgNt*4C&%i1xg<+8k!j2wBcEtTrjrLp4IHk7UU{(GP?i%gLA!kfw`6@cpMyQM2K| zAGAjS*{w5bj?HJpePsN^XX0{a)={p`yIm^OYOHZw>H{qR+=12?P`Nk@+`ebg*?3@J zk?19S&0EGVTX9Nfbw6jd_$7rm7rb3C+D6W;YI_;V;_ z;a4U;z1}w3*ZkgZ>Y&q(lkACI%Ff*aGdyS*-W+l1i9)g-z-6LSYC~rCrR0?|{GATg zD_%+Sbd;GZHI%y*$}s!s=-RjiVs_mP_X1j(nOJP?>`d|-ra;a%FtCwhf&H~1p}hLJ z3tqX0(5)=}lP21jD^(1|f#SER z!UHy%orSmxB(8@&xC0{8ha?{go6%T?OC?q!eOlc^-EEA1?az23HLR_-Lh7Nfvgq0E zd=N?%D=4FyA5H_;ppA{FI^G+f*qa7}@A*SM8x0xZXBm?CVf}auKhjT0=x!&FF#N!F zV8Rc}FE>zj3KL*2w2&=9o)N10THh3-SnPCup=Rm=4BOVu=n*FebYgrAH>yT8hJD65 zJUg6Qf_IS80_d=w@lPej=x?8bxc=N1Zje z<8@J`^TTHj0^J7a?r3@*ls8MV2u4&n|EK6er4xA+o{^EQ1BwpmUEF!{-A#~0NaNW+ z*=A=m%dQ73TpVvuq(ciLcr@QJ&oS+6SVKHoaNGNjnM#+4^Fc z*60tKHUZ5&e#kV{HI@ozjzw(jl8Wfbx+;=Zo-EM6rysXj<0>LIMqi8OgiQ|xV9N$h5of1C zEB^5EQxQ)E-l|x!=d~h#Oa=ySi^>hfD(jD43r9oNl%=F#b|*4D)MZmu#FdMh{WDSl z-BIHQNfq@02nTH)ZKc|ux1SC_E&Jig7jNLoH4IzdNgw;3LTp){HrUVj>T`WQ%=@G& zf9H;Y=frcLvk{Z{eo+Yobz=E!1F@u11|UoMVh-Eh3P$g0L&lia<&Uv~~b|EgLx)c-IQsy=99B;8DQkeXS!#2!a#vh%W z;@_R#*4GbKTkj}yF8(`EJt=oIyEM~kC*v3ZjYs3^lx+JxI{M+wpmLrA{K8bdR%JTx!sY^LDW9Qd;L<6?~JpRw+Cu=Ezug znhDlFFc4yahfylAE=8CVR?XaQv%T7H?EMaZfd=W{d)P`T95&Sm`$QSl?A~eHmoDSD zLTf|X@vcXSX`|wuZ$`#s>R%B9TvQD>lkFY;iSw)O1)S^E$+ z?Z{_BhOdR2NgP`Rp1=}s&%Gmo*>~#Hd+0>8?!BK(HIo2bC))Bf3m4o%oVl=yTjS0h z+)ig=Ii96eiX6Kdrvj0JMBeatSuj0gT^nwks~p2h_qqGz$PO?F4l<+$r|J)aFEEJ( z^!jnoiqtKaEM|wEj+u!!IvL|O!G58e3mXibTHP&JY1vWJG%`7_Ee+uJz84mxpC0BL zXUWgNtEj4^i< zxKRwKU4S`N?&}KmSqt~Ib__M-4XG8e%QBPM5?YiTF`!}3&$%sgMC z?O@vtnx*l0=b#M|I@`VxPIW2Rb#EmjD!S?0q`XhUFI3JaYuT5Y0a-lNJ%b75CvnSW zfp``OjXG=NP6yw^#>LJ~R9ZN1g7eUEx&pEl_kpJkW0o7R{`+`%*z^fPz7X|^&(0S$ zU-TKcGpKOo!0rrYNLr}bSXNcd%oQI_-g{u9T(;alIHZ7xI!F~6R6hP0EL+T8iQHIB zL_Z7G(yG7{VOUeKR?T}~+e_O`s#*`f8h_hwC)j>4et1%i_&742)2L*yF=?Fs319nBSd&(8gC6y^FI?zpt zX=lKW(P(wQVAp_N!P)NDrwYFsugrD*FFA~)pQB#fuWC|vkJ%`LrSBSVRTe+WX}@)< zeWMIo1D`E78SFFMwxj(@%bec*<7LxdM3SAUPxV-6ew#YK#&is=a_uW(P>nTtgNn~P@8XSoMC zm!sdGNpbBp#+`j9&STapUd#H|5EcL`vlXWX`fLVdU6uD&t6Xy@r(Ltu?{gf>tGNs; zk3~{G@~D~oa<2`aR#(h1P|<3@BFua<>ylGVik|SPSu|*A6xwEXqGfJ8^K8pd=Ehbm z!nGnk=gefC&?&k~MPlQUm-$3V0hewdr&gfJvb7(tmuhNlHv zM@tlxgB!zoZ76)k8cUsiGN{G(N>r@dGcNlS!c&d?7+L!I4PxsG zZbCouqSGR+yG;}QqY)|y$@~j;d>FC199<=w?m+klBH#6c#u)8_f<}qKUQd)wVn#4- z@=v0I-|vmj{VXp|MfaR>@W8~%w_ff$_PF2u{my8+*=(IlT+*0HsZ(v;yRnp4V}EhH zAFjy8_CLdKrOK^(t44s@`<57epl%t(ue^x@qiJU7pbrc|RBM{=Boy>b(}YbFOqgb$;ZO|;j7F0zeRg2>iDImx{*Q%Edle?%`}xhv zevd?Lz?NqxgOj$P3L#BhsaW$IRu{;|tfigZn;wQ5VDmOg`7DgHkr?nju!pw%i9Sul}YEieVmV0A@^nS`yPz+SSh7#@#H7;^C zO7ty@g-k}_dR^+_+>n$mZzP+r06nSMrscuu2Ej6%j>~Yd{zQm%4x(vzyZpF=F%&W+yS9wI80Y1 zctCQQ`cu+ipAT`SM0&&l#mAKBDE~ncF)spt7g7^tb~1?KVFm zjP$b7g$ra%qG6u54q-Rsx}D=DHO34}KiS!n)RvCE&oDuwObj7SnYv;`X@t4(Sk^;R z4~~ykA1CV*&16$SyY%rmhBge@vY|Vn`>T_0@(MgA)c3T%X>6!_ap&{4qcX8~QSs;z z*$J`5b+M4#5@qNT+)nuf|BB>=;p@TXQ_MtKRicT>Y#;k7{G)%L{z&dZHCDN3A>MUD zwvw--W9~rp1)H0;-dvJKZ~gTB4fq@L~&^;4Jzr^p_Pz;Vf=1 zqtR!<3U3DRtu}L<3`w2#Xp!}Ob!M#Tqt>Sf=}q3ZWa5x7LEkk=OUMi+K3z7V)w5aO zZY5@8#+*8=eVe?%oArXoOpI;XpGg8mj)!&zvqa<+Q{QmaBegb*BPG%t5@pz-RE1NJ zZ9Q9&^XHzbUtQ@9&Ri!7=Y@jymxqgj$dC^#Q!NjtRPZkq5Q`G>W~VHeEc33^H|&B} z%%j;~pzZ>&DoDnev|l5Lp83ZfqU(w-XbA&FPQHijwf5UY!jsa}=~YMRghFjH`-$z} zi1k+d9LS{*(|B{l25SceRiww`>4ls80qOF5{Tq3VCe*iEb7}$kfm-Y3&WSjijQmDo zIMrE0_9~ay#Tm=0uz}4tF$KGSV#3q?zx?J>BqwZ7q$nM2%p#27p~3aCWGrU7Q+TZH zv_X9tfipJtypo2W&9l>)CC-M%5KrgZN%1Y3j5e!}8Rq9>D)ldk$+3!VrTrAU(s>DO z>@8m&SiUl(jBfnydyr)DITzqL%l0SA??8_}&C!V`bbU>!W%hpN@-|}PhOv&R)F1Pl zof;i;$mDQ~z0Yg`;r7Owcvh=-JzTrLZjHT|oq?&QGuxu!0oTrpa+s@IYy2wOC91jQ zwc<+kx!Z*7byIJY;fLg3*2l%KErP(dOSI)TQo*p`*Gn4;+*BEI1Au6@m)`trtil?p zsoJ?_XHRwoul`Vwa%@~h2Hxi3HYhSIaru-AphRse~6Ty<3!lr%;0CMn;0;Q#Z=dHxo@%| zQ2xF2dgv?5@ut85o`ch)Vq-VA05Qi@_ud#qvQKD{Ix17k=MQA7$Mi4*`XlJgDu?nr z(^Va1R%#HOyx?gfwXU-NYxbOnP^hcpew4eb9Ko`K%5J5nG0{YMD0Sn7^$6r~18rMN z`$1oWe|Km9R;_{amCXYrIuPCX2ePNpzzy+hBre z;>pM8X8`j&?Ge$_vvX}*%bG8^{_vqB?C%W=SLNqL?CB{bS8em6l7dvazW7bEdIuy3 ztFY1AKbaFb#BE5>?x(k=aRuN94t&);GW*uj=OS(i$_RSW)L9sudHnR7TR<>36pY>s z1ho4MmNQP5^q&B_%dm-^e&782Ve;eJs!qWkPMNa5QtBeNBzk}&%kYnBjd$}`%w0@7 z3$dRSC5$h8S}dC`MsGA@EBh6(fU{C1+}7H8=_bcdMP(2b_O(3eQRG#`ZMFDHHJml= zAO?_^LL?_5a=p5!&9jfbt9Ps0W;HYtiqX1v0`-h}&XJM|?DhTz9@^0GX_b3vn%NaQ7K!jZ%onLUi0F z+8;aBnzS|endsWi?|V(X!R`|IFY3E$G0j#NI(XLZHDkzeyJCwQS)q1Q-rUNzeos+2 zA2Fl6V%q6mS{3DmSE~mBo10CpCUaN9GgPwbu?=;e%F4YCaD!>(bfV`h_Hc zHQg6&SQn{~A)5>5SyW-enoEaS-FMjH0;ey>?44IqzNjm@=}dywYq_vV;mSr?m7^aU zabl()=&8jO2u`z&i({qeG+HU>+6WX024=J^($G{Qo!Y~0ccp_+$oC{D?No_(a$y0b zo?ge!C9R59oJJ&=W3Zoe+0OGTeL(lL!-MMAve+Sv?IT&`>MJD>cCO8 zGgvqz$sCV;Mh4iw1U3KFhk2k#+aJD4cDGU=2th7&??`gFKNaJQqipoUf^DFUNc)P98 zT`ees%08z>$+7BUo~jSFAh7)SfPwXS(R6!5Zk<^*Y-6uG_dLoU;7H6KgDafLRID#! zbS^z|zn68p0Z}0@G95H>=0xmmJh_pNA2e7ws;PIv*QiY?eGZj9vsn!a8sf2NrcpBc z8Ddd00pYxE_uR4fni@MRFUk~&(nF7}?o9P^zgnvs*aZWCcu!F%jzM-vbM>(CnJS~{ z9a)o~DyE3TbP2os2e2b(hgpeHW0gtela4_TG8dZqS2^yzSsCRPuChL5laUwO!~_Hd zx3v4(f_sTAH5U%y$lLX&J5=w3wylD;?;RT*Uxz+ypp($BoUJ@0epvjz?X5^x@m^X%Olh0w-Ucsa1mq9`p~;DKu|C(epUxIoB9$#4 z@WncV-a!C#M4z%d^{lYgt5}7$we$>LajDPA zJs3Fo^x@!fM0|U5$naQwH^=-#X{l)zI3iZX1m!!FATppI)Jkj2Bhf?dBJcpDWJVqi zHK0DwDE8kfI+fKrmf1VJ$T&AN{y{|f2Cc1#kZ7NQMtSY(S;)*nQljg6&sMGvqUFkU zbhIt)_?#W$(0S7}qqo?9q-@6|p&VdOPV?`h_)jLwr=Wd3w^?m+Zy(>>>o@976Pm(@ zI@SKiH{dX)RsAWkxhilIk34rPAd^JC-qxvaj(9T&K=KVRCCzTbO{oflgwZbIHrz=! z!>NK+Uq+66_$^I~@y*{c3j4FW>9lDVIk_?zTuOCO8|k*Vr!vRQ#Cybm>bCGM;NQwAjR^bE4+3 zvG-}t(Yo{3Phi|CVk*U#)kEyyR*8>;_aj$DWuZvQJJ%5)f-R@equhZ-0HEYLr&5WRP73rz z)iX{c3WpBpZNkfl-GfR&frA6NjtP#r^V7*E(Yc=stlwkSgiDvg41PiQKB$ zb-132XHl|x*0|A`gds>ddR%3OIJAk!8^{E3%1?cf?2|QK3P@{1a%L!xz&Xm zC*1;2T{EKS5i7L93>qJWYqUKm$`V;xfuac<&%6At4^z)tS&n}R2a&mSR;yRBOlWx$ zQ>>R#yOot4Ua@A{LB=hVnD}=4#j0VYPc9NzhcA&`(F=1o2xhQ^D;sOY(D8*j8Ap`( zIq?=PZrecyHF5RMJ967BEZ`u(k>pgU@@fDc_WC&Hcq^b6C*0@n*k|SpGwnoroCOdb6qJXBR&KJi* zMYE$Co@`b>Ub|GRSMY^GHO`i=CtF zr*p%-Z%@UoBd1SB^<9((b*`zwiQfit8Q8}OcF1cGf7&#!(x6eq-g@c$9wJY*TUrrP zXP4#61IUk3#N8dQit(cliy#TUn*cRvpW6GTH{y4u#ITx^b(#*UzHy=tb0zXosuPon z)5J=6bib&AgE8epkb?m(h$2Fn7PR*e;_fw(U)Ez7vY;UiCssUKir*$i;NQi@Ep$M+ z2mW~3dz1i~iQkw#^HD+L7tB=rrWXH(g{ZIJhxAt?V| z8d=}Ts0pFbJw3WwnT=<&I3Z9X5ZgL7_@IVW)^RJN_tVN;z!ByXvktU&ib&i-HusK> z`f{c4S**`3%KK8&MNpF~j{zad-+#OxTm(QJl-ADQUpQlwA@Y#45iWhr=aFDs*UBl&HGQy1kan+cqP&dUsEo zfA6uEg(f|pRVc-y09FI@PFvsG)&r%3jZ6Pc)KG>H26b%Hta|AF{_fC;L%u%LxqZ<; zQJxR8O&Ejg%k6I8n;dxCk}pi9LL{^9*Ds)UnxfE7Yrd`!EMI0cU-W^tLN+E@7{TW@ zlkFuO%(VBFXoq!${Ap7Hnl>Lp+b9#rD#@_lY|!!$E!##aWdRy{iQh!p5})O21QY1U z1F}`rm*|uo{91u^za}$%@YF!yML1JK#q}G~SmNdsJ3Ni8a_sso!3$wWkfCDrBWC|` z;>VZ479$lIKANsejmwLGcVR#jD2n5>MZ;a;l!?8R!#dDEbQaPc=l(-Jk7wW4jYS6<-)FZcF2}25MBI@rEjWwQb+NUA{cW zMf@<0S}m?wj(-L%A`l*a?pWGau@dno8~$`^lJ-_p6m-gPL5p!YKKRR5=ZFKRfFiVN z4~W0O65?yUA;SV(2A_*;vsUa04|ZP{Kd?6~k~n4C&(|M&9J2wh?I@&k#0F#vUoCHs zB)xLDv4AKsZ;?O4?5a>dw9+p&Khdva@SZ7AgIAw6o=o>^0jsFCd})KLK8q8-^^@6$ zl!lVU`bp9~64dmT`S~j&5rNs?-V_bDd?t*X`qvFDR$_(Fn7B3_ z>@1p1h;Zcee2Qiv6>moTwTU)!gZT4ErykZPlC@O<#q$cZ9z4OOTTX}P&L7UKyuYGl z-7peRc4Qw@_&fE?VKmGlB>a?MMGTsq*Dtz@$hpioe_Up5lW6=RynxGGt_imlwK8ah zVD?iO2*xAYXwvcRqY7Ny(sq|)7%)6bGp zb}rdk`H~4Wl&4FzFCAJ9;zT4&F3Ir&dZJ1tAqgs!ydaE2 zuT>p40joCwJ~IAdm0#Y2mHiwRCl>F%y(^o9MfcdUzZ%C4$EW?(gHnkI*SNiP4|L_PZ=W-2N1)x5FO> zD_cAEckDa&!p46tog|C4Aqt~NldMKGSQIakD zK!!LUk*^LfpP#?ZdUDy~>;iGI=ptlibw$NquZ^;6iXngGLH3>Wpbwv-9@fkc(O;z( z$=vj-^nZ6PK-r!9y(ddMlLb`+@|I;MzaNWvw!f+0pQ{Tlf@*nRwaQ>NoXc^kDtXNS z)&2Ymp80r^9)HXYdnXTkG%EM zg|sI-F&I*=Abk!KU%u^WeBoat!!4bN)&NhZ}hqGoVRq>I+2BTzdIR=^M_3DnY@_o^gL7S zUCicIxw%0GZUjK1o@?-DGr-%(ICJ7Y^`VO-f4zzjW+I^=%H zB9szJ&nriM zCO5`+Bu%P%hYYJbdN?%Ck-Z+KknQbgj%&a2|26m4e^GtW+c!!#(hZ`3bW4MPU?8C= zNFyK!$k5%bQUU_fq97^~(%s!i3_T!SGt@A^FwC>(^S$r;^~68$_?yEyXXfm)_TFos zy{_wxXW9~luZ=MW9=3fFghT|KGJDsbi&^BT=`418*&E4cT~VSZiVek{H3>A8Zv}5e zwUAuvnbIj8c{)P~lz2_vOHO99XOH3EtwGE54b2oiH z4B5hz%S9ObEfuA8jIg)+h*6Oage)1!}s~yxJWHy;jy2 z$MUirlesjN17)xO(~aqc8IdI@!b3SIU){B88-ZC_d(51~;|4aM!~T4|jGn!{{a_j` zu0R1NO2cy?6-WEOgTWCy;AgJU7q$rzY6IE4JMRKoSc&>K;WO%vY{g4lfWFKAO7B~^ z{L_Si(-+Som_g-wQ`@PVI9f!N31$LcqK+}NxV{Nwc`6<)AJOOfYZ+epNEO6wl(~1aUKjgvQ)-N z%pN~oPBqXdK3*PQEN`w3Xt7TS*#(V|WDpIqeUpJ&pTW@hU=f@-i7p4Io_2Kb|7psY z7!&#Cf839Y2!QylT6znQSc!&2_-~XG?wW6L2a=M6ZY4v4rbc7ndI{06(WnqE#dO+|+7C195dSUP_I|8ORh=#&H-@5}mOut+9*%6uY)gyyKWpCK2Zq-Tx z;Z=bZ(9jteO!4W%y=yH36;2SOE{UNZnI96W#JZxr<6~x!SHEz6NMv~6PQ1)dXxZ-& zt=x-+Esydqo(|s>ztDS0LBM?Joy8T4v$6mV->C-a{CJ|d1oRQV+M>4SZ_TMse5YA} zDJN!;6ki?c;RN*md~i)56vAj$hc}RoA69s?McC}>`@9bpT`sXOJd1`C(lBj~J_bLq zOAl0XPZ|{{c%tz|VU$orWJUbK={u6TgIl#rCwOteqG-QHpUzxm{_5vAjompo{A9YE z%hyRmynKiE;X~K?Z(jk#LiXgQ%2F9GPQrHeY&mrzs~11V(redwbtR;;Z8s|2GP*h7 z725l3g}5~hXG3+a9cH8(k~$JmwL^1#&yQ{{8@OAp%wzlcgN1Mbb%a~)T`6&HopOFA zR=DQ18PTo2OGZQbBzMo>AE#)m0uRYP`p7(gSP_B=w32p(di(Oy{PJDd$O>8w`0t3X z;D`hhS@p(I?uu6zMAVVr+aub-Ndd|)@R+jcml&{d^=4$5zA7KwzX&1ox&9|=xy4VvDa=wExSS*{Yyu0`fsEeO zF!gor0=aCo5WN#c645AQcud5i`8+FMTi1rGRYq$u?qD;}Hd3Z7B0MB-NKB zeAe+w?g2f058Ga}&r zK~ojTGJ<8wG^3~h>Kn!!hpt!yV%)wJU!{XBn*)&pzl$1{&gFTrS98*;jJVFv z{}`P3P_zzjV<^lcFZvF*@HN`9aQV%Siu0>dU2x@u6mb4{6@-#niQ+Zfbre7JaT}`h z(inH`>`>s!3cw3E*xv_6k;lMoVQaot3;_8QHvDXQ6ACSw{Uf8I#_QZ{f`M#)A&nMHGm~0 z_>KT36tlP$9-s!kTIqH&I(M>(!C6)3bt71+JHfjJ)`7eO50T0idRsWoY zB?IHzy(&sf9pCGb(pIbo&NNT*$cHn}ON7A%Ctd&~LT=(pd_n@zm;3K&A1M8QELd;l zrT}=|lP6DVV%}L&WRj%9qiCJEX|~7~K9d=lQK3=?%TfFBhYt7r2SZZU7C@GX`<#h^yyKB zG2Z{fF!hR+hyS-3)0@=b-4*SyW2TOZ{_?jhL!Ym?G*d;X!Z{Myhno>wNUhe)Lu>%J z5%9cH0a=#oI2)Mk0zUeuxAS~@xle$pt-EPLUq3K?Yi?ZbNY(#C?faM8{jL&zBqZtz z^XkCrWyM;b^W~BJ^Wme*8oVE*6kKrs5YR5Sdx6&iu3c2HmmWA8D~RX;;MR&`Faic# zMlTMe2#j9sRaya)>l_KS^aDh!m-X(vx3uD{0QnI|r>qxw&;?>qy@>0}pzWP0&hRkp z(8JZ0Z;1;ORDem10h;WvQu9}vWpKYY8b1OBe4AWdXu9^p!|(yTY;k6}5gwi@q_;B< zTn*)?*8NQ+fpO2wK3CAm4M1cR!2=c$Q~=Mix+)x!3&5DdiAqN#09#uCng9nM0#`rp z#WZB5Jt3=_K_1vRw~AEnPPq;DP{BP@JVR>CG;u~NT}xEn81(@r zYVLn=TO*Iv7%GXbwn*LB`uDyr8Z&c#i1FTRyFiXvOP%Pcs(ckau~_jByLLB_N($H) zQ*wq*`o2UG6|govD7)13?gV~2_)BBbm8R)VPu zbR!InJ0M6kSGcX^4B-zInoOnj>2y`%VoT!0`akVn-gWsmKv20q0XDYs#$W9^CPhD{ zeGUrfjL8RNVAWm`agJn2UDJ2v#gG4wYR122PYNX#O>;)8uVXN*air>kzCl`0kN#W01TTY-~vzKM*FL>6dGhdZ_PVt2S4X_IaVED?NY z{djzguaUpuRetnZmfd<8udl95vo`@Kn5A8UxBQ9?+eK>cHF}G`WxlVq(S*~i8pHt; z=xj$;C6adDg?K>-F@!AoZ<}R^TCt()yfY|nL-vrG1S&yn+iv0D$To2wJA?}b&-gxt-{!iMsOB7;jU(=0o z8Ra+N>srJk_3}cx%QkQ&luKM zgzSKkT>csez_ll9hxb+=-T$Si6&5OiG%l-+b$54QSgRn`{gvQpUlYJqZ0 z1?;OVJ2KaC&OwRGm|D)RgU-5?%VOqw&2tN{tl2wI<}-(i9FVio<7F1At$F^v(3xq) zvxat7P3u$jeLk%{6)E?*yO%{>hKx+2v|5lmyV%{6QoKCpAIeyrM${8emqY-s(4c@f z^V71J*`;Rj5S1rcM2M!zHSjQSn8v}HeH4qCS0f$yF9=LB@lN)QF`wb$awXvc2hvGpE^VkIsaksCEkQH@kK%+Ao zaQq6vQnJa~h2-o^<-6J3F(6tB;rhT719Y-`mF5SOr1HjymmtZuA;WQ|`0b!v2M@#! z_&S#=TsKAUJZGk*4P13~X<=CkMvr;OLOeargORCO^Qa7a?mHyU3>H5|7itIfPM479 z1zvZa0}v3Vj(FJyn<70Qbuk8F1d{l zMR&VhiK#ny)9($YjWx=GcO@=)P;zQzf@&v?5))vXCLSE95-bP0uL7{U?aOfNHz;3| zxbuwdlp^9N)l3fgy(2H^74-QVl)&>A`kFxUVheoj2xX}t=TA!HnXPyZ@5?bp?@XzO zbBSG8fT2K7T>n+3h)G*Gq5kjBY@$yqZZ8DM2BMu$R|Q|VCq64&F3O`S!EELMQ}^RD zd|XoT7^g+nbmv>=zI=(Fd|EfgYC(B7km#CP`MRP{96!m2>G02~v!f+%tqG#yCT>qs(;YIbDDHE|_xj&ngxxtzt^Y2BRVp-8|Bb6EeF>$eqx$wKO)CfE zBBH}><+1)Rjy+2P;w!I}dek!#vX~r$#hhhFGh$N3kVW(1PNmVEJbO z_{%=%Rn6E1LQf33GxQq7GO&q!XcyYqN!>Z2x4CHl$C>RC$zCYvAVf)F0=AqqmuCVT|;-7@oQdl*aL<`*d)i640Y;;N{9s zEK=Bv^E`a)&eTH4u@bCc2Y`F!4s>Q7l+Sd|t8|)jWoeW~0Or!gmL;}Rza(|IDF4)<9 z>V!}-rnXYpqWM}{TJ*TZ*5B^oDbxJx!21`C(zq9z)hXNgMGa#2E?;BOtn*{g-eCyl zII+>x?BTn{S*`OUxO% za5{_x6(l^j-wrNmxk}X8G7;F-2OSb~wIQL6NLCqc>B&VIc!HvCQ%~ince~Gl71Q^; z;JM*jm&3C9l^gGI4(syY|GS}!!|x5I+z&8>uNBm0Ma$7*GZOvrSo3qq+wjN{RkiLV zIJ=ar?Y|hVd`}0am&%+EbzGT-qEZ$9u!0w`7R^+P76l|qSfvHel-)-v7IxwxEm-!?xt$$(D`pPo9H^?zv0j*RWGyb&LQvNdfx9ei)gtX)a(5w9W1 zHYZc?_Iw4U`0g2o5bD_Y1A#BEZQW{x0P_%JG@I-~C4b;a65BK$B-^Do0pk4*l&w}O zvX?o}e=%3|30SWjaqql6@_fFg-U3C*c4-cjlE8gkb8XT9NmjdXLU^gqv9WZ0e6THx zfE=#f`ktuVLvk;NaLM)zEy)zvDunN}gyg_?b>$dpR`o=zgM57GW(09({bqx)*8R1vng6>am*<}tvEgUu z%Q<1UvVayK^$_d3I+JYMTPCUuid}FU%#}h5o~icw4SheAo|l*%+Lg(YpK->1L#nekU$lRsQ&~ie)ct zRY9MJh1mg)!)hY(o%fzNdXuYC#%YLA?CyLcs%!quWS`L{3YK?v4$2Zon$N5&BME9n z6y|`s(Xvr9_99rzm(`uTzPhO8O#(T8`6SS=921BEfcf*Pi~Z9?wN$f$ZM?KMS<5E zecQJjT4z6T+QE#Z&MjS%v{nk-_&4a zD>2%Os^YQ>%i#}-bnU2B-`@4Fnw_=hVlC(483KNv7X^<>_it)ca2+2F+O76xnfnzQ zqfhN#{Hoh`X>toh_{~ZC1l|jso%v&DWWJuuB>Hyx&$n4URgUuo;6UN}NLS^;si5Gq z^3glvH*Zeo2GeBbo6%=G(jIx{D;+JzWi1zHqr+nrg^0_Js9`dOqaeHWfeabvoq5ZK zs`?9C*h_L=nmn_1oEEXs`kwq#=?lnP_Wx#&!@F!~cvHl_U1StC8J z7W*34SCw2L(rnUwztst$YziSQyX}MJ&RMf#`F3FAOz<)=0A z*^@gt9+)$z^C$|yO4)N>U3%>XuBb>#2AJmO+kq0w?w(BK&ic~)$+lgwQC1M98d0~p zEw88Tfgm5sl$JlS_q@%b?6Ms0z5RFAsR<4787fTYyh3eGFt)%dcPCWymaS?LDS8V| zfu|W_O+^LlmgauEtAl{X3oj#aJrR3uUqNYk7M!-UdWn&@kX>9u=bWPvHeA?IRe0<` z4A+J;2Y&``VtKa~{RSSi6uGab@@(*A2X0J#@A^v36)o&GCD*bVf#aAbQcFht z$uU$v`(5%v;B2B&Hqo;fRO2Qk+l3=t-tW%h8ced!{`Ue~EKlm8=GH?XhuDGo^wzx1 z@bNkWzJ<7^OK(0NHf(aN*`cgli-7cXRjF);ctcWDS8a!f8a&;w_u@H&wp7ZXzx|H) z!uBc#sbIQg77*;g3glhabO|INPX!VHYiapYR@UTxb~o35V86@=F=mw_;q7~{e5*CR zKP9MLado^f79Ddoq8Owc&7wgq*&|o`X2qXcD%$kz(py7W%;+VeC7?K3ixWy&CaxDeYFWXf zHH&e`X##3#O3U8i(`QjxkE*H)sRgpM5?7Q$$rBp$F7K$c?ceLna1*(w^`JZ~q z#KfTezv-=ow@`>Rd!D@_U{SUW!RBDX8)}y%=PP?r4J>)Hq$;kA|Wjr^yzHOQ(FqJ?V0gfFwkJwBf^KSE{|u*jK=n6SFha5g$C=c_U9MV8+tiC!dle{ zVfGcmL2>YzKM-L+F^OdtLYi0CkquZPspy-pFJ;z#6(6K^L~CX*$xHKXP? zBxFY^;j}oXoTo4qmGywr?bY=mc*CGi;GSJ&S!`WqOPL*GUhvJq>5>?trnr!^XbQL9 zu3mIc=joQ)nZEC8d`yCkj<$?q9ZXnwh$H2YTB7c-@OY!1{Ey_EGjyaDJ8K`bAIG+d z_P~B%fXs&zmJ*A6Gm=>4LY?jp1NXYq(Jj~SdZSmllF@P$oO?YK_5=VmvByNAo3-KJ zFDaT9aK7G2Z8Tfe|J%vG?p&cmq?PRMyyB?OkOp;zxzA#Lr^vsWhE>&0N@qOT=Qbny zwLx>Q{M{9Oyn7b|%Fx#CyCp442WP&rr_2k?@VHR#VVT+anT9Fka+xI}m@l67yocL9 zNa-+=O{>xcmcMCl_Q?;60bKa=p7U_@(Q_Ix$1M2?WKZka*MO^GSvdLVuNN(_>b85R zfGuQ$n0W>kV`YdhrFU`6pXX^a5li2Hl@b3KYtC#mErMn74Xg$L?&uENY9E(V?A`fV z*#P^`Xs3>qo{NBH(Y+cM1X|r4SYu(rh}};!3JdDWm4Yt*Bo6cc&m32QQRWUJdbhin zS88BATyweAb8bhFGb`JG?9Umxn|K_L#ayop$@65YzVv%P+m!~Hxo=XDMQOd1V`oXw zuxdikNRx87c^0=c{e|07>=$&`E~{@Y>*U1`@<)e?!w{vxyEE~N%9Y2Jmp@wons(CISi|uxFwYr9C$K3_ zL(`zU{u$KJW03zMviWq}Wf_c~#Fdo*$AM1XHe^rgot5cEA64ne*S@$Tw?Y z@SR7Gu}4Q&XuF6BRcsV>-O{O;IGg3{+r?fxI@63G(>alEcJ?j-NX2bS!_3ApzfomK zz{xLRB9*}w2dJs)HK7Mde$waS7I|IG%xk%~6H^ywq5Lm3skBj0*J zUSiy7HT|FmvEu{FnHd#O1p-R9Jy5^C`Kfv&=~j>`G*18XVcj|-Y-arT4(~bC+?HiR>$aN61K3Hd2$X?G6`@Xt|BGQw4 z?|X+CRWdE`?HC^0x!jT%Hy_J9&}V}`7w3c-!av+|+*=uq{Xs1uMAcgM z#+gKj{AmcfMh72~O|I3|0EBQ39p4k?z?n;7rW_=!Ok}#&VCI14qI)dPaaFgyLmew#Y1z0;M=oL!kYT@ z&+k9?G*=_ABySjKAsg5UhwqqJXqx+Uhx3$sULzGDAt-qK^doI1jk?6`f{&7$m{nWJ zjN3Fc$w@1Ls(FE*hnhV$>+RtmJ@NwJ$M?>hXwY$`1|^xgSkph&hj;Dr!jZRL!I(-n zb$dI?yDxk@2;NLT;h)4Kp^o7S4t+;*w#}c@g^xq7LQB`==r>&3oNL>oDQURM=38j$ zSw7Z~{|$~Fx+N~gLTlhD`Elq8aEX+WGLNBBh&5gx;C0zud-U$Z-+oQ9~d zN8djXK383B9vpm;l0#`3n4jXzuJW7iBLy>_pWlUXw$jfOLr?f`iT$y5Omj3fl;v8$ z3E0f=I&C3i7~xnIF!02x@%O%LHo?XxL>pN~u|Yypg+`m>$yZ$48oVxC2GeL*{ozRL zxgPNGmGgQ$f4=CWaO2VaNL?y}mTw^}^!W?Z;%wAS)YIsXoi|JJ5|9DF zyWR`Tgx;$yeT?Yd?6-LlVx}CF`QMX9c4O)?i5?qWgiqc~$GPvivI70w0^>zvWx9(b z&md&n!feyk-XQ$`-PSM7jU%-0``2CNftLz(-QciKos;VYwQrDHKvLtyW zI?c0FC9UpO5l`2T)JiB+blIN359>tX${n!^jgAi5zr+}B^velL7X5U}GddX!VZTEg zou*k(u!V;C7oWZpF)1h;R=(x#TKW)cF-LBAk{tZX{@Hy)>KhsJ&(>yGp(+d(xm9Mj z8zZ0c>LTcjr;Th^rFa@u+~d3VF3(H*hJ!{}r@nCScMA%Z_38L)r@d=Jm-elpG&^D` zZ%(V`%c_+&L8o$~I5dM7e<>fOjQ46{8gzOia^unl=phra zVh#QRc|nF;F!$KvmfC~DL*ToT%K5I2PlZKJ-{rblU3r1tH&0_@1=7CNM5kG8@0zQu z&s&0&u2(s_kH-JLAIb6Ztv(j;=^LK1n6_y4{7SpIMe{{wz@99Xcztb)7cK8`g5pp# z<7J8pah&?Qa$S2TBjMdx(1&-f%Fu@DzS7a7fW6&!Lrx`$d7{$w{afRu-t1R~>3V&Z zHB!23#i9Sa7Ng=>zU@x`SP@k8U%m#7FZ%O`r#_>UmUMHJ#!PuQFK9y{clF;wEyDE; zM{VW(^+1r<7xymtX#!}H`Jq^EGJ}vqc_fs1l{7%*#w;@b;T&gDVRO}zq*!aTq@s=s zgzm=d@z1^sex&@3q#+xgdHyY7H{IEvnQJ{>Q?@c<57s6wY2R(sU7Z2{jlLtSkV@9V zCvKgG)7>dp3)fMm{^6y4nfv(hq#7Y4+Z$m*U&dg+3LT) zfM#yJKsgxq{e$yJIWi>AmreH?Xe`ocZHn6?T1=Znh_8esOEUYSpO!Mq9o_d1 z$+rCEp3)cH8au?o?QZ0gR0QwG3Jcb^_GZxM^c9q249wTXMr=>B?%L~d8ZKJCVc%jj z`Ni|K-^%){O0M#}vYXRHPY|2I_d3UP^7IdHmjdCVYu3^ZUl9@kHGJ)w510g$+`6wY zCJ_C)H6EeC7nSg)Yz`VsR+gZHz`z}nRuCcoWV{;HHz zCR?U-1Q`_QNz%gmhZW1!^KK8LggyIx6VQqd$4!EBe+*hujXMXP7hYLPuq26LKET>) zf*PHg)*U9KsiNq-EG?U_O&VWFR_69yIb58@s~>t!k0-Jj9c`{C5vi+>STq<+=J@P5 z0spZVj4PJ{CUh1(!YkFdryt+4^DATwt`VT$+VB*+ET7U)-6`Fl6?gh3ttY8SgLl}4 zzhdK+k=R;A%lZ7BS5HiC=sYxB__;guqeN;{e*b)O%D}G%I^tqW)_^z)-fCqNJk$+c{ZoY$bWvHQatt+XBpTLY;)>lJ!N|*D8oH;*Rg1%PLxS#R^v@~oFCe;Q>mkve zk9EEEw6bM+8Jl2baMD|Kj!}aH2P+pUw;t@&b&Z(Jf{Yw#Eoxc1s}S%#N2-q@cf9;D z18R0Rn#xOu;@{pMMz<2g6Um%Ms~1Rxi~GCN{`j!N)rPA-HVQAi{2LN@G0PF9uLDp! z`hjIFzw+XbyKXy|<<5-saYendBsCCr2{cS^&Iln~NqTUiY%$oHEY(`%wAiEsZCUg$ z-X*YVzn)``NHeW+Zp4a6DnGFVc18Zlmwv%naCH}VLY?fmDXS^GzT>D9D-vBdk>WXe zf0yeIMA@&1c9wote`)Q`pDq9A4faEViLFpEA5$q(9W@pkm&cx*1>ZS4(-^JR$FM@3 zq=LhYy{h>BEV7mR&`!e1hp`W8)0=1+eWow0A0)JVN7?;g++QNP@p=CK?)%+^YfubZ zV1$)1H7awXEtBS$<$hO3zOf0{?rO2jWX7Y9=j2tste1lA8MZ&nV8}TJpDm|suZsGN zWj4H);8HKi#I_ovSI~fS1QU^c0+ZtpYVKtwf_x(l3!(xSfMwP^nz3JiAbNeTBu{ZZ$$gpHq4}VfATlW-dtg#>KR@%rAG*+;L*XfsfiJ0 z!Na6zchw`<*=yiYl!iyXp{%mjC`^*52E)+NsJ165hrGpZ zOhAc%UR-HZ-aNQbcWeo&6Q;GxE?N2TTH1PoT`~A3ri=BJ(+SuUy2%nSY$?LRDD}2h zKN^l52ON}9R4S@pG+YMZ=i*&Zgp0L$HhYiqm!ni0RGlrtt65BJEDJwOBcr40ry0h5 z%U)jd$cynNb!GoSOQaUnLhNvl@XIq^X5WjB#C+J6^|6Y!Z@k0?>LGjiZ>HPb+lZ^w z_N0 zz>AT9k?4TcLe*tZy4Z9nS6FoPLH|T70h&kTp-AYGs0a{+&pt8WTxuhL||C99z?C zEs5V;U8Z>HC;N~y(wrKq7cEHXIs5VE!L0qojGv9w#tpd|lf;}KOEfgUWFHa|*1Mq6 z{mM}WB#7%%rPFMjLYmw0AM6v%v%C7sYCbF2Ts zV5?dT(+N@Kk2}pt@XFEUEA%Ub#hbb3>6lfngD3fHf0hCb=CR#Onar)&;6u4=x%~dG zo!5w|)%_K!-aHL#?vBl$k1t2j{aE6BR@0s!%Z-TR+viXf%q^F9w?bOUi4P;q)``ZP zRU)e0dh_BFUwjBEY)cVP4Zv=i z&e{aEqp1|ty)3t7OVSPL=)IJ&9eE7r#d?T$4AYj*FZ+bu&8A-pac3i59$R9^+*gKB zl}Mj3_@K=BQr!(sf0A5(GLzb9sKrEPFJyfG;mFSIM&U0;^9f+gydH^pn1nYexpy>gm`9FA`k6 z$Un^cvgkBtU^;oxyRwO$=xrZf86w5tFPt*WT>av^raawtI8}b=u+Q7LK}iBx-$}g+ zX5PCZVO1u92K{TnEKu~x6EfTqgK!!6bTrY@ejUL^o#2-r3SgA?{5h0w{z|_JwoT&m zmnn_vHb>THwRrLR^2~VzT9@?vTEAnY{>(5zI6T$I!Nn=c>W#8iKnJyOG?Q-UIJaEt z_4iz$7Q_6#e*}8@Vsx=K)sH@zu``p{ykF&wq{kF_`6ev0X?lx*AL{hgT<)Bhq@E07 zLeSe1G4cK)7cWf4YQRfexiw}A%9NZ^&BO#|L?vUo_64*3b!ES2bhATG9%@hIF71{9 z=PCi5=hg$gz|)|W z$2;FH?ydX#S1{=hW2%K9&|I@3vi6INvol9pc8qKt8p0v+?UlysU;x@GarV@|h8|CPQ!7-Yx5?<1$4 z@&w|qlp2(~N}TNP`ePaq9W#Ge144<~it(;4SnRkWN{>$>w_R43C;qrXH4cvMql744 z57AoS28ku%*I5>K6L$=})2R%6+M6zKwgMeW&3zrmzbFlT9iv32N7=kLzJ$>0A>7P^ z2}zubn|~D5v|rYgZbtBYnbw)R<-2AoLS5%adVeACCrbByTXGinYx1fOK$n_ap6{iY2Ou#K-L*UV%HE90k)DxnI^HnqA};bc7ZJ+tlHDEg{@ z&WWTP<8si6ZLnY)*GO5Kc(0Ic{>Tyby^x-TxGK&T*_`>Dfg@p5?4jy>k6xz+`H6eb z=1Arzh5flgjo9_|Z3I^!Sk0(nf44$Q$kC?`U-v%w5g1ZUu9;jehY;v8va;^wb-o&~ ze%Yv9D_fvC6UA@cbHB^z+MZqe#D8R3F43th|+#-(xx-EB|CuHqq9safu1V6G4#_UzaV^fZqF& zR`^9vzdmu^s$bg*$6iif_z^}qHG89L ztB9Wx)U;5{TTCBCQz1H&qD&MymS&qNO?x_O+%9H%E$KD{(aC5K8hDaA)Y;(*!-|8BZz2`JC z9~W_fFY{^<^XHT~rYh3kCpRE~e|npNWD_OW#3s#_FM|wLD?QBq*4z1FbXNi71+6OV zibU06tdpG23GvvJ?q6J`^>72BwOM5fah@S6~*nEy1`-mjXpvisy@9ofb@=Jbuv z2ahdpd~WI@q6+Tg=dy2{xJSCk_$hm<2m#GHd@T6dZQ$yK(=fhMhZlBysr#d$z64LJ za6S&k<9*Ae^k)u^c*F4~hXUw))3!t^2DM{mZbsqnR8QuE69^U_UFEo%{YLkquTykYOI znA&|GRF+Bz@&9VAA(z8lI~@Y>#^wcEK!Xg^s4+REf}_@8k@;XkS(v6o=E4*gL4eA% zMYm~9gQ$_E<49!13jUb&rv&kprbAj!>3Cf(4cn0B-|#0598@{R!rb?EJE=$T`oli$ zn~W}b)}`eQ#Z7X~C2;M$A8hIGo~K!OR`ybw^;uxXE#ic-sGa?`qVOeVLy50X)SrGW z5pzNWqJ6%cucq5&8TVFA*S#r0^i!6XM@+L&%fS`i%lpwnTCU~JlD2#`G8VmiD0(aH zz@)<|PNJvI|DMoPSc_^S>Sb(Ohm&-_&(4X2ba364p=gdx@l809PKD6)v_NiWGI7UpiL_qnN~8@NygjMq5w*guJLjZXW4a zi$%&+Q8he!KHHjp%SexAgdNK4bvfo0emE#g17i}DjhsKdgbe!suXc@l8pHI4+B{XO zJN`&-gm4MrO`)jasQnaz*BYnzGq5$%QVieXU-~ca~Wa zFsAdc7OD__Z=&~$UDC}Ss^RgQN zrft)Qb(Rkp>UN^Y^@a>;91-rTG1{CxyN_#}z9xKqc4DU-IwJK2&an>rer)?cDTvL` zx)366`cvuot=qvn{wj5aPS!LY+iL|o@r4i4xAX(#1uiag1YRpjc561wG>z&8frrDq zDnF8>G?x%jps8T}&V{hK3DOTQG`h+Bt9mLASG)DpMDj>c*ISGbH_L&;{Ze<^_hU|a z1jkG)4Qd3ZqS=ak8yMC*Xf15O4lN93mql z%?@@0*J{5HaBjHD$pxN?0~lm?Z*P&=l9Y^0DquIdA1tedM??&+D~s_n=KVE}du%Tu znA5$rAgoeY$(%Z3?Fm`u;JR^BL?r&lk2`@uVof}#iv1NN5?QF5qrmBhSYEbLJR5EQ zXP^-KbX!;poRpK*UF6C54P0xaL}~Td)ZaU2@4L)@jlVi2{9nMuNmvZiE|JqPGxq_K zCMgBQiKjtu`v3mQ=L)go^~Qn!`nXk) zPX16!6?}n{Z#+okL|VlTPJdt!ssjYj_a8oV^!COWSK8H!Fx}{hW6`j+z0DwGc>C_% zG$0zNFY!29dqhOd`NY*#JU>5Q>GGg6TP3K09rg8XD&sd|uE6pc34nGKtMzJ<*IMmO z1QO!1LdU6JkufnI=>6JCKxnM>8rcl+0yMdclWh$kOCX`9-ki11Q_uMz?I1S>2OKTR3(ovw(_7)Tss(6`+q0GY{r&y9kj!2)uc;U8^6mx8_Ui+w zgoC;MI|3UcIfGRW6YmleHxE`iPY^IzM2U#$_V)Ju2M>;y0uZTnmq1^znd7sx5<#tE zwLe$=ywofsS2-X#HT6aL$Z~tcY)g=$o15EEmTV$uE^*JTv7@;tNh6auJbzG-;r%2C zIb{SHY?jwLJUonJmI#+|ng)E;2fDgc%Kj(Z%F4}FIe%M>{QUd?iZy0$@2z2(#W1*o zfr3XV%u;r7{NCHiih0b}l#cptL3+mlanhoEXx`>|kuC?{lh19yQ}tzQu(B*HPzrN_ zv_YTlhjM7>`^PO0s6>;Q)Vz40olV+3fF>seFZts~eO-|g_Iq|C*~SNrohu&! z;`kg5!&)4eJ%0RwfQV?o$TEnRhe!45>>FMM=$_$TfVs)7qM~v%DAxMPbbe5KocaAb z3Kq%x7sy?oX{ecl#A97u#(V!(S2fozTa1o3N0}@wEgwC8Ecnv?U)OtDc6MR=k!%4N z#~or#o7+5ptDTJe{=MfPxyTd}(c<9&%8L|$yq!tN_i*ib*p+azsH#fZ0c@mob$8cy zueqxv{En%mpPik3J5wGuGcyyu85k7wK0coJ=FRp9k>lSWpl>iRXnxa*XIAnRC#GV@ zv+9hdTw7bK>n;Xt-N|Aj#D_Q|YipiIj~+n|Nk~ca4T^LL4<9~!$Sp1XiHbvk{x=;P zTWndGm=m;A1a&uH;Anl2l$yH8?|6fPOC_6*Uzc9E@vpV#&ZGd|FQYQ5Y#2)L=FPCX z&U5-elNIjef4cX`(eallBDMAo>#d^x6n;8JMy=iH5*B5DX%-e1!oku4=JoY;Ag7`K zJ2CP8{rf*QKL|8!)@*xea6zO3uninyu6|g{HN+pEmM840!P!ksO10EfUkpo30FAU$ zqvYr}7`h}J{@%`%bpczD4}5{}YkQ$yYQDz#mVm(f&`>;e4UI($gJMIG8U}UzvXUAeIOd!QE&B85xeb3Z7A+b@vC(w;AH39h4qc~O;KEn8|LuS!=uIi?wWHNlQvC@8&lT{XCwlsY5ZeuvB z((l*~v|=~tn=F#HB%llDLZ%S|v(}TpUK9&mF)R2UaO)`@5`Y1KfRNCyK|cLcs`Muw zVPOhY)mCdCZU9sM1Ud_K^$v;`L=M>Q{}X_MfRf+7kr6&#-frg{AsLI2AQk8#kQP7P zBkEgNFw@Od^3&|0`116d7Le@Wj$a;lKMu&x8L}>%gJ~k)zz-rE%^O7t^6-4^S{^AV;F#NoqP3f+Q&Y9R9a>82E_Vp zetwT(8R#+sk=WX*3ht{3NU6@yXb=r0gQs#8k+t;Ku3f`jf>%3@UTM=+4&Zvw7p?>!KG$#<1|O8jS8#>~gM}J;kp&qk$f%4p_^|q*gmY8M|(QNBij$ z{oS`S`sE{k3$@+k*a@+-77m~nb-kzK2henaCRHt-4%`jOd+=$eixz@wKn6!Q0~o-l zKV4$Fs7nEaha^-~qIG5g@?Zeqoo(`y!rkkzgy4G+dLU%HDRLsDw0P_PCgkIuBA7?+ zx-6L;Oyp}2gGtNm;0%m@O5TkNuWbiD3D7b#-$~)qNd~Cnr_od#f?z&__;6c1(u!y0 z1#yzz)pZ|K|D<;H^gMp~@-t|v*mr&35>*6|J5woz+UWye5CZ`VAQ9F|3p*7lX=!{} zcb$`UvhI>{yR@8te>+$8=oA4Hd-8E?Og}?8pyustg(f(UpOWqFr=g*taOabq zDebvxCw?%3q^1fPJqDER*JEGQa_0)Q;bsz#wY5|1bN#dc)%doA#8XBw3t_04N4&K2 z-1CZx3bLA&VF^~1z&eon^nsyg9W)-HDsJ4^{dC$qFg%AQ`r`<82JVx!Mso!hD{m@<+-f4&2PJ`LRaqjW%WtXbKY@CS5dUKJG!S~|Md zAmEOG*-$J@7-~l z{(b0~qGY$+7Dmg$A^-yES);czi=6A1y`|hjs-inykJPEZ{1=`XZH#jo)x|u9LnN&MIva16g* zj;aWOp~ihaLAG}*G34?afOA`3zka;{bnCy(0jO|WBQO;udGz)r%e_=WX7H0oHPRZx6_#uyNZ%(I(XyAc=k2H1fm#SNZ|6kmP79bExXaa%-L5lRE(p02FD4~NC zX$nYyP^Cm5A@l&DoSpAi&b>3|oVjyn?teEkQ7686-@W%*d#z_Z>)Cl_sISFH$4y5; zLBV)m`_3Z@iqrlS6sJti(11_IC}QKlUrIiAO?-@?4nBT1-u4uFHa?ziP#-sE+lz2} zZ&Qtrd1#zUw zwU-M=1 z>=B8Kj+PDD^Ylwe${#K?K%sy^{(05ukf(1qygt`1_V_c4-%PLqv+DZIWJ;)y&y7X| zvB12}d+*@j(bvaf^*+mOzjC!?=W=Ok@Ki?(0ghWKPb}>*`JEOuZ z7OQ1q!l{=bZ$DAxoYuvw>i@1wAT;w)zRnyN1GwB7UBZWg-8pmrCG_d$x}Vy{%Q9bvlha37nKMzlh~CHm9l+A)|6ezicu z5_2W6xM|WhrwENi{+j7P@%#rV4q(uep(jUJRgv@JPxHLyJC*z$$lks1tjeaHCSA_; zo~Ng@RP*8W>FMd9lOy6};A(MSnyd)S@(sAfo99%tn;qv2etx(`rJt?Zv$@!7TIVfX z{H*%a2hC_Ex3RM4mW_cA!K0Z3)cdNOhhM&a{Ry~>M}rP4EAbx>WE6k;&3bF8KWKk3 zh2n<$L=sqLnV`M(zA!&<*KbzM*)ovMTI!Fb&Bw}}oD?BPJI3U763Gd=4Q47E7qIi& zST?Ti@vB#_RQF~h7iY}lY;A2tP0B7(XvOl*&4ixx^Dh4r6TA!1R-su73wBF` zIR-E2&Qtsy%BKf=qv3F~7c2&C*sF6Q-e?QI4PZUHfb742oi0e4cYnAQ@fYm5rQMLD z1B?APEUZ1WBcE>F5#k~5$zPxDI{*4~+FElknm_R6!`yrE>FIPWe}CnEc~Ug0lxr>< zJE&LyTw{CX_i96zd2C^J;7X>uV-%{;AZH0&cEfpy8p2TYwD^>pHrT`F^}ef1Y-`yT z1}Tyj+Pb<6V7Y!w?ve=2i3tg9xpC@&fUE zJhO!z#4hwCQba~ZmI1>f-7(3Fb%#esV5`~e;>I%-z5aY1k-D6aBMJgz-OG`Y$M@cH zgN-FIRtFOSvvefw;%~T(y#rPU_F|v_uJ*;U@!<5}c`mN|ckWPITGkOM>7=BjblzX} z9oYT+S+pLG*Ku+Zeg6D82t30L0Wb=%`V?d35Zaczt0j-}>2_Ape#pi~RPJbL8P$2)yNrBpeIV7? zF;VR*8%NyPS&U#-x87XnVV8K8Wad%#f?4D6T?8$&W%Vj6YfmpZz?pXdQ!07RQsmxy z`zMOWqx*1WtX%MBa$@mf$Ns%dhZuJCjM7pmetv!|FXrnL@hke7-QuMUZM9zWV5dG? zqIP$7b_N?27$8;FkqK;V;p^8EzQ5sc-7X;~kA*Rbn#tQB1U4UT(*G_p#uny;eA3TS zKHMHQNb71?Z=-jcs(%kQ)E_LiiwD|p3rtK_Bkjs%Z#5%kOV;=|oa#Y}cVDy5t(G>c zJI)@H%k+l%tuTEj{Gw z?)J8il4Iuq2#ssr<{&lHOnTFk7yRMFho+;6AHj~A48UeF@W{u^wMP#Z=<(2TNM_>G z|M9DXx#i^^KEKIU^42f0KwYm9Q1*GrDtPZ_m9tTJLy^%Pbv3LwN3oAeW07#)+ASZ<$ z?Qk%w?_Hd#_s#W~s^`@R$pn+#n(~`@SoBnaoJ7I))yYv0CZ}x>!soY_hjnw*vw+8> z!|@Xj%dBtl2d&>~I^2A~%R~#zzmOApJO^$*UV;Mqi@fkn!K4c4j5-)Kms+4ta^j<) zjqe=f@CtI%&s;6$A1P9UV2Y`VUYCoEOW{gLkUq%EPq9sy(I6S*{bTpako`rD0^Kz4 zfn9R22f61LSc&YA1LuZ@hP`7F;Xa5o?kCT+e8rQ0Nui)E3yFTFQ7K4$K8R z?wFGgo-Nrm`t`{huy40Id7$g~nwf-m?{1D)*vldqa+b3ZYab0i-pAQe}PV`9_*}kwLGT+5h>TEJ&NpSQH(qe{KQGvpbYSc<0GOK+qrXMX2@$` zOp;QK+iVmd4Hp;{>i4C}M9hSc7(tBu`uIzmKF4!}{b{#!IULFt> z7Jk7dtm8STMqCFt0fplI7f6d=%?<>+NgMf=M0Wh{}CxaF;oQS`CcW(!6HDwV?_5<+B8$R=Y1Ga+y z2MC;kqVJBas=BdDm@zOkWMPVKpIZFqCK+51Mc);6VV$IwcEQlMrauv8Ca%6 z-h}y`93O$GGBIUOzFM0fAVq%Q&5LW-C0|Wr$N*gXsU)${z3Gg9M0hv_BEGe?)uZGd zdFxK%LGB_)q^)4vkWWM;c~;&9nN2nQ9F)*bEi~8$J6BA|S6*N2xQCyp!-Qma`L@Lj}lP5 zEIsFqmFMfOoU(*4&@%H2DJxG*<-c6``tBXe>+|BtQX=pEWj5A2-uw6O<0k78!GZzY zp5R(y*9p_3Zs3~p07f`-=8PfdmHlj)sM=aZ0HGLe0`xg$9{=y>y?2b61I`9w;G=pU zXI0e^i^rQaMe!R8q%Z|JIXT%$MtXV}fc$lxGcy8VV0#(mX|q6Nre!+}2w!I~O_*)d!RQ>B|=FE?bj40PPHoRcMm+Mw_ z98~w!XZt@O8N4NiR-cjA_RgIWt%G2b5;@~dx!`{4|4Utj<~iNqVHfjJD~>-hD(a7? zq6t7@!Z{FtECBlYl$#4{Y+BVrmsr$+T`~Ee^?bP?`@?@Tc~xTmVaw`0qXJ!{dbv!)31cL6R%a_S($L~K&2>=PFvXAKEkN3GCLa2frpC)T` zO6ba!p&F=_PV%+;&rh9p8Y{a5+?ocbMa>_2=mh|ery?&{f$6|i35pOBUIENX3+x$? zPUhpa`2Pv%flSxc1Eqae9=o7R-ZnRD)J(y7qL~F80GN4P{OtYgtTlhY0vQfnCn(te zU{9BK*U{EK1EOFRz;NB&-F-)(Q~?uQ2Q|#kZ>F*U)O`U(iCK+@J&0-}MaFTU>{@Hs z(vRg;@;*Bw_n&n#{^6grQJdBCQDG)%m_pJDe4a*{pP%m^Hqdatt*NO8=A#QxUw>-^ zt<h5;3p~$PlgI@s~$Sz;Bm8 z###bNPwvUr$1=dYGQeIA>$9z$Xf(PnTMfer(S7_lX=7(cF8E+uCPM)#-yX#%3qYq_ zn3C6@NSV%5@Ms>e35Nk3BgZpY#{u4R7cMxg)y^{wmqWBF0g{!qX`=?ChJXzG-gNMs zfvQdV4QJb>fh<=fbjE{*k=rgPIJh6=C_P)-Py4vaL0wPJG5`a^{(1YZB!R~OLyzmG z-{`q>?_N51d|KyQo(vU2gRI$L>o?O%25WMz0i^--X^FY>)hA!=(iNZ{C8-(LCe>%)4_cfKtEH9-LY z2TP-7P~U)W*=h)fY+`vAzbpvhy-)GR50Xovz$A6Er1l0$4YVW(c==gdh_dVa_NwSx zor%N5=(?d#b0CM=9c(YB)igF_7UDted`?7vVNl~F&$=~S6#y+zv1Xs9zp&7$=_nz` zbbO}48{7OYwtV)a;FJzq9xfcN^@31bef+uQaDQtb zWKQSl1|^WWB*;KyK2C!MFfQS~tD_sOv;wu6DoRR9TP9(&{QhC!nztZ(vvP83SG)Xn z0_9JoL;s(T(fpUMUVRNrdG7rAyRX=UDL~aEMc(be706EvKTQuJhUn98sl5 z?H6=pI5Sdel`}SGa*C>wsOC?c@~hil%Aou^-KYYX%Tsi~YH$NP@=VmMpfYo=&gW?Lh^JgdI?hC_;MwYrUUbR-^AbB=>U z3lwPPND*P-hbXu^g}nR39pJ$hAb4nc6@-O_^?@?=)7>|ZK=`!&K(vpGp5kp&7;gfIXt6?f=1lit z>);sDXL+a(1N>_~^n@e;lKvb3%#v{dOUx(Z*wdfE0Fwuw|0|@w)b=p!od5QKYw&lx zI3)oTeWDLPQHO+t-0+x81(nF70$r}B-%M_KdtV300I^gKHtI*+wCmTNRsC(CgxcC( z1_Mm1G00X8a6TPCGuB*D8{ybuKP4eQI;!IJ=MIQ^%N2uYG%;ad5s$}vW9B^V>Lli) zugJ?^0Kg60`gvhtVXqg*0ewI4E9a?tIlys{ISEh_lDz>`EBAGD>c0g_Jr!?JBTj09 zh_w%D2r)2BP;EUfwLHq~QYAH*x~pvcC*34;iOze~6~}0C89epoU6%(%=_So5kn>u> zjQmOX8t2h(T!2@>0;}!q?Xj@2{qfELYwr!*Z7Ul#+w#2OXcv=WmDCqwCaHzjg!~v1^+fi?W^nA4?e|U50d7?hyyBw zKJ!x3$}5aK@_C@nIRvxbBay5|l}J0QTA(zz4$V;wxW4t>x0nuaWx$cQ*QPQ6h#<#* zU0nwH3)e0xDyDYvBVs`4*aY9+8hRiF>N0~ez$ck6OFaTbva;WrE+|*`z+k>upyUDT zVbdAIHS*0gkqo^7cgM=Z(;LGj`}s-H1xiZFBrzizz;2Ptj=)`94}iMMGtHp`IWhF2 zfENTA=WxB9nVfJzb#EEG^IQBN_22OF@_2rX2qI}?fj@3i-3Fwm_u|G5Aa}5fKaI)D z69NFhB38-guVJzpLKaYofSki^`l|h%Y1V)?Y|v2AGUd7a{tD=$C_uD4Y6=RV_>m;m z4&0hc!Gjmr=MNYzq$P~9ZgULO^aY@lY1sSo1^@z2P#%|qLIGS(bu;mb-rw;`5oWb* zmbtmPpuM?hGUI92&2oIWW$^V$Q72$a2DJo&lf-v2O63=tm#ICtkcgA z|4b->Ij^HNUBTK#@TDbT&E?K!wtDaff3LkI9zSC;?6ffKgn9k&_l|4lgm`a7g0dK_ zTNJr|A{zt5o_n#pX-eYL$r5ItALaizjabhnqgQqiY*SNHVQtfqk<=g$+~40^+}PUc z?SH`PrPA1R_fEwn39e&zhA!hVjJ-;0zu=^qQ3y-rS$z*0Lbzeoi=#b=y7xz7bU>Dw z3*i@4$RX==0PVE@{E8~@uWtLFgjVn3`k$^Ug#>2U z-WIWDH*iy^6cBYm7P|$u#aViK2tc>MCRFRog*jwG6ol*+GHFt7`<+wPK{u8@rJ>Yu zFq@i&#$o?=rK5pgiU^<)rj`tBhNGp4A=-^CeT^at7<(tGGvBDcc$Gm_IjJzAk(!mI zI(15L<&`#cS_YGT&4UxR**SXJf|f|0*_kV4207@TXM4-JJXQn}< zwD4@s$q@jRtQ>gz>I>*>ruj_=M1$hmp-!qfI0^7k-lD?%e?DDQyi6jFYxGDOxW6d2 zy8WA@Qe9GTR>I``DV^4X<1$xj>ZGWAwH9%fwHey!fW4FK#(A5yV8e2i8;2V|G^We# z;ifynqSM?@Rj~}gl(wUq+uWi)!|zM)mN3n1r&Sp6dPDhub0tWL&G%qHRC}Fi0LlZ= zM|m$nt-)G%eCL=!+%oKf(ZxdtKVyglf)38~;!69+NkI+`^|_a_k<=zcd3KLXUrbnH z2JU(-T~b3AO#^K~c<4c7iCB5rmI4NTQA+2*3%Mf-Dpb_1thmx3&fuUri>T4c);;&( z*)eZzMFtg`_UvZsu2Mr{fw)<;x!SK`+~)cP;wS*Ym-iE{XE#W6NpOQ*CloinpTQ{S z$LQxL{M6+WBLn5rMmy5HW#98JVb9-j8!lYXRyr+f)|Oq4<C{F*ICeb!x zjlryW03|{D={Pd=EnH2GayO=Td_MtV(}|a^QR`S!_6wa1c{u|`T!^R>?I^ym=wH!?WEpu0S~={FS9)Gy1_eznL}x;-{WX?YqaI@37s zjZg6YUBHaH{-MfZjX%C}3(rLr?a(q^F8!sxG0S^`21U^|taXppxN@+6T&JqMG2k3i zdsW8V!swPpvW(}|>yA4=ezThYl!VMrnMISs{(|y9?IUzTt*CY^a`l&M$#k9tM+Nkg z12YWGl4oU)u* ze66DqXK;xJH?T^P+iqiiAA|Mt0}gv&Iy2MGlWtIU3ED@)!&VwfoSfI?zUF`C%Hwd~ zBdKP~I^}Ts@x^88e_8)>oj$qM)m^>N;eri(#&)OFcPfXMzLF5NLs<0a4X?6G9sd#a z%K6IxzEiP%VnSd7PXFa>+4g;tadcGL>NHYtlu=|!bZq`7G3wB}el{Yof3 zV`w-xbbMBRU#QQ?hDbYQ9Y-l@IHAsTvj_EY3AGE~yl*mzZ$o=IUBDgwR)?-mhYP+j z7ZK=n=bH1IyJA?&%HGJRd$ligZ?kPb&xt3DYEqrnLz|$InXc{vBg_o2wtd_g2+jVf z{4?+@I~3Af<2nHo~NFN_0c z_sqtTIskDJb(DzXXnA{t`}-?XIq)7!{gDbb(&5+YMfssvItjQ6yC}WUO6zm6T~`bm zF60#TJuadU8t8sUbDK0YFWr|bD|&k)yldS+8h-6cl@NuKJebu_w+;))Gn8FI-mg42WTAai48sqxaU4@)yBr$c#)xm? z)3lktiQ<1WO!Marf8}6e%89TBqxbnpc4Tj@-G6N@=s(rXsTs$wc7~DhJLowE?yNje z@4}5&dMWY({v8__>}?Oql+}u6!sW}@_rF5XBEePDj`yTZuNFGnTcX&3wy2GEB6SKZi>Q{AXWv*f@`4AmE;}cE4NqCF zlGT+bjQQzzSHNVq3Ll4ZX2EgVq7!Wgf+u4>47H=9TEs~$Ny;p8KRlW@EMW{!T%9V}E(dB3&tyq(42V?4GK#N;oMj!fIII(!o{(hL^_^-8eO){* z&eA}Cdq-h*DIST1?kM18Q1|SDr-4@XV=Q4{ZKcK+aA zbpGLg@p{ajTl%xWHPcfX%-*i|!FEHl*{d2yUC+jmIiUYZ=oo%8k!ffckpXDJ`{IfL z_RIiJ_NnNUETPr)Ae6*0OXlP$#o5tUKj#$L-JP|5maMpv7SnI=T$NmN(R$}W8jY&S z4w>b%HRJ4aB}@p&FW%s_a6_97R0#UKnY0~r9s01B#qx|a85m60#`j>hq}uRCV~U3p zU{o$bs_@^blOkU_W(g)s<@xiVRQF0<&0bC|U-HQpnQL|Wd|dB7_j6X|^F{%qmC?Lg zOR$XC20Y0%YWN|G+`;6-nk)Ut2Na?wV|CA0^$41K{qVMie1nPXj$`3g@or?=p2(>S z>MIOcvZtn9N^e%DNHyz$p89&Xpmb;xETf&0RmzUtL&U0ROY8>!k{jV+*=zUqO995M zmj`yb`{7D{sR$P`FF+$U&+7N6W%Y^$3Z8FVYI*1GUC=)z z^lJA&N6CCm!FfpNs&PpSpqM0{RapZvPLd>hOb6(;6Oc@A-MmQwy8aY^FC_PmKyC2w zv*9JcUMM{>%1WI5-_TrE5B?w0T)2Ma>dy zX}7us<5)O2QUaRk)eHco_317>4;%Z{$7iD3Z-K#5lF(HJdKqkNY_~x(95j!bwqfohFh41p?` z%#8uLfcVQ<8gjigxxGfoo=UF6~*wyhU%e#z-Q7I#^v3Z z=U&1#j~Gc0gQ8RLR*3mk!+q1*V9BaX8?8G2bZ4!jD_w0vh1PI0X)(Bv%iKNB;hQ|$ zqyAkq)zwncIzJ09Mw;jUVtm0f9(H5nGouz!FESB>(|*=nFC5u!Q!3y#IKD8pl@p4U z=Hzo|zVf?DLgHAGeoLTikdU?;TNCWs7>?Ttk~a`=lKDNJQR8{e3DpxdcQ+lg9)$M9 zI8bF$Lc8_GgXJrBhYh5?g&MXKR(E-_!%+&iQKF

    K3`N}`3%Q*(WSIV-XLgCKhQiE|__Q)W5~oa+|hHndYU~`YBK7Q7k*(B^gLd9D*eGDV9&KHP?_x z5%PNlm-2t$#v6_wJ8NesN=HY5t`Uy#z~77X-L%1wd^?iIa44cxY}Q;-U((Pi_!ufb zXm8G)xJ{LGEU__%n3-v4Ywv><4r#ZuTmuR6(B#NV<$XVC%U~=?^>UR1KNC9xxuVe0 z?Ib5DA-gY{N*EMnWy$-PtKEzxD8+ADyUj*aR5#u7Nt6^9^A;t`IB%Wrr%uGpE*7E#)R)xuEpOKr< zsnB23ZQN;%y{51}>)nrVkG@DKYiTRgtLDVIYeCSu1o@%0OwC+$3AUP6aD2?WZAsXQ zw$KW5f)%!YQ~P?NTlur?L`EZ5_Dn=@3uUGFZUysYAcZphmLF~fWF(ie%rr;VcXvmC zH3yFAhuIi#X81f09Me2AUSyR|SU?0b_UF%sO7SB10q;Vl4!n;vxq%-DE@v=$0M0*# zBpjXwq%X-D9d2K9OUO47j#y0%*#!`?JXrJ|XP?h7MDyr*DfaE`?xq2r!kMeMmp0CbT*S z&2T5tiEeC*beW#eJJSC=G5z5w2AQ1{(-5?J*iiTJV$3tzVshW9_llJjHU5O#`W?b7 zW!F_Ym`B^!cq5eQ6D%lm8fj`bQfwWiEa^?#uW64UM9yA(O8(sw$x^}5-+-`uzCqw> z$|<00NSWg&e$Q`r{A8fh^^zKc^>@^J7r+rh=b+yH;`d7pGk@iuoYdT_2oBsIyLqvQ z$Ebrqq!{l`B7V+rdqnE5U$v=PLm+`e4`orZKiGEHtRC}uimu}go0V31NtMaGQ{fsno8e^6Fn{xxV znST&7#%%w+a;xY2D^I3(UdM|^h zkX{GNd~0PW8VpEW?iy<4Dx|ZGBF1=N8vMVkxDHS!toH_iC8k24370MgVPLvT7AItee7EfJZ#(c~E7V_080w4Z)U zAyjKjEuiSYckh_~Km9pAj}gdgeguOx7sB+o2sIKSv z3tqG<{!Mk~(c1SAcWc zrvWk3{5obQE9=>0Z0O@SQX?1Tb8G}oEcZqNpH9&K9=ot9Akb6p)X+I^yFhS52q)_T7C z^P`7NW1Om~F&vZEBXiO<84}H3zQ((}^6_Nv$F#1=b)P6b2yS+!lEq6|^-3T7rYq^d zt2B>HPFwHUi}sb+txrF1##p1`yW1wLcxosueKm3sUHpLX>Rmk2D|~tx`N*4kQrLqO zlxE1{!uCOochm>5S`6!cpHB?)KLXGsjz;1V$tWP2pczC#-{OVv^SdjYMEBr+g;>a} zgU6o?+!IGZZ_4-^Hx~ibR0K!ab$=!rXTyPlfC~@RH6{6f*QpQ!8~Q6WLI{4W|B+?9 z1UH@F^f>`DN@&JL;8~loaPtrK=%$?^B*k&C4PdvBY-E6dj2{Mb9T#?mXvIe!y+oYT z?XkChL9e@`BNSAWw*Z4wvR(?3(~11Z)GV-daHxk43Bwu}PcAa=aXnZ_bHgfP4^yjN z_CfHx=H%dgmR1Q)8yWS$DndrQz9qW=h%6AfgqJF8u@3IGFpzV=K3fM3v{dqq zr%kxRZb$p@N%5hV|8r%rV#Yy3_e@=pa|X$ZDf5yxzAlL^NfnzU-Q>0W(F^>GQDmgW zev~8ncAMV*!LzTmoHagZo6)LWY5%$r#xxervOv3^BPWvMIjUW8PodjpYhGJK;1{zD zzWrstsERfS9t81sV04F{U5V%J+#0sJThDCH-x3?#)HJ0U;`xX{IB=p+`&@t`!Hpvq zRkwKViyUPBPCPzs1Pmmv=@vZxO3s$bg_uyhk$xZZbCWCUizpM;CRyM>4(FU&+z6#}Rf&S+Lw_Nu&><=jX1i+`X^V9bSTb1x7nq@vjJa7UEAo=u8z*&YH2k>2s*Er_o%Xzy(gQz zrD#t>C#Q6mq$Va=*effdCBDSP6W>6(ZYw-@MY4NQAEhZ$J-s;xex^l;e{tjIV?x!9 zxV8Ii1Ko6oY3J$UP`&3RN!xnsk}o|q`zEJLV`&xj46Qh6=|!)xQ7YF(^xW^Iv`pY? zs(G=;_t7#?eXrPrXE3RyQ|x`gSJ*6mL5gTcY?X7`+9WbPn_8O|iMGQ!70U;}T^f``C8R zH#0jQZ}k`p>^sCE&s@wABEuPyg19>_APnaK3NB>$?!m1^-&E7u$!@!>oyDbIheHfQ zFdQ!|ZBMxh&i;P(ldEsb=QcNjZ!4#3cIrfU@}d1qvgFO{I|P|tgUoae!ani4ab9`X zd19Y%@shW%2rRvdL`e7lCF$cx^6}P;cr&^kI}j}{dMR2GZ`F;SL6TrQ?ZHM`>&Y9o zZiT)Iyf-_7E0^<$#oFCEFsY|jqbwnFU(<#yQfI&~NhPc=LNK^++h2awaDKeD2PMvt zAopI0i#M`mRkzcTOdy6_s)@fVYSk*rK>F**d)L#Bi`b+EE6b$utj)&RY89;nI+@jB z6adkgxxu0qW-au#ul)={Zx~}XEK=YxNn-lZ{ofb6D};+sZSm1M8q(33SU z1sg>dd;P3O?gWmINk|~#2l8V_8+YciH6|opSkYR0d!@T`(>&P@48o?_cyi&k+zgm| zU`~!rTqwkS%EcsDA#Euq+zYpc>22@NbtKKuMb+YH{;lv{q&*2<>uf~J@f{XD=7FU4)l&w_34VGIqh2u8| zR(hMin{*@=DyJdiN?gQh2vQ*~O#?TIg%21&YWWpHdX5{3#D_p1wf>{WkITg%a;0VD zDUH*NvsT^q^Y++U#01*%i^+;IPf=RE)5EA`|C2tigczzQ!HjoqC(GYMj_2yRmgdj2 z$jjR=YjySq4GI0sB9SkkB z!tMDih}=vPsaf4yE}Ffc7f>S$1_hZ8=q{q-u4b|&Vv}y zVy`M>tUwNOd%-9wl2fZU=o;!c5gp&L-J_23{_`cuY4QzH(Au(C&*M+N*Z!~k@6QV| zwad6Nth8DN%lM~q8pCcyMM_p6_YYq7hR{bn&q+i&&FgDYNa(kp{-g@YTN#Y?6v80) z_hKM)$<2AQHeWu{ez=3DMkJAn(PkCyvdS~buv;xKex9g-EuHN+!80==iynKZ$F)z>3PW2(z3LULg z>EAtxa!g73eBIOg8#T<9lH`acM$hWP8V(;>a{h^a$sEk$=%RGYF)ra?r7rDqqI$=ZD_HgPIAoRW+q@-6mwTyp# zR?^%YnQFc@`70}(Pb*bky0WpHHhxE!nlFVKrVOWe1SwLFs+%%i{p!(irA;~w# z@~NJylp{Z8$gTJBhT27BrB z6#>1G_g<~qRjnwq_aCICkG3MxEsGk-Qhoc{>+98Oh|U^wB^I6~jD6R;I@0#WP&Onc zu|WE0{AvLh*v9}JrVUqy>RFRwJd-?8hQ(aneY;bkZA*pL3F%MCF9=*|y)Gouj@|A{ zC44xLA0pS34Rn<*aspaF_1y6ACku7e*rk;fQ!L)>(YSUkM!Ke~kC;)wt}or_rCy$r8_!I1C__MR zerrsQ)9tK@A!RnJsj;rDqUVqWGacQfte;DG9sQmPyHf%?I#adkGsh*-X z-QVwolI}6o#61}@f4;D2&Mug-G!9-P=;ozrI2Im}$Y}^gohk1n{yd3ZNE#DQGONJL z^$yZxIHG4Nz9;0}tsqj=uOaI_^jFOBE=en`Afm2qG-9#yW`t`|D8A|F@E;W*hTVhu z3n~%chO0-I-TA|(bs$0GHH+9hX7>L19qsZ&a^b%Ir-h0Nmz)LSO7EImL}=d52;K#th3P*zH;}{R@0;SSs^*^CN?}g zK4jCzXeDGVaJUNmzK5R!?c7}>BJkI;FU#WOhi!-CY$zRtq%q}@{UIc)+O*C|MAYQm z`O13;_2^m zIo0LvOxTPZeJo0qk@Ckj5t>~F?;3Yy1!<&SArxhwb5mYHvg&v zBjl+zZ4i>%mVN&s3&A+no259jmgF6`6fbT<+1odmRE$)>I@u~rt;AK8S36rZR{!m( zFoRoO9F!`8cE%L5OrL2KHLJlew9*Z=96)qTZcHiK7?*kO6N~p^FB5i5pY>LI!}$dU zC}erR;G(G3sh|(7?LJ+7j=gkT7(aklAse^7xfUZ=48hy3sst@&ZMl%Tr`r}9+sw=R zgL&R==x-J=Y%nVaXah^1o2S*Qp7=|0w zWoF`ZV`ekF3Kxvrw>Tk1^zuUYUDFSmr}MWWN(my?X(jqIX*kXf3{PkI{|gRo5*$5@YBw_&`i2N?89`=Eg;B`sPZ<{eHjm^m7+TUiIm|o=bF~ zv*~VF)~f6;)Z5!uFQ{=anZsUYvvsr2Rc6HIoj5c_dMZT4ylVqkQe0JSY51EpPnd2T&`vye0i^BBy}!FODG1zVYWSFQ{v()EX9!MN&Q{zm2MRs|B6K zN^A90<7aDv{-j}L!Ag=sH^NP+56<~xx}F}O0L(m?Yi}Q8O_7h~Xv@-~ZyHIIROG{& z+s_J+Kzc@Td*QlGjQkjDl0emqs!BSem6dDXpYvZSOHt4}J}P<5@x1j`k=JqdQ9O$x z0=8?%nZ{WNvoDpd@n_4WI1>{wOvv`4wQx$rd3o{lvCsbQS6#_&i&C#+3{}K%^}A@_ zkb8Gp)A%GJysx}{VL^tg_DlpfEmV6{)mYs0otWP9tWo#3F2y_}df^g4UvKb&P^5qy za{7@SbR9)p5qR3gtsa$xS!X@A4aqm7K}Al-~kZ%NGzG;RbZjrTdLfCC6#GH1p45+TcH^d6?Q5Jpeb_ z$mr|qmp2x4RXu6Id8GEqUv}%~nQgfgT~_KYg@TCeH4 zPWWZ);uW)6)v8UjC)xB46+0pFcaC>aDw#xNt&K~Kp~4X%`v-A{>Dv3veWuY8qJ2uA zYSq`*>r?Z$OUCHzy!TV&8i>xu7(>Z)C4Sp4Wb z)v3B(Y%hKvr%3+>t>*NJ~fxD4>K23R}81-O`<+lypiM7$9An4ke_dLAph{8=kQ|=Xsw0`{n)cUhgNb z>m2spYt1#+oMVo0-@oy9nFuaS)_Zz4L6x@SMWW|Z%A=kOT&aO6v6H^Wuf>V33O1bN zqZOCeA9}Nw9ZIbbJlsIdZ~i)ct5uTy`BK;`KF_CzTf9t>ou8&!TJBk%J(!AZBEMur z8Mec$b5E;Gk6oos@&4?p&6oQo9Rdn}=2Q8t&ef`=aB1lE4}7gSz(g?c_Z8Nhn6rcG zg*l9hQn7&VO5GOa@v0>M=e_~mhQ(an{S=G-gb(rYW~ER%9ID>c>3Qc=i`CPej#esj z>GIgBmZRXG3lnN9%VKkEV8ucn63o*w2tP{vE0}1om~>;t*Yof) zXPX*j%>jErP||$oo8%qGrM`-cjE?A-QN;)`oc848vV$#N-DsPdTdgcg1}QM_Y)ywGj0*$C6zE`{baNlZIQ6DY`S*Lun#aDE&|TggW1`-RUtQ!~om*hWumF z`kQEeL2s{~IlWUa)#HPcLzX&>d#Qqx-)Aw2RIPk^>N$_pM1Cbd$1T(7L2%4A$9IlY zRIvgpC`phQ%VGeI_gPQTQH9>8w+=rl@jv-`xSPB~s3NgYM$>A~?9vp*Pjwd?Vr*u% z1SbN`l7y4@$A`%g{Y~EzzM;meY2B4-i*60pj58Ogq}Zx;NUZsoJ&HWIcKAI+l-;S0 zIm^>iiSL5mpWdR}$a3+9uLgy6!RJ`aKys7F3>coa{Q0yRN4wzW?bb(w9`(4jtv#IY zxXZX0VXaNh2I&RjL4v9;$f*%4I2+qbur@!=*5Cz^^FJcAhJJMs;8rW`NuvD;rzOf-BT&-)epl;YA#< z_VXQKX=zLdBq_J%^5?r)ey5T6lft@gah;qBFQf-2-( zti^79R?%e$NDk>`bQ`wDpv8Zl$8&7z5h!#QqS4u+7 zY04n()(bk=fNiMXXaG|vABNo!1kI>-auFqB;^JRnBh&yn7=Vf5K7Rbzm#Zsj0qTo> zcv9xGEzwOl*`V=x27drht&$)LCTpvavMv%*(!%P!Dbm)_(a~pBZpENPbA&=Z2b5y} zO2rIBJP(R`s=@o-x3RHN;B~OT3iD07-+i^pWdHC`69`ZDcfI~f%l?YGK<9-5y=y** z5%n+JeAZj;vi=rPx4CVZa$LTAc~%D`0$*9vJi718%iG?5ajY}bFTZHgyn<-IShQtl zo-rg^u{(K^NPnJJq6^sOzO!eO_db!9N`v@*)x=R{eMF+%J@5f=JmF&+2kg#|EeQtE z{vtJDXY#43blI156|C;YS);YSnI@JGf5xT>nMI*8`-ZoNOq56i_ct>%g{Ue<$EsLv znHDBK#fNwJOaJ{?MR$^9G9CB!qLAQF0db3EE21PpN44C!4y!NLRh5c?Yd+X(s0|~> zp~7TAQm6ubiKe1zKVg5Oh;N?tG&4$=nfdrI>tUT*_Sh%Op`4M;-kzREiKFjd4yjj_ zPcM$(jkb{<^mXs70=%4}VgDjmO-MYwUM1%-#zzvOco?9mce8!tl((F#Zg9{WF zIz&+m1B@eOYI;Mn)OxmoLQ+x0#uo?w_jrx>4=7?+C5k$8fmBcwysNBGNEfgfOIe?8 z0uqfO7DBs05N-`YWY|cBf3(7R{_{sgiz;9Qynts5wMWOkLpKmMn?)T}GynsRO(X9z zl*tiyBAX$ITknDd6+t3gyBAs;*FV#4FZVEn;9R7Iqv!>z z!q!=+%0A=*|4saIM}Fd`?tZ=2yVgBFYTMh3)XQRy4UgaqP_n#>$KrL!Y~LD}XgvD^ zU0CAz-M`-J!9!o-9o zlYj7tFcVW@=*xeMU!^~R&-OArJX0Z>1qc*@JNV0C$0js&E#L9R~W{tO2v73-L&0`Y-kP-I6NCIDENz zaD9!rPBbeP*67hSUCbT%X?kvnj*L;Fqh-vZ*eV%=P8AFPGiuhOSZp@knEAHI)j@8X zQ>rtSrOT=Kv}gb_;$0y$N(Rrnt~z`zwrF3c(XnM#a$fR*_5hO|=09-m zHr|}eB(!-pGOE9(mmo&FB%U=gs#JfAvyGYH^kjG`H|;11A76z1g^V;;Zr)e*&aF;y z@3C)Y>YrXK2(vQ#9JhD)U}rL|wQ?uBYZc%xeH^D~QNZ8g)w$U;t)9aI^o;;Rqp-bWJ2$h=u_57bnGXbQX$I1RYn2h{j z<9mHgjvOJEfulcxFB3FN8gbv@1D~IMy@XJk_zzjhZTP@i&*(CNjf9CDxs~=qRX^U` zg&+pw0EOod5mK`D?*3ZE=`QhflB?BSdF2(G5@~*CwfbDsl0{=Y4jOYy?LVNNex4ds z&x*TdHk3_UWJL;Mi1%{~J$cXBJWfO^w;mtNhlPXxK+&E?v7k_iPF2DEr1G;-)jVT# z*>J&kwGQhcgI{cCn5-#()YWCa5*DNPI_gSc?Zd-1+t?CN=;zX|9UoU?&V|!WM47Ulw!0pVIxE?OWAnRJ zm13I2s2S{pSt%vz*&261bLKMjk`+t-{(S?0W&oLh%NX%Z0M`IPmLcE~n6_WuABb}c z2*dytrTat3^lpFg&Qx-iMzQ$?5CjoS0J{&N#vq6RdS?fRY0!~nz-j}u!Pl_cy_T%1 zr*GK+dsw7sL*2NZ5=F2iq4m&ZHby}TpZew6X@W6Z4TU^$OlOphU9c$b`niV%CUa_p zAC0@N7AlU$O*|g=G>OVTJ!CrCj#n_)S+<}|RQVWflq%9wWZay_lZI#EaVnKrW>@r~fcDay!fZn=$`2;L+mO;A2F!b<-y z_8=-IMiw{=FGE9(zQ4MFfGa_})D1pt1U;wYI(s42>%go(R~M06rF5u%QDZ|E@25Fh z3SfBI2NsEl*HM|OAB|#i5bz7uK)jd9?7!@`yVB0zDJBEJkk6oAsX5-EgY7!Q<%`M! z$hl)dH=ef{RpNn2{Q&#{YtIV+uS9EM?7P5n@R1iZq{vDHn&a+IkFEhsQCi16KX~L3 z@(8lI4Z1Y&B><3#Eq6gyA6;-7DJ}U=uu)6sBD?Q;% z__mTElj+#7*_r%aS3cOR>UDX!!ymQ6rI8`Uw{h2AEbMBQ7bUhWcK;dZeOAQdX~n7> z@PbM3kc2t_RY-r6F6Uc2OxUxQqi*}_uP)?@4J9Tpey5Ni+MG)?!orWukwhZ zs?1;iYm}a$rUPpapgRzX1nhC=E?$&}n8#&0ObF`+m@+`ilW8+vjmXwO4~^ht%0C=z zO@X%TI|zDAK}`!{e}q^Hl6opy+J)zcqW;|Z^WVU5^}F|TbWc8TuL^C(C4h9N0%QUN zF9!iuw!$r9C$L1pQeVErh)6TjBs>v%5WqpWy^ptPhI;l!+Zr1D5t;}D`!US9Bd(SZ z+vSi?nZq~ALC^p-IG8mRz%9d!TDlUJkomp7{nO>MS?t-JXtS&dO-l14y)U-n4t4pi zXWfrB93V5l!TNCSy08G*$pQ}XJVO&$?RLre7vu1&-0B8&MbiwsuF9v9-3l~L+##er zF16@mSG}3c&zd5(@aa?4rB=Sa5;~!J*0kDBk238Yzmu%(2wKrfOHYi5^x#ZI5##VN zi;bvFG&V~2ePO|PnuP>}CJ3K{#N#4&mC-Z7-W)RHA6kc)6~T|niLyt&xGY@~hCx}^ zDD4unk51M~ULIFquPyPEHPMv3sX1_gJV_RKDGESW2`2N72RVo;(ghiA>dEN#XgV)DfQS^7qSvk_l$91Ust}^d~VEsUU1#jU3c7d(yt69wl|tgUm-nP%W@dA3Qe9<@<$B@_uNFpJ#_dvQ z%7T?lresw0$U5L|L7qqtayvVKpq&F8ZX9iLBF_#9lXDh#q z8L>`}a7CRG1o6Omae89mwo86dFO>o|zdWa}L*rliifdRtJV@3lfwTO}UiK$`LxoDi zggh6@IwifA=c{O;MALT;$}ToOsK)CUuctXlKwQFt zS)9ZsyHwl6lq{RAU5I}8fy8nU3+j<9QiqG&^A4f3hAak)T@CrGwb=Y3zbGVYe`cV^ zC+g5Rg^TM)n?DO#D|b`Pn0P(QUluCTs_vT=YLC0#m7VFBrZbI0A|$98nI#!1$rcbC zzBjvjTe>(`@7a|ew~R@x=3Tuxt!ws#ZCPdqyZw7(`KM4+z(d37d85E2P3dso`$*rd z2i-{yM_qQ4QtLoMMjk6l`?&xde7#}89zXqs$MTAJ+}!+jv{E37=v*$|8dqvBfT+IL zQdf4x793QQR#YH}dziuKg3VicoQrq$>XZRo%uM4*n?k>J`nh+(%}Vx8q~GL3O1SUU zXAZQv!9nokIt*VnmTR)Gq!3FZvv73IyGv~8oMLYMA{h7et4FKeESSTeG97)T@#Z}Q zjIQ6r<_}jvoTm7=?EVE|_kL#Qsw%K0xa?{>hza&HzitZk6>-Rsgq>Yly+s?&;zZ*q zXj(%0B=Y&)a)G~4N{j@8IWCO=cX{RLX0h4#hl@0W#}{NRealqQp|M84ZeXch{B0_t zhXUUqkL5*XW+{w)reFWqxZpd;QjIQtE!CU8M?@}Ybv~zes&;f#F{;FpHk8SR#VAX) zNs)bLKJDSxOZ1{>b{~g%!74X@f2dTNjy_wa0_;lv1{vQ2QjJ~`vBJ7(8tqF_NTE+l z6l${H9K$>O>F?G`_FA6y;FBv0EY9yHI1zu2b;I8AFz(+J@bj~3D>ts|QE5<-6lt^` zC+Ds?Gw$i^nUA8bJQjrbu|zJ6@8w`t{*YpF;KBBrT^dfJ5SoV78kzBGbXvvXGXFv% zBV_eEDq@2>5xpyASm+;I=XsEU;pIALYJxS1eGTyyN?x!#^=$Rdinws4SN5!=0{^mxQE~A4+b_P+A+*rtS+~y#8ahD-`~+{kraC$mX}B!+r&u zMMZGY>X*^c5sWe_(qzM)XN@ouv0gI!bCPmt*|s+n@KH~L0I&o2=_(LYh`4RtfZ;br z{Mi7AM8xs1#l=I2y8-^}_sonGz@|ie*Wl#=N9lcq%1mlHx>nEK(Iz-V50zNa0f%+M z8%|ml{n^+cq+>+-0&v1j&x$|_N*|6a&sRoheV~B>ugjVq0yu}GjS5Ke5q5FTf&~~x zt^zcm9`Nw(K;!&Tv0D8AT!zhw{H$5(xtUOf7Xvday@ba_pS?X7Bp`x3H5}Xxk+T!9 zK>>~kCwqC2IwMAH@TE=zYL6c1i61tGKyS}$*obf&5l1>g@RNY=%4*yLyd1*)F0`Az z2ZG4E@O6+4-7=nrQ8Vp+PYk|Th_%vcYiljsZmyU=r9Mkb3)BZAqxV@d=OROcNlLTZ zSD*E-JPP+*1ZkKsr-iZ-h}y~lI+~{9-Ijg_a@u_v4cp&$4i@M3^-#CWHTqvtbu`U) z+-makzsbS1a*zW&I3aC7nYn0wPi1O44bek2QCHl)3em69e~7Ri@7%pBaw=rc!31{W zi2p~saq@~If~sBwvzGFZb>Ej*aIKfdEW@nq|B)tH6Pu7=3WnsqPmdbhCIe|wIv&A1 z%mSwbZFw$|&}9ew;g5aJ)&eBM3-*Q&maNRo8X_PyV^K`dgHImAP(C#^{S+JX$9bi! zOt=*?=1G9b`r)csZ0^{%NWmmAQodS!*ezZSK|N_6oO>nbF&-VVa#48mYZ)# z+|E06a2PqIy(mI?+bQ5#ahs9p=k^3_*Nuc7A_cRy8LQPA&5s@1--VvvI9ey1X(NW@ z5o1M`x@dR=ok`sCu*}YqSsKu@W|Yq*47h4u0Lu@c)+(I20eArhBRpN*@t7u{P%0vw zK}4OF(&4P9+?n+xE3U^0kec8@Qxa29sL=Lc983V&r>K>Z*!~<6 zBS_DTGECz05jY`!(y1!%apfMZPI6ztu+Dm5xo*sWM~{SU7!Kk9gL42V0hXZ6SR14n zVYPaI*@Xn6fuW)5iljJlw0Hc|dj)FJ@B(b~Yubp6+PFQgaYEpmU!TPSu0l8rH~_@3 z63qam?^=ZyO$|CxqUBefe#1q8GQw2X2T&~*63oVL54eE+90=rUXk8syt>y7Lz3VjYCMi^W=?nM83A@4PC~hTmDtY^rSuGZAeN;f!PUj;HwBDBM&L2Noz<+1{R8SV-(w?H2IZvqfIrd!ZNafZZ6t3xwQNTa+}a z#W;|cx*lhYczhr+)rc4(d%Gu|8C4ibT!K{AoP;~~1fUb3#wO7?6q5WHz~lcTf#C*_f5>tykzXoZd51#s2s!kl0r{XzY~GTfsI&$TDh}R~I5>yuI4vcb zq)tM~MrCLRGnOWM4&w?N?7-zBtzVFCAy}}KA$c~)>U{`BNUM;fL-IVp9iY5)30VG59*4gO3Mv4U03!7* zumS3zkVk|%y!{uv4wr?Hx?oL>cakAOD>X29+fxnxZ3Kr3PNeo2PeKaDwx74uzdl3S zDqzb4KotH3u5+td8_YGJL?VrAK;rOi!7(PQwTPPR(W6JO9V9{)Di!$BI!+@{oP=Y2 zrdanO3*|YQJWl!0s`X8JdYd@cOLwGDHw5UtI`L)vCZyh)Rjuug=eh8nxrnusC__jQ zl&Lhig!=RdSI|bVub7vY$A~EA2KMnmV!l5?U7o%WBZrhcQ78lH=G>i=BlI{FvW*Jb z<3t94)B^5_gWLVrR4`n~=}r?!#Svh4?tu-BA00q#o{_5y{IT z#8jYq0um>*#}&rzJMbD%82jt6AWRIIq|L(ri`UKtYa{~gMEbNC+uy2y7kCr6-$;yr z`0F78sRg2J-srb+IdEbr0_z@mR>+11TNn&g0Kh?bjjxt~KL_zMBEJcsU7$#RRQvoG z;I#ZOVIejHA~<)#ZO1P?80g#}lgMYh2V*|Xc|mFJ?9rln$dH(HqRz(OMru;=pG36 zsrlc7UCfUu82rA;7FHR(G#lXYEdRXp71hJ+R;RX+d0?TR35%=K63_BgK}#QtC0Axx z5I(rN_^59X9$xJ%6Qo9-j~Vv!$BeZIx};?1&*g{ z&DSE39#gPCeuvei73_GfKyrQ4!N9=K4(kX!K<8hQKwL#qe!zm)sP+))`KZDQ)@`%K zU6?&x)t>Hfb>E;Hg-u6@Enxv{tfRjbfM(MSol#H~PB(RQbpE!mfC?>}xJ%99iYSmr zqyg9g%nj1qs+~(v_A_}^H86V}YKf08J;Y5BbqT=O4O}ZBC}_oE8@S;z#Kx zYDDD}V9IG^ZmiF~f3}!{@t3*VQb+Fe$VYB>uCsTib zLNz0J9zsTV#n_%^4=O21jV(h94Qar1f$=i?^mH9U=o?S7FVYEFBcOgqM`14Kf3kTl z4dO0H{0S-21dz{{OHM$rDUZs1n1QpuG5ZeImVm%OXf5-ywGsX-22!Z2_hhIdvoN;J zYO6R#qyc+G8e3Q{Gd^yrwR6}Xp_Vti+2SoCDu%yvY93XAG51xuA}lZzy3R)Q;@Ec? zZTawQTPhipB$ygHB^zE{_*w4wt3@-JjM0^Oa|Hz&Ew1>69%h%$yJfdQ&J|g45A4lA z;(ZHS2~=_UAp-%9t6EqUv>B3&cmWQq4X9}VS=pLXzJXpuNQet{4x}&3N<6cbdG9Ce zT38;SK^gf)9v`nAuVi6%m%GeV-&6g*Q%H{}5M^WScKQ`_Cj?lJC}{MPQ@*RaZ|^nM zac-_mj@)#O#)Y6E&{p_1Ar6zz%@6HmP^>dD2BvrTHE%C|OcLz3Wy<7C6K7H+o%=E% zvW*gf0}2AP2M#y%gn{+{$KMiU+Ck<@wD(JBo}|j{NGglT8nyK+g|W39E$=fMM-X1H zytn}Hi0i=$4j}%BeSl8)!BrV*W*|4{zn^CkK*5F|CkzR)4*JU~V8$-C%H~FfblTrtKd7^Ev3D;)N;NjV}apXGC2ywAJ z4Fa8p!^r|;>3nDR<8&$C=>u&m$X=Ds>`&Hja17S==Wa)qD2Fz(V-EqNz*i9VBN za3?ABHr@6l(9>DqI=>jP#{cck(e$8XVj=X|SX~o-vVOimSd^ z-gcE@wEWKg2BZ#;4zdg@5lj13REW0^>fZMDW@pD^@NJeV)oPev+}o!A<1sNVLBjUAYv~4eKf#*rY$bR@ zlN!=9_hYRm!$9HEOtwiO&`N5@MFyd@wJtmn+{?Fb|N0&oY^1c4#&FpA7+t;qg3=km z*D*w=V%VS)bH+vH^*q|3_n&${}t4SK7-PeNxYRl|?<}h%g zaK36b#N7;cD7GSH^0ov+$*|RM{mSUiQf`par{5{vBY^Y{bI%?jAVdB38}c;gPN!f( zqjX`h!+snE>25nf7O+XmBq|Z>M2bF|A=elrGKffAj&6BUmccC@E}iF+e+_f^jcTot z?(BJ^U;Lb?DfyM1Wzs5lnS28?-H*@BRR4B+Luu-96^7zdzP;@3^PmA1qv7aw^fe&e zLA#Y?I4DDNoG4?X*0|+NwUu9xtG54`^kqOjsNd#m-EhV8CjchyAAY1@n`R;L8% zyL%$3!zEu8ej_=5zzfzZ{U$@0ucfr7Gt^|fQuVILyqtLj^n4rhg8Q;LVJs*rjH(8; ztn~|-=*e%7Z8srhr_`zKW1y{nY6ejmIla%@y9`e%om@BTAwR!8*$_K|fO0kW4wH?~ zob?|2kb&epn~NXe=Qh7FSS`)82eljN>vuf8Z}12k@4Q_3nO*#O0_cC}b{xr?)=qve zF%XD0BA*$p11v34o`>7!ya$IhXB-Ys(iw>N;eY$2S9AALqJxqSgTl{k`KtA4rUy%qMo z$n-C;n^Ok)5rB?dHs^NPtCLB-?9SuCPatT;*A&kc2v)qsug~s8UgaWDgUxQ|5wr$G zcKOebKjd+SAY}h9PdK0nUbFb_Nc0@i(Q&BQLj6ZcJG$b@Jk7y1mz5otdNJB6jO3VS~@L7U&b<3ntiucwN7$AI;hjX;solZ}{ zOrH}BpP4DS0DB(9gc?rgl>7nAz3~o0S2TRE1{qFuiiWFhVE(z#C<2r=<0OBj1 z^-BPOxQ-~?kPc4Cb{s;DXxy|VwD?Amg(2cOh_o;O+`YZyS#^hhf*@eoBgFr{$>6e% za*3a(q#7hMcoGEFc!D@^{A2RO>&Z+kITImi?S-mvIVWfx@Tc!d6*4tLlebUSdSypkwHT9c@qr8IU1Vy0#Eo6P_;ZitSW71B9gl{+4S_MRZ`YFwlcQQ9mA>-AG?Rbi|Bn477<>DQ zUpv@Z!dRj~GA)dG`&J1!8d8y0ZPzYyHZ7H%dfm|e72Ab8b`e~HGwC2PLjq}}UnuO+ zkmat2Gzm5`=5XHEGqtxlM0!yGV(f8&kpf)LMd+#tb9~0^kO@_IyM`X^%GF(L_s^V$ zHm@`2`;|nhi?w%288y!g9p#8gtenYS!jr(C9M_#BOuv71#^X$Vf5V>{yPnKCSkK12 zWk$<0$8+Edw4#B{@e{nQNQWM%rbF;<1UX?O&Eo@7+mR7^)u$=q?r|omu0hZiAQC{Q zNEQL~7l|wHEm7g#8;3E?!?u*d$cQV%LtnEI#bFldH{rJAHYX&k=3WK#ahSRP+vb`!27 z?ngi0o^YMNwUtCRlRQ*vgwsEea(ktb90^(3oCh;(dsZPR?++v~I30Hz1_&or^vY;t zwFAV*6L?uqf<9GEOp?x0*I`37OH2^wg|dGdlh{te18X_tdTi^iz(eT&KOO?OPk*oR z$YQ&SPmH2|j^qBo`tIXnna52nLFnX7_A)>3@WJNDX4r&(XPa9z3lxgZULrX;ffN*^ zF_PSo7+O@bV+L<^A5Z@Nb1THmelT*#-Q&Wm*BmRVS1Y7PG?Pq)oB5H?K+b-sg zt<^lryLpK^)lX}AqM1{}%AY$^w4?7c6_f}80mOxYJ?0!HWafuS9F0$a!)x)6$mR&Y z6AJr`JX*5|>L$m&6vr966lm}KoN!(x-GI_@!NqA`@xsfL7Z=TTZkglx6UsD&mvUJn zUsW-rDIkkWb4~jaQdbQ&N`VNSZ}=N88pU9`$?G!9H@u%Lvz{{%O92!EuVcNoi=eir z#%}Vw%y)_XX~0n76?doj0Hk@3^XHV73l%gzE`LKj*#Z)1Eoqdw7qT|5Rya1p2pn{~ zwsu_e@F4dW3Cl}E8Q$K7)qIki5kiaOURg89%pGz2x4NqU{~BdRieKhqJn}JN@n2?_ zG>8x<(9t>Tg*P>w;pX@WwHX({4nI1@?C7VCcy^%bbOwGn=gDI+=5NBQ4-^ARZcfhT zqYpF6U-NJMnI|Fg>Ho?w+$ou6rjOjIR&=dYVJP8S<#IlFOfV2gRYHrDgZSQnud~CQ zHr}R_$p-yDXKV?R0&71l&`O#N>CgQy%BA4zf9>BTV7Z9xie)SsRV4!5Gy>q;Ihq1RKEJF!=ms`JXazE(!8&^cyl*s zlV-AwOca+Ed&5&f?2b6V$-?Doh;ojR@YAefM2~`ath{PQ-;2SLlkna5dA>-xV=ERs5S`>U+@;}HMcXSH<@GJIA|R!Ag9^~0?JT>A#wpd}X>(1c}YG7G`ghee}OA%NWExt5FY5V(pR zvruliJgrkI(my?OLXcHy=4s0XgSdI$K`JgXokHjG%KHa0$Tz}*0FhBKm||{UDj2@Z{cy#x#|CLYGh+=RNmMG~+i=W({PyF* z-SL}xcfxTV&KVChBB8N82R>o)_*u@0W(jq~4K zxRc_ZTCe1UA&*lwN1j**b11vw^M+I(y|Ghf2k#DAe8DwXoInC!i#iqgr3V){&En40 ze(#xx9ggin{!8&`GGW>(_3Yf!1U1}bI$JWtH+ z>o89CPW;(SWDlZBUy$J@x5u7C253ZQWA0Y#jmsN(|IU#tXt}(?C>LL+UOZW9Dvt$R z76LLY2B^pbBxAX3L|=EmEb`~V$ybP%Fn!W0#<+ieER$6DwrcBzuliOuaM_@ zRXu~6%zj>!k$g3bf6fg1_NdsqIZP2ewM7l_Be0)$ZS7Cyv3 z-T@sQk_J9YPam3_%MH2xX~A{|L*Tk zjLrR^X>2jl^$_wWU1r|n)t>u{xits@?Lj=(EYxC(tcC^oxo<|51mIodAI)~QARZFa zri*}YlYjcKvIxca($?%EatHQ~iE$HQuU@@{)bn53D3p$ky+H*jd9rs6Nt7dPD60=w z3_(u`0FEexz}`Q5w_9-1LiikEb?qh-<~GtvH8MNH$hA<6npA=KzsLMW4`n6NDH5sP zP>8Mh^qfEsD`+mgT2uqX8zkiPKG|n2b!AqWmD_`0`78>}13 z*!fLb|7`DCiE`)^BOuaS4(9oSav7>V;Dj*hOnn2{f{({gq?;VfFB<1;{NG?4(?+Da zLam?xI`2>qvXcs|JGJSn|I88j{zshq6w{AtUur)rO8++y*&4OQUje5(T?BL$GuEgXZsH{_3M5IoZ|_7z0R;Edn`s z08DX4xI2~?sSFPsr<#XbCY{m|+n+eP~5zJt7;@*&de)YjJa#|b3I zd%*n!-A2{`QwrTy;g}i%hla7=v$NLFzVqitiWoNBbA*!`XE?`kI2e6Ugp=d%&N5Jl z_`Db=EVaxDM~;rn7VKJBME+~1(5ne1Yp_-wnfe;~n@O4{!Z$V@$YFpHWrgx8%%It) zTF+LPf!hq~DbIOjkg4H~_!`$njq7#bIaG#<&RG0T5{B1*g_5dNiFrT{lRzWb*_YAW z{!qa6ZSh)z9_rtj+U=-HSqW_skjg9DFy!(*pi~1jupm+zE*>y_JwIH1^}eNG0>k(^ z2G7yQTp`cs>;aodK0AmV#aK97%Z(p9HSIG5+zlMv_NXv6 z*%ay7^(sBJrlv=|UgEt^!a*~vyiA`rUvd7QZQELfSjSaN@uGFyY)bmJ&ZknGFDikS zVd?jk3T?jA5`|&gq>nAKQGbC;eYes)d(DMnYp&}0>h(bh!_zZA!r0|%jE`4tH%_*` zAPyyZF2VMvy>=g$x3=TSSr?uU*N{jyQWH9#F?z<~^P`it8!udOv~E5+ zGh=O1(r0NF_b9(fy#;H`mC^n+%*lv|p%-W>O4|BQ%kP4N!)+~3=hG9f>2H7Tb7nB? z8B)SJ-|`So$VA9VXRzh7#YaZP+9*C~X!PV)b{c^n`M1@ON`g4?>u>-5>gnHKr4#be zO*iZOdGaQCcb)^gTIh&fa$rmUE;Pfo*X4Sljb1ybv)mkxduwO8Jxn4cZxnnj(E>%y zp`491p;vpyV2L+;T0KSMPRA7y+G^u6!{JN^mb&30Jymp3a@}WV<;Y>7-3B+3jl39k z<2VzaJO}is&AB#tibJ*Hn{Y!LH;}8aio<8x5nPPbzT%yg9FaeiZt7OJLQ-@%krBuW z*OB`)RYM^|mvnusd)HLrgUBP^xqhnF0!n68rl6Z%n)HjCw zxS7yXD=+bMC}v)4OWF$l=B%RLnkxNTgS}2Xc7KRtT`OZ=el_tVLxRv%eu}d4qwiWF z+VhE_YE{Ky^m$Sw-jkhz6lFw7AnD}z@&rz04@t_Xji=VoRWxdhhL6Twqw8gGv-p8q z`+y7Cn!!MzcBwcEJIkxANp&UzHHraN4#~;;dl#^d{Eqh=2GX7wOuxy;QC_z`lqq5&4bDTSF^bXV!HzloZ{8J z`Nv`SHavE_vQCGq1nKrWKUx?|#iXqj*Mi>o2e-0a`b*FmQG^*=5C&dp`#*kAsI9nw`2A&7D0o)mM03;$}Vcc%O}=y6*a?MdeXQO zI_tdJ^G??XUTb+^4j#lY^0)k=9}}^4cAEcIOtq!m9bdC^g6~5{hh?FX>&W?Txhtka zD~aYoRq$xRW_MeBaEY8M=bn;|X;g@IY3Fe3bdD@>VI_%{Ft!Q$+p5D3kFzGSD$2it z)FGob4OeYY7`h50WR&B6XjmBQOZ+ioDum*?0OUS?&lE?WKPl#!_2Q6oQFHP09C(-O zu(zR)1#h`+>t-imn#p?p_W-#UJxmyii=Z*BPR=Uq$i)hkSG+p*cbRl8U+F z921|z#;+D5%!>D2SvgyY88NK!-s8qd*=@UBeXpi{0k*+_wcobo?aOg9vYX#VsrKDZ z$B(K`ZTeGnLgJHYFdp`HY)h1Bxd$oa{I{_lUQ;I<%Q+Ink`W}gV}72-u{CnDY5Cz> z+=iqx*CK2fu?pU|NXLnf7wY?mc^yZcFA)1tS#`yPy3lLyd`c2!4L1w@)wGc>?#OD< z6i8XQ@jFR!oO2WVx~6ZT=BpqG_Dctx6?Ac~;fP#tdG)e_m1WR*q8rYERLe!nZ<*~KBZ?>;{M(yIeBF_x`7SmyIN?S=bkv*YTgvxAyVds*$eGu!Qp z!X?uEBxlTdf?c`W-sz0F6>)Y)>0Uamw=mXqppR}6qG04=EEC53tafp)9IZ+m)fdc- zaSg=h<}_%EQ^VqXhSwB+{kElR?`)?@oXOE-cX_~JeTT%+-!PXMIw8(>-8y6{poeW?`?%u0WwM-qYay$GNI4%ECh_8ZOVT zxO1;4J=SUs=f+LfXf)U>JIwoTL;B`q;hXz|v3HGwm$r0%COgwqwXS__V3-db;tfg< zPOk{}Tt2vUNzt@+K1_zvkX|(+J{zt1FK%yqJ`nwClzb9>w4(JL{2X|-VcQ_jo(`W z$*PwjPVmos7KK!gv=XY{m6m_Fb0&<$W~$~ZrPeM%y65^%w!0NWmX6Nd zu_6``Ep`XC#^Q@|UuwIx!fuWgabD!T`shmQ^kthng_RfacjRp!kean7Sm~QQ=H!Iw zc8)h@B34e-MVM3Dpx+v6YGnF@uB0XC<{aV0%%@wT~ft`}e` zkmJ$ot#^G7H=JUbzQ3Gw$!AhCsBo_LQvKU{te&g-E&11ZY%bDCGTx20#;W1u~!F$!T9)_|ErX{`Zq-u`-vF8z;#8QO;n`6)^cA`(+s_b^6s4BWM2w@Sus(M*kAq0>6!@!YFX*OPU^v(H_pRQ;VtlM!* z^3NiQgczdRIp~IU$2;;%!yTM7&7k2xnfLF9zt;@}Q!?BAe55T8K64MK#C>qf`6Coo z>{W$wOV;8sY?9U(^bF*T2=Tyg+jzV*T{K(E{}H7QR9j?4b5K~olC`F!CFXYaTkLvG zZYqJ5lA?N>{hX^G{$0HM-@mWIO+An6hJBs+gUo$_)`E)#c0^q}ruVEF7CxQzJX^AF zHSNuDLMXMnF-rT(^oGQW#8J@#>pe?`JJWu1t(Y>r)ru!$v+?aUw!b&7m`CK2NsWK; zG*e4ISI0_H*DoYYARv4o;u31uovPrWxvB{Zk$sb}vX=Orc@#^&$ox-wFPjrlcn8B< zewoka++7|iZkb5*eZs1Kj*?b-DBGB}%2NQ@Z=V--J-^X~ZR2cH-nrOO*|3@5?80bs z(=8;8?pSg4M-`Qp&FP0@PO+{W>o{x05@X23yO%^|3RuNodnJ*|GdSlcStd zrjcq}?r#{%Z=yHAwaJ>RL>K(h_l>A0EwAkv?hfmwW~*!K_PYiTkM9gxmQ+;J#5ZuM zu6DY?gg_RIwB7^ex|2K}RsF+Zo1fWZ3)Jj@iA#C3&FB86517BVa84IU6r;DBi6su#NCEXy+-z~^`xaKuPc66 z<*9dR5Tuws{;*2LXvIQMsBd_Gn5~Foj4SZkgOt&e3K6G10U2!%OWsJ{Na8X783EJL z%e6&MF7A)WW0kA_?odhgGB}CcPa(VgfP9rcoSICD^wtN>ed{gVzBF(0BN;u}%Q8Y_ z##!S}HK@{FYYAQxik0}(hOSWx9T!QBF!y-gB>Xg0YeD1GVpSKmz)kJr)iu(chQ5~A z`$Ozh=Z)T>CeZ>MBW-q;5hUWluU^*o4aGvEuL~UI>xV)M!mge)S;}7xV8`^RoH9h- z3b)R!@Xe`T3cc-`@pd;GAGsNsRgP5sM&+}@9UzOLKQ`gM%lD>m2d$$oGK%bCRSlnX zo1#S=^frtVM4&v64b%)8pfnCqv49Bhxct?1Dl3aNF;oak%`(o<9Md0hK_b+AN z#=M$n)+2e(Q5$Eixu!I`IOu$QTkO!%Lwcu)sqW^E`qa4hZNSwv=ifUo@Tc(Y&0_5uv=f5!I^dnH9R<3z#^v1yUTYz21#iiBjU3PCVM!QsN~;L;b|#1Ir|W{rfgf4v#Ys8`B?$GlcDjVN-;sr# zF@~=TkWC_~hu0PRp}2|TNXlq}qix)@bFOs%{mO$VLR$VLyg6^o?Fv|ea0zO^JP{QB z8JGLV>wA)V|3j7sw9;2)V8N01bATv0F=9JIx~uIB$Mcjoqs~(ce_q)w+Pin2$w zu1mk9`E>C>MDaNJchya-8)`dzH`~}jlaXo>PQQL^0oK@oA5L~fF-SO!EKs*kdLrL8 zyrN{h;MKazvEuys(aAmHsERmz?TVzCoLufA8=DfjdyQ$L7IFLhM-3EncBdz=Z_){i zChw4*JI8X4e*VuB(*bgF2ApKFFKUnMcVE)PPgI>57Bt_qOdcbH|%uCYJRL|HDM3_G{)5|x5~IvO#sKpE?Wbc9o=82QaOip-4rhFUBkV{ z@3;(|L#wR1xp=2oL|bESQ|TQvurv->RL?bqNft~rjj%ilI@u`&}BH>%Ugyl85!BIt%v_o*6FZObnW)j|jOU1@8+E_*x>sLwf`cw$I zXWf`=&2D#cuWy=DvUqi-#%_qdP?nWSl7kIu9fDEjTHk=_1q8kyhTgtJanA#!>s z0&P;&VicY?K6x`{y7*KzgM>$DXSQI-(nDvMInjG;iyz`XEZgfxB#X+qxHSbw+g6?( zse#otu2YsO%NJK`LrduY6ov^Z&JC8SOh{>JoJv5YQm(7$vqC6NS$Tc$=e0jsuW#Sd zD#H?Wt`~hWHkm8v-BoO%DukYJ*If)gSt|#t_#w)Kb@R(7S zmDO%7psN(9RKtd^lo)=KJgx2iz@opnOy+q|JJ*g570e&+I@$Q=o!Cy*|or^orJ67EH0kAOp?b$V#AW^zq>0WOCOKPF(n>8zDfEtS8zDh&fmaO zRgf!EF4P!x$>y+&&4PQl74OqCuufOZVwOLavbIierj)r& z`8HuT>y@!K4(6_Zm3x-*CMB`kiR1%+e4}J<+U@B@TNWPItR6ID!a~9zN8_su2>RZi z2;O4iKHckJ9rJ%Qd@p~sTSDuN7OjTOWvoJq_Ug|#J30nO9bBy?P zCqAH}r)`6|oZ0>RzR`gM74IYEvSUzY5k-Fxcl@C?{VY!5lh=tzKu|s4R%3kvM)Usk zDc_xIdnif$FLbT9xn?yC_)j>!^9+kpYZ5dNi(o)e!Qjz<-Pr6ZG-P7-7D(AAhPxy*G;{j zmp5IynG3Ck`1U6Jlj|c{BMbSBBHCv<*94Y}Mhx5yU%a_hbA&AQQ3epu#uPiSo?*1? z|1X-pI7~S15YP{Ec ze(xXZ{XyBy_PydfkMjr%!sjlS;?-Cwf9u2)m{yx>4!F~A$1^`{e8BUH6^mLsSR5s$ z!=DB1>#LH(nhpN^e(XkTw+|IC(L#3tKkFanwI3~y`_?8IbZRcv_hc$ikO!cT7Zo5L zVq)U|?Rs?^UVU@zh0$lly*`;d#7M_!Z2Ww4Ag=*5VWsYkq&`xg7d|XlHmrd>J?w!9 z3kEon3KURW1Ha#e!m-I{?e(BWvL&uHd-~&&w+8`!+72Tzv2K=(KkX-rLY8q^TkA=Nvd-ex|S)Hew22wEx)6?*4 zRkI`Z@qSg6kG(iTu3_ftbQ%90*13h+i!Htwgb=px$qlAckaNChaC=jf+|a-{es=ES z>1G9*=fAW%5NbSY7tr16jahafW;2c-uV1XqJ1_W1eQ;$I{M)_KJ5v7aB}+}VEM-oC zZgT8&joGpsB%sBIB-?-Jq@~&XqZ=8MPiKeeI7gKem$hUNtE!-CGJEqgFxX)+8`Vw3`g`UL`aA~V0e)8xc9I2Wwi;sNO?s4a^(hATj#@rT9Y~ATXhO(C9y}g7LW}1A#M0yO{XIZXl zKURb^&gfRg8S&@)8uC5SSJkYH#z%JbCn&sdr!^o`wFct{Tn+o`!Gkw zKD0_s3RMendnS?VaQ-DmVTI?OiSz((MzGo5Vnf_q4)Kc^c5Wo7Yn!Sz=pMD~um26y z0FP@$Dwf1Cel3!k_u#CfZol!PK*bPl7V|WHY(^CgRino|Z{-QfCBZ&%%E3v-eZ z2Tz0{fZ5t{)>WsaKr9t+8rw(fS%Kzqrl)x{lHZX|l68*Vp+u0#u^1G*KZy&N|Q zzg`w?OXVMo1=n(2B1q_*h~d@2!&d?iR{c&qed2RV0D6+@Q6$xK_e^HQ8#}iI-52_f) z;jmE|dTo0Q>0>6(Qu4N*QtE%bo^TI@(uUPKs(3p1Lc&+_a~_?%5Ek~D>iJu%K|Sj7 zpZ|IK$3Jb8w6!@o1?D&Qnbhme=MHf`z^tmjAoxd~{nO(G!vit?yrJKPDLSq@B^K2j zqXZ!`UN@MmTjE1EH|NOp8h)?6n#uUfa6$O z1fLtz^~v*Bx|dR1C=#0tf#A9<)vt_er#rKV>!u5+ZJEoe;`Mg98?%pJy5cmd)j32{ z=e3skQ)%0Q9c$aM7X|A0^HHFGx;#DXT^IFMJQxxa#N!)poDaZeRsF5@4fjp%vupRO zvdyvOA`gR_uosb}dulmzD@T{7;WD?M=25M;vwo7k)mgv1KAxvE4cF5x@7=C6U64r| zS3j5;q@=JLLsNMZE71oM83iuH{I*6{hFtR!;}UE4=mm6|{b71fi84YYc33B9h(Y4k z#lgVC;}3Sj#A+;N5#pMcX#Etb7(AH=q9 z@~cl$YjG7jzsh3(hBoT|gEd$m!UfWho7C6HF9tAYUCs7LliK0q<^Iw0hHwde)9dmKz-@WtEnyW9=7_a`QogDS<0#7V(U`26zBCSu0FHjF; z+R4Q#w<363LI!O4$4Y%946}?j=VqDi02^o-R0sjN@@jE@{^tI4lW&0Xu#^pHEW9*y ztTiXY^2pOU-B>rO$iz|7Q0kpdlhFTDN+HS4JesK`$xye_``x2Jfy1XyHHv{dPbW%(GiOZHV$mDZwGOebonQC!W zx!jL*%-HN4fx6&zr|+vHkJU835*~~y9ZCh?aw<`1JZ^p-2&k;>mW{``Wq7E z4_G*HYOm;@2U46r9v+drE?>m+DQ`ELng8Gu#$ku66lBcU1p!b&R)Uj zmBU1w!hVXPp|Z4GWbm{2IqCE?JnK<_s1V%hr-IU--)*}mBl|WM|8G$L)!{KTC%RUi zRq0c!^KDicNDk0QT=*?CCLvPhJconev@BYvx4KP}WLd5~`oUiD=|kMYSW=GLN*{@& zkyP(uR(MZpk7dDUl-UjOZ{4S$MeZ-EGRa%o_^3Q1l~597KnMHMuYd1~+l|gyD=5aX z%y~KE*E|MPzZ#%D)tRG-FEOKNVUE&uX;`ffa<@_oy&Vu0n=>pJ99Cs3uRE}sbhln* zI;dvelN@YVa1Ur$Q`$nkP5In&-_0+>a_hSDSj=eJVV0449lbody zn*Vw^`TZ1~HDpd;aX_zhsMM$4Pn6yu+4k$bkvzh?)aHrbO@bY3fj1AWnE3>+Q5X@; zz~w~AK_90Js%bN((LSXhq&cCgN}(3(T6iElTF7f;?)JZBT*_QO&v#R#eHRn?@7{k~ zi7Qb1J6>G>>jmMlI`EU&LD(dgW@oeL(d4_B0r$}$0sN`$vW(p<@#nxrM*)OJ6(H}7 zy;zhO(+cle<{0G>F1wz#$7iKfN+JMGD^Ff2Ut@rNGBY)*2rt-^3bsxD%T>e~HY6e9 z@v{Io4h^5_jas%lP0`(Wb$;vEkQ~#rJ!hN8-qywDF&5P715Ea6Tj;~fS?~P-m5f16 zI)9&;n|dJkkvT%T){03?bbjv?qx9HA;eOye<z! z^%&+)B1>mW)M{$UV;@T8KO-xLB;;hTWIb>|cXy&c5)+>s{Ch6OpP{Gbz0*TQ%TK+v zpwk8zmnb4rjLPM+23(c->h#~J#S(ZfA~NY9p;`ml2?SFd_i3q>0gRhg?vDjPuQf0M z^BdY%Sl7!UJF$xeS(`__uRf7?B4XyCJI+>mK>@yriHn$Km`&2>p3+7a?E74PQPMG2 zd<*lKy2-0Q7Y0*==N*TGS)2pH;7(J%fpgo?6poQbb?0nOB&}&7bYEo1Gavr;JpLCN zM*>P6idJA z|C!yBMgHhYbAcWFA1nup?7_7jR|GFhyj{N*Oq+>lh*}3P{vI+I{mx&oz)0g*Yqksn z;z*02Ha;)RLsRcB(&oI;r2Z+FiBn5nbOwow{mze^!UZ%LRN<}SL0=~&iP>Ijvk!?Ic5G-d zk-9jC?GfXMiOteVDKG020?aUuLrhtt ze`SZ9#wNbCV8QWi{j2Mejb|k@HM(=YV!SCq)FBTW?8<+RJ;9xz`A{{O24+I)R?6h) zauakWZ=e2ZI(Cy2qVeh z$0aa5XsQ!$RLwJ;?okA*vWiI)-D<crj40@x46OSW zU7rD3963s9ZeA1}V0`6{AzgGstv8xVy_>=tUzVIDO2Y4NZDAPWY8Y_)gd|6H1Z+3} z^w|p4kV~zdKYGL!0#@)rXO#?J{i10=xZS~ej>{=WrnnW$mVQNt=BCrE9cd1PrHfVc z>Lip_j8r;BO-87nT0psLhqr?66>y2+eo*W1wC;MI`w%&%#uD1(l-1w_VkB-}fDEz9 zGVgg;^CKpWq{-Y+g(K|}I}Q`zkMQYj-QF%N9`ZQcw#J1qWALOmma{r&m0aVr(K%;R z;cC8d91_#$A3(eWT(j}l>%oWPHjbstFc+^Au=9H8yl^tcK1DK33PJ0=9AWpwl^;6v zdT>UF4u8%WVc~tdIk95jRRzcw|ZE%`qaa+RjjUe`J9(p+=d9a7C4?le;J$C}b z3;>N>w=8>yJqcq=|H@WmqBr<)h!dH2$ScTWYAyS)!P7EK_>RF%?WmWc7^E$jZ@iK=Mm+_yVKkNEfV;E7>*nEn*==_EvR$J4 zYgOo8)>i#lx`sVfgC~opTmEJ-zb0=*R5++omxi z!vujjkGY}pl}sIMsHc^SHp z1Qq$Et)0HpZI-u}z_POWS+*og+H_@}*e%FU!D@I#sL=*|l5OuCngEs07j~9I|4Wa6 z90XLw`Iyj^1{ir~4ix!&kKvjfnnUcK%rQw<*UL25D`AephRC+9?ywm=0M%#^uSSuiP#b2M7_uo{Sa z8VAdnxctJKb8%D(mjGbgMbJ=G5rk8U^JFE7zwC{${k5eb7_BFOI~9zs1R72)joB`+ zFvelpHaBUf7)@^%iGm!D?8AbJ>fDZ|70}4kOiRP2Nux|nH~a|~$EWb-d+MMSyX4vH zuNAoZ8Ekuxw`D;tTe6NG{Q{Z{26Uj&)2FcQU6F!ps@D=`1qQE!(PtEc@+jLA@vs1y z^-kW&_{b~@QVMdp3|mL^8tejYJb*F)O5Ip+yW^LzxbSSyGH}JH2{uYJl97hTI(H5>Z1ob#I0 zgTNq^cIkOM4YY>a zu+wJ8`MHzSJ7mYHlefPu%ojjZU*xWVGq4GdF9O+&+mtCAvGzi)+-&JP%yFb%(En`t zO@6$rQocqtPPIDHe5r5f>?YfEMFpfLR={q83mq$JuWzpBqiL8#sg{=L@hv%V2Jg)t z{v)b4H2(;a1|h1FhWV=Pqj}cNTS8R>0mSFSA2H-hX%`(v^k%YVr~U-u0Ys-8HmiJ) zIL9aj=1-5iKcWZqaqce|U#3-h6JV632vo5LUhUVNYZ^5!7B>txJ4{sGb(9o*?nXJV zTk1Mqv(FtEZ+iu;0FdVdK;R&Q_%y=ro#}?Ww_B84=6dZ}r-E%|Kt+*vJTUZWMm#Y- zIq-LOj6Zr%OfIMMh>PRyd3lqexFtskD6f>qieiu_79zkX`Ru9A;M=5c)E~hz?FLI3 z^Jm7Mm40nRFJ#%-z}wr^`=lYu{oTE)dqY^cFQe~qZ8v=)bI!>%XmA2$ec6Ctq?!&e zwNbL>z(4e=6As9)mCC4X!y%AG0sZ@%s{!?TkQ05T$TCm zfIIy_e+sU9IjY`g$sQgRgGc#-N3_raCd{A&07m>+g1o+cEvhCnzVL~(7R-{ETCY!J z3^S?#+MMGP3OEWNgR_^d^jDF4^H$5cG;14pVsA3pk5B5IP8Uz18w}BM*o*?&Qaj)NR$7$g5=L6Ib&1``v z1dF#?7JrwA`&w#*LkvZ^gI<8lbb*H1ez3kq%79@ayJP+cn8D0(9AR7arG5l~wgV{V z)<_H3!nBaUrf!ZjRR1iMh1kEuzs(T!+tJ_0gwlbWJ`S%Q}n$-0h&D_pKQy z!a!53)*{of`7D?3%lAj1iH{G-67Cv6(;NDwMHU8EOLWNHV4;SG2o~2-CJhq&L;MLaJ`mM60CXl&4Au-X#vB@j#--g4 zmGUIu3sc;U->w~Vdh<8n3EG!XM1n<4XYZRm&g3`HayIKXz6;4l-l}e zmT%qwCq~?Mcf-?mkh>jlP8V<#tq`<3&k#J*mt?J%ui9}gWTToYK`AMvQYoUra$Mz< zl_ohiHO2JSdxsBV8hFY6fSZ7~_V}B@)E>r($!rcet2X*1RW+1&4jzRMYZZG%iB|uK z8=X+!NuH;tQ1qnxx^m2ikK`)EGZQ6%a{;Mtt{BHkT{)gQ6sTMK;(ovn?fkIzDgq(^h zb@c0N^&~bkJySiIlj>sNb`e&|PM7fG^G521fm7?lpz$rC)|AurAsOfC^Q~eX?n{eP zgNfk^ZbAOP4}ZD-^n8pA^W@pcOj<(-QruJo&7U=baEfssbBh?1ZcYhuppvWqz11Q(swdx&^tx_To=s;$1JchnEO3D zIzFB-NCtz9TTvU;DrHD_WubOWv0~D|aZDm3nfInwwh+f@FaYOXq*VEe;qZ34;1ltbWCL`@&3jC<)D6v1ZbC!i``MY8z) zgjJ?0;LizIKu#B2d7H`W3nO1q?Nfie}iT8Xn-aH1a-9+v_V`AyfxzaD^T6cQ^`- z5V&u=33zX*M|m6{%I%!zp_zzdgFUS82(7I^vk1s3sJ&nojNcfGiEM;*(SJh+^)7E} zIjsa^Xj||orYx$oy&7ljgz}OY+0QyoD2t_IE_IdSxdBhkjY)o;Av<^s`R7kEIhloC zIGnh4BYst41pcrosC@M#5(3s9z(h%D=l!4Wx3n*U+g{#&DQe&Uz; z%d5}NcddUyf^gndGQVfzbYP+=?SV=Po~FR-7>YF66X#aFiDJD&S6=-Gw_RurHJkH< z7NF9d?_)U`jN3($$}CJgsvGE}M5$_>;=ld*I~|8=z~D{xOTaH79pWdaB~d;hdT zE{!l3SIf`iJ2~U1yCHydbU45;{8>mvd+1cm8?G?A#{`;|I*OLABeH({xc{vE8aKi4 ze?1vSFJ^uj8+64@D{AW0kJ{$dt?t9OxLjRE|>n-1UGGTx`42yQ;3+X*-w6C<$f!<_t&P@ry=Ra^PfCbdCLp{>M7lNb`2 zir+uc)pBD2OQ*p2^9P#ORx0(!Bj^uvyR40u!~@=Yc*N<(b%9qM`>h$-4Zg=OPPf)h z(*$5A6D7v8nKpWBrHjq}gEgIYqwI2^1oGF0B58A#&>ItsH%;?0XArQ^)DlP}F)yKBkVAX8&dE)?q!fp#0iL!HZv zu`J2~{2b0}KXDb)sK!9W|GPR9#Hv+ifXE?!o0e8rS@r4V>kB?+3zHfGX=ELz!Hxy8 zYBi@x^YUKo?EXp*$+3*O2rHFER3GD4({syME%bR}oA7_8pV+l`4 zR3!ns*}&P;fL4^hoCu8y0D;5+BwUhT%K{LGxw129&*O>JGO6GSP$sq5A7p)p+hrze z=<{EVIPm*eqv0g7Hv{;YK0*^8(iMNai=pYnZbbuQ zwm4%D$I&WGwOpO9fjaM0+m4iE_-1!TWkhU#etc*VM@MM%>sd0_NHO&%`oL{_okGjR zB@FwCXS>tTcn3on#K_1G<`QQ>W;iffDj_`Oxtd+I#dYLRgsZz)MxM2|Eldbf7cwfuf zq&M5b{Z~=sT^;5CxRn&S5F5hD`sy_It5}pohV1X3Ie9V4fVk;p`{m`m&T05WA~+NR zH1bxz+>-n8?90jxe`+#VH3FbuJ!w#+pp&hS@NE@7hxIvf-)v|O8p-ZBwF69OKp6=lw!;dT$*az0tDOjrIII(>CNJee@u~Rkc7bYN~hqf==<+8e< z^6WSqK*^p}J;D-is+F{CrL`=ElFGeyjHmFjG%>P+_F-X6zHHW`$9jG+j(KxU0NPD5~O2a@WK) zy>Qbg(XZ!gx^}zXy>vlS9A^H5#igwietsNYz;;t+lO1Xj966L__WQr85-G#_~14$rpINu)C&-G`ZHP~9}=M|R9v@oF6~UAt2cv8+PYn-zI+j$>yk*ttP1muLbVF(t8j zBh-5Oc#P_B=D%9+`5{7PW7B8Nn3Lrd0AL1$e$3RqNdy)o;if zj6!-5D3G7W?-@5glD{Y5Wu6EVb5CE_FE_oeC1rM+xBD9C52=nl?xumxgV%