From 01b8aec26b73512bcff18530cb62d857c907128b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20G=C3=B3mez?= Date: Sun, 27 Jul 2025 07:16:59 +0200 Subject: [PATCH 01/40] format repo and update black version --- .github/workflows/autoblack.yml | 2 +- .gitignore | 2 + torchquad/integration/base_integrator.py | 13 ++----- torchquad/integration/boole.py | 7 +--- torchquad/integration/gaussian.py | 18 ++------- torchquad/integration/grid_integrator.py | 28 ++++--------- torchquad/integration/integration_grid.py | 4 +- torchquad/integration/monte_carlo.py | 38 +++++------------- torchquad/integration/rng.py | 4 +- torchquad/integration/simpson.py | 3 +- torchquad/integration/trapezoid.py | 4 +- torchquad/integration/utils.py | 20 +++------- torchquad/integration/vegas.py | 13 ++----- torchquad/integration/vegas_map.py | 39 +++++-------------- torchquad/integration/vegas_stratification.py | 13 ++----- torchquad/tests/boole_test.py | 12 ++---- torchquad/tests/gauss_test.py | 20 +++------- torchquad/tests/gradient_test.py | 12 ++---- torchquad/tests/helper_functions.py | 31 ++++----------- torchquad/tests/integration_grid_test.py | 20 +++------- torchquad/tests/integration_test_functions.py | 8 +--- torchquad/tests/integrator_types_test.py | 4 +- torchquad/tests/monte_carlo_test.py | 33 ++++------------ torchquad/tests/rng_test.py | 8 +--- torchquad/tests/simpson_test.py | 16 ++------ torchquad/tests/trapezoid_test.py | 12 ++---- torchquad/tests/utils_integration_test.py | 24 +++--------- torchquad/tests/vegas_map_test.py | 24 +++--------- torchquad/tests/vegas_stratification_test.py | 4 +- torchquad/tests/vegas_test.py | 16 ++------ torchquad/utils/enable_cuda.py | 4 +- torchquad/utils/set_precision.py | 8 +--- 32 files changed, 117 insertions(+), 347 deletions(-) diff --git a/.github/workflows/autoblack.yml b/.github/workflows/autoblack.yml index 12d48bc0..d14b407b 100644 --- a/.github/workflows/autoblack.yml +++ b/.github/workflows/autoblack.yml @@ -15,6 +15,6 @@ jobs: with: python-version: 3.11 - name: Install Black - run: pip install black==24.4.2 + run: pip install black==25.1.0 - name: Run black --check . run: black --check . diff --git a/.gitignore b/.gitignore index 035839d8..b71e09ce 100644 --- a/.gitignore +++ b/.gitignore @@ -132,3 +132,5 @@ my_notebooks .vscode pytest-coverage.txt pytest.xml +CLAUDE.md +claude_docs diff --git a/torchquad/integration/base_integrator.py b/torchquad/integration/base_integrator.py index 03514ac8..0d10a265 100644 --- a/torchquad/integration/base_integrator.py +++ b/torchquad/integration/base_integrator.py @@ -25,9 +25,7 @@ def __init__(self): self._nr_of_fevals = 0 def integrate(self): - raise ( - NotImplementedError("This is an abstract base class. Should not be called.") - ) + raise (NotImplementedError("This is an abstract base class. Should not be called.")) def _eval(self, points, weights=None, args=None): """Call evaluate_integrand to evaluate self._fn function at the passed points and update self._nr_of_evals @@ -37,9 +35,7 @@ def _eval(self, points, weights=None, args=None): weights (backend tensor, optional): Integration weights. Defaults to None. args (list or tuple, optional): Any arguments required by the function. Defaults to None. """ - result, num_points = self.evaluate_integrand( - self._fn, points, weights=weights, args=args - ) + result, num_points = self.evaluate_integrand(self._fn, points, weights=weights, args=args) self._nr_of_fevals += num_points return result @@ -83,10 +79,7 @@ def evaluate_integrand(fn, points, weights=None, args=None): len(result.shape) > 1 ): # if the the integrand is multi-dimensional, we need to reshape/repeat weights so they can be broadcast in the *= integrand_shape = anp.array( - [ - dim if isinstance(dim, int) else dim.as_list() - for dim in result.shape[1:] - ], + [dim if isinstance(dim, int) else dim.as_list() for dim in result.shape[1:]], like=infer_backend(points), ) diff --git a/torchquad/integration/boole.py b/torchquad/integration/boole.py index a064dff3..f538e582 100644 --- a/torchquad/integration/boole.py +++ b/torchquad/integration/boole.py @@ -64,16 +64,13 @@ def _adjust_N(dim, N): int: An N satisfying N^(1/dim) - 1 % 4 == 0. """ n_per_dim = int(N ** (1.0 / dim) + 1e-8) - logger.debug( - "Checking if N per dim is >=5 and N = 1 + 4n, where n is a positive integer." - ) + logger.debug("Checking if N per dim is >=5 and N = 1 + 4n, where n is a positive integer.") # Boole's rule requires N per dim >=5 and N = 1 + 4n, # where n is a positive integer, for correctness. if n_per_dim < 5: warnings.warn( - "N per dimension cannot be lower than 5. " - "N per dim will now be changed to 5." + "N per dimension cannot be lower than 5. " "N per dim will now be changed to 5." ) N = 5**dim elif (n_per_dim - 1) % 4 != 0: diff --git a/torchquad/integration/gaussian.py b/torchquad/integration/gaussian.py index 0d3c9612..9593501c 100644 --- a/torchquad/integration/gaussian.py +++ b/torchquad/integration/gaussian.py @@ -56,17 +56,11 @@ def _weights(self, N, dim, backend, requires_grad=False): if backend == "torch": weights.requires_grad = requires_grad return anp.prod( - anp.array( - anp.stack( - list(anp.meshgrid(*([weights] * dim))), like=backend, dim=0 - ) - ), + anp.array(anp.stack(list(anp.meshgrid(*([weights] * dim))), like=backend, dim=0)), axis=0, ).ravel() else: - return anp.prod( - anp.meshgrid(*([weights] * dim), like=backend), axis=0 - ).ravel() + return anp.prod(anp.meshgrid(*([weights] * dim), like=backend), axis=0).ravel() def _roots(self, N, backend, requires_grad=False): """return the roots generated from the polynomial of choice @@ -90,9 +84,7 @@ def _grid_func(self): """ def f(integration_domain, N, requires_grad, backend=None): - return self._resize_roots( - integration_domain, self._roots(N, backend, requires_grad) - ) + return self._resize_roots(integration_domain, self._roots(N, backend, requires_grad)) return f @@ -124,9 +116,7 @@ def _cached_points_and_weights(self, N): if hasattr(N, "item"): _root_args = (N.item(), *self._root_args) else: - raise NotImplementedError( - f"N {N} is not an int and lacks an `item` method" - ) + raise NotImplementedError(f"N {N} is not an int and lacks an `item` method") if _root_args in self._cache: return self._cache[_root_args] self._cache[_root_args] = self._root_fn(*_root_args) diff --git a/torchquad/integration/grid_integrator.py b/torchquad/integration/grid_integrator.py index 6c574d81..5002a584 100644 --- a/torchquad/integration/grid_integrator.py +++ b/torchquad/integration/grid_integrator.py @@ -52,9 +52,7 @@ def integrate(self, fn, dim, N, integration_domain, backend): ) self._nr_of_fevals = num_points - return self.calculate_result( - function_values, dim, n_per_dim, hs, integration_domain - ) + return self.calculate_result(function_values, dim, n_per_dim, hs, integration_domain) @expand_func_values_and_squeeze_integral def calculate_result(self, function_values, dim, n_per_dim, hs, integration_domain): @@ -80,22 +78,16 @@ def calculate_result(self, function_values, dim, n_per_dim, hs, integration_doma einsum = "".join( [chr(i + 65) for i in range(len(function_values.shape))] ) # chr(i + 65) generates an alphabetical character - reshaped_function_values = anp.einsum( - f"{einsum}->{einsum[1:]}{einsum[0]}", function_values - ) + reshaped_function_values = anp.einsum(f"{einsum}->{einsum[1:]}{einsum[0]}", function_values) reshaped_function_values = reshaped_function_values.reshape(new_shape) assert new_shape == list( reshaped_function_values.shape ), f"reshaping produced shape {reshaped_function_values.shape}, expected shape was {new_shape}" logger.debug("Computing areas.") - result = self._apply_composite_rule( - reshaped_function_values, dim, hs, integration_domain - ) + result = self._apply_composite_rule(reshaped_function_values, dim, hs, integration_domain) - logger.opt(lazy=True).info( - "Computed integral: {result}", result=lambda: str(result) - ) + logger.opt(lazy=True).info("Computed integral: {result}", result=lambda: str(result)) return result def calculate_grid( @@ -139,9 +131,7 @@ def _adjust_N(dim, N): # Nothing to do by default return N - def get_jit_compiled_integrate( - self, dim, N=None, integration_domain=None, backend=None - ): + def get_jit_compiled_integrate(self, dim, N=None, integration_domain=None, backend=None): """Create an integrate function where the performance-relevant steps except the integrand evaluation are JIT compiled. Use this method only if the integrand cannot be compiled. The compilation happens when the function is executed the first time. @@ -170,9 +160,7 @@ def get_jit_compiled_integrate( if not hasattr(self, "_tf_jit_calculate_grid"): import tensorflow as tf - self._tf_jit_calculate_grid = tf.function( - self.calculate_grid, jit_compile=True - ) + self._tf_jit_calculate_grid = tf.function(self.calculate_grid, jit_compile=True) self._tf_jit_calculate_result = tf.function( self.calculate_result, jit_compile=True ) @@ -211,9 +199,7 @@ def compiled_integrate(fn, integration_domain): def do_compile(example_integrand): # Define traceable first and third steps def step1(integration_domain): - grid_points, hs, n_per_dim = self.calculate_grid( - N, integration_domain - ) + grid_points, hs, n_per_dim = self.calculate_grid(N, integration_domain) return ( grid_points, hs, diff --git a/torchquad/integration/integration_grid.py b/torchquad/integration/integration_grid.py index 1068e90d..37b9de9c 100644 --- a/torchquad/integration/integration_grid.py +++ b/torchquad/integration/integration_grid.py @@ -96,9 +96,7 @@ def __init__( # Get grid points points = anp.meshgrid(*grid_1d) - self.points = anp.stack( - [mg.ravel() for mg in points], axis=1, like=integration_domain - ) + self.points = anp.stack([mg.ravel() for mg in points], axis=1, like=integration_domain) logger.info("Integration grid created.") diff --git a/torchquad/integration/monte_carlo.py b/torchquad/integration/monte_carlo.py index 432e6242..ae66f135 100644 --- a/torchquad/integration/monte_carlo.py +++ b/torchquad/integration/monte_carlo.py @@ -76,14 +76,9 @@ def calculate_result(self, function_values, integration_domain): N = function_values.shape[0] integral = volume * anp.sum(function_values, axis=0) / N # NumPy automatically casts to float64 when dividing by N - if ( - infer_backend(integration_domain) == "numpy" - and function_values.dtype != integral.dtype - ): + if infer_backend(integration_domain) == "numpy" and function_values.dtype != integral.dtype: integral = integral.astype(function_values.dtype) - logger.opt(lazy=True).info( - "Computed integral: {result}", result=lambda: str(integral) - ) + logger.opt(lazy=True).info("Computed integral: {result}", result=lambda: str(integral)) return integral def calculate_sample_points(self, N, integration_domain, seed=None, rng=None): @@ -108,10 +103,7 @@ def calculate_sample_points(self, N, integration_domain, seed=None, rng=None): domain_starts = integration_domain[:, 0] domain_sizes = integration_domain[:, 1] - domain_starts # Scale and translate random numbers via broadcasting - return ( - rng.uniform(size=[N, dim], dtype=domain_sizes.dtype) * domain_sizes - + domain_starts - ) + return rng.uniform(size=[N, dim], dtype=domain_sizes.dtype) * domain_sizes + domain_starts def get_jit_compiled_integrate( self, dim, N=1000, integration_domain=None, seed=None, backend=None @@ -150,17 +142,13 @@ def get_jit_compiled_integrate( self._tf_jit_calculate_sample_points = tf.function( self.calculate_sample_points, jit_compile=True ) - self._tf_jit_calculate_result = tf.function( - self.calculate_result, jit_compile=True - ) + self._tf_jit_calculate_result = tf.function(self.calculate_result, jit_compile=True) jit_calculate_sample_points = self._tf_jit_calculate_sample_points jit_calculate_result = self._tf_jit_calculate_result rng = RNG(backend="tensorflow", seed=seed) def compiled_integrate(fn, integration_domain): - sample_points = jit_calculate_sample_points( - N, integration_domain, rng=rng - ) + sample_points = jit_calculate_sample_points(N, integration_domain, rng=rng) function_values, _ = self.evaluate_integrand(fn, sample_points) return jit_calculate_result(function_values, integration_domain) @@ -188,9 +176,7 @@ def jit_calc_sample_points(integration_domain, rng_key): def compiled_integrate(fn, integration_domain): nonlocal rng_key - sample_points, rng_key = jit_calc_sample_points( - integration_domain, rng_key - ) + sample_points, rng_key = jit_calc_sample_points(integration_domain, rng_key) function_values, _ = self.evaluate_integrand(fn, sample_points) return jit_calculate_result(function_values, integration_domain) @@ -201,9 +187,7 @@ def compiled_integrate(fn, integration_domain): def do_compile(example_integrand): # Define traceable first and third steps def step1(integration_domain): - return self.calculate_sample_points( - N, integration_domain, seed=seed - ) + return self.calculate_sample_points(N, integration_domain, seed=seed) step3 = self.calculate_result @@ -214,14 +198,10 @@ def step1(integration_domain): # Get example input for the third step sample_points = step1(integration_domain) - function_values, _ = self.evaluate_integrand( - example_integrand, sample_points - ) + function_values, _ = self.evaluate_integrand(example_integrand, sample_points) # Trace the third step - step3 = _torch_trace_without_warnings( - step3, (function_values, integration_domain) - ) + step3 = _torch_trace_without_warnings(step3, (function_values, integration_domain)) # Define a compiled integrate function def compiled_integrate(fn, integration_domain): diff --git a/torchquad/integration/rng.py b/torchquad/integration/rng.py index 401da2c9..8d5e7475 100644 --- a/torchquad/integration/rng.py +++ b/torchquad/integration/rng.py @@ -65,9 +65,7 @@ def uniform_func(size, dtype): self._rng = tf.random.Generator.from_non_deterministic_state() else: self._rng = tf.random.Generator.from_seed(seed) - self.uniform = lambda size, dtype: self._rng.uniform( - shape=size, dtype=dtype - ) + self.uniform = lambda size, dtype: self._rng.uniform(shape=size, dtype=dtype) else: if seed is not None: anp.random.seed(seed, like=backend) diff --git a/torchquad/integration/simpson.py b/torchquad/integration/simpson.py index e67ce47b..456446d0 100644 --- a/torchquad/integration/simpson.py +++ b/torchquad/integration/simpson.py @@ -68,8 +68,7 @@ def _adjust_N(dim, N): # complex rule that works for even N as well but it is not implemented here. if n_per_dim < 3: warnings.warn( - "N per dimension cannot be lower than 3. " - "N per dim will now be changed to 3." + "N per dimension cannot be lower than 3. " "N per dim will now be changed to 3." ) N = 3**dim elif n_per_dim % 2 != 1: diff --git a/torchquad/integration/trapezoid.py b/torchquad/integration/trapezoid.py index 476743e2..b9387988 100644 --- a/torchquad/integration/trapezoid.py +++ b/torchquad/integration/trapezoid.py @@ -32,8 +32,6 @@ def _apply_composite_rule(cur_dim_areas, dim, hs, domain): """ # We collapse dimension by dimension for cur_dim in range(dim): - cur_dim_areas = ( - hs[cur_dim] / 2.0 * (cur_dim_areas[..., 0:-1] + cur_dim_areas[..., 1:]) - ) + cur_dim_areas = hs[cur_dim] / 2.0 * (cur_dim_areas[..., 0:-1] + cur_dim_areas[..., 1:]) cur_dim_areas = anp.sum(cur_dim_areas, axis=len(cur_dim_areas.shape) - 1) return cur_dim_areas diff --git a/torchquad/integration/utils.py b/torchquad/integration/utils.py index 12838cb0..e402c9ef 100644 --- a/torchquad/integration/utils.py +++ b/torchquad/integration/utils.py @@ -123,18 +123,14 @@ def _setup_integration_domain(dim, integration_domain, backend): domain_arg_backend = infer_backend(integration_domain) convert_to_tensor = domain_arg_backend == "builtins" if not convert_to_tensor and backend is not None and domain_arg_backend != backend: - logger.warning( - "integration_domain should be a list when the backend argument is set." - ) + logger.warning("integration_domain should be a list when the backend argument is set.") convert_to_tensor = True # Convert integration_domain to a tensor if needed if convert_to_tensor: # Cast all integration domain values to Python3 float because # some numerical backends create a tensor based on the Python3 types - integration_domain = [ - [float(b) for b in bounds] for bounds in integration_domain - ] + integration_domain = [[float(b) for b in bounds] for bounds in integration_domain] if backend is None: # Get a globally default backend backend = _get_default_backend() @@ -144,9 +140,7 @@ def _setup_integration_domain(dim, integration_domain, backend): dtype_arg = dtype_arg or tf.keras.backend.floatx() - integration_domain = anp.array( - integration_domain, like=backend, dtype=dtype_arg - ) + integration_domain = anp.array(integration_domain, like=backend, dtype=dtype_arg) if integration_domain.shape != (dim, 2): raise ValueError( @@ -241,16 +235,12 @@ def expand_func_values_and_squeeze_integral(f): def wrap(*args, **kwargs): # i.e we only have one dimension, or the second dimension (that of the integrand) is 1 - is_1d = len(args[1].shape) == 1 or ( - len(args[1].shape) == 2 and args[1].shape[1] == 1 - ) + is_1d = len(args[1].shape) == 1 or (len(args[1].shape) == 2 and args[1].shape[1] == 1) if is_1d: warnings.warn( "DEPRECATION WARNING: In future versions of torchquad, an array-like object will be returned." ) - return anp.squeeze( - f(args[0], anp.expand_dims(args[1], axis=1), *args[2:], **kwargs) - ) + return anp.squeeze(f(args[0], anp.expand_dims(args[1], axis=1), *args[2:], **kwargs)) return f(*args, **kwargs) return wrap diff --git a/torchquad/integration/vegas.py b/torchquad/integration/vegas.py index b1e02f0a..bafdb549 100644 --- a/torchquad/integration/vegas.py +++ b/torchquad/integration/vegas.py @@ -175,9 +175,7 @@ def _check_abort_conditions(self): err = self._get_error() chi2 = self._get_chisq() logger.debug(f"Iteration {self.it},Chi2={chi2:.4e}") - if ( - err <= self._eps_rel * res_abs or err <= self._eps_abs - ) and chi2 / 5.0 < 1.0: + if (err <= self._eps_rel * res_abs or err <= self._eps_abs) and chi2 / 5.0 < 1.0: return True # Adjust number of evals if Chi square indicates instability @@ -217,9 +215,7 @@ def _warmup_grid(self, warmup_N_it=5, N_samples=1000): warmup_N_it (int, optional): Number of warmup iterations. Defaults to 5. N_samples (int, optional): Number of samples per warmup iteration. Defaults to 1000. """ - logger.debug( - f"Running Map Warmup with warmup_N_it={warmup_N_it}, N_samples={N_samples}..." - ) + logger.debug(f"Running Map Warmup with warmup_N_it={warmup_N_it}, N_samples={N_samples}...") alpha_start = 0.5 # initial alpha value # TODO in the original paper this is adjusted over time @@ -237,10 +233,7 @@ def _warmup_grid(self, warmup_N_it=5, N_samples=1000): # Sample points yrnd and transformed sample points x # Multiplying by 0.99999999 as the edge case of y=1 leads to an error - yrnd = ( - self.rng.uniform(size=[N_samples, self._dim], dtype=self.dtype) - * 0.999999 - ) + yrnd = self.rng.uniform(size=[N_samples, self._dim], dtype=self.dtype) * 0.999999 x = self.map.get_X(yrnd) f_eval = self._eval(x).squeeze() jac = self.map.get_Jac(yrnd) diff --git a/torchquad/integration/vegas_map.py b/torchquad/integration/vegas_map.py index c81a6d92..9510cd55 100644 --- a/torchquad/integration/vegas_map.py +++ b/torchquad/integration/vegas_map.py @@ -34,12 +34,8 @@ def __init__(self, N_intervals, dim, backend, dtype, alpha=0.5) -> None: anp.ones((self.dim, self.N_intervals), dtype=self.dtype, like=self.backend) / self.N_intervals ) - x_edges_per_dim = anp.linspace( - 0.0, 1.0, N_edges, dtype=self.dtype, like=self.backend - ) - self.x_edges = anp.repeat( - anp.reshape(x_edges_per_dim, [1, N_edges]), self.dim, axis=0 - ) + x_edges_per_dim = anp.linspace(0.0, 1.0, N_edges, dtype=self.dtype, like=self.backend) + self.x_edges = anp.repeat(anp.reshape(x_edges_per_dim, [1, N_edges]), self.dim, axis=0) # Initialize self.weights and self.counts self._reset_weight() @@ -132,14 +128,10 @@ def _smooth_map(weights, counts, alpha): # their nearest neighbouring intervals # (up to a distance of 10 indices). for _ in range(10): - weights[:, :-1] = anp.where( - z_idx[:, :-1], weights[:, 1:], weights[:, :-1] - ) + weights[:, :-1] = anp.where(z_idx[:, :-1], weights[:, 1:], weights[:, :-1]) # The asterisk corresponds to a logical And here z_idx[:, :-1] = z_idx[:, :-1] * z_idx[:, 1:] - weights[:, 1:] = anp.where( - z_idx[:, 1:], weights[:, :-1], weights[:, 1:] - ) + weights[:, 1:] = anp.where(z_idx[:, 1:], weights[:, :-1], weights[:, 1:]) z_idx[:, 1:] = z_idx[:, 1:] * z_idx[:, :-1] logger.opt(lazy=True).debug( " remaining intervals: {z_idx_sum}", @@ -174,18 +166,14 @@ def _smooth_map(weights, counts, alpha): # Range compression # EQ 19 - d_tmp[d_tmp != 0] = ( - (d_tmp[d_tmp != 0] - 1.0) / anp.log(d_tmp[d_tmp != 0]) - ) ** alpha + d_tmp[d_tmp != 0] = ((d_tmp[d_tmp != 0] - 1.0) / anp.log(d_tmp[d_tmp != 0])) ** alpha return d_tmp def _reset_weight(self): """Reset or initialize weights and counts.""" # weights in each intervall - self.weights = anp.zeros( - (self.dim, self.N_intervals), dtype=self.dtype, like=self.backend - ) + self.weights = anp.zeros((self.dim, self.N_intervals), dtype=self.dtype, like=self.backend) # numbers of random samples in specific interval self.counts = anp.zeros( (self.dim, self.N_intervals), @@ -217,29 +205,22 @@ def update_map(self): # with float32 precision is too inaccurate which leads to wrong # indices, so cast to float64 here. delta_d_multiples = astype( - anp.cumsum(astype(smoothed_weights[i, :-1], "float64"), axis=0) - / delta_d, + anp.cumsum(astype(smoothed_weights[i, :-1], "float64"), axis=0) / delta_d, "int64", ) # For each number of delta_d multiples in {0, 1, …, N_intervals}, # determine how many intervals belong to it (num_sw_per_dw) # and the sum of smoothed weights in these intervals (val_sw_per_dw) dtype_int = delta_d_multiples.dtype - num_sw_per_dw = anp.zeros( - [self.N_intervals + 1], dtype=dtype_int, like=delta_d - ) + num_sw_per_dw = anp.zeros([self.N_intervals + 1], dtype=dtype_int, like=delta_d) _add_at_indices( num_sw_per_dw, delta_d_multiples, anp.ones(delta_d_multiples.shape, dtype=dtype_int, like=delta_d), is_sorted=True, ) - val_sw_per_dw = anp.zeros( - [self.N_intervals + 1], dtype=self.dtype, like=delta_d - ) - _add_at_indices( - val_sw_per_dw, delta_d_multiples, smoothed_weights[i], is_sorted=True - ) + val_sw_per_dw = anp.zeros([self.N_intervals + 1], dtype=self.dtype, like=delta_d) + _add_at_indices(val_sw_per_dw, delta_d_multiples, smoothed_weights[i], is_sorted=True) # The cumulative sum of the number of smoothed weights per delta_d # multiple determines the old inner edges indices for the new inner # edges calculation diff --git a/torchquad/integration/vegas_stratification.py b/torchquad/integration/vegas_stratification.py index 9b3239e2..81a440ce 100644 --- a/torchquad/integration/vegas_stratification.py +++ b/torchquad/integration/vegas_stratification.py @@ -38,11 +38,7 @@ def __init__(self, N_increment, dim, rng, backend, dtype, beta=0.75): self.JF2 = anp.zeros([self.N_cubes], dtype=self.dtype, like=backend) # dampened counts - self.dh = ( - anp.ones([self.N_cubes], dtype=self.dtype, like=backend) - * 1.0 - / self.N_cubes - ) + self.dh = anp.ones([self.N_cubes], dtype=self.dtype, like=backend) * 1.0 / self.N_cubes # current index counts as floating point numbers self.strat_counts = anp.zeros([self.N_cubes], dtype=self.dtype, like=backend) @@ -81,8 +77,7 @@ def update_DH(self): # EQ 42 V2 = self.V_cubes * self.V_cubes d_tmp = ( - V2 * self.JF2 / self.strat_counts - - (self.V_cubes * self.JF / self.strat_counts) ** 2 + V2 * self.JF2 / self.strat_counts - (self.V_cubes * self.JF / self.strat_counts) ** 2 ) # Sometimes rounding errors produce negative values very close to 0 d_tmp[d_tmp < 0.0] = 0.0 @@ -162,9 +157,7 @@ def get_Y(self, nevals): # Convert the positions to float, add random offsets to them and scale # the result so that each point is in [0, 1)^dim positions = astype(positions, self.dtype) - random_uni = self.rng.uniform( - size=[positions.shape[0], self.dim], dtype=self.dtype - ) + random_uni = self.rng.uniform(size=[positions.shape[0], self.dim], dtype=self.dtype) positions = (positions + random_uni) / self.N_strat # Due to rounding errors points are sometimes 1.0; replace them with # a value close to 1 diff --git a/torchquad/tests/boole_test.py b/torchquad/tests/boole_test.py index aaea3f1a..ea1554c8 100644 --- a/torchquad/tests/boole_test.py +++ b/torchquad/tests/boole_test.py @@ -71,9 +71,7 @@ def integrate(*args, **kwargs): # which is then re-used on all other integrations (as is the point of JIT). nonlocal jit_integrate if jit_integrate is None: - jit_integrate = bl.get_jit_compiled_integrate( - dim=1, N=N, backend=backend - ) + jit_integrate = bl.get_jit_compiled_integrate(dim=1, N=N, backend=backend) return jit_integrate(*args, **kwargs) errors, funcs = compute_integration_test_errors( @@ -93,9 +91,7 @@ def integrate(*args, **kwargs): for error in errors: assert error < 6.33e-11 - jit_integrate = ( - None # set to None again so can be re-used with new integrand shape - ) + jit_integrate = None # set to None again so can be re-used with new integrand shape errors, funcs = compute_integration_test_errors( integrate, @@ -118,9 +114,7 @@ def integrate(*args, **kwargs): test_integrate_numpy = setup_test_for_backend(_run_boole_tests, "numpy", "float64") test_integrate_torch = setup_test_for_backend(_run_boole_tests, "torch", "float64") test_integrate_jax = setup_test_for_backend(_run_boole_tests, "jax", "float64") -test_integrate_tensorflow = setup_test_for_backend( - _run_boole_tests, "tensorflow", "float64" -) +test_integrate_tensorflow = setup_test_for_backend(_run_boole_tests, "tensorflow", "float64") if __name__ == "__main__": diff --git a/torchquad/tests/gauss_test.py b/torchquad/tests/gauss_test.py index 7cff604a..6a054407 100644 --- a/torchquad/tests/gauss_test.py +++ b/torchquad/tests/gauss_test.py @@ -84,9 +84,7 @@ def _run_gaussian_tests(backend, _precision): ) print(f"10D {gauss} Test passed. N: {N}, backend: {backend}, Errors: {errors}") for err, test_function in zip(errors, funcs): - assert ( - test_function.get_order() > 60 or err < 4e-09 - ) # poly order should be relatively high + assert test_function.get_order() > 60 or err < 4e-09 # poly order should be relatively high for error in errors: assert error < 1e-5 @@ -100,9 +98,7 @@ def integrate(*args, **kwargs): # which is then re-used on all other integrations (as is the point of JIT). nonlocal jit_integrate if jit_integrate is None: - jit_integrate = gauss.get_jit_compiled_integrate( - dim=1, N=N, backend=backend - ) + jit_integrate = gauss.get_jit_compiled_integrate(dim=1, N=N, backend=backend) return jit_integrate(*args, **kwargs) errors, funcs = compute_integration_test_errors( @@ -114,18 +110,14 @@ def integrate(*args, **kwargs): filter_test_functions=lambda x: x.is_integrand_1d, ) - print( - f"1D Gaussian JIT Test passed. N: {N}, backend: {backend}, Errors: {errors}" - ) + print(f"1D Gaussian JIT Test passed. N: {N}, backend: {backend}, Errors: {errors}") # Polynomials up to degree 2N-1 can be integrated almost exactly with gaussian. for err, test_function in zip(errors, funcs): assert test_function.get_order() > (2 * N - 1) or err < 2e-10 for error in errors: assert error < 6.33e-11 - jit_integrate = ( - None # set to None again so can be re-used with new integrand shape - ) + jit_integrate = None # set to None again so can be re-used with new integrand shape errors, funcs = compute_integration_test_errors( integrate, @@ -147,9 +139,7 @@ def integrate(*args, **kwargs): test_integrate_numpy = setup_test_for_backend(_run_gaussian_tests, "numpy", "float64") test_integrate_torch = setup_test_for_backend(_run_gaussian_tests, "torch", "float64") test_integrate_jax = setup_test_for_backend(_run_gaussian_tests, "jax", "float64") -test_integrate_tensorflow = setup_test_for_backend( - _run_gaussian_tests, "tensorflow", "float64" -) +test_integrate_tensorflow = setup_test_for_backend(_run_gaussian_tests, "tensorflow", "float64") if __name__ == "__main__": diff --git a/torchquad/tests/gradient_test.py b/torchquad/tests/gradient_test.py index 4487d414..ff9f3198 100644 --- a/torchquad/tests/gradient_test.py +++ b/torchquad/tests/gradient_test.py @@ -158,9 +158,7 @@ def _calculate_gradient_over_param( return _calculate_gradient( backend, param, - lambda par: integrate( - lambda x: integrand_with_param(x, par), **integrate_kwargs - ), + lambda par: integrate(lambda x: integrand_with_param(x, par), **integrate_kwargs), dtype_name, ) @@ -188,9 +186,7 @@ def _run_gradient_tests(backend, dtype_name): # Currently VEGAS supports only Torch. continue - print( - f"Calculating gradients; backend: {backend}, integrator: {integrator_name}" - ) + print(f"Calculating gradients; backend: {backend}, integrator: {integrator_name}") print("Calculating gradients of the one-dimensional V-shaped function") integrate_kwargs = {"fn": _v_function, "dim": 1, "N": N_1d} @@ -269,9 +265,7 @@ def _run_gradient_tests(backend, dtype_name): test_gradients_torch = setup_test_for_backend(_run_gradient_tests, "torch", "float64") test_gradients_jax = setup_test_for_backend(_run_gradient_tests, "jax", "float64") -test_gradients_tensorflow = setup_test_for_backend( - _run_gradient_tests, "tensorflow", "float64" -) +test_gradients_tensorflow = setup_test_for_backend(_run_gradient_tests, "tensorflow", "float64") if __name__ == "__main__": # used to run this test individually diff --git a/torchquad/tests/helper_functions.py b/torchquad/tests/helper_functions.py index 88a8ee84..610e4621 100644 --- a/torchquad/tests/helper_functions.py +++ b/torchquad/tests/helper_functions.py @@ -19,12 +19,8 @@ def get_test_functions(integration_dim, backend, use_multi_dim_integrand): if integration_dim == 1: res = [ # Real numbers - Polynomial( - 4.0, [2.0], is_complex=False, backend=backend, integrand_dims=1 - ), # y = 2 - Polynomial( - 0, [0, 1], is_complex=False, backend=backend, integrand_dims=1 - ), # y = x + Polynomial(4.0, [2.0], is_complex=False, backend=backend, integrand_dims=1), # y = 2 + Polynomial(0, [0, 1], is_complex=False, backend=backend, integrand_dims=1), # y = x Polynomial( 2 / 3, [0, 0, 2], @@ -83,12 +79,8 @@ def get_test_functions(integration_dim, backend, use_multi_dim_integrand): ), # # Complex numbers - Polynomial( - 4.0j, [2.0j], is_complex=True, backend=backend, integrand_dims=1 - ), # y = 2j - Polynomial( - 0, [0, 1j], is_complex=True, backend=backend, integrand_dims=1 - ), # y = xj + Polynomial(4.0j, [2.0j], is_complex=True, backend=backend, integrand_dims=1), # y = 2j + Polynomial(0, [0, 1j], is_complex=True, backend=backend, integrand_dims=1), # y = xj # y=7x^4-3jx^3+2x^2-jx+3 Polynomial( 44648.0 / 15.0, @@ -264,9 +256,7 @@ def get_test_functions(integration_dim, backend, use_multi_dim_integrand): ), # f(x,y,z) = x + y + z # Over 3 integrand dims Polynomial( # MC tests fail here with default float32 precision, so need float64 - np.array( - [[[0.0, 48.0], [96.0, 144.0]], [[192.0, 240.0], [288.0, 336.0]]] - ), + np.array([[[0.0, 48.0], [96.0, 144.0]], [[192.0, 240.0], [288.0, 336.0]]]), integration_dim=3, domain=anp.array( [[-1.0, 1.0], [-1.0, 1.0], [-1.0, 1.0]], @@ -312,8 +302,7 @@ def get_test_functions(integration_dim, backend, use_multi_dim_integrand): ] else: raise ValueError( - "Not testing functions implemented for integration_dim " - + str(integration_dim) + "Not testing functions implemented for integration_dim " + str(integration_dim) ) @@ -353,16 +342,12 @@ def compute_integration_test_errors( continue if backend == "torch": diff = np.abs( - test_function.evaluate(integrator, integrator_args) - .cpu() - .detach() - .numpy() + test_function.evaluate(integrator, integrator_args).cpu().detach().numpy() - test_function.expected_result ) else: diff = np.abs( - test_function.evaluate(integrator, integrator_args) - - test_function.expected_result + test_function.evaluate(integrator, integrator_args) - test_function.expected_result ) if test_function.is_integrand_1d: errors.append(diff) diff --git a/torchquad/tests/integration_grid_test.py b/torchquad/tests/integration_grid_test.py index 6f77fc1a..fb9f0324 100644 --- a/torchquad/tests/integration_grid_test.py +++ b/torchquad/tests/integration_grid_test.py @@ -54,17 +54,11 @@ def _check_grid_validity(grid, integration_domain, N, eps): int(N), integration_domain.shape[0], ), "Incorrect number of calculated points" - assert ( - grid.points.dtype == integration_domain.dtype - ), "Grid points have an incorrect dtype" - assert ( - grid.h.dtype == integration_domain.dtype - ), "Mesh widths have an incorrect dtype" + assert grid.points.dtype == integration_domain.dtype, "Grid points have an incorrect dtype" + assert grid.h.dtype == integration_domain.dtype, "Mesh widths have an incorrect dtype" for dim in range(len(integration_domain)): domain_width = integration_domain[dim][1] - integration_domain[dim][0] - assert ( - anp.abs(grid.h[dim] - domain_width / (grid._N - 1)) < eps - ), "Incorrect mesh width" + assert anp.abs(grid.h[dim] - domain_width / (grid._N - 1)) < eps, "Incorrect mesh width" assert ( anp.min(grid.points[:, dim]) >= integration_domain[dim][0] ), "Points are outside of the integration domain" @@ -112,9 +106,7 @@ def _run_integration_grid_tests(backend, dtype_name): def grid_check(x): has_right_shape = x.shape == (N, 3) - has_right_vals = anp.all(ar.to_numpy(x[0, :]) == 0) and anp.all( - ar.to_numpy(x[-1, :]) == 1 - ) + has_right_vals = anp.all(ar.to_numpy(x[0, :]) == 0) and anp.all(ar.to_numpy(x[-1, :]) == 1) return has_right_shape and has_right_vals mock_integrator_no_check.integrate( @@ -144,9 +136,7 @@ def grid_check(x): test_integration_grid_torch = setup_test_for_backend( _run_integration_grid_tests, "torch", "float64" ) -test_integration_grid_jax = setup_test_for_backend( - _run_integration_grid_tests, "jax", "float64" -) +test_integration_grid_jax = setup_test_for_backend(_run_integration_grid_tests, "jax", "float64") test_integration_grid_tensorflow = setup_test_for_backend( _run_integration_grid_tests, "tensorflow", "float64" ) diff --git a/torchquad/tests/integration_test_functions.py b/torchquad/tests/integration_test_functions.py index ec4d79f4..5dbfa7d7 100644 --- a/torchquad/tests/integration_test_functions.py +++ b/torchquad/tests/integration_test_functions.py @@ -87,9 +87,7 @@ def integrand(x): ) return self.integrand_scaling(self.f(x)) - return integrator( - fn=integrand, integration_domain=self.domain, **integration_args - ) + return integrator(fn=integrand, integration_domain=self.domain, **integration_args) def get_order(self): """Get the order (polynomial degree) of the function @@ -113,9 +111,7 @@ def integrand_scaling(self, integrand): if self.is_integrand_1d: return integrand_scaling * integrand if self._is_integrand_tensor: - scaling_einsum = "".join( - [chr(i + 65) for i in range(len(self.integrand_dims))] - ) + scaling_einsum = "".join([chr(i + 65) for i in range(len(self.integrand_dims))]) return anp.einsum( f"i,{scaling_einsum}->i{scaling_einsum}", integrand, integrand_scaling ) diff --git a/torchquad/tests/integrator_types_test.py b/torchquad/tests/integrator_types_test.py index de48283a..c74aa94e 100755 --- a/torchquad/tests/integrator_types_test.py +++ b/torchquad/tests/integrator_types_test.py @@ -120,9 +120,7 @@ def fn_const(x): test_integrate_numpy = setup_test_for_backend(_run_simple_integrations, "numpy", None) test_integrate_torch = setup_test_for_backend(_run_simple_integrations, "torch", None) test_integrate_jax = setup_test_for_backend(_run_simple_integrations, "jax", None) -test_integrate_tensorflow = setup_test_for_backend( - _run_simple_integrations, "tensorflow", None -) +test_integrate_tensorflow = setup_test_for_backend(_run_simple_integrations, "tensorflow", None) if __name__ == "__main__": diff --git a/torchquad/tests/monte_carlo_test.py b/torchquad/tests/monte_carlo_test.py index 48cc3c62..ef4ab8ef 100644 --- a/torchquad/tests/monte_carlo_test.py +++ b/torchquad/tests/monte_carlo_test.py @@ -24,9 +24,7 @@ def _run_monte_carlo_tests(backend, _precision): use_complex=True, backend=backend, ) - print( - f"1D Monte Carlo Test passed. N: {N}, backend: {backend}, Errors: {str(errors)}" - ) + print(f"1D Monte Carlo Test passed. N: {N}, backend: {backend}, Errors: {str(errors)}") # Constant functions can be integrated exactly with MonteCarlo. # (at least our example functions) for err, test_function in zip(errors, funcs): @@ -54,9 +52,7 @@ def _run_monte_carlo_tests(backend, _precision): use_complex=True, backend=backend, ) - print( - f"3D Monte Carlo Test passed. N: {N}, backend: {backend}, Errors: {str(errors)}" - ) + print(f"3D Monte Carlo Test passed. N: {N}, backend: {backend}, Errors: {str(errors)}") for err, test_function in zip(errors, funcs): assert test_function.get_order() > 0 or err == 0.0 for error, test_function in zip(errors, funcs): @@ -73,10 +69,7 @@ def _run_monte_carlo_tests(backend, _precision): use_complex=True, backend=backend, ) - print( - f"10D Monte Carlo Test passed. N: {N}, backend: {backend}, Errors:" - f" {str(errors)}" - ) + print(f"10D Monte Carlo Test passed. N: {N}, backend: {backend}, Errors:" f" {str(errors)}") for err, test_function in zip(errors, funcs): assert test_function.get_order() > 0 or err == 0.0 for error in errors: @@ -92,9 +85,7 @@ def integrate(*args, **kwargs): # which is then re-used on all other integrations (as is the point of JIT). nonlocal jit_integrate if jit_integrate is None: - jit_integrate = mc.get_jit_compiled_integrate( - dim=1, N=N, backend=backend - ) + jit_integrate = mc.get_jit_compiled_integrate(dim=1, N=N, backend=backend) return jit_integrate(*args, **kwargs) errors, funcs = compute_integration_test_errors( @@ -125,9 +116,7 @@ def integrate(*args, **kwargs): for error in errors[10:]: assert error < 35.0 - jit_integrate = ( - None # set to None again so can be re-used with new integrand shape - ) + jit_integrate = None # set to None again so can be re-used with new integrand shape errors, funcs = compute_integration_test_errors( integrate, @@ -145,16 +134,10 @@ def integrate(*args, **kwargs): assert test_function.get_order() > 0 or err < 1e-14 -test_integrate_numpy = setup_test_for_backend( - _run_monte_carlo_tests, "numpy", "float32" -) -test_integrate_torch = setup_test_for_backend( - _run_monte_carlo_tests, "torch", "float32" -) +test_integrate_numpy = setup_test_for_backend(_run_monte_carlo_tests, "numpy", "float32") +test_integrate_torch = setup_test_for_backend(_run_monte_carlo_tests, "torch", "float32") test_integrate_jax = setup_test_for_backend(_run_monte_carlo_tests, "jax", "float32") -test_integrate_tensorflow = setup_test_for_backend( - _run_monte_carlo_tests, "tensorflow", "float32" -) +test_integrate_tensorflow = setup_test_for_backend(_run_monte_carlo_tests, "tensorflow", "float32") if __name__ == "__main__": diff --git a/torchquad/tests/rng_test.py b/torchquad/tests/rng_test.py index df8dd286..27a4dff0 100644 --- a/torchquad/tests/rng_test.py +++ b/torchquad/tests/rng_test.py @@ -51,12 +51,8 @@ def _run_RNG_tests(backend, dtype_name): test_rng_numpy_f64 = setup_test_for_backend(_run_RNG_tests, "numpy", "float64") test_rng_torch_f32 = setup_test_for_backend(_run_RNG_tests, "torch", "float32") test_rng_torch_f64 = setup_test_for_backend(_run_RNG_tests, "torch", "float64") -test_rng_tensorflow_f32 = setup_test_for_backend( - _run_RNG_tests, "tensorflow", "float32" -) -test_rng_tensorflow_f64 = setup_test_for_backend( - _run_RNG_tests, "tensorflow", "float64" -) +test_rng_tensorflow_f32 = setup_test_for_backend(_run_RNG_tests, "tensorflow", "float32") +test_rng_tensorflow_f64 = setup_test_for_backend(_run_RNG_tests, "tensorflow", "float64") if __name__ == "__main__": diff --git a/torchquad/tests/simpson_test.py b/torchquad/tests/simpson_test.py index b9865ac8..9bec6b2e 100644 --- a/torchquad/tests/simpson_test.py +++ b/torchquad/tests/simpson_test.py @@ -99,9 +99,7 @@ def integrate(*args, **kwargs): # which is then re-used on all other integrations (as is the point of JIT). nonlocal jit_integrate if jit_integrate is None: - jit_integrate = simp.get_jit_compiled_integrate( - dim=1, N=N, backend=backend - ) + jit_integrate = simp.get_jit_compiled_integrate(dim=1, N=N, backend=backend) return jit_integrate(*args, **kwargs) errors, funcs = compute_integration_test_errors( @@ -113,9 +111,7 @@ def integrate(*args, **kwargs): filter_test_functions=lambda x: x.is_integrand_1d, ) - print( - f"1D Simpson JIT Test passed. N: {N}, backend: {backend}, Errors: {errors}" - ) + print(f"1D Simpson JIT Test passed. N: {N}, backend: {backend}, Errors: {errors}") for err, test_function in zip(errors, funcs): assert test_function.get_order() > 3 or ( err < 3e-11 if test_function.is_integrand_1d else err < 6e-10 @@ -123,9 +119,7 @@ def integrate(*args, **kwargs): for error in errors: assert error < 1e-7 - jit_integrate = ( - None # set to None again so can be re-used with new integrand shape - ) + jit_integrate = None # set to None again so can be re-used with new integrand shape errors, funcs = compute_integration_test_errors( integrate, @@ -149,9 +143,7 @@ def integrate(*args, **kwargs): test_integrate_numpy = setup_test_for_backend(_run_simpson_tests, "numpy", "float64") test_integrate_torch = setup_test_for_backend(_run_simpson_tests, "torch", "float64") test_integrate_jax = setup_test_for_backend(_run_simpson_tests, "jax", "float64") -test_integrate_tensorflow = setup_test_for_backend( - _run_simpson_tests, "tensorflow", "float64" -) +test_integrate_tensorflow = setup_test_for_backend(_run_simpson_tests, "tensorflow", "float64") if __name__ == "__main__": diff --git a/torchquad/tests/trapezoid_test.py b/torchquad/tests/trapezoid_test.py index 086cbdb7..de67f2a5 100644 --- a/torchquad/tests/trapezoid_test.py +++ b/torchquad/tests/trapezoid_test.py @@ -96,9 +96,7 @@ def integrate(*args, **kwargs): # which is then re-used on all other integrations (as is the point of JIT). nonlocal jit_integrate if jit_integrate is None: - jit_integrate = tp.get_jit_compiled_integrate( - dim=1, N=N, backend=backend - ) + jit_integrate = tp.get_jit_compiled_integrate(dim=1, N=N, backend=backend) return jit_integrate(*args, **kwargs) errors, funcs = compute_integration_test_errors( @@ -120,9 +118,7 @@ def integrate(*args, **kwargs): for error in errors: assert error < 1e-5 - jit_integrate = ( - None # set to None again so can be re-used with new integrand shape - ) + jit_integrate = None # set to None again so can be re-used with new integrand shape errors, funcs = compute_integration_test_errors( integrate, @@ -146,9 +142,7 @@ def integrate(*args, **kwargs): test_integrate_numpy = setup_test_for_backend(_run_trapezoid_tests, "numpy", "float64") test_integrate_torch = setup_test_for_backend(_run_trapezoid_tests, "torch", "float64") test_integrate_jax = setup_test_for_backend(_run_trapezoid_tests, "jax", "float64") -test_integrate_tensorflow = setup_test_for_backend( - _run_trapezoid_tests, "tensorflow", "float64" -) +test_integrate_tensorflow = setup_test_for_backend(_run_trapezoid_tests, "tensorflow", "float64") if __name__ == "__main__": diff --git a/torchquad/tests/utils_integration_test.py b/torchquad/tests/utils_integration_test.py index ad35de41..3d7c5302 100644 --- a/torchquad/tests/utils_integration_test.py +++ b/torchquad/tests/utils_integration_test.py @@ -63,9 +63,7 @@ def _run_linspace_with_grads_tests(dtype_name, backend, requires_grad): dtype_backend = to_backend_dtype(dtype_name, like=backend) start = anp.array(-2.0, like=backend, dtype=dtype_backend) stop = anp.array(-1.0, like=backend, dtype=dtype_backend) - assert ( - get_dtype_name(start) == dtype_name - ), "Unexpected dtype for the configured precision" + assert get_dtype_name(start) == dtype_name, "Unexpected dtype for the configured precision" grid1d = _linspace_with_grads(start, stop, 10, requires_grad) # Test if the backend, dtype and shape match assert infer_backend(grid1d) == backend @@ -130,9 +128,7 @@ def _run_setup_integration_domain_tests(dtype_name, backend): """ Test _setup_integration_domain with the given dtype and numerical backend """ - print( - f"Testing _setup_integration_domain; backend: {backend}, precision: {dtype_name}" - ) + print(f"Testing _setup_integration_domain; backend: {backend}, precision: {dtype_name}") # Domain given as List with Python floats domain = _setup_integration_domain(2, [[0.0, 1.0], [1.0, 2.0]], backend) @@ -157,17 +153,13 @@ def _run_setup_integration_domain_tests(dtype_name, backend): # User-specified domain dtype_backend = to_backend_dtype(dtype_name, like=backend) - custom_domain = anp.array( - [[0.0, 1.0], [1.0, 2.0]], like=backend, dtype=dtype_backend - ) + custom_domain = anp.array([[0.0, 1.0], [1.0, 2.0]], like=backend, dtype=dtype_backend) domain = _setup_integration_domain(2, custom_domain, None) assert domain.shape == custom_domain.shape assert domain.dtype == custom_domain.dtype # Backend specified with both backend and integration_domain parameters - custom_np_domain = anp.array( - [[0.0, 1.0], [1.0, 2.0]], like="numpy", dtype="float16" - ) + custom_np_domain = anp.array([[0.0, 1.0], [1.0, 2.0]], like="numpy", dtype="float16") domain = _setup_integration_domain(2, custom_np_domain, backend) assert ( infer_backend(domain) == backend @@ -203,14 +195,10 @@ def _run_is_compiling_tests(dtype_name, backend): """ dtype = to_backend_dtype(dtype_name, like=backend) x = anp.array([[0.0, 1.0], [1.0, 2.0]], dtype=dtype, like=backend) - assert not _is_compiling( - x - ), f"_is_compiling has a false positive with backend {backend}" + assert not _is_compiling(x), f"_is_compiling has a false positive with backend {backend}" def check_compiling(x): - assert _is_compiling( - x - ), f"_is_compiling has a false negative with backend {backend}" + assert _is_compiling(x), f"_is_compiling has a false negative with backend {backend}" return x if backend == "jax": diff --git a/torchquad/tests/vegas_map_test.py b/torchquad/tests/vegas_map_test.py index 7448c746..e846c3b3 100644 --- a/torchquad/tests/vegas_map_test.py +++ b/torchquad/tests/vegas_map_test.py @@ -101,18 +101,14 @@ def _run_vegas_map_checks(backend, dtype_name): like=backend, ) smoothed_weights = VEGASMap._smooth_map(weights, counts, alpha) - _check_tensor_similarity( - smoothed_weights, smoothed_weights_expected, 3e-7, dtype_float - ) + _check_tensor_similarity(smoothed_weights, smoothed_weights_expected, 3e-7, dtype_float) # Test if vegasmap.update_map changes the edge locations and distances # correctly vegasmap.update_map() # The outermost edge locations must match the domain [0,1]^dim unit_domain = anp.array([[0.0, 1.0]] * dim, dtype=dtype_float, like=backend) - _check_tensor_similarity( - vegasmap.x_edges[:, [0, -1]], unit_domain, 0.0, dtype_float - ) + _check_tensor_similarity(vegasmap.x_edges[:, [0, -1]], unit_domain, 0.0, dtype_float) assert vegasmap.x_edges.shape == (dim, N_intervals + 1), "Invalid number of edges" assert vegasmap.dx_edges.shape == ( dim, @@ -136,18 +132,10 @@ def _run_vegas_map_checks(backend, dtype_name): assert anp.max(anp.abs(x[0])) == 0.0, "Boundary point was remapped" -test_vegas_map_numpy_f32 = setup_test_for_backend( - _run_vegas_map_checks, "numpy", "float32" -) -test_vegas_map_numpy_f64 = setup_test_for_backend( - _run_vegas_map_checks, "numpy", "float64" -) -test_vegas_map_torch_f32 = setup_test_for_backend( - _run_vegas_map_checks, "torch", "float32" -) -test_vegas_map_torch_f64 = setup_test_for_backend( - _run_vegas_map_checks, "torch", "float64" -) +test_vegas_map_numpy_f32 = setup_test_for_backend(_run_vegas_map_checks, "numpy", "float32") +test_vegas_map_numpy_f64 = setup_test_for_backend(_run_vegas_map_checks, "numpy", "float64") +test_vegas_map_torch_f32 = setup_test_for_backend(_run_vegas_map_checks, "torch", "float32") +test_vegas_map_torch_f64 = setup_test_for_backend(_run_vegas_map_checks, "torch", "float64") if __name__ == "__main__": diff --git a/torchquad/tests/vegas_stratification_test.py b/torchquad/tests/vegas_stratification_test.py index 1c721358..59f1b6d5 100644 --- a/torchquad/tests/vegas_stratification_test.py +++ b/torchquad/tests/vegas_stratification_test.py @@ -47,9 +47,7 @@ def _run_vegas_stratification_checks(backend, dtype_name): assert jf.dtype == jf2.dtype == dtype_float assert jf.shape == jf2.shape == (strat.N_cubes,) assert anp.min(jf2) >= 0.0, "Sums of squared values should be non-negative" - assert ( - anp.min(jf**2 - jf2) >= 0.0 - ), "Squared sums should be bigger than summed squares" + assert anp.min(jf**2 - jf2) >= 0.0, "Squared sums should be bigger than summed squares" # Test the dampened sample counts update strat.update_DH() diff --git a/torchquad/tests/vegas_test.py b/torchquad/tests/vegas_test.py index 9ed8fc37..f66e1ded 100644 --- a/torchquad/tests/vegas_test.py +++ b/torchquad/tests/vegas_test.py @@ -79,9 +79,7 @@ def _run_vegas_accuracy_checks(backend, dtype_name): integrator = VEGAS() print("Integrating a function with a single peak") - integration_domain = anp.array( - [[1.0, 5.0], [-4.0, 4.0], [2.0, 6.0]], dtype=dtype, like=backend - ) + integration_domain = anp.array([[1.0, 5.0], [-4.0, 4.0], [2.0, 6.0]], dtype=dtype, like=backend) dim = integration_domain.shape[0] def integrand_hypercube_peak(x): @@ -92,9 +90,7 @@ def integrand_hypercube_peak(x): # to zero for all passed points return astype(in_cube, dtype_name) + 0.001 - reference_integral = ( - anp.prod(integration_domain[:, 1] - integration_domain[:, 0]) * 0.001 + 1.0 - ) + reference_integral = anp.prod(integration_domain[:, 1] - integration_domain[:, 0]) * 0.001 + 1.0 # Use multiple seeds to reduce luck for seed in [0, 1, 2, 3, 41317]: @@ -154,18 +150,14 @@ class ModifiedRNG(RNG): def __init__(self, *args, **kargs): super().__init__(*args, **kargs) rng_uniform = self.uniform - self.uniform = lambda *args, **kargs: self.modify_numbers( - rng_uniform(*args, **kargs) - ) + self.uniform = lambda *args, **kargs: self.modify_numbers(rng_uniform(*args, **kargs)) def modify_numbers(self, numbers): """Change the randomly generated numbers""" zeros = anp.zeros(numbers.shape, dtype=numbers.dtype, like=numbers) ones = anp.ones(numbers.shape, dtype=numbers.dtype, like=numbers) # Replace half of the random values randomly with 0.0 or 1.0 - return anp.where( - numbers < 0.5, numbers * 2.0, anp.where(numbers < 0.75, zeros, ones) - ) + return anp.where(numbers < 0.5, numbers * 2.0, anp.where(numbers < 0.75, zeros, ones)) def _run_vegas_special_case_checks(backend, dtype_name): diff --git a/torchquad/utils/enable_cuda.py b/torchquad/utils/enable_cuda.py index 6174459f..2a26c18d 100644 --- a/torchquad/utils/enable_cuda.py +++ b/torchquad/utils/enable_cuda.py @@ -20,6 +20,4 @@ def enable_cuda(data_type="float32"): if data_type is not None: set_precision(data_type) else: - logger.warning( - "Error enabling CUDA. cuda.is_available() returned False. CPU will be used." - ) + logger.warning("Error enabling CUDA. cuda.is_available() returned False. CPU will be used.") diff --git a/torchquad/utils/set_precision.py b/torchquad/utils/set_precision.py index b551aee6..23fd1286 100644 --- a/torchquad/utils/set_precision.py +++ b/torchquad/utils/set_precision.py @@ -29,9 +29,7 @@ def set_precision(data_type="float32", backend="torch"): """ # Backwards-compatibility: allow "float" and "double", optionally with # upper-case letters - data_type = {"float": "float32", "double": "float64"}.get( - data_type.lower(), data_type - ) + data_type = {"float": "float32", "double": "float64"}.get(data_type.lower(), data_type) if data_type not in ["float32", "float64"]: logger.error( f'Invalid data type "{data_type}". Only float32 and float64 are supported. Setting the data type to float32.' @@ -48,9 +46,7 @@ def set_precision(data_type="float32", backend="torch"): ("float32", False): (torch.FloatTensor, "Float32"), ("float64", False): (torch.DoubleTensor, "Float64"), }[(data_type, cuda_enabled)] - cuda_enabled_info = ( - "CUDA is initialized" if cuda_enabled else "CUDA not initialized" - ) + cuda_enabled_info = "CUDA is initialized" if cuda_enabled else "CUDA not initialized" logger.info( f"Setting Torch's default tensor type to {tensor_dtype_name} ({cuda_enabled_info})." ) From a4a65ea1967eb71dce220016f5dc9ab84afdeb77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20G=C3=B3mez?= Date: Sun, 27 Jul 2025 07:17:45 +0200 Subject: [PATCH 02/40] cleaning up workflow --- .github/workflows/autoblack.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/autoblack.yml b/.github/workflows/autoblack.yml index d14b407b..77085525 100644 --- a/.github/workflows/autoblack.yml +++ b/.github/workflows/autoblack.yml @@ -1,9 +1,4 @@ -# GitHub Action that uses Black to reformat the Python code in an incoming pull request. -# If all Python code in the pull request is compliant with Black then this Action does nothing. -# Othewrwise, Black is run and its changes are committed back to the incoming pull request. -# https://github.com/cclauss/autoblack - -name: autoblack +name: check_formatting on: [pull_request] jobs: build: From 69fc67b81ee3ae2ca5b0fe9af5b3769031dbd69a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20G=C3=B3mez?= Date: Sun, 27 Jul 2025 08:06:45 +0200 Subject: [PATCH 03/40] gitignoring claude things --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index b71e09ce..f2764c75 100644 --- a/.gitignore +++ b/.gitignore @@ -134,3 +134,4 @@ pytest-coverage.txt pytest.xml CLAUDE.md claude_docs +.claude/ From e317fc027b2599e0607343daabc64e257eebd49b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20G=C3=B3mez?= Date: Sun, 27 Jul 2025 08:07:18 +0200 Subject: [PATCH 04/40] Update test instructions --- .github/workflows/run_tests.yml | 8 ++++---- README.md | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/run_tests.yml b/.github/workflows/run_tests.yml index 00fecde7..ff8abd16 100644 --- a/.github/workflows/run_tests.yml +++ b/.github/workflows/run_tests.yml @@ -54,17 +54,17 @@ jobs: shell: bash -l {0} run: | micromamba activate torchquad - cd torchquad/tests/ + cd tests/ pip install pytest pip install pytest-error-for-skips pip install pytest-cov - pytest -ra --error-for-skips --junitxml=pytest.xml --cov-report=term-missing:skip-covered --cov=../../torchquad . | tee pytest-coverage.txt + pytest -ra --error-for-skips --junitxml=pytest.xml --cov-report=term-missing:skip-covered --cov=../torchquad . | tee pytest-coverage.txt - name: pytest coverage comment uses: MishaKav/pytest-coverage-comment@main if: github.event_name == 'pull_request' continue-on-error: true with: - pytest-coverage-path: ./torchquad/tests/pytest-coverage.txt + pytest-coverage-path: ./tests/pytest-coverage.txt title: Coverage Report badge-title: Overall Coverage hide-badge: false @@ -72,4 +72,4 @@ jobs: create-new-comment: false hide-comment: false report-only-changed-files: false - junitxml-path: ./torchquad/tests/pytest.xml + junitxml-path: ./tests/pytest.xml diff --git a/README.md b/README.md index dc1d62c2..0e098eb6 100644 --- a/README.md +++ b/README.md @@ -148,9 +148,10 @@ import torchquad torchquad._deployment_test() ``` -After cloning the repository, developers can check the functionality of `torchquad` by running the following command in the `torchquad/tests` directory: +After cloning the repository, developers can check the functionality of `torchquad` by running ```sh +pip install -e . pytest ``` From b25df6ef86a711a26eb752d3cd5fdc417a4847ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20G=C3=B3mez?= Date: Sun, 27 Jul 2025 08:07:42 +0200 Subject: [PATCH 05/40] moving tests outside the module --- {torchquad/tests => tests}/boole_test.py | 6 +----- {torchquad/tests => tests}/gauss_test.py | 6 +----- {torchquad/tests => tests}/gradient_test.py | 16 ++++++---------- {torchquad/tests => tests}/helper_functions.py | 4 ++-- .../tests => tests}/integration_grid_test.py | 6 +++--- .../integration_test_functions.py | 6 +----- .../tests => tests}/integrator_types_test.py | 16 ++++++---------- {torchquad/tests => tests}/monte_carlo_test.py | 6 +----- {torchquad/tests => tests}/rng_test.py | 6 +----- {torchquad/tests => tests}/simpson_test.py | 6 +----- {torchquad/tests => tests}/trapezoid_test.py | 6 +----- .../tests => tests}/utils_integration_test.py | 10 +++------- {torchquad/tests => tests}/vegas_map_test.py | 6 +----- .../tests => tests}/vegas_stratification_test.py | 8 ++------ {torchquad/tests => tests}/vegas_test.py | 8 ++------ 15 files changed, 32 insertions(+), 84 deletions(-) rename {torchquad/tests => tests}/boole_test.py (98%) rename {torchquad/tests => tests}/gauss_test.py (98%) rename {torchquad/tests => tests}/gradient_test.py (96%) rename {torchquad/tests => tests}/helper_functions.py (99%) rename {torchquad/tests => tests}/integration_grid_test.py (96%) rename {torchquad/tests => tests}/integration_test_functions.py (99%) rename {torchquad/tests => tests}/integrator_types_test.py (93%) mode change 100755 => 100644 rename {torchquad/tests => tests}/monte_carlo_test.py (98%) rename {torchquad/tests => tests}/rng_test.py (97%) rename {torchquad/tests => tests}/simpson_test.py (98%) rename {torchquad/tests => tests}/trapezoid_test.py (98%) rename {torchquad/tests => tests}/utils_integration_test.py (98%) rename {torchquad/tests => tests}/vegas_map_test.py (98%) rename {torchquad/tests => tests}/vegas_stratification_test.py (96%) rename {torchquad/tests => tests}/vegas_test.py (98%) diff --git a/torchquad/tests/boole_test.py b/tests/boole_test.py similarity index 98% rename from torchquad/tests/boole_test.py rename to tests/boole_test.py index ea1554c8..e06f2718 100644 --- a/torchquad/tests/boole_test.py +++ b/tests/boole_test.py @@ -1,10 +1,6 @@ -import sys - -sys.path.append("../") - import warnings -from integration.boole import Boole +from torchquad.integration.boole import Boole from helper_functions import ( compute_integration_test_errors, setup_test_for_backend, diff --git a/torchquad/tests/gauss_test.py b/tests/gauss_test.py similarity index 98% rename from torchquad/tests/gauss_test.py rename to tests/gauss_test.py index 6a054407..3f156a7f 100644 --- a/torchquad/tests/gauss_test.py +++ b/tests/gauss_test.py @@ -1,8 +1,4 @@ -import sys - -sys.path.append("../") - -from integration.gaussian import GaussLegendre +from torchquad.integration.gaussian import GaussLegendre from helper_functions import ( compute_integration_test_errors, setup_test_for_backend, diff --git a/torchquad/tests/gradient_test.py b/tests/gradient_test.py similarity index 96% rename from torchquad/tests/gradient_test.py rename to tests/gradient_test.py index ff9f3198..14a3a8da 100644 --- a/torchquad/tests/gradient_test.py +++ b/tests/gradient_test.py @@ -1,17 +1,13 @@ -import sys - -sys.path.append("../") - from autoray import numpy as anp from autoray import to_numpy, to_backend_dtype, get_dtype_name import numpy as np -from integration.vegas import VEGAS -from integration.monte_carlo import MonteCarlo -from integration.trapezoid import Trapezoid -from integration.simpson import Simpson -from integration.boole import Boole -from integration.gaussian import GaussLegendre +from torchquad.integration.vegas import VEGAS +from torchquad.integration.monte_carlo import MonteCarlo +from torchquad.integration.trapezoid import Trapezoid +from torchquad.integration.simpson import Simpson +from torchquad.integration.boole import Boole +from torchquad.integration.gaussian import GaussLegendre from helper_functions import setup_test_for_backend diff --git a/torchquad/tests/helper_functions.py b/tests/helper_functions.py similarity index 99% rename from torchquad/tests/helper_functions.py rename to tests/helper_functions.py index 610e4621..3924cba6 100644 --- a/torchquad/tests/helper_functions.py +++ b/tests/helper_functions.py @@ -4,8 +4,8 @@ import autoray as ar from integration_test_functions import Polynomial, Exponential, Sinusoid -from utils.set_up_backend import set_up_backend -from utils.set_log_level import set_log_level +from torchquad.utils.set_up_backend import set_up_backend +from torchquad.utils.set_log_level import set_log_level def get_test_functions(integration_dim, backend, use_multi_dim_integrand): diff --git a/torchquad/tests/integration_grid_test.py b/tests/integration_grid_test.py similarity index 96% rename from torchquad/tests/integration_grid_test.py rename to tests/integration_grid_test.py index fb9f0324..3a460a31 100644 --- a/torchquad/tests/integration_grid_test.py +++ b/tests/integration_grid_test.py @@ -7,9 +7,9 @@ from autoray import numpy as anp from autoray import to_backend_dtype import autoray as ar -from integration.integration_grid import IntegrationGrid -from integration.grid_integrator import GridIntegrator -from integration.utils import _linspace_with_grads +from torchquad.integration.integration_grid import IntegrationGrid +from torchquad.integration.grid_integrator import GridIntegrator +from torchquad.integration.utils import _linspace_with_grads from helper_functions import setup_test_for_backend diff --git a/torchquad/tests/integration_test_functions.py b/tests/integration_test_functions.py similarity index 99% rename from torchquad/tests/integration_test_functions.py rename to tests/integration_test_functions.py index 5dbfa7d7..d9a31d1f 100644 --- a/torchquad/tests/integration_test_functions.py +++ b/tests/integration_test_functions.py @@ -1,13 +1,9 @@ -import sys - -sys.path.append("../") - from autoray import numpy as anp from autoray import infer_backend from numpy import inf from loguru import logger -from integration.utils import _setup_integration_domain +from torchquad.integration.utils import _setup_integration_domain class IntegrationTestFunction: diff --git a/torchquad/tests/integrator_types_test.py b/tests/integrator_types_test.py old mode 100755 new mode 100644 similarity index 93% rename from torchquad/tests/integrator_types_test.py rename to tests/integrator_types_test.py index c74aa94e..49671ae2 --- a/torchquad/tests/integrator_types_test.py +++ b/tests/integrator_types_test.py @@ -3,20 +3,16 @@ Additional integration tests to check if dtypes, shapes and similar backend-specific properties """ -import sys - -sys.path.append("../") - from autoray import numpy as anp from autoray import infer_backend, get_dtype_name, to_backend_dtype from itertools import product -from integration.trapezoid import Trapezoid -from integration.simpson import Simpson -from integration.boole import Boole -from integration.monte_carlo import MonteCarlo -from integration.vegas import VEGAS -from utils.set_precision import set_precision +from torchquad.integration.trapezoid import Trapezoid +from torchquad.integration.simpson import Simpson +from torchquad.integration.boole import Boole +from torchquad.integration.monte_carlo import MonteCarlo +from torchquad.integration.vegas import VEGAS +from torchquad.utils.set_precision import set_precision from helper_functions import setup_test_for_backend diff --git a/torchquad/tests/monte_carlo_test.py b/tests/monte_carlo_test.py similarity index 98% rename from torchquad/tests/monte_carlo_test.py rename to tests/monte_carlo_test.py index ef4ab8ef..a94c470b 100644 --- a/torchquad/tests/monte_carlo_test.py +++ b/tests/monte_carlo_test.py @@ -1,8 +1,4 @@ -import sys - -sys.path.append("../") - -from integration.monte_carlo import MonteCarlo +from torchquad.integration.monte_carlo import MonteCarlo from helper_functions import ( compute_integration_test_errors, setup_test_for_backend, diff --git a/torchquad/tests/rng_test.py b/tests/rng_test.py similarity index 97% rename from torchquad/tests/rng_test.py rename to tests/rng_test.py index 27a4dff0..93ae0f45 100644 --- a/torchquad/tests/rng_test.py +++ b/tests/rng_test.py @@ -1,11 +1,7 @@ -import sys - -sys.path.append("../") - from autoray import numpy as anp from autoray import infer_backend, get_dtype_name, to_backend_dtype, to_numpy -from integration.rng import RNG +from torchquad.integration.rng import RNG from helper_functions import setup_test_for_backend diff --git a/torchquad/tests/simpson_test.py b/tests/simpson_test.py similarity index 98% rename from torchquad/tests/simpson_test.py rename to tests/simpson_test.py index 9bec6b2e..ce4b8abb 100644 --- a/torchquad/tests/simpson_test.py +++ b/tests/simpson_test.py @@ -1,10 +1,6 @@ -import sys - -sys.path.append("../") - import warnings -from integration.simpson import Simpson +from torchquad.integration.simpson import Simpson from helper_functions import ( compute_integration_test_errors, setup_test_for_backend, diff --git a/torchquad/tests/trapezoid_test.py b/tests/trapezoid_test.py similarity index 98% rename from torchquad/tests/trapezoid_test.py rename to tests/trapezoid_test.py index de67f2a5..2b819993 100644 --- a/torchquad/tests/trapezoid_test.py +++ b/tests/trapezoid_test.py @@ -1,8 +1,4 @@ -import sys - -sys.path.append("../") - -from integration.trapezoid import Trapezoid +from torchquad.integration.trapezoid import Trapezoid from helper_functions import ( compute_integration_test_errors, setup_test_for_backend, diff --git a/torchquad/tests/utils_integration_test.py b/tests/utils_integration_test.py similarity index 98% rename from torchquad/tests/utils_integration_test.py rename to tests/utils_integration_test.py index 3d7c5302..77c89e0b 100644 --- a/torchquad/tests/utils_integration_test.py +++ b/tests/utils_integration_test.py @@ -1,21 +1,17 @@ -import sys - -sys.path.append("../") - from autoray import numpy as anp from autoray import infer_backend, get_dtype_name, to_backend_dtype import importlib import pytest import warnings -from integration.utils import ( +from torchquad.integration.utils import ( _linspace_with_grads, _add_at_indices, _setup_integration_domain, _is_compiling, ) -from utils.set_precision import set_precision -from utils.enable_cuda import enable_cuda +from torchquad.utils.set_precision import set_precision +from torchquad.utils.enable_cuda import enable_cuda def _run_tests_with_all_backends(func, func_extra_args=[{}]): diff --git a/torchquad/tests/vegas_map_test.py b/tests/vegas_map_test.py similarity index 98% rename from torchquad/tests/vegas_map_test.py rename to tests/vegas_map_test.py index e846c3b3..3efb8b4a 100644 --- a/torchquad/tests/vegas_map_test.py +++ b/tests/vegas_map_test.py @@ -1,11 +1,7 @@ -import sys - -sys.path.append("../") - from autoray import numpy as anp from autoray import to_backend_dtype -from integration.vegas_map import VEGASMap +from torchquad.integration.vegas_map import VEGASMap from helper_functions import setup_test_for_backend diff --git a/torchquad/tests/vegas_stratification_test.py b/tests/vegas_stratification_test.py similarity index 96% rename from torchquad/tests/vegas_stratification_test.py rename to tests/vegas_stratification_test.py index 59f1b6d5..d82622f9 100644 --- a/torchquad/tests/vegas_stratification_test.py +++ b/tests/vegas_stratification_test.py @@ -1,12 +1,8 @@ -import sys - -sys.path.append("../") - from autoray import numpy as anp from autoray import to_backend_dtype -from integration.rng import RNG -from integration.vegas_stratification import VEGASStratification +from torchquad.integration.rng import RNG +from torchquad.integration.vegas_stratification import VEGASStratification from helper_functions import setup_test_for_backend diff --git a/torchquad/tests/vegas_test.py b/tests/vegas_test.py similarity index 98% rename from torchquad/tests/vegas_test.py rename to tests/vegas_test.py index f66e1ded..01d3d37e 100644 --- a/torchquad/tests/vegas_test.py +++ b/tests/vegas_test.py @@ -1,7 +1,3 @@ -import sys - -sys.path.append("../") - from autoray import numpy as anp from autoray import to_backend_dtype, astype import timeit @@ -9,8 +5,8 @@ import pstats from unittest.mock import patch -from integration.vegas import VEGAS -from integration.rng import RNG +from torchquad.integration.vegas import VEGAS +from torchquad.integration.rng import RNG from helper_functions import ( compute_integration_test_errors, From 5aa530d02a540e62e14e212140d1f63a7022b770 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20G=C3=B3mez?= Date: Sun, 27 Jul 2025 08:11:46 +0200 Subject: [PATCH 06/40] fixing vegas test --- tests/vegas_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/vegas_test.py b/tests/vegas_test.py index 01d3d37e..06d9af59 100644 --- a/tests/vegas_test.py +++ b/tests/vegas_test.py @@ -186,7 +186,7 @@ def _run_vegas_special_case_checks(backend, dtype_name): print("Testing VEGAS with random numbers which are 0.0 and 1.0") # This test may be helpful to detect rounding and indexing errors which # would happen with a low probability with the usual RNG - with patch("integration.vegas.RNG", ModifiedRNG): + with patch("torchquad.integration.vegas.RNG", ModifiedRNG): integral = integrator.integrate( lambda x: anp.sum(x, axis=1), 2, From dc4c4ef5aaf566c2885981b27f77568066b1df8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20G=C3=B3mez?= Date: Sun, 27 Jul 2025 21:56:17 +0200 Subject: [PATCH 07/40] Adding docs for parametrizing integration domain --- docs/source/tutorial.rst | 216 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 215 insertions(+), 1 deletion(-) diff --git a/docs/source/tutorial.rst b/docs/source/tutorial.rst index 9d1c8ff5..584be6ac 100644 --- a/docs/source/tutorial.rst +++ b/docs/source/tutorial.rst @@ -106,7 +106,9 @@ the following way: 4. Information on how to select a numerical backend 5. Example showing how gradients can be obtained w.r.t. the integration domain with PyTorch 6. Methods to speed up the integration -7. Custom Integrators +7. Multidimensional/Vectorized Integrands +8. Parametric Integration with Variable Domains +9. Custom Integrators Feel free to test the code on your own computer as we go along. @@ -769,6 +771,218 @@ Now let's see how to do this a bit more simply, and in a way that provides signf .. note:: VEGAS does not support multi-dimensional integrands. If you would like this, please consider opening an issue or PR. +Parametric Integration with Variable Domains +-------------------------------------------- + +Sometimes you need to perform multiple integrations where both the integrand and the integration domain depend on parameters. This is particularly useful in applications where you need to compute integrals for many different parameter values simultaneously. + +For example, you might want to compute: + +.. math:: + + I(a, b) = \\int_{a}^{b} f(x, a, b) dx + +for multiple values of :math:`a` and :math:`b` simultaneously. + +Currently, torchquad doesn't have built-in support for parametric domains, but you can extend the existing integrators to handle this case. Below is an example of how to create a custom integrator that supports batch 1D integration with variable domains: + +.. code:: ipython3 + + import torch + from loguru import logger + from autoray import numpy as anp + from autoray import infer_backend + from torchquad import Gaussian + + + class Batch1DIntegrator(Gaussian): + """Custom integrator for batch 1D integration with variable domains. + + This integrator can compute multiple integrals with different domains + in a single call, providing significant speedup over sequential computation. + """ + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.disable_integration_domain_check = True + + def _resize_roots(self, integration_domain, roots): + """Resize roots for batched integration domains. + + Args: + integration_domain: Shape [batch_size, 2] for multiple domains + roots: Shape [N] - the Gaussian quadrature nodes + + Returns: + Resized roots with shape [batch_size, N] + """ + if integration_domain.ndim == 1: + # Single domain case - use parent implementation + return super()._resize_roots(integration_domain, roots) + + # Batch case + assert roots.ndim == 1 + assert integration_domain.ndim == 2 + assert integration_domain.shape[-1] == 2 + + roots = roots.to(integration_domain.device) + + # Extract bounds for all domains + a = integration_domain[:, 0:1] # Shape [batch_size, 1] + b = integration_domain[:, 1:2] # Shape [batch_size, 1] + + # Broadcast and transform roots for each domain + roots_expanded = roots.unsqueeze(0) # [1, N] + + # Transform from [-1, 1] to [a, b] for each domain + out = ((b - a) / 2) * roots_expanded + ((a + b) / 2) # [batch_size, N] + + return out + + def integrate(self, fn, dim, N, integration_domain=None, backend="torch"): + """Integrate function over multiple domains in a single call. + + Args: + fn: Function to integrate + dim: Must be 1 for this implementation + N: Number of quadrature points + integration_domain: Shape [batch_size, 2] for batch integration + backend: Must be "torch" + + Returns: + Tensor of shape [batch_size] with integral results + """ + assert dim == 1 + assert backend == "torch" + + if integration_domain.ndim == 1: + integration_domain = integration_domain.reshape(1, 2) + + batch_size = integration_domain.shape[0] + + # Get Gaussian quadrature points and weights + N = self._adjust_N(dim=1, N=N) + roots = self._roots(N, backend, integration_domain.requires_grad) + weights = self._weights(N, dim, backend) + + # Resize roots for all domains at once + grid_points = self._resize_roots(integration_domain, roots) # [batch_size, N] + + # Evaluate integrand at all points + # Flatten for function evaluation: [batch_size * N, 1] + points_flat = grid_points.reshape(-1, 1) + function_values = fn(points_flat) # [batch_size * N] + + # Reshape back to [batch_size, N] + function_values = function_values.reshape(batch_size, N) + + # Apply weights and sum for each domain + weighted_values = function_values * weights.unsqueeze(0) + + # Scale by domain width and sum + domain_widths = (integration_domain[:, 1] - integration_domain[:, 0]) / 2 + results = domain_widths * weighted_values.sum(dim=1) + + return results + +Now let's see a concrete example of using this for parametric integration: + +.. code:: ipython3 + + # Example 1: Compute multiple integrals in ONE call + # I(a) = integral from 0 to a of x^2 dx = a^3/3 + # for a = 1, 2, 3, 4, 5 + + def integrand(x): + # x has shape [batch_size * N, 1] where N is the number of quadrature points + return x[:, 0] ** 2 + + # Create multiple integration domains + upper_bounds = torch.tensor([1.0, 2.0, 3.0, 4.0, 5.0]) + domains = torch.stack([torch.zeros_like(upper_bounds), upper_bounds], dim=1) + print(f"Integration domains shape: {domains.shape}") + print(f"Domains:\n{domains}") + + # Initialize the batch integrator + batch_integrator = Batch1DIntegrator() + + # Compute ALL integrals in ONE call - this is the key difference! + results = batch_integrator.integrate(integrand, dim=1, N=50, integration_domain=domains) + + # Analytical solution: a^3/3 + analytical = upper_bounds ** 3 / 3 + + print(f"\nResults shape: {results.shape}") + print(f"Numerical results: {results}") + print(f"Analytical results: {analytical}") + print(f"Absolute errors: {torch.abs(results - analytical)}") + +Output: + +.. parsed-literal:: + + Integration domains shape: torch.Size([5, 2]) + Domains: + tensor([[0., 1.], + [0., 2.], + [0., 3.], + [0., 4.], + [0., 5.]]) + + Results shape: torch.Size([5]) + Numerical results: tensor([ 0.3333, 2.6667, 9.0000, 21.3333, 41.6667]) + Analytical results: tensor([ 0.3333, 2.6667, 9.0000, 21.3333, 41.6667]) + Absolute errors: tensor([9.9341e-09, 7.9473e-08, 1.7764e-14, 6.3578e-07, 1.2716e-06]) + +The key advantage of this approach is that all integrals are computed in a single vectorized operation, which can provide significant speedups: + +.. code:: ipython3 + + # Performance comparison - batch vs sequential + import time + from torchquad import GaussLegendre + + # Many domains + n_domains = 500 + many_upper_bounds = torch.linspace(0.1, 5.0, n_domains) + many_domains = torch.stack([torch.zeros(n_domains), many_upper_bounds], dim=1) + + # Batch computation + start = time.time() + batch_results = batch_integrator.integrate(integrand, dim=1, N=50, integration_domain=many_domains) + batch_time = time.time() - start + + # Sequential computation for comparison + standard_integrator = GaussLegendre() + start = time.time() + sequential_results = [] + for i in range(n_domains): + result = standard_integrator.integrate( + integrand, dim=1, N=50, + integration_domain=[[0.0, many_upper_bounds[i].item()]] + ) + sequential_results.append(result) + sequential_time = time.time() - start + + print(f"Computed {n_domains} integrals:") + print(f"Batch time: {batch_time:.4f} seconds") + print(f"Sequential time: {sequential_time:.4f} seconds") + print(f"Speedup: {sequential_time/batch_time:.2f}x") + +Output: + +.. parsed-literal:: + + Computed 500 integrals: + Batch time: 0.0010 seconds + Sequential time: 0.2289 seconds + Speedup: 228.90x + +This approach can be extended to more complex scenarios where both the integrand and the domain depend on parameters. The key insight is that by properly vectorizing the computation, we can achieve significant performance improvements over sequential integration. + +.. note:: + This implementation is specifically for 1D integrals. Extending it to higher dimensions would require more careful handling of the grid generation and result calculation. + Custom Integrators ------------------ From 770170f7a7ba7608b409cc174126de32e3006795 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20G=C3=B3mez?= Date: Sat, 2 Aug 2025 14:56:18 +0200 Subject: [PATCH 08/40] reworking benchmarks --- .gitignore | 1 - README.md | 41 +- benchmarking/benchmarking_cfg.toml | 81 ++ benchmarking/modular_benchmark.py | 892 +++++++++++++++++++++ benchmarking/plot_results.py | 505 ++++++++++++ resources/torchquad_convergence.png | Bin 89474 -> 482378 bytes resources/torchquad_runtime.png | Bin 80078 -> 0 bytes resources/torchquad_runtime_vs_error.png | Bin 0 -> 361139 bytes resources/torchquad_scaling_analysis.png | Bin 0 -> 303727 bytes resources/torchquad_vectorized_speedup.png | Bin 0 -> 297604 bytes 10 files changed, 1514 insertions(+), 6 deletions(-) create mode 100644 benchmarking/benchmarking_cfg.toml create mode 100644 benchmarking/modular_benchmark.py create mode 100644 benchmarking/plot_results.py delete mode 100644 resources/torchquad_runtime.png create mode 100644 resources/torchquad_runtime_vs_error.png create mode 100644 resources/torchquad_scaling_analysis.png create mode 100644 resources/torchquad_vectorized_speedup.png diff --git a/.gitignore b/.gitignore index f2764c75..a3c0f45b 100644 --- a/.gitignore +++ b/.gitignore @@ -133,5 +133,4 @@ my_notebooks pytest-coverage.txt pytest.xml CLAUDE.md -claude_docs .claude/ diff --git a/README.md b/README.md index 0e098eb6..5596c019 100644 --- a/README.md +++ b/README.md @@ -207,13 +207,44 @@ See the [open issues](https://github.com/esa/torchquad/issues) for a list of pro ## Performance -Using GPUs torchquad scales particularly well with integration methods that offer easy parallelization. For example, below you see error and runtime results for integrating the function `f(x,y,z) = sin(x * (y+1)²) * (z+1)` on a consumer-grade desktop PC. - -![](https://github.com/esa/torchquad/blob/main/resources/torchquad_runtime.png?raw=true) -*Runtime results of the integration. Note the far superior scaling on the GPU (solid line) in comparison to the CPU (dashed and dotted) for both methods.* +Using GPUs, torchquad scales particularly well with integration methods that offer easy parallelization. The benchmarks below demonstrate performance across challenging functions from 1D to 15D, comparing torchquad's GPU-accelerated methods against scipy's CPU implementations. +### Convergence Analysis ![](https://github.com/esa/torchquad/blob/main/resources/torchquad_convergence.png?raw=true) -*Convergence results of the integration. Note that Simpson quickly reaches floating point precision. Monte Carlo is not competitive here given the low dimensionality of the problem.* +*Convergence comparison using challenging test functions including discontinuous oscillatory (1D), multi-peak with ridges (3D), and high-dimensional problems. Note the superior scaling of GPU-accelerated methods for large evaluation counts.* + +### Runtime vs Error Efficiency +![](https://github.com/esa/torchquad/blob/main/resources/torchquad_runtime_vs_error.png?raw=true) +*Runtime vs error trade-offs showing torchquad's efficiency advantage. Lower-left positions indicate better performance (faster computation with lower error).* + +### Scaling Performance +![](https://github.com/esa/torchquad/blob/main/resources/torchquad_scaling_analysis.png?raw=true) +*Strong and weak scaling analysis demonstrating parallel efficiency across problem sizes and dimensions.* + +### Vectorized Integration Speedup +![](https://github.com/esa/torchquad/blob/main/resources/torchquad_vectorized_speedup.png?raw=true) +*Performance benefits of vectorized integrand evaluation for parameter sweeps, showing significant speedups for batch computations.* + +### Running Benchmarks + +To reproduce these benchmarks or test performance on your hardware: + +```bash +# Run modular benchmark for specific dimensions +python benchmarking/modular_benchmark.py --dimensions 1,3,7,15 + +# Generate plots from results +python benchmarking/plot_results.py + +# Configure benchmark parameters +# Edit benchmarking/benchmarking_cfg.toml to adjust: +# - Evaluation point ranges +# - Timeout limits +# - Method selection +# - scipy integration tolerances +``` + +**Hardware:** RTX 4060 Ti 16GB, i5-13400F, Precision: float32 ## Contributing diff --git a/benchmarking/benchmarking_cfg.toml b/benchmarking/benchmarking_cfg.toml new file mode 100644 index 00000000..0d41688a --- /dev/null +++ b/benchmarking/benchmarking_cfg.toml @@ -0,0 +1,81 @@ +# Benchmarking configuration for torchquad +# Adjust these parameters to control benchmark execution time and detail + +[general] +device_info = "RTX 4060 Ti 16GB, i5-13400F" +precision = "float32" +save_path = "resources" +log_level = "INFO" + +[convergence] +# Enable/disable specific dimensions +enable_1d = true +enable_3d = false +enable_7d = false +enable_15d = false + +# Reference calculation points (for MC reference) +reference_points_1d = 10_000_000 +reference_points_3d = 5_000_000 +reference_points_7d = 1_000_000 +reference_points_15d = 500_000 + +# Evaluation points for each dimension +# Adjust these to control execution time +[convergence.points_1d] +simpson = [10, 50, 100, 500, 1000, 5000, 10000, 50000, 100000] +gauss_legendre = [10, 50, 100, 500, 1000, 5000, 10000, 50000, 100000] +monte_carlo = [100, 1000, 10000, 50000, 100000, 500000, 1000000] +vegas = [100, 1000, 10000, 50000, 100000, 500000] +scipy_grids = [51, 251, 1001, 5001] + +[convergence.points_3d] +simpson = [27, 125, 512, 1000, 4096, 15625] +gauss_legendre = [27, 125, 512, 1000, 4096, 15625] +monte_carlo = [1000, 10000, 50000, 100000, 500000, 1000000] +vegas = [1000, 10000, 50000, 100000, 500000] + +[convergence.points_7d] +simpson = [128, 1024, 4096] # Limited for grid methods +gauss_legendre = [128, 1024, 4096] # Limited for grid methods +monte_carlo = [1000, 10000, 50000, 100000, 500000, 1000000] +vegas = [1000, 10000, 50000, 100000, 500000] + +[convergence.points_15d] +simpson = [] # Skip for 15D - too expensive +gauss_legendre = [] # Skip for 15D - too expensive +monte_carlo = [10000, 50000, 100000, 500000, 1000000] +vegas = [10000, 50000, 100000, 500000] + +[scaling] +# Strong scaling configuration +strong_batch_sizes = [10000, 25000, 50000, 100000, 150000, 250000, 500000] +strong_total_work_1d = 1_000_000 +strong_total_work_3d = 1_000_000 + +# Weak scaling configuration +weak_work_per_dim = [1_000_000, 100_000, 5_000] # For 1D, 3D, 7D +weak_mc_constant_work = 1_000_000 + +# Number of runs for error estimation +num_runs = 3 +warmup_runs = 1 + +[vectorized] +grid_sizes = [5, 20, 50, 100, 200] +num_runs = 3 +integration_points = 10001 + +[scipy] +# scipy integration tolerances for high dimensions +nquad_limit_1d = 200 +nquad_limit_3d = 20 +nquad_limit_7d = 10 +nquad_limit_15d = 5 +nquad_epsabs_15d = 1e-3 +nquad_epsrel_15d = 1e-3 + +[timeouts] +# Maximum time in seconds for each benchmark component +max_time_per_method = 300 # 5 minutes per method +max_time_total = 1800 # 30 minutes total diff --git a/benchmarking/modular_benchmark.py b/benchmarking/modular_benchmark.py new file mode 100644 index 00000000..6ba3158d --- /dev/null +++ b/benchmarking/modular_benchmark.py @@ -0,0 +1,892 @@ +#!/usr/bin/env python3 +""" +Modular torchquad benchmark with configuration support and incremental execution. + +This benchmark is designed to: +1. Load configuration from benchmarking_cfg.toml +2. Execute benchmarks incrementally by dimension +3. Provide detailed logging and timing information +4. Allow interruption and resumption of benchmarks +5. Support adjustable parameters for different hardware + +Usage: + python benchmarking/modular_benchmark.py [--config benchmarking_cfg.toml] [--dim 1,3,7,15] +""" + +import numpy as np +import torch +import time +import warnings +import logging +import argparse +from pathlib import Path +from scipy.integrate import quad, nquad + +try: + from scipy.integrate import trapezoid as trapz, simpson as simps +except ImportError: + from scipy.integrate import trapz, simps +from typing import Dict, List, Optional +import gc +import json + +try: + import toml +except ImportError: + # Fallback to basic TOML parsing if toml module not available + toml = None + +# torchquad imports +from torchquad import Simpson, GaussLegendre, MonteCarlo, VEGAS, enable_cuda +from torchquad.utils.set_precision import set_precision + + +class ModularBenchmark: + """Modular benchmarking suite with configuration support.""" + + def __init__(self, config_path: str = "benchmarking/benchmarking_cfg.toml"): + self.config = self.load_config(config_path) + self.save_path = Path(self.config["general"]["save_path"]) + self.save_path.mkdir(exist_ok=True) + self.setup_logging() + self.setup_backend() + + # Results storage + self.results = {} + self.timing_info = {} + + def load_config(self, config_path: str) -> dict: + """Load configuration from TOML file.""" + if toml is None: + print("TOML module not available. Using default configuration.") + return self.get_default_config() + + try: + with open(config_path, "r") as f: + config = toml.load(f) + print(f"Loaded configuration from {config_path}") + return config + except FileNotFoundError: + print(f"Configuration file {config_path} not found. Using defaults.") + return self.get_default_config() + except Exception as e: + print(f"Error loading config: {e}. Using defaults.") + return self.get_default_config() + + def get_default_config(self) -> dict: + """Return default configuration if TOML file not found.""" + return { + "general": { + "device_info": "Unknown GPU", + "precision": "float32", + "save_path": "resources", + "log_level": "INFO", + }, + "convergence": { + "enable_1d": True, + "enable_3d": True, + "enable_7d": True, + "enable_15d": True, + "reference_points_1d": 1000000, + "reference_points_3d": 2000000, + "reference_points_7d": 1000000, + "reference_points_15d": 500000, + "points_1d": { + "simpson": [10, 50, 100, 500, 1000, 5000], + "gauss_legendre": [10, 50, 100, 500, 1000, 5000], + "monte_carlo": [100, 1000, 10000, 50000, 100000], + "vegas": [100, 1000, 10000, 50000], + "scipy_grids": [51, 251, 1001], + }, + "points_3d": { + "simpson": [27, 125, 512, 1000, 4096], + "gauss_legendre": [27, 125, 512, 1000, 4096], + "monte_carlo": [1000, 10000, 50000, 100000, 500000], + "vegas": [1000, 10000, 50000, 100000], + }, + "points_7d": { + "simpson": [128, 512, 2187], # Limited for grid methods + "gauss_legendre": [128, 512, 2187], # Limited for grid methods + "monte_carlo": [1000, 10000, 50000, 100000, 500000], + "vegas": [1000, 10000, 50000, 100000], + }, + "points_15d": { + "simpson": [], # Skip for 15D - too expensive + "gauss_legendre": [], # Skip for 15D - too expensive + "monte_carlo": [10000, 50000, 100000, 500000], + "vegas": [10000, 50000, 100000], + }, + }, + "scipy": { + "nquad_limit_1d": 200, + "nquad_limit_3d": 10, # Reduced from 50 - was too slow + "nquad_limit_7d": 2, # Very limited for 7D + "nquad_limit_15d": 2, # Very limited for 15D + "nquad_epsabs_15d": 1e-2, # Looser tolerance + "nquad_epsrel_15d": 1e-2, # Looser tolerance + }, + "timeouts": { + "max_time_per_method": 120, # 2 minutes per method + "max_time_total": 900, # 15 minutes total + }, + } + + def setup_logging(self): + """Configure logging based on config.""" + log_level = getattr(logging, self.config["general"]["log_level"]) + + # Configure logging + logging.basicConfig( + level=log_level, + format="%(asctime)s - %(levelname)s - %(message)s", + handlers=[ + logging.StreamHandler(), + logging.FileHandler(self.save_path / "benchmark.log"), + ], + ) + self.logger = logging.getLogger(__name__) + + def setup_backend(self): + """Configure backend with GPU acceleration.""" + precision = self.config["general"]["precision"] + try: + set_precision(precision, backend="torch") + enable_cuda(data_type=precision) + self.device = "CUDA" if torch.cuda.is_available() else "CPU" + + if torch.cuda.is_available(): + gpu_name = torch.cuda.get_device_name() + gpu_memory = torch.cuda.get_device_properties(0).total_memory / 1e9 + self.logger.info(f"GPU: {gpu_name}, Memory: {gpu_memory:.1f} GB") + + self.logger.info(f"Using device: {self.device}, Precision: {precision}") + except Exception as e: + self.logger.warning(f"GPU setup failed, using CPU: {e}") + set_precision(precision, backend="torch") + self.device = "CPU" + + # Test functions - challenging functions that show convergence differences + @staticmethod + def challenging_1d(x): + """1D: sin(30πx)exp(-10(x-0.3)²) + 0.5cos(50πx) + discontinuous step""" + step_func = torch.where(x[:, 0] > 0.7, 1.0, 0.0) + oscillatory = torch.sin(30 * torch.pi * x[:, 0]) * torch.exp(-10 * (x[:, 0] - 0.3) ** 2) + rapid_osc = 0.5 * torch.cos(50 * torch.pi * x[:, 0]) + return oscillatory + rapid_osc + step_func + 0.1 + + @staticmethod + def challenging_1d_np(x): + """NumPy version for scipy.""" + step_func = np.where(x > 0.7, 1.0, 0.0) + oscillatory = np.sin(30 * np.pi * x) * np.exp(-10 * (x - 0.3) ** 2) + rapid_osc = 0.5 * np.cos(50 * np.pi * x) + return oscillatory + rapid_osc + step_func + 0.1 + + @staticmethod + def challenging_3d(x): + """3D: Multiple sharp peaks + oscillatory + sharp ridge""" + peak1 = torch.exp(-20 * torch.sum((x - 0.2) ** 2, dim=1)) + peak2 = torch.exp(-20 * torch.sum((x - 0.8) ** 2, dim=1)) + peak3 = torch.exp(-20 * torch.sum((x - 0.5) ** 2, dim=1)) + oscillatory = 0.2 * torch.prod(torch.sin(15 * torch.pi * x), dim=1) + ridge = torch.exp(-100 * (x[:, 0] - x[:, 1]) ** 2) * torch.exp( + -100 * (x[:, 1] - x[:, 2]) ** 2 + ) + return peak1 + peak2 + peak3 + oscillatory + 0.5 * ridge + 0.1 + + @staticmethod + def challenging_3d_np(*x): + """NumPy version for scipy.""" + x_arr = np.array(x) + peak1 = np.exp(-20 * np.sum((x_arr - 0.2) ** 2)) + peak2 = np.exp(-20 * np.sum((x_arr - 0.8) ** 2)) + peak3 = np.exp(-20 * np.sum((x_arr - 0.5) ** 2)) + oscillatory = 0.2 * np.prod(np.sin(15 * np.pi * x_arr)) + ridge = np.exp(-100 * (x_arr[0] - x_arr[1]) ** 2) * np.exp( + -100 * (x_arr[1] - x_arr[2]) ** 2 + ) + return peak1 + peak2 + peak3 + oscillatory + 0.5 * ridge + 0.1 + + @staticmethod + def challenging_7d(x): + """7D: Rastrigin-like with Gaussian envelope + sharp peak""" + rastrigin = torch.sum(x**2 - 0.3 * torch.cos(8 * torch.pi * x), dim=1) + gaussian = 2.0 * torch.exp(-3 * torch.sum((x - 0.5) ** 2, dim=1)) + sharp_peak = 5.0 * torch.exp(-50 * torch.sum((x - 0.3) ** 2, dim=1)) + return 0.1 * rastrigin + gaussian + sharp_peak + 0.2 + + @staticmethod + def challenging_7d_np(*x): + """NumPy version for scipy.""" + x_arr = np.array(x) + rastrigin = np.sum(x_arr**2 - 0.3 * np.cos(8 * np.pi * x_arr)) + gaussian = 2.0 * np.exp(-3 * np.sum((x_arr - 0.5) ** 2)) + sharp_peak = 5.0 * np.exp(-50 * np.sum((x_arr - 0.3) ** 2)) + return 0.1 * rastrigin + gaussian + sharp_peak + 0.2 + + @staticmethod + def challenging_15d(x): + """15D: High-dimensional with multiple scales""" + linear_sum = torch.sum(torch.sin(torch.pi * x) * x, dim=1) + gaussian = torch.exp(-torch.sum((x - 0.5) ** 2, dim=1)) + quadratic = 0.1 * torch.sum(x**2, dim=1) + return linear_sum + 2.0 * gaussian + quadratic + 0.5 + + @staticmethod + def challenging_15d_np(*x): + """NumPy version for scipy.""" + x_arr = np.array(x) + linear_sum = np.sum(np.sin(np.pi * x_arr) * x_arr) + gaussian = np.exp(-np.sum((x_arr - 0.5) ** 2)) + quadratic = 0.1 * np.sum(x_arr**2) + return linear_sum + 2.0 * gaussian + quadratic + 0.5 + + def get_reference_value(self, func, dim: int, domain: List[List[float]]) -> float: + """Calculate high-precision reference value using Monte Carlo.""" + func_name = f"{dim}D" + self.logger.info(f"Calculating reference value for {func_name}...") + + start_time = time.perf_counter() + try: + mc_ref = MonteCarlo() + ref_points_key = f"reference_points_{dim}d" + ref_points = self.config["convergence"].get(ref_points_key, 1000000) + + ref_result = mc_ref.integrate( + func, dim=dim, N=ref_points, integration_domain=domain, seed=12345 + ) + reference = ref_result.item() + elapsed = time.perf_counter() - start_time + + self.logger.info( + f"Reference ({ref_points} MC pts): {reference:.8e} (took {elapsed:.2f}s)" + ) + return reference + + except Exception as e: + self.logger.error(f"Reference calculation failed: {e}") + return 1.0 # Fallback value + + def benchmark_method( + self, + method_name: str, + integrator, + func, + dim: int, + domain: List[List[float]], + n_points: List[int], + reference: float, + timeout: float = 300, + ) -> Dict: + """Benchmark a single integration method.""" + self.logger.info(f"Benchmarking {method_name} for {dim}D...") + + method_start = time.perf_counter() + errors = [] + times = [] + actual_n = [] + + for i, n in enumerate(n_points): + if time.perf_counter() - method_start > timeout: + self.logger.warning(f"{method_name} timeout reached after {timeout}s") + break + + try: + if torch.cuda.is_available(): + torch.cuda.empty_cache() + gc.collect() + + start_time = time.perf_counter() + + # Method-specific integration calls + if method_name == "vegas": + result = integrator.integrate( + func, + dim=dim, + N=n, + integration_domain=domain, + max_iterations=5, + use_warmup=True, + seed=42, + ) + elif method_name == "monte_carlo": + result = integrator.integrate( + func, dim=dim, N=n, integration_domain=domain, seed=42 + ) + else: + result = integrator.integrate(func, dim=dim, N=n, integration_domain=domain) + + end_time = time.perf_counter() + + error = abs(result.item() - reference) + error = max(error, 1e-16) # Minimum plottable error + + errors.append(error) + times.append(end_time - start_time) + actual_n.append(n) + + # Log progress + if i % 2 == 0 or n >= 100000: + self.logger.info( + f" N={n:>8}: error={error:.2e}, time={end_time-start_time:.4f}s" + ) + + except Exception as e: + self.logger.warning(f" N={n}: Failed - {str(e)[:50]}...") + if len(actual_n) > 3: # Continue if we have some results + break + + total_time = time.perf_counter() - method_start + self.logger.info(f"{method_name} completed in {total_time:.2f}s") + + return {"n_points": actual_n, "errors": errors, "times": times, "total_time": total_time} + + def benchmark_scipy_methods(self, func_np, dim: int, reference: float) -> Dict: + """Benchmark scipy integration methods.""" + self.logger.info(f"Benchmarking scipy methods for {dim}D...") + + scipy_results = {} + + # scipy.integrate.nquad + try: + start_time = time.perf_counter() + + if dim == 1: + limit = self.config["scipy"]["nquad_limit_1d"] + scipy_result, _ = quad(func_np, 0, 1, limit=limit) + elif dim <= 7: + limit_key = f"nquad_limit_{dim}d" + limit = self.config["scipy"].get(limit_key, 20) + scipy_result, _ = nquad(func_np, [(0, 1)] * dim, opts={"limit": limit}) + elif dim == 15: + # Attempt 15D with loose tolerances + epsabs = self.config["scipy"]["nquad_epsabs_15d"] + epsrel = self.config["scipy"]["nquad_epsrel_15d"] + limit = self.config["scipy"]["nquad_limit_15d"] + + scipy_result, _ = nquad( + func_np, + [(0, 1)] * dim, + opts={"limit": limit, "epsabs": epsabs, "epsrel": epsrel}, + ) + self.logger.info(f"15D nquad succeeded with loose tolerances") + + end_time = time.perf_counter() + scipy_error = max(abs(scipy_result - reference), 1e-16) + scipy_results["nquad"] = { + "result": scipy_result, + "error": scipy_error, + "time": end_time - start_time, + } + self.logger.info( + f"SciPy nquad: error={scipy_error:.2e}, time={end_time-start_time:.4f}s" + ) + + except Exception as e: + self.logger.warning(f"SciPy nquad failed: {e}") + + # scipy trapz and simps for 1D only + if dim == 1: + grid_sizes = self.config["convergence"]["points_1d"].get("scipy_grids", [51, 251, 1001]) + + for grid_n in grid_sizes: + x_grid = np.linspace(0, 1, grid_n) + y_values = func_np(x_grid) + + # Trapezoid + try: + start_time = time.perf_counter() + result = trapz(y_values, x_grid) + end_time = time.perf_counter() + + error = max(abs(result - reference), 1e-16) + scipy_results[f"trapz_{grid_n}"] = { + "result": result, + "error": error, + "time": end_time - start_time, + "n_points": grid_n, + } + + except Exception as e: + self.logger.warning(f"SciPy trapz (N={grid_n}): Failed - {e}") + + # Simpson + if simps is not None: + try: + start_time = time.perf_counter() + result = simps(y_values, x=x_grid) + end_time = time.perf_counter() + + error = max(abs(result - reference), 1e-16) + scipy_results[f"simps_{grid_n}"] = { + "result": result, + "error": error, + "time": end_time - start_time, + "n_points": grid_n, + } + + except Exception as e: + self.logger.warning(f"SciPy simps (N={grid_n}): Failed - {e}") + + return scipy_results + + def benchmark_convergence_dimension(self, dim: int) -> Optional[Dict]: + """Benchmark convergence for a specific dimension.""" + if not self.config["convergence"].get(f"enable_{dim}d", False): + self.logger.info(f"Skipping {dim}D convergence (disabled in config)") + return None + + self.logger.info(f"=" * 60) + self.logger.info(f"BENCHMARKING {dim}D CONVERGENCE") + self.logger.info(f"=" * 60) + + # Get function and configuration + func_map = { + 1: ( + self.challenging_1d, + self.challenging_1d_np, + "Discontinuous oscillatory", + "sin(30πx)exp(-10(x-0.3)²) + 0.5cos(50πx) + step", + ), + 3: ( + self.challenging_3d, + self.challenging_3d_np, + "Multi-peak with ridge", + "Multiple peaks + sin(15π∏xi) + sharp ridge", + ), + 7: ( + self.challenging_7d, + self.challenging_7d_np, + "Rastrigin-Gaussian hybrid", + "Rastrigin oscillatory + Gaussian envelope + sharp peak", + ), + 15: ( + self.challenging_15d, + self.challenging_15d_np, + "High-dimensional mixed", + "sin(πx)x + Gaussian + quadratic", + ), + } + + if dim not in func_map: + self.logger.error(f"No function defined for {dim}D") + return None + + func, func_np, name, description = func_map[dim] + domain = [[0, 1]] * dim + + # Calculate reference value + reference = self.get_reference_value(func, dim, domain) + + # Get evaluation points from config + points_config = self.config["convergence"].get(f"points_{dim}d", {}) + + # Benchmark torchquad methods + integrators = { + "simpson": Simpson(), + "gauss_legendre": GaussLegendre(), + "monte_carlo": MonteCarlo(), + "vegas": VEGAS() + } + + results = {"dim": dim, "function": name, "description": description, "reference": reference} + + timeout = self.config.get("timeouts", {}).get("max_time_per_method", 300) + + for method_name, integrator in integrators.items(): + n_points = points_config.get(method_name, []) + if not n_points: + self.logger.info(f"No points configured for {method_name}, skipping") + continue + + results[method_name] = self.benchmark_method( + method_name, integrator, func, dim, domain, n_points, reference, timeout + ) + + # Benchmark scipy methods + if func_np: + results["scipy"] = self.benchmark_scipy_methods(func_np, dim, reference) + + # Store timing information + self.timing_info[f"{dim}d"] = { + method: results[method].get("total_time", 0) + for method in ["simpson", "gauss_legendre", "monte_carlo", "vegas"] + if method in results + } + + return results + + def run_convergence_benchmarks(self, dimensions: List[int] = None) -> Dict: + """Run convergence benchmarks for specified dimensions.""" + if dimensions is None: + dimensions = [1, 3, 7, 15] + + self.logger.info(f"Starting convergence benchmarks for dimensions: {dimensions}") + total_start = time.perf_counter() + + convergence_results = {} + + for dim in dimensions: + dim_start = time.perf_counter() + + result = self.benchmark_convergence_dimension(dim) + if result is not None: + convergence_results[f"{dim}d"] = result + + dim_elapsed = time.perf_counter() - dim_start + self.logger.info(f"{dim}D benchmark completed in {dim_elapsed:.2f}s") + + # Check total timeout + total_elapsed = time.perf_counter() - total_start + max_total = self.config.get("timeouts", {}).get("max_time_total", 1800) + if total_elapsed > max_total: + self.logger.warning(f"Total timeout ({max_total}s) reached") + break + + total_elapsed = time.perf_counter() - total_start + self.logger.info(f"All convergence benchmarks completed in {total_elapsed:.2f}s") + + # Save intermediate results + self.save_results(convergence_results, "convergence_results.json") + + return convergence_results + + def save_results(self, results: Dict, filename: str): + """Save results to JSON file.""" + try: + # Convert numpy/torch values to native Python types for JSON serialization + def convert_for_json(obj): + if isinstance(obj, (np.ndarray, torch.Tensor)): + return obj.tolist() + elif isinstance(obj, (np.integer, np.floating)): + return obj.item() + elif isinstance(obj, dict): + return {k: convert_for_json(v) for k, v in obj.items()} + elif isinstance(obj, list): + return [convert_for_json(item) for item in obj] + else: + return obj + + results_json = convert_for_json(results) + + with open(self.save_path / filename, "w") as f: + json.dump(results_json, f, indent=2) + + self.logger.info(f"Results saved to {self.save_path / filename}") + + except Exception as e: + self.logger.error(f"Failed to save results: {e}") + + def load_results(self, filename: str) -> Dict: + """Load results from JSON file.""" + try: + with open(self.save_path / filename, "r") as f: + results = json.load(f) + self.logger.info(f"Results loaded from {self.save_path / filename}") + return results + except FileNotFoundError: + self.logger.info(f"No existing results file found: {filename}") + return {} + except Exception as e: + self.logger.error(f"Failed to load results: {e}") + return {} + + def benchmark_scaling_analysis(self) -> tuple: + """Scaling analysis with multiple runs and error bars.""" + self.logger.info("Scaling analysis with error bars...") + + def test_integrand(x): + """Simple quadratic function for scaling tests.""" + return torch.sum(x**2, dim=1) + + # Strong scaling - multiple runs for error estimation + strong_results = {} + num_runs = self.config.get('scaling', {}).get('num_runs', 3) + + batch_sizes = self.config.get('scaling', {}).get('strong_batch_sizes', [50000, 100000, 250000]) + test_cases = [ + {'dim': 1, 'total_work': self.config.get('scaling', {}).get('strong_total_work_1d', 1000000), 'name': '1D: 1M points'}, + {'dim': 3, 'total_work': self.config.get('scaling', {}).get('strong_total_work_3d', 1000000), 'name': '3D: 1M points'}, + ] + + for case in test_cases: + self.logger.info(f" Strong scaling: {case['name']}") + case_results = {'batch_sizes': [], 'times_mean': [], 'times_std': [], 'efficiency_mean': [], 'efficiency_std': []} + + reference_time = None + + for batch_size in batch_sizes: + if batch_size > case['total_work']: + break + + self.logger.info(f" Batch size {batch_size}: ") + + run_times = [] + run_efficiencies = [] + + for run in range(num_runs): + try: + domain = [[0, 1]] * case['dim'] + integrator = Simpson() + + num_batches = case['total_work'] // batch_size + + start_time = time.perf_counter() + + # Run a sample of batches for timing + sample_batches = min(1, num_batches) + for i in range(sample_batches): + result = integrator.integrate( + test_integrand, + dim=case['dim'], + N=batch_size, + integration_domain=domain + ) + + elapsed = time.perf_counter() - start_time + estimated_total_time = elapsed * (num_batches / sample_batches) + run_times.append(estimated_total_time) + + if reference_time is None: + run_efficiencies.append(1.0) + else: + effective_parallelism = batch_size / batch_sizes[0] + theoretical_time = reference_time / effective_parallelism + efficiency = min(1.0, theoretical_time / estimated_total_time) + run_efficiencies.append(efficiency) + + except Exception as e: + self.logger.warning(f"Run {run} failed: {e}") + continue + + if run_times: + import statistics + mean_time = statistics.mean(run_times) + std_time = statistics.stdev(run_times) if len(run_times) > 1 else 0 + + if reference_time is None: + reference_time = mean_time + mean_eff = 1.0 + std_eff = 0.0 + else: + mean_eff = statistics.mean(run_efficiencies) + std_eff = statistics.stdev(run_efficiencies) if len(run_efficiencies) > 1 else 0 + + case_results['batch_sizes'].append(batch_size) + case_results['times_mean'].append(mean_time) + case_results['times_std'].append(std_time) + case_results['efficiency_mean'].append(mean_eff) + case_results['efficiency_std'].append(std_eff) + + self.logger.info(f"efficiency={mean_eff:.3f}±{std_eff:.3f}") + else: + self.logger.warning("All runs failed") + break + + strong_results[case['name']] = case_results + + # Weak scaling - corrected with constant work for MC + weak_results = {} + + work_per_dim = self.config.get('scaling', {}).get('weak_work_per_dim', [1000000, 100000, 5000]) + mc_constant_work = self.config.get('scaling', {}).get('weak_mc_constant_work', 1000000) + + test_cases = [ + {'dim': 1, 'work_per_dim': work_per_dim[0], 'mc_work': mc_constant_work}, + {'dim': 3, 'work_per_dim': work_per_dim[1], 'mc_work': mc_constant_work}, + {'dim': 7, 'work_per_dim': work_per_dim[2], 'mc_work': mc_constant_work}, + ] + + for method_name in ['simpson', 'monte_carlo']: + self.logger.info(f" Weak scaling: {method_name}") + method_results = {'dimensions': [], 'times_mean': [], 'times_std': [], 'efficiency_mean': [], 'efficiency_std': []} + reference_time = None + + for i, case in enumerate(test_cases): + self.logger.info(f" {case['dim']}D: ") + + run_times = [] + run_efficiencies = [] + + for run in range(num_runs): + try: + domain = [[0, 1]] * case['dim'] + + if method_name == 'simpson': + integrator = Simpson() + # Scale work appropriately for grid methods + actual_N = case['work_per_dim'] ** case['dim'] + else: + integrator = MonteCarlo() + # Keep work constant for MC (true weak scaling) + actual_N = case['mc_work'] + + start_time = time.perf_counter() + + if method_name == 'monte_carlo': + result = integrator.integrate( + test_integrand, + dim=case['dim'], + N=actual_N, + integration_domain=domain, + seed=42 + run + ) + else: + result = integrator.integrate( + test_integrand, + dim=case['dim'], + N=actual_N, + integration_domain=domain + ) + + elapsed = time.perf_counter() - start_time + run_times.append(elapsed) + + if i == 0: # First dimension + run_efficiencies.append(1.0) + else: + efficiency = min(1.0, reference_time / elapsed) + run_efficiencies.append(efficiency) + + except Exception as e: + self.logger.warning(f"Run {run} failed: {e}") + continue + + if run_times: + import statistics + mean_time = statistics.mean(run_times) + std_time = statistics.stdev(run_times) if len(run_times) > 1 else 0 + + if i == 0: + reference_time = mean_time + mean_eff = 1.0 + std_eff = 0.0 + else: + mean_eff = statistics.mean(run_efficiencies) + std_eff = statistics.stdev(run_efficiencies) if len(run_efficiencies) > 1 else 0 + + method_results['dimensions'].append(case['dim']) + method_results['times_mean'].append(mean_time) + method_results['times_std'].append(std_time) + method_results['efficiency_mean'].append(mean_eff) + method_results['efficiency_std'].append(std_eff) + + self.logger.info(f"N={actual_N}, time={mean_time:.4f}±{std_time:.4f}s, efficiency={mean_eff:.3f}±{std_eff:.3f}") + else: + self.logger.warning("All runs failed") + continue + + weak_results[method_name] = method_results + + return strong_results, weak_results + + def benchmark_vectorized_analysis(self) -> Dict: + """Vectorized integrand test with configurable scaling.""" + self.logger.info("Vectorized integrands analysis...") + + integrator = Simpson() + domain = [[0, 1]] + N = self.config.get('vectorized', {}).get('integration_points', 1001) + + grid_sizes = self.config.get('vectorized', {}).get('grid_sizes', [5, 20, 50, 100, 200]) + num_runs = self.config.get('vectorized', {}).get('num_runs', 2) + results = {'grid_sizes': [], 'loop_times': [], 'vectorized_times': [], 'speedups': []} + + for grid_size in grid_sizes: + self.logger.info(f" Grid size {grid_size}:") + + params = torch.linspace(1, 5, grid_size) + + try: + # Method 1: Loop-based (multiple runs for stability) + loop_times = [] + for run in range(num_runs): + start_time = time.perf_counter() + loop_results = [] + for param in params: + def single_integrand(x): + return torch.sqrt(torch.cos(torch.sin(param * x[:, 0]))) + + result = integrator.integrate(single_integrand, dim=1, N=N, integration_domain=domain) + loop_results.append(result.item()) + loop_times.append(time.perf_counter() - start_time) + + loop_time = sum(loop_times) / len(loop_times) + + # Method 2: Vectorized (multiple runs for stability) + vectorized_times = [] + for run in range(num_runs): + start_time = time.perf_counter() + def vectorized_integrand(x): + x_vals = x[:, 0] + return torch.sqrt(torch.cos(torch.sin(torch.outer(x_vals, params)))) + + vectorized_result = integrator.integrate(vectorized_integrand, dim=1, N=N, integration_domain=domain) + vectorized_times.append(time.perf_counter() - start_time) + + vectorized_time = sum(vectorized_times) / len(vectorized_times) + speedup = loop_time / vectorized_time + + results['grid_sizes'].append(grid_size) + results['loop_times'].append(loop_time) + results['vectorized_times'].append(vectorized_time) + results['speedups'].append(speedup) + + self.logger.info(f" Loop: {loop_time:.4f}s, Vectorized: {vectorized_time:.4f}s, Speedup: {speedup:.2f}x") + + except Exception as e: + self.logger.warning(f" Failed: {e}") + break + + return results + + +def main(): + """Main execution function.""" + parser = argparse.ArgumentParser(description="Run modular torchquad benchmarks") + parser.add_argument( + "--config", default="benchmarking/benchmarking_cfg.toml", help="Path to configuration file" + ) + parser.add_argument( + "--dimensions", default="1,3,7,15", help="Comma-separated list of dimensions to benchmark" + ) + parser.add_argument( + "--convergence-only", action="store_true", help="Run only convergence benchmarks" + ) + + args = parser.parse_args() + + # Parse dimensions + try: + dimensions = [int(d.strip()) for d in args.dimensions.split(",")] + except ValueError: + print("Invalid dimensions format. Use comma-separated integers like '1,3,7'") + return + + # Initialize benchmark + warnings.filterwarnings("ignore") + benchmark = ModularBenchmark(args.config) + + # Run convergence benchmarks + convergence_results = benchmark.run_convergence_benchmarks(dimensions) + + scaling_results = None + vectorized_results = None + + if not args.convergence_only: + # Run scaling benchmarks + benchmark.logger.info("Running scaling analysis...") + strong_scaling, weak_scaling = benchmark.benchmark_scaling_analysis() + scaling_results = (strong_scaling, weak_scaling) + benchmark.save_results({'strong': strong_scaling, 'weak': weak_scaling}, 'scaling_results.json') + + # Run vectorized benchmarks + benchmark.logger.info("Running vectorized analysis...") + vectorized_results = benchmark.benchmark_vectorized_analysis() + benchmark.save_results(vectorized_results, 'vectorized_results.json') + + benchmark.logger.info("Benchmark session completed successfully!") + + +if __name__ == "__main__": + main() diff --git a/benchmarking/plot_results.py b/benchmarking/plot_results.py new file mode 100644 index 00000000..d4fc6c58 --- /dev/null +++ b/benchmarking/plot_results.py @@ -0,0 +1,505 @@ +#!/usr/bin/env python3 +""" +Plotting module for torchquad benchmark results. + +This module creates the enhanced plots addressing all identified issues: +1. Convergence plots with challenging functions and complete scipy coverage +2. Runtime vs error plots with all methods visible +3. Scaling analysis with error bars (when scaling data available) +4. Vectorized speedup plots with log-scale axes +""" + +import matplotlib.pyplot as plt +from pathlib import Path +import json +from typing import Dict + + +class ResultsPlotter: + """Create comprehensive plots from benchmark results.""" + + def __init__(self, results_dir: str = "resources"): + self.results_dir = Path(results_dir) + + # Enhanced color palette and markers + self.colors = { + "simpson": "#0066CC", + "gauss_legendre": "#00AA00", + "monte_carlo": "#FF3333", + "vegas": "#FF8C00", + "scipy_nquad": "#000000", + "scipy_trapz": "#808080", + "scipy_simps": "#FF1493", + } + + self.markers = { + "simpson": "o", + "gauss_legendre": "s", + "monte_carlo": "D", + "vegas": "^", + "scipy_nquad": "X", + "scipy_trapz": "+", + "scipy_simps": "*", + } + + def load_results(self, filename: str) -> Dict: + """Load results from JSON file.""" + try: + with open(self.results_dir / filename, "r") as f: + results = json.load(f) + print(f"Loaded results from {self.results_dir / filename}") + return results + except FileNotFoundError: + print(f"Results file not found: {filename}") + return {} + except Exception as e: + print(f"Error loading results: {e}") + return {} + + def create_convergence_plots(self, convergence_results: Dict, device_info: str = "Unknown GPU"): + """Create enhanced convergence analysis plots.""" + print("Creating convergence plots...") + + # Determine subplot layout based on available dimensions + available_dims = [key for key in convergence_results.keys() if key.endswith("d")] + n_plots = len(available_dims) + + if n_plots == 0: + print("No convergence results to plot") + return + + # Create subplot layout + if n_plots == 1: + fig, axes = plt.subplots(1, 1, figsize=(12, 8)) + axes = [axes] + elif n_plots == 2: + fig, axes = plt.subplots(1, 2, figsize=(18, 8)) + elif n_plots <= 4: + fig, axes = plt.subplots(2, 2, figsize=(18, 14)) + axes = axes.flatten() + else: + # More than 4 dimensions - use larger grid + n_rows = (n_plots + 2) // 3 + fig, axes = plt.subplots(n_rows, 3, figsize=(24, 6 * n_rows)) + axes = axes.flatten() + + plot_idx = 0 + for case_key in sorted(available_dims, key=lambda x: int(x[:-1])): # Sort by dimension + case_data = convergence_results[case_key] + + if plot_idx >= len(axes): + break + + ax = axes[plot_idx] + dim = case_data["dim"] + func_name = case_data["function"] + func_desc = case_data["description"] + + # Plot torchquad methods + for method in ["simpson", "gauss_legendre", "monte_carlo", "vegas"]: + if method in case_data and case_data[method]["errors"]: + n_pts = case_data[method]["n_points"] + errors = case_data[method]["errors"] + + valid_data = [(n, e) for n, e in zip(n_pts, errors) if e > 0] + + if valid_data: + valid_n, valid_errors = zip(*valid_data) + + label = f"{method.replace('_', ' ').title()} (CUDA)" + ax.loglog( + valid_n, + valid_errors, + color=self.colors[method], + marker=self.markers[method], + linewidth=2.5, + markersize=8, + label=label, + alpha=0.85, + ) + + # Plot scipy methods + if "scipy" in case_data: + scipy_data = case_data["scipy"] + + # Plot nquad + if "nquad" in scipy_data and scipy_data["nquad"]["error"] > 0: + representative_n = 10**6 if dim <= 3 else 10**5 if dim <= 7 else 10**4 + ax.loglog( + [representative_n], + [scipy_data["nquad"]["error"]], + color=self.colors["scipy_nquad"], + marker=self.markers["scipy_nquad"], + markersize=14, + label="SciPy nquad (CPU)", + linestyle="none", + alpha=0.9, + ) + + # Plot trapz and simps (1D only) + if dim == 1: + # Trapz + trapz_points = [] + for key, data in scipy_data.items(): + if key.startswith("trapz_") and data["error"] > 0: + trapz_points.append((data["n_points"], data["error"])) + if trapz_points: + trapz_n, trapz_errors = zip(*sorted(trapz_points)) + ax.loglog( + trapz_n, + trapz_errors, + color=self.colors["scipy_trapz"], + marker=self.markers["scipy_trapz"], + linewidth=2.5, + markersize=10, + label="SciPy trapz (CPU)", + alpha=0.8, + ) + + # Simps + simps_points = [] + for key, data in scipy_data.items(): + if key.startswith("simps_") and data["error"] > 0: + simps_points.append((data["n_points"], data["error"])) + if simps_points: + simps_n, simps_errors = zip(*sorted(simps_points)) + ax.loglog( + simps_n, + simps_errors, + color=self.colors["scipy_simps"], + marker=self.markers["scipy_simps"], + linewidth=2.5, + markersize=10, + label="SciPy simps (CPU)", + alpha=0.8, + ) + + ax.set_xlabel("Number of Function Evaluations", fontsize=13) + ax.set_ylabel("Absolute Error", fontsize=13) + ax.set_title(f"{dim}D: {func_name} \n Function: {func_desc}", fontsize=12) + ax.grid(True, alpha=0.3) + ax.legend(fontsize=10, loc="best") + + # Enhanced x-axis ticks for better low-count visibility + if dim == 1: + ax.set_xticks([10, 100, 1000, 10000, 100000, 1000000]) + elif dim == 3: + ax.set_xticks([10, 100, 1000, 10000, 100000, 1000000]) + else: + ax.set_xticks([1000, 10000, 100000, 1000000, 10000000]) + + plot_idx += 1 + + # Remove unused subplots + for i in range(plot_idx, len(axes)): + fig.delaxes(axes[i]) + + plt.suptitle( + f"Enhanced Convergence Analysis - Challenging Functions \n " + f"Hardware: {device_info}, Precision: float32", + fontsize=15, + ) + plt.tight_layout() + plt.savefig(self.results_dir / "torchquad_convergence.png", dpi=300, bbox_inches="tight") + plt.close() + print(f"Convergence plot saved to {self.results_dir / 'torchquad_convergence.png'}") + + def create_runtime_vs_error_plots( + self, convergence_results: Dict, device_info: str = "Unknown GPU" + ): + """Create enhanced runtime vs error plots.""" + print("Creating runtime vs error plots...") + + # Determine subplot layout based on available dimensions + available_dims = [key for key in convergence_results.keys() if key.endswith("d")] + n_plots = len(available_dims) + + if n_plots == 0: + print("No convergence results to plot") + return + + # Create subplot layout + if n_plots == 1: + fig, axes = plt.subplots(1, 1, figsize=(12, 8)) + axes = [axes] + elif n_plots == 2: + fig, axes = plt.subplots(1, 2, figsize=(18, 8)) + elif n_plots <= 4: + fig, axes = plt.subplots(2, 2, figsize=(18, 14)) + axes = axes.flatten() + else: + # More than 4 dimensions - use larger grid + n_rows = (n_plots + 2) // 3 + fig, axes = plt.subplots(n_rows, 3, figsize=(24, 6 * n_rows)) + axes = axes.flatten() + + plot_idx = 0 + for case_key in sorted(available_dims, key=lambda x: int(x[:-1])): + case_data = convergence_results[case_key] + + if plot_idx >= len(axes): + break + + ax = axes[plot_idx] + dim = case_data["dim"] + func_name = case_data["function"] + func_desc = case_data["description"] + + # Plot torchquad methods + for method in ["simpson", "gauss_legendre", "monte_carlo", "vegas"]: + if method in case_data and case_data[method]["errors"]: + times = case_data[method]["times"] + errors = case_data[method]["errors"] + + valid_data = [(t, e) for t, e in zip(times, errors) if e > 0 and t > 0] + + if valid_data: + valid_times, valid_errors = zip(*valid_data) + + label = f"{method.replace('_', ' ').title()} (CUDA)" + ax.loglog( + valid_times, + valid_errors, + color=self.colors[method], + marker=self.markers[method], + linewidth=2.5, + markersize=8, + label=label, + alpha=0.85, + ) + + # Plot scipy methods + if "scipy" in case_data: + scipy_data = case_data["scipy"] + + # nquad + if "nquad" in scipy_data: + data = scipy_data["nquad"] + if data["error"] > 0 and data["time"] > 0: + ax.loglog( + [data["time"]], + [data["error"]], + color=self.colors["scipy_nquad"], + marker=self.markers["scipy_nquad"], + markersize=14, + label="SciPy nquad (CPU)", + linestyle="none", + alpha=0.9, + ) + + # 1D methods + if dim == 1: + # Trapz + trapz_points = [] + for key, data in scipy_data.items(): + if key.startswith("trapz_") and data["error"] > 0 and data["time"] > 0: + trapz_points.append((data["time"], data["error"])) + if trapz_points: + trapz_t, trapz_e = zip(*trapz_points) + ax.loglog( + trapz_t, + trapz_e, + color=self.colors["scipy_trapz"], + marker=self.markers["scipy_trapz"], + markersize=10, + linestyle="none", + label="SciPy trapz (CPU)", + alpha=0.8, + ) + + # Simps + simps_points = [] + for key, data in scipy_data.items(): + if key.startswith("simps_") and data["error"] > 0 and data["time"] > 0: + simps_points.append((data["time"], data["error"])) + if simps_points: + simps_t, simps_e = zip(*simps_points) + ax.loglog( + simps_t, + simps_e, + color=self.colors["scipy_simps"], + marker=self.markers["scipy_simps"], + markersize=10, + linestyle="none", + label="SciPy simps (CPU)", + alpha=0.8, + ) + + ax.set_xlabel("Runtime (seconds)", fontsize=13) + ax.set_ylabel("Absolute Error", fontsize=13) + ax.set_title( + f"{dim}D: {func_name} \n Function: {func_desc} \n (Lower-left is better)", + fontsize=12, + ) + ax.grid(True, alpha=0.3) + ax.legend(fontsize=10, loc="best") + + plot_idx += 1 + + # Remove unused subplots + for i in range(plot_idx, len(axes)): + fig.delaxes(axes[i]) + + plt.suptitle( + f"Runtime vs Error Analysis - Challenging Functions \n " f"Hardware: {device_info}", + fontsize=15, + ) + plt.tight_layout() + plt.savefig( + self.results_dir / "torchquad_runtime_vs_error.png", dpi=300, bbox_inches="tight" + ) + plt.close() + print( + f"Runtime vs error plot saved to {self.results_dir / 'torchquad_runtime_vs_error.png'}" + ) + + def create_scaling_plots(self, scaling_results: Dict, device_info: str = "Unknown GPU"): + """Create scaling analysis plots with error bars.""" + print("Creating scaling plots...") + + strong_scaling = scaling_results.get('strong', {}) + weak_scaling = scaling_results.get('weak', {}) + + if not strong_scaling and not weak_scaling: + print("No scaling results to plot") + return + + fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(18, 7)) + + # Strong scaling with error bars + for case_name, data in strong_scaling.items(): + if data.get('batch_sizes'): + ax1.errorbar(data['batch_sizes'], data['efficiency_mean'], + yerr=data['efficiency_std'], + marker='o', linewidth=2.5, markersize=8, + capsize=5, capthick=2, label=case_name) + + ax1.axhline(y=1.0, color='gray', linestyle='--', alpha=0.7, label='Ideal efficiency') + ax1.set_xlabel('Batch Size', fontsize=13) + ax1.set_ylabel('Parallel Efficiency', fontsize=13) + ax1.set_title('Strong Scaling Analysis \n (Fixed Problem Size, Multiple Runs)', fontsize=13) + ax1.set_ylim(0, 1.1) + ax1.set_xscale('log') + ax1.grid(True, alpha=0.3) + ax1.legend(fontsize=11) + + # Weak scaling with error bars + for method_name, data in weak_scaling.items(): + if data.get('dimensions'): + ax2.errorbar(data['dimensions'], data['efficiency_mean'], + yerr=data['efficiency_std'], + marker='s', linewidth=2.5, markersize=8, + capsize=5, capthick=2, + label=f"{method_name.replace('_', ' ').title()}") + + ax2.axhline(y=1.0, color='gray', linestyle='--', alpha=0.7, label='Ideal efficiency') + ax2.set_xlabel('Problem Dimension', fontsize=13) + ax2.set_ylabel('Parallel Efficiency', fontsize=13) + ax2.set_title('Weak Scaling Analysis \n (Proportional Problem Size, Multiple Runs)', fontsize=13) + ax2.set_ylim(0, 1.1) + ax2.grid(True, alpha=0.3) + ax2.legend(fontsize=11) + + plt.suptitle(f'Enhanced Scaling Performance Analysis \n ' + f'Hardware: {device_info}', fontsize=15) + plt.tight_layout() + plt.savefig(self.results_dir / 'torchquad_scaling_analysis.png', dpi=300, bbox_inches='tight') + plt.close() + print(f"Scaling plot saved to {self.results_dir / 'torchquad_scaling_analysis.png'}") + + def create_vectorized_plots(self, vectorized_results: Dict, device_info: str = "Unknown GPU", + x_log_scale: bool = True, y_log_scale: bool = True): + """Create vectorized speedup plots with configurable log-scale axes.""" + print("Creating vectorized plots...") + + if not vectorized_results.get('grid_sizes'): + print("No vectorized results to plot") + return + + fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(18, 7)) + + # Execution time comparison + import numpy as np + x_pos = np.arange(len(vectorized_results['grid_sizes'])) + width = 0.35 + + bars1 = ax1.bar(x_pos - width/2, vectorized_results['loop_times'], width, + label='Loop-based', alpha=0.8, color='lightcoral') + bars2 = ax1.bar(x_pos + width/2, vectorized_results['vectorized_times'], width, + label='Vectorized', alpha=0.8, color='lightblue') + + ax1.set_xlabel('Parameter Grid Size', fontsize=13) + ax1.set_ylabel('Execution Time (seconds)', fontsize=13) + ax1.set_title('Vectorized vs Loop-based Integration \n Function: sqrt(cos(sin(a*x)))', fontsize=13) + ax1.set_xticks(x_pos) + ax1.set_xticklabels(vectorized_results['grid_sizes']) + + if y_log_scale: + ax1.set_yscale('log') + + ax1.legend(fontsize=11) + ax1.grid(True, alpha=0.3) + + # Speedup factors + if x_log_scale and y_log_scale: + ax2.loglog(vectorized_results['grid_sizes'], vectorized_results['speedups'], + marker='o', linewidth=3, markersize=10, color='green', label='Speedup') + elif x_log_scale: + ax2.semilogx(vectorized_results['grid_sizes'], vectorized_results['speedups'], + marker='o', linewidth=3, markersize=10, color='green', label='Speedup') + elif y_log_scale: + ax2.semilogy(vectorized_results['grid_sizes'], vectorized_results['speedups'], + marker='o', linewidth=3, markersize=10, color='green', label='Speedup') + else: + ax2.plot(vectorized_results['grid_sizes'], vectorized_results['speedups'], + marker='o', linewidth=3, markersize=10, color='green', label='Speedup') + + ax2.axhline(y=1.0, color='red', linestyle='--', alpha=0.7, label='No speedup') + + ax2.set_xlabel('Parameter Grid Size', fontsize=13) + ax2.set_ylabel('Speedup Factor', fontsize=13) + + scale_info = f"({'Log' if x_log_scale else 'Linear'}-{'Log' if y_log_scale else 'Linear'} Scale)" + ax2.set_title(f'Vectorized Integration Speedup \n {scale_info}', fontsize=13) + ax2.grid(True, alpha=0.3) + ax2.legend(fontsize=11) + + plt.suptitle(f'Enhanced Vectorized Integrand Performance Analysis \n ' + f'Hardware: {device_info}', fontsize=15) + plt.tight_layout() + plt.savefig(self.results_dir / 'torchquad_vectorized_speedup.png', dpi=300, bbox_inches='tight') + plt.close() + print(f"Vectorized plot saved to {self.results_dir / 'torchquad_vectorized_speedup.png'}") + + +def main(): + """Create plots from existing results.""" + plotter = ResultsPlotter() + device_info = "RTX 4060 Ti 16GB, i5-13400F" # Could be loaded from config + + # Load convergence results + convergence_results = plotter.load_results("convergence_results.json") + if convergence_results: + plotter.create_convergence_plots(convergence_results, device_info) + plotter.create_runtime_vs_error_plots(convergence_results, device_info) + + # Load scaling results + scaling_results = plotter.load_results("scaling_results.json") + if scaling_results: + plotter.create_scaling_plots(scaling_results, device_info) + + # Load vectorized results + vectorized_results = plotter.load_results("vectorized_results.json") + if vectorized_results: + # Default to log-log scale, but could be made configurable + plotter.create_vectorized_plots(vectorized_results, device_info, + x_log_scale=True, y_log_scale=True) + + if convergence_results or scaling_results or vectorized_results: + print("All available plots created successfully!") + else: + print("No results available to plot. Run benchmark first.") + + +if __name__ == "__main__": + main() diff --git a/resources/torchquad_convergence.png b/resources/torchquad_convergence.png index 7812c2c5dada0e3dd7f7e104ae2c8054a574b66b..d19545acac04373095db6549bf32be8fa6da4120 100644 GIT binary patch literal 482378 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�uU$+iR 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 Z&lrv2a;6YkENe?ueARG4Qz4lbk>VDw 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 z�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

Cuqu3*# z>~Bh6k^)nY2TO83XD?^@gZA2J(wC$xWms>msn+@9@aOwEltO1Uqsy-Q?{{=SEH~Zp(wzZa;UD{0BL$hy#`I#)d33->1m*?v!V>Fz# z+gD^0@pO>SR!u%fx9AV(`V`Lu#QKyPUn|_);y9%g8MZFQ;07O;rU?wUzbw>wG-4)D zukzws@0&&A|Hsedq`u*`$_F+vo0C|gQJ@s{eQ-&Ed1@^`&XeLdrj#E*JuWPRAX^b; z<`7qhWZ@Kot}5}ho_rdr3i}3c0QB*@)c&(m&%TPZCkKDpx3na*pvkfB@#XM`LWf~x zfW)19HMscye3pNjH`R74Teh;pM(|~6dWzjfp(1f4C4%@bpYX5cm^K#p<(u_{)N%B zUPtVztaN(9NJQXdYVimC?7uIYzgpSx_2X@q+*jfu8V^%Pa-AiXM%UV04A1H3h*s%J z`wEAH%thvQyKs~!e}nP^&?mEa;$#1 zr2)B5T4>^`xAKbitXx3z9J*wG{&VTzBI9M|0Y3|Lez@UI@B6!6`*TuS1U*+5<5T*?E~6qrcan%{qj(wzU22aX{)RES z38^RG>tTd^9BO+X5f$^PVm%1tga0Ox;Avw9M(tjhYeYD6DL(qF zorCuCkv62z|43zFiVV-PL5~c~_aUeK$fqM%(0FOboF4k_hlce+&fQNyce$joXS;px zp64No_&?vr~uZAteez{80aLRk%H z4LU&IQUn5xz%5Z}Mfk*P0=d63cMiC`M9tiSN38#OB}~(oJ3a6G`|vxTlrDGq8(Y@; zNLWuwHEM1-Zm6R)_Q;4)ITNmLH#10YWV6t%uv?^4Se1AtVuRa;)ySo_?zxpy7BZ}8 z7aKE~vEI`#l2b@<{jwj|$5Lvi&WV9smYKO9zVk}R;iM%w@VcQ^KTxmNiI~juSfmw^ z0EDTaH*tD$vR0p-Lw~;&xR+5!&PM;*fyIf-GWKmoMn+!#?KFOw3^^K|Uk{UE;0c0Q zW%wYoi!MwMr`lN^jE^>Ws-xEivErXc7|FwK8#v*jIwk#$d^BiQU;3+=)s=pK;k6>( z>{3vQAd`i`IjKDM;QrDV${dv{M>2M$&D)oxww#eO5LGtZEIj|yzP#ZknDlmJ@KlSw zc->!e=^8^{l7BdYow_yf!&2~xSEZgZ0>ltt76FDSYJyO8e>Xg^N@=N!Sz5`R1(`!P zZu~smt1I+71uJj0DO{w%h$Xwuq1O~(wu(=^!?=gka~6$q!i_<2uFn*ghoL5(&f%1O zjJ%4*(d#ESRZI-Gc&uFQ=}u-FQY8YyVlPf*tBJ&a3y_`bXvyM8efbx|_~CT8tk9jc z0gk(5ruv+^yMC-#&Ij?C(KcX}OyfGhGLTpB-cNz`Q32yJsUt_)C;Z?BPB!u6pbXO` zq~cMy4vr$&^n;`ArM;vVe%CVYO;#<;^K#X+MBKZ)({S6Euc(-gr(|I z1@Tzvxin0O`o*78+yJ>N zf+sH8ecTh@SDqE1H<{fw-_2)Uarf8NnbxcDOE2^Gn`;;Spp_BpGikm;@1u3Cy|C?DF#R>L2Oqr_nGAg-SE?7}C z5BJVm=;3espZCue3?5{$ej*04ieB#4r#Hoj2A8?$mGjX?Lu~Q5m8UM>(GK3r^TUr( z?c0Nx34j{d9zy~{R*%q1-~qPEt`D}DGx{*>Vojj^(D zj+0s!y6?i~K6x>kG?F0sLJ*E z^3Grl{(PBnZibX|w5wp+EmQpvL$BwL)D?etXBl}~#V!EGtgN;IF9aq8&)O5%HYqA8 znZpK~_&wEj{XPC-wsfF96)`;wPU%=Yz7XbE523<)tUn(=&m#8o*fVH5apCu}g@XX4 zWD8j-xEbozix`KY;ufpS$3-pJ$?cQ6bKmqW;b$s(8PBHa00Xeg`D<3Vf(06Fl> zm$TkQIkwS3m1|b4xDee~Qc~g&fHOnSiXYEW63B=(T5+L}^{S+yzs@qdT(+I42#Xp;c_+b~Wexu!(NfzHYQ;aqI&?X6Sod2k&W5@Me$X z#XRZRB9ro`*YnPBe!a`nf5M{torf`h;PNi}XGapnx82$9QWbPsX`~_{H11jULeC+- zwy#VJHZ1?yHm@Qhp)jC#$6KARn}Z!1q=z>2*l$Ytq;(0EIcZ^Z3_db}boj5RcijgB(Cm`fPY>AQdM~&0`_iC@4f{mP5oMqd`m8j#=?o;Fa(V%Bj zMT6)_5y%>Po0V(Va)(!LQ&3RA*NCh{z*A(YfA;x}C=6R;ciBcdv0ewmb6^{(D9=jHL@A)qkVwSD=~}vhl?R$1U`L_kF0Dy?CI|Q_4g<7s*xs^ z8CU(gcqXNb3R3m6ZgENuXQ+P>P1}b*dANhEfIG5j>6$L(#x$^&K;D>ya zn8j@6Z!h7^#D;LvWEN_zgDBStob}Uch)m;Z+ZW-Lb7eQtr|`Uw?bn3kDks?p;GDyM zz-Ty*_5*_+Raq7mkML=K@wiKPu)rt=5H5=@(@kvb^!@Q)7|%9PT*UIj4?K*bR~#SM zHGTXpPL*k0whUT(Gva^;YB#v9-(A?8uyTW836~9(A=@K4Yl#!Kqo7 z_MFYCLPlzSOTxM9raZb{EZfNLr}}1#h1=!;pB{G`#)cAax!cxpk0a#2hv!}Tbi%u2 zIPr&W(&>4oGMb+M9KK^?kI`#@4NT3`)AMxDKBdFUl)Xx}rM-QNqhq~oTU6hg2?(bt zSuSsM7Ee_kyLjDCW2<{~@wc8fZJO~Jv0b>|Ax!zBWbZ4R&VU!UT)sIbiph(uo7(ol zYpJabzS)IsZl7W%E{Hxfem{`H!8h})&LQ4h;g+pB!be;0RlNFJCh5&JI|q@Am)~;N zZp+YJ%pw-@@Z?SLxE~isd!`@`)mT?0dtsM13xEI|XHfD`j_diDni3ugXlDBL*Szvy z)~Z<6rB1y~hqfNK6rs#V{hx;KxOwkhCE|_DTJ!#(76hc{rluzRh2xM)0`%Z&G%J@I z8W`Bxp~xkT`$pZyMWW)ZJS(*S9rhis=Z$eEFlv*4vY=!d`tdHHN*AROS$*<&j&jqlx|@Z)7CXV zkL^FpzkDCXaHGcnAb`p`-@7eiV*0vV$b^@RE4!Iv1iOt#snhqyPtNr`bx;);O$tnw zUe)P3b4tvTHN(-HJL>CHVZXp=U5#u^Sd2@x+&+O5as`6QjhX*gLFJX|nAES@sIjX` zq~wxOP?|+*Nq<0;ryZv&;?tXr3jqe=_~H{Y zI)40kNUp|JP22_eXm}UtxZbyP=Y9R9z1=GmPuQ78FH}`8N5^5*g-@Ue0WcSwC(&)t zK1E9wm>!V%26)7&AUz^JDBA8-)rqM9OACqRn_6cJAQPi)VGRN@y# zx!3mp9UkCIaRwl;eHN#*9TT%+VsW5-Cl^zwBKg8AZ4fArKsHbVo`DGQ64+|B-(KL< zq*|$8hXoqmSMBAC67V^2P~iXqRB&qQH1lNAE0re6@rvbD z{HdFu-%1owbW2#GobSZiZ+r2B+&kgUbeDcz1bVtubE>(IjzrDN_*V9;?MeB{*uej@ z^-+c0o;gvw(>{F9<_lA{=FTj4b`E^qO!swvQ;X1lZZB0vA*-jJ0-GOkOJ2^pvb*5Q z?$nVqIHD_~vJsk&1v7fan!R7VkA>`8Zi0@4eg{CwPqx;LMg4kUbmOo^io1D`P`wo> z4giKZy!-?t0KqAMpIr(=O6F*3_*;MIE);jbV<{D*F09cjibe*7Y5rPbaPeE zp}zFeayWyVn?bvkl+%Hw+&9~2K|VT#!`nRwJjM>ZeinN6AOkcxOdH_ed-vAu4~i%P zzDqH=^l+has$kKv>#6>T?eEYiqg*_daMT3-jP~_{pbyiAmNY_22R<~|^_S1F$!#td z8Yht^h1bLNS`XIJBrL;RY*u7?8sWwq{7E~X6n$GN;RwE^`r z#{w&$(6K#Nzuw470(_eswSZ1Fen0g51Irz8E%RFJK@1W-Q{>!KY$0Q~)Kb#r z&0ey#(x;1LEz9G1FQu+A=Q=Q@7y9pMD|swqZbo6#;kysWm-r(#`Z!x~CdtUinBizq71Y7rKBF0ASxqjpVyncCd`-=$&|+&)|uQW-6i8C zOUPywi_hK`K)$P~>~6&Dq=EZ>wB9ye0t#Iw84#8|F6kCgSWOxa6BCQec}fk_1O;FX6M!9 zQ!cHDc^gFu?I6X~Vo37xD~H|-AB(ScFGit%rdr~C9DmSjZ-Tb30zXZ^yXm*knwryO zF3z-kc_PP>rAsRy<)!TK%K!<Y_h`u zG#1&U=As=bF5eVB8YpD@$SFn@DKi-HLcs>=#Mc-8zMg_s%=*AR)tRuD0Ne@^S};Y+Sagh|@6#u>cjYn;WVJJ*lS}!$AXtGa}hg|xDk$loe?&|R{`F$HjQo@C(L zGN+W6C9KRX*`!4x7!d4fhFia#qh^e^^CN92kgH0;k^8ZpBH;_PHNHI45uyDF#Rv z;u4A!09ow(8zZ99fS#|>zHK{T3$l}lpn#ygJDI<*vGg2puShn%VYx}MV2IsR_Ct20R_s2IzcUpbC zx;S{D)541Qkdx&T{mZ1dj^0@=!uR7gGU*~XaD?Wqw;MQs^Mnv2^cGNCV$AwjTx?7UtoC~&OjA58AuYaX?=KPX+MHUszIubxPU@QDH!00 z#&%x{2kb-3H+V6$c3iU##~Dre)Wj#!alkftk&XW~!ONu^x@Yhem+>UZANz^rZGDU9 zTEjD;@=vd*8X*Sf1eQ{Qal#<6=-7=iaWamxEH&i#%Tncn3iHR^YJ#48w$`s!A6K~0 zbuUI=LFUwL7XywEj|i6B8w;JTeeL=yz2exenm}cDLE8Y9r#(r>(31VnuP={beMDX} zw789svW<$0+U;yCRT=N>OqYs@$sL!9bRW*KXo9M09%Wa0U;9Bi6El-xy=tR)2}w;_Fq>BNyXRHTRlFlfQvAVqI`L zn_q-g_aAjI$Q`>pn?LC?jzIISA~7R9#TMyZ-aT7yEO2^%D!kQG-u5&5?ga5oYCdrq zQv;f}0*wCW%Hh9R&cNo3qW4fM;}KHsx&4eHKqbXfrygUX!HV&8t7xSLZ&ks^kM7~& z;m~BYe*O9!-VWQ4S)r+!SYq2qnpOd*T_1;rUJ7hKDvMNf*q`I%N6he6tfbNP|BuTG z&db#{Aq^GLT3STi#9fFmMI?vi`RCUz#+;rfwu+b>!VU36og?iaW|VD$f+LUJG9XsQ z*(VF6j!;OXDLn(#_a($5iypi+M#oKzSU5qH;U;@}cxdwuL?V_Dh-sLUlhZ;GGO`%K z>Cy#0%*T%(6`h$@5-pX8EBo&oMMG6s&!Pd2TZ_v$7Pw714R9-GUc0OHu>d6qR#%Td zb~8<<{CTq#$7E#ao7`!wj=%?@=osv1WZY>}2TCGKP4&j(6(?RV4kx`982D98-N0dp ztcp;H4(966;9y;t&V9_wdtFT8E~zf5t&F2(nHC$T`V;m9U;Jjji1SVm|0%7CAkCHR z91%}!!;97G0+O^+zgn(s8de)Ino_869Jx|?iT%k^2Gf2kd)-D|?r*U%qiV&{`U=wL zJlTBF!~XYI!=Dlo60q`6z0msk#c%D8Ln?aS@c)5EQ91xuB6N zBNS!Gdtwel>1AA{szC_rS=O)T1Mmsrq8^z4q7L6Dm~p)Ir<0cfD2B4BC4k!OD7)Ns zc{?Jq@V0{m7mlGs38&U$PKrbX@BaZO*~ejRlDxj&Kfan(K<6$rMf&Uj#Z*BxO^$Md z#SpRCVXa0#8A@+*l=;=GC(t3I7uyOXE893kpF%2VzyUSOXhH~C00v-5A48TBUtGUh z=g0QpSNJz5C&Fcnz7#nauf1(C1l%d?cVZ1Yy|aDV_rm$}x3%B-bBaxMyr{aC9v3G_ z^yuB6hckO4E^91Ym@EowvFFd9n=}AjGpNGlZ#34x@KJOpnl|GOn)=1QMeaWO~FnQL8J<|k`@_Idqv*E_D8 zg}oyb{eyez#`6Oe;Y}zbb{Fpgvy~46C&#nDRX{-LA27wl+*}zlYiwR#x^vyj*b52PqkD5@@7=f74X+ttm**5NR=y0fOr)ReL!X<6(mw1%W!j~}L84cp$D8bv;$uT$K zN=ud0;ng8PCAzU4u7s??xct0Wr_5r|eXBZ&=0)^s%wMU+qe$l4{i6CJNrj>Q?&SE=ecqAm8zj~7jGoSQ}YP3oMbgc7i8s`iQ=tLpiZKG z5)}Ybyy0+G6S^vl_T)-;SAv_d^-#%Y)`&?pK5ni}{g8Th?#zjzpt+^ z>=NRPo8Q-u&7=TuP{x62u+E2216m#9hPOO0MP8{2-pwjhDrxbgSAE#sMtMIZND&_d0*e~o%(#?yYt*DN$EQCuGpVe zG>WTwTnRi8f21~k3*RRBEX$=THe*H6hkjXiQb8^3`nP>GHP5A8u-&9u{`egPa42`J?BxVDZ?7c{3Ihik~QRW8OKrwdqgB!&bE zpt)q#_EG|9z~1eE+L%HQIi-mfbL`kBJBbJR+KO~~z|047Oyc&^2udyqz|>EXlmahx z6iQ(?3dG}pfB^G;{9~6p^qavAsRE(j;2Ww;5SY^X=zGYs7;^sSls^OGkS;7xM<);m zB>7IfnYAWP_fZjS)N)+L&XGwAUt$Yn$-o%{ zhTk)sZ(b8?{Q~YbJeDXq3=NfXRJY9I?O`~m)uOjAU`RDORlOS;-{m0Xk{`~$XGc*l zoXe8dZ@Z+$Iw1C&tzci~p2b|4ZxnNmFhv{LrDy*o*Rc8G%1EBDAC3`!mW>eS^a*ynTvJd2MPfmJ_@Mld;^HFkOYp8WtGu2~B5=FAdLL4|GTcA;e zz#Y5`onWd|L!1|fSJ%!m4TtR$v~Py&UOX!Dlt2Yh0+ygASz`Eh1nD?T_X@*JKtijX z_b4v$+oBrCdhjYGdV{v&E2okpV)|_jpB+@$2}R@Ypj|>}wDpo(MtsPk1O5T|LL|N` z7vg@|^r0&W#MZ2iC4k5|b?>?l6QlvXY_3ipay%>0ZALwNw!zmLpfJjZE}n5>(d^o_ z%WvpS=1r^>^-+Dm&*+f5V}1SFwGoH_^zb`C;a?X+Et6~QFqZ~I4)b5aeVE%x&tSFy zkzVJ1yk(=g7tz~LMrGY;QDHA*QJ-QSUX+CH%Vmu8vqKl_bJpKSfbMbh5ThV^)EAPk zA}X8ot-Hx@r`sR|d+PD?R&|!1l`GH`!3!_Z42b>fZv60L6@Vzo)Q?_=M_UxCGG<5l zQAK632Pne}N6~5DrmnH59K!Bk`}Xa*ypY@1esbD-KO-^R-{3-8@32drw!y7!K91Te zh4AikRLt!cnlYJOU?DIkHmb!d8lQI{jPcCLESy_;x!~K`(`j+7uV0k?aPl}UtU}D% zOuNL~L(FJ^qcGUvF>zLXY1%vaeP#wRxmngBl@#1bMEV7^QIr>b97pJL1>e&1qg=p8NZk6Yj~bmLh|ypO;+LBL6p?a2v0`Jxu!MKszNzZ0O5wg1y%vO0N$ zB^t5wlcPYyNGU5Ti)eu``ZD6igvE|P>>vaXEIEm#(ftm-x+eZD7N%49F?HEF_F8N| z;+3oq9={BjR0;R7MGeAF&@^)4YggAROc9XcHAP*SG{@Gadj^XJ-)kRylOYMXpPZSQ zdF{6H7mQ-zfP<+m({X^&x4ewDItDERAcn(Dq77?r_Zcl`Sxcv~+j=oUy9s0BfZ-gh zMgzJ9CK;EG@T@}P83!DUEwMX%askVIhj9E#0F9hDgXU@4r^BUX99I zP(A)}`WZ6HBH8=dpz^P*8!fD^R>8|}0;mEGaM+1{8yH^A1qoIeMz0Y_AoGiO`^TqY z9ZAGKVr&qj3&-2Hx(X&YRx9y#;+rnel)2!iU)HGBgR$T{h!0_+ zu@@{%-$4`>=BF=EVCkG5Tgs4E_TU>Zj5&S#r2l)0JVTSAI`_R@LI@VMR4DdZ_Qi3>ranY} zLo#QaTGj9=H0}L40f>t4Rn5jKrg{u!`qefdNfEk)=PO?)Br_j8g-%)_*w*x+x6>_th}LzIn00GGdFG z$H|+~Vj5$`pJV1a9&)hDSe8CmC)rbH$~Wq#*)$m&%Uf&B{|n>N+T&W=+6?SwzL}Oy zmESM;@!~QS;xoY@amShMk6A5JP2*V2M`1ZeuKGa8TkswzBc8VmT+%RtuhAh*p$H3t z0gIldC8RO#?Znq5>2Sdiw%g9lEe(Bb%zc%Lq@*vL4_kk?LXe#)#FT^CHC-C;| zhJID_BUN9;J7ruWy7$(J90WkX9G(95S5%K?m+mN|*JU(Z@2X90T8lGgBw+6Q5g64R z$2mYW5v*3=k9Gq0Fg_U^=uNpzthe0Us)0C0wxDx*iLTZ~0PLC?jT<`A=-2A+_D-JB zh}ACsWks?*^GYt9$Tk@K&@gS2Y+QEdTDNIPP|zL>Nl9Cw!EU&k)}SGnWPh`HG_@oM zDJ9yAH>b=j4c~ce+@;3SIpAIl>u7Cr37f~S3??T~k|M(FZ9{q}i& zf*p_)4sRvEz9tcK)fuzFWX_K~^ro@DW`S}%#sMPvX7$f1D&$lc20)pL0+EwRZ%4vO z8lBr`VW8%FEeU;AtLihrecLfaspSH`wF|Vn+tc~rTVJ1{KyhJVT5}3I!uq=a1a(zH zpkDr1P*4yh=FGKsuNv*}5bHVuke9p%f#+!ZKiwMbSznzQ>CnIla6r|fKPGpy@uzzh zmpm|aWI;o(cJJgf9H1x38dR_1D0xMYWEe5VL<+DFQ@NBXu5b7`JhRv3niwOKy>l@2 z`bqIjv3}<{0o^uh?;_+Re5`DJrNCt;QOFQrP?ioCC-B<<`#pK{PhRZ-z3`SF!S|)#&Si3hViN(%3>;L2I&Es-R z-~Zt-#*B4_NT|lxS`gY)Qg+d9iB<}&+V`Cqp;EM1N~u&@RFc-ag&`?gl=cnn-R-OP z=Y3>8pKpHO-}C(O^qSXeW~jUSzOM5+&*OM+#}G#oDv7SWhoz*X_T}*GID7Ui#TyXE zYjC7^;$3WN{BDQZxSq&+{{H$l#^=tR^PHqy+S_Ww`e3fpeWx2;uYA!XbG;E-v9b5*qbsal%S5zloAo-``lkKZ_V zew=%1P4fWRObu`p3!CG_EI~g@(l1gP4GF2CKo+tJUnj0y353QD$U$r)5CDAyjtCn7oVX;wDX6Ou za>3k}Db9_o$x26$iOxJPruc*A%~X(-;U$a)}}H` zepsLFV+QMWFS74mb~;@%o|pg`f^Z}DoO-1#>7h+yMVe@kv%D-PHS8JQP*#>-QiCPa zL1&KJikSkolYAXl+EU_ zTxV(=kLJ{MnEYtd&e&kPefH_($p(HCm#-b12=ybYm>3zr{l_1{M=iXu+|jaNjKcLK zU4HCQz_k>Csj{wJ%j~>yNC`Wq`3GFmDv$S=z&;?l7Zk^r{ZTcqFyX=w;9eVK(M+V2 zJ@Yic)Bxyvf{UMv?#Et>zqDE=_!Wg9wrGJ2oX7=sl6-vcuE3hMNa@j zGkgnL>cdDvT!TF#du{-ftMovVG$P&6GE@8#STe2~S&y;d#kPQga|sVjT6;#mW~{=iZFfg(+sI#5_Bc(J1a zLqnSm-iqykR%T4xsxJIz&4pVY9ti%E2uInXb7ZTTn!39AhxtGKROx|{@N~v9cY}UM zeypWUawvt&qTq!v-f$ZW)U*-11O#He5c2TssH1$-5%ffcZ&5=%H<$*Nae1cZVmjJ0 z{2@XqDo$s*w}QFQ`nHZB;}A=T&uQ+h@k#Ec}G}Ai&hg`7Mcg5u26b37iLQ@%f6KK%~zJWGS8(G7%4j1K;F` zx#iCGoTW4mFvB;b$NH`K_TtO=bvf!jYvsuvr9Qq_aw2WYW3&`~#OGCIJewqxBzi2B z!*!%jBp0zdwe1E7v?w+M^*_lOFEZi1Fg14`FOfUTykyzp? z@MA4%L_j`&M(D?-(x@D4XQCZok|L&q6ffWcLL@~fqH|H$& zarL?cqYF52g&Tq4)|%7-lr>E6b3}l(m9++6A?d_G1E|gfwb5W2Kxb!KIh`j=QQzj{ zLaQMF#qcd6BH}_EF^=map{NyUm@J?#paD8I#F5C?FLP@NTcMD-C0+Qg2Z#_d){XTY zXcUIrNj=L!w8#-p9L?(fGEnPgz&LcQ1lPQ)dKx+qCPs=RKd^81Qzi(uNt|dg@>V=f zR6EZLo?@!c%enG{WACd4Rva7f#Ni#jc#xQKLj;!v$*0dek*nfdGod!8U&%uAEH3|1 zH8q(vrq1lInMIo~=zmP!jbhbNh_6bka^--RbTuI+qd#%Dc#3mpJREYvplFsmB$BXzaE|QV_YzGb{kW#38D7b_29v>9s zO#eBEGM)llK&nbI#Ddj@E`3-{@UXBs`kS;b)#xjjkS;&>Onm;Fbc1+oa(hRC3Uw8p zISCgn&6RrQNuvQ^2CsUGOjwiixn}pl<>kL;PV?ty!j`s&!K;yKvJa^LiX9kAHFopv#qYVos8Zj-F-B=}d-@aU*0k4KeXDx^9`+6G zychmU<8BtWm%n#kjc1D;MDayz($54i$c#V9!`AbuK`T%|_@i4R~itqyO!9*LMI`niBK zO3Xo^grb^S;m=DE1E2u()AC#Ic^vBRa&vQg)5xKVb)%XK`370rLAHggGXQ8Y1p9al z>TP5yii%-eG& zRd3>0Gb{7XMZ6AFP#7|^4wv|8W#XjySLy>$c73Z10pNhe*uEv;{~^4Hgg}#cHmolU zkSB=-;*rRGI9KvXq9Led6as!0;fW`3E}$BHiUkMaix=K>H2-PmM<|R02hX^dLdezMf z92`!H8jI!QfLKnY7^xGviGD#Dr?*_t9>O)M93)U-9OgnGR#2;nr6uWCKOu{nS&Ksk zp>7g1LV{XuAg|DDBq0e6m*{x9(jdWdlZ{-{I|kJ@Mgf!zfU>Q01jM% z(@{GQ?QJnCSk>3p~%R{wN^EP4`h~(a-56D;K+86MIdjAp&H@k_l12-Rt7!Ntcjx5WFXH4`cHNJf7 zxo82)sA9QthoRDK5GRl1x8Pd z=T2j4db&OmWvDwRoek3gh)qH3lnMj@Za`Os97mh)Sp_mfu5*^)5xa0g%0M{avYSHu z5VY|0gJTE|TJoro^3y0#35?y5NE!301s>WMhDWl<-N;F&DL>W&98sj`S8 zobORKwS>TxZ8=*peXkhEg(b8ZHGv_)&~0|$H9jf8W{RX8U%fk@9 zxF>IyPJ0dqKkw$cEURV~1#Y`f-qAm=(d1&^;^_S5yy>jYIMs)=LBxfH@u`=_Vde@< zs1R~pd4xlb8|m*VPpyYCz=D@+`CkPa#)IZmT3KvNU7`nqizkQ-WcxO{@Bjcw@_A5V z8VKwl(lIj4KODz{L8%P*6$bclu5LqdysF7h$?yTxHwLGknK{E&{vmiVB3VnILtp&p zaU{T%OjwYO1xB!Fur(D)-(2?|JU-5XGI)0JT*RtXz>uv%G%z-L?;i6^#28ZUDg`;J zRn%g{3Hf7&a3foo+Ee7%0UdXmQe@Q|v0%X+8{lB=z;uYZ)>JaCkcjUSR-0PG$XOh; zKm&EC%33sJ@D9Z;4Xv`wz}XB!p_zFGR3NG1Y13M^_nQ=U7U99Y6+k`P@D?i2hYw;6 zu-!ywhpuE0@MAlSGHZ651RuLsIG$NT5EorMLJ}A*BY2a^^&@?KdCI?UQh4}atEbKU zU;dB>3!P|t1)Gfqw#cHJH%-Lf0pUSvvLy}axUN3G&1$%_ll$@wnL_)Jjn4eau?|sp zCoPrKN* zPJa%7K3hzOMI?>nCmt)js&pKC&iTmnL+{x7t^@;=X+J0!G_`aitJD1Hj#5-ULSW^k|+tWS=JS2;}$?IwWqJ ze;!Uj@L0eIe~NzDG0csz&>B8l;rwU^do*7oc!@UhtIuy+H-d>c zcQzb38M6PHTE&TH);bLJMZ@0~{=9B0l&BE!i5h{JDfImL54I%-jz=E2+!&j>LHI52 z_D%1v+%y7%&*oU$t9^=BF)z+>T6BtQ(xF?2blIxCY6p1UdB!MBS{@!7c+uEDYjZTY z4q?)5dPmaUUS3|Ztqk-ws(aDSE8?Ex$j4^O`rB`R-~*?nrlNkNU`Z5f|B7JnJqtrC z7UtM-bCdcPY}V&ja>wS@ri1dG8E*-UEQZhr(T{XxN((2Ap(kzqPG)s!{d1*^zsKj>+3dIwQOFRhM#2SY>r-Gb7@TLKc0_kx4 zUpMCUa5P?zO|C za3qnHLt5D>E(8A~C->9t1@rA){vtIdVNj;vHy(gKOTEd+w~I2*WO>bOHOvaTe<8iI z&JB)8p}48tjN!0LPxRY7LyqOkn1O3}_vD$IQsVQs6}f76v#OY>duH9M+E)wHb$j#^ zG*B8KhKYpAU%srzopD5Jct=UNJEv{a@ATg=u6U!X@Q$c?Q)P#iW;gB=^h`NpqeSv zNmnTzMn`vcQ616f^G%dn`@JD@L*oF}GcPCS5O6(AxAq~;)rSY#rN!&flu=eF>epEC z01$hZsI;MweS+qJB<^DTId-Wl5m7;`7$o4(0??cinlUzJL-}}!q7>b^USWrtni^49 z%!-tckGi;569WS)2!DHiPc+Q{5&ix19_qMnyLYS)vI{%!a<|J(MjyG`r>U25tMOkmqDYnykV+rkR)EuA9^O@rkm_K?E6@z9t< zj9~Meyqu;=!`Zj|iV+~^@2Ci!6X4Q@B}RV7}BUHtO+gi8TaAm z&!0n0Vq_%Zd|U*d_Y_LBa(c)d9bjfa2nYY0gD#C|J1C^y+{!~-35OF@f(LYRS=@fA zE=DZQir3wI+m!!0wBkY4D#xVZ(7#sHP1UN^3P$y9yk_HCnPgmYM_R?%G?PTNdnGhf zqt~5tnEY}a{Q3__+e;23$U^L(M%$>)Q#>#jIu!mrFw)Y}cyJJr<)-CFx~D zy32KKCck!>irMnKHoemQ+pC~gW1)F$X68HV7guT}v^A^qGY6YXm&*LiVr6EIIii;u zf~GtDwrg0)%+B{aXZ=y*@L^Zb!ibq@2HF8I4m%)8vIt1Sj2r(}QIu)X=;ZdH+_?=| zIo+C;md)Qco{JZn92(ej>`Z<_9yU}|a@1Zy0XhU|PE33`3rh-}Wi0Pre;!_MW-U~H zk-x_9 z%}R+2KeKGU9{6uSaQFv|+b3#5fnU%lu&R%4*HGdxbNP9B^Q%x}=djF2@76To!4D)1y^Z#C=3opvI=9#t zND4Iou>6B-Vo%tPC8SB^Frn62=!Z#=z(;6KSCx< z(n=97^e;RHMkYzuOAE`<RW%<{-u<<57~QTAZ#q4eQ6~C{*=K9 zv0+`mXl6zRjjSaQ!~5Ukn%VgMN@&hpiDL81f1Ud0^|$y!>6o_X$_o3B|J^b0_7RRo z_IjVodF8zvuUGnTHom;Ta&Cc-^cvfgrZ4&qMb_8D-|f!5INO!)ZKU=BqpmkNPxG;@ z;Q}5BaBr)%^~hZDCs2@)L<6ZN$Gw3-T`t_F_>^*F*1;>n;<9g(V=b$bJkM*UGN;U^ zAb}{9YC3vrYftl++kA|ZU@PUW$2TRqX?@%2Ttk$#uLb za`rT-Ce^gD>8nz&ai$g2RM0#H|Gwey(a=OZ#V@;D=+bxY2)2ASk?CQ5*gv&DV_s>k z?a!yU!j^`MS0?E&!(+$VijOQk_7lr!@4?Ga-r0Ra*SAYc9u)h*xArVOSy$eh!q}<* z!aZIp{sgTl3UecK4L9;Jy77zX;8Oh9hrAv|1s(|3jINP(w+tm~X5bVRPZzm#RMnYG_xVIK{Riw;HEBS#@xU%zSH zz1bi7Xu8r1otaWB7zwCs9k%o4&Lv4YFzi*;wpj5B&)VoJ2aYwIICiCe80l%>rEJ!# zB&{W7FYh`91jVY$-oB?s%-4dXi7(}r90+qhDUh{S=mf0CuV*iL7FEc`wthl)7X(%2 z_m3$`yVWxvuO~4YsUmNB#|jjAsx7wWT)El3M`%*NLvzX0#fqR8oq|hh_R8FRaFezx zE4z?8tZf$^Ceu%pyiNRZyTX-oQ9Vq!&uHv3?k@}r5c>(uO^hxchIlz`Qyq%CBE-?RLsxc(%wJEMM7qCdk$mMGUZ15yX(9? z-->RhNV3^q{WJSPf8OhYLkFrcnk;2nE!s))cGJs)))6qO3?A~~Z|c^{uqgrd{;6A0 z%yu-4>V$nEP9;8;9`PcoVMQtGqZCmy`^$}Wriuo5dgja-PgTSbq2%OdsSEfiO6xZ1 z3Y4KMn7?X%oZ`6+nd+^V8N(YdZPu?GK7Xu0&Jq>pvjg#rFt@3<6Wr%p@1zwTjYA=C_ma&^`gJKBRmX$WK(k5)D7uP#=Yj2<*UC&scP zSWz#^{8W2I=8kY4*$D394aISejmtbM%8#=u z&f}h|p}TRu%^J<@Vc)?K(I3w@`~nws5`P7=SUhFMS6|Eko%ww1>aN6X*bQ5Gd(<@^ z3605Y-`vP=4n^IX1oOYQhpC&K+r_fuWy6Uzm6cf%nub0l&(|%VEditJIUE8G+GXzN zuUaMV#&20yi3i+{%BlIf?tWWg`R3GH8qq`E>h@YC+Jj#U+5GehEpX#^w7tq#(r(N? z!5a9dBctdCSrfhFxz%*Iv)&%pACKBM-}p5%Tg_fk@4+Q7e~A*BL$(rUTJ|x9J8#s4 z^exC0=l-2#^@Uy18@lh-c6~Fy+;_hHOvdX!XJ2u=4UpW0<-W#t<( z#OA##>D>EG*HV^R89oyy*Y7vi#+9SWVV+OciDVcT-V~)<>vhWJ!;D+}a&GFmgkHolM?AC7M!-BYlNZ|C!jZm`QjF=X*v^6YQ1lKoJ_6|-WEDak zPLebDuX*nG=BNSoffPH$osIw4%&bTdFk&LCCIKW7fI&JU-OK;f@JC2jUCZS)*&c84 z_dEIPGXHw9tMLKx5yFAdL2K>8 z%K{iyVBUkQ0m@ruraI5q!`_)U+=AAA#u90YJBMrp|Fv;LBO?_QOAgHHxHp;fAqR^l zH@}#OORXXYVom0xms~9R#Pa z^(oXfj`o+j?`{tl+dSKyF123N(RJ*@*3XL zu#?6{Spwq*E2hmJ&$SBM_t(#77dc{PZ%AKbm%Z0E7VViG#ziRp>*Mk=hb8fk($*iA z)~mv$k-I3~o~B<^l>~o7solj2zWn6gv^k#--gQngC2sUJ~X!-5{O8kg>uI_98k0){^JDjFMuqYb#mtzkpUMCQi$aQ z1}(j-sj2Cm0)|LsDg>q#&>oxZ(MU79h(}8f!rNkagyH}jD-#}^&k?!5QcXK73_L*Q13sqtq&cL$MO}<=Rv0_fjmVdVxpn)Z0%rnnJl5Xl% zxqah1{aU=Tp=9mbOf}}kF4@W$*@U;#idvI7L;lM}4{gx*q+Ryi>z9ZqHCNI~PZ%q+Tn>(C&4LnSoW_Su{n@;m<&)f*Sfv^=LQ|c zgXE*am_A{1Wri)q`GNwWqwc8}d@OV=X_`D5G_^|8IS0sgJd=+(ciub;0}AiUY2UdMlpoX8UOrGPoFH$0As%Pq4NXM3$+8X);ELSe|M_GN(eE}{sLa&($fA@S+JLp}kEDK5UsL=|dq7M7*O zsan6*Dc2PBj-7SR;hr+PJ8#7+sAY@RI>(vS53hXYz&;v&TK!CO@JW_)QZ7#fpWSh^ z-)!tt@-1_A=iqh^02AfumYaf0AqYAXsdQs%W9b?_^ zt!Q~bCcuGH;m1}6sNzq`(k%^0KSCCg_S>7J0ixSMQ?aOnhh;u5)GQ|=WD-1Ky5~nG z{Oj=r2z7dV#uz3UB7f1p`@zJyk(AxAG}GL6(&b}7L}~X#g|p;ofOputl)&y%bO_NJ z5bnko1W|Y{)@Sm#+O=13aM5rb%RT710J!Yl`Mb$D9l$ILZ2R^$attW#0(^OeE#32U z$>Xpr-TrH}>a|_fBKj5Ffk#E}jO=GI@%20v=DPlE#gQjR%}2zy&JLM$+3+Di1ddve zDpBCGA<#i87E!10*)7_oatDw^D4evUQ4k(LeDveCpAVHlG=X`k#vC=J>OFv|DiBel zBS0Q;0^I`2yjURrBrQuJ*%&1tHWa zZ(o1^XjnB$@@~4+paw*3bhNI&zT;$t&03~0$TZ-X>qS-ma`}1931bg+d+$VVA&XoE z^}_Vd`wA?#+0aE+$(SWJ%BN0qdV6l!{X;n{HHRij!?qHu4U5xIXBE&$w=CodRC*L# zN<>ae`@t%boz#d$^chp2+iEpIFuT=HSb&9Mqa<76LOXLtdQjl=r>kI*gJ= zR?}MXF&A%ZubOpwP>4hlpVPf5`;Khak#*8yp&#v!FcS|y0#z(Z2XUx(_TUAM_8P~x zVbNiTh#OM1|fo<;y=7CT0XFo z42vA@J}2g+ETD$TBpA6JpTf@v-|g`P9{LJ+Xfp87pMi(29xO_q{&eNdJTg=D22qgd z;VZXTH8$0nzGC@&Dd_2j*u6Y~a=Vh9oIM8L?`;1PIrBWMBw$;&__M14l6$FIVODDGG^?7Pz^tB7*;g6> z_=l$OY+rT@K#fmYOGeR042gk4qd*LqvGL@eDSDGX6gmn%uncA>^STrWxZp5swtET> zj{)`}?=Y~+8Y?!-6oV-;bC}?R@Bsy%N-iEHs=z4HnP!keSDvOf1*#2s8wU@#E>@J1 zdMR6>LD^Gaz0c&*U@-J;P_L7vf@pd+evJ1V9#73Hoa9#tA(bQY=VhFR97O>lURNc8 zT@(l@_-jcv|3S$fS%qZL9?4XJ=iB^~yF=gZ@gDb6RoJmdZ4b4hpC;qG(|t|zdb56A zuq86iSv`rn>K`h?**N1$ZZN_X4Lo{A?NUCaUuA7-enuSHf4*2>eE1-P(@k95RUIsn z8EYW+$#?H#zD-Du6B5r5Z@oHz(mI(PtNAPm0bjcxp*4-0SyFwGm!Hf}5Jo3~9X2q% zFHrY%wFwkj!t?FHa3?a(8GrYE(+;<7B~w%dNIuc<&eP)!t|Kz=!I5s_%MiT^27iTP zZmBLr5||aD=M)NC@c~-1GhyHU5Ghe$7nxYdB>-`Spk}LC1QgU&cG;LZfkzH9O&W%Q zjn}XR%Cl>83tE2h+*-U%myBJo1z12>Cat_z8B$%y|K;RpcVveD%eDWsM4c4BY$g*}e{`pe5 zUsyzn!#qHWw0m)DGkpZY;;oJuCz+k&{?8@GzZafHbAwu=qjR;@PUzL#7CWP0(mM66 z7#Y8CChcyng_MBu3087&Tn=0deja5k8)O{0>st}}6Hlc(DZ)QMmPnJ6uqhE2y?ps{ zi@`QU3Y@u=m@wkM@-BuV)p-2%*I%(CP=?YZOFgVi?=XE|I`4RvHG4jZ%1v?=or*sEy7E}mA3FyrTnUdv_H(bSrh%o5B#420gbDcYnnp+4le%}vRyMLFzEyFi0{-! z{I=N-jAR)$WYwuO4Uv!-Z>q4b@942(N_KW*OT6l^Q&I>wZmM^HYN661kR7ze8E5pl zLJY888u_@zB=E<|s1vLi+WYPEJXj-ectWEIw9V!{%6e>m*ixVD zx|rXz8_9MO@WozI_Qdz7;vyxrFQs9C3{O*m3TL%7B1VQbJ$O3x1dJe!-FMI|5=)$z zp-Y8|^K<9Jij;>6mZx&w!WnXc^=khW&W^IJN6kev^X(JDAk1f8v;XUqP-W?>yg#Ii zPTC%3G+Hw&+BBE+RISWD&c*pn0SR5EYCBlo$p+sW+`pl{^r7+u++mkXDgrmjE9W-P zI_iU0^G15=iHOPVv(o013mogGd2bbna=7f)Mw>HyqY%+6Bd?35&ryF3i8jgJ&~7_r z?G*+Oleo%LS~=aCtnVV*xWUaS!&LnVd71%oE`|L#UTZwyIq1%YmLLrhjwlof<^N=% zQ`AMSgX=;rRPC{db79&bOsIb_V`xN(O4t&=rIr<-PhRZ3%LSDLkac*Ec~>|E65A~YdBm(yMbGe!c!_zoF^!%m1fL)#jXSNbo&L)__V zK;kC^FeswBDurTjlY0Ay5xjcGj2o@KqM{=1YB}YQ(2kvBN75@;e09IAwk6Hz?E>i-s7S(|6M;kR zK&vPOYv{#wIT+CFVGUYYPUpwe1Z;rag#^&TMf<$%M!EwZ3j~7^A&Dh(H~gxo)CDYp zpoLKF!Db5=OYbTrHcx;uy3iwvY%PB;iy)eTt>p}aj6EUoL81<5CaY%OFq9N6(5Ril z#5_U;PWYnL{YQ2CYD5Y7;<`q{HOQ=mZiWo~4JD@W))3qTn8Fmlq$hK#75UZY@RZ!Z zIR_rioHRv-Ef6MeRjvqiyfVa;+(KEKO3ObFlN*TTTG)$h#@Gw)2P6MXkJ=hvUHVAg z{M?^v?{f=|oCuKf^9t}%AAj4q_OauyB z$6^E_$Sq9BTuQ$iME!enig2aE2%n1bWuP$E3$n*tW24f^XT}X#NMkJ6*1Y{FPVUnb z2(=9m9Mm&NQ}zMjqfM3tVS5m*W*^jNEE!(SN!M)BsxUhd6Bi9QtUD`de9!w<0p302 zGY3ky&MAnteN>3$eM8q&4ricfa4oMx9st?vEgwF3pqJX_)@>ofg3dtt;J%anhqeAa zZZL0FY^2FY9wX+ZNB3Sbit7noy=INRO;1wJ-`?hnhU2E4JRn~oMHMAbVlEckw2A;J z3W6Z#YD=onFqb-unNUK;H(I7zDC7a= z-fdjP$=MAd(ZgWh_yEvh`MqQCpz1eNom{Z_pCL}}0hgaorSx!V7Dfb>y=Q2gPTo{Q zmX*z8pZxO2VOfdJWD9TbY|WhAlfTR(c^>7hp(H8A9x{mh6W!WWQ{;B%%8FYO#z!It zqi<&*?vs5L04)`wx->plE&2<1Ha0klZf&YsKU2guG8gs7tptb&7n*7=Y9NSr-p5|s z_7jyuzy6vx;)GKbhlJj{+v~|c0S9DLW8-5OfC;-6U6@P?;ebrY*c{bLVTD~ni+gpzGv&2f9-3EL;_qh*w!hm*VB3Pt^IX>UTKFBV-Ii&TYf#9} z2s_;z{s;e$2kHIPEbfijm@$Vg=yD5s*(H{)2kMbfO97?8tE$A_>-a<3$JK(MzZ>$gN29_;dP!FR6|lF?9$h0{5O!Z)zw@8{7GJd zCfhpT|+@ZR=*#K{s8`B zCz8|*gn3UES~~L1lS={4?IRHCoW?m2$WdTa;cNuMBNA*<9nrAuJ~NvitHwFHV)+~s zVP|7yiP8w)&9S?Nb4$`UNLM@cKleY)duK$8^%rHIn7x+=qtYkKWOYsywPb#Aj^GN6 z`+3fi!E+B5aDa9;`rQ4zWYRC(Z;MB)eE#i-9`E{RJ;&5%Z85c;>&_~)e*L=tRnR;d z14o$ws1;}2`3R?uANtq3u7+HXq=Fg$x+#+4LoOuc0-^$7=Qmff8#Y)$#6CbU`G~Af z<$b3B6boGX@XWIg+F@j#th8Bmq!)UMiYz=3F$e`sQ453WW=TBY|CI4>xJ0PVJv8}Fx8w@4W)EAjy)2&=BJy_#y1>Tf6) z3Mzx*1DO|fYJ`7Fo2on<77=kxO zdT^7ks5SGK`Mkv&6#i>r*Jzkb_uRxq`2eXm_ublr(S6M68{WwSnh9>yU0?6)!$M|e3L1>t&0uzyHE8>nW50i_fc$ZiJ z>RAe5AeV%9*uNfiVl6BSKt&i1FJ2=UsUWZ_8BoZ(h#Q?0gNP!1iRJ3!GBO`VY_S;{ z>3KmidCZslPHPaH3CA#K4e=t5jza*^U_I=9K0Yz32oxp|7Id+_K8|fN@sk;0Y zC3qQX0PNVYa|_xKJ2ULz|Cahi;0}Z)o3tIxz;>HG$dxd76=V@E)uaDP17SXtM#t19H9v+bD73LJ zD#ao6bOhIhGM)~AwlZA!v6GB-jB@P6)e(`=Kq_s!&qAMt)S62i_BJ+c6ypJFRj1fU zY$RlJQ&Z!{%x~ZUTo(;fdMyN8=n&7gLIWKlkLk)U%~v5#C%?*L8Rwq+J=*HoDd5el zx+Kk8JPJ~ANR1ZG{XCtvTO1$Sn%8(4+meimZ<5?yyDiT$y_&L{h5C&x0zc}ntE`NZ z$UZb3;mkFiqCIzxl#!ZD$?<}X%HmU>R86GB?o7ux&Ss}sSBmhaldX~+Bafm{wU(O# zQXoxoui>FX0BH@y?ok8~xCU>EtfCmiu}YZnIP5;!>1h5ojmJ{>5d6+bq(u$MB+M6x zMOINJhz>@%rt08kX&?*P?PJs~qpkI;GQ7JHib7o^Y}%o!?OJ5#9yh7s)5#|@FgW;$ zvIAPs23V?E6AyH{zep?wsXsv`BneO7om$2O+2>9Jd8tRf5)IgP%SqAD|ZZ;c$WWym>XV@7Fx*{Vh}2&+Zb&;hY5GUrm7BK%c4=G` zgoG!}-%R5QkH{tWvxK`Hrlxf%7}I5r|_OqS{I*z{#B2$76oad;T05rkR}ve+ zX;96ow<-dKauw?(BXrAglSB-XrM4FHxQ61LC;1v4Kr&qhJ2U`g@rGRPUtk^(Zlo}E z)a}X4)rhS~WS4|LkQat<_1x59b7Gc&j#VXby}UJ}+4C9FT@zL;wG7c{vFU##KG=S= zusHO>qD-p_1FNo^?{Ad4i));;v-+Yjy5J>8;d@!T1PUqY@%>u*qeA5m{#g!glE!yW z(jZF!14aV(R26B|FQmNkXLBi^2970lj-vlB_x7{b=Ab8JIXS1Nr}8L{1<&G_)=Zj^ z0VB@~Pc(rc*l%ksiU81-K@<)3QeFQjG3^+yI22((U?cd~d_!T?R-!WyiYJ^~4Iq>T zWn%DVLLto!!&^*iemY9S&6128>c#5uJbMiWQyofQ;Sh>?rPrVA)d1B^%7q8-0g2vX~vA7F@2S zMZe_PxJP!XgxPx8?9SsB=l-mfna-aaGD*AMRh_uyyjQ)X2~)Xr4hut&e@mTm-nX%^ z#d>eI|0p(kcL1;|Elg0Wn)n?Rm>Y`EvG?p&k*s%)_&d;SQCMY?N7&-$2D>EZuG#MDi?F5`-W9flX+Q?5UK16!SL1{fsZ9YFLHZS<778XP^ucYztxA}zATN5_2s{H; zYpL$qehmPG>$*N3zT%&?{cx`KEz9!(868)}DhBSwxaYmfGm(G@dD$9=;MaNAEjQ+U z%VE2WuZ&d%o&prRwSvpL|KV4iXAGuGyZ`tLuj1>`-GRfeK@OgY+S3)f;tV zJibs&@f8nb_viDC6**5mo^g%BFGZ2JnXq}%EL!w(#A0^Urkx<9y4xP(<{+1kfLnaC zW~(EFGz2iBb2>(3Bn;S;^%X@ZKjs#8*D;9743I!aI|fX^s8U_tdq`9bOH}MsyhdHO z;lCtW-MCpP?9?O=Xm3}p-@qX4dQW{_oc2#Y{Y0Ua#OB}S*E9;uhF}EnUO3MBD3XN1 zH;2-Rvi~uL6=j}qg;o~qdri~QD{ljqH-N=;4C3#n<_P0Z#C0TFFi;U*z=L>G$eN+q zlRA^Omc*Ir0u!-%hH$N#w6FRo9>8f+S;h>&CYOssy|+K`t?iKnZ?1~zD=UxsDEnNx1gIfVeEk$ zm;DGyv!u!)mJwv&rhujA|8MT(rG@5*ZMQ@S;VKDC9;3Wo%X*~2;HFe#!s?faoR1*L zAfU%wfK~b*<>1?+5I*wLr&+O@hk?GM6yuKCw8ZUdspkT{JUwZGlg(=hnkhq)0_8BabQJa`FSjIPND0y0888!|kb#vc|ghlCDKjy_^ay~9Yxg1U)DkTQ4U zF&u+cf;>2+6LItOOtziSzy2}{IS%JxmI0yf;t^Jf&3jxZ#R*ZZmmtE|4ES^XP0ELz>V8>fBr$B&my9Lb}bNW z4(@gZ*W}0)f$KcPkAu&ptQCsM~WWy;*15b$Gjy{uK;lDWU}E|%2TKw4G`1|1l}Sg{=R=wY0c0y;#a)VE-lQFfI;K|WZi?FAD-U^5)b&+Fxp zCQUr51D63P1u>_I)TzlHXNp7-8BC*)dzw6sbAyQ^?ob3i3CbK5SYAKj&*Gt)ZAn9D zScx5GEm`z_-bXfLD>kNd2?`IxQop|HqTgLqb0b=kiZtzf`E}hay|c;98G%B@Ovx?)H}l-@Omp;4^r!>7G@W-l=H6 zsnQ8aGog=}3nAoN#lK`qJzsdOYEQRW_WyP!sNbeJ$n?xXiAn z>Ob{B%oq^QP`z{aZUk0F2XrE07}p9<@>V21k(2~CNgoL2l_?MI#gMJh+Qjo5Oi@S| zFY+Lm1h%Y`sBYjix5nxq(VGEV9$0o=l=3MKA0~i82y+OltE)GE-S7Nd{Mus;J~76n z)?xebMJ!S~%Q3OOjK3!~Q|H8z*lGQ)Lzc$Nx#g`je8t{BTl4w_ikNcE51A_`hlF#C zN_4JEmPS@TUWa)faf;g%I?f(fu_>+`lSvdb4H%TZ59!S=_E{Z@R2-a5Covt6TJGY) zcAQ*@KEreHP>(v7LnlB_rayKc+DN`nKm3b* z*NfTQ98Sj#UNFVsX=o@(H4*>AVKo7fSO+$=WY1g=_Qq%CbF6vm>z1)d{SFB_B+MnQ z6_4ceKm8MH3VCHls=wNh-edWdD*t5hwSL$md;$$<3si9?^I-JLA6u=N&Ad8j@B5?I z;$<3w5D@JTH44B!>#Nvj<>C2$;VB93bW229q9Y=LaIL+=i1mhe3r5pgrF&o0c8Krzy?^;<&S2=$-<6h?#yJ{y+8(%*cZbM?ias+Rjf|QsiBc=+ zU)w$NW+gJQusp%e3H?jr_YC=tviGp#Z}|r5gA8rbv`JAb+;q@-CRBQAV$?fMaLp+G z{^7%4QYENakop~SItNQ8FD{PvlFci5n61rm|Chs``r;p(4&_2|3RUxxy1gg!&gRX$ z89hZgea(;G#@<-8Gu8hOYseFuuA~ZIdQflMN`QIJQKa5 zwDtknS+P{VPq4*qCnoy4iM^S*6&A|v6YkM_)1Uaq3v&vbekY{u=wT-)=$4k%^(*|AhgVo<$MO3+tY=$Mp~Rx_i>u(BlQe31Q%WD4t#Sf9MlsU9fd-inz!OxRtQRip%-g?wYmMnIVoh z$6stPy8cDN`Qh{dO|Eg3c`?f@pj7?#NU6TWd`Wm-4HP)Ajz0Ej+IN2UtVblR4`%X3 z{28A+S4%DZzt}%heQ>;YV3eID?4RD**^*rL!MBUw&Ij8XEgimGU$gYP+>>{`P|cN_ z=l*86Gd7C^Jv~=+jxj8|XP2V$+lh8s*@4^3!WqZdHJ!zz@yPyYBKXXT+Ae}75yDr> z@;P~iU_4ZL0|tc;$K{I3vqj$Q-m%1ECdDm4=59=$%@*FooTvA!GoK1X>Ck2{m7B9M z(_+MLdX3QZOTT{ro&C=jt14z+k*$%Y7=q&J0CZ?!wGlp0aZ=wX{9VS^6YFW|k@DbC zCeP`Fyt7MXetO)!G+ouW+_p4MqL00AO_p|Q$@5a;G2;{^j&_`_`8MWZs8=GKr}ZP# z#=@G4#`2w30{)@oI0F1gco=eEfzAL3NTrQ# z%o1Y}J)0Bb!!k8InX|~} z?X07W@tUNb$$32nIumj^+*THdr`rwe!kG&>dk^Ak;mb5x@d1sW-t$9o0 zHD7F#)A_n<9osKfQ71#a_v#Jal=<0x`zD_E55w84Ga~N~t|n?|n!V&;zm-VV)IIHz zxJCcRP5@t<3^teDXTYgK$Y)lI+9ME#oSg!YB5&b_%7AovTwG+sha>%zAN_i)*ZM-%Xa!YrM*D z>)#X1nz|4=*l^%~zyHNEzu-UQO$zE`QSmh{TDm6VzuBg)!2rd}$+`>Ghuv7&eB3t+ zJ`6s#iMJ}rxV-P|*l2ALZI#oFTHYE)R?XRm3+ng-rOkfefbmIOv=D0i@)fQOc_!AS zAVr@(!eYNZYvo6)-ZHo*Q^hro6h0BfM`-Tpj^~km@~)<=24_Q;?eQbtp5!~7kRSRZ z%6?lTQ{Z{HbPXEvA6b0-7PsGL*7PNq{|?r7zjeB%x=~ic@>Rl>b1DBT%HV?x`HQ|i zavBP|z5H#3u_S-2So@EqGF~y~ml=PNK)6HQphb+5YeoF-+mVhsCva?xehhbD8;UP! zh?Cf&B-b`n7ysUHr#Rl{QC^I1GS+Vh(i0C4TYUY^Yy=lC$u0MN4cf(Be&!&dz9jz1 zdyS8SDqR(yGA@`ihM%TCJ67r`XRh!k-dy?0F#7|y;=PXhWYu^5?>G0;%$qwfr#@~? zaW(9OLf3s>G&X_E-0zf{ma3=KcoW-Jb)2KmhAjp#5zO2ufv}rRT}BR*MMuIV*bpy* zcQorOcy%x-%Cw@VCBj)hUq)i>MmUnC;ZOIkwRsM2{oLD{9cK-Svy0Z=8az~=GLvl zJsG-?v!yI{zX)S^-O)Y4)+3qkTUlKiQ}2h}^H(2@S2Q0!uH(aT@7MqN#4e${q6h4z z`D;|oToX^=Rt4XlDHL|LbbSfE(zSmv`27CoQ+tl#>7`^knarKhOwEco$M=O>OEY{1 zXkXq~w%9wpOfYL^wx4YJ68D>#%1>{PxUD4L|9`)@qo>69VkI_Ba#}Vg5Bt98d-}ug zt6-eHo&POut;X~y7k0Sl47JP|vt>`WaYfd$r4GRyrs6ZdY$%?8{=FSpPO2|nwD>mm z@4lipYBsv{?4OS|9p|o|RWH?6rcY01_lJ4#r5Lp0U6|y4zqN&>b%*|{A#3M|Vf1MZ z88h^fZpF((#xnX^;T?7zxuE)-ZbnX6?(QAzF5)V`TF>m!4rz_k)2#UekS9sKGoKhLTX>T6U zvk^@fq+xr)+Ys=Xb$Q*qvkQ+sxWu!eX85k&UEv^0E6V6*{gZZt)Fr75f5ELE@QA!- zD;Z>F9fZmvcFmc~!QK4k+3NPmIhRY1T;FSkXYRJ(i>R6BL;gs(V@~RLt5A;Jv18uH zkGZJ%@}gWq-HCWKT7ip1!teO4 zdoe$Ltrp6$T`+79&KsueuBoKt?!l>pOAQ2Z&u1kR;-Fs(#e|m>hCXCvd2hVe)HKci`LXUSXI*c_S)S6Z7cXe0 zsb{*5l_hMvyoXQXOwQR~-8VtvLTV1k(I}bZqHut5dOaWs0wdAE0x;S_t}u{F*L;V| z@5|U~+CV`;atVw(Re~m?3|Y;9^9VKJ`}=Q~0m3a2MU~KwVaziURi%R1Gcq$*{`OliSjTp>(WE<~7+F9ot!X1;S3iGm zy!RA2iY({kj5ChQ8j&sm+;6b$MurAJSQa>ex@Ehb?pi zGv(dntkfc|`l{+kI6I$paJbOdm$0h4YR^=Gi1P5Pb=kd#DW^Vatn}7z`mRZ~8N;f( zW6f$aaD#Q`MG|DwI~}hPr~}Va_>(6F0D&ngkkr(Z$d9{r`$g{swEKW7uySd(2(UI| z8p1~6IJrl{Rw2&8yY2C@d=Y&mP1Xtm`5D6`+b2^JS|0LA=^;YZHC>YvGr(wy7{!u- zNovOcm3-wXgMU*y$;$$x5?Q@4=SPD^Jy=-{Z{uoEoC0H&N2a3}@M58P&xh&g-xa%I z`}WPZ+7zmL$4dLyRi4+KyS{OEfn@&VfufU+Z{sAMY=2Y|!_e@n@*a^qIme|=-_Msb z=DdUB;bcKQ#)Z#ZsSi6g=h&sIgl)hVF80LbGew)gRVo3CKw~aCKFYJmks!LA? z<45F_#BilHvTnj*APi{S4S7Ayuzvxzo=lH7FmQw>q7ae@Mt{E3#8m}MW+C9Vyl<^> z#+NsOQXgAdI`N5u&q*lc$`9q+8Z?M%^OuubTYc?<{L(Ue$Qe>5&e9%m^m&KB7x+g zM{WnqNvHm`V)b&}Va5e5y(9(2oxKuo?>(OvXf{VH{r_CMeb;~HuV%k7uXW(Zys&CH z--5pRYWh1V3#ZX1t@+hmD+~#VQfuGNA<(#UJGkJ%X{bzgpNV5;?38~1>H=iJ7ij6` z0qei-;o)I)+a(kL&&v?7o?L-03x;5Rfm|A)nGw!#TN8#I;NSWH>}Uo&szIzwcI6<+ z>-N}#$zxT}*V1B#LC1zT`+}4|VGBm87C?fDunm7!q}9Oso?n1ee@65j(886pGm}n% zpg{rVKhB^%f$m4-B|sehhVin9SGl!&@?8K+{+Ub!d#Fw^Y78<<0!lN5SEW`1ACOrC zfG&|?f#2gvTVNUS1XMt9cz@Qy0a;P0-n-DeH})psVw76(OygZSVPL0=7^A6LyB@sCi z>YH27X^Xfa8US+daziTUv2|N4zcBkA2xCkKzaPZ830ytQ_@3GWf02d2JyouJ}tZxBQb!6$=<*Jw%jd1KVRGBg`kw&xc3E(tX) z*5A5t=#!*^Ij9^QT<33&I-B(>UJ5S1ruzqo7S7-Q#m4dJ-)9dVcSQo= zhBvI^T>o}1;^YW373*2vVIjm;kl8Iag<2c2x{Ipjw39C{vY;W;QQ9dVYd%)f0??tWe#E-{O z6Wxn-Ibxiq@tXuqY?WaMar>oHDr$?pAyF0 z>aSIfUR&>`X1-W{JN~d>L|ub$o@;lnU}tA{k0nCN#S$^s`JY#~BhQV~n>xD$Zc?75 zK9y_BMm%Aryizw#p{2So?M<1W{leRXnkP=LGAU+cjQQLu9G0?`~iq|`vB4`M(s;4o`C1*X&BsX!ntK(oz~Fkl+Mz%U#S%2tG&LpJ0h z7L;$_a)Rd{01Ed2^m+so4yeE%{H{PAJrF$ph6D>vaY$Z<5pxv$%5oYqCkP4U4l*PJ zhUEw;0p+L@Z0F1XF9nKdKA<0bcDK?IcU~AKfWfiPa3Cu|CqF$Cz4t0=YRUvCHU-4Z z95K^SQ$to0g1Qze&b!F0G<;Dnx(|H=VJp;eIS98uv@!w$P|OQViDf!?u@5~F8!iBk~)dd^qiBFs%pY&bDuKrRw?gV%H@5R9N)#5p;5lb7cIUm-@ogqi* z8P^g+KHR+qeQ#??6ozRLz~=vM2~X(#zuFQ`=^~%~&(Txx1{Yiq1!qqf<1Hhy00Gqv zAa*vgVF!lZJhl`Qy8&Zdhm`^lly|@5j1lPq;w^ug|M9Kdua6N04a}wHOd<*x9v&FW z0pATP>JOkC%>xVwjB61mka*Y~0K9aJaSAx>!B|QTqC)wkfT_i#xGD zlzzv(oE$ypj+H8+)M|f{m;e5gY0v|F@V>kKysCo_E*yXQ{s@_A%=Lky;+2or<7h9N zU~8l%+_0Q;1hnNq^wJmfGgJ4Wlm(9~#6(fc_wRQV9vf)Af+1Wk51C@tOK=EJjLUc|@GAC;9?8$U`~b`1={ z?Clo8hJoEpw9FdN!pj?$`_G7p#W5(0`auJA6|N5kN0O~WQ+q0K3&*)g~m?ftW*dY3gm5G z{cmm@Ws$lTpC|GLqrJBy5~OPgUZxk1&GiND5Dj&bUx%tI( zec%C7Ut;LGj56hr)0wv2HpR}O$xrH6t@oumld_bS-qtmG=uE-;ve*Io4 z!bS?Os^)>)J!6At!?)f3XSjcrdv;KYHIP}HHnjd(J8UB>>RC-er-&&V5jR#n97s8H zab_tf8QF^L0BRWGhBt^0zrx;MG?Rg+ktGR2h&wEI(yVac1Sg752B;!q+x=yrT-+wd z10>lrLLjj*e*5; zDn<51`hN*c-I`U?)2l%X!3gz`&mO57_Huf{4%inb`9CyaNVt@}Hdfc6ae*EiTaeoSfIAu7 zH2!<7egrIEG(mXVy~>YfF_y3+fJ%Cc#q7zGweFPNVg=%Y#qMGJc2fbGZNYH|-r$9N z?k@ko?%@zE`cpsMqWZ7OO`-_Jkdtg?O4X~}$fL;(=NQ<>p9g7-;rodl1+9}4!JkA{ zM#iyG$I{H7pX~~|!`*0pZj3~W@9h(=Hx3)G{rIj*zvBC-krZDL9$aev_QH?iuf=X< z>|xPMeoCBU4b}2Ft;1WL$xURf`y~h~lDrX=r-x>0#hV7)s)Bk}dgvU9bTWJ4q-P99 z5B+_x#`M8-toO9FPlJ!25+Z?ZfC1z$;El86kaAfgcj}FrG6&2y&Q_ahydl4Nx35h2$WO25q7e*38t@9%xG(Od%dv0WZxWtAT4=%86iwgv@!S zOj_nvJdvr~05T(6*r*1II{3?PKrSDmr%x{|eAU<}3ljJy5ZhEO))Hnw-(^L;083{b zJ8w|(!$kf3{JdtV)u{v#TN~{v(4m5Uy&aaP2Ox_&yl65(EFlyZ7#Wc=yg11~OE& zwFis6p`Hi-hnG-oW1Y1zF#OtRT{b-9*j~s3OXde3P+56Jc=&r5@FvWz17)LsN zjR@kSNk`9L_vHpgFb<8J^}x1QT5HeNT98T(*BW$4DS3E^g9O45WFz}Lf#Dw(KcSwQ zu4brm>sD$+>-WR6fj{|oTyttP56J1;sob#M z-^W*z?8CA{@6X!cy{LR^JE^tMa90@@Mkc{H)wt)<`11e>!{lV3*`e@W3UG%1zM@7N zj2h~n_N!BrTsh?8|B>HtmiB`v>yckKRBdee9$9J~S?nk71~=!wbM=aBBFFEOO^Q4{ zzL&30ZwHc!wa%MAI)cD2h8aXs6HIlR6tHaW3Ucx9>#d`9KYTc=EU_e*lCN)Ka=vWH zfd<4dXT`)Sek2zbUPESa^*vX=rsY3813mWhp&{KA$DF2@AXl)WUfeGUxXI3vtxu6N z5fWWB;7CenaK%>yUAK(5O(}RNAiD+ACLy=5xsC15EuWxRhfCV&q(01gU(aRJ?_8^o51 z#lqG@bT;1M`d(gAgi#+ESOTrlT>-M^Yq0tP)POcsXnVfw^$H7+nV{Xi3zo)aHk5MBqK;VTL-ATu1I|YZJSrz;zm7 zw-KUw=U5kldw7L&E5(~wreKz40NcTdxx$%uR@d>y&863JY=C?bRL)1<*(}Bhnm}yVOWw_M^=YFr?>F^y@tbs!MjO= zMX7F7guI$j71n3+btg`c6{R`ZbWAF|YwVDzUtZ2n)_C})BBGZ-oCr(f{_lZ7zMDJM z=x?Yhcs|%Ki0XS#@u9YgAyurf+9ppHY5rR>-u-IX6751swJl9|_q(Uv#xiyo>$0f0 zxH(6dJPy~;cMpQqrn6tZe&vU5E4Om~5_I9GKm=FY!GHzM=qm^d;={obI!?w%8UnX# zm64P$w9xIaxl?*~(-?^M60ge9+;z0f?$6o&LY{Dtd!;yB^Oqvvu8WLCtV_C-FV1p{fcisULeXaYx!HR;=qH$xIC1f#Mmu>1SU+{coM ziO2ikT;AS=O}k}O3w~RP(tA5NNZOTiT+%x$H(??S@!Bp29idmFhhf?V39OE02QBlg z#b;frU>k^jI_kxX7jQeJ$Kg*ms227I1_s)}t%bapa^%#h0jFIMG_fP1CQQu_KpjCC z-RBX(@_Db^t?;c1)~8k?0{nK@Su4}gY&S5Geqi5p5- zo#?M1gTQ~ZG=K?7*ntRFNTNiBhbOz$!+Z%u5z`;St_&{3Lm3fb)D)jmG)udU0AHYz zaLGd23-<&L#B6tVlhu9pMY2!2d zl3@g(5LBqS)ob_s{l#}#jx#agU{u?&`IOmJ!1=+#q=t@wTt(^ETkuTChKo*wlIE)} zgIw=5^!(e%s(K`m#tN9xAyL1UxQrWMU}qnlN$i7b?kOF^8{mez2I}lbxmMmsXI?9d zw{XAf?Sb}^Sx=GE*Jp#_Q6)6&HOsFl%g|?3+&|I(6OMKUX23y;lJ%orJEw1fzHAMJR&T8E(Fo z6*GR2xU^x*!^4%H+U`SpH-?!_D3P*RrZYpTBv<O30ZRSB=)s4q<7WX;irOhwhcW}4{%?}S$ zP7^9V+YI0m)-e8iGXo3bPoSDA>Gk+9Ak?Q@G%Dr#>0`L~bFj0--w?p%OCyXeO`H@IFqAdW>Xjl)8^HL+SS4JIrF z3#qo9GQ-~@%8K`n>>k6fe2Ia+29ucR za!rG_DpL(rm{nBaKKG+s@`{Wz#HTJT%KCg!;)2NAdK7czOl_4#p}zWwH*as;Ke{;b zQb2|sy*w=XJnVh(FY;{*%LY>%G5!AtUkY;FcwOR=en<06eKQ!x3q|SzF!jFw@ZlGv z+gpO|!45=tTY|Q`dxgpvH~_o~pcDVxio()Go7zKoE`-5PI&SjPL)^ ztSE>u@gtC8glF$5pmtRQkh6gFrO>J~K(hYrVr4!ImAI*|_|ZA{aSvh-bR+C z$P~|I=CfUwka=1>WRqPf&d__AH>gpzzl6rY(THGk;fgRpOP#{mxpTW``}iR82LAh+ z)6-VQ(3mF%GX2^-ZdFDpnRIB$U2=>h zNN?V554wRSfF=^cVJvt-y7j}>y9q4+ zsm%d!I~ARYH6Hv0;^@=A zdvB$tRJv$i<4{J)^xIcRN$v)vEp7-ax3(B?lisectSc`OG0k2yK@V;_z$o4MP@#EL^lQaCu9CJUA`TNHc@Bcfk zxE`YM|JH2iU$shTVN9YK(0bXuu03+cBod-p2$-JRf%8Bi;Cp|W^gT z=29lx$%`w2^V3;zla%i1?7V*e{!t_VLMWMq9bqP*kx!}|2G}Kcj+B{s2^ldf)|y;( zbDN1Xiw_U*_b-Q$4gx7)AdK0j+z%4|+x7L*4(Ha6j#(%vxskG3Y%#w{UO@pKs#Dp3 zQ1jKeiLnsb3i?xOl8#P#6+BJQR>57qbjiYX7?ziP2g0TaWYieltnBP5n5~_KY&OX) zvqc51Mk1t(9YWpS(nCI%lH|`CdV1Cj-cNzKhqs7&REbx& z{Ay>;GkKY}jLdBnlqIZ$8ty%P{l?~<(=smScO#Fys-Jw#&i&jv*TX>%2_r@892j{zgt1vSB#PbJ1_d zQ=kMJXEydJrp^7o4<+*5oYo~~pO{5jj2PbNY_e+vK{&J0%tF(E>BNbzNUsb0w^zFl z)UT||OIFuEiBxS)ggpxnw-E=YnsiL|)?!h|pE76_K&(4p{x|9&j;+S^7n?I6MRjb5o*ER<5V&Cbc0Mh*q+ ztDAxfN-N>a;;sejz3lAl;+np3JG*|PkgY_We8U?t>pcv`JEsrA9>D%tjD^(2f+C~N zUY{#T!+c#abJHhp?O1_r1+?xtKeoPqzXv(_yx|j;q&A(f=NY-!O_^-Av4Req`{EFO zubWd!&vPz35_9hl*;X!6h+Z(6F+W_o$1y zw*6->TnI(ZKG;r_&kX_0kdd2%+~v(^ertiLfFzZRNwuHVOW}RdV)r?%lhG-zwF{ zE-ilfnV86uG6@4A%Z_|!y4TmtXo$~umtN6%cm6iP#XcWhvb zqO{kiy7EPjSkH?ehp=u1>le)EMH8kuTiuP(%%udY3#0Y6k9LFQxTL#ax8=QCJ5L9% zZ@OLHd5WVnqfozUOVO4%(N~Jktf|-6OuAdx=VIeACv9J4gr-x=xqbVFhX>}2frogY z^W*sU|Gb$hjBMl|kC6@EE>bCzjb*UVopD9qpbMp1^=eR$pnPtrbb{}77xqteGJ(Kb;(e?e8X=?gE=t_3W_`Xz>P5hAbJPjo2QjE;N-Oet*fw-xNg4T zen>=65dC56pLVtil`@p@J!@HjRJ|fSunaDZ1_^$D%m!?9`I@+qLXf zM}4-J`bV#E*vO{iJ>L+I;!4|bDmTw|?P)R&U8Rr}UkzCDu?ch*HfUI0?;d}p&_?|E zGi@KlxDOv3YdlJr`kA9`Gqc>%7yRO~XT2!$!nqDSdRQM!3u`u41}#@sn(SJ6?RK~9 zHhS#(^j6lp0p!VldUR^queHb73+7t>_F9)yaEU8Z-p1lJ3V`?i_y z1`{pqMDmJw817iP>x^KcNxk~9z)<(jie9?(9C|BZR*i=b^PyX>BlN1hU=~46x)3Y) zmtnvSh-?M?MeZ9Ij5=9Ee%kNz)3vow6aeo{1Sn)Eb*LJa9&g;8g3%@HuWfLuZkR0> zFsj49U=e!-ELI{Vn_KsPq#)>vfYi`YcyInQ>4k}F%pwsdR^lsrYAI}BtvGm+qsiSwH_Yvne8l3c#WAtwwUe*4+ z-KoC-j|}VK3;uq$k7)O8VJxi;nmkx9Uhq9}d2BLb9P1N8Tn<>s4ZyVrEaZhyviZj7 z`|s^CJ<9QabqrSlCMSP;MM>e@4DBars!I9U- z{`U}05hmQ19ft<$Q{)ZO{%ZJL=8T?w2^>gq5u9~Y8d%8bYU*}(>iQ_kL!{r+Wn&WI zsqm|gmy~hgI!pS#e!%c)B58v;Y&?Z|F%SD4uJtpgrnQD~{*pR1{LYD9OhWL%{t5<0 z9$%kbhF!eK<}h|_t#$lE*qBD0zZ`pz$Y|ge&ItG9bH=I)-`_wS__pRpxWk3dWb~@T zCtp1~B+OCOXwk2=pO)>AedE~EP%3^QQ8@1_u|h#TPgG3uD}WtxOrTKDFOpPc*NeEX zuRoGOrM(0i8Z*!E2xy^P`t%^bNOx}{m79}?g_f-g{N1alsGm+dP)x4?RaOY(Oqyfe z=2t#>Ma9FnP$*biFy+Vs*ZrL`8SFULlLRqQX)o|aF*`dmvy~tR;|GI~D|1bwK5V?) zH^_K2J1h2+rzd+{g0IYu3LTq@AjEB)IMfZ#g4k5#%|XTJ1!cetcBZ&xR>c58Bsk9t zU%GV34Y&xec4y&tItB(EKxW1x8`?dF2#2GtKllT=vxiZ+I!s65(-*ypGW;oYE|L19 zHoG~Vh1e~8){!Vl|C}4T5TmP-R7I0^_gN^p*jRH$5(d|J?;G|@U|;SbNd8BTb+M%4 zl>2alDHl4GaQ%w_QP7j zPxZgR4Sbi%r}InnZVPihje~EK|04ATD^LDku}4lGHzxC-8c&l=oY7Sb)l$nr4I>lD$w&us!vyxE>jJEvtzDAYP25`vky)8bPuWhC01y+SC*iqiccpyHKW#EN z_+Yy<(F#OQM#SB3tO#Ewa5{Lc;&huFuU zYWe-kyR{J7)7=K}6p3$FS64@R=ryPyC-BlC=-~Nz3uGrbo#aZr*Y@tO9`B7TgDsXi z&;d#UKv#E} zxhBN+W62|?)y1p@a~bT0L^Cz(2Qfaf7*x>uELePuGR zgT#w)c&oEAdvVatFRw1-0)7kG%@@kWf!Q6-k=X^ODA;AEr^g^+_wWo%eOzD zXWQ%_$s+L#J!%n2xCCo;>1i3i>1#!QB~4<@jKAIyeq>c#gWXul6X0+m>!w`qV7CjE zXR2}_^L$PFRS4hflR!JV7jn(?;Ftr_k-`iMXQM&Etob_HQu2zYFShJ}5stc2e2A#5U%$_3pNJUR1<&=KLLduf~r9;0z21{J`jY-P1DzWT)>lLVIra& z1>#>vNDXVixs_DRVCOvauf&7_iRKGm?=sQ>>v|m-dEL!T6!s3LyE381+H zds2|+Ko`8D-@JWm55$TCP`P&BI6@-fe*yT7hLHzk9$(B98JKE^&226?KK{ODX;fWEz=v@dX~3&%!u)gSU>Z)6d(YEOgD`tO~%J1MU6m*RRN!7&NfJn50y5 zEk>BaBNF_a{h+c2gz6wdCZ#!oghm|s0$+TjMg+$lNPrhETtE=+CGR@q5fcLjNWyE6 z_ofecmQDcoFkD6ttni;qbxRaGMxMNv<~w|1iTv>3>Tk0u(Z_D*qfNIe1Xe>r-yLF0 zSrhH9OHwwyX^Lh(O)~0XKglW;Z(lIE)1MT&PII5bZrG$8D?vofT=8qkIC9j=M@1tL z-&Gp>%p;nHjLw72J~ zo~6aPkE$pIogszF{v(5VyeqlQ^?7#f`pc{>PsKy2g33J#he9OigPvWiMX@sKUS%wN zHCBs#|M~R6uh+df-v|ZkLDy88HE*PM^o7!VDSb{lpz?-bQy~3%q#6bcwxG$h9&SfO zAs-{8?>%^cPHBZKum-Lx4u~2AU7M-W8} zW)NXx@FWs1?1ll4Z-Tw(63!TxBnYJ@CMJ>Hn;*KMihPuQ0JRUWCnI=_cAy5D0(r=% zUZO5rTOSdO^|WBSOh}nyBNg{b{Q>%`U|*w5=-PzH)D0{ns! z5~w^Ph^XA4BPYx)cnw!NOTXSh%2(ylV0nY|7{ep*{5Sfu>bff4L(?$le9N5)bDl=B zob}Tw)m_Q)j-)}g*<9n^S6avWP7pILADz<(KXr&QZNR`l)l}a;zerhz^-9H;YIfFP zmZ8g+1D-#x!P4gXeQ9RbrRWh!A=IXncW0Zcs2&LniX$+euAd9sbYoCeP!68!9)|++ z+c~5D{FxFjy}MM|+7v0?)Oy2hQV+vRNA6{)GlV z3Uh@X>t)^LQXcs*!RdWzX${@nCBPgD@_)^ad-VkGMnD-{9Y$foT(%ZI{yqWyYClK~ zV4KwpWVCU>h5$ot?i~T`UT($AX+|E+dhkI7Ges&a2c!y z8$f8%{QSh_O=xUTw=_F00|JBqo!NR-(V#VpeATt;=qCri2cE`FP^A&X5`pdP5UycA zb*e&z<6cy4`&w}_?d7w>k6}1Pn%)k~AzI4q<2BC{(`#!1mTgR%1fw1Q015t}JKH6d z2SvC$2Cgfcd!fVpewrIqyZ*3ap@Saf2b*lGC@s%RP&`7A?yy_3;s zsw&F(i>RfH&rg$Q`mXV~wQ&CE-m8{myKp5qk>y)^@X*i<0fz(r#_<;u0P8AKt>0FX zI>C4K_cBBp6Pe#;T1Ydq`yTzD{}OZGzxRWgoy|mMAhbpsS@o9FI*h*BfV`!LHu5MH zhcZrLQK4|Gnt#SiVu;Pn`lWk=b{Tr7Rx`D>^0y`o+=6q$DLsJ&?qJegTd27jOwab`bT?#ofRO~v~0V)id}s_~8H+%wuB|!19{_I*7ND?FkstTrLh$Kg{EO0qfJ03q}3GxEeDJ_KNRvnF?{ygErYobYvhPRV|5>-0T968 zeZslC3OT$vf*nZVFT37POJQQ>8i=O8GpAr35$RL93@Jmw2H1>PaMnOnk6@aVk(0v- zFb0@zfZO=DHy739p@DrxoWFv+UD(@j{KSd-y1FmA=gxC*AoCP-;=j+pE;_;j-qO+% z?0&60bOk{i1M8p)NR>)un3q{!aUTSg4*T>@B#s zGn0a1_gg9v&I?v~6k~tyQFe+1gHNUR)J8UsUdxXERw=<#XN5N+*XNDSo#6>|`>j+1 z`3Qd+bmOQ-zYZ1;1nl@K!{T0HQ!8^MxUtTR>AJf+zRPufnpZRDLHlwqh|c2b?0nLb z@A@N0KHCa$cx!m`&(@+*QFu?UCCIPeKZ7&n+p{;fxK_tO~_e!o9 zq_;Iwlj|0je#d-7&f0%og>{l_c0%oUs2u9wofP2U<6v2qbi%4_3{K{c`4>dKB`0{% z-|m?a4r4aBRoY;@+}->oeYX*SI&hwaBh_n7IK|5P1DLKZYXXxzta!syEwI7>!Z2I! z0fzQd5-vQ@-z?#Y%QT4G1X#r0Pi102mtUc6T#f)yv<=835R#8<1=?zaa5*+W!MDx= z1+qPQBj?@v=ldT4^LsODvj_DysODe`t|N$Www7vdc?eJ-qQTUbQ?Do7wikx2E@u{% zc(>1PC5j3kOb7Z%8|b4Z2KJe3+m5qUgZi2bV{tz^u5#Frai=B!MlZwV-~4)E(@MhX za!HxD*U{>_{q2(PaD<+?PW?efJGXiVza|RJT0g0ftkrmiuF`GgfdwngymL2h{J2rv zo0+9#msgXSyS(GIApHjvy=?;kZp>bYnNAE{o&uPAq+@}a9j zv^Fy2z;}$)aWklm&AlGmWjC}>j>~l&7Zr6aZuIENLH5IftT3-e_ zU`7u*<05gnCQ{wm8M_;o=l>C&AnUO?+m#? zY&*0WN0Ra}ppv8WoeFIqO-bt1M|E%L-iVF4`-Pl<7c|Ywf)0|3K4iQ}sbp&Py7|S$ zA#<*^lEZ7$2pG9hvwq&DY)cfkHmFZS6HqM3Fw)v4=qGI(o41jA`=2%c8A@G2I=T+u zPg^q-PpT#;+9#XF{63D?Y+Sua5sb#}SwDA@y>Vkd9|$?R!9w&}-Oe=Mf&Qp($+zX? zKtn^Y8+Pv7zY`#oTgiw-lDzy}RI&oX(jQ%2?OrXA+}N-Y zUM^)C^4MwhRAyyYh*Sf7IN@a&D|&cxc?LgSh8a;CP;F`B6mTczmpwb&<>PVNM8<@( zK_#SV&$_UzwvsJblgvl-@#u2i$Ig*hR#b8>SFuOT0{HX4} zmR1WE^jT?>$mIf|8bvNg6r1v27h&8m_12u zDSTyGT}l$dpoBH7X2MUnUN!4t;Zb<6baa4TL&+Cg_`bY(WP3|u9AhOa={UM%rn@psJ$w1(_jmnXmS_p6@EUn9mK-&pJ_* zE4W~8Ji9%ov}E@gA5P5cF%QQLk3tVy*V$MJEw$3%Pn-(Y*ey}4aq{Szqy}A8m(R;* z@}o?wWPOVM#JaLNv*pLJZ^(`kMYpnRI!Ee-d|RurPdzc6?LJA&{`CW$A$|=O#+=LA`M4XO9L+t4Pa%#xhOAzzbF%?-@@CUV07&&NGGqCadcUN zU>o_IqAZLeEHRBQG)f1wQ*^XD5@^CIRyuFVxN_|>E*_dGXo;|&DKmSZsq+*y+O)v_ zM0Zh?PC>E_Aqi7lht2@0#M53>=Iwf-y7)Ue39sJTsV{r=@Fjlq4d<6Ml1CoU*vL7$ zvur94WCa8tIjKvg-k_?2J-o2=()5OIVn%_nS6+o~KFZb6mrnwtINRFd=kI^r2~#sa zZ-@~FE=n$8pTUzSj-UAi7#^r`2o@7jC;oZc&8Nd9mdE^Qt{ie=hR@^m{IA%SYfgEK z-~2kcg6pFJ?Y*hKsyJ!RAurB1|+uQA8|{R3xG1T z=ybb*Fdge0zRyp`dMIw|+MB%cVSa66Z`ar`B)l!WTRfvuN`S6N0M%lpFEynun-qWg z{8{1!fzww`((q;HmyIj|yU{qrP;azEB(eEiwaW806UUeua})68i7|atX|~nv$h(a_Y~Qr(-+T z;-B-jv{y!=&exItIrp`PYDU}sVUz}K5PUpiiSL)BE-PrPp@n>=MzT?){Jq@0GP(Fs$vC84gwHW(^4J&uiE=-Yly=!z-Moegdhu8a$;k zcWPREykHAK+nRT3I&MYZ#lU^4F;NQwp`tOT2!;qv#~PuV3RbSRF^m1;akOa+Cot*@yIc1THynR zbd+4#v;5;yG@p5cR=&&#m2l>h9MudPJ)UX(VAy<+c3o3<7KOEyy=k;!sFw3KCSfeu z^|XPFjU!AL*Ah`nHWUMCh*WhnDy6 z|KO;New$2ZWHdaQ^$)Ba`9Yo?QQ3rsIz9D#B8rX(A1^8~E$!_f=0=9mDV^tdKrgiY z+*mE#bS5-TvS5`8gIcp#D>oldsPe^kKrsNy|8yM(=i zCCRxVrv5G`2423#^*cW8VD1&5bP_eqJIBeal!NMK3E>t}9!s#`THy>IaNMVgZyWcW zGEsZYwWXhx6;LfXdL+g5l0jSzTB=6-HU$hXXO^U<;+s4#UL5;XxA1=+Fw_ULZDdA^ z7t+yViF^(9*_nzhikgN$M6~GTiz~NYeGDKC#W^vBOpm>P zM$b>e%q@N%G(wF!CZrg9F1jh-mH7H6tD0)rksg+B8-I2jz~I`&MU9Reju<6YN-6bO ze#Yzdi5K^YXZKY{l9CI{L}+^=i2)b)weDa2c*gl2?s)Cz_1p?Rzt0y=3Vna5U?Xyz zF@8lKo{UI75vDa9K{Bc!@99(DBnc=ik0Kvbc?x%s*w|F{FN7U=Sfci+B3$7us{}7y zYWBPj>LTSC#kK1pX#*QV6)HBH(V`b?08#ZK1zkl#^_OTo8&fG^v!Lv!zz5{# z((#t}iNYMwK36UmlMl=O3N;?QX;*b|@1hgekxvRvKW*0P3oR@d8Xek)dXo1aQAs5TMX>&Me$ zP@ue<#-At?a9z`7LB%U`o-O3&P%gK>G_)2(lIq|KIVZqTpnl!jwtEBr#bL}oI6#1f ze#}X{UXPNtpFgKgnFKOT36cIr?V72|9_r>sug-jUtg|qx^`P;s92dVR|F4duyRKE% z>(<$qbiPhZd@UvHxc2$DyWoo2PD(dLBtcy(#807oih6J0v8|W7)Q&aP&a&Moj#a6z zsP&Y^^OKH?HczX6ToO>{Q~h&Z{fAqXa^lU}zaF-s!+uf@>VF?^(VN6W^Xir2OLiSa>*{s)(LKgaaJv)b8A*=r)vs!e>`!Nz;yLL|b09 zg30GT&-<&+-Or5GIw7)jh ze(W&S(=gH_)gy;b8qU89@XS+xB&;%lixz3qP-BSou2Q@E3@lzfJ0y|-#g%*p{cP(u z-$3%9`+qN;$WomRJCl?9efaoHn}4<(R_T3HQ_CeL7+3Ln)?u8UX=1J1Y6)2Jq3ZP~BN7u* z*O~-KL+?Y^#rWS}H9oepMTw9@{?F2{YpV9aNSpjqo?mYhh}6%0^T|(cD4etxU(`Na z#du?PqWP|;l%h42)!xwY*nIu2O-8lNw9Q#Zt|W$2ROjx*TC`01O+028Yi+lo+b}h| z=`CHpNJ0%;R_M+cxBm!&!HhgO*!xmM;I{vijN`j@?JDUxk~RMKYn=hy3gXIBmkZ(MEcpRQ|(IjP_nnNJ1l&_m`sj@F|Qw~EqZ^D9JXGWQv@RSU$7(>t$h1Z)(>U z6#*!XQA?DHx!1*_n6{aooBEt>r)CfgOhw%Os%IfZ^bAHPMT2TjlVbMMrfsFZW%wCK zjI-%Xt$)`K@~XRiabwIHerQ_G1SLD$zO!o65|y>8aRA0|O1U13IO#f6&ObS=v?8C$bio$SGY>S$}^l zyzX0ATmqZ#bm;Qu648_I3k$orzafn*2`-1Zqw@aUU34K27%yzMrPTa6C50-Gcq>+b zMkJ=y_ijf#dh4L1f9+%U@%H(!D=bbNtqRe&yhNXYk)lke6Rvr+2{NXnj1I|i#weS| zT6RrHCeA;~LOHgy5xJ7L9G5#gom4nmQ+K8lgYnb( zVhzPQZ>a#5;^>a=Rt&;?DUAk^+Mt_Bs2ylcBIbGKK zE6fj=X|Tn8$&z8buWrW2!#`W3C+Xf`2vw9H(sP&$H*G)P$mZ3tM2%KSjGD?WlD9KE zC9_vCL`j<)9!?ZFsIP5m>*d8OSw@pKxd(*xlG1<u#cl*=>+We^0?^R+(YK z^3;55>j4e=!*5(T%P^ja?(WukLBX=x@l;s%fXI>OU8AmlOKVYha!N`8w-rOsWnARr zqyO`vyKWXI)-xYZ{jBD5jDaN$QFx zJImNqpB-I3Y_>dAp}6NFZn|L#-AUDqKGK~y?3n!NPP!_L$8bye-OYUVnbhwtutn4R zzt>qII!Wb)r!6|47iGCdCqyyka$|M7c}3qiG_Nq}%>8#l4{t6L(%#v}k9}^w=&9C* zkqTn`WLCfv8Yb`-4*8F1e-NW10S{Mepm{RXrb@$_*9!9_vn2K;!_c4dYpbj4%=y%R z;u>=|fJ=apuli{RfavbtzD)tocKP;p*li?W9NGuNw_t^gjHEw(dLi1BqVm&~KU$#B z#h6w)m5FKg=NGaH2nUM9Qf6^GUvKVU-jKJw3%wyJxoVWF?iEf)*&lCEqA+P%qC{eK!dY+AB6_c}p6M2+xXUR!P_iWwK?AQf4ZuTFGM~mF8 znv6>cQ+-p8-CYT8?!_g-7>4Yj}m$Uh9u7?%-2mzd_Gw2VV-j~?d{Az->6PQ?!H*gCQtqiuP8`hcez zhk13})eALhfTl1%`Rf@;XhQK`=A%D-8YzZW-P#^D?s#fe{vv40%i{!V*Vkv}Jmcby zu(C$F{5>{QzBbhoP4b9RLCT(HxF}Co&!S;3C^^MkMQT^ooNYc_zQwXIdZn?iSn7+p zg#_{iIhod3_89s(ro8Y@13ify?MH8N$HI2_tgu?D#lCgfL>kBnf0aXm#>YHUXiQ72 z^GXtPXU%t9EpQi37Em9wS}0{qaQgbDCOojY-uI*8{&MDbb|ui##y95Hjgr(g=mz!# zC=A6oF48|8`{v5FtxR1xe+PZ@UYi(26w-<#+__5_p55< zz@C>=G}@GlVp;!Smj2b*#|K4J#uVbn3T_gx9XC7})4Rz#ySfa&A0M?85`yv=WmNmT zU8!~P?e|urVR1EHEynYlLLpn%uElfXI631wGX8Vi|K}U0%YTts3W=_&WIlfcF`(XL z73O)MhTqPQ9XrXEvLia{=}Om=Yk?sy>)Lal`*_FU`uhGq1zzIoka}(%!>#2RN8a>> zl1GeGGT}i@8cqtRrM1~NH8ll144z@94xj6|Hf!;m!{@GJXr5tETw7oF8*71*aXm*C zM*54dIX>}!i4mkr%AtrlwrgF-gNLzj47^r#;3-Cv&I%fdMMn z@k!M{XU28M=$|q!B+kp+|I=eu-f{~Kunbq8iP(#=v?LWKse4w``WwsLCRPYgr5^Y| zKL+?-h3NoqDdAyNW?YF0qb)mLn7@Jl&!;=y>d#Ccm?aY&++S35135yP zcG&Z4`)k*o7$$HBw*mSUeSk!zf4uNtU+lIxAc{wSO-20R`c z;$K<2KXdK9pY^PDuY28Vt;aP-yXl(u6)eQsWByOJuu%P?hYv`@ z4#9qMl(E2Ixe_dFJI?J`QmllInLUWg9y%}7zlcijJ9c+ zjg#jghp`oS7H7ElXFA%(&TP!ib3R*oEJuNd9}s?&)ct@$c<{01+#GZ1LQ)e@bj{66 z>geq650ByCD01knxr^RxfvEZe%_mkleg*#qo)>=)1r+G!S1?x#%su+XyTHcA_Oujk zAS48m&k`P%#?AI~r>}^X@u)buW8oB%riRJhw+K;=7NUkvQM7aIwp~os%oBT6&Ag)b zK>HPlHmer^8~b@3p6b+q-tffsiXFc&$#nfm|C1Ebzi}3NMN9&=2b6#in|;OsCzd&m zr*&?KLw}R{5pz*&9Ur#eb=08`Xqx|_5UGTd_iXe3NBCR=l~-e<*i2Aj=MHdTjywP(_%0Kvk{ALvZr9pg)cdO^_( z5S$>Lk6C!1KKGyE3tHPOq%~bdEx~;`P@C5Xc+M;x-?c2m=z7I5a1f6&#EmrHS41Y~ z<>7B_d1P#@j+&20ze6vts8LY7gAB+xl1V^WN1`Yzm5?s3?@-(a@6jN(!~dT@PZ+x6 zXfBz7+s;b|8p%g)d?9tTRW&+i4TTt)|MZbT}2kGGc{fiivza)0-l!F>~o73U-2|`x66HgvD zi^W94_j+AG2o$L;L+vtt`ki~c&8urKxyabE%(72MnEyJ zA`W+|P;DqYW@W2%Ppv)l0B4zSc4v$6D4HW#sl z-JUw}Cpj67+d(tvyQ)&q$B2=RrzZegezc6pG_!>WDJ|O3z zz>l@*RJ$s17CDckSBnGZLo4puyTBhb0DnyId*(mK(R&n)eeSw$A5vNT*_tP=OEPh>8Ojxt(fX>ef>vcWO$Xu?}OXk$Zgpg_83yfIWY0P zsf>{A7khRwcna!Nioy2^p%0?%d>M>)^>qNOL`pdTvCHOM->fysQhzcMvy!lZM&VJ( z>JvzLQ)7sFa-@i2sTF0!(B0yt!LeyNQsRg3JL71;sl^iNnJMbKza8%=q-Xu!d$3tG zKuJjt%Lgz?h)O}>q9~W?tCXNvM1FPQq9_-QA>oz-(P6*+k}^z_AcUw#BPtw;iYZ$N z*GkLXRXNZ1(W8AUE*%U+PFK|lD&ptT+77J-OpEu~Z|OGpFVoI;aycJ;;UQY&kxYUp zj#ai}_vEJ-K_=oJvFAsTc|@cb=9uv)8-HU3qPOedVgRgAcZn4wTYKjT^&Y2V8-%Rn zzo)0*tm&1&1a+SrtK^0S4j|u2XXZS0%7`RZ&3@3J|qw&RoX3!xq$!^hqUcx=~ zf~7im7grcl7vMed%+m9@8Y;|Fz2)xDNKi4^A;oX2^`D`eU3vL+NVBYOuPUavs^MU8 zGco#k{CPY{M3tchB{d&~=!A)_rz?#x;);z}L$#;;z*lNuS7OBXQY<^w<`Oo>^JLOr z_WL!H4T_GaR@U~G4|F`2ei>I8GfXjkA0Px%a3EDI+{E`@b3(Ybv9U@*)OK|kJ&*R_ zZtpwo+a%iU9oFs~>^TAr1BE?58E$3$p0q>vB!X7vQan@PA1H0tuyM0$=rI@yxIIA% zKdZ%Vc(IJVcq-!nzoVk)>i4x;B*8+xXw|b?>re5;V#z$hNY!43@nWk-6zc3k0#x(emaa;qCfQnEwy@A|BUjCBY%EG@xy-PrM^|(I%&_G4 zFFkTOP#Hi2{oeJJ#_sDd4A8|)g9<6jHKMzIn9Ra8c=th&&uCJs&$;o{Wq-pt1pCb< zJLbtPYkJ|B)m!g}NLx*nv8Iu9!I1ZqkwKVY}*-T`H-?Ic#t zpJ*ga;ubTcRc~1dGkr20fB<4X(+-pNmwRscFevf1aq1PFUN!kuq@bXf`*g;Ae9GtT zTToIA37IedJ5l=k&mHUwk0nf4M;CJfzE&a)Ped4RuJGF@3%y1|A20Xr6(TFu- zTKxK;1c)Q<>6zcqZEI~qjbQ_q1aP+y3szthvR>5vfX5f8DcV{%q2K~EK8n@9U3c&w zgS--iPt6!%593 z;gYgIWsOS6*tiiI^uC~G@8)ULg?i`tj0ez3gs0fnd6bn^8C2EPLDC%yO9M!{)7Wq) zXunbwkB3{a2KFbxb#YhlFZ1^?6GbBmk|ks^xr+%&30x%g-ASJdD&6D|L97F9cGl9FZiUvaJ(CziZ>!b$a}bx#5qmn{uL!7z&<9P*B|y)EL*Q1_igEIb{ed6^4k?$aIaH- zUpD6OTXG9Zykw9+=*>TJw+i$=jvTKC;XX<+w3-?S#z*@3ee=0$)XQ&l>lDw~a7Ljx z!vfxU^DR6JjNM2sd4|E3cuPbU@JTclmwb|E#-{84%_jxN)ePvy!UP5BSO2{CJ1l=) z9m)verY@F-&HT9=;9&L)iDKv?q}{9vfWU~>6o@*!`1YJnyyn)e*IDynrl9+x(seKa zh(Iow6*mJ3_$g`WjOB zHv;(gIirBx91u6h`Fxa9dG?g>s;R|_#)ReVt1IJUUa=tF5RN(JmkSP7jX}}~=2B2a zW2SVQP`U5l-MzN1_6HhECAjP)Dj&-+j5>rHv)*=Yw%=RQp-n!r;B!t%54m^xLjbkY z!1cS``1oP*s>pKN!1lbVct1P11U;lV2%5{vM5`h&tGaVa5cGCb+3Lf@CmO^0P% zi#&BC`Wu_+NR$@u_0d-}NBIM6v3uX47dP+qlGg5>$D_alCAVHQ5l%doi@WlH3lJwp zwu#Cl;`i_Sv#NUJ_w~kNdyFILIq}ZU$M3UQDeJ6u+`6R?7@^!7EPN_6z!dK*aHpt3 zx8>izFPA}P(aE1gO2G0FwJpbOfX0A3hvp2RlHB?6xf(RVPlTO{Shfum7CNM@deY5$ z)HDo+XbaCiyCA#k9HSSGA0-8(L z$sDMFxpU`3=L1NM{B$B&=6Mn#oTUcUl1^W-odREhzXj4vby*fNjyt|^w z??8cudHjWI@hUrJL)e|WN80vzb}`s%t{EF-xm>kXw2i2ZREoKt9f>dH%oD2yC?=u! zuQVH}+fb-@z|M?uFKiDnZwDAu`(RMB1dus#-{HhNUKiAIomMy@2^dgu1G(}W(k~1r zQ7TBEMHf?%od56&J$Ek^Q$8)hxKoLlo0Wy{Tl$aoW8T^AKKy>=K0aVRdPt04m~OPB z%9frqw>=-Z!U0Bq*=W06U#B^vWi?>+T6-YvR+NJ8uTosMgre1!RMw|qo9Exgd{hEk zOkq?t_@$zV+^a5mRtQXtu|*FDPYv1ni;mi1!Q6FKBnhH$?o5G(7;ZoipbULzsj?Sj zxZBs8Dql5VVaWjNa^_CiKYjVq=i5jwFuHmSV01U)ko4Tju{T{&J->gSx4(s=ael@Z zv0nMpW4dx1W#IMS!S(V_xvQ7#9m;(CrzltV=h#JfG?)dWv;<+^5nXy+*9P&Df86Aht)n4}zFDTW?{cu+7C>IkoUKtVCH zFrPYs`{qS^y%K~Jz7=y-4p2;Iw-NvlYW~?T(N+mrLz%}B=6EZWS9$8ygZH{eKK~XjSt4_G{n(AAe$GKFg zx&+zYTSNMzfBjZq7o;nb{-bApWs{R=XJ@&Hkb87_>`o(L*h9W(-(Px`(NuppAirZ`GxE*Iek z5kDDgN(f)_pdlaE=-CE7nizZ0135W_jD&mMh6kdRe={xp$#aFgs?gSk;!7$aW^^dJoWQsGD z&bgZzxWc*1TygYzT(BOA%O24~;_ge*@q+7-@&Lk!r%%O)SD(ClSMdB(W{RtjoQ|@#bv@GMFo+RI8G&f_Xy|rwg-ft^LL{xVMlUBV z#W@nF?H405`qkQU8ZV(bZpb#oYE{rA;{U{mmv?u1+gJCsZL;70bR?$b42~hy%A`7z zj|7Ci#dk3dD6_3BeG;sKDv+IEcZ;@M?Qc7M#$HQPzDvfVVL-ho_VMGS52|9(tWyHL zRvV$7O`fZm*o5|aoA&K(E>qJI1UapZp9d&b5O>!_+42+C?q>jr}1k-N)dvkLNGxq zdaRBIQ`G;b-4Ucf>&r{HA~r9fhCu9|523K&`-ZT3S>I1>(;#oa=W?uZu+J+e1jeZ{ z#inhJVlSe!NUlmX&ed#y&4J>fO8-0&unjvb_?S#L;^H}h49inwWw?)ex~-E}0yvnP ztk`lDV_D^tyw==(njRkZF8Ri3>5}1IR^xMfcb>wSF;om)dP4tWl6=47Fo8+-T-Ww6 zV}yCB%gGmkN-9i;x3^12Ud8z*GT)ahE3yf44@>th&=%G{#u-CJQ2GOEFIbPJz*krF zDSNfD?rOv!Y|s7T<`s6tV;9CNqP3*rQh1~}X82IhF5iNTFrIPnOivZ5^MPElS)F^P zDuXNWizc*hG7&yF_<_jaq=4E{I3(W~(BMi+5DotFl~S(eocs9Vi?^guFOF4mdrUGu zHg^0{8ElWZ|N5;~MR_#ghzMpM%_r&qIWUXM0}CT0o1e}46nWUj0@dRR(jwRS)ZxDh zpn9B0+)ul$fe`OGsOKs}uz9bFg-_%=$mOY1+$td$th>5UKlL-WptyVdC~0n^Nwd@} zQE!BJkypYX+$o$DDU9kRA1}rMIS5oTPWtXvVcFzcE#aS0j!+}$v*=q^jC>tA+WEPHW?G9^QTqw)QP zhYNXM5$gkO-W@_g)%D>m3}=?g(rz#i=#-#9SJDiUul|}Z{`%tIyxmE#(b|x)F=Hw1 zlLgev+Rz~A`?5b)UoULhcX~Iyzsf{eCKU<=NjRIIYCbH+GAgm-5|b$XPg zvk!*3GNLVi@s+Fa^V6?EQpKbJHK(jBsL!R+pejDTW@jV`O7?YE|Cj7zW6!(kearv9 z-skG2A9Q=GM@!KKIG4+M+NYE``<<4XN<$>+1hJh^+tQaAJkYlE#A=q0&AT4#B=|AG zKx954Gc%b@6RvJxdm5>;F<}j#Caf;L(Q_SLR&t&w9clFTP0bOIeSOJt#sv8O&SQyA zzH}sZ7N*xW$u%*8=!}n0Mn1{e5)vW*Ed`qf6mcRom=~&@2VO%5Oe%cG2_qnf?IFm? zO_(7n9Dpr1``9k!&$$`H6aUBX>7M(S8M26iT)4kwnDYGodFPiRFGriZDS505fF_56 zm;c0@Qx414fr3h-vQ-hfIj;uLMW8LZV+RdYLOgLHY>!8&J{>+w&WNsKSR^D_Dk+wB zL;nkae8FCQY{VD14{~HOTP%kdYgg?DrLDb7G3{l)kb!6egy&Is!O^eB>=Ah;Pfa4V zB~gq(yPBn$&xr@X`%cAi?dp$7A%&k3p4FH|R?#5nq6BFRXyZe!h8os-tMYJ`UH^NZ z!Y}XBjA9CL*Vk>_!H3$W7nM)@lV4_u_)2oi>yp$A?McEhJkk#>S6&G+mqoM(x7AkBJwp+1t=2K4R7cH~Gj|v(Cb}kgIfF zz1J5gT@k@pc`_%YWbHOV9n=uJp{ro%1640rQ`vgVLDMG5oMv_&FLD)V$A;caKwW3- z6ya3T^GMZl;3(OdpI)HsaJ#>dn51J@d~xajI!|&+cnzGh1-|WD~ zkJd+CybPVyq4N3Ruet1t|?QakVKvi$H?VhrNl)I;{vs5^#YtNDpaT{Xf2OKHR=y|jmQ8geb+0IneFHzOreu~>Z zG?o8TgN+4RJX>O1FzG zs8TZcdc#G6_Lf4q&$T|p!vJwA5_bDVhKiql#`zKPqGcjOxZqIl0h=OchLxqEi!IlR zCYJFC%9yd%ni~%*XSIwAvy&O<4qFuurZq~x^0MXZLR@v%CUO044DQypl25)P89Byp z$`OIe7-)EmkvNc*9jy|02kln=IiWW~SMsuQ7LkbmYB}uwR1=@`pk{UM=QrNBISh_S zmAHv!3K?R)R5}QND`n)~wG}xxS~4%XM(bQcCqxo4o;9C}{K6~ges{W^J5_N^ZNf6> zhX#uAR2UeU=kbaL2Q$&SQ;qCS;0$!Pa?lb~9V^rTyjY&#Z8iuo*-8f57Jl-?TEGdU z<^uwXfk5uXy{uW(K7}5 zKj0VFASkbHr}0=@BydoOd~jmB)q>xI-ss+OJ}lylnGriM(G2H(6(!CSaBcIG^dkA>ZC!b4g-Xj6^8mz6W5&<3gLuP#?Z>wn`&q3j&9U9Yk}es`zU&MeFY0-Og~R=!X;{;K{Qp{7lZyFQfciFb zPd4fuQDsT%m9NwTv1Q20URc<=B) zduGcWxwsxswe=$9PxQ4`O%;1C$iUIj`<4}u0v7FPReNEv8R9+=c$!7(=w^ zdr9EXt_M#=DAJJDeq2=pdDZEzjThJ5rF+@9BeseOg*NcmI2jIRCmwrccTFXj58cU{+s>stO8yW2#}ZOP_X)jLql2B|-wx z&Z9kcFo@oI-Q8rH=XDrOm%KU4A(TtK1GyBgvqVvcyuf)0wlejVncej$xiBCA?crCQ zxy}0_^5qJsY@9v2IZpWN_Q+Q0d;PS`K3JUn4^$<1mrwxAhF`;t0XKrS7D_KJ8^v-1 zDuqeLEp^5THR)GvK@T`B!4prBx6zVnWK7IXYffZ;3|5bzy_lm-7rjM(fwXl(hw)4IsgoThc66 zsW5J`#xw7(Pp>93NfT3;{I|=9ZWQT*t8u&z1=TL_e4`{uwJW zQm{nj!|%I@h!zbcb4j-a`xR_T%F4q2{!MGPXr)Xsg-Ub7%YGtr6?>OpDLY z<|E@OJqJgmF=Q^XT1RC%>=YaSU75XpTeg6b{@O!Bkgo?jAi6auTwb$s8X)}CKsH1v zzh%RJG0hxYD%fy`O_(pv;3}4yfFb#}|dN9aHmip}lO-pi1@NBW4_{KV#2V zpw>vVvgl!&uyk|`j~SqzZ2NAGzxOVBxZ+eiV7IchjX}6_d;dQ-0xdQfaT}y~h}PY| z*Oj@PB}m!`aP@&S+;%5{tJ*;6kP;}Fz91F=x#tS1gxUft3KuuKv&Dtqo~iQd`1q0F zRpDZ+H8D+JiioO)LVBCnOw>-^g)AIJ&Q76#e0?$(ZQs?eB54Uqx!xnxK{t2-*p~7L zF|7SScm3tgEd~Zov+xUL2EZ{O54X17-!EseDZw6XY{Dr2gR6^B{=s7nNoCZp#SnFV zH#7u$VB>Ok&kw4?@8jQR0wpu|2K9pLvEV~PC9{VQwDkYew4ZM;Pwr7ff|Iq9s~3x@ zx8`Fw;!2DN-k~9q=bV*RMcVCqQ1Hfq3&B|2{{LG zEz*cnAo#(g)`wbFU%rfoM7&_}S%C@OojZ5(%>~T6CT_7Ya1;9pZh9X@MPIiwE6fk7lGIk)Q#4Xqs!38q!!U^_wl+J05)zC7OjxgYXjcHjN( z!-o=`X7)ZH+%TkjJ{%@9`>y{O=-~Q5 zfg*V1-UQe*0ag~aYjVHRRL_Mr+vqL^EAk8fJUg1Ebg?NrKLROu*VKy_4>{+B`R5t< z7jXF(?(@&*bIwc3QJ_9iIoV9Y1p2sP^{H&FsSd-bQ1gwsj)EiOo7#qT!Hhk8iC*Q{ zmFVaak|+&L@de2v*6F)x8B%uK4b2HY+AjQPnEu9&9j62RfaYmlChh;-tRiS7NiGKE zsK+}ha-WwJlEzfb2)H}mCQ$K2B#518tBR$1UL~lCg;XT;3#cRRPu}HCC-?2cCk~EJ zpr(7lujw_@IuCy8+nxp`Or|n$-u|9%9U=!Keuw`sqpm=;p(91e3PWdvSXDu>QFPL z4L$kIx!6SNH&U?4(nH7KPoFCBmrpg9dvw!O@%2p7jYd$lEczVF7N+=2+#?t?-H*2v zvafZN$L!86Kh>)m2Tk|RRUHkbA%8dBBNP2gZWmQAL)dWb_ z`dkOK2&(sHxu8=eyPUp2q&TCBxNsriGGGIA%TN_O3u@zxNro)n2IA|H85q(v!OD)Fxd36p1TF&NSu0c&AOU>A##I_i?9pv6d_(^RNv z9ei&n!@o41*AblD<7Y>?X&ZZj=eyS#JzrhNiY(M0y#XIJgs*wBSh zX^OjM{QTY(EXf?4xVfClxh$g{9Pw)GGn3k)g$Z@*yp)qw78^sGs^Ozne`4ZipF~7r zh~nu4+Ui3*IavQ=@P8%lmc~s%@Xp7_zQOy^(FH~C`@?ADZTa}^IKAUGVw6`iod=+S z6F8Q*r_eeML9m+Bg?{kLJJgMyTP@48QKK@_NbI=JFzQ-(CWGB4a|ovV(BXBeoM*Rq zIy#4>G8ALheL~M)*m_~EC*kDN;-u)Jwx!&SLZ#Xn)Jc_H%IZ!wzPnyjKVy!+;9KYR zFQN|owa4%hjv|JOenw*B74C;Ot!{Dxm8Y096JqQOYcscfL%Z_o_w4U8O=*0fJMdy- zh~OvU$sJ|IvMj)1HO`0pVq`pKyF-pagNr$alTn3p^|qg?UJ$A`y8j#h?ox5*!K&d$ zgPZ8=9$2Enbh^nnbcwiPXXwS=_;+vkf~s9*`K@nPiF{dZwwxVh-TIubuJOnC3%5I$ zdVcl$A=vYk{wpd&$8Z@|DyP1KFFVaJ(8-O0X@P_FqKzen zjWrd6Gh2gt_XovF5~dO2OE1AUoLX#uE8#P?&sEeOXjIOdQU~lb@M+@@2u(fR$%V33f=r<~I3&}|a4>cF0%nD_=*J3N zTRUqyOJ<3#@iiwTo35^smInPFfpL_(xb}HjNLyFy^JM0&Yj6Du`RRY3H%{|BS^!_g z?=5S%AQ{Ler#0ZeWRn@kn*KfT?Dnm!`h<-aFD9|^8nbd&56(ty%*>E7NS;0WuV<6* z(glU{2wfQ0tzgjpGP`)b3M%DMca3veGflMbl|nv&9q5yrS;RVF)#o?v-ab~nW~=8V zRDV5)huban0<6rmDDtzTR<(U8sVc=dt3t_3S(*Uvq4`SAkAWo)<#T?ZA6bDV!-}RA z^H|?VVr*Yh7OwsX3rJ4t7+n3ZH_{XX-i8qNd|%XI>=Do*9JZI0omshAu;7%iwKbmi zAM>rhBwIY|$Yhx}Tm2YsS*$7{$8A3q?b5z82tgA*L6bZCCSz?ttyF}_7*^|mgjdiA zD*XPadYL1UHovE;`tqW^cLqnc*OlOP`Vf#zDsr^3S1WsZ6`{2 zFR4jruA^$MiQ%h{SAP%B#l8-BA)!+To>hEBFsK5I_~e-?$9G}8Ub|@J{=reB>&Jm* z=zDsw-tM-U_8+EhdFd@Yn?R;YOf}vab-XwEqs!^=3)SL%8!AsK)tL+@i!Rd&(HSru z?jZ9z(V}A~HFo{XO8$g4%6iVeIv*pW&h=X~fk`+)r?j01EZU`n%5JpGI+%+=;tyQj z3t8zI-?lmi9YL4oX^h3cL-uc44l2#W6yR)3?$dNad8pS;=>TV zj)>p4Gz2?Dycg%Ahn$<*$GSvqM|W_=M-vg!)kOb^A+C9Wx)*OTJmj2|Q$M|-FHj??fc2LI5l>X(;9L~D4>L7d`p@My;wG4e0Jw&#|W6Yhd&8I zMK`T@uP*J#iy$dAvfjQ`k(>oY=z5j^J2r-FlAo{tXf!xc1k{@t*k(%$rmtDrSAq2= z#|c1VjCos_DdK7sM`}S~ZU2$1*hpix`jy5)c2GA$=-8QY+p~1d)zRH5pz&>*8}z}rP%FYtW1V{}Y8{FOa8G(e|95M)Cl=fc7}g#1Z5$6S!1|LeDM9XRq6 zD=;?_8olLfBL!OYu?U{SJAQm0-G7*uyZfp{oy*%0T{iUf9*_%MRSZd~vu!#F6w5pN zv?>CW-|d>huLkfvLpe=jFTBlEA$x2!2~IXBr-$R7k6_CZ?AYotGLF?2(wl^5MwrIh z-@O4PcMz+HA!6)NP@&fi^pEB`odiuFn#qh1j~`=)`Z6!YN9k&_h)VB z{Y0x2p^c>i8#A`3(Z71(7g)4sLdOkH~Ln{h!!pDruDm@ zLt3d1@OQw^4EOjH59Wa=dRBHpT!-3%Itq8AhZWtB@6X<&bn)!>VTiZj-)|j3**K z@G%}N=f#jJ5O@d6sSuJ5Q@ACdXk*jzy|v-06#;LuwF;^4oe^=QvDFk$gux^Ty#1uQ zt0Dyg9!xzc4y41l1ei5hpms09xy;^{vv?ES4g}x04_n?wJtlOi|Mlw;xa4V4?szH) zcb(+>tV9ZGEz_N{rvMG>4Ez`Nx1KL>Q~od&uf(raBCiUMxIwp{jy>$tCs`f=uR_Rz zXuF`TnHuo~MRu#{3b5283C zmD2kW=5OkwJWxS;TJwRfOF`^QOn35}6Y8Ydwf^nAkPzRdWtyWd@5$LHgBqXPR)2cZ zZE9Z|ao}AW==_q%zrK+#MtDhi;nC$5(p3^)qu>e;ViA4a7sASlw}z3Y=O%()gbt}v z-2%SdEOh~UKWGVr3kkJ(QwnY~_Qc3A)rLn+g$qr7E19a3*@%kKZ^a9DWkQq1D6ijB zyIRv9W>9;&vHo>x4t46&D}znyK>@m@TPR~6g1wWx1VO6lS}k+4>*2#6UK;C>_b2E9M%=v-}cb95&5FBA|!ZdmPhy8Gh+{G z2cGGnGKY^OX5C=)900pYG{7?_C`=;o&X(>;r|#q62kl7d_c+40w&As5@S|h+;JU$J z7d^KKfZ+KbDDAv`(!Bju@_f|s{k)U$C&o|{M15Y4iaX!z+1(=?Mup4XI||$dgR1cb z(3-+ZypQk4)P0oE8TfbeGw?etqL*WNj@UEmr;h-8lt1xEqpdpn-2uoqqw=nK0j)Om zK&FTo`Du$@|7qg|awMAdp~{eCVRqaCJ3O*?^i;s0Jl}fkkWU8f={@2@$;8Ge-aYxpzs*u%K0^Fud9ihqS^=76L%`( zT4TJh(1y;%q)M{d13KtxoSo~BGwRte>zmahqRk6`Mo}$arKu$R~TG} z%}4UV@}L7ZR6W8^_iB%J``TFKBbomCr{}hvzDguhpR0d4-$&DtN&m;rRYflgUrGmu zJifX*W@dZ#Z6f87peiwJYAGzw#IUg`{E_@H2kC50pQoyjee>g+c~~rAOntIH*v-o5 zb|~?iM{yRaP^I(&uAhMpQHdzh;t&0)M$}KdQFvtQN-d{0>kW1`H}<*=_HJs3b>-${ z^+kfEdz;}5qy*O_zrQK|MMhpXWQu89>B=L#r?HEw@V`fm{DwN9E~7L zxaIP!P;2jPx$1Co-G*|#s^C|%ZALG_(+s9a{1AoR;Tn<2n&R4Jb=$y*lov6wkxLbF zXgET3k`?h^zliHZ%0a=GqihBj-QeVJ8}!VVO5?<#h%e= zaFI>V#VOykPMbZLaTd!hhg|G zpWihgyD^9VfYniKXn}=#aHZyLXJy%z(ps{!vs?(%Dmfz&#dD{W111|J=RpSg1$$nc*KbnhyfeKSobvC*rfexm5Ba)y_GjzlYfl`M!petNgv6@%An z(I?6xU(|E5hE$Y(?x%{ubVK*F+&@qEO$2{MJ~Gv9X0j7cAl1IUW_MpvL*}8maD#MK zw&rZ{WN}qV1X%};2Xma_)~7JDza92CF?>qN(m_QZ`Xxk$fP(jUy# z2N$gPxAHkx?(*-`@XtT_<%<377kUIKZ)Sh$uD!ut6z7yF=aGhs2h!^bd=pWmY*X=% z+&{6?&M8GJEk<-75Qt)>rG03O`1_VbGA)i=o^0!`zn|^U$OGa9UwKPO#ZToqDp8^* zSC$?Hjku`2c zB5|cx-z}H5GUz@3_h>sDm!B?eJsFSRZvCF`@_IsPAl?m|p`UpI&SCZf+4WCZlMbzB zOixUjY~`3i$A9GGg$^@FpJkFI)Y5 z)%OMokkPdgYwXb~R*>i-sA&ZVlLbhaPm$-Vu^QWWk{;}KbbshhmESnZND1uAmU?yl zpBvG`Cr|*q%~H}bW)Y6I)?@O8DrZmC6elGn;;EA3v*_ed_jHG~vb3(vmXETM3OCG4 zHV~&D%yl=8LhetFHBQY%Fa=zv^q&`b-;56L6`M-jgzqJAZqRj~dYF|H5Po-PwZ1`8 z;6&c;MlpWmz0n}Cw4Ree`!wcT3P zz+Q&ml}Y|?#(NqE0X+O;jw@dHw@(P)oU8Obsp7?yc!GmEb~n?EwcVSRc?_#75kHI? z&9GX%=$-8l=7Wcki!ZV)--uF{rxv_BSS^|Q+Ev%~?+>SbX>UD_&EIe;Gd`v=)>cnE zZ%cO4IX>At`PwBGBJF1@8^SW9&9^J~SvMn-U*Yt*?je=JkbBH^>yOC z?kOyOeYC_ALT!F@Wh!*cQ))q40@n_nB>3^Im-^q)4t|ll95T9;(g}-Q89&EmcOm0F zro7)r`l{AACe3Mn+?^o;^6>whsowL8h;e^RbK!ZbS1n(%$Wbk5t#`1Da2oR=M=kYQ zUk0wY-0JRt65`Fv7v6iRZmh(9Q#4KF?H`pCM%r{ zer3ZO&Lv9>x?S=idjk<2c|x+`aRz_wIy|1hd>LZ>;lZK zNKaRFaGQdEg9W}c1D_)0pL_W0{QBUGSqp2sL)|Ky7Qw5g+S%&*R||FZr<0A_23zN~ zANf95Nu`ry@mdTKck*9%IX&9tG*L8r{?Eh7U!nj@b-KPtjXQ(Uh*s%Hp>eym6|Km!oYqMzB{+{HB8H zwhJ9bH5On_%9F7}_gcV%y^5)S$;x?3>vD>@(IT1>-Adue)G;k49Hk1$ef!Cl>bin~sZr<2SS^Ez zS07|x!42F=cE|l)0YfS^FH&lM8BT3p*B^D{+?LP~K_%W)WO>XyJ6GFy6*E6S=LIG$ z7VKYlAyfDA;oQae3vUQ~(bw9W4q+-mEJll{O@vr0&u(?bWH^{?&O>YL>7wMAArJDT z;+eNu{MAaYx@WPaOwhxXr%BxZ<$yxHb)Vn!iZ=f>We=nyUCdQX@hAS!Rftq8&}Xka zXK}H?g5rG@nrJy0c{S>sOq}xPc)NqCZiM^B5rL?W`A^AzyWXtoOAn$8_Npa1>wm4; zg(>QFC6c8vFhBC#{N(A?P}@PEyx2aHJwCrzRuc49?on?4O-!$DmLi@KPqYL!$&l;v zSu=%H;vg)n_kpmWhU#G|j2Co5DVTBvPtz1aq0u#k`})H)8%uK=ExsEo`msBhvFF63 zur3G5fE&cVZLs_!%HGp`snOim|3s|RoeOKjF5PO0o;AgEw|I+Y<8E(U>iZbhz{q8@ z~b2TS2y_O_j`IDx~ELY95{ug8NBj4A3qK99CLMp@ zNhv6BF@S=-W(3yjUzh@4CQXx%sOR%=VNpz(UN5EJ{}mc&pwMuD^yZvz=ZxW-09N4^ zWOFa0>rNI7de$f7eop=HpXy`NAJ!>YLH)c@G;Xu%hf6Oe=5jg{R-dl)`|}B1JfG*B zJE~?kC(FUlPg-Mz8Fz-Nzn`6$OiZLYn5Z@~=Ow${z43fPk-bl7m8ur~7$aYWX)67@ zn%)h0990_z2Y%us9Re0Hw5y7Nswpr0z3^$m{43|b2+ne zIfoTY-o5!WYVn1FOcXPxmBz-=M@E**2$vuScM~d0&}3k2^E6O?Z!;Ol3}c?*y{=mTA?fV=m<#8Fh%L`sH%`s{0D3@ z5>c#2F!Jey$jLcye!ry`5o?hukgh+mu2N(2NNXJ4mfW+zcYGG88|t3sFyCkl+nTJy zlu}^I>~DQjyL$?9n{}3gRtbCgM;J1U4+e?$L~$`rumdYm7L@!Xoa?+M{GWI-#J~G1 zYq*BGenQ-oh!sYIldp&V^Bk2eU9wX6C-$z=&=9AG%f^ulHNfK%ivNoS@{ct6A!M|J z7rOOKn~VM+8WFPn>R|HKG$Bc*==ab$JFSTkv-qEP((Iv7{eUJzH#+RkF&e zRFt)Na!qRaNGEwOo?rY}_$SzjNBmHT_d+{5$J*n^v3oRlQ!7eg0C<1>t%<2ddniww zM&~>{pKL36Z)FJLfw%XspDZq?JBwhm>2GMakM7dO+5&>^WIXks)S|KRGDMdb3(zy~ zxm``ew_6rs#&n>%>%!f+`!ml}X7MFqlzi5^ycIm9Ex&>4(;JGKlmJvlX0fpm4DSS; z=D(OZL%&){;IHRXZ}Z}|srV;+$ksOPG`Oy%PoU;|(m|k7lx+NzqurC7m&3_jOX-#L zWY2vDa$GNyS-H=ju{i$mAK+@ip_s6!ML8>dcotDxvZD0#Tb%PknX$^Ez1gb$jy@-!Ng&8pQw#2zp(m-lkn+Md6-K|R97rN7Ibr!>Y%08u z{wH=xz7ZL_3;OsuiLf&{6c(=G(~V)=9}jqWbSS}jXiv-Ry;eV^GdXJi;XS>}>F0+9 zUY@@Ne8&_BD9MjR#L&!T`EsBRco(L=;4`(w;fh#FkYlPlU)!%)Di(LNn(4v+CW4MrPr4 z`tC|u?7nGH`opW7d)zLiV!}cc4r+BJ@`y+AH#`72@ zrt-TALHFRgVUxQdOrv+wma+k5pmYbLV?V$X=J(0g&%UXC$hNM=TYP`}y*VF!B)Gx~ z%=#S}8;epK{dgM<5gW5VHUJaZZ&DrgN@V*5 z=$QV8R32wsq&hn^g@#0V0_AFxM?-81*NzvPpbI^mtq(gZKi5+gR3(Sa#Agl^RC#zp z08e?rA)j&-cj@chjgv|U$UfGRW_-|%U!I5&bc&B5MsU>wsrj7B?Hp;C8tu!dV#a9I z$287!*Vr8)m-#y`v-&Q(I0pwd8hgl(qfG>-^4K)*IdsNyIB%1SVm7wbmpx&}h|!52 zj&olRNTsu(|HuC*Bwd`p5Zok%*}*EBr1Y%+Ia^3YuAI4(_VP@rT|OHC@!yPC#f}bS z8=^L$8{}yB>=N+_(e%H40W#XuVfGS2L2B$%8=ojTKfqLEs?_<4`M+tF(ESP_m#xr( z1M65jl1dLEV4}%lRH6rL>@Ii;{ow53Ki7Sw(IZ^U`#2uTJ2ZLMRg9k<*VkfV=BJ2I zF)RKKvpO#TgE{82A6NtF1;(~#OWeA#RSbX}$j@7M5(z5eXHVl<&+!VpLRAlri0cB*XpK~v0E_sskLohDz`4~1YzcwCOh#=3gTS8;>3wH zslt7Htn$lr=!JjE`-K-!R=eEnjlB-Th2mGmCpk1qXFnUM$zZYiaP`SbdCp(TzZ?a= zE#dwk#i+LEX+q~Ty;8X?#yKzTvhu*?^wzvBZaootAo;IKJNG6&3qBOofyeO;bUCDoqCq#C1#}O;R0Wfoi3nMhFD*nm9~E* zxF5ABHuY*6c9992198N!q~W-cba8WIC=buv^C4zjz zRbv-ljHs96lOvGn&hT`FuhOnz!gR2r&aw601QmwfO<15B*}bV#JvWtKvch%z9bU46 zcMU};9xdN{{+dS7t(-gm+_O}{mW$7e^k(@-u;<7;W?uD7uG(8QCMY4uGM!02$y-@=e;=fKk`Oj!eCp{@n zP^g`*I|$HFI$q{0wOa%RN7a)>Y*P`aQ;VuoV-t0w3;I8w$px0)JzHLNdzVHC3&0}u zm8;BI@*33I+u8;@%l!soV(R?~e)kLu7jb}8oQc>#8b@m{+BRqMJFCr*Du18@MO~SD zazamBnT-8mBTF^?|0Ckdl^e5D*a&BqRr< z8|fZGMH)dmW&r7K80tMU-h1Wyd+%EQao4)uInQ~{`NZD)vmfd?T3gluhKNi02(l7& z*AWQH@e^FC4B$NjZV|TyCTMG5L^x-pEt9^ElR;^=L0&vTbCP+MmTCXyDkG4qrsdA% zs^n!)$6Bb)fYqF=)`gIK|J>Gw$*OC6G4*~psa8YC-Sq|{{u4W#zmY+Ww|r;f0@(2K zo<EkM5&urjfME-OJ>4Qpvsv zw`7`|pdh(s8e1)RQlOif8TKkWzC=67PCeBqJ)TaJ;q$@lE)L@+j*U|ovbq!r>XP=1 zji1)VCQKSv)^!oKHbZ%wxJ)diMDj1LX<3hk`s})b{r#+3wNe85O&7+m{Q_0D|1LPU zAJgd&-lhn#J4pc*yVf<$tp$858E_yt+2UIYylgXcluM(!PoD2VTz$HZFbG)U7><|# zArxXoQYQcbZ5Ydd%Lqy8iE-~fjmYL{?uCYan7@p-rr_|{t7}Czos;>RIPg} z&R39ssy`UnwLBHVJk|Ex=vc)FBsCjl%`RbUvswnxu(L6~+Tx`z?KGn$_;yo)A7Zc7 zo&J23>Uyn`=v+KoBEf_QwGT@%^}DS044=wwfylc~YUz9#4QjI|>F71YEN2=#a{DZS zE)t@p3Z@Q}o0daC@U<|`04o)z2)UQG*Sq^lWW|N|0JjQ>BeKS@aDrp*c;l-BKc*FG zteZCitq{0p5$INEYNj@?V#DjyL~|l$)jce?V%du;UbEbOJwedecEsu@HXa!%6mE?3 zj^--5(EN9M)sm2Clw0jB%IW0~aswjlA;kU~jZh4z7N)2tEkxKVB}Fs%`-fEK!(pd) z(REkS`o7;o(WYgD?nTC$5cSA(-J6w{_pV>U1xG2U74(TzTAK4*t$gg)*Zu^+<>{7h zOl9(Z*kPq9k0X9ep?Sqt=Aex$71GWsl-;Yu=| z4oMYA0ar|L5vP~zW;$u(z8F75x4n1RUiqJ>4>Oe3U1vBHKu1+}B_?w7ae^8WKju?n znbu}EO5umJ@AfV2Am~vUOrTkGP6U_$YLB}1+@skR@y(COpK1J-;JJ_#*ek2FjDB*zZ=8?_$xK^-*e%VDB35k9L&;M4`>l*!1$KtY%S| zVdHQ|>N7`6QMI2{cN4vwH&D~hT#q;ZcaQ#nJevIjkII>-NGeQ=_#%FHS84?&%K3jE z39CNw9Roc$peE*F$BAwawlM{dNQxlc7`v;Ns_3{N7rG?L5o))&v`Q9$Qy56O9t>i| zqDoT}{IxRMeeaHSDZQjscf%w1j>#d(NP?#aViI>ROL@>yY#JPSt#-<@NgrL2I{sZg zWYpwuS8|TeasGE{3|$V_-S71`?y4y1^)w5b-not1^8cK<@tTZRq-FcmSt>tcIV>KnZ!TpUehB<;4dsa}e=UmTq z?PO_L*xmX78+;TnSt`TQmnUvqHQ<-2X;Vfl8Zbgmdi29&{+{)+F-#fGPU0<6%sTSL zC;=Owoh~4>3jXfgGjot`B?1QvZY~8s_Pa2KQVW+wK&zFU8W)@N=ITA+H*5A-&kzpy?+UV5RL)|8K24c*VwW4f5Rv}bc3> z&qq89V`a7qW>ACEJ7zgi%1wrzg*dp+Q5p6&00tO-KO-3 z7)*k<*g9d>i;SgTS=6McT2-oC$$4S&sI*B$}b5TwsHMvEiftolTB)T$F$(nkHTYC4Encuuvt($*e zvEtPaJjQ;t@oqjGuB$=8V@c_OlqX=QNS~lbQu}22Tq1YIP!KE`@}d5m+!D6|=A`|? z#%Qo4@-n6T*}$EmtCc&|flmo(xhUE$3VV9uC@RJTeR{0+-N};J%!LeU80VXib&rV} zaMa*M#(R^o+({`ZTY7lWf!5Z5vMVSN`-klXTza|Rg24;j(5w{`aP%YX4^~vKd(i>v z@J{YwyvH!_ZB9@X{ZcP}p|o4b{x?dDu3`dd)I$VquRoq>6YSZ9n2qThi}ZqB+d&x2 z<;+dNY%sQH9`w#nsCbCb0e;HgE7d@H14W%@v~mrTYinVvAPyW-)thL^Op}a8{IK3a zD7ho3UV)X|5pDs5DuDM(*=~@ltnP1>{{v|7F*8vC=FKieB7DgI26?#)r(KyA(#@2&hQI>!O# z@?!$0La8E|m9#OG)9$3ewg%ibHj0pqV5m=uUYZSi5^bp~u?n|0A36vGdRrquy>D6; zj&6ZVk)m73QLhznr>tc^e;6XBaq?ZUwLVjF>X;O^{zO)Eb{Sf8Su6A4n3XD^gBw(q zUi;Ea5u?=q|31WDoolT+-k|bZM#SlT4JLXk^O(h&3lh__>Sddy>YN5D>#2Uo#-@9) zW4hRCuvf|rfGRE%A=9p6s=wM$OY5Pr_vTar<^;H_H#yD{5C=))NorTo)kNCza|)@C60?3nx=`0a7x ze2nBkewr@*H}KtA`Nht+eOJ*H`?NfIAC}YWQ_MEtEl*1b7?LnWszz;w2l#!HS#9gF z4qJksMU@xUr(^1iSZ8>bjWKtG=#GN3J|g#OqT7p&)8)aYPj_?X{{|M8e@aNgHW1{} zOr_C47&`i{Efs3>7tc0w?SE`z*);JCu9UaBwRsc=H?uw*rKx9)3?V+{VI5%p37SgA zXY9v6kefQi=FeT@K&D^4GUr^s+Q#nt(Bq!7%nh}AE)T=J+d<(rL3dkQ=F@I|2_R#m zmbe}-Og4E`J#TclWpI95My&&Pisrxy+j~N`TKu>UPeMDe2UHBzn)P7U?02NX?knFq z(H5YXWvoAI(xL2`?&va%ywL>28_w=)K9D2BH3K^ylIJ8=H%z1D18)7~%+d)nP{|z< z6Amif_iM$r>CSuH*!6Mh?0t|N%lJ!lm6RQ_3NCcWy@0`Di%lQ=y@tt>SXeXfM5Q&9 z0ATPh#>q~6h&|}aSGVKqB&rsest)IjBsuONoA9TyAQQX#f44Jz;yo>zv$!viZ>T;h z*iEYM(?QDtey1cWUh|W|4|@D@X(%U8h9hvLR*%TO1VYZcS|daAkIhfkb~JgNrO|k* z8dqsONb|N0ieCc|k%%f>NtyH|-H6*?9d6d9U=G-cKAQ5}`c`a-sz5-dFAbZ)kSCKK zWKxIesOrCGT)vh>7|lBc-e%)y2UW>*Y!5eq2E@vZy{K#S2Z5x_q}&a!4ymxcsqp&K zA0+)Y!&^@uIIy+2%0Df3yPy+cXQ=hcW?1ysX=H;8luCby>~ww=X?7||LTW*zq(+Ms z1Ms9&>x$(IS089rUisQ^7$;a;k}V9ybL+|#I+_*mZ;v!EFQM;%_|6AQ&worskUXiH z*QRE+JDkn2?y6mv0-tNYL8Yi7^!HMz70d;pfvyipBUuFW39}aq;ilsX(*W4OOB`Gi z=pLC#jOu2Qr%?G0cop^;QcI#ot03d5i;i#GW6I3cVz75{8Wp6^L^Wym-X9PNOo)5c z!(9mgwLW=78Rfm}u{wJ7y_A@1cp%YK`A{E#oB!J}jl61OKmxFv=zO^}L^tsk_D+W` z+j}yX4|;5ZleKR{VZ&=7{%}Roe{62@p+()Rj^{cTph5!OHjigkcC3TmvCVL@6I8^h zsr@Ki!eQhNm`-{*aXgwwggj90&2oB^3f}EQuX+Qr6yq_2^^cD!!r3au!@hmiq+M~= z{EQ9sY-SQfjxfJ)8^10N=Xyj;L-fXC0Pj5e@R2P;~KTKz?ZjCOEfm zXM3M-RR7sK8oPGyu*E(;;eSBFH4sti^3ACV9Q4RTzgDI1j@0b6zC=t-bmDVy#DXR=@3uet+3UM( zjk)%`CUzU82|`VjD(P&&|Lq}5j+SE!x?d)F^MLuCNaocc$xYJ~)B~#yw-=-CL3>s- z4ty4RU*z5mx)tbDxfv_W1F6Yp18?yXriRWBONr_=8rIzj<+q-mOe<|1a8^}mXMX|z zH@x410gjW(ih1qrgoA|!wX@!(FS>qow-j)i-{^POlP$w`cgmpo2&^}bj%9|tOyXVc&31v9mM5 zOI8ze-$6d$;KP8=}JLtl!tJxgqvTHK-{xyCN_8*$@q1z`J>ZjVy}Qd^mp#F|t= zr3ZX7yn(s~PL`A@(>+H&q>_NAo|!&B`gdQ_b=xqAD9tO4N^Ex*^UGDI-J5y0*~zNf z{}VNPkz8%~ob{z3y}-dSlcdg9NWe#vC=tlQr9)`Dc1) z!wqM?YZ@jL_$E`Pw!C~3?c;I+IDAvn-6D>^&zT$jr>&EYkb6xIL`wSbn(W9{DScXy zl;?Hl%2{aSS2J4Tw*;eD+W|(%{(P$hS>v6PRDJY(80kX>o|B6*q>d8wi!VGe{MYFkx$AS3eJKw>6E2dn` zeQ!=&LlSti=sukGhIpWLGeTqdQp2G%+ZP3M$Tjx{qOKUMwu0qHVg9?zE`sIfexB-| zpMSta{*ahZ>bT6tk(I0-lmn((-kdN1nFFFHF5AR(q#bnF?b&&#`vEJ+-6GEmj7JCn zwQ7W#&dY#Kzjp{|P;O8tu6hdS3YP6#i<sxNFZTq%6fft;M{+E_>%cz>=i&Go|U zdAl!;xS+|sA%7r~Y^aS7W3{=X{z9^f{T4q&p? zK4_{=mm5w^x5aUNi|>^bdwD4d&3&ywmmMzuLiN<;M<3u{mcD=i2Dk0pSnYo|8mx60 z0}MsoWPVT3U~2o^BJqd~jayxL+%X`Sz)241&-|t~AeJ)%(u8d+{*dqy34M#WP@@>Gq{&#!TxTZ1H zchCwV^+M}P|82XIA3&I=t&cAE=0D3?B#p(Jvy{hD zgrEhxaXl?lKEB5>;)Oh%#Dl`|uLnbsNukKJ+LV%fl+L+ok{Tn$Rl{?#{n#2JNsGpe z0?PBbf!vC($T#n3x(YUy{O-HvBjhY#aIth5^spY=*Q=EH^QPh|k+H@EQ3Ylm^F6MF-$ZZr= zY6HZBFjGgFf9shWd(z0$FA-a^Zs^~X^`_Dv<0=q4X zkaX|OR%Lc@a4;Xpz50mW>59+kHcaQsvj>^a6(Y+X#Ku%7R`_fvnTC5+#hB9Gx&N32 zcj!*#Rh^&tjl1%Z`P_!|&zR(??ajqS900*f+m1x^V>U#Cax0-F74BCG^;c$lc~WnF zk&q~0U*VSV%=cWwq7!1ETZL8=4|>Ko)ctqRKqdiw-cr<5OK^X=m3CqE98I$4mb}!_ z3jf=;Z?m(rjllPE-Z4Uw4NtdXUo8)Y1v7e!^xLz_k50#@f%J?wR-#R=;xOb2T6^a= z51y5^TR&hy#>n}WxKh({2nT&qP3iCA&_C5VOUw_$+6DMs@X3|vHcW_mLv?6(h>p%~d>UU{+CUeo(XYE7_>s|1+U5RC zw`Mr7=F$xZQk&g-6mydJY2m?Sr+B8`2O;O)wlnEUjt#=nJf}gsRWPD_?XdM-7n@T)w3Z_d=Xz)AC^9)F~3tyE zS3o1^3t$WHpv7*?u;xgmDO2$3+Fyh00wa>`1nZFlSLH zO}rvxbpbd8erOc_q~N45lxe3`iQJvFuQDZMfzK!{f)&)3uHe~y?MdxG7-{0m;T;$S z$YQ^B-txnHpg6S(Yjl(`YWuola_+)r1mbv%=I}He_-DbqT4^QI5QMPM__s}1W4wa+yN1dvJ83p~dujg1ZZB&VPxt##q>%W>l_D8b5S z0T0K*&dj|=z(sqp=*%4VogP|n9-01Fe3|LCD7KX3mBI2+H!oFk4Xw30o31S0J+=t!wD+Hji$BP*l*|t1sArWKSnVwQq;noN zUMU}fCOQr3=sR`^9v{y`<|7rkG5@tvf{?z`fM!0lUd(zZpMBUkI<=fUe#TzS>|@% zUHUfs<#~THGbf|x#swbuF(20IX!#7-jP{p6-qDbu)56Iun(l@~2}_OrU{h28AvEI_ zN92S4l}y0Y8C1lxw4rN~H!Y(rzNAgdL($FftYA!{?k9!Nx$k77oa`wNj_-XMqE&!D z=eM_DkBZK)^JD4s!uy_x#du2Ju6F$ZJovwllo5vGQR`>XpScM>3RmL1I@()wHM~`H zKG6|??yZ&Xb*3FLbUw$M#I!>1a7aar^1|5BvEdzmH!{g(l0eeX$$Gph0>t2tax7Q} z+px38%F4HuOa=peO~P8$b$y#&Nl@@F*cPC$;d!2r3tFu=^$cBN6{v zQ4P<34S0|1%#UM5zK{1$={*$mRbkzM6eReWpp`#8Eaq$FnqSAMpjn*Tn@IozS zd9HgP#!CE(^7G&E_egwHkve=`VLi6CLDM6#P5j`&gMn`MVdLO0Lr@Rg!tmCaM3+go z&Uis0-_jnb1V!%Z^ife3c|sXu?|0xKySZkx@N#|3Y{=EAsQQbZw|w|0-&Edd-PRYG z;U_$AeH(GFOo z8GXf=z@vgI(FgbOA(hy;hXS9v^gdc`tzB>E`1y!2DaNW327&3>RGa3tJ`AJzMs1e( zMQOF+Xsv_Rwyp_$v$%qIwLqsd2>e?F_&XlKL)E9KW%LL2%C{$d&QARB_afU^Vhz0y zV~oF^o*X%@*Y9hI12EsX=6CO$1g{0jvf{MglCAf1Rx;?QMV?ZX+O1hx$J?FUCNd9- z!!BcL0HxYG=bLOFHPX6=X`yv^L!6&{B=W{v<-Kpitp05rNxL z)0j)z>nv6F6gz_D<@m+J!^;!jjB7u$@}9P8j_r{ivzLjdqu}^|PeY%}R+@$jPAt&) z&H)N}5*};&&i~&R^ct#BlK@04b zAg}#>4#%ku2J|s+U}d2!wou*&ViuL9XJ1^4t4VPs>+Yef;XH3?&|N^*+BQO z$ViHZ;SBWy&ml)6J(Q*-78Fcp8Nzp9q{oRmkYA!;5GVzJy?+TG^CT~L0f62b-Wy*R0fcxm8 zG(H__pv|fQvinP2JfDY? zGhP1Ut$_wF$5Mn#_1>se^~`&5tc8(MHW2pH9)$jyz!B|WW*`A)y2^jUK z*7p5HL3^Zu&F?J;KfD%IY5GKIv~?yOm(cw;iLo2_7g?z$?SXUj(&-F@Y(meyH_Y#E zaBzgSx96(tCy6=T0kJW~X?bw*-KUb}!rJ#^ws87`^C?C1H7ZFh&2!pN? zlB?jFP*+C!O%T43WxC0x?)4?zL|zy5HRL19a78|7_e+>`WH)-gXqXB72(mhAwndP5 z&vobY!bt>15AiDi<+$pM+7FiUG8!$z`bPe#hWh;({T1&E>bAjs)&q8&}v; zdIow=B;Fj3gDCUw4asdG@xV6v{*GF20s;y;9GLZR@y(;vN`zK;SE49CSGDuN8*=8V z)rv9SGt%X9%Yi#-p!OZr6xC5Jq`B_7aNKXoS|?RXvsrsk{;IwXw`;ZfusD;L<3FYz>7&-XrbaGk=vE^(do zx@tMO?UMDz;ld8_h_x=U?Fr4qod^C7A@Z4jq+Dt*R z!2n{`ooG2fdKG%I_sBE*$xT}9tJbX__{p=2qiOu{vp>^CJ z%libc;e3J?O8)+RLIZTt>=uy|uK_0j!qgGG3RXKeakZ-9dCPkVhYeI(3A>1Sq0xve3x7oREiQJ z6^&kse+WiU#aH|pol!SuwB9{ewlC%)F|;|2WTTR5()2KRka*BdCU}*X z_+|vL)>$L*bZ}*$P>xsQJ8-h=J>Tz=JfeTFk`eoc6H1rwJuY$wpTxh=pwhd}jZtKZ zoQcSgRc!YKQv#JHM30XY79MoS^I^gMZb)*hv~pDuEvvlR?tuij%W_c2KSU+ z33}WEM2cC~czau0TWV{YtA6#i`}yodRGdG4IIY)hE8Emh%d{OL`ChmqchRkJb?OAkF|w2q@B>zB z26Tyzyh&T)f!7p9FTl(KQ$z)>{|Y*e#c5!#=Tkm}Og``L@sRln9|F%xu@pc<(g1ppK`#> zc!QG$@QkaT$>2I(A%&TN=n&X4uR{n*YKsHmKFc>Rc9wFZnQAw_w;G6oepl^U*u$#n z4**l+5Mp(m>PM5}wVB$|Jl&Q~T1Zs839FCZfiOjz>>D6_DvK= zfcP#zNYv&ub{3>{U{Zd|rSm;(`vGJPwKw9GEap@5X?Iu>Y7HLq#ps=UxL4-MjLUD6 zv6yh}L+Ni4IlS>toPR^tE*N0^oMN;rd=eX#ewuk|3p;dH0RcrS*rhwwV;KpfAj^Ki^X#Y znUkM5(`+M@2Hih_N*>6q9p}4eJNbLY9pKeq!@GKD>y)b1r#y-)q7|+SvEmtRFfFfIv0@!1IOF`>FQaQ!bM7SX?H~o_T2i>_M9xJxfl3*F5U^Z9+mAN zpp;8=RQ@p6JH^N{1Q-TFRxd%wnuYR)*wJF@k(~gy3BImtyV$q ze&*)N%FB|{(*7v9U7ZzLSYuLj^el`c=RHl8%5#*9en-@U1e}4h`3a{)7du6o-&ICB zW#a=1r+d5KHlLk}%@>W2?hk@ue{9Q5>rLS@86zAUlS)wj!vsmj2&ySG zx0<>wI_OMHi#OBSQsd;;{+y@o-pawu&4r$9y)`1Xahwh*U$Qg2JV?&NVcXwN`I3kG z2#WVFiy+0!k@y92kx}yhU2_l`o2RxpGxRdgh!5Xe|EzO!j2E)58F(H_#ifwb+8jt! zSp(mn^!6_V_4r#^CVfb@6B1RPz~Qz~k49gdCyMq@1j9;baSIu1JvnEz-UEerI?Yhc zP5nL&S1&#SVHLl2Sv0R4$;S#|_da)$kcZQcv$EzLH#UMVX$Mk!k;aqfiG9N@&p$+h$v%1oF zrHoC?4K=k<^d4Vr1tabgod{KpMOsLP*ld1%s^UlF?)Fg2r=AuCaJ!>)aPaRB6*eui zDZh^6SBERJU?-{gmqLRAdfNpD+l)Xn z?$<+g?Ha!qY6r8bsq1&MHIbuX8TJpAUjb|;t8`x^!CUDFx6n|v#y>#{&W?eHI0*qf z;(Z@wO02e*Z8Mg6l4d5GxBq#(TqW7=TiTm3K36Kdi+qmXkv2nt+*0}s$FKp z0bm`LGS?>ZgjR8PF&gIG!npoRs58iQ)SVT{i*i#fSDZ~|?q7GIud^fNge4{?pIe|J zW`QD87q_;zE5~6178EeAJ)M+NbbGXPifjt#r$#UEtJ5QVM2R*AZqEmlLfLZ7l~+^v z2Huyeq=3&u9yR5x2GX)P(2ilo{U1GL=)!h z*01dY$V)AZhsBIoHRvfq z_yN@WaQ4+=AM39~KtJdWF-*LbYaH!+d-2SD3@|M(qNAehz~6f5#KF!!lF1D;@QfZO zcQYnkI_m=hzY+Cc)l{>#lf@UQGT13Ot1rJ6>J5g@OiBUIYGJj^=k-arNkhJM&3tb z2(4`wP!~FXn=IHCaXP!@x6BCCq8-8-udm7F27!xZzm`0YSIDChwY?k%2X-K6m_6*R zEONBr10|97Ty^!vNIcqLfW=h7hFjkO*iyLCJ$(Pz=e^vOnnXggdSd)Dvfo0=Du{N9 zPtI)b#7JLA5{9(z?EHm6(~0ekY=!Rv(q7DEt*&deZo7Ld*QPC!b*x}{yqX_!x*6`` zo&-OhR1XwGm6b_B&mmwvR-uHj z)s1Ay_&u7YM*+x#Qf&qmhe~jwLQk^C!p-Bx`0P%OtS0AkSXBbiC(244D|Uwv3VRHk z32uT`0)#-dOge{4J1am$(SGG%Al0W+O zN*_I%N}n*#SA`}IRFrjEr=8H`0bdGl?FYm4qvfdXcO}U ztdb!)nNo`eU2ufRB1<~Z6w&gy4@4uVs(`!lGU@SMAWtyB$7zz1HO~^_er-S06guDZ zmVNPju^|X1e5}(_QhZw(eG*mE9@_u78SH6h0HB70DKeiQ@2L4j00?Zw3p5%iZnR}V zzAt9--lc99$S0t!l~T#ib?GUqyq|x2c)DMDMuN^#u~!3^k2LG0C9{vr8n>qZIU@7j zcH{O<%dwn(+E4<3%#izltiIX^KdEDn+(NRHGTcZ2}0Hj!(W)ul#!^Ys9>^{3%|o}Inef0cg=v0 zQ2S{_MtQHs|3+IHNT8-h@9p+H*6WFWRF>ixIu0s=oKRUN^f>p%@Nz~(AjYNzBp z$cuabWlXo&=mNl|dtMRCt4X4TUex?flBUriNrSflB|%#m>62Xlh=k>%+K>>O3$nDw ze7dp7hz&bj?L=%%`(CpEBdcFcA}xQ-9yN)F8XH&?qxNH(#TAinNHG;ou0y+1A7!TOYsGkx%P|QQ{QwR4j1XTCjE9wA)d^g92JpTqE z%PjLu962Y0Eajx@B6dijN&qgJiN%A4)>89R*CDNN_hW=OG zjZj5WYlf=Ravj>Z>N1wEvTD1ptbT=Y?A0*Yc`?NywfVgtNKljAjZUYz8q)X%=LXxs z26s2Tz@Z_(#1<_@@_x-USw#VMhR^%m!|qygD$KKSXlD1(i)%Q|EEe&!Z6YUs49}rMqqzV4aNyxxZb?ocgRY!^Ii2<(0T5N1DmI+4key>0 z1v8rj4_eTi^MNTLzGn+ky*c(9DA8qPoai6iFKTafDoWiSqqBwpvuF*0^$Tp{M6C#- zu9~c(^=9oUVB$QzZnVAhKcV9aMopm+46IKbY38#^Ol=b8LLR10ykJKFMr)Tf3qQ(Acoa%wWESv@xX z=@kdU{{Bh_{>Sy@K(>$3Sf58!MhX7>eiad^<-<^az~%!9Z=bb^LTyP2A0QUxSSSY8 z21IJ_!dEssKyGmxgz0EE6pjwXXoPy&{xM9Mrf_w^2nQqiOnYxE{9<=KIoRa&a5lGh z*3sf#aS=sp6AbWvuI%h^>5x$R;Hba|i4a&mb2tC3RDfFW&#SjT6jg12HOJKF7}~sO zrmI|Gua`PN;wUI80<@dn)YNof%|&5MU8H0-!VgenMKe6GlZ?@!XpK;TcE3DyomY`l zT+Ngy0Rm7Q#XnX_K*>VFm`(9^{5zO0GWzj!!NDDcviU@2tB=cLfW?uOQFN})@e0KZ z3G6nCo+R{T@*c4Dqs;+!W@8Qcd`>;F0Bry=$TI*|T)B2_-Ju7}h^@Pyz6UNmNd6v9 zx1f+bwzVxm)`9zvRxg~4UMw=Kr)Ky>{--Wp93UbU=X5i-C3B=7$A&3t7}aUAAR`A$!s zX)2~3RhXWhu3PDX@QMYkJAgGS77ettzP~1*bOq!b5R`o5-enxMynQ4*4B1$p2fAa2 z)^YK^Lr6sWV=HZ}YiqQ1QW38cZfSdgw4SS|Tkg-_eF+M;p?^nB2~BJM1YgQ zbWv}ywL9t-MxyP+i5_Ec4!H2}zXK&-4%GsA2LPupOj?=r9bYMWpYBB7+jZ26+1lz1 zODr**`S3AE$ODiR&WA4_Jiw(DdU?>j4vP}L^w`?FLSLCfj#R6OMy zma?sjSPz#M_ml2OR{~*gcV-txJK+d9mR@T4a{V;A18>HI4i7*GKev zlmE1mi?skZ2z>ebN5nfiQHO-q(9lpTDFAvKQva$ammHhpcho87GIt3x{HEiT@F8K< ze-3pE0`ZCMrgvXRMGLel5#9;FE84p97ERdNDgu5~fbu$-D9kpQwlX$i2|bQ+f? zTwZ&os2IFFpOw4Ud9eryo56$0T?FPAtH46Pr#ULY*s*awNIddgOBPvEVwTYvhcQC& zhQ|<;|1WQrJLcJ1ex(GLh>F+y_`urcBb!S1D*;eaQ-#P@O$}@LEo;BbMTWF311p1? zY`5*XMEmd5be$)eeG75vip>HVcU|E1 zZzH!bhOrOQRNeR2x)!rw%34~x*F1edEBuZ|@NFQ`HE**nboWwB6^y%94a@<35>6^D z%|2>`mf2psw(`HxSXuJwXc+suk-72!(3aS!O5}r%1}j07l!L7CJz~1 z_lOU+xa3g!YX2S}d9|zfd+8rY7^M;`C*7?Q#(qRF^V2IuYV-i1uFdsd!1XkKT7kja zM+w;5#$KhO0&pHBAt9PT9az%T*Y5<<8n>A+;oATU*8?x_gn`LeCj%&y0SJ~@#l>q!>*u->TC-Kt zK8d?+)g!0QF#H!wzujaG#Wl8Rm0 zLjWJKG7DZ)1#^48LOU{%C79i)xw+#L6pH%{E18iH(2&DVTPv>o4KE5Ie`b)lv!`P zz5u&%$=+A%JG)6|OcG8^b^C0$4PqP4VNK4oe+oE9ul<*ejr9PDhWkv@2t@(4?m#6F z+hD+#YR7rYecdv1^0bFx&j#~#^eR?OACw+EFM?2n$YSqTgQ;R*M3yz`25yV?3R#%? zbyDvm#ZP4dXd4LmxZ-(Gn-Bm{fGgk{^b(JXH963!<4nCXGj4>XO6TqDC}}ijku_&O zH%3W5(TP9bIXnNcDheSF@Q2?l$mZ;>Uq=I*OCOJqJ>LWGAoL%=fj%jKf*br8ptjcx zJtIH?gI#Pmb5fN(^T5wT=vAY45!WTv( zn5$I;a{eu)_^)80iX)kP-nHwt>SAZ%BWFgyh0N0Qg9ZRjct11#PTvSx{#j}~i7^{x zF>NMbYh>^Meljy8pM*ifTCVBM4~9EZp+L)PC z7OXv+q*nGLK~nuQU@M~YGo&dXN&83PS*0}kN>YHm6}0BG;S=ErcNsE_0d`$oObFzoqPgL|B%aw2T)X_ zeW?1U&o_`79GC_&ovTo?=IT#h9JSd^7MC!Wj^yTuq@=E?V8(6>;HM38d+q>7gdDHi zmI-O1$BorHqqtK0sJBCI*59lKYAQewOI*_o@R0VZz)LO)rZok~!o*+}8QrJmjgfqv zjkVg;ZzEh~OC)TP7h5NBm1@$9)`3@HXUN9s+5JV-`2|I(Vh)u>s4|xW^>~&%5~T`! zO-&5kK&7@`ZqXlfQzoc4O9f_WJI0}F_*LF8S+;U^;>|7p`YWiDEV!Baw@ga|Z8fe) z$^cpvm=&K~EY4*4(^&C&x(-y-r!aV4R#21)E!BG?Yt-``**QP80Ra>C=zG}M838C8 z;L@F)KYu3vH`6-#VglGGdXkQXgXSe~E|~9sUy1gM`1b5Bso25|JTivI;6o*O19|e! zllk5$+$0Qvs%bK#A9>GO6-_`09~R7p%&P5%zF#tdhqp z$%(2!uW~YjLG&k`?ra6NQBS!CpV1nY?n}!rE&TB0O)KEPQTqz4>&cA%f%G~kX~l3A zI51lBC;}3iM%-%`i+DH!f*A9 z`LRz(_u31`Nxv@aAvmv>q@z|8U|dFZflyZTWT#(rrMTq>2nvUuq2pA)zinat$or9o zX!c&IbcK{~lve6ND$Tji;?7`}rZE~FXd9?XLMXiMIzv1)+CMSBua#;2%WbV&?Ee^xHi)&XmqS)0uD0Xc((OAHLw6Ri!c9^isNAYApd zf|g$aBhU#dySBDA0?$I}{0m)<6{q~k>TxnKo}*qfRYnI6he{Om!DoNNo@2p~blb<# zOYbBJr|K9$u|rU0!N(Gbf#Py4CTd&A9{~mcObUDQ*GV`@vtWBL;Gi8Jy~z%_`uc^@ zYWx7z)@HW-`=&bQ&z=GY1{>N*Y7kDr#jXC*xC@GnOj#y!P(3mRkrChGyUdZcr%z4tpsGNK04^@1MZyG{|d!|HPaFNZ(OghP@6tB5;_ycQ;F zk$`ZnMRdG1`)MW5gW_6w1a+H?X+0A#g$f{CEub?1Vsm43ng;?^@dBRCJL$Z&8{%-p=WJY@ zIZ~q@L67?sLRv3>hnJpy>i!YQSD<1gQV6^Wra|SV`_uwmxy`)e&&AvKcb~$2TEPkS zQ#F9fZrFAz|61zICIFY5sovESe}|GMpetG^Wo~7RihSZPV%(Y5(c{C zZ%qQXtr|NzpmSZ(wwdB3>5oy~w&qckb*BXnHd1Y$fWpE_4$7eK2@uv&Ub*Li-K6_+fwc{@7jpoMg|NfV zn_U)@yc~8XUAFl*(1fELp$%YHO~6KiiGvw&D$a-zhbjpPPi?pb_q%DD0VOT- zw`kHV1*eA}B@Vn{ARO|6a3}*zm4P}in2}W6b+s&v4DuRn+pIoczDATKffumm+pKJ1 z8UGq|l%FV(EpVBU?*iwDrz=r^(pt`O;%x+^1PF)2sjTNF+(`Ly_I|XrO#v|}@|U_w zMscxStzef!{LdSCP0Ah*C{=3;79M8BB~>k^CG^p2s@+QJCD~p-{U1I~ zDh;D0BBYW%Dx>TY**kkANw#FqQb;9xWXm~b_6)~JD3ToG$Sgv~4#zmw_xa|&yZijU zzdyd`@p(M%kGt;UJzlTpxUTDYy%<|x{0LLsaqQO`{YN!_ZP3@ZyG(p04!T>W!xoqW zfm>7y2B-}C>eCWy)Gz7x{;zUAOLn&&k@_+-9NB}IoDMHl0;#!PVvTzRTyN3#*81^p zUl`Q-C(4IsNBcE(H9kHs*O~vkYVoXj6#t47K|ts_n2R)4AAE`^{_%qHpLk+aS(kFH zeySFHbzf2Psd^u6^JAKTESu6Uh^Rkn#u$D)sjZ7WZaTCWs`R&B12qT43%t@jpW0pl zS5;q5)uyZezM@?SSk*p3Jw3hCjvrZ&&RW2_$0lcPO!lGWYle+>_w%PrMGKt60 zaA~7Nvr$UFbPr4{A24QC1rGw2AEA|i6iR=QWM0suqw@rpqo3_0*t1onryY1GycsK# z$#+Uzp2xo>1119Mu=0OXnwC{NnM~uh^tvG0J0f8R{tkaiMv;xyFSTlftdGa#Gk5&* zHK7OHzdX`%CS%<=7PY^OzMDug8~G5VrKR=ssE&rRNG*AZ{fTOy@qf*l!mafGb7kK6 z{dJ^Eky5|TwDw6o9}Fd?=g-Bd{)qa)zwBAy;_^3y)VJeOd469s;|m9ZdVP6_cTG_w z_`!gbO-sB`_odG!@j;KCMMsf&ck;}EqkUuLidpR~MNyHBt+5x)_NUzpxd)WE>4zvS z&Hu}*iQ_oZ!k1AROS*7#8`2pk5wkxTBc5d~W?!@Iq3?W6(w;zSzkT|7^xt9P{7xQ- zjJv!pkZM*8Mp1U4z^#DA)GBD*vomHPO?CCDF1Kuhu5{d(z+o?mFr@=fc2q)*i>C>? z@v9?^TqnVIpF0OdMpMLt=qTR)@!tS;T?8q@_~+Nsm+r#|H2)qLf?ZD_3lrEZHt9GX zsyhjc(Za?|zdi$ge7<+<(c~MM7j&?kKnUU3pHx!ytBdZ-EK_yOB~lRHJ>3=tedOdb za5b8%{?|r%tYcXazXv)vHc1Me6;+er#?hUbifyR}1-Qn46Q8_>_xR2mbNLqbzXun= zAu_WQey?c1Vq{z;hDOcOXRk&TO&2lt#IUvK=~XU>)|#lR*CVXU4}aR;f_ff9tlj@@ z%am=|%t+2C3f}C(RO4SL`9f+8;>n=EhB7;q-+x=OKlS|QQ)Dnx`f2;=g0ki0eqxyJ-_u~lQawN{&P|3LM3gEeA`O!azoYdn)ULOsT$~b;|{)NNG ze3pEuP@7tB6KijG6~a*v|Embp3f#?kR#)%l@1dF<;CI-pWqbQ3Q-BG|m(%M4eSxi_ zCR9@9Z^KW`Sn$8=ysO}-P-c*#J!6qj{KT` z-X(GWPQ22x#Zg-^R=9Y}CjiQG9H!^QbX+lU;tbR8#ASVx=rnO^P%HjKlAq%98B1$T(Zl^mTl^GjXBrBm^1Q9C~8pE zm^);6g}A95(rETT!g~GGoU2dr$iRs0m$&Rj*JR$DRolLCwmyurS$~+${e&jS~p9;;5hN*j=?bzKfk~(NNLajhq%0MuV=amRLZ0(9G3RIbgrTD z>ffE*Ou%kx)<+eY=L2H5>&kf|Njjdn<@@rJa(6H9Cj_PGOJQp~6ZWOHd`QZ1vQ)t7 zf@K&o>jwjDOrVAD4(8?4<&P6)JpTW-q=y6<;2cY^;xevnPeaLL$jWt#Y2wL%uOHOyA0t0sSe#jjgtqgQ%a zQ6cUAUb|n^g(rO8F069vmRv-6#m@CR{Dmr zQlIs)+tMObt25s%C-HEr0RBT;U|B6|2(~TVd2aMUH9qJ=j@%S6RlTl*UJM8$Or9f4+z|;V*2x z(Ic#@YW^mC4BhIw<^kdLPFJQnH{dZbo^lGshgbZCD4*a|P4=15K0OJfU6!m&n!`79 zn3kWDc$Tqs?Lsz7q0KM%i-`VUo8-&0k@NcfocYcl{Q*j(eJ2y4yGs!l zhJ$4m`EM`PgSqmdt6?Wz0mmOKZhu}fy0)QmWZ=%w+=fJP-C1k~LA zUDfVcOX9=_M!+U)8!^ zh&pkAWod}z%&j9)XZ=!~?H{m`mf8pxN=hnQ(uRn>ee9WjTI|${}O%4tY1Xl5~xj@pQ6XKy! z+cZA)P!Z)S+#f?uLXz@!&^7tQQPY~O;&xQE*!n`9h`KX+$Tw70DT1DOG1gts(g5{s zMShVv;?jyfj+W%#Pv#lAUNRe(`R~_w^ooAI>92I2Y7wO;At_svukCXb`E2{`p{KWp z=S73%Bh^ec#FW0~GT~bWblRCR1X_-&TV?MX8pu2b-oL*NnpY_R7BzjgO6_OJZa;1o zRa8$MpQ;sMw-qthfp2_NM8nJ%%w$_5A!?wYT*^oNR;ResslN(4vmG^ZJa@{|Emgod zwq#^q*7p);Z;(#yejYhC)iK>JPFIf41}_EL!AjRTM{hG{{ODSx8XeUgOzATo&jZFm z-NyyX@VcD@rsSKWE5SP3q?>{uxRsHW-M_TT%F3!=bT{Z;ds6Pez`!F9(h6B=eYu&D zHXL(Xl*F*92@~=ZPcZR{ucoYdgxnkvU-*9a3Tj*$)$tIO)Gq&{I~PC28!3c2ho*{j z@jB~1*t4|n-{(luLQ3WdKNQFePNr6_6XVjSENnhuhdO11F6@~m+|6O@K2!7CsxxpK7u^?@9XTEjX^h9~^!S>h2nm+K)D=N0JWkoUpb;LlakhjBz*`1 z58nK|7oo3qI3%iaTZ#U%j+LN(xT*4Rf;9F$8~U}YVg}vx-hVGm%E9zDHT+PPMZ@@J z-6M9mNZ8f$RT(p12`seyp@SH~w_E(3gnhGnFh!eD5Bulo1+74wbH3DmSmHZ3=rOTB zKSh*+Gl@H9=+QbUKYr^*mR;l;u`L7bPHy{xjD$ojJx(ZUKb3%q?{uty#VgwfY5{Mi zA3in(xs=cq1C&bKAfIPC*dAH5Vnfy(W@u-=6_U5RE z^|;CIoQ#WRO_`b*DwinEr6`>`bt>+X`E%ed&xJG}hxd75DU*$0dACL)L)XK;*xMbx zyhVdBi8XS4o!{ObBe6YDBgW25@RV=RMA!I6y_quT?3@U5@#cjcAXLrrZXp+c_}>>w zqWki(IQ-CSXOr*ND0@X2S6dSbo6;_g{w0?3w{UEpDxV6@#C4PKCO`1$(@cx@B>Jn4 zD65{gr_?Saw`Tw=Z3)D=2yjctW1DxQ&C<_YBl1zp#jmZvQ`0*3gj|u5AufM=k_%r) zy1tO&MMss@$Zz@CFsnHqU7%}CtUQcXwpZjJLo+7J8^`~vMp+TU$F}kE z>D=C!3_G* ziPOVd)!~2Z-z7BUwHbCA?<+dfitL5xN~f?&=gTIww(&~@-16A9HQ1$j+cNkjO!PU{ zQ$0&@Ll_@J@)*$I?{hG?u~w|wB)3%PwP;n^qPKQ2=ZpBg*|n1&Gh5* zhLg)pwue^cxOzS`Hd=mob`(}#%=PP^sq2ju?CkQ8kjttVomo+FCB>M8w;l;_T$}fM zEJRUh@0QKsm$56FH7lrOtU+1EY8_(sbrMbQt~7!7waC&-d6NnTsAIj;-_$) z?o|gtRklg3Ps&A*$?-zM`c+4&a(^#3?yL%ZXOowA&`l3-%!gWE_}WYNze>?x`rzfQ zA17cI;O(wf_@O*%KZcJo?o79hh0(C|BI=VgDvD2jAHIk1Umj4pv->hHob5_&Uhfuy z<41H;PtM$FJ>qAOL7(X48?mm8tHRh}3JCk$y@zsonwpxdK8CVP4px=FfB$|@P?n$H z9M02%AW{7e$6a>e3RUviPi+EHDk*rxLHI*5j2Eb=|?U zvb!^zK^^C`8St5sIP#G;-HNh7t;%I4G9lq@Q!s;x^@oScbHn){7rO4bJZ;**dOPal z5qyx{7UN>RvW7|_&jWZlEm}?`OHY_%^Z7W#CANBN#4=+k0=pb51c-`wqKUj|Vb78? ztpdYvqz1WysANnvlQr?b)uvNd2U!@tL-(1qB&KmA8k5NOVyS!iG{bSytp*abuO?_Z}!`p~4QU*;r5nF~q*E!*%5z-7y}* z0w&2u+?evlnw?rC%hxwc@A4u+Fo*IBdrj95(@&;bZ&Y=(VtI2n z5(UhkIo*H!VV~8XWq14BPD)i9mvzZYy&%}21aWS@M9k)!bm){xRqcKpqfMnmdt%0K z(WZ3*U4UsOIMpbqsA$79hx2&}t7w6Hd0lrZoV|;w40ZulPshBI3HskxMsLW)nVWpBAb8m>1$4jF{;{IQkCbfHI2?HI4mHHQ+#^?E3|F(Q5 zZnJvbLGgg&JT_3!!~QuFg! zrs0*iX}iiTtqzV&@0H>Fwck*lcZ0x@^35`?VCsJ>G4(Q}`17WWh)EzPEt{w@D`6> zloOSVg8dOc6lO>f^k;jV;ivJrZQuBu#sdb!mWWgNQv{p|4$M4qLAw&^$_Oxm{i>E$$m;umZDxUinj1? z(4DA!T2dmQoFt|Plb#XHqX#o-)mTekM#z>6nV5`(84sUX>lJ`x&-qwA4YlgFNa)N^ zWK)H$Q{Vg}Qa?Dd$&15z+yBJL-bTwW4`}5WjQJP``U(C&#|XTCwoab1KXY&EmoL%h z*SsX)e@4EW1O+)c_6aTcD+PWH?L3}rMMlIsM(M#pkBU0PD&H|#|Bl6bKy^S{hB*_1 zqxm`-5D<{9lW$Bf;Z-p*GO}lKjNpOv{>X)c9E1wFYVlBZRxL<%KTsv}1-mOm;l@*t zgpE%P+Tk0hXIh_pr#Z%AwDK%cz(nCR+u8%u1TIdc2<_@K%8VBnjX(Nd{&UIS%MVEw zOgM?K$_JQ!r@VyY@Cxe`HuZ1jXi6`V9o{yKOMic?Y?@_tvtW(7`)s8@o+$p# zb19i@yYOe>R99A7N7~ICunKX!vd2>|_Vw#5u*$Iny9dXr!RVi4*-x!fvB!-zMaNCz zQ3J;eM&NfxW({G`LbjiA`Nll9-|m<&?Ja*suhDLzXg03U7O004woVqPLG!TdL4n_TJUa2MyM zy>F5)QtL0Qs$^*5Onfn5zJyRm`?^{u7V+`+HR?!J!7OPfFOi~9QTW*Dq4Xl*wG7rX zA(IN00%=1ilTYtXq!NP&k>dEw@(f`;N5HE{Yi|D(F-f1Tty)umH8S$y$I6;Nk2JG{ zbED1}npwVzRmB9DyZkpdix zfqr&ik&x_tVQdUSLR6rs9Hpn?xpW2SSY-BX>Fb35T$JmV4A&r+i{IjScj&Lu`;h_~ zF10&L^CmFyS6zMK*@}1*ovvPh$nl7=QaBjf#*+s1c&(VxReuVuGpmpcel;%h5uHCL zyKKqh8++_~vyCy8po&P3x2u#-P4%(asC)|Q!nQ z1Qwwqjh4q?AFy*hc%b1}v_^#40N?FmK59a0Hv^jiiPgH0_Xws}UvEyw>xnlD-UZ{jPAE!#Q`U-jbuA!ZNK7%svs{ai+ z+@_jB5+ADs`_=1j@dgh1`dbE;eFyL#?*!p6f399Flww+ZW4^(vk}Nh}jeUPC8vzcO;aNk)?L{#~A_Ai@5)S*6cNHbvqm*Z$Z8>I2 zB_uQt>9!xNCm}hr>K~x6W%&KeXxIg%@9szPly4+-Enc-;iqTkP=^?ZYoNM#cid%dX zxg7jgPkAKL@6K(owNhgCUJ8Ty^DbS$p~Hs-9llG=!0N3|Bh~3H0rRh!{*^ZdE3<<; z$O{ctv%Ke`k%8Jsw{LW@Idzou;Im4i-c<6M^Jm3=V~xjEb?GYM1x1Y&@gW4t3>K4T4SyV~v%q1wdk5z1WWNET365@pw4Np)%er9_f zkRbst*gk>I-l}&2b`8+;=!A?y<;rZFKXW{Z8T;+km(WI&` zF#>`^izt(W9@wLGgU=~nrE6$z^{!EMBX;J56oh=U%|41(L>m%-sm=N#A%trw4SlEt*5U%q_#aAkCKl!l&O z|5Xsl_r7UGuAZ;u%PrOmS(BUMqlAr6521`bElo)S;`HwvQ3J*g*^)#k0&9K|{6)0q z?msNjK#J>9t0oTay1J!ib~g*u_PHw1J#zaU&zi z5ihq_{x7Omk^q5OBa$vHB#>`0sZ)dYXj) z#e^R0vgPmYP>ekicT3tQ8oBaWMU7(m>giXlN!9K`HBoG?^Z_iwI_CauE$e~IQO8xa zNwhB1#yM$e3R}F+rgWw!PG)Imo1FVRq$YLB-Mf9t!(vV}eX75ytQ%zndSS?+JR*t$Y?D>Y9{RqJT{XrjTRqOVP zHNTf}e27loxN&J+ZNOA>Kbfa#AO zh<-l_9z1g7d*AhSqaHBk8N1d%rWx4SfaiIJ_V~F$@A5U``|J1!)#=tJ*&G5IlS`SA z0<}(DNw;X5Ij*qs_^QMST^A|3F|rc&C*DPAf2EjCWc)0;?NT~t(n<+`KqEaGXG-6R z4!{%T8H%0Q(|T*9q)r`j4Y2kK{O!ZII6frojQajeIf$1>KtM})&?y2*F;F0rceRfG zz7OCEf=6LHJ9!ii>@5t-MMeAAB#OoIplAQ-a!(1!Sq=1hZNB%%)_4PI(M_YLS^1+J z`|GMkvFO{W_;)wsR?gvD$f7e0&M+L|{vFP&YLOp1fQx*`Y_ct|}z=2C@RAxnm|M|#y= z$NsnH@wNS^2=`s=;;>2v?DjQ}WL1xC@3N?RiNavC!4?apV%Vgyz0vUT95mhx)hHR^ z81gqYFvg3jCX4NW_MvPT5~4=<(IY!uD# zm9pE0U3%WON%2h&{qK>+ zF-G`ClChs15~YzvESfUBbGNK963Ih`Zu`bO>Lp2qDq9!*OZeS6o) z3G%L)gzwU>Wp$Hxb@o&LR3^%|fDrx|eWIA{5yzyB2mHPFo+Tn;j*X|hJ zwEU*dk@nSav+p=I{2Y)r%j3u%>+dbZHU)=&YwO?M%tIZf`B-aE0Po|? z(wXA3Y4BV&O6Dqth6w@G%z2<8<~V=8VBeg(yL;Sai&tQ<@)m5VUL4zVZDf4EMm}+T z>hcTJ!QtLr-s?Q8yr5NVezM3dh2q=&r*3QCM|G_gV(T$3EAj!IaW!jfX!F{z^x()> zyb)d!e?d7ZN;{D2qeFbWoHxuo8v!-1;L*H2Gl9 zq^_&0D}_O7B*dHyaJqf_C??)K&tzZ?7Tk7yXn@GR84P?=J?TY!`FA#v+8x3be~Muk=|P z63Z2hwMW35tCShgyzyn2`Zy4tkTKuC`Gtx>bFG=5qSUru8wA%@0HW7z!ZS;Wj65*| zk5D4H-S4T?KH_zX)}cASM)?jBu0S4FLWV}Mg$c#Er#vLGzXq$nOP%SM7WE?zuN3 zNGQph_ld+GZR4tT`kw42Im<{v+p21?r4^hl2n>s$XO4u#QekjVUa%=0QtF3CM06LK zw?0~Dyy|!Zp^eLI8J<*T4)irCHf*lG=5SH8w+UT+2P>_9c55Au^@X0!>nzO)*iihf zKO*}EI9S_aDkWI`wTjd2a6r-|%y+4^ z#R)0%tKR#z1J|0mHimoGb8%Jb-AcP)lwUfbq_I`2_g=*M5Od?QS#euV0E%PXp}ATs|wStdVr%Bv@$s7%IfEm2N)1dnFei z?`o(|RJ814$NzHti%B?h=9*|hxmh#SpywP0NaHL-u7UKIpq+&RNT(VM#}$vWsb~TA z7bk3=SG&DA2MEd7W-~mMNAh8&RN_5s^-i1PY5Vl6McbQhz*f!bQKs*>{S;5Uu9|Ax zx2)mMWNeE?1tG5pT7XBMiDK>=Sy@@YP)Af73sIyTdrlSM)7MyQHq`fDtxmzr%Npye zDs|aHflUS8QpL$`D|z896?$<4D-i%LEL;>!#JRoKLL&h(=v=Im#mbfL944#EtziF*F@pBM zHP-L?8|gFlTIb$E5yfh$C@}H!^!gsXGtiQO{csPAg3&NAFsSi`G^Zge8E&QJqi<&K^)TMguf8Ncr1Ng_}pK(=#*bhPQZuV$kvbwe@Ek90Z%;fbD#A~j{ z3F+%Ev|?uvu6p;w{_vV$!GuedGtS5r57JHzQ_~+Z(jLREF8p)rHImikfUbdcurlaZ zIA2KahyQ5LiIXE=Rf!0pKVlTC~ zuko4Dx9q&oKSDy9(12EyZM_v&)tCiN!2PcvizT7_b_Zb)FkC0-#7sN$K-GL5sv0O*OR?;79KRqB`~) zdUTRU$+FIQsZBeee&H^t&w9Cf%VAJ!>Ov>sRO2aP>zCTz*pDL6aY0!aBm0srwW6Zp zk%v3R82skdk>VQ;4L|}KiE|p7Tr@U+Weo+Tx0vw`@Y~zQj|ybs1nP^NInu75jFYn= zG>#%vwk_PwOYiwxb7d3Npb~;N$Cx%g{$O}jZ`^;VS;d=_Q@!#0rhXDztD}lklhFE2 z1+gW4h53v~fE1zVm;}78V_~ed^j;f1vX@|A^;Nm%OAvpZqhu1(r3xH9d zEuVgHM!=J!F?!bdRTZJmgmZO^YqM748%ccW0#aj+n`l41{C??T)=kaQ@z3-OntC~~ zjOoQaN-AAuI0MfW#1y=K{W=a*kYMn|8q;bH(IO$(l1DJ#w8qCITEINS$P&K4MRsu< zn_C{2FX?zAP83%o_UP7Wm8_XT4XjvJ>v0V^l%ThwBdXLl`T}+IvPz7X;RkpNyPrCh zYZnW^IX?$ECxw=B(myb83Vcj@08Awy(08&X~3`amL7Y)8m7pRiO+4cu}p8 z%`Go`&Pk*j$Gm5%=e)Cl7>Y)d6s;-L<8$N5}@7C<9 zGu~7CoVk^AuV%}4JEG$DIX{{Ef?2JqAkfh0_dMTVsXSagip849bvDa2YwLF&|MwnA zXb(Pri~+k59WY_O>N-5J$ic#L4bfa2=BrLADB!R4EVCQbH}NJ!8G{z~p|mHU(10`z zx(?sc){egQ8$#pl;~5QKHDQY6o2XOz4NYP5Z?p&4*&qvRR`t51Pf?FEcL537+H_<2 zSx5*D479t7EmW^2K2Cfa8xfHPo~oA6HE?op6hcf<>BEHwl<}LGOh*q5omr#117OCr zx3ZKRSHF3A8z(KTO+ZkwQO}Kb8db#p($k1|48T$^FH~1;-nuQlmVc2xa)-hnV?rdi zR(H@-$odE?2hMk=9p=ENU#}g`!`T43EuH=vm9XFd&@nQ?kvfm(aA3-QN5*nqlCm)U_VsCU48@uQ!U)K!m) zv=bIv!_v7Tyt%hq&m&PqIzVo#ns;@QD`;ZtfNXcXe0dEk<(g9VU}I%XbF^Zotb(HN ztx9j`7ytQ0X97BDX=&M4?Y{VK#ubn{e_CTT@WSNrd^xVK`SRiOR}g2PgK^6U;6f= z-A3syUju(vjkhNvUji3B(iNaGlQlFnN?hlL4wn^>T}v}Lhxd>a`i!ELJ6>D3%U1vD zQJx(5=Cvt2EN9)*dy>2$(Ns>^K0>xV+yir7=7T{ePV=nyA~T2cqY~#kc<+B-0f}J* z&@Zm@-|HVHGX$i<2@=_0zaB051)d;Z1ssuJ+RBUsjAecbY1KjfW+!j`B!lGKt7cFr zdubicN{=~avM?1}JF^w9ax$@mP3=_Bt5-cR7vtQ@Q_lVeTCH$M9siP;19&&`_&@NY zGAb2JRTi6-2DxTNhHsFN9Qi;Y?eUA{6TbOj3bkaU0-fyj(1%auW@f{}C*%`-&-%yK z#&*-tSSVU=u`APa&&0E=Rs5p)_bwjQB7}#F%ksVzIQPM(b=1q3;Yt6@_)jGSj&am{ z!R~B-%)D}IxD|U#?ft=U6LCFCd$<5LOB;BcpfyCU^?=FI-_$NvQZ` z{WxjhAkv9Bdv~%AcAX_o`VV{f%2YZYdM8K5nXLb#bZM%rc6lmRr>ypkp-!H1P>V4X zI*8x_c;USRQ>(v6<3yaZm#4oql!@;RJc4v7+ppGc=Qvf??Y8hNBKnmROp62=87x~e zl#lFug8Fh~Lt(S4Hxz!|H5yJ+L}xW1P4a^3U+_=LF=T7PnM_w!-nCD30xV{8^_nB3 zZQ6nSTRG9!uV3f(Jq^#gcPeWO(tEV9I{+V#h)=T=Sz%5y9;AE!)r3<4T6F^FDi(Lm*!;r3)~g zna_TI+B7|6ZF=59Kl$BIlh#<8X+wa5f`SG>I}{BEGI6gjTa?_c-(%ZXBF{w4AfjF` z?wELj7K)0oivrDRdb;!Ld!OF z79w>!|BHv=NJtL~3VI$A5~JnuJ`0|FyU+6FcZR&JOlCjc`$IiLe765e{kWu!U)zF-A(D>89i*frW~3BP5UEh0;k|R68@%J*vk>p|N`3L#s8C>&4dR z9}qAJJQ^0xE6@V3klpIAx8NEg3e?w+6C@=S{qR&i#CdrxR#;eJUk_#iKr6Lz5vNeQ zih3_NS^`^S4nPLyo}16QW{o*4le*R(aC`_k>}e?fAi9LOg8kW#-Yh47Hx$4}EFZ5hvIbcLZfBD`^$mBMk z$}mvuT0s%!ShXg)m!^v+7;Wd=hRdLpW3~eYGNN>J`%cOs0Bo%9HWv*I(3+X-@86*F zRHLY7OI4yNUijQf@YK@Zcq?#DPo%IZF6rNpNpg)Fm>uN6xrfQggMKSuXl4nHs3ML( zKMJlSLe)uJ!l%JLPoA=-3jlMVTu?FSA7xa7>HY3<`{5UMgH^74bN2yOwNhQq=P6FR zBEy@%g^A?R%S^b=n2J;sCJmO`11qXC?fv#<*$ZP(_NCpVhO%#RKz7A?Y;mo`eeoVh zQRE?xK)ZFD1(?Ih3;tKzm@k`$l(2QyK=3AU$uZEOml*Kce0>=k$$`AHIIB{0e6!*? z3%THR1DvpTj=+SEJn9)OnodD!M0Qe)ZSS;_A2i^P>n``a9Wn=A+vn^pw>Q}q{mMIT9&bG^tmPVJJ z6PT`~PoI)B@RS89#qz#AE$S2WiO%+;o}fCb=EW4ufa>hAy1q3@1niyS_Pl=Pg=OV#4c`3vh%?#D1Uw7<94a0;rVwNVlGXr$C zT5=C~(4^aucH45<=06&hLb#*TsbZqV*~XHK{=?g(LixQcGQM+GT(g+5J#D} zb(?%ev}FDtd9D;MP_OsQ*w02a|E#MY9JHPs`$4c(*%uii=9)CC>k_C!^IB4Uwwo${ z@{6o%Uu^cs$IqX;uxLf7FVWj8zt_9~g_xKH$*Q4?wW*U+39{S(p#Bz4Q*nVeWNFkL zn`*Pzyn%WlkX?#&1Gkvw%E} zh4odGh{Rd{MqM0j9nEhs$gFite>kGsfeT6B4#qte&sy?L0Ml8M`6uk&!WC@zA~q%C z+#cuwfd9k7d3qk*Opj>(aA4o>)Fyf;Wieb*?iOJT7?=2_5Ns9jE#VM5^I;X9ucHi1 z!bZ%;>C>)aCfHfT>YKD^0wDy#31cNtRvivl{NmF-T{onct6!>-Z;Ux{^r$JYO7?J0 zK|8mA3G*pVWjbzFtzy38Bq<7`81CLLQ&B#P43_Ooi_O&w&z*+gxTL7j2l7=CF+vy~ zn%ADHZIREeWG$*9)rQJe9{F_BB7%Z=&i{L}evB=i_nOu3h1`8i#VB%rZDDK@i*A*9 z;%Z?pkv#Xje9;;`Co}~{v53)RE+-(tqeL&jcx<2R(%-j#mI zrPp!|#SxOUjj>Crxs3v#YVR{RCT z?R_LGl2lzijg_WebN&4EV0g2cD$^OdE7IuY6-6kQR3v!^LoNK@DB-7mBT_Q5hYG^P zKWLqn20$om^1yfZfQTm7WSfY4{_NS;723T?lA*3y{dyMUs{j+`G`^sPa~?|+vP&Gs2Xn& zzKF5&=-xIsedhktM!CVHuqH3oQk8HBzaep+y825c0*fm65A=W6fBe_3rk*@@>ULdZPn0E&);s}D=O*IfqTAeFJrn~=mF1^W!JUHic@o<#KU z-W|%wthTz@)zfaUJ%DKZmWvh!*MwNJW1*Ub@oJ>b0_ob`fjMB<73AeRAQtde&QqwR z-+7N>cHK#ka{G99HBmw9vk_-ED(=^3BrCYPL$LLe*J8wv4=bL_Pz)x5D9ZN5POuF@ ze-{6X49p~s0XBjO4! z4LWTuH5+6r8%e5+lleWvO>|>&=DI;in;znxf+r)|Rt+P;1@MHvVvCSyUZd=h5iDf_ zAW5_~4_0o1Cu=v99gQDihn)`SwoF9$l-}rbXxX?ZZ@a;~L`L$R(~a-2Ij3N$(~sKCaV2F1Ja}C^<5_yDX1S&Hw*5qGSOtDpkNS$Lyn}BBn?B zs8uv#PJ6p{PCK>LI@?F8Ul+6aqzMrLv=3Ed=nL;W9WXA>@@U{+s%6;9P!SaQmhkqD z<2yqUpN)z#n{RKxzJy!=R(@(~>SRY+AWTp(t1*9%V{DD`xuV1QJ2uCa4l7EAj(&jf za#|eKG5(isX`B^bLpc#k-g#tb5}PGKsx#BJZ|}Ke9TEPU`rED?E1AyT(q~ar)bfl> z(eK}YHbU##pRfp<=6|Sj+z zTq0~TN08sv)gc~*@2B(km#3DvUo!+s8x>G99O(jqv)3~Lk5^rb zMTVYXR%D9#izIE)1qGx5NO_Wch?e4TF09A+Yl|iDN89gp2T%%$c2Fw7Q zOenfYskX&r`#Ur4rm(P4t*C4HkmP(#aFCxg#)AM8=In@w{kt(T37Y5JQBNMSGSgE1iEj0XxD3>+vKn|Ha)1nwd<}=-jU^zkT0Q#?M|G*z-2U5; znC%tA+equ}fA#&6)kqE$#lW9Av2TYe2l?I9)s00`Cm`dTLOmgmGZg3D#Po~r1*fYd zX1{z%0j>9ir&rM#l@Nf}hvo1#DIlu92DN=4bM$GS4G)`<8=s7vg@eh`pEfHD`d$cr z%~eW&?o&a!{TCL?9}(EkRj7!mw|MCGc0X$Sq3a&f+m&tF4OCR8!M{KAOx!`b+UiD; zIrWts&$ijhoDQS(DaC45j|crP79Kcz%4=*A35bFWj>%IAINEzK2#?3_49(;jafLLS zsbBxjDbgLiU-WDY@FPRi5wYqokXT7EeVkad)TlX%t&Gb*eT72pjzg)+T3?|hJK za#$z-)w9}YAacz+cX%sIptW~YKq6?%8Iku{%*!hLMzut#nwp_x3#7Z=tZr++#Wk>D zotuBTrYF)&(?;opAvB3jaM;{^n77CV98U^UZJaM;H;@T02j9i9KR{j9r%OJY$*#r+ zf7G)3!45^xJ2P8_{&jzmVB*DMZvO2gd8U(9S(u%tD*Z<4iRAl6!wrXF37~2C6!uyE z6+{b=b!**Mg5S4t`SRsfHbh&>8SLrVrIq{ZNGBnm=SrKp~12b z$Z|D;DWpW#xIa@!Qs%d|_glJUcdgiKIFVU<5Ua6y+w!o(DDCC)y#C^ybu(eL8o3TS z(+)_2=gw7xQ$i2b)7feM>H?J2;9Y zPWI%+gG*uV)4hwn?S{{xJnG3ch>DBL1`U~B=g+ug-cX6Yd%JZ5B@?%x z&HWmmA+epoB$BA8AEEjbQ6PyXtOlPrX{~JHnp%Rl0JFHz(a*Lwh~53Gd_DPC0Cm$+e{(p_4p6lkHXNtvF`;@o7yRP3w`V zFNB}Uhmj_&eLo7Zgxb)i&r$lX!td&K3QvTV%pbJu5yxgx_AG%iVE0oY3oOFQ>Szek zxPmeQl)TV3;-F<}5k;i_egm<253B$ywi>eM7UQ9oKA8E_=j$r@q*hu4o@nOZywsE= z44Z8OVCFmsUD<$g9-rd$e^1gAy^MOj{!jh& zVD!9i*&Wpc_QEy#1BOoCS?$TFqnhab!UnjNr6z1D2CT#XXZo;?8m^c2`0+G^6xfMf zP^nmbuX_w8@?1zmOLE{2iwexfpvypIp7BD!!nzDWSN?&?69U$bYqK#WWZHh~w^5?m zfHLc!`5ow3_6>j*$QvoM07(5}iz4SfIv$yXpB=uq{q3wdzZArCKdnt7Hk4(2suPRC zgTjJLOYpZX`r4f0lM8Z!{d%~Sc`wTrHOnzYjcb*E1u~@r&tU?cUIZX-IMx?v3c!SQ zK!XT`LGnY#vvAdU-wLL(bKG+scGmK(uOjKCKD`@(=~Ebq{G?%GwU|Uma299auV42O zuBv>%@dc(n86+IB5w4KA6Q9v$LGZ(zLZygUOwJy!gc6-PC5_SfquiTqAO5 zqMY_WB2g5qkf*<>H@S`jnp1n;9hI02fdUn5FQ2#PuRvia19CQbEF5*84VY6lxQM~> z0JtBalDfgbcXLvw7MglZL_G}F{hy`?(XNJYCwobOZ#fRJ);=jlim&9X5!xBrKNWR#EM_I{&*YTU zE%Pg=lMSd269wG1!l4(X>G@S^eXHq_B5HlVU;lJA_z&9pehJi9?Rcl8DnzFO6+yU` zM|c`UFN7|`)o$Garo?KnvUFre|LIZxU~2%F7@P z{My*bA1}Xh1?2-Z25!Y)JN(k1YWF&O?i?~tjfgq2f%lWbK(`J+V>&!QsHXehJk7*r z2SP0W39LFg8XI7ygroI1M5wZ@9Tkj9hGXcmK^X~lp%=az1CFBx(+nVs`@BtkV4yBtgKcqJ zV)AayQil*^Y=Bx@{&(<-B=o%*ddimtDKzLoo}2Az}n>J*OyPS-iW$Oht(WJsYwn=C=Bw^M5!?vhEZYktYyAQ*Cqe4fWg*nA;yr$}o!B)KE!Dn>odxxD22L5}s5|8}ZW6fJZB zaI=pRDH^_BCYy}SlT4h#Zub;IN;C;Bphwyi7z7J`8Aiql)*(-9<}OosHoH0tc^+McxRB1?f-z0Ld#BilCq;~RI?N^VHWW+tHsiUk#7&P z=vK%0-6+lb_cIaFzw~~`b;W3Ib#3h)!IcFM407p+I;zHdos)&7zA`0KWY&(2M~s`X zO;D%yoOB$eYVpc$38 z;E^=;+pPpN8wh;%xW-GELK=8$Ezs`M96NRbH+M~@2p_q$*f>6wb{$P^7h@&cck&>~ zkqziBX|&bDmVQQPRDM!6U}3>B*vmOj^~E2qYaD3AE{C9aw!;;ajPHJU`B7gZh7H{# zAKn0jZ^}yq%~50V^3_!hXYvY772hkEWC1td`(#3|K-#^1y5JC!jjyPN+*6-Z$ZgP&gPJ3>e zR+cQtKjG`1%icuG{y0 z9M@0^Nh;ZqlFUN(D3p~gWD`P0_9io_WN%Vl_9lBvvh}jE$?9eAJ$~nt?)&|Ie?O1^ z-{W!LmB!=syq?!}Ugvq7$8nqk)~3>dkBO8G)GIEgoThxS<9;bUx~jHi%%jfHaD?~% ztu!8prbz0w{^zH#w4t{0MtfUZ53r{SUiRIC8Up%TO0{2N6C+qx*Zm13O-L>v6-}C* zdFm6g)%A2`Nwq?V`_-Y|%HfWC5{O@dKuc+5-!5u9KsX5z5^)F9Qdrolo@QX%C z*-I%U8>Df*FsKTS(sIWnRp=igBvmkGxtb^(DtqIhV?jQM+AB5h{2md5)~6S=KDTrZ zKSZ)VSh0t0bahO`8TqOzi8?yTb+eqT#Z((~3opuBMuOWn1JNn4!qCj{P7Ym8+L6zMLL6i5>>bTAn1&}N2>Kl@kI6;CP&@BZ2#9k9;8I0m$TnJyAw z2?z*&nkoO~5kC0tt0UC$hr+_AWD zff@H7!57w4w?qh-E12yDTn`(htBH z^bK^O0SaDiPXLD;%mfK9;2Vz}8eroH-3(U|lrQ?~&!KVnvzJ7oUC;Aknh)JG{sfiTjjidUJ(@*4=Svz~}~Sq~8))ScfdjfA?8oUj|! zucEug&|}`0vVk`%q@-)BvdH+)LW{scr)yOmU~l4{Ki@=;;16k^<2NKfcIue5Yx*@L zyTRS6^uuaCPGP-cCTW&9Rx`0Ad8$7m#TbhIs52MHQ%;;ZbNk-Cd!G?+rpyTv2w7N+} zSyhD;0xhxlD zUw7f9r;ZftzSn9fFWpy~EVg_paT+q(|1z%G=VVk&-4WW5B9>+IpS2BD zhqavrebJ>$muSVIbW2yx4r`vgbEFqekvM7u+$x$YsSv2hkAUtt&!ZlyRL$iIDQH0^ z&mP+D$G`WxF8<%PHvKIu-?OXdZB4+G4k54IV`F2Icq1|XQ(9gsVtdEiH*sD49lXNR z(C+*GJ~##;fyCTi=4JZyJH7h>U?kQ9PV(xb#8og?ko>QH>wG(OaA4n-WAkL#T@^lJ zR=P`M9Q9)nAYwt{0O9y>TN!ZEA@M^AeVtjVap<>HuS{PE$`ezMudOxXF6&jMT!f4Tf+3b4A3E9CN1tA)0X7_qnr(FI`lSs9bYxF2cQ;X$_ z)8GB^{XOb|Cjb;&)U8qakbCvq#Y@$pGWy1jnGzK1o`DlM8&-IzEJ1PI^dNlVP60xi z7IMfn{;zdc1g#Z{Qw;FujuE^C(h!?E^26cFY{r7=a0*| z&LO*9yGzCrZ$m=$)yT1~T5+Lz^b+q{q0HJP5?-5T3O0nYWFGpmW9}Pm(l$1WLL*k_ zVxHrFeSBH?_&}DG0;7u0poD=;7bX$efTdpCKq+!5{mPVnnc~{sUG6ow@(pM8`K6FP+bqnt$lY z`Q>rbBol@SDb3@QxNp6ew{Q=-pA5_^S;9ET?e{XD;*g|G4tx-KO?HSInavU1MT$Ii5s0RYN?7EdCV_>aQ!$ z?qa?;E{?%J`mE5I4M<=bInZl&(Z3B*F*lB4P>zJ^f89nwIP{BH25XBWhaS6Mjl0p9 zPSk(|^o-Vll7NA6A;F+l(b9r`(A)R#mBfC0-Cu_72Bh4RxcJT{AYzWvOLo-ILyc{xg=Vc<&Mj}e&4tZAu zhdQ??ql3qGW2BS8IxY#(c!53gw5FjJE+FwxL0}+nn*r+>urz<6BY*n6Me>>=C#F{t zbQB8)7@r+^buSl0i!j%b8r=28x4__i$xbXU>Iy?*w0R*XF_zO!YiQkP|Bu4!CPfSb zaQVBom(i`R@OLLOGkn+Ecm{asrpp@M`E4^dzaiY@AnutHxmejv@RGGA*o z)=m@+NGS$J9))Lc)=jT!tmamu$l)HA4BL8@M*|s1N7`c^j)m{`6(v6gwVQ+ZOZx4L zg)~T&^SMc6?}~VfU{D(@n4jwbQ36xhWd~^oUw6}`MJULE$1K6{fnE0-4zN~~fI|>E zFkd;PSyECG#qU)3tjH`Ajw;Bd2Wt~?&JWE>>_>~?5=5rAGX)-0sP5RvI9VY@$ym)< z6h0YketW{B@y;oKtH z)TK>07`N#r|Lc@qpT50_b+EMUJZ)yUD2eiPnjWdtGTAuuD*?_J^lBGHiy-oZBl2~N z_mp#2vS$LNkI-^`Jpmud|$i<@*Z^%nalt&1hEaMa@_~p01)sX zwgDES?%0@%)|9i1qP~&Y@ouvH)m5RepK!X<>F~)6Dh2p8qIkLsxv-id>gb`j3msk? zr$^`C=Otw`$UNKRG(vwukMULl4h#}K4y2HU4iDBA|E2=1MnZd3CzE#_$YXk z2tqQlbePhTf*_{2t9qj|mjE$kM^sbsf?D3*-hge$zVZJ^S<+Ue2lrQ~#icudZax$j zmw!(>HJdCQibl^#ochFvL{3*m5Y2!@k7SBv%|`UUL}#JJSWNI%aGw&)mZ;0?Bq%D< zI#e7`wIAn_*Tt|~tB1e7Y|(2*a?3eOt#TQm<%AR=r%6toq>K zu-n{ZHQg72V*om9;JVXubE|@+`ac-}-#TpHkC>gtB z;Ep*k@EEwG4;0w>0a2$(=J^wh&ot_;6;RVML8q#=GvkX6*F&wD9>tg~0S4c7^(?f1 zXd+5HG7=5^p~hhOr(uW0G}!YOiIqPc=$s-f??j@VrbM`No$N>{J6szMjAcR1__ZY zH9)d3M-*hZQ!^lEJ3|oGUsS|N?7l)cATo1UYVDX`u)%^(wdq;oU;fJOQqbib(KT;G zpOkRa{iHSVT^}@~=if(rI$&d?MzSXxutyRX?@dfNhcn%pDr>p%Xsh?=xv`?L>#H?k z(ohpGBuiKpfn}u)7{TUFn>)SwX$MrRGP6@*KkwnyAx}NZO78fzE}gW{IYM32N{}v| z@<6d}245k(nE8IPC&{t*5|BS$Kh084buo|;s(km?eu>{{LlJ=St=*hFlcyRIW(quS z41ET`)KGe7fa%hqDXh2lZwoO3K}P<~m~F(0>0r;W5mUed53E!cY~9d+4ip70kA&*$ ziX;KULp;oAxO~|z@I=CBjE@+HiW*NZ%!;E1*0KsjvlB&{npdkh|K^6*e?!!OFQJ_C z1U7$iE6*j(7RBD~@`x=#GQl_lxz;s%|Ar^MyI_X_e67w?uD8ho0|OEH9Qe;%2Qvup zXPLA#0=f)jl}SLCf*khzY~_Z$hTuVTU(l^q{uhuqVPOpvfPfC8SLu4_dMuzzxdx@= zpcW~&a4ANK9^L-rUii3;_<+DiFcncdxKZMtf%y5QQKtK@udGOL{)tR2L(7g#iaZWC z2xe~C9rH!GAx#tL{o$NJ010<2S{r`_Pg0$vSuL>1&|Ku$TRDfLEBNw2`0G0}qf%Fy z1Z7ePR1plwxGAli(sE=3r*sd}8sex!MrNLL1}-?C`boUYRf{Nukc zmAi>YmME@wCa1xNRj7Up)UgX8K~s_%@j(yMR6D`k?AfLpIFM<3Ly_XN!0WI0s$ zGp5&Fd+Vf3brKE(sQ*?zIOmT{0|gBE|jT4OClzWaBEzc2nY5G@Gbj6_)fq=mT?65*;jKm8Iq0Kva0R zq1N&8Hjx~Gv_kHWtg{l5md8L50qSW=(5=74TSb%w8v}BeU^fa zAq1<7+#OnV5#d2$VM+7~Nr=LJ#s1eBS$h5+)wkz4v<|x;74DIr zTc@}aj z+_zOH<(ck7y*1rkV(`~&=RM3=`)wV4spbxF1b@Qhfo_x}F*o_^itdm9^N$md(Ht!g^Aw0X_t%K0z#9PnZiy2BX+{py-h7) z{66c*nqxgkQa`(4+?4`KIxa96Nd+n*kJZ#WjNXu05zwR@Yv!L-Z1kHr?yvW@4;{G| zR)4+L!TiW?od!IO^0}VWGb2i&w;1mYmfJkE05H!H<$v9Rmvyp69ujlXySiRrkU*c@ zNg|sa6GPq_!>s^tvVyp{AM`J>o^^c;>W|2_bAak6JZ=s4!9}Sk&hRsMtXghsDRAY% zOS{PTAJtm0{G07fvg{Pv$Io_&jaIac7Ofi_c7wnvz$r`r1q-M0%9*Y5&!0w{7EiEc z96_Ks4<~tY=t4C)4(D2_`uh67*C^hsWb*2eWi!*vNLAHM#O=i0ME{ykTxB;{9x9YD z@0(LVO}F0Vm+~dPXuAY3nDTx7E5*2g!K5QL1AnDYU@ipGr@3DV|4N^3+ilWG*nm9O zT!5*S_wO|@XceHC83kUdl{n69*zQd?3Zl9u>EzMQsq_3ngug^zwKeiGGwpk`n-*BV z^yc74Ue#E8N8Es^8SilSmUH-G-QVpd7P?y-w+HaH63|i7+e0+ya99nJxxFK`pE4w(eSQTqPBi z7jh3n{QotRY?Zgo<#&L8e@_03Pe{zmN&yy`ojof!);RKrIJc7aecVkB5}>QF@g|lK zh+9#G-LpMHVNMI?3p@4oDG$G!4v@s3yZiSI=uQe8S?4O=0_s8J2^&C&rc2fvqu7w> zf6I5QBi%3i&No8corr)7E{W!ORk?Ss%xV8$J1L}j4vnK?dl}YQRhgO2A4idY*x;C3 zqyOV#swO{hYg}&Ts*+Zt6wPl9?S!#Uu%#Am`(M}S&YeUT$bk+p)NBMm=8std1>Hfw56r+Nmlswy&o{}O417bRqwOmkpk{UL|HDk-n@*INqSzH~2 z`kniaOJkgKf#2T)gu5=WSYKt?6f};q#OOLtBYDv_F3QaCd~p&I?dX0&_jg(()J9MQfk0ACC+vX&>*5Ank3qT5DJ(israu zrvkQ@>d?VTCq^a6spZR@5+@wwr{g84Usrq=NQU^aN@s-DHX6ZeG+b`ng0(G<5iB6S zqO?Q$_zuOdvi^>^I%;q4NGI}a<)&7q{TQ8NaOI=kk;80GV`ov%eT``4xu0HF5G~4` zED#3WE|JT_?C8qmx)#mby;Mv;jWFza7t0lZoP43UcX_-4;W9yZ_c^@p;Rk_z{-3~Z zbqrkj`rxAm%sI8(WwF7K?JLyw|` z1rKjQc(4Lb&h*wsL0vlje5|0o-A%*YEoYSQ>;Gq0Ke;sf*jT#^Oxj_S$Ucf20M2v$ zdh`7%#mptBDwUJ6yVk}#O{Ki@E>Th<7HF7_0dr+*Yips3L9-%Y9iT9s$qa04ou9pO zH2k@Yq@b5}lM=JOj-o@1lTHWoF0$Kwo>2|HC2rUT<(bf=0@H(1jJ{EqRO&L;?2f_9 z@Je!qRu>VT{AL6ozg}Embi>;##C5?!-Q@)fdx7;9Gv8j>IP>J*IK_v>`&<9UkmCgM zzGI%7Y2*-z;-8h7ib)`5bzdeUO`jg%2R}u`$tIS5Y@)mAGe|3t9S&_2$aZ6SP%u8v z1USAcnwX}_6fR1!5MyPqKU)rAKm2%PQ8{;!f@#PqV0-5?&53fU(V z=o9j7TmqPalRkV5+ke!=tAq5+WtScJ(7TJ_m05oK8y+ZSvVMR5#oDCsGVPH~-*xf} zsh@;)Y6y-v^ROx$NBKGy+1D(h1YR%@(>TOLvGIhC=RvFR6@C`4%D(X?n?}4+5K3@< zFWBX^>=d-yY&xHC8o@leG|i#Ck=XFx&{#Gb;&~EzPZW4ES8sZm(g-KgA$-lM`{La7 z$HcwX>euqYx29%^nSwUv0Qq!p%9Q3b`ZIm3Ejw5!p@}ar%wsqDSg?^T|LTJ%k{5Uv zz6dNZ*TPI2_-xSJkmQ_=y+X3BF{Bz!+QU0g6-7mCf7Fxvbn@6+Ij4_k-=tY5Vjy36 zZevDE@*3lVZZLjx?LDx2YyBunz@R_Z=viFl;CIE_1Rzf8go!0xU@b>->+qmF2J-eN zu{=shCt+Z|@HX|!pXrrdWeM9mbGn!crsD+7vy+~GF9({ShX?i1cd)7%L8X5o=uvx^ zW5sRJu7afOWR;yMenhM~FWji0dsKETPfTi*@9#<=36A%`dLnw7R!(kYsA@1r^W{sU zMb&(J3ZxB=g=7488<{+1P`|<33tjzsXu7ojK25Cn1hK{G>uCo9#=o{W3FTg1|C*&k zzxmY6|IsGBT(&>9yo}jLUp+Gf3;Ge$@nELA*?E6q=vYf8%fa<95vmW6GC(ClJ;f4X zEn44)o)HuaHV@xu4RMZ9A;1zst=1FE+iuirRSkB;wbNbE{JnW!P7Yu#WwM^&L?XJx z_1VmQE95D#WPOg~Xj8S!&dnbf)}otD^Xr)TdOWI6Go?k16*DRoUobmguph4SqbuRtm_TZ&W^ndRa8*wk z{SuJ)8L@y#;W^TeiHmEALnVmkFHQ1;{|?i3Bs;%2Pi{XVAp5jO!GEVU(rSCr&FuvX zZQ`1qv^2(`a+RALrPh#rKf?|>^gVkdM^AD4?D5Oc|D>ZHu`qY_zo%WuzWR^T4%aN= zwByuftF~faE-){{($hn9v)?*HL`^2-g_~n8C{dUKeEt9b8bEnYJ}UTsor~vWlRvOK z7jN&d874LcLr3xxxYnsbZEiGym-@;L30A>?vAe9_z_geh)nIwktKvkr#NyJ`S?Bi> zDvG)2ZzZj*E)vX7PKq0{B-wq{;TMN%lE)v7>RKs*6aSB24|b(KSic&rzjl5fZ}ZTusz^)2txC9VnEMk|^7EPG;Ct)iAyW8G z)9$4QuD%Pd=2hR@c@h8xoLs$IZCC^uJkqTPcDlTnn3zxnnES9Bwvi*AJN5N=V#>EK zfPtD5=5fA2A2UVsR}d0GE={MLjXe=8X<7WrBmFfAz+iQ-Xz zwh%pD!STPu-5^Re1%g{<<@Up3NDLk59=JMW-cRZljDmEAEoRpprz@z zHq(S_?r^im0AS|gr-X#){mtlXyAmJ}fpptFEpuTV-NBNmrWvl=QblE@FJRP8i;PPd z8bMuRE;xxL)Nz|0^avmUw-Bq^ja?h{L~T|H!nM3Q)N9gpdwCT^Y%w)8KTXttSsktFHcR%}f(@P&w*GWN&DpAM4n4+f31~1_{=`9hBN^Q9{V&mI6VOVW>xL?Z zi=K(kd93#-Wq25Q;1mU81rs+-CXboE1nivZHO!5#8{-eL)1Qi~6@eACP`AM~`TQF6 zpFT8xyCk9O%M%rsWO558M-Z;WfZNT0W(5AO7C@}4_kRWPf(SYz5;_Vf-;K5^Dne?G zm-g#$ek{vSELCePyhn@l4|+k8b~L91Scm_aQzDx?q%!;Hy)kQ(wM#;>EQ_g=c;%vb zU+KHKhXJl}j*0R=PYM$_c7_(~%yt*@NpLX={uDNFXR z^fmKYwn}~h{`SlULEen`WJ)Dl>Vb_pxYiKi7?2nNKBFCVJ$r#1aXJM9PE)`(ex*E1 zSrbtPJ$mmg`pt5DN6CN?*A}Mjg;~QY;6%w1a{U#w?Ji1EYMNl>1hOd_yH$bf^~_qt z1C-B38`ZGW(gTEauwS*4 zW<5@Iv@j27!M`wOk;QG>KTV0vZgNdhWBCBaK2$5H`=M8pnVuSmC#CM7j3haBCtl*Ga!$OpX~>sgxBdNqf=7X7Tf%qq z9xfk`Q<_SO!rKdWcNo9PMkw5C?p3n)R|tKm#4_H81LMXC>pYjMx4N40Bg#>;5Qf*{sVqTtY#nh=h^95cg6fXi_e}6~ZpEx>Q&{`}? zP>YoPN1Gznb#GD0p}4UA;TxvT!r(Kw0wT!Ox0V57{_%l@(jT)9QHt4*N1?!Ww-Go{ zS($d(C|eBE)nnP~e?y3(65Ly=WpW}AP}!;QI0?aV{FO{00N|5z*> zAR>l{2$c_hvLwao%=*ut$COb~QDt{@bXZEA#ww2CB#!G*^OpfT+!2E4bgLUy#6?(l zzK}E+{+W(;Gbk{h-GdVp?Y52c%NXk{wfY5gZ$w~%4|Mjf z5E{og#bQ>sC)SXshE$~|q6zL2;X(DWIcSlI4GF5UPvKh3< z+S(S1o*OIjGDa6)P|oHZ5$qB7CkS_qQ(GD8ZFj9)d&AKOA2>rkKZ)J3V0$Nqoc<;< zAj5+GRc7Mr!yrV{JvlvFz`&g+hTOpiYV?O82zu)7#z%?S-vrP4F<%zJ47$(@fB3gX z>*0a{&e+u1r3(~6g{G@4WXOianoN0!H%HQZ zOF(5NzlC2Jd&lb1lK3UKfJbj#RLjk#=Nu9XiW-uG`g z&f4nW>iyN&edi%@`s|6%b?`Bpx|hb}=liE-4co&$P$FIi>e3aI=$y-`BZ7$$K0Rw| z4yd72bmBnbdbapYhoeDYQ%vf&=LZZC$#<$=LwfJ~Yp<4b;%K`w8P@;k94s5OuxcU1 zM=T-k^oz%cxRUiD{&Jcs(>LpV6I|(BYEq?Vb;kI}urNTGy-itCekfQk9C%Q0N9Ep> zToF&U8k+W5pLt3k_og$-zr@RVU~#Tv7^7Y^5u9Y+h^~$04&yu1at;?)0Ys4;)_-K{ zzkfe-WV8zsA;iT5IA);g?938&}x3kYf~!{=^q9n!40U| zO-Bd)D|c#^pAyh?Xctt6l3YmLra=E;LB&;t)|wzRK3da*RV0E+2!3VXII(5+icWm3r2l%f0olh`X zC}1NMCFtsa2Kh-H_Oo0TEzY8Mg}?`R_1=`{DO*5$*G9~I(hR{Q6}oC;Us9&X^_hbx zWd+w4Yau!~MY=^Y7lhM@$Y_%LsILb@o54m`*qX5!1>f)Urc}zF>cZ^|NH@&CE$Y2m zn$L(3HlSDXtjsnO+_gwMmaH5dOTjhqGt}v+KrATtl?{8=%Q#fP>9E;tVxU@gJv>&k;WGR`rC1wPQI&FnAG^E(-(Q*8!3lxc&YOUSozpiI$v4Bv?oEfW_+%P3% z%e~7uq+pWYXh5VTbS#8I>5>@W&0Q zra_y0a68>${P9;snlj@oU{rg$ar~}ZizfkahI{mjw++CH z-0CZs5$$dF{N?D}Keh_KZ74qUTd~S94C)7h18Yp z#PZ*0rYqeyVv~xLcAVvN8|aF9>EfxBeL+b8-wl$W>YWbWKwUAJuVHw3)^i@ACfO}! zL2XY@U9;D*hJwq`1>DV$p*=9Wfl=ZOLuqP4*X()0L&KsT$I5+G4%%4yJ3|HFcj9Jl zB`G1u%&)5kBtCa{=u^0n-H?}0%wPnl-+jcmFwD$J`Ttd>ieV>%C>(f{Uk%%l` zXBaisY;095hA+7KFnDZj*}uPb_aQI}LOL;cDay#av(_jSN-{jHxcJv+ui}h&+fbT^ z%m<~&ap29dvn?Jn66>p%Pf&Zy&6~4n+FBYcuj#k%0Ow)v3K_$Y1B^l2bH=Q;BMjx< zv;%zfl49!ONaCL}N7s&qmRM?$IIxt|w~=e-QyTrhWgpNLBFnFR)-o%5a-PHCb!P#) z(Yo<08?ybew2vo2x}Vp6K22&Y&(>nSPlhYgTn9!!uPTTfO;q-El8hw>1so{6o6#o0>PoC8nz=NPI^TQm#(y2AX! zl_;L88&)v(q$@QT;V%Jo68KAlB??F*(fZFvY)l$!yiC)b(mkd@`k}r@mQF0?lVM_& z<^h7ci;3d{@#_lMD6$Pa@tbkz=w=2c0n5pT(!th-D!7oV4gL=Qi|3T#u|Rlz7MUQr z*G*xcl1yzdPh6TgnkokKlH|{b@d^Z%n;}X+StY4>=2#y6O4m`LR3inaJVltKHE&Ys z`W?^7@_1DOCDq>|R0$zfD;_-lSCXdt&S*J>_1#W?4lBt*Xus>2vwrf}eKIieLcIUd zWN}t`Zq_di9+mO88VrwHmCjpjmK6V>14F1#rBOM*=^0NhRc}gf?`v<*SM7YYsD1bj z*K&?el{TQ4F1gMpz2kQjEQ<#8JG#NJsK9aExCDB-3y7$p#A-SXl#Zp#-^s3!kQnKp z@94S}uKgKg=-r~FXbyhMa+hzG+gxRF&ce*^aT7f~MSrth=!MPt$3VVksMwwzdLX|_ zdO!sYNA0I#Z`L}5(G0hW{EsIQuG_vW$8r~fp`jP_P*1<0m=+}l1Vi|)zT{^)nj6}` zk=l*6xM=oAZ4)z8dSB-#S{n zEJCs)63F@AA3k(#y1CSohEJF6+Y5*f-#V0gp>j~N zxa%x$7O4Ci%UvoFNwj(V}HG=Z(P`G_Xs z;R3Uh!NUbOOo)feP?@qoVea9rzc*uFb&=j4fgwQl3!9<|@}hlng`eMJ$s2 zu@2hGF?hs!I`rsqdSbTJATTmEFZ(pQTT6)biG;Yv~O5iC&l>GuyzLxqMt zzEl$R^~h>8i}Z%??1__dKQZnYD6KS#PE-~AI3>ueKVOsua#4Yricm&jo}+KXbZy%aA=oImG4f9^F_ueIF) zh4Sx$FeaU@+q>(1eXKTVRt_Q}pP9ZesIQ$=U%SVSA*^t*b3PN?Q0?LSNs(^V|IHh$ zi+HuTEFy(d8v`|ymbcpNVjXT380%->zve|CXnjB6&C%BndilCIXN zYbC_ng&Q@+iIsh`-Ai1R`LJCwV@rWsotMMt{|WnGqg{vOr%_=e{RQo!v*|nmy*BS2 z(WKfr3s6nRy9p4hTbuwhTaNzpyu2U~@POwr-g#WyFCjT6B$le#riB{{mT1eb`i%_) zjY%>D^K_{HmT=7MQma*rL4|S2Z>cYym-!|6-jmk6SUh{jmgWKOg%Iyv*UhUq-kZ!RIK7k(FT+XN))rUmNMQV= zh_R$D4fuWU@2ptbkK<3Tym`Y_&zjJwQv6%^+LGE*l8E7m5J`spnc*_5o(lW~A?ppW z!}q&cU%%9&wlQ0w8NphU%hkZ4dz$uUUpf=B4@;%Rz4!lY3Aul^gdS{(4+VnyEXiEe zYLctuQnZ)I29u&6I|_Knb*B*Fs7{2P{-u2Fx_wMsifpsE$};a4%e_7H^@DNp6q<_% z#RK}<*G5+(3R;&QO%}^L0jc_$fHM~u71D5XmppR9K6wIWLbRNva;~oNj0$m-q9h(f zvkj8lWf(bKdGJg1bcw#UY6tt+#CylbchbC0p?nwBu1aAXR3Z?OsGj9aO6?Gcw;9Xs>v z!>c%DeWg0h7~Ysfwbd=*;0@Xh=x;_rkKAeplT2lNkzWb$R&DUsVN@%8r!DIiK-KA& zG_NXT=1|&Hf0wtKndZ33^&9}EO;>I&pR}}!9@I+mPytdW8RQ=iQEqI)B-Jz1q=LFB@ z>Gd+JY-LCUcSkNH$xw+pyxNg-v1*u0 zO)K>%4K1fk$0W-&$}SY$PUG5nuF{-$JIgrb{iavE&!+LDf75c}f;}Il4<1P^(DlV7 zCDVUuCdj@4vEyBk83C>I3sFu&F0Uy|8~!Uo=_+2?^J=*4N;2?>y21gJtk2)<@3cmb z`LmGw-=L8<33^t$bm%EbC!B8exoGkABwv6*RvSesw}#B?%*i-eMe)Yof?D zpI({fT>aVq5Rc*Yt+NX}X;U4nW#j5z{9RKVjO{ggu5IIQ=bGjnZl3UXyfzoQ%d}Tx z;geXr)VYLPnk-U~+@%FGJEof$vM1iLwWTZht2*Xozorg0 zd%j@8RUDbARo~k8u2E@7B+4C~imsXcs&)9CO!n!NIwfIXe^(-}`WlV;7R_^O|KZ93 z!Pns9RqLC;PIvswXC=d`)08%5Wd!;247iiuk?2*~*1ui4`~cay$mV_c&jbIexDnl# z#gvA#f<755Mf2WMUzKrCz2ymu>101~A*-RnPq}!R+uYILKG*mzkUg@=9=0P*OG}H6TyeyVPwE%E^BdhaTSn?nouMq3@rV*6SGuMp>ufFkLh!M@)fUj z^SW=VI@?t>TBNZq5FlsdMX|vs5RhB10ds;wT~t=AEvfaqaTO%w(|N~%?u`hHJv`n8 zD%np39@*v#`pt%lmiUr-i;#Yn{h_!9ft_E#jROnX%EPQ*^6Dw;V9NA4-f`KoobYeH!(gIiWEhwn&bbc1*3 z+1P@cS*j3^#c|8-jGyVBKDmQ<jnBoSj3`@(r!W z{0TxNjEBThVF-uOdHA`Onc?+Xlv$2Q8h`z?@?qWcF;Kq*6M1;+B)J)+h)Rq)bn%hX6I-_e72uZR7UzNP)naHFE# zs!zt!yxXjf)~mIABtDBMIP(o!2k-9)VQIQ_m+;Zh*g)8?F!N0p@Qy2bjqz)%)aTAw zqK@D@Q|M;cDe&XwVgEOl;ep2QrzQzAWf-~Qi&xrI zPUqt2L_N3;#_t1Z(am_eQPdv8rzQ*z1U<4m7KfbAdE5WS%^k$1tMFFe4pDF)`O!e8 zB_=O__kr?>D$*-5-f}{k`jpfR6V=L6GyX6r7sg>XfRFgAvLVQ-ii;z_e`^`cZWJ^r z`!|UoUdI}hU9_kccN7Gxy&E}&IyY41fPnuUD41b|8{CEEfZwdOt*2LEw#zl zs(OAdLmh(zmC~!>=TEs3#TEA&sjqD?{W=*xgwJN~ev099Q8p}Yr=}A=jl+}eompz` zz7oFV+DQ+&FLS-^QCBLp{gCYf8-^mik3{e249PRNI+`g6s4Iy5_^uSgaFRMMKDzGI z7qza3_XrI`c7>(XZ9fuUoyaK~?IM$9Qa(3XX>)q;toyjz;pqVTL+u`h%c%D1oZlY? zQ+Ez=ywWzgrHMKSN0O;O)#~Tev5LKA+isQSRK%B1W49zE8GiSJD&!kp9qXUId^*@U zdf?gvGn~pE?SlN=4^pnX&wpG5B*0zgR|IA6M;8qajch)g2MmMu#EU$ox7xgDWr|A( zs#$9lHb3n3lPGbf8`s7eRTrHd+gu&ZC49_z0@+<%bUr7FMlMtxeBDo#VX4BC;Ug5l zD2XH{NSI;QQF(UKRVxS7#EJgwvpc*O;fh~Sg|jnsmVW+oKC*g5Jz3t{tMk1@CTEG& zN7dt^xDK7|H#MAEea{lqdSJ6U7q6Ba?JyA$X(6KH&892VkiqqRy--kp(M@YAm#zw3 zBSO=5I~8Z8c8~ngf!+v3$6xI2{BhuO3Q zKlh|wis+z~>uoX00DU?Mhw)`_Pi&Z7?|G4(mv>KKe@#JPdx8jTp1y>zK4Qu?{>96# z(e7e>L-YFSGXI2}OHyouUBo!A1+CXM(_V?3(y|dYGs3z*QB#Lo?e<&}c{nlt&Qzip zySV)w3f|FRnHWf=<>Q~nT_CQ&Bd)~3XnZMJEDX>_-^}?VBO69mfkfobH?MgSYrc8e zI$zW~g6l+kv!-OaAGwqdM4$X!2l9VXt!vBUR?)xj%|B5%@5LCmPctwkLi1BW_UZ(t z@9eeZZ;vQK@{ za!#b*jkDKQU0Q#=wEOt}9E?M%`%r5!9;+jiPWxlcyUa}Zs-n*Y&glpCX_VwcIfklZ z^sa7Nj@FsT>bO|d;g7ENWxLHX-Db9B4uJ3IUhCK)FSfpi=W_Xy8dN6?IJ3iEn{B>V z+C8cmd62wCq%JwWw$OBA_AG%<96yCW(G|V#zp{tQNqRD^{t3`;@Qr`LjR>hcp($JW zyTxd;vV;9A+b`QQEg(N@oxFV3e(sCQJA2(z?ar^V+_I>p{Q6x*MMYL%(EzF_3R13+OW)tbihfie zrSwvL+C3UQdXBSiGOQ*`7e{5(=0VwWvE_%&v@fDAnziLKrr`O|EvWX4`Bcm-cF%}A zV`zEB zIHW@R$L|p++t$0{_9PD2T?nQHa$iH(k$px|F~#K$H&9hc3b%sWpf`IwZYS2MQ$$3Y zfrlh!cy;(;v%iWy5;sLt>^`-9r{=(R+x)_0>)kt1<5@3142+yq)@Sqh>GI}M9bVlh zg=A@Un{Fkj?or=&A^iA*$y*+<&cCynn)e+n4de+G8?{44zhFx&Z04|KMX&iH`jT0H z^OCoD>!rHj4Rs|JKPAp760c-t74p0K?QUE4!JIV%r8N0S)Y1F$Sa@{`s?;4E+c}G) z-81>YcUaJUIldM{RBat^?Z>3wmos`I;@(x;mL5?pCDiB+@&^W{!SXWS38KObMx&3rdk(jxpu+8U>|PR;PKTK!^Hyz!1!(`&^~i0W8VX8O6E*%)e+ z&N(Ni2BbX_R3D2TJ6T6@z{Nb6gj+taP?|iX4iK zSokmS8EmQXKYyVAXQ``I7~kpjmw;_FC##7h6CW3xjzERc$_J$7=u7&#M7V#t6HIh7068PfT!8KDv|nvFD!1ApCw4@44r>yXtf z!GF$+<3P&#O7#f-I;j`0um18vo@dCej6hcN$+!c)=;SP;ac9;*qF*`LG1JoqY$i4* zq+>4hCy0~VU1)y(a*=(IF7ja{VfX`S(Kb0MHarWmGt>-&=~fdV_v#efqwN`IEmq^@ zzTUp`Ch%#*}?vp-YUabvHH;{Rnm6SE=q1;d@$}&(G1YSxzMv<`ZdafT1AfIL19LkPWHWPuCq1|n!hcnb-JrL*4hjaxOMXLF!IqahIWsc56ipR z*J}Rw-JvB7(NOj27Rwvs!>#l3JcoaAof#D*EJowm3axTsc=AA-CiC*i;wyLRT3 z?EyaeuO0+kR=;01dP)5pZ86bp{1Degt0clo)oUtBtxhV`9$6>VU$519KeD$_F7Hje z_ks{lRf(UUu1#CjB8Ocl_*;Z45A%g3#|k_Oo)G8<-?dv%2dGTOAzPdE2MjK11R@Oy zz$IXy;HQgr)OOJ zP8&jo*noF~Pk*s;cP>70cct0lJIUBN7dSeqQy7co^c*Kj=WRC&3kBB_#A^R6RN3tXEZOC1{GR~$no(+U#WPHq*>O0qOV+?{L!VdL&q(}%h&+TA4P_?-X)5KsV zc{-06ExdC48iKaQiAtYJ!je;tjW4~_zc%1NBT8Z{bT8G3F6Bwp<{9O+R@jLIZN%YOFwRA)wQ%a)!#S;6&U zw53=Zh$B}~p`@X2^W*kJUj(16AV6zY!G&|Vm2;%)4@Us#yN2BkUD~+D@pd-m{hKG> z>Y{npY`R6GCDM~-NzSlK;&9HLfVk!AbU(3y$}K?P$(XnQ*cdjei`ACit&2F`bo1U= z%H4OJM;x{@?%@!$`O>v}e=w4BQbBgL+|NQLb!)FmDS5ow1 z`K|-#=X_Be{hlkT&7op!ns2evBpd4C;)zQyZf6G^*MMRzZ%TYB`tl8}z^FRU?eIXD zE|X$$LW-B}D-3W70F`}?c8!OyQw4O7jDH2EM6&9fB)TQFHQdmfp(+fzbrZpl$Z5jC z_?g|pGp^0I$}{b5AC~>r6pLCjvYKn`r1`0>de!Rw)z!Vhmtl*02WzD-u65n@EAuhD z`^lx2o?}MIii8Q!O)Ft*J?%G%1Tkq?7 zf--F=PPkw2qnP3G0JwFs-$Z9Y{dS?liO|hqPr@75nOYka0lKNPeh|*^Y5!)6$XiM?Y^A0`df36*JR9M1#ZERQ4)Sfb}(3~%VWf=C z*1_#5+s9GsZL?7=WrA}*7>N3_Kz=0hb3+yRxLS2gBiW;`httig6;t`793tg%=>QBJ{CcvLtKiOttna|5 zYrm~GxE_R?I{}(X`Q1Cmk%*K;)4zqHoNncA9<`bCJ_tl76vWgf=7n(@;y<54?~yZ_yGKX`I15nV&Zj~5>5M3;Vg z)tX$*&YPV{(s`eY?{l>NwxsGLt_TD_nQne3DPY*07DC{EUzHe#)n81Mw<-&WxVs4? zh0CygPzVcXBoN&3y&@RrVGu#kPNPAm@AY9mztNXaD_-BmNzT`A!VbyBKX33w)q)WJ zs+W??&h*^j{}Dd#&Ii+{vzv@`HSTCygHGk^mSYImV`Sj`_pbkXV#c(6wag6pT2cc4 z5#a@jdqbf47wFa|GDCenQQOzW0W*kHox7G66@&CgAuFCafXlKHb&-!v8;c-;)l09y zt1XAi!*Wz2g>16(B5eQgs-#uNW{BWHElX|IY{422UXd7Y27&)rh`-KEN2%GfJ24xN zM$@SNrt0`}bZ+iNI#Xx2P5GzlQdW3aOzQb6d|(H;Oge58rr^>cOv*RI69+K~y~*4` z!p^ITM1LY^jzgw`)8xa<2f}Lm-#6mrYnJQ%BC=iBIQ(jPx8iLmQv-?Mmg-b2roRr> zwLu@ROx7Zgj;j+1QJgejSf=dC_3bs`i;?|up2S3!Pn0H`!kG=X+Z^I`E4H<d2jkvnAY@suV&#`SQ;J7`qAOw+0if5FqBY6`fp&ELY8S{Z1~_u2E0< zAHg7*o!BnfIt$`n&le*(ksvizg65A?U6dWkNhXiD@x3R$!XupkcEDDcsy|( zlRIu7P(4OZh{^0Y9J%87Oum19q^A|z+U0Mvys+U-pUPzZDt&6XqdX11QLlTpwNhvS z)fA0i8xphhkVC|mUM50=u7gy9pZ>sARigaaMt87Ob;*celjFrwnS1$ay21W$qESu} zTX;)WY)2CpF31V#1LM#v0nUy(ohmUz1%X<$pf=CCofDNKQY&2V_`R48~I6 z*N;oih@L<^HW39EoWYkA%?E%lXwtcQdF1o~s6K?ap`0~D5r90_pU(P9A=vM?6Nv6m zf^pOE-_0TUq@_G&v%~-T5Sq0sXg`|{GSfcA#S#571`{3Dejv7B#W9n!$d{a6zNW|@ zgOk1MQLT_c{xuZ3WA2dKCPAK0D4fz#_RyZ~&kA6jNfV^}162ZH%NN&_(;|%Vz1frg zsa6KDlu3VP%jzp(q-Qu!;B>Wr`wyPad%qPWqgW`;m@B7#pYg!1y`*mXEGli-nK;7T z+kx6nCv*#-c;AuEX|prmm<3@zmOsX{em7lIRSV*)S9`nO%e0;O!kU>&g}hP8)$)qH zuiw5k1v|JvzcCX8EG?Zvy$)?GEm`RNFS&tcZPFF{=**|#2~*U&B=>-z75La>*I3^y z{)Qtwi+B6&Dw2@M!>gLU+mraBY1SH}?pow%k6^$5tq3`hB_S^A%N#r)s$jHV(Of;IMj1EuL^J*-AvCHxdq<_^X>(CLXDGaDE z9&LHVSGLd*q^wY!<=qi@!1goVOe&W$)Uk!BDW3l_<44DC4MQ5WLgi`c$(5b*@_s7y z+g>f(U;*495ZeTvP-^g=boOV6T35`0z}4|`bAliYyln=b(s7-Xh>S%%P%(5udj6I zd(~dD{rZ0hgiL(wkIGvZgGMw_!JQ_o#GoErf4jjT{sAUHpBGnC%zE|s`ReGL8PVcJ z^`K|Hnu7A3{e9)oet)4j>~`tG!&^76Cf>^?aez42<-rIe5PdKWCiA?5^t(VzX)doiPM_qx#5c>ag96Tup~#%|pAn9x}?wO@A8wfwj)-u#uYG(&JRw{Y|H z4eJ@aoWQcOfzljbBt9WK!B{|0;KN2lD9ULjI{N(*2X_-|eGPQWeFsNO^RnBewz~8< zyL9dvs8WZRVt=H$r>QBQ1FmNcG4b_72B94*jdQjFZ=7#%Dw6LA!|SV(RnzsGEx2Uk zlCH^G_=Z=)8r?<7JIy<@Xyb4@4=ZTSc0_nv!_5`vbcH!=B}u|8$Jujp$aAfE%3i{9 zR1Jrfhx0Oo>v0WbFJpWV>*xg>uoFcAN)YKM_y|Vn+ zkeDgX;;`nepV&8+#+xQR<>ngS6`!)A*hqPWXP%{eR8!8ZXM1%tIR#zJgk=+!WC3J( zw0>NS@%!fAVLcsuB=Jm+Z-o^79*Q6+F<#U@@P01u_+D*8Z$z59Hc&0rfD4;>DTCf# zmUHIRE!Xo!pM2d^g&&EtK%b#RIo`J1+@I2G#ne#G?s#H_ilUspsJW>n(Y~m-RmVBV zox`d_F10nu6DgkqS(*Koc{TovxtHMRGCuVYuilsTSf%tn{`?s}Y3(rQ+rJ7{H{6Gk z3r;YxCrYlw4l2o)WXFT+%?U-zDnKP@CtCkN~H4=w?||Bxl0X*Kl&j;n>l{1$WVTf-5Yf16=d?00blM}HFyyTf_AJL!oZA2%3+c~Dsj2{s_Go}tt6 zcLQYfYe4~MJ4Aj5F)xQGL)1-gkJ&4|?}Zn+W_0tHyDZgwrp14!DjIJ&8)w%?U$Llq zx2=*ER{9M!KW@c`cB(es)IF{te(k`lNLAwacr2a^4~r5bv9CA}f_DD>#SqEnz{raT z_RqU-)G9Uq%#PF_jZXy$-Q?-RyY9REHC6zok_rRYp3#Jk2UpLC%3cN+D0+Aq%^W`& z`_N`cOM8CeGf69hr@+MM^Da*!9y`Vva+YTAdE7ZQG4+S;o%7NkD%_aSX^*mc21`3W zmv7*`l4<2LLhDUMPZONV*Dtxl@f*$S$bm00TqfxA5Pts^bGjd^&oRX|f(I}$y12^4 z@1u?93!oBCqvs^A+b=$aZlG7Ya?akY7EI zl}a_yKtIg16JO&O_QjE-c+$Vig3k)9axoIXA%HU|nr01%S#yYFlK6j=K>DH^<>k?I z&ZX5*Q9L+Pxy?d*x1{~)bQ^JPeUF1h<-uQ?Vi2mtcB$M>HDe1B zdy?*;mEZy_zXe|!4wAb>e7yG)&|iPx-SRcg8nMSz!jDZ#epTf=W8qq2Mlw4jJ49LL ziItXWXQUl(+nHVo8~l8BdAXl6aK44JHq6(!>B=JNTa7|-Y9n$wcTHKFDsp&QKqA*F z_Op3U5-+sV>P%Fxb>R;cVazlqRbLcy&k~PLa>(|wVUcJHm^R7A?U6+JXEf-|aHJk7Zr;7z2Xx++7 z#Uc+%rTX_&xiZ; z;V|-k=Itu!=i?EmXWJ9Hz;`e zb#lNWd~KSY&s0H@QB75)iM4nf^uxB0?}Rtc4X1x9HQo{2X4l53b(hFb)rHId!yC(z zo4&1jhpS=wjFoJWAoW7TDILHkI@iXxX#&wSuaMu>_L^gOKJzg3pxoVU^5}JpmjQJ=W&-JkyTZ3E#Oq4h;m%ZOvp?$=J#< z(%Qe&r?g+L|HSKM4pWDj-*72~a)R{2Z6Gx{EMZ$$;|CCXhi8i@QL_9y)m z|8?K@L7y?LFZWEpiN?9ui_l6$0TgRA93|K?^j%TUuK2pJ%3$!JjGPOy`ZG4D`Ld-t z=!je3NvU=P!IE5Xty!E=)Wll(y}%^iiat9cQH-LINs5&~li85V03?Eg)@Tjb-11MxAg zW$5z);N!57&Sm*{N`$LgS*aJ4Vb)|Y+$ze9t?6p|%hcu17`6&4B*H0QSi3IBwls$f z?>%QBcCe}lwy zep1P7`@$ZyUQ^6!_G7lOj#QOZbZ>2gHBqvzsAm_~@4TN-C+_1kY3U;i^a=Hby}@O1 z0Au2*1o6wtfZre)#rs4k3AkKJ5BTpX{H}E(t7u#wIr;JA4qFKue#}Vu7Z-?`r+|w7 zbZZ(mMOf~3$mIfZrx8;F1H;p&!0_V!fbp?#Qf>p47zGc{_Gn@fs40ZfZVxE3?)hJ6@L(ewOg8W_vm$2asn;IDys9s^x)ZFR)iqKd%{9XbWH>ao0SX%Sg zIVfb7!Z4%7cAmiJT$f{5Mi0CoO`31xEk5tk8=zxpHMiPJ1Z0T=tLWURwqKwc*QMV& zP_4(%3gDBQbwky`y@YA0wnqBh;$Ax&Qcju&dG=;65a}m;>{i{IiTT3G;~uGvYsa%M z-n^!%>J#Dp=ISfRzt*XY0Y6%iEjdysl6*IaUDjv>VPDiX7^z?YOaoOzwNUj6na8E0 z_i@0Tx&!QK|Hdrv@CVCUUMiBeOWij01JAl6^EkZY{RPT34m=vBi*ZSCsdXLrMC5s zSs%8-iZcwM`~+!$1>cI%-d5fRc6kbz2}E1dXxc;OcMuPS1K0D2#~u(+Qeb-CJBqwt z3@LDF#gf4_GU8!>3y^D&R_AD&4%=eea#g4@&HN7MVYRJHPI+@1x9R6cv*%A^$jO(T zzI4$YU)6I2u_AH~Tb+3zz4XCzhF(k1$5a%XnAPL> z+kO5_mnTly9}Lii?+cr>OL1|(28&<(B53|-*szbv8w7))v#K>wnhT}8k<50q_QLq+ zMdH>QT1*=hSjb!i8FP8oa04t7NiVds7qC)B?nkUlm9_bDlQ5MZF<3eTGf znt*p)fvp<;GFj;FtYk|%jYb_szi{Wd&OZn}wB82zB*4{dO#kKu(x~`|#_2&1=aSQJ zkCO>=$Be~DTm|uSMvyITADvo&37?v~7N9D<{RM80%*#g{*(Y@+P08Af-ni@G!;WN` zxr>Nyh&eItf5!B5eob4<*1ck2`EV0~5MzQJ56o9SdfWBpMAG-Bql53^tgRw#iQtSK zC?x&;YM_W$zZ@P$Mp!0$z@MYuR06v;;a6h;62GbiPO7Lt*NJHgtce@%CLXp*GuxHt z-6&qWyRWq@wW1pOZ4V}CQY(|<)0MO8joQ=Jis=g(qYoQ)3IEnO;wUgc^3n+0*ES6VFEq6gpoMP^Gx= zgYxk9!(g;1Xq97mQ0#vd37AepijJ>2_2haU0l-?nU)6XO1xV>}yXmxN-U9w-t#le? zCV#%>d5zk0*1=zb(Skd024duncLYIt)4XLYf(}OHK^u~+dVHWs&mTP0_#5A z0sh{VsK=h9>XQDcs!r*VX&7b>hfPe`%pGmYoyl=2%VzEkS1jShoPUgUpnP7H2g1oe z4S8`<$%~X5<`oL^>`uz3=GA8?s;!4PDhsEjxd_{SUT|Lek8$rwR8t<*o@(z{-}h^b zlp1v2?28&bRT!DpSQ{q6^RSy%XH07Q>o3t0o;Z8yXpc?YbH3PX+iwyt&00)P5VO#{ zHq=NBEc(PipFdvA2@2kh39tq4=HS%mqGoioY$h$Fkv~-QIy)4|-SUkw z4Y>b)GtV2j)Jp#M$y>GUCxE~elxFY7p} zdLlU+lD&6-hvjB^ZT`rq2a=a_`+fD;xH#Ze%Iw+5g!q1jf}JYNU8AIzrQf|*dE#?oDrXVV_RBy0qzrrtM|A{K2ceDkI8m8j}8|v zX=ZiZVtM?ZY$D7Vt5dkD@4*PV9t!LEI>)}`B_HSEq-)L#5##`YFifV;H)Q`^*IRp&+ypgIiPBw4t zNK0E=7N57HXq{^<2pFxdfPRWRR+ug(4%u@gLxD2uOCE|BMEchGK2hHNOf;dx&cS0U zjeYxZI6fLHeR`2QTI-!&c+KLo*byaUO|zK~taO4q6Rz#|V^cPCGBt*3_|rX^*!1m? z8sz_Wyv#`Z2qm?G*ghIaZ(0Ew@w1@mVk;aFngo0bBdaG4dXF#Q; zzTD9Jg=EjQ{Tp=;8?bnvje}ZGlsyLKr|)1? zPd^$t^4R1_)N3<4=)p|P?4OjW-gJM{v7;RiK59$$su?u!_5PB6)7xj*v3WP}>$>3P zuRgd_=O7!$PW%U0p>+ME(VfQHY+;CBpP%tSBVbp)(Xv#$ITaz73x-=W183fMP)PMc zAy6=VVAP^Bg(*vbRVQus;_;jhp%&0uki{QIKRYuZc2E~MR4s%TcPmG zF2#_d8cRXpC>8H!FJN;c;*|h4?dWrlk7h0L{3w%_q%J>ymx^ihXC6G$NR(>AR*>bx zMMY&03;2uj`Rki9)-p>f*ht(JP^wTU`LV^XDL}%U`pq9^hrd#T4fRN*vrM70KhGJ^ zmZ(@JI$dn;UZeL*Liq$N|7Cm0B}>;jcJ3VUgdRYlzMvhU0qZLkhXudk-L`gNG8U%e z4U)`?Dr?vu>!26O{5WP(w^ zA3qF!G^`MxlE;E{$yw22OF*1xs;_rhUh1ZH zIIj)LNguyyH{E1RuNkberB^@Z_uShGs@&|kd_9Xo7H}ILbj2 z+3zL9+ONj1zK-l@1#)<3_fDv`eaI`?Qgu4)W?9Z=x|<(4_@D`*aGt&x5h$8tm2*3OJcWypl1Kz<*|1$Km-zC*Fv)%8!z6Qq3#!-`Yl%4&1KL_ z;c@NheGK)Z$`q%i+q2<7ZeVcp^BKAMw1g8eXjIufh-X$X10rg2PK2purJbXrqmJ+K zD4SkgGC1PeeO|XqKJRM3u(UWF1NpU9JFAiUO5QP>*;9s(ZA!0&KyRw!{($|eF=pzq zSLMMs-}l!Ar@&}k{L9f<@|R}xz6S0%^RnejfnJBCI?^k69{yHMLrhf;%g z(%Q?CYz}ugeEabXDBoFt3F!D8IMuo3{eca>JFsFsJlRBK5hdAB?7?Z{!+Gf^HH!YF zE-!Wn!zaa|4gH0DH&;vi`9m>Nf-hxQZhk1BmvB@4A?ZgY2O^@tg!eS2+%lC=*)S+j1Axe+!Col!X25yiwWR2_pp8Rh#HT0<(lv&C9QAo)vq5R zCPtcMI08vxAOF&r?)uM~UU*2Dnz}y|R-C7AjH=Xjp~mLK4TpY)*uSHtVZi1z$8CyjVm?*ecxGfVH3n{OP7ZvI zIzpzmW$F-L5#S9<_QLzmI&D?doPHjkp5FU7Nv8#TDZ#)mAAB~y%WFD*+{x(1WIePU zZM-t21vbuXsh^z_22mPMOt`%zhyXdbnl@t^O=E1a#^}e#7U{R+`uCGnZI2twH8|_z z?&og6SoI>t^iWmoUcc`YpY4Q#Rw1M(&U!cp4@@{V2QFBk$X7~x@60tqPv`uhAhviY zSAniK)Q!09JsCV71-`!6HC8wf0$~q^Kv8!wPWa<~$T&QX-F>@eu<~Nc`lVX<)qMom zz`e~T;Kn@Essc6NJ!rO7=k*nrEtQVvccg7_S!nq9Q){2=C@$*aa0?x056aDJCR=I@ zgU~cY!9$8&P{34=z#D|;nlO_j_UK+hYnvaewJ`u;-3oX>LZ8)sieE^zrimOj(D89R z+p=0~Ve~$2f$2*$`bBr%;$(33D41W}B5yu=2yI+QPle$9Ub+eoJ9#wqebOmlnXzO& zq&(d=^SeC32bLL*?aUSgWU~!Nuu8pL@0mFT20@JN>$=WsMps=QkA(#^z`hNv6GOH+%8W`=l(KD*U)O z{&9ONvUraITbK`R&c~p7S?g;duz+WJzW1N9?!e|8P;Uv5uNFgSp}3{`_NRA&_ILYX z{%gSWulnfv^UIpJ^S*iZ{w(Z-sZ8$j;vqzcIlhuoFD#xP|N2Wi*cX@XdIF*c^k?7m z-*OBaxD2T5(j>lK%h`Vi@}FE~wjH{y+1XwK&kZ7{r>#lvF#kc}aQ)>rAp7S!5jMr1 z2AjaSQ%j=vcK(yd&^IZZqPl}OK>h6ashVF>plr_p#!s4p*>ONn4=e8%!AaUOVJ4ka z2AB)@75qjzkpbTz&rs#0YNfjD8^QjoFNX@J0p*mtoL6^`f=&HybFfG62cM76 z_e&$?1x$+p0#0@%ajD0+xOwX11KjtSqxpslFA>L}D(Q;rU$M04_!#ipd1tgp3w^5c z1>!`W>A(FX{oLH_-+tn8kLhYzDuY>&;%Z(Z4pH%$t&NX(A%w zfWv_>U~-1}@1xsHuWQf%`w8c#4X-(4;txIV+g1&{qP0of(pkJ;O~UczYS1cuiT_G~ zx0wVBW1*d#LE9OzL-;*1lOH=nRN{2^WXrtQ;eSSRJ}Pc*!@aKjpVXnv0jQW(KE&hh zKolMVa}u+nNwCnqdEp{ojJS(0rm0ER7pCxzPdeJbihkc=t%Oa)tX(+0V1b2$;9zV> zOiwdG*6#HYRKLwzu1J_QV`|_}wr2Ofe6{5?@RqPq{r=H`IJ@!#oY&XQDb`OJjc8(e3!}qMrnYD{djTx+L6PKBDR@5D0PsLg(-7vlyaEs4}9!0kkhXjF2A1`HaUhQ3I3Q&d)T4|D5 zj};hpMn6EBngM`(#clb(F%91I@a&jIgL=WGw=?Ob6;1j~ONtHgunz|vr6c9C+Bl*r zYx4TT6?jEA6rY0Q<@wCJ<;#nbu2pnJ0lQ$&LxVGiTS-TNAA}}72u0c7n13ByMuVkB zv;Ud|%h94c^F?*(0BrdTVS7Vy!V!4g7%<$S&VL;dE+hHj!~9Ow4y?1Y^{pV_fFDtF z-ANTd7cJICTrEg<=NG&EzfP&a?VQpxDYCD~EQIv<$QZ|d-d^Y^-x1{Q)6s1T^MYh;54D|nr_A1v)9cTwFwfpCs@=N68e9Gl|sIGfmIeak&MvFtXj{y%n z_xm|L(HjMYwINwf)4?wCp`awNdNT&r*cg=^n-1^crx?WLI8NX|4xvBqdvB zy>LE6?!fdN(M`-m!1_4{nJVWNCg}At~P2j}f2NeW& zjj5u|pB@@`f93t1J+{L!)fYYV;9c!!G+8WSMu$%~(JHiTYY|ZjBY)MO1Kd+@);B*S zy8~NWX-4dc-iikit1k7%5waoKWAi7fzF#hWE&lgRx&dEZe5Z=(m^JY4R@zKqKz)oF z8#H-u%jGC=!7s3cxGk@>UYUhzOjqjtmZ4PIyciR)G z%FXt3bM5E~wu^vT{(-B-tWO#+W~p~ARQVWsRfj`@VZL~{$)aQIs8>bGu^DGn+fX9b zH77p3Wh|3eb;wowH&xwf#f0&_g@TI6mwsb>l`nV~pwYASX?g^;5 zdIM0u_b-1+UK5z6pdc#r^oJqp>X&T8h{5LXtzE?K>MGH{X~rz^Z$xH>P~qg>!iCVb z)%l*g!>(4KWJPCP$Y(a#{2W^@QX?!SNk!EYNUk5Oh(`WCoeRb4jLJGIDVf4Q=ut&OK3X*g_B|$@y1Y)Wd40YBcg*@vL6%p5Avo-nJcjf%@m0tikoSy7cjmx#$Xu5;!EjL^=m1TD zpvLTF0|y#aMhFgI-Vw*X7ftU`049)=jtNcS-Qi!fog%xQ%QIK#H2%lx%Cu(fL@FSuFV+bYS*@a@??Z zcb^C)fNR2Na`5ZmFOZ}n6>0E`i8UfTz0CM6?2z#;MsVPX{TPv;=<%HfIXGiTjO$ad zr8FODToKDrqSlg2F6ARhiiD)r{NhQVse`zRhiaTUYIA({_*aOjVyHmh|56!-zF4;C zeFi{=#udWOUMTN$3!FwOwK4b?Mx}l)CrxCOxxa_m+0xaLMA4gQl0{Y}z^6eIfsJd9 zW~u!Y+Agq$4061VTHShjqBG2yL7=u;?qi-;c%gg#S?ur}#n1Jfb69*tIu+;}266>R z&NBkNXEw8Szon7sVez2qjsbHv(|{wdb9L@3s#a4mM$=r9WTl-g{-r0;r6X3g>)WCW zj=uPgZ*h@U$H_NU*Eh-4){C#VdVgBitf;Q;$FD#Z`pW0p)`rjk$Po^-3{@b!?z7)6 z_S~29068^(+5w19*?S8^y=-65M$>tvXUjH}+mloKb7GG)7qpp9qSMV_WN?O|G=`j2 zbe$3sSz6@C1*Fp;j>+|LZ6|@J_Z<~4Mk2>Ab;PK8i92V7#lrtH*bXiN3ZHMTPaDH# z1#yFDpLvZKQr#Zb$#{yj#W0C-8yM$|TFW9ko_}|ysb;U9ei#3ZJu8Xc%&JWJY^?n2 zIzMa7*_wLPR(aXzK4}ui1WT$*Po19d9QKB~CrPf}Jv4HUm7K+)F>ws9oc>CY$AO&R zta?z@AFd6UUmR_al9EcY7_!%Xc{c4Sy}XsU9l+d(3w_RVoNAeD;=yZme3F#uZ>Sjm z0uVv>>|b49mgX4X5fu2{k@e33grpc-V0g#ohlRWDG}U#v z0;YR1bMm35ubLAnz3^G-qox8-k#(Jt()?{*XOZCtdcF;c$I1*=<;)Lnw-4|*k;app zd~+nW*3_g##_)hyc7WQvF$68+6rlmPO=6&Vk1{0tw*Dzy2t}bpGREmf-psm4<2dei z^7un)WV=Mn80i6MS`pahbYG@msQnJlGE6zL%b4%F9x8FMBpV4WWf_)30@wSMnx@$ApVS;vQD`zJ~`ZQs8dUnALa~NFlay9$X zK$7dW6<7D$VyECi`}8Tj?=k&Qtcn5*Ri>bsk*Nl-ga;-m-8Oo+7vJC$J>M+PJ(=E_2ICuNmRYm>9fOwE~aR`;3&wsubsw6MR zRV5&Ia3pP23(gO!X0Z3r^YR`BAG_Isu+wz6NlP8)K7OPR*E-zcnsJGj&X8ADn z(jxha#hcabGmp7(X;6ffK4^~E*b4gSb)oHdJ=_07a4RLWIax1H4&i8?S>I5Yddx`g zjyLd4Hx%Y}C0N_zVQrZSXtQt3930Vxt)bjrM;4&R-MT`Zi^2rVtM!35V=e;&D%gb= zhI=3)M5ex$mdP&MizdPsDDIg%2)6yAv+%KJ4GWH|YrXDI0FmBS@DaEA;0@wfN(#PP z+rI)BK?|g6T}(lkMAl&Hl7H?d3L#LK(mrL<_!PRovmZ)3sVZSqng0XwQ zaBQMkab=y@bOkcN1$>ADym$?ZYaVe<{&G`Qz~IIOJwnoh<>muF=s*dI%I4tz83cgE2#-51nKB<#lK54Gn zYfXxg_)>v^B5U{;+A@3+dWk+H3KL5M4e@0E#gkz|-v7jzi9{8ntv)k4o4eT_1%{8T zS6lx7fzQ%HJ-P89hpg#+ySS0eO}v(<_nMlTbqC$7zb@DR3CWo-Tc=Y8g!0MQF8flv zs}w$yliF*kSn}01t^+#i^Wl&6@9f7SoztdW+(^W)&Mn29G+Ft#UPs|=CbXIQ4%xtx z)I!e=KVnh)Np2k$^%2Apx=U8%4C;63>d#3zeldItqF>{v4!jl;wYOoILGXi~+kGW7?Ks~P z-p?+M%F1yy7rBpmktc}f{j0C6Aj>Y)5IIOUkyBqjO~7_j_hdcp02S@u)V}t#^U-d7;B3YJP7Lx` zTuvqi%X6etw`wjw00YM`;n51;#I; z*|XyYs8YE%Z?JW1ToynKjS1*|sIZ+nNjL?fJ~;hYAgczNK9w+6*VvnZC3;*JDPXUz1DWdKiU^XBBWN|^k#}6N{LDJ-_F#HGK5{6!|IKtN* z&L+%bm96}BrSAAa2(CT#mht?DzWl}|S2*$v+>h)iFEmNpaV;n4UEQ#Uu4Zza3Xvnv zXQW}1ZB;X;|Gh_P1I7A&lov-R?)7J**`QA#$nbgR-$5rVHeb?)44v|;gT@d_SP1jk zF#_F#I4fRRGP|h$N`RCcP|b_j7DH`dQ7gEO=gSASM~n0c=KOFnL`DB!Ck*!5*Dft? zyuJvA-q<H4vtI(bV&EGKuI$ge=0%O^f58|Ghc3=nYrRDa4b>>xCeHxaM@ zClbfW(|+Q`)4PA|M|$L(oTujHiguv#M(I@F+B}m^UYmA*@FBA;Jq3L_QhwL_8-BDj z!$S)u^!*k?+4qw4yjbRZ4)OGTkMB1dz!OffLtgrT$?srdI+AiWqBuUBE0RcM0>#n% zTKU%>L)SGe*k^q-XE2$rHx3-owsg?4F>ve~olmAK<=Au`VKm@}V4I1rbv8W2c_0Vw zZSL>B-qrJW&(;~dkG)TtdQ-UU(r@W|{I=ZYl2;&KPvh(%=|tn;$f;(@F5dV)3+^>T z1trnOWQJEog6EAaI}k;uQrhn6@Rc>5Bn?gZ*vZDrC%hAAh#Kj zWvot4^FY6~Rjr@5-eYC8Wl{2VQrm&T`RhNm!Z*+~598N%BWcH4IbI$Xa^* z{rWn-Mg4a^XIx_wOd79e+#f;akl`IlomzMSJvkBsQ%ye>@}4|K%*TrYEb&~^&gCE? zd_(|QKUP3KQyH|N!Mz?tGInyCeY~1P$9brJBk->T>iRPpdC%KTBT*Gbbh~k=q9VPr zk@jxtlccGi{;P+mNGm;aAO?M|&9r|1p>tWvubkLe)B%P`!HA{)uPMksuB8>zvrGrC z;!-C=>OsuF$<)uP_W*bqcI##wt*IHcAZg;30d+MsB_$=NH^t;D>KTmJ`<--$U@?qR zbNz@H9=K0Cc3U$zc`=CzQP8Fne8r+Y1ocp>*crkhJSHUxKJjPr4zO+>xkTwzVfQ7~3coaS)d$K7jyRcKWP*jVAVDzq?OF<}&0nu58 z*L#obefv(Pcu?I20J0D2PkIqdP7B0yWgN1m$zLa1h@*h(E6}Lc39I6)u%XPv_2X%N z2n_pzv+F+psgx0xNLKZ07_EqlHvl=WWn_MA{o7M`sg_jJqC?jS_0Q1#m^gru^IN?3 zul$7C+3EgqfB&A3qv+uM+nQv{^w*mSO@Zw6-uE3IJz{j-J#psQ7~-3CL*8+96%RW> z+R!g%aq-NfBNs8+0hT>OO|q4h6RP2@kO20Dq+ExV{#2T?9(pWk_o0He22qjO=Ev+D z5f*(#L%P$oi+X`-gI@uKLhQ`ZK%rGtsec3Tf@vg@cF6YY+P=5M^r8{bq}uxW-Fc&pG+X$gcD-TCeak z4+JygZ3|vk-mL>u>)Zwg5oJzu@((xYGLm&eXLUk5AaMgeaedKs zZ#sD*Mwo{AfNt|xSeSB&RKX-7FZ9`a9ML8Mgk*!=KJ8hj`h3%}W`r&f?W^?sv$Wq- zg^#g!>$c6oZf5>1$FyDbjsW5q_y8IUkj-jTsKa=mQ@@X3jeM|n`BN81@T0$i|DVw*>`W8&Up!gqfG!N>_TXgu@!$q|zYDo-@+4Y zbDCanywiJ|@FS2x3FV@UnNIRVxfv4z0oDj}_(_sy%8(DjgSgMcP^89v7iCB8#DCUVyIpW_sh7%+v1YYxPve_m{C_Th5sWXaPXn zO!XzBkn0d;_WuXSopArlPKsNi8e)knpJXbr={!waeEBGH@dIJV%8N@?az4FZwI2mG z^zH;c!olIXlVqv5OHk@#&eG$acyRGaN5r(<5#;6+3Gqg?2_+SZeT{8r-a=-@;#;34 zN^QKO-I*@>b7`SLW?u2y!Nfn#qINIP%%`R(c6;%C;YEn{hm^{n?;U-I((#y-Pz7gP zhFJ=y8hk|~$vMUOggHsEfd=8P@)k5RuM#o81GhJi*U`Fizt$Em>h3z~`F;3CW!KoX z{e$ez=FhqhBA7~%o!Sb}b3T$p`G*!0P^JC(O-!JON6cDU-36(r;QrMpy?gg0GYP(# z?=YrGC`&F6BphY)o7QA=KZYV2#Rm!iNU`->eUtv2A9Wl)h=sqWd@QMA+{P|OW z2Np08@iT3jS<=lFmV_1iR1-zIC043u|1TGIevz%at+TrvRTU->MMED5YY(oL6IBGa zG=te9yWh8;OuwmIQ7b$A0tNY~+hXhH+IEj?@h|>xU@NN7wv-t-yP^B1{7%AwPPUnE zVJjpv5LP6Y(L?_Z`1B0SPEa13JwvTtK2iZXAul+t@_k;!%Ab~W#kgvuB(1MStm!ai zZ8Bw8l`wt8=UBiD@~sY6nC`18yBV&xhd(;%tVZdI8&+0U-l?d#yy?v6%|U70Cb(ii z%wo>}z7L-``SI%0xWGf>JE!iAkZ=6J`r}u3*=eF~B6>@Dz3E9L{3AtJR&Kbdatlna z5@ONUu5kLjF?=-nr+Tnke%`bsIF`6u-adRIKUGUSO0O>DGv=qA!EGM*r#CnNbqBU3 z{9m+g`uqP<1($;{Tx3ifI^mz60j^;C+Z{yYT{MY1WX-Ws53!mFgW2Gi><_196@7!? zosq0Bmq{_l}|83M>=!M!~rS$QcH zy0jiXB<44}D!{p^%fXvT-FnkYoW`*o*W#%gZwsSi!-MMK{h@7sleoTW?1^Y#c%TxR;k9|nW~$CdE| zHy}q6ujlf}zpPU1@!!Lx|F!)SPffc%Xaad2ZX*}mpzT|G3j`2=PhRmZkzSboM@``p3gnrWEck9=ZVLEY-?2z1T4*m=N@;>Kl57e>)%q*^^4X965#E z=A%VQdMSgMM`(gK2p*)xJ64zGip4-Lsrjs7<8nS-PV2jORzstVEiY~mrgW9T-$df> z%SYPQv-*CqvWRS+lAn*%v%hYD$ibhVP72vY{n^@ zUq>_(iq+krrE|0b(ETB0Xme{Wq<3|(ub@lc(0k?}sONks6>Ne&iXF-B}dN3Hl?sDZMpThTd@0VsXiSYf#A%t4sBivsD%D7?~MBGqfZ0d1hXjBe~w8bh2Hcyb4|6v z+1rPhvEU0^SFn2Jf-5y}6h5S|8{@r`bdLj7u2pE0p864M-L3|1YttIPW#S?e@1GFM z=Tc2ZYt3)mmQ~Bxt3E|xKE(?CcIxc;rY@2$#-f}2G^3-K)2hhqnPrKckZ2Hiyeqe= z)>M)FBS>o-c>pMEkaxLr0ZLjT+_CxWrkW8p?&*po(uI-n+p4E48cFEa6;!ij3LjF6 znVCR1pOx(rC9bl&-jZIpNjP@({AK*WoA}5(z6CfP1DraWHBVc<$3H4p?>n8kz6WIg zu}0Ly>nNf)E%?clqK-}DbvNtR*CcBPGJUu-SScwdR;;Y8um<|+xVL3ee&(b5O!I!aoF8KXbKJ-!G;u!9&*IbFakh#D-=Q@9tgqm ze9Uj3YVm1(HHn;W=}@OvW#-%&xd{;;OfmVj{;nj)nJ>`z(?zKnRX4pg# zJU!S7AETG~+qLbZw#`lRsMnwbZu;8&JwYKj{~x5w&CJvx3oN4r(!+afJ>Nj&G04qw z+Y|Q*F>mDpjZaBE?Vul+yDxcD|Mre|RB`l-#mwD7`SOKLMyjcW4^L?k_YLdL)naLh znB>oamKE$9u{{EfM_g}_O{yX@L6(Q-&ueixL2k+7 z5bqGYn(u`+RWUSkDgh)OjVsSrsWt*ox5pvc_3Mh4MxIFt0mc`Y{vTIg0aaBRwT&Vu zQUVG{Dxip@bfbcTq=JZqgmjm5qm(F!NSA>iAY7#T(p^%Q?(Xo?@$ZYy_xq)H{NN_|p^iESJjzaX_-p-V1*HeIiIif%FAH%FVZr z`b`INy}|FjX@g@^?)9g5-IpL7iB?r`yN55&=6n71ZTdTpwiKr^h{e@c6GnIx#&WrC-i|l?!EZ-h6bQ@_c=UGVXN`OXlLKiTT zv>mXwH0tn=r*T7fr}(8luifu>37fr`|Ct0%LZv~?O@V&yOrrzZVXSV1Kb?T&m|N9U zu&g|ZX>xPRM6cQks#MEn$kKI$J@Or$B~s6N%jh|huEfddKgDV7yN6E2%U}{>cZ5de zf|Jgu>k>PR7tWlzZSh-B0&M3H{}}UyC$FkU)oAJt@DX#1xvxV zeGd(1#ZR~Pq>f`eXE1Y0{qdu*iZ_2c*2-qaGz<}!kE5+kdn8Jl+f`;NirNu!&uUaO z@UWW-cefqKH@**_uSH;JK%8}f4*dlw$7=8r<)y2*$u((PG>-i6yr$lY^_;o3Pt!L& z)Zvd>vap9{n+A}Ms3T!^InQcEi!P|*S?2i9++~zf(yA7C`eCjhq4!yOYce3DV~5Gb z%{zBUyfI!`!0#o!aBfjB22=XWjA)c(eqtB8@|^s#+8dEMD7N0ETa|!Mn_^!5RsVYq z9WRQcJF4mPZV`h~uE1vx2F{V;#GTdo#>Q2aXtN$Np%jpAUAu8yOLjZ-&qVB5@v%-U zstBoynyHO(yMY63$Q=Q#jbQu_a!TA`7ucrByCgG?(uAn zrm~~gA!VML=lx$P3isT-#n2E5<|il$zEG34q?ENUJ@r!ZVb95$K4J7nQ#%K=@+xxj z*q#IQ`wzBvu&_F^ygQtv#6H$$1;^^tjwGywm?+qOjxLQHc@U=4HV%%Bk$ROYg#lxO z=*^Z(1j12Ju)K_8Cc!}D(!Jcw$WD}M8WK@S1pW;M5tIz+eb!QqU_l9N6F{1 z+UU{pFP55a`Cl%z#?Dv(Om(^vuD-9(BOb4(woZ0h8@;>R+z~2qEC|^^4%9#ofbW4Q zb5sTQZn4C0Uijs?eQkR!4PVx;TPw@lU@}$FJ11?xRN`_18e%Vj{BPDnZ|3QrCZ8$Y zY~|h0&-G%c1PQW|M+$4DYz-Mby>;pDQizWM@rO|Sk4R@NOfwQoG9cXIi{$h%Jcw_) zac3bl!K>Ltp(EI&4UG8??Rq)!G|b9iTAnBD;Jd}JyQAMgw7aW+`r2zc{}50LT-_hV zPDwR#i27eW-r{}6A7~Mw3tZi&!a9K7uq`9B&s1y;H zB&=SqGVjWCDPwFPHJz959#?__#&%#W+r!e9&U|~GqPc6mwqfX`&;Y&I8=%el)&-Al zcZtg+fo7oO?gcsxEb2|n%{K7L(=BaLCVUirkhdC)t+U>fl1d{Br^uZNf9h+#K@DYq z-kaXf2n>vW(}Hb0Oc>>XrEt*aj(lN1e)J@J+u_2(S4IXq0ubu{Q8qBQLek17e5L3H z`PQe)Zu#H8uMZgi4~akevl@0foYw^7oe_N!`}5yQ-koAj%EkqA&y-h*_0-3S{i&}^ zhWySx|6$Qy@1aX`;+f>yIA^Viq>ho4dodEVA!W_;bTY{#3!knuBw$Df0jDyy0No!x zysSY_H}>44`ISOoU}Ow39wO%S2Wgn8hY4v_&?Xk9%;#9{!rLN^oK~DHuILDx{N?gd zIpW0Pm^gR4-40W__PCjv+Vn!$MR4#$f)geZgn>|AgPHQ^CV?xZXb|5J>to#Dle0Wo z0k7k}k}642eIS;2lOVE!BBm!ADG`d2HVZ)EQ@k)hdd|vUNZ$a76xr@;#cMU%z=Io;Qxi~Vv@qr`O$Jx36sVP2 z)3a&L{`W1X?et`;-4GW){&8@yvxfNgw?lNua7|AfDc0aifGmd(v-ZD*N8}!UJ#cID z=@q*DI`+>EWisu;rlk7(cP4Eh*3#X%m+*m!P%e~C%mM{mitxij_qpmGKccktIr~a# zy_%zA(%liQTYY1Ar2M?*w{{X7b)?LjeGP|?&?6uW62ffKi+rKyZ^~!u&=XX*aK8SI z!iEp-Y*3rtbgs>+%B8VnBR9XZ*^^^jGs^uZ4uG-9EV~|9-eUQsBjG7(U;yQ|nVPF` zynV>gzG-)S%in#P;m$omH&r4UL7SeVyVoB7qgO3PHe9ia&K-Jf96OOxE>kQogE2*~ zk#qfukFrfncsjRUV%B-(76TT+{D($>0}7V@%AzRbm>XrWKgPs70+TLF6hb|>zKYi& zS&jTq?-GgAur=8E&r15GjLP<}&{`SGx7;Dg98f6;aElz1yq1j80Xp4x&!f*u^ap5G zwQ4mTSbc#1-mLK^qNs_;{oE44H-^x~Z!IDsKPI^yY+jKRSewYM36}cHC;@9C{RZJE z>Bai!3)<&3b8(>v{f}bZ<7U>M0erZ!Z>z>eMtx6Cx1+F<2vT~hij2fp6gk%@g>7>c z-*)&l%;w@3;z5O%_h{#1q|NezJ77$W7s2{sPDaQt`%W{bBItFy_j_&aSD0Jy?fMd2oqm_R*ozF$5%K!aXt>gVT87> zI{2pBupGN~1ME|C#{DQ5;tt)HGAHo5fmgG90b^hYqUir(TV%>p{l%`qLLm3z1ccVU}oKa8_rDUe;nYweGrwMXvI9bF|c;*?Q zbBpdgJd8<5h5)z(UB=6fQO2&ws@1_{yX zBC%S!vR8srI+2E86nXTBiY=+70eNs7M_~O>YH76p7?;dR;nm-pw;ZZ|Krw(ADq8qljU2X3G8jV4}Npe9H}Td~R=mD`uPoeIEi;;j=LlOspu0{VA-uY2cI&VRzqKvFfCPFtX z?ZSIYypYrrzNjsV9k@eja3g>k{c);|jDJxzLtGoZQOXx8!E34{WoGpX@w9y*-k?+* z0LH1LWehmD!mSWaC$_9~P7~}!pGjIOmS%})jo#RF;1Q@{&G?oi{Zd&@M=nu(%T(*3 z0a+Nm#@3}4VvbW%O^-QB8~@REQaDg*gnz3-Vp;vv>tm$vFS6_3+yGq=#vetV<5%p$ zv6Q09fe^D5z5_IensZ5Ff{yUD|GRtbj!1E=NwJAkf;ym|zQ1S{b+7xfz)GC6Y53}w7i665%3@4)F}hn$ z;gN<Q6epg52`m_e(>D}|{t+{35Yd_0=q(^UuM*UgWi?VVVK-pTar^e| zmp~$bvx?FGj8g*MT)}(yl{j;~=9GEkkI_Ax-{^_|IA8n9=kwS*iR}dMpr!XR2Se99 znAf6FLkLdJfWPLoP>;u?))WPGuBnZ`%^1**@Z$n^-}z^^hDj3K8I+M_C*sqyg9v&t zDvd%&jpz}J!as!;eoH@A#{{;VUTKA=;3$N6_Bj(n%oaQQ3^dR`H48&<@X5Jgx!nKK zdFlahfL?0Yn@ghin?Btae=YdZv6NLXMI{S{myxcY|1xYnu{F3{!c*PmmiiU`h1l2h zlGPt78S+}6ZjeNzO&2IZR3_Ap*IyQrJDZ{;Zh|(uIC(=|Gk~*a4+7kw{^3CuB!@EG1(2rohvCo!I?(8w(Q=p9UK3a z#xv)Tx$Mq3;iQ>s&QIWAMdEW@P>So<%dOJewkVosm>(X%2>iR&W31+nuuZ(qusLIG zbEFM;x{+6X`ejqE^kptn_aVQBmegXJ#{sBimr<#hkO_!GS_}(gobWn%-PIM2BEMW& z<}$(e_hjh$fibH9p=X7_8BVHn<~KCOg{Y;OwA946`ykST>t&PoHr}h&clvUQIFD>^ z`psMiu(Q^UK-!ZZVWduuV>q$k3O|Q_GiP#sOuXus{##xnGF(2r!F2b&HCDhCgi3ue zwlDNaLp{J-$p2>Ckq9dE?d1VUD=QALa<>&!rQIkRpQu{T;MA2&JaUM{3FYwlBsf3R z`pcPAgl>KVEAFkp2D%CXa6$y~Z9t!B?U?IP+wUYkjBTzhhCn+$5wOy$NnW!u+ z*PQy|#Tj87Cj{3-#X|osFjIqWDqzwr?LIjjH}?>$#m77}`bb^aa!u^|uxOMfDbuAq8X@g#CShu%iCIyJ zpK4AaQ&ABS1&r$$67(Pr=d3(#+)$v7p0BtA`~*omu)7qkjH^=RwzFX=YOI2}&@R4Qqb(O1m z{c4v!tIIm?Yb)URg1ve3XE1+GX|m$d)mr0iUy3C4lfKTtjG7xL(5NJq0Lkzurczu=*U# zRg=x#|A>NZg1SDRrlF+Tp)9ZWSakva5C>CJm+`FAk`Ch$rGVhob*7mW_R;_AR~lB| z97ph)-akZNw~GF=t~pRrc<~(DeC`q7FU7C=vA49yF!{mvtn(c00eWM@rdt8CO@J5r zd=K8~Bt;+ha6O>i=(O5|{|V#G_H;M!O<%$o;sX%$4P7};{&P^ZdAm$DHr2IXtv9bw zWK8Md*WhG9vZ>38fcIiX?JhU&-6tDDBG2y)1spiLyPE@PUl3uA%5q2ds+~LQ6W$m3=~FgL--I0&pW-(yK2J(nKk!*^ z@VnIXYNTy%ecavom7p^pOX05rLzGU=FB8Ts``IDwT=)m%(QKipL%mAsANv$Ib*?25 zTa}R{y3}iX7~Uw`rW$ri!YGZwFlm&S;|S}S7%}S!_Oo*od3#woG|@*qCL*M`V&{U| zzDB7?eVxlJ{G43tdDN@+nuC1I`RYUG=23|gQ^fIB$3)4}HI^pK1P^m5OYpAC`JDRj z%P4%`*DB-wA_mDi&RV!olGGLx-X{nAe?W)w^H1(Kh65sD(13z6beWUjg9=Ovg6#u# z&_x6o8kpgIH)RjuDxKtlBfVGnA19Z+))X`&I>2q7R-Q>&1oBk{SMs_oK@h$`my*NpF1kx&Y6TQDf(KMX0mYmi;Nq%hj|taQ)TAQgSvx z_-HXb^;vHbBEU?d6n%b*152gBc>Va+^Bw-@Ut-so8Gh%w@VM`%9qp5|>;5r;d5{IA zXuoH-k&BCgSN-2_izy}TZ#t8dVmb&t1+3RFko;b!NP;rwRwhB14wV7?*u(D(94xpW!p6VOkc6X0%gV9YyUQFl1s_nA8nMu=mR`%r zaFgJ5AU2E;E|z(z1JM(fs8vv)FE3l1@9yFGCS09a&Y&Y;O(B|3V8M@;tBII=G%--o z@o`)+&}2jBGHPyh$zA$cmB$EsV=1@d>)+Nj1IY7*2qU+>V7=cp zTw4zt$4Dcb8I&b4jvkZ)OV6RRp$oN-Vd5_uv1z&iBG~pGd&<+DHSFPkftxSoT6j6v zMh1dx%eyPRd(Kg0c8dXC5{dxQY3N zH;XF0;Ws+3wJVzSk)`RQw&mvD^=(t%cAQb$Y@Is~k-W+xU0q!!;9tA4|B%m+czl1= zMm?$#)z(jd$PDtN3le(qv2@*et$|T{rzHY8Jv3=eiwRLdD`R{!qmTBX-Q4QHn4~k< zF?HjljuAw4fM2(H#n`bSmm$qhXL8?T%o|U&8Wnwx9QE`Vs{kqqYz+Mn2r!<%chH9M z1nVCV{kPUR|D{YxS;(P_F(T%~(h7D6GXQk_<|C^?Bj+Z0yYS1#leSkW?=}j%^I(Ox zTw`fx%1y6$)VmM)TpcgQA{*)pZ}!fmF9qD{nvY4T0>goz7G5YqU7m0(?L>$~%O*Si zSv2%|I}D-<7Iths@T2JfM3Qe>RElOSdWlG~gC zDD7OGH9No5rK{UIl2N!EH*oxk3w0zsO8)mGdHm0oRcg7+ipAYsiGmKMc3{6iiObXw zXKkakhFb8&MOXUhT7s0xVe7i+>WgB+f`hF%Y=GP7jX5$6fLQ1YO{fHPt zFqjbxp)Xi00?KpRNPA_kREgOH&O+baX33)h>tu)kEJPUHjgk`Nj<8Y zUTa5AB}`61CL?9bE~3R7kN(zIJXSOYh7d9*M7F(bi)q*!H+H#oclB*1@IUnA_{XVd zZ}UZqQaQE-%Zic+1^u7Seuz!lUg85ISub`A!L zY#FHqtfn&yM_+)D`30|XMMW3^TtTAyYkwN5;B*9wOp;@b=iwY zeg&xV>=~Sr8&3KbEx-O&71ue4tcr2yyoR+su3;g{&hCt@nSkeb*p!*rWsamXIwxd( zWw<@#4ApgR<5To^8-8)E?_5I6buxsw%tWkrd~_UfW@KU#B$s|U-2W^4rC<4AUGQ~g zW>Gz@zeffYlR|$u?hQu9*O;7KX*!oTg`=*)5Jr^izGqjlJBbgjY%Gwohf`VYhksSb zj%jA*B&qx$Bs5)qNbp#MCygn&Q{+q3xv-n%nsVc4&RRc21R4rz) zUJ32i>r8&gwL<;ui<~?q=5LSQ>k=*neUcoB^W*vI@o8ay*8PGQfVu5+3GKGV8wjVAtI}{W=_9Z28Nl2H}@Q# z7cjo=iNCLc9f*1SHDK5ddjFnJEHDa`70Sw_ut~A|8F;2B3YK-AUp+XJ zgWtOIeY*P1%=$jo4{|dd@eMaIvp?fueWB}zeRB#s(^qC~=ln(Xat@-N5@%WI!?c&h z9-zbFv&7;io-%raye253v(3|*pW%HxFv|~^$kppUpS@veqq!Tqw_~TGJMcQ&oaj&d zxe2s;lu9x;$k-R3nu|>})FcguGo8JBbPU?KQLizrqn)uDRkeG8bqc@#F1lo`Tj6WZ z>KYpKDUV%B{2QizS85BPjbFQ_;$OHh{#%;f5G;bQ4%cglss3hfk_ZKx>79|Md>Vk4 zOB}ZvlQ({0B+j3NZZhvqOdtfNF_`rHAOT=qKsD*ZhsQ$ax3OX$)bNy#|DO3^ZIw;o z%^34Q>|~yJ;@``N4#XN?CdQ^UPO5^eE-uCP--+#DA~IXGU?mEE)V=;#Wn;t6ROqsws55D^8&D zIA%y^(K^2K$C>JEO}S=E1U6FM9|u+0L|f6stbFx*O7&b)9D*3nX9-cr9`cmy`gNOy z@3TvD9p?*&D*h`xjGABRc5o5EEj$A6Ktq6B%8s^&%62D%F(MH*&4PEnzP>pjj-wEM z8$Ou?6wwlbe@@e%h(R}H>MZ6PKZ~?FeuaL-PuE&-CnB(Xu`g3D->g@@*Hx4bHc<tQ`kvsoQZ7YiNPL_Cm+uij?$F zl=SVys@GMfn@l~mQc!t~{&%A{n=Nz^Kb5*zLz$OXAcpcPkI{OkB=K*Ajs&a=Spw?% z+S=V^jg!3&FN~WBj8P5YJRSyKtb8<=Pn=arkmu3^Nj;82?xHne1+&B^E8R-^=}C?aa;gN42W+V>;%+hgWO3 z0)u(HCQ+c!Z${%vi{Ht+I&84=i5Ke`jjuqTPZCmqc{`m_^r#;qX49`$}~P8}IvrE-CK%twgvnrWu> zX3$gcV6U01n_XJ!^ZO#X(!zK}1-%IBvAumT4gPNcWLQ5qLM*-sTK7+NhArQ}%SCNM zT3W8-iiTpMsObTkn}=twMduh6m6vB<2{^uOu9mKGgO{iH;kqP8=`#0Fu6h{kV~`zp z@(0Dp$hZd$IwZ9#u%!HLeObn=R#ac(#C7$%u%VtFh3FT{zldqoIXK)y88aOJ1anq! zZ;Krswm(ViXlc=hF{dkHV!z-+?0I`fjiopwb-G{W`?)*o%vT-;%oB+YY(KhrQ=WHZ z%C5A?t!Bi1;7D%Kzc2qzLSW#hG;b{6WP$y+R{0R2N@{ht(rdlrWbkAo8M=yFtA*=O zS`$m5*WgvA$!W>SRz{=|>eo(u_p$2O^yRcbQ98)NG>>~YVkh_8{0T{hKY`CoOIz>p zJ}ZqN)_baf|3qD~sxf8XIt#7Ga*8a9^T2?k0=^vO;%9n#*VS}9`0yz>*fus|`OLc@ zb&P?LaiH8yfSTXpmiYU1SYYoc@A$4EPZG7uT_a=_tpQ4he9Z=U`0|j9+aer-fd&F) zib>~rosFEuvi5XC7ZM92>5Lz1F}+X68Hkpzr8{%xOrF(9ER2|9)0JdoKEvrj8L^jQ zQ{ycna#xmvO~NE|=Udw)+OsvWL*WX|ei>BSb$x#_-Cf63y2Y3`6>Ts_N8VEE8$n46 zjE>7NU4?nRpQH~VpqBIj3wd~Uq+|g6ousDS&q?1!G<8}C{*1q{a8RykJ!EX7d*_wc zMJnPykEFsb8t>WlSB$uOq$)lj4%_pHA)#bIn^!xX3i@`j+TU1h_wv*?ehM3ej*{1-poiNaW z=E`?QzukL{s|`_|m@7?Qm^Zz;pQCrz;(f8o_?DJcVtiah+r}g)jB>_dxFz zEWjxo_vzDRaM?@KL3*+*uE5;3v+#uaM>^-&Gt9>cGFU9-2yI-#(uUTG$&Bim`N{v#8g1-z0 zPo+wKbF4_>qXz-`*ppYjI)%)iWeLY-F0-uJ*^Pe-ZAB#sPpH>Y*96qGaK>f4sG!M0 z(lIcu{6|mz{t(-3=B}>pwO_w}y;>c{xc+w*+Zzw&n>RE^ur7=tkxE&=j63MGy^bK? zB2LKuCMNLh8*DlS7O~S>jt8FV*d_MLPGJ|0{bTZ*g5cP?eQasCd0wI5~wqs^951=&ovk zwejfzKYHPU4+ru6?v{y$hKX9EwZ5SpLZ&R=U^*XiHE(`C5+6?Fo6GoXPY7u*q8A6? zvsmVS1va1X3z0S#S>t3g1bQkEsU375CT{RCP_w-tJT=9wFfj zeEh?n2P=lOk4`J8A+Hkh z2B+HIt_ zT{3R-4WCuK0IstvD!oJ1*)g3n6JM{3TTiFfgoajqjk`8-pb+t(IiFGbEx#=n>up(T z@jz?Aga_0i(P%X4!RymVA9&u^O>{dt9!N`*kxtG~|C;*{9$te9aU-R7n+}t1A3)_8 z$~_FBQ9m4>vD*N{=fwOuK02+{+b`tAda1NR8&7i<)iDaLG?DVC%Jvl8(eLv_JpH2HVJ0zJ%n(;vW5qVTtf*tTOne9I(!PJ3DN&$lZ=IP3Fv zGOc;cQJ?TF83#ADO6SrzHN16ME7>PNDct zE75oH=g}o@$k8wz-EFSjm9cS-Kb~S?o43U2w8;6xODAxDDAyGTDmMXB+i2}bPQfpN z)$%_9*>`Ddw`zegcS%P_$Biva1X+oLxk@?w#6D;a^dgypp+y`zp?E)!)tGzxq+uXzJnf++8MuH+sQU8U!FCQpLqj`qK60;(-#@oc+wMmak3)VTyrr-aE{9b$109As6Q2U>8E#!a~<#9 zI|CbXq0kedZZ@jK1w3+pcb~6h+jK98)N!__KiW-HMDF~CxF|WXQf{Y>PHWS^9uKG+-ltL6eIDPv#a{V z(&q{e^E4$1itZMTAHE{H+xm0Q^P3lG{Qcq>esHaELEVnYzJ@ST7a(RjL$O=DQZR(s z-&_{cQk`LRhjD{wuH#ZSm6MUVwNVD;af(|_b+ri;CPAT=+gk#Jph0f{*F~%!%HJ=- zT4kM*g54di85H_O28kMH&#R;3@V&Ca!=m>=Qp*#sgyB)VU)XPp6PWs~*m&c`bL!*K zk;68Y)MZ(p)MxiSzlasrt_cw`pO~BwzpQ@AhGrKpi7s?1w^X_X->;jkt?q=I#&Z9e zmMExmAtr}I)$HyGYJAe^`p*z2bC=-{TsRd}xIr22;YzhS>{=I6E$2NHv2iaaWHV2i zJ1pG?*V!cswrtM7p~ZopV!iF7b~(Wp5%NFxU{|Yyn`vxr=I*5+Bdf{Qt0~%Q7cu=J zpaEU2dC(mEu?u^~eya0;wesUbcleA6D7h+`2YyD2dkAB4_W)z?(y%|=waqG7ynXTF zTSr5B5l6N!UuLb@KvxG>*vELH*T()R{Z{1m<9U98_&k#SfyPByxoMWmzI8_Ed?)f9-a+#Iv-HyBawEA;Vh$b z;Z&(s@uDpEi7 zCRjbi7y8OCYNomsKC8d?oR>&L>kNh1*{U${pj(py$|@7VoUNz;|7zePkW0VOtI=(v zvd_;@lT;?{*|3xOOM#PWep)Q1#|ir1n+mbex2SDEuN)o|6Vxzu2i;%l#0l!Ko0tgJ z-Svs(kUcx&Bga1rKDVQKK^3!v7|++mlvU~P?+p!M98kI=fAbw#Ht+gWz1 z1}WAW@{X1t<1xXlnnC`K#)OIHk`DS4@X{bs#ZX2ZAtVpMN?+c{NhgM)Ys|3e9P+A*1V^bxQ7qgw|llqkqxtNV^8Se3AKu%%@iyF3@bO?!H7UNl3@Z9jmq(xG%SFzLTcPELCD>LXy2Eez(fVpv9CL62U@A9I!F)}dFL zZg{S}O;^jl^O8|cB{Ft(AgMU1v~RRdLgNrS^^2F&p&#ZgAkGofEB2XF?_B#`90NxdsnR#IU;11`krPe;{?RGE#>4kB}yd42XhukL_PnCQpX$!+nq~n zza-V^9^%fJ=yD1OM17GAAYaq<++QC_yIx*dd3UhDQqIDH4O$tghYvp{B`JZN8C;<( z;INepAc~lm@UU3})5~NqZ^9Ih-}llY(#D9F{ocHJu06Gb?S|CJ&FewvBrRo?hQME0 z@>ze=8kGkeLh+1rTXf0SxCHW|BIYKNTDYCJH*dMU4%&rnrA?lAnO4xo8{F*x=dn;! zB@!awUJI!SD-Nq{yQx&Whsb6bT7OE&gv?N^PkRSb_g~Qsg3)dtMubWgb}|)oT0{ay zCszHPhEBKI``S?)Z`fYQj?>wv?%*PHlvcM_E<-nH&kb+-;L1bZ8<}$=Zh z(JF=#aH9FTdw0e;`s2vfZL(WGsisOlGkm}1j5g~=;GNkV%KvtaqrF~=Ar+5+36R$G z)+Fn6Q7{Cv+uu2#%AfQPSO{%yb9_$5tY}cihvfjYLqeL<+tKFiez=7!0{3L>!lIWhmvg9{o=9 zbNutS#F43crL>m*=6u|VurDK!Bn^qk^JZ2&EeoknKs9|!PzG*^-l~Bcx@qw?>SLh-_JT;`9h}@&%nU`?^^NMg=;Zjo1-J>A*bp3?6F2)i5)w&xWH-55s;LEM)SaE1;=b6~ z*|8xu4id)@>Q{$t8)&s)N)hP_DXVo*)CVU?KYXYRGCF$Z@McI|kJv5E0dp;3qUW$7 z)t>(&+)}pKJ27$Zo+zJ0)2j|@R(ne4d$j52BH}#!q)f&t#J~vmj;b59Js?W=ulX`I z<@G~&eG@Bwhtn^aZOeo1$MzukMV(dbwyzc!nU8-8_qy;*D_D)#u=>$$VN;w49ug0t zOqEI-9RUaC`2)ee?&+=$@6KS`uxT2l5666xdjFn!L(4U-tx8HtHc8u9^<{5{+2!C9s1KQxxe4XrI)6VBpx#QjU>L&pmir#0Vm9bZd(JRSn>C*ViuIYEeHGKWv89e z)f#>y=tI8CDMUyg?K1jBX}z?*`Ah2m-+UVz8@bCpi+5=cK>~95hgIb2*! z+xbmOIYvmyZA<9dwYx|JX0vyP|8Hw)iX0(1lR=InvbZXaae-r0-SeaLc~rhoOyF8= zeLbeM(&9h~ndj!_3c2rcLE{eNhMA`;cb!3jQc9_8*S0fLWFvowH%fWIfpyGH`K*}v z&h(n)aeJ<2BHxJ0ILG)2{}FwzYwOpCHiXpOL04Vh-(V1Tn0mk7!ui2`6)jasp>ubv z;xQhw@CL&b%;U9Vm%jh4B6}aFA0444ch$7i#@(JVubfVJyh}>FK^Zw4`;{Lt^5bxc( z!w#p`3xq#f(Fw}<&32JB7#_WqnB8y&2%ED^yHs@d$g2j}4LLb%%LYVnlK-sT`tjqI z^?$aaLbEoM@>JTPSOK=HlPCN0bKw?>c@;tLWYqD9h*BN|lcy|^k&;3Oey;~VVD8}V zk2(Q)6+6A^(|Obvt+9F6EE5~Q?}^`vrHjpLUQCy6Sz<&ch77_~_3!TJB!!)cn0E7p z4jRu-N-~LJqKoB{_E<}uX!eYLG~YR*Sdq48$xjvHaBuSW-FBRMe~HRWhb}BPD9Fcg z1=EsQYn~FyAWb3^_WKpcC4{yM`*Kp&PBSZF_m4?6wRKq-fQVNR#MwR59Q-pcKok=c z62h_Z3;R6La}E8IG7oO281cQ{(@cs@SsI}u4()i9+_@s;^eZqaFgTd! z1z=uMc6K@MO>YOz{^m+!KBwV6v}uDYT5vW8e;Ll#HZFq1w;pe|pRBN>EoBBO0hE@t zm<2)QmCDX9k4p>o_7O;b$$(SPUb&CzkM9%wYuiR#Wn~JtmM*yOs6F4unvP#r5GS#= z?8h=k#UiW+NcaC>+ViWD0kMdq4QWA_t_n8HkqM|jK9atFD9=qRLWdTk(g?&s3K$;-^2!cjgGWwHKON0E#|?s>8T`!ahZ zw6qFG`?F3z5b|pRF5e|Bo%5(EXO$Mt={7uaHoGxRF&Hj)sPTa@5QDh4>2B3bV(}2S zPv^c)8o+2Snx!6J8h#bNw_klfTKEcYB|F@+y6&x430RUy@A+q=h(cp=7%z$-yO3X$ z3$(JnqU@dxyRr%%9!CnL&4awE#G$R1oV*$g5dS5AkR)v#IMEZ)i9SEH2VFW8PcS^SmJib+yNA*g>`1@1VWOB^Z<*xMS?-j;{ zqAiQz8GqO7S93KJRJ;2TBz##VSYrIq4HJLE5ykPsti%aS<%_hkCg*5{Uwww7q~h&Ak?zd!1BGhJ?mL68 zJQRK6Qs?Naz9kfYkH^dk!@|N+%<%E?2XYL9+k$R?m}r~uf4<})M_f5Xomb;^qgOm# zOsPTKGA*@JrBRG}_4*y=-?gN$7-yru}zbTT9yxSA%x5NAH95o1(qrg z!M9rbD21_GtZYBatf{me2MnS0BA0;IcLn@7czUVn>2)Ue026Y*`rp^+9l)6(iO$CA zMz=T`Wt-TS08ro#WCj>z6GvDMlR*|j+Db_P3wq1bS~beEWbph zGkN6N6sOw`tUIcr%`zRO>5k=LykLqr1VV=%VmmlP8}~{M?QDeGdg(+jAdk)d=N(>! zcW4ff9cF(amN+@&0o}4VvVC%_JV*uUdBmf*lhFuNiZoJzNSJ%`K+7(X2?Xt#**NQ) z5)#N=eTa2QRnOh(-}sL|Q1*pFsw<;-kJ>Pt=SA7($P;R^pj|}}o56X`{Q~CPpM9>e z(%`}bnB#|O`3~A4d-KB@PtX{?&AIgs{F6sVo%@mdB0ZxO zWo%qyoCNSS6jeH^X*k$pzGtlO&%3xEc?c_AKisEt=c5Vvxvd}`)?GZpW%xEfQPaxD z8_R7o(D|E@!u(*b`%#(8w&CBelq6{rK2vY@uuq?!er=zzJJK70A-0U7qWBVDEWc$lj9D}%_4VuDO#ngX_MK1XF-%hk z9cxsQIC^^c3q*Wd)8R_4doic9@IaXdz=c;L&XAS?Ae6!Ar&v?T5e5j|Na*i>-W?}F zE8!Urt^7dz4_`dH>SXOswq}i_A?$E3e;xE#Dfe5Vx3eRPYov<=`8_+Kv?sa)8-}Nl zg|dLjCEjcsjkTSz*NRf$Cfa;^w(D#6wuU;T^9j$w!T1uj?hM(7sMRA^hEz5kA`!=E z#M&^J#%IGBROnB{r&FqjP1A*Ih&g}&$n$|im(Qfr8z^(w4+LOHK}YBD=Sk9N&mXYO z$c2e8semdWpkT&JZW+LR<~8k_e%AnrHF7<);_kb|OR>DB)vt-gfuman5v!1>TD0o| zI4Bqk2!Jxm0EkRl4!x?F(M^AUKWU9C90A|}90$ek{%ZJNIeFN{)O)WkIqe_}(~KvF zr8Zw+P}N;U0|O@bFYvxVns(o$?tc1s;@-Lz{SPvuOitvb#9b1{)In0YL(PozOy>z- z3N|#nPr6<7nQgPw4iy@eA{N1O&&F3{(J*Z(rqF zvg_YT*f9^9p01Rpk3kS$@CKDUJSNUOGaPn}XoOC7<$p)@B#);=_IVqKSsNExiF?Vc zlsFC5*DQ=Wv=L(Vv+{J#<34bAimBnOh_bGw{1)oe?k0>>pjS=j#pD#U_4>cRK7bhE za2R4n?4Epu*!onc* zT%a~I)sMZH?s}`Nlj3XZiP+h@&(4UJ(0u$eR>n>B)c8`NKj zT<3$YCtL3`VPoCc)rY^=RC6Oa{0Pd8q3DBaa;>?pa`c7M$O99TTaRBggB1i56I17R zISQkWL=SCqBO@cblcOE`m3)-)fV(p_9I=eL&hX@Vv2WDdn zwvO7@cn!CIs;{rE0-_ZOx6ZX z&VhD@nX7Y>@EzvQXNOzfzFFRcAG-d#gSq|1t`0@rn~mRXcW#VQT-uO^zQPd7k`yz^ z`}d2s2hH)a?WT$jJNCb=@63$n2+H@SQYb61 zPl>{rYf2num)45U@1t{Jp3~75iv#HzSp}{R&O0y6<30u|%{!b9&&2)+%PnWSY#B{X z9v9-NnszLIibM2cwkQm8Oe}Hu*xephAbk9NSua{(Q57AmmZoW!3j-j1U066aFz~{~ zix&Z)V`O0o%G4|bgn55ey!6K2yP-1XC}&qHeS^Kq>_Ai&wru9$q6a9 z6xc_Q&eM20_`MD3KHufwBh)(jsosf{==q^%46LEB&8mqvMR8w#*R6Mle<1J(A3!5b>>Y&UQE!zr1#0l^9O>eBy8DjvNm#Y9SFlyV1t@JGS0g&dZ! zK9t$4iDiRW=sq1w5Yzx+MkBBFJ;~I zNQ6k;)W&0Yg}}V6g*{GnF)941JKVfJq}dsZPEJj=VAd2|GBH&BH+|)Xq@uHwI@qW8 z9z5c|NxJbKbGX;sh2w$g&Yj;-@C`ST+q}?R@{pkMb`qFRiIn}})HW*Gxp_uTOvq1Y zxZ>DRc~iv#(@%d-@$v#F!2M`*CR;&r2)^DMl(>16c;ArzDU#(nYt#JEPB(sfl3cWd zlJ9op-d0uffiX7j-K|;ZMt*gFxISy{wBoxmwDKR_NgIQTV^vjEm4R!4JB<5YE%v0< z-W`QXe*ECub+OO}Ng0_7m`TMzo+(+Bmfa&$ufMw*91){al8dC|2FEKwF39hjQ(5v* z*g12GipEDrQ)1>UgZDdoXW^!6M^Z^ez1SZxydWl4+ zVooNST#;Uwkq~4JYJ2V(6446Rx~-K<17WXuzx!WBnD)s``rPLDcLz4KsE|Ndy!!|n z>v1Lk`zhwcG=g_sT}uEWI8)>8CUU=Hzt1hz$``S-D;~bfSHl%OY{hNK_%oq>wTH1_ZXi!>Ua~MM#Ad9n-sD>V@O-63I3JeV6(=G2ObNYBmZ2= zO-)VD;oxAp{#UPffg_dTaj-3z(9W$0o%`vPs?{wND@3g_;CyT7>Cu-S_fc)v*3HjJ zGN$P-O8NQBdaelx?ZxMV4HOJMyP?2PmU-qQM7#dnDLR|LGuJu1+1wmxK(6r(l}Vp8 zzqCIdUESqZJA8%1yrmSodSEgpotHHj%SxrChvDV^8X**@jOF_fWt;`VQE;J~@4>t( zAr)Q9S8g=11U?a=l8YQbSK*^3Vn0}mjiRvZV~l8NPslb1+S|t^9N%mK-k!3?U}3<+ z_v4j5_NbB(;NZNYHg*FpIp+G6GMt#bBb}~>XooDzYA8aB!HWPh*mfEBIbSprsY%Ia zb{S(2nSE+-53eA}R*)d^>J#GBnnMKv6))kc?PM)#l^|zmKtUBH50N4j3BJB(smWAH z?UAYA72|JeEta4h%m|Bz8uQV0*?Vucn@*@7kBoDJqDADy zV~iKZ*sW1wX#C@H#k?oEXlAE*1N*5b3mfUwY_w1E%zh1yR(HyLIz+#M01zk+=+{(BcEu4LAg-hxk3+(3M)dNRkeJXE$^ZF6<&J6~s=Z$+cEQ)GL?C97^hT?`60*eWF@%g277 z`Yzi+)@+gndw_I3Z4yh?0aW}3I8 zZD$Va4gQzK@!-QABv-z1*)y+U5(LiuQ4yw{CkOaqe&UPZ{m_>1om7;yf5Z|Jtx z`N-a#Df`n^2E zhH@9YLSSQ*imeQlYLBLR1RX?jeIt9CAk+TOMu42EGODW4Grd3)27UOT`6}|!H~I56 zi7B~Ji#T~uS~MBwQ%x#S0EA z{#g0X)vM^YU&GL6QFncR4`zfF(NXz%Jo|V-tbJ!KaSotrjG8A0CQA8o_cZvgr94%?RE`DdtE;!2! zrQ{#386UT{$Q;b)IPvl&o>3rzp1kw*8|x|1W?wsFcd}3$EkgfG^fjW1%Nnrkx})=L zYr93v%a7#nGkIMR)VgC^U_h&2I6R@r&@FUci`)fI4BlOEP_DklfY8cXn)01EQ79so z2%94B7^H65U1L=^1TnnRkX{c)uNDB;a8B69Wa$;eJAAbh+gp`KBrs4cF4+j%2;URv z0#w%doid;`pd>08aAR^`waQ|yo*qvt>1=wwJ)R?-7 z{H!Bt;qAHYgT!pxZ-4Htrv7f1YgzZ3m+IzCuo;7q0c_f!#0D6>%Xx*A{-!z#u-Bkp z7r4%F*wJ|I5q{5IcPc3%*63947JM9q31(fHLI+)(oFyc?E@Uf}cw@Q^9~RDwS+k1& z1;NWBFA!GhJ7*&rf)|nf1IwUYynO9iip_2EE2iHE8Dk3aEoS6I;e`%4;T}B_O{KBF z75%?6LTBvA;q;ME^(dlvup5XTi8oYPNh$`^7C*nw@YSbBzqp1Egzf}Ffh4v`N;SXc zczH=h23@aDU3wpVm6UzW@#88fX5O|1spK_N%5THyL&%I~1&)1qotjlKuLfwo40k4Tr%vU`gVAso>%itZdCE+p5l9}?Q zZIl)fI0?<|NR8$*<6X1`X_mXtUG}w-(iO{4dKI$;05O)tVs4>5s3S8D<^@2Cc(_jA zT|CCIN$eL%XvwkcR8kc;oRW~Kd$oYL1SLDSRL}Z8O22gfZwk}ZU-08jy5+}+__p>H z^sc5VYUqOj0=WbQ5W)y#_JAl?x8UL76;6LLFJlvURYP);*muxi1z}$+`~?QL&XLS25jO_G zUbK^^nivDjhZC&=&mI8MAP%{qSnpbQ_}34_R+T&@7cRFUkY!7{>v2+o7nj+;=M7J+ zbE^D>EkSs5)@`o2|L~Lb*C=lippMbhcq?rMnvWb{il1#KjMoKA=6aSvPc{z&?8NM|I)^WR zLfq^AGn&3Hku%%EVNpqwETP@e52{cg29HP=F&ighm5I*emS%auNAz-2{J}bHMyPB3wlmrUt+Jnph6J0RaXnFjmeOf|A*B@8@bch6_38*I6Z@pAo^3J7`UZ=jri-!mEUu=+x= z1|qNg-X zt=Gp5Y+j#BoIpy^0JOE zCnbDArGcaIvwi72Gj2;sR{zX?$<$DzY)ASebm-7h-Tr(Z)U%v*t4`IrSy|118JUG6otdh=dttZYo&LNxq#K`Uu=#ua#z9( zvOZI`wo`*yc7XG;#DbA1HZwCbXISuM*B>+N{n-t zl?>h6Hyg+zToby=j&$V|DmPK3U%6Ns0+Mr@rB3yy>l%L`ZyLFF5h8SF&u9!V9%22G z+OZLEmO$PbNUE?Ci!;n$*3Jm8kP4H|9g_9ln_+fO@AO-n8a@`GoT9&+aode|6a`<~ zJ$3c?t*R}u z#yB<4?v@h910kx#d{i7tvK5u;^J&g{My3xr--z1?Wz2`t&Jq|NU_RR{9L2?5{dE)F zf3uH7@^|i(4iO$~KV$u?z${SP-?(UpW?#EBdC3e@V{clhcKEVj+V1h=;TZ?xA3xE( zg72fs>5p$%o7%qjJK5ww`X`x9a!Cs0E~y1l~nRQg?&+iR1vD*2v+B?xlBfPcJv zxMFg)Y`?enJ!FR=*QPtrTLAoguUY}{Hx@?u0^k|9lm!)P^omd!is#A|?_<}7Z2q+$ zaw8Tr!nZy#$arZKO`)!R=&_U%Xnf}k!!UT%?B}|D7MafQED24 za3tP|6Vvrr84pG3<&SaYS6u=q;#2!t;|&rTvC`=W6l^nXkD0F2sm?Erf%@p5sv?MI z6E;RwReG}815NOs!V!LunFj&t0EV9$`yrsG{6pssFc8hQG4p+o2PF|^cZK*!al)LZ zufiD|RrE|i4P#~>ep7%VUxgLrbKvdghbS+<&I%azzJ?pD;2JJ%ZY_yj8+1N6IiyFu z|BJcmTxH++p|2o|dh8g-uo=ur=5(|c&%U^=5DdbY(yNEx*dy6L+a@!Fty6D^0+x-^ zDjgILWW#w*1{_TKT4bx^&kkXaz20c>vrWM|Kxhr+Tvj;-dhItj9l*}Ng$jh;sKk-zR8BTZz+r-z9$ zJ2qBBla%7J_xnA7^I{ag3z@o&T~kx&2aH%&T4Fz3F})KJO_ zSHLv3CVS6r;0DioE$$%#deHZ6(jnQ5|_lp_s4AV1b72}bWW|8C&sCpXG0Z(vG7}{ z`)C;VqvObBdTHV^_MCG_H%93U!kPXnB-0kbP=GaP@p$g$lu`cWz|%w@!xURF=GnBw zWlu!E{hM{^Y7AHp`c+rffbX<$4fozHyzd|HXuq9aVq5k-KU^{3P3}$0HD-=6TFhr^Zl zBN#f%`1lKhjvH$90SDE5B%n-}A2r=BR|Aa3W+LQ;RGJthGcK>JJa$M0wR!1@LrpWd z5bWlbizM7{N_RPz2>O5N<1vuBq$v#*I1w2c|Ffv5s0LWi1~QklzbWBEX-YAJ9_1vHfo-LORf9t2TcYEap!o{}r zFvW!_-B|#RbCKkp1Y}_L|$GiFs~B1PqLg(Z#M;iSe>uf55W}Ge;Fm9Rwk%VhR}< z5%S{YhzIpc#42mhm**enwCw{C2@x-i;Q=5X?-8^Y^??nr{k@y#4i8;#?+ihDf)>AT zvTxD-<&@=KDKeRY+_g0d%#+X3ltZu#613OZoPN;*_bf*ed{Z|JMQ}bk;fBd^Y} zd=)`2&?6VvH#T{|zt2dRP2P>1qz-z3iz>A{?78BbY-VCNq^ihoUrn}HTld(ANLGy4 zUy$wII0r~xaEz$W3#P{C6UoVwvk&~<3RxNeaIN9tUd|GRh&qn-+Xc#DZ@J27!blwx z3?x0G>@We@!V2Vhn72y{{06&c!)(9ZY#OLlimS#x`8JPv(j9F-Z1PQd1S|QXlg8ne z_QF!pA0-p|UcI_Xv4Z6kkgzcrc1+h^r=-?TV^r2^Hxzks@fU6D(5;ZlR=c}}xie{@ zc5TFMg|GI`zb?$ivVWqK^dw_75gDA<-8XHD+u%XgZGqxT>$=}dB7Xv#vcV;kMzf^i zfzX*r`?8m|R?|;@KY6bNi(vXU@;;{t$O)3#Rp&?0nWmr95N#t|iS*?EYEbXp!6Cb@ z3t#Or!JPNNY;$vp5)MV~44D`qg^ZU23TZIj7z{4_tRHfUKAlzl(`z@hu`@hWwj~^} znY5!aD2s_KVPBhT?5+pUx48`GY;#B#!yxcneVD^+U zx;VF=qkEIgfe$wzeMP!-xn|5IS>BibI@fFsov+LZ%Aghb&jc12qf)0q;eTBpQT%^Q zLh@}_yz|05KV!edI&+BL*VJPfT2kJ1J+zSmvWkz7&wu%Y`E~=oiLT#TX++|81kDlb6*LVM) zC`c;+Dbvl&s-4_lZmziD{7nue8s(cy0C;*^EB|==JPoU}{#SVXE|2vd_#fbBtR}>g z7rU^7PR<71vHbR&rQBk#?fkjxz0pPx=wco%!wR)CKUU4B(Vk5;{MKh6!H{&eBqP-m z6@ZYUFri*Z%>Ug4&%W3i zGYM7}Ef7;V>~BpWQZmT#Ky?3Y?UrLP!2sO;A2`q1=dZtgEF({Ul|0qs@j$W#V2dDc zTgV8g9^u-^Q-f$v*z~dmgQDdnk4Y_%`d>_2D-_|HVeOWyFz%#0M$kc9F4Ba_>i9VS zYcgQX`u+3xs3edNE5E*^Y8kS%oqBz9*Zgo3Ha_kt9_FRqE%j}%b7yUx-Brm=qc-db zg@C${?P;xMUKAtM^B+qt-kUOA=}&UL7WTU0ZZ6#VcbY0_PJkGdn>%PK);^$tqu38R z7i1@bsP+2yOm_)KXwX&-@)Fxy*_VW^Vxi= z`OW!54Q`@1o!y;FC6QiH>9WlhOM#dGgp!K}&tar;w~{auQ$-E0rt+T)HVNb%shVk= zE%<;I?DZO?-Y6*PnOA*2b>p!JY{Di(H9J>Ub-t-WflbOlvNju)ajP{R#zOMc($W&5ssg>vVxaS`Tc!BG z^o4bh%+mwUA~Hq+^5cIX*HvCLmyMo|h&XOj+1}Dt@5j`>xHqszn`8HA25>}mbSUgp zdfW1)loLDpdTylF)p?z07*@=Ksu)QtA)bF3|K?9<==Sr=8RH@I8Ha}u^MzwZr9BQv z=*m}x#&%2CX0I}PQF0WVz2D?kH1HFJscYe~zp}fIQ*f=^@o`^XMfRJ?Svr3AJ8lT1 z5TWM4?d~3)BK^=M2TdIjf97bE!B zAcrEnIp!8bGr40qRI5o zki*{YR|Z zd7?)LY*u~2!XMpded9*i<>_O#yY|(lpg#$JH4$6_^#1#>Fzr{gS&4?ENXg`9-W6-) zObZSUGc`o|_dEU(-r)2ifeczV8MEYG`%v;RR$07RRbV>&V{v20i&4CkU>%yLUuV&8 zLtm6nXE42oAG3Z#l$qd2~(>9@9ra#zjx|!N@)4?TA^_TQ!_Ghv^JdkRl)d&#~|W75AZCD z=f1etoGe40DErLBfuhAM*vx;`Cr*-;}4bY8zWo4z*AF4BF zGJ!CQqV!>*{^Q}rkv*8taxPX0pCca_LDbCi5;{s{+02fQnC7YGHR})2VFuWg4CTFT zldXx#*}(H|h30^gz>&9}EQd$%lMHXjeK+ zKPp_jyHkwRAaDJDE2)zc5#|$wQPq&Za$xc#15y=#0*Om6>Ja|Xl9150Uxf%b^1)f#1M%=mj*&+gpr#u!t-{E5`XA}8 zDQY{wCbFvR37Nk%jhM6o5sx)@Z;Q+tbNINFsp*tp!X#`gNv985PGUT31h|SSbRLU5 zEPU8sGGYXh2P~eHp=Qe>ArYPt$43k}K6az&PFcE5Q*ul>aLp;r4=;22vf`3;-Qx`> zk>aN46S|-rdl2B>`;tuHowp#`Ga^H+g!aRSe}}!?34|#Ox%T2TY%{{&2=AfoAQIu# zNTo-rVwP*!?gVE?n#xA%EQoS`m)KhmI;==rVFsIGtOsrHOIum-gCsh?MU3!Y4XLuB zrs^w1;qrC%1*So>(^Fvw*C)IcatNYjl9GF&fLzB68Jja_&HZ|A@opbq1&BFsoHI!4{6)ZQY^g~83DLqa@O2@1O|m1zH8#|Cq-ginc~D> z%VWCwwpakfwWr>~c#3+FRUoD`{f@U!KO;ZOQeAy#tY%VAghAgq_7GVZk4DHtPyj0K zuE+~qu$b=+0d*;2YFSYRTI>V7-H!k|Wo~{=lE-s_X~kLq#=QJ`B+#O8K20?T;JfzF z+|6|JDLb7B1S50RA8Zi0iJ1?2u*V=8_Qj2P+> zbp7bqsIK7L+#Q}ee4(WDMBLnyvtjIR^V`-asBrsJ22R{}z^5L>@hp@M-&c^iv1`J4 zy%aBdcW(SzAmLXTk4o_s5rIJ>CZ_c_r-MF_;2}UvnGN@AZEU~y#f8e(t)O;# znz-aIRkECTy}MV^y$+{JqSUsKm8BXRk#eY^?bcQS5?zL#ms^0117S7 zt?tyhb2B;m!i(j2KMeb*Hiy{kuRTv)?Abp05=X_51Q*5kTlo@``=P&nsYO7uAXp3* z2l@Q;tvj4C*;7fl^juklKa!0~HbVF^x4n@~sF3Tgcx-@UubgZ`(tCUU{=1qopRi}j zHB-~p&t6;GF}F0f%&>Km@RLc~$hfwX>|GR;S#Be4l^g+n0!^(6?vbN&7K!Okiz2wLfk3KBMh zLELCwV|fISC2D>>#){)n-GX7J-Ys0j%=**;jge8>o0!+@punP1+jgaRb>d_ zNE|h}$+UhSG3cx=IhA~#1-2`5>HL-JfU2x;8#DYXZQH7#v^BGGBe-+>ZDH@{2O3SZ z|5bmd;bnz|hGIP_|6`XMDs?C+OXwJIBTghqKO_To{N|9Tm9zBldRJUp4kMgNH+v zVL%-_d1~ap)TL<(pb21b3Mg) zIl^+(J-6%X$OxBJDzxI`{hvO?2YR@S;1e4h=_=$R0Hz+qc&+^H$}n!QgthZx)HXgO zhU4E$Q8g6;Y2Hha=5Y=1tR+zz$hJMCmg6TuU*PBO1YaY&ib=8M)x@Fi&j8`Vd&X`g z6&g!O8CtP~09+^{Fc58fWXN;=7%cRao4q-NrR6F zgwtH{JzPM)^3p+%$979&|Igye>nm5jY@AGuC4lhwQxqCd=x}RKKUv9*56t{T7i?MPDd!qgAOX&-%pOx>% zu3;P1DfUapjS4Cp9Pi*btOj9`jzk0S)((XYx3S%0#n@KksffDv+#PN;i>um^hZ@t2 zxJ##lh=3HSro*Wz@k~vT6wG|~BP-II5%^R<5YM)>yEuZ*Q=MA1Bt^$V`;(`7gqch1 z*2e7VwS9}+qD*%Z32r*n?TxqK6B4#V|8bP8LJ{Ykh9kRrj5x^=H&cw10fkezZeVnI zKfzK$|7F22{$mj!WOtlO0v(lh=1xG{HkDy*tn=rW!(NM++shW$j&Pj=HMd(BUf9|pfOG2&0qGkJ+7CBT#M9G&3vS68k=T_l>BuU>rz zSXOxY&=1{@{<>A#9EP~gy2d4#DG3|HG-Km($})3fU;7zULob23{f&*q)(nWC(utRc zmX6n$>^VQ_KpEqH@ys`Pf(j;loNp;|651VyNr1%psi3%j%EA8HYx;Fj6|KusaYm)0 zSBPr-SN4mTM^$845uy~vxL)9F!2%TUYhv#U2Zra+j|wR^Xy z{yACm1BzfBPO0DOTK6Wo=zls?H1M9#*Gx99&tmymI4g}Ds&%%-`*uVpxKRf^+V=$N z0eqIMo+5g?o?lT{_@p=oh|+xu5X3bxy7u|X+m~(PwzV~O1=8T;>ct$aNmPk~z&_;a zq+UB{lTQA(PpeO8s%L=pLwKc;2b?FcW%2Qa!2OsHm*Zq~IRP#Ki4iZ}dEwAO5~SGv z5;~@XN$(C#qMatSTR^sMHI5L~j)YbJ3=ktA~vH|lGF6pi4o7&k^)8ZvQGFLVZ4unT0VFF^xq|?;&_LEUGVk*keD}a;XPJzM zL*3+fPVJ~a{pIrX{HN*OON|zLzx{AusyH-)Si!mRpZI#9D5O%HG%S>u43A+BSM9Gd z#?kuX^+624VPcW)d?SB|QPo@|j~xSd*NOUgcw5<+M_+i7c?ePQlOQ3+TDHh1C`>~5 zqmQGb38zJ?#Y#<*YyNPxrn?)a>gOt&mU4fq3VXR4zhHdKZ8mT z=8RG9E;n#OpvA5(BoOStJa~eO4+0Xw-q#o>;e?Y&xZ$g-L1LY-%Yx5K>d)l(c&7b^5%hU2$8Qe%FtipGtqq1fNB3SD z(uU?XUkkNh43>=8=t_Dcl=UsPEjDav+~Dd8Go%~4sHrM{=nD0SLqT%mWC|(XkSC7u zZ5>if=kl4#3{2$359S&53#Ns88apb;;MA7>VTAvAmw>PidsGy*?Ct2(z(MZ(}`a2pwxoN z>|LB}BriMzUIwR4jlKnW7|o7^QU6@3p<_uWhB?&vJ!aAr*M7ZLHwH#Ybmy+MUW`1R z4HR~Befb%iUBb@U?c+0!M)^^U&bwKgg+{8UQSSl+S@+2Ys~Ug7v~I4$Gr~;9c}DFc z5=Lw(+@i3z{<%ic|C;`8@%)=>3~( zv(BsfWe02RT@*{X|0ig?Oo#{}{k|C|Po;gS6|}iA^c6NQ5K_3__ot0OtPGjl{@tIf z6o0qAw0WOf`a?K8lm3G_FqCgNI?nw5?1*Z1CMX?#rnCZ{k2(2J&f}85 z{j=dk$rb*YKY4Mg65ko$SoUd)D1k4=on_~9FLZa-;KZq*wl_3f z79j3^({O>O{qU5PGum@fC4tRTFveq3VoySbx8_RoWhM^d^>^?UsD8x zVuQ4?h~8?KP;{Th%)Ds>0&^rJY~t=nJbDqx@T6&cBJ{hk z3XXvUbhJ~&n5FAiSEMsDC?uE0YI*F}4UR#+Y+e1<(EU7E3eIv`c=m(Q>Dp6wtGb}> zsBQc5xW%Tbw)Vf97W5_LNS5|rgv1K5g%s0L#gocav?m7(C$$GJn-)Yl76>XTF^z>rE+zm|nHRd-LFB~Hv=SP*9 zFcqjCp6x+q6D^)=khtsP=U2r=0v+r_X=yMnF2WXV3LXF`B}@mq8tdwijEadJOj+&N z()-BBM=)y8Qv-VchcIosw!JlWlX%5CW~&uE=nbRDV#How@3{*_*x0Hq?2X3H#6n*0 zCu?7mPv3*Ub#{(JR%{m28@HKK|71E_y%l+>fGEF&A!s=QIbw8_T z2McfOuF4gZk)+1j;B|221)n)}>Nem<~fK(!{sEAMXcbnZ%m%X~OD`v$TMPzn- zNy|$h`Mg}8+)$WT>G(&yI4m`Dz3?dKpfhdpBX!agvbj{hrfJnY_$=gml?If8k2{+4XSha`Q%H)-Qql-l^e%8^!1k&7|-)q%6t03}pH4AKkTGFU5 zXM?gk;&Cjd)k~c!aF3qEP__^}3CLhaobX(kzU7u&rvz$~CC19*o zB;>G)~-u(+8~_+2>oTL|z>w9$`jI0tjsHN&HeB zD8e3%W3?I!s)qpMR@XN%M7x!qq_ez0UZA=-L`U6n^(LWms#mAIx`}gK&6%JZ{0PJl z=ghHvn45gnf8~7VEtU%x-a-~Ck_AnOft#%jWYmV}x>Ti{NxxW_Zej)=w)fG|s+z5s z)!gQLckSgmc{4X|&CJYfqYoAPVBNlX9w{BX(BmhxjvXimHKxB3niqd0i#4*j5t4rh z4Fw%(mRdYz>@-f=ccs}Co8fAdy4nYk!o)`ZRIv}H++)|*5+{?)c8dDy*&4HuNRw~@ zEfR@)5gBnJbRRx~7ZbMYv$vnzw1^|RE9&-5OMAcQ&xZHkICuQd>MfO@HqJ>T?&=Sf zPA7`+oFs;R?}%=6LicHu$jgYGZJD=1VtSEy1XKpysvM_8+xsy)(WT@-InUsnz@W`V=yWE4(YZd0#O5N`sJ7;;hnf7w->cZ44Ax2qNOl@qGPrM-&Z^o_ z-`ux9eaFb?_w0!rSJw-?XUt^F+jhVb#%28Wo(;VHSWT)qtC5R|^{h|A`QMa~BejeLir10q>?;oK8nWB#O|@aO8^od#SC zw9+4s{NRO;v;6Fiag#_jRZW8s;Cym(+a9k6N=1q+eiyx}gyN-fC zMO(Ma<2FT-M#dpAfm`bj4Ve}r??C<)T?!1wHm)ynKnrnX3nuOFfmE-%q)&D4-B~Uh zE-<4SbBF~izkjq*JG(>a`unwYHmEVIp?%bS^T7nBypW^_F^AWnho^3zO_3{ z{{9E8kQh-~2F_jkTHjz5$DPX6nfF1a3%wwE81ed)aTn=q6UCR;G6&hPo1YF+ZZ$Mq zgfj!eH;!GFy3(uK0rdw&zS`LdL4ydrGz<$ViChs35rl(v)BFT6@wI(=<6`L{#-9GEX2MM5Ulk ze|AWfI__9SQ9exmM){og2epyu<_&i8%h%mrL-#0WB!Pc#3ApbQmY&Lgccz-1m(kqj zZe`$5qx6E@i2P2THzx}$KSjX?9e!p2ce%E_bn?kGZEb8eTPK*Pi$XDZr?+_(kU+K;( zzjn^nL+WLCl~{(64n)s_Qw`RfCw!3+--mwM@_=?$)Ye?(m*PiBo3GTu*(A%vO&ct4 zDn2)iYv_@`q<6;>C^rxP# z&FM2B=4SDoz7f|l*A;Tl9f_(kkd2@m@jWgNqJ+(kcV>7s#~8v~V7R_aL8N%Tr6T4G zObzn(E{B>H9+Rvr=gWhR3u-_Zf+lorW{*VsmM#=U`|J5-TXV|HXSdxUdrwLfhS}Jy zPTv7Zd`8JSEo|4EqSEkV1Ad6W3%No?tZdbo#ibU6NgY5=`{vdSC@q%75dF^#@5T-f zY;_>1>5i6sBwZZ2Xk%@n=+I(rd{t_fV);7B_QOI`-I&LPV15d<%T`rFGCM%LhqV@e z?Kipmn~hpaI*zQT2V0v5y&D?~WD>}qp4v*t+!62YBRjeOx{l+M-fy<@sZox%q{ij_ zPfaY`T1MYVvL!z!wOi*!i5bTpY6=n&;qaM*-BomE7rfLtez zd^W~xdkX%d0sd}9|KY@QCfRP4LNgYa+ol1$`|E>^C^=_~$U(Lwr!>GP5plUHgyDXn zMyxN$^(%&U1V`BBp4DvaQecf@1tTA_&u?N}yZVfy?&H3wWs2Rg3O^Sb#snhR3>YQfIS zItV#bJF7xTkZ2PW`|^jbu8xk*k|m)*#S%|*Q;`R?Ns*oNDwd&k?&fwYAh1M-5dQ?3ONVY}AV_tG&qhw=9 zecLs!6`M!Mlu17t96mjeGl($;&iC4-`&WYmuK%}iji4ax&M6s zDKKW^1Rg{8GIt{_E@4>g6fLAeM)JAw8#Z=vf-4aVN3&7F1e04E{pN5|jlTSEs{)|T zuy7JmyB8NtzAJD$a|R&ByTmVFpf4giae_@$8U}=7Ci41>awa0>3PWaH5IF}J7Ldt{ zkk~ek%*KPjGi{QYJ*Ov}yu88s>4lzKD^nlC!|Nc-wc;MNnu2HCkvqyeSb)r{g6HC2 z%3-c%wOtfrx=_Vr6+N^AXOf?OCIGgF`$#FkM)|4_hM{)uP%U`c>^Xh&uEeXfO&Yr; zas0mG-<_^l=d8s#aV#7z=;5w-i@RmQb<^euWXQMSo*S@VDDwN8nM>%t%4R1r>YsXX zabQS&2JgLjWpS=Vq6G<^R;g7__NVqz7?j!O?5z1tHI&LJf5JmzT?;+WQ?=nuK8}V4kXcqAJ-O5*P{T(yj4#@BlQbhWUvg z>~g-DIJJc_YE5$T3k;lsRpziglcegjHE}bhcmAKxuUR%HvSK$kf2*CNpMjim>XO`a z=gc!rv1>_l^ZkV%p^v3&mrUj%DJa2PHGW-Uy-l^LmxSSY7@<$!8Q#U=KnepSRqz6h z?1I^6R1Rsyj+~@iN{-G{7k|3L>TyEhh{?Hd#^{}w1`ktF$VS%?418&y8Nc>b8Ns!sp<=*4kwTzp`f$%? zmU9{COuEed$4$D+So8zBR!pB&Hwz^tMKUrn@)amF>O-4ju#guHIqLZNrno%Cxp~se z)wjq)n0@w{nmo_0RZiAOgTp$#3_`6~u{*XlL;*Cg-xG`EGo(F3)f)z0WQkvK=Xfq$ zL_6$#d-^2ja)-AYMNWMC9?)JKcVE(`+8i%EM}E%hr^;iAxiO1M$XS{#+afR!dV{S- zz%w#344DV4ke_q{&U{GYxqbT>w85Y*JlRlT-wL=bvO=tiPY@A7jd>Eyg~-7Wy}ZfI zUrmxB!FQbwif6&iJCfnNcMVSPH@lllsj7v`eoQ4pTZU*bM34{^+wyD&(DIiD9KyRTE_j(bL0j9A zd>U2W2O`$TZ|{^<)Y(3nV#cgoN_X$M%cMbDuy;Tp8}tYJ>dg9VfwaOG??ifoRBm30L= zk<)Z^k0C=m{KlJ;=gys*5|-wKoH5oohYthA)+;bV&IHn|!bY^2j+RPDHDu@(e7gH% zW;+^JK(<9p?&s2bZ#9TwgO~9(xfhBA7-XYue1VPb8LozzvCfk}%5e>(vgz*Ug`TB- z;wEv^9*bq+Z`*ysSswXO-^QrV9BHG2%!?L;h)DTR2U}B}GQXjW4|-RRh}hF&O6}XF zorS+qp2Kq!bB}Gg{l0qRoKs5(UJB~%){6=s!@)Eb=2B`Z0zAUVj5vXeX$;mnkZd9@ zF76!|m;_!lfE0km_H3W2nlRg%Z-pZsJ|U0x84$?PdZ8=usa0<~I0!Ro2_&6bavdUp zVZ;nn9IAC7Cj|W!4!OwcDOmq|?eO(D3SYnO2T)WNwyn@u^)3JYs_|L@H8XC@PNWwG9y&F`5^dMi$9=NdB_3>qA*m|IZg zO@QU(3k*uUNgptZQveMpbQ8OJXgvrk1C=&xw=CH(a5EaHso?L=O8Vd4uS&cDkqFRj zAv`3U%9=0>0a1nT?(U9?WkNB;a2x2kEwFVweDp{Y63|v*1Cm-k`k1_rNq7ov?FA$S+#O$e_HmO3XoMvKkT$)8G_4`( z{NSZ>4X0uH;beAM1f@gtPUERSQvUxj9u!N)wzj7jjY|hd-Y$(bkxnZhk+$v-X{*z; z56DW_V<|1!gXi}7p&$;A5o-P7yR~h*awI-{lMbVY5Wzc)z$n}75JGd+wX|$R zB_JVgfPKSrfz*9~TOel%1OQy1RfEO#yp!U~X|{Hk5*$2&)=&3{W1aVH$rwc)n%h^Q zSNa896f(UBbbFKFZbF>BZ?@Qw4hFf-{2!X} zXz*@O#nt=+ct(v86=uR3(Fxvz(1s~}*=!?ctYJMSJ0F`)Zt+3cqZ4M|c9POxwrUU? zSWtj)uDY)J__IxX{^=V3`49E?)L_Ul)^fS8kR$_~+2pMA4rym<7Q2iR+v=GQFW(0= zj4=^Y;048ZS?!#)p4hz1Qo zVPWCx*RO-?TVrd-m|$2p%rF9J#38N%JN4#VPK%D_I$xSMIexI^TX{UYBm?K{2TYuOAN1=#Ov}bj@4-^Tz z6%QEi#Ck|SPcO;S(P^Qxd35+JfX%gF zgZ8YTGY(HdWgky3tl25Uf&f(+xrTkA2tJUK!69TQ0!-u)vT&2$J#2ZlA~iL2)ZYhi zLC8F1hPoR>_3kimEL4vwNdA|DI>rL92-ruE@r4kM7?&M@K#0g?_R?tKsT;@&vi5Y+ zleg7sS2j1^jrISQ6^QW`!7B1X!S`3MfT;2cAm-Ur$nuq$hn20oWW9%ORO(vV&Epvv zZU?gp7U%#4BA0;Mhyef9bN>;^W{P%4bF!8MLkX3dYQG%LXm9W6WR1Htymh-XXCFS~ zau)TYo%q;LEMf$s&8pq3lE~Z7lJ^w09heYd6iOQAmmgB01RYzZ+EF7Q6OhR8Mb<9l z4>|3E_7$?=>sd+*t!{HcXQ)Yl{#AQHu%dWv-I@5o^E+W)2@^D2^riJ|%#&+#O1#IT zBkdL-@<8z?&3(U25p23_a2m`L1>>rMQPIrhcpZi-fCK=Q3U_?{da8mMXv=~^Lh#R! z&cYZXM5z$WCO-|0PV(zhTNjI}M7=ho{5|Qi9KOT4#A+OIxI5K{aXMP0{E@iM5{MlbD0R`3vj!DY@^kC9tt1xXWx`?%^*JqdIlA?t0Hd{(4Ad zwsBdE>0y0WuVo#(b;D9`PAmg?x|02ZGl?IOn68?QvI9pj(h_;0J32a^$jiF{p3BBo z-&vcHlJfcM>09%MC0frfW&BP)%EWOHQcNzXAxqkx5O))#j? z37hBjW%+d}{vTam9TnyNeGO953MwEaQUcOQhZ54DfCAD|jNZ_2}Y#g|Y?)*_l{h)9^ zq#Vb<&lBgph{xZOl6(O26*>H4xr{&;P+t8tl#$V|Z8bq?Y1oqTME^AN4gP(T!8oPC zj5=?e0#LLoa;iXO5ercIH%tJU$uY72G^*viFZBq+y_~n)_-vQOgrPo(X4fR_8aKQ7 zb&HHX9^-F29|#`3X7yZOAl_e#I-7KKv4ULau0t$j-8btTk?lRAl9g;GEvbG2jB#7! zSXkJ6QIpX^UQ^DiGa|fA7flg~`hDY=OFYU!GuJC-NY~>U5VyaE!qRFW>{`!P zUzC?gf&H8ciYqq`7Hfq2n8>za^W3iw3NMtoB1{+&pc3m))hYPJvWLQCI#35NKezp1 zEGH`~IV~*>i{vjABWEwaAy{VooL|Dd_pmn|XLPVm{zSb+p?Bm9<1VO679cb}RzT-S zr0m6v!qwfuKuqT0J4Du}m&C`+PXxPtaK!xzF$ML#GzUWyY4+56A7`0P&@2rRSErr6 zG05DP`~ZRekh%u{BgLcabu=97CoeeLPa85@XBpOL^1`uE=;| z*!7p|j7wzV?l$@tB&w2V23sOZKjKcT=Zz@~S^9BHG5MjZU`UcLXA*^m&VQE5$Cnj3 z*n?TBtOomzdyYjr2U{KfD)Gy$_P3C)s^=t2Hgcy+a_v;Q+cm3+^eZs2Jt*%FU$j2r z#Jq~wOHnD(@7Jlg2Ap)Y$3NNA>?zRUM5WE$y>ZvWL+sI`M`%zEfcNgOr4UF?U|$Um zK1okcCvpnOu2>aDfoo``#jpo9e<9!vauVavE&T|OAGQqVqL z*-ZTUmjj32-!#0>A6sEd?cO0sE?%7FYH(S}+iURZ96DkjAbR#JHG^5(i)0U};sM~1Mwu^Y9D?$4{Fjf`&FCp&nP zuKBG_#d>mF7AhY*#*W}D;TN&H3F$>yb}_LD=RsQ1nNNz|LFC8B^mNu^Pl>BnuSTWF ztErJd=H}Quy7pxvf8x`@iMOk>pHmQOdV0!wdenYKA45X!ft(O_$}xnN83S$ia4w`b zCs{SF;INmIqP{P*Uyj);FWC!Bu{5adGh_$gfa8&F$^8=^5FR za5?c~U=uuxCI&_3`Dfa~Ix)0OmhySpjz1+WwpmWvc;y7e`=yM~PYwDiDn!xI(VrqC z1%xePm>_Qhm6_J|QE5^#1&1c?qJ%4_+Gs&K2U<-6F>(Bb5jD!h$j5YT@s0HKG!v6Q z$focQZ`1CrlM(aYa6}8MP%7q*e_JS$vvrVp=b!^q;+uewoqwht zrrk(Arud?|tQ2K+HXoCzSnUEAH`OH~si+gmBS|I>9L##`AvO#Lm2NZ8xgd;EaD&C4 zS7qXGdAPQQ@1VIVy}_TY?~*_+roLiwpU57-wlTo*= zHdT)(cNsW}9CS1XnMQt~SiS}t*d%%D+o4s%Vtt1rU)@ZYxaRylYBL5dE%+j^iog% zRAjbhTXDs?fkLc_1mRV078PUI_OPUn+Inc@i`TV_vIj-qsiUi#+f03NBjyr?>N-e` zb@pmH=&kzkqZ>YFnj4PSURG$ltb*}N4$<-c4=zFN3>pDOB)v435zc2qHxgRZo}fP5 zH{Ksv%j}q&lPxwWs+IZVU$n)m(X6s%=}J)#;{i?CyTkN?wpa;*|SSxOQyK z_=Wx6lI6BP@8MU#GZ?JM&*y0u+tY=r;64|*3BVHA6%aT9#jrB#(j8OeC^~EhZEble zDGYcS;o-imGhcydLNO}K%ge^?%vq|6&Q6onxz2ZQTp9;&5LDl(5>k|XkQ2z$j^mxp z(br!S@Z3mjo*a64B4W3{eneq4G5GVJ(p}*%b8lpduqmqkJyk&}yiw3y4i*W68HQZV zK>H|5NqHw91duZG7}lc2s>=^+SF`2c>7bplNcZ3w4`!Bnw^RSBp+>e>qTZl-Us0oJ znrUuxvY$-eK9zd6V~0vHX=lU#1SinmfU{eBz)6!bJvqGc&HyXp!Nl*Tu;%n4Cpzyj z)6MvdrT*|<*Rxov>|FEldIAi=TE1EbG@|z>Sd|zx;`>J_m!nSxbLhh>kzC4eCUPQn zmFSfO?Qm42e8mEYVGVV)^YKal)ib}DvsYTfNnef_ z1UES3S`de2($g8E?xd$DHWmdeEFs##O`}R}(jBPu+9WYZ9Os;iccuaJm>XB{@@&S$ z>nFG%!WfEZK9>Uh+jwr57Op(f&=}u4vJ<3&Vg&NF7lukWArF{`x)8m5>IN=6xb z@zBaFDvSnx%%F*k3YpO^Fng$`cEP<&d#$!31wpe*STlCA>WpeKz=`s0Apc+f3v?=b zabd`Vv*Ek9ELYz2%aW}aEq-)3bhe_jF;P5*ZUsbOznW={)QREb;7IX0J5~04t@k9_ zD1M^PcswEaW`;@T-~)7LjyGc}KA5Ri8%Zu6IURdi>Q#Ov&Xpe!F+R8guD=>%J{%hY z=GxluYDBnitx4Xv^jY+Q=XxSx&Fdk{K`a%DRRSu%;_i1;L5P@r$?BX>3q+@blf@N& zAB*y93g4GwzI4!il~@!13?WYUY(3r=ci7A6_{7;!NH?jhOU^MhbWwq^E&hHw+vbvn z^J1L@(nsf=O`Vb8tqe9KU){6$H?IQ?=VN2npVo8P3RT};!9s?NN(ov{+Rh(g2Xqg4@@9<$lFEkce&( z{Q1KtuA`2zH7g^&hg#!u8ISbz+OBHq*1_yIlp=79lM?ycRg5T)W|CRJZc0c{k&%&^ zK55>3k)NNhRpTk9sqexF5!V;sQevl8AAJ3|z-UblCDH{lst$sLUaSX=`=54rjw1n^ z5+DuheQ;48wz>|#Ws;JqPgkpNIz3+~&Ms6g4-EUiZMG1+wmdzCpJ{NHH?tzryrvsJ zmE-smdB*qe6ENmbR5@ez^Aiiq+_%kYkVNVap%Gt|@f!A7wLJ>>++kql$2mV08q8^A z)idZl^gdJ0IhEE4`7uCV(4je=C;mu)=FaP43VEGt1USUk=Bul#R&9q?tMyAWaCLo zT;VJI?=CEwqvIp;qfsq1{vPX_8s?$rM7}5>fD-MLlIb%f=%R{yP4m=+NsQbCa7SO`b2+m`87An<$oz zbscYJi6^iPH-$4h3ZOJeGc$RRgr&FzaFBJmNK^gju8WwcKGldFesMigaiTF~ zSC@gat$k^8Gx+k^_^|KXeMeo>&!N(?H(RnzVnYKOB)a*&6Zg?Ny6G7Ytu9JBvY!~q zu^9@FCz66?Lydey@WE&$rl*68*u+VngdpKuRU-BoYU_gZk$R>mCc_w? z-LbHGBg3(+OUPOyX_}>4o~PYDi+-07G*;`-A~D-+Ank2+MT<0`IWrYQL!x8kyrN-7 zPL9<^5XU%GkF<{WY#Gk)a4oxyE4`Ib2-#g(E--4Ry6Ag7aisie1gHO0a0$FH_%vw1 z6;m;G!U2O0+;A=F>#N+lQorC38WM83AU}Z`s6*%u;V8P{@UO7zS4N>m$pCTB&*DGL z;O|yx1^u(E#NlO$!{5RCkPm{I(CHA{qXH;c8`A2wv$KN&c~f3zN3`&&bzihFqV&Kh z16@Y(e=5<-h$&HPoSNteWRdD8E%8~@&ieBj;UM3Q?@OX11z~%-{X?L)0h9v$@qsvn z$*vOYdomc6hcXULRmJG}qPC8nQw3eD+v~gIB~o6kLiinZ4Gf0Zx2a3AJSjPlJ=27) zvR!Otk?eCIPmrQ!Bc4eL99)*@>wuK0+UxOqQ>{MJH9^JJYhQ#QK)#M|Rqy9NXE zKEam~4lF?}<{#nQYl${NROnR-J%|y}>P4Pn(GcN8(Fr<87&&@q`9dxOg678$Xyol2 zREi3&@C{A&-(;jzIl=i?`G< zR#@sa!*lb$&ixcKSakEE*I{?!%Z(po(L(l2;5CKhYxB0@pw6xYTUhbagAT7vcpI^X zT>Uo(&O57cL#|Nv3HU-W!{sL9n|$!ZE6Q!wdd?1qm`cti8BF)=Sz2!?$KlR-_%D9tj*iCh1I|VmD%tXpqTaNy zrG$~8Jvv2Rs&pc4XbGzS)lP{F!rtO-f4UVPBl59+ebkH4&}6mtr@X)FOM7y0afw~b zdbgFfmWAw9lf{E!GR`|I?pG-dS7$;9J?Xvh zaI*}jKFd|c2=}-e*$nXX=VQ5U=iUiD-y4327?e9%B@CgVX*_;RauE|m)!<^Fo87yW zkk~pStTniGbOQecc1v9=XN?kw?_h+>AfqxMzM-af%d3SOCXd{gbjBui#tyHc5IN{J zW&)TK48biOP4@O0^-JD=r-K_fYQ!_xwyM)o^4kYf!kv3HHdbR;RjAWe%t%DwW`i^m z@TYl(@PsJ|5SouWSqvFhOmmHEGT$wt6(6D)$s_i{qo9fE97(Y3TJF+C>`Qs>V(p@j z=kGg7eWed+PiQA6kBahYO1x?z zc;v$K6N8iLpEq7uojr^;-0XQXDj@soehokMs-3&1)gRCx#a3+*efp%8NGm{uO>~^#ke|Lf`6opF66^**(K$z0R#^t>h~RgTuYxW37_*!QO`BsmGkfFdnP zO445rck-h#)qMwFF@)H$kwnkyML8D^EtyB3S<|hY@6=r%v3wY#{EltL@cZhLOa;`M z$>nPD4ot9>){_z4<0H;6%?0$N)o&b}2TWW<&_BVxH&=cgG?}me+{BBpOfTZADG;ueT3eYc zW*OjT4%=;5aNv2?c_RX{ff3cErBRT6xWJ^fqMc8jJ z@q<-`q7&m3-(Y7OH<51K+0mFzEU~X)@9ol^$2!IXU+A9I)Aa?AV>fAZ9+l_fKHjDF zJo%m{@r(p7qY!9FelVbgqBI?!<5iGV=G$47HxDI(udG}f#XE|5IntNXXEY=!IMLU+ z=g#)QvCtkC)rjMGLLM1G8ll7p^xczF1qo}LL?L72vwSglxNg6<5QWTGj- z%quz-Y|GT?FpP{6T%mq$0{}qLZT0w^?lWFa|F#e-VBU75`$g35-p;;MFUPF=^A`Pf ziiq~kRsGm*c{d*0@w?(M^;`}UfcHp1S2@e^hdq3ksQ9N626z|m)ovNz5aMm#H0V#uz#A8ayRHT zZq&7QV{(HNQ3~whh@*uhH)tlwWrj!8$J#tege=!~AxQUQ&zdq6oRhibNg#g2#y4X| zcgm`@Zqd(0sZxp4<=ViJDyK8+P(NUfBvsXl^_n6STobh|T2j*&Ye56IY+dIc~q{eKypTj2feLc8n9XJ&wEcT z5`i)!1Gc$3`5*7_w{jvOecT~ys*4Q-S0sV}5%FS6X)P z2^I`@cC|+{i5{lyfGpD2$cgfNH-(!-GIVL zuB?m$Ary*OSqj75d+%+~;eYoE89_vkbkM<6%g0PY3#)tY*nB@zB(WNvw1?60Hqe~W z2s1l08VOn|^}T=_dC<^GgL0+%)SOP;ml#1qlR5{W>H3gUyX*3UE?oKCYg$-KU)G&-?Ks}o5DOE$*HZ~8zQu^8 zBHVI_-6>>mSntzJcpvpV7*^fa+{Q3+vkJ{)nBe^29NRA7EDa`FCE{liaU%TUhiW@@CH7!iq~U2iq|CHhAig&Uod7w< zWEw}e5zW&BF0Waqw7VlIdQKF#buSiOli(CPbDzF2xb5I(PhGdVh$fRP{!W3Ov8uzl zS3v(~M#seX0|L(DJGEU-TZYZ=MUPL3T;K424SXwi`wm}irgraKybAb8?rQpR69}%} zoEOIxuf|chJ(@c%x10TDfK2kV$o3e*_!^kt1mSZ`->DzrYp z!>pM$CmaPQ|5N=NRBsVXA@p`4!?L%#smlTDkBK-8>E*MPwOOZsB9~Y7SLF1K=FMvB z>#eu%sN3lqiVbY04lDVDbBp!+h(T9IvO{9ccjgb;_v*S>tytWvkpldr*v;pch89UXv#WFDBa=MzRgE)a^zEwH5o7fcq*$ z@2PMV*{j9(2Q667oq8L}v?6zb1Ux4jpmz$mk+ft;8QK<5QPn^<2zl zv$b^t5dL}Tb=eW2YAS|c`TJ|m3xt5g_+DSpW~JG@{tW4s-ej zN#4-RQnxVLQUDql!h{JZ`7<`Dt{q`5x=Npz z11G$uPbjk7vZQ|=cp;Y}x8XX(Fsa=BN0sL=jV zcs->i(vA$7W^niE6HA_Vg^cQ{PdJy^wJ(S`OGa|+nn8%jktU(vCU#VTc=?q6$psz~`XQ9-SdSpxL49$@$x_(QB z+&Ovq@hAosV;uhwZU5^bew<%5lY&E>-xliJJ}NNL%s(BKUmAZ=x4mGyR@FO;G}y@$5I0W~e1n0o7g$aK8+YJ06Qb{cVvU_Fx&DOc^Y`dxj0bea;3 z;MUqHr;mo@O%R!$L247L?0~ohAYc925iY;+Hh0s+{~(> zC?#U|P2CMRR)D1gYhs{oU?x@Aaj^jMEjScn5s{c?ZoD-ra%=r5fVLm4jW!;szga#)j)o=9~-Q{v?C$9m?6=NAiP# zv>x;c5eOCtA%E^?(#1-Sef$hlgI}6|PG)N3DXVk|UHe(YAaheyH4@8S^`DjEVk6Sfr?B<6aNw39`a@fhew@Og-!{R*r2;4!T) zW5}D){4B>mIQ32B{V|x4_dGh^>vGz>LENv-);jSTT0jeKece=5^LdW1b}|(U@C4$m zsPk?qy+A&B7yH69e>eoRG<69AuW2W)_28?B^;C;yY4=?a+{JzBS(-flv(*aQh2)P(a~&vw*v6`sqTB1cuim}GgX0O} z%;Ee2`VDHIIhcTvSS-T!#wMHu&CE=wB8L$W2>$FVWh1LdnvDE}28{na>$gVa!$Nmr z8NITS+b3nRI6WS>yC8YVN0#QD*-7)j*P}DXKmww?El^bv&{qen{^&Kr=;_xDwH+vX zU%q5XVy^dDJ%7v#?G3cMw8NgvF9eB@cDYKCvxiUe+Utueu4v+M_>ZoV1pM4y$hD-< zD!qq+7A!%-a>&R;vm4B|Bzb$JMkpuukF1?G^_TVEB}t7j0>AG)@*wv|H>w>zo05wc zDWO-(R&)@NdqG(m*Q7s~MI41G8IpRJB_O1J6oJtlbl?sT1;8fyNL?699 zWBpr7y0zO{4s6T%zYDjlJjsf^2)=m|op7QfFUQ8+%o=D2SpTE`;8D+hW(Uq%6&cF` zs(CLr99Ud9w|DeCEv=TXE$7n?7&x~=UYn|ulhe20fecMfvyOze(}vp z1ScKc1Y1*DCi8~mn&Cf518*CmYT=e2FRn@wf0JFJH8<*VhT3 zS2}LIkHXi~QSy$-la8)MBPvN{j!W3;DYeT3y|a)zEo49bH4v>|`|9VkKe7+y*#VV^ zk3F(6*0K=gz$hWTK!<_k;%;m1#`A8DsKQLOvvo^ovKn`2nB9Vok4CS|yI__8A_9y< z2L%(21OcWwvdbY(tMSgC3;!H~{+8?6M-P|5(99{rpZ2-42(3fri@nrGWf$(O|BlZ! zB6?p#*5zo-hL|HE8Gp|^?n{>0R&y#G=NR#`5w&=;e0sX{0g3<~gbD)s`*0XTSqS5$ zE-;`1$8`R2)WE<1ib_Kpqo2leYn{IjojzaD61 z(=Hkr{Be`fjdH*5jo9)2m8-f*3((kUZfW_FnfVJ<=x{?4WWG>%p>T`!{)%+zhDX1? z@rj_J%L8qfKis4j{gj_49&&o+P&VVZ4O_D838*&S0tI+XQ_JY!gQWLl{M@g$ z8JMH>$%tZCE!4U%rEsjz7^CZQvntA%z+qgz`26K8#nKiHv93oEJXvtC#x@`nV@Aq4 z*B1Li%d7q7OPA{eXLJMyM1muEEi7Hv;~lS69`j&&f9P24M^}ujhund=^Sd$XS!Us! zgD{jc^?b@Cq@-Z-1Ye;sh`JRf=3!#$!y&hb!+b4BF=|U{POQXF_l}Q?4?UdUCnjgE=256plXlW7%23U4y!ptW4haFUwe+9WN z#Tx&(UV>DP5m8GJ>AGL>?JqaNRT!_Cq^BVN8m=Z_h}deZE}VXp_oz)0zm!5p&U6L) zVy9`ly(NV$LNQ5!x)X|5lU-*G zI? ztuh6CI~h$!oFwXq{av(g z-WHmr#!2q)2&~)mOMBc-sm&GcN#|PSyn1#OY_#-aHEN9|%-5I$$P)SDr#df;Vh?GRHv2Mi`n%Pn> zzVey{gS2@?Lms#CqbXJsPg`hwhLvfJCAO`TZfcFSr;d7L}k~ll)C>>EAlU{{j zD(ET+j5v@&QyyZzJsce!U;T6?G5B9S8DK0Sp3G~Lm7bK@^`ymg!HkyE^GQ1+mNw9U z#qC@K*u*ryCVvF7x8;CY96-qlhs6t~Lhq}iZTAFAO~ot`%o5uD`jKJ6USkw#(&ruY;u zOvLMG2&|nAQg#_w@R?3%4&yLrN6_z>Dho#AX3+R|Igd9~d^z%o`f&wu6~e^pyy;Cv z+4S8AJ&%puc+YRdU)0&C`W>2{Xu9@ocZNaIBS@9!raZ9XwAEL08V+16Fs(8`5fb^s zy#njH^y~lDHPsfAV5!9uqA`#3Kbzb&ZWhd`1ajYu-{~KQq%43a7kcoR7e0{P_YkLr z6q>IPj|mE^C&^P4wKvopu&aSJZe|D$h%8xfHQc<~X z$;n$gIio*WL?ouFvgxf92*e6V$irhRy#f;=6SQ$3dQ?|=DDbltAKn_7OSLGEr9M)0 z8)Cg+!YCpy??BZ(XM@6b7YlOurTZ}>G0Iaa?1Ttk6p)l!DLDO^gWkn~-;cnoNF6j7 zJR()eXg4_BjP%C3_dr{9(m#6;b@rn^0rp`* ziZhvY3zd24U0v>uQg4s+$J!G)7mVzA5KBM}2(Fe+X_;<(eK$Gz^y=>PJk!prci8(& zs2bjZ`FNGI)RchA=vz=B5jOTff~6Dxa+0{lSke}`-)p1$r{XW;XsG25Y19aZ5rd7qVQSg`P{`kaF0 zb6tY*QVtrt7gg_nDw>(7a>jSZ6h9IWYiY?`aM3-OXZp#CVUk)g@Q6Bz?pb~+le87; zFlVMIFSLFI$xa;v;EuZ1hkf_!=2tG93Y9(st0o|f*o zq>^S=U2~wn>{eREHT!s8?CP}%k0g8^viIvHb_hJXa3etjiMfnB>`JIO^QXe;f>PbFygl)O>XbA>OCoE!@L zSdUor=3VLH>mx$@D)}V&PnL~IFC$c-GoRn5`tW=3*U%?;iXN63Z#}&iI8>Q9of4a` z#*UTnCC=o`cD2!RW$Z;il!)jy;$mP9cmoIg5xy&e|H{Y<9+H=b<@!pAk0ckwC4?5N zS(hX~9oD8GBDgj9_ro}rY0L=U@N${OzyUMwG`^6@>8v|oCCGUi8dH>Hn)Wsc%w zY^#G3EEvK9-rbwh+UYd%}dOvrkWig zSTgXnbCyz2S$^@Zfj*VAU7XUay^#N`R|m$hK7O9-J4cVd_p0|$LolfB14l)sHmv~s z9jHo&6yMzZ{owpcMqLw0SLdT9C+AX~CxV1bBZA8;R48)J(rD#zi73P5bs|Ch0~4+N z5XF~#02u;2V3CP>E6zKH{hGw~0@BXI83uPFaI&dT0>j7pkz~OWLi-&=sTdgH+%nQZ z3|IKIOTLM#b+UnG`%ly86APV<>s#&}VS*mAm#I%4Ma**cmwyx}kjgyYaoUmzWoN!0F=hy2oB_FIFZTj8v=hz^O zH4uwLzWOAMvmmdc+ul4bB*hCyOfmmbz*{-X`49RI#dVOQz`w<&^FtB zWJ>DVlL0dpW3AT|7)`4hjfanSZs8)3Osal!2^fhv8w2UATDdn~pi*Vu7AmkmimK3! zjbSAEelB!JJ>xC~T~VGe%?Qo)1v7jbOAOO+bQ(`DvKrBXjJB4fEJ_}ew=?ylDax^F zSy_xiLIbGkg#vq6kOb<&y59L94@*W9*YV}iT@zq&14vH|qr!(4cgeQhQOxs)A0LK( zKeuICf3{YzKQlPT-o_ktuexBvah2M=N7GZHZR)*cN2_wmjlS0LxFm0^l8BE9)6;uo zj&qsEeAbD2jR`R~sMT~$7^MK@9o~)d`z+68;+dRej>chbvX#)Za)a@=oo$^Bi~yjd zbSxNMPo|AwdYJ!t@9lNjJeIw8Y&RHx6brtW*&D~)Y4QI3 z>p*Jr9Q}Znji|iB8+BD*P@}cg>|T$1frpd$>hF#(RQn&bS4aYm31YxduhLUq^z@iP zUjFr@GV;4rH$_~SiM=qQ6(S7ogLW2J#1HL$NF(r_YlB(+7`o`f=R_EuV%V&6b?-(% z8u8$A5_4@SRMYU(5a>mObmBv5OQhgj`zhf z1iydrnGQkTYF0GU$c_|`C$STpT&o{c$4;`7%rQX?YMA5gq}EPW z7;YWGvRa*4|5?Vh>`HzpX3N;fkRqomw3I1#nUl)ey}0no<7}TVQY(L(j5nXs1Jhv1 zZ_#@j;K2@Rz`?3suNbvCVSA1&4hTzY@98+A|bYPP+tn*>XiI-+p z0V>sZQZO_VKFSyc1cRU=?}ZMvh4UYEvWs5Eq=unGb+58%{2UY~3tuDN|J-`|tQ82I z2GEWKi(en%?$hgIt==tmY0)#>qq0Y6M1F-sj(0{fKKzY<>hffhGVfnj@p5+2mRb_o-*rmW`8xY0Uhq6p{1A4 zTg0oyioIbAvM=@J(1Mi#^ixjvva72Tc9#0OYrM`-<$%7zg<*-y*6zek(sp5NUKdxj zE_w-L9h&rCgKCB0@lV#{+w40JOKXx!j7o~;w%Qi93TY}wOc_$wbn))K*}5y#apU(& z?aog1;B4D^yNK;$kjL4JVN1U$PpVOHJqSkuV7z=aW->(Z$PlPXJXf z9#x$xBKYb+t zr#nR(=v_TLQ`3)O#((wbmoHPoQS`Ln|2r6C5jpQ<+aV;RyVK9q+H`y{5+BFU6%KR@ z>SUjFsz9Mi2++voGtkxj1s%Iob_nbAXLxByGQ2IW@kd7@oBv$0pLjt}eYq9d>LiTa zd;^6|sz&lAZu+oxOv7JC1UYJO_}6{3miGy&2@O)sLQ?Kd6>e&*4wxGqzm!A78wAD^ zdFxY?>InP6DJt936O!}ov5Tl}&m;Ka#*tCjQ)}L%-G;wc9#oYf=5&s3TYA!}RN}iP zkc7Rx$!=YXHs6iIZ<)(~HfXUvvNrfvsv_NRAI_D2%fsyjFv2{ctf_&?DlmYFl{lAe z!yknE&5hB1Vk5e8Te~dzp!{xB#hmpVt>(7IYlWZz2&LBs`=JyBzc5Ut=sPX<-vibP zn&qQ{>VIh)~|_E6N8#qprEPf0)$WX=$2)^ldKqQ89c@3+D{gZ6FK|4 z@`6}fRt%+8q4Lwmdl5!4D25w6ly|1e>C2p0==2pRi&Gci+J^Fh@hX(>5XHE2r+1FC z6iwI(!nyhM+Q|jIh}?GtZYAKF&G&cA4B@VM(!%w`UE-~Iwvrsq`yQAlf0}&$vvXBQ z)^6jCzYG6A2di3*;5YoWoQ#y=N#9!9%#7KUo=0)qf+GN`9)m(8G%~U&MY*?FBwM#k z4br>!H<1;8t1>O`^VJ=cS7Uu&I5IO6EL@2V}D(-sR}A z-=J@4X&yGYKjX>*2dJSYaW;KcXRPqmQ5PJir({}iX0fxe1h{7v zr7MyN&QT3b$`O=_axI$8d+^_`B;3t@K6s!o>XRRAxSjKP3@fB7OwPh_GGKjw>Vfsd zeV?73b)axZU5cCjLiIfFZyT^>{(b^vDfG!o5_;~W8?Po*#HW`t4G(A!RvjO^w-$in zMMF~)d=CbbF6)7WOWF&4u-wD8PxeyhoFH7URWXN`@T=2iJJwdG-%(IfxSUJ~CE0%leP2_Djh|jf17D8g6zMo+@!M;B0kjDB! zUNq#|#EUv@bL~X06UU2Rzksezvb~@;5>({~mQ^f4vAIyX93Xw94 zCqXDcu{c=7MlI}M2xRDo_L!6w7`1|2Jtfq_ok>b~@EgtRh_8G~d<4Db2ovs0s`4p! zd%Wo1WQ@v6^|O&=X)!4QuXoO@n>M3v-h8~0g{!9VL=gaR^4}|fYR3@L+n=Y`y85HH$Ow7UAToK!PSB{? z@uS;ycL$tL?AC(^Kq7OhdQW)~9P~-Ib9N2Jc?wtV-`qa|B5nYK){9`OX($mj+W}{7 zRCRj=nB7@fw!b?Xx$Z4|KQHkDy* z?oUA{y1lv2*u!h6JbA~5m&Tj(6em&i(m<4RrX(Riq<%iK#u0pKoF)K9_Hv5eVJdG* z#)|nRoU`%V&UbDX>q7j$WoXFbY}v;b1mgY#NK_Vd1N~i7{z22TldMFY>_~1KMX7^* zj3hL0z7=@ZB!Up-4JfYeNbw--Q|6>xFe3!siJ_!{acvILyb*huYrU$_0!Bo!2$ z)C{UJ7@k2Xn$C6N1XO~Tq@2AYpP|6=1=b~_ho2~i&9dKr+HGI7Qsqbgtob6xSiHA^ zf$H#uaTs!;_HH7xG{df>QCQE=5)141?8q-8 zp>hr)Pndq0M#9|G19fAoQ(v;1l#mOytOQ(V*WvQuRaCiSwoiw>=8flzCwB9nv=38lfHQwQ}d5o>5ZIU(yq`zLN-T zg$P%LnEe&c3NCj~atFJY1{Pqag7WBhuVoiM;dQ>ZFsK4E7nJc?X=#Qq3bWlwJu#yt zNNu~MwcjJEl_vso!Md0W0k%&C-14EO(M>1z(atLh`r7pb*0X!@5C4v_efx-rPYaF@ zKQ1LhMUYl$g6*&ajSBeyp*wff24lIAgYJ6NF#d5oj+eo4S|lO{%hCmqv15LoWcBj~l22Ws#oUh=WJs^OJeHRRIhXN!KpP-P#mK#bDzlo_i~1gmy*&+-O50gV>OLQzp`5wn4Tfsgvb zj3dW=Dw>e060bg71=V0Ic!dJ=An3so%L|=oH{6*1p)9U?k& zo0am$L@7u=`L=j?DbafOp~m93w899en=blfjy8TZoldHt0DVRp6zVQ5+pAHR#yVO$ z1TjWk@gbmu|7_GP#Q1PK4`tOYXOZ`U@pjPUQJT2N_$NR(^c!?^SSppIhf3bQC6Y6Z zDe-H8k%mj69$o4ha| z)z2H%87qR8&{cgIY90xHTO5Gn@anz=pKG~g zs!tV;I!!U-_E>M9F=y_R`FJ;ZW)Vv=ZR3o z+Ntv=h-w4A|L^xsdKov&eJ7SyykcOJo4B&bJM1tuG(0o%9fL6V(4;`R>+)bxYu7RA z;u5fqYx|z0ycBh1Ai^0sAOnUcrPn2nUB!=0c^s6BITN99h(p9!W?X!rrG~nufHhOt zJJ1pCeJDiW{aR1#%Csv*c;v5UU7Mko*<$X3@2_L|`u5KDWxkdPG(3K(V+?4fp{iu` zOr$Zc7()Fn_%ujTzBK=n#K(cxzR#riAERL8#a_cJFe?%d14O zmi;5PxpA5riv^Wp<;e_!gno{}mhEf+x?b)vsEJxR(6?_dtPhx9D%`)bAHe+i^IaV- zIATuH)8EV`6o{{F)IQQ2h?Jc)Fq4Sdyq)QR4g0yS+*m^M^R;VZSU~9QyU~49{q^)+ zgHIDiY9i6uQDV_SpMKyk5skYb^9Mw;pZcFu+u`Vwyhcm(Iu(M^5(G#LQg%AtjJ@~PA-mf-I46Ww{20l;HL=J1 zy3Yz#edckH^JqVMEQ_Mvx_}7XeW*?L9B!%bxbeR*x&Z$c? zIa;w}1vsEqf+!!x;T&zsEsfjOf6n+kX9Dxq{lYbfxuG4F z$`>32XXpe661IzXE(g$?$6q~2pfi~`s?Fzt(VAxEd#Ljngr#x+Im90HIS5FI72)qy zR*!6QJ6An!jHBKC(XG$H9}#6MNJRk0b$z|$`8@@G%f{q>fXvz`2d;X$To^v%j!M~? z>Rs_3bI05Z!f~b?@nnDzsl{WX$Cer2(vl+T)o5Fb_komsSZ$52txxuC6LxP%ng01< zT{tzz192|2o)@nI+%j;%0wyYm+KK?~B@%yrt2fT0dE#S5Y)Y|a1~do{wHM=sUdYBW z2%=8ol-RZR#aLf3FzjC9TGgKy6*c3QiAj>eAr~N;)w!M09-r~gOD)9vPu=h^GPwQe z?mLADn;q?#vC57PdfL_5)KtejP>|dK1<5#!w=$Yca5VSy^n8klfI7n5iwkk2vWk0^ zaD7kpn~3!S(Y^=W@gnB44qtqjp?UyaMd%dCFovwSu$A;&CXjttXpKI?LvpKmhliCj z8t79OY7&Qn*HSK3;KH`PSECba^XwIKqEF&+!>BI2){TaL@bm}V6jgs8%%Pj|Y^LO$ z=By5sIEtS5l=@bnWUYDC#}R0`PI*9T>t-CLp2YIk2%(xvL6J_N?_c<#ob;cCJcDY^ zsu0bc*<;WJlF4*v75W47B$OT4H0#h6!NAD)yTrzzH%rI-9|1=|{MOMu7*s0|E}t6Z z^!+8hKf2!h!v@|2X+;LcdAsC0iqV`CSqfNlrP*Hj)C_m-{awHrkxEYG70L8JYQj|g zpe`b$%xvS-LIX+{17|Q6ATNXd?I)NS-}c2F_if4V{45si!hXqP)V21xLueh!VD(;~ zu;|=F-2P*ZxP8ibac+2(LGokOT!v_wdKOlvMSbJ`5`_ZigOhLNNdLn|`t7VOP7IQY ztS9=q-EQ-*XDX?B(pWII;H$2a%7FJ*OJQnix;#=5NklE&AEz+*!D18IpaT5&ore_@ zrBZM>)LrgMPiui5GGY_Wm$3-NfIy9~Anv8uB+QzMG<;C(|K_|5r1;&fXqG?9^C1R_ z-lvCCGW_%;Dw=nq4u`%8Rp*)lREBvvlxTDJ$%xYZ%ms0p_C)-|Q%1FN-f#Vr`;K=^ z*LTnEts!jd**|`|S`la961NgkGuEQFB2-gIcuse;CDINY#)lYLF#N5PQaUSC{~}Ak z8pFh@i@#zs()-n{S0)!`bUZ{gOM}@|A4Dr;E`iAe2qP@Vsz?5-W}xx>`w6MO%e zjzd$s7CHruU_qqV0Q3Mq+V)Qe>Jgq71|%%=E7`ck4w>H+9E8Yw#m*`JvKFeb?m&Ti zzIjpPT;L7<*0Q7EDH0nToTEes&etvb%1oqDa8ax|y6x^jXH|uVOVWy++k}sS)EZ0f z`r}(?m2e;l;uN#L{j_@+M|!k5|ISOcU1&F`KS6Ua;`g^N>dgIB6&nM0(V(Q}sO~>S zZ3g%>$^B1Zz|X-_S7(zlW4l7i2vd(!A|gVLhS&AFhIg^T_?aan#$FiN0KST|t;Yq2 zGN9=zCLC(Bj3*+uKKIxAiuoU^(Kkm$0`4}c}ac$n(vFLi^*-KwDW8s9lz$4SY{!?-z>Pd&uN^n6K$ zoZ|iJ%Q%rgDRP(BE0>I>SF#_EV}EZ(o;hbJ{=lZO-xc)YRFXZjNi0dwsCc z1dQL#Qj3xk}`G_5!|q7t#Br*!sdR6cKY4Cq}FB7FjPDU)Txopt+t+{mQtu25cr*ZNu5E9wX3^ZlixiqgY8}`0axov{R2q9AokQ0aI?Sk9rGqnu2Uk z4|?a=SjT^motw{gP11OY<{z}Av*q}p1c7oxbGCK4YjrLKUzXBR5^aVgU%KF3>3CyH zkZ_i>FW`d_Ld$kKvb`lgQxwO%(DA?@x(|{{-36DFu)*jApF2ULtWc^ zMKZ9YPh(>=hLwp}38m+|>Sx6Da@`Q6LQ&j88Ek-Eq##xKNByU_?x52|VZ!K*h{ZW{ zw89_%qW+chIN)ue8gxn`B6?THKF@tC%?x_bZwa?-4?XW|R2K_m3O~1ikwiywJrRC< zo%(&c)9yA7tuTpYgtnJBV`98xAkp%Npn}RZXHu& zJ_qqfo$x+b)NI@#_o6k~ktp7xD%T@69PuhLRSn`0654dx*y+n^>xjk(V|rc93{79a z7=lS`Mt`3Gyruvm77kCB`wnDM!(z@NMT8qA@-mZ};C=}+=n-ZX78U~#3)vQsq_-G_ zNv!0v-7p`Nv4PB)mDSvaKAw!zV=UAZ!PqYrIRAX#J?HGR_S$Q&Z6DpYzP6}xCL@|q zhUTs2-St|Uo^-NQzx}olk*pUD#Pg@V%SLE+GXI^pNCjRQ|LF52*!V@=ltYw$NqOaQ zHu!!+5SA2ptG0G+p3Ay+^QJ$Hn$H4(<}t2-rjuHz6|rqdy6s&nZ>G89)V6Ep;P|W2 z4qAEI$qoUrcmgs8b{SM_K*o9xg_!?|&{xD5^^b5w*x?k{|C(EDdZIPJZ#$0vG^eJ| zQR^y;Do&M0e>jY^LhgLuxdtAlPR?lhV_=LfwG*mJcJT-(&{{ExZ5g{ZQFZff<~~j4 zEIzplyX9q_#lpJ<^E^Qk&el2xjnUj}LX_avH_Y|)rVZP~bpIb-c7l9{SN1q?!9Nx; zs!6zX&&bV3NJj75vV%~-@BxF7tTQp0bST-`Q#>29p@uc`PQ8Br7qX>k*P2?! zgrd%+tUp2{vOO5eI?1WspUH8aJEU#Mk|X>?NPF{v!AAEfJ*ix4RgKxQ9r>05DWCbR zp;^-k%C@6`gqW0XC)JNgSx`j#oj$EDPQ}sr3sT%5HxS*cXUx?0_-%GCF7E69FIrrD zpk6CpDwZ5LX-8D(WKB`=Nnhi-{$ox~&Y7W-;z>-&v=6?pQgf^ZplwVd3LgB zc|Bn!j>K0n>oPAhF-DNTA5)N%s`IZr*A&bWiOGIP zCJbFu*5bv#zLRTIJa!hy#$PG}Z3p{n9A>o0gyZ|?2OA|{Wxt7P%yJ(Os`(LZR)EN* zmI(Yt>Nmk$<#?d8oU^WS5PSEXOS5Tl0R{-@38EDPL|A=lv z?n~RJ6m%1vt=*~_2R+Tl23g&g>7fvwL1)8(N3z}*{PAO5S1e<6Ca=b0qF(8Bmm@s` z7Kos#VbJaMYCebSkd-pnVB!eq-A()4J%*$JydAy!+&=9 zPvHL9SnI}izB+|W&0}jVMLw?im||``z^IP4Uno1tNC+}x^QU`zz=y}J z22k{N$V_vqIkJiKYJFcLFdQ~EI!r4VS?|DLdkief%71ks)oUz)qsqh0_zC?=Y}Ku> z%@e84Cq$iI9g%+5p2&C)#r^la9Ea-Hqc@rt?Y(9-T3$CsKb^F$qR-ZM)|?#x+>c+59yK#Ue22UT%==#^Ka2cW2l z%{*W8G3&QQg{SAK|9-N*l$^1UP(;LGarNrWt+FgPuiE&4^mDoK7r+r7hQ#K8bKdWZ zX}(*YlB!x=4tGG1)LDS=$)eX%j~MZtXS5&dvlt^hb5*`%)}t>8Tg+GhUAjcN!-sr&8n(v6%V_@MdXn5h8Rd+P<8^uX0yev;M&U&S2K+;$ikDG6IAzd%^teiSE8^#`d~8S0HUl zwo(CS#Qn+oe&GMB-|s5|n0GT-gBiR4^0~`e$tG+}7Dr0gP`%*H_!gWQA3uNoQU9|~ z%Mwg#2CI}$QBi|<^+>g~!jYjf;5hg2nf^gx<{2B8lTawbvB_nP_RMwuE!QA0Zrd}I zxy*zA1yfDXr`Chgs4*wh0&%A4N6o*9v)9&f(5k+3UL`uMvR{0(JSNH#6@{9rlc8iE?;7t;nd-x` zngG&pFX1uJJg}eX|0mrg{SOh>0%d5mj%*q{Rl zbg~N1o*j2_L%)JPb@CZZW9y1Y&t#5sq}a&Y#xCG5YYf{EH+98z9WW3|8JQ!`A_p++SO4#xU!O zeqsb~T%nUDW&paO)-|?B{Uxr=0u3mDa=CR;fxoQ`CWudk;MaE$)p_j1- zglAUrV-=1%$OfP}7>Pte-g|Op!X5Y8J>Eqn9_ZrjBg9mB<=?lc@2z@C4)iHgzJ!Db zs438sr1n0N@2TYN4GD?}zI9wbp;cW+>7i~yaQ>kis(yBD`fgsH(GZv+fxFU6-M&kZ z;7^3HY7oeTJdIiIz?Bp2g_)<;Gj^Qd3-DE};&Y!wOguPE%x zNS=}p$zQ0?3g>MG(~NdnjJmNQ`)`&{_iu&l0wSHd|Bb*6W|h2>7W95X3I4u81vLf{ zLm&soB;j>%PXP-L@?C%YCP0d50EphZc zY< za)qln$c1e)CwE|=9e9Ue<{|N53zbJPzU68NZQ@g|NIMtH_Tg)c=MNE(Dr6SFnLf9* zvPM>5zDm<=wi+WkJ@$b4gTXF9Fb;kRG|WRoo?`44fR z8*9dKU-_u1!MY^l-0qc!lmb)bAtk0)060!a%83eOSM-0FdmSb={M&e)me!|jk^7H7 zj`+k4--CyIui(QJ>&7il@lRRx2x{kH^{h`?==4hQ0QO% z_javQwk4v1-Z78)7`8mersd(GdXU=9gnbQ-n5e^u=vOBjZ?YQ7FtM}iK?53?43|&@ zcu|d29%dF$9~Sch{mAqNkMOxzQ^-?V^M%)QccI<~Ngpz{;DzetHxC_6mgYdXps3DC z=K%GP>3Ex3aVqAMG6pu_r)|k}lEpa9aaD?3M9^F-9a00CzD%qkyV_kxYu*P@FwNIL z%IS);)EB>tNXMmc0<+Hj6?__X#F3O0f_No#glX9&gjimu;8BzX2QWL2XL3)Kx z^E&XEaJ8Cq4)k%}Fp}?1HwD@PEz>o%wd5YE@xGD008`kjYsaADnZr8)_n`V^T;LQg zK6WpY`g_zDYl(>%R+H}j*5H#Z@9Gjnje3c02wJ@*l5_PF&E^%;^ZkQ)(J%gUGOJKV z(!A%oyB`i}jvD8c&sPUWiV0&N64*LF%fV<*+)G$h^B;o!q`f_=Ia$24hGQf#E*4EF z)9_VjbGVT%VpFa)hvBoQV=!PrrIVP=`t%~xtWjTo8_0(mw8-&h=Du9%mVx@Te^Gs( z0?T5pJ6Yx4@?E>4yd7l?_xivu7J3dA@IzD8SGs5Ne!yR-r6HsPE=Gc0Jr%<;Y4X$E z6SAb4NhZABUI-&4NhK6t$txanpSOpk*O`o#JYRMvh!R8K(s$rm%^E;Rj= zJ!L>3@ng5kPe0^IiSa5ln-z?51lxcthpnaida@la!8IV#cFYU%nhAsF1cgp4`!A?d zhlmEVT((c5iALWULTNfzdo=S{e-OO;TYvC~SxS<;=2 z_WVTwqRrL?8_mP=oys?L+MZOtTIIR=UDIOw=f9==9*G6lFnu3J3^TF zGFtQabD4StRB2(9fRTH3IB&H&&^P^DzK80A@;2yLd7EaxwbUHIAoFX-(WeFH1Qygm zYN2Zzl(%(S$ZO@;M5DFK6-zZoE!02Hzf&bEzZ-a!uelT~TOWY?!G|;ehFuDZbK@P& zqH`xkF)%n>9nyGE!yR`n+)^f#^T_|^N#$R4p;vT$UPDz(ck03R!7^QhH-wPSRlb*h z&82irb8(IY$QXLlUF0JuP-DMJLbb7xj=)-J}=P zuDMm~n^{}goPFui2zd5Xp8G4OH9w7!(>_s9sD!y?&oHt>%u{!B{vRQ2G3(#z2#CwO zs^`p~!T_2#*tpp+iU{b{Cuy`|Vl-84!;Jb@qrU$tr!SlpN%DO$uAN8Y%tLs{Ng=2@ z{Dc`Dt=R3cZJ7ggY029rllg*;d}m%UK_9^VDdrC(B6MxWAV@NIcgsU6uzb$p z6$1mzpflZ_&94CkhQQ29?bY+uywf)_PG*!Y2U?Fv!cEf>e!e%q`ymC>X!u@PtBfSJ z@)+MVQAdTw!K9tq9*x1mWou_{^s}Pprd=w(CIY*rhHbH1MEJ~MLIpgMTeFbs!JMW8l+ajlH12;?2=5OyNWHvFoX&-?yxFxkSZftM#~6JY^d=Yyib_7qDo?|= zQm4@g%v|7$e3$yuZTP)rN924B`_JLh^=}bKz*0X09LD}#b8*khX>TOX4;<(BFrg5h z1x%^BIYB-KYT_MbD|@(0c04F=Wb}FxXB{N^<N@UEq~t9}SpjY? z2|vaT;+v2E=|T}_*{h~dvvpD9nJkTs-+}VX+U6W{3%TK_TqAnPa-qjRU9C7&-GP>9aZX}?^6#5;U`lFtu4_&r|s^!o=-f;%56Uh0hoAw}Fb(VrNR zu0RDwM0kIa;W6L{$pZR|ieE|e1-!g|Et*s62Dc+8R=3r@`0pgQBj9M_~`qF zogZ#GssS>%m5HYX^Y<{3=h7gmqRv0lGC6NYz~T=~@YnszI>4@c8Zv5S)~KSkvm?{B z%dv!({LVT)d6 z(&DOxdWIKqP`<)ITNbaNwGg9~M`Wi9peot0iXsP;cZE-(ZGO1Zt>a5&s^oJDE*u=f z_ev>HX;!PaI50QczGxN(Q_6$Kb=#{Fw)j zMs(m%llIB}@I&a(1z2lIl8%wAZKZ>slC zoGQ{VZfl(X3zAZx zJbjhEXpj2}zCyc)W2Tpg*TmS7m+F1D1}Jd<4CbZ%Y6Gg6-w!=Aj1cI~rAjz762ZT1 zK=xBqwb0MPL&wxnKBIXSnFk)#Fs2}k0TTAl8o=GcbolB~Q~1swCp@skC{G3B|Ek}d z@jaN%u1hHCSY433X8yoh8N78iE)T?R?X>(3c|r^reS^P93GoC&VAPWFtRy7HtE*5+ z8%ZljZ8qu0F)2OsIPsVt=sVN#j)IF;Ox3EHXQazQULW_fMez_8hREXhShsb`Pxyt= zVae7ATIMQK{W0SS^vTk{g?`#c^Wnke_>5L#e#=X_j!la>jkY^`PNqV6llMzsm%C!I zsG)+uk#xpTRu-Rufnj}Vuo!ZRrz7U&i;R`*qVISd;)FH{-Tl!+Glr^PfjjzPqL+KDxd=0n_Y%fL~6!jVq>za_xa@V)WZ@-)i&>3`P&O@)(qk*Tyi>2Aafv zKNDfkh0^IPo+z&Fq}$7^X)JuxtEm)mbWvc$@ES0KRkFtx zGJ7lCZ{xnJ{1xFhLdaNAPLN+sgmv0O7P>2ML6d?z0~k#i^s05(K0+}tps4WXqs0Me zgN(sM_T|K*w+rGM?&pRftJ*=}BF;m20Dh3fb~5nRe6Z3cM9(fb9>zXaq&SYag2R&+#F z{86u`{z{mH=sIQk%r*G6aKvb`A(%Jeg24T#65tpmWnn78HyjYQ_FTT#EL^l^q|wnW8?z1V zi0g$e_@T``b&x1m;Ld*=&ra>WSzR6O)={*$V5q+1OcSzik2or22I6Mn$BIY^^SoEC zM7uF7XLH?sQ70Fety%k`mLN=|f7kIo&U42sBQx=_hSB`_JR~+n*8$mUn_NRuFZu9r z4&%rT2;hGP71F-tJ$ACfpbAN%ga0ev)KNJ#O%sEWZyLSFqo{;21T4+Q1BL!DH0#r` zlY{^D$@r=g07x`%#Xh|K$wssP+WBRNdak>eekk;Xvan*>A2Euzv24LRquXq$>va!e zF&W>nBzwI{x}4)qcDxMgCY;2lJPplKT$DJ8y5Tj%!Bq$CHvT^#98V)5->nnVEx}&)60Q zAZt_GTHs=cpBpOd^7WyZIpkop3#JRud3Wb3rt_}OpALYZWDt(cJ0ZDuLZo-NPklp6 z7aCy+^Pdsk-M_Apm&1JPSd}R$wd}37!FoCQ(Se`?`EN!TDmkD_VZAIR{>s7g{>x8`vfqh2as^4~U}u`aRAT`J=^u1&=UN`9a1z{Mf- z9r#)Gp~&KxZ~Q$P9X8(z*`L(L|C*4|!%K+-lH-GU&`x?|?vC)UDFSC3EgMYSfH7fi zxP()2klu5bVf>E>X?#0o!C|oOCV3z>pWoZzduCYI%fE@34!*M=(XN|7^F&C$y&!5i<{I}$G zk*GkvUU#MD((3~)nY9eI49vKd$R5V(sh8-_R5k-<#H6G^fL@A9OG(j&f#>Vc>4xEr z+&Ua?+hOnP*;&@Ivbl+oRkYrJqtz2AJ0^YIaCN6;*Nt)=6qiuk!Za>5j9YW0I$S)i zxNdNM_XtIvR4Zqpy$L@3946FHdrI-jj}CDeWAH#NhDpqym4W6tO*O4G#*vfCCK3}d zd~V!ay^G|z#B&y9`6fz;G6o+9EPqF{8~+Iue>oM1i5H2~ItKSAezFbh?OHe1Vh9HT zu?6qiv~&9mv{$dbfl?C`VhoR+WlNp*UL^gbUzrOye5g*yo({wxA0JE}E9Lqb{T%&u zzk;J$2kJ~e|0JH!PmTetXkoegQ=nghI;uST&R~G4&_q}kIzcuJ=CSWi9)>@P0Ir z#N~vQe18k*jHTIRXnNY8&}OXzrh))C3IsyvN!l~_<7(31L0{g71X7Wlc-u=HNv~XO zWPlYa;`tPQnryRx;WIZ)j93%s0EmO{pS5o+=xRToo9~|=Zz*kdFMoRSp0xdeAmf;6 zQY<5F^Fq*LT1s|aBghj>s3XmA@W?ey*r1M76777+QFMNdOam`G9K$U5_XtfA+it2P z<@^%8r^CSV6cNbyx80_X3>9y-ghOT$!RVA^uYca5>z9?VZfC>1K8WDWM-cd$!oKS50F#Pq! zvC3W?X|4ZV?p8fS^(ffuGH@{S*&UIJU~1jDC5qzDqA}&oa|Of3$4bICxaD71hoI|* z2hxVUW!0G0dKh60^*~zM&0qF(r@nWq=U|!w{R3juagSqxKe@uc`NWHFF3N=6(LHaD zSO&E9MPY=?K__SQfgHQhlE2$;2|lk;pEv*{uPq6J+%O=lWeEeP}&q|V6USZ{oa3H+h&h9-}i zHX@17S`3DC@wE!TU9d2jx8cjRM8krHQ_C?-QCtCuPgKR&h~F2JR?x`3#ky?ht>*zleRQ5Fz|0TL(A)yxEG}T+bwd}2qojadG}9)pDLg%7MKP5Pop&3 z;Ewv3nmsMtXvU5-o7<^0$~4FHR^lx`?!DFOHV1=mm>P=1>$kU%vC3dag|Sw8b@6n# z#-Op*J2N4C@OPjta0BB3NTyAf=lgf2_Xh_=SUu{oBaXBQ-DSI$lJt&iiIP$#CPtaP z7UFc!D{4!)T!C+Yx0t~{Xawj{KrHEx8Tq%K+m4?a!G;&3qKDFla@Szcq0HQcJyfhWh6i>=-e!Pl4Wn#d}78$Jx!9yc!{hYC|; zD0=~>2l@eM4sYTGDe^W+UgmT53#~ zMVF>`-wfW|?8Jc{>p!X)18XP*{SruEnABxB&Pc!4k(Mll8wUs8Lpp(kX~-74D=mk& z?B$u%=V$J|KZYw~-Ki@67Yme>)lR8rKpr5D4ELcSlo!S#A@OPL>aHqYuC$x(jRG|! zJbhRaGPvjeg3A2Gx8q#oQK5!*&Js$l&?Bs)O{))vwhA+yDWQ`X+K{rtvuEUo@vn|Y z?KH~YDVGjT-x=-E6T|_{EoOhDa^AY~GP{KH*4?%rTDKC38P(9wLHWWG+60y?Ocl37 zxydd+j^xLCb^3k_<>~MsC7dwPlpkoEZukvzLX}Nx7dTt&x6jpx7KTtp_cx8xECX4K zD!egIQC^--oi6wV+ocGJ>+O8gwZKHscdvE123-5mbT@A6h+NPw!^2K5W$UoZyFs~f=Vijh@Z2ui>2N z%3o4hGUDH^RnMMuyV`J~)ICCdN|fd7om$_^V7o8>S8D;d7xM(a%Z07bJXum|Xr&t+N8A(WK9^Mf&zQ64)$? z4f{4o>YFHAeTuZ?gVpDVO~FmXK5kXsy}orydo|1&BcXzpi{He>du#d1@veInw6u?k zR;8cj!gQCkX0bh%k2Hk8sdfMDmEHMFqlk?iC>?5u0U6^d*$76_UPPmVHW)GXUo^`d zK7{o`}sd27>xRdU@=d#Z;+F?y{(*sj} z2EJYG7!`bW36*tke}D-#O-$Ia*=*v+J3chGCwPOvR1gnTLL9EZWHwJaL-$_MXi@XP zR*m(L%43pHosy6AjDfhwl@u=2>ez9~MbCfUWlY%ii z*v^PsHED?TRCk$|$$BAqW}yTCUiBfm2hL(K^KZ}U`%vNRI}#IH`W*I1gjC>0Xj3QO z1mL3y7nx=qa)9gv%xdM*?SE9Ii;PrOr+nd{<7z~Lbtgfp?%l4dR1fzV_b&;eRDreL z?&2yrtbQVK*wpLYYYuV=KKf2@p6}vw-|5jvX3v1AvwwR9Oe9)15GdLFq z>R8Yqt`ZGH@4AL5^`i#l3dhA~Ob#p<5D8}p+1|tpE!11}cyQZI1v=e&SsZefz(6ch? zA(!D@M>#o5)ldk<8=rZbcNfO0Gxhxbeqi%|>H(iSn-i_RXn$y2-3KRxCN&j(2*9j3 z1XP|?T8j+L4Gq%yuiQT5K2hfz;KM>C-nV(qfd|w4to9b_H+W)#wtET_u{z#;elKak zCQ|RE^^`s7RMj<}Lkm( zbao{;QMb=D^g<%THlOhrQp_8?j{H#DH9Bq>&g6mi0(f$b{>3MfInpxb=Fo!j=(5G| zyiii=x!xejXXi4yWnx5~SX#-*$Ur0iLzjXYnxicxKP(mQUK!w|$$!!xIDdXQHT}e4 zOv#>aPWJZ>F=vs)2g?s|XPt0vkh1iUD7N(!2N^ooUn{O(($#+O^}g)a-j_Ma5rc-e zGHp)XcybH>QZXJjZOH>H-LN4!J7*WFTmIH!O#@tdx}wY7^ZZStsMex~x{(4FrPGv@ zUEZjyNmr@cIa+y}pHk-DXEM*xeKYd?RwTk}sn^hJWyWyN=CVOA4|h-STW5({e7W`` zAy#>p5-rc6Vx83J-LBII+iz*3Gy-Pz5tk8~Z^k9L^rW53cEat}kfuG)7!bDzpP>|Y z7r55;e|Vv@YWwD~5uWU#F_xq5Q#;D){(XI$MS?I1I2i11)t=%Z5QtkEKgy}$Pk2y+ zK>>JCq79A~ibgU|kFt^)UeK+Rf+I*xFDNr!O}9jm_9H?_5^COWqAz}rN-+s_E)?%; zf1TLPrbCj|Z*s00XA*s}8CXIqaU~TR1%sJixC>OZ{yE(tBFS;*co*X7w=L)DxSf_4 zPKa6Lkl~bQ;W#PBszt@qriDG83r6Nvw z?Q7I$Fqf%t1!QH!$dS5g{LH1xv7F9*QSwVZE_Y$-=I%I;8_)Q}^I&4e#^sISoAB1i#M<|p5AyP*2}NIF z7Ry2DiL^S-wd|aDP!e_HBF+ydJn-Lt&+eONm9oB4i++0wy}uJcpO`Eq_c)Ng8fTl7 zB~y_YKIoQ7&EKtP-{cdBlZ3q9%U@QSpmtPj=}~=u1|LRiCcp&rI75D_E@*yd;X8q< zsK<_X37uIYcv} zTSGV8tEP4+jXwo6)A*f0tlumuLf11!OdqW$id5OZHVn!rQYoF961nT}SuEy@2xf`) zG&Kn^f5K|lEL&K1S68pvk%w&$^A#8@TJt7s=!wS2LusjIXLZ&5UYwz>I1PtYA-BQX zEejKqVCStb6V~mog`BdKTDM8nk`sEXh+g3@_GVAlIE%3GJ>t5C-$s)`ovOp<*Lm)U zTiQmBy=y%#TQM@YZE}kc;YsIQ#%+;cH)ItrV1Zgc@`DZYYt#e1w;VBD`_ccJd_JsA zn-FlVD(T5m&$4KF$%lH#ixw+VK>&1LjWzV&)M;bvxHK~2hMSZ+S+lv#sja4F0{#}Q!qLi1#MZdrv^_2TdDZOit#e*2^tUf zP%B9k8i<()1yD(>3Mn|-KXk*TpD9qL{-T;dIy{OGA-{AJlF8pQ2oB~YG6rlqDTg3op}?=8Mn0W_i9Ctuce=S_JUDQ`Y2ROKhE zGty^wC-^lC`whg(aY|4jp0tmaw??<5lFx|ZOKuowK6!Z8{G#F~3Ps%y8dA3qG`%{+R5a25TUB#D}#UEBA)Ec}HOVIPMQoXx6jT4Q2DTXn0X!0B+8 z6Modt*uS-#K`?*MMkF&h?D`@#I&dN(L7IXh%Z9uU6ODh7;4OeS0-h^ukvFfYJ(lM5 zS;IHFa4_aB?d@}Z+1%V*@wuVsOnr#RI@9g4^^U;!n*u{EMd_BU#b}StD3n84YkOfO zy_CX>E4-QASut-)On)fdHTbb@jV;Q=#~ORP_cnfu)I;a{ww`3kCE;$Xp zdB5Q(%0&D@B!5#!UmtG~^X5J5ILGG#fjH0SY<~L-n&_ZrXS#7N&(bQc`o5b4r!YsvKEtBLKi~zsv{jpyNDTYt;UTq#?ki06DR<_`#9WGSAPW6Msef*@ z-uPuXwW)XGXWxaqpQl%hfuv~YIe6)L*HfJKS&@1CrNrzX z_nB|sZJqY@b6SXJ*qyLIJ`{g_&go`!ci#miZ;#eisoOCMM9t2I?WE=;A0$N?t&ajM zm-us9Pa#~L$C|j}FVHounUpZBx;*R zwSlqduSJgEceuask81#U*Cgag5PJh^xfYx`-3E=wLPli1IaIe8oepjlt*^eqxg}r zTa;Y7AK%{2xg8%8LJB_iL*{g`xF72RmV}k0IVkP>6c zg_vQi@eP&}Y8EcDPFt^`#JsU!VxAIeS#-_u%9Z9Ytuz9NQBN~(*-ue0G0nDB*%xm= zdq&{s@MovH|MMMDk4{PL*60`2>`4CXOgndj*y}T)N9?ksq+}aR6ZcsIGX%heA~Q*j zv$c#;)Hu-$QU>$LerRp^ZW8l-J&a{C;S}*Np@yNns~HIbU!$6}#`{gFn7DcuYDq>t zi}frttUqXAmBkI@x|Ui$2$^2O?3wqJ$RFZs`*1jM9Zs+zVyD4lSy5RpI!08DnK}Cj z++2;UPtQ{#178q6q`;e(3g{SOyGO9ff9dx!{DW!7e)2I+>r2YLH7ia1szg|-Y5-eD zMPEPJ%o=p!efdTa5IG42bv~_^cn!5Wq0~@&m+QwzEM9-ru#vkFLJafG$W4hq6wY}{ zrW;tRhD(X=;OCFu`pLIs36Q z7@X&koULHLB(Uaaop0HzbG&m3AmH=x*5nrowp@ixFEj(3sPs`O6%4%)O0VsjVwa^`}lQPY(^y9xP$ko3ho6#AnLcDMg`npx+t>Vre3~$T?Dhlqn;_>b~6QO(@%&piHTehK(7P3>*~Ricfvv( zw5`u7s7Ko!7EQl!yNYn#zG;(A%sV`hMrjfh5QvF7>*^YpyZS{QgnoX_oysUBXE0Aj zxkK>o_|0QAwEsdKv-uxd$*A=(!*NH0>)(o_Gq{K5-j(W9o?OF<2j|d~qN3gxl(8Oa zLUJfuzzMAx!Aq*6J3VP+q?mP@Q>9zoqnFUYTfC>X8QrcpC7#E0nNy*Nx2x23lIn```tz=?^N%X+@Aqn~|PqgpLYkM0$9jmZW%&8=>Tv98S zzLa(67G2zm1WXAwY z_;=eY$GiSk*}vQV*%RqoVxOPQ%r>dDDu2sjeUW@&Ecj2v%m4#R|I;q=Z5}&Rvr|Oz z+ULH<9E^LQ1Db1A9{%V&D#_FCz7<6;aCV#iD1EvPwUk~_l0@uPgR{k1maWEq(W(=D zK}k)9rfV-2C}C-dUOj0t^ z!{=E%yREJI3w_ZkfNICl_w8ZNLTp@5O-T}Eu_DjAydt(#R;#Rn2%Gncus|&#o{$uU zf25DW(ZLN49}A_@-}P6q-#_xvd`gHgwS7+*+9KL7TxOR8-MW~)<(85X2#uw}F#)t{ zHc_zqT-6&apUMXSdJyQ{&yV=rl=Ek+o&9I4IrxsxBzAlVCg*VBpC8?Nz0saP>YaAp z?`=gajQQ1$WWRAEa2`cUiDh<$;rhWox4tH-z~W1iWq&{Va}=&mC$GmwEnoh!-SDzS zP$>1o+xKrd$IuG^3O%(SFiciVf9kT7?|@pBLl)s(iQ8pyx#BVA9VcMqM=X{;7Qj3B zkKMIAw~drWT!_QVD;fX}G|U(CvfdCp_7i0W`T>@QKNFYw(=*lPHDxsh9i87W?>pZ7 zqIK;2R$|=Uv+hl6f4&Rn?|03RK>yW@kluuypv8RUS$A4I?F~LiaLlP{ud6qoWW=+R%f4t8Z7$)%FIb2k zzf_jl4>y|DWM$EGeox^f@w;L`lgps6*sD)4+weFnOq;&npl3S&=^|0{a$-@hD*JKX z)xb&}9lPno3jF4c0x5mc#U%*ZObfp zrMNq<0SOV$4PH$wgsbH?+~4sDpNEwV3>J>m)PF;$bvt2&Q@@d)I^Bp3CjUh39(C1Q znheE|nsod`4;`x@{$ysT3m-mdT zg<=~Ldcu!{A4|)8qAyBMi79)Uoa8XmTIV}{U0~)Fa2{4b?!eX9^`zjHg;m;}3(Bzd z=+2sRf4y?gIi~mh0|bIV6|hGn)4>>-?he2}A?4j!d4?+47KE$Z(`@>Dt=69_wK5Vk zMi_7sI=he=4W3ffr6#962&1e9dqPAq{MeV5&~3l&)vm9zqcj||3i>gb#d+nPzYte_ za)wR;gPLk~d_7Zu7pdbRzkYl8(bK0%SlBq^I%?gWA4qNhbud=v$DcZzEYs)p}u$N7DwWn_FXof8VziL-l7dvYb>2ORG3FHeiYt~&4)6r|mq z{K`D8?Hm(FBgeGv>;f6d7=IQPVcGD0)BcWvghz=S0x|2wh(rml?Zb6`b=Uxb_?cH_ z9}pBkyMq_=g3xM7I$cDIDA_@8G^(s(i={UQN{bOUude zHdtF)zS@}U41stw_4NW;cFHZy;d{|Nnxhd`qjV!aQS&M3`?m)nqb!gT#AQ z_Pb;n(|p`8uFAtEA~|`g_o3u#K9@HsBA-9MxEx>NFl_mFq4gxZX{_>#zaXci3w|sn zhKl{G>3X8c9m8GJQ-o9PH+*Qs)J0=@hy76~L8IR6YIC|PE&RUgi`vL~338fbh!`{-XnLW1-{dp2m{@J26_&wgu*0PoN>pRoOFG)mDn?D~8h-hBJujCYBBn4&v zs`X`~I>&V#y;`;e@-EEr+~tOy-^gp&6ASwA1q-{QgDnTtCCnQloGSAeCuZv2Ol6oB zC+FXFQ8%CQc{n44IS4rsd?ruS)S{sL`(65%jF`y1OI9O{Bt-$t^Fo`b7XOsx1E&({ ze7>cvCO`J;0mHR{udoniEz6<0t((@mOV8`A7T2*{52pZjG)S-Q_v*>e-N)Q(GY2U1 zS1?7-x;F+%&%~$P(72ZG<)?+AT4GxP#bz4Lw0#jgSnt>>dJxH_?0RJp7p2$+u_80^`SW4-T#G8i=z(;Jl81 zKW=xl-+((eT_XMJA`go1Cj=0PmDpTG!CCsXeZ3edlTv*MBkN>BHqw3~y3z8o z!RaMkm_;9M55DW5F_b;cZ~j<;xV|~q+?+tT$>z%M#XmTKS$r-142-onYn+_$o=V&zBKgVvH{Nf+59{je_Ro!aW>|nr!!5f>qkc24 znH8?cC{oI+(a`(wJULl6qV&#}PoSJND!OpK_5&K}a80IO1CM3l)!7@w0^6S~o;XMr zlodS-H@ey!#(hg-f@;jd{ILhxx!AF_ddu4;KEXGAn+O3g?d-Yu*^cJ5ygYP=d_SzZ z)8Jeun$jd}8W%qx;XxLL`{c9gY*RN*4+^=qL$Ib_@aG5p2c*pq1rRx+wC%GJxyqd5 zpY;=D-#qK&(K_9+y)u5B^_r{ka(tzs^k*Hk`arzSL~NE!rLmg_A%Ee0#IX{-n}@q#u2zp zrK%`g(M$v;-DLjTmy)XLObnUXw)_u^BRc-mU;nf9%Mi2DWRb5iB@gv8&W|ERsvkiQ@;ZnJ=iu}_H+L8JZ<&-p^j zH7y9ku`=`wQhWoN(S+{Eoi)hzTuWcCywGpHw6=eSQ4((C6nsRi*i7;lkw5F{_0M`T z6+B>4ydTi}Fod3!*`#egR40Br-tSwy z!%*;7T=I2;xle0adGz(&Q~?=w-T56`DaZuhmM-AoEw0Ij-1p;cWmmnnl1GOKGtl>^ zwk;Q?!IS3F#X!0l36#UDKSy`?pV;gKW64~d`QzI4pJrOdsMiP@`qm{rx4_J`)0}MEy7|>D8-q@ELbXnq~iCRe*z!R zKUekG;tD*FmfddfyG-iHCi1Y<#CBE}m=3BTi{Or)tnOtjL|fc_zYsaGLE$njxAi`Q zt~tc5m@Fu>3|LIW%&U96Y7PaALx(D+;b-1sqoHH0E={yfS3MYj}XaM@Wc6_;4Bkyu%NXX zRW;k?N6B;-_eyj~)V4gZ5F@7eHQ~QHq#4NUM24_XE4uOc4`W+1c5Zxi94bdSfTC zy8LHVOC)*LjJj&E>@2vt>&`uC0V^O+feZ}N^x8x*l4W2 z)7755D)0njnb*$X23#BQ0nF~iiQFOx{@OI8T*+o@`7q_A8ME$mLz|P#mZxEK;pAiv zgmMNA5tpfUd&_i>jvA3s$I~8bHSf#{d}u_Idg$gSj8pwp?aeGsqc8ECkE^vc5joou z7^Yxt?O!^WZ+?%P@4SG0XU))brpJut6ah*XF6!5w@ESgM7C-!E6jKC%oJ%GYE-!F2 z;<0a;4=^DyF-pIqd(&S0x02KvKp&LO5m?XPRP^lK3hv{v$GV*c9P|0#zFqgHiSI?J>LUr!^J^JE}1Kfg^-M^`seV*lQ9Y(R`;}_U@TH!0BsJ~5YT?}e3ijj4OiU!fi><#!Lr(A`F z%tMO)2Wep5EU!uP=^;o%>cN-0474(}r+vfR&gP8fG) z>ZAh94NzrlYuoW3)_R%z`%1Frm=C#cJiVBfr9>CT?vCy1lGGD)`Kf5=GhE%oL02NE z#F)Fp%FcIMC`kBhuHyL%oC6FcG}+<(MSD?_n&=fXcFso8jV?n~T?A}7xb#j1m+iUW zVAOGu{h**7H3}6?eI*~uD^PE06=n@{(8xw+(OdQtVr;;Zatj6|#_6di?c3=3&~dA6 z40wUlZB??yxaEYju-=4J5T}-d$>QnR*%A-<>HO0_f4+N!?dIfjBgv%|e9%<7DK-5= zpSGg$e;p+>*Gn=M*Zr%hO{2fuGJnu{DF*YV^?0bYYsNc5ZO|Zh^3LSZTa$&mSrp6N zB^+kQxv`3sA3w+KK>fUTg(sOKJ7lzpuUHkR0 zY^9SNnpx^BhjY9B8S{uX6XD&6p&MEgvRA58>cvcKGh$WP5k&32Cn6-|5>Dy^nAl9F7NMfQ&Wsg!wC&DhR=^z|LFeJkbTNI)v~{fiF1na#ofh3M*! zWc`r6sMDLIsmXT&tIVa)QW0guE_RhJ>ZI$c#?`^tDd*J@+oYZP7A7@<&RSe<>+1YP)9AFzgft5O>S;Y0>7H{3_+xk!=zEJb% zg)LAl)6>)Q`u@oQ{B{9P+ql6c60}bI{qN&-rvP424*n3$5V{gKXGv}z6}p%suF+$I zONaX~IRjShoT@t4=_1Y@!1QfAykj(3=(uVY_)DvW3G+tvi4Q&-Qg|K`3CY=GKr}6e zcH6dQn#qBSbT1>~if3im*=zOKz#M+vA51XN=CAt*UMLZh=$A z$_a$Xc?_2IE{^vmzdFY*p`}3e?K!^8MJNIQD=2;x&9E}~_d5`?{`KJ=EE=Spm`}Ae zV1%4I?b99fpKJKF#i^FB&q#+F=<>Lsz()K~wR~!<8FEr|Yh(D88pCx{M(erMCY-Sg zc8tiQ+x+Lz+4qX~JE%aK0F)^Ok*Kd>bP1_S&|EKAa=&sn$fapn?C5H5ru$*7pTXah zdTx218++8vM!K21U!9IVpm(sabn!)gvb+Md+_sNXp{}2T3i+$73^Ddu`H31mZ6``R zJarb3D>L9nOTJl5| z58$NoG@|$5$j;{*$AzY+H{h``Y?~ngvUkl=lu)YNVd9yzf->)5^?cu)ODVw_%IIV4 z0YmSTlD-KdRY!+ z))sjOpN`F+K}Z!ytuozDuAFH82JJF9<4Ly5m_n4J<`K`U%yqVY-EP7*y<>`JHljAHD(zoU|lqD8)NsECxFU^-QYe22F`Zo!g0_p_#{Z5>ovD z*a|RQbi5BNz#g=H2Bepr|H$6$C#r_p3}6LUezaX13iK)UYX}SIEhx=rJ?a|$GyKZo z`b}78EK~^c`r0Z4*gAjNe^~# z&(=vnvG`w*Yms;xW&Sqsx-Rj-)n{i_3Nse?K*O9)-0c%ocRw^hRdGUeen~sC_lMQn zax;TM8Cn*`bw-a{jIOb)Z8zk7Bhs{Ef9$GJk%8;S|Bp>BXva*z0EA$^8na z+SX%Zg&+6?es~0t=}!B%vb>VU(X!LrSMHD|5SfBJvtL9w9PIMwU%T;cf)^X(tl>er7MF*D!fA7ghYzR4S7?(gC9r+;wxA1? zTdjO$s~zrgcQqj_;Qh2)*0rn&ZHs5qqk;jcoUU>1i;=>@!Wa3sQx9U>EnS9*G1Y|o zI}Y3T?-hzEX$^EZFgewoMf>_Kx6;tF#K#w+lmBGh7ni@O6rEonPbFLaT__-gp=-6! zVUQmlZmdl$`LbaHex{7WeI*Uf`n~!v&X#@L5m;N>H_su4?jUZl$H zW7|X=-}uPfZeRcABLJ3Wg@hbUv^amX#W>F0sQA#&mHY{s9DouctiSH^I)z0KNI3R88Co1+CqG*=&EIE}hLSEoE%SDxSy+ztuIgZm)x!Xd z&kohlBhdJl6zOj<0^;UvgB^S)v21|~ow&qS5y#YM`ea7VAdWOXh7vB;6RxV(N*Vdd z?1fs~UsAtUs2Ah*=GMdQ{KB+a%Bht5VL~D8OP6K-bHk$IMCqQEuHpblGkG5;*)4XD z5|pBoH1!bZ4BfLjqsZiG5ers9c;qO8{vpfDiGt+kFtrBOwbfR(`r&({zpg+Hnv?&U zGBU1c&7)kUFd^Y8j9-UvrAf=W_9`h2lp`Ub+=*1O`*{VD;AH ztEGNBi)Fvru}*dHPBbn&}u!HS8RZ`JKF ztJ>OHy2}PnHw{Zg^y)xbdrA-W(3(Blu!)nN0d{7&QdjCpV?vis9J8g_YwfSOY`Eho z)m-9fL*E(NiF4PH{}k5@*Laxat}ZdMIT)!)P4cs(J?ymf_zvam(@hT_%4_PG##+N| zcK!yJW$X$@oI@kB{L+giF-~F4ba4 z4;9vT0-^6`!xBe~&V6sZacdr%s=&hr@za&V2HiV7CoN=I9CS+dEQ${tFX2X^es@DH z^4Y1vPA+X0%K;0x^LDqD{O5;*M+y17xG3{U;E9md@1tAcf5p`XaaPU5xnMthoV9uD z+ad=D|EI&Eqcg72DCZm1pZfj9T0ir)tq(!6*Ac^Y3o0Ub$It2f{O@UPk_*4nb{ezD zdGi?Ta1yF*$!>b>+StX-kCo5W*B8)RX+N2J*_N?ApIgW)Feid;~{aLh#ng0<+M3 zyEJEyKlgB;_Dk8v6O?^C!{C1XRhHP98o|LsHukF@Lmzkh{V?8t^2&8nQ&XAlM}i+f zC|}!Z=VTn&I?c^>V`bI$jVw8zR1|+9w!`&T*YnS3aJdJZ#bu*}uA*J@LM(F%ctzyV z#*ZicFfaS7U(a`07CtqM3`AVX{PqB5sMQk0Eb?Lml&PM5(AbW`oIPaP#9(akF zO~*4v3FlDzDRs^8O!Jl}%Hwe99p?yc6rvuTzqZBB$-(-O11{EvA8pn@T*e7IKkdFW zex^9U8hn!-zX(BAG zP64tcWV5mdoTRi%Iz%N*gNE;`A;lb6&7BnUc|uNcZlVL|LNUdwRSHuU)H-HQr}=@u zyleZmL<=>wU?@-BD?0e+m}SEIY3H;$L8d=KE5Aa%W^w!!Y_V<%vAPgCr)D7Wui)mV zouk=s2&@b2ug-mz+j~*&jnR!4{o$?B(c2)em>SPut@LjMAeSk8eEdWEHk2W-5WH!k zutyFjMO)>81tqPqT@;tSKSqR0*Eq28Qd4JvjOYQ(=`z-H=givPt5g&6@~%K2;oiSm zM5oc_-i`C?cfVCQa0M=94=bfoY z#u|0Wi~37d{dgHo=g_=ww=bUJQ1$dMiEg@(9?9%qzU#HN>xv zOm0^;w(=~z2HzxEX6z=6Bcc<06mR1}m>U7gq5d+smG<#p_=fVgYVr9jZuU2zTfJq(<7w}2)sFvsCt(YF>Sk>HFl&Q4BJ4u*@oCXkZ)(x_$!TKtaI|n&n4cT|W!KtAy)x ztBZSnah0Iw`tp883Ep-C$TuI!NlUlnn~o9~MUsqTa{=mI%zc!gu4@@9v2@pT>=woQ z4?N%cd_OO_V;kHK)G1tQ^2{%m4lFBgHDI<2|B)!mabiCm3GuP&7q0hjW&&2+!h~i+ z-1TVSr{D?CfbxVw8HVd~J$x96rM>tXSlY-BcI8UBjI)z6xv2t5EM9u>?<*?Y{DT8O z4t&X#P%}&Of3)Cw2fcnB58^^65d2^mZJ~L+bEUk<;eA~tHn=-=*z8^*;q_%8ESwk8 zLa)2v-CRrTHi+<-S6I=Ao-Qbe#AX-EC@3Q>ETlE|jB;CrfBoMI99jujr3^Kf>#PRL zbb(v?vF{(EytJ;*`br1&kei;i~Ujt^Z2$t&{Q|Lu>Emc9)i=e}Ucf@$=h%;FM_BCK9gb_<79Wx;My!8<;aRJ|Cx#>|51|dfZV<@A2lkm zm|{FZfv*UEy>}oBLBLBqh%O{F!+ZUAr4px0*@po^&*6#(N)lJ#>%uwd0><$P zaou)sC`1yK(C}~_tEXjLboL7$u^eJCgdc5Zfxwpx_dLEet6Wb(;R;4#{&ic6K{k!o zI&>7d{JDyEBNZkP7AUeLt!uWpgw4AcYJidLdu%?Mrb_gWRc4sAWkDBJp-{k(Y5hQ5 zD915sA8=UuOAR&l+A5~&&W1pw6*hYG3b8Bkt&d4rgQ&hHo7n7A`0G~^WSK(g=o;`y zf;NKi<49}XVGEK&={~q)^{$Msdu^||N+(dKk#ZJi;S+T&T&;(Z&`r47W}` zikbpv#P1_knikW=n)82VmFLLl;hnMOJ5K+lQ1Wy<6C=Hu{FaJG&wOQNp7;Q34nUM~P1-6d-nb^MVk0k|!yN#XOY!f?j2m6gYk# zrPk!>v{h^BPe@9-9x!y`Aq<_;P*J&Gd}t-Av49c1WG&){myW#JD9qZ4oR{X2|2Nq+ zo@se?Fj-mrGA2AkF8CaR;gGlV(BCb!_}#3o>wLG+ri|}syK-FSy$NmZu&}U{`<2g6 zl5xVT`twY_=|^8hcm^yl;i*F3Rs_P|GNys>Q8^Yn+WLxfEnQJRHDrB?lw!o=cwGyN zFe>C9l9Z@YCUI)uANT!FDQMrr1ISjkw5SeErYJ?XHCK3AM-Wz5j7mSZtj*NtdaK!8 zHGPg8l!~ZdmC3eEmoe7eXG`aUkZX|jY+v%Y8Ga3%pp=g`<)E-q-s<=Rmeqx!G--0hPURAihS*uFkb1~r z?%mree8EVk#$LgsCRd3IY=+{OzHZ%sd$qv%Q#uuD^)}m-dP3s3hL*+7Xoi~E{D(6i zG2&_@)|va4BTSQR>FNAKYsobaGVJc=0UjX)49mf88uCO6WG==;Af__75vt^Z`ZtEm~QEfVqkP z7!<{Mno?Po=d-cHI;11nxQkY2$J~x+|5e&y7<1 z`rm8)WHU63j})8N*4NK&j1~YRHega2;LyKx)8EG9*6k-y5UC*DfvHUPyUo_!(h@5HnJ?8;3kJg3DB;_6 zTuL-0dt15W;j$Ut+j+PATZ{hnjnerCphwr$wet%({~~}&PqA$({F>!}c54!#54=rr zmv}X>0g6S40h^Dw>YbFP)(FA_EgvyG6FcIUT;^5Mejumj@yn2KV+3JGR&zMz)Yt{j z#HhtX_-C_T3axtMNUPpGB|xsIsHpt#WSUi}Jj?j_G%bfeUcBZ9LjD@M@685x{9)E- z)w=JOFcO3$bscl?2?NHh=Wxm44R~kg+^ygQ>0|i#rLchlg8@I9kI&{??wd7)34{ttN_=(CEAMA&7t}pw{#Jqx z%kfxR;U98yd8a=pA~J}alY;^XByi=M=tebt3pNf2P4P=kOS-sLA>3O9|p`_Kk$F-oEkO0sgQGN&DeNa$I%~y}&trabI zDS!(O7vY8HK3av|h9aklHGHWh9^qfY`djdV2I~L8&SwwMDCbGtl~Yh?`O7;xtp`M9 z*W()Ohwc3_YmXEXo_G}M!Eu}Eb4onAKZ*oDn*&Eia;@iYg!!LZ0r8(LKPyS|hrrO! zS9-@Ij!@B9T5p!0m)8!)?AHG@VZM;{)fB*G@+nml)MQg|em_h}hUJsSt<$=0xz1%! zkXSJVs>!!(ghtofi0{;+rzf$4;oX`|DW6X4f%?^;G8?lj8*#At!Ml#d7CuVAjtmdK z|MaO#5EE9q&U)0w9tt?s&d?LdsYW#-XwkU?6+eicS7m3b5#4CuY2h!l-$AT{ilUBn zB-V#Iv`MUU3z3a4{~Lo{9TXK)hF%&!{6oMs{`6~u{i=Mr_lVy|2u)PXIiioQ`tBJ> z`%#U6Uwk!KlLsE8D{y+6l~uk|ADZ$v8Dj_aDd0fZnumxx>3czm<8OSjhjo`b+7?Y% zTaM)&3BY*jbgP%40~qQ8O~xz)1iu0|1&kB_+Ti3L ziH-RBFnNo|yH|WP^+WkBE@9#xzfxBNe3 zq1l@?@frgTIA|PO)U4%SUAwtZ?wAy%mUqx#@L3f1+m`}8tz4#L=7N`r?{6s4#TvaG zgeDwoy|luve{@N_m=eoge#_p%Mg#i!5Y5~C<1_S8{&?d6`OY-vMhSRmFAo+rS@h%; zyqlEw{PGau;ZA08G)6K@i++BO@jIz%@D6w|q$TM|>Hj~-2BA7*>#GoGkm;JHG{`iE zLV9ff?U3vVY&f^RRqg?oYp&@Yw@aD7IhT#1tb}jPo4CFiXEMKM&q*V#1{Zh-k%C78W_E!^8%HtQ;P|p614$-ct7)tBCy! z8oHCQX}RVdDYx6kXpy~`E;R1J+YR7*kA5z#goBa{qZ2NOi1ePP_m|Po)3Yi*gsxw# ze!c$LuEa)Mgf-q%wBOAO^8a~5w%GHbVNo!+;?~N~9mw0oL3}wiI%qt$hEM+DP5FKm zTM@%SYiO5qgn32bo#>4r`riE9lzweCJH}1Qnm+XW01Xr5eSz6HwtK0ct-#f3Hr71rO-lYix?{058=($CZe82k*dJV{xs8Uci_7E+Q^N0%WWSwQ+^&ehlq3kE!=X6$L*Oo*u2#cH#Axh^c)jnZ=8HZ!*EQiabM z6m(c9pj+}bH0J~J;-bJ4PVNxCF-V-N3Ha)VV^8m=kvErvSqjR-csJXR^WT}_Xyz~j zqpo4rVHEuAUo(oDgrH^KIcvfUHqFe+Y8rQe{A{r#;Lu-Q009o?>!tTQEbNBvomjm) zW`L3{)>TAx1ibfH$RpG|Xr39{gQX=Udn=#W)sn7yH{i2BpUu>V(w$e<5>R`pA^lTR z4y_KPfF2ckC%UBKmQp2%^1kqLSFc`G)+DDDe;RBU5ZZ(4;RdEU*OejR(vMlS1{`*w zq#UW*pT51T%Ov-JMa1eNHIyI$w^VLwKP0r5{MOu?Bptx!tR^|VmOI;6#O7Z+i(ghj zgR1PN??6ogYkb}mG_zW1JeQ@Q#gmNddJVik4}A?ny}iDN`U`V5;lT^fo;{<3!3cjV zoOa3SE3emQG8wB0NOQ4}5IOI(W^m8vwRz|4QAK6ieFfkvy96Jm0O&|ToM-q94|!v~ zrh%8baxa|ksmrQGeSWAD)U-euYVk&r0d-$QT@kd?q zC7gGG_Mnm!+IkYYIFiY@@)_L--{sjGX4wlu-4-W4CMHV3@aw|9e{_E(0*(7 zYLmw$BwVizHPL38W3-C2dM2@eV`+avV%wM@bjw>I)wVV1t3de-i7?4Lytzk2{GZ1z zW27(SI#ZguH0Y^6Q@Ru@zV=6okDq^}G z47&F18fZK)_2mS-O`tVdU8n6$NH^glqww1)QR ztPK@_90MQ#;Y+KyuwX<;jSFiMReMz#w`~V;Kx9Vl;loh^b706#(I1o#u;<(JQo$mp zS%VnQbpmp>Wc*GfWMr3Vm#;5m!@dWVK3_m9K=B}}c$7}prs~)phK}GQm=;4MU_5UF z9(bHnyKO{FxYAx1#ycoBHZ}^+e8%${R{O=U*QC2eB)N$yE2E3(Z%MKdo zZu$8KO5sSLPV_MCxcHLRWfKE%*}22jW_l=4qNAR>`~y7U#L}^s*X`OhG;wcaL1p%C`t+sh;NFyGhw_qUf(m+n6q@L08saUPA-eawUyx*3n9lF}?!_&?as zR?*G`GfH@T)^nZWi*aA<)-JS&WJya&kpbm$pLML~IyQa@-@t=;4=k8gcV$qdb=R}$ zgR}NlNR5+|Q+T0GZDGpVv!r#245S^*wu;nFN{$mqOW-sJ(N`ac@6_ZQ`;dDwEc(}@ z5iB+%K3)>um2`>5Ley^N_EG6s^miu+S@I=)7L)}qfD%kJhPy40)`Cym7K;xRHg$?pJ?wTo zI)Mi%lk=u$JwFl@}#3}1h0swp;F^GH;X?Y!r-Fpz5_wi#U%|tq9PuHAzaBxOhGzX@k^ z$6-r+)B&OND&JRB1vWSerz zbuw3MMgk7bO0BZTU<)I#?uqTg|`4quT9BGwA ze1(cf)vII3MPR7O?c2ZS$V>DJVP7Z!G9YxfUIM7xv|}x63kY$EI7E!la)mSr$zHga zuf4CrhIW69xqJrhKpCc(<(Nz>Gr6o9}V30{<68A}XQ z2O|HICr^l@JXfwzmteo-7ZoW6jZaM2R~`^xxKa+&k#ubv`GS(bb8QumT{3?;zg!s| z7DWhpGKBXN<81p1$7`(vUJusf+!Cb&j05p_(r4dD8PU_z7uXER9AFe~^SI2=tj5%C z3QZz5>p_Wmy#FR>fqOj?6qE!iV(Sy-4Rat^;aO&fZv^IdmyTiLe6!Rjp`WRjw1Ysl zc#@sEFCGg6C8ieEljMW_Fexc1W?!G~b=560sCvbPBR6-Wcm@SIH7jk8_~Q}O-&4yU zLV3U8;RnEEY!TdOuUTp?jp{kOlC7EHkFUKNw?5TJEdO~D5~U)+1$EQOJNUJd83ia= zLKx^SwwBY@_8_(#LLq@piX)7Lt;oDv{5X55RP>}=5V*nI&Q+)z#!L^l!+f}5^z<3- z5*W+$0Amm1yvG*H$Zw#_e&%PZZmTaK*2Ib4e0yUbDC2%W0z?aG>1SqUCn_e{J@xW* z`9Kq9Z6o?^>Y86X=_va^(S5QzwOlNHi>}k9YkAIP@sbcBZQ&TGfy+6a znD&m2^uj`i>ii`rPjV?_G*k)L7U218UjM?fRAn>>GqCU(Cn)f@h2*6?rV zRkpFk2h&bbn%)b(Jl;{xb0{Q-MD6!KaVEw-%-I6~#86EzZ>F=e)3NY4`6;L?X_~mzt+XoyH%6n*mEP*OmwQOq z5I$vfH^i6kGczH9p2Tp|YH%>{F#!>F?HcPY=R2pMIqKy^R&Y>oBc4W#g^v$lK1uDu z8``;FMLpY8TK2Lb4Xvd0GbcjAb&tDhtENYM(B#OTD|-Z6ySlp4ZkGOlK`Z(0s}9P> zkUD(qTurzomvHMnhj{`Ml}{xUeqBo;aP(>#nz)E6m3}O_@}<~$WhwOnl%^*MR583P zD$si3+xSTEm9Hpj9)E9TvRhueFiR^ti`R2D@1>NgUB}piQ#;lU zmsM{^#rq_u)D_RG5}4eYFAlaPjY-k43)`mj>y7c2HH|0t^bE%dCKkbqUF2h3B|i5m%~7Pq1w5u4sX<~aFEX`RUBox?B+^+XOEx)f$yP)jc*hy8>){+K3G$w(Go|1^wV6y8RBot+|6>wEkpHqq473?^hFxH4(Qfc&FGcvx6r z=W1qVW~}v4hH;q-k`==m)2oW~XcRuv4$5;*rB@m6$J)_bA3l7T_rdprLu)++=A4E9 zvhWp3FLXLa`QdB#2CV;Lv1ST{f3qKWaLnzOt=`&*-ycz6bz4cRl9Aj9Uio(9@wGEU zZuP9;-<9N{Ers+mC`scS=Daw=d)ek|LlWzWS%2p0f`j0^CX&4;wBtbdElDdN<#`0Y zbB{}8aB!vYJvg^q6`fk3NarcaChIF;fz+)M*TQydVm<_w*$W3Me~Si3Zw8}XWV(Tn zE1jqUMoY`8-IF+yY{vJDfv{$zbFtjkC{~7MbjZw;{E6rMt-o)0Gs*pUuOe#xWxMoE z5hbcTX~9#o_P1w#g9gC{Tbvw_7zY@I)zey2*xN6`X+u;0{l;f_cs|O`#Fc*`_GxZx zFU-$>UtFvOx&qnDp8+W=9l+GpjlVK0Rq*gAgBcnk_Vi!w-MZ=#|BUPBMhlJ6_J2{H z*{~_-f8cK%vwRZdVN-ircQ)Mq71}5ozdq-X$t8S2wi17MD$JX$xVV@OCVBH)4_Jig z1Az<l9-=#JZ^a7ceyI3xT80%M6X+LX;6AOr;gX8^iozQG=&P!50WkE6AfHyD3wZ7245 zZQBtN6I0r04@Ay6J9>S0`x%u)8GH05W+I#omBTEF%Qb>buRftI?>~E|@^PDlT^tD= zK-*8WwX_)IDs9*=DQdiOT3%lMMR=xwXltP6k8A34CMQQ?nUJQPkGJ=X(dv0<&CM|& z@GlH<+6t7y6gWbGHJ ze&uX-cFA;`@TLR$TkpRT$C^Q3FprlRS_7^sNMYHLj6eDgsbyf4&~Y30We@!13c6Yb z_sgddFE8H$Lvgo^ZhZZv93OYR7+1(?tBoNHTEL~ootg(~G_sm)RgVzSQ(w;l)>Qmn zflukaqW>d7D7Vgk>P6TFFRx$ZAJ_kSNYkzH`@5>zc+d^6^sG`})OjMpFhB+1 z8chwdgOH>ZG`D!(#1wb`t+k2o*mQVPMPaZ)R~d@X6&p)alD-AOQ5ts+cT~aL(j?oL=!FoP2>Cj6ouQ-@49~-3 zB=?;ACpiR#QvkJqJF|0G&{GW7kkW0K5r7ig}Eh| z-_OM9{KPc?u|VD2$A|6US2P@0p#Z~>{#-+!^z^QfF0FD`_h`DFv(*GoVT3imjeKIh zC<(}KqtS2ebBu$2&TN|I@UgATdA*rF5YlC>P|h(i(T+#Qte#&ws_yk`JgPxR+$|OAh{N z;K|*lsiu~y01E9}REi2}KnVU-Qx?;JWT_YXxRI}OGPD=0jE61!7p+U>8$_uAjM!3N zVj5_BI!hd-!o{uQ;_RT3U^3p8hMueA;IsLCJv1a_lJ7$}u*M+m(Uz751v(!xt-O}qTu*dWp7JQy4-{LB$U={&mu3xuLZO}u zj#UiCz9G=Yum|o~G9HgFxc6myj6;uUzwV~J^}*?+l7$XEz-oytTV+k##AJYk!qiz zHqsZjpj~ib;^fLJT4vb*s6Ge%Wj?*PE}n_ewoK>qJUg|(Hf#cfDbj|CeZvNC>bS5U z&TZW@mKnw!9>&Ro352lRIfY{XK2XiuZDZ(xgM=oEbC<6@*7YEaXqS7GA_si97)y{h$uiQz#{#`XRsYlIb$7R|J zqAbgu$kjy^tUo5FZ~r-9wqyhLbNz?O{Oj%*5l1s{gmkzAz_kNr;Z9Ruy8?Md0igbn0|Ia-oND5Tig`@~o{O(fD(iyR9 zkH9Xedjw^@jR5sNNIc(uZwxJ4{^^0>zzD87L2aXC5UavEZK5Q;@S}PAGR? zjJ|C6{5ZGXXUsz|mYdo}C`nqT&@|{Kf(8>hDI~WA2SQ6CD8rY{C@UK(aJ1j z5A}ds*Q$hY>wZh$_z{<>&%Nb6`6+!!sD286Ha?CX%8?sRXhO<ux2JYt`x^Vz3KFoEK>D~gK5(kW@dqvb$ zn65Mp+O?n#H2r#+53v>#=o)l<=+aTM#a0(iZ6nt9S}Tr>fa41cJ9jf5=)0sPxkM3Y z@q*a~NIB9cwSQdMx5!+Lv$w}3YH+5Lq^tuJpVt$4j5bB%&tI?4r4as@S^;@>F6Rvt z9pW)3`ES5g!mmLqmm)W$!{4F{`Eg~d4S0|8rK@+yKZUaKr;vSuk_>mJjztaG`r)U3 zy|>c8^W~2w!~f|+dcQ>ClGDAS!)^fUJef6;SOS)R>|<83%$2^mi}Eg$m(voy=rNs+ z6(#29S60fb?Bja9`v8T?FIhxsp{zKy;bQggT+8-qLitt|^2tjCjsb^GR<}@^nXMf? z&bge_Bq&jKUQ1u(9I5i+rN_*nNGb*bDeF%q^63)M+TghHpF0CL2{))xP<+~a%|$t7 zN>4-b1yWDLPBqdM$kZt^Bh730CedlX;7gk!if{(6ftp=1f)tiEY!d5WBm}=j&h0%f z_TjOL39p^kd(4yD)F~E!{+}%d0BUmN^Xy4s^BZUz4`anU<#&fI|LoP}77)+`>sn1% zFMBvstUR$W8+LqXtu5$=5<}e)Q^*_^|Jj)o$3vI7`Wn1D8pL+&+wA z$Xy_i-FhwH4O*4Fzr((Fl!i&1XcIG_)%hUz*bQW0xgfa@r?lT7dbz#lP$gk4Bw5jC$`!^pSc>2D07$Jywy z0v!%xo?#Y1mGk-iUs_gA`SXh$y$t2Yl4UJ?*5okC& z!t_o>Q^GTW+(`jkh6BOyq{JQ}ten*I2rMmk*zN4X+k0}F5L0PjtptrvySxE4A-xdl z#XgEB5PUzpGj2NKHn488_0u{EpTAC)5e%7}v^c;Z*u2Tb|6SS2)M+aHFvG?JVUVx9 zI7)uC6OcrS_4Y;<+a{Z|-DIjLEE){EoyCh`vh{;{H03J%mWd~MTmV*itp`54XIVqN zfBg#iQG9UuDmb*swUk&LJ?ju_v%oQ9ZuRjcO`1Xg&#%BBam#*m`}q=RuZRJv3#d01 z_N5#17D&%WZ=%0to>u>o4wJjOX&SF-P`*W^mdAn_u2CSlRk^5l-$J z4y3BDk#tmmqW_TPunNd02Z&66vNGu)t{dYVrc9{lvE??}SyVhE`YmeyK6JK}Zj?c} z;FJ3X5mE4wmj`5A7l%ttjshhzXg&1a{r3c9ExVwh#S5Tzb%@tj#KQsVS+wILKbbP3 zar=ev3|jkV?>^HOhFksX9z%_ay!=a>GEj7R^P>Bbk#!zu4&uWiCEgT*5VKb5FsZuL zTr+}Iq}8{G&CU#sb*X~@Awxq$9wTZPi>V9B`tfO=C z=+4%5^8Y4UG8u7^QG%siP+yCw1^OF-FtvvVBu{pE8%6&{06bCy40_P>V!G=2-{5vY zcnBchF$QpQYFwr2b+wl<+;>iE;N5q)yd>Zo1>_W9*n)i8=%6e)^a7@^Q^)4{L>Y?5 zC5oida*R3pflP;0=56(S=h%!;hFZIL3on{S)C&7B+*IpcIi8Kb{F8Qrab5Y236~UV|ks-G>5<~IT z_0^`+cdS(r!I8`KIelgBB>+4d6{{@0fQEe_p$&az#z7ta9m=lWo0ya zyV_wlWP}l^rahL5OeW!s?D?ePvY-J8cjaw;Zn2g3&f=t2d5UNKMp1@CF@z2Iq>R5Z z{OFI*OnC3HayR*IC$yy?L!3VVO9II)FK}}g^?lDmdQxLJp;RIf8=DG@7Sc5)b}e+) zJP*GC^qIDLeaY?a&6PC3G=PZ~S+DaN%k{|#EULNauf5D6{#?6uK#q^ePJ6{UQSYKT zoPt$EF9_)dL-c|KEyVvESMHcG=_Jl{&|w3=-)vS2-c4d0G-F1F<-&E1Vy!JgPPsyl zaz#dgd9tS7Wen{xd0JhH9D&y-O5crFW!Rg^PM~Q+mVo8Hou0r4YUI=pz!xaoxWQXj zSX5*V?1(V>ZW|1Mf!7<01P9za5)N+{RR?zXz4m-l)vNzHuUF9~bLxP*xdHur#y2N3 z(;|72?=>UhGNfe_Xnbb#k7FVG6nN}3Zx@V!_flr#pcO-++Jff}|zyl`Ak9ay#=1hROAVU7yY0YAS)58{a|ed zxmYoFzhAaI-8)L4kq8lAuFzxpd8?-~>bvr5dJa&ZgXyyf$*6fZQEf33YG^C zU0PG!RQ693!|3jNwzRbHT6A67>;TY3gvARSTuW@$>xT09QZCh!5dX=lEjAzf7MqWu zK}}hnk8hOV%N4YnnnG=r%>J^)AoSw8JT$zG4tpPEHnr$L9E=7T?62!&tqaSZr036f z`&y!9bRjVGbdROLnp9jW?0e$Z_n3;b;tBQ`a;#xq*b_HZyuo>c-mOKw(i zS~)=eMKA6@FE%fR7guQ1SmzWiFm-I25@Zg2UZHR{|MI$bKTcsvJsDv~&L8t}%k?Ea@H^iMB63KbKj zI}N-NVNbW`Hf0H%?@IL30Y}#7v+5Hh>@SjR>+CcKvPT%b^ARWx)Km_h{4a|g!Yx@Q zPDanqe;Io1?ec-*X0gf&L0RPkl^@+(+9p;k|A?rHw1-Y`{aytu!qq)QQ)` z|53F^QP%)Qln=DC*etS1XlBleipT{0a2zP<$`Cm18CQVbJ3j*~PpjSXb@laXSFiq? zo{`}{2T65v8c13dws|TVGCcJ|j`AngRRG>Xq4;#4nm?|!=3*#md@6MgF|PbYZY2RR0#6um1PD}eB8{Qmex|x8HMfbP2O`Vr*jVx z6K$;kf-A8S)1SIFxeh2q6!HHj=t5V$f5JknOdIXxJ`2&lR*uG-_dZj*1uY=IQ3FDn z3O@t2d3(A>7(HXemPCTU5Wvl`yJcWQn|A;oknZwV(Q>=AHgEm#cQhbCGF^fZWrDV_ zzd=yEGNt9k%YIOJvw5PvsBk=?Jla~N@)!R9C3s+Wk2_poj7*I8m+xd}ZY6~ZlHq?= zlSxvtJhI~n*@{1WfFY?q@yithX86@#8h$ey#dBAnlj4;fZ{Qb`ss}%7XV$Gi^0Ax; z?41h-|2grHo=iQd_g`#3^=draH{BnoU(F5?0G*J2lC%jhVA9jla=VN`^GXWQV5}y*4e?r^^%Er>oO{xG zv39krqXd{sR?B8ta8-X1<_x;dL}F$AgFqdZVldqIQ49uJiGo}|;E7)_Bh9{}QP?>5+aRZRdyo4q&_0Tpm}=-O=OQ@0 z+BCW-9?_`H!gjoluA6$wxdX~PP1ff7apihQCQw3_hXW!Q5XQ7Ej(l`8&xl z%eX}Ndr6-9PG|^Azf+>KI71jntak2k$M|w9=oCg^F~S^$_cu2XwVx7_$Lk0MBmxnW z{maaWIOnmMf)yuQ(6V`*1R8oA%*>VN>0e&Ye>|d);eNLhc(LyhUaXq$@KWSPKUe@s z22k?(A2QHN0PN=v*+zVAEfhU1Li+9psk=>FaQdBAu?fd9}_nT#sL@e#8jwE(hTnmvTPyq)vSSm<_A=H*Q_tm?Szo#W>zSw>Bs%o5xbW zYGs@oBRG3Dl5bMci}#Gh-WyU{RNrRiw2@wuK?FpafQWPu1w)H;5lHBvM+guC zA^Dy6lHkn#zWe@JcYNl(ckeyte$MB7&bdaJrk@K9GgF*2I(#&4;Tb<(J^0|qEecnt ze~)he(IWBe!ao}dQr@lICKVQ^P^BBkKRuG}^?hYQBzsIg_VB~dO2S{l`gxY7j);k4riu(t#HK7)hXp{hG9aae11itTUBLcWwey^dM#&0`?I+k zcTSAl^u8!F8ou-X(S@e!rZ8-B#Ymyle z>%*$}ZWiJ=HDwpGg>iVGmxnBobI-{mzNU&Wk>*@`XTLc=V@V6OKEMgHrcUay65JJPpqd(^79!wNT?q=h?)^)=&NF z39&%3_rP@I`;ZV?^>XpGhVX?|<@v=$8ELNfyr2L2$4Ot*r_es|8f}Q1b|k&<;Z6t5 zZ|;|==Ee-DcMf1L?2o)Q`?)x9X>2-O(yc-yKct8=Bh?`*TR5`^a&}un(1g z5fTsHyEoEf`Y}y-b7bFbgXG4RH0`zC(T}Oate)xs@BL`S_H^0ARwrjM(y zu}X>i8ZozL4;OTenq^&V2YI(zHKdZZZrz&PqlMv;gFC8Fn!g`S}$_hFhn5!{zJ4ZP zJu$GZY}{+EKOxHhp{xq%#q-YE+uNtk0Q*wt&=l)l)iY12WzVZVCMJIBG>PN74Lo(P zf)x9X=JdD&`2imD?70C_T-8Ne>H2Eo`VrQALYPeyi~=rD*a_oCid^$ySLD}>&08v^73-0bFq6_50{QxE6mScA&JrbNfk#3y>3R# zZ-nfA@twXL<<#+*hG8U(ei>??QVw5Y%9T(~Rk%>rD9>8^ZXgThK7$s6km5pi{m;8E zEu>1sKC?1Et8y;+QY#^B+?w{i_ex0~sOL zPmES7rKrxV2?;6Jo=b|YSf72*kTa4gq1wVX<}2aVeO88sSuS~cW;q9W8=rEPIPWOT zk;X*X7E9*S(m=-g!{Q2VYswx;&621AZ{LngV=|2A78;0TDOac?)&94lLz{Rqy~+>=pXLT zdTdL-H@JRsXDfH6c7)YzyglaAjl0mPK|Xn)${!cLPs2=&nJOgmsdo<9(elwzd!ZSx6%F*B+IJSE~xyXf?r(HD!tyd*i5wbo6tQ9isZ)rQg`>k zng>PKU5c$h2(j>1tm;cn?}J(^PLsLkw(KT+!0hnF!!cKEpdIzM<9ohJC6B%9$Ab;Lo;gGsY0uGsdD0 zBXc_faTSx6MTN^x$KU!02`SpCQj^)Ea(Z}t0UNu1X`zB9d+yxW^3|EG+qZL1yuW-~ zZ>rJ*jRVCkJ?w3S6z@U#d{dV>*8g+EC372Wq0M+R+hO{rKRmJ&Q$LmR+{@9_pm{P5EMCz zt@I1n-R!-(11uo^TEM(mlx5Ll8h4H!>A%+KTxT&gsi)1EA7-ttjteSWYm85FD?b3<_e4PaB6#^%ATi{d7%*{!{t`?C& z&goxNq`3_bCqMO?Ud<+DrKiir*?3wG`QdPDd!)G!^XH7XgQmnP<~8nomq^E_!7(`5 zsdaEFJ8GBwV;cU;!)HZBU~pA7<&jE$soo$g9nDA*EH+=t5IWAGxHz(FbAH9mfFZVB zZY-6ElI|9M^1M)A50b&vWv{hHn?5t z;N8>j>vBxl#7J6)daFcsef>Ry?nnDL8HzqZmcIoZ_z$utA0hTxs8LI^<)pbo5B@1} z&PZhUkq>VJMMP*Cr%p+&E!Eg5aF?>nMX;Ck7B1&oM(d}qOgyOjZf+GtchM zC3#hu+Dhw?jq!>7{$BI!#+bS_S2X$>l;nG@9dDyo%lyESVJ9%Iu2dD3o>Ita8&yd* zT?T1Ia+Dk#InG&a5O$|hb_C}8Gu#~=m#)fTg@jCMG$>C_sO%zB190sFHn!4@Jygs+ ztE=Z@^g%GTHKh?n%_jfK{}Cl+chp11YBYn^te8xnlxP;NdLv(KmHW;tiVU*d4v-KX z?Ca@?JC}5F>@4{-XR!|_LbbQDSK%%v4$HCrBBV@eNs6nOJolcV8!qG3e;yvkOjnZC z@Y+qTp1MSOylae?z4HD~Ehw$Qd#AGNv&9^48~6{gZJ7I-%r(MeKiyc!%Fb>|RB_pY z4B-Md0B0P&xOHdMxW74>-0$?BtF=k!^zAo4Bw(t&IZaq8%3#R+$d{qf&oWovfuSNx8~=5gnMX%)o6f~za!b%T%Y9+@%AwTf{rwmMkO{n+L=(vT#AVYaKA zF64=|X!U?-&d@9@j8x|Fp0U18T3vD|PBko{5*8PClDX|lvPIWpcmQGW5g#D@o#p|X zeY$+cu2wpIiY)DKZwzjPI6gj}V^Q$b#FP1?%KAdz`IS;UWA$gJ=VqR& zUhgJT{k;~7h%r6EPrRu9q>`#jnt158?Sj3`Q?YHpo&(AH>5-xpSM(D1KCXVpnk*L` zpSv|6`#RANjt^-~RQJ5A++ei*n$eg^2JMq2L#foy%C_|G>RISeZFlU&#mLLI_pCae zFBv#_@3Yhhb^5n zx}S!l8k}?mCqZFEI%;LVI)yw;$nh!~8^ zOm^i%n{{>8e;$kuH_n}S#ykWE8#{aESy-^Cz(s4OmsBb^IUOQ!n;j$5bepE@SkwQ9 z_p32g<^jh8InFi!_UE5=ZX5aOHKy7HEAB5A|LS6gl(cw`1HFJ_DwW-2 zr zurdUQW5;KJxr}hJ=0nMJiRWVokh97)0|%IPA?sOj@zSdXrsOoaW)CM+DOWREf3q=; zjbMhNjPAJh@4(wmspRV^mOc08NKntdz9pZ#od!LjM?NQ5FBg7Vwy>a~HgVODMJX!qqEn0|XUf>o=zGo`wfj1)anQy+hH;s`-}3mz&y zVa6!W$7%w?9?ULx|J_C0b!GGr6r+vKMafXQTM#O`2p~a{71FE<%Jh-zOQiZ3biir)fr;9!Cst? z9k98YMoQ1kRUmyNy7Z8a6Z4qQEo1g4JW11wG`CjQQYyddJGl;9unat^3m$GE&{`8L+l-sNSmG?z%wJWnd3azi|hh5*Tztsw6FfW%O`(raS zvocUDQ!9_ysZs1^IaYgd`Y@|yS}dl2D@+o7I3%j4>a}+Ooif_0(KLPL4wikj(A{yK zt1nDzoV2Xq8z~iwB@&xXjS5!+<9RHf$A;=T+_Vlk$3;_YHrcp8foK9Z^VI?eM=WaA#j@x&KSPJZn4 z$@Mj+BXe%R!3_M5>42Ym`$xCs{xr^1e&h~0c;HC5wDc-N@kN!kWl0|2wbBG;V^=w` z;8Z%FP_%^>!Q4K62K)JvZK_D~qpDhVNq&m<>uEjrQ=Doj6SAJ@&c_lVTT5K_ z_VQv*#35D{4;AREKbN{N3MA+D9E|3U*Qc>`Xl>Tz*L6rO2dXaPUt%rADAaeacaZGv}IJTVF z>^Wyxweo(LrS2YyWxwY;!{q&PGyf(*Iy|;~u59{ML^-_*mxG=wXt>4QYKoE6BT9c4 zDC+NIUS_mYV&$9}E_`{6>xbu>ayY5YjRl`aHdU;a>5m&@*6&ryWOX@DPE3f;hr=q4 zPE3sSsz~#$%2#5oG=QPs?YjjL$UM88qOwRwQa8Yw9R2h#5~|3LK&Y|gByA3L_ZFyr zGyVi+CCAcdXd(73ORHgZ0aI06@=j+5RodU**mrd^@xXb~@@Lry|JQChXQqrW*7T!L zglmYUCKyAYe*Z$nj034L<~;+$zS2&ywIz~f=E|dp>}TEqV~weJJo0Rzk>CDTobl{D zP#ComvDfsMoOatA-(AD(`#_e~w7r`BXqqM}MNVN#YP;Mv-<_ef&FS{@rkSj+%oc*C z&#}v|Z|+GA0w{Uf#^!F5LS6ZIn)JEN$@N-KSJ#4#dgNbR(1YMU6^{bQ&@=o+{_N$w z+x8UZ<8K2Q#WHj*yLC~t6GY#C*|xoVVGY}Bb0o=GD#s@J{c(vcV|{&nrr9h8@G?7X z?)<#aXug~5N+tM>NQ^Bdgu>)r>&Y8tVOIi27X*xj8-eeO^hSUQh?C!aVpppx1^2HK zjvXFg7eR@Fli{*W=A(q+?Cnz>iBlpDqWexo2TKR6Si>@?DfMa4h|Czq8-K{uj=AR% z)8lwd{oX-Vv*TmhWvfUyo3;X>OofE@*YNh9_!E0y#Q061_?ui+uB5Sj8T|ECb&5tj zm$Rf5$Ov2VV2S42#Evz^iB)A(R<2vWKpvB%r2#wiFw4FnNcGrAmjCb$(xV*^!21{+ zbHC2t-*oQtx6&-lwe~EZKF0XYR^p6wGu{7+Bj8hDLxQ;UwY5T~1$KyyvpuG2aQ&Pf zoZ&O%;yLpP@&e(>2C(s~dFA8%3vZmCXPZ|=YA%}i_#b%Kk`zVv%k<_%8bnU#EAhg> zn!gFcmlQlxMC3T$3b4269KBI&E}?&aVM;KL(Izc`2%;sfe|Hx1T<_GLj>E` z)^>CT@e8&YhI*7Gn3D$&P?Yd#q<`!71JbMyU-EpIu06Peu__{JraLr7^PTEtX5T3-TeH@$pVh48LYT;n50l5 z<5A}={~n3|qL{+C~t?jP4VEOE)kl;z zYRDtJWl0d#<;fMJ&2p1SXy4^r{E;E4<$D5(OAh)$WGH^r6?ggAEvtF9oA8aO-a1iH z*FiO}+Y3sZpZN<@-;NK?o$21S$*&Zg6qBhNtl(ZunbFo!tXXKhdG)E%m0@7$0*?2V6~hyMA+lvyz2wI<^L!)Q)pq_C5&e#D z+Kb&soLbAoS`?D$(m7-6UUSWZb`bK~yEN2N{AQ#@ceW}e^!|3)_82{<)Q2(d(DwA_ zKw{4!plCxM0l^Xr>rh%tE6;O?vu~(kaY?phz)TYh$kK<*N0tY~dC2^}O!ac(x0c5k zlg7cgr^Gom0+~JfR%?A$w7N{gf75&FO}0e7ZFEM^RVDR&oATFR7!-&G)qNJO@jlE^ zOWudVcudpKh{CS~w@(?~Krp6@`8>P0=Rll|86RW*lOOfUI1w(yL99puqf5)DldA0f z!RR!&Z;Iuq{ob$KI4{x_N~=5oO(T&HbQ1Wnm&4)Q{PZ&Qi#xD=zgm^to_JOH6o{mE zqRDDqwGT=AympdHUdh0^5v-8wycP20*Ep=YR=!J;r5b)_^fad_&MWTIjm2$SyMvZg zE=97tU3RBm$l6(zk(Z|kGZx55Ndekb@(6G)_rELhzO%5}BSxn8#r69*g5P>ty_!Ax z?$I!-q(U~ql1+C&UGYd5Z{gSMfS(g{)G;k~z zdU@4Ve9xc8_xyu@A3v8(=DH8O1q*(lG}k;&d4&I_zm4#KO?I6j_z@MDh?=g;Rz3g)=KjjIb~b^lxdRA zkrPs~V_)xVrE9jwVfNL3yj8JUM4xFHB0PA@0)+bS@pBqX)sEN2#k*SPD3uy(DHpyG zsEqw|(KG-Hi;=4bzlFfalD{_2^W*I=GT?|1J}E0d8<>?5 zuD3FPYW{@d#(d;$6-_ldVEDSd;z9-M-vRb*vbob(-VgGs1-0bL|>LM9ntu*maP?p(z4jQpM zk<_+^uAHg|M8slwDj&Oxg5eAN%E%Q67`d1cI1Ho-*d_U7JOD52BIng#`_~}#MQTns z4w<6Oo7;PP)&B)YSloACX!SY}_MRL5Tc4|OxU^C}*&7-}Al_IL<7&H*p&G+$L1GuZ z@xVi{?+

0Ah(4fOGYfngd$y!?g7CF=lmPxm#7<1rnb@|E?6DenAg-{~Z zH|va2z(3w(&_q)!F(SIlEw4aY*bKF*TO4q{zJ)NX-&I1`y|pP! zb$iMd^G>m<-)0~dAkL2>Fp^v09ng|EDywveznxm}856Y-s`t{<=37}x$=tbddzN!U z+dn13LhBmVpn;2{>kvCM!)+Jt#1*&e!dM>umioNhm0C43aM|w$Fq!-3WR>*Hat{-@Z4p6U z3;jPW1}e#vdx?>;xLbvO0zyF$>7V{fKEA%W;@#Q`_nL`C_tWsChO|oHhv90a;hKlX>5+Ur{haAdA}CC zZ_Cq8^WgdGqwXKOyUoW?l>%=V(QX+hK8pMmh0=|U*8T{kGsP^ z&9g64BAerZZABh+|L8T|P?~&%9Q7zrNp==JNS=#F;FYpkGwfNxx$hfpD_uUSV2)L< ze5Z3J_K0Pqy8GjlVe{-RFbB)K`vFmgU^!!u1M%jV67|FP!Q@$ddUKTLDV5HB^_2F_ zyp7aOyu0$oZ8HVu!^zcnD#>q@&V)_C+jmWvAq-TF8a6k36jOQq&Z96XNTzP&Oc$AO z8_Zqn)$W|p7GMbJQ~KKLlkHQXWk5ouN$-OYzCZF}_83wa5B^)2hx~;!M80U z8vpg%k*QN8QZ25gnIf&ioNgZRtOln1I%I)lRlgCs zUxX&N>sEdc!>(Bs+UxrG>vWVQt8 zK6_VdNl8frizp8Su=SZU$C9~RFT3v%Q1lcp-PaY@>|ZVipauJYg(`Wt9%oVZXfhpCGKlg(suMDwGcjY+1-SDDFEcTsy#=VL&u#T zg|+4s7ppM)-HlU!pnyW9$eq?|eXs53w2x4ZNqBq7T$b!>w!k2YHBsG-7e=Jz$oPPS z+(wUveWWM*-!oJx@khi5r2mG#lk)E5m%_3T8CvF5txk1lBek;yc}T9U#^;7p&bSx0 z+S{UsJ=Eh#J8h2F3nSRlS_%F0QD*`f=0|QcUe4Q_bZ6+5Q%9j6YXMCw|Fe&0Bnxw1 za$Q&0H6cLNRb9mhUF-J&3b_fZNFb^z`E&@Z zvT-s!Sgd9>&TAoEDW)g$NU_!3>0Hw3`Hpf%o)?l~^gxF|T$jHPTkBi__*-S{#Ahvu zFeO_>U*C)QG;t40*G!alr7I@myBa5b=EpkpZ{G715mRhNVkrk+x>X-(hxTp7m;z~W z@;!sdG6WXc$wU7RbAUv~+iFrjCsvHgrg!lczU#*G5bjX4M*&=9^%@ZKlly>}&jS2E zE?WH>;CNMDB();I8*9Aha7^P%qu#z(PNu7?tNKWf-ER#cT|RqjBVA5>(%qNDcgPUj z>p9FA(RnG;TfEp!h&G8*iHZcE5(iTSRN~0(wct%YD{f$BElP<=>FyE+H!t=>x5ik= zc>LH)p-^s8DoRInkP$`DsjZbJH`f(b3}7G`{~;05+`xP2#hi3xgBrcVSCI^Ac6A}5 zfH)8ZuseUf%pE#?a#s8N)$D8Zwkq}*b9q-Q`BoM=-&U*oolc!;u36FbmPCOx;h#{E zcKR<}Qy;VL*3Gv?92i;0^==Z5BnJR9`zCW6I&s$D^9NF=CPpM_ffCm&pA3}$SP2AC zn>RP%Oy`Jx?g$+tLc_0%?Y{17TKr0zc6Dj0D=S-m`NA@U+zU_`9*gu!+~Qq-JW{OU zcW)#ezD5PaaCRlTTHk2vNN{+?QZ6ZU!-ZrD9{OR;_9!NWtVP+df7J z4yU=|1Kzj=EIrL&hd7cCr#G?UPkA^iRX?YL_zSd ziT82FO=0BZOKQ{sjd-BedVcj>8P?KWC=!kkYpwQe3DtD9Z2HwxT#rE`lhF)mN};e& z&71j<>Ub28d*S0|`pnIe+!-l!8737z^Qo9@-Abwi;`fEb_VVH6cgsmVN{u<=!xGl8Ii}I|9eA^TMVk&k(yBrZmI*@a|ZLR`poV|Dsk>@Da>0%<7EEp~W3{^ad`3uFsDIPr(%by`}5cHMjeSw=T_ zzV2trO8vFkU-(ej@UQ$)l=U7dx;_@z6tb;3@*26IiXGuP3+kb{Q|)mPY&-lAo9(p3 ziism*@^Rs@Wo2crUccVm>gDNq-OcUgJH*&b1RP!W<){Y??gJ^>SgmkWzF)d`0Hq?8 zA3@1D@)5!>NH&r3QpWTJLgaIdg%`-8QWzSJ)7Ilf`w2V$6Ku3RgXd+oO8MKynefMaY)J<00UN?L7_t5ITN<21^!EC1Ut+3PAg zg@(!ow3Flh`4%Q>Sc8Q=A~k{Y;PXrRQpdgq#(P}E&Q{FG)A9Z)khFu#6Dwsckzgn*=YZ$askmj`KfknV3kX%+aoXHInL!|-bp0kb65n3O8lrj(@ z8LGR;(&~}@cK{d=^j%$n=zY)d@F3wRQ5O$Ts7mN3HS#$UlczilArfpC(dU}NA65o3 z@JvSCl)o-xQAzeP?mRl`4ZRjy_Rra%Co7YV76*K-;P zM2xp4hSHsa{O@IEN;Ak02IPbn8mLD&*FR?jm9f`c#I~=wh#LpFH&URBCuDj2n!%B! zJKr?y&Xp%fi=XYzSITagT&5dqGfRhAP92dYmAL}DFj=?YwZDkp${A2P(yV$?vW1h! zLFGeLrSmr^KGUxkMY{{HFdrpPNN6hbfF7+(MpSC5rL(^5M3?!6tc!%@Qf_`+YtwMT zHrlE~s7RcxuM+~V({v*UDjLelzipE^IjT9|AIy6nAi(jHI%-XNcr((aD~2gpFE zIpf#TWJrH>I_q&yD*$W*YWhO9tc~2}_R{H}!U^KdbNkm}Z^MT#Z@u>ANfe84bG|tU z)J2TOl?9zke-7i&UA4|6O9ntHq?8pTN(N#ViR;1m*23s#mk^q???Kj-InV>jzxj>s2PR*OuJ@wrE>EFkXeU;$!Ry6*;66A8s?Wgi z2~|x_`wT3iweTfJasg-S)&qJ9n;yc5$!vN^dc?8vT??-F@`!1`0Ki%mj;j4^a{C|_ zH@XVWi!-Cq&HZ3ca#u`A?0MZHzOGazW13+|iZQpfRHITTwpYQis|maMyMV4llRIfF zryCyKG1f;ldVL#|1M?wKuV3FSL#NZwjqe}RZjf>gv6iqF@iLRr&mDT6Q~|~{ywC(@ z?Z4^F{tBx|{h)fEuCmd{-ffnryc$0?Bp*t+fYmF$J;9XU(U(|V2=rC-=nlwZCTaRb#EAU3>CCTO7%!j*XS5h_jlnTcvAmes^v5 zJ;O9ZMwP0$fF|696#pT3yP16;pKKaexehP3xJ`!i(aC4inc$)Hg%4+4C(WQ46fOk=)sY1LL-#exxYvBkXEp7jJyIl_fu({OE4ETt z-=vp&^4XO<+i86g5d@mK zaup~e(H+?J)5{+=)%l!(lJU?WkLgI~V()B#izC631#PJLX6G%Apq*4_m5L zYJ0>$&Sd0FHIrI;d_Ybqr}pzMbL%Jd_4PmY?vOLOCWvmYlubMx^~jeeP|HDlsnL7V-ETy_><_0%@(dEUkr`h|KKwK&C}1YYo+^vELYad}biFOu(zyQBiRJT8%x}fvp$KM3e zZl+mw3>xG^*Dl%P*LRZfbMBDJJyRX<)m!((6|B5Zk~AR^_|=W<5tH8NqC z>ARF2<?q_5b!aNc>j@|nwnG(M#1Hh9{TPO(AYnRo`WyH!_ubKX4~ZR=nVl)IY> z>?3}jDl3=fvSImg*3Z~i4=wuk^$FfVUGNTH(rz^rd2mUviS&?aWk{efI~=3`!h@8o zyV-O96)RJlj84(89{6w9Pl~1#_ITV?hCmY0HqE~t+3#6BZ@0QQX?Zeq2WAfB#tV%Q zIhU4=Ck~}tLlkq6OZ%8lRPL5YKB@4qBLkB2+RFu_%mCLLGv=LrRP7VIBW!*bfSvPS z!dlbxf^^&;7C%c(JfWf)@UQ;G`Z7~(jJZe5wdGFJ2K>2gF()oY)yjo_TU{_T;X`$) zK%}-j5wh0MC}gh1#a?tF=?sVRGEh=Q?bkKhH`WsW#LB?HSwSH)V%ZlLRZf>Gd;M#= z0f@Wyae7dzR(>Q{x4$f>Xz4}n@IUjg)F}+~HCh>w%}}|(NSSF#v^uw>m(Mmk90Mj# zxXZ;!c&!Z3UZ@}J^i+V8mvKJy_&ZN`L!(wC9k)<+}3qX zrz0UBzZeif!GofBk9bZBqq06tKmAw^NGWgk$3q?v2_kFMeS69y51F>IamJF<+qP?S zj{2`2vaf6~Ogeeub9Pr`RaNTEyUT491KVRKq)?!1XCZ)Suh&nz8ZBrFgH7IPRU6^=YjBo92u3v3V?JzASU^tjfvlVVimMz)AkfjNGSn^f#G^ zlpE&eAkc9PICCoaV;+sB)uWelv!CTfb`n00+#uJyq#vjJNo)K$(4+l( zh_`-Ktvr;V!JH=(opa31RTta3Vzz3&XRhc*Y+rXs%bQ!ACZG6>+@!O6^!|^~<0nAj4Wb zDF3D-X{y}>%kGsvXOy))v+dnckEu>;&t8W>2BaiqUqgFq#+Sl4S+FVp9OiQZVRV#a zDy`vr??yB8c~RIh2*vhF=&}uXpL0a;IVaPy5@oWww{08U>_Vy;>>%C-ZOTk%g|lpe z*3wKVfbY#NXY4C=am_dK2uo#;UO<-1ZMjxhx*0yONglQv+ElAX)EU^?{9hMP(g?~Q zvy;{Ctlp=SdNA`o#stIVxqY>~kiu?(pP@h4+g@tg4hUL*Y`$aJXc@C^r=(}KclsE^ zNyj5bzt9cnk1Av4BdJQPe{rO~ETY;-chA_l_RWFczZKbiZRl-aAYT18S>;jthuUkDu%|FTA01X0OEIKmx68P0N>iDI`%!!-@Xm zhCJEvln9AUNHb`|& zsk=3<_t}BNAnZjHRZveD!S&3{nehBSFRr$)4EU zY|sd%;3?g!8 z#GX@Fsv3De)s+o2n21BfK8@JfzLGe^mI!Y}5fs}NAZt4#Sr#vR41Yec=OuBNj zCUVNjf7Oc!)f<8YtdEG1LozSmu%LFXc5$(*-T$s~N8;mcjjccTkW$w!f-jRQBli(i zTUPfScKg!bs5pU5(SS~)F%Ao3;9ia^uy2@LNE6D6{nvx^q>iO^Y3TsCBRxIPSYWHeO*KXkBOh1N{7qC98=(+XO*oGr_8* zc4U+KN3Gu=knJ?r4LIEcn51?N=I^?3ZU&?SDx8*lI*J^_Rx0a@5K8M|CA8-ohZ3R$ z4X@jzTp^*s?|yFZjYw2K-dpZx=KXG0KLI?3Xb^E{${r%h9Bky?;sg?3EscXrP zzOMg=kN{1k9Y?p3<71Ti-PJ@gdK{5}V|!=e+FAVW z*5}esqLx>MgX(=NVTb9Fg};}J8AT|FY%{I*5_gr{;9L#`O{8eY0JJq?&)_tRQ8Q4y zJJXJJ<2pn4=ouRyQ}do<61BCmv|B_O$~?58CWlnfAeUVsl=u08> zBPkE8kQm!uZu5oguGUE(V7S9m#6Q#puSrQvDwJDm^f`K~%cUIrs7J=Zh@YZi234{A*ta1c66 z()TqFjhvC2n$`YHBve@))*Cm>y-wO;)Lp)=)l_t?JNhW=R6`Uh*G^3}d0k$vfs{^? z!az-VPsbTHt%T#j_;dF5?VTqoTtb)83E3iWmiv*H*;jqn=eBo!&a=qoWUH3UFAOEwZiq&bbD!#u{pq~NS@OE4e?!(pmT@9R*7To&MH|ls+#s@ zb1N}TVM|hNpFYLQ=e>D~R>C4Ys`58M8dcdBTW^h`p6m1#zUQ*Paot^oyPgrk5Ob|Q z!N};!1gq?KS}MKQ8jWBQm(BDK;9iJs9MX74xzy)kuYP|+s(jhK4K#~Bv z8<7K2e7dr2FWrT7-hmih;oGoGN9s!K8>FP)L7_|qE!!+AHnvEVGc^^t=Xema|4{*N zgHsmZ<{b)QT@@pN?hK^(QrcAmI{m060zxL$56HE5sK&2OWr$^hTLD&^bc9ERkD;5eg6MO)BP#AMCn)>p}8K{?Y%(TjlMK$$~GP<}3 z!qXlqv6etcZJ3(6pz84=Y6+cBo$~{HCh~rp=U9ySb^Y2MI=;TXce(3KWCOgfH(f6g z9OOpI8hMkZ8yw_bcL_`U+?jPo`rNsCU-T!^_<8I5dYP%IKY&!?NHXAV<6JX&qytOT z=d%&Ztug$$^5NT;-32(Cz#x6lY5y9NPM#YmM_BNhXD7SUwCs6q;XA&Nq2}2MC?+{# zQ}$}ZXnre@nB@3mIx-Gy@Y zLQ_X)=f#7#g;5ghdFhDzg@H;I=aT_rh#*Wnn%xF0XRO@5@yQniZ#kK3 zS#$uYAv}fwHJ((!$`FFKYIcNn3cl#~dwfS>=nLHg5Nw8MMR1R9!2;RZ>h;Pohlhj? z^ZonxsL*u=s$}nuet3d7fSNtY(}G{K>*TMg(~*H9V%KYb0kN?F?`A54MvFgt&-ud8 z`?@GwbNlnFLm+WS2RqZm?UniD+{tc~5fXRczuuQ$n-t5Bm}VL&M9)r7H-Q`#P1PC? zIqBeH=H@Pzm76jryam%Fc#WFTh;VJL zztpnA`_52>DeNrbVz(>q-1wdO>l{eyJ1Jj+jvnFVbRcc%f%*|4@d&6qD+ECCV=tWX zr9{Sa7;p@V1>z08eT!8qerNzTK}M^`CN9gqADvvg!aHwK4=9ve``^k#WD%Mel0ACT zX=T&(Wt$O0t$D^5v<}xbEL+;Tee#;YX;S&wDfcctd)?yJIAU=M;rB!%(XnDED&Ya@LWB!n^8^^MY)c zrXojjE3lDJuLkAfv7gX4g`335f)_ag?fnH}w#DeLH{@^JfUvvG$?8QWo_2QMgCY{4 zocYh$&wq|u2+u?EzIf}_=&xTK!T+7#?*ml0-WYu-uuw}&tGCR<1%V3ab$`B||HWHw z+_>=pjzIX64Wsvjs`A&Pi3uX8iqTJ$*_LndHOf3m&&?yzS|E@G)P4amAM~=*R`-YKf8c0+Y_SQfM`4cgAYJITUS^2>t`1TmN)G=&vyfANay=*{(A`g7sIXBAub)x zATfa+en?rmBC-#lm$I2)U1?r~%5lr048%`pA=SHJQ|MJ=!FTER8LxboraHTJ;YjOn zbhpo!T46Msi{2IbtzhjLga2z8gW|P~Yz=yYU5;Q5{&oXl5d9}ogYQm!Ohvpi@3ODu zFFTzY5W5t)4ZY{oRi|W6+bDQ9V10!4oROCahC=Cm7Hjq)!-zs~dgUC6t zzP|3*A_YzA`$}AqdTHHM!4H_6#1!)KraC63rlw{&7U%zKOi%Fl(3-!&n*b|Y>|(xM zQq2TOk)hW{of=3Iz<3ma-2c;<3PxOC8A`&z8X^ef*${W zc-g-TUbYbs51j63^GC#k{%boKftL`sfLfQSsmGOu_?0h1nxLru`Z}#~g4cNf2Zf9m zHYv&@AY2K_Frt_8KlyIWE;I*9BL2*&qIV>#3TA2lhOh|w2B10)-VI8E8_u9Y4{)2U zBseMp5qj`$5Z$<;DNf1Q09e7BSSJz28Q60-!oj0RZoJ6NG*sb`XvO5O zwh@XE{H+l>UY@|ksl!PtU$>+o!De#j>STL*g0{bJ>P$_|X*h(&WaBOE)C8lR{2W@c z+`0v|F%awx4%$81z!pP-P4><;RCI9TVD#+VTPyfUW+#WBlPkJ*bEkLP$wC7ZU;b=v8AX*zND!hHlvjKtcZhkn8xyJ$e6M z+{pWt1i|4{czNFV_Sg^cMtspj~VJ8+$|v?B}lqpw~pOhZ7f0 zIDtk@!C$e5<`cd(}L|~2ZV2sRpvD+`I9S< z5e&!={MtK{<%zbm-U9otxKD_`^5gF(CMCJE#^S{OY#L_;3*fC)x#z8+nL1HS@|j@h z9wi7h1oroL=Rd`4=qvs%*dmo5z!KZlDkvn|7zew%8zXrWaRVoBS*6}Yl#73K1MwAt zclZX15D<*SD_#*6HbAt*=oKaK;D&D5X1V(Q{{E>q0r>-wZ+80!{yp)}1i$l(%gvk3 zAXoS=__Oh#!EeyIhjQqGH$$zi-dN1a>VoC-tsNi*sP79ALHl%Vn0d{p07i@bI+R?9 z5Mqmqe~7ydNb|@0&1vhqB-sQ|*Pwpyl!nIF^%oVwUw_u$|1S&_Z_WRf!EXxhjx`!4 z97{KOotY_jx#YIOhCvug@#o*|FHZj}@QMl+Jj)JTAFyy+9GJ6xaUehX3Q`UT3tqaW zIsWK=L@GDL2D!lH4O|$nx$!!k|6MVHj=r+Gz<|HK@xLOk!MA)tsF2w2f_M{Dc+aX~ z1_X=VZAh?SL^?P0CV!}=Kp%Ergik99S^qvYJzWG*#vhg0=sh)o0yLy(=hB^{mkt0> z3p&a}+g`Nn1ik5v+s1q&Rk?p6iqIPd-wIHq*c%iL!J!kQU}75}@V*EvOtEAnGyn&? zx}Og7q6^01HYen>I0VaAV@E<2QyAYE%T3$UQyg8yNVFau-k^2b+NS zjOn{wKI?QGc3`P=p4YXX1_aZD;f!E1GBas8d>OntxGJ>B0)2Bu$;~+HmynVSTH29@ zVmrlaaAp(?1snjq5cMO{WDml(12OvPNZSnbavORsG0oeDY9{z_Y8|^tH(ZkRP*fY0 z8l(5Ud8u|KqR1EUIMi`)H8s5E48azW%u~8S-1vJ?$pS{LFXI8}Z&i5Jx@3RmfcZfX z3-1~^hZlFuU_p!b}U5x4mx_*7U}giX{3+bDTf@@3m|-6cnxiTTmu+M#Jf3h zGQy%#&A?D$VN+1Ru6^#&sc2w*esjm(mOU)y2>v1gj!E0CXdQ1}F}#cQB^Z+oRu=BT zBW#Zz1(Dhj>o+eqcs1VVLw+Yo2-4w18k~3TyIo4tVzm;=_TZ~3Wbx}gc>l%`1aEo( zv!zI$HIk_`_KdiNXix(<5>TA0jzjrc%kcXU-5hc$LJ2MP zV2RUt<%&qyjkE$Be)kAcaX%0_iE9Rb;7p(`ry5SY7QK-3rl>PuK z8k?7wS9E=CZLR3eNWCT_fh-v)ShLCnduGo416~W@V+&#}G%dPM>C}ttLTKuQF#aFp zv8=}LN*e&MF*2e3Po}0PoKX*QL03(Ma=-|F)0e4@Dm~T=(D^_LmsKOI{aZD=soL-J z8Z_Elw@FofklYf2We+3rj!Z31n)LcXVCA%D=fx@~eumD8mlwdIj?qELa|~p~)Ri#m z2Nzf!Io72M6>I1u8}9V*@BmzS?tjPrh7j}asA&P+Abu&Ia|u%2`jup1?JppnT+&)* z0U^+;){VOevK^%TNwG^$1~4;v&{r$qMD@Hx^_}`32GTgQ)$1j_K&$yMD`#K#wR#he zhb<8%W?k_(*l(c&;z}K`Tx9MlmMhO)!*l73IW#s=egatP6k>55R4TrE2Kr7H0y+jF z%5Q_*sChT0J7gpTAFk-1)6>xr1xun@eXM}HBF!DK%rA$N78&)bRr3X8m?Z`b$lYht zVQ-j~bpMF;)yve?Zt;_-6B3sQ3k$O>xQbRUql7#fa}#YOgXiboNohkGWdWv=wU-k z4VF4ZS44k#$9aJ3NTI~Ra#($mYHr^n`3m?V0Wr5{>31z{NFv;%ZCl|9W)|a7vvL-%}Pm^dubAZ4FpeyMwZ83c8 zbf1)QJ4ZxW8;+tUF0evu7oWcEfn$S_Mzxum-O%RZUzLr8JPd--L&W-FcTghcegRrA zhJz$iCR|_P39R)eGC-%)9U|si6kN6F!NRGCnSKp(=gzs)ZQ)e)KKu zW)LD3X={(*kQ%3aIYB%cas1PM#G^rtp0UpioVvEJ+g(!~4?ZEqE8l%SCf`pM=nmr~ z)~FmNfy!N{8bf(x7ke7Np0As>7a6^pH!u=tg(bDOHv#hN8(c)qyGxkvZ^d!JaM0Hn z17hxs^mGRca)Dj#FCZ3#BnzwilpJ&yz{i(V&ffA_pT-j7DrX#!s$MY37(`$SoGfcG z6O)qfKkE`PhFMG%g%(`540+=oDu&b?4|q{i05um~kC4U?5PAlbZQ_6M4B|6Sz;T#r z!#PV*%kG-2M5w?^G0$Y&fh13Vz}hU-lJ^mhLBGLBE{Dp+1uU84J${-i1yXtjxHXF& z$XAU;lR?q5rEsh|uqnRpf7k4hGYqLq+4z+L1=(?lsAWT1FBxDk>`5*3=1_pKuHA;jzd@-s)Aw zNMUzi)=d$0AVlJ$;ESLu6tX*kuTFBwD?I=TjVAD(x-(TU&v=5U-{2Ucf~I=zHWuCI$VJAqdFxwUB!Vst)p?nI4l71U%7Bu{o^Izre34RgIx z*~lL86eBKRQWXD+Y_A2X5b~I6(D-55y-&K@ znylUnTkv)`)9_$57^)_-l&qDBWBs4w?>^pqw6dD}i~20)?MOpJCWsy&01PDB(M>}h60u$e$4}zTp#c0H(^9DB+I*;^ z=6={-nIaBw5^^%K^JMzvpOCC-_~Wz--M_n{9rEO4H+NfC*yO+-vGLZFB!DEug-?)h z3|f+ewT2mEfbe0s0*5+Dg*z9NRTHrX8FBwefbG?h7N7CB3o$3 z8MvU`B$UPh%Hrn*(SH>WM9bMo5cZ@ju#j!wZI37Hv;^Fo&u1Fy4(x^zxQC`?U@ake zwvDt*%{#l7x{;%+)A{g{NEvKk{yK+QO@!$HH@#d$Oo60m_(k5@(CJ;A>?i`eLGd^u zH%70Tzg|UtqYJu3Llg=U@nGmJg*fGj|JUAoKvj8mTcbP4m*k5j2`Cn%7!;K*D1u0_ zfC@+vHdTa35v2wc1f`gw(otzDAci6xM5HMti4;YFfHVOi*$5~_vPF>2oofT;JLlYc z$GLZ$bMJq~_!%Q32<*Mz@;qzJHRoLGZKFwEZzrNV-`&2F!3kKutl`l8i&KmLE9+5?3-a&|2dfT7mpmGMC9aF zR|B&j$MaP_5S!=OnV8C~`&83nvcaLNbS9$+qo?G-E~<17zwjEVA?MvQ^SRG`|N0!0 z#U4>w*a$9m*M?iS%VN?PUbv0(}p2Zefr; zst53mwK~3&&-PBhC-(2FhpoyxkA>?KdY{exog?X*m5_x5MEwVqhajau~4J1w;s z|1J4x&Gl`YF~g8{ObWj{MvBB167r+a zge_dK_ zc|}O*haUpY8*g?0BtRm*GUVGM3E%KO$f@kKdU*3hW9Y3t{v}4@s-KF*pTE_>Ox*BK zamT3GF2UK3>?h0a*c`V#<5^~r?fF>oRBcgRN$#olh3}P5y?uL?g-99-kBX7cUe0yy zx%2#Zv|7UcU?CM1-&n_`OO~((vdcmQl+H5uE~0i_x5jGs`BUB9WCTX%6)Xg)?a1TG z-2SScZCktwX$KbA3tiD8&LwV*NM20G)l%ksKq*Hr{{3faAN~wmITYg&qVCTWx^&B2 zTTDw#r6n*L;Oo5J0G@l0+FlEyqqiXx1E;^(MqYiplIR&N|Co9s{DA}U(_?f!+M(UsjYKk|!F?U0_CAAm3)nda!@ z<3j=P;aW~O!YG3=k;T6Pgg={uVkGk4pZM~{6L)=$O^y@4skDnS(1#OWKec$+J$M#W z?uo8aZ`=v~T|0h!zHl)A@-dl!t4U6~Q1}_&KYjAE+=T-aqnLm|OC+P2*EnS9Oih*fZ7{j@^c z@3ZB+)-nbQC-7*?r{^voLkJ1v+OXex7iUqN4@$-7pMKpSTndkpUY?+wlNm-uY)Aa2;*Yd$Z1)E>QI1d4Xqv_TsCAg%Jq*U> zPxJ1^&cBK7w(uU!YJjCnoW-%ox$90W-m#PQh-R(dJzTEYwByRba)2wDm_@0cDf#I+ z&fDxZefjcb_{oS8a&Y{;TD=w*#=X}#^2Th7GNxlDTIJ_oqm{6rh#ZW@)~sqi;(WA! zY~d9QMvD4}BWOY~nqrWCI%<7DKtTMRJ6r!=ojr>yJ<$N+z%sXHhnU;czuhv59}Z%E zTdrEQsuDu?ziiwu7tf*%exgm77KY<6e7;b`+}gDG5!R|EhR=^6-eO_M{JnB}7dMCu zeS9FEvxRLWbj43SY?F=rhWT@4JQ830jQxl(yY9OWnf8yN1_@FXy7KGdzFnWYc*<*Y zN1KlvK={{ea);!>1_HMI`@Q%U->Y)_iQm^Nxb-vp$GR(npM1M`_b!{beYn5gU}iF& zdgr%V242JC*ZqwTA3m)2fcDLwmjo?)pI)!Wj(mH24OiL9B?~cew+)sh=fK0;5<-E_*A^HMB>k)|LvxaZ<>?7Gjs5{Ow@S67!kZO!?xyBp=?=QWS+V;6=`K6#1{$y!)WjPrJg>DI>Zup}5|o2#>@ zr>Do?J=4j(%vra)C-{A***$L_fb{lw`*?E#78D>Y4PL zw⪚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